diff --git a/.hspec b/.hspec
new file mode 100644
--- /dev/null
+++ b/.hspec
@@ -0,0 +1,1 @@
+--times
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -1,50 +1,177 @@
+# Contributing to the PureScript Compiler
+
+## Reporting Issues
+
+When reporting issues, please be aware of the following:
+
+* Please use the appropriate issue template if there is one: filling out all of the sections in the template makes it much easier for us to understand what the problem is and how we might want to address it.
+* We prefer to reserve the issue tracker in this repository for tasks which involve work on the compiler. If your report or proposal doesn't involve work on the compiler, please open it on the repository where the work would be done. If you're unsure, you can always ask on [Discord](https://purescript.org/chat) or [Discourse](https://discourse.purescript.org).
+* If you have a question or need help, please ask on [Discord](https://purescript.org/chat) or [Discourse](https://discourse.purescript.org) instead.
+* When submitting feature proposals, please be aware that we prefer to be conservative about adding things to the language/compiler. A feature proposal is much more likely to be accepted if it includes a clear description of the problem it intends to solve, as well as not only a strong justification for why adding the feature will solve that problem, but also for why any existing features or techniques that could be used to solve that problem are insufficient.
+
+We have defined some [Project Values](https://github.com/purescript/governance#project-values) in our organization's governance document; referring to these may help you get a better idea of what is likely to be accepted and what isn't.
+
+## Sending Pull Requests
+
 Pull requests are encouraged, but please open issues before starting to work on something that you intend to make into a PR, so that we can decide if it is a good fit or not.
 
-## Finding Issues to Work On
+### Finding Issues to Work On
 
 If you would like to contribute, please consider the issues in the current milestone first. If you are a new contributor, you may want to have a go at the ["new contributor" issues](https://github.com/purescript/purescript/labels/new%20contributor) to get started.
 
-## Pull Requests
+### Submitting Your Code
 
-Please follow the following guidelines:
+When submitting a pull request, please follow the following guidelines:
 
-- Add at least a test to `tests/purs/passing/` and possibly to `tests/purs/failing/`.
-- Build the binaries and libs with `stack build`
-- Make sure that all test suites are passing. Run the test suites with `stack test`.
-- Build the core libraries by running the script in `core-tests`.
+- Add tests according to the next section
+- Build the binaries and libraries with `stack build --fast`. The `--fast` flag is recommended but not required; it disables optimizations, which can speed things up quite a bit.
+- Make sure that all test suites are passing. Run the test suites with `stack test --fast`.
+- Please try to keep changes small and isolated: smaller pull requests which only address one issue are much easier to review.
+- For any code change, please append a copyright and licensing notice to the [CONTRIBUTORS.md](CONTRIBUTORS.md) file if your name is not in there already.
 
-## Tests
+### Writing Tests
 
-Run all test suites with `stack test`. You will need `npm`, `bower` and `node` on your PATH to run the tests.
+When writing tests, try to have at least one passing test and one failing test, if applicable.
 
-You can run individual test suites using `stack test --test-arguments="-p
-PATTERN"` where `PATTERN` is one of `compiler`, `repl`, `ide`, `docs`, `corefn`,
-or `hierarchy`.
+- Passing tests go in `tests/purs/passing/`
+- Failing tests go in `tests/purs/failing/`
+- Tests that check warnings go in `tests/purs/warning/`
 
-To build and run a specific test in `tests/purs/passing/` or `tests/purs/failing/`, add test arguments like so:
+Passing tests may produce warnings. Tests in `tests/purs/warning/` can ensure no warning is emitted by having no annotations and an empty `.out` file. 
 
-`stack test --fast --test-arguments="-p 1110.purs"`
+### Running Tests
 
+Run all test suites with `stack test`. You will need `npm`, `bower` and `node` on your PATH to run the tests.
+
+You can run individual test suites using `stack test --test-arguments="--match PATTERN"` where `PATTERN` is one of `compiler`, `repl`, `ide`, `docs`, `corefn`, or `hierarchy`. You can also build and run a specific test in `tests/purs/passing/` or `tests/purs/failing/` by using the test's filename as the pattern, e.g.:
+
+```
+stack test --fast --test-arguments="--match 1110.purs"
+```
+
 This will run whatever test uses the example file `1110.purs`.
 
-## Code Review
+The golden files (e.g. `*.out` files) are generated automatically when missing, and can be updated by setting the "HSPEC_ACCEPT" environment variable, e.g. by running `HSPEC_ACCEPT=true stack test`.
 
-To prevent core libraries from getting broken, every change must be reviewed. A pull request will be merged as long as one other team member has verified the changes.
+The source map tests' output can be visualized using the [Source Map Visualization](https://sokra.github.io/source-map-visualization/) website. The site requires uploading three files in the following order: the `.js` file, the `.js.map` file, and the `.purs` file.
 
-## Adding Dependencies
+To produce these files, run `stack test --fast --ta "--match sourcemaps" && ./get-source-maps.sh`. Each test's 3 files will be stored in `.source-maps/<test file name>/` folder. The `get-source-maps.sh` script only works if the test files abide by the requirements described in [TestSourceMaps.hs](.tests/TestSourceMaps.hs).
 
-Because the PureScript compiler is distributed in binary form, we include
-the licenses of all dependencies, including transitive ones, in the LICENSE
-file. Therefore, whenever the dependencies change, the LICENSE file should be
-updated.
+### Adding Dependencies
 
-This can be automated; see the `license-generator/generate.hs` file.
+Because the PureScript compiler is distributed in binary form, we include the licenses of all dependencies, including transitive ones, in the LICENSE file. Therefore, whenever the dependencies change, the LICENSE file should be updated.
 
-## Writing Issues
+This process can be performed automatically by running `make license-generator`.
 
-- If the issue is actually a question, please consider asking on Reddit, Stack Overflow or IRC first.
-- Please include a minimal, repeatable test case with any bug report.
+### Getting Pull Requests Merged
 
-## Copyright and Licensing
+Sometimes pull requests take a little while to be merged. This is partially because they often have knock-on effects for the rest of the ecosystem, and partially because we want to give core team members time to review and consider changes thoroughly. Please see the organization's [governance document](https://github.com/purescript/governance) for information about when a pull request may be merged.
 
-For any code change, please append a copyright and licensing notice to the [CONTRIBUTORS.md](CONTRIBUTORS.md) file.
+## Developer Guide
+
+The following instructions are intended to help PureScript users more easily contribute to the compiler, even if this is your first Haskell project.
+
+### Prerequisites
+
+Install `stack`. [Instructions](https://docs.haskellstack.org/en/stable/README/).
+
+Update stack's package index before proceeding:
+```
+stack update
+```
+
+### Clone
+
+```
+git clone https://github.com/purescript/purescript.git purescript_compiler
+cd purescript_compiler
+```
+
+### Build
+
+```
+stack build
+```
+
+This will take a while the first time it is run.
+
+### Running a locally-compiled version of PureScript
+
+Run `stack exec bash` to launch a subshell (substitute `bash` with your preferred shell) where your locally-compiled version of `purs` is available at the front of your `PATH`. Other tools (such as `spago`) will also grab this latest `purs` version if executed in this shell. You can use `purs --version` and `which purs` to confirm you're executing your locally-compiled version.
+
+```
+> purs --version
+0.14.2
+> which purs
+~/.nvm/versions/node/v14.9.0/bin/purs
+
+> stack exec bash
+
+> purs --version
+0.14.2 [development build; commit: f1953214775945b65ba53ae903b4238c352dcd29 DIRTY]
+> which purs
+~/projects/purescript/complier/.stack-work/install/x86_64-linux-tinfo6/1a835accec0abb5a1f7364196133985d18f8c46ee8c7424ce43cf68bab56e5b1/8.10.4/bin/purs
+```
+
+If you plan on using your patched version of `purs` for a while (for example, while waiting on your changes to be incorporated into the next official release), it may be more convenient to install it globally with:
+
+```
+stack install
+```
+
+Note that other installed version (e.g. what npm installs) may still have priority depending on how your `PATH` is configured. `stack install` should warn about other higher-priority versions, and you can always use `which purs` as a sanity check. Uninstall by simply deleting the `purs` binary (location can be found with `which purs`).
+
+### Profiling
+
+A profiling build is used to help diagnose performance issues with the compiler.
+
+Create a profiling build with:
+```
+stack build --profile
+```
+This will also take a while the first time it is run.
+
+Setting-up a local shell for your profiling build is similar to the steps for the standard build, just add the `--profile` flag:
+```
+stack exec --profile bash
+```
+Note that the bin directory prepended to `$PATH` is different than the standard build, so you can let this be a third "profiling" shell that you leave open between rebuilds.
+
+The `purs` compiler is often wrapped by `spago`. Here's how to pass the "time profiling" flag `-p` via spago:
+```
+spago build --purs-args "+RTS -p -RTS"
+```
+
+Note: There are other profiling flags (such as `-hc` for heap size). You can read more about these flags [here](http://book.realworldhaskell.org/read/profiling-and-optimization.html).
+
+This creates a `purs.prof` file. You can view the contents of this file directly, but it is often more convenient to use a visualizer.
+
+### Profile Visualizers
+
+Each of these produces a clickable visual display of profiling info. Feel free to open the output files in the web browser of your choice. These examples use `firefox`.
+
+#### [ghc-prof-flamegraph](https://github.com/fpco/ghc-prof-flamegraph)
+```
+stack build --copy-compiler-tool ghc-prof-flamegraph
+stack exec -- ghc-prof-flamegraph purs.prof
+firefox purs.svg
+```
+
+For more flamegraph customizations, you can also try [`stackcollapse-ghc`](https://github.com/marcin-rzeznicki/stackcollapse-ghc)
+
+#### [profiteur](https://github.com/jaspervdj/profiteur)
+```
+stack build --copy-compiler-tool profiteur
+stack exec -- profiteur purs.prof
+firefox purs.prof.html
+```
+
+### Additional Resources
+
+* [Haskell Language Server](https://github.com/haskell/haskell-language-server#installation) installation guide.
+
+* PureScript-compiler-focused [guide](https://discourse.purescript.org/t/haskell-tooling-guide-vscode-hie/1505) covering VSCode + HIE setup.
+
+* Beginner-friendly [guide](https://www.vacationlabs.com/haskell/environment-setup.html) covering VSCode + HIE setup, although the steps needed some tweaking for compatibility with the PureScript compiler project.
+
+* An [outdated table](https://github.com/rainbyte/haskell-ide-chart#the-chart-with-a-link-to-each-plug-in) of IDE recommendations. Note that the [`intero`](https://github.com/chrisdone/intero/blob/master/README.md) backend (listed for four entries) is no longer supported.
diff --git a/CONTRIBUTORS.md b/CONTRIBUTORS.md
--- a/CONTRIBUTORS.md
+++ b/CONTRIBUTORS.md
@@ -14,140 +14,184 @@
 
 | Username | Name | License |
 | :------- | :--- | :------ |
-| [@5outh](https://github.com/5outh) | Benjamin Kovach | MIT license |
-| [@actionshrimp](https://github.com/actionshrimp) | David Aitken | [MIT license](http://opensource.org/licenses/MIT) |
-| [@alexbiehl](https://github.com/alexbiehl) | Alexander Biehl | [MIT license](http://opensource.org/licenses/MIT) |
-| [@andreypopp](https://github.com/andreypopp) | Andrey Popp | MIT license |
-| [@andyarvanitis](https://github.com/andyarvanitis) | Andy Arvanitis | [MIT license](http://opensource.org/licenses/MIT) |
-| [@anthok88](https://github.com/anthok88) | anthoq88 | MIT license |
-| [@ardumont](https://github.com/ardumont) | Antoine R. Dumont | [MIT license](http://opensource.org/licenses/MIT) |
-| [@aspidites](https://github.com/aspidites) | Edwin Marshall | [MIT license](http://opensource.org/licenses/MIT) |
-| [@bagl](https://github.com/bagl) | Petr Vapenka | [MIT license](http://opensource.org/licenses/MIT) |
-| [@balajirrao](https://github.com/balajirrao) | Balaji Rao | MIT license |
-| [@bbqbaron](https://github.com/bbqbaron) | Eric Loren | [MIT license](http://opensource.org/licenses/MIT) |
-| [@bergmark](https://github.com/bergmark) | Adam Bergmark | MIT license |
-| [@bitemyapp](https://github.com/bitemyapp) | Chris Allen | [MIT license](http://opensource.org/licenses/MIT) |
-| [@bmjames](https://github.com/bmjames) | Ben James | [MIT license](http://opensource.org/licenses/MIT) |
-| [@Bogdanp](https://github.com/Bogdanp) | Bogdan Paul Popa | [MIT license](http://opensource.org/licenses/MIT) |
-| [@brandonhamilton](https://github.com/brandonhamilton) | Brandon Hamilton | [MIT license](http://opensource.org/licenses/MIT) |
-| [@bsermons](https://github.com/bsermons) | Brian Sermons | [MIT license](http://opensource.org/licenses/MIT) |
-| [@cdepillabout](https://github.com/cdepillabout) | Dennis Gosnell | [MIT license](http://opensource.org/licenses/MIT) |
-| [@chexxor](https://github.com/chexxor) | Alex Berg | [MIT license](http://opensource.org/licenses/MIT) |
-| [@chrisdone](https://github.com/chrisdone) | Chris Done | MIT license |
-| [@cmdv](https://github.com/cmdv) | Vincent Orr | MIT license |
-| [@codedmart](https://github.com/codedmart) | Brandon Martin | [MIT license](http://opensource.org/licenses/MIT) |
-| [@coot](https://github.com/coot) | Marcin Szamotulski | [MIT license](http://opensource.org/licenses/MIT) |
-| [@davidchambers](https://github.com/davidchambers) | David Chambers | [MIT license](http://opensource.org/licenses/MIT) |
-| [@DavidLindbom](https://github.com/DavidLindbom) | David Lindbom | [MIT license](http://opensource.org/licenses/MIT) |
-| [@dckc](https://github.com/dckc) | Dan Connolly | [MIT license](http://opensource.org/licenses/MIT) |
-| [@kleeneplus](https://github.com/dgendill) | Dominick Gendill | [MIT license](http://opensource.org/licenses/MIT) |
-| [@ealmansi](https://github.com/ealmansi) | Emilio Almansi | MIT license |
-| [@eamelink](https://github.com/eamelink) | Erik Bakker | MIT license |
-| [@epost](https://github.com/epost) | Erik Post | MIT license |
-| [@erdeszt](https://github.com/erdeszt) | Tibor Erdesz | [MIT license](http://opensource.org/licenses/MIT) |
-| [@etrepum](https://github.com/etrepum) | Bob Ippolito | [MIT license](http://opensource.org/licenses/MIT) |
-| [@faineance](https://github.com/faineance) | faineance | [MIT license](http://opensource.org/licenses/MIT) |
-| [@fehrenbach](https://github.com/fehrenbach) | Stefan Fehrenbach | [MIT license](http://opensource.org/licenses/MIT) |
-| [@felixSchl](https://github.com/felixSchl) | Felix Schlitter | [MIT license](http://opensource.org/licenses/MIT) |
-| [@FrigoEU](https://github.com/FrigoEU) | Simon Van Casteren | [MIT license](http://opensource.org/licenses/MIT) |
-| [@garyb](https://github.com/garyb) | Gary Burgess | [MIT license](http://opensource.org/licenses/MIT) |
-| [@hdgarrood](https://github.com/hdgarrood) | Harry Garrood | [MIT license](http://opensource.org/licenses/MIT) |
-| [@houli](https://github.com/houli) | Eoin Houlihan | [MIT license](http://opensource.org/licenses/MIT) |
-| [@ianbollinger](https://github.com/ianbollinger) | Ian D. Bollinger | [MIT license](http://opensource.org/licenses/MIT) |
-| [@ilovezfs](https://github.com/ilovezfs) | ilovezfs | MIT license |
-| [@i-am-tom](https://github.com/i-am-tom) | i-am-tom | [MIT license](http://opensource.org/licenses/MIT)  |
-| [@izgzhen](https://github.com/izgzhen) | Zhen Zhang | [MIT license](http://opensource.org/licenses/MIT) |
-| [@jacereda](https://github.com/jacereda) | Jorge Acereda | [MIT license](http://opensource.org/licenses/MIT) |
-| [@japesinator](https://github.com/japesinator) | JP Smith | [MIT license](http://opensource.org/licenses/MIT) |
-| [@jkachmar](https://github.com/jkachmar) | Joe Kachmar | MIT license |
-| [@joneshf](https://github.com/joneshf) | Hardy Jones | MIT license |
-| [@kika](https://github.com/kika) | Kirill Pertsev | MIT license |
-| [@kRITZCREEK](https://github.com/kRITZCREEK) | Christoph Hegemann | MIT license |
-| [@L8D](https://github.com/L8D) | Tenor Biel | [MIT license](http://opensource.org/licenses/MIT) |
-| [@legrostdg](https://github.com/legrostdg) | Félix Sipma | [MIT license](http://opensource.org/licenses/MIT) |
-| [@LiamGoodacre](https://github.com/LiamGoodacre) | Liam Goodacre | [MIT license](http://opensource.org/licenses/MIT) |
-| [@lukerandall](https://github.com/lukerandall) | Luke Randall | [MIT license](http://opensource.org/licenses/MIT) |
-| [@matthewleon](https://github.com/matthewleon) | Matthew Leon | [MIT license](http://opensource.org/licenses/MIT) |
-| [@mcoffin](https://github.com/mcoffin) | Matt Coffin | [MIT license](http://opensource.org/licenses/MIT) |
-| [@mhcurylo](https://github.com/mhcurylo) | Mateusz Curylo | [MIT license](http://opensource.org/licenses/MIT) |
-| [@MiracleBlue](https://github.com/MiracleBlue) | Nicholas Kircher | [MIT license](http://opensource.org/licenses/MIT) |
-| [@mrkgnao](https://github.com/mrkgnao) | Soham Chowdhury | [MIT license](http://opensource.org/licenses/MIT) |
-| [@mgmeier](https://github.com/mgmeier) | Michael Gilliland | [MIT license](http://opensource.org/licenses/MIT) |
-| [@michaelficarra](https://github.com/michaelficarra) | Michael Ficarra | [MIT license](http://opensource.org/licenses/MIT) |
-| [@MichaelXavier](https://github.com/MichaelXavier) | Michael Xavier | MIT license |
-| [@mjgpy3](https://github.com/mjgpy3) | Michael Gilliland | [MIT license](http://opensource.org/licenses/MIT) |
-| [@mpietrzak](https://github.com/mpietrzak) | Maciej Pietrzak | [MIT license](http://opensource.org/licenses/MIT) |
-| [@mrhania](https://github.com/mrhania) | Łukasz Hanuszczak | [MIT license](http://opensource.org/licenses/MIT) |
-| [@natefaubion](https://github.com/natefaubion) | Nathan Faubion | [MIT license](http://opensource.org/licenses/MIT) |
-| [@nicodelpiano](https://github.com/nicodelpiano) | Nicolas Del Piano | [MIT license](http://opensource.org/licenses/MIT) |
-| [@noraesae](https://github.com/noraesae) | Hyunje Jun | [MIT license](http://opensource.org/licenses/MIT) |
-| [@nullobject](https://github.com/nullobject) | Josh Bassett | [MIT license](http://opensource.org/licenses/MIT) |
-| [@nwolverson](https://github.com/nwolverson) | Nicholas Wolverson | [MIT license](http://opensource.org/licenses/MIT) |
-| [@osa1](https://github.com/osa1) | Ömer Sinan Ağacan | MIT license |
-| [@paf31](https://github.com/paf31) | Phil Freeman | [MIT license](http://opensource.org/licenses/MIT) |
-| [@parsonsmatt](https://github.com/parsonsmatt) | Matt Parsons | [MIT license](http://opensource.org/licenses/MIT) |
-| [@passy](https://github.com/passy) | Pascal Hartig | [MIT license](http://opensource.org/licenses/MIT) |
-| [@paulyoung](https://github.com/paulyoung) | Paul Young | [MIT license](http://opensource.org/licenses/MIT) |
-| [@pelotom](https://github.com/pelotom) | Thomas Crockett | [MIT license](http://opensource.org/licenses/MIT) |
-| [@phadej](https://github.com/phadej) | Oleg Grenrus | [MIT license](http://opensource.org/licenses/MIT) |
-| [@phiggins](https://github.com/phiggins) | Pete Higgins | [MIT license](http://opensource.org/licenses/MIT) |
-| [@philopon](https://github.com/philopon) | Hirotomo Moriwaki | [MIT license](http://opensource.org/licenses/MIT) |
-| [@pseudonom](https://github.com/pseudonom) | Eric Easley | [MIT license](http://opensource.org/licenses/MIT) |
-| [@quesebifurcan](https://github.com/quesebifurcan) | Fredrik Wallberg | [MIT license](http://opensource.org/licenses/MIT) |
-| [@rhendric](https://github.com/rhendric) | Ryan Hendrickson | [MIT license](http://opensource.org/licenses/MIT) |
-| [@rightfold](https://github.com/rightfold) | rightfold | [MIT license](https://opensource.org/licenses/MIT) |
-| [@rndnoise](https://www.github.com/rndnoise) | rndnoise | [MIT license](http://opensource.org/licenses/MIT) |
-| [@robdaemon](https://github.com/robdaemon) | Robert Roland | [MIT license](http://opensource.org/licenses/MIT) |
-| [@RossMeikleham](https://github.com/RossMeikleham) | Ross Meikleham | [MIT license](http://opensource.org/licenses/MIT) |
-| [@Rufflewind](https://github.com/Rufflewind) | Phil Ruffwind | [MIT license](https://opensource.org/licenses/MIT) |
-| [@rvion](https://github.com/rvion) | Rémi Vion | [MIT license](http://opensource.org/licenses/MIT) |
-| [@RyanGlScott](https://github.com/RyanGlScott) | Ryan Scott | [MIT license](http://opensource.org/licenses/MIT) |
-| [@sebastiaanvisser](https://github.com/sebastiaanvisser) | Sebastiaan Visser | MIT license |
-| [@sectore](https://github.com/sectore) | Jens Krause | [MIT license](http://opensource.org/licenses/MIT) |
-| [@senju](https://github.com/senju) | senju | [MIT license](http://opensource.org/licenses/MIT) |
-| [@seungha-kim](https://github.com/seungha-kim) | Seungha Kim | [MIT license](http://opensource.org/licenses/MIT) |
-| [@simonyangme](https://github.com/simonyangme) | Simon Yang | [MIT license](http://opensource.org/licenses/MIT) |
-| [@sharkdp](https://github.com/sharkdp) | David Peter | [MIT license](http://opensource.org/licenses/MIT) |
-| [@soupi](https://github.com/soupi) | Gil Mizrahi | [MIT license](http://opensource.org/licenses/MIT) |
-| [@stefanholzmueller](https://github.com/stefanholzmueller) | Stefan Holzmüller | [MIT license](http://opensource.org/licenses/MIT) |
-| [@sztupi](https://github.com/sztupi) | Attila Sztupak | [MIT license](http://opensource.org/licenses/MIT) |
-| [@taktoa](https://github.com/taktoa) | Remy Goldschmidt | [MIT license](http://opensource.org/licenses/MIT) |
-| [@taku0](https://github.com/taku0) | taku0 | [MIT license](http://opensource.org/licenses/MIT) |
-| [@tfausak](https://github.com/tfausak) | Taylor Fausak | [MIT license](http://opensource.org/licenses/MIT) |
-| [@thoradam](https://github.com/thoradam) | Thor Adam | [MIT license](http://opensource.org/licenses/MIT) |
-| [@tmcgilchrist](https://github.com/tmcgilchrist) | Tim McGilchrist | [MIT license](http://opensource.org/licenses/MIT) |
-| [@trofi](https://github.com/trofi) | Sergei Trofimovich | [MIT license](http://opensource.org/licenses/MIT) |
-| [@utkarshkukreti](https://github.com/utkarshkukreti) | Utkarsh Kukreti | [MIT license](http://opensource.org/licenses/MIT) |
-| [@vkorablin](https://github.com/vkorablin) | Vladimir Korablin | MIT license |
-| [@vladciobanu](https://github.com/vladciobanu) | Vladimir Ciobanu | [MIT license](http://opensource.org/licenses/MIT) |
-| [@zudov](https://github.com/zudov) | Konstantin Zudov | [MIT license](http://opensource.org/licenses/MIT) |
-| [@b123400](https://github.com/b123400) | b123400 | [MIT license](https://opensource.org/licenses/MIT) |
-| [@kcsongor](https://github.com/kcsongor) | Csongor Kiss | [MIT license](http://opensource.org/licenses/MIT) |
-| [@drets](https://github.com/drets) | Dmytro Rets | [MIT license](http://opensource.org/licenses/MIT) |
-| [@bjornmelgaaard](https://github.com/BjornMelgaard) | Sergey Homa | [MIT license](http://opensource.org/licenses/MIT) |
-| [@thimoteus](https://github.com/Thimoteus) | thimoteus | [MIT license](http://opensource.org/licenses/MIT) |
-| [@sloosch](https://github.com/sloosch) | Simon Looschen | [MIT license](http://opensource.org/licenses/MIT) |
-| [@rgrinberg](https://github.com/rgrinberg) | Rudi Grinberg | [MIT license](http://opensource.org/licenses/MIT) |
-| [@gabejohnson](https://github.com/gabejohnson) | Gabe Johnson | [MIT license](http://opensource.org/licenses/MIT) |
-| [@dariooddenino](https://github.com/dariooddenino) | Dario Oddenino | [MIT license](http://opensource.org/licenses/MIT) |
-| [@jordanmartinez](https://github.com/jordanmartinez) | Jordan Martinez | [MIT license](http://opensource.org/licenses/MIT) |
-| [@Saulukass](https://github.com/Saulukass) | Saulius Skliutas | [MIT license](http://opensource.org/licenses/MIT) |
-| [@adnelson](https://github.com/adnelson) | Allen Nelson | [MIT license](http://opensource.org/licenses/MIT) |
+| [@5outh](https://github.com/5outh) | Benjamin Kovach | [MIT license] |
+| [@actionshrimp](https://github.com/actionshrimp) | David Aitken | [MIT license] |
+| [@adnelson](https://github.com/adnelson) | Allen Nelson | [MIT license] |
+| [@alexbiehl](https://github.com/alexbiehl) | Alexander Biehl | [MIT license] |
+| [@andreypopp](https://github.com/andreypopp) | Andrey Popp | [MIT license] |
+| [@andyarvanitis](https://github.com/andyarvanitis) | Andy Arvanitis | [MIT license] |
+| [@andys8](https://github.com/andys8) | andys8 | [MIT license] |
+| [@anthok88](https://github.com/anthok88) | anthoq88 | [MIT license] |
+| [@ardumont](https://github.com/ardumont) | Antoine R. Dumont | [MIT license] |
+| [@arrowd](https://github.com/arrowd) | Gleb Popov | [MIT license] |
+| [@aspidites](https://github.com/aspidites) | Edwin Marshall | [MIT license] |
+| [@b123400](https://github.com/b123400) | b123400 | [MIT license] |
+| [@bagl](https://github.com/bagl) | Petr Vapenka | [MIT license] |
+| [@balajirrao](https://github.com/balajirrao) | Balaji Rao | [MIT license] |
+| [@bbqbaron](https://github.com/bbqbaron) | Eric Loren | [MIT license] |
+| [@bergmark](https://github.com/bergmark) | Adam Bergmark | [MIT license] |
+| [@bitemyapp](https://github.com/bitemyapp) | Chris Allen | [MIT license] |
+| [@bjornmelgaaard](https://github.com/BjornMelgaard) | Sergey Homa | [MIT license] |
+| [@bmjames](https://github.com/bmjames) | Ben James | [MIT license] |
+| [@Bogdanp](https://github.com/Bogdanp) | Bogdan Paul Popa | [MIT license] |
+| [@brandonhamilton](https://github.com/brandonhamilton) | Brandon Hamilton | [MIT license] |
+| [@bsermons](https://github.com/bsermons) | Brian Sermons | [MIT license] |
+| [@cdepillabout](https://github.com/cdepillabout) | Dennis Gosnell | [MIT license] |
+| [@chexxor](https://github.com/chexxor) | Alex Berg | [MIT license] |
+| [@chrisdone](https://github.com/chrisdone) | Chris Done | [MIT license] |
+| [@cmdv](https://github.com/cmdv) | Vincent Orr | [MIT license] |
+| [@codedmart](https://github.com/codedmart) | Brandon Martin | [MIT license] |
+| [@coot](https://github.com/coot) | Marcin Szamotulski | [MIT license] |
+| [@dariooddenino](https://github.com/dariooddenino) | Dario Oddenino | [MIT license] |
+| [@davidchambers](https://github.com/davidchambers) | David Chambers | [MIT license] |
+| [@DavidLindbom](https://github.com/DavidLindbom) | David Lindbom | [MIT license] |
+| [@dckc](https://github.com/dckc) | Dan Connolly | [MIT license] |
+| [@Deltaspace0](https://github.com/Deltaspace0) | Ruslan Gadeev | [MIT license] |
+| [@drets](https://github.com/drets) | Dmytro Rets | [MIT license] |
+| [@dyerw](https://github.com/dyerw) | Liam Dyer | [MIT license] |
+| [@ealmansi](https://github.com/ealmansi) | Emilio Almansi | [MIT license] |
+| [@eamelink](https://github.com/eamelink) | Erik Bakker | [MIT license] |
+| [@EMattfolk](https://github.com/EMattfolk) | Erik Mattfolk | [MIT license] |
+| [@epost](https://github.com/epost) | Erik Post | [MIT license] |
+| [@erdeszt](https://github.com/erdeszt) | Tibor Erdesz | [MIT license] |
+| [@etrepum](https://github.com/etrepum) | Bob Ippolito | [MIT license] |
+| [@f-f](https://github.com/f-f) | Fabrizio Ferrai | [MIT license] |
+| [@faineance](https://github.com/faineance) | faineance | [MIT license] |
+| [@fehrenbach](https://github.com/fehrenbach) | Stefan Fehrenbach | [MIT license] |
+| [@felixSchl](https://github.com/felixSchl) | Felix Schlitter | [MIT license] |
+| [@FredTheDino](https://github.com/FredTheDino) | Edvard Thörnros | [MIT license] |
+| [@FrigoEU](https://github.com/FrigoEU) | Simon Van Casteren | [MIT license] |
+| [@fsoikin](https://github.com/fsoikin) | Fyodor Soikin | [MIT license] |
+| [@gabejohnson](https://github.com/gabejohnson) | Gabe Johnson | [MIT license] |
+| [@garyb](https://github.com/garyb) | Gary Burgess | [MIT license] |
+| [@hdgarrood](https://github.com/hdgarrood) | Harry Garrood | [MIT license] |
+| [@houli](https://github.com/houli) | Eoin Houlihan | [MIT license] |
+| [@i-am-the-slime](https://github.com/i-am-the-slime) | Mark Eibes | [MIT license] |
+| [@i-am-tom](https://github.com/i-am-tom) | i-am-tom | [MIT license]  |
+| [@ianbollinger](https://github.com/ianbollinger) | Ian D. Bollinger | [MIT license] |
+| [@ilovezfs](https://github.com/ilovezfs) | ilovezfs | [MIT license] |
+| [@imcotton](https://github.com/imcotton) | Cotton Hou | [MIT license] |
+| [@izgzhen](https://github.com/izgzhen) | Zhen Zhang | [MIT license] |
+| [@j-nava](https://github.com/j-nava) | Jesse Nava | [MIT license] |
+| [@jacereda](https://github.com/jacereda) | Jorge Acereda | [MIT license] |
+| [@japesinator](https://github.com/japesinator) | JP Smith | [MIT license] |
+| [@jkachmar](https://github.com/jkachmar) | Joe Kachmar | [MIT license] |
+| [@joneshf](https://github.com/joneshf) | Hardy Jones | [MIT license] |
+| [@jordanmartinez](https://github.com/jordanmartinez) | Jordan Martinez | [MIT license] |
+| [@jy14898](https://github.com/jy14898) | Joseph Young | [MIT license] |
+| [@kcsongor](https://github.com/kcsongor) | Csongor Kiss | [MIT license] |
+| [@kika](https://github.com/kika) | Kirill Pertsev | [MIT license] |
+| [@kl0tl](https://github.com/kl0tl) | Cyril Sobierajewicz | [MIT license] |
+| [@kleeneplus](https://github.com/dgendill) | Dominick Gendill | [MIT license] |
+| [@kRITZCREEK](https://github.com/kRITZCREEK) | Christoph Hegemann | [MIT license] |
+| [@L8D](https://github.com/L8D) | Tenor Biel | [MIT license] |
+| [@legrostdg](https://github.com/legrostdg) | Félix Sipma | [MIT license] |
+| [@LiamGoodacre](https://github.com/LiamGoodacre) | Liam Goodacre | [MIT license] |
+| [@lukerandall](https://github.com/lukerandall) | Luke Randall | [MIT license] |
+| [@lunaris](https://github.com/lunaris) | Will Jones | [MIT license] |
+| [@marcosh](https://github.com/marcosh) | Marco Perone | [MIT license] |
+| [@matthew-hilty](https://github.com/matthew-hilty) | Matthew Hilty | [MIT license] |
+| [@matthewleon](https://github.com/matthewleon) | Matthew Leon | [MIT license] |
+| [@mcoffin](https://github.com/mcoffin) | Matt Coffin | [MIT license] |
+| [@mgmeier](https://github.com/mgmeier) | Michael Gilliland | [MIT license] |
+| [@mhcurylo](https://github.com/mhcurylo) | Mateusz Curylo | [MIT license] |
+| [@mhmdanas](https://github.com/mhmdanas) | Mohammed Anas | [MIT license] |
+| [@michaelficarra](https://github.com/michaelficarra) | Michael Ficarra | [MIT license] |
+| [@MichaelXavier](https://github.com/MichaelXavier) | Michael Xavier | [MIT license] |
+| [@mikesol](https://github.com/mikesol) | Mike Solomon | [MIT license] |
+| [@milesfrain](https://github.com/milesfrain) | Miles Frain | [MIT license] |
+| [@MiracleBlue](https://github.com/MiracleBlue) | Nicholas Kircher | [MIT license] |
+| [@mjgpy3](https://github.com/mjgpy3) | Michael Gilliland | [MIT license] |
+| [@mjrussell](https://github.com/mjrussell) | Matthew Russell | [MIT license] |
+| [@MonoidMusician](https://github.com/MonoidMusician) | Verity Scheel | [MIT license] |
+| [@mpietrzak](https://github.com/mpietrzak) | Maciej Pietrzak | [MIT license] |
+| [@mrhania](https://github.com/mrhania) | Łukasz Hanuszczak | [MIT license] |
+| [@mrkgnao](https://github.com/mrkgnao) | Soham Chowdhury | [MIT license] |
+| [@natefaubion](https://github.com/natefaubion) | Nathan Faubion | [MIT license] |
+| [@ncaq](https://github.com/ncaq) | ncaq | [MIT license] |
+| [@NickMolloy](https://github.com/NickMolloy) | Nick Molloy | [MIT license] |
+| [@nicodelpiano](https://github.com/nicodelpiano) | Nicolas Del Piano | [MIT license] |
+| [@noraesae](https://github.com/noraesae) | Hyunje Jun | [MIT license] |
+| [@nullobject](https://github.com/nullobject) | Josh Bassett | [MIT license] |
+| [@osa1](https://github.com/osa1) | Ömer Sinan Ağacan | [MIT license] |
+| [@ozkutuk](https://github.com/ozkutuk) | Berk Özkütük | [MIT license] |
+| [@paf31](https://github.com/paf31) | Phil Freeman | [MIT license] |
+| [@parsonsmatt](https://github.com/parsonsmatt) | Matt Parsons | [MIT license] |
+| [@passy](https://github.com/passy) | Pascal Hartig | [MIT license] |
+| [@paulyoung](https://github.com/paulyoung) | Paul Young | [MIT license] |
+| [@pelotom](https://github.com/pelotom) | Thomas Crockett | [MIT license] |
+| [@peterbecich](https://github.com/peterbecich) | Peter Becich | [MIT license] |
+| [@phadej](https://github.com/phadej) | Oleg Grenrus | [MIT license] |
+| [@phiggins](https://github.com/phiggins) | Pete Higgins | [MIT license] |
+| [@philopon](https://github.com/philopon) | Hirotomo Moriwaki | [MIT license] |
+| [@pseudonom](https://github.com/pseudonom) | Eric Easley | [MIT license] |
+| [@ptrfrncsmrph](https://github.com/ptrfrncsmrph) | Peter Murphy | [MIT license] |
+| [@PureFunctor](https://github.com/PureFunctor), [@sjpgarcia](https://github.com/sjpgarcia) | Justin Garcia | [MIT license] |
+| [@quesebifurcan](https://github.com/quesebifurcan) | Fredrik Wallberg | [MIT license] |
+| [@radrow](https://github.com/radrow) | Radosław Rowicki | [MIT license] |
+| [@rgrinberg](https://github.com/rgrinberg) | Rudi Grinberg | [MIT license] |
+| [@rhendric](https://github.com/rhendric) | Ryan Hendrickson | [MIT license] |
+| [@rightfold](https://github.com/rightfold) | rightfold | [MIT license] |
+| [@rndnoise](https://www.github.com/rndnoise) | rndnoise | [MIT license] |
+| [@robdaemon](https://github.com/robdaemon) | Robert Roland | [MIT license] |
+| [@RossMeikleham](https://github.com/RossMeikleham) | Ross Meikleham | [MIT license] |
+| [@Rufflewind](https://github.com/Rufflewind) | Phil Ruffwind | [MIT license] |
+| [@rvion](https://github.com/rvion) | Rémi Vion | [MIT license] |
+| [@RyanGlScott](https://github.com/RyanGlScott) | Ryan Scott | [MIT license] |
+| [@Saulukass](https://github.com/Saulukass) | Saulius Skliutas | [MIT license] |
+| [@sd-yip](https://github.com/sd-yip) | Nicholas Yip | [MIT license] |
+| [@sebastiaanvisser](https://github.com/sebastiaanvisser) | Sebastiaan Visser | [MIT license] |
+| [@sectore](https://github.com/sectore) | Jens Krause | [MIT license] |
+| [@senju](https://github.com/senju) | senju | [MIT license] |
+| [@seungha-kim](https://github.com/seungha-kim) | Seungha Kim | [MIT license] |
+| [@sharkdp](https://github.com/sharkdp) | David Peter | [MIT license] |
+| [@sigma-andex](https://github.com/sigma-andex) | Jan Schulte | [MIT license] |
+| [@simonyangme](https://github.com/simonyangme) | Simon Yang | [MIT license] |
+| [@sloosch](https://github.com/sloosch) | Simon Looschen | [MIT license] |
+| [@sometimes-i-send-pull-requests](https://github.com/sometimes-i-send-pull-requests) | Alexander Kirchhoff | [MIT license] |
+| [@soupi](https://github.com/soupi) | Gil Mizrahi | [MIT license] |
+| [@stefanholzmueller](https://github.com/stefanholzmueller) | Stefan Holzmüller | [MIT license] |
+| [@sztupi](https://github.com/sztupi) | Attila Sztupak | [MIT license] |
+| [@taktoa](https://github.com/taktoa) | Remy Goldschmidt | [MIT license] |
+| [@taku0](https://github.com/taku0) | taku0 | [MIT license] |
+| [@tfausak](https://github.com/tfausak) | Taylor Fausak | [MIT license] |
+| [@thimoteus](https://github.com/Thimoteus) | thimoteus | [MIT license] |
+| [@thomashoneyman](https://github.com/thomashoneyman) | Thomas Honeyman | [MIT license] |
+| [@thoradam](https://github.com/thoradam) | Thor Adam | [MIT license] |
+| [@tmcgilchrist](https://github.com/tmcgilchrist) | Tim McGilchrist | [MIT license] |
+| [@trofi](https://github.com/trofi) | Sergei Trofimovich | [MIT license] |
+| [@utkarshkukreti](https://github.com/utkarshkukreti) | Utkarsh Kukreti | [MIT license] |
+| [@vkorablin](https://github.com/vkorablin) | Vladimir Korablin | [MIT license] |
+| [@vladciobanu](https://github.com/vladciobanu) | Vladimir Ciobanu | [MIT license] |
+| [@wclr](https://github.com/wclr) | Alex Osh | [MIT license] |
+| [@woody88](https://github.com/woody88) | Woodson Delhia | [MIT license] |
+| [@xgrommx](https://github.com/xgrommx) | Denis Stoyanov | [MIT license] |
+| [@zudov](https://github.com/zudov) | Konstantin Zudov | [MIT license] |
 
+
 ### Contributors using Modified Terms
 
 | Username | Name | Terms |
 | :------- | :--- | :------ |
-| [@charleso](https://github.com/charleso) | Charles O'Farrell | My existing contributions to the PureScript compiler and all future contributions to the PureScript compiler until further notice, are Copyright Charles O'Farrell, and are licensed to the owners and users of the PureScript compiler project under the terms of the [MIT license](http://opensource.org/licenses/MIT). |
-| [@chrissmoak](https://github.com/chrissmoak) | Chris Smoak | My existing contributions to the PureScript compiler and all future contributions to the PureScript compiler until further notice, are Copyright Chris Smoak, and are licensed to the owners and users of the PureScript compiler project under the terms of the [MIT license](http://opensource.org/licenses/MIT). |
-| [@dylex](https://github.com/dylex) | Dylan Simon | My existing and all future contributions to the PureScript compiler until further notice are Copyright Dylan Simon, and are licensed to the owners and users of the PureScript compiler project under the terms of the [MIT license](http://opensource.org/licenses/MIT). |
-| [@leighman](http://github.com/leighman) | Jack Leigh | My existing contributions and all future contributions until further notice are Copyright Jack Leigh, and are licensed to the owners and users of the PureScript compiler project under the terms of the [MIT license](http://opensource.org/licenses/MIT). |
+| [@charleso](https://github.com/charleso) | Charles O'Farrell | My existing contributions to the PureScript compiler and all future contributions to the PureScript compiler until further notice, are Copyright Charles O'Farrell, and are licensed to the owners and users of the PureScript compiler project under the terms of the [MIT license]. |
+| [@chrissmoak](https://github.com/chrissmoak) | Chris Smoak | My existing contributions to the PureScript compiler and all future contributions to the PureScript compiler until further notice, are Copyright Chris Smoak, and are licensed to the owners and users of the PureScript compiler project under the terms of the [MIT license]. |
+| [@citizengabe](https://github.com/citizengabe) | Gabe Johnson | All contributions I have or will make using the @citizengabe GitHub account are during employment at [CitizenNet Inc.](#companies) who owns the copyright. All of my existing or future contributions made using the @gabejohnson GitHub account are personal contributions and subject to the terms specified [above](#contributors-using-standard-terms). |
+| [@dylex](https://github.com/dylex) | Dylan Simon | My existing and all future contributions to the PureScript compiler until further notice are Copyright Dylan Simon, and are licensed to the owners and users of the PureScript compiler project under the terms of the [MIT license]. |
+| [@leighman](http://github.com/leighman) | Jack Leigh | My existing contributions and all future contributions until further notice are Copyright Jack Leigh, and are licensed to the owners and users of the PureScript compiler project under the terms of the [MIT license]. |
 | [@nagisa](https://github.com/nagisa) | nagisa | I hereby release my [only contribution](https://github.com/purescript/purescript/commit/80287a5d0de619862d3b4cda9c1ee276d18fdcd8) into public domain. |
 | [@puffnfresh](https://github.com/puffnfresh) | Brian McKenna | All contributions I made during June 2015 were during employment at [SlamData, Inc.](#companies) who owns the copyright. I assign copyright of all my personal contributions before June 2015 to the owners of the PureScript compiler. |
+| [@nwolverson](https://github.com/nwolverson) | Nicholas Wolverson | Contributions I made during March 2020 until further notice are in employment of [Id3as Company](#companies), who own the copyright. All other contributions remain Copyright Nicholas Wolverson, and are licensed to the owners and users of the PureScript compiler project under the terms of the [MIT license]. |
 
+
 ### Companies
 
 | Username | Company | Terms |
 | :------- | :--- | :------ |
-| [@slamdata](https://github.com/slamdata) | SlamData, Inc. | Speaking on behalf of SlamData for SlamData employees, our existing contributions and all future contributions to the PureScript compiler are, until further notice, Copyright SlamData Inc., and are licensed to the owners and users of the PureScript compiler project under the terms of the [MIT license](http://opensource.org/licenses/MIT). - @jdegoes |
-| [@qfpl](https://github.com/qfpl) | qfpl @ Data61 / CSIRO | Our existing contributions to the PureScript compiler and all future contributions to the PureScript compiler until further notice, are Copyright Data61 / CSIRO, and are licensed to the owners and users of the PureScript compiler project under the terms of the [MIT license](http://opensource.org/licenses/MIT). - [@lightandlight](https://github.com/lightandlight) |
+| [@citizennet](https://github.com/citizennet) | CitizenNet Inc. | Our existing contributions to the PureScript compiler and all future contributions to the PureScript compiler until further notice, are Copyright CitizenNet Inc., and are licensed to the owners and users of the PureScript compiler project under the terms of the [MIT license]. - [@dbenyamin-cn](https://github.com/dbenyamin-cn) |
+| [@slamdata](https://github.com/slamdata) | SlamData, Inc. | Speaking on behalf of SlamData for SlamData employees, our existing contributions and all future contributions to the PureScript compiler are, until further notice, Copyright SlamData Inc., and are licensed to the owners and users of the PureScript compiler project under the terms of the [MIT license]. - @jdegoes |
+| [@qfpl](https://github.com/qfpl) | qfpl @ Data61 / CSIRO | Our existing contributions to the PureScript compiler and all future contributions to the PureScript compiler until further notice, are Copyright Data61 / CSIRO, and are licensed to the owners and users of the PureScript compiler project under the terms of the [MIT license]. - [@lightandlight](https://github.com/lightandlight) |
+| [@id3as](https://github.com/id3as) | id3as-company Ltd. | Speaking on behalf of id3as for id3as employees, our existing contributions and all future contributions to the PureScript compiler are, until further notice, Copyright id3as-company Ltd, and are licensed to the owners and users of the PureScript compiler project under the terms of the [MIT license]. - @adrianroe |
+| [@aeternity](https://aeternity.com/) | Aeternity Establishment | Our existing contributions to the PureScript compiler and all future contributions to the PureScript compiler until further notice, are Copyright Aeternity Establishment, and are licensed to the owners and users of the PureScript compiler project under the terms of the [MIT license]. |
+
+
+[MIT license]: https://opensource.org/licenses/MIT
diff --git a/INSTALL.md b/INSTALL.md
--- a/INSTALL.md
+++ b/INSTALL.md
@@ -1,21 +1,19 @@
 # Installation information
 
-If you are having difficulty installing the PureScript compiler, feel free to
-ask for help! A good place is the #purescript IRC channel on Freenode, the #purescript channel on [FPChat Slack](https://fpchat-invite.herokuapp.com/), or
-alternatively Stack Overflow.
+If you are having difficulty installing the PureScript compiler, feel free to ask for help! The best places are the [PureScript Discord](https://purescript.org/chat) or [PureScript Discourse](https://discourse.purescript.org).
 
 ## Requirements
 
-The PureScript compiler is built using GHC 8.6.4, and should be able to run on any operating system supported by GHC 8.6.4. In particular:
+The PureScript compiler is built using GHC 9.2.5, and should be able to run on any operating system supported by GHC 9.2.5. In particular:
 
 * for Windows users, versions predating Vista are not officially supported,
 * for macOS / OS X users, versions predating Mac OS X 10.7 (Lion) are not officially supported.
 
-See also <https://www.haskell.org/ghc/download_ghc_8_6_4.html> for more details about the operating systems which GHC 8.6.4 supports.
+See also <https://www.haskell.org/ghc/download_ghc_9_2_5.html> for more details about the operating systems which GHC 9.2.5 supports.
 
 ## Official prebuilt binaries
 
-Each release comes with prebuilt x86-64 binary bundles for Linux, mac OS, and Windows. Users of other operating systems or architectures will likely need to build the compiler from source; see below.
+Each [release](https://github.com/purescript/purescript/releases) comes with prebuilt x86-64 binary bundles for Linux, mac OS, and Windows. Users of other operating systems or architectures will likely need to build the compiler from source; see below.
 
 To install a binary bundle, simply extract it and place the `purs` executable somewhere on your PATH.
 
@@ -25,7 +23,8 @@
 
 * NPM: `npm install -g purescript`
 * Homebrew (for macOS): `brew install purescript`
-* [PSVM](https://github.com/ThomasCrevoisier/psvm-js): `npm install -g psvm`
+* FreeBSD binary packages: `pkg install hs-purescript`
+* GNU Guix: `guix install purescript`
 
 ## Compiling from source
 
@@ -44,13 +43,31 @@
 
 ## The "curses" library
 
-The PureScript REPL depends on the `curses` library (via the Haskell package
-`terminfo`). If you are having difficulty running the compiler, it may be
-because the `curses` library is missing.
+Prior to version v0.14.2, the PureScript REPL depends on the `curses` library
+by default (via the Haskell package `terminfo`). If you are having difficulty
+running the compiler, it may be because the `curses` library is missing. This
+problem may appear as a `libtinfo` error:
+```
+error while loading shared libraries: libtinfo.so.5: cannot open shared object file: No such file or directory
+```
 
 On Linux, you will probably need to install `ncurses` manually. On Ubuntu, for
 example, this can be done by running:
+```
+$ sudo apt install libtinfo5 libncurses5-dev
+```
 
+As of v0.14.2, this should no longer be necessary if you are using the prebuilt
+binaries or building the compiler from source with the default configuration.
+However, you can still opt into using `curses` by setting the Haskeline
+`terminfo` flag to `true`. This may improve the REPL experience slightly - for
+example, by providing better editing of long input lines.
+
+## EACCES error
+
+If you encounter this error while trying to install via `npm`:
 ```
-$ sudo apt-get install libncurses5-dev
+Error: EACCES: permission denied
 ```
+
+The best solution is to install [Node.js and npm via a node version manager](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm#using-a-node-version-manager-to-install-nodejs-and-npm). This error is due to permissions issues when installing packages globally. You can read more about this error in npm's guide to [resolving EACCES permissions errors when installing packages globally](https://docs.npmjs.com/getting-started/fixing-npm-permissions).
diff --git a/LICENSE b/LICENSE
--- a/LICENSE
+++ b/LICENSE
@@ -16,5036 +16,4944 @@
 
   Cabal
   Glob
-  SHA
-  aeson
-  aeson-better-errors
-  alex
-  ansi-terminal
-  ansi-wl-pprint
-  appar
-  array
-  async
-  attoparsec
-  auto-update
-  base
-  base-compat
-  base-orphans
-  base64-bytestring
-  basement
-  binary
-  blaze-builder
-  blaze-html
-  blaze-markup
-  bower-json
-  boxes
-  bsb-http-chunked
-  byteorder
-  bytestring
-  bytestring-builder
-  cabal-doctest
-  case-insensitive
-  cheapskate
-  clock
-  colour
-  conduit
-  conduit-extra
-  constraints
-  containers
-  cookie
-  cryptonite
-  css-text
-  data-default
-  data-default-class
-  data-default-instances-containers
-  data-default-instances-dlist
-  data-default-instances-old-locale
-  data-ordlist
-  deepseq
-  directory
-  dlist
-  easy-file
-  edit-distance
-  enclosed-exceptions
-  entropy
-  exceptions
-  fast-logger
-  file-embed
-  filepath
-  fsnotify
-  ghc-boot-th
-  ghc-prim
-  happy
-  hashable
-  haskeline
-  hinotify
-  http-date
-  http-types
-  http2
-  integer-gmp
-  integer-logarithms
-  iproute
-  language-javascript
-  lifted-async
-  lifted-base
-  memory
-  microlens
-  microlens-ghc
-  microlens-mtl
-  microlens-platform
-  microlens-th
-  mime-types
-  monad-control
-  monad-logger
-  monad-loops
-  mono-traversable
-  mtl
-  mtl-compat
-  network
-  network-byte-order
-  network-uri
-  old-locale
-  old-time
-  optparse-applicative
-  parallel
-  parsec
-  pattern-arrows
-  pretty
-  primitive
-  process
-  protolude
-  psqueues
-  random
-  regex-base
-  regex-tdfa
-  resourcet
-  safe
-  scientific
-  semigroups
-  shelly
-  simple-sendfile
-  sourcemap
-  split
-  stm
-  stm-chans
-  streaming-commons
-  stringsearch
-  syb
-  system-fileio
-  system-filepath
-  tagged
-  tagsoup
-  template-haskell
-  terminfo
-  text
-  th-abstraction
-  time
-  time-locale-compat
-  transformers
-  transformers-base
-  transformers-compat
-  typed-process
-  uniplate
-  unix
-  unix-compat
-  unix-time
-  unliftio-core
-  unordered-containers
-  utf8-string
-  uuid-types
-  vault
-  vector
-  vector-algorithms
-  void
-  wai
-  wai-app-static
-  wai-extra
-  wai-logger
-  wai-websockets
-  warp
-  websockets
-  word8
-  xss-sanitize
-  zlib
-
-Cabal LICENSE file:
-
-  Copyright (c) 2003-2017, Cabal Development Team.
-  See the AUTHORS file for the full list of copyright holders.
-  All rights reserved.
-
-  Redistribution and use in source and binary forms, with or without
-  modification, are permitted provided that the following conditions are
-  met:
-
-      * Redistributions of source code must retain the above copyright
-        notice, this list of conditions and the following disclaimer.
-
-      * Redistributions in binary form must reproduce the above
-        copyright notice, this list of conditions and the following
-        disclaimer in the documentation and/or other materials provided
-        with the distribution.
-
-      * Neither the name of Isaac Jones nor the names of other
-        contributors may be used to endorse or promote products derived
-        from this software without specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-Glob LICENSE file:
-
-  The code in Glob is released under the license below. Copyrights to parts of
-  the code are held by whoever wrote the code in question: see CREDITS.txt for a
-  list of authors.
-
-  Copyright (c) 2008-2018 <authors>
-  All rights reserved.
-
-  Redistribution and use in source and binary forms, with or without
-  modification, are permitted provided that the following conditions are met:
-      * Redistributions of source code must retain the above copyright
-        notice, this list of conditions and the following disclaimer.
-      * Redistributions in binary form must reproduce the above copyright
-        notice, this list of conditions and the following disclaimer in the
-        documentation and/or other materials provided with the distribution.
-      * Neither the name of the project nor the names of its contributors may be
-        used to endorse or promote products derived from this software without
-        specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR IMPLIED
-  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
-  EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
-  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
-  LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
-  OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
-  ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-SHA LICENSE file:
-
-  Copyright (c) 2008, Galois, Inc.
-  All rights reserved.
-
-  Redistribution and use in source and binary forms, with or without
-  modification, are permitted provided that the following conditions
-  are met:
-
-    * Redistributions of source code must retain the above copyright
-      notice, this list of conditions and the following disclaimer.
-    * Redistributions in binary form must reproduce the above copyright
-      notice, this list of conditions and the following disclaimer in
-      the documentation and/or other materials provided with the
-      distribution.
-    * Neither the name of the Galois, Inc. nor the names of its
-      contributors may be used to endorse or promote products derived
-      from this software without specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
-  FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-  COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-  BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-  LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-  CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-  LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
-  ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-  POSSIBILITY OF SUCH DAMAGE.
-
-aeson LICENSE file:
-
-  Copyright (c) 2011, MailRank, Inc.
-
-  All rights reserved.
-
-  Redistribution and use in source and binary forms, with or without
-  modification, are permitted provided that the following conditions
-  are met:
-
-  1. Redistributions of source code must retain the above copyright
-     notice, this list of conditions and the following disclaimer.
-
-  2. Redistributions in binary form must reproduce the above copyright
-     notice, this list of conditions and the following disclaimer in the
-     documentation and/or other materials provided with the distribution.
-
-  3. Neither the name of the author nor the names of his contributors
-     may be used to endorse or promote products derived from this software
-     without specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE CONTRIBUTORS ``AS IS'' AND ANY EXPRESS
-  OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-  DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR
-  ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-  DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-  OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
-  STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
-  ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-  POSSIBILITY OF SUCH DAMAGE.
-
-aeson-better-errors LICENSE file:
-
-  Copyright (c) 2015 Harry Garrood
-
-  Permission is hereby granted, free of charge, to any person obtaining
-  a copy of this software and associated documentation files (the
-  "Software"), to deal in the Software without restriction, including
-  without limitation the rights to use, copy, modify, merge, publish,
-  distribute, sublicense, and/or sell copies of the Software, and to
-  permit persons to whom the Software is furnished to do so, subject to
-  the following conditions:
-
-  The above copyright notice and this permission notice shall be included
-  in all copies or substantial portions of the Software.
-
-  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-  IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
-  CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-  TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-  SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-alex LICENSE file:
-
-  Copyright (c) 1995-2011, Chris Dornan and Simon Marlow
-  All rights reserved.
-
-  Redistribution and use in source and binary forms, with or without
-  modification, are permitted provided that the following conditions are
-  met:
-
-      * Redistributions of source code must retain the above copyright
-        notice, this list of conditions and the following disclaimer.
-
-      * Redistributions in binary form must reproduce the above
-        copyright notice, this list of conditions and the following
-        disclaimer in the documentation and/or other materials provided
-        with the distribution.
-
-      * Neither the name of the copyright holders, nor the names of the
-        contributors may be used to endorse or promote products derived
-        from this software without specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-ansi-terminal LICENSE file:
-
-  Copyright (c) 2008, Maximilian Bolingbroke
-  All rights reserved.
-
-  Redistribution and use in source and binary forms, with or without modification, are permitted
-  provided that the following conditions are met:
-
-      * Redistributions of source code must retain the above copyright notice, this list of
-        conditions and the following disclaimer.
-      * Redistributions in binary form must reproduce the above copyright notice, this list of
-        conditions and the following disclaimer in the documentation and/or other materials
-        provided with the distribution.
-      * Neither the name of Maximilian Bolingbroke nor the names of other contributors may be used to
-        endorse or promote products derived from this software without specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
-  IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-  FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
-  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-  DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
-  IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-  OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-ansi-wl-pprint LICENSE file:
-
-  Copyright 2008, Daan Leijen and Max Bolingbroke. All rights reserved.
-
-  Redistribution and use in source and binary forms, with or without
-  modification, are permitted provided that the following conditions are
-  met:
-
-    * Redistributions of source code must retain the above copyright
-      notice, this list of conditions and the following disclaimer.
-
-    * Redistributions in binary form must reproduce the above copyright
-      notice, this list of conditions and the following disclaimer in
-      the documentation and/or other materials provided with the
-      distribution.
-
-  This software is provided by the copyright holders "as is" and any
-  express or implied warranties, including, but not limited to, the
-  implied warranties of merchantability and fitness for a particular
-  purpose are disclaimed. In no event shall the copyright holders be
-  liable for any direct, indirect, incidental, special, exemplary, or
-  consequential damages (including, but not limited to, procurement of
-  substitute goods or services; loss of use, data, or profits; or
-  business interruption) however caused and on any theory of liability,
-  whether in contract, strict liability, or tort (including negligence
-  or otherwise) arising in any way out of the use of this software, even
-  if advised of the possibility of such damage.
-
-appar LICENSE file:
-
-  Copyright (c) 2009, IIJ Innovation Institute Inc.
-  All rights reserved.
-
-  Redistribution and use in source and binary forms, with or without
-  modification, are permitted provided that the following conditions
-  are met:
-
-    * Redistributions of source code must retain the above copyright
-      notice, this list of conditions and the following disclaimer.
-    * Redistributions in binary form must reproduce the above copyright
-      notice, this list of conditions and the following disclaimer in
-      the documentation and/or other materials provided with the
-      distribution.
-    * Neither the name of the copyright holders nor the names of its
-      contributors may be used to endorse or promote products derived
-      from this software without specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
-  FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-  COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-  BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-  LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-  CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-  LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
-  ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-  POSSIBILITY OF SUCH DAMAGE.
-
-array LICENSE file:
-
-  This library (libraries/base) is derived from code from several
-  sources:
-
-    * Code from the GHC project which is largely (c) The University of
-      Glasgow, and distributable under a BSD-style license (see below),
-
-    * Code from the Haskell 98 Report which is (c) Simon Peyton Jones
-      and freely redistributable (but see the full license for
-      restrictions).
-
-    * Code from the Haskell Foreign Function Interface specification,
-      which is (c) Manuel M. T. Chakravarty and freely redistributable
-      (but see the full license for restrictions).
-
-  The full text of these licenses is reproduced below.  All of the
-  licenses are BSD-style or compatible.
-
-  -----------------------------------------------------------------------------
-
-  The Glasgow Haskell Compiler License
-
-  Copyright 2004, The University Court of the University of Glasgow.
-  All rights reserved.
-
-  Redistribution and use in source and binary forms, with or without
-  modification, are permitted provided that the following conditions are met:
-
-  - Redistributions of source code must retain the above copyright notice,
-  this list of conditions and the following disclaimer.
-
-  - Redistributions in binary form must reproduce the above copyright notice,
-  this list of conditions and the following disclaimer in the documentation
-  and/or other materials provided with the distribution.
-
-  - Neither name of the University nor the names of its contributors may be
-  used to endorse or promote products derived from this software without
-  specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE UNIVERSITY COURT OF THE UNIVERSITY OF
-  GLASGOW AND THE CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
-  INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-  FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-  UNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW OR THE CONTRIBUTORS BE LIABLE
-  FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-  DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-  SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-  CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-  LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-  OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
-  DAMAGE.
-
-  -----------------------------------------------------------------------------
-
-  Code derived from the document "Report on the Programming Language
-  Haskell 98", is distributed under the following license:
-
-    Copyright (c) 2002 Simon Peyton Jones
-
-    The authors intend this Report to belong to the entire Haskell
-    community, and so we grant permission to copy and distribute it for
-    any purpose, provided that it is reproduced in its entirety,
-    including this Notice.  Modified versions of this Report may also be
-    copied and distributed for any purpose, provided that the modified
-    version is clearly presented as such, and that it does not claim to
-    be a definition of the Haskell 98 Language.
-
-  -----------------------------------------------------------------------------
-
-  Code derived from the document "The Haskell 98 Foreign Function
-  Interface, An Addendum to the Haskell 98 Report" is distributed under
-  the following license:
-
-    Copyright (c) 2002 Manuel M. T. Chakravarty
-
-    The authors intend this Report to belong to the entire Haskell
-    community, and so we grant permission to copy and distribute it for
-    any purpose, provided that it is reproduced in its entirety,
-    including this Notice.  Modified versions of this Report may also be
-    copied and distributed for any purpose, provided that the modified
-    version is clearly presented as such, and that it does not claim to
-    be a definition of the Haskell 98 Foreign Function Interface.
-
-  -----------------------------------------------------------------------------
-
-async LICENSE file:
-
-  Copyright (c) 2012, Simon Marlow
-
-  All rights reserved.
-
-  Redistribution and use in source and binary forms, with or without
-  modification, are permitted provided that the following conditions are met:
-
-      * Redistributions of source code must retain the above copyright
-        notice, this list of conditions and the following disclaimer.
-
-      * Redistributions in binary form must reproduce the above
-        copyright notice, this list of conditions and the following
-        disclaimer in the documentation and/or other materials provided
-        with the distribution.
-
-      * Neither the name of Simon Marlow nor the names of other
-        contributors may be used to endorse or promote products derived
-        from this software without specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-attoparsec LICENSE file:
-
-  Copyright (c) Lennart Kolmodin
-
-  All rights reserved.
-
-  Redistribution and use in source and binary forms, with or without
-  modification, are permitted provided that the following conditions
-  are met:
-
-  1. Redistributions of source code must retain the above copyright
-     notice, this list of conditions and the following disclaimer.
-
-  2. Redistributions in binary form must reproduce the above copyright
-     notice, this list of conditions and the following disclaimer in the
-     documentation and/or other materials provided with the distribution.
-
-  3. Neither the name of the author nor the names of his contributors
-     may be used to endorse or promote products derived from this software
-     without specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE CONTRIBUTORS ``AS IS'' AND ANY EXPRESS
-  OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-  DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR
-  ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-  DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-  OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
-  STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
-  ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-  POSSIBILITY OF SUCH DAMAGE.
-
-auto-update LICENSE file:
-
-  Copyright (c) 2014 Michael Snoyman
-
-  Permission is hereby granted, free of charge, to any person obtaining
-  a copy of this software and associated documentation files (the
-  "Software"), to deal in the Software without restriction, including
-  without limitation the rights to use, copy, modify, merge, publish,
-  distribute, sublicense, and/or sell copies of the Software, and to
-  permit persons to whom the Software is furnished to do so, subject to
-  the following conditions:
-
-  The above copyright notice and this permission notice shall be included
-  in all copies or substantial portions of the Software.
-
-  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-  IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
-  CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-  TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-  SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-base LICENSE file:
-
-  This library (libraries/base) is derived from code from several
-  sources:
-
-    * Code from the GHC project which is largely (c) The University of
-      Glasgow, and distributable under a BSD-style license (see below),
-
-    * Code from the Haskell 98 Report which is (c) Simon Peyton Jones
-      and freely redistributable (but see the full license for
-      restrictions).
-
-    * Code from the Haskell Foreign Function Interface specification,
-      which is (c) Manuel M. T. Chakravarty and freely redistributable
-      (but see the full license for restrictions).
-
-  The full text of these licenses is reproduced below.  All of the
-  licenses are BSD-style or compatible.
-
-  -----------------------------------------------------------------------------
-
-  The Glasgow Haskell Compiler License
-
-  Copyright 2004, The University Court of the University of Glasgow.
-  All rights reserved.
-
-  Redistribution and use in source and binary forms, with or without
-  modification, are permitted provided that the following conditions are met:
-
-  - Redistributions of source code must retain the above copyright notice,
-  this list of conditions and the following disclaimer.
-
-  - Redistributions in binary form must reproduce the above copyright notice,
-  this list of conditions and the following disclaimer in the documentation
-  and/or other materials provided with the distribution.
-
-  - Neither name of the University nor the names of its contributors may be
-  used to endorse or promote products derived from this software without
-  specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE UNIVERSITY COURT OF THE UNIVERSITY OF
-  GLASGOW AND THE CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
-  INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-  FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-  UNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW OR THE CONTRIBUTORS BE LIABLE
-  FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-  DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-  SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-  CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-  LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-  OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
-  DAMAGE.
-
-  -----------------------------------------------------------------------------
-
-  Code derived from the document "Report on the Programming Language
-  Haskell 98", is distributed under the following license:
-
-    Copyright (c) 2002 Simon Peyton Jones
-
-    The authors intend this Report to belong to the entire Haskell
-    community, and so we grant permission to copy and distribute it for
-    any purpose, provided that it is reproduced in its entirety,
-    including this Notice.  Modified versions of this Report may also be
-    copied and distributed for any purpose, provided that the modified
-    version is clearly presented as such, and that it does not claim to
-    be a definition of the Haskell 98 Language.
-
-  -----------------------------------------------------------------------------
-
-  Code derived from the document "The Haskell 98 Foreign Function
-  Interface, An Addendum to the Haskell 98 Report" is distributed under
-  the following license:
-
-    Copyright (c) 2002 Manuel M. T. Chakravarty
-
-    The authors intend this Report to belong to the entire Haskell
-    community, and so we grant permission to copy and distribute it for
-    any purpose, provided that it is reproduced in its entirety,
-    including this Notice.  Modified versions of this Report may also be
-    copied and distributed for any purpose, provided that the modified
-    version is clearly presented as such, and that it does not claim to
-    be a definition of the Haskell 98 Foreign Function Interface.
-
-  -----------------------------------------------------------------------------
-
-base-compat LICENSE file:
-
-  Copyright (c) 2012-2018 Simon Hengel <sol@typeful.net> and Ryan Scott <ryan.gl.scott@gmail.com>
-
-  Permission is hereby granted, free of charge, to any person obtaining a copy
-  of this software and associated documentation files (the "Software"), to deal
-  in the Software without restriction, including without limitation the rights
-  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-  copies of the Software, and to permit persons to whom the Software is
-  furnished to do so, subject to the following conditions:
-
-  The above copyright notice and this permission notice shall be included in
-  all copies or substantial portions of the Software.
-
-  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-  THE SOFTWARE.
-
-base-orphans LICENSE file:
-
-  Copyright (c) 2015-2017 Simon Hengel <sol@typeful.net>, João Cristóvão <jmacristovao@gmail.com>, Ryan Scott <ryan.gl.scott@gmail.com>
-
-  Permission is hereby granted, free of charge, to any person obtaining
-  a copy of this software and associated documentation files (the
-  "Software"), to deal in the Software without restriction, including
-  without limitation the rights to use, copy, modify, merge, publish,
-  distribute, sublicense, and/or sell copies of the Software, and to
-  permit persons to whom the Software is furnished to do so, subject to
-  the following conditions:
-
-  The above copyright notice and this permission notice shall be included
-  in all copies or substantial portions of the Software.
-
-  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-  IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
-  CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-  TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-  SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-base64-bytestring LICENSE file:
-
-  Copyright (c) 2010 Bryan O'Sullivan <bos@serpentine.com>
-
-  All rights reserved.
-
-  Redistribution and use in source and binary forms, with or without
-  modification, are permitted provided that the following conditions
-  are met:
-
-  1. Redistributions of source code must retain the above copyright
-     notice, this list of conditions and the following disclaimer.
-
-  2. Redistributions in binary form must reproduce the above copyright
-     notice, this list of conditions and the following disclaimer in the
-     documentation and/or other materials provided with the distribution.
-
-  3. Neither the name of the author nor the names of his contributors
-     may be used to endorse or promote products derived from this software
-     without specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE CONTRIBUTORS ``AS IS'' AND ANY EXPRESS
-  OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-  DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR
-  ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-  DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-  OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
-  STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
-  ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-  POSSIBILITY OF SUCH DAMAGE.
-
-basement LICENSE file:
-
-  Copyright (c) 2015-2017 Vincent Hanquez <vincent@snarc.org>
-  Copyright (c) 2017      Foundation Maintainers
-
-  All rights reserved.
-
-  Redistribution and use in source and binary forms, with or without
-  modification, are permitted provided that the following conditions
-  are met:
-  1. Redistributions of source code must retain the above copyright
-     notice, this list of conditions and the following disclaimer.
-  2. Redistributions in binary form must reproduce the above copyright
-     notice, this list of conditions and the following disclaimer in the
-     documentation and/or other materials provided with the distribution.
-  3. Neither the name of the author nor the names of his contributors
-     may be used to endorse or promote products derived from this software
-     without specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS AS IS'' AND
-  ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-  ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE
-  FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-  DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-  OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-  LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-  OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-  SUCH DAMAGE.
-
-binary LICENSE file:
-
-  Copyright (c) Lennart Kolmodin
-
-  All rights reserved.
-
-  Redistribution and use in source and binary forms, with or without
-  modification, are permitted provided that the following conditions
-  are met:
-
-  1. Redistributions of source code must retain the above copyright
-     notice, this list of conditions and the following disclaimer.
-
-  2. Redistributions in binary form must reproduce the above copyright
-     notice, this list of conditions and the following disclaimer in the
-     documentation and/or other materials provided with the distribution.
-
-  3. Neither the name of the author nor the names of his contributors
-     may be used to endorse or promote products derived from this software
-     without specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE CONTRIBUTORS ``AS IS'' AND ANY EXPRESS
-  OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-  DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR
-  ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-  DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-  OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
-  STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
-  ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-  POSSIBILITY OF SUCH DAMAGE.
-
-blaze-builder LICENSE file:
-
-  Copyright Jasper Van der Jeugt 2010, Simon Meier 2010 & 2011
-
-  All rights reserved.
-
-  Redistribution and use in source and binary forms, with or without
-  modification, are permitted provided that the following conditions are met:
-
-      * Redistributions of source code must retain the above copyright
-        notice, this list of conditions and the following disclaimer.
-
-      * Redistributions in binary form must reproduce the above
-        copyright notice, this list of conditions and the following
-        disclaimer in the documentation and/or other materials provided
-        with the distribution.
-
-      * Neither the name of Jasper Van der Jeugt nor the names of other
-        contributors may be used to endorse or promote products derived
-        from this software without specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-blaze-html LICENSE file:
-
-  Copyright Jasper Van der Jeugt 2010
-
-  All rights reserved.
-
-  Redistribution and use in source and binary forms, with or without
-  modification, are permitted provided that the following conditions are met:
-
-      * Redistributions of source code must retain the above copyright
-        notice, this list of conditions and the following disclaimer.
-
-      * Redistributions in binary form must reproduce the above
-        copyright notice, this list of conditions and the following
-        disclaimer in the documentation and/or other materials provided
-        with the distribution.
-
-      * Neither the name of Jasper Van der Jeugt nor the names of other
-        contributors may be used to endorse or promote products derived
-        from this software without specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-blaze-markup LICENSE file:
-
-  Copyright Jasper Van der Jeugt 2010
-
-  All rights reserved.
-
-  Redistribution and use in source and binary forms, with or without
-  modification, are permitted provided that the following conditions are met:
-
-      * Redistributions of source code must retain the above copyright
-        notice, this list of conditions and the following disclaimer.
-
-      * Redistributions in binary form must reproduce the above
-        copyright notice, this list of conditions and the following
-        disclaimer in the documentation and/or other materials provided
-        with the distribution.
-
-      * Neither the name of Jasper Van der Jeugt nor the names of other
-        contributors may be used to endorse or promote products derived
-        from this software without specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-bower-json LICENSE file:
-
-  Copyright (c) 2015 Harry Garrood
-
-  Permission is hereby granted, free of charge, to any person obtaining
-  a copy of this software and associated documentation files (the
-  "Software"), to deal in the Software without restriction, including
-  without limitation the rights to use, copy, modify, merge, publish,
-  distribute, sublicense, and/or sell copies of the Software, and to
-  permit persons to whom the Software is furnished to do so, subject to
-  the following conditions:
-
-  The above copyright notice and this permission notice shall be included
-  in all copies or substantial portions of the Software.
-
-  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-  IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
-  CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-  TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-  SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-boxes LICENSE file:
-
-  Copyright (c) Brent Yorgey 2008
-
-  Redistribution and use in source and binary forms, with or without
-  modification, are permitted provided that the following conditions
-  are met:
-  1. Redistributions of source code must retain the above copyright
-     notice, this list of conditions and the following disclaimer.
-  2. Redistributions in binary form must reproduce the above copyright
-     notice, this list of conditions and the following disclaimer in the
-     documentation and/or other materials provided with the distribution.
-  3. Neither the name of the author nor the names of other contributors
-     may be used to endorse or promote products derived from this software
-     without specific prior written permission.
-
-  All other rights are reserved.
-
-  THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND
-  ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-  ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE
-  FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-  DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-  OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-  LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-  OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-  SUCH DAMAGE.
-
-bsb-http-chunked LICENSE file:
-
-  Copyright Jasper Van der Jeugt 2010, Simon Meier 2010 & 2011
-
-  All rights reserved.
-
-  Redistribution and use in source and binary forms, with or without
-  modification, are permitted provided that the following conditions are met:
-
-      * Redistributions of source code must retain the above copyright
-        notice, this list of conditions and the following disclaimer.
-
-      * Redistributions in binary form must reproduce the above
-        copyright notice, this list of conditions and the following
-        disclaimer in the documentation and/or other materials provided
-        with the distribution.
-
-      * Neither the name of Jasper Van der Jeugt nor the names of other
-        contributors may be used to endorse or promote products derived
-        from this software without specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-byteorder LICENSE file:
-
-  Copyright 2009, Antoine Latter
-
-  All rights reserved.
-
-  Redistribution and use in source and binary forms, with or without
-  modification, are permitted provided that the following conditions are met:
-
-      * Redistributions of source code must retain the above copyright
-        notice, this list of conditions and the following disclaimer.
-
-      * Redistributions in binary form must reproduce the above
-        copyright notice, this list of conditions and the following
-        disclaimer in the documentation and/or other materials provided
-        with the distribution.
-
-      * Neither the name of the author nor the names of other
-        contributors may be used to endorse or promote products derived
-        from this software without specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-bytestring LICENSE file:
-
-  Copyright (c) Don Stewart 2005-2009
-            (c) Duncan Coutts 2006-2015
-            (c) David Roundy 2003-2005
-            (c) Simon Meier 2010-2011
-
-  All rights reserved.
-
-  Redistribution and use in source and binary forms, with or without
-  modification, are permitted provided that the following conditions
-  are met:
-  1. Redistributions of source code must retain the above copyright
-     notice, this list of conditions and the following disclaimer.
-  2. Redistributions in binary form must reproduce the above copyright
-     notice, this list of conditions and the following disclaimer in the
-     documentation and/or other materials provided with the distribution.
-  3. Neither the name of the author nor the names of his contributors
-     may be used to endorse or promote products derived from this software
-     without specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
-  ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-  ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE
-  FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-  DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-  OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-  LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-  OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-  SUCH DAMAGE.
-
-bytestring-builder LICENSE file:
-
-  Copyright Jasper Van der Jeugt 2010, Simon Meier 2010-2013
-
-  All rights reserved.
-
-  Redistribution and use in source and binary forms, with or without
-  modification, are permitted provided that the following conditions are met:
-
-      * Redistributions of source code must retain the above copyright
-        notice, this list of conditions and the following disclaimer.
-
-      * Redistributions in binary form must reproduce the above
-        copyright notice, this list of conditions and the following
-        disclaimer in the documentation and/or other materials provided
-        with the distribution.
-
-      * Neither the name of Jasper Van der Jeugt nor the names of other
-        contributors may be used to endorse or promote products derived
-        from this software without specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-cabal-doctest LICENSE file:
-
-  Copyright (c) 2017, Oleg Grenrus
-
-  All rights reserved.
-
-  Redistribution and use in source and binary forms, with or without
-  modification, are permitted provided that the following conditions are met:
-
-      * Redistributions of source code must retain the above copyright
-        notice, this list of conditions and the following disclaimer.
-
-      * Redistributions in binary form must reproduce the above
-        copyright notice, this list of conditions and the following
-        disclaimer in the documentation and/or other materials provided
-        with the distribution.
-
-      * Neither the name of Oleg Grenrus nor the names of other
-        contributors may be used to endorse or promote products derived
-        from this software without specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-case-insensitive LICENSE file:
-
-  Copyright (c) 2011-2013 Bas van Dijk
-
-  All rights reserved.
-
-  Redistribution and use in source and binary forms, with or without
-  modification, are permitted provided that the following conditions are
-  met:
-
-      * Redistributions of source code must retain the above copyright
-        notice, this list of conditions and the following disclaimer.
-
-      * Redistributions in binary form must reproduce the above
-        copyright notice, this list of conditions and the following
-        disclaimer in the documentation and/or other materials provided
-        with the distribution.
-
-      * The name of Bas van Dijk and the names of contributors may NOT
-        be used to endorse or promote products derived from this
-        software without specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-cheapskate LICENSE file:
-
-  Copyright (c) 2013, John MacFarlane
-
-  All rights reserved.
-
-  Redistribution and use in source and binary forms, with or without
-  modification, are permitted provided that the following conditions are met:
-
-      * Redistributions of source code must retain the above copyright
-        notice, this list of conditions and the following disclaimer.
-
-      * Redistributions in binary form must reproduce the above
-        copyright notice, this list of conditions and the following
-        disclaimer in the documentation and/or other materials provided
-        with the distribution.
-
-      * Neither the name of John MacFarlane nor the names of other
-        contributors may be used to endorse or promote products derived
-        from this software without specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-clock LICENSE file:
-
-  Copyright (c) 2009-2012, Cetin Sert
-  Copyright (c) 2010, Eugene Kirpichov
-
-  All rights reserved.
-
-  Redistribution and use in source and binary forms, with or without
-  modification, are permitted provided that the following conditions are
-  met:
-
-      * Redistributions of source code must retain the above copyright
-        notice, this list of conditions and the following disclaimer.
-
-      * Redistributions in binary form must reproduce the above
-        copyright notice, this list of conditions and the following
-        disclaimer in the documentation and/or other materials provided
-        with the distribution.
-
-      * The names of contributors may not be used to endorse or promote
-        products derived from this software without specific prior
-        written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-colour LICENSE file:
-
-  Copyright (c) 2008, 2009
-  Russell O'Connor
-
-  Permission is hereby granted, free of charge, to any person obtaining a copy
-  of this software and associated documentation files (the "Software"), to deal
-  in the Software without restriction, including without limitation the rights
-  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-  copies of the Software, and to permit persons to whom the Software is
-  furnished to do so, subject to the following conditions:
-
-  The above copyright notice and this permission notice shall be included in
-  all copies or substantial portions of the Software.
-
-  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-  THE SOFTWARE.
-
-conduit LICENSE file:
-
-  Copyright (c) 2012 Michael Snoyman, http://www.yesodweb.com/
-
-  Permission is hereby granted, free of charge, to any person obtaining
-  a copy of this software and associated documentation files (the
-  "Software"), to deal in the Software without restriction, including
-  without limitation the rights to use, copy, modify, merge, publish,
-  distribute, sublicense, and/or sell copies of the Software, and to
-  permit persons to whom the Software is furnished to do so, subject to
-  the following conditions:
-
-  The above copyright notice and this permission notice shall be
-  included in all copies or substantial portions of the Software.
-
-  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-  NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-  LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-  OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-  WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-conduit-extra LICENSE file:
-
-  Copyright (c) 2012 Michael Snoyman, http://www.yesodweb.com/
-
-  Permission is hereby granted, free of charge, to any person obtaining
-  a copy of this software and associated documentation files (the
-  "Software"), to deal in the Software without restriction, including
-  without limitation the rights to use, copy, modify, merge, publish,
-  distribute, sublicense, and/or sell copies of the Software, and to
-  permit persons to whom the Software is furnished to do so, subject to
-  the following conditions:
-
-  The above copyright notice and this permission notice shall be
-  included in all copies or substantial portions of the Software.
-
-  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-  NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-  LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-  OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-  WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-constraints LICENSE file:
-
-  Copyright 2011-2015 Edward Kmett
-
-  All rights reserved.
-
-  Redistribution and use in source and binary forms, with or without
-  modification, are permitted provided that the following conditions
-  are met:
-
-  1. Redistributions of source code must retain the above copyright
-     notice, this list of conditions and the following disclaimer.
-
-  2. Redistributions in binary form must reproduce the above copyright
-     notice, this list of conditions and the following disclaimer in the
-     documentation and/or other materials provided with the distribution.
-
-  THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR
-  IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-  DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR
-  ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-  DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-  OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
-  STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
-  ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-  POSSIBILITY OF SUCH DAMAGE.
-
-containers LICENSE file:
-
-  The Glasgow Haskell Compiler License
-
-  Copyright 2004, The University Court of the University of Glasgow.
-  All rights reserved.
-
-  Redistribution and use in source and binary forms, with or without
-  modification, are permitted provided that the following conditions are met:
-
-  - Redistributions of source code must retain the above copyright notice,
-  this list of conditions and the following disclaimer.
-
-  - Redistributions in binary form must reproduce the above copyright notice,
-  this list of conditions and the following disclaimer in the documentation
-  and/or other materials provided with the distribution.
-
-  - Neither name of the University nor the names of its contributors may be
-  used to endorse or promote products derived from this software without
-  specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE UNIVERSITY COURT OF THE UNIVERSITY OF
-  GLASGOW AND THE CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
-  INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-  FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-  UNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW OR THE CONTRIBUTORS BE LIABLE
-  FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-  DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-  SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-  CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-  LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-  OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
-  DAMAGE.
-
-cookie LICENSE file:
-
-  Copyright (c) 2010 Michael Snoyman, http://www.yesodweb.com/
-
-  Permission is hereby granted, free of charge, to any person obtaining
-  a copy of this software and associated documentation files (the
-  "Software"), to deal in the Software without restriction, including
-  without limitation the rights to use, copy, modify, merge, publish,
-  distribute, sublicense, and/or sell copies of the Software, and to
-  permit persons to whom the Software is furnished to do so, subject to
-  the following conditions:
-
-  The above copyright notice and this permission notice shall be
-  included in all copies or substantial portions of the Software.
-
-  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-  NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-  LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-  OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-  WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-cryptonite LICENSE file:
-
-  Copyright (c) 2006-2015 Vincent Hanquez <vincent@snarc.org>
-
-  All rights reserved.
-
-  Redistribution and use in source and binary forms, with or without
-  modification, are permitted provided that the following conditions
-  are met:
-
-  1. Redistributions of source code must retain the above copyright
-     notice, this list of conditions and the following disclaimer.
-  2. Redistributions in binary form must reproduce the above copyright
-     notice, this list of conditions and the following disclaimer in the
-     documentation and/or other materials provided with the distribution.
-  3. Neither the name of the author nor the names of his contributors
-     may be used to endorse or promote products derived from this software
-     without specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS AS IS'' AND
-  ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-  ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE
-  FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-  DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-  OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-  LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-  OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-  SUCH DAMAGE.
-
-css-text LICENSE file:
-
-  Copyright (c) 2010 Michael Snoyman, http://www.yesodweb.com/
-
-  Permission is hereby granted, free of charge, to any person obtaining
-  a copy of this software and associated documentation files (the
-  "Software"), to deal in the Software without restriction, including
-  without limitation the rights to use, copy, modify, merge, publish,
-  distribute, sublicense, and/or sell copies of the Software, and to
-  permit persons to whom the Software is furnished to do so, subject to
-  the following conditions:
-
-  The above copyright notice and this permission notice shall be
-  included in all copies or substantial portions of the Software.
-
-  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-  NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-  LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-  OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-  WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-data-default LICENSE file:
-
-  Copyright (c) 2013 Lukas Mai
-
-  All rights reserved.
-
-  Redistribution and use in source and binary forms, with or without modification,
-  are permitted provided that the following conditions are met:
-
-  * Redistributions of source code must retain the above copyright notice, this
-    list of conditions and the following disclaimer.
-  * Redistributions in binary form must reproduce the above copyright notice,
-    this list of conditions and the following disclaimer in the documentation
-    and/or other materials provided with the distribution.
-  * Neither the name of the author nor the names of his contributors
-    may be used to endorse or promote products derived from this software
-    without specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-  ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-  DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE
-  FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-  DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-  SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-  CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-  OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-data-default-class LICENSE file:
-
-  Copyright (c) 2013 Lukas Mai
-
-  All rights reserved.
-
-  Redistribution and use in source and binary forms, with or without modification,
-  are permitted provided that the following conditions are met:
-
-  * Redistributions of source code must retain the above copyright notice, this
-    list of conditions and the following disclaimer.
-  * Redistributions in binary form must reproduce the above copyright notice,
-    this list of conditions and the following disclaimer in the documentation
-    and/or other materials provided with the distribution.
-  * Neither the name of the author nor the names of his contributors
-    may be used to endorse or promote products derived from this software
-    without specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-  ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-  DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE
-  FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-  DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-  SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-  CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-  OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-data-default-instances-containers LICENSE file:
-
-  Copyright (c) 2013 Lukas Mai
-
-  All rights reserved.
-
-  Redistribution and use in source and binary forms, with or without modification,
-  are permitted provided that the following conditions are met:
-
-  * Redistributions of source code must retain the above copyright notice, this
-    list of conditions and the following disclaimer.
-  * Redistributions in binary form must reproduce the above copyright notice,
-    this list of conditions and the following disclaimer in the documentation
-    and/or other materials provided with the distribution.
-  * Neither the name of the author nor the names of his contributors
-    may be used to endorse or promote products derived from this software
-    without specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY LUKAS MAI AND CONTRIBUTORS "AS IS" AND ANY
-  EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-  DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-  DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-  (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-  LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-  ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-  SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-data-default-instances-dlist LICENSE file:
-
-  Copyright (c) 2013 Lukas Mai
-
-  All rights reserved.
-
-  Redistribution and use in source and binary forms, with or without modification,
-  are permitted provided that the following conditions are met:
-
-  * Redistributions of source code must retain the above copyright notice, this
-    list of conditions and the following disclaimer.
-  * Redistributions in binary form must reproduce the above copyright notice,
-    this list of conditions and the following disclaimer in the documentation
-    and/or other materials provided with the distribution.
-  * Neither the name of the author nor the names of his contributors
-    may be used to endorse or promote products derived from this software
-    without specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY LUKAS MAI AND CONTRIBUTORS "AS IS" AND ANY
-  EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-  DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-  DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-  (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-  LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-  ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-  SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-data-default-instances-old-locale LICENSE file:
-
-  Copyright (c) 2013 Lukas Mai
-
-  All rights reserved.
-
-  Redistribution and use in source and binary forms, with or without modification,
-  are permitted provided that the following conditions are met:
-
-  * Redistributions of source code must retain the above copyright notice, this
-    list of conditions and the following disclaimer.
-  * Redistributions in binary form must reproduce the above copyright notice,
-    this list of conditions and the following disclaimer in the documentation
-    and/or other materials provided with the distribution.
-  * Neither the name of the author nor the names of his contributors
-    may be used to endorse or promote products derived from this software
-    without specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY LUKAS MAI AND CONTRIBUTORS "AS IS" AND ANY
-  EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-  DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-  DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-  (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-  LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-  ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-  SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-data-ordlist LICENSE file:
-
-  Copyright (c) 2009-2010, Melding Monads
-  All rights reserved.
-
-  Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
-
-      * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
-      * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
-      * Neither the name of Melding Monads nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-deepseq LICENSE file:
-
-  This library (deepseq) is derived from code from the GHC project which
-  is largely (c) The University of Glasgow, and distributable under a
-  BSD-style license (see below).
-
-  -----------------------------------------------------------------------------
-
-  The Glasgow Haskell Compiler License
-
-  Copyright 2001-2009, The University Court of the University of Glasgow.
-  All rights reserved.
-
-  Redistribution and use in source and binary forms, with or without
-  modification, are permitted provided that the following conditions are met:
-
-  - Redistributions of source code must retain the above copyright notice,
-  this list of conditions and the following disclaimer.
-
-  - Redistributions in binary form must reproduce the above copyright notice,
-  this list of conditions and the following disclaimer in the documentation
-  and/or other materials provided with the distribution.
-
-  - Neither name of the University nor the names of its contributors may be
-  used to endorse or promote products derived from this software without
-  specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE UNIVERSITY COURT OF THE UNIVERSITY OF
-  GLASGOW AND THE CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
-  INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-  FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-  UNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW OR THE CONTRIBUTORS BE LIABLE
-  FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-  DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-  SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-  CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-  LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-  OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
-  DAMAGE.
-
-  -----------------------------------------------------------------------------
-
-directory LICENSE file:
-
-  This library (libraries/base) is derived from code from two
-  sources:
-
-    * Code from the GHC project which is largely (c) The University of
-      Glasgow, and distributable under a BSD-style license (see below),
-
-    * Code from the Haskell 98 Report which is (c) Simon Peyton Jones
-      and freely redistributable (but see the full license for
-      restrictions).
-
-  The full text of these licenses is reproduced below.  Both of the
-  licenses are BSD-style or compatible.
-
-  -----------------------------------------------------------------------------
-
-  The Glasgow Haskell Compiler License
-
-  Copyright 2004, The University Court of the University of Glasgow.
-  All rights reserved.
-
-  Redistribution and use in source and binary forms, with or without
-  modification, are permitted provided that the following conditions are met:
-
-  - Redistributions of source code must retain the above copyright notice,
-  this list of conditions and the following disclaimer.
-
-  - Redistributions in binary form must reproduce the above copyright notice,
-  this list of conditions and the following disclaimer in the documentation
-  and/or other materials provided with the distribution.
-
-  - Neither name of the University nor the names of its contributors may be
-  used to endorse or promote products derived from this software without
-  specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE UNIVERSITY COURT OF THE UNIVERSITY OF
-  GLASGOW AND THE CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
-  INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-  FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-  UNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW OR THE CONTRIBUTORS BE LIABLE
-  FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-  DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-  SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-  CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-  LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-  OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
-  DAMAGE.
-
-  -----------------------------------------------------------------------------
-
-  Code derived from the document "Report on the Programming Language
-  Haskell 98", is distributed under the following license:
-
-    Copyright (c) 2002 Simon Peyton Jones
-
-    The authors intend this Report to belong to the entire Haskell
-    community, and so we grant permission to copy and distribute it for
-    any purpose, provided that it is reproduced in its entirety,
-    including this Notice.  Modified versions of this Report may also be
-    copied and distributed for any purpose, provided that the modified
-    version is clearly presented as such, and that it does not claim to
-    be a definition of the Haskell 98 Language.
-
-  -----------------------------------------------------------------------------
-
-dlist LICENSE file:
-
-  Copyright (c) 2006-2009 Don Stewart, 2013-2016 Sean Leather
-
-  All rights reserved.
-
-  Redistribution and use in source and binary forms, with or without
-  modification, are permitted provided that the following conditions are
-  met:
-
-      * Redistributions of source code must retain the above copyright
-        notice, this list of conditions and the following disclaimer.
-
-      * Redistributions in binary form must reproduce the above
-        copyright notice, this list of conditions and the following
-        disclaimer in the documentation and/or other materials provided
-        with the distribution.
-
-      * Neither the name of Don Stewart nor the names of other
-        contributors may be used to endorse or promote products derived
-        from this software without specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-easy-file LICENSE file:
-
-  Copyright (c) 2009, IIJ Innovation Institute Inc.
-  All rights reserved.
-
-  Redistribution and use in source and binary forms, with or without
-  modification, are permitted provided that the following conditions
-  are met:
-
-    * Redistributions of source code must retain the above copyright
-      notice, this list of conditions and the following disclaimer.
-    * Redistributions in binary form must reproduce the above copyright
-      notice, this list of conditions and the following disclaimer in
-      the documentation and/or other materials provided with the
-      distribution.
-    * Neither the name of the copyright holders nor the names of its
-      contributors may be used to endorse or promote products derived
-      from this software without specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
-  FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-  COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-  BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-  LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-  CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-  LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
-  ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-  POSSIBILITY OF SUCH DAMAGE.
-
-edit-distance LICENSE file:
-
-  Copyright (c) 2008-2013 Maximilian Bolingbroke
-  All rights reserved.
-
-  Redistribution and use in source and binary forms, with or without modification, are permitted
-  provided that the following conditions are met:
-
-      * Redistributions of source code must retain the above copyright notice, this list of
-        conditions and the following disclaimer.
-      * Redistributions in binary form must reproduce the above copyright notice, this list of
-        conditions and the following disclaimer in the documentation and/or other materials
-        provided with the distribution.
-      * Neither the name of Maximilian Bolingbroke nor the names of other contributors may be used to
-        endorse or promote products derived from this software without specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
-  IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-  FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
-  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-  DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
-  IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-  OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-enclosed-exceptions LICENSE file:
-
-  Copyright (c) 2012 Michael Snoyman, http://www.yesodweb.com/
-
-  Permission is hereby granted, free of charge, to any person obtaining
-  a copy of this software and associated documentation files (the
-  "Software"), to deal in the Software without restriction, including
-  without limitation the rights to use, copy, modify, merge, publish,
-  distribute, sublicense, and/or sell copies of the Software, and to
-  permit persons to whom the Software is furnished to do so, subject to
-  the following conditions:
-
-  The above copyright notice and this permission notice shall be
-  included in all copies or substantial portions of the Software.
-
-  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-  NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-  LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-  OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-  WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-entropy LICENSE file:
-
-  Copyright (c) Thomas DuBuisson
-
-  All rights reserved.
-
-  Redistribution and use in source and binary forms, with or without
-  modification, are permitted provided that the following conditions
-  are met:
-
-  1. Redistributions of source code must retain the above copyright
-     notice, this list of conditions and the following disclaimer.
-
-  2. Redistributions in binary form must reproduce the above copyright
-     notice, this list of conditions and the following disclaimer in the
-     documentation and/or other materials provided with the distribution.
-
-  3. Neither the name of the author nor the names of his contributors
-     may be used to endorse or promote products derived from this software
-     without specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE CONTRIBUTORS ``AS IS'' AND ANY EXPRESS
-  OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-  DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR
-  ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-  DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-  OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
-  STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
-  ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-  POSSIBILITY OF SUCH DAMAGE.
-
-exceptions LICENSE file:
-
-  Copyright 2013-2015 Edward Kmett
-  Copyright 2012 Google Inc.
-
-  All rights reserved.
-
-  Redistribution and use in source and binary forms, with or without
-  modification, are permitted provided that the following conditions
-  are met:
-
-  1. Redistributions of source code must retain the above copyright
-     notice, this list of conditions and the following disclaimer.
-
-  2. Redistributions in binary form must reproduce the above copyright
-     notice, this list of conditions and the following disclaimer in the
-     documentation and/or other materials provided with the distribution.
-
-  3. Neither the name of the author nor the names of his contributors
-     may be used to endorse or promote products derived from this software
-     without specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR
-  IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-  DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR
-  ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-  DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-  OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
-  STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
-  ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-  POSSIBILITY OF SUCH DAMAGE.
-
-fast-logger LICENSE file:
-
-  Copyright (c) 2009, IIJ Innovation Institute Inc.
-  All rights reserved.
-
-  Redistribution and use in source and binary forms, with or without
-  modification, are permitted provided that the following conditions
-  are met:
-
-    * Redistributions of source code must retain the above copyright
-      notice, this list of conditions and the following disclaimer.
-    * Redistributions in binary form must reproduce the above copyright
-      notice, this list of conditions and the following disclaimer in
-      the documentation and/or other materials provided with the
-      distribution.
-    * Neither the name of the copyright holders nor the names of its
-      contributors may be used to endorse or promote products derived
-      from this software without specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
-  FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-  COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-  BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-  LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-  CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-  LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
-  ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-  POSSIBILITY OF SUCH DAMAGE.
-
-file-embed LICENSE file:
-
-  The following license covers this documentation, and the source code, except
-  where otherwise indicated.
-
-  Copyright 2008, Michael Snoyman. All rights reserved.
-
-  Redistribution and use in source and binary forms, with or without
-  modification, are permitted provided that the following conditions are met:
-
-  * Redistributions of source code must retain the above copyright notice, this
-    list of conditions and the following disclaimer.
-
-  * Redistributions in binary form must reproduce the above copyright notice,
-    this list of conditions and the following disclaimer in the documentation
-    and/or other materials provided with the distribution.
-
-  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS "AS IS" AND ANY EXPRESS OR
-  IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
-  EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY DIRECT, INDIRECT,
-  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
-  OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
-  LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
-  OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
-  ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-filepath LICENSE file:
-
-  Copyright Neil Mitchell 2005-2018.
-  All rights reserved.
-
-  Redistribution and use in source and binary forms, with or without
-  modification, are permitted provided that the following conditions are
-  met:
-
-      * Redistributions of source code must retain the above copyright
-        notice, this list of conditions and the following disclaimer.
-
-      * Redistributions in binary form must reproduce the above
-        copyright notice, this list of conditions and the following
-        disclaimer in the documentation and/or other materials provided
-        with the distribution.
-
-      * Neither the name of Neil Mitchell nor the names of other
-        contributors may be used to endorse or promote products derived
-        from this software without specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-fsnotify LICENSE file:
-
-  Copyright (c) 2012, Mark Dittmer
-
-  All rights reserved.
-
-  Redistribution and use in source and binary forms, with or without
-  modification, are permitted provided that the following conditions are met:
-
-      * Redistributions of source code must retain the above copyright
-        notice, this list of conditions and the following disclaimer.
-
-      * Redistributions in binary form must reproduce the above
-        copyright notice, this list of conditions and the following
-        disclaimer in the documentation and/or other materials provided
-        with the distribution.
-
-      * Neither the name of Mark Dittmer nor the names of other
-        contributors may be used to endorse or promote products derived
-        from this software without specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-ghc-boot-th LICENSE file:
-
-  The Glasgow Haskell Compiler License
-
-  Copyright 2002, The University Court of the University of Glasgow.
-  All rights reserved.
-
-  Redistribution and use in source and binary forms, with or without
-  modification, are permitted provided that the following conditions are met:
-
-  - Redistributions of source code must retain the above copyright notice,
-  this list of conditions and the following disclaimer.
-
-  - Redistributions in binary form must reproduce the above copyright notice,
-  this list of conditions and the following disclaimer in the documentation
-  and/or other materials provided with the distribution.
-
-  - Neither name of the University nor the names of its contributors may be
-  used to endorse or promote products derived from this software without
-  specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE UNIVERSITY COURT OF THE UNIVERSITY OF
-  GLASGOW AND THE CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
-  INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-  FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-  UNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW OR THE CONTRIBUTORS BE LIABLE
-  FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-  DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-  SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-  CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-  LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-  OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
-  DAMAGE.
-
-ghc-prim LICENSE file:
-
-  This library (libraries/ghc-prim) is derived from code from several
-  sources:
-
-    * Code from the GHC project which is largely (c) The University of
-      Glasgow, and distributable under a BSD-style license (see below),
-
-    * Code from the Haskell 98 Report which is (c) Simon Peyton Jones
-      and freely redistributable (but see the full license for
-      restrictions).
-
-  The full text of these licenses is reproduced below.  All of the
-  licenses are BSD-style or compatible.
-
-  -----------------------------------------------------------------------------
-
-  The Glasgow Haskell Compiler License
-
-  Copyright 2004, The University Court of the University of Glasgow.
-  All rights reserved.
-
-  Redistribution and use in source and binary forms, with or without
-  modification, are permitted provided that the following conditions are met:
-
-  - Redistributions of source code must retain the above copyright notice,
-  this list of conditions and the following disclaimer.
-
-  - Redistributions in binary form must reproduce the above copyright notice,
-  this list of conditions and the following disclaimer in the documentation
-  and/or other materials provided with the distribution.
-
-  - Neither name of the University nor the names of its contributors may be
-  used to endorse or promote products derived from this software without
-  specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE UNIVERSITY COURT OF THE UNIVERSITY OF
-  GLASGOW AND THE CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
-  INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-  FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-  UNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW OR THE CONTRIBUTORS BE LIABLE
-  FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-  DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-  SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-  CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-  LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-  OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
-  DAMAGE.
-
-  -----------------------------------------------------------------------------
-
-  Code derived from the document "Report on the Programming Language
-  Haskell 98", is distributed under the following license:
-
-    Copyright (c) 2002 Simon Peyton Jones
-
-    The authors intend this Report to belong to the entire Haskell
-    community, and so we grant permission to copy and distribute it for
-    any purpose, provided that it is reproduced in its entirety,
-    including this Notice.  Modified versions of this Report may also be
-    copied and distributed for any purpose, provided that the modified
-    version is clearly presented as such, and that it does not claim to
-    be a definition of the Haskell 98 Language.
-
-
-happy LICENSE file:
-
-  The Happy License
-  -----------------
-
-  Copyright 2001, Simon Marlow and Andy Gill.  All rights reserved.
-
-  Extensions to implement Tomita's Generalized LR parsing:
-    Copyright 2004, University of Durham, Paul Callaghan and Ben Medlock.
-    All rights reserved.
-
-  Redistribution and use in source and binary forms, with or without
-  modification, are permitted provided that the following conditions are met:
-
-  - Redistributions of source code must retain the above copyright notice,
-  this list of conditions and the following disclaimer.
-
-  - Redistributions in binary form must reproduce the above copyright notice,
-  this list of conditions and the following disclaimer in the documentation
-  and/or other materials provided with the distribution.
-
-  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS "AS IS" AND ANY
-  EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-  PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE
-  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
-  BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
-  OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
-  IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-hashable LICENSE file:
-
-  Copyright Milan Straka 2010
-
-  All rights reserved.
-
-  Redistribution and use in source and binary forms, with or without
-  modification, are permitted provided that the following conditions are met:
-
-      * Redistributions of source code must retain the above copyright
-        notice, this list of conditions and the following disclaimer.
-
-      * Redistributions in binary form must reproduce the above
-        copyright notice, this list of conditions and the following
-        disclaimer in the documentation and/or other materials provided
-        with the distribution.
-
-      * Neither the name of Milan Straka nor the names of other
-        contributors may be used to endorse or promote products derived
-        from this software without specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-haskeline LICENSE file:
-
-  Copyright 2007-2009, Judah Jacobson.
-  All Rights Reserved.
-
-  Redistribution and use in source and binary forms, with or without
-  modification, are permitted provided that the following conditions are met:
-
-  - Redistribution of source code must retain the above copyright notice,
-  this list of conditions and the following disclaimer.
-
-  - Redistribution in binary form must reproduce the above copyright notice,
-  this list of conditions and the following disclaimer in the documentation
-  and/or other materials provided with the distribution.
-
-  THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS "AS IS" AND ANY
-  EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-  DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR THE CONTRIBUTORS BE LIABLE
-  FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-  DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-  SERVICES; LOSS OF USE, DATA OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-  CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-  OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
-  USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-hinotify LICENSE file:
-
-  Copyright (c) Lennart Kolmodin
-
-  All rights reserved.
-
-  Redistribution and use in source and binary forms, with or without
-  modification, are permitted provided that the following conditions
-  are met:
-
-  1. Redistributions of source code must retain the above copyright
-     notice, this list of conditions and the following disclaimer.
-
-  2. Redistributions in binary form must reproduce the above copyright
-     notice, this list of conditions and the following disclaimer in the
-     documentation and/or other materials provided with the distribution.
-
-  3. Neither the name of the author nor the names of his contributors
-     may be used to endorse or promote products derived from this software
-     without specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE CONTRIBUTORS ``AS IS'' AND ANY EXPRESS
-  OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-  DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR
-  ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-  DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-  OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
-  STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
-  ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-  POSSIBILITY OF SUCH DAMAGE.
-
-http-date LICENSE file:
-
-  Copyright (c) 2009, IIJ Innovation Institute Inc.
-  All rights reserved.
-
-  Redistribution and use in source and binary forms, with or without
-  modification, are permitted provided that the following conditions
-  are met:
-
-    * Redistributions of source code must retain the above copyright
-      notice, this list of conditions and the following disclaimer.
-    * Redistributions in binary form must reproduce the above copyright
-      notice, this list of conditions and the following disclaimer in
-      the documentation and/or other materials provided with the
-      distribution.
-    * Neither the name of the copyright holders nor the names of its
-      contributors may be used to endorse or promote products derived
-      from this software without specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
-  FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-  COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-  BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-  LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-  CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-  LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
-  ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-  POSSIBILITY OF SUCH DAMAGE.
-
-http-types LICENSE file:
-
-  Copyright (c) 2011, Aristid Breitkreuz
-  Copyright (c) 2011, Michael Snoyman
-
-  All rights reserved.
-
-  Redistribution and use in source and binary forms, with or without
-  modification, are permitted provided that the following conditions are met:
-
-      * Redistributions of source code must retain the above copyright
-        notice, this list of conditions and the following disclaimer.
-
-      * Redistributions in binary form must reproduce the above
-        copyright notice, this list of conditions and the following
-        disclaimer in the documentation and/or other materials provided
-        with the distribution.
-
-      * Neither the name of Aristid Breitkreuz nor the names of other
-        contributors may be used to endorse or promote products derived
-        from this software without specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-http2 LICENSE file:
-
-  Copyright (c) 2013, IIJ Innovation Institute Inc.
-  All rights reserved.
-
-  Redistribution and use in source and binary forms, with or without
-  modification, are permitted provided that the following conditions
-  are met:
-
-    * Redistributions of source code must retain the above copyright
-      notice, this list of conditions and the following disclaimer.
-    * Redistributions in binary form must reproduce the above copyright
-      notice, this list of conditions and the following disclaimer in
-      the documentation and/or other materials provided with the
-      distribution.
-    * Neither the name of the copyright holders nor the names of its
-      contributors may be used to endorse or promote products derived
-      from this software without specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
-  FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-  COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-  BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-  LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-  CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-  LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
-  ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-  POSSIBILITY OF SUCH DAMAGE.
-
-integer-gmp LICENSE file:
-
-  Copyright (c) 2014, Herbert Valerio Riedel
-
-  All rights reserved.
-
-  Redistribution and use in source and binary forms, with or without
-  modification, are permitted provided that the following conditions are met:
-
-      * Redistributions of source code must retain the above copyright
-        notice, this list of conditions and the following disclaimer.
-
-      * Redistributions in binary form must reproduce the above
-        copyright notice, this list of conditions and the following
-        disclaimer in the documentation and/or other materials provided
-        with the distribution.
-
-      * Neither the name of Herbert Valerio Riedel nor the names of other
-        contributors may be used to endorse or promote products derived
-        from this software without specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-integer-logarithms LICENSE file:
-
-  Copyright (c) 2011 Daniel Fischer, 2017 Oleg Grenrus
-
-  Permission is hereby granted, free of charge, to any person obtaining a copy of this software and
-   associated documentation files (the "Software"), to deal in the Software without restriction,
-   including without limitation the rights to use, copy, modify, merge, publish, distribute,
-   sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
-   furnished to do so, subject to the following conditions:
-
-  The above copyright notice and this permission notice shall be included in all copies or
-  substantial portions of the Software.
-
-  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
-  LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-   IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-   LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-   CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-iproute LICENSE file:
-
-  Copyright (c) 2009, IIJ Innovation Institute Inc.
-  All rights reserved.
-
-  Redistribution and use in source and binary forms, with or without
-  modification, are permitted provided that the following conditions
-  are met:
-
-    * Redistributions of source code must retain the above copyright
-      notice, this list of conditions and the following disclaimer.
-    * Redistributions in binary form must reproduce the above copyright
-      notice, this list of conditions and the following disclaimer in
-      the documentation and/or other materials provided with the
-      distribution.
-    * Neither the name of the copyright holders nor the names of its
-      contributors may be used to endorse or promote products derived
-      from this software without specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
-  FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-  COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-  BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-  LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-  CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-  LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
-  ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-  POSSIBILITY OF SUCH DAMAGE.
-
-language-javascript LICENSE file:
-
-  Copyright (c)2010, Alan Zimmerman
-
-  All rights reserved.
-
-  Redistribution and use in source and binary forms, with or without
-  modification, are permitted provided that the following conditions are met:
-
-      * Redistributions of source code must retain the above copyright
-        notice, this list of conditions and the following disclaimer.
-
-      * Redistributions in binary form must reproduce the above
-        copyright notice, this list of conditions and the following
-        disclaimer in the documentation and/or other materials provided
-        with the distribution.
-
-      * Neither the name of Alan Zimmerman nor the names of other
-        contributors may be used to endorse or promote products derived
-        from this software without specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-lifted-async LICENSE file:
-
-  Copyright (c) 2012-2017, Mitsutoshi Aoe
-
-  All rights reserved.
-
-  Redistribution and use in source and binary forms, with or without
-  modification, are permitted provided that the following conditions are met:
-
-      * Redistributions of source code must retain the above copyright
-        notice, this list of conditions and the following disclaimer.
-
-      * Redistributions in binary form must reproduce the above
-        copyright notice, this list of conditions and the following
-        disclaimer in the documentation and/or other materials provided
-        with the distribution.
-
-      * Neither the name of Mitsutoshi Aoe nor the names of other
-        contributors may be used to endorse or promote products derived
-        from this software without specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-lifted-base LICENSE file:
-
-  Copyright © 2010-2012, Bas van Dijk, Anders Kaseorg
-  All rights reserved.
-
-  Redistribution and use in source and binary forms, with or without
-  modification, are permitted provided that the following conditions are
-  met:
-
-  • Redistributions of source code must retain the above copyright
-    notice, this list of conditions and the following disclaimer.
-
-  • Redistributions in binary form must reproduce the above copyright
-    notice, this list of conditions and the following disclaimer in the
-    documentation and/or other materials provided with the distribution.
-
-  • Neither the name of the author nor the names of other contributors
-    may be used to endorse or promote products derived from this
-    software without specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-  “AS IS” AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-  A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT
-  HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-memory LICENSE file:
-
-  Copyright (c) 2015-2018 Vincent Hanquez <vincent@snarc.org>
-  Copyright (c) 2017-2018 Nicolas Di Prima <nicolas@primetype.co.uk>
-
-  All rights reserved.
-
-  Redistribution and use in source and binary forms, with or without
-  modification, are permitted provided that the following conditions
-  are met:
-
-  1. Redistributions of source code must retain the above copyright
-     notice, this list of conditions and the following disclaimer.
-  2. Redistributions in binary form must reproduce the above copyright
-     notice, this list of conditions and the following disclaimer in the
-     documentation and/or other materials provided with the distribution.
-  3. Neither the name of the author nor the names of his contributors
-     may be used to endorse or promote products derived from this software
-     without specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS AS IS'' AND
-  ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-  ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE
-  FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-  DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-  OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-  LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-  OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-  SUCH DAMAGE.
-
-microlens LICENSE file:
-
-  Copyright (c) 2013-2016 Edward Kmett,
-                2015-2016 Artyom Kazak,
-                2018 Monadfix
-
-  All rights reserved.
-
-  Redistribution and use in source and binary forms, with or without
-  modification, are permitted provided that the following conditions are met:
-
-      * Redistributions of source code must retain the above copyright
-        notice, this list of conditions and the following disclaimer.
-
-      * Redistributions in binary form must reproduce the above
-        copyright notice, this list of conditions and the following
-        disclaimer in the documentation and/or other materials provided
-        with the distribution.
-
-      * Neither the name of Monadfix nor the names of other
-        contributors may be used to endorse or promote products derived
-        from this software without specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-microlens-ghc LICENSE file:
-
-  Copyright (c) 2013-2016 Edward Kmett,
-                2015-2016 Artyom Kazak,
-                2018 Monadfix
-
-  All rights reserved.
-
-  Redistribution and use in source and binary forms, with or without
-  modification, are permitted provided that the following conditions are met:
-
-      * Redistributions of source code must retain the above copyright
-        notice, this list of conditions and the following disclaimer.
-
-      * Redistributions in binary form must reproduce the above
-        copyright notice, this list of conditions and the following
-        disclaimer in the documentation and/or other materials provided
-        with the distribution.
-
-      * Neither the name of Monadfix nor the names of other
-        contributors may be used to endorse or promote products derived
-        from this software without specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-microlens-mtl LICENSE file:
-
-  Copyright (c) 2013-2016 Edward Kmett,
-                2015-2016 Artyom
-
-  All rights reserved.
-
-  Redistribution and use in source and binary forms, with or without
-  modification, are permitted provided that the following conditions are met:
-
-      * Redistributions of source code must retain the above copyright
-        notice, this list of conditions and the following disclaimer.
-
-      * Redistributions in binary form must reproduce the above
-        copyright notice, this list of conditions and the following
-        disclaimer in the documentation and/or other materials provided
-        with the distribution.
-
-      * Neither the name of Artyom nor the names of other
-        contributors may be used to endorse or promote products derived
-        from this software without specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-microlens-platform LICENSE file:
-
-  Copyright (c) 2012-2016 Edward Kmett,
-                2015-2016 Artyom Kazak,
-                2018 Monadfix
-
-  All rights reserved.
-
-  Redistribution and use in source and binary forms, with or without
-  modification, are permitted provided that the following conditions are met:
-
-      * Redistributions of source code must retain the above copyright
-        notice, this list of conditions and the following disclaimer.
-
-      * Redistributions in binary form must reproduce the above
-        copyright notice, this list of conditions and the following
-        disclaimer in the documentation and/or other materials provided
-        with the distribution.
-
-      * Neither the name of Monadfix nor the names of other
-        contributors may be used to endorse or promote products derived
-        from this software without specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-microlens-th LICENSE file:
-
-  Copyright (c) 2013-2016 Eric Mertens, Edward Kmett, Artyom
-
-  All rights reserved.
-
-  Redistribution and use in source and binary forms, with or without
-  modification, are permitted provided that the following conditions are met:
-
-      * Redistributions of source code must retain the above copyright
-        notice, this list of conditions and the following disclaimer.
-
-      * Redistributions in binary form must reproduce the above
-        copyright notice, this list of conditions and the following
-        disclaimer in the documentation and/or other materials provided
-        with the distribution.
-
-      * Neither the name of Artyom nor the names of other
-        contributors may be used to endorse or promote products derived
-        from this software without specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-mime-types LICENSE file:
-
-  Copyright (c) 2012 Michael Snoyman, http://www.yesodweb.com/
-
-  Permission is hereby granted, free of charge, to any person obtaining
-  a copy of this software and associated documentation files (the
-  "Software"), to deal in the Software without restriction, including
-  without limitation the rights to use, copy, modify, merge, publish,
-  distribute, sublicense, and/or sell copies of the Software, and to
-  permit persons to whom the Software is furnished to do so, subject to
-  the following conditions:
-
-  The above copyright notice and this permission notice shall be
-  included in all copies or substantial portions of the Software.
-
-  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-  NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-  LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-  OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-  WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-monad-control LICENSE file:
-
-  Copyright © 2010, Bas van Dijk, Anders Kaseorg
-  All rights reserved.
-
-  Redistribution and use in source and binary forms, with or without
-  modification, are permitted provided that the following conditions are
-  met:
-
-  • Redistributions of source code must retain the above copyright
-    notice, this list of conditions and the following disclaimer.
-
-  • Redistributions in binary form must reproduce the above copyright
-    notice, this list of conditions and the following disclaimer in the
-    documentation and/or other materials provided with the distribution.
-
-  • Neither the name of the author nor the names of other contributors
-    may be used to endorse or promote products derived from this
-    software without specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-  “AS IS” AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-  A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT
-  HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-monad-logger LICENSE file:
-
-  Copyright (c) 2012 Michael Snoyman, http://www.yesodweb.com/
-
-  Permission is hereby granted, free of charge, to any person obtaining
-  a copy of this software and associated documentation files (the
-  "Software"), to deal in the Software without restriction, including
-  without limitation the rights to use, copy, modify, merge, publish,
-  distribute, sublicense, and/or sell copies of the Software, and to
-  permit persons to whom the Software is furnished to do so, subject to
-  the following conditions:
-
-  The above copyright notice and this permission notice shall be
-  included in all copies or substantial portions of the Software.
-
-  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-  NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-  LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-  OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-  WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-mono-traversable LICENSE file:
-
-  Copyright (c) 2013 Michael Snoyman, http://www.fpcomplete.com/
-
-  Permission is hereby granted, free of charge, to any person obtaining
-  a copy of this software and associated documentation files (the
-  "Software"), to deal in the Software without restriction, including
-  without limitation the rights to use, copy, modify, merge, publish,
-  distribute, sublicense, and/or sell copies of the Software, and to
-  permit persons to whom the Software is furnished to do so, subject to
-  the following conditions:
-
-  The above copyright notice and this permission notice shall be
-  included in all copies or substantial portions of the Software.
-
-  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-  NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-  LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-  OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-  WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-mtl LICENSE file:
-
-  The Glasgow Haskell Compiler License
-
-  Copyright 2004, The University Court of the University of Glasgow.
-  All rights reserved.
-
-  Redistribution and use in source and binary forms, with or without
-  modification, are permitted provided that the following conditions are met:
-
-  - Redistributions of source code must retain the above copyright notice,
-  this list of conditions and the following disclaimer.
-
-  - Redistributions in binary form must reproduce the above copyright notice,
-  this list of conditions and the following disclaimer in the documentation
-  and/or other materials provided with the distribution.
-
-  - Neither name of the University nor the names of its contributors may be
-  used to endorse or promote products derived from this software without
-  specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE UNIVERSITY COURT OF THE UNIVERSITY OF
-  GLASGOW AND THE CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
-  INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-  FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-  UNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW OR THE CONTRIBUTORS BE LIABLE
-  FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-  DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-  SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-  CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-  LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-  OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
-  DAMAGE.
-
-mtl-compat LICENSE file:
-
-  Copyright (c) 2015, Ryan Scott
-
-  All rights reserved.
-
-  Redistribution and use in source and binary forms, with or without
-  modification, are permitted provided that the following conditions are met:
-
-      * Redistributions of source code must retain the above copyright
-        notice, this list of conditions and the following disclaimer.
-
-      * Redistributions in binary form must reproduce the above
-        copyright notice, this list of conditions and the following
-        disclaimer in the documentation and/or other materials provided
-        with the distribution.
-
-      * Neither the name of Ryan Scott nor the names of other
-        contributors may be used to endorse or promote products derived
-        from this software without specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-network LICENSE file:
-
-  Copyright (c) 2002-2010, The University Court of the University of Glasgow.
-  Copyright (c) 2007-2010, Johan Tibell
-
-  Redistribution and use in source and binary forms, with or without
-  modification, are permitted provided that the following conditions are met:
-
-  - Redistributions of source code must retain the above copyright notice,
-  this list of conditions and the following disclaimer.
-
-  - Redistributions in binary form must reproduce the above copyright notice,
-  this list of conditions and the following disclaimer in the documentation
-  and/or other materials provided with the distribution.
-
-  - Neither name of the University nor the names of its contributors may be
-  used to endorse or promote products derived from this software without
-  specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE UNIVERSITY COURT OF THE UNIVERSITY OF
-  GLASGOW AND THE CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
-  INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-  FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-  UNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW OR THE CONTRIBUTORS BE LIABLE
-  FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-  DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-  SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-  CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-  LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-  OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
-  DAMAGE.
-
-network-byte-order LICENSE file:
-
-  Copyright (c) 2017, Kazu Yamamoto
-
-  All rights reserved.
-
-  Redistribution and use in source and binary forms, with or without
-  modification, are permitted provided that the following conditions are met:
-
-      * Redistributions of source code must retain the above copyright
-        notice, this list of conditions and the following disclaimer.
-
-      * Redistributions in binary form must reproduce the above
-        copyright notice, this list of conditions and the following
-        disclaimer in the documentation and/or other materials provided
-        with the distribution.
-
-      * Neither the name of Kazu Yamamoto nor the names of other
-        contributors may be used to endorse or promote products derived
-        from this software without specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-network-uri LICENSE file:
-
-  Copyright (c) 2002-2010, The University Court of the University of Glasgow.
-  Copyright (c) 2007-2010, Johan Tibell
-
-  Redistribution and use in source and binary forms, with or without
-  modification, are permitted provided that the following conditions are met:
-
-  - Redistributions of source code must retain the above copyright notice,
-  this list of conditions and the following disclaimer.
-
-  - Redistributions in binary form must reproduce the above copyright notice,
-  this list of conditions and the following disclaimer in the documentation
-  and/or other materials provided with the distribution.
-
-  - Neither name of the University nor the names of its contributors may be
-  used to endorse or promote products derived from this software without
-  specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE UNIVERSITY COURT OF THE UNIVERSITY OF
-  GLASGOW AND THE CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
-  INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-  FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-  UNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW OR THE CONTRIBUTORS BE LIABLE
-  FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-  DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-  SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-  CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-  LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-  OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
-  DAMAGE.
-
-old-locale LICENSE file:
-
-  This library (libraries/base) is derived from code from two
-  sources:
-
-    * Code from the GHC project which is largely (c) The University of
-      Glasgow, and distributable under a BSD-style license (see below),
-
-    * Code from the Haskell 98 Report which is (c) Simon Peyton Jones
-      and freely redistributable (but see the full license for
-      restrictions).
-
-  The full text of these licenses is reproduced below.  Both of the
-  licenses are BSD-style or compatible.
-
-  -----------------------------------------------------------------------------
-
-  The Glasgow Haskell Compiler License
-
-  Copyright 2004, The University Court of the University of Glasgow.
-  All rights reserved.
-
-  Redistribution and use in source and binary forms, with or without
-  modification, are permitted provided that the following conditions are met:
-
-  - Redistributions of source code must retain the above copyright notice,
-  this list of conditions and the following disclaimer.
-
-  - Redistributions in binary form must reproduce the above copyright notice,
-  this list of conditions and the following disclaimer in the documentation
-  and/or other materials provided with the distribution.
-
-  - Neither name of the University nor the names of its contributors may be
-  used to endorse or promote products derived from this software without
-  specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE UNIVERSITY COURT OF THE UNIVERSITY OF
-  GLASGOW AND THE CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
-  INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-  FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-  UNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW OR THE CONTRIBUTORS BE LIABLE
-  FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-  DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-  SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-  CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-  LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-  OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
-  DAMAGE.
-
-  -----------------------------------------------------------------------------
-
-  Code derived from the document "Report on the Programming Language
-  Haskell 98", is distributed under the following license:
-
-    Copyright (c) 2002 Simon Peyton Jones
-
-    The authors intend this Report to belong to the entire Haskell
-    community, and so we grant permission to copy and distribute it for
-    any purpose, provided that it is reproduced in its entirety,
-    including this Notice.  Modified versions of this Report may also be
-    copied and distributed for any purpose, provided that the modified
-    version is clearly presented as such, and that it does not claim to
-    be a definition of the Haskell 98 Language.
-
-  -----------------------------------------------------------------------------
-
-old-time LICENSE file:
-
-  This library (libraries/base) is derived from code from two
-  sources:
-
-    * Code from the GHC project which is largely (c) The University of
-      Glasgow, and distributable under a BSD-style license (see below),
-
-    * Code from the Haskell 98 Report which is (c) Simon Peyton Jones
-      and freely redistributable (but see the full license for
-      restrictions).
-
-  The full text of these licenses is reproduced below.  Both of the
-  licenses are BSD-style or compatible.
-
-  -----------------------------------------------------------------------------
-
-  The Glasgow Haskell Compiler License
-
-  Copyright 2004, The University Court of the University of Glasgow.
-  All rights reserved.
-
-  Redistribution and use in source and binary forms, with or without
-  modification, are permitted provided that the following conditions are met:
-
-  - Redistributions of source code must retain the above copyright notice,
-  this list of conditions and the following disclaimer.
-
-  - Redistributions in binary form must reproduce the above copyright notice,
-  this list of conditions and the following disclaimer in the documentation
-  and/or other materials provided with the distribution.
-
-  - Neither name of the University nor the names of its contributors may be
-  used to endorse or promote products derived from this software without
-  specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE UNIVERSITY COURT OF THE UNIVERSITY OF
-  GLASGOW AND THE CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
-  INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-  FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-  UNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW OR THE CONTRIBUTORS BE LIABLE
-  FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-  DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-  SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-  CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-  LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-  OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
-  DAMAGE.
-
-  -----------------------------------------------------------------------------
-
-  Code derived from the document "Report on the Programming Language
-  Haskell 98", is distributed under the following license:
-
-    Copyright (c) 2002 Simon Peyton Jones
-
-    The authors intend this Report to belong to the entire Haskell
-    community, and so we grant permission to copy and distribute it for
-    any purpose, provided that it is reproduced in its entirety,
-    including this Notice.  Modified versions of this Report may also be
-    copied and distributed for any purpose, provided that the modified
-    version is clearly presented as such, and that it does not claim to
-    be a definition of the Haskell 98 Language.
-
-  -----------------------------------------------------------------------------
-
-optparse-applicative LICENSE file:
-
-  Copyright (c) 2012, Paolo Capriotti
-
-  All rights reserved.
-
-  Redistribution and use in source and binary forms, with or without
-  modification, are permitted provided that the following conditions are met:
-
-      * Redistributions of source code must retain the above copyright
-        notice, this list of conditions and the following disclaimer.
-
-      * Redistributions in binary form must reproduce the above
-        copyright notice, this list of conditions and the following
-        disclaimer in the documentation and/or other materials provided
-        with the distribution.
-
-      * Neither the name of Paolo Capriotti nor the names of other
-        contributors may be used to endorse or promote products derived
-        from this software without specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-parallel LICENSE file:
-
-  This library (libraries/parallel) is derived from code from
-  the GHC project which is largely (c) The University of
-  Glasgow, and distributable under a BSD-style license (see below).
-
-  -----------------------------------------------------------------------------
-
-  The Glasgow Haskell Compiler License
-
-  Copyright 2004, The University Court of the University of Glasgow.
-  All rights reserved.
-
-  Redistribution and use in source and binary forms, with or without
-  modification, are permitted provided that the following conditions are met:
-
-  - Redistributions of source code must retain the above copyright notice,
-  this list of conditions and the following disclaimer.
-
-  - Redistributions in binary form must reproduce the above copyright notice,
-  this list of conditions and the following disclaimer in the documentation
-  and/or other materials provided with the distribution.
-
-  - Neither name of the University nor the names of its contributors may be
-  used to endorse or promote products derived from this software without
-  specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE UNIVERSITY COURT OF THE UNIVERSITY OF
-  GLASGOW AND THE CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
-  INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-  FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-  UNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW OR THE CONTRIBUTORS BE LIABLE
-  FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-  DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-  SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-  CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-  LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-  OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
-  DAMAGE.
-
-  -----------------------------------------------------------------------------
-
-parsec LICENSE file:
-
-  Copyright 1999-2000, Daan Leijen; 2007, Paolo Martini. All rights reserved.
-
-  Redistribution and use in source and binary forms, with or without
-  modification, are permitted provided that the following conditions are met:
-
-  * Redistributions of source code must retain the above copyright notice,
-    this list of conditions and the following disclaimer.
-  * Redistributions in binary form must reproduce the above copyright
-    notice, this list of conditions and the following disclaimer in the
-    documentation and/or other materials provided with the distribution.
-
-  This software is provided by the copyright holders "as is" and any express or
-  implied warranties, including, but not limited to, the implied warranties of
-  merchantability and fitness for a particular purpose are disclaimed. In no
-  event shall the copyright holders be liable for any direct, indirect,
-  incidental, special, exemplary, or consequential damages (including, but not
-  limited to, procurement of substitute goods or services; loss of use, data,
-  or profits; or business interruption) however caused and on any theory of
-  liability, whether in contract, strict liability, or tort (including
-  negligence or otherwise) arising in any way out of the use of this software,
-  even if advised of the possibility of such damage.
-
-pattern-arrows LICENSE file:
-
-  The MIT License (MIT)
-
-  Copyright (c) 2013 Phil Freeman
-
-  Permission is hereby granted, free of charge, to any person obtaining a copy of
-  this software and associated documentation files (the "Software"), to deal in
-  the Software without restriction, including without limitation the rights to
-  use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
-  the Software, and to permit persons to whom the Software is furnished to do so,
-  subject to the following conditions:
-
-  The above copyright notice and this permission notice shall be included in all
-  copies or substantial portions of the Software.
-
-  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
-  FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
-  COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
-  IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-  CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-pretty LICENSE file:
-
-  This library (libraries/pretty) is derived from code from
-  the GHC project which is largely (c) The University of
-  Glasgow, and distributable under a BSD-style license (see below).
-
-  -----------------------------------------------------------------------------
-
-  The Glasgow Haskell Compiler License
-
-  Copyright 2004, The University Court of the University of Glasgow.
-  All rights reserved.
-
-  Redistribution and use in source and binary forms, with or without
-  modification, are permitted provided that the following conditions are met:
-
-  - Redistributions of source code must retain the above copyright notice,
-  this list of conditions and the following disclaimer.
-
-  - Redistributions in binary form must reproduce the above copyright notice,
-  this list of conditions and the following disclaimer in the documentation
-  and/or other materials provided with the distribution.
-
-  - Neither name of the University nor the names of its contributors may be
-  used to endorse or promote products derived from this software without
-  specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE UNIVERSITY COURT OF THE UNIVERSITY OF
-  GLASGOW AND THE CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
-  INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-  FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-  UNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW OR THE CONTRIBUTORS BE LIABLE
-  FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-  DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-  SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-  CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-  LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-  OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
-  DAMAGE.
-
-  -----------------------------------------------------------------------------
-
-primitive LICENSE file:
-
-  Copyright (c) 2008-2009, Roman Leshchinskiy
-  All rights reserved.
-
-  Redistribution and use in source and binary forms, with or without
-  modification, are permitted provided that the following conditions are met:
-
-  - Redistributions of source code must retain the above copyright notice,
-  this list of conditions and the following disclaimer.
-
-  - Redistributions in binary form must reproduce the above copyright notice,
-  this list of conditions and the following disclaimer in the documentation
-  and/or other materials provided with the distribution.
-
-  - Neither name of the University nor the names of its contributors may be
-  used to endorse or promote products derived from this software without
-  specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE UNIVERSITY COURT OF THE UNIVERSITY OF
-  GLASGOW AND THE CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
-  INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-  FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-  UNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW OR THE CONTRIBUTORS BE LIABLE
-  FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-  DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-  SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-  CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-  LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-  OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
-  DAMAGE.
-
-
-process LICENSE file:
-
-  This library (libraries/process) is derived from code from two
-  sources:
-
-    * Code from the GHC project which is largely (c) The University of
-      Glasgow, and distributable under a BSD-style license (see below),
-
-    * Code from the Haskell 98 Report which is (c) Simon Peyton Jones
-      and freely redistributable (but see the full license for
-      restrictions).
-
-  The full text of these licenses is reproduced below.  Both of the
-  licenses are BSD-style or compatible.
-
-  -----------------------------------------------------------------------------
-
-  The Glasgow Haskell Compiler License
-
-  Copyright 2004, The University Court of the University of Glasgow.
-  All rights reserved.
-
-  Redistribution and use in source and binary forms, with or without
-  modification, are permitted provided that the following conditions are met:
-
-  - Redistributions of source code must retain the above copyright notice,
-  this list of conditions and the following disclaimer.
-
-  - Redistributions in binary form must reproduce the above copyright notice,
-  this list of conditions and the following disclaimer in the documentation
-  and/or other materials provided with the distribution.
-
-  - Neither name of the University nor the names of its contributors may be
-  used to endorse or promote products derived from this software without
-  specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE UNIVERSITY COURT OF THE UNIVERSITY OF
-  GLASGOW AND THE CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
-  INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-  FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-  UNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW OR THE CONTRIBUTORS BE LIABLE
-  FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-  DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-  SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-  CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-  LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-  OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
-  DAMAGE.
-
-  -----------------------------------------------------------------------------
-
-  Code derived from the document "Report on the Programming Language
-  Haskell 98", is distributed under the following license:
-
-    Copyright (c) 2002 Simon Peyton Jones
-
-    The authors intend this Report to belong to the entire Haskell
-    community, and so we grant permission to copy and distribute it for
-    any purpose, provided that it is reproduced in its entirety,
-    including this Notice.  Modified versions of this Report may also be
-    copied and distributed for any purpose, provided that the modified
-    version is clearly presented as such, and that it does not claim to
-    be a definition of the Haskell 98 Language.
-
-  -----------------------------------------------------------------------------
-
-protolude LICENSE file:
-
-  Copyright (c) 2016-2017, Stephen Diehl
-
-  Permission is hereby granted, free of charge, to any person obtaining a copy
-  of this software and associated documentation files (the "Software"), to
-  deal in the Software without restriction, including without limitation the
-  rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
-  sell copies of the Software, and to permit persons to whom the Software is
-  furnished to do so, subject to the following conditions:
-
-  The above copyright notice and this permission notice shall be included in
-  all copies or substantial portions of the Software.
-
-  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-  FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
-  IN THE SOFTWARE.
-
-psqueues LICENSE file:
-
-  The Glasgow Haskell Compiler License
-
-  Copyright 2004, The University Court of the University of Glasgow.
-  All rights reserved.
-
-  Redistribution and use in source and binary forms, with or without
-  modification, are permitted provided that the following conditions are met:
-
-  - Redistributions of source code must retain the above copyright notice,
-  this list of conditions and the following disclaimer.
-
-  - Redistributions in binary form must reproduce the above copyright notice,
-  this list of conditions and the following disclaimer in the documentation
-  and/or other materials provided with the distribution.
-
-  - Neither name of the University nor the names of its contributors may be
-  used to endorse or promote products derived from this software without
-  specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE UNIVERSITY COURT OF THE UNIVERSITY OF
-  GLASGOW AND THE CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
-  INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-  FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-  UNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW OR THE CONTRIBUTORS BE LIABLE
-  FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-  DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-  SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-  CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-  LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-  OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
-  DAMAGE.
-
-random LICENSE file:
-
-  This library (libraries/base) is derived from code from two
-  sources:
-
-    * Code from the GHC project which is largely (c) The University of
-      Glasgow, and distributable under a BSD-style license (see below),
-
-    * Code from the Haskell 98 Report which is (c) Simon Peyton Jones
-      and freely redistributable (but see the full license for
-      restrictions).
-
-  The full text of these licenses is reproduced below.  Both of the
-  licenses are BSD-style or compatible.
-
-  -----------------------------------------------------------------------------
-
-  The Glasgow Haskell Compiler License
-
-  Copyright 2004, The University Court of the University of Glasgow.
-  All rights reserved.
-
-  Redistribution and use in source and binary forms, with or without
-  modification, are permitted provided that the following conditions are met:
-
-  - Redistributions of source code must retain the above copyright notice,
-  this list of conditions and the following disclaimer.
-
-  - Redistributions in binary form must reproduce the above copyright notice,
-  this list of conditions and the following disclaimer in the documentation
-  and/or other materials provided with the distribution.
-
-  - Neither name of the University nor the names of its contributors may be
-  used to endorse or promote products derived from this software without
-  specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE UNIVERSITY COURT OF THE UNIVERSITY OF
-  GLASGOW AND THE CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
-  INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-  FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-  UNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW OR THE CONTRIBUTORS BE LIABLE
-  FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-  DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-  SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-  CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-  LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-  OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
-  DAMAGE.
-
-  -----------------------------------------------------------------------------
-
-  Code derived from the document "Report on the Programming Language
-  Haskell 98", is distributed under the following license:
-
-    Copyright (c) 2002 Simon Peyton Jones
-
-    The authors intend this Report to belong to the entire Haskell
-    community, and so we grant permission to copy and distribute it for
-    any purpose, provided that it is reproduced in its entirety,
-    including this Notice.  Modified versions of this Report may also be
-    copied and distributed for any purpose, provided that the modified
-    version is clearly presented as such, and that it does not claim to
-    be a definition of the Haskell 98 Language.
-
-  -----------------------------------------------------------------------------
-
-regex-base LICENSE file:
-
-  This modile is under this "3 clause" BSD license:
-
-  Copyright (c) 2007, Christopher Kuklewicz
-  All rights reserved.
-
-  Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
-
-      * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
-      * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
-      * The names of the contributors may not be used to endorse or promote products derived from this software without specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-regex-tdfa LICENSE file:
-
-  This modile is under this "3 clause" BSD license:
-
-  Copyright (c) 2007-2009, Christopher Kuklewicz
-  All rights reserved.
-
-  Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
-
-      * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
-      * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
-      * The names of the contributors may not be used to endorse or promote products derived from this software without specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-resourcet LICENSE file:
-
-  Copyright (c)2011, Michael Snoyman
-
-  All rights reserved.
-
-  Redistribution and use in source and binary forms, with or without
-  modification, are permitted provided that the following conditions are met:
-
-      * Redistributions of source code must retain the above copyright
-        notice, this list of conditions and the following disclaimer.
-
-      * Redistributions in binary form must reproduce the above
-        copyright notice, this list of conditions and the following
-        disclaimer in the documentation and/or other materials provided
-        with the distribution.
-
-      * Neither the name of Michael Snoyman nor the names of other
-        contributors may be used to endorse or promote products derived
-        from this software without specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-safe LICENSE file:
-
-  Copyright Neil Mitchell 2007-2018.
-  All rights reserved.
-
-  Redistribution and use in source and binary forms, with or without
-  modification, are permitted provided that the following conditions are
-  met:
-
-      * Redistributions of source code must retain the above copyright
-        notice, this list of conditions and the following disclaimer.
-
-      * Redistributions in binary form must reproduce the above
-        copyright notice, this list of conditions and the following
-        disclaimer in the documentation and/or other materials provided
-        with the distribution.
-
-      * Neither the name of Neil Mitchell nor the names of other
-        contributors may be used to endorse or promote products derived
-        from this software without specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-scientific LICENSE file:
-
-  Copyright (c) 2013, Bas van Dijk
-
-  All rights reserved.
-
-  Redistribution and use in source and binary forms, with or without
-  modification, are permitted provided that the following conditions are met:
-
-      * Redistributions of source code must retain the above copyright
-        notice, this list of conditions and the following disclaimer.
-
-      * Redistributions in binary form must reproduce the above
-        copyright notice, this list of conditions and the following
-        disclaimer in the documentation and/or other materials provided
-        with the distribution.
-
-      * Neither the name of Bas van Dijk nor the names of other
-        contributors may be used to endorse or promote products derived
-        from this software without specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-semigroups LICENSE file:
-
-  Copyright 2011-2015 Edward Kmett
-
-  All rights reserved.
-
-  Redistribution and use in source and binary forms, with or without
-  modification, are permitted provided that the following conditions
-  are met:
-
-  1. Redistributions of source code must retain the above copyright
-     notice, this list of conditions and the following disclaimer.
-
-  2. Redistributions in binary form must reproduce the above copyright
-     notice, this list of conditions and the following disclaimer in the
-     documentation and/or other materials provided with the distribution.
-
-  THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR
-  IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-  DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR
-  ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-  DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-  OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
-  STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
-  ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-  POSSIBILITY OF SUCH DAMAGE.
-
-shelly LICENSE file:
-
-  Copyright (c) 2017, Petr Rockai <me@mornfall.net>
-
-  All rights reserved.
-
-  Redistribution and use in source and binary forms, with or without
-  modification, are permitted provided that the following conditions are met:
-
-      * Redistributions of source code must retain the above copyright
-        notice, this list of conditions and the following disclaimer.
-
-      * Redistributions in binary form must reproduce the above
-        copyright notice, this list of conditions and the following
-        disclaimer in the documentation and/or other materials provided
-        with the distribution.
-
-      * Neither the name of Petr Rockai nor the names of other
-        contributors may be used to endorse or promote products derived
-        from this software without specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-simple-sendfile LICENSE file:
-
-  Copyright (c) 2009, IIJ Innovation Institute Inc.
-  All rights reserved.
-
-  Redistribution and use in source and binary forms, with or without
-  modification, are permitted provided that the following conditions
-  are met:
-
-    * Redistributions of source code must retain the above copyright
-      notice, this list of conditions and the following disclaimer.
-    * Redistributions in binary form must reproduce the above copyright
-      notice, this list of conditions and the following disclaimer in
-      the documentation and/or other materials provided with the
-      distribution.
-    * Neither the name of the copyright holders nor the names of its
-      contributors may be used to endorse or promote products derived
-      from this software without specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
-  FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-  COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-  BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-  LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-  CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-  LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
-  ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-  POSSIBILITY OF SUCH DAMAGE.
-
-sourcemap LICENSE file:
-
-  Copyright (c) 2012, Chris Done
-
-  All rights reserved.
-
-  Redistribution and use in source and binary forms, with or without
-  modification, are permitted provided that the following conditions are met:
-
-      * Redistributions of source code must retain the above copyright
-        notice, this list of conditions and the following disclaimer.
-
-      * Redistributions in binary form must reproduce the above
-        copyright notice, this list of conditions and the following
-        disclaimer in the documentation and/or other materials provided
-        with the distribution.
-
-      * Neither the name of Chris Done nor the names of other
-        contributors may be used to endorse or promote products derived
-        from this software without specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-split LICENSE file:
-
-  Copyright (c) 2008 Brent Yorgey, Louis Wasserman
-
-  All rights reserved.
-
-  Redistribution and use in source and binary forms, with or without
-  modification, are permitted provided that the following conditions
-  are met:
-  1. Redistributions of source code must retain the above copyright
-     notice, this list of conditions and the following disclaimer.
-  2. Redistributions in binary form must reproduce the above copyright
-     notice, this list of conditions and the following disclaimer in the
-     documentation and/or other materials provided with the distribution.
-  3. Neither the name of the author nor the names of other contributors
-     may be used to endorse or promote products derived from this software
-     without specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND
-  ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-  ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE
-  FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-  DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-  OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-  LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-  OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-  SUCH DAMAGE.
-
-stm LICENSE file:
-
-  The Glasgow Haskell Compiler License
-
-  Copyright 2004, The University Court of the University of Glasgow.
-  All rights reserved.
-
-  Redistribution and use in source and binary forms, with or without
-  modification, are permitted provided that the following conditions are met:
-
-  - Redistributions of source code must retain the above copyright notice,
-  this list of conditions and the following disclaimer.
-
-  - Redistributions in binary form must reproduce the above copyright notice,
-  this list of conditions and the following disclaimer in the documentation
-  and/or other materials provided with the distribution.
-
-  - Neither name of the University nor the names of its contributors may be
-  used to endorse or promote products derived from this software without
-  specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE UNIVERSITY COURT OF THE UNIVERSITY OF
-  GLASGOW AND THE CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
-  INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-  FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-  UNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW OR THE CONTRIBUTORS BE LIABLE
-  FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-  DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-  SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-  CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-  LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-  OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
-  DAMAGE.
-
-stm-chans LICENSE file:
-
-  === stm-chans license ===
-
-  Copyright (c) 2011--2013, wren gayle romano.
-  ALL RIGHTS RESERVED.
-
-  Redistribution and use in source and binary forms, with or without
-  modification, are permitted provided that the following conditions
-  are met:
-
-      * Redistributions of source code must retain the above copyright
-        notice, this list of conditions and the following disclaimer.
-
-      * Redistributions in binary form must reproduce the above
-        copyright notice, this list of conditions and the following
-        disclaimer in the documentation and/or other materials provided
-        with the distribution.
-
-      * Neither the name of the copyright holders nor the names of
-        other contributors may be used to endorse or promote products
-        derived from this software without specific prior written
-        permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
-  FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-  COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-  BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-  LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-  CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-  LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
-  ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-  POSSIBILITY OF SUCH DAMAGE.
-
-
-streaming-commons LICENSE file:
-
-  The MIT License (MIT)
-
-  Copyright (c) 2014 FP Complete
-
-  Permission is hereby granted, free of charge, to any person obtaining a copy
-  of this software and associated documentation files (the "Software"), to deal
-  in the Software without restriction, including without limitation the rights
-  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-  copies of the Software, and to permit persons to whom the Software is
-  furnished to do so, subject to the following conditions:
-
-  The above copyright notice and this permission notice shall be included in all
-  copies or substantial portions of the Software.
-
-  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-  SOFTWARE.
-
-stringsearch LICENSE file:
-
-  Copyright (c)2010, Daniel Fischer
-
-  All rights reserved.
-
-  Redistribution and use in source and binary forms, with or without
-  modification, are permitted provided that the following conditions are met:
-
-      * Redistributions of source code must retain the above copyright
-        notice, this list of conditions and the following disclaimer.
-
-      * Redistributions in binary form must reproduce the above
-        copyright notice, this list of conditions and the following
-        disclaimer in the documentation and/or other materials provided
-        with the distribution.
-
-      * Neither the name of Daniel Fischer nor the names of other
-        contributors may be used to endorse or promote products derived
-        from this software without specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-syb LICENSE file:
-
-  This library (libraries/syb) is derived from code from several
-  sources:
-
-    * Code from the GHC project which is largely (c) The University of
-      Glasgow, and distributable under a BSD-style license (see below),
-
-    * Code from the Haskell 98 Report which is (c) Simon Peyton Jones
-      and freely redistributable (but see the full license for
-      restrictions).
-
-    * Code from the Haskell Foreign Function Interface specification,
-      which is (c) Manuel M. T. Chakravarty and freely redistributable
-      (but see the full license for restrictions).
-
-  The full text of these licenses is reproduced below.  All of the
-  licenses are BSD-style or compatible.
-
-  -----------------------------------------------------------------------------
-
-  The Glasgow Haskell Compiler License
-
-  Copyright 2004, The University Court of the University of Glasgow.
-  All rights reserved.
-
-  Redistribution and use in source and binary forms, with or without
-  modification, are permitted provided that the following conditions are met:
-
-  - Redistributions of source code must retain the above copyright notice,
-  this list of conditions and the following disclaimer.
-
-  - Redistributions in binary form must reproduce the above copyright notice,
-  this list of conditions and the following disclaimer in the documentation
-  and/or other materials provided with the distribution.
-
-  - Neither name of the University nor the names of its contributors may be
-  used to endorse or promote products derived from this software without
-  specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE UNIVERSITY COURT OF THE UNIVERSITY OF
-  GLASGOW AND THE CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
-  INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-  FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-  UNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW OR THE CONTRIBUTORS BE LIABLE
-  FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-  DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-  SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-  CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-  LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-  OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
-  DAMAGE.
-
-  -----------------------------------------------------------------------------
-
-  Code derived from the document "Report on the Programming Language
-  Haskell 98", is distributed under the following license:
-
-    Copyright (c) 2002 Simon Peyton Jones
-
-    The authors intend this Report to belong to the entire Haskell
-    community, and so we grant permission to copy and distribute it for
-    any purpose, provided that it is reproduced in its entirety,
-    including this Notice.  Modified versions of this Report may also be
-    copied and distributed for any purpose, provided that the modified
-    version is clearly presented as such, and that it does not claim to
-    be a definition of the Haskell 98 Language.
-
-  -----------------------------------------------------------------------------
-
-  Code derived from the document "The Haskell 98 Foreign Function
-  Interface, An Addendum to the Haskell 98 Report" is distributed under
-  the following license:
-
-    Copyright (c) 2002 Manuel M. T. Chakravarty
-
-    The authors intend this Report to belong to the entire Haskell
-    community, and so we grant permission to copy and distribute it for
-    any purpose, provided that it is reproduced in its entirety,
-    including this Notice.  Modified versions of this Report may also be
-    copied and distributed for any purpose, provided that the modified
-    version is clearly presented as such, and that it does not claim to
-    be a definition of the Haskell 98 Foreign Function Interface.
-
-  -----------------------------------------------------------------------------
-
-system-fileio LICENSE file:
-
-  Copyright (c) 2011 John Millikin
-
-  Permission is hereby granted, free of charge, to any person
-  obtaining a copy of this software and associated documentation
-  files (the "Software"), to deal in the Software without
-  restriction, including without limitation the rights to use,
-  copy, modify, merge, publish, distribute, sublicense, and/or sell
-  copies of the Software, and to permit persons to whom the
-  Software is furnished to do so, subject to the following
-  conditions:
-
-  The above copyright notice and this permission notice shall be
-  included in all copies or substantial portions of the Software.
-
-  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-  OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-  NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-  HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-  WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-  FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-  OTHER DEALINGS IN THE SOFTWARE.
-
-system-filepath LICENSE file:
-
-  Copyright (c) 2010 John Millikin
-
-  Permission is hereby granted, free of charge, to any person
-  obtaining a copy of this software and associated documentation
-  files (the "Software"), to deal in the Software without
-  restriction, including without limitation the rights to use,
-  copy, modify, merge, publish, distribute, sublicense, and/or sell
-  copies of the Software, and to permit persons to whom the
-  Software is furnished to do so, subject to the following
-  conditions:
-
-  The above copyright notice and this permission notice shall be
-  included in all copies or substantial portions of the Software.
-
-  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-  OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-  NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-  HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-  WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-  FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-  OTHER DEALINGS IN THE SOFTWARE.
-
-tagged LICENSE file:
-
-  Copyright (c) 2009-2015 Edward Kmett
-  All rights reserved.
-
-  Redistribution and use in source and binary forms, with or without
-  modification, are permitted provided that the following conditions are
-  met:
-
-      * Redistributions of source code must retain the above copyright
-        notice, this list of conditions and the following disclaimer.
-
-      * Redistributions in binary form must reproduce the above
-        copyright notice, this list of conditions and the following
-        disclaimer in the documentation and/or other materials provided
-        with the distribution.
-
-      * Neither the name of Edward Kmett nor the names of other
-        contributors may be used to endorse or promote products derived
-        from this software without specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-tagsoup LICENSE file:
-
-  Copyright Neil Mitchell 2006-2018.
-  All rights reserved.
-
-  Redistribution and use in source and binary forms, with or without
-  modification, are permitted provided that the following conditions are
-  met:
-
-      * Redistributions of source code must retain the above copyright
-        notice, this list of conditions and the following disclaimer.
-
-      * Redistributions in binary form must reproduce the above
-        copyright notice, this list of conditions and the following
-        disclaimer in the documentation and/or other materials provided
-        with the distribution.
-
-      * Neither the name of Neil Mitchell nor the names of other
-        contributors may be used to endorse or promote products derived
-        from this software without specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-template-haskell LICENSE file:
-
-
-  The Glasgow Haskell Compiler License
-
-  Copyright 2002-2007, The University Court of the University of Glasgow.
-  All rights reserved.
-
-  Redistribution and use in source and binary forms, with or without
-  modification, are permitted provided that the following conditions are met:
-
-  - Redistributions of source code must retain the above copyright notice,
-  this list of conditions and the following disclaimer.
-
-  - Redistributions in binary form must reproduce the above copyright notice,
-  this list of conditions and the following disclaimer in the documentation
-  and/or other materials provided with the distribution.
-
-  - Neither name of the University nor the names of its contributors may be
-  used to endorse or promote products derived from this software without
-  specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE UNIVERSITY COURT OF THE UNIVERSITY OF
-  GLASGOW AND THE CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
-  INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-  FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-  UNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW OR THE CONTRIBUTORS BE LIABLE
-  FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-  DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-  SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-  CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-  LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-  OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
-  DAMAGE.
-
-
-terminfo LICENSE file:
-
-  Copyright 2007, Judah Jacobson.
-  All Rights Reserved.
-
-  Redistribution and use in source and binary forms, with or without
-  modification, are permitted provided that the following conditions are met:
-
-  - Redistribution of source code must retain the above copyright notice,
-  this list of conditions and the following disclamer.
-
-  - Redistribution in binary form must reproduce the above copyright notice,
-  this list of conditions and the following disclamer in the documentation
-  and/or other materials provided with the distribution.
-
-  THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS "AS IS" AND ANY
-  EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-  DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR THE CONTRIBUTORS BE LIABLE
-  FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-  DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-  SERVICES; LOSS OF USE, DATA OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-  CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-  OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
-  USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-text LICENSE file:
-
-  Copyright (c) 2008-2009, Tom Harper
-  All rights reserved.
-
-  Redistribution and use in source and binary forms, with or without
-  modification, are permitted provided that the following conditions
-  are met:
-
-      * Redistributions of source code must retain the above copyright
-        notice, this list of conditions and the following disclaimer.
-
-      * Redistributions in binary form must reproduce the above
-        copyright notice, this list of conditions and the following
-        disclaimer in the documentation and/or other materials provided
-        with the distribution.
-
-  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-th-abstraction LICENSE file:
-
-  Copyright (c) 2017 Eric Mertens
-
-  Permission to use, copy, modify, and/or distribute this software for any purpose
-  with or without fee is hereby granted, provided that the above copyright notice
-  and this permission notice appear in all copies.
-
-  THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
-  REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
-  FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
-  INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
-  OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
-  TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
-  THIS SOFTWARE.
-
-time LICENSE file:
-
-  TimeLib is Copyright (c) Ashley Yakeley, 2004-2014. All rights reserved.
-  Certain sections are Copyright 2004, The University Court of the University of Glasgow. All rights reserved.
-
-  Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
-
-  - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
-
-  - Neither name of the copyright holders nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-time-locale-compat LICENSE file:
-
-  Copyright (c) 2014, Kei Hibino
-
-  All rights reserved.
-
-  Redistribution and use in source and binary forms, with or without
-  modification, are permitted provided that the following conditions are met:
-
-      * Redistributions of source code must retain the above copyright
-        notice, this list of conditions and the following disclaimer.
-
-      * Redistributions in binary form must reproduce the above
-        copyright notice, this list of conditions and the following
-        disclaimer in the documentation and/or other materials provided
-        with the distribution.
-
-      * Neither the name of Kei Hibino nor the names of other
-        contributors may be used to endorse or promote products derived
-        from this software without specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-transformers LICENSE file:
-
-  The Glasgow Haskell Compiler License
-
-  Copyright 2004, The University Court of the University of Glasgow.
-  All rights reserved.
-
-  Redistribution and use in source and binary forms, with or without
-  modification, are permitted provided that the following conditions are met:
-
-  - Redistributions of source code must retain the above copyright notice,
-  this list of conditions and the following disclaimer.
-
-  - Redistributions in binary form must reproduce the above copyright notice,
-  this list of conditions and the following disclaimer in the documentation
-  and/or other materials provided with the distribution.
-
-  - Neither name of the University nor the names of its contributors may be
-  used to endorse or promote products derived from this software without
-  specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE UNIVERSITY COURT OF THE UNIVERSITY OF
-  GLASGOW AND THE CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
-  INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-  FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-  UNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW OR THE CONTRIBUTORS BE LIABLE
-  FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-  DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-  SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-  CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-  LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-  OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
-  DAMAGE.
-
-transformers-base LICENSE file:
-
-  Copyright (c) 2011, Mikhail Vorozhtsov, Bas van Dijk
-  All rights reserved.
-
-  Redistribution and use in source and binary forms, with or without
-  modification, are permitted provided that the following conditions are met:
-
-  - Redistributions of source code must retain the above copyright notice,
-    this list of conditions and the following disclaimer.
-  - Redistributions in binary form must reproduce the above copyright
-    notice, this list of conditions and the following disclaimer in the
-    documentation and/or other materials provided with the distribution.
-  - Neither the names of the copyright owners nor the names of the
-    contributors may be used to endorse or promote products derived
-    from this software without specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-
-transformers-compat LICENSE file:
-
-  Copyright 2012-2015 Edward Kmett
-
-  All rights reserved.
-
-  Redistribution and use in source and binary forms, with or without
-  modification, are permitted provided that the following conditions
-  are met:
-
-  1. Redistributions of source code must retain the above copyright
-     notice, this list of conditions and the following disclaimer.
-
-  2. Redistributions in binary form must reproduce the above copyright
-     notice, this list of conditions and the following disclaimer in the
-     documentation and/or other materials provided with the distribution.
-
-  3. Neither the name of the author nor the names of his contributors
-     may be used to endorse or promote products derived from this software
-     without specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR
-  IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-  DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR
-  ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-  DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-  OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
-  STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
-  ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-  POSSIBILITY OF SUCH DAMAGE.
-
-typed-process LICENSE file:
-
-  Copyright (c) 2016 FP Complete, https://www.fpcomplete.com/
-
-  Permission is hereby granted, free of charge, to any person obtaining
-  a copy of this software and associated documentation files (the
-  "Software"), to deal in the Software without restriction, including
-  without limitation the rights to use, copy, modify, merge, publish,
-  distribute, sublicense, and/or sell copies of the Software, and to
-  permit persons to whom the Software is furnished to do so, subject to
-  the following conditions:
-
-  The above copyright notice and this permission notice shall be
-  included in all copies or substantial portions of the Software.
-
-  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-  NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-  LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-  OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-  WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-uniplate LICENSE file:
-
-  Copyright Neil Mitchell 2006-2013.
-  All rights reserved.
-
-  Redistribution and use in source and binary forms, with or without
-  modification, are permitted provided that the following conditions are
-  met:
-
-      * Redistributions of source code must retain the above copyright
-        notice, this list of conditions and the following disclaimer.
-
-      * Redistributions in binary form must reproduce the above
-        copyright notice, this list of conditions and the following
-        disclaimer in the documentation and/or other materials provided
-        with the distribution.
-
-      * Neither the name of Neil Mitchell nor the names of other
-        contributors may be used to endorse or promote products derived
-        from this software without specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-unix LICENSE file:
-
-  The Glasgow Haskell Compiler License
-
-  Copyright 2004, The University Court of the University of Glasgow.
-  All rights reserved.
-
-  Redistribution and use in source and binary forms, with or without
-  modification, are permitted provided that the following conditions are met:
-
-  - Redistributions of source code must retain the above copyright notice,
-  this list of conditions and the following disclaimer.
-
-  - Redistributions in binary form must reproduce the above copyright notice,
-  this list of conditions and the following disclaimer in the documentation
-  and/or other materials provided with the distribution.
-
-  - Neither name of the University nor the names of its contributors may be
-  used to endorse or promote products derived from this software without
-  specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE UNIVERSITY COURT OF THE UNIVERSITY OF
-  GLASGOW AND THE CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
-  INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-  FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-  UNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW OR THE CONTRIBUTORS BE LIABLE
-  FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-  DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-  SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-  CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-  LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-  OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
-  DAMAGE.
-
-unix-compat LICENSE file:
-
-  Copyright (c) 2007-2008, Björn Bringert
-  Copyright (c) 2007-2009, Duncan Coutts
-  Copyright (c) 2010-2011, Jacob Stanley
-  Copyright (c)      2011, Bryan O'Sullivan
-  All rights reserved.
-
-  Redistribution and use in source and binary forms, with or without
-  modification, are permitted provided that the following conditions are met:
-
-  - Redistributions of source code must retain the above copyright notice,
-    this list of conditions and the following disclaimer.
-  - Redistributions in binary form must reproduce the above copyright
-    notice, this list of conditions and the following disclaimer in the
-    documentation and/or other materials provided with the distribution.
-  - Neither the names of the copyright owners nor the names of the
-    contributors may be used to endorse or promote products derived
-    from this software without specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-unix-time LICENSE file:
-
-  Copyright (c) 2009, IIJ Innovation Institute Inc.
-  All rights reserved.
-
-  Redistribution and use in source and binary forms, with or without
-  modification, are permitted provided that the following conditions
-  are met:
-
-    * Redistributions of source code must retain the above copyright
-      notice, this list of conditions and the following disclaimer.
-    * Redistributions in binary form must reproduce the above copyright
-      notice, this list of conditions and the following disclaimer in
-      the documentation and/or other materials provided with the
-      distribution.
-    * Neither the name of the copyright holders nor the names of its
-      contributors may be used to endorse or promote products derived
-      from this software without specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
-  FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-  COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-  BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-  LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-  CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-  LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
-  ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-  POSSIBILITY OF SUCH DAMAGE.
-
-unliftio-core LICENSE file:
-
-  Copyright (c) 2017 FP Complete
-
-  Permission is hereby granted, free of charge, to any person obtaining
-  a copy of this software and associated documentation files (the
-  "Software"), to deal in the Software without restriction, including
-  without limitation the rights to use, copy, modify, merge, publish,
-  distribute, sublicense, and/or sell copies of the Software, and to
-  permit persons to whom the Software is furnished to do so, subject to
-  the following conditions:
-
-  The above copyright notice and this permission notice shall be included
-  in all copies or substantial portions of the Software.
-
-  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-  IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
-  CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-  TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-  SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-unordered-containers LICENSE file:
-
-  Copyright (c) 2010, Johan Tibell
-
-  All rights reserved.
-
-  Redistribution and use in source and binary forms, with or without
-  modification, are permitted provided that the following conditions are met:
-
-      * Redistributions of source code must retain the above copyright
-        notice, this list of conditions and the following disclaimer.
-
-      * Redistributions in binary form must reproduce the above
-        copyright notice, this list of conditions and the following
-        disclaimer in the documentation and/or other materials provided
-        with the distribution.
-
-      * Neither the name of Johan Tibell nor the names of other
-        contributors may be used to endorse or promote products derived
-        from this software without specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-utf8-string LICENSE file:
-
-  * Copyright (c) 2007, Galois Inc.
-  * All rights reserved.
-  *
-  * Redistribution and use in source and binary forms, with or without
-  * modification, are permitted provided that the following conditions are met:
-  *     * Redistributions of source code must retain the above copyright
-  *       notice, this list of conditions and the following disclaimer.
-  *     * Redistributions in binary form must reproduce the above copyright
-  *       notice, this list of conditions and the following disclaimer in the
-  *       documentation and/or other materials provided with the distribution.
-  *     * Neither the name of Galois Inc. nor the
-  *       names of its contributors may be used to endorse or promote products
-  *       derived from this software without specific prior written permission.
-  *
-  * THIS SOFTWARE IS PROVIDED BY Galois Inc. ``AS IS'' AND ANY
-  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-  * DISCLAIMED. IN NO EVENT SHALL Galois Inc. BE LIABLE FOR ANY
-  * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-uuid-types LICENSE file:
-
-  Copyright (c) 2008, Antoine Latter
-
-  All rights reserved.
-
-  Redistribution and use in source and binary forms, with or without
-  modification, are permitted provided that the following conditions are
-  met:
-
-      * Redistributions of source code must retain the above copyright
-  notice, this list of conditions and the following disclaimer.
-      * Redistributions in binary form must reproduce the above copyright
-  notice, this list of conditions and the following disclaimer in the
-  documentation and/or other materials provided with the distribution.
-      * The names of the authors may not be used to endorse or promote
-  products derived from this software without specific prior written
-  permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
-  TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
-  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
-  LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-  NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-  SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-vault LICENSE file:
-
-  Copyright (c)2011, Heinrich Apfelmus
-
-  All rights reserved.
-
-  Redistribution and use in source and binary forms, with or without
-  modification, are permitted provided that the following conditions are met:
-
-      * Redistributions of source code must retain the above copyright
-        notice, this list of conditions and the following disclaimer.
-
-      * Redistributions in binary form must reproduce the above
-        copyright notice, this list of conditions and the following
-        disclaimer in the documentation and/or other materials provided
-        with the distribution.
-
-      * Neither the name of Heinrich Apfelmus nor the names of other
-        contributors may be used to endorse or promote products derived
-        from this software without specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-vector LICENSE file:
-
-  Copyright (c) 2008-2012, Roman Leshchinskiy
-  All rights reserved.
-
-  Redistribution and use in source and binary forms, with or without
-  modification, are permitted provided that the following conditions are met:
-
-  - Redistributions of source code must retain the above copyright notice,
-  this list of conditions and the following disclaimer.
-
-  - Redistributions in binary form must reproduce the above copyright notice,
-  this list of conditions and the following disclaimer in the documentation
-  and/or other materials provided with the distribution.
-
-  - Neither name of the University nor the names of its contributors may be
-  used to endorse or promote products derived from this software without
-  specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE UNIVERSITY COURT OF THE UNIVERSITY OF
-  GLASGOW AND THE CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
-  INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-  FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-  UNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW OR THE CONTRIBUTORS BE LIABLE
-  FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-  DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-  SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-  CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-  LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-  OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
-  DAMAGE.
-
-
-vector-algorithms LICENSE file:
-
-  Copyright (c) 2015 Dan Doel
-  Copyright (c) 2015 Tim Baumann
-
-  All rights reserved.
-
-  Redistribution and use in source and binary forms, with or without
-  modification, are permitted provided that the following conditions
-  are met:
-
-  1. Redistributions of source code must retain the above copyright
-     notice, this list of conditions and the following disclaimer.
-
-  2. Redistributions in binary form must reproduce the above copyright
-     notice, this list of conditions and the following disclaimer in the
-     documentation and/or other materials provided with the distribution.
-
-  3. Neither the name of the author nor the names of his contributors
-     may be used to endorse or promote products derived from this software
-     without specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR
-  IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-  DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR
-  ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-  DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-  OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
-  STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
-  ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-  POSSIBILITY OF SUCH DAMAGE.
-
-  ------------------------------------------------------------------------------
-
-  The code in Data.Array.Vector.Algorithms.Mutable.Optimal is adapted from a C
-  algorithm for the same purpose. The folowing is the copyright notice for said
-  C code:
-
-  Copyright (c) 2004 Paul Hsieh
-  All rights reserved.
-
-  Redistribution and use in source and binary forms, with or without
-  modification, are permitted provided that the following conditions are met:
-
-      Redistributions of source code must retain the above copyright notice,
-      this list of conditions and the following disclaimer.
-
-      Redistributions in binary form must reproduce the above copyright notice,
-      this list of conditions and the following disclaimer in the documentation
-      and/or other materials provided with the distribution.
-
-      Neither the name of sorttest nor the names of its contributors may be
-      used to endorse or promote products derived from this software without
-      specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-  POSSIBILITY OF SUCH DAMAGE.
-
-void LICENSE file:
-
-  Copyright 2015 Edward Kmett
-
-  All rights reserved.
-
-  Redistribution and use in source and binary forms, with or without
-  modification, are permitted provided that the following conditions
-  are met:
-
-  1. Redistributions of source code must retain the above copyright
-     notice, this list of conditions and the following disclaimer.
-
-  2. Redistributions in binary form must reproduce the above copyright
-     notice, this list of conditions and the following disclaimer in the
-     documentation and/or other materials provided with the distribution.
-
-  3. Neither the name of the author nor the names of his contributors
-     may be used to endorse or promote products derived from this software
-     without specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR
-  IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-  DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR
-  ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-  DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-  OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
-  STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
-  ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-  POSSIBILITY OF SUCH DAMAGE.
-
-wai LICENSE file:
-
-  Copyright (c) 2012 Michael Snoyman, http://www.yesodweb.com/
-
-  Permission is hereby granted, free of charge, to any person obtaining
-  a copy of this software and associated documentation files (the
-  "Software"), to deal in the Software without restriction, including
-  without limitation the rights to use, copy, modify, merge, publish,
-  distribute, sublicense, and/or sell copies of the Software, and to
-  permit persons to whom the Software is furnished to do so, subject to
-  the following conditions:
-
-  The above copyright notice and this permission notice shall be
-  included in all copies or substantial portions of the Software.
-
-  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-  NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-  LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-  OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-  WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-wai-app-static LICENSE file:
-
-  Copyright (c) 2012 Michael Snoyman, http://www.yesodweb.com/
-
-  Permission is hereby granted, free of charge, to any person obtaining
-  a copy of this software and associated documentation files (the
-  "Software"), to deal in the Software without restriction, including
-  without limitation the rights to use, copy, modify, merge, publish,
-  distribute, sublicense, and/or sell copies of the Software, and to
-  permit persons to whom the Software is furnished to do so, subject to
-  the following conditions:
-
-  The above copyright notice and this permission notice shall be
-  included in all copies or substantial portions of the Software.
-
-  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-  NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-  LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-  OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-  WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-wai-extra LICENSE file:
-
-  Copyright (c) 2012 Michael Snoyman, http://www.yesodweb.com/
-
-  Permission is hereby granted, free of charge, to any person obtaining
-  a copy of this software and associated documentation files (the
-  "Software"), to deal in the Software without restriction, including
-  without limitation the rights to use, copy, modify, merge, publish,
-  distribute, sublicense, and/or sell copies of the Software, and to
-  permit persons to whom the Software is furnished to do so, subject to
-  the following conditions:
-
-  The above copyright notice and this permission notice shall be
-  included in all copies or substantial portions of the Software.
-
-  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-  NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-  LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-  OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-  WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-wai-logger LICENSE file:
-
-  Copyright (c) 2009, IIJ Innovation Institute Inc.
-  All rights reserved.
-
-  Redistribution and use in source and binary forms, with or without
-  modification, are permitted provided that the following conditions
-  are met:
-
-    * Redistributions of source code must retain the above copyright
-      notice, this list of conditions and the following disclaimer.
-    * Redistributions in binary form must reproduce the above copyright
-      notice, this list of conditions and the following disclaimer in
-      the documentation and/or other materials provided with the
-      distribution.
-    * Neither the name of the copyright holders nor the names of its
-      contributors may be used to endorse or promote products derived
-      from this software without specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
-  FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-  COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-  BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-  LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-  CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-  LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
-  ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-  POSSIBILITY OF SUCH DAMAGE.
-
-wai-websockets LICENSE file:
-
-  Copyright (c) 2012 Michael Snoyman, http://www.yesodweb.com/
-
-  Permission is hereby granted, free of charge, to any person obtaining
-  a copy of this software and associated documentation files (the
-  "Software"), to deal in the Software without restriction, including
-  without limitation the rights to use, copy, modify, merge, publish,
-  distribute, sublicense, and/or sell copies of the Software, and to
-  permit persons to whom the Software is furnished to do so, subject to
-  the following conditions:
-
-  The above copyright notice and this permission notice shall be
-  included in all copies or substantial portions of the Software.
-
-  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-  NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-  LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-  OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-  WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-warp LICENSE file:
-
-  Copyright (c) 2012 Michael Snoyman, http://www.yesodweb.com/
-
-  Permission is hereby granted, free of charge, to any person obtaining
-  a copy of this software and associated documentation files (the
-  "Software"), to deal in the Software without restriction, including
-  without limitation the rights to use, copy, modify, merge, publish,
-  distribute, sublicense, and/or sell copies of the Software, and to
-  permit persons to whom the Software is furnished to do so, subject to
-  the following conditions:
-
-  The above copyright notice and this permission notice shall be
-  included in all copies or substantial portions of the Software.
-
-  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-  NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-  LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-  OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-  WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-websockets LICENSE file:
-
-  Copyright Jasper Van der Jeugt, 2011
-
-  All rights reserved.
-
-  Redistribution and use in source and binary forms, with or without
-  modification, are permitted provided that the following conditions are met:
-
-      * Redistributions of source code must retain the above copyright
-        notice, this list of conditions and the following disclaimer.
-
-      * Redistributions in binary form must reproduce the above
-        copyright notice, this list of conditions and the following
-        disclaimer in the documentation and/or other materials provided
-        with the distribution.
-
-      * Neither the name of Siniša Biđin nor the names of other
-        contributors may be used to endorse or promote products derived
-        from this software without specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-word8 LICENSE file:
-
-  Copyright (c) 2012, IIJ Innovation Institute Inc.
-  All rights reserved.
-
-  Redistribution and use in source and binary forms, with or without
-  modification, are permitted provided that the following conditions
-  are met:
-
-    * Redistributions of source code must retain the above copyright
-      notice, this list of conditions and the following disclaimer.
-    * Redistributions in binary form must reproduce the above copyright
-      notice, this list of conditions and the following disclaimer in
-      the documentation and/or other materials provided with the
-      distribution.
-    * Neither the name of the copyright holders nor the names of its
-      contributors may be used to endorse or promote products derived
-      from this software without specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
-  FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-  COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-  BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-  LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-  CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-  LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
-  ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-  POSSIBILITY OF SUCH DAMAGE.
+  OneTuple
+  QuickCheck
+  StateVar
+  adjunctions
+  aeson
+  aeson-better-errors
+  alex
+  ansi-terminal
+  ansi-wl-pprint
+  array
+  assoc
+  async
+  attoparsec
+  auto-update
+  base
+  base-compat
+  base-compat-batteries
+  base-orphans
+  basement
+  bifunctors
+  binary
+  blaze-builder
+  blaze-html
+  blaze-markup
+  bower-json
+  boxes
+  bytestring
+  call-stack
+  cborg
+  cheapskate
+  clock
+  colour
+  comonad
+  conduit
+  conduit-extra
+  constraints
+  containers
+  contravariant
+  cryptonite
+  css-text
+  data-array-byte
+  data-default
+  data-default-class
+  data-default-instances-containers
+  data-default-instances-dlist
+  data-default-instances-old-locale
+  data-fix
+  data-ordlist
+  deepseq
+  directory
+  distributive
+  dlist
+  easy-file
+  edit-distance
+  exceptions
+  fast-logger
+  file-embed
+  filepath
+  free
+  ghc-bignum
+  ghc-prim
+  half
+  happy
+  hashable
+  haskeline
+  indexed-traversable
+  indexed-traversable-instances
+  integer-gmp
+  integer-logarithms
+  invariant
+  kan-extensions
+  language-javascript
+  lens
+  lifted-async
+  lifted-base
+  memory
+  monad-control
+  monad-logger
+  monad-loops
+  mono-traversable
+  monoidal-containers
+  mtl
+  mtl-compat
+  network
+  network-uri
+  newtype
+  old-locale
+  old-time
+  optparse-applicative
+  parallel
+  parsec
+  pattern-arrows
+  pretty
+  primitive
+  process
+  profunctors
+  protolude
+  random
+  reflection
+  regex-base
+  regex-tdfa
+  resourcet
+  safe
+  scientific
+  semialign
+  semigroupoids
+  semigroups
+  serialise
+  sourcemap
+  split
+  splitmix
+  stm
+  stm-chans
+  streaming-commons
+  strict
+  stringsearch
+  syb
+  tagged
+  tagsoup
+  template-haskell
+  text
+  text-short
+  th-abstraction
+  th-compat
+  these
+  time
+  time-compat
+  transformers
+  transformers-base
+  transformers-compat
+  type-equality
+  typed-process
+  uniplate
+  unix
+  unix-compat
+  unix-time
+  unliftio-core
+  unordered-containers
+  utf8-string
+  uuid-types
+  vector
+  vector-algorithms
+  void
+  witherable
+  xss-sanitize
+  zlib
+
+Cabal LICENSE file:
+
+  Copyright (c) 2003-2020, Cabal Development Team.
+  See the AUTHORS file for the full list of copyright holders.
+
+  See */LICENSE for the copyright holders of the subcomponents.
+
+  All rights reserved.
+
+  Redistribution and use in source and binary forms, with or without
+  modification, are permitted provided that the following conditions are
+  met:
+
+      * Redistributions of source code must retain the above copyright
+        notice, this list of conditions and the following disclaimer.
+
+      * Redistributions in binary form must reproduce the above
+        copyright notice, this list of conditions and the following
+        disclaimer in the documentation and/or other materials provided
+        with the distribution.
+
+      * Neither the name of Isaac Jones nor the names of other
+        contributors may be used to endorse or promote products derived
+        from this software without specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+Glob LICENSE file:
+
+  The code in Glob is released under the license below. Copyrights to parts of
+  the code are held by whoever wrote the code in question: see CREDITS.txt for a
+  list of authors.
+
+  Copyright (c) 2008-2018 <authors>
+  All rights reserved.
+
+  Redistribution and use in source and binary forms, with or without
+  modification, are permitted provided that the following conditions are met:
+      * Redistributions of source code must retain the above copyright
+        notice, this list of conditions and the following disclaimer.
+      * Redistributions in binary form must reproduce the above copyright
+        notice, this list of conditions and the following disclaimer in the
+        documentation and/or other materials provided with the distribution.
+      * Neither the name of the project nor the names of its contributors may be
+        used to endorse or promote products derived from this software without
+        specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR IMPLIED
+  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+  EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+  LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+  OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+  ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+OneTuple LICENSE file:
+
+
+  Copyright (c) 2008, John A. Dorsey.
+  All rights reserved.
+
+  Redistribution and use of this software in source and binary forms,
+  with or without modification, are permitted provided that the
+  following conditions are met:
+
+  * Redistributions of source code must retain the above
+    copyright notice, this list of conditions and the
+    following disclaimer.
+
+  * Redistributions in binary form must reproduce the above
+    copyright notice, this list of conditions and the
+    following disclaimer in the documentation and/or other
+    materials provided with the distribution.
+
+  * Neither the name of John Dorsey nor the names of its
+    contributors may be used to endorse or promote products
+    derived from this software without specific prior
+    written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
+  TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
+  OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+  OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+  NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+  SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+QuickCheck LICENSE file:
+
+  (The following is the 3-clause BSD license.)
+
+  Copyright (c) 2000-2019, Koen Claessen
+  Copyright (c) 2006-2008, Björn Bringert
+  Copyright (c) 2009-2019, Nick Smallbone
+
+  Redistribution and use in source and binary forms, with or without
+  modification, are permitted provided that the following conditions are met:
+
+  - Redistributions of source code must retain the above copyright notice,
+    this list of conditions and the following disclaimer.
+  - Redistributions in binary form must reproduce the above copyright
+    notice, this list of conditions and the following disclaimer in the
+    documentation and/or other materials provided with the distribution.
+  - Neither the names of the copyright owners nor the names of the
+    contributors may be used to endorse or promote products derived
+    from this software without specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+StateVar LICENSE file:
+
+  Copyright (c) 2014-2015, Edward Kmett
+  Copyright (c) 2009-2021, Sven Panne
+  All rights reserved.
+
+  Redistribution and use in source and binary forms, with or without
+  modification, are permitted provided that the following conditions are met:
+
+  1. Redistributions of source code must retain the above copyright notice,
+     this list of conditions and the following disclaimer.
+
+  2. Redistributions in binary form must reproduce the above copyright
+     notice, this list of conditions and the following disclaimer in the
+     documentation and/or other materials provided with the distribution.
+
+  3. Neither the name of the author nor the names of its contributors may be
+     used to endorse or promote products derived from this software without
+     specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+  POSSIBILITY OF SUCH DAMAGE.
+
+adjunctions LICENSE file:
+
+  Copyright 2011-2014 Edward Kmett
+
+  All rights reserved.
+
+  Redistribution and use in source and binary forms, with or without
+  modification, are permitted provided that the following conditions
+  are met:
+
+  1. Redistributions of source code must retain the above copyright
+     notice, this list of conditions and the following disclaimer.
+
+  2. Redistributions in binary form must reproduce the above copyright
+     notice, this list of conditions and the following disclaimer in the
+     documentation and/or other materials provided with the distribution.
+
+  THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR
+  IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+  DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR
+  ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+  DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+  OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+  STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+  ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+  POSSIBILITY OF SUCH DAMAGE.
+
+aeson LICENSE file:
+
+  Copyright (c) 2011, MailRank, Inc. 2014-2021 Aeson project contributors
+
+  All rights reserved.
+
+  Redistribution and use in source and binary forms, with or without
+  modification, are permitted provided that the following conditions
+  are met:
+
+  1. Redistributions of source code must retain the above copyright
+     notice, this list of conditions and the following disclaimer.
+
+  2. Redistributions in binary form must reproduce the above copyright
+     notice, this list of conditions and the following disclaimer in the
+     documentation and/or other materials provided with the distribution.
+
+  3. Neither the name of the author nor the names of his contributors
+     may be used to endorse or promote products derived from this software
+     without specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE CONTRIBUTORS ``AS IS'' AND ANY EXPRESS
+  OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+  DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR
+  ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+  DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+  OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+  STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+  ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+  POSSIBILITY OF SUCH DAMAGE.
+
+aeson-better-errors LICENSE file:
+
+  Copyright (c) 2015 Harry Garrood
+
+  Permission is hereby granted, free of charge, to any person obtaining
+  a copy of this software and associated documentation files (the
+  "Software"), to deal in the Software without restriction, including
+  without limitation the rights to use, copy, modify, merge, publish,
+  distribute, sublicense, and/or sell copies of the Software, and to
+  permit persons to whom the Software is furnished to do so, subject to
+  the following conditions:
+
+  The above copyright notice and this permission notice shall be included
+  in all copies or substantial portions of the Software.
+
+  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+  IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+  CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+  TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+  SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+alex LICENSE file:
+
+  Copyright (c) 1995-2011, Chris Dornan and Simon Marlow
+  All rights reserved.
+
+  Redistribution and use in source and binary forms, with or without
+  modification, are permitted provided that the following conditions are
+  met:
+
+      * Redistributions of source code must retain the above copyright
+        notice, this list of conditions and the following disclaimer.
+
+      * Redistributions in binary form must reproduce the above
+        copyright notice, this list of conditions and the following
+        disclaimer in the documentation and/or other materials provided
+        with the distribution.
+
+      * Neither the name of the copyright holders, nor the names of the
+        contributors may be used to endorse or promote products derived
+        from this software without specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ansi-terminal LICENSE file:
+
+  Copyright (c) 2008, Maximilian Bolingbroke
+  All rights reserved.
+
+  Redistribution and use in source and binary forms, with or without modification, are permitted
+  provided that the following conditions are met:
+
+      * Redistributions of source code must retain the above copyright notice, this list of
+        conditions and the following disclaimer.
+      * Redistributions in binary form must reproduce the above copyright notice, this list of
+        conditions and the following disclaimer in the documentation and/or other materials
+        provided with the distribution.
+      * Neither the name of Maximilian Bolingbroke nor the names of other contributors may be used to
+        endorse or promote products derived from this software without specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+  IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+  FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+  DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
+  IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+  OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ansi-wl-pprint LICENSE file:
+
+  Copyright 2008, Daan Leijen and Max Bolingbroke. All rights reserved.
+
+  Redistribution and use in source and binary forms, with or without
+  modification, are permitted provided that the following conditions are
+  met:
+
+    * Redistributions of source code must retain the above copyright
+      notice, this list of conditions and the following disclaimer.
+
+    * Redistributions in binary form must reproduce the above copyright
+      notice, this list of conditions and the following disclaimer in
+      the documentation and/or other materials provided with the
+      distribution.
+
+  This software is provided by the copyright holders "as is" and any
+  express or implied warranties, including, but not limited to, the
+  implied warranties of merchantability and fitness for a particular
+  purpose are disclaimed. In no event shall the copyright holders be
+  liable for any direct, indirect, incidental, special, exemplary, or
+  consequential damages (including, but not limited to, procurement of
+  substitute goods or services; loss of use, data, or profits; or
+  business interruption) however caused and on any theory of liability,
+  whether in contract, strict liability, or tort (including negligence
+  or otherwise) arising in any way out of the use of this software, even
+  if advised of the possibility of such damage.
+
+array LICENSE file:
+
+  This library (libraries/base) is derived from code from several
+  sources:
+
+    * Code from the GHC project which is largely (c) The University of
+      Glasgow, and distributable under a BSD-style license (see below),
+
+    * Code from the Haskell 98 Report which is (c) Simon Peyton Jones
+      and freely redistributable (but see the full license for
+      restrictions).
+
+    * Code from the Haskell Foreign Function Interface specification,
+      which is (c) Manuel M. T. Chakravarty and freely redistributable
+      (but see the full license for restrictions).
+
+  The full text of these licenses is reproduced below.  All of the
+  licenses are BSD-style or compatible.
+
+  -----------------------------------------------------------------------------
+
+  The Glasgow Haskell Compiler License
+
+  Copyright 2004, The University Court of the University of Glasgow.
+  All rights reserved.
+
+  Redistribution and use in source and binary forms, with or without
+  modification, are permitted provided that the following conditions are met:
+
+  - Redistributions of source code must retain the above copyright notice,
+  this list of conditions and the following disclaimer.
+
+  - Redistributions in binary form must reproduce the above copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+
+  - Neither name of the University nor the names of its contributors may be
+  used to endorse or promote products derived from this software without
+  specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE UNIVERSITY COURT OF THE UNIVERSITY OF
+  GLASGOW AND THE CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+  INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+  FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+  UNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW OR THE CONTRIBUTORS BE LIABLE
+  FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+  DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+  SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+  CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+  LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+  OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
+  DAMAGE.
+
+  -----------------------------------------------------------------------------
+
+  Code derived from the document "Report on the Programming Language
+  Haskell 98", is distributed under the following license:
+
+    Copyright (c) 2002 Simon Peyton Jones
+
+    The authors intend this Report to belong to the entire Haskell
+    community, and so we grant permission to copy and distribute it for
+    any purpose, provided that it is reproduced in its entirety,
+    including this Notice.  Modified versions of this Report may also be
+    copied and distributed for any purpose, provided that the modified
+    version is clearly presented as such, and that it does not claim to
+    be a definition of the Haskell 98 Language.
+
+  -----------------------------------------------------------------------------
+
+  Code derived from the document "The Haskell 98 Foreign Function
+  Interface, An Addendum to the Haskell 98 Report" is distributed under
+  the following license:
+
+    Copyright (c) 2002 Manuel M. T. Chakravarty
+
+    The authors intend this Report to belong to the entire Haskell
+    community, and so we grant permission to copy and distribute it for
+    any purpose, provided that it is reproduced in its entirety,
+    including this Notice.  Modified versions of this Report may also be
+    copied and distributed for any purpose, provided that the modified
+    version is clearly presented as such, and that it does not claim to
+    be a definition of the Haskell 98 Foreign Function Interface.
+
+  -----------------------------------------------------------------------------
+
+
+assoc LICENSE file:
+
+  Copyright (c) 2017, Oleg Grenrus
+
+  All rights reserved.
+
+  Redistribution and use in source and binary forms, with or without
+  modification, are permitted provided that the following conditions are met:
+
+      * Redistributions of source code must retain the above copyright
+        notice, this list of conditions and the following disclaimer.
+
+      * Redistributions in binary form must reproduce the above
+        copyright notice, this list of conditions and the following
+        disclaimer in the documentation and/or other materials provided
+        with the distribution.
+
+      * Neither the name of Oleg Grenrus nor the names of other
+        contributors may be used to endorse or promote products derived
+        from this software without specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+async LICENSE file:
+
+  Copyright (c) 2012, Simon Marlow
+
+  All rights reserved.
+
+  Redistribution and use in source and binary forms, with or without
+  modification, are permitted provided that the following conditions are met:
+
+      * Redistributions of source code must retain the above copyright
+        notice, this list of conditions and the following disclaimer.
+
+      * Redistributions in binary form must reproduce the above
+        copyright notice, this list of conditions and the following
+        disclaimer in the documentation and/or other materials provided
+        with the distribution.
+
+      * Neither the name of Simon Marlow nor the names of other
+        contributors may be used to endorse or promote products derived
+        from this software without specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+attoparsec LICENSE file:
+
+  Copyright (c) Lennart Kolmodin
+
+  All rights reserved.
+
+  Redistribution and use in source and binary forms, with or without
+  modification, are permitted provided that the following conditions
+  are met:
+
+  1. Redistributions of source code must retain the above copyright
+     notice, this list of conditions and the following disclaimer.
+
+  2. Redistributions in binary form must reproduce the above copyright
+     notice, this list of conditions and the following disclaimer in the
+     documentation and/or other materials provided with the distribution.
+
+  3. Neither the name of the author nor the names of his contributors
+     may be used to endorse or promote products derived from this software
+     without specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE CONTRIBUTORS ``AS IS'' AND ANY EXPRESS
+  OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+  DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR
+  ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+  DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+  OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+  STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+  ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+  POSSIBILITY OF SUCH DAMAGE.
+
+auto-update LICENSE file:
+
+  Copyright (c) 2014 Michael Snoyman
+
+  Permission is hereby granted, free of charge, to any person obtaining
+  a copy of this software and associated documentation files (the
+  "Software"), to deal in the Software without restriction, including
+  without limitation the rights to use, copy, modify, merge, publish,
+  distribute, sublicense, and/or sell copies of the Software, and to
+  permit persons to whom the Software is furnished to do so, subject to
+  the following conditions:
+
+  The above copyright notice and this permission notice shall be included
+  in all copies or substantial portions of the Software.
+
+  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+  IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+  CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+  TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+  SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+base LICENSE file:
+
+  This library (libraries/base) is derived from code from several
+  sources:
+
+    * Code from the GHC project which is largely (c) The University of
+      Glasgow, and distributable under a BSD-style license (see below),
+
+    * Code from the Haskell 98 Report which is (c) Simon Peyton Jones
+      and freely redistributable (but see the full license for
+      restrictions).
+
+    * Code from the Haskell Foreign Function Interface specification,
+      which is (c) Manuel M. T. Chakravarty and freely redistributable
+      (but see the full license for restrictions).
+
+  The full text of these licenses is reproduced below.  All of the
+  licenses are BSD-style or compatible.
+
+  -----------------------------------------------------------------------------
+
+  The Glasgow Haskell Compiler License
+
+  Copyright 2004, The University Court of the University of Glasgow.
+  All rights reserved.
+
+  Redistribution and use in source and binary forms, with or without
+  modification, are permitted provided that the following conditions are met:
+
+  - Redistributions of source code must retain the above copyright notice,
+  this list of conditions and the following disclaimer.
+
+  - Redistributions in binary form must reproduce the above copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+
+  - Neither name of the University nor the names of its contributors may be
+  used to endorse or promote products derived from this software without
+  specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE UNIVERSITY COURT OF THE UNIVERSITY OF
+  GLASGOW AND THE CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+  INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+  FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+  UNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW OR THE CONTRIBUTORS BE LIABLE
+  FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+  DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+  SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+  CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+  LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+  OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
+  DAMAGE.
+
+  -----------------------------------------------------------------------------
+
+  Code derived from the document "Report on the Programming Language
+  Haskell 98", is distributed under the following license:
+
+    Copyright (c) 2002 Simon Peyton Jones
+
+    The authors intend this Report to belong to the entire Haskell
+    community, and so we grant permission to copy and distribute it for
+    any purpose, provided that it is reproduced in its entirety,
+    including this Notice.  Modified versions of this Report may also be
+    copied and distributed for any purpose, provided that the modified
+    version is clearly presented as such, and that it does not claim to
+    be a definition of the Haskell 98 Language.
+
+  -----------------------------------------------------------------------------
+
+  Code derived from the document "The Haskell 98 Foreign Function
+  Interface, An Addendum to the Haskell 98 Report" is distributed under
+  the following license:
+
+    Copyright (c) 2002 Manuel M. T. Chakravarty
+
+    The authors intend this Report to belong to the entire Haskell
+    community, and so we grant permission to copy and distribute it for
+    any purpose, provided that it is reproduced in its entirety,
+    including this Notice.  Modified versions of this Report may also be
+    copied and distributed for any purpose, provided that the modified
+    version is clearly presented as such, and that it does not claim to
+    be a definition of the Haskell 98 Foreign Function Interface.
+
+  -----------------------------------------------------------------------------
+
+base-compat LICENSE file:
+
+  Copyright (c) 2012-2018 Simon Hengel <sol@typeful.net> and Ryan Scott <ryan.gl.scott@gmail.com>
+
+  Permission is hereby granted, free of charge, to any person obtaining a copy
+  of this software and associated documentation files (the "Software"), to deal
+  in the Software without restriction, including without limitation the rights
+  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+  copies of the Software, and to permit persons to whom the Software is
+  furnished to do so, subject to the following conditions:
+
+  The above copyright notice and this permission notice shall be included in
+  all copies or substantial portions of the Software.
+
+  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+  THE SOFTWARE.
+
+base-compat-batteries LICENSE file:
+
+  Copyright (c) 2012-2018 Simon Hengel <sol@typeful.net> and Ryan Scott <ryan.gl.scott@gmail.com>
+
+  Permission is hereby granted, free of charge, to any person obtaining a copy
+  of this software and associated documentation files (the "Software"), to deal
+  in the Software without restriction, including without limitation the rights
+  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+  copies of the Software, and to permit persons to whom the Software is
+  furnished to do so, subject to the following conditions:
+
+  The above copyright notice and this permission notice shall be included in
+  all copies or substantial portions of the Software.
+
+  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+  THE SOFTWARE.
+
+base-orphans LICENSE file:
+
+  Copyright (c) 2015-2017 Simon Hengel <sol@typeful.net>, João Cristóvão <jmacristovao@gmail.com>, Ryan Scott <ryan.gl.scott@gmail.com>
+
+  Permission is hereby granted, free of charge, to any person obtaining
+  a copy of this software and associated documentation files (the
+  "Software"), to deal in the Software without restriction, including
+  without limitation the rights to use, copy, modify, merge, publish,
+  distribute, sublicense, and/or sell copies of the Software, and to
+  permit persons to whom the Software is furnished to do so, subject to
+  the following conditions:
+
+  The above copyright notice and this permission notice shall be included
+  in all copies or substantial portions of the Software.
+
+  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+  IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+  CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+  TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+  SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+basement LICENSE file:
+
+  Copyright (c) 2015-2017 Vincent Hanquez <vincent@snarc.org>
+  Copyright (c) 2017-2019 Foundation Maintainers
+
+  All rights reserved.
+
+  Redistribution and use in source and binary forms, with or without
+  modification, are permitted provided that the following conditions
+  are met:
+  1. Redistributions of source code must retain the above copyright
+     notice, this list of conditions and the following disclaimer.
+  2. Redistributions in binary form must reproduce the above copyright
+     notice, this list of conditions and the following disclaimer in the
+     documentation and/or other materials provided with the distribution.
+  3. Neither the name of the author nor the names of his contributors
+     may be used to endorse or promote products derived from this software
+     without specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS AS IS'' AND
+  ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+  ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE
+  FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+  DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+  OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+  LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+  OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+  SUCH DAMAGE.
+
+bifunctors LICENSE file:
+
+  Copyright 2008-2016 Edward Kmett
+
+  All rights reserved.
+
+  Redistribution and use in source and binary forms, with or without
+  modification, are permitted provided that the following conditions
+  are met:
+
+  1. Redistributions of source code must retain the above copyright
+     notice, this list of conditions and the following disclaimer.
+
+  2. Redistributions in binary form must reproduce the above copyright
+     notice, this list of conditions and the following disclaimer in the
+     documentation and/or other materials provided with the distribution.
+
+  THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR
+  IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+  DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR
+  ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+  DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+  OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+  STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+  ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+  POSSIBILITY OF SUCH DAMAGE.
+
+binary LICENSE file:
+
+  Copyright (c) Lennart Kolmodin
+
+  All rights reserved.
+
+  Redistribution and use in source and binary forms, with or without
+  modification, are permitted provided that the following conditions
+  are met:
+
+  1. Redistributions of source code must retain the above copyright
+     notice, this list of conditions and the following disclaimer.
+
+  2. Redistributions in binary form must reproduce the above copyright
+     notice, this list of conditions and the following disclaimer in the
+     documentation and/or other materials provided with the distribution.
+
+  3. Neither the name of the author nor the names of his contributors
+     may be used to endorse or promote products derived from this software
+     without specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE CONTRIBUTORS ``AS IS'' AND ANY EXPRESS
+  OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+  DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR
+  ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+  DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+  OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+  STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+  ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+  POSSIBILITY OF SUCH DAMAGE.
+
+blaze-builder LICENSE file:
+
+  Copyright Jasper Van der Jeugt 2010, Simon Meier 2010 & 2011
+
+  All rights reserved.
+
+  Redistribution and use in source and binary forms, with or without
+  modification, are permitted provided that the following conditions are met:
+
+      * Redistributions of source code must retain the above copyright
+        notice, this list of conditions and the following disclaimer.
+
+      * Redistributions in binary form must reproduce the above
+        copyright notice, this list of conditions and the following
+        disclaimer in the documentation and/or other materials provided
+        with the distribution.
+
+      * Neither the name of Jasper Van der Jeugt nor the names of other
+        contributors may be used to endorse or promote products derived
+        from this software without specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+blaze-html LICENSE file:
+
+  Copyright Jasper Van der Jeugt 2010
+
+  All rights reserved.
+
+  Redistribution and use in source and binary forms, with or without
+  modification, are permitted provided that the following conditions are met:
+
+      * Redistributions of source code must retain the above copyright
+        notice, this list of conditions and the following disclaimer.
+
+      * Redistributions in binary form must reproduce the above
+        copyright notice, this list of conditions and the following
+        disclaimer in the documentation and/or other materials provided
+        with the distribution.
+
+      * Neither the name of Jasper Van der Jeugt nor the names of other
+        contributors may be used to endorse or promote products derived
+        from this software without specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+blaze-markup LICENSE file:
+
+  Copyright Jasper Van der Jeugt 2010
+
+  All rights reserved.
+
+  Redistribution and use in source and binary forms, with or without
+  modification, are permitted provided that the following conditions are met:
+
+      * Redistributions of source code must retain the above copyright
+        notice, this list of conditions and the following disclaimer.
+
+      * Redistributions in binary form must reproduce the above
+        copyright notice, this list of conditions and the following
+        disclaimer in the documentation and/or other materials provided
+        with the distribution.
+
+      * Neither the name of Jasper Van der Jeugt nor the names of other
+        contributors may be used to endorse or promote products derived
+        from this software without specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+bower-json LICENSE file:
+
+  Copyright (c) 2015 Harry Garrood
+
+  Permission is hereby granted, free of charge, to any person obtaining
+  a copy of this software and associated documentation files (the
+  "Software"), to deal in the Software without restriction, including
+  without limitation the rights to use, copy, modify, merge, publish,
+  distribute, sublicense, and/or sell copies of the Software, and to
+  permit persons to whom the Software is furnished to do so, subject to
+  the following conditions:
+
+  The above copyright notice and this permission notice shall be included
+  in all copies or substantial portions of the Software.
+
+  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+  IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+  CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+  TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+  SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+boxes LICENSE file:
+
+  Copyright (c) Brent Yorgey 2008
+
+  Redistribution and use in source and binary forms, with or without
+  modification, are permitted provided that the following conditions
+  are met:
+  1. Redistributions of source code must retain the above copyright
+     notice, this list of conditions and the following disclaimer.
+  2. Redistributions in binary form must reproduce the above copyright
+     notice, this list of conditions and the following disclaimer in the
+     documentation and/or other materials provided with the distribution.
+  3. Neither the name of the author nor the names of other contributors
+     may be used to endorse or promote products derived from this software
+     without specific prior written permission.
+
+  All other rights are reserved.
+
+  THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND
+  ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+  ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE
+  FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+  DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+  OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+  LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+  OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+  SUCH DAMAGE.
+
+bytestring LICENSE file:
+
+  Copyright (c) Don Stewart 2005-2009
+            (c) Duncan Coutts 2006-2015
+            (c) David Roundy 2003-2005
+            (c) Simon Meier 2010-2011
+            (c) Koz Ross 2021
+
+  All rights reserved.
+
+  Redistribution and use in source and binary forms, with or without
+  modification, are permitted provided that the following conditions
+  are met:
+  1. Redistributions of source code must retain the above copyright
+     notice, this list of conditions and the following disclaimer.
+  2. Redistributions in binary form must reproduce the above copyright
+     notice, this list of conditions and the following disclaimer in the
+     documentation and/or other materials provided with the distribution.
+  3. Neither the name of the author nor the names of his contributors
+     may be used to endorse or promote products derived from this software
+     without specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+  ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+  ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE
+  FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+  DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+  OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+  LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+  OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+  SUCH DAMAGE.
+
+call-stack LICENSE file:
+
+  Copyright (c) 2016-2021 Simon Hengel <sol@typeful.net>
+
+  Permission is hereby granted, free of charge, to any person obtaining a copy
+  of this software and associated documentation files (the "Software"), to deal
+  in the Software without restriction, including without limitation the rights
+  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+  copies of the Software, and to permit persons to whom the Software is
+  furnished to do so, subject to the following conditions:
+
+  The above copyright notice and this permission notice shall be included in
+  all copies or substantial portions of the Software.
+
+  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+  THE SOFTWARE.
+
+cborg LICENSE file:
+
+  Copyright (c) 2015-2017 Duncan Coutts,
+                2015-2017 Well-Typed LLP,
+                2015 IRIS Connect Ltd.
+
+  All rights reserved.
+
+  Redistribution and use in source and binary forms, with or without
+  modification, are permitted provided that the following conditions are
+  met:
+
+      * Redistributions of source code must retain the above copyright
+        notice, this list of conditions and the following disclaimer.
+
+      * Redistributions in binary form must reproduce the above
+        copyright notice, this list of conditions and the following
+        disclaimer in the documentation and/or other materials provided
+        with the distribution.
+
+      * Neither the name of Duncan Coutts nor the names of other
+        contributors may be used to endorse or promote products derived
+        from this software without specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+cheapskate LICENSE file:
+
+  Copyright (c) 2013, John MacFarlane
+
+  All rights reserved.
+
+  Redistribution and use in source and binary forms, with or without
+  modification, are permitted provided that the following conditions are met:
+
+      * Redistributions of source code must retain the above copyright
+        notice, this list of conditions and the following disclaimer.
+
+      * Redistributions in binary form must reproduce the above
+        copyright notice, this list of conditions and the following
+        disclaimer in the documentation and/or other materials provided
+        with the distribution.
+
+      * Neither the name of John MacFarlane nor the names of other
+        contributors may be used to endorse or promote products derived
+        from this software without specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+clock LICENSE file:
+
+  Copyright (c) 2009-2012, Cetin Sert
+  Copyright (c) 2010, Eugene Kirpichov
+
+  All rights reserved.
+
+  Redistribution and use in source and binary forms, with or without
+  modification, are permitted provided that the following conditions are
+  met:
+
+      * Redistributions of source code must retain the above copyright
+        notice, this list of conditions and the following disclaimer.
+
+      * Redistributions in binary form must reproduce the above
+        copyright notice, this list of conditions and the following
+        disclaimer in the documentation and/or other materials provided
+        with the distribution.
+
+      * The names of contributors may not be used to endorse or promote
+        products derived from this software without specific prior
+        written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+colour LICENSE file:
+
+  Copyright (c) 2008, 2009
+  Russell O'Connor
+
+  Permission is hereby granted, free of charge, to any person obtaining a copy
+  of this software and associated documentation files (the "Software"), to deal
+  in the Software without restriction, including without limitation the rights
+  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+  copies of the Software, and to permit persons to whom the Software is
+  furnished to do so, subject to the following conditions:
+
+  The above copyright notice and this permission notice shall be included in
+  all copies or substantial portions of the Software.
+
+  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+  THE SOFTWARE.
+
+comonad LICENSE file:
+
+  Copyright 2008-2014 Edward Kmett
+  Copyright 2004-2008 Dave Menendez
+
+  All rights reserved.
+
+  Redistribution and use in source and binary forms, with or without
+  modification, are permitted provided that the following conditions
+  are met:
+
+  1. Redistributions of source code must retain the above copyright
+     notice, this list of conditions and the following disclaimer.
+
+  2. Redistributions in binary form must reproduce the above copyright
+     notice, this list of conditions and the following disclaimer in the
+     documentation and/or other materials provided with the distribution.
+
+  THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR
+  IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+  DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR
+  ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+  DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+  OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+  STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+  ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+  POSSIBILITY OF SUCH DAMAGE.
+
+conduit LICENSE file:
+
+  Copyright (c) 2012 Michael Snoyman, http://www.yesodweb.com/
+
+  Permission is hereby granted, free of charge, to any person obtaining
+  a copy of this software and associated documentation files (the
+  "Software"), to deal in the Software without restriction, including
+  without limitation the rights to use, copy, modify, merge, publish,
+  distribute, sublicense, and/or sell copies of the Software, and to
+  permit persons to whom the Software is furnished to do so, subject to
+  the following conditions:
+
+  The above copyright notice and this permission notice shall be
+  included in all copies or substantial portions of the Software.
+
+  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+  NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+  LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+  OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+  WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+conduit-extra LICENSE file:
+
+  Copyright (c) 2012 Michael Snoyman, http://www.yesodweb.com/
+
+  Permission is hereby granted, free of charge, to any person obtaining
+  a copy of this software and associated documentation files (the
+  "Software"), to deal in the Software without restriction, including
+  without limitation the rights to use, copy, modify, merge, publish,
+  distribute, sublicense, and/or sell copies of the Software, and to
+  permit persons to whom the Software is furnished to do so, subject to
+  the following conditions:
+
+  The above copyright notice and this permission notice shall be
+  included in all copies or substantial portions of the Software.
+
+  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+  NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+  LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+  OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+  WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+constraints LICENSE file:
+
+  Copyright 2011-2015 Edward Kmett
+
+  All rights reserved.
+
+  Redistribution and use in source and binary forms, with or without
+  modification, are permitted provided that the following conditions
+  are met:
+
+  1. Redistributions of source code must retain the above copyright
+     notice, this list of conditions and the following disclaimer.
+
+  2. Redistributions in binary form must reproduce the above copyright
+     notice, this list of conditions and the following disclaimer in the
+     documentation and/or other materials provided with the distribution.
+
+  THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR
+  IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+  DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR
+  ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+  DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+  OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+  STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+  ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+  POSSIBILITY OF SUCH DAMAGE.
+
+containers LICENSE file:
+
+  The Glasgow Haskell Compiler License
+
+  Copyright 2004, The University Court of the University of Glasgow.
+  All rights reserved.
+
+  Redistribution and use in source and binary forms, with or without
+  modification, are permitted provided that the following conditions are met:
+
+  - Redistributions of source code must retain the above copyright notice,
+  this list of conditions and the following disclaimer.
+
+  - Redistributions in binary form must reproduce the above copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+
+  - Neither name of the University nor the names of its contributors may be
+  used to endorse or promote products derived from this software without
+  specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE UNIVERSITY COURT OF THE UNIVERSITY OF
+  GLASGOW AND THE CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+  INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+  FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+  UNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW OR THE CONTRIBUTORS BE LIABLE
+  FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+  DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+  SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+  CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+  LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+  OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
+  DAMAGE.
+
+contravariant LICENSE file:
+
+  Copyright 2007-2015 Edward Kmett
+
+  All rights reserved.
+
+  Redistribution and use in source and binary forms, with or without
+  modification, are permitted provided that the following conditions
+  are met:
+
+  1. Redistributions of source code must retain the above copyright
+     notice, this list of conditions and the following disclaimer.
+
+  2. Redistributions in binary form must reproduce the above copyright
+     notice, this list of conditions and the following disclaimer in the
+     documentation and/or other materials provided with the distribution.
+
+  3. Neither the name of the author nor the names of his contributors
+     may be used to endorse or promote products derived from this software
+     without specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR
+  IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+  DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR
+  ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+  DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+  OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+  STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+  ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+  POSSIBILITY OF SUCH DAMAGE.
+
+cryptonite LICENSE file:
+
+  Copyright (c) 2006-2015 Vincent Hanquez <vincent@snarc.org>
+
+  All rights reserved.
+
+  Redistribution and use in source and binary forms, with or without
+  modification, are permitted provided that the following conditions
+  are met:
+
+  1. Redistributions of source code must retain the above copyright
+     notice, this list of conditions and the following disclaimer.
+  2. Redistributions in binary form must reproduce the above copyright
+     notice, this list of conditions and the following disclaimer in the
+     documentation and/or other materials provided with the distribution.
+  3. Neither the name of the author nor the names of his contributors
+     may be used to endorse or promote products derived from this software
+     without specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS AS IS'' AND
+  ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+  ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE
+  FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+  DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+  OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+  LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+  OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+  SUCH DAMAGE.
+
+css-text LICENSE file:
+
+  Copyright (c) 2010 Michael Snoyman, http://www.yesodweb.com/
+
+  Permission is hereby granted, free of charge, to any person obtaining
+  a copy of this software and associated documentation files (the
+  "Software"), to deal in the Software without restriction, including
+  without limitation the rights to use, copy, modify, merge, publish,
+  distribute, sublicense, and/or sell copies of the Software, and to
+  permit persons to whom the Software is furnished to do so, subject to
+  the following conditions:
+
+  The above copyright notice and this permission notice shall be
+  included in all copies or substantial portions of the Software.
+
+  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+  NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+  LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+  OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+  WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+data-array-byte LICENSE file:
+
+  Copyright (c) 2008-2009, Roman Leshchinskiy
+  All rights reserved.
+
+  Redistribution and use in source and binary forms, with or without
+  modification, are permitted provided that the following conditions are met:
+
+  - Redistributions of source code must retain the above copyright notice,
+  this list of conditions and the following disclaimer.
+
+  - Redistributions in binary form must reproduce the above copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+
+  - Neither name of the University nor the names of its contributors may be
+  used to endorse or promote products derived from this software without
+  specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE UNIVERSITY COURT OF THE UNIVERSITY OF
+  GLASGOW AND THE CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+  INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+  FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+  UNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW OR THE CONTRIBUTORS BE LIABLE
+  FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+  DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+  SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+  CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+  LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+  OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
+  DAMAGE.
+
+
+data-default LICENSE file:
+
+  Copyright (c) 2013 Lukas Mai
+
+  All rights reserved.
+
+  Redistribution and use in source and binary forms, with or without modification,
+  are permitted provided that the following conditions are met:
+
+  * Redistributions of source code must retain the above copyright notice, this
+    list of conditions and the following disclaimer.
+  * Redistributions in binary form must reproduce the above copyright notice,
+    this list of conditions and the following disclaimer in the documentation
+    and/or other materials provided with the distribution.
+  * Neither the name of the author nor the names of his contributors
+    may be used to endorse or promote products derived from this software
+    without specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+  ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+  DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE
+  FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+  DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+  SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+  CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+  OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+data-default-class LICENSE file:
+
+  Copyright (c) 2013 Lukas Mai
+
+  All rights reserved.
+
+  Redistribution and use in source and binary forms, with or without modification,
+  are permitted provided that the following conditions are met:
+
+  * Redistributions of source code must retain the above copyright notice, this
+    list of conditions and the following disclaimer.
+  * Redistributions in binary form must reproduce the above copyright notice,
+    this list of conditions and the following disclaimer in the documentation
+    and/or other materials provided with the distribution.
+  * Neither the name of the author nor the names of his contributors
+    may be used to endorse or promote products derived from this software
+    without specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+  ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+  DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE
+  FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+  DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+  SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+  CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+  OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+data-default-instances-containers LICENSE file:
+
+  Copyright (c) 2013 Lukas Mai
+
+  All rights reserved.
+
+  Redistribution and use in source and binary forms, with or without modification,
+  are permitted provided that the following conditions are met:
+
+  * Redistributions of source code must retain the above copyright notice, this
+    list of conditions and the following disclaimer.
+  * Redistributions in binary form must reproduce the above copyright notice,
+    this list of conditions and the following disclaimer in the documentation
+    and/or other materials provided with the distribution.
+  * Neither the name of the author nor the names of his contributors
+    may be used to endorse or promote products derived from this software
+    without specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY LUKAS MAI AND CONTRIBUTORS "AS IS" AND ANY
+  EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+  DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
+  DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+  (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+  LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+  ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+  SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+data-default-instances-dlist LICENSE file:
+
+  Copyright (c) 2013 Lukas Mai
+
+  All rights reserved.
+
+  Redistribution and use in source and binary forms, with or without modification,
+  are permitted provided that the following conditions are met:
+
+  * Redistributions of source code must retain the above copyright notice, this
+    list of conditions and the following disclaimer.
+  * Redistributions in binary form must reproduce the above copyright notice,
+    this list of conditions and the following disclaimer in the documentation
+    and/or other materials provided with the distribution.
+  * Neither the name of the author nor the names of his contributors
+    may be used to endorse or promote products derived from this software
+    without specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY LUKAS MAI AND CONTRIBUTORS "AS IS" AND ANY
+  EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+  DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
+  DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+  (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+  LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+  ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+  SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+data-default-instances-old-locale LICENSE file:
+
+  Copyright (c) 2013 Lukas Mai
+
+  All rights reserved.
+
+  Redistribution and use in source and binary forms, with or without modification,
+  are permitted provided that the following conditions are met:
+
+  * Redistributions of source code must retain the above copyright notice, this
+    list of conditions and the following disclaimer.
+  * Redistributions in binary form must reproduce the above copyright notice,
+    this list of conditions and the following disclaimer in the documentation
+    and/or other materials provided with the distribution.
+  * Neither the name of the author nor the names of his contributors
+    may be used to endorse or promote products derived from this software
+    without specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY LUKAS MAI AND CONTRIBUTORS "AS IS" AND ANY
+  EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+  DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
+  DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+  (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+  LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+  ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+  SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+data-fix LICENSE file:
+
+  Copyright Anton Kholomiov 2010
+
+  All rights reserved.
+
+  Redistribution and use in source and binary forms, with or without
+  modification, are permitted provided that the following conditions are met:
+
+      * Redistributions of source code must retain the above copyright
+        notice, this list of conditions and the following disclaimer.
+
+      * Redistributions in binary form must reproduce the above
+        copyright notice, this list of conditions and the following
+        disclaimer in the documentation and/or other materials provided
+        with the distribution.
+
+      * Neither the name of Anton Kholomiov nor the names of other
+        contributors may be used to endorse or promote products derived
+        from this software without specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+data-ordlist LICENSE file:
+
+  Copyright (c) 2009-2010, Melding Monads
+  All rights reserved.
+
+  Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
+
+      * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
+      * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
+      * Neither the name of Melding Monads nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+deepseq LICENSE file:
+
+  This library (deepseq) is derived from code from the GHC project which
+  is largely (c) The University of Glasgow, and distributable under a
+  BSD-style license (see below).
+
+  -----------------------------------------------------------------------------
+
+  The Glasgow Haskell Compiler License
+
+  Copyright 2001-2009, The University Court of the University of Glasgow.
+  All rights reserved.
+
+  Redistribution and use in source and binary forms, with or without
+  modification, are permitted provided that the following conditions are met:
+
+  - Redistributions of source code must retain the above copyright notice,
+  this list of conditions and the following disclaimer.
+
+  - Redistributions in binary form must reproduce the above copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+
+  - Neither name of the University nor the names of its contributors may be
+  used to endorse or promote products derived from this software without
+  specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE UNIVERSITY COURT OF THE UNIVERSITY OF
+  GLASGOW AND THE CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+  INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+  FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+  UNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW OR THE CONTRIBUTORS BE LIABLE
+  FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+  DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+  SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+  CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+  LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+  OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
+  DAMAGE.
+
+  -----------------------------------------------------------------------------
+
+directory LICENSE file:
+
+  This library (libraries/base) is derived from code from two
+  sources:
+
+    * Code from the GHC project which is largely (c) The University of
+      Glasgow, and distributable under a BSD-style license (see below),
+
+    * Code from the Haskell 98 Report which is (c) Simon Peyton Jones
+      and freely redistributable (but see the full license for
+      restrictions).
+
+  The full text of these licenses is reproduced below.  Both of the
+  licenses are BSD-style or compatible.
+
+  -----------------------------------------------------------------------------
+
+  The Glasgow Haskell Compiler License
+
+  Copyright 2004, The University Court of the University of Glasgow.
+  All rights reserved.
+
+  Redistribution and use in source and binary forms, with or without
+  modification, are permitted provided that the following conditions are met:
+
+  - Redistributions of source code must retain the above copyright notice,
+  this list of conditions and the following disclaimer.
+
+  - Redistributions in binary form must reproduce the above copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+
+  - Neither name of the University nor the names of its contributors may be
+  used to endorse or promote products derived from this software without
+  specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE UNIVERSITY COURT OF THE UNIVERSITY OF
+  GLASGOW AND THE CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+  INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+  FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+  UNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW OR THE CONTRIBUTORS BE LIABLE
+  FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+  DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+  SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+  CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+  LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+  OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
+  DAMAGE.
+
+  -----------------------------------------------------------------------------
+
+  Code derived from the document "Report on the Programming Language
+  Haskell 98", is distributed under the following license:
+
+    Copyright (c) 2002 Simon Peyton Jones
+
+    The authors intend this Report to belong to the entire Haskell
+    community, and so we grant permission to copy and distribute it for
+    any purpose, provided that it is reproduced in its entirety,
+    including this Notice.  Modified versions of this Report may also be
+    copied and distributed for any purpose, provided that the modified
+    version is clearly presented as such, and that it does not claim to
+    be a definition of the Haskell 98 Language.
+
+  -----------------------------------------------------------------------------
+
+distributive LICENSE file:
+
+  Copyright 2011-2016 Edward Kmett
+
+  All rights reserved.
+
+  Redistribution and use in source and binary forms, with or without
+  modification, are permitted provided that the following conditions
+  are met:
+
+  1. Redistributions of source code must retain the above copyright
+     notice, this list of conditions and the following disclaimer.
+
+  2. Redistributions in binary form must reproduce the above copyright
+     notice, this list of conditions and the following disclaimer in the
+     documentation and/or other materials provided with the distribution.
+
+  THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR
+  IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+  DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR
+  ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+  DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+  OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+  STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+  ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+  POSSIBILITY OF SUCH DAMAGE.
+
+dlist LICENSE file:
+
+  Copyright © 2006-2009 Don Stewart, 2013-2020 Sean Leather, contributors
+
+  All rights reserved.
+
+  Redistribution and use in source and binary forms, with or without modification,
+  are permitted provided that the following conditions are met:
+
+  1. Redistributions of source code must retain the above copyright notice, this
+     list of conditions and the following disclaimer.
+
+  2. Redistributions in binary form must reproduce the above copyright notice,
+     this list of conditions and the following disclaimer in the documentation
+     and/or other materials provided with the distribution.
+
+  3. Neither the name of the copyright holders nor the names of other contributors
+     may be used to endorse or promote products derived from this software without
+     specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS “AS IS” AND
+  ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+  DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE
+  FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+  DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+  SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+  CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
+  TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+  THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+easy-file LICENSE file:
+
+  Copyright (c) 2009, IIJ Innovation Institute Inc.
+  All rights reserved.
+
+  Redistribution and use in source and binary forms, with or without
+  modification, are permitted provided that the following conditions
+  are met:
+
+    * Redistributions of source code must retain the above copyright
+      notice, this list of conditions and the following disclaimer.
+    * Redistributions in binary form must reproduce the above copyright
+      notice, this list of conditions and the following disclaimer in
+      the documentation and/or other materials provided with the
+      distribution.
+    * Neither the name of the copyright holders nor the names of its
+      contributors may be used to endorse or promote products derived
+      from this software without specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+  FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+  COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+  BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+  LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+  CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+  LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+  ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+  POSSIBILITY OF SUCH DAMAGE.
+
+edit-distance LICENSE file:
+
+  Copyright (c) 2008-2013 Maximilian Bolingbroke
+  All rights reserved.
+
+  Redistribution and use in source and binary forms, with or without modification, are permitted
+  provided that the following conditions are met:
+
+      * Redistributions of source code must retain the above copyright notice, this list of
+        conditions and the following disclaimer.
+      * Redistributions in binary form must reproduce the above copyright notice, this list of
+        conditions and the following disclaimer in the documentation and/or other materials
+        provided with the distribution.
+      * Neither the name of Maximilian Bolingbroke nor the names of other contributors may be used to
+        endorse or promote products derived from this software without specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+  IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+  FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+  DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
+  IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+  OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+exceptions LICENSE file:
+
+  Copyright 2013-2015 Edward Kmett
+  Copyright 2012 Google Inc.
+
+  All rights reserved.
+
+  Redistribution and use in source and binary forms, with or without
+  modification, are permitted provided that the following conditions
+  are met:
+
+  1. Redistributions of source code must retain the above copyright
+     notice, this list of conditions and the following disclaimer.
+
+  2. Redistributions in binary form must reproduce the above copyright
+     notice, this list of conditions and the following disclaimer in the
+     documentation and/or other materials provided with the distribution.
+
+  3. Neither the name of the author nor the names of his contributors
+     may be used to endorse or promote products derived from this software
+     without specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR
+  IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+  DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR
+  ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+  DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+  OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+  STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+  ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+  POSSIBILITY OF SUCH DAMAGE.
+
+fast-logger LICENSE file:
+
+  Copyright (c) 2009, IIJ Innovation Institute Inc.
+  All rights reserved.
+
+  Redistribution and use in source and binary forms, with or without
+  modification, are permitted provided that the following conditions
+  are met:
+
+    * Redistributions of source code must retain the above copyright
+      notice, this list of conditions and the following disclaimer.
+    * Redistributions in binary form must reproduce the above copyright
+      notice, this list of conditions and the following disclaimer in
+      the documentation and/or other materials provided with the
+      distribution.
+    * Neither the name of the copyright holders nor the names of its
+      contributors may be used to endorse or promote products derived
+      from this software without specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+  FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+  COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+  BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+  LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+  CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+  LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+  ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+  POSSIBILITY OF SUCH DAMAGE.
+
+file-embed LICENSE file:
+
+  The following license covers this documentation, and the source code, except
+  where otherwise indicated.
+
+  Copyright 2008, Michael Snoyman. All rights reserved.
+
+  Redistribution and use in source and binary forms, with or without
+  modification, are permitted provided that the following conditions are met:
+
+  * Redistributions of source code must retain the above copyright notice, this
+    list of conditions and the following disclaimer.
+
+  * Redistributions in binary form must reproduce the above copyright notice,
+    this list of conditions and the following disclaimer in the documentation
+    and/or other materials provided with the distribution.
+
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS "AS IS" AND ANY EXPRESS OR
+  IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+  EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY DIRECT, INDIRECT,
+  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
+  OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+  LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+  OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+  ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+filepath LICENSE file:
+
+  Copyright Neil Mitchell 2005-2020.
+  All rights reserved.
+
+  Redistribution and use in source and binary forms, with or without
+  modification, are permitted provided that the following conditions are
+  met:
+
+      * Redistributions of source code must retain the above copyright
+        notice, this list of conditions and the following disclaimer.
+
+      * Redistributions in binary form must reproduce the above
+        copyright notice, this list of conditions and the following
+        disclaimer in the documentation and/or other materials provided
+        with the distribution.
+
+      * Neither the name of Neil Mitchell nor the names of other
+        contributors may be used to endorse or promote products derived
+        from this software without specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+free LICENSE file:
+
+  Copyright 2008-2013 Edward Kmett
+
+  All rights reserved.
+
+  Redistribution and use in source and binary forms, with or without
+  modification, are permitted provided that the following conditions
+  are met:
+
+  1. Redistributions of source code must retain the above copyright
+     notice, this list of conditions and the following disclaimer.
+
+  2. Redistributions in binary form must reproduce the above copyright
+     notice, this list of conditions and the following disclaimer in the
+     documentation and/or other materials provided with the distribution.
+
+  3. Neither the name of the author nor the names of his contributors
+     may be used to endorse or promote products derived from this software
+     without specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR
+  IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+  DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR
+  ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+  DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+  OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+  STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+  ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+  POSSIBILITY OF SUCH DAMAGE.
+
+ghc-bignum LICENSE file:
+
+  The Glasgow Haskell Compiler License
+
+  Copyright 2020, The University Court of the University of Glasgow.
+  All rights reserved.
+
+  Redistribution and use in source and binary forms, with or without
+  modification, are permitted provided that the following conditions are met:
+
+  - Redistributions of source code must retain the above copyright notice,
+  this list of conditions and the following disclaimer.
+
+  - Redistributions in binary form must reproduce the above copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+
+  - Neither name of the University nor the names of its contributors may be
+  used to endorse or promote products derived from this software without
+  specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE UNIVERSITY COURT OF THE UNIVERSITY OF
+  GLASGOW AND THE CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+  INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+  FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+  UNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW OR THE CONTRIBUTORS BE LIABLE
+  FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+  DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+  SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+  CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+  LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+  OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
+  DAMAGE.
+
+ghc-prim LICENSE file:
+
+  This library (libraries/ghc-prim) is derived from code from several
+  sources:
+
+    * Code from the GHC project which is largely (c) The University of
+      Glasgow, and distributable under a BSD-style license (see below),
+
+    * Code from the Haskell 98 Report which is (c) Simon Peyton Jones
+      and freely redistributable (but see the full license for
+      restrictions).
+
+  The full text of these licenses is reproduced below.  All of the
+  licenses are BSD-style or compatible.
+
+  -----------------------------------------------------------------------------
+
+  The Glasgow Haskell Compiler License
+
+  Copyright 2004, The University Court of the University of Glasgow.
+  All rights reserved.
+
+  Redistribution and use in source and binary forms, with or without
+  modification, are permitted provided that the following conditions are met:
+
+  - Redistributions of source code must retain the above copyright notice,
+  this list of conditions and the following disclaimer.
+
+  - Redistributions in binary form must reproduce the above copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+
+  - Neither name of the University nor the names of its contributors may be
+  used to endorse or promote products derived from this software without
+  specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE UNIVERSITY COURT OF THE UNIVERSITY OF
+  GLASGOW AND THE CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+  INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+  FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+  UNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW OR THE CONTRIBUTORS BE LIABLE
+  FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+  DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+  SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+  CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+  LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+  OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
+  DAMAGE.
+
+  -----------------------------------------------------------------------------
+
+  Code derived from the document "Report on the Programming Language
+  Haskell 98", is distributed under the following license:
+
+    Copyright (c) 2002 Simon Peyton Jones
+
+    The authors intend this Report to belong to the entire Haskell
+    community, and so we grant permission to copy and distribute it for
+    any purpose, provided that it is reproduced in its entirety,
+    including this Notice.  Modified versions of this Report may also be
+    copied and distributed for any purpose, provided that the modified
+    version is clearly presented as such, and that it does not claim to
+    be a definition of the Haskell 98 Language.
+
+
+half LICENSE file:
+
+  Copyright 2014 Edward Kmett
+
+  All rights reserved.
+
+  Redistribution and use in source and binary forms, with or without
+  modification, are permitted provided that the following conditions
+  are met:
+
+  1. Redistributions of source code must retain the above copyright
+     notice, this list of conditions and the following disclaimer.
+
+  2. Redistributions in binary form must reproduce the above copyright
+     notice, this list of conditions and the following disclaimer in the
+     documentation and/or other materials provided with the distribution.
+
+  THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR
+  IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+  DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR
+  ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+  DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+  OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+  STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+  ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+  POSSIBILITY OF SUCH DAMAGE.
+
+happy LICENSE file:
+
+  The Happy License
+  -----------------
+
+  Copyright 2001, Simon Marlow and Andy Gill.  All rights reserved.
+
+  Extensions to implement Tomita's Generalized LR parsing:
+    Copyright 2004, University of Durham, Paul Callaghan and Ben Medlock.
+    All rights reserved.
+
+  Redistribution and use in source and binary forms, with or without
+  modification, are permitted provided that the following conditions are met:
+
+  - Redistributions of source code must retain the above copyright notice,
+  this list of conditions and the following disclaimer.
+
+  - Redistributions in binary form must reproduce the above copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS "AS IS" AND ANY
+  EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+  PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE
+  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+  BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+  OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+  IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+hashable LICENSE file:
+
+  Copyright Milan Straka 2010
+
+  All rights reserved.
+
+  Redistribution and use in source and binary forms, with or without
+  modification, are permitted provided that the following conditions are met:
+
+      * Redistributions of source code must retain the above copyright
+        notice, this list of conditions and the following disclaimer.
+
+      * Redistributions in binary form must reproduce the above
+        copyright notice, this list of conditions and the following
+        disclaimer in the documentation and/or other materials provided
+        with the distribution.
+
+      * Neither the name of Milan Straka nor the names of other
+        contributors may be used to endorse or promote products derived
+        from this software without specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+haskeline LICENSE file:
+
+  Copyright 2007 Judah Jacobson
+
+  Redistribution and use in source and binary forms, with or without
+  modification, are permitted provided that the following conditions are met:
+
+  1. Redistributions of source code must retain the above copyright notice, this
+  list of conditions and the following disclaimer.
+
+  2. Redistributions in binary form must reproduce the above copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+
+  3. Neither the name of the copyright holder nor the names of its contributors
+  may be used to endorse or promote products derived from this software without
+  specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+  ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+  DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+  FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+  DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+  SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+  CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+  OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+indexed-traversable LICENSE file:
+
+  Copyright 2012-2016 Edward Kmett
+
+  All rights reserved.
+
+  Redistribution and use in source and binary forms, with or without
+  modification, are permitted provided that the following conditions
+  are met:
+
+  1. Redistributions of source code must retain the above copyright
+     notice, this list of conditions and the following disclaimer.
+
+  2. Redistributions in binary form must reproduce the above copyright
+     notice, this list of conditions and the following disclaimer in the
+     documentation and/or other materials provided with the distribution.
+
+  THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR
+  IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+  DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR
+  ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+  DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+  OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+  STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+  ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+  POSSIBILITY OF SUCH DAMAGE.
+
+indexed-traversable-instances LICENSE file:
+
+  Copyright 2012-2016 Edward Kmett
+
+  All rights reserved.
+
+  Redistribution and use in source and binary forms, with or without
+  modification, are permitted provided that the following conditions
+  are met:
+
+  1. Redistributions of source code must retain the above copyright
+     notice, this list of conditions and the following disclaimer.
+
+  2. Redistributions in binary form must reproduce the above copyright
+     notice, this list of conditions and the following disclaimer in the
+     documentation and/or other materials provided with the distribution.
+
+  THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR
+  IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+  DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR
+  ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+  DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+  OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+  STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+  ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+  POSSIBILITY OF SUCH DAMAGE.
+
+integer-gmp LICENSE file:
+
+  Copyright (c) 2014, Herbert Valerio Riedel
+
+  All rights reserved.
+
+  Redistribution and use in source and binary forms, with or without
+  modification, are permitted provided that the following conditions are met:
+
+      * Redistributions of source code must retain the above copyright
+        notice, this list of conditions and the following disclaimer.
+
+      * Redistributions in binary form must reproduce the above
+        copyright notice, this list of conditions and the following
+        disclaimer in the documentation and/or other materials provided
+        with the distribution.
+
+      * Neither the name of Herbert Valerio Riedel nor the names of other
+        contributors may be used to endorse or promote products derived
+        from this software without specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+integer-logarithms LICENSE file:
+
+  Copyright (c) 2011 Daniel Fischer, 2017 Oleg Grenrus
+
+  Permission is hereby granted, free of charge, to any person obtaining a copy of this software and
+   associated documentation files (the "Software"), to deal in the Software without restriction,
+   including without limitation the rights to use, copy, modify, merge, publish, distribute,
+   sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
+   furnished to do so, subject to the following conditions:
+
+  The above copyright notice and this permission notice shall be included in all copies or
+  substantial portions of the Software.
+
+  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
+  LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+   IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+   LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+   CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+invariant LICENSE file:
+
+  Copyright (c) 2012-2017, University of Kansas
+  All rights reserved.
+
+  Redistribution and use in source and binary forms, with or without
+  modification, are permitted provided that the following conditions are met:
+
+    * Redistributions of source code must retain the above copyright notice, this
+      list of conditions and the following disclaimer.
+
+    * Redistributions in binary form must reproduce the above copyright notice,
+      this list of conditions and the following disclaimer in the documentation
+      and/or other materials provided with the distribution.
+
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+  ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+  DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+  FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+  DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+  SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+  CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+  OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+kan-extensions LICENSE file:
+
+  Copyright 2008-2016 Edward Kmett
+
+  All rights reserved.
+
+  Redistribution and use in source and binary forms, with or without
+  modification, are permitted provided that the following conditions
+  are met:
+
+  1. Redistributions of source code must retain the above copyright
+     notice, this list of conditions and the following disclaimer.
+
+  2. Redistributions in binary form must reproduce the above copyright
+     notice, this list of conditions and the following disclaimer in the
+     documentation and/or other materials provided with the distribution.
+
+  3. Neither the name of the author nor the names of his contributors
+     may be used to endorse or promote products derived from this software
+     without specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR
+  IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+  DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR
+  ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+  DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+  OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+  STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+  ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+  POSSIBILITY OF SUCH DAMAGE.
+
+language-javascript LICENSE file:
+
+  Copyright (c)2010, Alan Zimmerman
+
+  All rights reserved.
+
+  Redistribution and use in source and binary forms, with or without
+  modification, are permitted provided that the following conditions are met:
+
+      * Redistributions of source code must retain the above copyright
+        notice, this list of conditions and the following disclaimer.
+
+      * Redistributions in binary form must reproduce the above
+        copyright notice, this list of conditions and the following
+        disclaimer in the documentation and/or other materials provided
+        with the distribution.
+
+      * Neither the name of Alan Zimmerman nor the names of other
+        contributors may be used to endorse or promote products derived
+        from this software without specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+lens LICENSE file:
+
+  Copyright 2012-2016 Edward Kmett
+
+  All rights reserved.
+
+  Redistribution and use in source and binary forms, with or without
+  modification, are permitted provided that the following conditions
+  are met:
+
+  1. Redistributions of source code must retain the above copyright
+     notice, this list of conditions and the following disclaimer.
+
+  2. Redistributions in binary form must reproduce the above copyright
+     notice, this list of conditions and the following disclaimer in the
+     documentation and/or other materials provided with the distribution.
+
+  THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR
+  IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+  DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR
+  ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+  DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+  OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+  STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+  ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+  POSSIBILITY OF SUCH DAMAGE.
+
+lifted-async LICENSE file:
+
+  Copyright (c) 2012-2017, Mitsutoshi Aoe
+
+  All rights reserved.
+
+  Redistribution and use in source and binary forms, with or without
+  modification, are permitted provided that the following conditions are met:
+
+      * Redistributions of source code must retain the above copyright
+        notice, this list of conditions and the following disclaimer.
+
+      * Redistributions in binary form must reproduce the above
+        copyright notice, this list of conditions and the following
+        disclaimer in the documentation and/or other materials provided
+        with the distribution.
+
+      * Neither the name of Mitsutoshi Aoe nor the names of other
+        contributors may be used to endorse or promote products derived
+        from this software without specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+lifted-base LICENSE file:
+
+  Copyright © 2010-2012, Bas van Dijk, Anders Kaseorg
+  All rights reserved.
+
+  Redistribution and use in source and binary forms, with or without
+  modification, are permitted provided that the following conditions are
+  met:
+
+  • Redistributions of source code must retain the above copyright
+    notice, this list of conditions and the following disclaimer.
+
+  • Redistributions in binary form must reproduce the above copyright
+    notice, this list of conditions and the following disclaimer in the
+    documentation and/or other materials provided with the distribution.
+
+  • Neither the name of the author nor the names of other contributors
+    may be used to endorse or promote products derived from this
+    software without specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+  “AS IS” AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+  A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT
+  HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+memory LICENSE file:
+
+  Copyright (c) 2015-2018 Vincent Hanquez <vincent@snarc.org>
+  Copyright (c) 2017-2018 Nicolas Di Prima <nicolas@primetype.co.uk>
+
+  All rights reserved.
+
+  Redistribution and use in source and binary forms, with or without
+  modification, are permitted provided that the following conditions
+  are met:
+
+  1. Redistributions of source code must retain the above copyright
+     notice, this list of conditions and the following disclaimer.
+  2. Redistributions in binary form must reproduce the above copyright
+     notice, this list of conditions and the following disclaimer in the
+     documentation and/or other materials provided with the distribution.
+  3. Neither the name of the author nor the names of his contributors
+     may be used to endorse or promote products derived from this software
+     without specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS AS IS'' AND
+  ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+  ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE
+  FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+  DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+  OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+  LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+  OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+  SUCH DAMAGE.
+
+monad-control LICENSE file:
+
+  Copyright © 2010, Bas van Dijk, Anders Kaseorg
+  All rights reserved.
+
+  Redistribution and use in source and binary forms, with or without
+  modification, are permitted provided that the following conditions are
+  met:
+
+  • Redistributions of source code must retain the above copyright
+    notice, this list of conditions and the following disclaimer.
+
+  • Redistributions in binary form must reproduce the above copyright
+    notice, this list of conditions and the following disclaimer in the
+    documentation and/or other materials provided with the distribution.
+
+  • Neither the name of the author nor the names of other contributors
+    may be used to endorse or promote products derived from this
+    software without specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+  “AS IS” AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+  A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT
+  HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+monad-logger LICENSE file:
+
+  Copyright (c) 2012 Michael Snoyman, http://www.yesodweb.com/
+
+  Permission is hereby granted, free of charge, to any person obtaining
+  a copy of this software and associated documentation files (the
+  "Software"), to deal in the Software without restriction, including
+  without limitation the rights to use, copy, modify, merge, publish,
+  distribute, sublicense, and/or sell copies of the Software, and to
+  permit persons to whom the Software is furnished to do so, subject to
+  the following conditions:
+
+  The above copyright notice and this permission notice shall be
+  included in all copies or substantial portions of the Software.
+
+  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+  NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+  LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+  OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+  WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+mono-traversable LICENSE file:
+
+  Copyright (c) 2013 Michael Snoyman, http://www.fpcomplete.com/
+
+  Permission is hereby granted, free of charge, to any person obtaining
+  a copy of this software and associated documentation files (the
+  "Software"), to deal in the Software without restriction, including
+  without limitation the rights to use, copy, modify, merge, publish,
+  distribute, sublicense, and/or sell copies of the Software, and to
+  permit persons to whom the Software is furnished to do so, subject to
+  the following conditions:
+
+  The above copyright notice and this permission notice shall be
+  included in all copies or substantial portions of the Software.
+
+  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+  NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+  LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+  OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+  WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+monoidal-containers LICENSE file:
+
+  Copyright (c) 2015, Ben Gamari
+
+  All rights reserved.
+
+  Redistribution and use in source and binary forms, with or without
+  modification, are permitted provided that the following conditions are met:
+
+      * Redistributions of source code must retain the above copyright
+        notice, this list of conditions and the following disclaimer.
+
+      * Redistributions in binary form must reproduce the above
+        copyright notice, this list of conditions and the following
+        disclaimer in the documentation and/or other materials provided
+        with the distribution.
+
+      * Neither the name of Ben Gamari nor the names of other
+        contributors may be used to endorse or promote products derived
+        from this software without specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+mtl LICENSE file:
+
+  The Glasgow Haskell Compiler License
+
+  Copyright 2004, The University Court of the University of Glasgow.
+  All rights reserved.
+
+  Redistribution and use in source and binary forms, with or without
+  modification, are permitted provided that the following conditions are met:
+
+  - Redistributions of source code must retain the above copyright notice,
+  this list of conditions and the following disclaimer.
+
+  - Redistributions in binary form must reproduce the above copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+
+  - Neither name of the University nor the names of its contributors may be
+  used to endorse or promote products derived from this software without
+  specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE UNIVERSITY COURT OF THE UNIVERSITY OF
+  GLASGOW AND THE CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+  INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+  FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+  UNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW OR THE CONTRIBUTORS BE LIABLE
+  FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+  DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+  SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+  CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+  LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+  OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
+  DAMAGE.
+
+mtl-compat LICENSE file:
+
+  Copyright (c) 2015-2017, Ryan Scott
+
+  All rights reserved.
+
+  Redistribution and use in source and binary forms, with or without
+  modification, are permitted provided that the following conditions are met:
+
+      * Redistributions of source code must retain the above copyright
+        notice, this list of conditions and the following disclaimer.
+
+      * Redistributions in binary form must reproduce the above
+        copyright notice, this list of conditions and the following
+        disclaimer in the documentation and/or other materials provided
+        with the distribution.
+
+      * Neither the name of Ryan Scott nor the names of other
+        contributors may be used to endorse or promote products derived
+        from this software without specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+network LICENSE file:
+
+  Copyright (c) 2002-2010, The University Court of the University of Glasgow.
+  Copyright (c) 2007-2010, Johan Tibell
+
+  Redistribution and use in source and binary forms, with or without
+  modification, are permitted provided that the following conditions are met:
+
+  - Redistributions of source code must retain the above copyright notice,
+  this list of conditions and the following disclaimer.
+
+  - Redistributions in binary form must reproduce the above copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+
+  - Neither name of the University nor the names of its contributors may be
+  used to endorse or promote products derived from this software without
+  specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE UNIVERSITY COURT OF THE UNIVERSITY OF
+  GLASGOW AND THE CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+  INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+  FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+  UNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW OR THE CONTRIBUTORS BE LIABLE
+  FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+  DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+  SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+  CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+  LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+  OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
+  DAMAGE.
+
+network-uri LICENSE file:
+
+  Copyright (c) 2002-2010, The University Court of the University of Glasgow.
+  Copyright (c) 2007-2010, Johan Tibell
+
+  Redistribution and use in source and binary forms, with or without
+  modification, are permitted provided that the following conditions are met:
+
+  - Redistributions of source code must retain the above copyright notice,
+  this list of conditions and the following disclaimer.
+
+  - Redistributions in binary form must reproduce the above copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+
+  - Neither name of the University nor the names of its contributors may be
+  used to endorse or promote products derived from this software without
+  specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE UNIVERSITY COURT OF THE UNIVERSITY OF
+  GLASGOW AND THE CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+  INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+  FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+  UNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW OR THE CONTRIBUTORS BE LIABLE
+  FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+  DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+  SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+  CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+  LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+  OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
+  DAMAGE.
+
+newtype LICENSE file:
+
+  Copyright (c) 2011, Darius Jahandarie
+                2019, Herbert Valerio Riedel
+
+  All rights reserved.
+
+  Redistribution and use in source and binary forms, with or without
+  modification, are permitted provided that the following conditions are met:
+
+      * Redistributions of source code must retain the above copyright
+        notice, this list of conditions and the following disclaimer.
+
+      * Redistributions in binary form must reproduce the above
+        copyright notice, this list of conditions and the following
+        disclaimer in the documentation and/or other materials provided
+        with the distribution.
+
+      * Neither the name of Darius Jahandarie nor the names of other
+        contributors may be used to endorse or promote products derived
+        from this software without specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+old-locale LICENSE file:
+
+  This library (libraries/base) is derived from code from two
+  sources:
+
+    * Code from the GHC project which is largely (c) The University of
+      Glasgow, and distributable under a BSD-style license (see below),
+
+    * Code from the Haskell 98 Report which is (c) Simon Peyton Jones
+      and freely redistributable (but see the full license for
+      restrictions).
+
+  The full text of these licenses is reproduced below.  Both of the
+  licenses are BSD-style or compatible.
+
+  -----------------------------------------------------------------------------
+
+  The Glasgow Haskell Compiler License
+
+  Copyright 2004, The University Court of the University of Glasgow.
+  All rights reserved.
+
+  Redistribution and use in source and binary forms, with or without
+  modification, are permitted provided that the following conditions are met:
+
+  - Redistributions of source code must retain the above copyright notice,
+  this list of conditions and the following disclaimer.
+
+  - Redistributions in binary form must reproduce the above copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+
+  - Neither name of the University nor the names of its contributors may be
+  used to endorse or promote products derived from this software without
+  specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE UNIVERSITY COURT OF THE UNIVERSITY OF
+  GLASGOW AND THE CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+  INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+  FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+  UNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW OR THE CONTRIBUTORS BE LIABLE
+  FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+  DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+  SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+  CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+  LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+  OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
+  DAMAGE.
+
+  -----------------------------------------------------------------------------
+
+  Code derived from the document "Report on the Programming Language
+  Haskell 98", is distributed under the following license:
+
+    Copyright (c) 2002 Simon Peyton Jones
+
+    The authors intend this Report to belong to the entire Haskell
+    community, and so we grant permission to copy and distribute it for
+    any purpose, provided that it is reproduced in its entirety,
+    including this Notice.  Modified versions of this Report may also be
+    copied and distributed for any purpose, provided that the modified
+    version is clearly presented as such, and that it does not claim to
+    be a definition of the Haskell 98 Language.
+
+  -----------------------------------------------------------------------------
+
+old-time LICENSE file:
+
+  This library (libraries/base) is derived from code from two
+  sources:
+
+    * Code from the GHC project which is largely (c) The University of
+      Glasgow, and distributable under a BSD-style license (see below),
+
+    * Code from the Haskell 98 Report which is (c) Simon Peyton Jones
+      and freely redistributable (but see the full license for
+      restrictions).
+
+  The full text of these licenses is reproduced below.  Both of the
+  licenses are BSD-style or compatible.
+
+  -----------------------------------------------------------------------------
+
+  The Glasgow Haskell Compiler License
+
+  Copyright 2004, The University Court of the University of Glasgow.
+  All rights reserved.
+
+  Redistribution and use in source and binary forms, with or without
+  modification, are permitted provided that the following conditions are met:
+
+  - Redistributions of source code must retain the above copyright notice,
+  this list of conditions and the following disclaimer.
+
+  - Redistributions in binary form must reproduce the above copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+
+  - Neither name of the University nor the names of its contributors may be
+  used to endorse or promote products derived from this software without
+  specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE UNIVERSITY COURT OF THE UNIVERSITY OF
+  GLASGOW AND THE CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+  INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+  FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+  UNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW OR THE CONTRIBUTORS BE LIABLE
+  FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+  DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+  SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+  CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+  LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+  OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
+  DAMAGE.
+
+  -----------------------------------------------------------------------------
+
+  Code derived from the document "Report on the Programming Language
+  Haskell 98", is distributed under the following license:
+
+    Copyright (c) 2002 Simon Peyton Jones
+
+    The authors intend this Report to belong to the entire Haskell
+    community, and so we grant permission to copy and distribute it for
+    any purpose, provided that it is reproduced in its entirety,
+    including this Notice.  Modified versions of this Report may also be
+    copied and distributed for any purpose, provided that the modified
+    version is clearly presented as such, and that it does not claim to
+    be a definition of the Haskell 98 Language.
+
+  -----------------------------------------------------------------------------
+
+optparse-applicative LICENSE file:
+
+  Copyright (c) 2012, Paolo Capriotti
+
+  All rights reserved.
+
+  Redistribution and use in source and binary forms, with or without
+  modification, are permitted provided that the following conditions are met:
+
+      * Redistributions of source code must retain the above copyright
+        notice, this list of conditions and the following disclaimer.
+
+      * Redistributions in binary form must reproduce the above
+        copyright notice, this list of conditions and the following
+        disclaimer in the documentation and/or other materials provided
+        with the distribution.
+
+      * Neither the name of Paolo Capriotti nor the names of other
+        contributors may be used to endorse or promote products derived
+        from this software without specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+parallel LICENSE file:
+
+  This library (libraries/parallel) is derived from code from
+  the GHC project which is largely (c) The University of
+  Glasgow, and distributable under a BSD-style license (see below).
+
+  -----------------------------------------------------------------------------
+
+  The Glasgow Haskell Compiler License
+
+  Copyright 2004, The University Court of the University of Glasgow.
+  All rights reserved.
+
+  Redistribution and use in source and binary forms, with or without
+  modification, are permitted provided that the following conditions are met:
+
+  - Redistributions of source code must retain the above copyright notice,
+  this list of conditions and the following disclaimer.
+
+  - Redistributions in binary form must reproduce the above copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+
+  - Neither name of the University nor the names of its contributors may be
+  used to endorse or promote products derived from this software without
+  specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE UNIVERSITY COURT OF THE UNIVERSITY OF
+  GLASGOW AND THE CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+  INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+  FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+  UNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW OR THE CONTRIBUTORS BE LIABLE
+  FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+  DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+  SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+  CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+  LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+  OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
+  DAMAGE.
+
+  -----------------------------------------------------------------------------
+
+parsec LICENSE file:
+
+  Copyright 1999-2000, Daan Leijen; 2007, Paolo Martini. All rights reserved.
+
+  Redistribution and use in source and binary forms, with or without
+  modification, are permitted provided that the following conditions are met:
+
+  * Redistributions of source code must retain the above copyright notice,
+    this list of conditions and the following disclaimer.
+  * Redistributions in binary form must reproduce the above copyright
+    notice, this list of conditions and the following disclaimer in the
+    documentation and/or other materials provided with the distribution.
+
+  This software is provided by the copyright holders "as is" and any express or
+  implied warranties, including, but not limited to, the implied warranties of
+  merchantability and fitness for a particular purpose are disclaimed. In no
+  event shall the copyright holders be liable for any direct, indirect,
+  incidental, special, exemplary, or consequential damages (including, but not
+  limited to, procurement of substitute goods or services; loss of use, data,
+  or profits; or business interruption) however caused and on any theory of
+  liability, whether in contract, strict liability, or tort (including
+  negligence or otherwise) arising in any way out of the use of this software,
+  even if advised of the possibility of such damage.
+
+pattern-arrows LICENSE file:
+
+  The MIT License (MIT)
+
+  Copyright (c) 2013 Phil Freeman
+
+  Permission is hereby granted, free of charge, to any person obtaining a copy of
+  this software and associated documentation files (the "Software"), to deal in
+  the Software without restriction, including without limitation the rights to
+  use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
+  the Software, and to permit persons to whom the Software is furnished to do so,
+  subject to the following conditions:
+
+  The above copyright notice and this permission notice shall be included in all
+  copies or substantial portions of the Software.
+
+  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+  FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+  COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+  IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+  CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+pretty LICENSE file:
+
+  This library (libraries/pretty) is derived from code from
+  the GHC project which is largely (c) The University of
+  Glasgow, and distributable under a BSD-style license (see below).
+
+  -----------------------------------------------------------------------------
+
+  The Glasgow Haskell Compiler License
+
+  Copyright 2004, The University Court of the University of Glasgow.
+  All rights reserved.
+
+  Redistribution and use in source and binary forms, with or without
+  modification, are permitted provided that the following conditions are met:
+
+  - Redistributions of source code must retain the above copyright notice,
+  this list of conditions and the following disclaimer.
+
+  - Redistributions in binary form must reproduce the above copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+
+  - Neither name of the University nor the names of its contributors may be
+  used to endorse or promote products derived from this software without
+  specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE UNIVERSITY COURT OF THE UNIVERSITY OF
+  GLASGOW AND THE CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+  INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+  FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+  UNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW OR THE CONTRIBUTORS BE LIABLE
+  FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+  DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+  SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+  CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+  LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+  OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
+  DAMAGE.
+
+  -----------------------------------------------------------------------------
+
+primitive LICENSE file:
+
+  Copyright (c) 2008-2009, Roman Leshchinskiy
+  All rights reserved.
+
+  Redistribution and use in source and binary forms, with or without
+  modification, are permitted provided that the following conditions are met:
+
+  - Redistributions of source code must retain the above copyright notice,
+  this list of conditions and the following disclaimer.
+
+  - Redistributions in binary form must reproduce the above copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+
+  - Neither name of the University nor the names of its contributors may be
+  used to endorse or promote products derived from this software without
+  specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE UNIVERSITY COURT OF THE UNIVERSITY OF
+  GLASGOW AND THE CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+  INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+  FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+  UNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW OR THE CONTRIBUTORS BE LIABLE
+  FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+  DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+  SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+  CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+  LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+  OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
+  DAMAGE.
+
+
+process LICENSE file:
+
+  This library (libraries/process) is derived from code from two
+  sources:
+
+    * Code from the GHC project which is largely (c) The University of
+      Glasgow, and distributable under a BSD-style license (see below),
+
+    * Code from the Haskell 98 Report which is (c) Simon Peyton Jones
+      and freely redistributable (but see the full license for
+      restrictions).
+
+  The full text of these licenses is reproduced below.  Both of the
+  licenses are BSD-style or compatible.
+
+  -----------------------------------------------------------------------------
+
+  The Glasgow Haskell Compiler License
+
+  Copyright 2004, The University Court of the University of Glasgow.
+  All rights reserved.
+
+  Redistribution and use in source and binary forms, with or without
+  modification, are permitted provided that the following conditions are met:
+
+  - Redistributions of source code must retain the above copyright notice,
+  this list of conditions and the following disclaimer.
+
+  - Redistributions in binary form must reproduce the above copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+
+  - Neither name of the University nor the names of its contributors may be
+  used to endorse or promote products derived from this software without
+  specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE UNIVERSITY COURT OF THE UNIVERSITY OF
+  GLASGOW AND THE CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+  INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+  FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+  UNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW OR THE CONTRIBUTORS BE LIABLE
+  FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+  DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+  SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+  CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+  LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+  OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
+  DAMAGE.
+
+  -----------------------------------------------------------------------------
+
+  Code derived from the document "Report on the Programming Language
+  Haskell 98", is distributed under the following license:
+
+    Copyright (c) 2002 Simon Peyton Jones
+
+    The authors intend this Report to belong to the entire Haskell
+    community, and so we grant permission to copy and distribute it for
+    any purpose, provided that it is reproduced in its entirety,
+    including this Notice.  Modified versions of this Report may also be
+    copied and distributed for any purpose, provided that the modified
+    version is clearly presented as such, and that it does not claim to
+    be a definition of the Haskell 98 Language.
+
+  -----------------------------------------------------------------------------
+
+profunctors LICENSE file:
+
+  Copyright 2011-2015 Edward Kmett
+
+  All rights reserved.
+
+  Redistribution and use in source and binary forms, with or without
+  modification, are permitted provided that the following conditions
+  are met:
+
+  1. Redistributions of source code must retain the above copyright
+     notice, this list of conditions and the following disclaimer.
+
+  2. Redistributions in binary form must reproduce the above copyright
+     notice, this list of conditions and the following disclaimer in the
+     documentation and/or other materials provided with the distribution.
+
+  3. Neither the name of the author nor the names of his contributors
+     may be used to endorse or promote products derived from this software
+     without specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR
+  IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+  DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR
+  ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+  DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+  OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+  STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+  ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+  POSSIBILITY OF SUCH DAMAGE.
+
+protolude LICENSE file:
+
+  Copyright (c) 2016-2020, Stephen Diehl
+
+  Permission is hereby granted, free of charge, to any person obtaining a copy
+  of this software and associated documentation files (the "Software"), to
+  deal in the Software without restriction, including without limitation the
+  rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+  sell copies of the Software, and to permit persons to whom the Software is
+  furnished to do so, subject to the following conditions:
+
+  The above copyright notice and this permission notice shall be included in
+  all copies or substantial portions of the Software.
+
+  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+  FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+  IN THE SOFTWARE.
+
+random LICENSE file:
+
+  This library (libraries/base) is derived from code from two
+  sources:
+
+    * Code from the GHC project which is largely (c) The University of
+      Glasgow, and distributable under a BSD-style license (see below),
+
+    * Code from the Haskell 98 Report which is (c) Simon Peyton Jones
+      and freely redistributable (but see the full license for
+      restrictions).
+
+  The full text of these licenses is reproduced below.  Both of the
+  licenses are BSD-style or compatible.
+
+  -----------------------------------------------------------------------------
+
+  The Glasgow Haskell Compiler License
+
+  Copyright 2004, The University Court of the University of Glasgow.
+  All rights reserved.
+
+  Redistribution and use in source and binary forms, with or without
+  modification, are permitted provided that the following conditions are met:
+
+  - Redistributions of source code must retain the above copyright notice,
+  this list of conditions and the following disclaimer.
+
+  - Redistributions in binary form must reproduce the above copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+
+  - Neither name of the University nor the names of its contributors may be
+  used to endorse or promote products derived from this software without
+  specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE UNIVERSITY COURT OF THE UNIVERSITY OF
+  GLASGOW AND THE CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+  INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+  FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+  UNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW OR THE CONTRIBUTORS BE LIABLE
+  FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+  DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+  SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+  CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+  LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+  OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
+  DAMAGE.
+
+  -----------------------------------------------------------------------------
+
+  Code derived from the document "Report on the Programming Language
+  Haskell 98", is distributed under the following license:
+
+    Copyright (c) 2002 Simon Peyton Jones
+
+    The authors intend this Report to belong to the entire Haskell
+    community, and so we grant permission to copy and distribute it for
+    any purpose, provided that it is reproduced in its entirety,
+    including this Notice.  Modified versions of this Report may also be
+    copied and distributed for any purpose, provided that the modified
+    version is clearly presented as such, and that it does not claim to
+    be a definition of the Haskell 98 Language.
+
+  -----------------------------------------------------------------------------
+
+reflection LICENSE file:
+
+  Copyright (c) 2009-2013 Edward Kmett
+  Copyright (c) 2004 Oleg Kiselyov and Chung-chieh Shan
+  All rights reserved.
+
+  Redistribution and use in source and binary forms, with or without
+  modification, are permitted provided that the following conditions are
+  met:
+
+      * Redistributions of source code must retain the above copyright
+        notice, this list of conditions and the following disclaimer.
+
+      * Redistributions in binary form must reproduce the above
+        copyright notice, this list of conditions and the following
+        disclaimer in the documentation and/or other materials provided
+        with the distribution.
+
+      * Neither the name of Edward Kmett nor the names of other
+        contributors may be used to endorse or promote products derived
+        from this software without specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+regex-base LICENSE file:
+
+  Copyright (c) 2007, Christopher Kuklewicz
+  All rights reserved.
+
+  Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
+
+      * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
+      * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
+
+      * The names of the contributors may not be used to endorse or promote products derived from this software without specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+regex-tdfa LICENSE file:
+
+  This modile is under this "3 clause" BSD license:
+
+  Copyright (c) 2007-2009, Christopher Kuklewicz
+  All rights reserved.
+
+  Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
+
+      * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
+      * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
+      * The names of the contributors may not be used to endorse or promote products derived from this software without specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+resourcet LICENSE file:
+
+  Copyright (c)2011, Michael Snoyman
+
+  All rights reserved.
+
+  Redistribution and use in source and binary forms, with or without
+  modification, are permitted provided that the following conditions are met:
+
+      * Redistributions of source code must retain the above copyright
+        notice, this list of conditions and the following disclaimer.
+
+      * Redistributions in binary form must reproduce the above
+        copyright notice, this list of conditions and the following
+        disclaimer in the documentation and/or other materials provided
+        with the distribution.
+
+      * Neither the name of Michael Snoyman nor the names of other
+        contributors may be used to endorse or promote products derived
+        from this software without specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+safe LICENSE file:
+
+  Copyright Neil Mitchell 2007-2020.
+  All rights reserved.
+
+  Redistribution and use in source and binary forms, with or without
+  modification, are permitted provided that the following conditions are
+  met:
+
+      * Redistributions of source code must retain the above copyright
+        notice, this list of conditions and the following disclaimer.
+
+      * Redistributions in binary form must reproduce the above
+        copyright notice, this list of conditions and the following
+        disclaimer in the documentation and/or other materials provided
+        with the distribution.
+
+      * Neither the name of Neil Mitchell nor the names of other
+        contributors may be used to endorse or promote products derived
+        from this software without specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+scientific LICENSE file:
+
+  Copyright (c) 2013, Bas van Dijk
+
+  All rights reserved.
+
+  Redistribution and use in source and binary forms, with or without
+  modification, are permitted provided that the following conditions are met:
+
+      * Redistributions of source code must retain the above copyright
+        notice, this list of conditions and the following disclaimer.
+
+      * Redistributions in binary form must reproduce the above
+        copyright notice, this list of conditions and the following
+        disclaimer in the documentation and/or other materials provided
+        with the distribution.
+
+      * Neither the name of Bas van Dijk nor the names of other
+        contributors may be used to endorse or promote products derived
+        from this software without specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+semialign LICENSE file:
+
+  Copyright (c) 2012, C. McCann, 2015-2019 Oleg Grenrus
+
+  All rights reserved.
+
+  Redistribution and use in source and binary forms, with or without
+  modification, are permitted provided that the following conditions are met:
+
+      * Redistributions of source code must retain the above copyright
+        notice, this list of conditions and the following disclaimer.
+
+      * Redistributions in binary form must reproduce the above
+        copyright notice, this list of conditions and the following
+        disclaimer in the documentation and/or other materials provided
+        with the distribution.
+
+      * Neither the name of C. McCann nor the names of other
+        contributors may be used to endorse or promote products derived
+        from this software without specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+semigroupoids LICENSE file:
+
+  Copyright 2011-2015 Edward Kmett
+
+  All rights reserved.
+
+  Redistribution and use in source and binary forms, with or without
+  modification, are permitted provided that the following conditions
+  are met:
+
+  1. Redistributions of source code must retain the above copyright
+     notice, this list of conditions and the following disclaimer.
+
+  2. Redistributions in binary form must reproduce the above copyright
+     notice, this list of conditions and the following disclaimer in the
+     documentation and/or other materials provided with the distribution.
+
+  THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR
+  IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+  DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR
+  ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+  DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+  OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+  STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+  ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+  POSSIBILITY OF SUCH DAMAGE.
+
+semigroups LICENSE file:
+
+  Copyright 2011-2015 Edward Kmett
+
+  All rights reserved.
+
+  Redistribution and use in source and binary forms, with or without
+  modification, are permitted provided that the following conditions
+  are met:
+
+  1. Redistributions of source code must retain the above copyright
+     notice, this list of conditions and the following disclaimer.
+
+  2. Redistributions in binary form must reproduce the above copyright
+     notice, this list of conditions and the following disclaimer in the
+     documentation and/or other materials provided with the distribution.
+
+  THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR
+  IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+  DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR
+  ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+  DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+  OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+  STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+  ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+  POSSIBILITY OF SUCH DAMAGE.
+
+serialise LICENSE file:
+
+  Copyright (c) 2017, Duncan Coutts
+
+  All rights reserved.
+
+  Redistribution and use in source and binary forms, with or without
+  modification, are permitted provided that the following conditions are met:
+
+      * Redistributions of source code must retain the above copyright
+        notice, this list of conditions and the following disclaimer.
+
+      * Redistributions in binary form must reproduce the above
+        copyright notice, this list of conditions and the following
+        disclaimer in the documentation and/or other materials provided
+        with the distribution.
+
+      * Neither the name of Duncan Coutts nor the names of other
+        contributors may be used to endorse or promote products derived
+        from this software without specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+sourcemap LICENSE file:
+
+  Copyright (c) 2012, Chris Done
+
+  All rights reserved.
+
+  Redistribution and use in source and binary forms, with or without
+  modification, are permitted provided that the following conditions are met:
+
+      * Redistributions of source code must retain the above copyright
+        notice, this list of conditions and the following disclaimer.
+
+      * Redistributions in binary form must reproduce the above
+        copyright notice, this list of conditions and the following
+        disclaimer in the documentation and/or other materials provided
+        with the distribution.
+
+      * Neither the name of Chris Done nor the names of other
+        contributors may be used to endorse or promote products derived
+        from this software without specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+split LICENSE file:
+
+  Copyright (c) 2008 Brent Yorgey, Louis Wasserman
+
+  All rights reserved.
+
+  Redistribution and use in source and binary forms, with or without
+  modification, are permitted provided that the following conditions
+  are met:
+  1. Redistributions of source code must retain the above copyright
+     notice, this list of conditions and the following disclaimer.
+  2. Redistributions in binary form must reproduce the above copyright
+     notice, this list of conditions and the following disclaimer in the
+     documentation and/or other materials provided with the distribution.
+  3. Neither the name of the author nor the names of other contributors
+     may be used to endorse or promote products derived from this software
+     without specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND
+  ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+  ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE
+  FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+  DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+  OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+  LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+  OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+  SUCH DAMAGE.
+
+splitmix LICENSE file:
+
+  Copyright (c) 2017, Oleg Grenrus
+
+  All rights reserved.
+
+  Redistribution and use in source and binary forms, with or without
+  modification, are permitted provided that the following conditions are met:
+
+      * Redistributions of source code must retain the above copyright
+        notice, this list of conditions and the following disclaimer.
+
+      * Redistributions in binary form must reproduce the above
+        copyright notice, this list of conditions and the following
+        disclaimer in the documentation and/or other materials provided
+        with the distribution.
+
+      * Neither the name of Oleg Grenrus nor the names of other
+        contributors may be used to endorse or promote products derived
+        from this software without specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+stm LICENSE file:
+
+  The Glasgow Haskell Compiler License
+
+  Copyright 2004, The University Court of the University of Glasgow.
+  All rights reserved.
+
+  Redistribution and use in source and binary forms, with or without
+  modification, are permitted provided that the following conditions are met:
+
+  - Redistributions of source code must retain the above copyright notice,
+  this list of conditions and the following disclaimer.
+
+  - Redistributions in binary form must reproduce the above copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+
+  - Neither name of the University nor the names of its contributors may be
+  used to endorse or promote products derived from this software without
+  specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE UNIVERSITY COURT OF THE UNIVERSITY OF
+  GLASGOW AND THE CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+  INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+  FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+  UNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW OR THE CONTRIBUTORS BE LIABLE
+  FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+  DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+  SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+  CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+  LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+  OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
+  DAMAGE.
+
+stm-chans LICENSE file:
+
+  === stm-chans license ===
+
+  Copyright (c) 2011--2013, wren gayle romano.
+  ALL RIGHTS RESERVED.
+
+  Redistribution and use in source and binary forms, with or without
+  modification, are permitted provided that the following conditions
+  are met:
+
+      * Redistributions of source code must retain the above copyright
+        notice, this list of conditions and the following disclaimer.
+
+      * Redistributions in binary form must reproduce the above
+        copyright notice, this list of conditions and the following
+        disclaimer in the documentation and/or other materials provided
+        with the distribution.
+
+      * Neither the name of the copyright holders nor the names of
+        other contributors may be used to endorse or promote products
+        derived from this software without specific prior written
+        permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+  FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+  COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+  BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+  LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+  CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+  LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+  ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+  POSSIBILITY OF SUCH DAMAGE.
+
+
+streaming-commons LICENSE file:
+
+  The MIT License (MIT)
+
+  Copyright (c) 2014 FP Complete
+
+  Permission is hereby granted, free of charge, to any person obtaining a copy
+  of this software and associated documentation files (the "Software"), to deal
+  in the Software without restriction, including without limitation the rights
+  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+  copies of the Software, and to permit persons to whom the Software is
+  furnished to do so, subject to the following conditions:
+
+  The above copyright notice and this permission notice shall be included in all
+  copies or substantial portions of the Software.
+
+  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+  SOFTWARE.
+
+strict LICENSE file:
+
+  Copyright (c) Roman Leshchinskiy 2006-2007
+
+  Redistribution and use in source and binary forms, with or without
+  modification, are permitted provided that the following conditions
+  are met:
+
+  1. Redistributions of source code must retain the above copyright
+     notice, this list of conditions and the following disclaimer.
+  2. Redistributions in binary form must reproduce the above copyright
+     notice, this list of conditions and the following disclaimer in the
+     documentation and/or other materials provided with the distribution.
+  3. Neither the name of the author nor the names of his contributors
+     may be used to endorse or promote products derived from this software
+     without specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE CONTRIBUTORS ``AS IS'' AND
+  ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+  ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE
+  FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+  DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+  OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+  LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+  OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+  SUCH DAMAGE.
+
+stringsearch LICENSE file:
+
+  Copyright (c)2010, Daniel Fischer
+
+  All rights reserved.
+
+  Redistribution and use in source and binary forms, with or without
+  modification, are permitted provided that the following conditions are met:
+
+      * Redistributions of source code must retain the above copyright
+        notice, this list of conditions and the following disclaimer.
+
+      * Redistributions in binary form must reproduce the above
+        copyright notice, this list of conditions and the following
+        disclaimer in the documentation and/or other materials provided
+        with the distribution.
+
+      * Neither the name of Daniel Fischer nor the names of other
+        contributors may be used to endorse or promote products derived
+        from this software without specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+syb LICENSE file:
+
+  This library (libraries/syb) is derived from code from several
+  sources:
+
+    * Code from the GHC project which is largely (c) The University of
+      Glasgow, and distributable under a BSD-style license (see below),
+
+    * Code from the Haskell 98 Report which is (c) Simon Peyton Jones
+      and freely redistributable (but see the full license for
+      restrictions).
+
+    * Code from the Haskell Foreign Function Interface specification,
+      which is (c) Manuel M. T. Chakravarty and freely redistributable
+      (but see the full license for restrictions).
+
+  The full text of these licenses is reproduced below.  All of the
+  licenses are BSD-style or compatible.
+
+  -----------------------------------------------------------------------------
+
+  The Glasgow Haskell Compiler License
+
+  Copyright 2004, The University Court of the University of Glasgow.
+  All rights reserved.
+
+  Redistribution and use in source and binary forms, with or without
+  modification, are permitted provided that the following conditions are met:
+
+  - Redistributions of source code must retain the above copyright notice,
+  this list of conditions and the following disclaimer.
+
+  - Redistributions in binary form must reproduce the above copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+
+  - Neither name of the University nor the names of its contributors may be
+  used to endorse or promote products derived from this software without
+  specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE UNIVERSITY COURT OF THE UNIVERSITY OF
+  GLASGOW AND THE CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+  INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+  FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+  UNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW OR THE CONTRIBUTORS BE LIABLE
+  FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+  DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+  SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+  CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+  LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+  OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
+  DAMAGE.
+
+  -----------------------------------------------------------------------------
+
+  Code derived from the document "Report on the Programming Language
+  Haskell 98", is distributed under the following license:
+
+    Copyright (c) 2002 Simon Peyton Jones
+
+    The authors intend this Report to belong to the entire Haskell
+    community, and so we grant permission to copy and distribute it for
+    any purpose, provided that it is reproduced in its entirety,
+    including this Notice.  Modified versions of this Report may also be
+    copied and distributed for any purpose, provided that the modified
+    version is clearly presented as such, and that it does not claim to
+    be a definition of the Haskell 98 Language.
+
+  -----------------------------------------------------------------------------
+
+  Code derived from the document "The Haskell 98 Foreign Function
+  Interface, An Addendum to the Haskell 98 Report" is distributed under
+  the following license:
+
+    Copyright (c) 2002 Manuel M. T. Chakravarty
+
+    The authors intend this Report to belong to the entire Haskell
+    community, and so we grant permission to copy and distribute it for
+    any purpose, provided that it is reproduced in its entirety,
+    including this Notice.  Modified versions of this Report may also be
+    copied and distributed for any purpose, provided that the modified
+    version is clearly presented as such, and that it does not claim to
+    be a definition of the Haskell 98 Foreign Function Interface.
+
+  -----------------------------------------------------------------------------
+
+tagged LICENSE file:
+
+  Copyright (c) 2009-2015 Edward Kmett
+  All rights reserved.
+
+  Redistribution and use in source and binary forms, with or without
+  modification, are permitted provided that the following conditions are
+  met:
+
+      * Redistributions of source code must retain the above copyright
+        notice, this list of conditions and the following disclaimer.
+
+      * Redistributions in binary form must reproduce the above
+        copyright notice, this list of conditions and the following
+        disclaimer in the documentation and/or other materials provided
+        with the distribution.
+
+      * Neither the name of Edward Kmett nor the names of other
+        contributors may be used to endorse or promote products derived
+        from this software without specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+tagsoup LICENSE file:
+
+  Copyright Neil Mitchell 2006-2019.
+  All rights reserved.
+
+  Redistribution and use in source and binary forms, with or without
+  modification, are permitted provided that the following conditions are
+  met:
+
+      * Redistributions of source code must retain the above copyright
+        notice, this list of conditions and the following disclaimer.
+
+      * Redistributions in binary form must reproduce the above
+        copyright notice, this list of conditions and the following
+        disclaimer in the documentation and/or other materials provided
+        with the distribution.
+
+      * Neither the name of Neil Mitchell nor the names of other
+        contributors may be used to endorse or promote products derived
+        from this software without specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+template-haskell LICENSE file:
+
+
+  The Glasgow Haskell Compiler License
+
+  Copyright 2002-2007, The University Court of the University of Glasgow.
+  All rights reserved.
+
+  Redistribution and use in source and binary forms, with or without
+  modification, are permitted provided that the following conditions are met:
+
+  - Redistributions of source code must retain the above copyright notice,
+  this list of conditions and the following disclaimer.
+
+  - Redistributions in binary form must reproduce the above copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+
+  - Neither name of the University nor the names of its contributors may be
+  used to endorse or promote products derived from this software without
+  specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE UNIVERSITY COURT OF THE UNIVERSITY OF
+  GLASGOW AND THE CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+  INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+  FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+  UNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW OR THE CONTRIBUTORS BE LIABLE
+  FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+  DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+  SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+  CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+  LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+  OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
+  DAMAGE.
+
+
+text LICENSE file:
+
+  Copyright (c) 2008-2009, Tom Harper
+  All rights reserved.
+
+  Redistribution and use in source and binary forms, with or without
+  modification, are permitted provided that the following conditions
+  are met:
+
+      * Redistributions of source code must retain the above copyright
+        notice, this list of conditions and the following disclaimer.
+
+      * Redistributions in binary form must reproduce the above
+        copyright notice, this list of conditions and the following
+        disclaimer in the documentation and/or other materials provided
+        with the distribution.
+
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+text-short LICENSE file:
+
+  Copyright (c) 2017, Herbert Valerio Riedel
+
+  All rights reserved.
+
+  Redistribution and use in source and binary forms, with or without
+  modification, are permitted provided that the following conditions are met:
+
+      * Redistributions of source code must retain the above copyright
+        notice, this list of conditions and the following disclaimer.
+
+      * Redistributions in binary form must reproduce the above
+        copyright notice, this list of conditions and the following
+        disclaimer in the documentation and/or other materials provided
+        with the distribution.
+
+      * Neither the name of Herbert Valerio Riedel nor the names of other
+        contributors may be used to endorse or promote products derived
+        from this software without specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+th-abstraction LICENSE file:
+
+  Copyright (c) 2017-2020 Eric Mertens
+
+  Permission to use, copy, modify, and/or distribute this software for any purpose
+  with or without fee is hereby granted, provided that the above copyright notice
+  and this permission notice appear in all copies.
+
+  THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
+  REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
+  FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
+  INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
+  OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+  TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
+  THIS SOFTWARE.
+
+th-compat LICENSE file:
+
+  Copyright (c) 2020, Ryan Scott
+
+  All rights reserved.
+
+  Redistribution and use in source and binary forms, with or without
+  modification, are permitted provided that the following conditions are met:
+
+      * Redistributions of source code must retain the above copyright
+        notice, this list of conditions and the following disclaimer.
+
+      * Redistributions in binary form must reproduce the above
+        copyright notice, this list of conditions and the following
+        disclaimer in the documentation and/or other materials provided
+        with the distribution.
+
+      * Neither the name of Ryan Scott nor the names of other
+        contributors may be used to endorse or promote products derived
+        from this software without specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+these LICENSE file:
+
+  Copyright (c) 2012, C. McCann, 2015-2019 Oleg Grenrus
+
+  All rights reserved.
+
+  Redistribution and use in source and binary forms, with or without
+  modification, are permitted provided that the following conditions are met:
+
+      * Redistributions of source code must retain the above copyright
+        notice, this list of conditions and the following disclaimer.
+
+      * Redistributions in binary form must reproduce the above
+        copyright notice, this list of conditions and the following
+        disclaimer in the documentation and/or other materials provided
+        with the distribution.
+
+      * Neither the name of C. McCann nor the names of other
+        contributors may be used to endorse or promote products derived
+        from this software without specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+time LICENSE file:
+
+  TimeLib is Copyright (c) Ashley Yakeley and contributors, 2004-2020. All rights reserved.
+  Certain sections are Copyright 2004, The University Court of the University of Glasgow. All rights reserved.
+
+  Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
+
+  - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
+
+  - Neither name of the copyright holders nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+time-compat LICENSE file:
+
+  Copyright (c) 2019 time contibutors, Oleg Grenrus
+
+  All rights reserved.
+
+  Redistribution and use in source and binary forms, with or without
+  modification, are permitted provided that the following conditions are met:
+
+      * Redistributions of source code must retain the above copyright
+        notice, this list of conditions and the following disclaimer.
+
+      * Redistributions in binary form must reproduce the above
+        copyright notice, this list of conditions and the following
+        disclaimer in the documentation and/or other materials provided
+        with the distribution.
+
+      * Neither the name of Oleg Grenrus nor the names of other
+        contributors may be used to endorse or promote products derived
+        from this software without specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+transformers LICENSE file:
+
+  The Glasgow Haskell Compiler License
+
+  Copyright 2004, The University Court of the University of Glasgow.
+  All rights reserved.
+
+  Redistribution and use in source and binary forms, with or without
+  modification, are permitted provided that the following conditions are met:
+
+  - Redistributions of source code must retain the above copyright notice,
+  this list of conditions and the following disclaimer.
+
+  - Redistributions in binary form must reproduce the above copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+
+  - Neither name of the University nor the names of its contributors may be
+  used to endorse or promote products derived from this software without
+  specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE UNIVERSITY COURT OF THE UNIVERSITY OF
+  GLASGOW AND THE CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+  INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+  FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+  UNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW OR THE CONTRIBUTORS BE LIABLE
+  FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+  DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+  SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+  CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+  LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+  OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
+  DAMAGE.
+
+transformers-base LICENSE file:
+
+  Copyright (c) 2011, Mikhail Vorozhtsov, Bas van Dijk
+  All rights reserved.
+
+  Redistribution and use in source and binary forms, with or without
+  modification, are permitted provided that the following conditions are met:
+
+  - Redistributions of source code must retain the above copyright notice,
+    this list of conditions and the following disclaimer.
+  - Redistributions in binary form must reproduce the above copyright
+    notice, this list of conditions and the following disclaimer in the
+    documentation and/or other materials provided with the distribution.
+  - Neither the names of the copyright owners nor the names of the
+    contributors may be used to endorse or promote products derived
+    from this software without specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+transformers-compat LICENSE file:
+
+  Copyright 2012-2015 Edward Kmett
+
+  All rights reserved.
+
+  Redistribution and use in source and binary forms, with or without
+  modification, are permitted provided that the following conditions
+  are met:
+
+  1. Redistributions of source code must retain the above copyright
+     notice, this list of conditions and the following disclaimer.
+
+  2. Redistributions in binary form must reproduce the above copyright
+     notice, this list of conditions and the following disclaimer in the
+     documentation and/or other materials provided with the distribution.
+
+  3. Neither the name of the author nor the names of his contributors
+     may be used to endorse or promote products derived from this software
+     without specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR
+  IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+  DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR
+  ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+  DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+  OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+  STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+  ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+  POSSIBILITY OF SUCH DAMAGE.
+
+type-equality LICENSE file:
+
+  Copyright (c) 2009 Erik Hesselink, 2019 Oleg Grenrus, Ryan Scott
+
+  All rights reserved.
+
+  Redistribution and use in source and binary forms, with or without
+  modification, are permitted provided that the following conditions are met:
+
+      * Redistributions of source code must retain the above copyright
+        notice, this list of conditions and the following disclaimer.
+
+      * Redistributions in binary form must reproduce the above
+        copyright notice, this list of conditions and the following
+        disclaimer in the documentation and/or other materials provided
+        with the distribution.
+
+      * Neither the name of authors nor the names of other
+        contributors may be used to endorse or promote products derived
+        from this software without specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+typed-process LICENSE file:
+
+  Copyright (c) 2016 FP Complete, https://www.fpcomplete.com/
+
+  Permission is hereby granted, free of charge, to any person obtaining
+  a copy of this software and associated documentation files (the
+  "Software"), to deal in the Software without restriction, including
+  without limitation the rights to use, copy, modify, merge, publish,
+  distribute, sublicense, and/or sell copies of the Software, and to
+  permit persons to whom the Software is furnished to do so, subject to
+  the following conditions:
+
+  The above copyright notice and this permission notice shall be
+  included in all copies or substantial portions of the Software.
+
+  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+  NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+  LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+  OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+  WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+uniplate LICENSE file:
+
+  Copyright Neil Mitchell 2006-2020.
+  All rights reserved.
+
+  Redistribution and use in source and binary forms, with or without
+  modification, are permitted provided that the following conditions are
+  met:
+
+      * Redistributions of source code must retain the above copyright
+        notice, this list of conditions and the following disclaimer.
+
+      * Redistributions in binary form must reproduce the above
+        copyright notice, this list of conditions and the following
+        disclaimer in the documentation and/or other materials provided
+        with the distribution.
+
+      * Neither the name of Neil Mitchell nor the names of other
+        contributors may be used to endorse or promote products derived
+        from this software without specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+unix LICENSE file:
+
+  The Glasgow Haskell Compiler License
+
+  Copyright 2004, The University Court of the University of Glasgow.
+  All rights reserved.
+
+  Redistribution and use in source and binary forms, with or without
+  modification, are permitted provided that the following conditions are met:
+
+  - Redistributions of source code must retain the above copyright notice,
+  this list of conditions and the following disclaimer.
+
+  - Redistributions in binary form must reproduce the above copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+
+  - Neither name of the University nor the names of its contributors may be
+  used to endorse or promote products derived from this software without
+  specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE UNIVERSITY COURT OF THE UNIVERSITY OF
+  GLASGOW AND THE CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+  INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+  FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+  UNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW OR THE CONTRIBUTORS BE LIABLE
+  FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+  DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+  SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+  CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+  LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+  OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
+  DAMAGE.
+
+unix-compat LICENSE file:
+
+  Copyright (c) 2007-2008, Björn Bringert
+  Copyright (c) 2007-2009, Duncan Coutts
+  Copyright (c) 2010-2011, Jacob Stanley
+  Copyright (c)      2011, Bryan O'Sullivan
+  All rights reserved.
+
+  Redistribution and use in source and binary forms, with or without
+  modification, are permitted provided that the following conditions are met:
+
+  - Redistributions of source code must retain the above copyright notice,
+    this list of conditions and the following disclaimer.
+  - Redistributions in binary form must reproduce the above copyright
+    notice, this list of conditions and the following disclaimer in the
+    documentation and/or other materials provided with the distribution.
+  - Neither the names of the copyright owners nor the names of the
+    contributors may be used to endorse or promote products derived
+    from this software without specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+unix-time LICENSE file:
+
+  Copyright (c) 2009, IIJ Innovation Institute Inc.
+  All rights reserved.
+
+  Redistribution and use in source and binary forms, with or without
+  modification, are permitted provided that the following conditions
+  are met:
+
+    * Redistributions of source code must retain the above copyright
+      notice, this list of conditions and the following disclaimer.
+    * Redistributions in binary form must reproduce the above copyright
+      notice, this list of conditions and the following disclaimer in
+      the documentation and/or other materials provided with the
+      distribution.
+    * Neither the name of the copyright holders nor the names of its
+      contributors may be used to endorse or promote products derived
+      from this software without specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+  FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+  COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+  BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+  LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+  CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+  LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+  ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+  POSSIBILITY OF SUCH DAMAGE.
+
+unliftio-core LICENSE file:
+
+  Copyright (c) 2017 FP Complete
+
+  Permission is hereby granted, free of charge, to any person obtaining
+  a copy of this software and associated documentation files (the
+  "Software"), to deal in the Software without restriction, including
+  without limitation the rights to use, copy, modify, merge, publish,
+  distribute, sublicense, and/or sell copies of the Software, and to
+  permit persons to whom the Software is furnished to do so, subject to
+  the following conditions:
+
+  The above copyright notice and this permission notice shall be included
+  in all copies or substantial portions of the Software.
+
+  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+  IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+  CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+  TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+  SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+unordered-containers LICENSE file:
+
+  Copyright (c) 2010, Johan Tibell
+
+  All rights reserved.
+
+  Redistribution and use in source and binary forms, with or without
+  modification, are permitted provided that the following conditions are met:
+
+      * Redistributions of source code must retain the above copyright
+        notice, this list of conditions and the following disclaimer.
+
+      * Redistributions in binary form must reproduce the above
+        copyright notice, this list of conditions and the following
+        disclaimer in the documentation and/or other materials provided
+        with the distribution.
+
+      * Neither the name of Johan Tibell nor the names of other
+        contributors may be used to endorse or promote products derived
+        from this software without specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+utf8-string LICENSE file:
+
+  * Copyright (c) 2007, Galois Inc.
+  * All rights reserved.
+  *
+  * Redistribution and use in source and binary forms, with or without
+  * modification, are permitted provided that the following conditions are met:
+  *     * Redistributions of source code must retain the above copyright
+  *       notice, this list of conditions and the following disclaimer.
+  *     * Redistributions in binary form must reproduce the above copyright
+  *       notice, this list of conditions and the following disclaimer in the
+  *       documentation and/or other materials provided with the distribution.
+  *     * Neither the name of Galois Inc. nor the
+  *       names of its contributors may be used to endorse or promote products
+  *       derived from this software without specific prior written permission.
+  *
+  * THIS SOFTWARE IS PROVIDED BY Galois Inc. ``AS IS'' AND ANY
+  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+  * DISCLAIMED. IN NO EVENT SHALL Galois Inc. BE LIABLE FOR ANY
+  * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+uuid-types LICENSE file:
+
+  Copyright (c) 2008, Antoine Latter
+
+  All rights reserved.
+
+  Redistribution and use in source and binary forms, with or without
+  modification, are permitted provided that the following conditions are
+  met:
+
+      * Redistributions of source code must retain the above copyright
+  notice, this list of conditions and the following disclaimer.
+      * Redistributions in binary form must reproduce the above copyright
+  notice, this list of conditions and the following disclaimer in the
+  documentation and/or other materials provided with the distribution.
+      * The names of the authors may not be used to endorse or promote
+  products derived from this software without specific prior written
+  permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
+  TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+  LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+  NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+  SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+vector LICENSE file:
+
+  Copyright (c) 2008-2012, Roman Leshchinskiy
+  All rights reserved.
+
+  Redistribution and use in source and binary forms, with or without
+  modification, are permitted provided that the following conditions are met:
+
+  - Redistributions of source code must retain the above copyright notice,
+  this list of conditions and the following disclaimer.
+
+  - Redistributions in binary form must reproduce the above copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+
+  - Neither name of the University nor the names of its contributors may be
+  used to endorse or promote products derived from this software without
+  specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE UNIVERSITY COURT OF THE UNIVERSITY OF
+  GLASGOW AND THE CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+  INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+  FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+  UNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW OR THE CONTRIBUTORS BE LIABLE
+  FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+  DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+  SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+  CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+  LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+  OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
+  DAMAGE.
+
+
+vector-algorithms LICENSE file:
+
+  Copyright (c) 2015 Dan Doel
+  Copyright (c) 2015 Tim Baumann
+
+  All rights reserved.
+
+  Redistribution and use in source and binary forms, with or without
+  modification, are permitted provided that the following conditions
+  are met:
+
+  1. Redistributions of source code must retain the above copyright
+     notice, this list of conditions and the following disclaimer.
+
+  2. Redistributions in binary form must reproduce the above copyright
+     notice, this list of conditions and the following disclaimer in the
+     documentation and/or other materials provided with the distribution.
+
+  3. Neither the name of the author nor the names of his contributors
+     may be used to endorse or promote products derived from this software
+     without specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR
+  IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+  DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR
+  ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+  DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+  OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+  STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+  ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+  POSSIBILITY OF SUCH DAMAGE.
+
+  ------------------------------------------------------------------------------
+
+  The code in Data.Array.Vector.Algorithms.Mutable.Optimal is adapted from a C
+  algorithm for the same purpose. The folowing is the copyright notice for said
+  C code:
+
+  Copyright (c) 2004 Paul Hsieh
+  All rights reserved.
+
+  Redistribution and use in source and binary forms, with or without
+  modification, are permitted provided that the following conditions are met:
+
+      Redistributions of source code must retain the above copyright notice,
+      this list of conditions and the following disclaimer.
+
+      Redistributions in binary form must reproduce the above copyright notice,
+      this list of conditions and the following disclaimer in the documentation
+      and/or other materials provided with the distribution.
+
+      Neither the name of sorttest nor the names of its contributors may be
+      used to endorse or promote products derived from this software without
+      specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+  POSSIBILITY OF SUCH DAMAGE.
+
+void LICENSE file:
+
+  Copyright 2015 Edward Kmett
+
+  All rights reserved.
+
+  Redistribution and use in source and binary forms, with or without
+  modification, are permitted provided that the following conditions
+  are met:
+
+  1. Redistributions of source code must retain the above copyright
+     notice, this list of conditions and the following disclaimer.
+
+  2. Redistributions in binary form must reproduce the above copyright
+     notice, this list of conditions and the following disclaimer in the
+     documentation and/or other materials provided with the distribution.
+
+  3. Neither the name of the author nor the names of his contributors
+     may be used to endorse or promote products derived from this software
+     without specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR
+  IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+  DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR
+  ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+  DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+  OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+  STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+  ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+  POSSIBILITY OF SUCH DAMAGE.
+
+witherable LICENSE file:
+
+  Copyright (c) 2014, Fumiaki Kinoshita
+
+  All rights reserved.
+
+  Redistribution and use in source and binary forms, with or without
+  modification, are permitted provided that the following conditions are met:
+
+      * Redistributions of source code must retain the above copyright
+        notice, this list of conditions and the following disclaimer.
+
+      * Redistributions in binary form must reproduce the above
+        copyright notice, this list of conditions and the following
+        disclaimer in the documentation and/or other materials provided
+        with the distribution.
+
+      * Neither the name of Fumiaki Kinoshita nor the names of other
+        contributors may be used to endorse or promote products derived
+        from this software without specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
 xss-sanitize LICENSE file:
 
diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -1,8 +1,8 @@
-[![PureScript](logo.png)](http://purescript.org)
+<img src="logo.png" alt="PureScript" width="392">
 
 A small strongly typed programming language with expressive types that compiles to JavaScript, written in and inspired by Haskell.
 
-[![Hackage](https://img.shields.io/hackage/v/purescript.svg)](http://hackage.haskell.org/package/purescript) [![Build Status](https://api.travis-ci.org/purescript/purescript.svg?branch=master)](http://travis-ci.org/purescript/purescript)
+[![Hackage](https://img.shields.io/hackage/v/purescript.svg)](http://hackage.haskell.org/package/purescript) [![Build Status](https://github.com/purescript/purescript/actions/workflows/ci.yml/badge.svg?branch=master)](https://github.com/purescript/purescript/actions/workflows/ci.yml)
 
 ## Language info
 
@@ -12,13 +12,22 @@
 
 ## Resources
 
-- [PureScript book](https://leanpub.com/purescript/read)
+- [PureScript book](https://book.purescript.org/)
 - [Documentation](https://github.com/purescript/documentation)
 - [Try PureScript](http://try.purescript.org)
 - [Pursuit Package Index](http://pursuit.purescript.org/)
 
 ## Help!
 
-- [#purescript @ FP Slack](https://functionalprogramming.slack.com/)
-- [PureScript Language Forum](https://discourse.purescript.org/)
+### Community Spaces
+
+The following spaces are governed by the [PureScript Community Code of Conduct](https://github.com/purescript/governance/blob/master/CODE_OF_CONDUCT.md). The majority of PureScript users use these spaces to discuss and collaborate on PureScript-related topics:
+- [PureScript Discord](https://purescript.org/chat)
+- [PureScript Discourse](https://discourse.purescript.org/)
+
+### Unaffiliated Spaces
+
+Some PureScript users also collaborate in the below spaces. These do not fall under the code of conduct linked above. They may have no code of conduct or one very different than the one linked above.
+- [PureScript Matrix](https://matrix.to/#/#purescript:matrix.org)
 - [PureScript on StackOverflow](http://stackoverflow.com/questions/tagged/purescript)
+- [The `#purescript` channel on Libera.Chat](https://libera.chat/)
diff --git a/VERSIONING_POLICY.md b/VERSIONING_POLICY.md
new file mode 100644
--- /dev/null
+++ b/VERSIONING_POLICY.md
@@ -0,0 +1,9 @@
+# Versioning Policy
+
+PureScript can be perceived from two different perspectives:
+1. PureScript-the-application (e.g. using `purs` to compile code)
+1. PureScript-the-library (e.g. building a tool that depends on the [`purescript` package](https://hackage.haskell.org/package/purescript))
+
+This project is versioned using [SemVer 2.0.0](https://semver.org/), not [PVP](https://pvp.haskell.org/) because users of PureScript-the-application are the intended audience. Thus, breaking changes to PureScript-the-application are reflected in this project's version. Since `CoreFn` is considered part of PureScript-the-application, a breaking change to that format is reflected in the project version.
+
+Since PureScript-the-library is used by internal tools like [Try PureScript](https://github.com/purescript/trypurescript) and [Pursuit](https://github.com/purescript/pursuit), it must be published to Hackage as a library. However, PureScript-the-library is considered unstable and can make breaking changes to library users without reflecting that in the version.
diff --git a/app/Command/Bundle.hs b/app/Command/Bundle.hs
--- a/app/Command/Bundle.hs
+++ b/app/Command/Bundle.hs
@@ -1,127 +1,23 @@
-{-# LANGUAGE FlexibleContexts #-}
-{-# LANGUAGE ScopedTypeVariables #-}
-{-# LANGUAGE TupleSections #-}
-{-# LANGUAGE RecordWildCards #-}
-
 -- | Bundles compiled PureScript modules for the browser.
 module Command.Bundle (command) where
 
-import           Data.Traversable (for)
-import           Data.Aeson (encode)
-import           Data.Maybe (isNothing)
-import           Control.Applicative
-import           Control.Monad
-import           Control.Monad.Error.Class
-import           Control.Monad.Trans.Except
-import           Control.Monad.IO.Class
-import           System.FilePath (takeDirectory, (</>), (<.>), takeFileName)
-import           System.FilePath.Glob (glob)
-import           System.Exit (exitFailure)
-import           System.IO (stderr, hPutStr, hPutStrLn)
-import           System.IO.UTF8 (readUTF8File, writeUTF8File)
-import           System.Directory (createDirectoryIfMissing, getCurrentDirectory)
-import qualified Data.ByteString.Lazy.UTF8 as LBU8
-import           Language.PureScript.Bundle
-import           Options.Applicative (Parser)
-import qualified Options.Applicative as Opts
-import           SourceMap
-import           SourceMap.Types
-
--- | Command line options.
-data Options = Options
-  { optionsInputFiles  :: [FilePath]
-  , optionsOutputFile  :: Maybe FilePath
-  , optionsEntryPoints :: [String]
-  , optionsMainModule  :: Maybe String
-  , optionsNamespace   :: String
-  , optionsSourceMaps  :: Bool
-  } deriving Show
-
--- | The main application function.
--- This function parses the input files, performs dead code elimination, filters empty modules
--- and generates and prints the final Javascript bundle.
-app :: (MonadError ErrorMessage m, MonadIO m) => Options -> m (Maybe SourceMapping, String)
-app Options{..} = do
-  inputFiles <- concat <$> mapM (liftIO . glob) optionsInputFiles
-  when (null inputFiles) . liftIO $ do
-    hPutStrLn stderr "purs bundle: No input files."
-    exitFailure
-  when (isNothing optionsOutputFile && optionsSourceMaps == True) . liftIO $ do
-    hPutStrLn stderr "purs bundle: Source maps only supported when output file specified."
-    exitFailure
-
-  input <- for inputFiles $ \filename -> do
-    js <- liftIO (readUTF8File filename)
-    mid <- guessModuleIdentifier filename
-    length js `seq` return (mid, Just filename, js)                                            -- evaluate readFile till EOF before returning, not to exhaust file handles
-
-  let entryIds = map (`ModuleIdentifier` Regular) optionsEntryPoints
-
-  currentDir <- liftIO getCurrentDirectory
-  let outFile = if optionsSourceMaps then fmap (currentDir </>) optionsOutputFile else Nothing
-  bundleSM input entryIds optionsMainModule optionsNamespace outFile
-
--- | Command line options parser.
-options :: Parser Options
-options = Options <$> some inputFile
-                  <*> optional outputFile
-                  <*> many entryPoint
-                  <*> optional mainModule
-                  <*> namespace
-                  <*> sourceMaps
-  where
-  inputFile :: Parser FilePath
-  inputFile = Opts.strArgument $
-       Opts.metavar "FILE"
-    <> Opts.help "The input .js file(s)"
-
-  outputFile :: Parser FilePath
-  outputFile = Opts.strOption $
-       Opts.short 'o'
-    <> Opts.long "output"
-    <> Opts.help "The output .js file"
-
-  entryPoint :: Parser String
-  entryPoint = Opts.strOption $
-       Opts.short 'm'
-    <> Opts.long "module"
-    <> Opts.help "Entry point module name(s). All code which is not a transitive dependency of an entry point module will be removed."
-
-  mainModule :: Parser String
-  mainModule = Opts.strOption $
-       Opts.long "main"
-    <> Opts.help "Generate code to run the main method in the specified module."
+import Prelude
 
-  namespace :: Parser String
-  namespace = Opts.strOption $
-       Opts.short 'n'
-    <> Opts.long "namespace"
-    <> Opts.value "PS"
-    <> Opts.showDefault
-    <> Opts.help "Specify the namespace that PureScript modules will be exported to when running in the browser."
+import System.Exit (exitFailure)
+import System.IO (stderr, hPutStrLn)
+import Options.Applicative qualified as Opts
 
-  sourceMaps :: Parser Bool
-  sourceMaps = Opts.switch $
-       Opts.long "source-maps"
-    <> Opts.help "Whether to generate source maps for the bundle (requires --output)."
+app :: IO ()
+app = do
+  hPutStrLn stderr $ unlines
+    [ "'purs bundle' was removed in the v0.15.0 release."
+    , "See https://github.com/purescript/documentation/blob/master/migration-guides/0.15-Migration-Guide.md"
+    , "for more information and bundler alternatives."
+    ]
+  exitFailure
 
 -- | Make it go.
 command :: Opts.Parser (IO ())
-command = run <$> (Opts.helper <*> options) where
-  run :: Options -> IO ()
-  run opts = do
-    output <- runExceptT (app opts)
-    case output of
-      Left err -> do
-        hPutStr stderr (unlines (printErrorMessage err))
-        exitFailure
-      Right (sourcemap, js) ->
-        case optionsOutputFile opts of
-          Just outputFile -> do
-            createDirectoryIfMissing True (takeDirectory outputFile)
-            case sourcemap of
-              Just sm -> do
-                writeUTF8File outputFile $ js ++ "\n//# sourceMappingURL=" ++ (takeFileName outputFile <.> "map") ++ "\n"
-                writeUTF8File (outputFile <.> "map") $ LBU8.toString . encode $ generate sm
-              Nothing -> writeUTF8File outputFile js
-          Nothing -> putStrLn js
+command = run <$> (Opts.helper <*> pure ()) where
+  run :: () -> IO ()
+  run _ = app
diff --git a/app/Command/Compile.hs b/app/Command/Compile.hs
--- a/app/Command/Compile.hs
+++ b/app/Command/Compile.hs
@@ -1,99 +1,82 @@
-{-# LANGUAGE DataKinds #-}
-{-# LANGUAGE FlexibleContexts #-}
-{-# LANGUAGE RecordWildCards #-}
-{-# LANGUAGE ScopedTypeVariables #-}
-{-# LANGUAGE TupleSections #-}
-
 module Command.Compile (command) where
 
-import           Control.Applicative
-import           Control.Monad
-import qualified Data.Aeson as A
-import           Data.Bool (bool)
-import qualified Data.ByteString.Lazy.UTF8 as LBU8
-import           Data.List (intercalate)
-import qualified Data.Map as M
-import qualified Data.Set as S
-import           Data.Text (Text)
-import qualified Data.Text as T
-import           Data.Traversable (for)
-import qualified Language.PureScript as P
-import qualified Language.PureScript.CST as CST
-import           Language.PureScript.Errors.JSON
-import           Language.PureScript.Make
-import qualified Options.Applicative as Opts
-import qualified System.Console.ANSI as ANSI
-import           System.Exit (exitSuccess, exitFailure)
-import           System.Directory (getCurrentDirectory)
-import           System.FilePath.Glob (glob)
-import           System.IO (hPutStr, hPutStrLn, stderr)
-import           System.IO.UTF8 (readUTF8FileT)
+import Prelude
 
+import Control.Applicative (Alternative(..))
+import Control.Monad (when)
+import Data.Aeson qualified as A
+import Data.Bool (bool)
+import Data.ByteString.Lazy.UTF8 qualified as LBU8
+import Data.List (intercalate)
+import Data.Map qualified as M
+import Data.Set qualified as S
+import Data.Text qualified as T
+import Data.Traversable (for)
+import Language.PureScript qualified as P
+import Language.PureScript.CST qualified as CST
+import Language.PureScript.Errors.JSON (JSONResult(..), toJSONErrors)
+import Language.PureScript.Glob (toInputGlobs, PSCGlobs(..), warnFileTypeNotFound)
+import Language.PureScript.Make (buildMakeActions, inferForeignModules, runMake)
+import Options.Applicative qualified as Opts
+import SharedCLI qualified
+import System.Console.ANSI qualified as ANSI
+import System.Exit (exitSuccess, exitFailure)
+import System.Directory (getCurrentDirectory)
+import System.IO (hPutStr, stderr, stdout)
+import System.IO.UTF8 (readUTF8FilesT)
+
 data PSCMakeOptions = PSCMakeOptions
   { pscmInput        :: [FilePath]
+  , pscmInputFromFile :: Maybe FilePath
+  , pscmExclude      :: [FilePath]
   , pscmOutputDir    :: FilePath
   , pscmOpts         :: P.Options
   , pscmUsePrefix    :: Bool
   , pscmJSONErrors   :: Bool
   }
 
--- | Argumnets: verbose, use JSON, warnings, errors
-printWarningsAndErrors :: Bool -> Bool -> P.MultipleErrors -> Either P.MultipleErrors a -> IO ()
-printWarningsAndErrors verbose False warnings errors = do
+-- | Arguments: verbose, use JSON, warnings, errors
+printWarningsAndErrors :: Bool -> Bool -> [(FilePath, T.Text)] -> P.MultipleErrors -> Either P.MultipleErrors a -> IO ()
+printWarningsAndErrors verbose False files warnings errors = do
   pwd <- getCurrentDirectory
-  cc <- bool Nothing (Just P.defaultCodeColor) <$> ANSI.hSupportsANSI stderr
-  let ppeOpts = P.defaultPPEOptions { P.ppeCodeColor = cc, P.ppeFull = verbose, P.ppeRelativeDirectory = pwd }
+  cc <- bool Nothing (Just P.defaultCodeColor) <$> ANSI.hSupportsANSI stdout
+  let ppeOpts = P.defaultPPEOptions { P.ppeCodeColor = cc, P.ppeFull = verbose, P.ppeRelativeDirectory = pwd, P.ppeFileContents = files }
   when (P.nonEmpty warnings) $
-    hPutStrLn stderr (P.prettyPrintMultipleWarnings ppeOpts warnings)
+    putStrLn (P.prettyPrintMultipleWarnings ppeOpts warnings)
   case errors of
     Left errs -> do
-      hPutStrLn stderr (P.prettyPrintMultipleErrors ppeOpts errs)
+      putStrLn (P.prettyPrintMultipleErrors ppeOpts errs)
       exitFailure
     Right _ -> return ()
-printWarningsAndErrors verbose True warnings errors = do
-  hPutStrLn stderr . LBU8.toString . A.encode $
-    JSONResult (toJSONErrors verbose P.Warning warnings)
-               (either (toJSONErrors verbose P.Error) (const []) errors)
+printWarningsAndErrors verbose True files warnings errors = do
+  putStrLn . LBU8.toString . A.encode $
+    JSONResult (toJSONErrors verbose P.Warning files warnings)
+               (either (toJSONErrors verbose P.Error files) (const []) errors)
   either (const exitFailure) (const (return ())) errors
 
 compile :: PSCMakeOptions -> IO ()
 compile PSCMakeOptions{..} = do
-  input <- globWarningOnMisses (unless pscmJSONErrors . warnFileTypeNotFound) pscmInput
-  when (null input && not pscmJSONErrors) $ do
+  input <- toInputGlobs $ PSCGlobs
+    { pscInputGlobs = pscmInput
+    , pscInputGlobsFromFile = pscmInputFromFile
+    , pscExcludeGlobs = pscmExclude
+    , pscWarnFileTypeNotFound = warnFileTypeNotFound "compile"
+    }
+  when (null input) $ do
     hPutStr stderr $ unlines [ "purs compile: No input files."
                              , "Usage: For basic information, try the `--help' option."
                              ]
     exitFailure
-  moduleFiles <- readInput input
+  moduleFiles <- readUTF8FilesT input
   (makeErrors, makeWarnings) <- runMake pscmOpts $ do
     ms <- CST.parseModulesFromFiles id moduleFiles
     let filePathMap = M.fromList $ map (\(fp, pm) -> (P.getModuleName $ CST.resPartial pm, Right fp)) ms
     foreigns <- inferForeignModules filePathMap
     let makeActions = buildMakeActions pscmOutputDir filePathMap foreigns pscmUsePrefix
     P.make makeActions (map snd ms)
-  printWarningsAndErrors (P.optionsVerboseErrors pscmOpts) pscmJSONErrors makeWarnings makeErrors
+  printWarningsAndErrors (P.optionsVerboseErrors pscmOpts) pscmJSONErrors moduleFiles makeWarnings makeErrors
   exitSuccess
 
-warnFileTypeNotFound :: String -> IO ()
-warnFileTypeNotFound = hPutStrLn stderr . ("purs compile: No files found using pattern: " ++)
-
-globWarningOnMisses :: (String -> IO ()) -> [FilePath] -> IO [FilePath]
-globWarningOnMisses warn = concatMapM globWithWarning
-  where
-  globWithWarning pattern' = do
-    paths <- glob pattern'
-    when (null paths) $ warn pattern'
-    return paths
-  concatMapM f = fmap concat . mapM f
-
-readInput :: [FilePath] -> IO [(FilePath, Text)]
-readInput inputFiles = forM inputFiles $ \inFile -> (inFile, ) <$> readUTF8FileT inFile
-
-inputFile :: Opts.Parser FilePath
-inputFile = Opts.strArgument $
-     Opts.metavar "FILE"
-  <> Opts.help "The input .purs file(s)."
-
 outputDirectory :: Opts.Parser FilePath
 outputDirectory = Opts.strOption $
      Opts.short 'o'
@@ -157,10 +140,12 @@
   where
     -- Ensure that the JS target is included if sourcemaps are
     handleTargets :: [P.CodegenTarget] -> S.Set P.CodegenTarget
-    handleTargets ts = S.fromList (if elem P.JSSourceMap ts then P.JS : ts else ts)
+    handleTargets ts = S.fromList (if P.JSSourceMap `elem` ts then P.JS : ts else ts)
 
 pscMakeOptions :: Opts.Parser PSCMakeOptions
-pscMakeOptions = PSCMakeOptions <$> many inputFile
+pscMakeOptions = PSCMakeOptions <$> many SharedCLI.inputFile
+                                <*> SharedCLI.globInputFile
+                                <*> many SharedCLI.excludeFiles
                                 <*> outputDirectory
                                 <*> options
                                 <*> (not <$> noPrefix)
diff --git a/app/Command/Docs.hs b/app/Command/Docs.hs
--- a/app/Command/Docs.hs
+++ b/app/Command/Docs.hs
@@ -1,25 +1,29 @@
 
 module Command.Docs (command, infoModList) where
 
-import           Command.Docs.Html
-import           Command.Docs.Markdown
-import           Control.Applicative
-import           Control.Monad.Writer
-import           Control.Monad.Trans.Except (runExceptT)
-import           Data.Maybe (fromMaybe)
-import qualified Data.Text as T
-import qualified Language.PureScript as P
-import qualified Language.PureScript.Docs as D
-import           Language.PureScript.Docs.Tags (dumpCtags, dumpEtags)
-import qualified Options.Applicative as Opts
-import qualified Text.PrettyPrint.ANSI.Leijen as PP
-import           System.Directory (getCurrentDirectory, createDirectoryIfMissing, removeFile)
-import           System.Exit (exitFailure)
-import           System.FilePath ((</>))
-import           System.FilePath.Glob (compile, glob, globDir1)
-import           System.IO (hPutStrLn, stderr)
-import           System.IO.UTF8 (writeUTF8FileT)
+import Prelude
 
+import Command.Docs.Html (asHtml, writeHtmlModules)
+import Command.Docs.Markdown (asMarkdown, writeMarkdownModules)
+import Control.Applicative (Alternative(..), optional)
+import Control.Monad.Writer (when)
+import Control.Monad.Trans.Except (runExceptT)
+import Data.Maybe (fromMaybe)
+import Data.Text qualified as T
+import Language.PureScript qualified as P
+import Language.PureScript.Docs qualified as D
+import Language.PureScript.Docs.Tags (dumpCtags, dumpEtags)
+import Language.PureScript.Glob (PSCGlobs(..), toInputGlobs, warnFileTypeNotFound)
+import Options.Applicative qualified as Opts
+import Text.PrettyPrint.ANSI.Leijen qualified as PP
+import SharedCLI qualified
+import System.Directory (getCurrentDirectory, createDirectoryIfMissing, removeFile)
+import System.Exit (exitFailure)
+import System.FilePath ((</>))
+import System.FilePath.Glob (compile, globDir1)
+import System.IO (hPutStrLn, stderr)
+import System.IO.UTF8 (writeUTF8FileT)
+
 -- | Available output formats
 data Format
   = Markdown
@@ -33,12 +37,19 @@
   , _pscdOutput :: Maybe FilePath
   , _pscdCompileOutputDir :: FilePath
   , _pscdInputFiles  :: [FilePath]
+  , _pscdInputFromFile :: Maybe FilePath
+  , _pscdExcludeFiles :: [FilePath]
   }
   deriving (Show)
 
 docgen :: PSCDocsOptions -> IO ()
-docgen (PSCDocsOptions fmt moutput compileOutput inputGlob) = do
-  input <- concat <$> mapM glob inputGlob
+docgen (PSCDocsOptions fmt moutput compileOutput inputGlob inputGlobFromFile excludeGlob) = do
+  input <- toInputGlobs $ PSCGlobs
+    { pscInputGlobs = inputGlob
+    , pscInputGlobsFromFile = inputGlobFromFile
+    , pscExcludeGlobs = excludeGlob
+    , pscWarnFileTypeNotFound = warnFileTypeNotFound "docs"
+    }
   when (null input) $ do
     hPutStrLn stderr "purs docs: no input files."
     exitFailure
@@ -102,7 +113,13 @@
     Ctags -> "tags"
 
 pscDocsOptions :: Opts.Parser PSCDocsOptions
-pscDocsOptions = PSCDocsOptions <$> format <*> output <*> compileOutputDir <*> many inputFile
+pscDocsOptions = 
+  PSCDocsOptions <$> format 
+                 <*> output 
+                 <*> compileOutputDir 
+                 <*> many SharedCLI.inputFile
+                 <*> SharedCLI.globInputFile
+                 <*> many SharedCLI.excludeFiles
   where
   format :: Opts.Parser Format
   format = Opts.option Opts.auto $
@@ -125,11 +142,6 @@
     <> Opts.long "compile-output"
     <> Opts.metavar "DIR"
     <> Opts.help "Compiler output directory"
-
-  inputFile :: Opts.Parser FilePath
-  inputFile = Opts.strArgument $
-       Opts.metavar "FILE"
-    <> Opts.help "The input .purs file(s)"
 
 command :: Opts.Parser (IO ())
 command = docgen <$> (Opts.helper <*> pscDocsOptions)
diff --git a/app/Command/Docs/Html.hs b/app/Command/Docs/Html.hs
--- a/app/Command/Docs/Html.hs
+++ b/app/Command/Docs/Html.hs
@@ -1,6 +1,3 @@
-{-# LANGUAGE TemplateHaskell #-}
-{-# LANGUAGE OverloadedStrings #-}
-
 module Command.Docs.Html
   ( asHtml
   , layout
@@ -8,22 +5,24 @@
   , writeHtmlModules
   ) where
 
-import           Control.Applicative
-import           Control.Arrow ((&&&))
-import           Control.Monad.Writer
-import           Data.List (sort)
-import           Data.Text (Text)
-import           Data.Text.Lazy (toStrict)
-import qualified Data.Text as T
-import qualified Language.PureScript as P
-import qualified Language.PureScript.Docs as D
-import qualified Language.PureScript.Docs.AsHtml as D
-import           Text.Blaze.Html5 (Html, (!), toMarkup)
-import qualified Text.Blaze.Html5 as H
-import qualified Text.Blaze.Html5.Attributes as A
-import qualified Text.Blaze.Html.Renderer.Text as Blaze
-import           System.IO.UTF8 (writeUTF8FileT)
-import           Version (versionString)
+import Prelude
+
+import Control.Applicative (Alternative(..))
+import Control.Arrow ((&&&))
+import Control.Monad.Writer (guard)
+import Data.List (sort)
+import Data.Text (Text)
+import Data.Text.Lazy (toStrict)
+import Data.Text qualified as T
+import Language.PureScript qualified as P
+import Language.PureScript.Docs qualified as D
+import Language.PureScript.Docs.AsHtml qualified as D
+import Text.Blaze.Html5 (Html, (!), toMarkup)
+import Text.Blaze.Html5 qualified as H
+import Text.Blaze.Html5.Attributes qualified as A
+import Text.Blaze.Html.Renderer.Text qualified as Blaze
+import System.IO.UTF8 (writeUTF8FileT)
+import Version (versionString)
 
 writeHtmlModules :: FilePath -> [(P.ModuleName, D.HtmlOutputModule Html)] -> IO ()
 writeHtmlModules outputDir modules = do
diff --git a/app/Command/Docs/Markdown.hs b/app/Command/Docs/Markdown.hs
--- a/app/Command/Docs/Markdown.hs
+++ b/app/Command/Docs/Markdown.hs
@@ -1,16 +1,16 @@
-{-# LANGUAGE OverloadedStrings #-}
-
 module Command.Docs.Markdown
   ( asMarkdown
   , writeMarkdownModules
   ) where
 
-import           Data.Text (Text)
-import qualified Data.Text as T
-import qualified Language.PureScript as P
-import qualified Language.PureScript.Docs as D
-import qualified Language.PureScript.Docs.AsMarkdown as D
-import           System.IO.UTF8 (writeUTF8FileT)
+import Prelude
+
+import Data.Text (Text)
+import Data.Text qualified as T
+import Language.PureScript qualified as P
+import Language.PureScript.Docs qualified as D
+import Language.PureScript.Docs.AsMarkdown qualified as D
+import System.IO.UTF8 (writeUTF8FileT)
 
 asMarkdown :: D.Module -> (P.ModuleName, Text)
 asMarkdown m = (D.modName m, D.runDocs . D.moduleAsMarkdown $ m)
diff --git a/app/Command/Graph.hs b/app/Command/Graph.hs
new file mode 100644
--- /dev/null
+++ b/app/Command/Graph.hs
@@ -0,0 +1,85 @@
+module Command.Graph (command) where
+
+import Prelude
+
+import Control.Applicative (many)
+import Control.Monad (unless, when)
+import Data.Aeson qualified as Json
+import Data.Bool (bool)
+import Data.ByteString.Lazy qualified as LB
+import Data.ByteString.Lazy.UTF8 qualified as LBU8
+import Language.PureScript qualified as P
+import Language.PureScript.Errors.JSON (JSONResult(..), toJSONErrors)
+import Language.PureScript.Glob (PSCGlobs(..), toInputGlobs, warnFileTypeNotFound)
+import Options.Applicative qualified as Opts
+import SharedCLI qualified
+import System.Console.ANSI qualified as ANSI
+import System.Exit (exitFailure)
+import System.Directory (getCurrentDirectory)
+import System.IO (hPutStr, hPutStrLn, stderr)
+
+data GraphOptions = GraphOptions
+  { graphInput      :: [FilePath]
+  , graphInputFromFile :: Maybe FilePath
+  , graphExclude       :: [FilePath]
+  , graphJSONErrors :: Bool
+  }
+
+graph :: GraphOptions -> IO ()
+graph GraphOptions{..} = do
+  input <- toInputGlobs $ PSCGlobs
+    { pscInputGlobs = graphInput
+    , pscInputGlobsFromFile = graphInputFromFile
+    , pscExcludeGlobs = graphExclude
+    , pscWarnFileTypeNotFound = unless graphJSONErrors . warnFileTypeNotFound "graph"
+    }
+
+  when (null input && not graphJSONErrors) $ do
+    hPutStr stderr $ unlines
+      [ "purs graph: No input files."
+      , "Usage: For basic information, try the `--help' option."
+      ]
+    exitFailure
+
+  (makeResult, makeWarnings) <- P.graph input
+
+  printWarningsAndErrors graphJSONErrors makeWarnings makeResult
+    >>= (LB.putStr . Json.encode)
+
+command :: Opts.Parser (IO ())
+command = graph <$> (Opts.helper <*> graphOptions)
+  where
+  graphOptions :: Opts.Parser GraphOptions
+  graphOptions =
+    GraphOptions <$> many SharedCLI.inputFile
+                 <*> SharedCLI.globInputFile
+                 <*> many SharedCLI.excludeFiles
+                 <*> jsonErrors
+
+  jsonErrors :: Opts.Parser Bool
+  jsonErrors =
+    Opts.switch $
+      Opts.long "json-errors" <>
+      Opts.help "Print errors to stderr as JSON"
+
+-- | Arguments: use JSON, warnings, errors
+printWarningsAndErrors :: Bool -> P.MultipleErrors -> Either P.MultipleErrors a -> IO a
+printWarningsAndErrors False warnings errors = do
+  pwd <- getCurrentDirectory
+  cc <- bool Nothing (Just P.defaultCodeColor) <$> ANSI.hSupportsANSI stderr
+  let ppeOpts = P.defaultPPEOptions { P.ppeCodeColor = cc, P.ppeFull = True, P.ppeRelativeDirectory = pwd }
+  when (P.nonEmpty warnings) $
+    hPutStrLn stderr (P.prettyPrintMultipleWarnings ppeOpts warnings)
+  case errors of
+    Left errs -> do
+      hPutStrLn stderr (P.prettyPrintMultipleErrors ppeOpts errs)
+      exitFailure
+    Right res -> pure res
+printWarningsAndErrors True warnings errors = do
+  let verbose = True
+  hPutStrLn stderr . LBU8.toString . Json.encode $
+    JSONResult (toJSONErrors verbose P.Warning [] warnings)
+               (either (toJSONErrors verbose P.Error []) (const []) errors)
+  case errors of
+    Left _errs -> exitFailure
+    Right res -> pure res
diff --git a/app/Command/Hierarchy.hs b/app/Command/Hierarchy.hs
--- a/app/Command/Hierarchy.hs
+++ b/app/Command/Hierarchy.hs
@@ -13,43 +13,41 @@
 --
 -----------------------------------------------------------------------------
 
-{-# LANGUAGE TupleSections #-}
-{-# LANGUAGE DataKinds #-}
-
 module Command.Hierarchy (command) where
 
-import           Protolude (catMaybes)
+import Prelude
+import Protolude (catMaybes)
 
-import           Control.Applicative (optional)
-import           Data.Foldable (for_)
-import qualified Data.Text as T
-import qualified Data.Text.IO as T
-import           Options.Applicative (Parser)
-import qualified Options.Applicative as Opts
-import           System.Directory (createDirectoryIfMissing)
-import           System.FilePath ((</>))
-import           System.FilePath.Glob (glob)
-import           System.Exit (exitFailure, exitSuccess)
-import           System.IO (hPutStr, stderr)
-import           System.IO.UTF8 (readUTF8FileT)
-import qualified Language.PureScript as P
-import qualified Language.PureScript.CST as CST
-import           Language.PureScript.Hierarchy (Graph(..), _unDigraph, _unGraphName, typeClasses)
+import Control.Applicative (optional)
+import Data.Foldable (for_)
+import Data.Text qualified as T
+import Data.Text.IO qualified as T
+import Options.Applicative (Parser)
+import Options.Applicative qualified as Opts
+import System.Directory (createDirectoryIfMissing)
+import System.FilePath ((</>))
+import System.FilePath.Glob (glob)
+import System.Exit (exitFailure, exitSuccess)
+import System.IO (hPutStr, stderr)
+import System.IO.UTF8 (readUTF8FilesT)
+import Language.PureScript qualified as P
+import Language.PureScript.CST qualified as CST
+import Language.PureScript.Hierarchy (Graph(..), _unDigraph, _unGraphName, typeClasses)
 
 data HierarchyOptions = HierarchyOptions
-  { _hierachyInput   :: FilePath
+  { _hierarchyInput   :: FilePath
   , _hierarchyOutput :: Maybe FilePath
   }
 
-readInput :: [FilePath] -> IO (Either P.MultipleErrors [P.Module])
-readInput paths = do
-  content <- mapM (\path -> (path, ) <$> readUTF8FileT path) paths
-  return $ map snd <$> CST.parseFromFiles id content
+parseInput :: [FilePath] -> IO (Either P.MultipleErrors [P.Module])
+parseInput paths = do
+  content <- readUTF8FilesT paths
+  return $ map (snd . snd) <$> CST.parseFromFiles id content
 
 compile :: HierarchyOptions -> IO ()
 compile (HierarchyOptions inputGlob mOutput) = do
   input <- glob inputGlob
-  modules <- readInput input
+  modules <- parseInput input
   case modules of
     Left errs -> hPutStr stderr (P.prettyPrintMultipleErrors P.defaultPPEOptions errs) >> exitFailure
     Right ms -> do
diff --git a/app/Command/Ide.hs b/app/Command/Ide.hs
--- a/app/Command/Ide.hs
+++ b/app/Command/Ide.hs
@@ -12,38 +12,34 @@
 -- The server accepting commands for psc-ide
 -----------------------------------------------------------------------------
 
-{-# LANGUAGE FlexibleContexts      #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE OverloadedStrings     #-}
-{-# LANGUAGE PackageImports        #-}
-{-# LANGUAGE RecordWildCards       #-}
-{-# LANGUAGE TemplateHaskell       #-}
-{-# LANGUAGE NoImplicitPrelude     #-}
+{-# LANGUAGE PackageImports #-}
+{-# LANGUAGE TemplateHaskell #-}
 
 module Command.Ide (command) where
 
-import           Protolude
+import Protolude
 
-import qualified Data.Aeson as Aeson
-import           Control.Concurrent.STM
-import           "monad-logger" Control.Monad.Logger
-import qualified Data.Text.IO                      as T
-import qualified Data.ByteString.Char8             as BS8
-import qualified Data.ByteString.Lazy.Char8        as BSL8
-import           GHC.IO.Exception                  (IOErrorType(..), IOException(..))
-import           Language.PureScript.Ide
-import           Language.PureScript.Ide.Command
-import           Language.PureScript.Ide.Util
-import           Language.PureScript.Ide.Error
-import           Language.PureScript.Ide.Types
-import           Language.PureScript.Ide.Watcher
-import qualified Network.Socket                    as Network
-import qualified Options.Applicative               as Opts
-import           System.Directory
-import           System.Info                       as SysInfo
-import           System.FilePath
-import           System.IO                         hiding (putStrLn, print)
-import           System.IO.Error                   (isEOFError)
+import Data.Aeson qualified as Aeson
+import Control.Concurrent.STM (newTVarIO)
+import "monad-logger" Control.Monad.Logger (MonadLogger, logDebug, logError, logInfo)
+import Data.IORef (newIORef)
+import Data.Text.IO qualified as T
+import Data.ByteString.Char8 qualified as BS8
+import Data.ByteString.Lazy.Char8 qualified as BSL8
+import GHC.IO.Exception (IOErrorType(..), IOException(..))
+import Language.PureScript.Ide (handleCommand)
+import Language.PureScript.Ide.Command (Command(..), commandName)
+import Language.PureScript.Ide.Util (decodeT, displayTimeSpec, encodeT, logPerf, runLogger)
+import Language.PureScript.Ide.Error (IdeError(..))
+import Language.PureScript.Ide.State (updateCacheTimestamp)
+import Language.PureScript.Ide.Types (Ide, IdeConfiguration(..), IdeEnvironment(..), IdeLogLevel(..), emptyIdeState)
+import Network.Socket qualified as Network
+import Options.Applicative qualified as Opts
+import SharedCLI qualified
+import System.Directory (doesDirectoryExist, getCurrentDirectory, setCurrentDirectory)
+import System.FilePath ((</>))
+import System.IO (BufferMode(..), hClose, hFlush, hSetBuffering, hSetEncoding, utf8)
+import System.IO.Error (isEOFError)
 
 listenOnLocalhost :: Network.PortNumber -> IO Network.Socket
 listenOnLocalhost port = do
@@ -64,12 +60,15 @@
 data ServerOptions = ServerOptions
   { _serverDirectory  :: Maybe FilePath
   , _serverGlobs      :: [FilePath]
+  , _serverGlobsFromFile :: Maybe FilePath
+  , _serverGlobsExcluded :: [FilePath]
   , _serverOutputPath :: FilePath
   , _serverPort       :: Network.PortNumber
-  , _serverNoWatch    :: Bool
-  , _serverPolling    :: Bool
   , _serverLoglevel   :: IdeLogLevel
+  -- TODO(Christoph) Deprecated
   , _serverEditorMode :: Bool
+  , _serverPolling    :: Bool
+  , _serverNoWatch    :: Bool
   } deriving (Show)
 
 data ClientOptions = ClientOptions
@@ -114,7 +113,7 @@
     Opts.option Opts.auto (Opts.long "port" `mappend` Opts.short 'p' `mappend` Opts.value (4242 :: Integer))
 
   server :: ServerOptions -> IO ()
-  server opts'@(ServerOptions dir globs outputPath port noWatch polling logLevel editorMode) = do
+  server opts'@(ServerOptions dir globs globsFromFile globsExcluded outputPath port logLevel editorMode polling noWatch) = do
     when (logLevel == LogDebug || logLevel == LogAll)
       (putText "Parsed Options:" *> print opts')
     maybe (pure ()) setCurrentDirectory dir
@@ -122,37 +121,54 @@
     cwd <- getCurrentDirectory
     let fullOutputPath = cwd </> outputPath
 
+    when editorMode
+      (putText "The --editor-mode flag is deprecated and ignored. It's now the default behaviour and the flag will be removed in a future version")
+
+    when polling
+      (putText "The --polling flag is deprecated and ignored. purs ide no longer uses a file system watcher, instead it relies on its clients to notify it about updates and checks timestamps to invalidate itself")
+
+    when noWatch
+      (putText "The --no-watch flag is deprecated and ignored. purs ide no longer uses a file system watcher, instead it relies on its clients to notify it about updates and checks timestamps to invalidate itself")
+
     unlessM (doesDirectoryExist fullOutputPath) $ do
       putText "Your output directory didn't exist. This usually means you didn't compile your project yet."
       putText "psc-ide needs you to compile your project (for example by running pulp build)"
 
-    unless (noWatch || editorMode) $
-      void (forkFinally (watcher polling logLevel ideState fullOutputPath) print)
     let
       conf = IdeConfiguration
         { confLogLevel = logLevel
         , confOutputPath = outputPath
         , confGlobs = globs
-        , confEditorMode = editorMode
+        , confGlobsFromFile = globsFromFile
+        , confGlobsExclude = globsExcluded
         }
-    let env = IdeEnvironment {ideStateVar = ideState, ideConfiguration = conf}
+    ts <- newIORef Nothing
+    let
+      env = IdeEnvironment
+        { ideStateVar = ideState
+        , ideConfiguration = conf
+        , ideCacheDbTimestamp = ts
+        }
     startServer port env
 
   serverOptions :: Opts.Parser ServerOptions
   serverOptions =
     ServerOptions
       <$> optional (Opts.strOption (Opts.long "directory" `mappend` Opts.short 'd'))
-      <*> many (Opts.argument Opts.str (Opts.metavar "Source GLOBS..."))
+      <*> many SharedCLI.inputFile
+      <*> SharedCLI.globInputFile
+      <*> many SharedCLI.excludeFiles
       <*> Opts.strOption (Opts.long "output-directory" `mappend` Opts.value "output/")
       <*> (fromIntegral <$>
            Opts.option Opts.auto (Opts.long "port" `mappend` Opts.short 'p' `mappend` Opts.value (4242 :: Integer)))
-      <*> Opts.switch (Opts.long "no-watch")
-      <*> flipIfWindows (Opts.switch (Opts.long "polling"))
       <*> (parseLogLevel <$> Opts.strOption
            (Opts.long "log-level"
             `mappend` Opts.value ""
             `mappend` Opts.help "One of \"debug\", \"perf\", \"all\" or \"none\""))
+      -- TODO(Christoph): Deprecated
       <*> Opts.switch (Opts.long "editor-mode")
+      <*> Opts.switch (Opts.long "no-watch")
+      <*> Opts.switch (Opts.long "polling")
 
   parseLogLevel :: Text -> IdeLogLevel
   parseLogLevel s = case s of
@@ -162,10 +178,6 @@
     "none" -> LogNone
     _ -> LogDefault
 
-  -- polling is the default on Windows and the flag turns it off. See
-  -- #2209 and #2414 for explanations
-  flipIfWindows = map (if SysInfo.os == "mingw32" then not else identity)
-
 startServer :: Network.PortNumber -> IdeEnvironment -> IO ()
 startServer port env = Network.withSocketsDo $ do
   sock <- listenOnLocalhost port
@@ -178,30 +190,45 @@
         Left err -> $(logError) err
         Right (cmd, h) -> do
           case decodeT cmd of
-            Just cmd' -> do
+            Right cmd' -> do
               let message duration =
                     "Command "
                       <> commandName cmd'
                       <> " took "
                       <> displayTimeSpec duration
               logPerf message $ do
-                result <- runExceptT (handleCommand cmd')
+                result <- runExceptT $ do
+                  updateCacheTimestamp >>= \case
+                    Nothing -> pure ()
+                    Just (before, after) -> do
+                      -- If the cache db file was changed outside of the IDE
+                      -- we trigger a reset before processing the command
+                      $(logInfo) ("cachedb was changed from: " <> show before <> ", to: " <> show after)
+                      unless (isLoadAll cmd') $
+                        void (handleCommand Reset *> handleCommand (LoadSync []))
+                  handleCommand cmd'
                 liftIO $ catchGoneHandle $ BSL8.hPutStrLn h $ case result of
                   Right r  -> Aeson.encode r
                   Left err -> Aeson.encode err
               liftIO (hFlush stdout)
-            Nothing -> do
-              $(logError) ("Parsing the command failed. Command: " <> cmd)
+            Left err -> do
+              let errMsg = "Parsing the command failed with:\n" <> err <> "\nCommand: " <> cmd
+              $(logError) errMsg
               liftIO $ do
-                catchGoneHandle (T.hPutStrLn h (encodeT (GeneralError "Error parsing Command.")))
+                catchGoneHandle (T.hPutStrLn h (encodeT (GeneralError errMsg)))
                 hFlush stdout
           liftIO $ catchGoneHandle (hClose h)
 
+isLoadAll :: Command -> Bool
+isLoadAll = \case
+  Load [] -> True
+  _ -> False
+
 catchGoneHandle :: IO () -> IO ()
 catchGoneHandle =
   handle (\e -> case e of
     IOError { ioe_type = ResourceVanished } ->
-      putText ("[Error] psc-ide-server tried interact with the handle, but the connection was already gone.")
+      putText "[Error] psc-ide-server tried to interact with the handle, but the connection was already gone."
     _ -> throwIO e)
 
 acceptCommand
diff --git a/app/Command/Publish.hs b/app/Command/Publish.hs
--- a/app/Command/Publish.hs
+++ b/app/Command/Publish.hs
@@ -1,17 +1,17 @@
-{-# LANGUAGE OverloadedStrings #-}
-
 module Command.Publish (command) where
 
-import           Control.Monad.IO.Class (liftIO)
-import qualified Data.Aeson as A
-import qualified Data.ByteString.Lazy.Char8 as BL
-import           Data.Time.Clock (getCurrentTime)
-import           Data.Version (Version(..))
-import           Language.PureScript.Publish
-import           Language.PureScript.Publish.ErrorsWarnings
-import           Options.Applicative (Parser)
-import qualified Options.Applicative as Opts
+import Prelude
 
+import Control.Monad.IO.Class (liftIO)
+import Data.Aeson qualified as A
+import Data.ByteString.Lazy.Char8 qualified as BL
+import Data.Time.Clock (getCurrentTime)
+import Data.Version (Version(..))
+import Language.PureScript.Publish (PublishOptions(..), defaultPublishOptions, unsafePreparePackage, warn)
+import Language.PureScript.Publish.ErrorsWarnings (PackageWarning(..))
+import Options.Applicative (Parser)
+import Options.Applicative qualified as Opts
+
 data PublishOptionsCLI = PublishOptionsCLI
   { cliManifestPath :: FilePath
   , cliResolutionsPath :: FilePath
@@ -63,7 +63,7 @@
         opts
           { publishGetVersion = return ("0.0.0", Version [0,0,0] [])
           , publishGetTagTime = const (liftIO getCurrentTime)
-          , publishWorkingTreeDirty = warn DirtyWorkingTree_Warn
+          , publishWorkingTreeDirty = warn DirtyWorkingTreeWarn
           }
       else
         opts
diff --git a/app/Command/REPL.hs b/app/Command/REPL.hs
--- a/app/Command/REPL.hs
+++ b/app/Command/REPL.hs
@@ -1,71 +1,39 @@
-{-# LANGUAGE DataKinds #-}
 {-# LANGUAGE DoAndIfThenElse #-}
 {-# LANGUAGE GADTs #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE OverloadedStrings #-}
-{-# LANGUAGE PatternGuards #-}
-{-# LANGUAGE RecordWildCards #-}
-{-# LANGUAGE ScopedTypeVariables #-}
-{-# LANGUAGE TemplateHaskell #-}
-{-# LANGUAGE TupleSections #-}
 
 module Command.REPL (command) where
 
-import           Prelude ()
-import           Prelude.Compat
-import           Control.Applicative (many, (<|>))
-import           Control.Concurrent (forkIO)
-import           Control.Concurrent.MVar (MVar, newEmptyMVar, putMVar, takeMVar,
-                                         tryPutMVar)
-import           Control.Concurrent.STM (TVar, atomically, newTVarIO, writeTVar,
-                                        readTVarIO,
-                                        TChan, newBroadcastTChanIO, dupTChan,
-                                        readTChan, writeTChan)
-import           Control.Exception (fromException)
-import           Control.Monad
-import           Control.Monad.IO.Class (liftIO)
-import           Control.Monad.Trans.Class
-import           Control.Monad.Trans.Except (ExceptT(..), runExceptT)
-import           Control.Monad.Trans.State.Strict (StateT, evalStateT)
-import           Control.Monad.Trans.Reader (ReaderT, runReaderT)
-import           Data.FileEmbed (embedStringFile)
-import           Data.Foldable (for_)
-import           Data.String (IsString(..))
-import           Data.Text (Text, unpack)
-import           Data.Traversable (for)
-import qualified Language.PureScript as P
-import qualified Language.PureScript.Bundle as Bundle
-import qualified Language.PureScript.CST as CST
-import           Language.PureScript.Interactive
-import           Network.HTTP.Types.Header (hContentType, hCacheControl,
-                                            hPragma, hExpires)
-import           Network.HTTP.Types.Status (status200, status404, status503)
-import qualified Network.Wai as Wai
-import qualified Network.Wai.Handler.Warp as Warp
-import qualified Network.Wai.Handler.WebSockets as WS
-import qualified Network.WebSockets as WS
-import qualified Options.Applicative as Opts
-import           System.Console.Haskeline
-import           System.IO.UTF8 (readUTF8File)
-import           System.Exit
-import           System.Directory (doesFileExist, getCurrentDirectory)
-import           System.FilePath ((</>))
-import           System.FilePath.Glob (glob)
-import           System.Process (readProcessWithExitCode)
-import qualified Data.ByteString.Lazy.UTF8 as U
+import Prelude
+import Control.Applicative (many, (<|>))
+import Control.Monad (unless, when)
+import Control.Monad.Catch (MonadMask)
+import Control.Monad.IO.Class (liftIO, MonadIO)
+import Control.Monad.Trans.Class (MonadTrans(..))
+import Control.Monad.Trans.Except (ExceptT(..), runExceptT)
+import Control.Monad.Trans.State.Strict (StateT, evalStateT)
+import Control.Monad.Trans.Reader (ReaderT, runReaderT)
+import Data.Foldable (for_)
+import Language.PureScript qualified as P
+import Language.PureScript.CST qualified as CST
+import Language.PureScript.Glob (PSCGlobs(..), toInputGlobs, warnFileTypeNotFound)
+import Language.PureScript.Interactive
+import Options.Applicative qualified as Opts
+import SharedCLI qualified
+import System.Console.Haskeline (InputT, Settings(..), defaultSettings, getInputLine, handleInterrupt, outputStrLn, runInputT, setComplete, withInterrupt)
+import System.IO.UTF8 (readUTF8File)
+import System.Exit (ExitCode(..), exitFailure)
+import System.Directory (doesFileExist, getCurrentDirectory)
+import System.FilePath ((</>))
+import System.IO (hPutStrLn, stderr)
 
 -- | Command line options
 data PSCiOptions = PSCiOptions
   { psciInputGlob         :: [String]
+  , psciInputFromFile     :: Maybe String
+  , psciExclude           :: [String]
   , psciBackend           :: Backend
   }
 
-inputFile :: Opts.Parser FilePath
-inputFile = Opts.strArgument $
-     Opts.metavar "FILES"
-  <> Opts.help "Optional .purs files to load on start"
-
 nodePathOption :: Opts.Parser (Maybe FilePath)
 nodePathOption = Opts.optional . Opts.strOption $
      Opts.metavar "FILE"
@@ -85,7 +53,7 @@
 port = Opts.option Opts.auto $
      Opts.long "port"
   <> Opts.short 'p'
-  <> Opts.help "The web server port"
+  <> Opts.help "The browser REPL backend was removed in v0.15.0. Use https://try.purescript.org instead."
 
 backend :: Opts.Parser Backend
 backend =
@@ -93,11 +61,13 @@
   <|> (nodeBackend <$> nodePathOption <*> nodeFlagsOption)
 
 psciOptions :: Opts.Parser PSCiOptions
-psciOptions = PSCiOptions <$> many inputFile
+psciOptions = PSCiOptions <$> many SharedCLI.inputFile
+                          <*> SharedCLI.globInputFile
+                          <*> many SharedCLI.excludeFiles
                           <*> backend
 
 -- | Parses the input and returns either a command, or an error as a 'String'.
-getCommand :: forall m. MonadException m => InputT m (Either String [Command])
+getCommand :: forall m. (MonadIO m, MonadMask m) => InputT m (Either String [Command])
 getCommand = handleInterrupt (return (Right [])) $ do
   line <- withInterrupt $ getInputLine "> "
   case line of
@@ -105,29 +75,13 @@
     Just "" -> return (Right [])
     Just s  -> return (parseCommand s)
 
-pasteMode :: forall m. MonadException m => InputT m (Either String [Command])
+pasteMode :: forall m. (MonadIO m, MonadMask m) => InputT m (Either String [Command])
 pasteMode =
     parseCommand <$> go []
   where
     go :: [String] -> InputT m String
     go ls = maybe (return . unlines $ reverse ls) (go . (:ls)) =<< getInputLine "… "
 
--- | Make a JavaScript bundle for the browser.
-bundle :: IO (Either Bundle.ErrorMessage String)
-bundle = runExceptT $ do
-  inputFiles <- liftIO (glob (".psci_modules" </> "node_modules" </> "*" </> "*.js"))
-  input <- for inputFiles $ \filename -> do
-    js <- liftIO (readUTF8File filename)
-    mid <- Bundle.guessModuleIdentifier filename
-    length js `seq` return (mid, js)
-  Bundle.bundle input [] Nothing "PSCI"
-
-indexJS :: IsString string => string
-indexJS = $(embedStringFile "app/static/index.js")
-
-indexPage :: IsString string => string
-indexPage = $(embedStringFile "app/static/index.html")
-
 -- | All of the functions required to implement a PSCi backend
 data Backend = forall state. Backend
   { _backendSetup :: IO state
@@ -140,144 +94,13 @@
   -- ^ Shut down the backend
   }
 
--- | Commands which can be sent to the browser
-data BrowserCommand
-  = Eval (MVar String)
-  -- ^ Evaluate the latest JS
-  | Refresh
-  -- ^ Refresh the page
-
--- | State for the browser backend
-data BrowserState = BrowserState
-  { browserCommands       :: TChan BrowserCommand
-  -- ^ A channel which receives data when the compiled JS has
-  -- been updated
-  , browserShutdownNotice :: MVar ()
-  -- ^ An MVar which becomes full when the server should shut down
-  , browserIndexJS        :: TVar (Maybe String)
-  -- ^ A TVar holding the latest compiled JS
-  , browserBundleJS       :: TVar (Maybe String)
-  -- ^ A TVar holding the latest bundled JS
-  }
-
 browserBackend :: Int -> Backend
-browserBackend serverPort = Backend setup evaluate reload shutdown
+browserBackend _ = Backend setup mempty mempty mempty
   where
-    setup :: IO BrowserState
+    setup :: IO ()
     setup = do
-      shutdownVar <- newEmptyMVar
-      cmdChan <- newBroadcastTChanIO
-      indexJs <- newTVarIO Nothing
-      bundleJs <- newTVarIO Nothing
-
-      let
-        handleWebsocket :: WS.PendingConnection -> IO ()
-        handleWebsocket pending = do
-          conn <- WS.acceptRequest pending
-          -- Fork a thread to keep the connection alive
-          WS.forkPingThread conn 10
-          -- Clone the command channel
-          cmdChanCopy <- atomically $ dupTChan cmdChan
-          -- Listen for commands
-          forever $ do
-            cmd <- atomically $ readTChan cmdChanCopy
-            case cmd of
-              Eval resultVar -> void $ do
-                WS.sendTextData conn ("eval" :: Text)
-                result <- WS.receiveData conn
-                -- With many connected clients, all but one of
-                -- these attempts will fail.
-                tryPutMVar resultVar (unpack result)
-              Refresh ->
-                WS.sendTextData conn ("reload" :: Text)
-
-        shutdownHandler :: IO () -> IO ()
-        shutdownHandler stopServer = void . forkIO $ do
-          () <- takeMVar shutdownVar
-          stopServer
-
-        onException :: Maybe Wai.Request -> SomeException -> IO ()
-        onException req ex
-          | Just (_ :: WS.ConnectionException) <- fromException ex
-          = return () -- ignore websocket disconnects
-          | otherwise = Warp.defaultOnException req ex
-
-        staticServer :: Wai.Application
-        staticServer req respond =
-          case Wai.pathInfo req of
-            [] ->
-              respond $ Wai.responseLBS status200
-                                        [(hContentType, "text/html; charset=UTF-8")]
-                                        (U.fromString indexPage)
-            ["js", "index.js"] ->
-              respond $ Wai.responseLBS status200
-                                        [(hContentType, "application/javascript")]
-                                        (U.fromString indexJS)
-            ["js", "latest.js"] -> do
-              may <- readTVarIO indexJs
-              case may of
-                Nothing ->
-                  respond $ Wai.responseLBS status503 [] "Service not available"
-                Just js ->
-                  respond $ Wai.responseLBS status200
-                                            [ (hContentType, "application/javascript")
-                                            , (hCacheControl, "no-cache, no-store, must-revalidate")
-                                            , (hPragma, "no-cache")
-                                            , (hExpires, "0")
-                                            ]
-                                            (U.fromString js)
-            ["js", "bundle.js"] -> do
-              may <- readTVarIO bundleJs
-              case may of
-                Nothing ->
-                  respond $ Wai.responseLBS status503 [] "Service not available"
-                Just js ->
-                  respond $ Wai.responseLBS status200
-                                            [ (hContentType, "application/javascript")]
-                                            (U.fromString js)
-            _ -> respond $ Wai.responseLBS status404 [] "Not found"
-
-      let browserState = BrowserState cmdChan shutdownVar indexJs bundleJs
-      createBundle browserState
-
-      putStrLn $ "Serving http://localhost:" <> show serverPort <> "/. Waiting for connections..."
-      _ <- forkIO $ Warp.runSettings ( Warp.setInstallShutdownHandler shutdownHandler
-                                     . Warp.setPort serverPort
-                                     . Warp.setOnException onException
-                                     $ Warp.defaultSettings
-                                     ) $
-                      WS.websocketsOr WS.defaultConnectionOptions
-                                      handleWebsocket
-                                      staticServer
-      return browserState
-
-    createBundle :: BrowserState -> IO ()
-    createBundle state = do
-      putStrLn "Bundling JavaScript..."
-      ejs <- bundle
-      case ejs of
-        Left err -> do
-          putStrLn (unlines (Bundle.printErrorMessage err))
-          exitFailure
-        Right js ->
-          atomically $ writeTVar (browserBundleJS state) (Just js)
-
-    reload :: BrowserState -> IO ()
-    reload state = do
-      createBundle state
-      atomically $ writeTChan (browserCommands state) Refresh
-
-    shutdown :: BrowserState -> IO ()
-    shutdown state = putMVar (browserShutdownNotice state) ()
-
-    evaluate :: BrowserState -> String -> IO ()
-    evaluate state js = liftIO $ do
-      resultVar <- newEmptyMVar
-      atomically $ do
-        writeTVar (browserIndexJS state) (Just js)
-        writeTChan (browserCommands state) (Eval resultVar)
-      result <- takeMVar resultVar
-      putStrLn result
+      hPutStrLn stderr "The browser REPL backend was removed in v0.15.0. Use TryPureScript instead: https://try.purescript.org"
+      exitFailure
 
 nodeBackend :: Maybe FilePath -> [String] -> Backend
 nodeBackend nodePath nodeArgs = Backend setup eval reload shutdown
@@ -287,13 +110,12 @@
 
     eval :: () -> String -> IO ()
     eval _ _ = do
-      writeFile indexFile "require('$PSCI')['$main']();"
-      process <- maybe findNodeProcess (pure . pure) nodePath
-      result <- traverse (\node -> readProcessWithExitCode node (nodeArgs ++ [indexFile]) "") process
+      writeFile indexFile "import('./$PSCI/index.js').then(({ $main }) => $main());"
+      result <- readNodeProcessWithExitCode nodePath (nodeArgs ++ [indexFile]) ""
       case result of
-        Just (ExitSuccess, out, _)   -> putStrLn out
-        Just (ExitFailure _, _, err) -> putStrLn err
-        Nothing                      -> putStrLn "Could not find node.js. Do you have node.js installed and available in your PATH?"
+        Right (ExitSuccess, out, _)   -> putStrLn out
+        Right (ExitFailure _, _, err) -> putStrLn err
+        Left err                      -> putStrLn err
 
     reload :: () -> IO ()
     reload _ = return ()
@@ -310,7 +132,12 @@
   where
     loop :: PSCiOptions -> IO ()
     loop PSCiOptions{..} = do
-        inputFiles <- concat <$> traverse glob psciInputGlob
+        inputFiles <- toInputGlobs $ PSCGlobs
+          { pscInputGlobs = psciInputGlob
+          , pscInputGlobsFromFile = psciInputFromFile
+          , pscExcludeGlobs = psciExclude
+          , pscWarnFileTypeNotFound = warnFileTypeNotFound "repl"
+          }
         e <- runExceptT $ do
           modules <- ExceptT (loadAllModules inputFiles)
           when (null modules) . liftIO $ do
diff --git a/app/Main.hs b/app/Main.hs
--- a/app/Main.hs
+++ b/app/Main.hs
@@ -1,33 +1,31 @@
-{-# LANGUAGE DeriveAnyClass #-}
-{-# LANGUAGE DeriveGeneric #-}
-{-# LANGUAGE NamedFieldPuns #-}
-{-# LANGUAGE OverloadedStrings #-}
-{-# LANGUAGE RecordWildCards #-}
-{-# LANGUAGE TupleSections #-}
-
 module Main where
 
-import qualified Command.Bundle as Bundle
-import qualified Command.Compile as Compile
-import qualified Command.Docs as Docs
-import qualified Command.Hierarchy as Hierarchy
-import qualified Command.Ide as Ide
-import qualified Command.Publish as Publish
-import qualified Command.REPL as REPL
-import           Data.Foldable (fold)
-import qualified Options.Applicative as Opts
-import           System.Environment (getArgs)
-import qualified System.IO as IO
-import qualified Text.PrettyPrint.ANSI.Leijen as Doc
-import           Version (versionString)
+import Prelude
 
+import Command.Bundle qualified as Bundle
+import Command.Compile qualified as Compile
+import Command.Docs qualified as Docs
+import Command.Graph qualified as Graph
+import Command.Hierarchy qualified as Hierarchy
+import Command.Ide qualified as Ide
+import Command.Publish qualified as Publish
+import Command.REPL qualified as REPL
+import Control.Monad (join)
+import Data.Foldable (fold)
+import Options.Applicative qualified as Opts
+import System.Environment (getArgs)
+import System.IO qualified as IO
+import Text.PrettyPrint.ANSI.Leijen qualified as Doc
+import Version (versionString)
 
+
 main :: IO ()
 main = do
     IO.hSetEncoding IO.stdout IO.utf8
     IO.hSetEncoding IO.stderr IO.utf8
-    cmd <- Opts.handleParseResult . execParserPure opts =<< getArgs
-    cmd
+    IO.hSetBuffering IO.stdout IO.LineBuffering
+    IO.hSetBuffering IO.stderr IO.LineBuffering
+    join $ Opts.handleParseResult . execParserPure opts =<< getArgs
   where
     opts        = Opts.info (versionInfo <*> Opts.helper <*> commands) infoModList
     infoModList = Opts.fullDesc <> headerInfo <> footerInfo
@@ -50,7 +48,7 @@
     -- | Displays full command help when invoked with no arguments.
     execParserPure :: Opts.ParserInfo a -> [String] -> Opts.ParserResult a
     execParserPure pinfo [] = Opts.Failure $
-      Opts.parserFailure Opts.defaultPrefs pinfo Opts.ShowHelpText mempty
+      Opts.parserFailure Opts.defaultPrefs pinfo (Opts.ShowHelpText Nothing) mempty
     execParserPure pinfo args = Opts.execParserPure Opts.defaultPrefs pinfo args
 
     versionInfo :: Opts.Parser (a -> a)
@@ -62,13 +60,16 @@
       (Opts.subparser . fold)
         [ Opts.command "bundle"
             (Opts.info Bundle.command
-              (Opts.progDesc "Bundle compiled PureScript modules for the browser"))
+              (Opts.progDesc "This command was removed in v0.15.0. Run this command for migration information."))
         , Opts.command "compile"
             (Opts.info Compile.command
               (Opts.progDesc "Compile PureScript source files"))
         , Opts.command "docs"
             (Opts.info Docs.command
               (Opts.progDesc "Generate documentation from PureScript source files in a variety of formats, including Markdown and HTML" <> Docs.infoModList))
+        , Opts.command "graph"
+            (Opts.info Graph.command
+              (Opts.progDesc "Module dependency graph"))
         , Opts.command "hierarchy"
             (Opts.info Hierarchy.command
               (Opts.progDesc "Generate a GraphViz directed graph of PureScript type classes"))
diff --git a/app/SharedCLI.hs b/app/SharedCLI.hs
new file mode 100644
--- /dev/null
+++ b/app/SharedCLI.hs
@@ -0,0 +1,24 @@
+module SharedCLI where
+
+import Prelude
+
+import Options.Applicative qualified as Opts
+
+inputFile :: Opts.Parser FilePath
+inputFile = Opts.strArgument $
+     Opts.metavar "GLOB"
+  <> Opts.help "A glob for input .purs file(s)."
+
+globInputFile :: Opts.Parser (Maybe FilePath)
+globInputFile = Opts.optional $ Opts.strOption $
+     Opts.long "source-globs-file"
+  <> Opts.metavar "FILE"
+  <> Opts.help "A file containing a line-separated list of input .purs globs."
+
+excludeFiles :: Opts.Parser FilePath
+excludeFiles = Opts.strOption $
+     Opts.short 'x'
+  <> Opts.long "exclude-files"
+  <> Opts.metavar "GLOB"
+  <> Opts.help "A glob of .purs files to exclude from the input .purs files."
+
diff --git a/app/Version.hs b/app/Version.hs
--- a/app/Version.hs
+++ b/app/Version.hs
@@ -3,21 +3,31 @@
 
 module Version where
 
+import Prelude
+
 import Data.Version (showVersion)
 import Paths_purescript as Paths
 
 #ifndef RELEASE
-import qualified Development.GitRev as GitRev
+import Development.GitRev qualified as GitRev
 #endif
 
+-- Unfortunately, Cabal doesn't support prerelease identifiers on versions. To
+-- avoid misleading users who run `purs --version`, we manually add the
+-- prerelease identifier here (if any). When releasing a proper version, simply
+-- set this to an empty string.
+prerelease :: String
+prerelease = ""
+
 versionString :: String
-versionString = showVersion Paths.version ++ extra
+versionString = showVersion Paths.version ++ prerelease ++ extra
   where
 #ifdef RELEASE
   extra = ""
 #else
   extra = " [development build; commit: " ++ $(GitRev.gitHash) ++ dirty ++ "]"
-  dirty
-    | $(GitRev.gitDirty) = " DIRTY"
-    | otherwise = ""
+  dirty =
+    if $(GitRev.gitDirty)
+      then " DIRTY"
+      else ""
 #endif
diff --git a/app/static/index.html b/app/static/index.html
deleted file mode 100644
--- a/app/static/index.html
+++ /dev/null
@@ -1,10 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-  <title>PureScript Interactive</title>
-  <script src='js/bundle.js'></script>
-  <script src='js/index.js'></script>
-</head>
-<body>
-</body>
-</html>
diff --git a/app/static/index.js b/app/static/index.js
deleted file mode 100644
--- a/app/static/index.js
+++ /dev/null
@@ -1,63 +0,0 @@
-var get = function get(uri, callback, onError) {
-    var request = new XMLHttpRequest();
-    request.addEventListener('load', function() {
-        callback(request.responseText);
-    });
-    request.addEventListener('error', onError);
-    request.open('GET', uri);
-    request.send();
-};
-var evaluate = function evaluate(js) {
-    var buffer = [];
-    // Save the old console.log function
-    var oldLog = console.log;
-    console.log = function(s) {
-        // Push log output into a temporary buffer
-        // which will be returned to PSCi.
-        buffer.push(s);
-    };
-    // Replace any require(...) statements with lookups on the PSCI object.
-    var replaced = js.replace(/require\("[^"]*"\)/g, function(s) {
-        return "PSCI['" + s.split('/')[1] + "']";
-    });
-    // Wrap the module and evaluate it.
-    var wrapped =
-      [ 'var module = {};'
-      , '(function(module) {'
-      , replaced
-      , '})(module);'
-      , 'return module.exports["$main"] && module.exports["$main"]();'
-    ].join('\n');
-    new Function(wrapped)();
-    // Restore console.log
-    console.log = oldLog;
-    return buffer.join('\n');
-};
-window.onload = function() {
-    var socket = new WebSocket('ws://localhost:' + location.port);
-    var evalNext = function reload() {
-        get('js/latest.js', function(response) {
-            try {
-                var result = evaluate(response);
-                socket.send(result);
-            } catch (ex) {
-                socket.send(ex.stack);
-            }
-        }, function(err) {
-            socket.send('Error sending JavaScript');
-        });
-    };
-    socket.onopen = function() {
-        console.log('Connected');
-        socket.onmessage = function(event) {
-            switch (event.data) {
-                case 'eval':
-                    evalNext();
-                    break;
-                case 'reload':
-                    location.reload();
-                    break;
-            }
-        };
-    };
-};
diff --git a/app/static/pursuit.css b/app/static/pursuit.css
--- a/app/static/pursuit.css
+++ b/app/static/pursuit.css
@@ -49,6 +49,9 @@
  * ========================================================================== */
 /* Section: Document Styles
  * ========================================================================== */
+:root {
+  color-scheme: light dark;
+}
 html {
   box-sizing: border-box;
   /* This overflow rule prevents everything from shifting slightly to the side
@@ -63,11 +66,17 @@
 }
 body {
   background-color: #ffffff;
-  color: #000;
+  color: #000000;
   font-family: "Roboto", sans-serif;
   font-size: 87.5%;
   line-height: 1.563;
 }
+@media (prefers-color-scheme: dark) {
+  body {
+    background-color: #141417;
+    color: #dedede;
+  }
+}
 @media (min-width: 38em) {
   body {
     font-size: 100%;
@@ -158,6 +167,12 @@
   background-color: #1d222d;
   color: #f0f0f0;
 }
+@media (prefers-color-scheme: dark) {
+  .footer {
+    background-color: #1d222d;
+    color: #f0f0f0;
+  }
+}
 .footer * {
   margin-bottom: 0;
 }
@@ -169,16 +184,32 @@
 :target {
   background-color: #f1f5f9;
 }
+@media (prefers-color-scheme: dark) {
+  :target {
+    background-color: #232327;
+  }
+}
 a,
 a:visited {
   color: #c4953a;
   text-decoration: none;
   font-weight: bold;
 }
+@media (prefers-color-scheme: dark) {
+  a,
+  a:visited {
+    color: #d8ac55;
+  }
+}
 a:hover {
   color: #7b5904;
   text-decoration: none;
 }
+@media (prefers-color-scheme: dark) {
+  a:hover {
+    color: #f0dcab;
+  }
+}
 code,
 pre {
   background-color: #f1f5f9;
@@ -187,10 +218,23 @@
   font-family: "Roboto Mono", monospace;
   font-size: 87.5%;
 }
+@media (prefers-color-scheme: dark) {
+  code,
+  pre {
+    background-color: #232327;
+    color: #c1d3da;
+  }
+}
 :target code,
 :target pre {
   background-color: #dfe8f1;
 }
+@media (prefers-color-scheme: dark) {
+  :target code,
+  :target pre {
+    background-color: #2f2f34;
+  }
+}
 code {
   padding: 0.2em 0;
   margin: 0;
@@ -212,6 +256,11 @@
 a:hover > code {
   color: #c4953a;
 }
+@media (prefers-color-scheme: dark) {
+  a:hover > code {
+    color: #d8ac55;
+  }
+}
 pre {
   margin-top: 0;
   margin-bottom: 0;
@@ -255,14 +304,14 @@
 h2 {
   font-size: 1.953em;
   font-weight: normal;
-  line-height: 1.250;
+  line-height: 1.25;
   margin-top: 3.052rem;
   margin-bottom: 1rem;
 }
 h3 {
   font-size: 1.563em;
   font-weight: normal;
-  line-height: 1.250;
+  line-height: 1.25;
   margin-top: 2.441rem;
   margin-bottom: 1rem;
 }
@@ -285,6 +334,11 @@
   height: 1px;
   background-color: #cccccc;
 }
+@media (prefers-color-scheme: dark) {
+  hr {
+    background-color: #43434e;
+  }
+}
 img {
   border-style: none;
   max-width: 100%;
@@ -302,6 +356,11 @@
   margin-bottom: 1rem;
   width: 100%;
 }
+@media (prefers-color-scheme: dark) {
+  table {
+    border-bottom-color: #43434e;
+  }
+}
 td,
 th {
   text-align: left;
@@ -310,6 +369,11 @@
 td {
   border-top: 1px solid #cccccc;
 }
+@media (prefers-color-scheme: dark) {
+  td {
+    border-top-color: #43434e;
+  }
+}
 td:first-child,
 th:first-child {
   padding-left: 0;
@@ -326,7 +390,7 @@
 }
 ul li {
   position: relative;
-  padding-left: 1.250em;
+  padding-left: 1.25em;
 }
 ul li::before {
   position: absolute;
@@ -334,8 +398,13 @@
   content: "–";
   display: inline-block;
   margin-left: -1.25em;
-  width: 1.250em;
+  width: 1.25em;
 }
+@media (prefers-color-scheme: dark) {
+  ul li::before {
+    color: #a0a0a0;
+  }
+}
 /* Tying this tightly to ul at the moment because it's a slight variation thereof */
 ul.ul--search li::before {
   content: "⚲";
@@ -345,7 +414,7 @@
 ol {
   margin-top: 1rem;
   margin-bottom: 1rem;
-  padding-left: 1.250em;
+  padding-left: 1.25em;
 }
 ol li {
   position: relative;
@@ -359,9 +428,9 @@
   position: relative;
   top: -0.1em;
   display: inline-block;
-  background-color: #000;
+  background-color: #000000;
   border-radius: 1.3em;
-  color: #fff;
+  color: #ffffff;
   font-size: 77%;
   font-weight: bold;
   line-height: 1.563;
@@ -369,10 +438,21 @@
   height: 1.5em;
   width: 1.5em;
 }
+@media (prefers-color-scheme: dark) {
+  .badge {
+    background-color: #dedede;
+    color: #141417;
+  }
+}
 .badge.badge--package {
   background-color: #c4953a;
   letter-spacing: -0.1em;
 }
+@media (prefers-color-scheme: dark) {
+  .badge.badge--package {
+    background-color: #d8ac55;
+  }
+}
 .badge.badge--module {
   background-color: #75B134;
 }
@@ -396,22 +476,69 @@
   left: -0.8em;
   color: #bababa;
 }
+@media (prefers-color-scheme: dark) {
+  .decl__anchor,
+  .decl__anchor:visited {
+    color: #878787;
+  }
+}
 .decl__anchor:hover {
   color: #c4953a;
 }
+@media (prefers-color-scheme: dark) {
+  .decl__anchor:hover {
+    color: #d8ac55;
+  }
+}
 .decl__signature {
   background-color: transparent;
   border-radius: 0;
   border-top: 1px solid #cccccc;
   border-bottom: 1px solid #cccccc;
-  padding: 0.328em 0;
+  padding: 0;
 }
+@media (prefers-color-scheme: dark) {
+  .decl__signature {
+    border-top-color: #43434e;
+    border-bottom-color: #43434e;
+  }
+}
 .decl__signature code {
   display: block;
+  padding: 0.328em 0;
   padding-left: 2.441em;
   text-indent: -2.441em;
   white-space: normal;
 }
+.decl__role {
+  font-family: "Roboto", sans-serif;
+  font-style: italic;
+  font-weight: normal;
+}
+/* See https://stackoverflow.com/a/32162038
+   Content licensed under CC BY-SA 3.0
+*/
+.decl__role_hover[title] {
+  /* Remove line that appears under abbr element */
+  border-bottom: none;
+  text-decoration: none;
+  /* Ensure cursor doesn't change to question mark */
+  cursor: inherit;
+}
+.decl__role_nominal::after {
+  content: "nominal";
+}
+.decl__role_phantom::after {
+  content: "phantom";
+}
+.decl__kind {
+  border-bottom: 1px solid #cccccc;
+}
+@media (prefers-color-scheme: dark) {
+  .decl__kind {
+    border-bottom-color: #43434e;
+  }
+}
 :target .decl__signature,
 :target .decl__signature code {
   /* We want the background to be transparent, even when the parent is a target */
@@ -419,8 +546,14 @@
 }
 .decl__body .keyword,
 .decl__body .syntax {
-  color: #0B71B4;
+  color: #0b71b4;
 }
+@media (prefers-color-scheme: dark) {
+  .decl__body .keyword,
+  .decl__body .syntax {
+    color: #3796d5;
+  }
+}
 .decl__child_comments {
   margin-top: 1rem;
   margin-bottom: 1rem;
@@ -440,12 +573,22 @@
   font-size: 0.8em;
   line-height: 1;
 }
+@media (prefers-color-scheme: dark) {
+  .deplink__version {
+    color: #a0a0a0;
+  }
+}
 /* Component: Grouped List
  * -------------------------------------------------------------------------- */
 .grouped-list {
   border-top: 1px solid #cccccc;
   margin: 0 0 2.44em 0;
 }
+@media (prefers-color-scheme: dark) {
+  .grouped-list {
+    border-top-color: #43434e;
+  }
+}
 .grouped-list__title {
   color: #666666;
   font-size: 0.8em;
@@ -454,6 +597,11 @@
   margin: 0.8em 0 -0.1em 0;
   text-transform: uppercase;
 }
+@media (prefers-color-scheme: dark) {
+  .grouped-list__title {
+    border-top-color: #a0a0a0;
+  }
+}
 .grouped-list__item {
   margin: 0;
 }
@@ -468,10 +616,22 @@
   background-color: #fff0f0;
   border-color: #c85050;
 }
+@media (prefers-color-scheme: dark) {
+  .message.message--error {
+    background-color: #6b0e0e;
+    border-color: #c85050;
+  }
+}
 .message.message--not-available {
   background-color: #f0f096;
   border-color: #e3e33d;
 }
+@media (prefers-color-scheme: dark) {
+  .message.message--not-available {
+    background-color: #56560b;
+    border-color: #b0b017;
+  }
+}
 /* Component: Multi Col
  * Multiple columns side by side
  * -------------------------------------------------------------------------- */
@@ -523,6 +683,11 @@
   text-transform: uppercase;
   z-index: 1;
 }
+@media (prefers-color-scheme: dark) {
+  .page-title__label {
+    color: #a0a0a0;
+  }
+}
 /* Component: Top Banner
  * -------------------------------------------------------------------------- */
 .top-banner {
@@ -530,6 +695,12 @@
   color: #f0f0f0;
   font-weight: normal;
 }
+@media (prefers-color-scheme: dark) {
+  .top-banner {
+    background-color: #1d222d;
+    color: #f0f0f0;
+  }
+}
 .top-banner__logo,
 .top-banner__logo:visited {
   float: left;
@@ -539,6 +710,12 @@
   line-height: 90px;
   margin: 0;
 }
+@media (prefers-color-scheme: dark) {
+  .top-banner__logo,
+  .top-banner__logo:visited {
+    color: #f0f0f0;
+  }
+}
 .top-banner__logo:hover {
   color: #c4953a;
   text-decoration: none;
@@ -549,12 +726,20 @@
 .top-banner__form input {
   border: 1px solid #1d222d;
   border-radius: 3px;
+  background-color: #ffffff;
   color: #1d222d;
   font-weight: 300;
   line-height: 2;
   padding: 0.21em 0.512em;
   width: 100%;
 }
+@media (prefers-color-scheme: dark) {
+  .top-banner__form input {
+    border-color: #1d222d;
+    background-color: #141417;
+    color: #dedede;
+  }
+}
 .top-banner__actions {
   float: right;
   text-align: right;
@@ -572,9 +757,20 @@
 .top-banner__actions__item a:visited {
   color: #f0f0f0;
 }
+@media (prefers-color-scheme: dark) {
+  .top-banner__actions__item a,
+  .top-banner__actions__item a:visited {
+    color: #f0f0f0;
+  }
+}
 .top-banner__actions__item a:hover {
   color: #c4953a;
 }
+@media (prefers-color-scheme: dark) {
+  .top-banner__actions__item a:hover {
+    color: #d8ac55;
+  }
+}
 @media (min-width: 38em) {
   .top-banner__logo {
     float: left;
@@ -616,6 +812,12 @@
   border-bottom: 1px solid #cccccc;
   padding: 0.328em 0;
 }
+@media (prefers-color-scheme: dark) {
+  .result__signature {
+    border-top-color: #43434e;
+    border-bottom-color: #43434e;
+  }
+}
 .result__signature code {
   display: block;
   padding-left: 2.441em;
@@ -682,6 +884,11 @@
   color: #777;
   border-left: 0.25em solid #ddd;
 }
+@media (prefers-color-scheme: dark) {
+  .markdown-body blockquote {
+    border-left-color: #444;
+  }
+}
 .markdown-body blockquote > :first-child {
   margin-top: 0;
 }
@@ -695,6 +902,11 @@
 .markdown-body .pl-k {
   /* Keyword */
   color: #a0a0a0;
+}
+@media (prefers-color-scheme: dark) {
+  .markdown-body .pl-k {
+    color: #676767;
+  }
 }
 .markdown-body .pl-c1,
 .markdown-body .pl-en {
diff --git a/app/static/pursuit.less b/app/static/pursuit.less
--- a/app/static/pursuit.less
+++ b/app/static/pursuit.less
@@ -49,9 +49,9 @@
 /* Section: Variables
  * ========================================================================== */
 @background: rgb(255, 255, 255);
+@foreground: rgb(0, 0, 0);
 @banner_background: rgb(29, 34, 45);
-@package_banner_background: lighten(@banner_background, 30%);
-@dark_foreground: rgb(240, 240, 240);
+@dim_foreground: rgb(240, 240, 240);
 @link: rgb(196, 149, 58);
 @link_active: rgb(123, 89, 4);
 @error_background: rgb(255, 240, 240);
@@ -59,12 +59,32 @@
 @not_available_background: rgb(240, 240, 150);
 @code_foreground: rgb(25, 74, 91);
 @code_background: rgb(241, 245, 249);
-@light_glyph: rgb(160, 160, 160);
-@light_type: rgb(102, 102, 102);
+@dim_glyph: rgb(160, 160, 160);
+@dim_type: rgb(102, 102, 102);
+@keyword: rgb(11, 113, 180);
 
+@dark_background: rgb(20, 20, 23);
+@dark_foreground: rgb(222, 222, 222);
+@dark_banner_background: rgb(29, 34, 45);
+@dark_dim_foreground: rgb(240, 240, 240);
+@dark_link: rgb(216, 172, 85);
+@dark_link_active: rgb(240, 220, 171);
+@dark_error_background: rgb(107, 14, 14);
+@dark_error_border: rgb(200, 80, 80);
+@dark_not_available_background: rgb(86, 86, 11);
+@dark_code_foreground: rgb(193, 211, 218);
+@dark_code_background: rgb(35, 35, 39);
+@dark_dim_glyph: rgb(160, 160, 160);
+@dark_dim_type: rgb(160, 160, 160);
+@dark_keyword: rgb(55, 150, 213);
+
 /* Section: Document Styles
  * ========================================================================== */
 
+:root {
+  color-scheme: light dark;
+}
+
 html {
   box-sizing: border-box;
 
@@ -80,10 +100,15 @@
 
 body {
   background-color: @background;
-  color: #000;
+  color: @foreground;
   font-family: "Roboto", sans-serif;
   font-size: 87.5%;
   line-height: 1.563;
+
+  @media (prefers-color-scheme: dark) {
+    background-color: @dark_background;
+    color: @dark_foreground;
+  }
 }
 
 @media (min-width: 38em) {
@@ -193,7 +218,12 @@
   width: 100%;
   text-align: center;
   background-color: @banner_background;
-  color: @dark_foreground;
+  color: @dim_foreground;
+
+  @media (prefers-color-scheme: dark) {
+    background-color: @dark_banner_background;
+    color: @dark_dim_foreground;
+  }
 }
 
 .footer * {
@@ -209,17 +239,29 @@
 
 :target {
   background-color: @code_background;
+
+  @media (prefers-color-scheme: dark) {
+    background-color: @dark_code_background;
+  }
 }
 
 a, a:visited {
   color: @link;
   text-decoration: none;
   font-weight: bold;
+
+  @media (prefers-color-scheme: dark) {
+    color: @dark_link;
+  }
 }
 
 a:hover {
   color: @link_active;
   text-decoration: none;
+
+  @media (prefers-color-scheme: dark) {
+    color: @dark_link_active;
+  }
 }
 
 code, pre {
@@ -228,11 +270,20 @@
   color: @code_foreground;
   font-family: "Roboto Mono", monospace;
   font-size: 87.5%;
+
+  @media (prefers-color-scheme: dark) {
+    background-color: @dark_code_background;
+    color: @dark_code_foreground;
+  }
 }
 
 :target code,
 :target pre {
   background-color: darken(@code_background, 5%);
+
+  @media (prefers-color-scheme: dark) {
+    background-color: lighten(@dark_code_background, 5%);
+  }
 }
 
 code {
@@ -259,6 +310,10 @@
 
 a:hover > code {
   color: @link;
+
+  @media (prefers-color-scheme: dark) {
+    color: @dark_link;
+  }
 }
 
 pre {
@@ -341,6 +396,10 @@
   border: none;
   height: 1px;
   background-color: darken(@background, 20%);
+
+  @media (prefers-color-scheme: dark) {
+    background-color: lighten(@dark_background, 20%);
+  }
 }
 
 img {
@@ -361,6 +420,10 @@
   margin-top: 1rem;
   margin-bottom: 1rem;
   width: 100%;
+
+  @media (prefers-color-scheme: dark) {
+    border-bottom-color: lighten(@dark_background, 20%);
+  }
 }
 
 td, th {
@@ -370,6 +433,10 @@
 
 td {
   border-top: 1px solid darken(@background, 20%);
+
+  @media (prefers-color-scheme: dark) {
+    border-top-color: lighten(@dark_background, 20%);
+  }
 }
 
 td:first-child, th:first-child {
@@ -394,11 +461,15 @@
 
 ul li::before {
   position: absolute;
-  color: @light_glyph;
+  color: @dim_glyph;
   content: "–";
   display: inline-block;
   margin-left: -1.250em;
   width: 1.250em;
+
+  @media (prefers-color-scheme: dark) {
+    color: @dark_dim_glyph;
+  }
 }
 
 /* Tying this tightly to ul at the moment because it's a slight variation thereof */
@@ -430,20 +501,29 @@
   position: relative;
   top: -0.1em;
   display: inline-block;
-  background-color: #000;
+  background-color: @foreground;
   border-radius: 1.3em;
-  color: #fff;
+  color: @background;
   font-size: 77%;
   font-weight: bold;
   line-height: 1.563;
   text-align: center;
   height: 1.5em;
   width: 1.5em;
+
+  @media (prefers-color-scheme: dark) {
+    background-color: @dark_foreground;
+    color: @dark_background;
+  }
 }
 
 .badge.badge--package {
   background-color: @link;
   letter-spacing: -0.1em;
+
+  @media (prefers-color-scheme: dark) {
+    background-color: @dark_link;
+  }
 }
 
 .badge.badge--module {
@@ -473,11 +553,19 @@
 .decl__anchor, .decl__anchor:visited {
   position: absolute;
   left: -0.8em;
-  color: lighten(@light_glyph, 10%);
+  color: lighten(@dim_glyph, 10%);
+
+  @media (prefers-color-scheme: dark) {
+    color: darken(@dark_dim_glyph, 10%);
+  }
 }
 
 .decl__anchor:hover {
   color: @link;
+
+  @media (prefers-color-scheme: dark) {
+    color: @dark_link;
+  }
 }
 
 .decl__signature {
@@ -485,16 +573,56 @@
   border-radius: 0;
   border-top: 1px solid darken(@background, 20%);
   border-bottom: 1px solid darken(@background, 20%);
-  padding: 0.328em 0;
+  padding: 0;
+
+  @media (prefers-color-scheme: dark) {
+    border-top-color: lighten(@dark_background, 20%);
+    border-bottom-color: lighten(@dark_background, 20%);
+  }
 }
 
 .decl__signature code {
   display: block;
+  padding: 0.328em 0;
   padding-left: 2.441em;
   text-indent: -2.441em;
   white-space: normal;
 }
 
+.decl__role {
+  font-family: "Roboto", sans-serif;
+  font-style: italic;
+  font-weight: normal;
+}
+
+/* See https://stackoverflow.com/a/32162038
+   Content licensed under CC BY-SA 3.0
+*/
+.decl__role_hover[title] {
+  /* Remove line that appears under abbr element */
+  border-bottom: none;
+  text-decoration: none;
+
+  /* Ensure cursor doesn't change to question mark */
+  cursor: inherit;
+}
+
+.decl__role_nominal::after {
+  content: "nominal";
+}
+
+.decl__role_phantom::after {
+  content: "phantom";
+}
+
+.decl__kind {
+  border-bottom: 1px solid darken(@background, 20%);
+
+  @media (prefers-color-scheme: dark) {
+    border-bottom-color: lighten(@dark_background, 20%);
+  }
+}
+
 :target .decl__signature,
 :target .decl__signature code {
   /* We want the background to be transparent, even when the parent is a target */
@@ -503,7 +631,11 @@
 
 .decl__body .keyword,
 .decl__body .syntax {
-  color: #0B71B4;
+  color: @keyword;
+
+  @media (prefers-color-scheme: dark) {
+    color: @dark_keyword;
+  }
 }
 
 .decl__child_comments {
@@ -522,10 +654,14 @@
 }
 
 .deplink__version {
-  color: @light_type;
+  color: @dim_type;
   display: inline-block;
   font-size: 0.8em;
   line-height: 1;
+
+  @media (prefers-color-scheme: dark) {
+    color: @dark_dim_type;
+  }
 }
 
 
@@ -535,15 +671,23 @@
 .grouped-list {
   border-top: 1px solid darken(@background, 20%);
   margin: 0 0 2.44em 0;
+
+  @media (prefers-color-scheme: dark) {
+    border-top-color: lighten(@dark_background, 20%);
+  }
 }
 
 .grouped-list__title {
-  color: @light_type;
+  color: @dim_type;
   font-size: 0.8em;
   font-weight: 300;
   letter-spacing: 1px;
   margin: 0.8em 0 -0.1em 0;
   text-transform: uppercase;
+
+  @media (prefers-color-scheme: dark) {
+    border-top-color: @dark_dim_type;
+  }
 }
 
 .grouped-list__item {
@@ -563,11 +707,21 @@
 .message.message--error {
   background-color: @error_background;
   border-color: @error_border;
+
+  @media (prefers-color-scheme: dark) {
+    background-color: @dark_error_background;
+    border-color: @dark_error_border;
+  }
 }
 
 .message.message--not-available {
   background-color: @not_available_background;
   border-color: darken(@not_available_background, 20%);
+
+  @media (prefers-color-scheme: dark) {
+    background-color: @dark_not_available_background;
+    border-color: lighten(@dark_not_available_background, 20%);
+  }
 }
 
 
@@ -624,13 +778,17 @@
 
 .page-title__label {
   position: relative;
-  color: @light_type;
+  color: @dim_type;
   font-size: 0.8rem;
   font-weight: 300;
   letter-spacing: 1px;
   margin-bottom: -0.8em;
   text-transform: uppercase;
   z-index: 1;
+
+  @media (prefers-color-scheme: dark) {
+    color: @dark_dim_type;
+  }
 }
 
 
@@ -639,18 +797,27 @@
 
 .top-banner {
   background-color: @banner_background;
-  color: @dark_foreground;
+  color: @dim_foreground;
   font-weight: normal;
+
+  @media (prefers-color-scheme: dark) {
+    background-color: @dark_banner_background;
+    color: @dark_dim_foreground;
+  }
 }
 
 .top-banner__logo,
 .top-banner__logo:visited {
   float: left;
-  color: @dark_foreground;
+  color: @dim_foreground;
   font-size: 2.44em;
   font-weight: 300;
   line-height: 90px;
   margin: 0;
+
+  @media (prefers-color-scheme: dark) {
+    color: @dark_dim_foreground;
+  }
 }
 
 .top-banner__logo:hover {
@@ -665,11 +832,18 @@
 .top-banner__form input {
   border: 1px solid @banner_background;
   border-radius: 3px;
+  background-color: @background;
   color: @banner_background;
   font-weight: 300;
   line-height: 2;
   padding: 0.21em 0.512em;
   width: 100%;
+
+  @media (prefers-color-scheme: dark) {
+    border-color: @dark_banner_background;
+    background-color: @dark_background;
+    color: @dark_foreground;
+  }
 }
 
 .top-banner__actions {
@@ -690,11 +864,19 @@
 
 .top-banner__actions__item a,
 .top-banner__actions__item a:visited {
-  color: @dark_foreground;
+  color: @dim_foreground;
+
+  @media (prefers-color-scheme: dark) {
+    color: @dark_dim_foreground;
+  }
 }
 
 .top-banner__actions__item a:hover {
   color: @link;
+
+  @media (prefers-color-scheme: dark) {
+    color: @dark_link;
+  }
 }
 
 @media (min-width: 38em) {
@@ -749,6 +931,11 @@
   border-top: 1px solid darken(@background, 20%);
   border-bottom: 1px solid darken(@background, 20%);
   padding: 0.328em 0;
+
+  @media (prefers-color-scheme: dark) {
+    border-top-color: lighten(@dark_background, 20%);
+    border-bottom-color: lighten(@dark_background, 20%);
+  }
 }
 
 .result__signature code {
@@ -833,6 +1020,10 @@
   padding: 0 1em;
   color: #777;
   border-left: 0.25em solid #ddd;
+
+  @media (prefers-color-scheme: dark) {
+    border-left-color: #444;
+  }
 }
 
 .markdown-body blockquote>:first-child {
@@ -851,6 +1042,10 @@
 .markdown-body .pl-k {
   /* Keyword */
   color: #a0a0a0;
+
+  @media (prefers-color-scheme: dark) {
+    color: #676767;
+  }
 }
 
 .markdown-body .pl-c1,
diff --git a/bundle/build.sh b/bundle/build.sh
--- a/bundle/build.sh
+++ b/bundle/build.sh
@@ -26,7 +26,7 @@
 else
   BIN="purs"
 fi
-FULL_BIN="$(stack path --local-install-root)/bin/$BIN"
+FULL_BIN="$(stack path --local-doc-root)/../bin/$BIN"
 if [ "$OS" != "win64" ]
 then
   strip "$FULL_BIN"
diff --git a/purescript.cabal b/purescript.cabal
--- a/purescript.cabal
+++ b/purescript.cabal
@@ -1,1615 +1,562 @@
-cabal-version: 1.12
-
--- This file has been generated from package.yaml by hpack version 0.31.1.
---
--- see: https://github.com/sol/hpack
---
--- hash: a831e2c306c517805ea62378fee77f2b0cdb0df3f38171ce63de73f7dcf9455f
-
-name:           purescript
-version:        0.13.0
-synopsis:       PureScript Programming Language Compiler
-description:    A small strongly, statically typed programming language with expressive types, inspired by Haskell and compiling to JavaScript.
-category:       Language
-stability:      experimental
-homepage:       http://www.purescript.org/
-bug-reports:    https://github.com/purescript/purescript/issues
-author:         Phil Freeman <paf31@cantab.net>, Gary Burgess <gary.burgess@gmail.com>, Hardy Jones <jones3.hardy@gmail.com>, Harry Garrood <harry@garrood.me>, Christoph Hegemann <christoph.hegemann1337@gmail.com>
-
-maintainer:     Phil Freeman <paf31@cantab.net>
-copyright:      (c) 2013-17 Phil Freeman, (c) 2014-17 Gary Burgess
-license:        BSD3
-license-file:   LICENSE
-build-type:     Simple
-extra-source-files:
-    app/static/index.html
-    app/static/index.js
-    app/static/normalize.css
-    app/static/pursuit.css
-    app/static/pursuit.less
-    bundle/build.sh
-    bundle/README
-    tests/purs/docs/output/TypeSynonymInstance/index.js
-    tests/purs/failing/MissingFFIImplementations.js
-    tests/purs/passing/2172.js
-    tests/purs/passing/EffFn.js
-    tests/purs/passing/FunWithFunDeps.js
-    tests/purs/passing/PolyLabels.js
-    tests/purs/passing/RowUnion.js
-    tests/purs/warning/UnnecessaryFFIModule.js
-    tests/purs/warning/UnusedFFIImplementations.js
-    tests/purs/bundle/PSasConstructor.purs
-    tests/purs/docs/bower_components/purescript-newtype/src/Data/Newtype.purs
-    tests/purs/docs/bower_components/purescript-prelude/src/Prelude.purs
-    tests/purs/docs/src/Ado.purs
-    tests/purs/docs/src/ChildDeclOrder.purs
-    tests/purs/docs/src/Clash.purs
-    tests/purs/docs/src/Clash1.purs
-    tests/purs/docs/src/Clash1a.purs
-    tests/purs/docs/src/Clash2.purs
-    tests/purs/docs/src/Clash2a.purs
-    tests/purs/docs/src/ConstrainedArgument.purs
-    tests/purs/docs/src/DeclOrder.purs
-    tests/purs/docs/src/DeclOrderNoExportList.purs
-    tests/purs/docs/src/Desugar.purs
-    tests/purs/docs/src/DocComments.purs
-    tests/purs/docs/src/DuplicateNames.purs
-    tests/purs/docs/src/Example.purs
-    tests/purs/docs/src/Example2.purs
-    tests/purs/docs/src/ExplicitExport.purs
-    tests/purs/docs/src/ExplicitTypeSignatures.purs
-    tests/purs/docs/src/ImportedTwice.purs
-    tests/purs/docs/src/ImportedTwiceA.purs
-    tests/purs/docs/src/ImportedTwiceB.purs
-    tests/purs/docs/src/MultiVirtual.purs
-    tests/purs/docs/src/MultiVirtual1.purs
-    tests/purs/docs/src/MultiVirtual2.purs
-    tests/purs/docs/src/MultiVirtual3.purs
-    tests/purs/docs/src/NewOperators.purs
-    tests/purs/docs/src/NewOperators2.purs
-    tests/purs/docs/src/NotAllCtors.purs
-    tests/purs/docs/src/PrimSubmodules.purs
-    tests/purs/docs/src/ReExportedTypeClass.purs
-    tests/purs/docs/src/SolitaryTypeClassMember.purs
-    tests/purs/docs/src/SomeTypeClass.purs
-    tests/purs/docs/src/Transitive1.purs
-    tests/purs/docs/src/Transitive2.purs
-    tests/purs/docs/src/Transitive3.purs
-    tests/purs/docs/src/TypeClassWithFunDeps.purs
-    tests/purs/docs/src/TypeClassWithoutMembers.purs
-    tests/purs/docs/src/TypeClassWithoutMembersIntermediate.purs
-    tests/purs/docs/src/TypeLevelString.purs
-    tests/purs/docs/src/TypeOpAliases.purs
-    tests/purs/docs/src/TypeSynonym.purs
-    tests/purs/docs/src/TypeSynonymInstance.purs
-    tests/purs/docs/src/UTF8.purs
-    tests/purs/docs/src/Virtual.purs
-    tests/purs/failing/1071.purs
-    tests/purs/failing/1169.purs
-    tests/purs/failing/1175.purs
-    tests/purs/failing/1310.purs
-    tests/purs/failing/1570.purs
-    tests/purs/failing/1733.purs
-    tests/purs/failing/1733/Thingy.purs
-    tests/purs/failing/1825.purs
-    tests/purs/failing/1881.purs
-    tests/purs/failing/2128-class.purs
-    tests/purs/failing/2128-instance.purs
-    tests/purs/failing/2197-shouldFail.purs
-    tests/purs/failing/2197-shouldFail2.purs
-    tests/purs/failing/2378.purs
-    tests/purs/failing/2378/Lib.purs
-    tests/purs/failing/2379.purs
-    tests/purs/failing/2379/Lib.purs
-    tests/purs/failing/2434.purs
-    tests/purs/failing/2534.purs
-    tests/purs/failing/2542.purs
-    tests/purs/failing/2567.purs
-    tests/purs/failing/2601.purs
-    tests/purs/failing/2616.purs
-    tests/purs/failing/2806.purs
-    tests/purs/failing/2874-forall.purs
-    tests/purs/failing/2874-forall2.purs
-    tests/purs/failing/2874-wildcard.purs
-    tests/purs/failing/2947.purs
-    tests/purs/failing/3132.purs
-    tests/purs/failing/3275-BindingGroupErrorPos.purs
-    tests/purs/failing/3275-DataBindingGroupErrorPos.purs
-    tests/purs/failing/3335-TypeOpAssociativityError.purs
-    tests/purs/failing/3405.purs
-    tests/purs/failing/3549-a.purs
-    tests/purs/failing/3549.purs
-    tests/purs/failing/365.purs
-    tests/purs/failing/438.purs
-    tests/purs/failing/881.purs
-    tests/purs/failing/AnonArgument1.purs
-    tests/purs/failing/AnonArgument2.purs
-    tests/purs/failing/AnonArgument3.purs
-    tests/purs/failing/ApostropheModuleName.purs
-    tests/purs/failing/ArgLengthMismatch.purs
-    tests/purs/failing/Arrays.purs
-    tests/purs/failing/ArrayType.purs
-    tests/purs/failing/AtPatternPrecedence.purs
-    tests/purs/failing/BindInDo-2.purs
-    tests/purs/failing/BindInDo.purs
-    tests/purs/failing/CannotDeriveNewtypeForData.purs
-    tests/purs/failing/CaseBinderLengthsDiffer.purs
-    tests/purs/failing/CaseDoesNotMatchAllConstructorArgs.purs
-    tests/purs/failing/ConflictingExports.purs
-    tests/purs/failing/ConflictingExports/A.purs
-    tests/purs/failing/ConflictingExports/B.purs
-    tests/purs/failing/ConflictingImports.purs
-    tests/purs/failing/ConflictingImports/A.purs
-    tests/purs/failing/ConflictingImports/B.purs
-    tests/purs/failing/ConflictingImports2.purs
-    tests/purs/failing/ConflictingImports2/A.purs
-    tests/purs/failing/ConflictingImports2/B.purs
-    tests/purs/failing/ConflictingQualifiedImports.purs
-    tests/purs/failing/ConflictingQualifiedImports/A.purs
-    tests/purs/failing/ConflictingQualifiedImports/B.purs
-    tests/purs/failing/ConflictingQualifiedImports2.purs
-    tests/purs/failing/ConflictingQualifiedImports2/A.purs
-    tests/purs/failing/ConflictingQualifiedImports2/B.purs
-    tests/purs/failing/ConstraintFailure.purs
-    tests/purs/failing/ConstraintInference.purs
-    tests/purs/failing/DctorOperatorAliasExport.purs
-    tests/purs/failing/DeclConflictClassCtor.purs
-    tests/purs/failing/DeclConflictClassSynonym.purs
-    tests/purs/failing/DeclConflictClassType.purs
-    tests/purs/failing/DeclConflictCtorClass.purs
-    tests/purs/failing/DeclConflictCtorCtor.purs
-    tests/purs/failing/DeclConflictDuplicateCtor.purs
-    tests/purs/failing/DeclConflictSynonymClass.purs
-    tests/purs/failing/DeclConflictSynonymType.purs
-    tests/purs/failing/DeclConflictTypeClass.purs
-    tests/purs/failing/DeclConflictTypeSynonym.purs
-    tests/purs/failing/DeclConflictTypeType.purs
-    tests/purs/failing/DiffKindsSameName.purs
-    tests/purs/failing/DiffKindsSameName/LibA.purs
-    tests/purs/failing/DiffKindsSameName/LibB.purs
-    tests/purs/failing/Do.purs
-    tests/purs/failing/DoNotSuggestComposition.purs
-    tests/purs/failing/DoNotSuggestComposition2.purs
-    tests/purs/failing/DuplicateDeclarationsInLet.purs
-    tests/purs/failing/DuplicateInstance.purs
-    tests/purs/failing/DuplicateModule.purs
-    tests/purs/failing/DuplicateModule/M1.purs
-    tests/purs/failing/DuplicateProperties.purs
-    tests/purs/failing/DuplicateTypeClass.purs
-    tests/purs/failing/DuplicateTypeVars.purs
-    tests/purs/failing/EmptyCase.purs
-    tests/purs/failing/EmptyClass.purs
-    tests/purs/failing/EmptyDo.purs
-    tests/purs/failing/ExpectedWildcard.purs
-    tests/purs/failing/ExportConflictClass.purs
-    tests/purs/failing/ExportConflictClass/A.purs
-    tests/purs/failing/ExportConflictClass/B.purs
-    tests/purs/failing/ExportConflictClassAndType.purs
-    tests/purs/failing/ExportConflictClassAndType/A.purs
-    tests/purs/failing/ExportConflictClassAndType/B.purs
-    tests/purs/failing/ExportConflictCtor.purs
-    tests/purs/failing/ExportConflictCtor/A.purs
-    tests/purs/failing/ExportConflictCtor/B.purs
-    tests/purs/failing/ExportConflictType.purs
-    tests/purs/failing/ExportConflictType/A.purs
-    tests/purs/failing/ExportConflictType/B.purs
-    tests/purs/failing/ExportConflictTypeOp.purs
-    tests/purs/failing/ExportConflictTypeOp/A.purs
-    tests/purs/failing/ExportConflictTypeOp/B.purs
-    tests/purs/failing/ExportConflictValue.purs
-    tests/purs/failing/ExportConflictValue/A.purs
-    tests/purs/failing/ExportConflictValue/B.purs
-    tests/purs/failing/ExportConflictValueOp.purs
-    tests/purs/failing/ExportConflictValueOp/A.purs
-    tests/purs/failing/ExportConflictValueOp/B.purs
-    tests/purs/failing/ExportExplicit.purs
-    tests/purs/failing/ExportExplicit1.purs
-    tests/purs/failing/ExportExplicit1/M1.purs
-    tests/purs/failing/ExportExplicit2.purs
-    tests/purs/failing/ExportExplicit3.purs
-    tests/purs/failing/ExportExplicit3/M1.purs
-    tests/purs/failing/ExtraneousClassMember.purs
-    tests/purs/failing/ExtraRecordField.purs
-    tests/purs/failing/Foldable.purs
-    tests/purs/failing/Generalization1.purs
-    tests/purs/failing/Generalization2.purs
-    tests/purs/failing/ImportExplicit.purs
-    tests/purs/failing/ImportExplicit/M1.purs
-    tests/purs/failing/ImportExplicit2.purs
-    tests/purs/failing/ImportExplicit2/M1.purs
-    tests/purs/failing/ImportHidingModule.purs
-    tests/purs/failing/ImportHidingModule/A.purs
-    tests/purs/failing/ImportHidingModule/B.purs
-    tests/purs/failing/ImportModule.purs
-    tests/purs/failing/ImportModule/M2.purs
-    tests/purs/failing/InfiniteKind.purs
-    tests/purs/failing/InfiniteKind2.purs
-    tests/purs/failing/InfiniteType.purs
-    tests/purs/failing/InstanceChainBothUnknownAndMatch.purs
-    tests/purs/failing/InstanceChainSkolemUnknownMatch.purs
-    tests/purs/failing/InstanceExport.purs
-    tests/purs/failing/InstanceExport/InstanceExport.purs
-    tests/purs/failing/InstanceSigsBodyIncorrect.purs
-    tests/purs/failing/InstanceSigsDifferentTypes.purs
-    tests/purs/failing/InstanceSigsIncorrectType.purs
-    tests/purs/failing/InstanceSigsOrphanTypeDeclaration.purs
-    tests/purs/failing/IntOutOfRange.purs
-    tests/purs/failing/InvalidDerivedInstance.purs
-    tests/purs/failing/InvalidDerivedInstance2.purs
-    tests/purs/failing/InvalidOperatorInBinder.purs
-    tests/purs/failing/KindError.purs
-    tests/purs/failing/KindStar.purs
-    tests/purs/failing/LacksWithSubGoal.purs
-    tests/purs/failing/LeadingZeros1.purs
-    tests/purs/failing/LeadingZeros2.purs
-    tests/purs/failing/Let.purs
-    tests/purs/failing/LetPatterns1.purs
-    tests/purs/failing/LetPatterns2.purs
-    tests/purs/failing/LetPatterns3.purs
-    tests/purs/failing/LetPatterns4.purs
-    tests/purs/failing/MissingClassExport.purs
-    tests/purs/failing/MissingClassMember.purs
-    tests/purs/failing/MissingClassMemberExport.purs
-    tests/purs/failing/MissingFFIImplementations.purs
-    tests/purs/failing/MissingRecordField.purs
-    tests/purs/failing/MixedAssociativityError.purs
-    tests/purs/failing/MPTCs.purs
-    tests/purs/failing/MultipleErrors.purs
-    tests/purs/failing/MultipleErrors2.purs
-    tests/purs/failing/MultipleTypeOpFixities.purs
-    tests/purs/failing/MultipleValueOpFixities.purs
-    tests/purs/failing/MutRec.purs
-    tests/purs/failing/MutRec2.purs
-    tests/purs/failing/NewtypeInstance.purs
-    tests/purs/failing/NewtypeInstance2.purs
-    tests/purs/failing/NewtypeInstance3.purs
-    tests/purs/failing/NewtypeInstance4.purs
-    tests/purs/failing/NewtypeInstance5.purs
-    tests/purs/failing/NewtypeInstance6.purs
-    tests/purs/failing/NewtypeMultiArgs.purs
-    tests/purs/failing/NewtypeMultiCtor.purs
-    tests/purs/failing/NonAssociativeError.purs
-    tests/purs/failing/NonExhaustivePatGuard.purs
-    tests/purs/failing/NullaryAbs.purs
-    tests/purs/failing/Object.purs
-    tests/purs/failing/OperatorAliasNoExport.purs
-    tests/purs/failing/OperatorAt.purs
-    tests/purs/failing/OperatorBackslash.purs
-    tests/purs/failing/OperatorSections.purs
-    tests/purs/failing/OrphanInstance.purs
-    tests/purs/failing/OrphanInstance/Class.purs
-    tests/purs/failing/OrphanInstanceFunDepCycle.purs
-    tests/purs/failing/OrphanInstanceFunDepCycle/Lib.purs
-    tests/purs/failing/OrphanInstanceNullary.purs
-    tests/purs/failing/OrphanInstanceNullary/Lib.purs
-    tests/purs/failing/OrphanInstanceWithDetermined.purs
-    tests/purs/failing/OrphanInstanceWithDetermined/Lib.purs
-    tests/purs/failing/OrphanTypeDecl.purs
-    tests/purs/failing/OverlapAcrossModules.purs
-    tests/purs/failing/OverlapAcrossModules/Class.purs
-    tests/purs/failing/OverlapAcrossModules/X.purs
-    tests/purs/failing/OverlappingArguments.purs
-    tests/purs/failing/OverlappingBinders.purs
-    tests/purs/failing/OverlappingInstances.purs
-    tests/purs/failing/OverlappingVars.purs
-    tests/purs/failing/PrimModuleReserved.purs
-    tests/purs/failing/PrimModuleReserved/Prim.purs
-    tests/purs/failing/PrimRow.purs
-    tests/purs/failing/PrimSubModuleReserved.purs
-    tests/purs/failing/PrimSubModuleReserved/Prim_Foobar.purs
-    tests/purs/failing/ProgrammableTypeErrors.purs
-    tests/purs/failing/ProgrammableTypeErrorsTypeString.purs
-    tests/purs/failing/Rank2Types.purs
-    tests/purs/failing/RequiredHiddenType.purs
-    tests/purs/failing/Reserved.purs
-    tests/purs/failing/RowConstructors1.purs
-    tests/purs/failing/RowConstructors2.purs
-    tests/purs/failing/RowConstructors3.purs
-    tests/purs/failing/RowInInstanceNotDetermined0.purs
-    tests/purs/failing/RowInInstanceNotDetermined1.purs
-    tests/purs/failing/RowInInstanceNotDetermined2.purs
-    tests/purs/failing/RowLacks.purs
-    tests/purs/failing/SelfImport.purs
-    tests/purs/failing/SelfImport/Dummy.purs
-    tests/purs/failing/SkolemEscape.purs
-    tests/purs/failing/SkolemEscape2.purs
-    tests/purs/failing/SuggestComposition.purs
-    tests/purs/failing/Superclasses1.purs
-    tests/purs/failing/Superclasses2.purs
-    tests/purs/failing/Superclasses3.purs
-    tests/purs/failing/Superclasses5.purs
-    tests/purs/failing/TooFewClassInstanceArgs.purs
-    tests/purs/failing/TopLevelCaseNoArgs.purs
-    tests/purs/failing/TransitiveDctorExport.purs
-    tests/purs/failing/TransitiveKindExport.purs
-    tests/purs/failing/TransitiveSynonymExport.purs
-    tests/purs/failing/TypeClasses2.purs
-    tests/purs/failing/TypedBinders.purs
-    tests/purs/failing/TypedBinders2.purs
-    tests/purs/failing/TypedBinders3.purs
-    tests/purs/failing/TypedHole.purs
-    tests/purs/failing/TypedHole2.purs
-    tests/purs/failing/TypeError.purs
-    tests/purs/failing/TypeOperatorAliasNoExport.purs
-    tests/purs/failing/TypeSynonyms.purs
-    tests/purs/failing/TypeSynonyms2.purs
-    tests/purs/failing/TypeSynonyms3.purs
-    tests/purs/failing/TypeSynonyms4.purs
-    tests/purs/failing/TypeSynonyms5.purs
-    tests/purs/failing/TypeWildcards1.purs
-    tests/purs/failing/TypeWildcards2.purs
-    tests/purs/failing/TypeWildcards3.purs
-    tests/purs/failing/UnderscoreModuleName.purs
-    tests/purs/failing/UnknownType.purs
-    tests/purs/failing/UnusableTypeClassMethod.purs
-    tests/purs/failing/UnusableTypeClassMethodConflictingIdent.purs
-    tests/purs/failing/UnusableTypeClassMethodSynonym.purs
-    tests/purs/failing/Whitespace1.purs
-    tests/purs/layout/AdoIn.purs
-    tests/purs/layout/CaseGuards.purs
-    tests/purs/layout/CaseWhere.purs
-    tests/purs/layout/ClassHead.purs
-    tests/purs/layout/Commas.purs
-    tests/purs/layout/Delimiter.purs
-    tests/purs/layout/DoLet.purs
-    tests/purs/layout/DoOperator.purs
-    tests/purs/layout/DoWhere.purs
-    tests/purs/layout/IfThenElseDo.purs
-    tests/purs/layout/InstanceChainElse.purs
-    tests/purs/passing/1110.purs
-    tests/purs/passing/1185.purs
-    tests/purs/passing/1335.purs
-    tests/purs/passing/1570.purs
-    tests/purs/passing/1664.purs
-    tests/purs/passing/1697.purs
-    tests/purs/passing/1807.purs
-    tests/purs/passing/1881.purs
-    tests/purs/passing/1991.purs
-    tests/purs/passing/2018.purs
-    tests/purs/passing/2018/A.purs
-    tests/purs/passing/2018/B.purs
-    tests/purs/passing/2049.purs
-    tests/purs/passing/2136.purs
-    tests/purs/passing/2138.purs
-    tests/purs/passing/2138/Lib.purs
-    tests/purs/passing/2172.purs
-    tests/purs/passing/2197-1.purs
-    tests/purs/passing/2197-2.purs
-    tests/purs/passing/2252.purs
-    tests/purs/passing/2288.purs
-    tests/purs/passing/2378.purs
-    tests/purs/passing/2438.purs
-    tests/purs/passing/2609.purs
-    tests/purs/passing/2609/Eg.purs
-    tests/purs/passing/2616.purs
-    tests/purs/passing/2626.purs
-    tests/purs/passing/2663.purs
-    tests/purs/passing/2689.purs
-    tests/purs/passing/2756.purs
-    tests/purs/passing/2787.purs
-    tests/purs/passing/2795.purs
-    tests/purs/passing/2803.purs
-    tests/purs/passing/2806.purs
-    tests/purs/passing/2947.purs
-    tests/purs/passing/2958.purs
-    tests/purs/passing/2972.purs
-    tests/purs/passing/3114.purs
-    tests/purs/passing/3114/VendoredVariant.purs
-    tests/purs/passing/3125.purs
-    tests/purs/passing/3187-UnusedNameClash.purs
-    tests/purs/passing/3388.purs
-    tests/purs/passing/3410.purs
-    tests/purs/passing/3481.purs
-    tests/purs/passing/3549.purs
-    tests/purs/passing/3595.purs
-    tests/purs/passing/652.purs
-    tests/purs/passing/810.purs
-    tests/purs/passing/862.purs
-    tests/purs/passing/922.purs
-    tests/purs/passing/Ado.purs
-    tests/purs/passing/AppendInReverse.purs
-    tests/purs/passing/Applicative.purs
-    tests/purs/passing/ArrayType.purs
-    tests/purs/passing/Auto.purs
-    tests/purs/passing/AutoPrelude.purs
-    tests/purs/passing/AutoPrelude2.purs
-    tests/purs/passing/BindersInFunctions.purs
-    tests/purs/passing/BindingGroups.purs
-    tests/purs/passing/BlockString.purs
-    tests/purs/passing/CaseInDo.purs
-    tests/purs/passing/CaseInputWildcard.purs
-    tests/purs/passing/CaseMultipleExpressions.purs
-    tests/purs/passing/CaseStatement.purs
-    tests/purs/passing/CheckFunction.purs
-    tests/purs/passing/CheckSynonymBug.purs
-    tests/purs/passing/CheckTypeClass.purs
-    tests/purs/passing/Church.purs
-    tests/purs/passing/ClassRefSyntax.purs
-    tests/purs/passing/ClassRefSyntax/Lib.purs
-    tests/purs/passing/Collatz.purs
-    tests/purs/passing/Comparisons.purs
-    tests/purs/passing/Conditional.purs
-    tests/purs/passing/Console.purs
-    tests/purs/passing/ConstraintInference.purs
-    tests/purs/passing/ConstraintOutsideForall.purs
-    tests/purs/passing/ConstraintParens.purs
-    tests/purs/passing/ConstraintParsingIssue.purs
-    tests/purs/passing/ContextSimplification.purs
-    tests/purs/passing/DataAndType.purs
-    tests/purs/passing/DataConsClassConsOverlapOk.purs
-    tests/purs/passing/DctorName.purs
-    tests/purs/passing/DctorOperatorAlias.purs
-    tests/purs/passing/DctorOperatorAlias/List.purs
-    tests/purs/passing/DeepArrayBinder.purs
-    tests/purs/passing/DeepCase.purs
-    tests/purs/passing/DeriveNewtype.purs
-    tests/purs/passing/DeriveWithNestedSynonyms.purs
-    tests/purs/passing/Deriving.purs
-    tests/purs/passing/DerivingFunctor.purs
-    tests/purs/passing/Do.purs
-    tests/purs/passing/Dollar.purs
-    tests/purs/passing/DuplicateProperties.purs
-    tests/purs/passing/EffFn.purs
-    tests/purs/passing/EmptyDataDecls.purs
-    tests/purs/passing/EmptyRow.purs
-    tests/purs/passing/EmptyTypeClass.purs
-    tests/purs/passing/EntailsKindedType.purs
-    tests/purs/passing/Eq1Deriving.purs
-    tests/purs/passing/Eq1InEqDeriving.purs
-    tests/purs/passing/EqOrd.purs
-    tests/purs/passing/ExplicitImportReExport.purs
-    tests/purs/passing/ExplicitImportReExport/Bar.purs
-    tests/purs/passing/ExplicitImportReExport/Foo.purs
-    tests/purs/passing/ExplicitOperatorSections.purs
-    tests/purs/passing/ExportedInstanceDeclarations.purs
-    tests/purs/passing/ExportExplicit.purs
-    tests/purs/passing/ExportExplicit/M1.purs
-    tests/purs/passing/ExportExplicit2.purs
-    tests/purs/passing/ExportExplicit2/M1.purs
-    tests/purs/passing/ExtendedInfixOperators.purs
-    tests/purs/passing/Fib.purs
-    tests/purs/passing/FieldConsPuns.purs
-    tests/purs/passing/FieldPuns.purs
-    tests/purs/passing/FinalTagless.purs
-    tests/purs/passing/ForeignKind.purs
-    tests/purs/passing/ForeignKind/Lib.purs
-    tests/purs/passing/FunctionalDependencies.purs
-    tests/purs/passing/FunctionAndCaseGuards.purs
-    tests/purs/passing/Functions.purs
-    tests/purs/passing/Functions2.purs
-    tests/purs/passing/FunctionScope.purs
-    tests/purs/passing/FunWithFunDeps.purs
-    tests/purs/passing/Generalization1.purs
-    tests/purs/passing/GenericsRep.purs
-    tests/purs/passing/Guards.purs
-    tests/purs/passing/HasOwnProperty.purs
-    tests/purs/passing/HoistError.purs
-    tests/purs/passing/IfThenElseMaybe.purs
-    tests/purs/passing/IfWildcard.purs
-    tests/purs/passing/ImplicitEmptyImport.purs
-    tests/purs/passing/Import.purs
-    tests/purs/passing/Import/M1.purs
-    tests/purs/passing/Import/M2.purs
-    tests/purs/passing/ImportExplicit.purs
-    tests/purs/passing/ImportExplicit/M1.purs
-    tests/purs/passing/ImportHiding.purs
-    tests/purs/passing/ImportQualified.purs
-    tests/purs/passing/ImportQualified/M1.purs
-    tests/purs/passing/InferRecFunWithConstrainedArgument.purs
-    tests/purs/passing/InheritMultipleSuperClasses.purs
-    tests/purs/passing/InstanceBeforeClass.purs
-    tests/purs/passing/InstanceChain.purs
-    tests/purs/passing/InstanceSigs.purs
-    tests/purs/passing/InstanceSigsGeneral.purs
-    tests/purs/passing/IntAndChar.purs
-    tests/purs/passing/iota.purs
-    tests/purs/passing/JSReserved.purs
-    tests/purs/passing/KindedType.purs
-    tests/purs/passing/LargeSumType.purs
-    tests/purs/passing/Let.purs
-    tests/purs/passing/Let2.purs
-    tests/purs/passing/LetInInstance.purs
-    tests/purs/passing/LetPattern.purs
-    tests/purs/passing/LiberalTypeSynonyms.purs
-    tests/purs/passing/Match.purs
-    tests/purs/passing/Module.purs
-    tests/purs/passing/Module/M1.purs
-    tests/purs/passing/Module/M2.purs
-    tests/purs/passing/ModuleDeps.purs
-    tests/purs/passing/ModuleDeps/M1.purs
-    tests/purs/passing/ModuleDeps/M2.purs
-    tests/purs/passing/ModuleDeps/M3.purs
-    tests/purs/passing/ModuleExport.purs
-    tests/purs/passing/ModuleExport/A.purs
-    tests/purs/passing/ModuleExportDupes.purs
-    tests/purs/passing/ModuleExportDupes/A.purs
-    tests/purs/passing/ModuleExportDupes/B.purs
-    tests/purs/passing/ModuleExportDupes/C.purs
-    tests/purs/passing/ModuleExportExcluded.purs
-    tests/purs/passing/ModuleExportExcluded/A.purs
-    tests/purs/passing/ModuleExportQualified.purs
-    tests/purs/passing/ModuleExportQualified/A.purs
-    tests/purs/passing/ModuleExportSelf.purs
-    tests/purs/passing/ModuleExportSelf/A.purs
-    tests/purs/passing/Monad.purs
-    tests/purs/passing/MonadState.purs
-    tests/purs/passing/MPTCs.purs
-    tests/purs/passing/MultiArgFunctions.purs
-    tests/purs/passing/MutRec.purs
-    tests/purs/passing/MutRec2.purs
-    tests/purs/passing/MutRec3.purs
-    tests/purs/passing/NakedConstraint.purs
-    tests/purs/passing/NamedPatterns.purs
-    tests/purs/passing/NegativeBinder.purs
-    tests/purs/passing/NegativeIntInRange.purs
-    tests/purs/passing/Nested.purs
-    tests/purs/passing/NestedRecordUpdate.purs
-    tests/purs/passing/NestedRecordUpdateWildcards.purs
-    tests/purs/passing/NestedTypeSynonyms.purs
-    tests/purs/passing/NestedWhere.purs
-    tests/purs/passing/NewConsClass.purs
-    tests/purs/passing/Newtype.purs
-    tests/purs/passing/NewtypeClass.purs
-    tests/purs/passing/NewtypeEff.purs
-    tests/purs/passing/NewtypeInstance.purs
-    tests/purs/passing/NewtypeWithRecordUpdate.purs
-    tests/purs/passing/NonConflictingExports.purs
-    tests/purs/passing/NonConflictingExports/A.purs
-    tests/purs/passing/NonOrphanInstanceFunDepExtra.purs
-    tests/purs/passing/NonOrphanInstanceFunDepExtra/Lib.purs
-    tests/purs/passing/NonOrphanInstanceMulti.purs
-    tests/purs/passing/NonOrphanInstanceMulti/Lib.purs
-    tests/purs/passing/NumberLiterals.purs
-    tests/purs/passing/ObjectGetter.purs
-    tests/purs/passing/Objects.purs
-    tests/purs/passing/ObjectSynonym.purs
-    tests/purs/passing/ObjectUpdate.purs
-    tests/purs/passing/ObjectUpdate2.purs
-    tests/purs/passing/ObjectUpdater.purs
-    tests/purs/passing/ObjectWildcards.purs
-    tests/purs/passing/OneConstructor.purs
-    tests/purs/passing/OperatorAlias.purs
-    tests/purs/passing/OperatorAliasElsewhere.purs
-    tests/purs/passing/OperatorAliasElsewhere/Def.purs
-    tests/purs/passing/OperatorAssociativity.purs
-    tests/purs/passing/OperatorInlining.purs
-    tests/purs/passing/Operators.purs
-    tests/purs/passing/Operators/Other.purs
-    tests/purs/passing/OperatorSections.purs
-    tests/purs/passing/OptimizerBug.purs
-    tests/purs/passing/OptionalQualified.purs
-    tests/purs/passing/Ord1Deriving.purs
-    tests/purs/passing/Ord1InOrdDeriving.purs
-    tests/purs/passing/ParensInType.purs
-    tests/purs/passing/ParensInTypedBinder.purs
-    tests/purs/passing/PartialFunction.purs
-    tests/purs/passing/PartialTCO.purs
-    tests/purs/passing/Patterns.purs
-    tests/purs/passing/PendingConflictingImports.purs
-    tests/purs/passing/PendingConflictingImports/A.purs
-    tests/purs/passing/PendingConflictingImports/B.purs
-    tests/purs/passing/PendingConflictingImports2.purs
-    tests/purs/passing/PendingConflictingImports2/A.purs
-    tests/purs/passing/Person.purs
-    tests/purs/passing/PolyLabels.purs
-    tests/purs/passing/PrimedTypeName.purs
-    tests/purs/passing/QualifiedAdo.purs
-    tests/purs/passing/QualifiedAdo/IxApplicative.purs
-    tests/purs/passing/QualifiedDo.purs
-    tests/purs/passing/QualifiedDo/IxMonad.purs
-    tests/purs/passing/QualifiedNames.purs
-    tests/purs/passing/QualifiedNames/Either.purs
-    tests/purs/passing/QualifiedQualifiedImports.purs
-    tests/purs/passing/Rank2Data.purs
-    tests/purs/passing/Rank2Object.purs
-    tests/purs/passing/Rank2Types.purs
-    tests/purs/passing/Rank2TypeSynonym.purs
-    tests/purs/passing/RebindableSyntax.purs
-    tests/purs/passing/Recursion.purs
-    tests/purs/passing/RedefinedFixity.purs
-    tests/purs/passing/RedefinedFixity/M1.purs
-    tests/purs/passing/RedefinedFixity/M2.purs
-    tests/purs/passing/RedefinedFixity/M3.purs
-    tests/purs/passing/ReExportQualified.purs
-    tests/purs/passing/ReExportQualified/A.purs
-    tests/purs/passing/ReExportQualified/B.purs
-    tests/purs/passing/ReExportQualified/C.purs
-    tests/purs/passing/ReservedWords.purs
-    tests/purs/passing/ResolvableScopeConflict.purs
-    tests/purs/passing/ResolvableScopeConflict/A.purs
-    tests/purs/passing/ResolvableScopeConflict/B.purs
-    tests/purs/passing/ResolvableScopeConflict2.purs
-    tests/purs/passing/ResolvableScopeConflict2/A.purs
-    tests/purs/passing/ResolvableScopeConflict3.purs
-    tests/purs/passing/ResolvableScopeConflict3/A.purs
-    tests/purs/passing/RowConstructors.purs
-    tests/purs/passing/RowInInstanceHeadDetermined.purs
-    tests/purs/passing/RowLacks.purs
-    tests/purs/passing/RowNub.purs
-    tests/purs/passing/RowPolyInstanceContext.purs
-    tests/purs/passing/RowsInInstanceContext.purs
-    tests/purs/passing/RowUnion.purs
-    tests/purs/passing/RunFnInline.purs
-    tests/purs/passing/RuntimeScopeIssue.purs
-    tests/purs/passing/s.purs
-    tests/purs/passing/ScopedTypeVariables.purs
-    tests/purs/passing/Sequence.purs
-    tests/purs/passing/SequenceDesugared.purs
-    tests/purs/passing/ShadowedModuleName.purs
-    tests/purs/passing/ShadowedModuleName/Test.purs
-    tests/purs/passing/ShadowedName.purs
-    tests/purs/passing/ShadowedRename.purs
-    tests/purs/passing/ShadowedTCO.purs
-    tests/purs/passing/ShadowedTCOLet.purs
-    tests/purs/passing/SignedNumericLiterals.purs
-    tests/purs/passing/SolvingAppendSymbol.purs
-    tests/purs/passing/SolvingCompareSymbol.purs
-    tests/purs/passing/SolvingIsSymbol.purs
-    tests/purs/passing/SolvingIsSymbol/Lib.purs
-    tests/purs/passing/Stream.purs
-    tests/purs/passing/StringEdgeCases.purs
-    tests/purs/passing/StringEdgeCases/Records.purs
-    tests/purs/passing/StringEdgeCases/Symbols.purs
-    tests/purs/passing/StringEscapes.purs
-    tests/purs/passing/Superclasses1.purs
-    tests/purs/passing/Superclasses3.purs
-    tests/purs/passing/TailCall.purs
-    tests/purs/passing/TCO.purs
-    tests/purs/passing/TCOCase.purs
-    tests/purs/passing/Tick.purs
-    tests/purs/passing/TopLevelCase.purs
-    tests/purs/passing/TransitiveImport.purs
-    tests/purs/passing/TransitiveImport/Middle.purs
-    tests/purs/passing/TransitiveImport/Test.purs
-    tests/purs/passing/TypeAnnotationPrecedence.purs
-    tests/purs/passing/TypeClasses.purs
-    tests/purs/passing/TypeClassesInOrder.purs
-    tests/purs/passing/TypeClassesWithOverlappingTypeVariables.purs
-    tests/purs/passing/TypeClassMemberOrderChange.purs
-    tests/purs/passing/TypedBinders.purs
-    tests/purs/passing/TypeDecl.purs
-    tests/purs/passing/TypedWhere.purs
-    tests/purs/passing/TypeOperators.purs
-    tests/purs/passing/TypeOperators/A.purs
-    tests/purs/passing/TypeSynonymInData.purs
-    tests/purs/passing/TypeSynonyms.purs
-    tests/purs/passing/TypeWildcards.purs
-    tests/purs/passing/TypeWildcardsRecordExtension.purs
-    tests/purs/passing/TypeWithoutParens.purs
-    tests/purs/passing/TypeWithoutParens/Lib.purs
-    tests/purs/passing/UnderscoreIdent.purs
-    tests/purs/passing/UnicodeIdentifier.purs
-    tests/purs/passing/UnicodeOperators.purs
-    tests/purs/passing/UnicodeType.purs
-    tests/purs/passing/UnifyInTypeInstanceLookup.purs
-    tests/purs/passing/Unit.purs
-    tests/purs/passing/UnknownInTypeClassLookup.purs
-    tests/purs/passing/UnsafeCoerce.purs
-    tests/purs/passing/UntupledConstraints.purs
-    tests/purs/passing/UsableTypeClassMethods.purs
-    tests/purs/passing/UTF8Sourcefile.purs
-    tests/purs/passing/Where.purs
-    tests/purs/passing/WildcardInInstance.purs
-    tests/purs/passing/WildcardType.purs
-    tests/purs/psci/BasicEval.purs
-    tests/purs/psci/Multiline.purs
-    tests/purs/publish/basic-example/src/Main.purs
-    tests/purs/warning/2140.purs
-    tests/purs/warning/2383.purs
-    tests/purs/warning/2411.purs
-    tests/purs/warning/2542.purs
-    tests/purs/warning/CustomWarning.purs
-    tests/purs/warning/CustomWarning2.purs
-    tests/purs/warning/CustomWarning3.purs
-    tests/purs/warning/CustomWarning4.purs
-    tests/purs/warning/DuplicateExportRef.purs
-    tests/purs/warning/DuplicateImport.purs
-    tests/purs/warning/DuplicateImportRef.purs
-    tests/purs/warning/DuplicateSelectiveImport.purs
-    tests/purs/warning/HidingImport.purs
-    tests/purs/warning/ImplicitImport.purs
-    tests/purs/warning/ImplicitQualifiedImport.purs
-    tests/purs/warning/ImplicitQualifiedImportReExport.purs
-    tests/purs/warning/MissingTypeDeclaration.purs
-    tests/purs/warning/NewtypeInstance.purs
-    tests/purs/warning/NewtypeInstance2.purs
-    tests/purs/warning/NewtypeInstance3.purs
-    tests/purs/warning/NewtypeInstance4.purs
-    tests/purs/warning/OverlappingPattern.purs
-    tests/purs/warning/ScopeShadowing.purs
-    tests/purs/warning/ScopeShadowing2.purs
-    tests/purs/warning/ShadowedBinderPatternGuard.purs
-    tests/purs/warning/ShadowedNameParens.purs
-    tests/purs/warning/ShadowedTypeVar.purs
-    tests/purs/warning/UnnecessaryFFIModule.purs
-    tests/purs/warning/UnusedDctorExplicitImport.purs
-    tests/purs/warning/UnusedDctorImportAll.purs
-    tests/purs/warning/UnusedDctorImportExplicit.purs
-    tests/purs/warning/UnusedExplicitImport.purs
-    tests/purs/warning/UnusedExplicitImportTypeOp.purs
-    tests/purs/warning/UnusedExplicitImportTypeOp/Lib.purs
-    tests/purs/warning/UnusedExplicitImportValOp.purs
-    tests/purs/warning/UnusedFFIImplementations.purs
-    tests/purs/warning/UnusedImport.purs
-    tests/purs/warning/UnusedTypeVar.purs
-    tests/purs/warning/WildcardInferredType.purs
-    tests/purs/warning/WildcardInferredType2.purs
-    tests/purs/docs/bower.json
-    tests/purs/docs/output/Ado/docs.json
-    tests/purs/docs/output/Ado/externs.json
-    tests/purs/docs/output/ChildDeclOrder/docs.json
-    tests/purs/docs/output/ChildDeclOrder/externs.json
-    tests/purs/docs/output/Clash/docs.json
-    tests/purs/docs/output/Clash/externs.json
-    tests/purs/docs/output/Clash1/docs.json
-    tests/purs/docs/output/Clash1/externs.json
-    tests/purs/docs/output/Clash1a/docs.json
-    tests/purs/docs/output/Clash1a/externs.json
-    tests/purs/docs/output/Clash2/docs.json
-    tests/purs/docs/output/Clash2/externs.json
-    tests/purs/docs/output/Clash2a/docs.json
-    tests/purs/docs/output/Clash2a/externs.json
-    tests/purs/docs/output/ConstrainedArgument/docs.json
-    tests/purs/docs/output/ConstrainedArgument/externs.json
-    tests/purs/docs/output/Data.Newtype/docs.json
-    tests/purs/docs/output/Data.Newtype/externs.json
-    tests/purs/docs/output/DeclOrder/docs.json
-    tests/purs/docs/output/DeclOrder/externs.json
-    tests/purs/docs/output/DeclOrderNoExportList/docs.json
-    tests/purs/docs/output/DeclOrderNoExportList/externs.json
-    tests/purs/docs/output/Desugar/docs.json
-    tests/purs/docs/output/Desugar/externs.json
-    tests/purs/docs/output/DocComments/docs.json
-    tests/purs/docs/output/DocComments/externs.json
-    tests/purs/docs/output/DuplicateNames/docs.json
-    tests/purs/docs/output/DuplicateNames/externs.json
-    tests/purs/docs/output/Example/docs.json
-    tests/purs/docs/output/Example/externs.json
-    tests/purs/docs/output/Example2/docs.json
-    tests/purs/docs/output/Example2/externs.json
-    tests/purs/docs/output/ExplicitExport/docs.json
-    tests/purs/docs/output/ExplicitExport/externs.json
-    tests/purs/docs/output/ExplicitTypeSignatures/docs.json
-    tests/purs/docs/output/ExplicitTypeSignatures/externs.json
-    tests/purs/docs/output/ImportedTwice/docs.json
-    tests/purs/docs/output/ImportedTwice/externs.json
-    tests/purs/docs/output/ImportedTwiceA/docs.json
-    tests/purs/docs/output/ImportedTwiceA/externs.json
-    tests/purs/docs/output/ImportedTwiceB/docs.json
-    tests/purs/docs/output/ImportedTwiceB/externs.json
-    tests/purs/docs/output/MultiVirtual/docs.json
-    tests/purs/docs/output/MultiVirtual/externs.json
-    tests/purs/docs/output/MultiVirtual1/docs.json
-    tests/purs/docs/output/MultiVirtual1/externs.json
-    tests/purs/docs/output/MultiVirtual2/docs.json
-    tests/purs/docs/output/MultiVirtual2/externs.json
-    tests/purs/docs/output/MultiVirtual3/docs.json
-    tests/purs/docs/output/MultiVirtual3/externs.json
-    tests/purs/docs/output/NewOperators/docs.json
-    tests/purs/docs/output/NewOperators/externs.json
-    tests/purs/docs/output/NewOperators2/docs.json
-    tests/purs/docs/output/NewOperators2/externs.json
-    tests/purs/docs/output/NotAllCtors/docs.json
-    tests/purs/docs/output/NotAllCtors/externs.json
-    tests/purs/docs/output/Prelude/docs.json
-    tests/purs/docs/output/Prelude/externs.json
-    tests/purs/docs/output/PrimSubmodules/docs.json
-    tests/purs/docs/output/PrimSubmodules/externs.json
-    tests/purs/docs/output/ReExportedTypeClass/docs.json
-    tests/purs/docs/output/ReExportedTypeClass/externs.json
-    tests/purs/docs/output/SolitaryTypeClassMember/docs.json
-    tests/purs/docs/output/SolitaryTypeClassMember/externs.json
-    tests/purs/docs/output/SomeTypeClass/docs.json
-    tests/purs/docs/output/SomeTypeClass/externs.json
-    tests/purs/docs/output/Transitive1/docs.json
-    tests/purs/docs/output/Transitive1/externs.json
-    tests/purs/docs/output/Transitive2/docs.json
-    tests/purs/docs/output/Transitive2/externs.json
-    tests/purs/docs/output/Transitive3/docs.json
-    tests/purs/docs/output/Transitive3/externs.json
-    tests/purs/docs/output/TypeClassWithFunDeps/docs.json
-    tests/purs/docs/output/TypeClassWithFunDeps/externs.json
-    tests/purs/docs/output/TypeClassWithoutMembers/docs.json
-    tests/purs/docs/output/TypeClassWithoutMembers/externs.json
-    tests/purs/docs/output/TypeClassWithoutMembersIntermediate/docs.json
-    tests/purs/docs/output/TypeClassWithoutMembersIntermediate/externs.json
-    tests/purs/docs/output/TypeLevelString/docs.json
-    tests/purs/docs/output/TypeLevelString/externs.json
-    tests/purs/docs/output/TypeOpAliases/docs.json
-    tests/purs/docs/output/TypeOpAliases/externs.json
-    tests/purs/docs/output/TypeSynonym/docs.json
-    tests/purs/docs/output/TypeSynonym/externs.json
-    tests/purs/docs/output/TypeSynonymInstance/docs.json
-    tests/purs/docs/output/TypeSynonymInstance/externs.json
-    tests/purs/docs/output/UTF8/docs.json
-    tests/purs/docs/output/UTF8/externs.json
-    tests/purs/docs/output/Virtual/docs.json
-    tests/purs/docs/output/Virtual/externs.json
-    tests/purs/docs/resolutions.json
-    tests/purs/publish/basic-example/bower.json
-    tests/purs/publish/basic-example/output/Control.Alt/docs.json
-    tests/purs/publish/basic-example/output/Control.Alt/externs.json
-    tests/purs/publish/basic-example/output/Control.Alternative/docs.json
-    tests/purs/publish/basic-example/output/Control.Alternative/externs.json
-    tests/purs/publish/basic-example/output/Control.Applicative/docs.json
-    tests/purs/publish/basic-example/output/Control.Applicative/externs.json
-    tests/purs/publish/basic-example/output/Control.Apply/docs.json
-    tests/purs/publish/basic-example/output/Control.Apply/externs.json
-    tests/purs/publish/basic-example/output/Control.Biapplicative/docs.json
-    tests/purs/publish/basic-example/output/Control.Biapplicative/externs.json
-    tests/purs/publish/basic-example/output/Control.Biapply/docs.json
-    tests/purs/publish/basic-example/output/Control.Biapply/externs.json
-    tests/purs/publish/basic-example/output/Control.Bind/docs.json
-    tests/purs/publish/basic-example/output/Control.Bind/externs.json
-    tests/purs/publish/basic-example/output/Control.Category/docs.json
-    tests/purs/publish/basic-example/output/Control.Category/externs.json
-    tests/purs/publish/basic-example/output/Control.Comonad/docs.json
-    tests/purs/publish/basic-example/output/Control.Comonad/externs.json
-    tests/purs/publish/basic-example/output/Control.Extend/docs.json
-    tests/purs/publish/basic-example/output/Control.Extend/externs.json
-    tests/purs/publish/basic-example/output/Control.Lazy/docs.json
-    tests/purs/publish/basic-example/output/Control.Lazy/externs.json
-    tests/purs/publish/basic-example/output/Control.Monad.Gen.Class/docs.json
-    tests/purs/publish/basic-example/output/Control.Monad.Gen.Class/externs.json
-    tests/purs/publish/basic-example/output/Control.Monad.Gen.Common/docs.json
-    tests/purs/publish/basic-example/output/Control.Monad.Gen.Common/externs.json
-    tests/purs/publish/basic-example/output/Control.Monad.Gen/docs.json
-    tests/purs/publish/basic-example/output/Control.Monad.Gen/externs.json
-    tests/purs/publish/basic-example/output/Control.Monad.Rec.Class/docs.json
-    tests/purs/publish/basic-example/output/Control.Monad.Rec.Class/externs.json
-    tests/purs/publish/basic-example/output/Control.Monad.ST.Internal/docs.json
-    tests/purs/publish/basic-example/output/Control.Monad.ST.Internal/externs.json
-    tests/purs/publish/basic-example/output/Control.Monad.ST.Ref/docs.json
-    tests/purs/publish/basic-example/output/Control.Monad.ST.Ref/externs.json
-    tests/purs/publish/basic-example/output/Control.Monad.ST/docs.json
-    tests/purs/publish/basic-example/output/Control.Monad.ST/externs.json
-    tests/purs/publish/basic-example/output/Control.Monad/docs.json
-    tests/purs/publish/basic-example/output/Control.Monad/externs.json
-    tests/purs/publish/basic-example/output/Control.MonadPlus/docs.json
-    tests/purs/publish/basic-example/output/Control.MonadPlus/externs.json
-    tests/purs/publish/basic-example/output/Control.MonadZero/docs.json
-    tests/purs/publish/basic-example/output/Control.MonadZero/externs.json
-    tests/purs/publish/basic-example/output/Control.Plus/docs.json
-    tests/purs/publish/basic-example/output/Control.Plus/externs.json
-    tests/purs/publish/basic-example/output/Control.Semigroupoid/docs.json
-    tests/purs/publish/basic-example/output/Control.Semigroupoid/externs.json
-    tests/purs/publish/basic-example/output/Data.Array.NonEmpty.Internal/docs.json
-    tests/purs/publish/basic-example/output/Data.Array.NonEmpty.Internal/externs.json
-    tests/purs/publish/basic-example/output/Data.Array.NonEmpty/docs.json
-    tests/purs/publish/basic-example/output/Data.Array.NonEmpty/externs.json
-    tests/purs/publish/basic-example/output/Data.Array.Partial/docs.json
-    tests/purs/publish/basic-example/output/Data.Array.Partial/externs.json
-    tests/purs/publish/basic-example/output/Data.Array.ST.Iterator/docs.json
-    tests/purs/publish/basic-example/output/Data.Array.ST.Iterator/externs.json
-    tests/purs/publish/basic-example/output/Data.Array.ST.Partial/docs.json
-    tests/purs/publish/basic-example/output/Data.Array.ST.Partial/externs.json
-    tests/purs/publish/basic-example/output/Data.Array.ST/docs.json
-    tests/purs/publish/basic-example/output/Data.Array.ST/externs.json
-    tests/purs/publish/basic-example/output/Data.Array/docs.json
-    tests/purs/publish/basic-example/output/Data.Array/externs.json
-    tests/purs/publish/basic-example/output/Data.Bifoldable/docs.json
-    tests/purs/publish/basic-example/output/Data.Bifoldable/externs.json
-    tests/purs/publish/basic-example/output/Data.Bifunctor.Clown/docs.json
-    tests/purs/publish/basic-example/output/Data.Bifunctor.Clown/externs.json
-    tests/purs/publish/basic-example/output/Data.Bifunctor.Flip/docs.json
-    tests/purs/publish/basic-example/output/Data.Bifunctor.Flip/externs.json
-    tests/purs/publish/basic-example/output/Data.Bifunctor.Join/docs.json
-    tests/purs/publish/basic-example/output/Data.Bifunctor.Join/externs.json
-    tests/purs/publish/basic-example/output/Data.Bifunctor.Joker/docs.json
-    tests/purs/publish/basic-example/output/Data.Bifunctor.Joker/externs.json
-    tests/purs/publish/basic-example/output/Data.Bifunctor.Product/docs.json
-    tests/purs/publish/basic-example/output/Data.Bifunctor.Product/externs.json
-    tests/purs/publish/basic-example/output/Data.Bifunctor.Wrap/docs.json
-    tests/purs/publish/basic-example/output/Data.Bifunctor.Wrap/externs.json
-    tests/purs/publish/basic-example/output/Data.Bifunctor/docs.json
-    tests/purs/publish/basic-example/output/Data.Bifunctor/externs.json
-    tests/purs/publish/basic-example/output/Data.Bitraversable/docs.json
-    tests/purs/publish/basic-example/output/Data.Bitraversable/externs.json
-    tests/purs/publish/basic-example/output/Data.Boolean/docs.json
-    tests/purs/publish/basic-example/output/Data.Boolean/externs.json
-    tests/purs/publish/basic-example/output/Data.BooleanAlgebra/docs.json
-    tests/purs/publish/basic-example/output/Data.BooleanAlgebra/externs.json
-    tests/purs/publish/basic-example/output/Data.Bounded/docs.json
-    tests/purs/publish/basic-example/output/Data.Bounded/externs.json
-    tests/purs/publish/basic-example/output/Data.Char.Gen/docs.json
-    tests/purs/publish/basic-example/output/Data.Char.Gen/externs.json
-    tests/purs/publish/basic-example/output/Data.Char/docs.json
-    tests/purs/publish/basic-example/output/Data.Char/externs.json
-    tests/purs/publish/basic-example/output/Data.CommutativeRing/docs.json
-    tests/purs/publish/basic-example/output/Data.CommutativeRing/externs.json
-    tests/purs/publish/basic-example/output/Data.Distributive/docs.json
-    tests/purs/publish/basic-example/output/Data.Distributive/externs.json
-    tests/purs/publish/basic-example/output/Data.DivisionRing/docs.json
-    tests/purs/publish/basic-example/output/Data.DivisionRing/externs.json
-    tests/purs/publish/basic-example/output/Data.Either.Inject/docs.json
-    tests/purs/publish/basic-example/output/Data.Either.Inject/externs.json
-    tests/purs/publish/basic-example/output/Data.Either.Nested/docs.json
-    tests/purs/publish/basic-example/output/Data.Either.Nested/externs.json
-    tests/purs/publish/basic-example/output/Data.Either/docs.json
-    tests/purs/publish/basic-example/output/Data.Either/externs.json
-    tests/purs/publish/basic-example/output/Data.Enum.Gen/docs.json
-    tests/purs/publish/basic-example/output/Data.Enum.Gen/externs.json
-    tests/purs/publish/basic-example/output/Data.Enum/docs.json
-    tests/purs/publish/basic-example/output/Data.Enum/externs.json
-    tests/purs/publish/basic-example/output/Data.Eq/docs.json
-    tests/purs/publish/basic-example/output/Data.Eq/externs.json
-    tests/purs/publish/basic-example/output/Data.EuclideanRing/docs.json
-    tests/purs/publish/basic-example/output/Data.EuclideanRing/externs.json
-    tests/purs/publish/basic-example/output/Data.Field/docs.json
-    tests/purs/publish/basic-example/output/Data.Field/externs.json
-    tests/purs/publish/basic-example/output/Data.Foldable/docs.json
-    tests/purs/publish/basic-example/output/Data.Foldable/externs.json
-    tests/purs/publish/basic-example/output/Data.FoldableWithIndex/docs.json
-    tests/purs/publish/basic-example/output/Data.FoldableWithIndex/externs.json
-    tests/purs/publish/basic-example/output/Data.Function.Uncurried/docs.json
-    tests/purs/publish/basic-example/output/Data.Function.Uncurried/externs.json
-    tests/purs/publish/basic-example/output/Data.Function/docs.json
-    tests/purs/publish/basic-example/output/Data.Function/externs.json
-    tests/purs/publish/basic-example/output/Data.Functor.Invariant/docs.json
-    tests/purs/publish/basic-example/output/Data.Functor.Invariant/externs.json
-    tests/purs/publish/basic-example/output/Data.Functor/docs.json
-    tests/purs/publish/basic-example/output/Data.Functor/externs.json
-    tests/purs/publish/basic-example/output/Data.FunctorWithIndex/docs.json
-    tests/purs/publish/basic-example/output/Data.FunctorWithIndex/externs.json
-    tests/purs/publish/basic-example/output/Data.Generic.Rep.Bounded/docs.json
-    tests/purs/publish/basic-example/output/Data.Generic.Rep.Bounded/externs.json
-    tests/purs/publish/basic-example/output/Data.Generic.Rep.Enum/docs.json
-    tests/purs/publish/basic-example/output/Data.Generic.Rep.Enum/externs.json
-    tests/purs/publish/basic-example/output/Data.Generic.Rep.Eq/docs.json
-    tests/purs/publish/basic-example/output/Data.Generic.Rep.Eq/externs.json
-    tests/purs/publish/basic-example/output/Data.Generic.Rep.Monoid/docs.json
-    tests/purs/publish/basic-example/output/Data.Generic.Rep.Monoid/externs.json
-    tests/purs/publish/basic-example/output/Data.Generic.Rep.Ord/docs.json
-    tests/purs/publish/basic-example/output/Data.Generic.Rep.Ord/externs.json
-    tests/purs/publish/basic-example/output/Data.Generic.Rep.Semigroup/docs.json
-    tests/purs/publish/basic-example/output/Data.Generic.Rep.Semigroup/externs.json
-    tests/purs/publish/basic-example/output/Data.Generic.Rep.Show/docs.json
-    tests/purs/publish/basic-example/output/Data.Generic.Rep.Show/externs.json
-    tests/purs/publish/basic-example/output/Data.Generic.Rep/docs.json
-    tests/purs/publish/basic-example/output/Data.Generic.Rep/externs.json
-    tests/purs/publish/basic-example/output/Data.HeytingAlgebra/docs.json
-    tests/purs/publish/basic-example/output/Data.HeytingAlgebra/externs.json
-    tests/purs/publish/basic-example/output/Data.Identity/docs.json
-    tests/purs/publish/basic-example/output/Data.Identity/externs.json
-    tests/purs/publish/basic-example/output/Data.Int.Bits/docs.json
-    tests/purs/publish/basic-example/output/Data.Int.Bits/externs.json
-    tests/purs/publish/basic-example/output/Data.Int/docs.json
-    tests/purs/publish/basic-example/output/Data.Int/externs.json
-    tests/purs/publish/basic-example/output/Data.Lazy/docs.json
-    tests/purs/publish/basic-example/output/Data.Lazy/externs.json
-    tests/purs/publish/basic-example/output/Data.List.Lazy.NonEmpty/docs.json
-    tests/purs/publish/basic-example/output/Data.List.Lazy.NonEmpty/externs.json
-    tests/purs/publish/basic-example/output/Data.List.Lazy.Types/docs.json
-    tests/purs/publish/basic-example/output/Data.List.Lazy.Types/externs.json
-    tests/purs/publish/basic-example/output/Data.List.Lazy/docs.json
-    tests/purs/publish/basic-example/output/Data.List.Lazy/externs.json
-    tests/purs/publish/basic-example/output/Data.List.NonEmpty/docs.json
-    tests/purs/publish/basic-example/output/Data.List.NonEmpty/externs.json
-    tests/purs/publish/basic-example/output/Data.List.Partial/docs.json
-    tests/purs/publish/basic-example/output/Data.List.Partial/externs.json
-    tests/purs/publish/basic-example/output/Data.List.Types/docs.json
-    tests/purs/publish/basic-example/output/Data.List.Types/externs.json
-    tests/purs/publish/basic-example/output/Data.List.ZipList/docs.json
-    tests/purs/publish/basic-example/output/Data.List.ZipList/externs.json
-    tests/purs/publish/basic-example/output/Data.List/docs.json
-    tests/purs/publish/basic-example/output/Data.List/externs.json
-    tests/purs/publish/basic-example/output/Data.Maybe.First/docs.json
-    tests/purs/publish/basic-example/output/Data.Maybe.First/externs.json
-    tests/purs/publish/basic-example/output/Data.Maybe.Last/docs.json
-    tests/purs/publish/basic-example/output/Data.Maybe.Last/externs.json
-    tests/purs/publish/basic-example/output/Data.Maybe/docs.json
-    tests/purs/publish/basic-example/output/Data.Maybe/externs.json
-    tests/purs/publish/basic-example/output/Data.Monoid.Additive/docs.json
-    tests/purs/publish/basic-example/output/Data.Monoid.Additive/externs.json
-    tests/purs/publish/basic-example/output/Data.Monoid.Conj/docs.json
-    tests/purs/publish/basic-example/output/Data.Monoid.Conj/externs.json
-    tests/purs/publish/basic-example/output/Data.Monoid.Disj/docs.json
-    tests/purs/publish/basic-example/output/Data.Monoid.Disj/externs.json
-    tests/purs/publish/basic-example/output/Data.Monoid.Dual/docs.json
-    tests/purs/publish/basic-example/output/Data.Monoid.Dual/externs.json
-    tests/purs/publish/basic-example/output/Data.Monoid.Endo/docs.json
-    tests/purs/publish/basic-example/output/Data.Monoid.Endo/externs.json
-    tests/purs/publish/basic-example/output/Data.Monoid.Multiplicative/docs.json
-    tests/purs/publish/basic-example/output/Data.Monoid.Multiplicative/externs.json
-    tests/purs/publish/basic-example/output/Data.Monoid/docs.json
-    tests/purs/publish/basic-example/output/Data.Monoid/externs.json
-    tests/purs/publish/basic-example/output/Data.NaturalTransformation/docs.json
-    tests/purs/publish/basic-example/output/Data.NaturalTransformation/externs.json
-    tests/purs/publish/basic-example/output/Data.Newtype/docs.json
-    tests/purs/publish/basic-example/output/Data.Newtype/externs.json
-    tests/purs/publish/basic-example/output/Data.NonEmpty/docs.json
-    tests/purs/publish/basic-example/output/Data.NonEmpty/externs.json
-    tests/purs/publish/basic-example/output/Data.Ord.Down/docs.json
-    tests/purs/publish/basic-example/output/Data.Ord.Down/externs.json
-    tests/purs/publish/basic-example/output/Data.Ord.Max/docs.json
-    tests/purs/publish/basic-example/output/Data.Ord.Max/externs.json
-    tests/purs/publish/basic-example/output/Data.Ord.Min/docs.json
-    tests/purs/publish/basic-example/output/Data.Ord.Min/externs.json
-    tests/purs/publish/basic-example/output/Data.Ord.Unsafe/docs.json
-    tests/purs/publish/basic-example/output/Data.Ord.Unsafe/externs.json
-    tests/purs/publish/basic-example/output/Data.Ord/docs.json
-    tests/purs/publish/basic-example/output/Data.Ord/externs.json
-    tests/purs/publish/basic-example/output/Data.Ordering/docs.json
-    tests/purs/publish/basic-example/output/Data.Ordering/externs.json
-    tests/purs/publish/basic-example/output/Data.Ring/docs.json
-    tests/purs/publish/basic-example/output/Data.Ring/externs.json
-    tests/purs/publish/basic-example/output/Data.Semigroup.First/docs.json
-    tests/purs/publish/basic-example/output/Data.Semigroup.First/externs.json
-    tests/purs/publish/basic-example/output/Data.Semigroup.Foldable/docs.json
-    tests/purs/publish/basic-example/output/Data.Semigroup.Foldable/externs.json
-    tests/purs/publish/basic-example/output/Data.Semigroup.Last/docs.json
-    tests/purs/publish/basic-example/output/Data.Semigroup.Last/externs.json
-    tests/purs/publish/basic-example/output/Data.Semigroup.Traversable/docs.json
-    tests/purs/publish/basic-example/output/Data.Semigroup.Traversable/externs.json
-    tests/purs/publish/basic-example/output/Data.Semigroup/docs.json
-    tests/purs/publish/basic-example/output/Data.Semigroup/externs.json
-    tests/purs/publish/basic-example/output/Data.Semiring/docs.json
-    tests/purs/publish/basic-example/output/Data.Semiring/externs.json
-    tests/purs/publish/basic-example/output/Data.Show/docs.json
-    tests/purs/publish/basic-example/output/Data.Show/externs.json
-    tests/purs/publish/basic-example/output/Data.String.CaseInsensitive/docs.json
-    tests/purs/publish/basic-example/output/Data.String.CaseInsensitive/externs.json
-    tests/purs/publish/basic-example/output/Data.String.CodePoints/docs.json
-    tests/purs/publish/basic-example/output/Data.String.CodePoints/externs.json
-    tests/purs/publish/basic-example/output/Data.String.CodeUnits/docs.json
-    tests/purs/publish/basic-example/output/Data.String.CodeUnits/externs.json
-    tests/purs/publish/basic-example/output/Data.String.Common/docs.json
-    tests/purs/publish/basic-example/output/Data.String.Common/externs.json
-    tests/purs/publish/basic-example/output/Data.String.Gen/docs.json
-    tests/purs/publish/basic-example/output/Data.String.Gen/externs.json
-    tests/purs/publish/basic-example/output/Data.String.NonEmpty.CaseInsensitive/docs.json
-    tests/purs/publish/basic-example/output/Data.String.NonEmpty.CaseInsensitive/externs.json
-    tests/purs/publish/basic-example/output/Data.String.NonEmpty.CodePoints/docs.json
-    tests/purs/publish/basic-example/output/Data.String.NonEmpty.CodePoints/externs.json
-    tests/purs/publish/basic-example/output/Data.String.NonEmpty.CodeUnits/docs.json
-    tests/purs/publish/basic-example/output/Data.String.NonEmpty.CodeUnits/externs.json
-    tests/purs/publish/basic-example/output/Data.String.NonEmpty.Internal/docs.json
-    tests/purs/publish/basic-example/output/Data.String.NonEmpty.Internal/externs.json
-    tests/purs/publish/basic-example/output/Data.String.NonEmpty/docs.json
-    tests/purs/publish/basic-example/output/Data.String.NonEmpty/externs.json
-    tests/purs/publish/basic-example/output/Data.String.Pattern/docs.json
-    tests/purs/publish/basic-example/output/Data.String.Pattern/externs.json
-    tests/purs/publish/basic-example/output/Data.String.Regex.Flags/docs.json
-    tests/purs/publish/basic-example/output/Data.String.Regex.Flags/externs.json
-    tests/purs/publish/basic-example/output/Data.String.Regex.Unsafe/docs.json
-    tests/purs/publish/basic-example/output/Data.String.Regex.Unsafe/externs.json
-    tests/purs/publish/basic-example/output/Data.String.Regex/docs.json
-    tests/purs/publish/basic-example/output/Data.String.Regex/externs.json
-    tests/purs/publish/basic-example/output/Data.String.Unsafe/docs.json
-    tests/purs/publish/basic-example/output/Data.String.Unsafe/externs.json
-    tests/purs/publish/basic-example/output/Data.String/docs.json
-    tests/purs/publish/basic-example/output/Data.String/externs.json
-    tests/purs/publish/basic-example/output/Data.Symbol/docs.json
-    tests/purs/publish/basic-example/output/Data.Symbol/externs.json
-    tests/purs/publish/basic-example/output/Data.Traversable.Accum.Internal/docs.json
-    tests/purs/publish/basic-example/output/Data.Traversable.Accum.Internal/externs.json
-    tests/purs/publish/basic-example/output/Data.Traversable.Accum/docs.json
-    tests/purs/publish/basic-example/output/Data.Traversable.Accum/externs.json
-    tests/purs/publish/basic-example/output/Data.Traversable/docs.json
-    tests/purs/publish/basic-example/output/Data.Traversable/externs.json
-    tests/purs/publish/basic-example/output/Data.TraversableWithIndex/docs.json
-    tests/purs/publish/basic-example/output/Data.TraversableWithIndex/externs.json
-    tests/purs/publish/basic-example/output/Data.Tuple.Nested/docs.json
-    tests/purs/publish/basic-example/output/Data.Tuple.Nested/externs.json
-    tests/purs/publish/basic-example/output/Data.Tuple/docs.json
-    tests/purs/publish/basic-example/output/Data.Tuple/externs.json
-    tests/purs/publish/basic-example/output/Data.Unfoldable/docs.json
-    tests/purs/publish/basic-example/output/Data.Unfoldable/externs.json
-    tests/purs/publish/basic-example/output/Data.Unfoldable1/docs.json
-    tests/purs/publish/basic-example/output/Data.Unfoldable1/externs.json
-    tests/purs/publish/basic-example/output/Data.Unit/docs.json
-    tests/purs/publish/basic-example/output/Data.Unit/externs.json
-    tests/purs/publish/basic-example/output/Data.Void/docs.json
-    tests/purs/publish/basic-example/output/Data.Void/externs.json
-    tests/purs/publish/basic-example/output/Effect.Class.Console/docs.json
-    tests/purs/publish/basic-example/output/Effect.Class.Console/externs.json
-    tests/purs/publish/basic-example/output/Effect.Class/docs.json
-    tests/purs/publish/basic-example/output/Effect.Class/externs.json
-    tests/purs/publish/basic-example/output/Effect.Console/docs.json
-    tests/purs/publish/basic-example/output/Effect.Console/externs.json
-    tests/purs/publish/basic-example/output/Effect.Ref/docs.json
-    tests/purs/publish/basic-example/output/Effect.Ref/externs.json
-    tests/purs/publish/basic-example/output/Effect.Uncurried/docs.json
-    tests/purs/publish/basic-example/output/Effect.Uncurried/externs.json
-    tests/purs/publish/basic-example/output/Effect.Unsafe/docs.json
-    tests/purs/publish/basic-example/output/Effect.Unsafe/externs.json
-    tests/purs/publish/basic-example/output/Effect/docs.json
-    tests/purs/publish/basic-example/output/Effect/externs.json
-    tests/purs/publish/basic-example/output/Global.Unsafe/docs.json
-    tests/purs/publish/basic-example/output/Global.Unsafe/externs.json
-    tests/purs/publish/basic-example/output/Global/docs.json
-    tests/purs/publish/basic-example/output/Global/externs.json
-    tests/purs/publish/basic-example/output/Main/docs.json
-    tests/purs/publish/basic-example/output/Main/externs.json
-    tests/purs/publish/basic-example/output/Math/docs.json
-    tests/purs/publish/basic-example/output/Math/externs.json
-    tests/purs/publish/basic-example/output/Partial.Unsafe/docs.json
-    tests/purs/publish/basic-example/output/Partial.Unsafe/externs.json
-    tests/purs/publish/basic-example/output/Partial/docs.json
-    tests/purs/publish/basic-example/output/Partial/externs.json
-    tests/purs/publish/basic-example/output/Prelude/docs.json
-    tests/purs/publish/basic-example/output/Prelude/externs.json
-    tests/purs/publish/basic-example/output/PSCI.Support/docs.json
-    tests/purs/publish/basic-example/output/PSCI.Support/externs.json
-    tests/purs/publish/basic-example/output/Record.Unsafe/docs.json
-    tests/purs/publish/basic-example/output/Record.Unsafe/externs.json
-    tests/purs/publish/basic-example/output/Test.Assert/docs.json
-    tests/purs/publish/basic-example/output/Test.Assert/externs.json
-    tests/purs/publish/basic-example/output/Type.Data.Boolean/docs.json
-    tests/purs/publish/basic-example/output/Type.Data.Boolean/externs.json
-    tests/purs/publish/basic-example/output/Type.Data.Ordering/docs.json
-    tests/purs/publish/basic-example/output/Type.Data.Ordering/externs.json
-    tests/purs/publish/basic-example/output/Type.Data.Row/docs.json
-    tests/purs/publish/basic-example/output/Type.Data.Row/externs.json
-    tests/purs/publish/basic-example/output/Type.Data.RowList/docs.json
-    tests/purs/publish/basic-example/output/Type.Data.RowList/externs.json
-    tests/purs/publish/basic-example/output/Type.Data.Symbol/docs.json
-    tests/purs/publish/basic-example/output/Type.Data.Symbol/externs.json
-    tests/purs/publish/basic-example/output/Type.Equality/docs.json
-    tests/purs/publish/basic-example/output/Type.Equality/externs.json
-    tests/purs/publish/basic-example/output/Type.Prelude/docs.json
-    tests/purs/publish/basic-example/output/Type.Prelude/externs.json
-    tests/purs/publish/basic-example/output/Type.Proxy/docs.json
-    tests/purs/publish/basic-example/output/Type.Proxy/externs.json
-    tests/purs/publish/basic-example/output/Type.Row.Homogeneous/docs.json
-    tests/purs/publish/basic-example/output/Type.Row.Homogeneous/externs.json
-    tests/purs/publish/basic-example/output/Type.Row/docs.json
-    tests/purs/publish/basic-example/output/Type.Row/externs.json
-    tests/purs/publish/basic-example/output/Unsafe.Coerce/docs.json
-    tests/purs/publish/basic-example/output/Unsafe.Coerce/externs.json
-    tests/purs/publish/basic-example/resolutions-legacy.json
-    tests/purs/publish/basic-example/resolutions.json
-    tests/json-compat/v0.11.3/generics-4.0.0.json
-    tests/json-compat/v0.11.3/symbols-3.0.0.json
-    tests/json-compat/v0.12.1/typelevel-prelude-3.0.0.json
-    tests/support/bower.json
-    tests/support/package-lock.json
-    tests/support/package.json
-    tests/support/prelude-resolutions.json
-    tests/support/setup-win.cmd
-    tests/support/psci/InteractivePrint.purs
-    tests/support/psci/Reload.purs
-    tests/support/psci/Reload.edit
-    tests/support/pscide/src/CompletionSpecDocs.purs
-    tests/support/pscide/src/FindUsage.purs
-    tests/support/pscide/src/FindUsage/Definition.purs
-    tests/support/pscide/src/FindUsage/Recursive.purs
-    tests/support/pscide/src/FindUsage/RecursiveShadowed.purs
-    tests/support/pscide/src/FindUsage/Reexport.purs
-    tests/support/pscide/src/ImportsSpec.purs
-    tests/support/pscide/src/ImportsSpec1.purs
-    tests/support/pscide/src/MatcherSpec.purs
-    tests/support/pscide/src/RebuildSpecDep.purs
-    tests/support/pscide/src/RebuildSpecSingleModule.purs
-    tests/support/pscide/src/RebuildSpecWithDeps.purs
-    tests/support/pscide/src/RebuildSpecWithForeign.purs
-    tests/support/pscide/src/RebuildSpecWithHiddenIdent.purs
-    tests/support/pscide/src/RebuildSpecWithForeign.js
-    tests/support/pscide/src/RebuildSpecSingleModule.fail
-    tests/support/pscide/src/RebuildSpecWithMissingForeign.fail
-    stack.yaml
-    README.md
-    INSTALL.md
-    CONTRIBUTORS.md
-    CONTRIBUTING.md
-
-source-repository head
-  type: git
-  location: https://github.com/purescript/purescript
-
-flag release
-  description: Mark this build as a release build: prevents inclusion of extra info e.g. commit SHA in --version output)
-
-  manual: False
-  default: False
-
-library
-  exposed-modules:
-      Control.Monad.Logger
-      Control.Monad.Supply
-      Control.Monad.Supply.Class
-      Language.PureScript
-      Language.PureScript.AST
-      Language.PureScript.AST.Binders
-      Language.PureScript.AST.Declarations
-      Language.PureScript.AST.Exported
-      Language.PureScript.AST.Literals
-      Language.PureScript.AST.Operators
-      Language.PureScript.AST.SourcePos
-      Language.PureScript.AST.Traversals
-      Language.PureScript.Bundle
-      Language.PureScript.CodeGen
-      Language.PureScript.CodeGen.JS
-      Language.PureScript.CodeGen.JS.Common
-      Language.PureScript.CodeGen.JS.Printer
-      Language.PureScript.Comments
-      Language.PureScript.Constants
-      Language.PureScript.CoreFn
-      Language.PureScript.CoreFn.Ann
-      Language.PureScript.CoreFn.Binders
-      Language.PureScript.CoreFn.Desugar
-      Language.PureScript.CoreFn.Expr
-      Language.PureScript.CoreFn.FromJSON
-      Language.PureScript.CoreFn.Meta
-      Language.PureScript.CoreFn.Module
-      Language.PureScript.CoreFn.Optimizer
-      Language.PureScript.CoreFn.ToJSON
-      Language.PureScript.CoreFn.Traversals
-      Language.PureScript.CoreImp
-      Language.PureScript.CoreImp.AST
-      Language.PureScript.CoreImp.Optimizer
-      Language.PureScript.CoreImp.Optimizer.Blocks
-      Language.PureScript.CoreImp.Optimizer.Common
-      Language.PureScript.CoreImp.Optimizer.Inliner
-      Language.PureScript.CoreImp.Optimizer.MagicDo
-      Language.PureScript.CoreImp.Optimizer.TCO
-      Language.PureScript.CoreImp.Optimizer.Unused
-      Language.PureScript.Crash
-      Language.PureScript.CST
-      Language.PureScript.CST.Convert
-      Language.PureScript.CST.Errors
-      Language.PureScript.CST.Layout
-      Language.PureScript.CST.Lexer
-      Language.PureScript.CST.Monad
-      Language.PureScript.CST.Parser
-      Language.PureScript.CST.Positions
-      Language.PureScript.CST.Print
-      Language.PureScript.CST.Traversals
-      Language.PureScript.CST.Traversals.Type
-      Language.PureScript.CST.Types
-      Language.PureScript.CST.Utils
-      Language.PureScript.Docs
-      Language.PureScript.Docs.AsHtml
-      Language.PureScript.Docs.AsMarkdown
-      Language.PureScript.Docs.Collect
-      Language.PureScript.Docs.Convert
-      Language.PureScript.Docs.Convert.ReExports
-      Language.PureScript.Docs.Convert.Single
-      Language.PureScript.Docs.Css
-      Language.PureScript.Docs.Prim
-      Language.PureScript.Docs.Render
-      Language.PureScript.Docs.RenderedCode
-      Language.PureScript.Docs.RenderedCode.RenderKind
-      Language.PureScript.Docs.RenderedCode.RenderType
-      Language.PureScript.Docs.RenderedCode.Types
-      Language.PureScript.Docs.Tags
-      Language.PureScript.Docs.Types
-      Language.PureScript.Docs.Utils.MonoidExtras
-      Language.PureScript.Environment
-      Language.PureScript.Errors
-      Language.PureScript.Errors.JSON
-      Language.PureScript.Externs
-      Language.PureScript.Hierarchy
-      Language.PureScript.Ide
-      Language.PureScript.Ide.CaseSplit
-      Language.PureScript.Ide.Command
-      Language.PureScript.Ide.Completion
-      Language.PureScript.Ide.Error
-      Language.PureScript.Ide.Externs
-      Language.PureScript.Ide.Filter
-      Language.PureScript.Ide.Filter.Declaration
-      Language.PureScript.Ide.Imports
-      Language.PureScript.Ide.Logging
-      Language.PureScript.Ide.Matcher
-      Language.PureScript.Ide.Prim
-      Language.PureScript.Ide.Rebuild
-      Language.PureScript.Ide.Reexports
-      Language.PureScript.Ide.SourceFile
-      Language.PureScript.Ide.State
-      Language.PureScript.Ide.Types
-      Language.PureScript.Ide.Usage
-      Language.PureScript.Ide.Util
-      Language.PureScript.Ide.Watcher
-      Language.PureScript.Interactive
-      Language.PureScript.Interactive.Completion
-      Language.PureScript.Interactive.Directive
-      Language.PureScript.Interactive.IO
-      Language.PureScript.Interactive.Message
-      Language.PureScript.Interactive.Module
-      Language.PureScript.Interactive.Parser
-      Language.PureScript.Interactive.Printer
-      Language.PureScript.Interactive.Types
-      Language.PureScript.Kinds
-      Language.PureScript.Label
-      Language.PureScript.Linter
-      Language.PureScript.Linter.Exhaustive
-      Language.PureScript.Linter.Imports
-      Language.PureScript.Make
-      Language.PureScript.Make.Actions
-      Language.PureScript.Make.BuildPlan
-      Language.PureScript.Make.Monad
-      Language.PureScript.ModuleDependencies
-      Language.PureScript.Names
-      Language.PureScript.Options
-      Language.PureScript.Pretty
-      Language.PureScript.Pretty.Common
-      Language.PureScript.Pretty.Kinds
-      Language.PureScript.Pretty.Types
-      Language.PureScript.Pretty.Values
-      Language.PureScript.PSString
-      Language.PureScript.Publish
-      Language.PureScript.Publish.BoxesHelpers
-      Language.PureScript.Publish.ErrorsWarnings
-      Language.PureScript.Publish.Utils
-      Language.PureScript.Renamer
-      Language.PureScript.Sugar
-      Language.PureScript.Sugar.AdoNotation
-      Language.PureScript.Sugar.BindingGroups
-      Language.PureScript.Sugar.CaseDeclarations
-      Language.PureScript.Sugar.DoNotation
-      Language.PureScript.Sugar.LetPattern
-      Language.PureScript.Sugar.Names
-      Language.PureScript.Sugar.Names.Common
-      Language.PureScript.Sugar.Names.Env
-      Language.PureScript.Sugar.Names.Exports
-      Language.PureScript.Sugar.Names.Imports
-      Language.PureScript.Sugar.ObjectWildcards
-      Language.PureScript.Sugar.Operators
-      Language.PureScript.Sugar.Operators.Binders
-      Language.PureScript.Sugar.Operators.Common
-      Language.PureScript.Sugar.Operators.Expr
-      Language.PureScript.Sugar.Operators.Types
-      Language.PureScript.Sugar.TypeClasses
-      Language.PureScript.Sugar.TypeClasses.Deriving
-      Language.PureScript.Sugar.TypeDeclarations
-      Language.PureScript.Traversals
-      Language.PureScript.TypeChecker
-      Language.PureScript.TypeChecker.Entailment
-      Language.PureScript.TypeChecker.Kinds
-      Language.PureScript.TypeChecker.Monad
-      Language.PureScript.TypeChecker.Skolems
-      Language.PureScript.TypeChecker.Subsumption
-      Language.PureScript.TypeChecker.Synonyms
-      Language.PureScript.TypeChecker.Types
-      Language.PureScript.TypeChecker.TypeSearch
-      Language.PureScript.TypeChecker.Unify
-      Language.PureScript.TypeClassDictionaries
-      Language.PureScript.Types
-      System.IO.UTF8
-  other-modules:
-      Paths_purescript
-  hs-source-dirs:
-      src
-  default-extensions: ConstraintKinds DataKinds DeriveFunctor DeriveFoldable DeriveTraversable DeriveGeneric EmptyDataDecls FlexibleContexts KindSignatures LambdaCase MultiParamTypeClasses NoImplicitPrelude PatternGuards PatternSynonyms RankNTypes RecordWildCards OverloadedStrings ScopedTypeVariables TupleSections ViewPatterns
-  ghc-options: -Wall -O2
-  build-depends:
-      Cabal >=2.2
-    , Glob >=0.9 && <0.10
-    , aeson >=1.0 && <1.5
-    , aeson-better-errors >=0.8
-    , ansi-terminal >=0.7.1 && <0.9
-    , array
-    , base >=4.8 && <4.13
-    , base-compat >=0.6.0
-    , blaze-html >=0.8.1 && <0.10
-    , bower-json >=1.0.0.1 && <1.1
-    , boxes >=0.1.4 && <0.2.0
-    , bytestring
-    , cheapskate >=0.1 && <0.2
-    , clock
-    , containers
-    , data-ordlist >=0.4.7.0
-    , deepseq
-    , directory >=1.2.3
-    , dlist
-    , edit-distance
-    , file-embed
-    , filepath
-    , fsnotify >=0.2.1
-    , haskeline >=0.7.0.0
-    , language-javascript >=0.6.0.9 && <0.7
-    , lifted-async >=0.10.0.3 && <0.10.1
-    , lifted-base >=0.2.3 && <0.2.4
-    , microlens-platform >=0.3.9.0 && <0.4
-    , monad-control >=1.0.0.0 && <1.1
-    , monad-logger >=0.3 && <0.4
-    , mtl >=2.1.0 && <2.3.0
-    , parallel >=3.2 && <3.3
-    , parsec >=3.1.10
-    , pattern-arrows >=0.0.2 && <0.1
-    , process >=1.2.0 && <1.7
-    , protolude >=0.1.6
-    , regex-tdfa
-    , safe >=0.3.9 && <0.4
-    , scientific >=0.3.4.9 && <0.4
-    , semigroups >=0.16.2 && <0.19
-    , sourcemap >=0.1.6
-    , split
-    , stm >=0.2.4.0
-    , stringsearch
-    , syb
-    , text
-    , time
-    , transformers >=0.3.0 && <0.6
-    , transformers-base >=0.4.0 && <0.5
-    , transformers-compat >=0.3.0
-    , unordered-containers
-    , utf8-string >=1 && <2
-    , vector
-  default-language: Haskell2010
-
-executable purs
-  main-is: Main.hs
-  other-modules:
-      Command.Bundle
-      Command.Compile
-      Command.Docs
-      Command.Docs.Html
-      Command.Docs.Markdown
-      Command.Hierarchy
-      Command.Ide
-      Command.Publish
-      Command.REPL
-      Paths_purescript
-      Version
-  hs-source-dirs:
-      app
-  ghc-options: -Wall -O2 -fno-warn-unused-do-bind -threaded -rtsopts -with-rtsopts=-N
-  build-depends:
-      Cabal >=2.2
-    , Glob >=0.9 && <0.10
-    , aeson >=1.0 && <1.5
-    , aeson-better-errors >=0.8
-    , ansi-terminal >=0.7.1 && <0.9
-    , ansi-wl-pprint
-    , array
-    , base >=4.8 && <4.13
-    , base-compat >=0.6.0
-    , blaze-html >=0.8.1 && <0.10
-    , bower-json >=1.0.0.1 && <1.1
-    , boxes >=0.1.4 && <0.2.0
-    , bytestring
-    , cheapskate >=0.1 && <0.2
-    , clock
-    , containers
-    , data-ordlist >=0.4.7.0
-    , deepseq
-    , directory >=1.2.3
-    , dlist
-    , edit-distance
-    , file-embed
-    , filepath
-    , fsnotify >=0.2.1
-    , haskeline >=0.7.0.0
-    , http-types
-    , language-javascript >=0.6.0.9 && <0.7
-    , lifted-async >=0.10.0.3 && <0.10.1
-    , lifted-base >=0.2.3 && <0.2.4
-    , microlens-platform >=0.3.9.0 && <0.4
-    , monad-control >=1.0.0.0 && <1.1
-    , monad-logger >=0.3 && <0.4
-    , mtl >=2.1.0 && <2.3.0
-    , network >=3.0.1.1
-    , optparse-applicative >=0.13.0
-    , parallel >=3.2 && <3.3
-    , parsec >=3.1.10
-    , pattern-arrows >=0.0.2 && <0.1
-    , process >=1.2.0 && <1.7
-    , protolude >=0.1.6
-    , purescript
-    , regex-tdfa
-    , safe >=0.3.9 && <0.4
-    , scientific >=0.3.4.9 && <0.4
-    , semigroups >=0.16.2 && <0.19
-    , sourcemap >=0.1.6
-    , split
-    , stm >=0.2.4.0
-    , stringsearch
-    , syb
-    , text
-    , time
-    , transformers >=0.3.0 && <0.6
-    , transformers-base >=0.4.0 && <0.5
-    , transformers-compat >=0.3.0
-    , unordered-containers
-    , utf8-string >=1 && <2
-    , vector
-    , wai ==3.*
-    , wai-websockets ==3.*
-    , warp ==3.*
-    , websockets >=0.9 && <0.13
-  if flag(release)
-    cpp-options: -DRELEASE
-  else
-    build-depends:
-        gitrev >=1.2.0 && <1.4
-  default-language: Haskell2010
-
-test-suite tests
-  type: exitcode-stdio-1.0
-  main-is: Main.hs
-  other-modules:
-      Language.PureScript.Ide.CompletionSpec
-      Language.PureScript.Ide.FilterSpec
-      Language.PureScript.Ide.ImportsSpec
-      Language.PureScript.Ide.MatcherSpec
-      Language.PureScript.Ide.RebuildSpec
-      Language.PureScript.Ide.ReexportsSpec
-      Language.PureScript.Ide.SourceFileSpec
-      Language.PureScript.Ide.StateSpec
-      Language.PureScript.Ide.Test
-      Language.PureScript.Ide.UsageSpec
-      PscIdeSpec
-      TestBundle
-      TestCompiler
-      TestCoreFn
-      TestCst
-      TestDocs
-      TestHierarchy
-      TestIde
-      TestPrimDocs
-      TestPsci
-      TestPsci.CommandTest
-      TestPsci.CompletionTest
-      TestPsci.EvalTest
-      TestPsci.TestEnv
-      TestPscPublish
-      TestUtils
-      Paths_purescript
-  hs-source-dirs:
-      tests
-  default-extensions: NoImplicitPrelude
-  ghc-options: -Wall
-  build-depends:
-      Cabal >=2.2
-    , Glob >=0.9 && <0.10
-    , HUnit
-    , aeson >=1.0 && <1.5
-    , aeson-better-errors >=0.8
-    , ansi-terminal >=0.7.1 && <0.9
-    , array
-    , base >=4.8 && <4.13
-    , base-compat >=0.6.0
-    , blaze-html >=0.8.1 && <0.10
-    , bower-json >=1.0.0.1 && <1.1
-    , boxes >=0.1.4 && <0.2.0
-    , bytestring
-    , cheapskate >=0.1 && <0.2
-    , clock
-    , containers
-    , data-ordlist >=0.4.7.0
-    , deepseq
-    , directory >=1.2.3
-    , dlist
-    , edit-distance
-    , file-embed
-    , filepath
-    , fsnotify >=0.2.1
-    , haskeline >=0.7.0.0
-    , hspec
-    , hspec-discover
-    , language-javascript >=0.6.0.9 && <0.7
-    , lifted-async >=0.10.0.3 && <0.10.1
-    , lifted-base >=0.2.3 && <0.2.4
-    , microlens-platform >=0.3.9.0 && <0.4
-    , monad-control >=1.0.0.0 && <1.1
-    , monad-logger >=0.3 && <0.4
-    , mtl >=2.1.0 && <2.3.0
-    , parallel >=3.2 && <3.3
-    , parsec >=3.1.10
-    , pattern-arrows >=0.0.2 && <0.1
-    , process >=1.2.0 && <1.7
-    , protolude >=0.1.6
-    , purescript
-    , regex-tdfa
-    , safe >=0.3.9 && <0.4
-    , scientific >=0.3.4.9 && <0.4
-    , semigroups >=0.16.2 && <0.19
-    , sourcemap >=0.1.6
-    , split
-    , stm >=0.2.4.0
-    , stringsearch
-    , syb
-    , tasty
-    , tasty-golden
-    , tasty-hspec
-    , tasty-quickcheck
-    , text
-    , time
-    , transformers >=0.3.0 && <0.6
-    , transformers-base >=0.4.0 && <0.5
-    , transformers-compat >=0.3.0
-    , unordered-containers
-    , utf8-string >=1 && <2
-    , vector
-  default-language: Haskell2010
+cabal-version:      2.4
+name:               purescript
+version:            0.15.15
+license:            BSD-3-Clause
+license-file:       LICENSE
+copyright:
+    (c) 2013-17 Phil Freeman, (c) 2014-19 Gary Burgess, (c) other contributors (see CONTRIBUTORS.md)
+
+maintainer:
+    Gary Burgess <gary.burgess@gmail.com>, Hardy Jones <jones3.hardy@gmail.com>, Harry Garrood <harry@garrood.me>, Christoph Hegemann <christoph.hegemann1337@gmail.com>, Liam Goodacre <goodacre.liam@gmail.com>, Nathan Faubion <nathan@n-son.com>
+
+author:             Phil Freeman <paf31@cantab.net>
+stability:          experimental
+homepage:           http://www.purescript.org/
+bug-reports:        https://github.com/purescript/purescript/issues
+synopsis:           PureScript Programming Language Compiler
+description:
+    A small strongly, statically typed programming language with expressive types, inspired by Haskell and compiling to JavaScript.
+
+category:           Language
+build-type:         Simple
+extra-source-files:
+    app/static/*.css
+    app/static/*.less
+    bundle/build.sh
+    bundle/README
+    tests/purs/**/*.js
+    tests/purs/**/*.js.map
+    tests/purs/**/*.purs
+    tests/purs/**/*.json
+    tests/purs/**/*.out
+    tests/json-compat/**/*.json
+    tests/support/*.json
+    tests/support/checkSourceMapValidity.js
+    tests/support/psci/**/*.purs
+    tests/support/psci/**/*.edit
+    tests/support/pscide/src/**/*.purs
+    tests/support/pscide/src/**/*.js
+    tests/support/pscide/src/**/*.fail
+    stack.yaml
+    README.md
+    INSTALL.md
+    CONTRIBUTORS.md
+    CONTRIBUTING.md
+    VERSIONING_POLICY.md
+    .hspec
+
+source-repository head
+    type:     git
+    location: https://github.com/purescript/purescript
+
+flag release
+    description:
+        Mark this build as a release build: prevents inclusion of extra info e.g. commit SHA in --version output)
+
+    default:     False
+
+library
+    exposed-modules:
+        Control.Monad.Logger
+        Control.Monad.Supply
+        Control.Monad.Supply.Class
+        Language.PureScript
+        Language.PureScript.AST
+        Language.PureScript.AST.Binders
+        Language.PureScript.AST.Declarations
+        Language.PureScript.AST.Declarations.ChainId
+        Language.PureScript.AST.Exported
+        Language.PureScript.AST.Literals
+        Language.PureScript.AST.Operators
+        Language.PureScript.AST.SourcePos
+        Language.PureScript.AST.Traversals
+        Language.PureScript.AST.Utils
+        Language.PureScript.Bundle
+        Language.PureScript.CodeGen
+        Language.PureScript.CodeGen.JS
+        Language.PureScript.CodeGen.JS.Common
+        Language.PureScript.CodeGen.JS.Printer
+        Language.PureScript.Constants.Libs
+        Language.PureScript.CoreFn
+        Language.PureScript.CoreFn.Ann
+        Language.PureScript.CoreFn.Binders
+        Language.PureScript.CoreFn.CSE
+        Language.PureScript.CoreFn.Desugar
+        Language.PureScript.CoreFn.Expr
+        Language.PureScript.CoreFn.FromJSON
+        Language.PureScript.CoreFn.Laziness
+        Language.PureScript.CoreFn.Meta
+        Language.PureScript.CoreFn.Module
+        Language.PureScript.CoreFn.Optimizer
+        Language.PureScript.CoreFn.ToJSON
+        Language.PureScript.CoreFn.Traversals
+        Language.PureScript.CoreImp
+        Language.PureScript.CoreImp.AST
+        Language.PureScript.CoreImp.Module
+        Language.PureScript.CoreImp.Optimizer
+        Language.PureScript.CoreImp.Optimizer.Blocks
+        Language.PureScript.CoreImp.Optimizer.Common
+        Language.PureScript.CoreImp.Optimizer.Inliner
+        Language.PureScript.CoreImp.Optimizer.MagicDo
+        Language.PureScript.CoreImp.Optimizer.TCO
+        Language.PureScript.CoreImp.Optimizer.Unused
+        Language.PureScript.CST
+        Language.PureScript.CST.Convert
+        Language.PureScript.CST.Errors
+        Language.PureScript.CST.Flatten
+        Language.PureScript.CST.Layout
+        Language.PureScript.CST.Lexer
+        Language.PureScript.CST.Monad
+        Language.PureScript.CST.Parser
+        Language.PureScript.CST.Positions
+        Language.PureScript.CST.Print
+        Language.PureScript.CST.Traversals
+        Language.PureScript.CST.Traversals.Type
+        Language.PureScript.CST.Types
+        Language.PureScript.CST.Utils
+        Language.PureScript.Comments
+        Language.PureScript.Constants.Prim
+        Language.PureScript.Crash
+        Language.PureScript.Docs
+        Language.PureScript.Docs.AsHtml
+        Language.PureScript.Docs.AsMarkdown
+        Language.PureScript.Docs.Collect
+        Language.PureScript.Docs.Convert
+        Language.PureScript.Docs.Convert.ReExports
+        Language.PureScript.Docs.Convert.Single
+        Language.PureScript.Docs.Css
+        Language.PureScript.Docs.Prim
+        Language.PureScript.Docs.Render
+        Language.PureScript.Docs.RenderedCode
+        Language.PureScript.Docs.RenderedCode.RenderType
+        Language.PureScript.Docs.RenderedCode.Types
+        Language.PureScript.Docs.Tags
+        Language.PureScript.Docs.Types
+        Language.PureScript.Docs.Utils.MonoidExtras
+        Language.PureScript.Environment
+        Language.PureScript.Errors
+        Language.PureScript.Errors.JSON
+        Language.PureScript.Externs
+        Language.PureScript.Glob
+        Language.PureScript.Graph
+        Language.PureScript.Hierarchy
+        Language.PureScript.Ide
+        Language.PureScript.Ide.CaseSplit
+        Language.PureScript.Ide.Command
+        Language.PureScript.Ide.Completion
+        Language.PureScript.Ide.Error
+        Language.PureScript.Ide.Externs
+        Language.PureScript.Ide.Filter
+        Language.PureScript.Ide.Filter.Declaration
+        Language.PureScript.Ide.Filter.Imports
+        Language.PureScript.Ide.Imports
+        Language.PureScript.Ide.Imports.Actions
+        Language.PureScript.Ide.Logging
+        Language.PureScript.Ide.Matcher
+        Language.PureScript.Ide.Prim
+        Language.PureScript.Ide.Rebuild
+        Language.PureScript.Ide.Reexports
+        Language.PureScript.Ide.SourceFile
+        Language.PureScript.Ide.State
+        Language.PureScript.Ide.Types
+        Language.PureScript.Ide.Usage
+        Language.PureScript.Ide.Util
+        Language.PureScript.Interactive
+        Language.PureScript.Interactive.Completion
+        Language.PureScript.Interactive.Directive
+        Language.PureScript.Interactive.IO
+        Language.PureScript.Interactive.Message
+        Language.PureScript.Interactive.Module
+        Language.PureScript.Interactive.Parser
+        Language.PureScript.Interactive.Printer
+        Language.PureScript.Interactive.Types
+        Language.PureScript.Label
+        Language.PureScript.Linter
+        Language.PureScript.Linter.Exhaustive
+        Language.PureScript.Linter.Imports
+        Language.PureScript.Linter.Wildcards
+        Language.PureScript.Make
+        Language.PureScript.Make.Actions
+        Language.PureScript.Make.BuildPlan
+        Language.PureScript.Make.Cache
+        Language.PureScript.Make.Monad
+        Language.PureScript.ModuleDependencies
+        Language.PureScript.Names
+        Language.PureScript.Options
+        Language.PureScript.Pretty
+        Language.PureScript.Pretty.Common
+        Language.PureScript.Pretty.Types
+        Language.PureScript.Pretty.Values
+        Language.PureScript.PSString
+        Language.PureScript.Publish
+        Language.PureScript.Publish.BoxesHelpers
+        Language.PureScript.Publish.ErrorsWarnings
+        Language.PureScript.Publish.Registry.Compat
+        Language.PureScript.Publish.Utils
+        Language.PureScript.Renamer
+        Language.PureScript.Roles
+        Language.PureScript.Sugar
+        Language.PureScript.Sugar.AdoNotation
+        Language.PureScript.Sugar.BindingGroups
+        Language.PureScript.Sugar.CaseDeclarations
+        Language.PureScript.Sugar.DoNotation
+        Language.PureScript.Sugar.LetPattern
+        Language.PureScript.Sugar.Names
+        Language.PureScript.Sugar.Names.Common
+        Language.PureScript.Sugar.Names.Env
+        Language.PureScript.Sugar.Names.Exports
+        Language.PureScript.Sugar.Names.Imports
+        Language.PureScript.Sugar.ObjectWildcards
+        Language.PureScript.Sugar.Operators
+        Language.PureScript.Sugar.Operators.Binders
+        Language.PureScript.Sugar.Operators.Common
+        Language.PureScript.Sugar.Operators.Expr
+        Language.PureScript.Sugar.Operators.Types
+        Language.PureScript.Sugar.TypeClasses
+        Language.PureScript.Sugar.TypeClasses.Deriving
+        Language.PureScript.Sugar.TypeDeclarations
+        Language.PureScript.Traversals
+        Language.PureScript.TypeChecker
+        Language.PureScript.TypeChecker.Deriving
+        Language.PureScript.TypeChecker.Entailment
+        Language.PureScript.TypeChecker.Entailment.Coercible
+        Language.PureScript.TypeChecker.Entailment.IntCompare
+        Language.PureScript.TypeChecker.Kinds
+        Language.PureScript.TypeChecker.Monad
+        Language.PureScript.TypeChecker.Roles
+        Language.PureScript.TypeChecker.Skolems
+        Language.PureScript.TypeChecker.Subsumption
+        Language.PureScript.TypeChecker.Synonyms
+        Language.PureScript.TypeChecker.Types
+        Language.PureScript.TypeChecker.TypeSearch
+        Language.PureScript.TypeChecker.Unify
+        Language.PureScript.TypeClassDictionaries
+        Language.PureScript.Types
+        System.IO.UTF8
+
+    build-tool-depends: happy:happy ==1.20.0
+    hs-source-dirs:     src
+    other-modules:
+        Data.Text.PureScript
+        Language.PureScript.Constants.TH
+        Paths_purescript
+
+    autogen-modules:    Paths_purescript
+    default-language:   Haskell2010
+    default-extensions:
+        BangPatterns ConstraintKinds DataKinds DefaultSignatures
+        DeriveFunctor DeriveFoldable DeriveTraversable DeriveGeneric
+        DerivingStrategies DerivingVia EmptyDataDecls FlexibleContexts
+        FlexibleInstances GeneralizedNewtypeDeriving ImportQualifiedPost
+        KindSignatures LambdaCase MultiParamTypeClasses NamedFieldPuns
+        NoImplicitPrelude PatternGuards PatternSynonyms RankNTypes
+        RecordWildCards OverloadedRecordDot OverloadedStrings
+        ScopedTypeVariables TupleSections TypeFamilies ViewPatterns
+
+    ghc-options:
+        -Weverything -Wno-missing-exported-signatures
+        -Wno-missing-import-lists -Wno-missed-specialisations
+        -Wno-all-missed-specialisations -Wno-unsafe -Wno-safe
+        -Wno-trustworthy-safe -Wno-inferred-safe-imports
+        -Wno-missing-safe-haskell-mode -Wno-missing-local-signatures
+        -Wno-monomorphism-restriction -Wno-missing-deriving-strategies
+        -Wno-missing-export-lists -Wno-missing-kind-signatures
+        -Wno-partial-fields
+
+    build-depends:
+        aeson >=2.0.3.0 && <2.1,
+        aeson-better-errors >=0.9.1.1 && <0.10,
+        ansi-terminal >=0.11.3 && <0.12,
+        array >=0.5.4.0 && <0.6,
+        base >=4.16.2.0 && <4.17,
+        blaze-html >=0.9.1.2 && <0.10,
+        bower-json >=1.1.0.0 && <1.2,
+        boxes >=0.1.5 && <0.2,
+        bytestring >=0.11.3.1 && <0.12,
+        Cabal >=3.6.3.0 && <3.7,
+        cborg >=0.2.7.0 && <0.3,
+        serialise >=0.2.5.0 && <0.3,
+        cheapskate >=0.1.1.2 && <0.2,
+        clock >=0.8.3 && <0.9,
+        containers >=0.6.5.1 && <0.7,
+        cryptonite >=0.30 && <0.31,
+        data-ordlist >=0.4.7.0 && <0.5,
+        deepseq >=1.4.6.1 && <1.5,
+        directory >=1.3.6.2 && <1.4,
+        dlist >=1.0 && <1.1,
+        edit-distance >=0.2.2.1 && <0.3,
+        file-embed >=0.0.15.0 && <0.1,
+        filepath >=1.4.2.2 && <1.5,
+        Glob >=0.10.2 && <0.11,
+        haskeline >=0.8.2 && <0.9,
+        language-javascript ==0.7.0.0,
+        lens >=5.1.1 && <5.2,
+        lifted-async >=0.10.2.2 && <0.11,
+        lifted-base >=0.2.3.12 && <0.3,
+        memory >=0.17.0 && <0.18,
+        monad-control >=1.0.3.1 && <1.1,
+        monad-logger >=0.3.36 && <0.4,
+        monoidal-containers >=0.6.2.0 && <0.7,
+        mtl >=2.2.2 && <2.3,
+        parallel >=3.2.2.0 && <3.3,
+        parsec >=3.1.15.0 && <3.2,
+        pattern-arrows >=0.0.2 && <0.1,
+        process ==1.6.13.1,
+        protolude >=0.3.1 && <0.4,
+        regex-tdfa >=1.3.1.2 && <1.4,
+        safe >=0.3.19 && <0.4,
+        scientific >=0.3.7.0 && <0.4,
+        semigroups >=0.20 && <0.21,
+        semialign >=1.2.0.1 && <1.3,
+        sourcemap >=0.1.7 && <0.2,
+        stm >=2.5.0.2 && <2.6,
+        stringsearch >=0.3.6.6 && <0.4,
+        template-haskell >=2.18.0.0 && <2.19,
+        text >=1.2.5.0 && <1.3,
+        these >=1.1.1.1 && <1.2,
+        time >=1.11.1.1 && <1.12,
+        transformers >=0.5.6.2 && <0.6,
+        transformers-base >=0.4.6 && <0.5,
+        utf8-string >=1.0.2 && <1.1,
+        vector >=0.12.3.1 && <0.13,
+        witherable >=0.4.2 && <0.5
+
+executable purs
+    main-is:            Main.hs
+    build-tool-depends: happy:happy ==1.20.0
+    hs-source-dirs:     app
+    other-modules:
+        Command.Bundle
+        Command.Compile
+        Command.Docs
+        Command.Docs.Html
+        Command.Docs.Markdown
+        Command.Graph
+        Command.Hierarchy
+        Command.Ide
+        Command.Publish
+        Command.REPL
+        SharedCLI
+        Version
+        Paths_purescript
+
+    autogen-modules:    Paths_purescript
+    default-language:   Haskell2010
+    default-extensions:
+        BangPatterns ConstraintKinds DataKinds DefaultSignatures
+        DeriveFunctor DeriveFoldable DeriveTraversable DeriveGeneric
+        DerivingStrategies DerivingVia EmptyDataDecls FlexibleContexts
+        FlexibleInstances GeneralizedNewtypeDeriving ImportQualifiedPost
+        KindSignatures LambdaCase MultiParamTypeClasses NamedFieldPuns
+        NoImplicitPrelude PatternGuards PatternSynonyms RankNTypes
+        RecordWildCards OverloadedRecordDot OverloadedStrings
+        ScopedTypeVariables TupleSections TypeFamilies ViewPatterns
+
+    ghc-options:
+        -Weverything -Wno-missing-exported-signatures
+        -Wno-missing-import-lists -Wno-missed-specialisations
+        -Wno-all-missed-specialisations -Wno-unsafe -Wno-safe
+        -Wno-trustworthy-safe -Wno-inferred-safe-imports
+        -Wno-missing-safe-haskell-mode -Wno-missing-local-signatures
+        -Wno-monomorphism-restriction -Wno-missing-deriving-strategies
+        -Wno-missing-export-lists -Wno-missing-kind-signatures
+        -Wno-partial-fields -fno-warn-unused-do-bind -threaded -rtsopts
+        -with-rtsopts=-N -Wno-unused-packages
+
+    build-depends:
+        aeson >=2.0.3.0 && <2.1,
+        aeson-better-errors >=0.9.1.1 && <0.10,
+        ansi-terminal >=0.11.3 && <0.12,
+        array >=0.5.4.0 && <0.6,
+        base >=4.16.2.0 && <4.17,
+        blaze-html >=0.9.1.2 && <0.10,
+        bower-json >=1.1.0.0 && <1.2,
+        boxes >=0.1.5 && <0.2,
+        bytestring >=0.11.3.1 && <0.12,
+        Cabal >=3.6.3.0 && <3.7,
+        cborg >=0.2.7.0 && <0.3,
+        serialise >=0.2.5.0 && <0.3,
+        cheapskate >=0.1.1.2 && <0.2,
+        clock >=0.8.3 && <0.9,
+        containers >=0.6.5.1 && <0.7,
+        cryptonite >=0.30 && <0.31,
+        data-ordlist >=0.4.7.0 && <0.5,
+        deepseq >=1.4.6.1 && <1.5,
+        directory >=1.3.6.2 && <1.4,
+        dlist >=1.0 && <1.1,
+        edit-distance >=0.2.2.1 && <0.3,
+        file-embed >=0.0.15.0 && <0.1,
+        filepath >=1.4.2.2 && <1.5,
+        Glob >=0.10.2 && <0.11,
+        haskeline >=0.8.2 && <0.9,
+        language-javascript ==0.7.0.0,
+        lens >=5.1.1 && <5.2,
+        lifted-async >=0.10.2.2 && <0.11,
+        lifted-base >=0.2.3.12 && <0.3,
+        memory >=0.17.0 && <0.18,
+        monad-control >=1.0.3.1 && <1.1,
+        monad-logger >=0.3.36 && <0.4,
+        monoidal-containers >=0.6.2.0 && <0.7,
+        mtl >=2.2.2 && <2.3,
+        parallel >=3.2.2.0 && <3.3,
+        parsec >=3.1.15.0 && <3.2,
+        pattern-arrows >=0.0.2 && <0.1,
+        process ==1.6.13.1,
+        protolude >=0.3.1 && <0.4,
+        regex-tdfa >=1.3.1.2 && <1.4,
+        safe >=0.3.19 && <0.4,
+        scientific >=0.3.7.0 && <0.4,
+        semigroups >=0.20 && <0.21,
+        semialign >=1.2.0.1 && <1.3,
+        sourcemap >=0.1.7 && <0.2,
+        stm >=2.5.0.2 && <2.6,
+        stringsearch >=0.3.6.6 && <0.4,
+        template-haskell >=2.18.0.0 && <2.19,
+        text >=1.2.5.0 && <1.3,
+        these >=1.1.1.1 && <1.2,
+        time >=1.11.1.1 && <1.12,
+        transformers >=0.5.6.2 && <0.6,
+        transformers-base >=0.4.6 && <0.5,
+        utf8-string >=1.0.2 && <1.1,
+        vector >=0.12.3.1 && <0.13,
+        witherable >=0.4.2 && <0.5,
+        ansi-wl-pprint >=0.6.9 && <0.7,
+        exceptions >=0.10.4 && <0.11,
+        network >=3.1.2.7 && <3.2,
+        optparse-applicative >=0.17.0.0 && <0.18,
+        purescript
+
+    if flag(release)
+        cpp-options: -DRELEASE
+
+    else
+        build-depends: gitrev >=1.2.0 && <1.4
+
+test-suite tests
+    type:               exitcode-stdio-1.0
+    main-is:            Main.hs
+    build-tool-depends:
+        happy:happy ==1.20.0, hspec-discover:hspec-discover,
+        purescript:purs
+
+    hs-source-dirs:     tests
+    other-modules:
+        Language.PureScript.Ide.CompletionSpec
+        Language.PureScript.Ide.FilterSpec
+        Language.PureScript.Ide.ImportsSpec
+        Language.PureScript.Ide.MatcherSpec
+        Language.PureScript.Ide.RebuildSpec
+        Language.PureScript.Ide.ReexportsSpec
+        Language.PureScript.Ide.SourceFileSpec
+        Language.PureScript.Ide.StateSpec
+        Language.PureScript.Ide.Test
+        Language.PureScript.Ide.UsageSpec
+        PscIdeSpec
+        TestAst
+        TestCompiler
+        TestCoreFn
+        TestCst
+        TestDocs
+        TestGraph
+        TestHierarchy
+        TestIde
+        TestMake
+        TestPrimDocs
+        TestPsci
+        TestPsci.CommandTest
+        TestPsci.CompletionTest
+        TestPsci.EvalTest
+        TestPsci.TestEnv
+        TestPscPublish
+        TestSourceMaps
+        TestUtils
+        Paths_purescript
+
+    default-language:   Haskell2010
+    default-extensions:
+        BangPatterns ConstraintKinds DataKinds DefaultSignatures
+        DeriveFunctor DeriveFoldable DeriveTraversable DeriveGeneric
+        DerivingStrategies DerivingVia EmptyDataDecls FlexibleContexts
+        FlexibleInstances GeneralizedNewtypeDeriving ImportQualifiedPost
+        KindSignatures LambdaCase MultiParamTypeClasses NamedFieldPuns
+        NoImplicitPrelude PatternGuards PatternSynonyms RankNTypes
+        RecordWildCards OverloadedRecordDot OverloadedStrings
+        ScopedTypeVariables TupleSections TypeFamilies ViewPatterns
+
+    ghc-options:
+        -Weverything -Wno-missing-exported-signatures
+        -Wno-missing-import-lists -Wno-missed-specialisations
+        -Wno-all-missed-specialisations -Wno-unsafe -Wno-safe
+        -Wno-trustworthy-safe -Wno-inferred-safe-imports
+        -Wno-missing-safe-haskell-mode -Wno-missing-local-signatures
+        -Wno-monomorphism-restriction -Wno-missing-deriving-strategies
+        -Wno-missing-export-lists -Wno-missing-kind-signatures
+        -Wno-partial-fields -Wno-incomplete-uni-patterns
+        -Wno-unused-packages
+
+    build-depends:
+        aeson >=2.0.3.0 && <2.1,
+        aeson-better-errors >=0.9.1.1 && <0.10,
+        ansi-terminal >=0.11.3 && <0.12,
+        array >=0.5.4.0 && <0.6,
+        base >=4.16.2.0 && <4.17,
+        blaze-html >=0.9.1.2 && <0.10,
+        bower-json >=1.1.0.0 && <1.2,
+        boxes >=0.1.5 && <0.2,
+        bytestring >=0.11.3.1 && <0.12,
+        Cabal >=3.6.3.0 && <3.7,
+        cborg >=0.2.7.0 && <0.3,
+        serialise >=0.2.5.0 && <0.3,
+        cheapskate >=0.1.1.2 && <0.2,
+        clock >=0.8.3 && <0.9,
+        containers >=0.6.5.1 && <0.7,
+        cryptonite >=0.30 && <0.31,
+        data-ordlist >=0.4.7.0 && <0.5,
+        deepseq >=1.4.6.1 && <1.5,
+        directory >=1.3.6.2 && <1.4,
+        dlist >=1.0 && <1.1,
+        edit-distance >=0.2.2.1 && <0.3,
+        file-embed >=0.0.15.0 && <0.1,
+        filepath >=1.4.2.2 && <1.5,
+        Glob >=0.10.2 && <0.11,
+        haskeline >=0.8.2 && <0.9,
+        language-javascript ==0.7.0.0,
+        lens >=5.1.1 && <5.2,
+        lifted-async >=0.10.2.2 && <0.11,
+        lifted-base >=0.2.3.12 && <0.3,
+        memory >=0.17.0 && <0.18,
+        monad-control >=1.0.3.1 && <1.1,
+        monad-logger >=0.3.36 && <0.4,
+        monoidal-containers >=0.6.2.0 && <0.7,
+        mtl >=2.2.2 && <2.3,
+        parallel >=3.2.2.0 && <3.3,
+        parsec >=3.1.15.0 && <3.2,
+        pattern-arrows >=0.0.2 && <0.1,
+        process ==1.6.13.1,
+        protolude >=0.3.1 && <0.4,
+        regex-tdfa >=1.3.1.2 && <1.4,
+        safe >=0.3.19 && <0.4,
+        scientific >=0.3.7.0 && <0.4,
+        semigroups >=0.20 && <0.21,
+        semialign >=1.2.0.1 && <1.3,
+        sourcemap >=0.1.7 && <0.2,
+        stm >=2.5.0.2 && <2.6,
+        stringsearch >=0.3.6.6 && <0.4,
+        template-haskell >=2.18.0.0 && <2.19,
+        text >=1.2.5.0 && <1.3,
+        these >=1.1.1.1 && <1.2,
+        time >=1.11.1.1 && <1.12,
+        transformers >=0.5.6.2 && <0.6,
+        transformers-base >=0.4.6 && <0.5,
+        utf8-string >=1.0.2 && <1.1,
+        vector >=0.12.3.1 && <0.13,
+        witherable >=0.4.2 && <0.5,
+        purescript,
+        generic-random >=1.5.0.1 && <1.6,
+        hspec >=2.10.7 && <3,
+        HUnit >=1.6.2.0 && <1.7,
+        newtype >=0.2.2.0 && <0.3,
+        QuickCheck >=2.14.2 && <2.15,
+        regex-base >=0.94.0.2 && <0.95,
+        split >=0.2.3.4 && <0.3,
+        typed-process >=0.2.10.1 && <0.3
diff --git a/src/Control/Monad/Logger.hs b/src/Control/Monad/Logger.hs
--- a/src/Control/Monad/Logger.hs
+++ b/src/Control/Monad/Logger.hs
@@ -1,20 +1,17 @@
-{-# LANGUAGE FlexibleInstances #-}
-{-# LANGUAGE TypeFamilies #-}
-
 -- |
 -- A replacement for WriterT IO which uses mutable references.
 --
 module Control.Monad.Logger where
 
-import Prelude.Compat
+import Prelude
 
 import Control.Monad (ap)
 import Control.Monad.Base (MonadBase(..))
-import Control.Monad.IO.Class
+import Control.Monad.IO.Class (MonadIO(..))
 import Control.Monad.Trans.Control (MonadBaseControl(..))
-import Control.Monad.Writer.Class
+import Control.Monad.Writer.Class (MonadWriter(..))
 
-import Data.IORef
+import Data.IORef (IORef, atomicModifyIORef', newIORef, readIORef)
 
 -- | A replacement for WriterT IO which uses mutable references.
 newtype Logger w a = Logger { runLogger :: IORef w -> IO a }
diff --git a/src/Control/Monad/Supply.hs b/src/Control/Monad/Supply.hs
--- a/src/Control/Monad/Supply.hs
+++ b/src/Control/Monad/Supply.hs
@@ -1,19 +1,17 @@
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-
 -- |
 -- Fresh variable supply
 --
 module Control.Monad.Supply where
 
-import Prelude.Compat
+import Prelude
 
-import Control.Applicative
+import Control.Applicative (Alternative)
 import Control.Monad.Error.Class (MonadError(..))
-import Control.Monad.Reader
-import Control.Monad.State
-import Control.Monad.Writer
+import Control.Monad.Reader (MonadPlus, MonadReader, MonadTrans)
+import Control.Monad.State (StateT(..))
+import Control.Monad.Writer (MonadWriter)
 
-import Data.Functor.Identity
+import Data.Functor.Identity (Identity(..))
 
 newtype SupplyT m a = SupplyT { unSupplyT :: StateT Integer m a }
   deriving (Functor, Applicative, Monad, MonadTrans, MonadError e, MonadWriter w, MonadReader r, Alternative, MonadPlus)
@@ -28,6 +26,3 @@
 
 runSupply :: Integer -> Supply a -> (a, Integer)
 runSupply n = runIdentity . runSupplyT n
-
-evalSupply :: Integer -> Supply a -> a
-evalSupply n = runIdentity . evalSupplyT n
diff --git a/src/Control/Monad/Supply/Class.hs b/src/Control/Monad/Supply/Class.hs
--- a/src/Control/Monad/Supply/Class.hs
+++ b/src/Control/Monad/Supply/Class.hs
@@ -2,16 +2,14 @@
 -- A class for monads supporting a supply of fresh names
 --
 
-{-# LANGUAGE DefaultSignatures #-}
-{-# LANGUAGE TypeFamilies #-}
-
 module Control.Monad.Supply.Class where
 
-import Prelude.Compat
+import Prelude
 
-import Control.Monad.Supply
-import Control.Monad.State
-import Control.Monad.Writer
+import Control.Monad.RWS (MonadState(..), MonadTrans(..), RWST)
+import Control.Monad.State (StateT)
+import Control.Monad.Supply (SupplyT(..))
+import Control.Monad.Writer (WriterT)
 import Data.Text (Text, pack)
 
 class Monad m => MonadSupply m where
@@ -31,6 +29,7 @@
 
 instance MonadSupply m => MonadSupply (StateT s m)
 instance (Monoid w, MonadSupply m) => MonadSupply (WriterT w m)
+instance (Monoid w, MonadSupply m) => MonadSupply (RWST r w s m)
 
 freshName :: MonadSupply m => m Text
 freshName = fmap (("$" <> ) . pack . show) fresh
diff --git a/src/Data/Text/PureScript.hs b/src/Data/Text/PureScript.hs
new file mode 100644
--- /dev/null
+++ b/src/Data/Text/PureScript.hs
@@ -0,0 +1,23 @@
+-- |
+-- This module contains internal extensions to Data.Text.
+--
+module Data.Text.PureScript (spanUpTo) where
+
+import Prelude
+
+import Data.Text.Internal (Text(..), text)
+import Data.Text.Unsafe (Iter(..), iter)
+
+-- | /O(n)/ 'spanUpTo', applied to a number @n@, predicate @p@, and text @t@,
+-- returns a pair whose first element is the longest prefix (possibly empty) of
+-- @t@ of length less than or equal to @n@ of elements that satisfy @p@, and
+-- whose second is the remainder of the text.
+{-# INLINE spanUpTo #-}
+spanUpTo :: Int -> (Char -> Bool) -> Text -> (Text, Text)
+spanUpTo n p t@(Text arr off len) = (hd, tl)
+  where hd = text arr off k
+        tl = text arr (off + k) (len - k)
+        !k = loop n 0
+        loop !n' !i | n' > 0 && i < len && p c = loop (n' - 1) (i + d)
+                    | otherwise                = i
+            where Iter c d = iter t i
diff --git a/src/Language/PureScript.hs b/src/Language/PureScript.hs
--- a/src/Language/PureScript.hs
+++ b/src/Language/PureScript.hs
@@ -17,7 +17,7 @@
 import Language.PureScript.Environment as P
 import Language.PureScript.Errors as P hiding (indent)
 import Language.PureScript.Externs as P
-import Language.PureScript.Kinds as P
+import Language.PureScript.Graph as P
 import Language.PureScript.Linter as P
 import Language.PureScript.Make as P
 import Language.PureScript.ModuleDependencies as P
@@ -25,11 +25,12 @@
 import Language.PureScript.Options as P
 import Language.PureScript.Pretty as P
 import Language.PureScript.Renamer as P
+import Language.PureScript.Roles as P
 import Language.PureScript.Sugar as P
 import Language.PureScript.TypeChecker as P
 import Language.PureScript.Types as P
 
-import qualified Paths_purescript as Paths
+import Paths_purescript qualified as Paths
 
 version :: Version
 version = Paths.version
diff --git a/src/Language/PureScript/AST/Binders.hs b/src/Language/PureScript/AST/Binders.hs
--- a/src/Language/PureScript/AST/Binders.hs
+++ b/src/Language/PureScript/AST/Binders.hs
@@ -1,15 +1,18 @@
+{-# LANGUAGE DeriveAnyClass #-}
 -- |
 -- Case binders
 --
 module Language.PureScript.AST.Binders where
 
-import Prelude.Compat
+import Prelude
 
-import Language.PureScript.AST.SourcePos
-import Language.PureScript.AST.Literals
-import Language.PureScript.Names
-import Language.PureScript.Comments
-import Language.PureScript.Types
+import Control.DeepSeq (NFData)
+import GHC.Generics (Generic)
+import Language.PureScript.AST.SourcePos (SourceSpan)
+import Language.PureScript.AST.Literals (Literal(..))
+import Language.PureScript.Names (Ident, OpName, OpNameType(..), ProperName, ProperNameType(..), Qualified)
+import Language.PureScript.Comments (Comment)
+import Language.PureScript.Types (SourceType)
 
 -- |
 -- Data type for binders
@@ -61,7 +64,7 @@
   -- A binder with a type annotation
   --
   | TypedBinder SourceType Binder
-  deriving (Show)
+  deriving (Show, Generic, NFData)
 
 -- Manual Eq and Ord instances for `Binder` were added on 2018-03-05. Comparing
 -- the `SourceSpan` values embedded in some of the data constructors of `Binder`
@@ -71,119 +74,85 @@
 -- the `Ord` instance was needed for the speed-up, but I did not want the `Eq`
 -- to have mismatched behavior.
 instance Eq Binder where
-  (==) NullBinder NullBinder = True
-  (==) NullBinder _ = False
-
-  (==) (LiteralBinder _ lb) (LiteralBinder _ lb') = (==) lb lb'
-  (==) LiteralBinder{} _ = False
-
-  (==) (VarBinder _ ident) (VarBinder _ ident') = (==) ident ident'
-  (==) VarBinder{} _ = False
-
-  (==) (ConstructorBinder _ qpc bs) (ConstructorBinder _ qpc' bs') =
-    (==) qpc qpc' && (==) bs bs'
-  (==) ConstructorBinder{} _ = False
-
-  (==) (OpBinder _ qov) (OpBinder _ qov') =
-    (==) qov qov'
-  (==) OpBinder{} _ = False
-
-  (==) (BinaryNoParensBinder b1 b2 b3) (BinaryNoParensBinder b1' b2' b3') =
-    (==) b1 b1' && (==) b2 b2' && (==) b3 b3'
-  (==) BinaryNoParensBinder{} _ = False
-
-  (==) (ParensInBinder b) (ParensInBinder b') =
-    (==) b b'
-  (==) ParensInBinder{} _ = False
-
-  (==) (NamedBinder _ ident b) (NamedBinder _ ident' b') =
-    (==) ident ident' && (==) b b'
-  (==) NamedBinder{} _ = False
-
-  (==) (PositionedBinder _ comments b) (PositionedBinder _ comments' b') =
-    (==) comments comments' && (==) b b'
-  (==) PositionedBinder{} _ = False
-
-  (==) (TypedBinder ty b) (TypedBinder ty' b') =
-    (==) ty ty' && (==) b b'
-  (==) TypedBinder{} _ = False
+  NullBinder == NullBinder =
+    True
+  (LiteralBinder _ lb) == (LiteralBinder _ lb') =
+    lb == lb'
+  (VarBinder _ ident) == (VarBinder _ ident') =
+    ident == ident'
+  (ConstructorBinder _ qpc bs) == (ConstructorBinder _ qpc' bs') =
+    qpc == qpc' && bs == bs'
+  (OpBinder _ qov) == (OpBinder _ qov') =
+    qov == qov'
+  (BinaryNoParensBinder b1 b2 b3) == (BinaryNoParensBinder b1' b2' b3') =
+    b1 == b1' && b2 == b2' && b3 == b3'
+  (ParensInBinder b) == (ParensInBinder b') =
+    b == b'
+  (NamedBinder _ ident b) == (NamedBinder _ ident' b') =
+    ident == ident' && b == b'
+  (PositionedBinder _ comments b) == (PositionedBinder _ comments' b') =
+    comments == comments' && b == b'
+  (TypedBinder ty b) == (TypedBinder ty' b') =
+    ty == ty' && b == b'
+  _ == _ = False
 
 instance Ord Binder where
   compare NullBinder NullBinder = EQ
-  compare NullBinder _ = LT
-
-  compare (LiteralBinder _ lb) (LiteralBinder _ lb') = compare lb lb'
-  compare LiteralBinder{} NullBinder = GT
-  compare LiteralBinder{} _ = LT
-
-  compare (VarBinder _ ident) (VarBinder _ ident') = compare ident ident'
-  compare VarBinder{} NullBinder = GT
-  compare VarBinder{} LiteralBinder{} = GT
-  compare VarBinder{} _ = LT
-
+  compare (LiteralBinder _ lb) (LiteralBinder _ lb') =
+    compare lb lb'
+  compare (VarBinder _ ident) (VarBinder _ ident') =
+    compare ident ident'
   compare (ConstructorBinder _ qpc bs) (ConstructorBinder _ qpc' bs') =
     compare qpc qpc' <> compare bs bs'
-  compare ConstructorBinder{} NullBinder = GT
-  compare ConstructorBinder{} LiteralBinder{} = GT
-  compare ConstructorBinder{} VarBinder{} = GT
-  compare ConstructorBinder{} _ = LT
-
   compare (OpBinder _ qov) (OpBinder _ qov') =
     compare qov qov'
-  compare OpBinder{} NullBinder = GT
-  compare OpBinder{} LiteralBinder{} = GT
-  compare OpBinder{} VarBinder{} = GT
-  compare OpBinder{} ConstructorBinder{} = GT
-  compare OpBinder{} _ = LT
-
   compare (BinaryNoParensBinder b1 b2 b3) (BinaryNoParensBinder b1' b2' b3') =
     compare b1 b1' <> compare b2 b2' <> compare b3 b3'
-  compare BinaryNoParensBinder{} ParensInBinder{} = LT
-  compare BinaryNoParensBinder{} NamedBinder{} = LT
-  compare BinaryNoParensBinder{} PositionedBinder{} = LT
-  compare BinaryNoParensBinder{} TypedBinder{} = LT
-  compare BinaryNoParensBinder{} _ = GT
-
   compare (ParensInBinder b) (ParensInBinder b') =
     compare b b'
-  compare ParensInBinder{} NamedBinder{} = LT
-  compare ParensInBinder{} PositionedBinder{} = LT
-  compare ParensInBinder{} TypedBinder{} = LT
-  compare ParensInBinder{} _ = GT
-
   compare (NamedBinder _ ident b) (NamedBinder _ ident' b') =
     compare ident ident' <> compare b b'
-  compare NamedBinder{} PositionedBinder{} = LT
-  compare NamedBinder{} TypedBinder{} = LT
-  compare NamedBinder{} _ = GT
-
   compare (PositionedBinder _ comments b) (PositionedBinder _ comments' b') =
     compare comments comments' <> compare b b'
-  compare PositionedBinder{} TypedBinder{} = LT
-  compare PositionedBinder{} _ = GT
-
   compare (TypedBinder ty b) (TypedBinder ty' b') =
     compare ty ty' <> compare b b'
-  compare TypedBinder{} _ = GT
+  compare binder binder' =
+    compare (orderOf binder) (orderOf binder')
+      where
+        orderOf :: Binder -> Int
+        orderOf NullBinder = 0
+        orderOf LiteralBinder{} = 1
+        orderOf VarBinder{} = 2
+        orderOf ConstructorBinder{} = 3
+        orderOf OpBinder{} = 4
+        orderOf BinaryNoParensBinder{} = 5
+        orderOf ParensInBinder{} = 6
+        orderOf NamedBinder{} = 7
+        orderOf PositionedBinder{} = 8
+        orderOf TypedBinder{} = 9
 
 -- |
 -- Collect all names introduced in binders in an expression
 --
 binderNames :: Binder -> [Ident]
-binderNames = go []
+binderNames = map snd . binderNamesWithSpans
+
+binderNamesWithSpans :: Binder -> [(SourceSpan, Ident)]
+binderNamesWithSpans = go []
   where
   go ns (LiteralBinder _ b) = lit ns b
-  go ns (VarBinder _ name) = name : ns
+  go ns (VarBinder ss name) = (ss, name) : ns
   go ns (ConstructorBinder _ _ bs) = foldl go ns bs
   go ns (BinaryNoParensBinder b1 b2 b3) = foldl go ns [b1, b2, b3]
   go ns (ParensInBinder b) = go ns b
-  go ns (NamedBinder _ name b) = go (name : ns) b
+  go ns (NamedBinder ss name b) = go ((ss, name) : ns) b
   go ns (PositionedBinder _ _ b) = go ns b
   go ns (TypedBinder _ b) = go ns b
   go ns _ = ns
   lit ns (ObjectLiteral bs) = foldl go ns (map snd bs)
   lit ns (ArrayLiteral bs) = foldl go ns bs
   lit ns _ = ns
+
 
 isIrrefutable :: Binder -> Bool
 isIrrefutable NullBinder = True
diff --git a/src/Language/PureScript/AST/Declarations.hs b/src/Language/PureScript/AST/Declarations.hs
--- a/src/Language/PureScript/AST/Declarations.hs
+++ b/src/Language/PureScript/AST/Declarations.hs
@@ -1,43 +1,38 @@
-{-# LANGUAGE DeriveGeneric #-}
-{-# LANGUAGE TemplateHaskell #-}
-{-# LANGUAGE DeriveFoldable #-}
-{-# LANGUAGE DeriveTraversable #-}
 {-# LANGUAGE DeriveAnyClass #-}
+{-# LANGUAGE TemplateHaskell #-}
 
 -- |
 -- Data types for modules and declarations
 --
 module Language.PureScript.AST.Declarations where
 
-import Prelude.Compat
+import Prelude
+import Protolude.Exceptions (hush)
 
+import Codec.Serialise (Serialise)
 import Control.DeepSeq (NFData)
-import Control.Monad.Identity
+import Data.Functor.Identity (Identity(..))
 
-import Data.Aeson.TH
-import qualified Data.Map as M
-import Data.Set (Set)
+import Data.Aeson.TH (Options(..), SumEncoding(..), defaultOptions, deriveJSON)
+import Data.Map qualified as M
 import Data.Text (Text)
-import qualified Data.List.NonEmpty as NEL
+import Data.List.NonEmpty qualified as NEL
 import GHC.Generics (Generic)
 
-import Language.PureScript.AST.Binders
-import Language.PureScript.AST.Literals
-import Language.PureScript.AST.Operators
-import Language.PureScript.AST.SourcePos
-import Language.PureScript.Types
+import Language.PureScript.AST.Binders (Binder)
+import Language.PureScript.AST.Literals (Literal(..))
+import Language.PureScript.AST.Operators (Fixity)
+import Language.PureScript.AST.SourcePos (SourceAnn, SourceSpan)
+import Language.PureScript.AST.Declarations.ChainId (ChainId)
+import Language.PureScript.Types (SourceConstraint, SourceType)
 import Language.PureScript.PSString (PSString)
 import Language.PureScript.Label (Label)
-import Language.PureScript.Names
-import Language.PureScript.Kinds
-import Language.PureScript.TypeClassDictionaries
-import Language.PureScript.Comments
-import Language.PureScript.Environment
-import qualified Language.PureScript.Bundle as Bundle
-import qualified Language.PureScript.Constants as C
-import qualified Language.PureScript.CST.Errors as CST
-
-import qualified Text.Parsec as P
+import Language.PureScript.Names (pattern ByNullSourcePos, Ident(..), ModuleName(..), Name(..), OpName, OpNameType(..), ProperName, ProperNameType(..), Qualified(..), QualifiedBy(..), toMaybeModuleName)
+import Language.PureScript.Roles (Role)
+import Language.PureScript.TypeClassDictionaries (NamedDict)
+import Language.PureScript.Comments (Comment)
+import Language.PureScript.Environment (DataDeclType, Environment, FunctionalDependency, NameKind)
+import Language.PureScript.Constants.Prim qualified as C
 
 -- | A map of locally-bound names in scope.
 type Context = [(Ident, SourceType)]
@@ -47,15 +42,15 @@
   = TSBefore Environment
   -- ^ An Environment captured for later consumption by type directed search
   | TSAfter
+  -- ^ Results of applying type directed search to the previously captured
+  -- Environment
     { tsAfterIdentifiers :: [(Qualified Text, SourceType)]
     -- ^ The identifiers that fully satisfy the subsumption check
     , tsAfterRecordFields :: Maybe [(Label, SourceType)]
     -- ^ Record fields that are available on the first argument to the typed
     -- hole
     }
-  -- ^ Results of applying type directed search to the previously captured
-  -- Environment
-  deriving Show
+  deriving (Show, Generic, NFData)
 
 onTypeSearchTypes :: (SourceType -> SourceType) -> TypeSearch -> TypeSearch
 onTypeSearchTypes f = runIdentity . onTypeSearchTypesM (Identity . f)
@@ -64,124 +59,6 @@
 onTypeSearchTypesM f (TSAfter i r) = TSAfter <$> traverse (traverse f) i <*> traverse (traverse (traverse f)) r
 onTypeSearchTypesM _ (TSBefore env) = pure (TSBefore env)
 
--- | A type of error messages
-data SimpleErrorMessage
-  = ModuleNotFound ModuleName
-  | ErrorParsingFFIModule FilePath (Maybe Bundle.ErrorMessage)
-  | ErrorParsingModule P.ParseError
-  | ErrorParsingCSTModule CST.ParserError
-  | MissingFFIModule ModuleName
-  | UnnecessaryFFIModule ModuleName FilePath
-  | MissingFFIImplementations ModuleName [Ident]
-  | UnusedFFIImplementations ModuleName [Ident]
-  | InvalidFFIIdentifier ModuleName Text
-  | CannotGetFileInfo FilePath
-  | CannotReadFile FilePath
-  | CannotWriteFile FilePath
-  | InfiniteType SourceType
-  | InfiniteKind SourceKind
-  | MultipleValueOpFixities (OpName 'ValueOpName)
-  | MultipleTypeOpFixities (OpName 'TypeOpName)
-  | OrphanTypeDeclaration Ident
-  | RedefinedIdent Ident
-  | OverlappingNamesInLet
-  | UnknownName (Qualified Name)
-  | UnknownImport ModuleName Name
-  | UnknownImportDataConstructor ModuleName (ProperName 'TypeName) (ProperName 'ConstructorName)
-  | UnknownExport Name
-  | UnknownExportDataConstructor (ProperName 'TypeName) (ProperName 'ConstructorName)
-  | ScopeConflict Name [ModuleName]
-  | ScopeShadowing Name (Maybe ModuleName) [ModuleName]
-  | DeclConflict Name Name
-  | ExportConflict (Qualified Name) (Qualified Name)
-  | DuplicateModule ModuleName
-  | DuplicateTypeClass (ProperName 'ClassName) SourceSpan
-  | DuplicateInstance Ident SourceSpan
-  | DuplicateTypeArgument Text
-  | InvalidDoBind
-  | InvalidDoLet
-  | CycleInDeclaration Ident
-  | CycleInTypeSynonym (Maybe (ProperName 'TypeName))
-  | CycleInTypeClassDeclaration [Qualified (ProperName 'ClassName)]
-  | CycleInModules [ModuleName]
-  | NameIsUndefined Ident
-  | UndefinedTypeVariable (ProperName 'TypeName)
-  | PartiallyAppliedSynonym (Qualified (ProperName 'TypeName))
-  | EscapedSkolem Text (Maybe SourceSpan) SourceType
-  | TypesDoNotUnify SourceType SourceType
-  | KindsDoNotUnify SourceKind SourceKind
-  | ConstrainedTypeUnified SourceType SourceType
-  | OverlappingInstances (Qualified (ProperName 'ClassName)) [SourceType] [Qualified Ident]
-  | NoInstanceFound SourceConstraint
-  | AmbiguousTypeVariables SourceType SourceConstraint
-  | UnknownClass (Qualified (ProperName 'ClassName))
-  | PossiblyInfiniteInstance (Qualified (ProperName 'ClassName)) [SourceType]
-  | CannotDerive (Qualified (ProperName 'ClassName)) [SourceType]
-  | InvalidDerivedInstance (Qualified (ProperName 'ClassName)) [SourceType] Int
-  | ExpectedTypeConstructor (Qualified (ProperName 'ClassName)) [SourceType] SourceType
-  | InvalidNewtypeInstance (Qualified (ProperName 'ClassName)) [SourceType]
-  | MissingNewtypeSuperclassInstance (Qualified (ProperName 'ClassName)) (Qualified (ProperName 'ClassName)) [SourceType]
-  | UnverifiableSuperclassInstance (Qualified (ProperName 'ClassName)) (Qualified (ProperName 'ClassName)) [SourceType]
-  | CannotFindDerivingType (ProperName 'TypeName)
-  | DuplicateLabel Label (Maybe Expr)
-  | DuplicateValueDeclaration Ident
-  | ArgListLengthsDiffer Ident
-  | OverlappingArgNames (Maybe Ident)
-  | MissingClassMember (NEL.NonEmpty (Ident, SourceType))
-  | ExtraneousClassMember Ident (Qualified (ProperName 'ClassName))
-  | ExpectedType SourceType SourceKind
-  -- | constructor name, expected argument count, actual argument count
-  | IncorrectConstructorArity (Qualified (ProperName 'ConstructorName)) Int Int
-  | ExprDoesNotHaveType Expr SourceType
-  | PropertyIsMissing Label
-  | AdditionalProperty Label
-  | TypeSynonymInstance
-  | OrphanInstance Ident (Qualified (ProperName 'ClassName)) (Set ModuleName) [SourceType]
-  | InvalidNewtype (ProperName 'TypeName)
-  | InvalidInstanceHead SourceType
-  | TransitiveExportError DeclarationRef [DeclarationRef]
-  | TransitiveDctorExportError DeclarationRef (ProperName 'ConstructorName)
-  | ShadowedName Ident
-  | ShadowedTypeVar Text
-  | UnusedTypeVar Text
-  | WildcardInferredType SourceType Context
-  | HoleInferredType Text SourceType Context (Maybe TypeSearch)
-  | MissingTypeDeclaration Ident SourceType
-  | OverlappingPattern [[Binder]] Bool
-  | IncompleteExhaustivityCheck
-  | MisleadingEmptyTypeImport ModuleName (ProperName 'TypeName)
-  | ImportHidingModule ModuleName
-  | UnusedImport ModuleName
-  | UnusedExplicitImport ModuleName [Name] (Maybe ModuleName) [DeclarationRef]
-  | UnusedDctorImport ModuleName (ProperName 'TypeName) (Maybe ModuleName) [DeclarationRef]
-  | UnusedDctorExplicitImport ModuleName (ProperName 'TypeName) [ProperName 'ConstructorName] (Maybe ModuleName) [DeclarationRef]
-  | DuplicateSelectiveImport ModuleName
-  | DuplicateImport ModuleName ImportDeclarationType (Maybe ModuleName)
-  | DuplicateImportRef Name
-  | DuplicateExportRef Name
-  | IntOutOfRange Integer Text Integer Integer
-  | ImplicitQualifiedImport ModuleName ModuleName [DeclarationRef]
-  | ImplicitQualifiedImportReExport ModuleName ModuleName [DeclarationRef]
-  | ImplicitImport ModuleName [DeclarationRef]
-  | HidingImport ModuleName [DeclarationRef]
-  | CaseBinderLengthDiffers Int [Binder]
-  | IncorrectAnonymousArgument
-  | InvalidOperatorInBinder (Qualified (OpName 'ValueOpName)) (Qualified Ident)
-  | CannotGeneralizeRecursiveFunction Ident SourceType
-  | CannotDeriveNewtypeForData (ProperName 'TypeName)
-  | ExpectedWildcard (ProperName 'TypeName)
-  | CannotUseBindWithDo Ident
-  -- | instance name, type class, expected argument count, actual argument count
-  | ClassInstanceArityMismatch Ident (Qualified (ProperName 'ClassName)) Int Int
-  -- | a user-defined warning raised by using the Warn type class
-  | UserDefinedWarning SourceType
-  -- | a declaration couldn't be used because it contained free variables
-  | UnusableDeclaration Ident [[Text]]
-  | CannotDefinePrimModules ModuleName
-  | MixedAssociativityError (NEL.NonEmpty (Qualified (OpName 'AnyOpName), Associativity))
-  | NonAssociativeError (NEL.NonEmpty (Qualified (OpName 'AnyOpName)))
-  deriving (Show)
-
 -- | Error message hints, providing more detailed information about failure.
 data ErrorMessageHint
   = ErrorUnifyingTypes SourceType SourceType
@@ -189,11 +66,13 @@
   | ErrorInModule ModuleName
   | ErrorInInstance (Qualified (ProperName 'ClassName)) [SourceType]
   | ErrorInSubsumption SourceType SourceType
+  | ErrorInRowLabel Label
   | ErrorCheckingAccessor Expr PSString
   | ErrorCheckingType Expr SourceType
-  | ErrorCheckingKind SourceType
+  | ErrorCheckingKind SourceType SourceType
   | ErrorCheckingGuard
   | ErrorInferringType Expr
+  | ErrorInferringKind SourceType
   | ErrorInApplication Expr SourceType Expr
   | ErrorInDataConstructor (ProperName 'ConstructorName)
   | ErrorInTypeConstructor (ProperName 'TypeName)
@@ -203,10 +82,15 @@
   | ErrorInValueDeclaration Ident
   | ErrorInTypeDeclaration Ident
   | ErrorInTypeClassDeclaration (ProperName 'ClassName)
+  | ErrorInKindDeclaration (ProperName 'TypeName)
+  | ErrorInRoleDeclaration (ProperName 'TypeName)
   | ErrorInForeignImport Ident
+  | ErrorInForeignImportData (ProperName 'TypeName)
   | ErrorSolvingConstraint SourceConstraint
+  | MissingConstructorImportForCoercible (Qualified (ProperName 'ConstructorName))
   | PositionedError (NEL.NonEmpty SourceSpan)
-  deriving (Show)
+  | RelatedPositions (NEL.NonEmpty SourceSpan)
+  deriving (Show, Generic, NFData)
 
 -- | Categories of hints
 data HintCategory
@@ -215,13 +99,20 @@
   | CheckHint
   | PositionHint
   | SolverHint
+  | DeclarationHint
   | OtherHint
   deriving (Show, Eq)
 
-data ErrorMessage = ErrorMessage
-  [ErrorMessageHint]
-  SimpleErrorMessage
-  deriving (Show)
+-- |
+-- In constraint solving, indicates whether there were `TypeUnknown`s that prevented
+-- an instance from being found, and whether VTAs are required
+-- due to type class members not referencing all the type class
+-- head's type variables.
+data UnknownsHint
+  = NoUnknowns
+  | Unknowns
+  | UnknownsWithVtaRequiringArgs (NEL.NonEmpty (Qualified Ident, [[Text]]))
+  deriving (Show, Generic, NFData)
 
 -- |
 -- A module declaration, consisting of comments about the module, a module name,
@@ -252,13 +143,15 @@
 addDefaultImport :: Qualified ModuleName -> Module -> Module
 addDefaultImport (Qualified toImportAs toImport) m@(Module ss coms mn decls exps) =
   if isExistingImport `any` decls || mn == toImport then m
-  else Module ss coms mn (ImportDeclaration (ss, []) toImport Implicit toImportAs : decls) exps
+  else Module ss coms mn (ImportDeclaration (ss, []) toImport Implicit toImportAs' : decls) exps
   where
+  toImportAs' = toMaybeModuleName toImportAs
+
   isExistingImport (ImportDeclaration _ mn' _ as')
     | mn' == toImport =
-        case toImportAs of
+        case toImportAs' of
           Nothing -> True
-          _ -> as' == toImportAs
+          _ -> as' == toImportAs'
   isExistingImport _ = False
 
 -- | Adds import declarations to a module for an implicit Prim import and Prim
@@ -266,24 +159,31 @@
 importPrim :: Module -> Module
 importPrim =
   let
-    primModName = C.Prim
+    primModName = C.M_Prim
   in
-    addDefaultImport (Qualified (Just primModName) primModName)
-      . addDefaultImport (Qualified Nothing primModName)
+    addDefaultImport (Qualified (ByModuleName primModName) primModName)
+      . addDefaultImport (Qualified ByNullSourcePos primModName)
 
+data NameSource = UserNamed | CompilerNamed
+  deriving (Show, Generic, NFData, Serialise)
+
 -- |
 -- An item in a list of explicit imports or exports
 --
 data DeclarationRef
   -- |
-  -- A type constructor with data constructors
+  -- A type class
   --
-  = TypeRef SourceSpan (ProperName 'TypeName) (Maybe [ProperName 'ConstructorName])
+  = TypeClassRef SourceSpan (ProperName 'ClassName)
   -- |
   -- A type operator
   --
   | TypeOpRef SourceSpan (OpName 'TypeOpName)
   -- |
+  -- A type constructor with data constructors
+  --
+  | TypeRef SourceSpan (ProperName 'TypeName) (Maybe [ProperName 'ConstructorName])
+  -- |
   -- A value
   --
   | ValueRef SourceSpan Ident
@@ -292,71 +192,59 @@
   --
   | ValueOpRef SourceSpan (OpName 'ValueOpName)
   -- |
-  -- A type class
-  --
-  | TypeClassRef SourceSpan (ProperName 'ClassName)
-  -- |
-  -- A type class instance, created during typeclass desugaring (name, class name, instance types)
+  -- A type class instance, created during typeclass desugaring
   --
-  | TypeInstanceRef SourceSpan Ident
+  | TypeInstanceRef SourceSpan Ident NameSource
   -- |
   -- A module, in its entirety
   --
   | ModuleRef SourceSpan ModuleName
   -- |
-  -- A named kind
-  --
-  | KindRef SourceSpan (ProperName 'KindName)
-  -- |
   -- A value re-exported from another module. These will be inserted during
   -- elaboration in name desugaring.
   --
   | ReExportRef SourceSpan ExportSource DeclarationRef
-  deriving (Show, Generic, NFData)
+  deriving (Show, Generic, NFData, Serialise)
 
 instance Eq DeclarationRef where
-  (TypeRef _ name dctors) == (TypeRef _ name' dctors') = name == name' && dctors == dctors'
+  (TypeClassRef _ name) == (TypeClassRef _ name') = name == name'
   (TypeOpRef _ name) == (TypeOpRef _ name') = name == name'
+  (TypeRef _ name dctors) == (TypeRef _ name' dctors') = name == name' && dctors == dctors'
   (ValueRef _ name) == (ValueRef _ name') = name == name'
   (ValueOpRef _ name) == (ValueOpRef _ name') = name == name'
-  (TypeClassRef _ name) == (TypeClassRef _ name') = name == name'
-  (TypeInstanceRef _ name) == (TypeInstanceRef _ name') = name == name'
+  (TypeInstanceRef _ name _) == (TypeInstanceRef _ name' _) = name == name'
   (ModuleRef _ name) == (ModuleRef _ name') = name == name'
-  (KindRef _ name) == (KindRef _ name') = name == name'
   (ReExportRef _ mn ref) == (ReExportRef _ mn' ref') = mn == mn' && ref == ref'
   _ == _ = False
 
+instance Ord DeclarationRef where
+  TypeClassRef _ name `compare` TypeClassRef _ name' = compare name name'
+  TypeOpRef _ name `compare` TypeOpRef _ name' = compare name name'
+  TypeRef _ name dctors `compare` TypeRef _ name' dctors' = compare name name' <> compare dctors dctors'
+  ValueRef _ name `compare` ValueRef _ name' = compare name name'
+  ValueOpRef _ name `compare` ValueOpRef _ name' = compare name name'
+  TypeInstanceRef _ name _ `compare` TypeInstanceRef _ name' _ = compare name name'
+  ModuleRef _ name `compare` ModuleRef _ name' = compare name name'
+  ReExportRef _ mn ref `compare` ReExportRef _ mn' ref' = compare mn mn' <> compare ref ref'
+  compare ref ref' =
+    compare (orderOf ref) (orderOf ref')
+      where
+        orderOf :: DeclarationRef -> Int
+        orderOf TypeClassRef{} = 0
+        orderOf TypeOpRef{} = 1
+        orderOf TypeRef{} = 2
+        orderOf ValueRef{} = 3
+        orderOf ValueOpRef{} = 4
+        orderOf TypeInstanceRef{} = 5
+        orderOf ModuleRef{} = 6
+        orderOf ReExportRef{} = 7
+
 data ExportSource =
   ExportSource
   { exportSourceImportedFrom :: Maybe ModuleName
   , exportSourceDefinedIn :: ModuleName
   }
-  deriving (Eq, Ord, Show, Generic, NFData)
-
--- enable sorting lists of explicitly imported refs when suggesting imports in linting, IDE, etc.
--- not an Ord because this implementation is not consistent with its Eq instance.
--- think of it as a notion of contextual, not inherent, ordering.
-compDecRef :: DeclarationRef -> DeclarationRef -> Ordering
-compDecRef (TypeRef _ name _) (TypeRef _ name' _) = compare name name'
-compDecRef (TypeOpRef _ name) (TypeOpRef _ name') = compare name name'
-compDecRef (ValueRef _ ident) (ValueRef _ ident') = compare ident ident'
-compDecRef (ValueOpRef _ name) (ValueOpRef _ name') = compare name name'
-compDecRef (TypeClassRef _ name) (TypeClassRef _ name') = compare name name'
-compDecRef (TypeInstanceRef _ ident) (TypeInstanceRef _ ident') = compare ident ident'
-compDecRef (ModuleRef _ name) (ModuleRef _ name') = compare name name'
-compDecRef (KindRef _ name) (KindRef _ name') = compare name name'
-compDecRef (ReExportRef _ name _) (ReExportRef _ name' _) = compare name name'
-compDecRef ref ref' = compare
-  (orderOf ref) (orderOf ref')
-    where
-      orderOf :: DeclarationRef -> Int
-      orderOf TypeClassRef{} = 0
-      orderOf TypeOpRef{} = 1
-      orderOf TypeRef{} = 2
-      orderOf ValueRef{} = 3
-      orderOf ValueOpRef{} = 4
-      orderOf KindRef{} = 5
-      orderOf _ = 6
+  deriving (Eq, Ord, Show, Generic, NFData, Serialise)
 
 declRefSourceSpan :: DeclarationRef -> SourceSpan
 declRefSourceSpan (TypeRef ss _ _) = ss
@@ -364,9 +252,8 @@
 declRefSourceSpan (ValueRef ss _) = ss
 declRefSourceSpan (ValueOpRef ss _) = ss
 declRefSourceSpan (TypeClassRef ss _) = ss
-declRefSourceSpan (TypeInstanceRef ss _) = ss
+declRefSourceSpan (TypeInstanceRef ss _ _) = ss
 declRefSourceSpan (ModuleRef ss _) = ss
-declRefSourceSpan (KindRef ss _) = ss
 declRefSourceSpan (ReExportRef ss _ _) = ss
 
 declRefName :: DeclarationRef -> Name
@@ -375,9 +262,8 @@
 declRefName (ValueRef _ n) = IdentName n
 declRefName (ValueOpRef _ n) = ValOpName n
 declRefName (TypeClassRef _ n) = TyClassName n
-declRefName (TypeInstanceRef _ n) = IdentName n
+declRefName (TypeInstanceRef _ n _) = IdentName n
 declRefName (ModuleRef _ n) = ModName n
-declRefName (KindRef _ n) = KiName n
 declRefName (ReExportRef _ _ ref) = declRefName ref
 
 getTypeRef :: DeclarationRef -> Maybe (ProperName 'TypeName, Maybe [ProperName 'ConstructorName])
@@ -400,10 +286,6 @@
 getTypeClassRef (TypeClassRef _ name) = Just name
 getTypeClassRef _ = Nothing
 
-getKindRef :: DeclarationRef -> Maybe (ProperName 'KindName)
-getKindRef (KindRef _ name) = Just name
-getKindRef _ = Nothing
-
 isModuleRef :: DeclarationRef -> Bool
 isModuleRef ModuleRef{} = True
 isModuleRef _ = False
@@ -424,16 +306,25 @@
   -- An import with a list of references to hide: `import M hiding (foo)`
   --
   | Hiding [DeclarationRef]
-  deriving (Eq, Show)
-
-isImplicit :: ImportDeclarationType -> Bool
-isImplicit Implicit = True
-isImplicit _ = False
+  deriving (Eq, Show, Generic, Serialise, NFData)
 
 isExplicit :: ImportDeclarationType -> Bool
 isExplicit (Explicit _) = True
 isExplicit _ = False
 
+-- | A role declaration assigns a list of roles to a type constructor's
+-- parameters, e.g.:
+--
+-- @type role T representational phantom@
+--
+-- In this example, @T@ is the identifier and @[representational, phantom]@ is
+-- the list of roles (@T@ presumably having two parameters).
+data RoleDeclarationData = RoleDeclarationData
+  { rdeclSourceAnn :: !SourceAnn
+  , rdeclIdent :: !(ProperName 'TypeName)
+  , rdeclRoles :: ![Role]
+  } deriving (Show, Eq, Generic, NFData)
+
 -- | A type declaration assigns a type to an identifier, eg:
 --
 -- @identity :: forall a. a -> a@
@@ -443,10 +334,7 @@
   { tydeclSourceAnn :: !SourceAnn
   , tydeclIdent :: !Ident
   , tydeclType :: !SourceType
-  } deriving (Show, Eq)
-
-overTypeDeclaration :: (TypeDeclarationData -> TypeDeclarationData) -> Declaration -> Declaration
-overTypeDeclaration f d = maybe d (TypeDeclaration . f) (getTypeDeclaration d)
+  } deriving (Show, Eq, Generic, NFData)
 
 getTypeDeclaration :: Declaration -> Maybe TypeDeclarationData
 getTypeDeclaration (TypeDeclaration d) = Just d
@@ -468,10 +356,7 @@
   -- ^ Whether or not this value is exported/visible
   , valdeclBinders :: ![Binder]
   , valdeclExpression :: !a
-  } deriving (Show, Functor, Foldable, Traversable)
-
-overValueDeclaration :: (ValueDeclarationData [GuardedExpr] -> ValueDeclarationData [GuardedExpr]) -> Declaration -> Declaration
-overValueDeclaration f d = maybe d (ValueDeclaration . f) (getValueDeclaration d)
+  } deriving (Show, Functor, Generic, NFData, Foldable, Traversable)
 
 getValueDeclaration :: Declaration -> Maybe (ValueDeclarationData [GuardedExpr])
 getValueDeclaration (ValueDeclaration d) = Just d
@@ -481,6 +366,18 @@
 pattern ValueDecl sann ident name binders expr
   = ValueDeclaration (ValueDeclarationData sann ident name binders expr)
 
+data DataConstructorDeclaration = DataConstructorDeclaration
+  { dataCtorAnn :: !SourceAnn
+  , dataCtorName :: !(ProperName 'ConstructorName)
+  , dataCtorFields :: ![(Ident, SourceType)]
+  } deriving (Show, Eq, Generic, NFData)
+
+mapDataCtorFields :: ([(Ident, SourceType)] -> [(Ident, SourceType)]) -> DataConstructorDeclaration -> DataConstructorDeclaration
+mapDataCtorFields f DataConstructorDeclaration{..} = DataConstructorDeclaration { dataCtorFields = f dataCtorFields, .. }
+
+traverseDataCtorFields :: Monad m => ([(Ident, SourceType)] -> m [(Ident, SourceType)]) -> DataConstructorDeclaration -> m DataConstructorDeclaration
+traverseDataCtorFields f DataConstructorDeclaration{..} = DataConstructorDeclaration dataCtorAnn dataCtorName <$> f dataCtorFields
+
 -- |
 -- The data type of declarations
 --
@@ -488,7 +385,7 @@
   -- |
   -- A data type declaration (data or newtype, name, arguments, data constructors)
   --
-  = DataDeclaration SourceAnn DataDeclType (ProperName 'TypeName) [(Text, Maybe SourceKind)] [(ProperName 'ConstructorName, [(Ident, SourceType)])]
+  = DataDeclaration SourceAnn DataDeclType (ProperName 'TypeName) [(Text, Maybe SourceType)] [DataConstructorDeclaration]
   -- |
   -- A minimal mutually recursive set of data type declarations
   --
@@ -496,8 +393,16 @@
   -- |
   -- A type synonym declaration (name, arguments, type)
   --
-  | TypeSynonymDeclaration SourceAnn (ProperName 'TypeName) [(Text, Maybe SourceKind)] SourceType
+  | TypeSynonymDeclaration SourceAnn (ProperName 'TypeName) [(Text, Maybe SourceType)] SourceType
   -- |
+  -- A kind signature declaration
+  --
+  | KindDeclaration SourceAnn KindSignatureFor (ProperName 'TypeName) SourceType
+  -- |
+  -- A role declaration (name, roles)
+  --
+  | RoleDeclaration {-# UNPACK #-} !RoleDeclarationData
+  -- |
   -- A type declaration for a value (name, ty)
   --
   | TypeDeclaration {-# UNPACK #-} !TypeDeclarationData
@@ -519,11 +424,7 @@
   -- |
   -- A data type foreign import (name, kind)
   --
-  | ExternDataDeclaration SourceAnn (ProperName 'TypeName) SourceKind
-  -- |
-  -- A foreign kind import (name)
-  --
-  | ExternKindDeclaration SourceAnn (ProperName 'KindName)
+  | ExternDataDeclaration SourceAnn (ProperName 'TypeName) SourceType
   -- |
   -- A fixity declaration
   --
@@ -535,19 +436,22 @@
   -- |
   -- A type class declaration (name, argument, implies, member declarations)
   --
-  | TypeClassDeclaration SourceAnn (ProperName 'ClassName) [(Text, Maybe SourceKind)] [SourceConstraint] [FunctionalDependency] [Declaration]
+  | TypeClassDeclaration SourceAnn (ProperName 'ClassName) [(Text, Maybe SourceType)] [SourceConstraint] [FunctionalDependency] [Declaration]
   -- |
   -- A type instance declaration (instance chain, chain index, name,
   -- dependencies, class name, instance types, member declarations)
   --
-  | TypeInstanceDeclaration SourceAnn [Ident] Integer Ident [SourceConstraint] (Qualified (ProperName 'ClassName)) [SourceType] TypeInstanceBody
-  deriving (Show)
+  -- The first @SourceAnn@ serves as the annotation for the entire
+  -- declaration, while the second @SourceAnn@ serves as the
+  -- annotation for the type class and its arguments.
+  | TypeInstanceDeclaration SourceAnn SourceAnn ChainId Integer (Either Text Ident) [SourceConstraint] (Qualified (ProperName 'ClassName)) [SourceType] TypeInstanceBody
+  deriving (Show, Generic, NFData)
 
 data ValueFixity = ValueFixity Fixity (Qualified (Either Ident (ProperName 'ConstructorName))) (OpName 'ValueOpName)
-  deriving (Eq, Ord, Show)
+  deriving (Eq, Ord, Show, Generic, NFData)
 
 data TypeFixity = TypeFixity Fixity (Qualified (ProperName 'TypeName)) (OpName 'TypeOpName)
-  deriving (Eq, Ord, Show)
+  deriving (Eq, Ord, Show, Generic, NFData)
 
 pattern ValueFixityDeclaration :: SourceAnn -> Fixity -> Qualified (Either Ident (ProperName 'ConstructorName)) -> OpName 'ValueOpName -> Declaration
 pattern ValueFixityDeclaration sa fixity name op = FixityDeclaration sa (Left (ValueFixity fixity name op))
@@ -555,18 +459,20 @@
 pattern TypeFixityDeclaration :: SourceAnn -> Fixity -> Qualified (ProperName 'TypeName) -> OpName 'TypeOpName -> Declaration
 pattern TypeFixityDeclaration sa fixity name op = FixityDeclaration sa (Right (TypeFixity fixity name op))
 
+data InstanceDerivationStrategy
+  = KnownClassStrategy
+  | NewtypeStrategy
+  deriving (Show, Generic, NFData)
+
 -- | The members of a type class instance declaration
 data TypeInstanceBody
   = DerivedInstance
   -- ^ This is a derived instance
   | NewtypeInstance
   -- ^ This is an instance derived from a newtype
-  | NewtypeInstanceWithDictionary Expr
-  -- ^ This is an instance derived from a newtype, desugared to include a
-  -- dictionary for the type under the newtype.
   | ExplicitInstance [Declaration]
   -- ^ This is a regular (explicit) instance
-  deriving (Show)
+  deriving (Show, Generic, NFData)
 
 mapTypeInstanceBody :: ([Declaration] -> [Declaration]) -> TypeInstanceBody -> TypeInstanceBody
 mapTypeInstanceBody f = runIdentity . traverseTypeInstanceBody (Identity . f)
@@ -576,40 +482,53 @@
 traverseTypeInstanceBody f (ExplicitInstance ds) = ExplicitInstance <$> f ds
 traverseTypeInstanceBody _ other = pure other
 
+-- | What sort of declaration the kind signature applies to.
+data KindSignatureFor
+  = DataSig
+  | NewtypeSig
+  | TypeSynonymSig
+  | ClassSig
+  deriving (Eq, Ord, Show, Generic, NFData)
+
 declSourceAnn :: Declaration -> SourceAnn
 declSourceAnn (DataDeclaration sa _ _ _ _) = sa
 declSourceAnn (DataBindingGroupDeclaration ds) = declSourceAnn (NEL.head ds)
 declSourceAnn (TypeSynonymDeclaration sa _ _ _) = sa
+declSourceAnn (KindDeclaration sa _ _ _) = sa
+declSourceAnn (RoleDeclaration rd) = rdeclSourceAnn rd
 declSourceAnn (TypeDeclaration td) = tydeclSourceAnn td
 declSourceAnn (ValueDeclaration vd) = valdeclSourceAnn vd
 declSourceAnn (BoundValueDeclaration sa _ _) = sa
 declSourceAnn (BindingGroupDeclaration ds) = let ((sa, _), _, _) = NEL.head ds in sa
 declSourceAnn (ExternDeclaration sa _ _) = sa
 declSourceAnn (ExternDataDeclaration sa _ _) = sa
-declSourceAnn (ExternKindDeclaration sa _) = sa
 declSourceAnn (FixityDeclaration sa _) = sa
 declSourceAnn (ImportDeclaration sa _ _ _) = sa
 declSourceAnn (TypeClassDeclaration sa _ _ _ _ _) = sa
-declSourceAnn (TypeInstanceDeclaration sa _ _ _ _ _ _ _) = sa
+declSourceAnn (TypeInstanceDeclaration sa _ _ _ _ _ _ _ _) = sa
 
 declSourceSpan :: Declaration -> SourceSpan
 declSourceSpan = fst . declSourceAnn
 
+-- Note: Kind Declarations' names can refer to either a `TyClassName`
+-- or a `TypeName`. Use a helper function for handling `KindDeclaration`s
+-- specifically in the context in which it is needed.
 declName :: Declaration -> Maybe Name
 declName (DataDeclaration _ _ n _ _) = Just (TyName n)
 declName (TypeSynonymDeclaration _ n _ _) = Just (TyName n)
 declName (ValueDeclaration vd) = Just (IdentName (valdeclIdent vd))
 declName (ExternDeclaration _ n _) = Just (IdentName n)
 declName (ExternDataDeclaration _ n _) = Just (TyName n)
-declName (ExternKindDeclaration _ n) = Just (KiName n)
 declName (FixityDeclaration _ (Left (ValueFixity _ _ n))) = Just (ValOpName n)
 declName (FixityDeclaration _ (Right (TypeFixity _ _ n))) = Just (TyOpName n)
 declName (TypeClassDeclaration _ n _ _ _ _) = Just (TyClassName n)
-declName (TypeInstanceDeclaration _ _ _ n _ _ _ _) = Just (IdentName n)
+declName (TypeInstanceDeclaration _ _ _ _ n _ _ _ _) = IdentName <$> hush n
+declName (RoleDeclaration RoleDeclarationData{..}) = Just (TyName rdeclIdent)
 declName ImportDeclaration{} = Nothing
 declName BindingGroupDeclaration{} = Nothing
 declName DataBindingGroupDeclaration{} = Nothing
 declName BoundValueDeclaration{} = Nothing
+declName KindDeclaration{} = Nothing
 declName TypeDeclaration{} = Nothing
 
 -- |
@@ -620,14 +539,20 @@
 isValueDecl _ = False
 
 -- |
--- Test if a declaration is a data type or type synonym declaration
+-- Test if a declaration is a data type declaration
 --
 isDataDecl :: Declaration -> Bool
 isDataDecl DataDeclaration{} = True
-isDataDecl TypeSynonymDeclaration{} = True
 isDataDecl _ = False
 
 -- |
+-- Test if a declaration is a type synonym declaration
+--
+isTypeSynonymDecl :: Declaration -> Bool
+isTypeSynonymDecl TypeSynonymDeclaration{} = True
+isTypeSynonymDecl _ = False
+
+-- |
 -- Test if a declaration is a module import
 --
 isImportDecl :: Declaration -> Bool
@@ -635,6 +560,13 @@
 isImportDecl _ = False
 
 -- |
+-- Test if a declaration is a role declaration
+--
+isRoleDecl :: Declaration -> Bool
+isRoleDecl RoleDeclaration{} = True
+isRoleDecl _ = False
+
+-- |
 -- Test if a declaration is a data type foreign import
 --
 isExternDataDecl :: Declaration -> Bool
@@ -642,13 +574,6 @@
 isExternDataDecl _ = False
 
 -- |
--- Test if a declaration is a foreign kind import
---
-isExternKindDecl :: Declaration -> Bool
-isExternKindDecl ExternKindDeclaration{} = True
-isExternKindDecl _ = False
-
--- |
 -- Test if a declaration is a fixity declaration
 --
 isFixityDecl :: Declaration -> Bool
@@ -669,18 +594,25 @@
 -- |
 -- Test if a declaration is a type class instance declaration
 --
-isTypeClassInstanceDeclaration :: Declaration -> Bool
-isTypeClassInstanceDeclaration TypeInstanceDeclaration{} = True
-isTypeClassInstanceDeclaration _ = False
+isTypeClassInstanceDecl :: Declaration -> Bool
+isTypeClassInstanceDecl TypeInstanceDeclaration{} = True
+isTypeClassInstanceDecl _ = False
 
 -- |
 -- Test if a declaration is a type class declaration
 --
-isTypeClassDeclaration :: Declaration -> Bool
-isTypeClassDeclaration TypeClassDeclaration{} = True
-isTypeClassDeclaration _ = False
+isTypeClassDecl :: Declaration -> Bool
+isTypeClassDecl TypeClassDeclaration{} = True
+isTypeClassDecl _ = False
 
 -- |
+-- Test if a declaration is a kind signature declaration.
+--
+isKindDecl :: Declaration -> Bool
+isKindDecl KindDeclaration{} = True
+isKindDecl _ = False
+
+-- |
 -- Recursively flatten data binding groups in the list of declarations
 flattenDecls :: [Declaration] -> [Declaration]
 flattenDecls = concatMap flattenOne
@@ -693,13 +625,13 @@
 --
 data Guard = ConditionGuard Expr
            | PatternGuard Binder Expr
-           deriving (Show)
+           deriving (Show, Generic, NFData)
 
 -- |
 -- The right hand side of a binder in value declarations
 -- and case expressions.
 data GuardedExpr = GuardedExpr [Guard] Expr
-                 deriving (Show)
+                 deriving (Show, Generic, NFData)
 
 pattern MkUnguarded :: Expr -> GuardedExpr
 pattern MkUnguarded e = GuardedExpr [] e
@@ -753,6 +685,16 @@
   --
   | App Expr Expr
   -- |
+  -- A type application (e.g. `f @Int`)
+  --
+  | VisibleTypeApp Expr SourceType
+  -- |
+  -- Hint that an expression is unused.
+  -- This is used to ignore type class dictionaries that are necessarily empty.
+  -- The inner expression lets us solve subgoals before eliminating the whole expression.
+  -- The code gen will render this as `undefined`, regardless of what the inner expression is.
+  | Unused Expr
+  -- |
   -- Variable
   --
   | Var SourceSpan (Qualified Ident)
@@ -791,11 +733,6 @@
   --
   | Ado (Maybe ModuleName) [DoNotationElement] Expr
   -- |
-  -- An application of a typeclass dictionary constructor. The value should be
-  -- an ObjectLiteral.
-  --
-  | TypeClassDictionaryConstructorApp (Qualified (ProperName 'ClassName)) Expr
-  -- |
   -- A placeholder for a type class dictionary to be inserted later. At the end of type checking, these
   -- placeholders will be replaced with actual expressions representing type classes dictionaries which
   -- can be evaluated at runtime. The constructor arguments represent (in order): whether or not to look
@@ -803,17 +740,17 @@
   -- instance type, and the type class dictionaries in scope.
   --
   | TypeClassDictionary SourceConstraint
-                        (M.Map (Maybe ModuleName) (M.Map (Qualified (ProperName 'ClassName)) (M.Map (Qualified Ident) (NEL.NonEmpty NamedDict))))
+                        (M.Map QualifiedBy (M.Map (Qualified (ProperName 'ClassName)) (M.Map (Qualified Ident) (NEL.NonEmpty NamedDict))))
                         [ErrorMessageHint]
   -- |
-  -- A typeclass dictionary accessor, the implementation is left unspecified until CoreFn desugaring.
-  --
-  | TypeClassDictionaryAccessor (Qualified (ProperName 'ClassName)) Ident
-  -- |
   -- A placeholder for a superclass dictionary to be turned into a TypeClassDictionary during typechecking
   --
   | DeferredDictionary (Qualified (ProperName 'ClassName)) [SourceType]
   -- |
+  -- A placeholder for a type class instance to be derived during typechecking
+  --
+  | DerivedInstancePlaceholder (Qualified (ProperName 'ClassName)) InstanceDerivationStrategy
+  -- |
   -- A placeholder for an anonymous function argument
   --
   | AnonymousArgument
@@ -825,7 +762,7 @@
   -- A value with source position information
   --
   | PositionedValue SourceSpan [Comment] Expr
-  deriving (Show)
+  deriving (Show, Generic, NFData)
 
 -- |
 -- Metadata that tells where a let binding originated
@@ -839,7 +776,7 @@
   -- The let binding was always a let binding
   --
   | FromLet
-  deriving (Show)
+  deriving (Show, Generic, NFData)
 
 -- |
 -- An alternative in a case statement
@@ -853,7 +790,7 @@
     -- The result expression or a collect of guarded expressions
     --
   , caseAlternativeResult :: [GuardedExpr]
-  } deriving (Show)
+  } deriving (Show, Generic, NFData)
 
 -- |
 -- A statement in a do-notation block
@@ -875,7 +812,7 @@
   -- A do notation element with source position information
   --
   | PositionedDoNotationElement SourceSpan [Comment] DoNotationElement
-  deriving (Show)
+  deriving (Show, Generic, NFData)
 
 
 -- For a record update such as:
@@ -903,21 +840,29 @@
 
 newtype PathTree t = PathTree (AssocList PSString (PathNode t))
   deriving (Show, Eq, Ord, Functor, Foldable, Traversable)
+  deriving newtype NFData
 
 data PathNode t = Leaf t | Branch (PathTree t)
-  deriving (Show, Eq, Ord, Functor, Foldable, Traversable)
+  deriving (Show, Eq, Ord, Generic, NFData, Functor, Foldable, Traversable)
 
 newtype AssocList k t = AssocList { runAssocList :: [(k, t)] }
   deriving (Show, Eq, Ord, Foldable, Functor, Traversable)
+  deriving newtype NFData
 
+$(deriveJSON (defaultOptions { sumEncoding = ObjectWithSingleField }) ''NameSource)
+$(deriveJSON (defaultOptions { sumEncoding = ObjectWithSingleField }) ''ExportSource)
 $(deriveJSON (defaultOptions { sumEncoding = ObjectWithSingleField }) ''DeclarationRef)
 $(deriveJSON (defaultOptions { sumEncoding = ObjectWithSingleField }) ''ImportDeclarationType)
-$(deriveJSON (defaultOptions { sumEncoding = ObjectWithSingleField }) ''ExportSource)
 
 isTrueExpr :: Expr -> Bool
 isTrueExpr (Literal _ (BooleanLiteral True)) = True
-isTrueExpr (Var _ (Qualified (Just (ModuleName [ProperName "Prelude"])) (Ident "otherwise"))) = True
-isTrueExpr (Var _ (Qualified (Just (ModuleName [ProperName "Data", ProperName "Boolean"])) (Ident "otherwise"))) = True
+isTrueExpr (Var _ (Qualified (ByModuleName (ModuleName "Prelude")) (Ident "otherwise"))) = True
+isTrueExpr (Var _ (Qualified (ByModuleName (ModuleName "Data.Boolean")) (Ident "otherwise"))) = True
 isTrueExpr (TypedValue _ e _) = isTrueExpr e
 isTrueExpr (PositionedValue _ _ e) = isTrueExpr e
 isTrueExpr _ = False
+
+isAnonymousArgument :: Expr -> Bool
+isAnonymousArgument AnonymousArgument = True
+isAnonymousArgument (PositionedValue _ _ e) = isAnonymousArgument e
+isAnonymousArgument _ = False
diff --git a/src/Language/PureScript/AST/Declarations/ChainId.hs b/src/Language/PureScript/AST/Declarations/ChainId.hs
new file mode 100644
--- /dev/null
+++ b/src/Language/PureScript/AST/Declarations/ChainId.hs
@@ -0,0 +1,20 @@
+module Language.PureScript.AST.Declarations.ChainId
+  ( ChainId
+  , mkChainId
+  ) where
+
+import Prelude
+import Language.PureScript.AST.SourcePos qualified as Pos
+import Control.DeepSeq (NFData)
+import Codec.Serialise (Serialise)
+
+-- |
+-- For a given instance chain, stores the chain's file name and
+-- the starting source pos of the first instance in the chain.
+-- This data is used to determine which instances are part of
+-- the same instance chain.
+newtype ChainId = ChainId (String, Pos.SourcePos)
+  deriving (Eq, Ord, Show, NFData, Serialise)
+
+mkChainId :: String -> Pos.SourcePos -> ChainId
+mkChainId fileName startingSourcePos = ChainId (fileName, startingSourcePos)
diff --git a/src/Language/PureScript/AST/Exported.hs b/src/Language/PureScript/AST/Exported.hs
--- a/src/Language/PureScript/AST/Exported.hs
+++ b/src/Language/PureScript/AST/Exported.hs
@@ -3,17 +3,18 @@
   , isExported
   ) where
 
-import Prelude.Compat
-import Protolude (sortBy, on)
+import Prelude
+import Protolude (sortOn)
 
 import Control.Category ((>>>))
+import Control.Applicative ((<|>))
 
 import Data.Maybe (mapMaybe)
-import qualified Data.Map as M
+import Data.Map qualified as M
 
-import Language.PureScript.AST.Declarations
-import Language.PureScript.Types
-import Language.PureScript.Names
+import Language.PureScript.AST.Declarations (DataConstructorDeclaration(..), Declaration(..), DeclarationRef(..), Module(..), declName, declRefName, flattenDecls)
+import Language.PureScript.Types (Constraint(..), Type(..), everythingOnTypes)
+import Language.PureScript.Names (ModuleName, Name(..), ProperName, ProperNameType(..), Qualified, coerceProperName, disqualify, isQualified, isQualifiedWith)
 
 -- |
 -- Return a list of all declarations which are exported from a module.
@@ -30,6 +31,8 @@
 -- list, unless there is no export list, in which case they appear in the same
 -- order as they do in the source file.
 --
+-- Kind signatures declarations are also exported if their associated
+-- declaration is exported.
 exportedDeclarations :: Module -> [Declaration]
 exportedDeclarations (Module _ _ mn decls exps) = go decls
   where
@@ -47,7 +50,7 @@
 filterDataConstructors :: Maybe [DeclarationRef] -> Declaration -> Declaration
 filterDataConstructors exps (DataDeclaration sa dType tyName tyArgs dctors) =
   DataDeclaration sa dType tyName tyArgs $
-    filter (isDctorExported tyName exps . fst) dctors
+    filter (isDctorExported tyName exps . dataCtorName) dctors
 filterDataConstructors _ other = other
 
 -- |
@@ -101,7 +104,7 @@
 -- Get all type and type class names referenced by a type instance declaration.
 --
 typeInstanceConstituents :: Declaration -> [Either (Qualified (ProperName 'ClassName)) (Qualified (ProperName 'TypeName))]
-typeInstanceConstituents (TypeInstanceDeclaration _ _ _ _ constraints className tys _) =
+typeInstanceConstituents (TypeInstanceDeclaration _ _ _ _ _ constraints className tys _) =
   Left className : (concatMap fromConstraint constraints ++ concatMap fromType tys)
   where
 
@@ -126,6 +129,11 @@
 isExported :: Maybe [DeclarationRef] -> Declaration -> Bool
 isExported Nothing _ = True
 isExported _ TypeInstanceDeclaration{} = True
+isExported (Just exps) (KindDeclaration _ _ n _) = any matches exps
+  where
+  matches declRef = do
+    let refName = declRefName declRef
+    TyName n == refName || TyClassName (tyToClassName n) == refName
 isExported (Just exps) decl = any matches exps
   where
   matches declRef = declName decl == Just (declRefName declRef)
@@ -148,9 +156,18 @@
 --
 reorder :: [DeclarationRef] -> [Declaration] -> [Declaration]
 reorder refs =
-  sortBy (compare `on` refIndex)
+  sortOn refIndex
   where
   refIndices =
     M.fromList $ zip (map declRefName refs) [(0::Int)..]
-  refIndex decl =
-    declName decl >>= flip M.lookup refIndices
+  refIndex = \case
+    KindDeclaration _ _ n _ ->
+      M.lookup (TyName n) refIndices <|> M.lookup (TyClassName (tyToClassName n)) refIndices
+
+    decl -> declName decl >>= flip M.lookup refIndices
+
+-- |
+-- Workaround to the fact that a `KindDeclaration`'s name's `ProperNameType`
+-- isn't the same as the corresponding `TypeClassDeclaration`'s `ProperNameType`
+tyToClassName :: ProperName 'TypeName -> ProperName 'ClassName
+tyToClassName = coerceProperName
diff --git a/src/Language/PureScript/AST/Literals.hs b/src/Language/PureScript/AST/Literals.hs
--- a/src/Language/PureScript/AST/Literals.hs
+++ b/src/Language/PureScript/AST/Literals.hs
@@ -1,9 +1,12 @@
+{-# LANGUAGE DeriveAnyClass #-}
 -- |
 -- The core functional representation for literal values.
 --
 module Language.PureScript.AST.Literals where
 
-import Prelude.Compat
+import Prelude
+import Control.DeepSeq (NFData)
+import GHC.Generics (Generic)
 import Language.PureScript.PSString (PSString)
 
 -- |
@@ -35,4 +38,4 @@
   -- An object literal
   --
   | ObjectLiteral [(PSString, a)]
-  deriving (Eq, Ord, Show, Functor)
+  deriving (Eq, Ord, Show, Functor, Generic, NFData)
diff --git a/src/Language/PureScript/AST/Operators.hs b/src/Language/PureScript/AST/Operators.hs
--- a/src/Language/PureScript/AST/Operators.hs
+++ b/src/Language/PureScript/AST/Operators.hs
@@ -1,17 +1,17 @@
-{-# LANGUAGE DeriveGeneric #-}
 -- |
 -- Operators fixity and associativity
 --
 module Language.PureScript.AST.Operators where
 
-import Prelude.Compat
+import Prelude
 
+import Codec.Serialise (Serialise)
 import GHC.Generics (Generic)
 import Control.DeepSeq (NFData)
 import Data.Aeson ((.=))
-import qualified Data.Aeson as A
+import Data.Aeson qualified as A
 
-import Language.PureScript.Crash
+import Language.PureScript.Crash (internalError)
 
 -- |
 -- A precedence level for an infix operator
@@ -25,6 +25,7 @@
   deriving (Show, Eq, Ord, Generic)
 
 instance NFData Associativity
+instance Serialise Associativity
 
 showAssoc :: Associativity -> String
 showAssoc Infixl = "infixl"
@@ -50,6 +51,7 @@
   deriving (Show, Eq, Ord, Generic)
 
 instance NFData Fixity
+instance Serialise Fixity
 
 instance A.ToJSON Fixity where
   toJSON (Fixity associativity precedence) =
diff --git a/src/Language/PureScript/AST/SourcePos.hs b/src/Language/PureScript/AST/SourcePos.hs
--- a/src/Language/PureScript/AST/SourcePos.hs
+++ b/src/Language/PureScript/AST/SourcePos.hs
@@ -1,18 +1,19 @@
-{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DeriveAnyClass #-}
 -- |
 -- Source position information
 --
 module Language.PureScript.AST.SourcePos where
 
-import Prelude.Compat
+import Prelude
 
+import Codec.Serialise (Serialise)
 import Control.DeepSeq (NFData)
 import Data.Aeson ((.=), (.:))
 import Data.Text (Text)
 import GHC.Generics (Generic)
-import Language.PureScript.Comments
-import qualified Data.Aeson as A
-import qualified Data.Text as T
+import Language.PureScript.Comments (Comment)
+import Data.Aeson qualified as A
+import Data.Text qualified as T
 import System.FilePath (makeRelative)
 
 -- | Source annotation - position information and comments.
@@ -24,9 +25,7 @@
     -- ^ Line number
   , sourcePosColumn :: Int
     -- ^ Column number
-  } deriving (Show, Eq, Ord, Generic)
-
-instance NFData SourcePos
+  } deriving (Show, Eq, Ord, Generic, NFData, Serialise)
 
 displaySourcePos :: SourcePos -> Text
 displaySourcePos sp =
@@ -54,9 +53,7 @@
     -- ^ Start of the span
   , spanEnd :: SourcePos
     -- ^ End of the span
-  } deriving (Show, Eq, Ord, Generic)
-
-instance NFData SourceSpan
+  } deriving (Show, Eq, Ord, Generic, NFData, Serialise)
 
 displayStartEndPos :: SourceSpan -> Text
 displayStartEndPos sp =
diff --git a/src/Language/PureScript/AST/Traversals.hs b/src/Language/PureScript/AST/Traversals.hs
--- a/src/Language/PureScript/AST/Traversals.hs
+++ b/src/Language/PureScript/AST/Traversals.hs
@@ -3,23 +3,27 @@
 --
 module Language.PureScript.AST.Traversals where
 
-import Prelude.Compat
+import Prelude
+import Protolude (swap)
 
-import Control.Monad
+import Control.Monad ((<=<), (>=>))
+import Control.Monad.Trans.State (StateT(..))
 
 import Data.Foldable (fold)
+import Data.Functor.Identity (runIdentity)
 import Data.List (mapAccumL)
 import Data.Maybe (mapMaybe)
-import qualified Data.List.NonEmpty as NEL
-import qualified Data.Set as S
+import Data.List.NonEmpty qualified as NEL
+import Data.Map qualified as M
+import Data.Set qualified as S
 
-import Language.PureScript.AST.Binders
-import Language.PureScript.AST.Declarations
-import Language.PureScript.AST.Literals
-import Language.PureScript.Kinds
-import Language.PureScript.Names
-import Language.PureScript.Traversals
-import Language.PureScript.Types
+import Language.PureScript.AST.Binders (Binder(..), binderNames)
+import Language.PureScript.AST.Declarations (CaseAlternative(..), DataConstructorDeclaration(..), Declaration(..), DoNotationElement(..), Expr(..), Guard(..), GuardedExpr(..), TypeDeclarationData(..), TypeInstanceBody(..), pattern ValueDecl, ValueDeclarationData(..), mapTypeInstanceBody, traverseTypeInstanceBody)
+import Language.PureScript.AST.Literals (Literal(..))
+import Language.PureScript.Names (pattern ByNullSourcePos, Ident)
+import Language.PureScript.Traversals (sndM, sndM', thirdM)
+import Language.PureScript.TypeClassDictionaries (TypeClassDictionaryInScope(..))
+import Language.PureScript.Types (Constraint(..), SourceType, mapConstraintArgs)
 
 guardedExprM :: Applicative m
              => (Guard -> m Guard)
@@ -58,7 +62,7 @@
   f' (BoundValueDeclaration sa b expr) = f (BoundValueDeclaration sa (h' b) (g' expr))
   f' (BindingGroupDeclaration ds) = f (BindingGroupDeclaration (fmap (\(name, nameKind, val) -> (name, nameKind, g' val)) ds))
   f' (TypeClassDeclaration sa name args implies deps ds) = f (TypeClassDeclaration sa name args implies deps (fmap f' ds))
-  f' (TypeInstanceDeclaration sa ch idx name cs className args ds) = f (TypeInstanceDeclaration sa ch idx name cs className args (mapTypeInstanceBody (fmap f') ds))
+  f' (TypeInstanceDeclaration sa na ch idx name cs className args ds) = f (TypeInstanceDeclaration sa na ch idx name cs className args (mapTypeInstanceBody (fmap f') ds))
   f' other = f other
 
   g' :: Expr -> Expr
@@ -66,12 +70,13 @@
   g' (UnaryMinus ss v) = g (UnaryMinus ss (g' v))
   g' (BinaryNoParens op v1 v2) = g (BinaryNoParens (g' op) (g' v1) (g' v2))
   g' (Parens v) = g (Parens (g' v))
-  g' (TypeClassDictionaryConstructorApp name v) = g (TypeClassDictionaryConstructorApp name (g' v))
   g' (Accessor prop v) = g (Accessor prop (g' v))
   g' (ObjectUpdate obj vs) = g (ObjectUpdate (g' obj) (fmap (fmap g') vs))
   g' (ObjectUpdateNested obj vs) = g (ObjectUpdateNested (g' obj) (fmap g' vs))
   g' (Abs binder v) = g (Abs (h' binder) (g' v))
   g' (App v1 v2) = g (App (g' v1) (g' v2))
+  g' (VisibleTypeApp v ty) = g (VisibleTypeApp (g' v) ty)
+  g' (Unused v) = g (Unused (g' v))
   g' (IfThenElse v1 v2 v3) = g (IfThenElse (g' v1) (g' v2) (g' v3))
   g' (Case vs alts) = g (Case (fmap g' vs) (fmap handleCaseAlternative alts))
   g' (TypedValue check v ty) = g (TypedValue check (g' v) ty)
@@ -129,9 +134,9 @@
   f' (DataBindingGroupDeclaration ds) = DataBindingGroupDeclaration <$> traverse (f' <=< f) ds
   f' (ValueDecl sa name nameKind bs val) =
      ValueDecl sa name nameKind <$> traverse (h' <=< h) bs <*> traverse (guardedExprM handleGuard (g' <=< g)) val
-  f' (BindingGroupDeclaration ds) = BindingGroupDeclaration <$> traverse (\(name, nameKind, val) -> (,,) name nameKind <$> (g val >>= g')) ds
+  f' (BindingGroupDeclaration ds) = BindingGroupDeclaration <$> traverse (\(name, nameKind, val) -> (name, nameKind, ) <$> (g val >>= g')) ds
   f' (TypeClassDeclaration sa name args implies deps ds) = TypeClassDeclaration sa name args implies deps <$> traverse (f' <=< f) ds
-  f' (TypeInstanceDeclaration sa ch idx name cs className args ds) = TypeInstanceDeclaration sa ch idx name cs className args <$> traverseTypeInstanceBody (traverse (f' <=< f)) ds
+  f' (TypeInstanceDeclaration sa na ch idx name cs className args ds) = TypeInstanceDeclaration sa na ch idx name cs className args <$> traverseTypeInstanceBody (traverse (f' <=< f)) ds
   f' (BoundValueDeclaration sa b expr) = BoundValueDeclaration sa <$> (h' <=< h) b <*> (g' <=< g) expr
   f' other = f other
 
@@ -140,12 +145,13 @@
   g' (UnaryMinus ss v) = UnaryMinus ss <$> (g v >>= g')
   g' (BinaryNoParens op v1 v2) = BinaryNoParens <$> (g op >>= g') <*> (g v1 >>= g') <*> (g v2 >>= g')
   g' (Parens v) = Parens <$> (g v >>= g')
-  g' (TypeClassDictionaryConstructorApp name v) = TypeClassDictionaryConstructorApp name <$> (g v >>= g')
   g' (Accessor prop v) = Accessor prop <$> (g v >>= g')
   g' (ObjectUpdate obj vs) = ObjectUpdate <$> (g obj >>= g') <*> traverse (sndM (g' <=< g)) vs
   g' (ObjectUpdateNested obj vs) = ObjectUpdateNested <$> (g obj >>= g') <*> traverse (g' <=< g) vs
   g' (Abs binder v) = Abs <$> (h binder >>= h') <*> (g v >>= g')
   g' (App v1 v2) = App <$> (g v1 >>= g') <*> (g v2 >>= g')
+  g' (VisibleTypeApp v ty) = VisibleTypeApp <$> (g v >>= g') <*> pure ty
+  g' (Unused v) = Unused <$> (g v >>= g')
   g' (IfThenElse v1 v2 v3) = IfThenElse <$> (g v1 >>= g') <*> (g v2 >>= g') <*> (g v3 >>= g')
   g' (Case vs alts) = Case <$> traverse (g' <=< g) vs <*> traverse handleCaseAlternative alts
   g' (TypedValue check v ty) = TypedValue check <$> (g v >>= g') <*> pure ty
@@ -198,10 +204,10 @@
   f' (DataBindingGroupDeclaration ds) = (DataBindingGroupDeclaration <$> traverse f' ds) >>= f
   f' (ValueDecl sa name nameKind bs val) =
     ValueDecl sa name nameKind <$> traverse h' bs <*> traverse (guardedExprM handleGuard g') val >>= f
-  f' (BindingGroupDeclaration ds) = (BindingGroupDeclaration <$> traverse (\(name, nameKind, val) -> (,,) name nameKind <$> g' val) ds) >>= f
+  f' (BindingGroupDeclaration ds) = (BindingGroupDeclaration <$> traverse (\(name, nameKind, val) -> (name, nameKind, ) <$> g' val) ds) >>= f
   f' (BoundValueDeclaration sa b expr) = (BoundValueDeclaration sa <$> h' b <*> g' expr) >>= f
   f' (TypeClassDeclaration sa name args implies deps ds) = (TypeClassDeclaration sa name args implies deps <$> traverse f' ds) >>= f
-  f' (TypeInstanceDeclaration sa ch idx name cs className args ds) = (TypeInstanceDeclaration sa ch idx name cs className args <$> traverseTypeInstanceBody (traverse f') ds) >>= f
+  f' (TypeInstanceDeclaration sa na ch idx name cs className args ds) = (TypeInstanceDeclaration sa na ch idx name cs className args <$> traverseTypeInstanceBody (traverse f') ds) >>= f
   f' other = f other
 
   g' :: Expr -> m Expr
@@ -209,12 +215,13 @@
   g' (UnaryMinus ss v) = (UnaryMinus ss <$> g' v) >>= g
   g' (BinaryNoParens op v1 v2) = (BinaryNoParens <$> g' op <*> g' v1 <*> g' v2) >>= g
   g' (Parens v) = (Parens <$> g' v) >>= g
-  g' (TypeClassDictionaryConstructorApp name v) = (TypeClassDictionaryConstructorApp name <$> g' v) >>= g
   g' (Accessor prop v) = (Accessor prop <$> g' v) >>= g
   g' (ObjectUpdate obj vs) = (ObjectUpdate <$> g' obj <*> traverse (sndM g') vs) >>= g
   g' (ObjectUpdateNested obj vs) = (ObjectUpdateNested <$> g' obj <*> traverse g' vs) >>= g
   g' (Abs binder v) = (Abs <$> h' binder <*> g' v) >>= g
   g' (App v1 v2) = (App <$> g' v1 <*> g' v2) >>= g
+  g' (VisibleTypeApp v ty) = (VisibleTypeApp <$> g' v <*> pure ty) >>= g
+  g' (Unused v) = (Unused <$> g' v) >>= g
   g' (IfThenElse v1 v2 v3) = (IfThenElse <$> g' v1 <*> g' v2 <*> g' v3) >>= g
   g' (Case vs alts) = (Case <$> traverse g' vs <*> traverse handleCaseAlternative alts) >>= g
   g' (TypedValue check v ty) = (TypedValue check <$> g' v <*> pure ty) >>= g
@@ -272,7 +279,7 @@
   f' d@(ValueDeclaration vd) = foldl (<>.) (f d) (fmap h' (valdeclBinders vd) ++ concatMap (\(GuardedExpr grd v) -> fmap k' grd ++ [g' v]) (valdeclExpression vd))
   f' d@(BindingGroupDeclaration ds) = foldl (<>.) (f d) (fmap (\(_, _, val) -> g' val) ds)
   f' d@(TypeClassDeclaration _ _ _ _ _ ds) = foldl (<>.) (f d) (fmap f' ds)
-  f' d@(TypeInstanceDeclaration _ _ _ _ _ _ _ (ExplicitInstance ds)) = foldl (<>.) (f d) (fmap f' ds)
+  f' d@(TypeInstanceDeclaration _ _ _ _ _ _ _ _ (ExplicitInstance ds)) = foldl (<>.) (f d) (fmap f' ds)
   f' d@(BoundValueDeclaration _ b expr) = f d <>. h' b <>. g' expr
   f' d = f d
 
@@ -281,12 +288,13 @@
   g' v@(UnaryMinus _ v1) = g v <>. g' v1
   g' v@(BinaryNoParens op v1 v2) = g v <>. g' op <>. g' v1 <>. g' v2
   g' v@(Parens v1) = g v <>. g' v1
-  g' v@(TypeClassDictionaryConstructorApp _ v1) = g v <>. g' v1
   g' v@(Accessor _ v1) = g v <>. g' v1
   g' v@(ObjectUpdate obj vs) = foldl (<>.) (g v <>. g' obj) (fmap (g' . snd) vs)
   g' v@(ObjectUpdateNested obj vs) = foldl (<>.) (g v <>. g' obj) (fmap g' vs)
   g' v@(Abs b v1) = g v <>. h' b <>. g' v1
   g' v@(App v1 v2) = g v <>. g' v1 <>. g' v2
+  g' v@(VisibleTypeApp v' _) = g v <>. g' v'
+  g' v@(Unused v1) = g v <>. g' v1
   g' v@(IfThenElse v1 v2 v3) = g v <>. g' v1 <>. g' v2 <>. g' v3
   g' v@(Case vs alts) = foldl (<>.) (foldl (<>.) (g v) (fmap g' vs)) (fmap i' alts)
   g' v@(TypedValue _ v1 _) = g v <>. g' v1
@@ -351,7 +359,7 @@
   f' s (ValueDeclaration vd) = foldl (<>.) r0 (fmap (h'' s) (valdeclBinders vd) ++ concatMap (\(GuardedExpr grd v) -> fmap (k' s) grd ++ [g'' s v]) (valdeclExpression vd))
   f' s (BindingGroupDeclaration ds) = foldl (<>.) r0 (fmap (\(_, _, val) -> g'' s val) ds)
   f' s (TypeClassDeclaration _ _ _ _ _ ds) = foldl (<>.) r0 (fmap (f'' s) ds)
-  f' s (TypeInstanceDeclaration _ _ _ _ _ _ _ (ExplicitInstance ds)) = foldl (<>.) r0 (fmap (f'' s) ds)
+  f' s (TypeInstanceDeclaration _ _ _ _ _ _ _ _ (ExplicitInstance ds)) = foldl (<>.) r0 (fmap (f'' s) ds)
   f' _ _ = r0
 
   g'' :: s -> Expr -> r
@@ -362,12 +370,13 @@
   g' s (UnaryMinus _ v1) = g'' s v1
   g' s (BinaryNoParens op v1 v2) = g'' s op <>. g'' s v1 <>. g'' s v2
   g' s (Parens v1) = g'' s v1
-  g' s (TypeClassDictionaryConstructorApp _ v1) = g'' s v1
   g' s (Accessor _ v1) = g'' s v1
   g' s (ObjectUpdate obj vs) = foldl (<>.) (g'' s obj) (fmap (g'' s . snd) vs)
   g' s (ObjectUpdateNested obj vs) = foldl (<>.) (g'' s obj) (fmap (g'' s) vs)
   g' s (Abs binder v1) = h'' s binder <>. g'' s v1
   g' s (App v1 v2) = g'' s v1 <>. g'' s v2
+  g' s (VisibleTypeApp v _) = g'' s v
+  g' s (Unused v) = g'' s v
   g' s (IfThenElse v1 v2 v3) = g'' s v1 <>. g'' s v2 <>. g'' s v3
   g' s (Case vs alts) = foldl (<>.) (foldl (<>.) r0 (fmap (g'' s) vs)) (fmap (i'' s) alts)
   g' s (TypedValue _ v1 _) = g'' s v1
@@ -414,6 +423,27 @@
   k' s (ConditionGuard e) = g'' s e
   k' s (PatternGuard b e) = h'' s b <>. g'' s e
 
+everywhereWithContextOnValues
+  :: forall s
+   . s
+  -> (s -> Declaration       -> (s, Declaration))
+  -> (s -> Expr              -> (s, Expr))
+  -> (s -> Binder            -> (s, Binder))
+  -> (s -> CaseAlternative   -> (s, CaseAlternative))
+  -> (s -> DoNotationElement -> (s, DoNotationElement))
+  -> (s -> Guard             -> (s, Guard))
+  -> ( Declaration       -> Declaration
+     , Expr              -> Expr
+     , Binder            -> Binder
+     , CaseAlternative   -> CaseAlternative
+     , DoNotationElement -> DoNotationElement
+     , Guard             -> Guard
+     )
+everywhereWithContextOnValues s f g h i j k = (runIdentity . f', runIdentity . g', runIdentity . h', runIdentity . i', runIdentity . j', runIdentity . k')
+  where
+  (f', g', h', i', j', k') = everywhereWithContextOnValuesM s (wrap f) (wrap g) (wrap h) (wrap i) (wrap j) (wrap k)
+  wrap = ((pure .) .)
+
 everywhereWithContextOnValuesM
   :: forall m s
    . (Monad m)
@@ -423,13 +453,15 @@
   -> (s -> Binder            -> m (s, Binder))
   -> (s -> CaseAlternative   -> m (s, CaseAlternative))
   -> (s -> DoNotationElement -> m (s, DoNotationElement))
+  -> (s -> Guard             -> m (s, Guard))
   -> ( Declaration       -> m Declaration
      , Expr              -> m Expr
      , Binder            -> m Binder
      , CaseAlternative   -> m CaseAlternative
      , DoNotationElement -> m DoNotationElement
+     , Guard             -> m Guard
      )
-everywhereWithContextOnValuesM s0 f g h i j = (f'' s0, g'' s0, h'' s0, i'' s0, j'' s0)
+everywhereWithContextOnValuesM s0 f g h i j k = (f'' s0, g'' s0, h'' s0, i'' s0, j'' s0, k'' s0)
   where
   f'' s = uncurry f' <=< f s
 
@@ -438,7 +470,7 @@
     ValueDecl sa name nameKind <$> traverse (h'' s) bs <*> traverse (guardedExprM (k' s) (g'' s)) val
   f' s (BindingGroupDeclaration ds) = BindingGroupDeclaration <$> traverse (thirdM (g'' s)) ds
   f' s (TypeClassDeclaration sa name args implies deps ds) = TypeClassDeclaration sa name args implies deps <$> traverse (f'' s) ds
-  f' s (TypeInstanceDeclaration sa ch idx name cs className args ds) = TypeInstanceDeclaration sa ch idx name cs className args <$> traverseTypeInstanceBody (traverse (f'' s)) ds
+  f' s (TypeInstanceDeclaration sa na ch idx name cs className args ds) = TypeInstanceDeclaration sa na ch idx name cs className args <$> traverseTypeInstanceBody (traverse (f'' s)) ds
   f' _ other = return other
 
   g'' s = uncurry g' <=< g s
@@ -447,12 +479,13 @@
   g' s (UnaryMinus ss v) = UnaryMinus ss <$> g'' s v
   g' s (BinaryNoParens op v1 v2) = BinaryNoParens <$> g'' s op <*> g'' s v1 <*> g'' s v2
   g' s (Parens v) = Parens <$> g'' s v
-  g' s (TypeClassDictionaryConstructorApp name v) = TypeClassDictionaryConstructorApp name <$> g'' s v
   g' s (Accessor prop v) = Accessor prop <$> g'' s v
   g' s (ObjectUpdate obj vs) = ObjectUpdate <$> g'' s obj <*> traverse (sndM (g'' s)) vs
   g' s (ObjectUpdateNested obj vs) = ObjectUpdateNested <$> g'' s obj <*> traverse (g'' s) vs
   g' s (Abs binder v) = Abs <$> h' s binder <*> g'' s v
   g' s (App v1 v2) = App <$> g'' s v1 <*> g'' s v2
+  g' s (VisibleTypeApp v ty) = VisibleTypeApp <$> g'' s v <*> pure ty
+  g' s (Unused v) = Unused <$> g'' s v
   g' s (IfThenElse v1 v2 v3) = IfThenElse <$> g'' s v1 <*> g'' s v2 <*> g'' s v3
   g' s (Case vs alts) = Case <$> traverse (g'' s) vs <*> traverse (i'' s) alts
   g' s (TypedValue check v ty) = TypedValue check <$> g'' s v <*> pure ty
@@ -480,8 +513,19 @@
 
   i'' s = uncurry i' <=< i s
 
-  i' s (CaseAlternative bs val) = CaseAlternative <$> traverse (h'' s) bs <*> traverse (guardedExprM (k' s) (g'' s)) val
+  i' s (CaseAlternative bs val) = CaseAlternative <$> traverse (h'' s) bs <*> traverse (guardedExprM' s) val
 
+  -- A specialized `guardedExprM` that keeps track of the context `s`
+  -- after traversing `guards`, such that it's also exposed to `expr`.
+  guardedExprM' :: s -> GuardedExpr -> m GuardedExpr
+  guardedExprM' s (GuardedExpr guards expr) = do
+    (guards', s') <- runStateT (traverse (StateT . goGuard) guards) s
+    GuardedExpr guards' <$> g'' s' expr
+
+  -- Like k'', but `s` is tracked.
+  goGuard :: Guard -> s -> m (Guard, s)
+  goGuard x s  = k s x >>= fmap swap . sndM' k'
+
   j'' s = uncurry j' <=< j s
 
   j' s (DoNotationValue v) = DoNotationValue <$> g'' s v
@@ -489,6 +533,8 @@
   j' s (DoNotationLet ds) = DoNotationLet <$> traverse (f'' s) ds
   j' s (PositionedDoNotationElement pos com e1) = PositionedDoNotationElement pos com <$> j'' s e1
 
+  k'' s = uncurry k' <=< k s
+
   k' s (ConditionGuard e) = ConditionGuard <$> g'' s e
   k' s (PatternGuard b e) = PatternGuard <$> h'' s b <*> g'' s e
 
@@ -529,7 +575,7 @@
     let s' = S.union s (S.fromList (NEL.toList (fmap (\((_, name), _, _) -> ToplevelIdent name) ds)))
     in foldMap (\(_, _, val) -> g'' s' val) ds
   f' s (TypeClassDeclaration _ _ _ _ _ ds) = foldMap (f'' s) ds
-  f' s (TypeInstanceDeclaration _ _ _ _ _ _ _ (ExplicitInstance ds)) = foldMap (f'' s) ds
+  f' s (TypeInstanceDeclaration _ _ _ _ _ _ _ _ (ExplicitInstance ds)) = foldMap (f'' s) ds
   f' _ _ = mempty
 
   g'' :: S.Set ScopedIdent -> Expr -> r
@@ -540,7 +586,6 @@
   g' s (UnaryMinus _ v1) = g'' s v1
   g' s (BinaryNoParens op v1 v2) = g'' s op <> g'' s v1 <> g'' s v2
   g' s (Parens v1) = g'' s v1
-  g' s (TypeClassDictionaryConstructorApp _ v1) = g'' s v1
   g' s (Accessor _ v1) = g'' s v1
   g' s (ObjectUpdate obj vs) = g'' s obj <> foldMap (g'' s . snd) vs
   g' s (ObjectUpdateNested obj vs) = g'' s obj <> foldMap (g'' s) vs
@@ -548,6 +593,8 @@
     let s' = S.union (S.fromList (localBinderNames b)) s
     in h'' s b <> g'' s' v1
   g' s (App v1 v2) = g'' s v1 <> g'' s v2
+  g' s (VisibleTypeApp v _) = g'' s v
+  g' s (Unused v) = g'' s v
   g' s (IfThenElse v1 v2 v3) = g'' s v1 <> g'' s v2 <> g'' s v3
   g' s (Case vs alts) = foldMap (g'' s) vs <> foldMap (i'' s) alts
   g' s (TypedValue _ v1 _) = g'' s v1
@@ -627,56 +674,33 @@
      , CaseAlternative -> r
      , DoNotationElement -> r
      )
-accumTypes f = everythingOnValues mappend forDecls forValues (const mempty) (const mempty) (const mempty)
-  where
-  forDecls (DataDeclaration _ _ _ _ dctors) = mconcat (concatMap (fmap (f . snd) . snd) dctors)
-  forDecls (ExternDeclaration _ _ ty) = f ty
-  forDecls (TypeClassDeclaration _ _ _ implies _ _) = mconcat (concatMap (fmap f . constraintArgs) implies)
-  forDecls (TypeInstanceDeclaration _ _ _ _ cs _ tys _) = mconcat (concatMap (fmap f . constraintArgs) cs) <> mconcat (fmap f tys)
-  forDecls (TypeSynonymDeclaration _ _ _ ty) = f ty
-  forDecls (TypeDeclaration td) = f (tydeclType td)
-  forDecls _ = mempty
-
-  forValues (TypeClassDictionary c _ _) = mconcat (fmap f (constraintArgs c))
-  forValues (DeferredDictionary _ tys) = mconcat (fmap f tys)
-  forValues (TypedValue _ _ ty) = f ty
-  forValues _ = mempty
-
-accumKinds
-  :: (Monoid r)
-  => (SourceKind -> r)
-  -> ( Declaration -> r
-     , Expr -> r
-     , Binder -> r
-     , CaseAlternative -> r
-     , DoNotationElement -> r
-     )
-accumKinds f = everythingOnValues mappend forDecls forValues (const mempty) (const mempty) (const mempty)
+accumTypes f = everythingOnValues mappend forDecls forValues forBinders (const mempty) (const mempty)
   where
   forDecls (DataDeclaration _ _ _ args dctors) =
     foldMap (foldMap f . snd) args <>
-    foldMap (foldMap (forTypes . snd) . snd) dctors
+    foldMap (foldMap (f . snd) . dataCtorFields) dctors
+  forDecls (ExternDataDeclaration _ _ ty) = f ty
+  forDecls (ExternDeclaration _ _ ty) = f ty
   forDecls (TypeClassDeclaration _ _ args implies _ _) =
-    foldMap (foldMap f . snd) args <>
-    foldMap (foldMap forTypes . constraintArgs) implies
-  forDecls (TypeInstanceDeclaration _ _ _ _ cs _ tys _) =
-    foldMap (foldMap forTypes . constraintArgs) cs <>
-    foldMap forTypes tys
+    foldMap (foldMap (foldMap f)) args <>
+    foldMap (foldMap f . constraintArgs) implies
+  forDecls (TypeInstanceDeclaration _ _ _ _ _ cs _ tys _) =
+    foldMap (foldMap f . constraintArgs) cs <> foldMap f tys
   forDecls (TypeSynonymDeclaration _ _ args ty) =
     foldMap (foldMap f . snd) args <>
-    forTypes ty
-  forDecls (TypeDeclaration td) = forTypes (tydeclType td)
-  forDecls (ExternDeclaration _ _ ty) = forTypes ty
-  forDecls (ExternDataDeclaration _ _ kn) = f kn
+    f ty
+  forDecls (KindDeclaration _ _ _ ty) = f ty
+  forDecls (TypeDeclaration td) = f (tydeclType td)
   forDecls _ = mempty
 
-  forValues (TypeClassDictionary c _ _) = foldMap forTypes (constraintArgs c)
-  forValues (DeferredDictionary _ tys) = foldMap forTypes tys
-  forValues (TypedValue _ _ ty) = forTypes ty
+  forValues (TypeClassDictionary c _ _) = foldMap f (constraintArgs c)
+  forValues (DeferredDictionary _ tys) = foldMap f tys
+  forValues (TypedValue _ _ ty) = f ty
+  forValues (VisibleTypeApp _ ty) = f ty
   forValues _ = mempty
 
-  forTypes (KindedType _ _ k) = f k
-  forTypes _ = mempty
+  forBinders (TypedBinder ty _) = f ty
+  forBinders _ = mempty
 
 -- |
 -- Map a function over type annotations appearing inside a value
@@ -686,5 +710,12 @@
   where
   g :: Expr -> Expr
   g (TypedValue checkTy val t) = TypedValue checkTy val (f t)
-  g (TypeClassDictionary c sco hints) = TypeClassDictionary (mapConstraintArgs (fmap f) c) sco hints
+  g (TypeClassDictionary c sco hints) =
+    TypeClassDictionary
+      (mapConstraintArgs (fmap f) c)
+      (updateCtx sco)
+      hints
   g other = other
+  updateDict fn dict = dict { tcdInstanceTypes = fn (tcdInstanceTypes dict) }
+  updateScope = fmap . fmap . fmap . fmap $ updateDict $ fmap f
+  updateCtx = M.alter updateScope ByNullSourcePos
diff --git a/src/Language/PureScript/AST/Utils.hs b/src/Language/PureScript/AST/Utils.hs
new file mode 100644
--- /dev/null
+++ b/src/Language/PureScript/AST/Utils.hs
@@ -0,0 +1,59 @@
+module Language.PureScript.AST.Utils where
+
+import Protolude
+
+import Language.PureScript.AST (Binder(..), CaseAlternative, Expr(..), GuardedExpr, Literal, pattern MkUnguarded, nullSourceSpan)
+import Language.PureScript.Names (Ident, ModuleName, ProperName, ProperNameType(..), Qualified(..), QualifiedBy(..), byMaybeModuleName)
+import Language.PureScript.Types (SourceType, Type(..))
+
+lam :: Ident -> Expr -> Expr
+lam = Abs . mkBinder
+
+lamCase :: Ident -> [CaseAlternative] -> Expr
+lamCase s = lam s . Case [mkVar s]
+
+lamCase2 :: Ident -> Ident -> [CaseAlternative] -> Expr
+lamCase2 s t = lam s . lam t . Case [mkVar s, mkVar t]
+
+mkRef :: Qualified Ident -> Expr
+mkRef = Var nullSourceSpan
+
+mkVarMn :: Maybe ModuleName -> Ident -> Expr
+mkVarMn mn = mkRef . Qualified (byMaybeModuleName mn)
+
+mkVar :: Ident -> Expr
+mkVar = mkVarMn Nothing
+
+mkBinder :: Ident -> Binder
+mkBinder = VarBinder nullSourceSpan
+
+mkLit :: Literal Expr -> Expr
+mkLit = Literal nullSourceSpan
+
+mkCtor :: ModuleName -> ProperName 'ConstructorName -> Expr
+mkCtor mn name = Constructor nullSourceSpan (Qualified (ByModuleName mn) name)
+
+mkCtorBinder :: ModuleName -> ProperName 'ConstructorName -> [Binder] -> Binder
+mkCtorBinder mn name = ConstructorBinder nullSourceSpan (Qualified (ByModuleName mn) name)
+
+unguarded :: Expr -> [GuardedExpr]
+unguarded e = [MkUnguarded e]
+
+data UnwrappedTypeConstructor = UnwrappedTypeConstructor
+  { utcModuleName :: ModuleName
+  , utcTyCon :: ProperName 'TypeName
+  , utcKindArgs :: [SourceType]
+  , utcArgs :: [SourceType]
+  }
+
+utcQTyCon :: UnwrappedTypeConstructor -> Qualified (ProperName 'TypeName)
+utcQTyCon UnwrappedTypeConstructor{..} = Qualified (ByModuleName utcModuleName) utcTyCon
+
+unwrapTypeConstructor :: SourceType -> Maybe UnwrappedTypeConstructor
+unwrapTypeConstructor = go [] []
+  where
+  go kargs args = \case
+    TypeConstructor _ (Qualified (ByModuleName mn) tyCon) -> Just (UnwrappedTypeConstructor mn tyCon kargs args)
+    TypeApp _ ty arg -> go kargs (arg : args) ty
+    KindApp _ ty karg -> go (karg : kargs) args ty
+    _ -> Nothing
diff --git a/src/Language/PureScript/Bundle.hs b/src/Language/PureScript/Bundle.hs
--- a/src/Language/PureScript/Bundle.hs
+++ b/src/Language/PureScript/Bundle.hs
@@ -4,44 +4,36 @@
 -- This module takes as input the individual generated modules from 'Language.PureScript.Make' and
 -- performs dead code elimination, filters empty modules,
 -- and generates the final JavaScript bundle.
+{-# LANGUAGE DeriveAnyClass #-}
 module Language.PureScript.Bundle
-  ( bundle
-  , bundleSM
-  , guessModuleIdentifier
-  , ModuleIdentifier(..)
-  , moduleName
+  ( ModuleIdentifier(..)
   , ModuleType(..)
   , ErrorMessage(..)
   , printErrorMessage
+  , ForeignModuleExports(..)
   , getExportedIdentifiers
+  , ForeignModuleImports(..)
+  , getImportedModules
+  , Module
   ) where
 
-import Prelude.Compat
-import Protolude (ordNub)
+import Prelude
 
-import Control.Monad
-import Control.Monad.Error.Class
-import Control.Arrow ((&&&))
+import Control.DeepSeq (NFData)
+import Control.Monad.Error.Class (MonadError(..))
 
-import Data.Array ((!))
+import Data.Aeson ((.=))
 import Data.Char (chr, digitToInt)
 import Data.Foldable (fold)
-import Data.Generics (GenericM, everything, everywhere, gmapMo, mkMp, mkQ, mkT)
-import Data.Graph
-import Data.List (stripPrefix)
-import Data.Maybe (catMaybes, fromMaybe, mapMaybe)
-import Data.Version (showVersion)
-import qualified Data.Map as M
-import qualified Data.Set as S
-
-import Language.JavaScript.Parser
-import Language.JavaScript.Parser.AST
-
-import qualified Paths_purescript as Paths
+import Data.Maybe (mapMaybe, maybeToList)
+import Data.Aeson qualified as A
+import Data.Text.Lazy qualified as LT
 
-import System.FilePath (takeFileName, takeDirectory, takeDirectory, makeRelative)
+import GHC.Generics (Generic)
 
-import SourceMap.Types
+import Language.JavaScript.Parser (JSAST(..), JSAnnot(..), JSAssignOp(..), JSExpression(..), JSStatement(..), renderToText)
+import Language.JavaScript.Parser.AST (JSCommaList(..), JSCommaTrailingList(..), JSExportClause(..), JSExportDeclaration(..), JSExportSpecifier(..), JSFromClause(..), JSIdent(..), JSImportDeclaration(..), JSModuleItem(..), JSObjectProperty(..), JSObjectPropertyList, JSPropertyName(..), JSVarInitializer(..))
+import Language.JavaScript.Process.Minify (minifyJS)
 
 -- | The type of error messages. We separate generation and rendering of errors using a data
 -- type, in case we need to match on error types later.
@@ -49,40 +41,42 @@
   = UnsupportedModulePath String
   | InvalidTopLevel
   | UnableToParseModule String
+  | UnsupportedImport
   | UnsupportedExport
   | ErrorInModule ModuleIdentifier ErrorMessage
   | MissingEntryPoint String
   | MissingMainModule String
-  deriving (Show)
+  deriving (Show, Generic, NFData)
 
 -- | Modules are either "regular modules" (i.e. those generated by the PureScript compiler) or
 -- foreign modules.
 data ModuleType
   = Regular
   | Foreign
-  deriving (Show, Eq, Ord)
+  deriving (Show, Eq, Ord, Generic, NFData)
 
 showModuleType :: ModuleType -> String
 showModuleType Regular = "Regular"
 showModuleType Foreign = "Foreign"
 
 -- | A module is identified by its module name and its type.
-data ModuleIdentifier = ModuleIdentifier String ModuleType deriving (Show, Eq, Ord)
+data ModuleIdentifier = ModuleIdentifier String ModuleType
+  deriving (Show, Eq, Ord, Generic, NFData)
 
-moduleName :: ModuleIdentifier -> String
-moduleName (ModuleIdentifier name _) = name
+instance A.ToJSON ModuleIdentifier where
+  toJSON (ModuleIdentifier name mt) =
+    A.object [ "name" .= name
+             , "type" .= show mt
+             ]
 
--- | Given a filename, assuming it is in the correct place on disk, infer a ModuleIdentifier.
-guessModuleIdentifier :: MonadError ErrorMessage m => FilePath -> m ModuleIdentifier
-guessModuleIdentifier filename = ModuleIdentifier (takeFileName (takeDirectory filename)) <$> guessModuleType (takeFileName filename)
-  where
-    guessModuleType "index.js" = pure Regular
-    guessModuleType "foreign.js" = pure Foreign
-    guessModuleType name = throwError $ UnsupportedModulePath name
+data Visibility
+  = Public
+  | Internal
+  deriving (Show, Eq, Ord)
 
--- | A piece of code is identified by its module and its name. These keys are used to label vertices
--- in the dependency graph.
-type Key = (ModuleIdentifier, String)
+-- | A piece of code is identified by its module, its name, and whether it is an internal variable
+-- or a public member. These keys are used to label vertices in the dependency graph.
+type Key = (ModuleIdentifier, String, Visibility)
 
 -- | An export is either a "regular export", which exports a name from the regular module we are in,
 -- or a reexport of a declaration in the corresponding foreign module.
@@ -95,7 +89,7 @@
 
 -- | There are four types of module element we are interested in:
 --
--- 1) Require statements
+-- 1) Import declarations and require statements
 -- 2) Member declarations
 -- 3) Export lists
 -- 4) Everything else
@@ -103,23 +97,87 @@
 -- Each is labelled with the original AST node which generated it, so that we can dump it back
 -- into the output during codegen.
 data ModuleElement
-  = Require JSStatement String (Either String ModuleIdentifier)
-  | Member JSStatement Bool String JSExpression [Key]
+  = Import JSModuleItem String (Either String ModuleIdentifier)
+  | Member JSStatement Visibility String JSExpression [Key]
   | ExportsList [(ExportType, String, JSExpression, [Key])]
   | Other JSStatement
-  | Skip JSStatement
+  | Skip JSModuleItem
   deriving (Show)
 
+instance A.ToJSON ModuleElement where
+  toJSON = \case
+    (Import _ name (Right target)) ->
+      A.object [ "type"   .= A.String "Import"
+               , "name"   .= name
+               , "target" .= target
+               ]
+    (Import _ name (Left targetPath)) ->
+      A.object [ "type"       .= A.String "Import"
+               , "name"       .= name
+               , "targetPath" .= targetPath
+               ]
+    (Member _ visibility name _ dependsOn) ->
+      A.object [ "type"       .= A.String "Member"
+               , "name"       .= name
+               , "visibility" .= show visibility
+               , "dependsOn"  .= map keyToJSON dependsOn
+               ]
+    (ExportsList exports) ->
+      A.object [ "type"    .= A.String "ExportsList"
+               , "exports" .= map exportToJSON exports
+               ]
+    (Other stmt) ->
+      A.object [ "type" .= A.String "Other"
+               , "js"   .= getFragment (JSAstStatement stmt JSNoAnnot)
+               ]
+    (Skip item) ->
+      A.object [ "type" .= A.String "Skip"
+               , "js"   .= getFragment (JSAstModule [item] JSNoAnnot)
+               ]
+
+    where
+
+    keyToJSON (mid, member, visibility) =
+      A.object [ "module"     .= mid
+               , "member"     .= member
+               , "visibility" .= show visibility
+               ]
+
+    exportToJSON (RegularExport sourceName, name, _, dependsOn) =
+      A.object [ "type"       .= A.String "RegularExport"
+               , "name"       .= name
+               , "sourceName" .= sourceName
+               , "dependsOn"  .= map keyToJSON dependsOn
+               ]
+    exportToJSON (ForeignReexport, name, _, dependsOn) =
+      A.object [ "type"      .= A.String "ForeignReexport"
+               , "name"      .= name
+               , "dependsOn" .= map keyToJSON dependsOn
+               ]
+
+    getFragment = ellipsize . renderToText . minifyJS
+      where
+      ellipsize text = if LT.compareLength text 20 == GT then LT.take 19 text `LT.snoc` ellipsis else text
+      ellipsis = '\x2026'
+
 -- | A module is just a list of elements of the types listed above.
 data Module = Module ModuleIdentifier (Maybe FilePath) [ModuleElement] deriving (Show)
 
+instance A.ToJSON Module where
+  toJSON (Module moduleId filePath elements) =
+    A.object [ "moduleId" .= moduleId
+             , "filePath" .= filePath
+             , "elements" .= elements
+             ]
+
 -- | Prepare an error message for consumption by humans.
 printErrorMessage :: ErrorMessage -> [String]
 printErrorMessage (UnsupportedModulePath s) =
-  [ "A CommonJS module has an unsupported name (" ++ show s ++ ")."
+  [ "An ES or CommonJS module has an unsupported name (" ++ show s ++ ")."
   , "The following file names are supported:"
   , "  1) index.js (PureScript native modules)"
-  , "  2) foreign.js (PureScript foreign modules)"
+  , "  2) foreign.js (PureScript ES foreign modules)"
+  , "  3) foreign.cjs (PureScript CommonJS foreign modules)"
   ]
 printErrorMessage InvalidTopLevel =
   [ "Expected a list of source elements at the top level." ]
@@ -127,10 +185,24 @@
   [ "The module could not be parsed:"
   , err
   ]
+printErrorMessage UnsupportedImport =
+  [ "An import was unsupported."
+  , "Modules can be imported with ES namespace imports declarations:"
+  , "  import * as module from \"Module.Name\""
+  , "Alternatively, they can be also be imported with the CommonJS require function:"
+  , "  var module = require(\"Module.Name\")"
+  ]
 printErrorMessage UnsupportedExport =
-  [ "An export was unsupported. Exports can be defined in one of two ways: "
-  , "  1) exports.name = ..."
-  , "  2) exports = { ... }"
+  [ "An export was unsupported."
+  , "Declarations can be exported as ES named exports:"
+  , "  export var decl"
+  , "Existing identifiers can be exported as well:"
+  , "  export { name }"
+  , "They can also be renamed on export:"
+  , "  export { name as alias }"
+  , "Alternatively, CommonJS exports can be defined in one of two ways:"
+  , "  1) exports.name = value"
+  , "  2) exports = { name: value }"
   ]
 printErrorMessage (ErrorInModule mid e) =
   ("Error in module " ++ displayIdentifier mid ++ ":")
@@ -140,87 +212,12 @@
     displayIdentifier (ModuleIdentifier name ty) =
       name ++ " (" ++ showModuleType ty ++ ")"
 printErrorMessage (MissingEntryPoint mName) =
-  [ "Couldn't find a CommonJS module for the specified entry point: " ++ mName
+  [ "Could not find an ES module or CommonJS module for the specified entry point: " ++ mName
   ]
 printErrorMessage (MissingMainModule mName) =
-  [ "Couldn't find a CommonJS module for the specified main module: " ++ mName
+  [ "Could not find an ES module or CommonJS module for the specified main module: " ++ mName
   ]
 
--- | Calculate the ModuleIdentifier which a require(...) statement imports.
-checkImportPath :: String -> ModuleIdentifier -> S.Set String -> Either String ModuleIdentifier
-checkImportPath "./foreign.js" m _ =
-  Right (ModuleIdentifier (moduleName m) Foreign)
-checkImportPath name _ names
-  | Just name' <- stripSuffix "/index.js" =<< stripPrefix "../" name
-  , name' `S.member` names = Right (ModuleIdentifier name' Regular)
-checkImportPath name _ _ = Left name
-
-stripSuffix :: Eq a => [a] -> [a] -> Maybe [a]
-stripSuffix suffix xs =
-  case splitAt (length xs - length suffix) xs of
-    (before, after)
-      | after == suffix -> Just before
-      | otherwise -> Nothing
-
--- | Compute the dependencies of all elements in a module, and add them to the tree.
---
--- Members and exports can have dependencies. A dependency is of one of the following forms:
---
--- 1) module.name or member["name"]
---
---    where module was imported using
---
---    var module = require("Module.Name");
---
--- 2) name
---
---    where name is the name of a member defined in the current module.
-withDeps :: Module -> Module
-withDeps (Module modulePath fn es) = Module modulePath fn (map expandDeps es)
-  where
-  -- | Collects all modules which are imported, so that we can identify dependencies of the first type.
-  imports :: [(String, ModuleIdentifier)]
-  imports = mapMaybe toImport es
-    where
-    toImport :: ModuleElement -> Maybe (String, ModuleIdentifier)
-    toImport (Require _ nm (Right mid)) = Just (nm, mid)
-    toImport _ = Nothing
-
-  -- | Collects all member names in scope, so that we can identify dependencies of the second type.
-  boundNames :: [String]
-  boundNames = mapMaybe toBoundName es
-    where
-    toBoundName :: ModuleElement -> Maybe String
-    toBoundName (Member _ _ nm _ _) = Just nm
-    toBoundName _ = Nothing
-
-  -- | Calculate dependencies and add them to the current element.
-  expandDeps :: ModuleElement -> ModuleElement
-  expandDeps (Member n f nm decl _) = Member n f nm decl (ordNub $ dependencies modulePath decl)
-  expandDeps (ExportsList exps) = ExportsList (map expand exps)
-      where
-      expand (ty, nm, n1, _) = (ty, nm, n1, ordNub (dependencies modulePath n1))
-  expandDeps other = other
-
-  dependencies :: ModuleIdentifier -> JSExpression -> [(ModuleIdentifier, String)]
-  dependencies m = everything (++) (mkQ [] toReference)
-    where
-    toReference :: JSExpression -> [(ModuleIdentifier, String)]
-    toReference (JSMemberDot mn _ nm)
-      | JSIdentifier _ mn' <- mn
-      , JSIdentifier _ nm' <- nm
-      , Just mid <- lookup mn' imports
-      = [(mid, nm')]
-    toReference (JSMemberSquare mn _ nm _)
-      | JSIdentifier _ mn' <- mn
-      , Just nm' <- fromStringLiteral nm
-      , Just mid <- lookup mn' imports
-      = [(mid, nm')]
-    toReference (JSIdentifier _ nm)
-      | nm `elem` boundNames
-      = [(m, nm)]
-    toReference _ = []
-
 -- String literals include the quote chars
 fromStringLiteral :: JSExpression -> Maybe String
 fromStringLiteral (JSStringLiteral _ str) = Just $ strValue str
@@ -261,69 +258,69 @@
 trailingCommaList (JSCTLComma l _) = commaList l
 trailingCommaList (JSCTLNone l) = commaList l
 
--- | Attempt to create a Module from a JavaScript AST.
---
--- Each type of module element is matched using pattern guards, and everything else is bundled into the
--- Other constructor.
-toModule :: forall m. (MonadError ErrorMessage m) => S.Set String -> ModuleIdentifier -> Maybe FilePath -> JSAST -> m Module
-toModule mids mid filename top
-  | JSAstProgram smts _ <- top = Module mid filename <$> traverse toModuleElement smts
-  | otherwise = err InvalidTopLevel
-  where
-  err = throwError . ErrorInModule mid
+identName :: JSIdent -> Maybe String
+identName (JSIdentName _ ident) = Just ident
+identName _ = Nothing
 
-  toModuleElement :: JSStatement -> m ModuleElement
-  toModuleElement stmt
-    | Just (importName, importPath) <- matchRequire mids mid stmt
-    = pure (Require stmt importName importPath)
-  toModuleElement stmt
-    | Just (exported, name, decl) <- matchMember stmt
-    = pure (Member stmt exported name decl [])
-  toModuleElement stmt
-    | Just props <- matchExportsAssignment stmt
-    = ExportsList <$> traverse toExport (trailingCommaList props)
-    where
-      toExport :: JSObjectProperty -> m (ExportType, String, JSExpression, [Key])
-      toExport (JSPropertyNameandValue name _ [val]) =
-        (,,val,[]) <$> exportType val
-                   <*> extractLabel' name
-      toExport _ = err UnsupportedExport
+exportStatementIdentifiers :: JSStatement -> [String]
+exportStatementIdentifiers (JSVariable _ jsExpressions _) =
+  varNames jsExpressions
+exportStatementIdentifiers (JSConstant _ jsExpressions _) =
+  varNames jsExpressions
+exportStatementIdentifiers (JSLet _ jsExpressions _) =
+  varNames jsExpressions
+exportStatementIdentifiers (JSClass _ jsIdent _ _ _ _ _) =
+  maybeToList . identName $ jsIdent
+exportStatementIdentifiers (JSFunction _ jsIdent _ _ _ _ _) =
+  maybeToList . identName $ jsIdent
+exportStatementIdentifiers (JSGenerator _ _ jsIdent _ _ _ _ _) =
+  maybeToList . identName $ jsIdent
+exportStatementIdentifiers _ = []
 
-      exportType :: JSExpression -> m ExportType
-      exportType (JSMemberDot f _ _)
-        | JSIdentifier _ "$foreign" <- f
-        = pure ForeignReexport
-      exportType (JSMemberSquare f _ _ _)
-        | JSIdentifier _ "$foreign" <- f
-        = pure ForeignReexport
-      exportType (JSIdentifier _ s) = pure (RegularExport s)
-      exportType _ = err UnsupportedExport
+varNames :: JSCommaList JSExpression -> [String]
+varNames = mapMaybe varName . commaList
+  where
+  varName (JSVarInitExpression (JSIdentifier _ ident) _) = Just ident
+  varName _ = Nothing
 
-      extractLabel' = maybe (err UnsupportedExport) pure . extractLabel
+data ForeignModuleExports =
+  ForeignModuleExports
+    { cjsExports :: [String]
+    , esExports :: [String]
+    } deriving (Show)
 
-  toModuleElement other = pure (Other other)
+instance Semigroup ForeignModuleExports where
+  (ForeignModuleExports cjsExports esExports) <> (ForeignModuleExports cjsExports' esExports') =
+    ForeignModuleExports (cjsExports <> cjsExports') (esExports <> esExports')
+instance Monoid ForeignModuleExports where
+  mempty = ForeignModuleExports [] []
 
 -- Get a list of all the exported identifiers from a foreign module.
 --
 -- TODO: what if we assign to exports.foo and then later assign to
 -- module.exports (presumably overwriting exports.foo)?
-getExportedIdentifiers :: (MonadError ErrorMessage m)
+getExportedIdentifiers :: forall m. (MonadError ErrorMessage m)
                           => String
                           -> JSAST
-                          -> m [String]
+                          -> m ForeignModuleExports
 getExportedIdentifiers mname top
-  | JSAstProgram stmts _ <- top = concat <$> traverse go stmts
+  | JSAstModule jsModuleItems _ <- top = fold <$> traverse go jsModuleItems
   | otherwise = err InvalidTopLevel
   where
+  err :: ErrorMessage -> m a
   err = throwError . ErrorInModule (ModuleIdentifier mname Foreign)
 
-  go stmt
-    | Just props <- matchExportsAssignment stmt
-    = traverse toIdent (trailingCommaList props)
-    | Just (True, name, _) <- matchMember stmt
-    = pure [name]
+  go (JSModuleStatementListItem jsStatement)
+    | Just props <- matchExportsAssignment jsStatement
+    = do cjsExports <- traverse toIdent (trailingCommaList props)
+         pure ForeignModuleExports{ cjsExports, esExports = [] }
+    | Just (Public, name, _) <- matchMember jsStatement
+    = pure ForeignModuleExports{ cjsExports = [name], esExports = [] }
     | otherwise
-    = pure []
+    = pure mempty
+  go (JSModuleExportDeclaration _ jsExportDeclaration) =
+    pure ForeignModuleExports{ cjsExports = [], esExports = exportDeclarationIdentifiers jsExportDeclaration }
+  go _ = pure mempty
 
   toIdent (JSPropertyNameandValue name _ [_]) =
     extractLabel' name
@@ -332,13 +329,57 @@
 
   extractLabel' = maybe (err UnsupportedExport) pure . extractLabel
 
+  exportDeclarationIdentifiers (JSExportFrom jsExportClause _ _) =
+    exportClauseIdentifiers jsExportClause
+  exportDeclarationIdentifiers (JSExportLocals jsExportClause _) =
+    exportClauseIdentifiers jsExportClause
+  exportDeclarationIdentifiers (JSExport jsStatement _) =
+    exportStatementIdentifiers jsStatement
+
+  exportClauseIdentifiers (JSExportClause _ jsExportsSpecifiers _) =
+    mapMaybe exportSpecifierName $ commaList jsExportsSpecifiers
+
+  exportSpecifierName (JSExportSpecifier jsIdent) = identName jsIdent
+  exportSpecifierName (JSExportSpecifierAs _ _ jsIdentAs) = identName jsIdentAs
+
+data ForeignModuleImports =
+  ForeignModuleImports
+    { cjsImports :: [String]
+    , esImports :: [String]
+    } deriving (Show)
+
+instance Semigroup ForeignModuleImports where
+  (ForeignModuleImports cjsImports esImports) <> (ForeignModuleImports cjsImports' esImports') =
+    ForeignModuleImports (cjsImports <> cjsImports') (esImports <> esImports')
+instance Monoid ForeignModuleImports where
+  mempty = ForeignModuleImports [] []
+
+-- Get a list of all the imported module identifiers from a foreign module.
+getImportedModules :: forall m. (MonadError ErrorMessage m)
+                          => String
+                          -> JSAST
+                          -> m ForeignModuleImports
+getImportedModules mname top
+  | JSAstModule jsModuleItems _ <- top = pure $ foldMap go jsModuleItems
+  | otherwise = err InvalidTopLevel
+  where
+  err :: ErrorMessage -> m a
+  err = throwError . ErrorInModule (ModuleIdentifier mname Foreign)
+
+  go (JSModuleStatementListItem jsStatement)
+    | Just (_, mid) <- matchRequire jsStatement
+    = ForeignModuleImports{ cjsImports = [mid], esImports = [] }
+  go (JSModuleImportDeclaration _ jsImportDeclaration) =
+    ForeignModuleImports{ cjsImports = [], esImports = [importDeclarationModuleId jsImportDeclaration] }
+  go _ = mempty
+
+  importDeclarationModuleId (JSImportDeclaration _ (JSFromClause _ _ mid) _) = mid
+  importDeclarationModuleId (JSImportDeclarationBare _ mid _) = mid
+
 -- Matches JS statements like this:
 -- var ModuleName = require("file");
-matchRequire :: S.Set String
-                -> ModuleIdentifier
-                -> JSStatement
-                -> Maybe (String, Either String ModuleIdentifier)
-matchRequire mids mid stmt
+matchRequire :: JSStatement -> Maybe (String, String)
+matchRequire stmt
   | JSVariable _ jsInit _ <- stmt
   , [JSVarInitExpression var varInit] <- commaList jsInit
   , JSIdentifier _ importName <- var
@@ -346,38 +387,49 @@
   , JSMemberExpression req _ argsE _ <- jsInitEx
   , JSIdentifier _ "require" <- req
   , [ Just importPath ] <- map fromStringLiteral (commaList argsE)
-  , importPath' <- checkImportPath importPath mid mids
-  = Just (importName, importPath')
+  = Just (importName, importPath)
   | otherwise
   = Nothing
 
 -- Matches JS member declarations.
-matchMember :: JSStatement -> Maybe (Bool, String, JSExpression)
+matchMember :: JSStatement -> Maybe (Visibility, String, JSExpression)
 matchMember stmt
+  | Just (name, decl) <- matchInternalMember stmt
+  = pure (Internal, name, decl)
+  -- exports.foo = expr; exports["foo"] = expr;
+  | JSAssignStatement e (JSAssign _) decl _ <- stmt
+  , Just name <- exportsAccessor e
+  = Just (Public, name, decl)
+  | otherwise
+  = Nothing
+
+matchInternalMember :: JSStatement -> Maybe (String, JSExpression)
+matchInternalMember stmt
   -- var foo = expr;
   | JSVariable _ jsInit _ <- stmt
   , [JSVarInitExpression var varInit] <- commaList jsInit
   , JSIdentifier _ name <- var
   , JSVarInit _ decl <- varInit
-  = Just (False, name, decl)
-  -- exports.foo = expr; exports["foo"] = expr;
-  | JSAssignStatement e (JSAssign _) decl _ <- stmt
-  , Just name <- accessor e
-  = Just (True, name, decl)
+  = pure (name, decl)
+  -- function foo(...args) { body }
+  | JSFunction a0 jsIdent a1 args a2 body _ <- stmt
+  , JSIdentName _ name <- jsIdent
+  = pure (name, JSFunctionExpression a0 jsIdent a1 args a2 body)
   | otherwise
   = Nothing
-  where
-  accessor :: JSExpression -> Maybe String
-  accessor (JSMemberDot exports _ nm)
-    | JSIdentifier _ "exports" <- exports
-    , JSIdentifier _ name <- nm
-    = Just name
-  accessor (JSMemberSquare exports _ nm _)
-    | JSIdentifier _ "exports" <- exports
-    , Just name <- fromStringLiteral nm
-    = Just name
-  accessor _ = Nothing
 
+-- Matches exports.* or exports["*"] expressions and returns the property name.
+exportsAccessor :: JSExpression -> Maybe String
+exportsAccessor (JSMemberDot exports _ nm)
+  | JSIdentifier _ "exports" <- exports
+  , JSIdentifier _ name <- nm
+  = Just name
+exportsAccessor (JSMemberSquare exports _ nm _)
+  | JSIdentifier _ "exports" <- exports
+  , Just name <- fromStringLiteral nm
+  = Just name
+exportsAccessor _ = Nothing
+
 -- Matches assignments to module.exports, like this:
 -- module.exports = { ... }
 matchExportsAssignment :: JSStatement -> Maybe JSObjectPropertyList
@@ -395,368 +447,3 @@
 extractLabel (JSPropertyString _ nm) = Just $ strValue nm
 extractLabel (JSPropertyIdent _ nm) = Just nm
 extractLabel _ = Nothing
-
--- | Eliminate unused code based on the specified entry point set.
-compile :: [Module] -> [ModuleIdentifier] -> [Module]
-compile modules [] = modules
-compile modules entryPoints = filteredModules
-  where
-  (graph, vertexToNode, vertexFor) = graphFromEdges verts
-
-  -- | The vertex set
-  verts :: [(ModuleElement, Key, [Key])]
-  verts = do
-    Module mid _ els <- modules
-    concatMap (toVertices mid) els
-    where
-    -- | Create a set of vertices for a module element.
-    --
-    -- Some special cases worth commenting on:
-    --
-    -- 1) Regular exports which simply export their own name do not count as dependencies.
-    --    Regular exports which rename and reexport an operator do count, however.
-    --
-    -- 2) Require statements don't contribute towards dependencies, since they effectively get
-    --    inlined wherever they are used inside other module elements.
-    toVertices :: ModuleIdentifier -> ModuleElement -> [(ModuleElement, Key, [Key])]
-    toVertices p m@(Member _ _ nm _ deps) = [(m, (p, nm), deps)]
-    toVertices p m@(ExportsList exps) = mapMaybe toVertex exps
-      where
-      toVertex (ForeignReexport, nm, _, ks) = Just (m, (p, nm), ks)
-      toVertex (RegularExport nm, nm1, _, ks) | nm /= nm1 = Just (m, (p, nm1), ks)
-      toVertex _ = Nothing
-    toVertices _ _ = []
-
-  -- | The set of vertices whose connected components we are interested in keeping.
-  entryPointVertices :: [Vertex]
-  entryPointVertices = catMaybes $ do
-    (_, k@(mid, _), _) <- verts
-    guard $ mid `elem` entryPoints
-    return (vertexFor k)
-
-  -- | The set of vertices reachable from an entry point
-  reachableSet :: S.Set Vertex
-  reachableSet = S.fromList (concatMap (reachable graph) entryPointVertices)
-
-  -- | A map from modules to the modules that are used by its reachable members.
-  moduleReferenceMap :: M.Map ModuleIdentifier (S.Set ModuleIdentifier)
-  moduleReferenceMap = M.fromAscListWith mappend $ map (vertToModule &&& vertToModuleRefs) $ S.toList reachableSet
-    where
-    vertToModuleRefs v = foldMap (S.singleton . vertToModule) $ graph ! v
-    vertToModule v = m where (_, (m, _), _) = vertexToNode v
-
-  filteredModules :: [Module]
-  filteredModules = map filterUsed modules
-    where
-    filterUsed :: Module -> Module
-    filterUsed (Module mid fn ds) = Module mid fn (map filterExports (go ds))
-      where
-      go :: [ModuleElement] -> [ModuleElement]
-      go [] = []
-      go (d : rest)
-        | not (isDeclUsed d) = skipDecl d : go rest
-        | otherwise = d : go rest
-
-      skipDecl :: ModuleElement -> ModuleElement
-      skipDecl (Require s _ _) = Skip s
-      skipDecl (Member s _ _ _ _) = Skip s
-      skipDecl (ExportsList _) = Skip (JSEmptyStatement JSNoAnnot)
-      skipDecl (Other s) = Skip s
-      skipDecl (Skip s) = Skip s
-
-      -- | Filter out the exports for members which aren't used.
-      filterExports :: ModuleElement -> ModuleElement
-      filterExports (ExportsList exps) = ExportsList (filter (\(_, nm, _, _) -> isKeyUsed (mid, nm)) exps)
-      filterExports me = me
-
-      isDeclUsed :: ModuleElement -> Bool
-      isDeclUsed (Member _ _ nm _ _) = isKeyUsed (mid, nm)
-      isDeclUsed (Require _ _ (Right midRef)) = midRef `S.member` modulesReferenced
-      isDeclUsed _ = True
-
-      isKeyUsed :: Key -> Bool
-      isKeyUsed k
-        | Just me <- vertexFor k = me `S.member` reachableSet
-        | otherwise = False
-
-      modulesReferenced :: S.Set ModuleIdentifier
-      modulesReferenced = fold $ M.lookup mid moduleReferenceMap
-
--- | Topologically sort the module dependency graph, so that when we generate code, modules can be
--- defined in the right order.
-sortModules :: [Module] -> [Module]
-sortModules modules = map (\v -> case nodeFor v of (n, _, _) -> n) (reverse (topSort graph))
-  where
-  (graph, nodeFor, _) = graphFromEdges $ do
-    m@(Module mid _ els) <- modules
-    return (m, mid, mapMaybe getKey els)
-
-  getKey :: ModuleElement -> Maybe ModuleIdentifier
-  getKey (Require _ _ (Right mi)) = Just mi
-  getKey _ = Nothing
-
--- | A module is empty if it contains no exported members (in other words,
--- if the only things left after dead code elimination are module imports and
--- "other" foreign code).
---
--- If a module is empty, we don't want to generate code for it.
-isModuleEmpty :: Module -> Bool
-isModuleEmpty (Module _ _ els) = all isElementEmpty els
-  where
-  isElementEmpty :: ModuleElement -> Bool
-  isElementEmpty (ExportsList exps) = null exps
-  isElementEmpty Require{} = True
-  isElementEmpty (Other _) = True
-  isElementEmpty (Skip _) = True
-  isElementEmpty _ = False
-
--- | Generate code for a set of modules, including a call to main().
---
--- Modules get defined on the global PS object, as follows:
---
---     var PS = { };
---     (function(exports) {
---       ...
---     })(PS["Module.Name"] = PS["Module.Name"] || {});
---
--- In particular, a module and its foreign imports share the same namespace inside PS.
--- This saves us from having to generate unique names for a module and its foreign imports,
--- and is safe since a module shares a namespace with its foreign imports in PureScript as well
--- (so there is no way to have overlaps in code generated by the compiler).
-codeGen :: Maybe String -- ^ main module
-        -> String -- ^ namespace
-        -> [Module] -- ^ input modules
-        -> Maybe String -- ^ output filename
-        -> (Maybe SourceMapping, String)
-codeGen optionsMainModule optionsNamespace ms outFileOpt = (fmap sourceMapping outFileOpt, rendered)
-  where
-  rendered = renderToString (JSAstProgram (prelude : concatMap fst modulesJS ++ maybe [] runMain optionsMainModule) JSNoAnnot)
-
-  sourceMapping :: String -> SourceMapping
-  sourceMapping outFile = SourceMapping {
-      smFile = outFile,
-      smSourceRoot = Nothing,
-      smMappings = concat $
-        zipWith3 (\file (pos :: Int) positions ->
-          map (\(porig, pgen) -> Mapping {
-                mapOriginal = Just (Pos (fromIntegral $ porig + 1) 0)
-              , mapSourceFile = pathToFile <$> file
-              , mapGenerated = (Pos (fromIntegral $ pos + pgen) 0)
-              , mapName = Nothing
-              })
-            (offsets (0,0) (Right 1 : positions)))
-          moduleFns
-          (scanl (+) (3 + moduleLength [prelude]) (map (3+) moduleLengths)) -- 3 lines between each module & at top
-          (map snd modulesJS)
-    }
-    where
-      pathToFile = makeRelative (takeDirectory outFile)
-
-      offsets (m, n) (Left d:rest) = offsets (m+d, n) rest
-      offsets (m, n) (Right d:rest) = map ((m+) &&& (n+)) [0 .. d - 1] ++ offsets (m+d, n+d) rest
-      offsets _ _ = []
-
-  moduleLength :: [JSStatement] -> Int
-  moduleLength = everything (+) (mkQ 0 countw)
-    where
-      countw :: CommentAnnotation -> Int
-      countw (WhiteSpace _ s) = length (filter (== '\n') s)
-      countw _ = 0
-
-  moduleLengths :: [Int]
-  moduleLengths = map (sum . map (either (const 0) id) . snd) modulesJS
-  moduleFns = map (\(Module _ fn _) -> fn) ms
-
-  modulesJS = map moduleToJS ms
-
-  moduleToJS :: Module -> ([JSStatement], [Either Int Int])
-  moduleToJS (Module mid _ ds) = (wrap mid (indent (concat jsDecls)), lengths)
-    where
-    (jsDecls, lengths) = unzip $ map declToJS ds
-
-    withLength :: [JSStatement] -> ([JSStatement], Either Int Int)
-    withLength n = (n, Right $ moduleLength n)
-
-    declToJS :: ModuleElement -> ([JSStatement], Either Int Int)
-    declToJS (Member n _ _ _ _) = withLength [n]
-    declToJS (Other n) = withLength [n]
-    declToJS (Skip n) = ([], Left $ moduleLength [n])
-    declToJS (Require _ nm req) = withLength
-      [
-        JSVariable lfsp
-          (cList [
-            JSVarInitExpression (JSIdentifier sp nm)
-              (JSVarInit sp $ either require (innerModuleReference sp . moduleName) req )
-          ]) (JSSemi JSNoAnnot)
-      ]
-    declToJS (ExportsList exps) = withLength $ map toExport exps
-
-      where
-
-      toExport :: (ExportType, String, JSExpression, [Key]) -> JSStatement
-      toExport (_, nm, val, _) =
-        JSAssignStatement
-          (JSMemberSquare (JSIdentifier lfsp "exports") JSNoAnnot
-            (str nm) JSNoAnnot)
-          (JSAssign sp)
-          val
-          (JSSemi JSNoAnnot)
-
-  -- comma lists are reverse-consed
-  cList :: [a] -> JSCommaList a
-  cList [] = JSLNil
-  cList [x] = JSLOne x
-  cList l = go $ reverse l
-    where
-      go [x] = JSLOne x
-      go (h:t)= JSLCons (go t) JSNoAnnot h
-      go [] = error "Invalid case in comma-list"
-
-  indent :: [JSStatement] -> [JSStatement]
-  indent = everywhere (mkT squash)
-    where
-    squash JSNoAnnot = JSAnnot (TokenPn 0 0 2) []
-    squash (JSAnnot pos ann) = JSAnnot (keepCol pos) (map splat ann)
-    squash JSAnnotSpace = JSAnnot (TokenPn 0 0 2) []
-
-    splat (CommentA pos s) = CommentA (keepCol pos) s
-    splat (WhiteSpace pos w) = WhiteSpace (keepCol pos) w
-    splat ann = ann
-
-    keepCol (TokenPn _ _ c) = TokenPn 0 0 (if c >= 0 then c + 2 else 2)
-
-  prelude :: JSStatement
-  prelude = JSVariable (JSAnnot tokenPosnEmpty [ CommentA tokenPosnEmpty $ "// Generated by purs bundle " ++ showVersion Paths.version
-                                               , WhiteSpace tokenPosnEmpty "\n" ])
-              (cList [
-                JSVarInitExpression (JSIdentifier sp optionsNamespace)
-                  (JSVarInit sp (emptyObj sp))
-              ]) (JSSemi JSNoAnnot)
-
-  require :: String -> JSExpression
-  require mn =
-    JSMemberExpression (JSIdentifier JSNoAnnot "require") JSNoAnnot (cList [ str mn ]) JSNoAnnot
-
-  moduleReference :: JSAnnot -> String -> JSExpression
-  moduleReference a mn =
-    JSMemberSquare (JSIdentifier a optionsNamespace) JSNoAnnot
-      (str mn) JSNoAnnot
-
-  innerModuleReference :: JSAnnot -> String -> JSExpression
-  innerModuleReference a mn =
-    JSMemberSquare (JSIdentifier a "$PS") JSNoAnnot
-      (str mn) JSNoAnnot
-
-
-  str :: String -> JSExpression
-  str s = JSStringLiteral JSNoAnnot $ "\"" ++ s ++ "\""
-
-
-  emptyObj :: JSAnnot -> JSExpression
-  emptyObj a = JSObjectLiteral a (JSCTLNone JSLNil) JSNoAnnot
-
-  initializeObject :: JSAnnot -> (JSAnnot -> String -> JSExpression) -> String -> JSExpression
-  initializeObject a makeReference mn =
-    JSAssignExpression (makeReference a mn) (JSAssign sp)
-    $ JSExpressionBinary (makeReference sp mn) (JSBinOpOr sp)
-    $ emptyObj sp
-
-  -- Like `somewhere`, but stops after the first successful transformation
-  firstwhere :: MonadPlus m => GenericM m -> GenericM m
-  firstwhere f x = f x `mplus` gmapMo (firstwhere f) x
-
-  prependWhitespace :: String -> [JSStatement] -> [JSStatement]
-  prependWhitespace val = fromMaybe <*> firstwhere (mkMp $ Just . reannotate)
-    where
-    reannotate (JSAnnot rpos annots) = JSAnnot rpos (ws : annots)
-    reannotate _ = JSAnnot tokenPosnEmpty [ws]
-
-    ws = WhiteSpace tokenPosnEmpty val
-
-  iife :: [JSStatement] -> String -> JSExpression -> JSStatement
-  iife body param arg =
-    JSMethodCall (JSExpressionParen lf (JSFunctionExpression JSNoAnnot JSIdentNone JSNoAnnot (JSLOne (JSIdentName JSNoAnnot param)) JSNoAnnot
-                                                             (JSBlock sp (prependWhitespace "\n  " body) lf))
-                                    JSNoAnnot)
-                 JSNoAnnot
-                 (JSLOne arg)
-                 JSNoAnnot
-                 (JSSemi JSNoAnnot)
-
-  wrap :: ModuleIdentifier -> [JSStatement] -> [JSStatement]
-  wrap (ModuleIdentifier mn mtype) ds =
-    case mtype of
-      Regular -> [iife (addModuleExports ds) "$PS" (JSIdentifier JSNoAnnot optionsNamespace)]
-      Foreign -> [iife ds "exports" (initializeObject JSNoAnnot moduleReference mn)]
-    where
-      -- Insert the exports var after a directive prologue, if one is present.
-      -- Per ECMA-262 5.1, "A Directive Prologue is the longest sequence of
-      -- ExpressionStatement productions [...] where each ExpressionStatement
-      -- [...] consists entirely of a StringLiteral [...]."
-      -- (http://ecma-international.org/ecma-262/5.1/#sec-14.1)
-      addModuleExports :: [JSStatement] -> [JSStatement]
-      addModuleExports (x:xs) | isDirective x = x : addModuleExports xs
-      addModuleExports xs
-        = JSExpressionStatement (initializeObject lfsp innerModuleReference mn) (JSSemi JSNoAnnot)
-        : JSVariable lfsp (JSLOne $ JSVarInitExpression (JSIdentifier sp "exports") $ JSVarInit sp (innerModuleReference sp mn)) (JSSemi JSNoAnnot)
-        : xs
-
-      isDirective (JSExpressionStatement (JSStringLiteral _ _) _) = True
-      isDirective _ = False
-
-  runMain :: String -> [JSStatement]
-  runMain mn =
-    [JSMethodCall
-      (JSMemberDot (moduleReference lf mn) JSNoAnnot
-        (JSIdentifier JSNoAnnot "main"))
-      JSNoAnnot (cList []) JSNoAnnot (JSSemi JSNoAnnot)]
-
-  lf :: JSAnnot
-  lf = JSAnnot tokenPosnEmpty [ WhiteSpace tokenPosnEmpty "\n" ]
-
-
-  lfsp :: JSAnnot
-  lfsp = JSAnnot tokenPosnEmpty [ WhiteSpace tokenPosnEmpty "\n  " ]
-
-  sp :: JSAnnot
-  sp = JSAnnot tokenPosnEmpty [ WhiteSpace tokenPosnEmpty " " ]
-
--- | The bundling function.
--- This function performs dead code elimination, filters empty modules
--- and generates and prints the final JavaScript bundle.
-bundleSM :: (MonadError ErrorMessage m)
-       => [(ModuleIdentifier, Maybe FilePath, String)] -- ^ The input modules.  Each module should be javascript rendered from the compiler.
-       -> [ModuleIdentifier] -- ^ Entry points.  These module identifiers are used as the roots for dead-code elimination
-       -> Maybe String -- ^ An optional main module.
-       -> String -- ^ The namespace (e.g. PS).
-       -> Maybe FilePath -- ^ The output file name (if there is one - in which case generate source map)
-       -> m (Maybe SourceMapping, String)
-bundleSM inputStrs entryPoints mainModule namespace outFilename = do
-  let mid (a,_,_) = a
-  forM_ mainModule $ \mname ->
-    when (mname `notElem` map (moduleName . mid) inputStrs) (throwError (MissingMainModule mname))
-  forM_ entryPoints $ \mIdent ->
-    when (mIdent `notElem` map mid inputStrs) (throwError (MissingEntryPoint (moduleName mIdent)))
-  input <- forM inputStrs $ \(ident, filename, js) -> do
-                ast <- either (throwError . ErrorInModule ident . UnableToParseModule) pure $ parse js (moduleName ident)
-                return (ident, filename, ast)
-
-  let mids = S.fromList (map (moduleName . mid) input)
-
-  modules <- traverse (fmap withDeps . (\(a,fn,c) -> toModule mids a fn c)) input
-
-  let compiled = compile modules entryPoints
-      sorted   = sortModules (filter (not . isModuleEmpty) compiled)
-
-  return (codeGen mainModule namespace sorted outFilename)
-
--- | The bundling function.
--- This function performs dead code elimination, filters empty modules
--- and generates and prints the final JavaScript bundle.
-bundle :: (MonadError ErrorMessage m)
-       => [(ModuleIdentifier, String)] -- ^ The input modules.  Each module should be javascript rendered from the compiler.
-       -> [ModuleIdentifier] -- ^ Entry points.  These module identifiers are used as the roots for dead-code elimination
-       -> Maybe String -- ^ An optional main module.
-       -> String -- ^ The namespace (e.g. PS).
-       -> m String
-bundle inputStrs entryPoints mainModule namespace = snd <$> bundleSM (map (\(a,b) -> (a,Nothing,b)) inputStrs) entryPoints mainModule namespace Nothing
diff --git a/src/Language/PureScript/CST.hs b/src/Language/PureScript/CST.hs
--- a/src/Language/PureScript/CST.hs
+++ b/src/Language/PureScript/CST.hs
@@ -5,7 +5,9 @@
   , parseModulesFromFiles
   , unwrapParserError
   , toMultipleErrors
+  , toMultipleWarnings
   , toPositionedError
+  , toPositionedWarning
   , pureResult
   , module Language.PureScript.CST.Convert
   , module Language.PureScript.CST.Errors
@@ -20,10 +22,10 @@
 
 import Control.Monad.Error.Class (MonadError(..))
 import Control.Parallel.Strategies (withStrategy, parList, evalTuple2, r0, rseq)
-import qualified Data.List.NonEmpty as NE
+import Data.List.NonEmpty qualified as NE
 import Data.Text (Text)
-import qualified Language.PureScript.AST as AST
-import qualified Language.PureScript.Errors as E
+import Language.PureScript.AST qualified as AST
+import Language.PureScript.Errors qualified as E
 import Language.PureScript.CST.Convert
 import Language.PureScript.CST.Errors
 import Language.PureScript.CST.Lexer
@@ -33,7 +35,7 @@
 import Language.PureScript.CST.Types
 
 pureResult :: a -> PartialResult a
-pureResult a = PartialResult a (pure a)
+pureResult a = PartialResult a ([], pure a)
 
 parseModulesFromFiles
   :: forall m k
@@ -52,18 +54,18 @@
    . MonadError E.MultipleErrors m
   => (k -> FilePath)
   -> [(k, Text)]
-  -> m [(k, AST.Module)]
+  -> m [(k, ([ParserWarning], AST.Module))]
 parseFromFiles toFilePath input =
   flip E.parU (handleParserError toFilePath)
     . inParallel
     . flip fmap input
-    $ \(k, a) -> (k, parseFromFile (toFilePath k) a)
+    $ \(k, a) -> (k, sequence $ parseFromFile (toFilePath k) a)
 
 parseModuleFromFile :: FilePath -> Text -> Either (NE.NonEmpty ParserError) (PartialResult AST.Module)
-parseModuleFromFile fp content = fmap (convertModule fp) <$> parseModule (lex content)
+parseModuleFromFile fp content = fmap (convertModule fp) <$> parseModule (lexModule content)
 
-parseFromFile :: FilePath -> Text -> Either (NE.NonEmpty ParserError) AST.Module
-parseFromFile fp content = convertModule fp <$> parse content
+parseFromFile :: FilePath -> Text -> ([ParserWarning], Either (NE.NonEmpty ParserError) AST.Module)
+parseFromFile fp content = fmap (convertModule fp) <$> parse content
 
 handleParserError
   :: forall m k a
@@ -87,9 +89,17 @@
 toMultipleErrors fp =
   E.MultipleErrors . NE.toList . fmap (toPositionedError fp)
 
+toMultipleWarnings :: FilePath -> [ParserWarning] -> E.MultipleErrors
+toMultipleWarnings fp =
+  E.MultipleErrors . fmap (toPositionedWarning fp)
+
 toPositionedError :: FilePath -> ParserError -> E.ErrorMessage
 toPositionedError name perr =
   E.ErrorMessage [E.positionedError $ sourceSpan name $ errRange perr] (E.ErrorParsingCSTModule perr)
+
+toPositionedWarning :: FilePath -> ParserWarning -> E.ErrorMessage
+toPositionedWarning name perr =
+  E.ErrorMessage [E.positionedError $ sourceSpan name $ errRange perr] (E.WarningParsingCSTModule perr)
 
 inParallel :: [(k, Either (NE.NonEmpty ParserError) a)] -> [(k, Either (NE.NonEmpty ParserError) a)]
 inParallel = withStrategy (parList (evalTuple2 r0 rseq))
diff --git a/src/Language/PureScript/CST/Convert.hs b/src/Language/PureScript/CST/Convert.hs
--- a/src/Language/PureScript/CST/Convert.hs
+++ b/src/Language/PureScript/CST/Convert.hs
@@ -3,8 +3,7 @@
 -- and attaching comments.
 
 module Language.PureScript.CST.Convert
-  ( convertKind
-  , convertType
+  ( convertType
   , convertExpr
   , convertBinder
   , convertDeclaration
@@ -16,31 +15,34 @@
   , comments
   ) where
 
-import Prelude
+import Prelude hiding (take)
 
 import Data.Bifunctor (bimap, first)
+import Data.Char (toLower)
 import Data.Foldable (foldl', toList)
 import Data.Functor (($>))
-import qualified Data.List.NonEmpty as NE
+import Data.List.NonEmpty qualified as NE
 import Data.Maybe (isJust, fromJust, mapMaybe)
-import qualified Data.Text as Text
-import qualified Language.PureScript.AST as AST
-import qualified Language.PureScript.AST.SourcePos as Pos
-import qualified Language.PureScript.Comments as C
-import qualified Language.PureScript.Environment as Env
-import qualified Language.PureScript.Kinds as K
-import qualified Language.PureScript.Label as L
-import qualified Language.PureScript.Names as N
-import Language.PureScript.PSString (mkString)
-import qualified Language.PureScript.Types as T
+import Data.Text qualified as Text
+import Language.PureScript.AST qualified as AST
+import Language.PureScript.AST.Declarations.ChainId (mkChainId)
+import Language.PureScript.AST.SourcePos qualified as Pos
+import Language.PureScript.Comments qualified as C
+import Language.PureScript.Crash (internalError)
+import Language.PureScript.Environment qualified as Env
+import Language.PureScript.Label qualified as L
+import Language.PureScript.Names qualified as N
+import Language.PureScript.PSString (mkString, prettyPrintStringJS)
+import Language.PureScript.Types qualified as T
 import Language.PureScript.CST.Positions
+import Language.PureScript.CST.Print (printToken)
 import Language.PureScript.CST.Types
 
 comment :: Comment a -> Maybe C.Comment
 comment = \case
   Comment t
-    | Text.isPrefixOf "{-" t -> Just $ C.BlockComment $ Text.drop 2 $ Text.dropEnd 2 t
-    | Text.isPrefixOf "--" t -> Just $ C.LineComment $ Text.drop 2 t
+    | "{-" `Text.isPrefixOf` t -> Just $ C.BlockComment $ Text.drop 2 $ Text.dropEnd 2 t
+    | "--" `Text.isPrefixOf` t -> Just $ C.LineComment $ Text.drop 2 t
   _ -> Nothing
 
 comments :: [Comment a] -> [C.Comment]
@@ -85,36 +87,24 @@
   _ -> Nothing
   where
   go [] = Nothing
-  go ns = Just $ N.ModuleName $ N.ProperName <$> ns
+  go ns = Just $ N.ModuleName $ Text.intercalate "." ns
 
 qualified :: QualifiedName a -> N.Qualified a
-qualified q = N.Qualified (qualModule q) (qualName q)
+qualified q = N.Qualified qb (qualName q)
+  where
+  qb = maybe N.ByNullSourcePos N.ByModuleName $ qualModule q
 
 ident :: Ident -> N.Ident
 ident = N.Ident . getIdent
 
-convertKind :: String -> Kind a -> K.SourceKind
-convertKind fileName = go
-  where
-  go = \case
-    KindName _ a ->
-      K.NamedKind (sourceQualName fileName a) $ qualified a
-    KindArr _ a _ b -> do
-      let
-        lhs = go a
-        rhs = go b
-        ann = Pos.widenSourceAnn (K.getAnnForKind lhs) (K.getAnnForKind rhs)
-      K.FunKind ann lhs rhs
-    KindRow _ tok a -> do
-      let
-        kind = go a
-        ann = widenLeft (tokAnn tok) $ K.getAnnForKind kind
-      K.Row ann kind
-    KindParens _ (Wrapped _ a _) ->
-      go a
-
 convertType :: String -> Type a -> T.SourceType
-convertType fileName = go
+convertType = convertType' False
+
+convertVtaType :: String -> Type a -> T.SourceType
+convertVtaType = convertType' True
+
+convertType' :: Bool -> String -> Type a -> T.SourceType
+convertType' withinVta fileName = go
   where
   goRow (Row labels tl) b = do
     let
@@ -136,11 +126,13 @@
     TypeConstructor _ a ->
       T.TypeConstructor (sourceQualName fileName a) $ qualified a
     TypeWildcard _ a ->
-      T.TypeWildcard (sourceAnnCommented fileName a a) Nothing
+      T.TypeWildcard (sourceAnnCommented fileName a a) $ if withinVta then T.IgnoredWildcard else T.UnnamedWildcard
     TypeHole _ a ->
-      T.TypeWildcard (sourceName fileName a) . Just . getIdent $ nameValue a
+      T.TypeWildcard (sourceName fileName a) . T.HoleWildcard . getIdent $ nameValue a
     TypeString _ a b ->
-      T.TypeLevelString (sourceAnnCommented fileName a a) $ b
+      T.TypeLevelString (sourceAnnCommented fileName a a) b
+    TypeInt _ _ a b ->
+      T.TypeLevelInt (sourceAnnCommented fileName a a) b
     TypeRow _ (Wrapped _ row b) ->
       goRow row b
     TypeRecord _ (Wrapped a row b) -> do
@@ -150,20 +142,19 @@
       T.TypeApp ann (Env.tyRecord $> annRec) $ goRow row b
     TypeForall _ kw bindings _ ty -> do
       let
-        mkForAll a b t = do
+        mkForAll a b v t = do
           let ann' = widenLeft (tokAnn $ nameTok a) $ T.getAnnForType t
-          T.ForAll ann' (getIdent $ nameValue a) b t Nothing
-        k t (TypeVarKinded (Wrapped _ (Labeled a _ b) _)) = mkForAll a (Just (convertKind fileName b)) t
-        k t (TypeVarName a) = mkForAll a Nothing t
-        -- The existing parser builds variables in reverse order
-        ty' = foldl k (go ty) bindings
+          T.ForAll ann' (maybe T.TypeVarInvisible (const T.TypeVarVisible) v) (getIdent $ nameValue a) b t Nothing
+        k (TypeVarKinded (Wrapped _ (Labeled (v, a) _ b) _)) = mkForAll a (Just (go b)) v
+        k (TypeVarName (v, a)) = mkForAll a Nothing v
+        ty' = foldr k (go ty) bindings
         ann = widenLeft (tokAnn kw) $ T.getAnnForType ty'
       T.setAnnForType ann ty'
     TypeKinded _ ty _ kd -> do
       let
         ty' = go ty
-        kd' = convertKind fileName kd
-        ann = Pos.widenSourceAnn (T.getAnnForType ty') (K.getAnnForKind kd')
+        kd' = go kd
+        ann = Pos.widenSourceAnn (T.getAnnForType ty') (T.getAnnForType kd')
       T.KindedType ann ty' kd'
     TypeApp _ a b -> do
       let
@@ -197,20 +188,26 @@
       Env.tyFunction $> sourceAnnCommented fileName a a
     TypeConstrained _ a _ b -> do
       let
-        a' = convertConstraint fileName a
+        a' = convertConstraint withinVta fileName a
         b' = go b
         ann = Pos.widenSourceAnn (T.constraintAnn a') (T.getAnnForType b')
       T.ConstrainedType ann a' b'
     TypeParens _ (Wrapped a ty b) ->
       T.ParensInType (sourceAnnCommented fileName a b) $ go ty
+    ty@(TypeUnaryRow _ _ a) -> do
+      let
+        a' = go a
+        rng = typeRange ty
+        ann = uncurry (sourceAnnCommented fileName) rng
+      T.setAnnForType ann $ Env.kindRow a'
 
-convertConstraint :: String -> Constraint a -> T.SourceConstraint
-convertConstraint fileName = go
+convertConstraint :: Bool -> String -> Constraint a -> T.SourceConstraint
+convertConstraint withinVta fileName = go
   where
   go = \case
     cst@(Constraint _ name args) -> do
       let ann = uncurry (sourceAnnCommented fileName) $ constraintRange cst
-      T.Constraint ann (qualified name) (convertType fileName <$> args) Nothing
+      T.Constraint ann (qualified name) [] (convertType' withinVta fileName <$> args) Nothing
     ConstraintParens _ (Wrapped _ c _) -> go c
 
 convertGuarded :: String -> Guarded a -> [AST.GuardedExpr]
@@ -344,6 +341,9 @@
     expr@(ExprApp _ a b) -> do
       let ann = uncurry (sourceAnn fileName) $ exprRange expr
       positioned ann $ AST.App (go a) (go b)
+    expr@(ExprVisibleTypeApp _ a _ b) -> do
+      let ann = uncurry (sourceAnn fileName) $ exprRange expr
+      positioned ann $ AST.VisibleTypeApp (go a) (convertVtaType fileName b)
     expr@(ExprLambda _ (Lambda _ as _ b)) -> do
       let ann = uncurry (sourceAnnCommented fileName) $ exprRange expr
       positioned ann
@@ -446,23 +446,26 @@
 convertDeclaration fileName decl = case decl of
   DeclData _ (DataHead _ a vars) bd -> do
     let
-      ctr (DataCtor _ x ys) = (nameValue x, zip ctrFields $ convertType fileName <$> ys)
-      ctrs = case bd of
-        Nothing -> []
-        Just (_, cs) -> ctr <$> toList cs
-    pure $ AST.DataDeclaration ann Env.Data (nameValue a) (goTypeVar <$> vars) ctrs
+      ctrs :: SourceToken -> DataCtor a -> [(SourceToken, DataCtor a)] -> [AST.DataConstructorDeclaration]
+      ctrs st (DataCtor _ name fields) tl
+        = AST.DataConstructorDeclaration (sourceAnnCommented fileName st (nameTok name)) (nameValue name) (zip ctrFields $ convertType fileName <$> fields)
+        : (case tl of
+            [] -> []
+            (st', ctor) : tl' -> ctrs st' ctor tl'
+          )
+    pure $ AST.DataDeclaration ann Env.Data (nameValue a) (goTypeVar <$> vars) (maybe [] (\(st, Separated hd tl) -> ctrs st hd tl) bd)
   DeclType _ (DataHead _ a vars) _ bd ->
     pure $ AST.TypeSynonymDeclaration ann
       (nameValue a)
       (goTypeVar <$> vars)
       (convertType fileName bd)
-  DeclNewtype _ (DataHead _ a vars) _ x ys -> do
-    let ctrs = [(nameValue x, [(head ctrFields, convertType fileName ys)])]
+  DeclNewtype _ (DataHead _ a vars) st x ys -> do
+    let ctrs = [AST.DataConstructorDeclaration (sourceAnnCommented fileName st (snd $ declRange decl)) (nameValue x) [(head ctrFields, convertType fileName ys)]]
     pure $ AST.DataDeclaration ann Env.Newtype (nameValue a) (goTypeVar <$> vars) ctrs
   DeclClass _ (ClassHead _ sup name vars fdeps) bd -> do
     let
-      goTyVar (TypeVarKinded (Wrapped _ (Labeled a _ _) _)) = nameValue a
-      goTyVar (TypeVarName a) = nameValue a
+      goTyVar (TypeVarKinded (Wrapped _ (Labeled (_, a) _ _) _)) = nameValue a
+      goTyVar (TypeVarName (_, a)) = nameValue a
       vars' = zip (toList $ goTyVar <$> vars) [0..]
       goName = fromJust . flip lookup vars' . nameValue
       goFundep (FundepDetermined _ bs) = Env.FunctionalDependency [] (goName <$> NE.toList bs)
@@ -475,33 +478,44 @@
     pure $ AST.TypeClassDeclaration ann
       (nameValue name)
       (goTypeVar <$> vars)
-      (convertConstraint fileName <$> maybe [] (toList . fst) sup)
+      (convertConstraint False fileName <$> maybe [] (toList . fst) sup)
       (goFundep <$> maybe [] (toList . snd) fdeps)
       (goSig <$> maybe [] (NE.toList . snd) bd)
   DeclInstanceChain _ insts -> do
     let
-      instName (Instance (InstanceHead _ a _ _ _ _) _) = ident $ nameValue a
-      chainId = instName <$> toList insts
-      goInst ix inst@(Instance (InstanceHead _ name _ ctrs cls args) bd) = do
+      chainId = mkChainId fileName $ startSourcePos $ instKeyword $ instHead $ sepHead insts
+      goInst ix inst@(Instance (InstanceHead _ nameSep ctrs cls args) bd) = do
         let ann' = uncurry (sourceAnnCommented fileName) $ instanceRange inst
-        AST.TypeInstanceDeclaration ann' chainId ix
-          (ident $ nameValue name)
-          (convertConstraint fileName <$> maybe [] (toList . fst) ctrs)
+            clsAnn = findInstanceAnn cls args
+        AST.TypeInstanceDeclaration ann' clsAnn chainId ix
+          (mkPartialInstanceName nameSep cls args)
+          (convertConstraint False fileName <$> maybe [] (toList . fst) ctrs)
           (qualified cls)
           (convertType fileName <$> args)
           (AST.ExplicitInstance $ goInstanceBinding <$> maybe [] (NE.toList . snd) bd)
     uncurry goInst <$> zip [0..] (toList insts)
-  DeclDerive _ _ new (InstanceHead _ name _ ctrs cls args) -> do
+  DeclDerive _ _ new (InstanceHead kw nameSep ctrs cls args) -> do
     let
-      name' = ident $ nameValue name
+      chainId = mkChainId fileName $ startSourcePos kw
+      name' = mkPartialInstanceName nameSep cls args
       instTy
         | isJust new = AST.NewtypeInstance
         | otherwise = AST.DerivedInstance
-    pure $ AST.TypeInstanceDeclaration ann [name'] 0 name'
-      (convertConstraint fileName <$> maybe [] (toList . fst) ctrs)
+      clsAnn = findInstanceAnn cls args
+    pure $ AST.TypeInstanceDeclaration ann clsAnn chainId 0 name'
+      (convertConstraint False fileName <$> maybe [] (toList . fst) ctrs)
       (qualified cls)
       (convertType fileName <$> args)
       instTy
+  DeclKindSignature _ kw (Labeled name _ ty) -> do
+    let
+      kindFor = case tokValue kw of
+        TokLowerName [] "data" -> AST.DataSig
+        TokLowerName [] "newtype" -> AST.NewtypeSig
+        TokLowerName [] "type" -> AST.TypeSynonymSig
+        TokLowerName [] "class" -> AST.ClassSig
+        tok -> internalError $ "Invalid kind signature keyword " <> Text.unpack (printToken tok)
+    pure . AST.KindDeclaration ann kindFor (nameValue name) $ convertType fileName ty
   DeclSignature _ lbl ->
     pure $ convertSignature fileName lbl
   DeclValue _ fields ->
@@ -523,16 +537,73 @@
       ForeignValue (Labeled a _ b) ->
         AST.ExternDeclaration ann (ident $ nameValue a) $ convertType fileName b
       ForeignData _ (Labeled a _ b) ->
-        AST.ExternDataDeclaration ann (nameValue a) $ convertKind fileName b
+        AST.ExternDataDeclaration ann (nameValue a) $ convertType fileName b
       ForeignKind _ a ->
-        AST.ExternKindDeclaration ann (nameValue a)
+        AST.DataDeclaration ann Env.Data (nameValue a) [] []
+  DeclRole _ _ _ name roles ->
+    pure $ AST.RoleDeclaration $
+      AST.RoleDeclarationData ann (nameValue name) (roleValue <$> NE.toList roles)
   where
   ann =
     uncurry (sourceAnnCommented fileName) $ declRange decl
 
+  startSourcePos :: SourceToken -> Pos.SourcePos
+  startSourcePos = sourcePos . srcStart . tokRange . tokAnn
+
+  mkPartialInstanceName :: Maybe (Name Ident, SourceToken) -> QualifiedName (N.ProperName 'N.ClassName) -> [Type a] -> Either Text.Text N.Ident
+  mkPartialInstanceName nameSep cls args =
+    maybe (Left genName) (Right . ident . nameValue . fst) nameSep
+    where
+      -- truncate to 25 chars to reduce verbosity
+      -- of name and still keep it readable
+      -- name will be used to create a GenIdent
+      -- in desugaring process
+      genName :: Text.Text
+      genName = Text.take 25 (className <> typeArgs)
+
+      className :: Text.Text
+      className
+        = foldMap (uncurry Text.cons . first toLower)
+        . Text.uncons
+        . N.runProperName
+        $ qualName cls
+
+      typeArgs :: Text.Text
+      typeArgs = foldMap argName args
+
+      argName :: Type a -> Text.Text
+      argName = \case
+        -- These are only useful to disambiguate between overlapping instances
+        -- but they’re disallowed outside of instance chains. Since we’re
+        -- avoiding name collisions with unique identifiers anyway,
+        -- we don't need to render this constructor.
+        TypeVar{} -> ""
+        TypeConstructor _ qn -> N.runProperName $ qualName qn
+        TypeOpName _ qn -> N.runOpName $ qualName qn
+        TypeString _ _ ps -> prettyPrintStringJS ps
+        TypeInt _ _ _ nt -> Text.pack $ show nt
+
+        -- Typed holes are disallowed in instance heads
+        TypeHole{} -> ""
+        TypeParens _ t -> argName $ wrpValue t
+        TypeKinded _ t1 _ t2 -> argName t1 <> argName t2
+        TypeRecord _ _ -> "Record"
+        TypeRow _ _ -> "Row"
+        TypeArrName _ _ -> "Function"
+        TypeWildcard{} -> "_"
+
+        -- Polytypes are disallowed in instance heads
+        TypeForall{} -> ""
+        TypeApp _ t1 t2 -> argName t1 <> argName t2
+        TypeOp _ t1 op t2 ->
+          argName t1 <> N.runOpName (qualName op) <> argName t2
+        TypeArr _ t1 _ t2 -> argName t1 <> "Function" <> argName t2
+        TypeConstrained{} -> ""
+        TypeUnaryRow{} -> "Row"
+
   goTypeVar = \case
-    TypeVarKinded (Wrapped _ (Labeled x _ y) _) -> (getIdent $ nameValue x, Just $ convertKind fileName y)
-    TypeVarName x -> (getIdent $ nameValue x, Nothing)
+    TypeVarKinded (Wrapped _ (Labeled (_, x) _ y) _) -> (getIdent $ nameValue x, Just $ convertType fileName y)
+    TypeVarName (_, x) -> (getIdent $ nameValue x, Nothing)
 
   goInstanceBinding = \case
     InstanceBindingSignature _ lbl ->
@@ -541,6 +612,12 @@
       let ann' = uncurry (sourceAnnCommented fileName) $ instanceBindingRange binding
       convertValueBindingFields fileName ann' fields
 
+  findInstanceAnn cls args = uncurry (sourceAnnCommented fileName) $
+    if null args then
+      qualRange cls
+    else
+      (fst $ qualRange cls, snd $ typeRange $ last args)
+
 convertSignature :: String -> Labeled (Name Ident) (Type a) -> AST.Declaration
 convertSignature fileName (Labeled a _ b) = do
   let
@@ -564,7 +641,7 @@
     ann = uncurry (sourceAnnCommented fileName) $ importDeclRange decl
     importTy = case mbNames of
       Nothing -> AST.Implicit
-      Just (hiding, (Wrapped _ imps _)) -> do
+      Just (hiding, Wrapped _ imps _) -> do
         let imps' = convertImport fileName <$> toList imps
         if isJust hiding
           then AST.Hiding imps'
@@ -590,8 +667,6 @@
     AST.TypeOpRef ann $ nameValue a
   ImportClass _ _ a ->
     AST.TypeClassRef ann $ nameValue a
-  ImportKind _ _ a ->
-    AST.KindRef ann $ nameValue a
   where
   ann = sourceSpan fileName . toSourceRange $ importRange imp
 
@@ -614,8 +689,6 @@
     AST.TypeOpRef ann $ nameValue a
   ExportClass _ _ a ->
     AST.TypeClassRef ann $ nameValue a
-  ExportKind _ _ a ->
-    AST.KindRef ann $ nameValue a
   ExportModule _ _ a ->
     AST.ModuleRef ann (nameValue a)
   where
diff --git a/src/Language/PureScript/CST/Errors.hs b/src/Language/PureScript/CST/Errors.hs
--- a/src/Language/PureScript/CST/Errors.hs
+++ b/src/Language/PureScript/CST/Errors.hs
@@ -1,22 +1,29 @@
-{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE DeriveAnyClass #-}
 module Language.PureScript.CST.Errors
-  ( ParserError(..)
+  ( ParserErrorInfo(..)
   , ParserErrorType(..)
+  , ParserWarningType(..)
+  , ParserError
+  , ParserWarning
   , prettyPrintError
   , prettyPrintErrorMessage
+  , prettyPrintWarningMessage
   ) where
 
 import Prelude
 
-import qualified Data.Text as Text
+import Control.DeepSeq (NFData)
+import Data.Text qualified as Text
 import Data.Char (isSpace, toUpper)
-import Language.PureScript.CST.Layout
-import Language.PureScript.CST.Print
-import Language.PureScript.CST.Types
+import GHC.Generics (Generic)
+import Language.PureScript.CST.Layout (LayoutStack)
+import Language.PureScript.CST.Print (printToken)
+import Language.PureScript.CST.Types (SourcePos(..), SourceRange(..), SourceToken(..), Token(..))
 import Text.Printf (printf)
 
 data ParserErrorType
   = ErrWildcardInType
+  | ErrConstraintInKind
   | ErrHoleInType
   | ErrExprInBinder
   | ErrExprInDeclOrBinder
@@ -33,6 +40,7 @@
   | ErrGuardInLetBinder
   | ErrKeywordVar
   | ErrKeywordSymbol
+  | ErrQuotedPun
   | ErrToken
   | ErrLineFeedInString
   | ErrAstralCodePointInChar
@@ -48,19 +56,31 @@
   | ErrQualifiedName
   | ErrEmptyDo
   | ErrLexeme (Maybe String) [String]
+  | ErrConstraintInForeignImportSyntax
   | ErrEof
   | ErrCustom String
-  deriving (Show, Eq, Ord)
+  deriving (Show, Eq, Ord, Generic, NFData)
 
-data ParserError = ParserError
+data ParserWarningType
+  = WarnDeprecatedRowSyntax
+  | WarnDeprecatedForeignKindSyntax
+  | WarnDeprecatedKindImportSyntax
+  | WarnDeprecatedKindExportSyntax
+  | WarnDeprecatedCaseOfOffsideSyntax
+  deriving (Show, Eq, Ord, Generic, NFData)
+
+data ParserErrorInfo a = ParserErrorInfo
   { errRange :: SourceRange
   , errToks :: [SourceToken]
   , errStack :: LayoutStack
-  , errType :: ParserErrorType
-  } deriving (Show, Eq)
+  , errType :: a
+  } deriving (Show, Eq, Generic, NFData)
 
+type ParserError = ParserErrorInfo ParserErrorType
+type ParserWarning = ParserErrorInfo ParserWarningType
+
 prettyPrintError :: ParserError -> String
-prettyPrintError pe@(ParserError { errRange }) =
+prettyPrintError pe@ParserErrorInfo { errRange } =
   prettyPrintErrorMessage pe <> " at " <> errPos
   where
   errPos = case errRange of
@@ -68,9 +88,11 @@
       "line " <> show line <> ", column " <> show col
 
 prettyPrintErrorMessage :: ParserError -> String
-prettyPrintErrorMessage (ParserError {..}) = case errType of
+prettyPrintErrorMessage ParserErrorInfo {..} = case errType of
   ErrWildcardInType ->
     "Unexpected wildcard in type; type wildcards are only allowed in value annotations"
+  ErrConstraintInKind ->
+    "Unsupported constraint in kind; constraints are only allowed in value annotations"
   ErrHoleInType ->
     "Unexpected hole in type; type holes are only allowed in value annotations"
   ErrExprInBinder ->
@@ -103,6 +125,8 @@
     "Expected variable, saw keyword"
   ErrKeywordSymbol ->
     "Expected symbol, saw reserved symbol"
+  ErrQuotedPun ->
+    "Unexpected quoted label in record pun, perhaps due to a missing ':'"
   ErrEof ->
     "Unexpected end of input"
   ErrLexeme (Just (hd : _)) _ | isSpace hd ->
@@ -137,6 +161,8 @@
     "Expected do statement"
   ErrLexeme _ _ ->
     basicError
+  ErrConstraintInForeignImportSyntax ->
+    "Constraints are not allowed in foreign imports. Omit the constraint instead and update the foreign module accordingly."
   ErrToken
     | SourceToken _ (TokLeftArrow _) : _ <- errToks ->
         "Unexpected \"<-\" in expression, perhaps due to a missing 'do' or 'ado' keyword"
@@ -160,3 +186,16 @@
   displayCodePoint :: Char -> String
   displayCodePoint x =
     "U+" <> map toUpper (printf "%0.4x" (fromEnum x))
+
+prettyPrintWarningMessage :: ParserWarning -> String
+prettyPrintWarningMessage ParserErrorInfo {..} = case errType of
+  WarnDeprecatedRowSyntax ->
+    "Unary '#' syntax for row kinds is deprecated and will be removed in a future release. Use the 'Row' kind instead."
+  WarnDeprecatedForeignKindSyntax ->
+    "Foreign kind imports are deprecated and will be removed in a future release. Use empty 'data' instead."
+  WarnDeprecatedKindImportSyntax ->
+    "Kind imports are deprecated and will be removed in a future release. Omit the 'kind' keyword instead."
+  WarnDeprecatedKindExportSyntax ->
+    "Kind exports are deprecated and will be removed in a future release. Omit the 'kind' keyword instead."
+  WarnDeprecatedCaseOfOffsideSyntax ->
+    "Dedented expressions in case branches are deprecated and will be removed in a future release. Indent the branch's expression past it's binder instead."
diff --git a/src/Language/PureScript/CST/Flatten.hs b/src/Language/PureScript/CST/Flatten.hs
new file mode 100644
--- /dev/null
+++ b/src/Language/PureScript/CST/Flatten.hs
@@ -0,0 +1,315 @@
+module Language.PureScript.CST.Flatten where
+
+import Prelude
+
+import Data.DList (DList)
+import Language.PureScript.CST.Types
+import Language.PureScript.CST.Positions (advanceLeading, moduleRange, srcRange)
+
+flattenModule :: Module a -> DList SourceToken
+flattenModule m@(Module _ a b c d e f g) =
+  pure a <>
+  flattenName b <>
+  foldMap (flattenWrapped (flattenSeparated flattenExport)) c <>
+  pure d <>
+  foldMap flattenImportDecl e <>
+  foldMap flattenDeclaration f <>
+  pure (SourceToken (TokenAnn eofRange g []) TokEof)
+  where
+    (_, endTkn) = moduleRange m
+    eofPos = advanceLeading (srcEnd (srcRange endTkn)) g
+    eofRange = SourceRange eofPos eofPos
+
+flattenDataHead :: DataHead a -> DList SourceToken
+flattenDataHead (DataHead a b c) = pure a <> flattenName b <> foldMap flattenTypeVarBinding c
+
+flattenDataCtor :: DataCtor a -> DList SourceToken
+flattenDataCtor (DataCtor _ a b) = flattenName a <> foldMap flattenType b
+
+flattenClassHead :: ClassHead a -> DList SourceToken
+flattenClassHead (ClassHead a b c d e) =
+  pure a <>
+  foldMap (\(f, g) -> flattenOneOrDelimited flattenConstraint f <> pure g) b <>
+  flattenName c <>
+  foldMap flattenTypeVarBinding d <>
+  foldMap (\(f, g) -> pure f <> flattenSeparated flattenClassFundep g) e
+
+flattenClassFundep :: ClassFundep -> DList SourceToken
+flattenClassFundep = \case
+  FundepDetermined a b ->
+    pure a <> foldMap flattenName b
+  FundepDetermines a b c ->
+    foldMap flattenName a <> pure b <> foldMap flattenName c
+
+flattenInstance :: Instance a -> DList SourceToken
+flattenInstance (Instance a b) =
+  flattenInstanceHead a <> foldMap (\(c, d) -> pure c <> foldMap flattenInstanceBinding d) b
+
+flattenInstanceHead :: InstanceHead a -> DList SourceToken
+flattenInstanceHead (InstanceHead a b c d e) =
+  pure a <>
+  foldMap (\(n, s) -> flattenName n <> pure s) b <>
+  foldMap (\(g, h) -> flattenOneOrDelimited flattenConstraint g <> pure h) c <>
+  flattenQualifiedName d <>
+  foldMap flattenType e
+
+flattenInstanceBinding :: InstanceBinding a -> DList SourceToken
+flattenInstanceBinding = \case
+  InstanceBindingSignature _ a -> flattenLabeled flattenName flattenType a
+  InstanceBindingName _ a -> flattenValueBindingFields a
+
+flattenValueBindingFields :: ValueBindingFields a -> DList SourceToken
+flattenValueBindingFields (ValueBindingFields a b c) =
+  flattenName a <>
+  foldMap flattenBinder b <>
+  flattenGuarded c
+
+flattenBinder :: Binder a -> DList SourceToken
+flattenBinder = \case
+  BinderWildcard _ a -> pure a
+  BinderVar _ a -> flattenName a
+  BinderNamed _ a b c -> flattenName a <> pure b <> flattenBinder c
+  BinderConstructor _ a b -> flattenQualifiedName a <> foldMap flattenBinder b
+  BinderBoolean _ a _ -> pure a
+  BinderChar _ a _ -> pure a
+  BinderString _ a _ -> pure a
+  BinderNumber _ a b _ -> foldMap pure a <> pure b
+  BinderArray _ a -> flattenWrapped (foldMap (flattenSeparated flattenBinder)) a
+  BinderRecord _ a ->
+    flattenWrapped (foldMap (flattenSeparated (flattenRecordLabeled flattenBinder))) a
+  BinderParens _ a -> flattenWrapped flattenBinder a
+  BinderTyped _ a b c -> flattenBinder a <> pure b <> flattenType c
+  BinderOp _ a b c -> flattenBinder a <> flattenQualifiedName b <> flattenBinder c
+
+flattenRecordLabeled :: (a -> DList SourceToken) -> RecordLabeled a -> DList SourceToken
+flattenRecordLabeled f = \case
+  RecordPun a -> flattenName a
+  RecordField a b c -> flattenLabel a <> pure b <> f c
+
+flattenRecordAccessor :: RecordAccessor a -> DList SourceToken
+flattenRecordAccessor (RecordAccessor a b c) =
+  flattenExpr a <> pure b <> flattenSeparated flattenLabel c
+
+flattenRecordUpdate :: RecordUpdate a -> DList SourceToken
+flattenRecordUpdate = \case
+  RecordUpdateLeaf a b c -> flattenLabel a <> pure b <> flattenExpr c
+  RecordUpdateBranch a b ->
+    flattenLabel a <> flattenWrapped (flattenSeparated flattenRecordUpdate) b
+
+flattenLambda :: Lambda a -> DList SourceToken
+flattenLambda (Lambda a b c d) =
+  pure a <> foldMap flattenBinder b <> pure c <> flattenExpr d
+
+flattenIfThenElse :: IfThenElse a -> DList SourceToken
+flattenIfThenElse (IfThenElse a b c d e f) =
+  pure a <> flattenExpr b <> pure c <> flattenExpr d <> pure e <> flattenExpr f
+
+flattenCaseOf :: CaseOf a -> DList SourceToken
+flattenCaseOf (CaseOf a b c d) =
+  pure a <>
+  flattenSeparated flattenExpr b <>
+  pure c <>
+  foldMap (\(e, f) -> flattenSeparated flattenBinder e <> flattenGuarded f) d
+
+flattenLetIn :: LetIn a -> DList SourceToken
+flattenLetIn (LetIn a b c d) =
+  pure a <> foldMap flattenLetBinding b <> pure c <> flattenExpr d
+
+flattenDoBlock :: DoBlock a -> DList SourceToken
+flattenDoBlock (DoBlock a b) =
+  pure a <> foldMap flattenDoStatement b
+
+flattenAdoBlock :: AdoBlock a -> DList SourceToken
+flattenAdoBlock (AdoBlock a b c d) =
+  pure a <> foldMap flattenDoStatement b <> pure c <> flattenExpr d
+
+flattenDoStatement :: DoStatement a -> DList SourceToken
+flattenDoStatement = \case
+  DoLet a b -> pure a <> foldMap flattenLetBinding b
+  DoDiscard a -> flattenExpr a
+  DoBind a b c -> flattenBinder a <> pure b <> flattenExpr c
+
+flattenExpr :: Expr a -> DList SourceToken
+flattenExpr = \case
+  ExprHole _ a -> flattenName a
+  ExprSection _ a -> pure a
+  ExprIdent _ a -> flattenQualifiedName a
+  ExprConstructor _ a -> flattenQualifiedName a
+  ExprBoolean _ a _ -> pure a
+  ExprChar _ a _ -> pure a
+  ExprString _ a _ -> pure a
+  ExprNumber _ a _ -> pure a
+  ExprArray _ a -> flattenWrapped (foldMap (flattenSeparated flattenExpr)) a
+  ExprRecord _ a ->
+    flattenWrapped (foldMap (flattenSeparated (flattenRecordLabeled flattenExpr))) a
+  ExprParens _ a -> flattenWrapped flattenExpr a
+  ExprTyped _ a b c -> flattenExpr a <> pure b <> flattenType c
+  ExprInfix _ a b c -> flattenExpr a <> flattenWrapped flattenExpr b <> flattenExpr c
+  ExprOp _ a b c -> flattenExpr a <> flattenQualifiedName b <> flattenExpr c
+  ExprOpName _ a -> flattenQualifiedName a
+  ExprNegate _ a b -> pure a <> flattenExpr b
+  ExprRecordAccessor _ a -> flattenRecordAccessor a
+  ExprRecordUpdate _ a b -> flattenExpr a <> flattenWrapped (flattenSeparated flattenRecordUpdate) b
+  ExprApp _ a b -> flattenExpr a <> flattenExpr b
+  ExprVisibleTypeApp  _ a b c -> flattenExpr a <> pure b <> flattenType c
+  ExprLambda _ a -> flattenLambda a
+  ExprIf _ a -> flattenIfThenElse a
+  ExprCase _ a -> flattenCaseOf a
+  ExprLet _ a -> flattenLetIn a
+  ExprDo _ a -> flattenDoBlock a
+  ExprAdo _ a -> flattenAdoBlock a
+
+flattenLetBinding :: LetBinding a -> DList SourceToken
+flattenLetBinding = \case
+  LetBindingSignature _ a -> flattenLabeled flattenName flattenType a
+  LetBindingName _ a -> flattenValueBindingFields a
+  LetBindingPattern _ a b c -> flattenBinder a <> pure b <> flattenWhere c
+
+flattenWhere :: Where a -> DList SourceToken
+flattenWhere (Where a b) =
+  flattenExpr a <> foldMap (\(c, d) -> pure c <> foldMap flattenLetBinding d) b
+
+flattenPatternGuard :: PatternGuard a -> DList SourceToken
+flattenPatternGuard (PatternGuard a b) =
+  foldMap (\(c, d) -> flattenBinder c <> pure d) a <> flattenExpr b
+
+flattenGuardedExpr :: GuardedExpr a -> DList SourceToken
+flattenGuardedExpr (GuardedExpr a b c d) =
+  pure a <>
+  flattenSeparated flattenPatternGuard b <>
+  pure c <>
+  flattenWhere d
+
+flattenGuarded :: Guarded a -> DList SourceToken
+flattenGuarded = \case
+  Unconditional a b -> pure a <> flattenWhere b
+  Guarded a -> foldMap flattenGuardedExpr a
+
+flattenFixityFields :: FixityFields -> DList SourceToken
+flattenFixityFields (FixityFields (a, _) (b, _) c) =
+  pure a <> pure b <> flattenFixityOp c
+
+flattenFixityOp :: FixityOp -> DList SourceToken
+flattenFixityOp = \case
+  FixityValue a b c -> flattenQualifiedName a <> pure b <> flattenName c
+  FixityType a b c d -> pure a <> flattenQualifiedName b <> pure c <> flattenName d
+
+flattenForeign :: Foreign a -> DList SourceToken
+flattenForeign = \case
+  ForeignValue a -> flattenLabeled flattenName flattenType a
+  ForeignData a b -> pure a <> flattenLabeled flattenName flattenType b
+  ForeignKind a b -> pure a <> flattenName b
+
+flattenRole :: Role -> DList SourceToken
+flattenRole = pure . roleTok
+
+flattenDeclaration :: Declaration a -> DList SourceToken
+flattenDeclaration = \case
+  DeclData _ a b ->
+    flattenDataHead a <>
+    foldMap (\(t, cs) -> pure t <> flattenSeparated flattenDataCtor cs) b
+  DeclType _ a b c ->flattenDataHead a <> pure b <> flattenType c
+  DeclNewtype _ a b c d -> flattenDataHead a <> pure b <> flattenName c <> flattenType d
+  DeclClass _ a b ->
+    flattenClassHead a <>
+    foldMap (\(c, d) -> pure c <> foldMap (flattenLabeled flattenName flattenType) d) b
+  DeclInstanceChain _ a -> flattenSeparated flattenInstance a
+  DeclDerive _ a b c -> pure a <> foldMap pure b <> flattenInstanceHead c
+  DeclKindSignature _ a b -> pure a <> flattenLabeled flattenName flattenType b
+  DeclSignature _ a -> flattenLabeled flattenName flattenType a
+  DeclFixity _ a -> flattenFixityFields a
+  DeclForeign _ a b c -> pure a <> pure b <> flattenForeign c
+  DeclRole _ a b c d -> pure a <> pure b <> flattenName c <> foldMap flattenRole d
+  DeclValue _ a -> flattenValueBindingFields a
+
+flattenQualifiedName :: QualifiedName a -> DList SourceToken
+flattenQualifiedName = pure . qualTok
+
+flattenName :: Name a -> DList SourceToken
+flattenName = pure . nameTok
+
+flattenLabel :: Label -> DList SourceToken
+flattenLabel = pure . lblTok
+
+flattenExport :: Export a -> DList SourceToken
+flattenExport = \case
+  ExportValue _ n -> flattenName n
+  ExportOp _ n -> flattenName n
+  ExportType _ n dms -> flattenName n <> foldMap flattenDataMembers dms
+  ExportTypeOp _ t n -> pure t <> flattenName n
+  ExportClass _ t n -> pure t <> flattenName n
+  ExportModule _ t n -> pure t <> flattenName n
+
+flattenDataMembers :: DataMembers a -> DList SourceToken
+flattenDataMembers = \case
+  DataAll _ t -> pure t
+  DataEnumerated _ ns -> flattenWrapped (foldMap (flattenSeparated flattenName)) ns
+
+flattenImportDecl :: ImportDecl a -> DList SourceToken
+flattenImportDecl (ImportDecl _ a b c d) =
+  pure a <>
+  flattenName b <>
+  foldMap (\(mt, is) ->
+             foldMap pure mt <> flattenWrapped (flattenSeparated flattenImport) is) c <>
+  foldMap (\(t, n) -> pure t <> flattenName n) d
+
+flattenImport :: Import a -> DList SourceToken
+flattenImport = \case
+  ImportValue _ n -> flattenName n
+  ImportOp _ n -> flattenName n
+  ImportType _ n dms -> flattenName n <> foldMap flattenDataMembers dms
+  ImportTypeOp _ t n -> pure t <> flattenName n
+  ImportClass _ t n -> pure t <> flattenName n
+
+flattenWrapped :: (a -> DList SourceToken) -> Wrapped a -> DList SourceToken
+flattenWrapped k (Wrapped a b c) = pure a <> k b <> pure c
+
+flattenSeparated :: (a -> DList SourceToken) -> Separated a -> DList SourceToken
+flattenSeparated k (Separated a b) = k a <> foldMap (\(c, d) -> pure c <> k d) b
+
+flattenOneOrDelimited
+  :: (a -> DList SourceToken) -> OneOrDelimited a -> DList SourceToken
+flattenOneOrDelimited f = \case
+  One a -> f a
+  Many a -> flattenWrapped (flattenSeparated f) a
+
+flattenLabeled :: (a -> DList SourceToken) -> (b -> DList SourceToken) -> Labeled a b -> DList SourceToken
+flattenLabeled ka kc (Labeled a b c) = ka a <> pure b <> kc c
+
+flattenType :: Type a -> DList SourceToken
+flattenType = \case
+  TypeVar _ a -> pure $ nameTok a
+  TypeConstructor _ a -> pure $ qualTok a
+  TypeWildcard _ a -> pure a
+  TypeHole _ a -> pure $ nameTok a
+  TypeString _ a _ -> pure a
+  TypeInt _ a b _ -> maybe mempty pure a <> pure b
+  TypeRow _ a -> flattenWrapped flattenRow a
+  TypeRecord _ a -> flattenWrapped flattenRow a
+  TypeForall _ a b c d -> pure a <> foldMap flattenTypeVarBinding b <> pure c <> flattenType d
+  TypeKinded _ a b c -> flattenType a <> pure b <> flattenType c
+  TypeApp _ a b -> flattenType a <> flattenType b
+  TypeOp _ a b c -> flattenType a <> pure (qualTok b) <> flattenType c
+  TypeOpName _ a -> pure $ qualTok a
+  TypeArr _ a b c -> flattenType a <> pure b <> flattenType c
+  TypeArrName _ a -> pure a
+  TypeConstrained _ a b c -> flattenConstraint a <> pure b <> flattenType c
+  TypeParens _ a -> flattenWrapped flattenType a
+  TypeUnaryRow _ a b -> pure a <> flattenType b
+
+flattenRow :: Row a -> DList SourceToken
+flattenRow (Row lbls tl) =
+  foldMap (flattenSeparated (flattenLabeled (pure . lblTok) flattenType)) lbls
+    <> foldMap (\(a, b) -> pure a <> flattenType b) tl
+
+flattenTypeVarBinding :: TypeVarBinding a -> DList SourceToken
+flattenTypeVarBinding = \case
+  TypeVarKinded a -> flattenWrapped (flattenLabeled go flattenType) a
+  TypeVarName a -> go a
+  where
+  go (a, b) = maybe mempty pure a <> pure (nameTok b)
+
+flattenConstraint :: Constraint a -> DList SourceToken
+flattenConstraint = \case
+  Constraint _ a b -> pure (qualTok a) <> foldMap flattenType b
+  ConstraintParens _ a -> flattenWrapped flattenConstraint a
diff --git a/src/Language/PureScript/CST/Layout.hs b/src/Language/PureScript/CST/Layout.hs
--- a/src/Language/PureScript/CST/Layout.hs
+++ b/src/Language/PureScript/CST/Layout.hs
@@ -1,4 +1,11 @@
--- | The parser itself is unaware of indentation, and instead only parses explicit
+-- |
+-- ## High-Level Summary
+--
+-- This section provides a high-level summary of this file. For those who
+-- know more about compiler-development, the below explanation is likely enough.
+-- For everyone else, see the next section.
+--
+-- The parser itself is unaware of indentation, and instead only parses explicit
 -- delimiters which are inserted by this layout algorithm (much like Haskell).
 -- This is convenient because the actual grammar can be specified apart from the
 -- indentation rules. Haskell has a few problematic productions which make it
@@ -17,16 +24,160 @@
 -- such an algorithm. Unquoted properties for layout keywords introduce a domino
 -- effect of complexity since we have to mask and unmask any usage of . (also in
 -- foralls!) or labels in record literals.
-
+--
+-- ## Detailed Summary
+--
+-- ### The Problem
+--
+-- The parser itself is unaware of indentation or other such layout concerns.
+-- Rather than dealing with it explicitly, the parser and its
+-- grammar rules are only aware of normal tokens (e.g. @TokLowerName@) and
+-- three special zero-width tokens, @TokLayoutStart@, @TokLayoutSep@,
+-- and @TokLayoutEnd@. This is convenient because the actual grammar
+-- can be specified apart from the indentation rules and other such
+-- layout concerns.
+--
+-- For a simple example, the parser parses all three examples of the code below
+-- using the exact same grammar rules for the @let@ keyword despite
+-- each example using different indentations levels:
+--
+-- @
+-- -- Example 1
+-- let foo = 5
+--     x = 2 in foo
+--
+-- -- Example 2
+-- let
+--   bar = 5
+--   y = 2
+-- in bar
+--
+-- -- Example 3
+-- let        baz
+--                  =
+--              5
+--            z= 2 in baz
+-- @
+--
+-- Each block of code might appear to the parser as a stream of the
+-- following source tokens where the @\{@ sequence represents
+-- @TokLayoutStart@, the @\;@ sequence represents @TokLayoutSep@,
+-- and the @\}@ sequence represents @TokLayoutEnd@:
+-- - @let \{foo = 5\;x = 2\} in foo@
+-- - @let \{bar = 5\;y = 2\} in bar@
+-- - @let \{baz = 5\;z = 2\} in baz@
+--
+--
+-- For a more complex example, consider commas:
+--
+-- @
+-- case one, { twoA, twoB }, [ three1
+--    , three2
+--    ,   do
+--      { three3, three4 } <- case arg1, arg2 of
+--         Nothing, _ -> { three3: 1, three4: 2 }
+--         Just _, Nothing -> { three3: 2, three4: 3 }
+--         _, _ -> { three3: 3, three4: 4 }
+--      pure $ three3 + three4
+--    ] of
+-- @
+--
+-- Which of the above 13 commas function as the separators between the
+-- case binders (e.g. @one@) in the outermost @case ... of@ context?
+--
+-- ### The Solution
+--
+-- The parser doesn't have to care about layout concerns (e.g. indentation
+-- or what starts and ends a context, such as a case binder) because the
+-- lexer solves that problem instead.
+--
+-- So, how does the lexer solve this problem? It follows this general algorithm:
+-- 1. Lex the source code text into an initial stream of `SourceToken`s
+--    that do not have any of the three special tokens mentioned previously.
+-- 2. On a token-by-token basis, determine whether the lexer should
+--        1. insert one of the three special tokens,
+--        2. modify the current context (e.g. are we within a case binder?
+--           Are we in a record expression?)
+--
+-- Step 2 is handled via 'insertLayout' and is essentially a state machine.
+-- The layout delimiters, (e.g. 'LytCase', 'LytBrace', 'LytProperty',
+-- and 'LytOf' in the next section's example) either stop certain "rules"
+-- from applying or ensure that certain "rules" now apply. By "rules",
+-- we mean whether and where one of the three special tokens are added.
+-- The comments in the source code for the 'insertLayout' algorithm call
+-- pushing these delimiters onto the stack "masking" and popping them off
+-- as "unmasking". Seeing when a layout delimiter is pushed and popped
+-- are the keys to understanding this algorithm.
+--
+-- ### Walking Through an Example
+--
+-- Before showing an example, let's remember a few things.
+--   1. The @TokLowerName "case"@ token (i.e. a "case" keyword) indicates the start
+--      of a @case ... of@ context. That context includes case binders (like the
+--      example shown previously) that can get quite complex. When encountered,
+--      we may need to insert one or more of the three special tokens here
+--      until we encounter the terminating @TokLowerName "of"@ token that
+--      signifies its end.
+--   2. "case" and "of" can also appear as a record field's name. In such a context,
+--      they would not start or end a @case ... of@ block.
+--
+-- Given the below source code...
+--
+-- @
+-- case { case: "foo", of: "bar" } of
+-- @
+--
+-- the lexer would go through something like the following states:
+-- 1. Encountered @TokLowerName "case"@. Update current context to
+--    "within a case of expression" by pushing the 'LytCase' delimiter
+--    onto the layout delimiter stack. Insert the @case@ token
+--    into the stream of source tokens.
+-- 2. Encountered @TokLeftBrace@. Update current context to
+--    "within a record expression" by pushing the 'LytBrace' delimiter.
+--    Since we expect a field name to be the next token we see,
+--    which may include a reserved keyword, update the current context again to
+--    "expecting a field name" by pushing the `LytProperty`.
+--    delimiter. Insert the @{@ token into the stream of source tokens.
+-- 3. Encountered @TokLowerName "case"@. Check the current context.
+--    Since it's a `LytProperty`, this is a field name and we shouldn't
+--    assume that the next few tokens will be case binders. However,
+--    since this might be a record with no more fields, update the
+--    current context back to "within a record expression" by popping
+--    the `LytProperty` off the layout delimiter stack. Insert the @case@ token
+-- 4. Encountered @TokColon@. Insert the @:@ token
+-- 5. Encountered @TokLowerName "foo"@. Insert the @foo@ token.
+-- 6. Encountered @TokComma@. Check the current context. Since it's a `LytBrace`,
+--    we're in a record expression and there is another field. Update the
+--    current context by pushing `LytProperty` as we expect a field name again.
+-- 7. Encountered @TokLowerName "of"@. Check the current context.
+--    Since it's a `LytProperty`, this is a field name rather
+--    than the end of a case binder. Thus, we don't expect the next tokens
+--    to be the @body@ in a @case ... of body@ expression. However, since
+--    this might be a record with no more fields, update the current context
+--    back to "within a record expression" by popping the `LytProperty`
+--    off the stack. Insert the @of@ token.
+-- 8. Encountered @TokRightBrace@. Check the current context.
+--    Since it's a `LytBrace`, this is the end of a record expression.
+--    Update the current context to "within a case of expression"
+--    by popping the `LytBrace` off the stack. Insert the @}@ token.
+-- 9. Encountered @TokLowername "of"@. Check the current context.
+--    Since it's a 'LytCase', this is the end of a @case ... of@ expression
+--    and the body will follow. Update the current context to
+--    "body of a case of expression" by pushing 'LytOf' onto the layout stack.
+--    Insert the @of@ token into the stream of tokens.
+--
+{-# LANGUAGE DeriveAnyClass #-}
 module Language.PureScript.CST.Layout where
 
 import Prelude
 
+import Control.DeepSeq (NFData)
 import Data.DList (snoc)
-import qualified Data.DList as DList
+import Data.DList qualified as DList
 import Data.Foldable (find)
 import Data.Function ((&))
-import Language.PureScript.CST.Types
+import GHC.Generics (Generic)
+import Language.PureScript.CST.Types (Comment, LineFeed, SourcePos(..), SourceRange(..), SourceToken(..), Token(..), TokenAnn(..))
 
 type LayoutStack = [(SourcePos, LayoutDelim)]
 
@@ -53,7 +204,7 @@
   | LytOf
   | LytDo
   | LytAdo
-  deriving (Show, Eq, Ord)
+  deriving (Show, Eq, Ord, Generic, NFData)
 
 isIndented :: LayoutDelim -> Bool
 isIndented = \case
@@ -146,13 +297,15 @@
       inP _ lyt    = isIndented lyt
 
     TokLowerName [] "let" ->
-      case stk of
+      state & insertKwProperty next
+      where
+      next state'@(stk', _) = case stk' of
         (p, LytDo) : _ | srcColumn p == srcColumn tokPos ->
-          state & insertKwProperty (insertStart LytLetStmt)
+          state' & insertStart LytLetStmt
         (p, LytAdo) : _ | srcColumn p == srcColumn tokPos ->
-          state & insertKwProperty (insertStart LytLetStmt)
+          state' & insertStart LytLetStmt
         _ ->
-          state & insertKwProperty (insertStart LytLet)
+          state' & insertStart LytLet
 
     TokLowerName _ "do" ->
       state & insertKwProperty (insertStart LytDo)
@@ -213,7 +366,7 @@
       state & insertKwProperty (pushStack tokPos LytForall)
 
     -- Lambdas need masking because the usage of `->` should not close a
-    -- LytDeclGaurd or LytCaseGuard context.
+    -- LytDeclGuard or LytCaseGuard context.
     TokBackslash ->
       state & insertDefault & pushStack tokPos LytLambdaBinders
 
@@ -236,9 +389,10 @@
         _ ->
           state & insertDefault
       where
-      equalsP _ LytWhere = True
-      equalsP _ LytLet   = True
-      equalsP _ _        = False
+      equalsP _ LytWhere   = True
+      equalsP _ LytLet     = True
+      equalsP _ LytLetStmt = True
+      equalsP _ _          = False
 
     -- Guards need masking because of commas.
     TokPipe ->
@@ -247,6 +401,8 @@
           state' & pushStack tokPos LytCaseGuard & insertToken src
         state'@((_, LytLet) : _, _) ->
           state' & pushStack tokPos LytDeclGuard & insertToken src
+        state'@((_, LytLetStmt) : _, _) ->
+          state' & pushStack tokPos LytDeclGuard & insertToken src
         state'@((_, LytWhere) : _, _) ->
           state' & pushStack tokPos LytDeclGuard & insertToken src
         _ ->
@@ -260,9 +416,9 @@
         ((_, LytTick) : stk', acc') ->
           (stk', acc') & insertToken src
         _ ->
-          state & insertDefault & pushStack tokPos LytTick
+          state & collapse offsideEndP & insertSep & insertToken src & pushStack tokPos LytTick
 
-    -- In gneral, commas should close all indented contexts.
+    -- In general, commas should close all indented contexts.
     --     example = [ do foo
     --                    bar, baz ]
     TokComma ->
diff --git a/src/Language/PureScript/CST/Lexer.hs b/src/Language/PureScript/CST/Lexer.hs
--- a/src/Language/PureScript/CST/Lexer.hs
+++ b/src/Language/PureScript/CST/Lexer.hs
@@ -1,6 +1,6 @@
-{-# LANGUAGE BangPatterns #-}
 module Language.PureScript.CST.Lexer
   ( lenient
+  , lexModule
   , lex
   , lexTopLevel
   , lexWithState
@@ -10,19 +10,20 @@
 import Prelude hiding (lex, exp, exponent, lines)
 
 import Control.Monad (join)
-import qualified Data.Char as Char
-import qualified Data.DList as DList
+import Data.Char qualified as Char
+import Data.DList qualified as DList
 import Data.Foldable (foldl')
 import Data.Functor (($>))
-import qualified Data.Scientific as Sci
+import Data.Scientific qualified as Sci
 import Data.String (fromString)
 import Data.Text (Text)
-import qualified Data.Text as Text
-import Language.PureScript.CST.Errors
-import Language.PureScript.CST.Monad hiding (token)
-import Language.PureScript.CST.Layout
-import Language.PureScript.CST.Positions
-import Language.PureScript.CST.Types
+import Data.Text qualified as Text
+import Data.Text.PureScript qualified as Text
+import Language.PureScript.CST.Errors (ParserErrorInfo(..), ParserErrorType(..))
+import Language.PureScript.CST.Monad (LexResult, LexState(..), ParserM(..), throw)
+import Language.PureScript.CST.Layout (LayoutDelim(..), insertLayout, lytToken, unwindLayout)
+import Language.PureScript.CST.Positions (advanceLeading, advanceToken, advanceTrailing, applyDelta, textDelta)
+import Language.PureScript.CST.Types (Comment(..), LineFeed(..), SourcePos(..), SourceRange(..), SourceStyle(..), SourceToken(..), Token(..), TokenAnn(..))
 
 -- | Stops at the first lexing error and replaces it with TokEof. Otherwise,
 -- the parser will fail when it attempts to draw a lookahead token.
@@ -37,10 +38,17 @@
       ann = TokenAnn (SourceRange pos pos) (lexLeading st) []
     [Right (SourceToken ann TokEof)]
 
+lexModule :: Text -> [LexResult]
+lexModule = lex' shebangThenComments
+
 -- | Lexes according to root layout rules.
 lex :: Text -> [LexResult]
-lex src = do
-  let (leading, src') = comments src
+lex = lex' comments
+
+lex' :: (Text -> ([Comment LineFeed], Text)) -> Text -> [LexResult]
+lex' lexComments src = do
+  let (leading, src') = lexComments src
+
   lexWithState $ LexState
     { lexPos = advanceLeading (SourcePos 1 1) leading
     , lexLeading = leading
@@ -70,7 +78,7 @@
   Parser lexK =
     tokenAndComments
 
-  go state@(LexState {..}) =
+  go state@LexState {..} =
     lexK lexSource onError onSuccess
     where
     onError lexSource' err = do
@@ -82,7 +90,7 @@
         pos = applyDelta lexPos chunkDelta
       pure $ Left
         ( state { lexSource = lexSource' }
-        , ParserError (SourceRange pos $ applyDelta pos (0, 1)) [] lexStack err
+        , ParserErrorInfo (SourceRange pos $ applyDelta pos (0, 1)) [] lexStack err
         )
 
     onSuccess _ (TokEof, _) =
@@ -122,6 +130,12 @@
   let (chs, inp') = Text.span p inp
   ksucc inp' chs
 
+{-# INLINE nextWhile' #-}
+nextWhile' :: Int -> (Char -> Bool) -> Lexer Text
+nextWhile' n p = Parser $ \inp _ ksucc -> do
+  let (chs, inp') = Text.spanUpTo n p inp
+  ksucc inp' chs
+
 {-# INLINE peek #-}
 peek :: Lexer (Maybe Char)
 peek = Parser $ \inp _ ksucc ->
@@ -137,6 +151,17 @@
 tokenAndComments :: Lexer (Token, ([Comment void], [Comment LineFeed]))
 tokenAndComments = (,) <$> token <*> breakComments
 
+shebangThenComments :: Text -> ([Comment LineFeed], Text)
+shebangThenComments src = do
+  let
+    (sb, (coms, src')) = comments <$> shebang src
+  (sb <> coms, src')
+
+shebang :: Text -> ([Comment LineFeed], Text)
+shebang = \src -> k src (\_ _ -> ([], src)) (\inp a -> (a, inp))
+  where
+  Parser k = breakShebang
+
 comments :: Text -> ([Comment LineFeed], Text)
 comments = \src -> k src (\_ _ -> ([], src)) (\inp (a, b) -> (a <> b, inp))
   where
@@ -176,7 +201,7 @@
   goWs a _ = a
 
   goSpace a !n (' ' : ls) = goSpace a (n + 1) ls
-  goSpace a !n ls = goWs (Space n : a) ls
+  goSpace a n ls = goWs (Space n : a) ls
 
   isBlockComment = Parser $ \inp _ ksucc ->
     case Text.uncons inp of
@@ -198,11 +223,7 @@
   comment = isBlockComment >>= \case
     Just True  -> Just <$> blockComment "{-"
     Just False -> Just <$> lineComment "--"
-    Nothing    -> pure $ Nothing
-
-  lineComment acc = do
-    comm <- nextWhile (\c -> c /= '\r' && c /= '\n')
-    pure $ Comment (acc <> comm)
+    Nothing    -> pure Nothing
 
   blockComment acc = do
     chs <- nextWhile (/= '-')
@@ -213,6 +234,57 @@
         Just '}' -> next $> Comment (acc <> chs <> dashes <> "}")
         _ -> blockComment (acc <> chs <> dashes)
 
+breakShebang :: ParserM ParserErrorType Text [Comment LineFeed]
+breakShebang = shebangComment >>= \case
+  Just comm -> k0 [comm]
+  Nothing -> pure []
+  where
+  k0 acc = lineFeedShebang >>= \case
+    Just (lf, sb) -> do
+      comm <- lineComment sb
+      k0 (comm : lf : acc)
+    Nothing ->
+      pure $ reverse acc
+
+  lineFeedShebang = Parser $ \inp _ ksucc ->
+    case unconsLineFeed inp of
+      Just (lf, inp2)
+        | Just (sb, inp3) <- unconsShebang inp2 ->
+            ksucc inp3 $ Just (lf, sb)
+      _ ->
+        ksucc inp Nothing
+
+  unconsLineFeed :: Text -> Maybe (Comment LineFeed, Text)
+  unconsLineFeed inp =
+    case Text.uncons inp of
+      Just ('\r', inp2) ->
+        case Text.uncons inp2 of
+          Just ('\n', inp3) ->
+            Just (Line CRLF, inp3)
+          _ ->
+            Just (Line CRLF, inp2)
+      Just ('\n', inp2) ->
+        Just (Line LF, inp2)
+      _ ->
+        Nothing
+
+  unconsShebang :: Text -> Maybe (Text, Text)
+  unconsShebang = fmap ("#!",) . Text.stripPrefix "#!"
+
+  shebangComment = isShebang >>= traverse lineComment
+
+  isShebang = Parser $ \inp _ ksucc ->
+    case unconsShebang inp of
+      Just (sb, inp3) ->
+        ksucc inp3 $ Just sb
+      _ ->
+        ksucc inp Nothing
+
+lineComment :: forall lf. Text -> ParserM ParserErrorType Text (Comment lf)
+lineComment acc = do
+  comm <- nextWhile (\c -> c /= '\r' && c /= '\n')
+  pure $ Comment (acc <> comm)
+
 token :: Lexer Token
 token = peek >>= maybe (pure TokEof) k0
   where
@@ -316,7 +388,7 @@
         peek >>= \case
           Just ')'
             | isReservedSymbol chs -> throw ErrReservedSymbol
-            | otherwise -> next $> TokSymbolName qual chs
+            | otherwise -> next $> TokSymbolName (reverse qual) chs
           Just ch2 -> throw $ ErrLexeme (Just [ch2]) []
           Nothing  -> throw ErrEof
     Just ch -> throw $ ErrLexeme (Just [ch]) []
@@ -326,7 +398,7 @@
     operator
       : symbolChar+
   -}
-  operator :: [Text] -> [Char] -> Lexer Token
+  operator :: [Text] -> String -> Lexer Token
   operator qual pre = do
     rest <- nextWhile isSymbolChar
     pure . TokOperator (reverse qual) $ Text.pack pre <> rest
@@ -411,7 +483,7 @@
       Just ch ->
         next $> (Text.singleton ch, ch)
       Nothing ->
-        throw $ ErrEof
+        throw ErrEof
     peek >>= \case
       Just '\''
         | fromEnum ch > 0xFFFF -> throw ErrAstralCodePointInChar
@@ -419,7 +491,7 @@
       Just ch2 ->
         throw $ ErrLexeme (Just [ch2]) []
       _ ->
-        throw $ ErrEof
+        throw ErrEof
 
   {-
     stringPart
@@ -429,15 +501,15 @@
 
     string
       : '"' stringPart* '"'
-      | '"""' .* '"""'
+      | '"""' '"'{0,2} ([^"]+ '"'{1,2})* [^"]* '"""'
 
-    This assumes maximal munch for quotes. A raw string literal can end with
-    any number of quotes, where the last 3 are considered the closing
-    delimiter.
+    A raw string literal can't contain any sequence of 3 or more quotes,
+    although sequences of 1 or 2 quotes are allowed anywhere, including at the
+    beginning or the end.
   -}
   string :: Lexer Token
   string = do
-    quotes1 <- nextWhile (== '"')
+    quotes1 <- nextWhile' 7 (== '"')
     case Text.length quotes1 of
       0 -> do
         let
@@ -468,19 +540,18 @@
         go "" mempty
       1 ->
         pure $ TokString "" ""
-      n | n >= 5 -> do
-        let str = Text.take 5 quotes1
-        pure $ TokString str (fromString (Text.unpack str))
+      n | n >= 5 ->
+        pure $ TokRawString $ Text.drop 5 quotes1
       _ -> do
         let
           go acc = do
             chs <- nextWhile (/= '"')
-            quotes2 <- nextWhile (== '"')
+            quotes2 <- nextWhile' 5 (== '"')
             case Text.length quotes2 of
               0          -> throw ErrEof
               n | n >= 3 -> pure $ TokRawString $ acc <> chs <> Text.drop 3 quotes2
               _          -> go (acc <> chs <> quotes2)
-        go ""
+        go $ Text.drop 2 quotes1
 
   {-
     escape
@@ -495,9 +566,9 @@
   escape = do
     ch <- peek
     case ch of
-      Just 't'  -> next $> ("\t", '\t')
-      Just 'r'  -> next $> ("\\r", '\r')
-      Just 'n'  -> next $> ("\\n", '\n')
+      Just 't'  -> next $> ("t", '\t')
+      Just 'r'  -> next $> ("r", '\r')
+      Just 'n'  -> next $> ("n", '\n')
       Just '"'  -> next $> ("\"", '"')
       Just '\'' -> next $> ("'", '\'')
       Just '\\' -> next $> ("\\", '\\')
@@ -508,7 +579,7 @@
           go n acc _
             | n <= 0x10FFFF =
                 ksucc (Text.drop (length acc) inp)
-                  (Text.pack $ reverse acc, Char.chr n)
+                  ("x" <> Text.pack (reverse acc), Char.chr n)
             | otherwise =
                 kerr inp ErrCharEscape -- TODO
         go 0 [] $ Text.unpack $ Text.take 6 inp
@@ -565,8 +636,8 @@
     Just '0' -> next *> peek >>= \case
       Just ch | isNumberChar ch -> throw ErrLeadingZero
       _ -> pure $ Just ("0", "0")
-    Just ch | isDigitChar ch -> Just <$> digits
-    _ -> pure $ Nothing
+    Just ch | Char.isDigit ch -> Just <$> digits
+    _ -> pure Nothing
 
   {-
     integer1
@@ -581,10 +652,10 @@
     '0' -> peek >>= \case
       Just ch | isNumberChar ch -> throw ErrLeadingZero
       _ -> pure $ Just ("0", "0")
-    ch | isDigitChar ch -> do
+    ch | Char.isDigit ch -> do
       (raw, chs) <- digits
       pure $ Just (Text.cons ch raw, ch : chs)
-    _ -> pure $ Nothing
+    _ -> pure Nothing
 
   {-
     fraction
@@ -644,20 +715,20 @@
       then throw ErrExpectedHex
       else pure $ TokInt ("0x" <> chs) $ digitsToIntegerBase 16 $ Text.unpack chs
 
-digitsToInteger :: [Char] -> Integer
+digitsToInteger :: String -> Integer
 digitsToInteger = digitsToIntegerBase 10
 
-digitsToIntegerBase :: Integer -> [Char] -> Integer
-digitsToIntegerBase b = foldl' (\n c -> n * b + (toInteger (Char.digitToInt c))) 0
+digitsToIntegerBase :: Integer -> String -> Integer
+digitsToIntegerBase b = foldl' (\n c -> n * b + toInteger (Char.digitToInt c)) 0
 
-digitsToScientific :: [Char] -> [Char] -> (Integer, Int)
+digitsToScientific :: String -> String -> (Integer, Int)
 digitsToScientific = go 0 . reverse
   where
   go !exp is [] = (digitsToInteger (reverse is), exp)
-  go !exp is (f : fs) = go (exp - 1) (f : is) fs
+  go exp is (f : fs) = go (exp - 1) (f : is) fs
 
 isSymbolChar :: Char -> Bool
-isSymbolChar c = (c `elem` (":!#$%&*+./<=>?@\\^|-~" :: [Char])) || (not (Char.isAscii c) && Char.isSymbol c)
+isSymbolChar c = (c `elem` (":!#$%&*+./<=>?@\\^|-~" :: String)) || (not (Char.isAscii c) && Char.isSymbol c)
 
 isReservedSymbolError :: ParserErrorType -> Bool
 isReservedSymbolError = (== ErrReservedSymbol)
@@ -687,11 +758,8 @@
 isIdentChar :: Char -> Bool
 isIdentChar c = Char.isAlphaNum c || c == '_' || c == '\''
 
-isDigitChar :: Char -> Bool
-isDigitChar c = c >= '0' && c <= '9'
-
 isNumberChar :: Char -> Bool
-isNumberChar c = (c >= '0' && c <= '9') || c == '_'
+isNumberChar c = Char.isDigit c || c == '_'
 
 isNormalStringChar :: Char -> Bool
 isNormalStringChar c = c /= '"' && c /= '\\' && c /= '\r' && c /= '\n'
diff --git a/src/Language/PureScript/CST/Monad.hs b/src/Language/PureScript/CST/Monad.hs
--- a/src/Language/PureScript/CST/Monad.hs
+++ b/src/Language/PureScript/CST/Monad.hs
@@ -2,14 +2,14 @@
 
 import Prelude
 
-import Data.List (sortBy)
-import qualified Data.List.NonEmpty as NE
+import Data.List (sortOn)
+import Data.List.NonEmpty qualified as NE
 import Data.Ord (comparing)
 import Data.Text (Text)
-import Language.PureScript.CST.Errors
-import Language.PureScript.CST.Layout
-import Language.PureScript.CST.Positions
-import Language.PureScript.CST.Types
+import Language.PureScript.CST.Errors (ParserError, ParserErrorInfo(..), ParserErrorType(..), ParserWarning, ParserWarningType)
+import Language.PureScript.CST.Layout (LayoutStack)
+import Language.PureScript.CST.Positions (widen)
+import Language.PureScript.CST.Types (Comment, LineFeed, SourcePos(..), SourceRange(..), SourceToken(..), Token, TokenAnn(..))
 
 type LexResult = Either (LexState, ParserError) SourceToken
 
@@ -23,6 +23,7 @@
 data ParserState = ParserState
   { parserBuff :: [LexResult]
   , parserErrors :: [ParserError]
+  , parserWarnings :: [ParserWarning]
   } deriving (Show)
 
 -- | A bare bones, CPS'ed `StateT s (Except e) a`.
@@ -60,32 +61,41 @@
 runParser :: ParserState -> Parser a -> (ParserState, Either (NE.NonEmpty ParserError) a)
 runParser st (Parser k) = k st left right
   where
-  left st'@(ParserState {..}) err =
+  left st'@ParserState {..} err =
     (st', Left $ NE.sortBy (comparing errRange) $ err NE.:| parserErrors)
 
-  right st'@(ParserState {..}) res
+  right st'@ParserState {..} res
     | null parserErrors = (st', Right res)
-    | otherwise = (st', Left $ NE.fromList $ sortBy (comparing errRange) parserErrors)
+    | otherwise = (st', Left $ NE.fromList $ sortOn errRange parserErrors)
 
-runTokenParser :: Parser a -> [LexResult] -> Either (NE.NonEmpty ParserError) a
-runTokenParser p = snd . flip runParser p . flip ParserState []
+runTokenParser :: Parser a -> [LexResult] -> Either (NE.NonEmpty ParserError) ([ParserWarning], a)
+runTokenParser p buff = fmap (warnings,) res
+  where
+  (ParserState _ _ warnings, res) =
+    runParser initialState p
 
+  initialState = ParserState
+    { parserBuff = buff
+    , parserErrors = []
+    , parserWarnings = []
+    }
+
 {-# INLINE throw #-}
 throw :: e -> ParserM e s a
 throw e = Parser $ \st kerr _ -> kerr st e
 
 parseError :: SourceToken -> Parser a
 parseError tok = Parser $ \st kerr _ ->
-  kerr st $ ParserError
+  kerr st $ ParserErrorInfo
     { errRange = tokRange . tokAnn $ tok
     , errToks = [tok]
     , errStack = [] -- TODO parserStack st
     , errType = ErrToken
     }
 
-mkParserError :: LayoutStack -> [SourceToken] -> ParserErrorType -> ParserError
+mkParserError :: LayoutStack -> [SourceToken] -> a -> ParserErrorInfo a
 mkParserError stack toks ty =
-  ParserError
+  ParserErrorInfo
     { errRange =  range
     , errToks = toks
     , errStack = stack
@@ -100,16 +110,16 @@
 addFailure toks ty = Parser $ \st _ ksucc ->
   ksucc (st { parserErrors = mkParserError [] toks ty : parserErrors st }) ()
 
-addFailures :: [ParserError] -> Parser ()
-addFailures errs = Parser $ \st _ ksucc ->
-  ksucc (st { parserErrors = errs <> parserErrors st }) ()
-
 parseFail' :: [SourceToken] -> ParserErrorType -> Parser a
 parseFail' toks msg = Parser $ \st kerr _ -> kerr st (mkParserError [] toks msg)
 
 parseFail :: SourceToken -> ParserErrorType -> Parser a
 parseFail = parseFail' . pure
 
+addWarning :: [SourceToken] -> ParserWarningType -> Parser ()
+addWarning toks ty = Parser $ \st _ ksucc ->
+  ksucc (st { parserWarnings = mkParserError [] toks ty : parserWarnings st }) ()
+
 pushBack :: SourceToken -> Parser ()
 pushBack tok = Parser $ \st _ ksucc ->
   ksucc (st { parserBuff = Right tok : parserBuff st }) ()
@@ -128,21 +138,22 @@
 oneOf :: NE.NonEmpty (Parser a) -> Parser a
 oneOf parsers = Parser $ \st kerr ksucc -> do
   let
+    prevErrs = parserErrors st
     go (st', Right a) _ = (st', Right a)
     go _ (st', Right a) = (st', Right a)
     go (st1, Left errs1) (st2, Left errs2)
       | errRange (NE.last errs2) > errRange (NE.last errs1) = (st2, Left errs2)
       | otherwise = (st1, Left errs1)
-  case foldr1 go $ runParser st <$> parsers of
-    (st', Left errs) -> kerr (st' { parserErrors = NE.tail errs }) $ NE.head errs
-    (st', Right res) -> ksucc st' res
+  case foldr1 go $ runParser (st { parserErrors = [] }) <$> parsers of
+    (st', Left errs) -> kerr (st' { parserErrors = prevErrs <> NE.tail errs}) $ NE.head errs
+    (st', Right res) -> ksucc (st' { parserErrors = prevErrs }) res
 
 manyDelimited :: Token -> Token -> Token -> Parser a -> Parser [a]
 manyDelimited open close sep p = do
   _   <- token open
   res <- go1
   _   <- token close
-  pure $ res
+  pure res
   where
   go1 =
     oneOf $ NE.fromList
@@ -164,7 +175,7 @@
     else parseError t'
 
 munch :: Parser SourceToken
-munch = Parser $ \state@(ParserState {..}) kerr ksucc ->
+munch = Parser $ \state@ParserState {..} kerr ksucc ->
   case parserBuff of
     Right tok : parserBuff' ->
       ksucc (state { parserBuff = parserBuff' }) tok
diff --git a/src/Language/PureScript/CST/Parser.y b/src/Language/PureScript/CST/Parser.y
--- a/src/Language/PureScript/CST/Parser.y
+++ b/src/Language/PureScript/CST/Parser.y
@@ -1,7 +1,6 @@
 {
 module Language.PureScript.CST.Parser
   ( parseType
-  , parseKind
   , parseExpr
   , parseDecl
   , parseIdent
@@ -20,23 +19,25 @@
 import Prelude hiding (lex)
 
 import Control.Monad ((<=<), when)
-import Data.Foldable (foldl', for_)
+import Data.Bifunctor (second)
+import Data.Foldable (foldl', for_, toList)
 import qualified Data.List.NonEmpty as NE
 import Data.Text (Text)
-import Data.Traversable (for)
+import Data.Traversable (for, sequence)
 import Language.PureScript.CST.Errors
+import Language.PureScript.CST.Flatten (flattenType)
 import Language.PureScript.CST.Lexer
 import Language.PureScript.CST.Monad
 import Language.PureScript.CST.Positions
 import Language.PureScript.CST.Types
 import Language.PureScript.CST.Utils
 import qualified Language.PureScript.Names as N
+import qualified Language.PureScript.Roles as R
 import Language.PureScript.PSString (PSString)
 }
 
-%expect 98
+%expect 0
 
-%name parseKind kind
 %name parseType type
 %name parseExpr expr
 %name parseIdent ident
@@ -56,6 +57,7 @@
 %partial parseGuardExpr guardExpr
 %partial parseGuardNext guardNext
 %partial parseGuardStatement guardStatement
+%partial parseClassSignature classSignature
 %partial parseClassSuper classSuper
 %partial parseClassNameAndFundeps classNameAndFundeps
 %partial parseBinderAndArrow binderAndArrow
@@ -65,109 +67,111 @@
 %lexer { lexer } { SourceToken _ TokEof }
 
 %token
-  '('             { SourceToken _ TokLeftParen }
-  ')'             { SourceToken _ TokRightParen }
-  '{'             { SourceToken _ TokLeftBrace }
-  '}'             { SourceToken _ TokRightBrace }
-  '['             { SourceToken _ TokLeftSquare }
-  ']'             { SourceToken _ TokRightSquare }
-  '\{'            { SourceToken _ TokLayoutStart }
-  '\}'            { SourceToken _ TokLayoutEnd }
-  '\;'            { SourceToken _ TokLayoutSep }
-  '<-'            { SourceToken _ (TokLeftArrow _) }
-  '->'            { SourceToken _ (TokRightArrow _) }
-  '<='            { SourceToken _ (TokOperator [] sym) | isLeftFatArrow sym }
-  '=>'            { SourceToken _ (TokRightFatArrow _) }
-  ':'             { SourceToken _ (TokOperator [] ":") }
-  '::'            { SourceToken _ (TokDoubleColon _) }
-  '='             { SourceToken _ TokEquals }
-  '|'             { SourceToken _ TokPipe }
-  '`'             { SourceToken _ TokTick }
-  '.'             { SourceToken _ TokDot }
-  ','             { SourceToken _ TokComma }
-  '_'             { SourceToken _ TokUnderscore }
-  '\\'            { SourceToken _ TokBackslash }
-  '-'             { SourceToken _ (TokOperator [] "-") }
-  '@'             { SourceToken _ (TokOperator [] "@") }
-  '#'             { SourceToken _ (TokOperator [] "#") }
-  'ado'           { SourceToken _ (TokLowerName _ "ado") }
-  'as'            { SourceToken _ (TokLowerName [] "as") }
-  'case'          { SourceToken _ (TokLowerName [] "case") }
-  'class'         { SourceToken _ (TokLowerName [] "class") }
-  'data'          { SourceToken _ (TokLowerName [] "data") }
-  'derive'        { SourceToken _ (TokLowerName [] "derive") }
-  'do'            { SourceToken _ (TokLowerName _ "do") }
-  'else'          { SourceToken _ (TokLowerName [] "else") }
-  'false'         { SourceToken _ (TokLowerName [] "false") }
-  'forall'        { SourceToken _ (TokForall ASCII) }
-  'forallu'       { SourceToken _ (TokForall Unicode) }
-  'foreign'       { SourceToken _ (TokLowerName [] "foreign") }
-  'hiding'        { SourceToken _ (TokLowerName [] "hiding") }
-  'import'        { SourceToken _ (TokLowerName [] "import") }
-  'if'            { SourceToken _ (TokLowerName [] "if") }
-  'in'            { SourceToken _ (TokLowerName [] "in") }
-  'infix'         { SourceToken _ (TokLowerName [] "infix") }
-  'infixl'        { SourceToken _ (TokLowerName [] "infixl") }
-  'infixr'        { SourceToken _ (TokLowerName [] "infixr") }
-  'instance'      { SourceToken _ (TokLowerName [] "instance") }
-  'kind'          { SourceToken _ (TokLowerName [] "kind") }
-  'let'           { SourceToken _ (TokLowerName [] "let") }
-  'module'        { SourceToken _ (TokLowerName [] "module") }
-  'newtype'       { SourceToken _ (TokLowerName [] "newtype") }
-  'of'            { SourceToken _ (TokLowerName [] "of") }
-  'then'          { SourceToken _ (TokLowerName [] "then") }
-  'true'          { SourceToken _ (TokLowerName [] "true") }
-  'type'          { SourceToken _ (TokLowerName [] "type") }
-  'where'         { SourceToken _ (TokLowerName [] "where") }
-  '(->)'          { SourceToken _ (TokSymbolArr _) }
-  '(..)'          { SourceToken _ (TokSymbolName [] "..") }
-  LOWER           { SourceToken _ (TokLowerName [] _) }
-  QUAL_LOWER      { SourceToken _ (TokLowerName _ _) }
-  UPPER           { SourceToken _ (TokUpperName [] _) }
-  QUAL_UPPER      { SourceToken _ (TokUpperName _ _) }
-  SYMBOL          { SourceToken _ (TokSymbolName [] _) }
-  QUAL_SYMBOL     { SourceToken _ (TokSymbolName _ _) }
-  OPERATOR        { SourceToken _ (TokOperator [] _) }
-  QUAL_OPERATOR   { SourceToken _ (TokOperator _ _) }
-  LIT_HOLE        { SourceToken _ (TokHole _) }
-  LIT_CHAR        { SourceToken _ (TokChar _ _) }
-  LIT_STRING      { SourceToken _ (TokString _ _) }
-  LIT_RAW_STRING  { SourceToken _ (TokRawString _) }
-  LIT_INT         { SourceToken _ (TokInt _ _) }
-  LIT_NUMBER      { SourceToken _ (TokNumber _ _) }
+  '('                { SourceToken _ TokLeftParen }
+  ')'                { SourceToken _ TokRightParen }
+  '{'                { SourceToken _ TokLeftBrace }
+  '}'                { SourceToken _ TokRightBrace }
+  '['                { SourceToken _ TokLeftSquare }
+  ']'                { SourceToken _ TokRightSquare }
+  '\{'               { SourceToken _ TokLayoutStart }
+  '\}'               { SourceToken _ TokLayoutEnd }
+  '\;'               { SourceToken _ TokLayoutSep }
+  '<-'               { SourceToken _ (TokLeftArrow _) }
+  '->'               { SourceToken _ (TokRightArrow _) }
+  '<='               { SourceToken _ (TokOperator [] sym) | isLeftFatArrow sym }
+  '=>'               { SourceToken _ (TokRightFatArrow _) }
+  ':'                { SourceToken _ (TokOperator [] ":") }
+  '::'               { SourceToken _ (TokDoubleColon _) }
+  '='                { SourceToken _ TokEquals }
+  '|'                { SourceToken _ TokPipe }
+  '`'                { SourceToken _ TokTick }
+  '.'                { SourceToken _ TokDot }
+  ','                { SourceToken _ TokComma }
+  '_'                { SourceToken _ TokUnderscore }
+  '\\'               { SourceToken _ TokBackslash }
+  '-'                { SourceToken _ (TokOperator [] "-") }
+  '@'                { SourceToken _ (TokOperator [] "@") }
+  'ado'              { SourceToken _ (TokLowerName _ "ado") }
+  'as'               { SourceToken _ (TokLowerName [] "as") }
+  'case'             { SourceToken _ (TokLowerName [] "case") }
+  'class'            { SourceToken _ (TokLowerName [] "class") }
+  'data'             { SourceToken _ (TokLowerName [] "data") }
+  'derive'           { SourceToken _ (TokLowerName [] "derive") }
+  'do'               { SourceToken _ (TokLowerName _ "do") }
+  'else'             { SourceToken _ (TokLowerName [] "else") }
+  'false'            { SourceToken _ (TokLowerName [] "false") }
+  'forall'           { SourceToken _ (TokForall ASCII) }
+  'forallu'          { SourceToken _ (TokForall Unicode) }
+  'foreign'          { SourceToken _ (TokLowerName [] "foreign") }
+  'hiding'           { SourceToken _ (TokLowerName [] "hiding") }
+  'import'           { SourceToken _ (TokLowerName [] "import") }
+  'if'               { SourceToken _ (TokLowerName [] "if") }
+  'in'               { SourceToken _ (TokLowerName [] "in") }
+  'infix'            { SourceToken _ (TokLowerName [] "infix") }
+  'infixl'           { SourceToken _ (TokLowerName [] "infixl") }
+  'infixr'           { SourceToken _ (TokLowerName [] "infixr") }
+  'instance'         { SourceToken _ (TokLowerName [] "instance") }
+  'let'              { SourceToken _ (TokLowerName [] "let") }
+  'module'           { SourceToken _ (TokLowerName [] "module") }
+  'newtype'          { SourceToken _ (TokLowerName [] "newtype") }
+  'nominal'          { SourceToken _ (TokLowerName [] "nominal") }
+  'phantom'          { SourceToken _ (TokLowerName [] "phantom") }
+  'of'               { SourceToken _ (TokLowerName [] "of") }
+  'representational' { SourceToken _ (TokLowerName [] "representational") }
+  'role'             { SourceToken _ (TokLowerName [] "role") }
+  'then'             { SourceToken _ (TokLowerName [] "then") }
+  'true'             { SourceToken _ (TokLowerName [] "true") }
+  'type'             { SourceToken _ (TokLowerName [] "type") }
+  'where'            { SourceToken _ (TokLowerName [] "where") }
+  '(->)'             { SourceToken _ (TokSymbolArr _) }
+  '(..)'             { SourceToken _ (TokSymbolName [] "..") }
+  LOWER              { SourceToken _ (TokLowerName [] _) }
+  QUAL_LOWER         { SourceToken _ (TokLowerName _ _) }
+  UPPER              { SourceToken _ (TokUpperName [] _) }
+  QUAL_UPPER         { SourceToken _ (TokUpperName _ _) }
+  SYMBOL             { SourceToken _ (TokSymbolName [] _) }
+  QUAL_SYMBOL        { SourceToken _ (TokSymbolName _ _) }
+  OPERATOR           { SourceToken _ (TokOperator [] _) }
+  QUAL_OPERATOR      { SourceToken _ (TokOperator _ _) }
+  LIT_HOLE           { SourceToken _ (TokHole _) }
+  LIT_CHAR           { SourceToken _ (TokChar _ _) }
+  LIT_STRING         { SourceToken _ (TokString _ _) }
+  LIT_RAW_STRING     { SourceToken _ (TokRawString _) }
+  LIT_INT            { SourceToken _ (TokInt _ _) }
+  LIT_NUMBER         { SourceToken _ (TokNumber _ _) }
 
 %%
 
-many(a) :: { NE.NonEmpty _ }
-  : many1(a) { NE.reverse $1 }
+many(a) :: { NE.NonEmpty a }
+  : many1(a) %shift { NE.reverse $1 }
 
-many1(a) :: { NE.NonEmpty _ }
+many1(a) :: { NE.NonEmpty a }
   : a { pure $1 }
   | many1(a) a { NE.cons $2 $1 }
 
-manySep(a, sep) :: { NE.NonEmpty _ }
+manySep(a, sep) :: { NE.NonEmpty a }
   : manySep1(a, sep) { NE.reverse $1 }
 
-manySep1(a, sep) :: { NE.NonEmpty _ }
+manySep1(a, sep) :: { NE.NonEmpty a }
   : a { pure $1 }
   | manySep1(a, sep) sep a { NE.cons $3 $1 }
 
-manySepOrEmpty(a, sep) :: { [_] }
+manySepOrEmpty(a, sep) :: { [a] }
   : {- empty -} { [] }
   | manySep(a, sep) { NE.toList $1 }
 
-manyOrEmpty(a) :: { [_] }
+manyOrEmpty(a) :: { [a] }
   : {- empty -} { [] }
   | many(a) { NE.toList $1 }
 
-sep(a, s) :: { Separated _ }
+sep(a, s) :: { Separated a }
   : sep1(a, s) { separated $1 }
 
-sep1(a, s) :: { [(SourceToken, _)] }
-  : a { [(placeholder, $1)] }
+sep1(a, s) :: { [(SourceToken, a)] }
+  : a %shift { [(placeholder, $1)] }
   | sep1(a, s) s a { ($2, $3) : $1 }
 
-delim(a, b, c, d) :: { Delimited _ }
+delim(a, b, c, d) :: { Delimited b }
   : a d { Wrapped $1 Nothing $2 }
   | a sep(b, c) d { Wrapped $1 (Just $2) $3 }
 
@@ -175,49 +179,53 @@
   : UPPER {% upperToModuleName $1 }
   | QUAL_UPPER {% upperToModuleName $1 }
 
-qualProperName :: { QualifiedName (N.ProperName a) }
-  : UPPER {% toQualifiedName N.ProperName $1 }
-  | QUAL_UPPER {% toQualifiedName N.ProperName $1 }
+qualProperName :: { QualifiedProperName }
+  : UPPER {% qualifiedProperName <\$> toQualifiedName N.ProperName $1 }
+  | QUAL_UPPER {% qualifiedProperName <\$> toQualifiedName N.ProperName $1 }
 
-properName :: { Name (N.ProperName a) }
-  : UPPER {% toName N.ProperName $1 }
+properName :: { ProperName }
+  : UPPER {% properName <\$> toName N.ProperName $1 }
 
 qualIdent :: { QualifiedName Ident }
   : LOWER {% toQualifiedName Ident $1 }
   | QUAL_LOWER {% toQualifiedName Ident $1 }
   | 'as' {% toQualifiedName Ident $1 }
   | 'hiding' {% toQualifiedName Ident $1 }
-  | 'kind' {% toQualifiedName Ident $1 }
+  | 'role' {% toQualifiedName Ident $1 }
+  | 'nominal' {% toQualifiedName Ident $1 }
+  | 'representational' {% toQualifiedName Ident $1 }
+  | 'phantom' {% toQualifiedName Ident $1 }
 
 ident :: { Name Ident }
   : LOWER {% toName Ident $1 }
   | 'as' {% toName Ident $1 }
   | 'hiding' {% toName Ident $1 }
-  | 'kind' {% toName Ident $1 }
+  | 'role' {% toName Ident $1 }
+  | 'nominal' {% toName Ident $1 }
+  | 'representational' {% toName Ident $1 }
+  | 'phantom' {% toName Ident $1 }
 
-qualOp :: { QualifiedName (N.OpName a) }
-  : OPERATOR {% toQualifiedName N.OpName $1 }
-  | QUAL_OPERATOR {% toQualifiedName N.OpName $1 }
-  | '<=' {% toQualifiedName N.OpName $1 }
-  | '-' {% toQualifiedName N.OpName $1 }
-  | '#' {% toQualifiedName N.OpName $1 }
-  | ':' {% toQualifiedName N.OpName $1 }
+qualOp :: { QualifiedOpName }
+  : OPERATOR {% qualifiedOpName <\$> toQualifiedName N.OpName $1 }
+  | QUAL_OPERATOR {% qualifiedOpName <\$> toQualifiedName N.OpName $1 }
+  | '<=' {% qualifiedOpName <\$> toQualifiedName N.OpName $1 }
+  | '-' {% qualifiedOpName <\$> toQualifiedName N.OpName $1 }
+  | ':' {% qualifiedOpName <\$> toQualifiedName N.OpName $1 }
 
-op :: { Name (N.OpName a) }
-  : OPERATOR {% toName N.OpName $1 }
-  | '<=' {% toName N.OpName $1 }
-  | '-' {% toName N.OpName $1 }
-  | '#' {% toName N.OpName $1 }
-  | ':' {% toName N.OpName $1 }
+op :: { OpName }
+  : OPERATOR {% opName <\$> toName N.OpName $1 }
+  | '<=' {% opName <\$> toName N.OpName $1 }
+  | '-' {% opName <\$> toName N.OpName $1 }
+  | ':' {% opName <\$> toName N.OpName $1 }
 
-qualSymbol :: { QualifiedName (N.OpName a) }
-  : SYMBOL {% toQualifiedName N.OpName $1 }
-  | QUAL_SYMBOL {% toQualifiedName N.OpName $1 }
-  | '(..)' {% toQualifiedName N.OpName $1 }
+qualSymbol :: { QualifiedOpName }
+  : SYMBOL {% qualifiedOpName <\$> toQualifiedName N.OpName $1 }
+  | QUAL_SYMBOL {% qualifiedOpName <\$> toQualifiedName N.OpName $1 }
+  | '(..)' {% qualifiedOpName <\$> toQualifiedName N.OpName $1 }
 
-symbol :: { Name (N.OpName a) }
-  : SYMBOL {% toName N.OpName $1 }
-  | '(..)' {% toName N.OpName $1 }
+symbol :: { OpName }
+  : SYMBOL {% opName <\$> toName N.OpName $1 }
+  | '(..)' {% opName <\$> toName N.OpName $1 }
 
 label :: { Label }
   : LOWER { toLabel $1 }
@@ -242,11 +250,14 @@
   | 'infixl' { toLabel $1 }
   | 'infixr' { toLabel $1 }
   | 'instance' { toLabel $1 }
-  | 'kind' { toLabel $1 }
   | 'let' { toLabel $1 }
   | 'module' { toLabel $1 }
   | 'newtype' { toLabel $1 }
+  | 'nominal' { toLabel $1 }
   | 'of' { toLabel $1 }
+  | 'phantom' { toLabel $1 }
+  | 'representational' { toLabel $1 }
+  | 'role' { toLabel $1 }
   | 'then' { toLabel $1 }
   | 'true' { toLabel $1 }
   | 'type' { toLabel $1 }
@@ -273,61 +284,58 @@
   : 'true' { toBoolean $1 }
   | 'false' { toBoolean $1 }
 
-kind :: { Kind () }
-  : kind1 { $1 }
-  | kind1 '->' kind { KindArr () $1 $2 $3 }
-
-kind1 :: { Kind () }
-  : qualProperName { KindName () $1 }
-  | '#' kind1 { KindRow () $1 $2 }
-  | '(' kind ')' { KindParens () (Wrapped $1 $2 $3) }
-
 type :: { Type () }
-  : type1 { $1 }
-  | type1 '::' kind { TypeKinded () $1 $2 $3 }
+  : type1 %shift { $1 }
+  | type1 '::' type { TypeKinded () $1 $2 $3 }
 
 type1 :: { Type () }
   : type2 { $1 }
   | forall many(typeVarBinding) '.' type1 { TypeForall () $1 $2 $3 $4 }
 
 type2 :: { Type () }
-  : type3 { $1 }
+  : type3 %shift { $1 }
   | type3 '->' type1 { TypeArr () $1 $2 $3 }
   | type3 '=>' type1 {% do cs <- toConstraint $1; pure $ TypeConstrained () cs $2 $3 }
 
 type3 :: { Type () }
-  : type4 { $1 }
-  | type3 qualOp type4 { TypeOp () $1 $2 $3 }
+  : type4 %shift { $1 }
+  | type3 qualOp type4 %shift { TypeOp () $1 (getQualifiedOpName $2) $3 }
 
 type4 :: { Type () }
+  : type5 %shift { $1 }
+  | '-' int { uncurry (TypeInt () (Just $1)) (second negate $2) }
+
+type5 :: { Type () }
   : typeAtom { $1 }
-  | type4 typeAtom { TypeApp () $1 $2 }
+  | type5 typeAtom { TypeApp () $1 $2 }
 
 typeAtom :: { Type ()}
   : '_' { TypeWildcard () $1 }
   | ident { TypeVar () $1 }
-  | qualProperName { TypeConstructor () $1 }
-  | qualSymbol { TypeOpName () $1 }
+  | qualProperName { TypeConstructor () (getQualifiedProperName $1) }
+  | qualSymbol { TypeOpName () (getQualifiedOpName $1) }
   | string { uncurry (TypeString ()) $1 }
+  | int { uncurry (TypeInt () Nothing) $1 }
   | hole { TypeHole () $1 }
   | '(->)' { TypeArrName () $1 }
   | '{' row '}' { TypeRecord () (Wrapped $1 $2 $3) }
   | '(' row ')' { TypeRow () (Wrapped $1 $2 $3) }
   | '(' type1 ')' { TypeParens () (Wrapped $1 $2 $3) }
-  | '(' typeKindedAtom '::' kind ')' { TypeParens () (Wrapped $1 (TypeKinded () $2 $3 $4) $5) }
+  | '(' typeKindedAtom '::' type ')' { TypeParens () (Wrapped $1 (TypeKinded () $2 $3 $4) $5) }
 
 -- Due to a conflict between row syntax and kinded type syntax, we require
 -- kinded type variables to be wrapped in parens. Thus `(a :: Foo)` is always a
 -- row, and to annotate `a` with kind `Foo`, one must use `((a) :: Foo)`.
 typeKindedAtom :: { Type () }
   : '_' { TypeWildcard () $1 }
-  | qualProperName { TypeConstructor () $1 }
-  | qualSymbol { TypeOpName () $1 }
+  | qualProperName { TypeConstructor () (getQualifiedProperName $1) }
+  | qualSymbol { TypeOpName () (getQualifiedOpName $1) }
+  | int { uncurry (TypeInt () Nothing) $1 }
   | hole { TypeHole () $1 }
   | '{' row '}' { TypeRecord () (Wrapped $1 $2 $3) }
   | '(' row ')' { TypeRow () (Wrapped $1 $2 $3) }
   | '(' type1 ')' { TypeParens () (Wrapped $1 $2 $3) }
-  | '(' typeKindedAtom '::' kind ')' { TypeParens () (Wrapped $1 (TypeKinded () $2 $3 $4) $5) }
+  | '(' typeKindedAtom '::' type ')' { TypeParens () (Wrapped $1 (TypeKinded () $2 $3 $4) $5) }
 
 row :: { Row () }
   : {- empty -} { Row Nothing Nothing }
@@ -339,24 +347,30 @@
   : label '::' type { Labeled $1 $2 $3 }
 
 typeVarBinding :: { TypeVarBinding () }
-  : ident { TypeVarName $1 }
-  | '(' ident '::' kind ')' { TypeVarKinded (Wrapped $1 (Labeled $2 $3 $4) $5) }
+  : ident { TypeVarName (Nothing, $1) }
+  | '@' ident { TypeVarName (Just $1, $2) }
+  | '(' ident '::' type ')' {% checkNoWildcards $4 *> pure (TypeVarKinded (Wrapped $1 (Labeled (Nothing, $2) $3 $4) $5)) }
+  | '(' '@' ident '::' type ')' {% checkNoWildcards $5 *> pure (TypeVarKinded (Wrapped $1 (Labeled (Just $2, $3) $4 $5) $6)) }
 
+typeVarBindingPlain :: { TypeVarBinding () }
+  : ident { TypeVarName (Nothing, $1) }
+  | '(' ident '::' type ')' {% checkNoWildcards $4 *> pure (TypeVarKinded (Wrapped $1 (Labeled (Nothing, $2) $3 $4) $5)) }
+
 forall :: { SourceToken }
   : 'forall' { $1 }
   | 'forallu' { $1 }
 
 exprWhere :: { Where () }
-  : expr { Where $1 Nothing }
+  : expr %shift { Where $1 Nothing }
   | expr 'where' '\{' manySep(letBinding, '\;') '\}' { Where $1 (Just ($2, $4)) }
 
 expr :: { Expr () }
-  : expr1 { $1 }
+  : expr1 %shift { $1 }
   | expr1 '::' type { ExprTyped () $1 $2 $3 }
 
 expr1 :: { Expr () }
-  : expr2 { $1 }
-  | expr1 qualOp expr2 { ExprOp () $1 $2 $3 }
+  : expr2 %shift { $1 }
+  | expr1 qualOp expr2 %shift { ExprOp () $1 (getQualifiedOpName $2) $3 }
 
 expr2 :: { Expr () }
   : expr3 { $1 }
@@ -364,10 +378,10 @@
 
 exprBacktick :: { Expr () }
   : expr3 { $1 }
-  | exprBacktick qualOp expr3 { ExprOp () $1 $2 $3 }
+  | exprBacktick qualOp expr3 { ExprOp () $1 (getQualifiedOpName $2) $3 }
 
 expr3 :: { Expr () }
-  : expr4 { $1 }
+  : expr4 %shift { $1 }
   | '-' expr3 { ExprNegate () $1 $2 }
 
 expr4 :: { Expr () }
@@ -380,6 +394,7 @@
             ExprApp () (ExprApp () $1 lhs) rhs
           _ -> ExprApp () $1 $2
       }
+  | expr4 '@' typeAtom { ExprVisibleTypeApp () $1 $2 $3 }
 
 expr5 :: { Expr () }
   : expr6 { $1 }
@@ -394,12 +409,12 @@
   -- at any level, but this is ambiguous. We allow it in the case of a singleton
   -- case, since this is used in the wild.
   | 'case' sep(expr, ',') 'of' '\{' sep(binder1, ',') '->' '\}' exprWhere
-      { ExprCase () (CaseOf $1 $2 $3 (pure ($5, Unconditional $6 $8))) }
-  | 'case' sep(expr, ',') 'of' '\{' sep(binder1, ',') '\}' guarded('->')
-      { ExprCase () (CaseOf $1 $2 $3 (pure ($5, $7))) }
+      {% addWarning (let (a,b) = whereRange $8 in [a, b]) WarnDeprecatedCaseOfOffsideSyntax *> pure (ExprCase () (CaseOf $1 $2 $3 (pure ($5, Unconditional $6 $8)))) }
+  | 'case' sep(expr, ',') 'of' '\{' sep(binder1, ',') '\}' guardedCase
+      {% addWarning (let (a,b) = guardedRange $7 in [a, b]) WarnDeprecatedCaseOfOffsideSyntax *> pure (ExprCase () (CaseOf $1 $2 $3 (pure ($5, $7)))) }
 
 expr6 :: { Expr () }
-  : expr7 { $1 }
+  : expr7 %shift { $1 }
   | expr7 '{' '}' { ExprApp () $1 (ExprRecord () (Wrapped $2 Nothing $3)) }
   | expr7 '{' sep(recordUpdateOrLabel, ',') '}'
       {% toRecordFields $3 >>= \case
@@ -415,8 +430,8 @@
   : '_' { ExprSection () $1 }
   | hole { ExprHole () $1 }
   | qualIdent { ExprIdent () $1 }
-  | qualProperName { ExprConstructor () $1 }
-  | qualSymbol { ExprOpName () $1 }
+  | qualProperName { ExprConstructor () (getQualifiedProperName $1) }
+  | qualSymbol { ExprOpName () (getQualifiedOpName $1) }
   | boolean { uncurry (ExprBoolean ()) $1 }
   | char { uncurry (ExprChar ()) $1 }
   | string { uncurry (ExprString ()) $1 }
@@ -442,20 +457,27 @@
 
 letBinding :: { LetBinding () }
   : ident '::' type { LetBindingSignature () (Labeled $1 $2 $3) }
-  | ident guarded('=') { LetBindingName () (ValueBindingFields $1 [] $2) }
-  | ident many(binderAtom) guarded('=') { LetBindingName () (ValueBindingFields $1 (NE.toList $2) $3) }
+  | ident guardedDecl { LetBindingName () (ValueBindingFields $1 [] $2) }
+  | ident many(binderAtom) guardedDecl { LetBindingName () (ValueBindingFields $1 (NE.toList $2) $3) }
   | binder1 '=' exprWhere { LetBindingPattern () $1 $2 $3 }
 
 caseBranch :: { (Separated (Binder ()), Guarded ()) }
-  : sep(binder1, ',') guarded('->') { ($1, $2) }
+  : sep(binder1, ',') guardedCase { ($1, $2) }
 
-guarded(a) :: { Guarded () }
-  : a exprWhere { Unconditional $1 $2 }
-  | many(guardedExpr(a)) { Guarded $1 }
+guardedDecl :: { Guarded () }
+  : '=' exprWhere { Unconditional $1 $2 }
+  | many(guardedDeclExpr) { Guarded $1 }
 
-guardedExpr(a) :: { GuardedExpr () }
-  : guard a exprWhere { uncurry GuardedExpr $1 $2 $3 }
+guardedDeclExpr :: { GuardedExpr () }
+  : guard '=' exprWhere { uncurry GuardedExpr $1 $2 $3 }
 
+guardedCase :: { Guarded () }
+  : '->' exprWhere { Unconditional $1 $2 }
+  | many(guardedCaseExpr) { Guarded $1 }
+
+guardedCaseExpr :: { GuardedExpr () }
+  : guard '->' exprWhere { uncurry GuardedExpr $1 $2 $3 }
+
 -- Do/Ado statements and pattern guards require unbounded lookahead due to many
 -- conflicts between `binder` and `expr` syntax. For example `Foo a b c` can
 -- either be a constructor `binder` or several `expr` applications, and we won't
@@ -547,21 +569,21 @@
 
 binder1 :: { Binder () }
   : binder2 { $1 }
-  | binder1 qualOp binder2 { BinderOp () $1 $2 $3 }
+  | binder1 qualOp binder2 { BinderOp () $1 (getQualifiedOpName $2) $3 }
 
 binder2 :: { Binder () }
   : many(binderAtom) {% toBinderConstructor $1 }
+  | '-' number { uncurry (BinderNumber () (Just $1)) $2 }
 
 binderAtom :: { Binder () }
   : '_' { BinderWildcard () $1 }
-  | ident { BinderVar () $1 }
+  | ident %shift { BinderVar () $1 }
   | ident '@' binderAtom { BinderNamed () $1 $2 $3 }
-  | qualProperName { BinderConstructor () $1 [] }
+  | qualProperName { BinderConstructor () (getQualifiedProperName $1) [] }
   | boolean { uncurry (BinderBoolean ()) $1 }
   | char { uncurry (BinderChar ()) $1 }
   | string { uncurry (BinderString ()) $1 }
   | number { uncurry (BinderNumber () Nothing) $1 }
-  | '-' number { uncurry (BinderNumber () (Just $1)) $2 }
   | delim('[', binder, ',', ']') { BinderArray () $1 }
   | delim('{', recordBinder, ',', '}') { BinderRecord () $1 }
   | '(' binder ')' { BinderParens () (Wrapped $1 $2 $3) }
@@ -595,7 +617,7 @@
   : manySep(moduleDecl, '\;') {% toModuleDecls $ NE.toList $1 }
   | {- empty -} { ([], []) }
 
-moduleDecl :: { TmpModuleDecl a }
+moduleDecl :: { TmpModuleDecl () }
   : importDecl { TmpImport $1 }
   | sep(decl, declElse) { TmpChain $1 }
 
@@ -609,18 +631,17 @@
 
 export :: { Export () }
   : ident { ExportValue () $1 }
-  | symbol { ExportOp () $1 }
-  | properName { ExportType () $1 Nothing }
-  | properName dataMembers { ExportType () $1 (Just $2) }
-  | 'type' symbol { ExportTypeOp () $1 $2 }
-  | 'class' properName { ExportClass () $1 $2 }
-  | 'kind' properName { ExportKind () $1 $2 }
+  | symbol { ExportOp () (getOpName $1) }
+  | properName { ExportType () (getProperName $1) Nothing }
+  | properName dataMembers { ExportType () (getProperName $1) (Just $2) }
+  | 'type' symbol { ExportTypeOp () $1 (getOpName $2) }
+  | 'class' properName { ExportClass () $1 (getProperName $2) }
   | 'module' moduleName { ExportModule () $1 $2 }
 
 dataMembers :: { (DataMembers ()) }
  : '(..)' { DataAll () $1 }
  | '(' ')' { DataEnumerated () (Wrapped $1 Nothing $2) }
- | '(' sep(properName, ',') ')' { DataEnumerated () (Wrapped $1 (Just $2) $3) }
+ | '(' sep(properName, ',') ')' { DataEnumerated () (Wrapped $1 (Just \$ getProperName <\$> $2) $3) }
 
 importDecl :: { ImportDecl () }
   : 'import' moduleName imports { ImportDecl () $1 $2 $3 Nothing }
@@ -633,41 +654,45 @@
 
 import :: { Import () }
   : ident { ImportValue () $1 }
-  | symbol { ImportOp () $1 }
-  | properName { ImportType () $1 Nothing }
-  | properName dataMembers { ImportType () $1 (Just $2) }
-  | 'type' symbol { ImportTypeOp () $1 $2 }
-  | 'class' properName { ImportClass () $1 $2 }
-  | 'kind' properName { ImportKind () $1 $2 }
+  | symbol { ImportOp () (getOpName $1) }
+  | properName { ImportType () (getProperName $1) Nothing }
+  | properName dataMembers { ImportType () (getProperName $1) (Just $2) }
+  | 'type' symbol { ImportTypeOp () $1 (getOpName $2) }
+  | 'class' properName { ImportClass () $1 (getProperName $2) }
 
 decl :: { Declaration () }
   : dataHead { DeclData () $1 Nothing }
   | dataHead '=' sep(dataCtor, '|') { DeclData () $1 (Just ($2, $3)) }
   | typeHead '=' type {% checkNoWildcards $3 *> pure (DeclType () $1 $2 $3) }
-  | newtypeHead '=' properName typeAtom {% checkNoWildcards $4 *> pure (DeclNewtype () $1 $2 $3 $4) }
-  | classHead {% checkFundeps $1 *> pure (DeclClass () $1 Nothing) }
-  | classHead 'where' '\{' manySep(classMember, '\;') '\}' {% checkFundeps $1 *> pure (DeclClass () $1 (Just ($2, $4))) }
+  | newtypeHead '=' properName typeAtom {% checkNoWildcards $4 *> pure (DeclNewtype () $1 $2 (getProperName $3) $4) }
+  | classHead { either id (\h -> DeclClass () h Nothing) $1 }
+  | classHead 'where' '\{' manySep(classMember, '\;') '\}' {% either (const (parseError $2)) (\h -> pure $ DeclClass () h (Just ($2, $4))) $1 }
   | instHead { DeclInstanceChain () (Separated (Instance $1 Nothing) []) }
   | instHead 'where' '\{' manySep(instBinding, '\;') '\}' { DeclInstanceChain () (Separated (Instance $1 (Just ($2, $4))) []) }
+  | 'data' properName '::' type {% checkNoWildcards $4 *> pure (DeclKindSignature () $1 (Labeled (getProperName $2) $3 $4)) }
+  | 'newtype' properName '::' type {% checkNoWildcards $4 *> pure (DeclKindSignature () $1 (Labeled (getProperName $2) $3 $4)) }
+  | 'type' properName '::' type {% checkNoWildcards $4 *> pure (DeclKindSignature () $1 (Labeled (getProperName $2) $3 $4)) }
   | 'derive' instHead { DeclDerive () $1 Nothing $2 }
   | 'derive' 'newtype' instHead { DeclDerive () $1 (Just $2) $3 }
   | ident '::' type { DeclSignature () (Labeled $1 $2 $3) }
-  | ident manyOrEmpty(binderAtom) guarded('=') { DeclValue () (ValueBindingFields $1 $2 $3) }
+  | ident manyOrEmpty(binderAtom) guardedDecl { DeclValue () (ValueBindingFields $1 $2 $3) }
   | fixity { DeclFixity () $1 }
-  | 'foreign' 'import' foreign { DeclForeign () $1 $2 $3 }
+  | 'foreign' 'import' ident '::' type {% when (isConstrained $5) (addFailure ([$1, $2, nameTok $3, $4] <> toList (flattenType $5)) ErrConstraintInForeignImportSyntax) *> pure (DeclForeign () $1 $2 (ForeignValue (Labeled $3 $4 $5))) }
+  | 'foreign' 'import' 'data' properName '::' type { DeclForeign () $1 $2 (ForeignData $3 (Labeled (getProperName $4) $5 $6)) }
+  | 'type' 'role' properName many(role) { DeclRole () $1 $2 (getProperName $3) $4 }
 
 dataHead :: { DataHead () }
-  : 'data' properName manyOrEmpty(typeVarBinding) { DataHead $1 $2 $3 }
+  : 'data' properName manyOrEmpty(typeVarBindingPlain) { DataHead $1 (getProperName $2) $3 }
 
 typeHead :: { DataHead () }
-  : 'type' properName manyOrEmpty(typeVarBinding) { DataHead $1 $2 $3 }
+  : 'type' properName manyOrEmpty(typeVarBindingPlain) { DataHead $1 (getProperName $2) $3 }
 
 newtypeHead :: { DataHead () }
-  : 'newtype' properName manyOrEmpty(typeVarBinding) { DataHead $1 $2 $3 }
+  : 'newtype' properName manyOrEmpty(typeVarBindingPlain) { DataHead $1 (getProperName $2) $3 }
 
 dataCtor :: { DataCtor () }
   : properName manyOrEmpty(typeAtom)
-      {% for_ $2 checkNoWildcards *> pure (DataCtor () $1 $2) }
+      {% for_ $2 checkNoWildcards *> pure (DataCtor () (getProperName $1) $2) }
 
 -- Class head syntax requires unbounded lookahead due to a conflict between
 -- row syntax and `typeVarBinding`. `(a :: B)` is either a row in `constraint`
@@ -678,20 +703,26 @@
 --       : 'class' classNameAndFundeps
 --       | 'class' constraints '<=' classNameAndFundeps
 --
-classHead :: { ClassHead () }
+classHead :: { Either (Declaration ()) (ClassHead ()) }
   : 'class'
-      {%% revert $ do
-        let
-          ctr (super, (name, vars, fundeps)) =
-            ClassHead $1 super name vars fundeps
-        fmap ctr $ tryPrefix parseClassSuper parseClassNameAndFundeps
+      {%% revert $ oneOf $ NE.fromList
+          [ fmap (Left . DeclKindSignature () $1) parseClassSignature
+          , do
+              (super, (name, vars, fundeps)) <- tryPrefix parseClassSuper parseClassNameAndFundeps
+              let hd = ClassHead $1 super name vars fundeps
+              checkFundeps hd
+              pure $ Right hd
+          ]
       }
 
-classSuper
+classSignature :: { Labeled (Name (N.ProperName 'N.TypeName)) (Type ()) }
+  : properName '::' type {%^ revert $ checkNoWildcards $3 *> pure (Labeled (getProperName $1) $2 $3) }
+
+classSuper :: { (OneOrDelimited (Constraint ()), SourceToken) }
   : constraints '<=' {%^ revert $ pure ($1, $2) }
 
 classNameAndFundeps :: { (Name (N.ProperName 'N.ClassName), [TypeVarBinding ()], Maybe (SourceToken, Separated ClassFundep)) }
-  : properName manyOrEmpty(typeVarBinding) fundeps {%^ revert $ pure ($1, $2, $3) }
+  : properName manyOrEmpty(typeVarBindingPlain) fundeps {%^ revert $ pure (getProperName $1, $2, $3) }
 
 fundeps :: { Maybe (SourceToken, Separated ClassFundep) }
   : {- empty -} { Nothing }
@@ -705,37 +736,41 @@
   : ident '::' type {% checkNoWildcards $3 *> pure (Labeled $1 $2 $3) }
 
 instHead :: { InstanceHead () }
-  : 'instance' ident '::' constraints '=>' qualProperName manyOrEmpty(typeAtom)
-      { InstanceHead $1 $2 $3 (Just ($4, $5)) $6 $7 }
+  : 'instance' constraints '=>' qualProperName manyOrEmpty(typeAtom)
+      { InstanceHead $1 Nothing (Just ($2, $3)) (getQualifiedProperName $4) $5 }
+  | 'instance' qualProperName manyOrEmpty(typeAtom)
+      { InstanceHead $1 Nothing Nothing (getQualifiedProperName $2) $3 }
+  | 'instance' ident '::' constraints '=>' qualProperName manyOrEmpty(typeAtom)
+      { InstanceHead $1 (Just ($2, $3)) (Just ($4, $5)) (getQualifiedProperName $6) $7 }
   | 'instance' ident '::' qualProperName manyOrEmpty(typeAtom)
-      { InstanceHead $1 $2 $3 Nothing $4 $5 }
+      { InstanceHead $1 (Just ($2, $3)) Nothing (getQualifiedProperName $4) $5 }
 
 constraints :: { OneOrDelimited (Constraint ()) }
   : constraint { One $1 }
   | '(' sep(constraint, ',') ')' { Many (Wrapped $1 $2 $3) }
 
 constraint :: { Constraint () }
-  : qualProperName manyOrEmpty(typeAtom) {% for_ $2 checkNoWildcards *> for_ $2 checkNoForalls *> pure (Constraint () $1 $2) }
+  : qualProperName manyOrEmpty(typeAtom) {% for_ $2 checkNoWildcards *> for_ $2 checkNoForalls *> pure (Constraint () (getQualifiedProperName $1) $2) }
   | '(' constraint ')' { ConstraintParens () (Wrapped $1 $2 $3) }
 
 instBinding :: { InstanceBinding () }
   : ident '::' type { InstanceBindingSignature () (Labeled $1 $2 $3) }
-  | ident manyOrEmpty(binderAtom) guarded('=') { InstanceBindingName () (ValueBindingFields $1 $2 $3) }
+  | ident manyOrEmpty(binderAtom) guardedDecl { InstanceBindingName () (ValueBindingFields $1 $2 $3) }
 
 fixity :: { FixityFields }
-  : infix int qualIdent 'as' op { FixityFields $1 $2 (FixityValue (fmap Left $3) $4 $5) }
-  | infix int qualProperName 'as' op { FixityFields $1 $2 (FixityValue (fmap Right $3) $4 $5) }
-  | infix int 'type' qualProperName 'as' op { FixityFields $1 $2 (FixityType $3 $4 $5 $6) }
+  : infix int qualIdent 'as' op { FixityFields $1 $2 (FixityValue (fmap Left $3) $4 (getOpName $5)) }
+  | infix int qualProperName 'as' op { FixityFields $1 $2 (FixityValue (fmap Right (getQualifiedProperName $3)) $4 (getOpName $5)) }
+  | infix int 'type' qualProperName 'as' op { FixityFields $1 $2 (FixityType $3 (getQualifiedProperName $4) $5 (getOpName $6)) }
 
 infix :: { (SourceToken, Fixity) }
   : 'infix' { ($1, Infix) }
   | 'infixl' { ($1, Infixl) }
   | 'infixr' { ($1, Infixr) }
 
-foreign :: { Foreign () }
-  : ident '::' type { ForeignValue (Labeled $1 $2 $3) }
-  | 'data' properName '::' kind { ForeignData $1 (Labeled $2 $3 $4) }
-  | 'kind' properName { ForeignKind $1 $2 }
+role :: { Role }
+  : 'nominal' { Role $1 R.Nominal }
+  | 'representational' { Role $1 R.Representational }
+  | 'phantom' { Role $1 R.Phantom }
 
 -- Partial parsers which can be combined with combinators for adhoc use. We need
 -- to revert the lookahead token so that it doesn't consume an extra token
@@ -763,24 +798,21 @@
 lexer :: (SourceToken -> Parser a) -> Parser a
 lexer k = munch >>= k
 
-parse :: Text -> Either (NE.NonEmpty ParserError) (Module ())
-parse = resFull <=< parseModule . lex
+parse :: Text -> ([ParserWarning], Either (NE.NonEmpty ParserError) (Module ()))
+parse = either (([],) . Left) resFull . parseModule . lexModule
 
 data PartialResult a = PartialResult
   { resPartial :: a
-  , resFull :: Either (NE.NonEmpty ParserError) a
+  , resFull :: ([ParserWarning], Either (NE.NonEmpty ParserError) a)
   } deriving (Functor)
 
 parseModule :: [LexResult] -> Either (NE.NonEmpty ParserError) (PartialResult (Module ()))
 parseModule toks = fmap (\header -> PartialResult header (parseFull header)) headerRes
   where
   (st, headerRes) =
-    runParser (ParserState (toks) []) parseModuleHeader
+    runParser (ParserState toks [] []) parseModuleHeader
 
   parseFull header = do
-    (decls, trailing) <- snd $ runParser st parseModuleBody
-    pure $ header
-      { modDecls = decls
-      , modTrailingComments = trailing
-      }
+    let (ParserState _ _ warnings, res) = runParser st parseModuleBody
+    (warnings, (\(decls, trailing) -> header { modDecls = decls, modTrailingComments = trailing }) <$> res)
 }
diff --git a/src/Language/PureScript/CST/Positions.hs b/src/Language/PureScript/CST/Positions.hs
--- a/src/Language/PureScript/CST/Positions.hs
+++ b/src/Language/PureScript/CST/Positions.hs
@@ -1,6 +1,3 @@
-{-# LANGUAGE BangPatterns #-}
-{-# LANGUAGE NamedFieldPuns #-}
-
 -- | This module contains utilities for calculating positions and offsets. While
 -- tokens are annotated with ranges, CST nodes are not, but they can be
 -- dynamically derived with the functions in this module, which will return the
@@ -11,20 +8,21 @@
 import Prelude
 
 import Data.Foldable (foldl')
-import qualified Data.List.NonEmpty as NE
+import Data.List.NonEmpty qualified as NE
+import Data.Maybe (fromMaybe)
 import Data.Text (Text)
 import Data.Void (Void)
-import qualified Data.Text as Text
+import Data.Text qualified as Text
 import Language.PureScript.CST.Types
 
 advanceToken :: SourcePos -> Token -> SourcePos
 advanceToken pos = applyDelta pos . tokenDelta
 
 advanceLeading :: SourcePos -> [Comment LineFeed] -> SourcePos
-advanceLeading pos = foldl' (\a -> applyDelta a . commentDelta lineDelta) pos
+advanceLeading = foldl' $ \a -> applyDelta a . commentDelta lineDelta
 
 advanceTrailing :: SourcePos -> [Comment Void] -> SourcePos
-advanceTrailing pos = foldl' (\a -> applyDelta a . commentDelta (const (0, 0))) pos
+advanceTrailing = foldl' $ \a -> applyDelta a . commentDelta (const (0, 0))
 
 tokenDelta :: Token -> (Int, Int)
 tokenDelta = \case
@@ -117,14 +115,11 @@
 qualRange :: QualifiedName a -> TokenRange
 qualRange a = (qualTok a, qualTok a)
 
-labelRange :: Label -> TokenRange
-labelRange a = (lblTok a, lblTok a)
-
 wrappedRange :: Wrapped a -> TokenRange
-wrappedRange (Wrapped { wrpOpen, wrpClose }) = (wrpOpen, wrpClose)
+wrappedRange Wrapped { wrpOpen, wrpClose } = (wrpOpen, wrpClose)
 
 moduleRange :: Module a -> TokenRange
-moduleRange (Module { modKeyword, modWhere, modImports, modDecls }) =
+moduleRange Module { modKeyword, modWhere, modImports, modDecls } =
   case (modImports, modDecls) of
     ([], []) -> (modKeyword, modWhere)
     (is, []) -> (modKeyword, snd . importDeclRange $ last is)
@@ -139,11 +134,10 @@
     | otherwise -> nameRange a
   ExportTypeOp _ a b -> (a, nameTok b)
   ExportClass _ a b -> (a, nameTok b)
-  ExportKind _ a b -> (a, nameTok b)
   ExportModule _ a b -> (a, nameTok b)
 
 importDeclRange :: ImportDecl a -> TokenRange
-importDeclRange (ImportDecl { impKeyword, impModule, impNames, impQual })
+importDeclRange ImportDecl { impKeyword, impModule, impNames, impQual }
   | Just (_, modName) <- impQual = (impKeyword, nameTok modName)
   | Just (_, imports) <- impNames = (impKeyword, wrpClose imports)
   | otherwise = (impKeyword, nameTok impModule)
@@ -157,7 +151,6 @@
     | otherwise -> nameRange a
   ImportTypeOp _ a b -> (a, nameTok b)
   ImportClass _ a b -> (a, nameTok b)
-  ImportKind _ a b -> (a, nameTok b)
 
 dataMembersRange :: DataMembers a -> TokenRange
 dataMembersRange = \case
@@ -178,11 +171,13 @@
     where start = classHeadRange hd
   DeclInstanceChain _ a -> (fst . instanceRange $ sepHead a, snd . instanceRange $ sepLast a)
   DeclDerive _ a _ b -> (a, snd $ instanceHeadRange b)
+  DeclKindSignature _ a (Labeled _ _ b) -> (a, snd $ typeRange b)
   DeclSignature _ (Labeled a _ b) -> (nameTok a, snd $ typeRange b)
   DeclValue _ a -> valueBindingFieldsRange a
   DeclFixity _ (FixityFields a _ (FixityValue _ _ b)) -> (fst a, nameTok b)
   DeclFixity _ (FixityFields a _ (FixityType _ _ _ b)) -> (fst a, nameTok b)
   DeclForeign _ a _ b -> (a, snd $ foreignRange b)
+  DeclRole _ a _ _ b -> (a, roleTok $ NE.last b)
 
 dataHeadRange :: DataHead a -> TokenRange
 dataHeadRange (DataHead kw name vars)
@@ -196,7 +191,7 @@
 
 classHeadRange :: ClassHead a -> TokenRange
 classHeadRange (ClassHead kw _ name vars fdeps)
-  | Just (_, fs) <- fdeps = (kw, snd .classFundepRange $ sepLast fs)
+  | Just (_, fs) <- fdeps = (kw, snd . classFundepRange $ sepLast fs)
   | [] <- vars = (kw, snd $ nameRange name)
   | otherwise = (kw, snd . typeVarBindingRange $ last vars)
 
@@ -212,7 +207,7 @@
   where start = instanceHeadRange hd
 
 instanceHeadRange :: InstanceHead a -> TokenRange
-instanceHeadRange (InstanceHead kw _ _ _ cls types)
+instanceHeadRange (InstanceHead kw _ _ cls types)
   | [] <- types = (kw, qualTok cls)
   | otherwise = (kw, snd . typeRange $ last types)
 
@@ -224,7 +219,7 @@
 foreignRange :: Foreign a -> TokenRange
 foreignRange = \case
   ForeignValue (Labeled a _ b) -> (nameTok a, snd $ typeRange b)
-  ForeignData a (Labeled _ _ b) -> (a, snd $ kindRange b)
+  ForeignData a (Labeled _ _ b) -> (a, snd $ typeRange b)
   ForeignKind a b -> (a, nameTok b)
 
 valueBindingFieldsRange :: ValueBindingFields a -> TokenRange
@@ -243,13 +238,6 @@
   | Just (_, ls) <- bs = (fst $ exprRange a, snd . letBindingRange $ NE.last ls)
   | otherwise = exprRange a
 
-kindRange :: Kind a -> TokenRange
-kindRange = \case
-  KindName _ a -> qualRange a
-  KindArr _ a _ b -> (fst $ kindRange a, snd $ kindRange b)
-  KindRow _ a b -> (a, snd $ kindRange b)
-  KindParens _ a -> wrappedRange a
-
 typeRange :: Type a -> TokenRange
 typeRange = \case
   TypeVar _ a -> nameRange a
@@ -257,10 +245,11 @@
   TypeWildcard _ a -> (a, a)
   TypeHole _ a -> nameRange a
   TypeString _ a _ -> (a, a)
+  TypeInt _ a b _ -> (fromMaybe b a, b)
   TypeRow _ a -> wrappedRange a
   TypeRecord _ a -> wrappedRange a
   TypeForall _ a _ _ b -> (a, snd $ typeRange b)
-  TypeKinded _ a _ b -> (fst $ typeRange a, snd $ kindRange b)
+  TypeKinded _ a _ b -> (fst $ typeRange a, snd $ typeRange b)
   TypeApp _ a b -> (fst $ typeRange a, snd $ typeRange b)
   TypeOp _ a _ b -> (fst $ typeRange a, snd $ typeRange b)
   TypeOpName _ a -> qualRange a
@@ -268,6 +257,7 @@
   TypeArrName _ a -> (a, a)
   TypeConstrained _ a _ b -> (fst $ constraintRange a, snd $ typeRange b)
   TypeParens _ a -> wrappedRange a
+  TypeUnaryRow _ a b -> (a, snd $ typeRange b)
 
 constraintRange :: Constraint a -> TokenRange
 constraintRange = \case
@@ -279,7 +269,7 @@
 typeVarBindingRange :: TypeVarBinding a -> TokenRange
 typeVarBindingRange = \case
   TypeVarKinded a -> wrappedRange a
-  TypeVarName a -> nameRange a
+  TypeVarName (atSign, a) -> (fromMaybe (nameTok a) atSign, nameTok a)
 
 exprRange :: Expr a -> TokenRange
 exprRange = \case
@@ -302,6 +292,7 @@
   ExprRecordAccessor _ (RecordAccessor a _ b) -> (fst $ exprRange a, lblTok $ sepLast b)
   ExprRecordUpdate _ a b -> (fst $ exprRange a, snd $ wrappedRange b)
   ExprApp _ a b -> (fst $ exprRange a, snd $ exprRange b)
+  ExprVisibleTypeApp _ a _ b -> (fst $ exprRange a, snd $ typeRange b)
   ExprLambda _ (Lambda a _ _ b) -> (a, snd $ exprRange b)
   ExprIf _ (IfThenElse a _ _ _ _ b) -> (a, snd $ exprRange b)
   ExprCase _ (CaseOf a _ _ c) -> (a, snd . guardedRange . snd $ NE.last c)
@@ -345,8 +336,3 @@
 recordUpdateRange = \case
   RecordUpdateLeaf a _ b -> (lblTok a, snd $ exprRange b)
   RecordUpdateBranch a (Wrapped _ _ b) -> (lblTok a, b)
-
-recordLabeledExprRange :: RecordLabeled (Expr a) -> TokenRange
-recordLabeledExprRange = \case
-  RecordPun a -> nameRange a
-  RecordField a _ b -> (fst $ labelRange a, snd $ exprRange b)
diff --git a/src/Language/PureScript/CST/Print.hs b/src/Language/PureScript/CST/Print.hs
--- a/src/Language/PureScript/CST/Print.hs
+++ b/src/Language/PureScript/CST/Print.hs
@@ -5,18 +5,26 @@
 module Language.PureScript.CST.Print
   ( printToken
   , printTokens
+  , printModule
   , printLeadingComment
   , printTrailingComment
   ) where
 
 import Prelude
 
+import Data.DList qualified as DList
 import Data.Text (Text)
-import qualified Data.Text as Text
-import Language.PureScript.CST.Types
+import Data.Text qualified as Text
+import Language.PureScript.CST.Types (Comment(..), LineFeed(..), Module, SourceStyle(..), SourceToken(..), Token(..), TokenAnn(..))
+import Language.PureScript.CST.Flatten (flattenModule)
 
 printToken :: Token -> Text
-printToken = \case
+printToken = printToken' True
+
+-- | Prints a given Token. The bool controls whether or not layout
+-- tokens should be printed.
+printToken' :: Bool -> Token -> Text
+printToken' showLayout = \case
   TokLeftParen             -> "("
   TokRightParen            -> ")"
   TokLeftBrace             -> "{"
@@ -52,21 +60,27 @@
   TokRawString raw         -> "\"\"\"" <> raw <> "\"\"\""
   TokInt raw _             -> raw
   TokNumber raw _          -> raw
-  TokLayoutStart           -> "{"
-  TokLayoutSep             -> ";"
-  TokLayoutEnd             -> "}"
-  TokEof                   -> "<eof>"
+  TokLayoutStart           -> if showLayout then "{" else ""
+  TokLayoutSep             -> if showLayout then ";" else ""
+  TokLayoutEnd             -> if showLayout then "}" else ""
+  TokEof                   -> if showLayout then "<eof>" else ""
 
 printQual :: [Text] -> Text
 printQual = Text.concat . map (<> ".")
 
 printTokens :: [SourceToken] -> Text
-printTokens toks = Text.concat (map pp toks)
+printTokens = printTokens' True
+
+printTokens' :: Bool -> [SourceToken] -> Text
+printTokens' showLayout toks = Text.concat (map pp toks)
   where
   pp (SourceToken (TokenAnn _ leading trailing) tok) =
     Text.concat (map printLeadingComment leading)
-      <> printToken tok
+      <> printToken' showLayout tok
       <> Text.concat (map printTrailingComment trailing)
+
+printModule :: Module a -> Text
+printModule = printTokens' False . DList.toList . flattenModule
 
 printLeadingComment :: Comment LineFeed -> Text
 printLeadingComment = \case
diff --git a/src/Language/PureScript/CST/Traversals.hs b/src/Language/PureScript/CST/Traversals.hs
--- a/src/Language/PureScript/CST/Traversals.hs
+++ b/src/Language/PureScript/CST/Traversals.hs
@@ -2,7 +2,7 @@
 
 import Prelude
 
-import Language.PureScript.CST.Types
+import Language.PureScript.CST.Types (Separated(..))
 
 everythingOnSeparated :: (r -> r -> r) -> (a -> r) -> Separated a -> r
 everythingOnSeparated op k (Separated hd tl) = go hd tl
diff --git a/src/Language/PureScript/CST/Traversals/Type.hs b/src/Language/PureScript/CST/Traversals/Type.hs
--- a/src/Language/PureScript/CST/Traversals/Type.hs
+++ b/src/Language/PureScript/CST/Traversals/Type.hs
@@ -2,8 +2,8 @@
 
 import Prelude
 
-import Language.PureScript.CST.Types
-import Language.PureScript.CST.Traversals
+import Language.PureScript.CST.Types (Constraint(..), Labeled(..), Row(..), Type(..), Wrapped(..))
+import Language.PureScript.CST.Traversals (everythingOnSeparated)
 
 everythingOnTypes :: (r -> r -> r) -> (Type a -> r) -> Type a -> r
 everythingOnTypes op k = goTy
@@ -14,10 +14,11 @@
     TypeWildcard _ _ -> k ty
     TypeHole _ _ -> k ty
     TypeString _ _ _ -> k ty
+    TypeInt _ _ _ _ -> k ty
     TypeRow _ (Wrapped _ row _) -> goRow ty row
     TypeRecord _ (Wrapped _ row _) -> goRow ty row
     TypeForall _ _ _ _ ty2 -> k ty `op` goTy ty2
-    TypeKinded _ ty2 _ _ -> k ty `op` goTy ty2
+    TypeKinded _ ty2 _ ty3 -> k ty `op` (goTy ty2 `op` goTy ty3)
     TypeApp _ ty2 ty3 -> k ty `op` (goTy ty2 `op` goTy ty3)
     TypeOp _ ty2 _ ty3 -> k ty `op` (goTy ty2 `op` goTy ty3)
     TypeOpName _ _ -> k ty
@@ -27,6 +28,7 @@
       | null ty2 -> k ty `op` goTy ty3
       | otherwise -> k ty `op` (foldr1 op (k <$> ty2) `op` goTy ty3)
     TypeParens _ (Wrapped _ ty2 _) -> k ty `op` goTy ty2
+    TypeUnaryRow _ _ ty2 -> k ty `op` goTy ty2
 
   goRow ty = \case
     Row Nothing Nothing -> k ty
diff --git a/src/Language/PureScript/CST/Types.hs b/src/Language/PureScript/CST/Types.hs
--- a/src/Language/PureScript/CST/Types.hs
+++ b/src/Language/PureScript/CST/Types.hs
@@ -1,3 +1,4 @@
+{-# LANGUAGE DeriveAnyClass #-}
 -- | This module contains data types for the entire PureScript surface language. Every
 -- token is represented in the tree, and every token is annotated with
 -- whitespace and comments (both leading and trailing). This means one can write
@@ -9,40 +10,42 @@
 
 import Prelude
 
+import Control.DeepSeq (NFData)
 import Data.List.NonEmpty (NonEmpty)
 import Data.Text (Text)
 import Data.Void (Void)
 import GHC.Generics (Generic)
-import qualified Language.PureScript.Names as N
+import Language.PureScript.Names qualified as N
+import Language.PureScript.Roles qualified as R
 import Language.PureScript.PSString (PSString)
 
 data SourcePos = SourcePos
   { srcLine :: {-# UNPACK #-} !Int
   , srcColumn :: {-# UNPACK #-} !Int
-  } deriving (Show, Eq, Ord, Generic)
+  } deriving (Show, Eq, Ord, Generic, NFData)
 
 data SourceRange = SourceRange
   { srcStart :: !SourcePos
   , srcEnd :: !SourcePos
-  } deriving (Show, Eq, Ord, Generic)
+  } deriving (Show, Eq, Ord, Generic, NFData)
 
 data Comment l
   = Comment !Text
   | Space {-# UNPACK #-} !Int
   | Line !l
-  deriving (Show, Eq, Ord, Generic, Functor)
+  deriving (Show, Eq, Ord, Generic, Functor, NFData)
 
 data LineFeed = LF | CRLF
-  deriving (Show, Eq, Ord, Generic)
+  deriving (Show, Eq, Ord, Generic, NFData)
 
 data TokenAnn = TokenAnn
   { tokRange :: !SourceRange
   , tokLeadingComments :: ![Comment LineFeed]
   , tokTrailingComments :: ![Comment Void]
-  } deriving (Show, Eq, Ord, Generic)
+  } deriving (Show, Eq, Ord, Generic, NFData)
 
 data SourceStyle = ASCII | Unicode
-  deriving (Show, Eq, Ord, Generic)
+  deriving (Show, Eq, Ord, Generic, NFData)
 
 data Token
   = TokLeftParen
@@ -78,12 +81,12 @@
   | TokLayoutSep
   | TokLayoutEnd
   | TokEof
-  deriving (Show, Eq, Ord, Generic)
+  deriving (Show, Eq, Ord, Generic, NFData)
 
 data SourceToken = SourceToken
   { tokAnn :: !TokenAnn
   , tokValue :: !Token
-  } deriving (Show, Eq, Ord, Generic)
+  } deriving (Show, Eq, Ord, Generic, NFData)
 
 data Ident = Ident
   { getIdent :: Text
@@ -130,23 +133,17 @@
   | Many (DelimitedNonEmpty a)
   deriving (Show, Eq, Ord, Functor, Foldable, Traversable, Generic)
 
-data Kind a
-  = KindName a (QualifiedName (N.ProperName 'N.KindName))
-  | KindArr a (Kind a) SourceToken (Kind a)
-  | KindRow a SourceToken (Kind a)
-  | KindParens a (Wrapped (Kind a))
-  deriving (Show, Eq, Ord, Functor, Foldable, Traversable, Generic)
-
 data Type a
   = TypeVar a (Name Ident)
   | TypeConstructor a (QualifiedName (N.ProperName 'N.TypeName))
   | TypeWildcard a SourceToken
   | TypeHole a (Name Ident)
   | TypeString a SourceToken PSString
+  | TypeInt a (Maybe SourceToken) SourceToken Integer
   | TypeRow a (Wrapped (Row a))
   | TypeRecord a (Wrapped (Row a))
   | TypeForall a SourceToken (NonEmpty (TypeVarBinding a)) SourceToken (Type a)
-  | TypeKinded a (Type a) SourceToken (Kind a)
+  | TypeKinded a (Type a) SourceToken (Type a)
   | TypeApp a (Type a) (Type a)
   | TypeOp a (Type a) (QualifiedName (N.OpName 'N.TypeOpName)) (Type a)
   | TypeOpName a (QualifiedName (N.OpName 'N.TypeOpName))
@@ -154,11 +151,12 @@
   | TypeArrName a SourceToken
   | TypeConstrained a (Constraint a) SourceToken (Type a)
   | TypeParens a (Wrapped (Type a))
+  | TypeUnaryRow a SourceToken (Type a)
   deriving (Show, Eq, Ord, Functor, Foldable, Traversable, Generic)
 
 data TypeVarBinding a
-  = TypeVarKinded (Wrapped (Labeled (Name Ident) (Kind a)))
-  | TypeVarName (Name Ident)
+  = TypeVarKinded (Wrapped (Labeled (Maybe SourceToken, Name Ident) (Type a)))
+  | TypeVarName (Maybe SourceToken, Name Ident)
   deriving (Show, Eq, Ord, Functor, Foldable, Traversable, Generic)
 
 data Constraint a
@@ -188,7 +186,6 @@
   | ExportType a (Name (N.ProperName 'N.TypeName)) (Maybe (DataMembers a))
   | ExportTypeOp a SourceToken (Name (N.OpName 'N.TypeOpName))
   | ExportClass a SourceToken (Name (N.ProperName 'N.ClassName))
-  | ExportKind a SourceToken (Name (N.ProperName 'N.KindName))
   | ExportModule a SourceToken (Name N.ModuleName)
   deriving (Show, Eq, Ord, Functor, Foldable, Traversable, Generic)
 
@@ -204,10 +201,12 @@
   | DeclClass a (ClassHead a) (Maybe (SourceToken, NonEmpty (Labeled (Name Ident) (Type a))))
   | DeclInstanceChain a (Separated (Instance a))
   | DeclDerive a SourceToken (Maybe SourceToken) (InstanceHead a)
+  | DeclKindSignature a SourceToken (Labeled (Name (N.ProperName 'N.TypeName)) (Type a))
   | DeclSignature a (Labeled (Name Ident) (Type a))
   | DeclValue a (ValueBindingFields a)
   | DeclFixity a FixityFields
   | DeclForeign a SourceToken SourceToken (Foreign a)
+  | DeclRole a SourceToken SourceToken (Name (N.ProperName 'N.TypeName)) (NonEmpty Role)
   deriving (Show, Eq, Ord, Functor, Foldable, Traversable, Generic)
 
 data Instance a = Instance
@@ -234,7 +233,6 @@
   | ImportType a (Name (N.ProperName 'N.TypeName)) (Maybe (DataMembers a))
   | ImportTypeOp a SourceToken (Name (N.OpName 'N.TypeOpName))
   | ImportClass a SourceToken (Name (N.ProperName 'N.ClassName))
-  | ImportKind a SourceToken (Name (N.ProperName 'N.KindName))
   deriving (Show, Eq, Ord, Functor, Foldable, Traversable, Generic)
 
 data DataHead a = DataHead
@@ -264,8 +262,7 @@
 
 data InstanceHead a = InstanceHead
   { instKeyword :: SourceToken
-  , instName :: Name Ident
-  , instSep :: SourceToken
+  , instNameSep :: Maybe (Name Ident, SourceToken)
   , instConstraints :: Maybe (OneOrDelimited (Constraint a), SourceToken)
   , instClass :: QualifiedName (N.ProperName 'N.ClassName)
   , instTypes :: [Type a]
@@ -313,10 +310,15 @@
 
 data Foreign a
   = ForeignValue (Labeled (Name Ident) (Type a))
-  | ForeignData SourceToken (Labeled (Name (N.ProperName 'N.TypeName)) (Kind a))
-  | ForeignKind SourceToken (Name (N.ProperName 'N.KindName))
+  | ForeignData SourceToken (Labeled (Name (N.ProperName 'N.TypeName)) (Type a))
+  | ForeignKind SourceToken (Name (N.ProperName 'N.TypeName))
   deriving (Show, Eq, Ord, Functor, Foldable, Traversable, Generic)
 
+data Role = Role
+  { roleTok :: SourceToken
+  , roleValue :: R.Role
+  } deriving (Show, Eq, Ord, Generic)
+
 data Expr a
   = ExprHole a (Name Ident)
   | ExprSection a SourceToken
@@ -337,6 +339,7 @@
   | ExprRecordAccessor a (RecordAccessor a)
   | ExprRecordUpdate a (Expr a) (DelimitedNonEmpty (RecordUpdate a))
   | ExprApp a (Expr a) (Expr a)
+  | ExprVisibleTypeApp a (Expr a) SourceToken (Type a)
   | ExprLambda a (Lambda a)
   | ExprIf a (IfThenElse a)
   | ExprCase a (CaseOf a)
diff --git a/src/Language/PureScript/CST/Utils.hs b/src/Language/PureScript/CST/Utils.hs
--- a/src/Language/PureScript/CST/Utils.hs
+++ b/src/Language/PureScript/CST/Utils.hs
@@ -1,25 +1,75 @@
-{-# LANGUAGE MonoLocalBinds #-}
 module Language.PureScript.CST.Utils where
 
 import Prelude
 
-import Control.Monad (when)
+import Control.Monad (unless)
 import Data.Coerce (coerce)
 import Data.Foldable (for_)
 import Data.Functor (($>))
-import qualified Data.List.NonEmpty as NE
+import Data.List.NonEmpty qualified as NE
 import Data.Set (Set)
-import qualified Data.Set as Set
+import Data.Set qualified as Set
 import Data.Text (Text)
-import qualified Data.Text as Text
-import Language.PureScript.CST.Errors
-import Language.PureScript.CST.Monad
-import Language.PureScript.CST.Positions
-import Language.PureScript.CST.Traversals.Type
+import Data.Text qualified as Text
+import Language.PureScript.CST.Errors (ParserErrorType(..))
+import Language.PureScript.CST.Monad (Parser, addFailure, parseFail, pushBack)
+import Language.PureScript.CST.Positions (TokenRange, binderRange, importDeclRange, recordUpdateRange, typeRange)
+import Language.PureScript.CST.Traversals.Type (everythingOnTypes)
 import Language.PureScript.CST.Types
-import qualified Language.PureScript.Names as N
+import Language.PureScript.Names qualified as N
 import Language.PureScript.PSString (PSString, mkString)
 
+-- |
+-- A newtype for a qualified proper name whose ProperNameType has not yet been determined.
+-- This is a workaround for Happy's limited support for polymorphism; it is used
+-- inside the parser to allow us to write just one parser for qualified proper names
+-- which can be used for all of the different ProperNameTypes
+-- (via a call to getQualifiedProperName).
+newtype QualifiedProperName =
+  QualifiedProperName { getQualifiedProperName :: forall a. QualifiedName (N.ProperName a) }
+
+qualifiedProperName :: QualifiedName (N.ProperName a) -> QualifiedProperName
+qualifiedProperName n = QualifiedProperName (N.coerceProperName <$> n)
+
+-- |
+-- A newtype for a proper name whose ProperNameType has not yet been determined.
+-- This is a workaround for Happy's limited support for polymorphism; it is used
+-- inside the parser to allow us to write just one parser for proper names
+-- which can be used for all of the different ProperNameTypes
+-- (via a call to getProperName).
+newtype ProperName =
+  ProperName { _getProperName :: forall a. Name (N.ProperName a) }
+
+properName :: Name (N.ProperName a) -> ProperName
+properName n = ProperName (N.coerceProperName <$> n)
+
+getProperName :: forall a. ProperName -> Name (N.ProperName a)
+getProperName pn = _getProperName pn -- eta expansion needed here due to simplified subsumption
+
+-- |
+-- A newtype for a qualified operator name whose OpNameType has not yet been determined.
+-- This is a workaround for Happy's limited support for polymorphism; it is used
+-- inside the parser to allow us to write just one parser for qualified operator names
+-- which can be used for all of the different OpNameTypes
+-- (via a call to getQualifiedOpName).
+newtype QualifiedOpName =
+  QualifiedOpName { getQualifiedOpName :: forall a. QualifiedName (N.OpName a) }
+
+qualifiedOpName :: QualifiedName (N.OpName a) -> QualifiedOpName
+qualifiedOpName n = QualifiedOpName (N.coerceOpName <$> n)
+
+-- |
+-- A newtype for a operator name whose OpNameType has not yet been determined.
+-- This is a workaround for Happy's limited support for polymorphism; it is used
+-- inside the parser to allow us to write just one parser for operator names
+-- which can be used for all of the different OpNameTypes
+-- (via a call to getOpName).
+newtype OpName =
+  OpName { getOpName :: forall a. Name (N.OpName a) }
+
+opName :: Name (N.OpName a) -> OpName
+opName n = OpName (N.coerceOpName <$> n)
+
 placeholder :: SourceToken
 placeholder = SourceToken
   { tokAnn = TokenAnn (SourceRange (SourcePos 0 0) (SourcePos 0 0)) [] []
@@ -38,18 +88,9 @@
 unexpectedExpr :: Monoid a => [SourceToken] -> Expr a
 unexpectedExpr toks = ExprIdent mempty (unexpectedQual (head toks))
 
-unexpectedDecl :: Monoid a => [SourceToken] -> Declaration a
-unexpectedDecl toks = DeclValue mempty (ValueBindingFields (unexpectedName (head toks)) [] (error "<unexpected"))
-
 unexpectedBinder :: Monoid a => [SourceToken] -> Binder a
 unexpectedBinder toks = BinderVar mempty (unexpectedName (head toks))
 
-unexpectedLetBinding :: Monoid a => [SourceToken] -> LetBinding a
-unexpectedLetBinding toks = LetBindingName mempty (ValueBindingFields (unexpectedName (head toks)) [] (error "<unexpected>"))
-
-unexpectedInstBinding :: Monoid a => [SourceToken] -> InstanceBinding a
-unexpectedInstBinding toks = InstanceBindingName mempty (ValueBindingFields (unexpectedName (head toks)) [] (error "<unexpected>"))
-
 unexpectedRecordUpdate :: Monoid a => [SourceToken] -> RecordUpdate a
 unexpectedRecordUpdate toks = RecordUpdateLeaf (unexpectedLabel (head toks)) (head toks) (unexpectedExpr toks)
 
@@ -68,28 +109,25 @@
 separated :: [(SourceToken, a)] -> Separated a
 separated = go []
   where
-  go accum ((_, a) : []) = Separated a accum
+  go accum [(_, a)] = Separated a accum
   go accum (x : xs) = go (x : accum) xs
   go _ [] = internalError "Separated should not be empty"
 
-consSeparated :: a -> SourceToken -> Separated a -> Separated a
-consSeparated x sep (Separated {..}) = Separated x ((sep, sepHead) : sepTail)
-
 internalError :: String -> a
 internalError = error . ("Internal parser error: " <>)
 
 toModuleName :: SourceToken -> [Text] -> Parser (Maybe N.ModuleName)
 toModuleName _ [] = pure Nothing
 toModuleName tok ns = do
-  when (not (all isValidModuleNamespace ns)) $ addFailure [tok] ErrModuleName
-  pure . Just . N.ModuleName $ N.ProperName <$> ns
+  unless (all isValidModuleNamespace ns) $ addFailure [tok] ErrModuleName
+  pure . Just . N.ModuleName $ Text.intercalate "." ns
 
 upperToModuleName :: SourceToken -> Parser (Name N.ModuleName)
 upperToModuleName tok = case tokValue tok of
   TokUpperName q a -> do
     let ns = q <> [a]
-    when (not (all isValidModuleNamespace ns)) $ addFailure [tok] ErrModuleName
-    pure . Name tok . N.ModuleName $ N.ProperName <$> ns
+    unless (all isValidModuleNamespace ns) $ addFailure [tok] ErrModuleName
+    pure . Name tok . N.ModuleName $ Text.intercalate "." ns
   _ -> internalError $ "Invalid upper name: " <> show tok
 
 toQualifiedName :: (Text -> a) -> SourceToken -> Parser (QualifiedName a)
@@ -107,6 +145,8 @@
   TokLowerName [] a
     | not (Set.member a reservedNames) -> pure $ Name tok (k a)
     | otherwise -> addFailure [tok] ErrKeywordVar $> Name tok (k "<unexpected>")
+  TokString _ _ -> parseFail tok ErrQuotedPun
+  TokRawString _ -> parseFail tok ErrQuotedPun
   TokUpperName [] a  -> pure $ Name tok (k a)
   TokSymbolName [] a -> pure $ Name tok (k a)
   TokOperator [] a   -> pure $ Name tok (k a)
@@ -121,9 +161,6 @@
   TokForall ASCII   -> Label tok $ mkString "forall"
   _                 -> internalError $ "Invalid label: " <> show tok
 
-labelToIdent :: Label -> Parser (Name Ident)
-labelToIdent (Label tok _) = toName Ident tok
-
 toString :: SourceToken -> (SourceToken, PSString)
 toString tok = case tokValue tok of
   TokString _ a  -> (tok, a)
@@ -173,12 +210,17 @@
       addFailure [tok1, tok2] ErrTypeInConstraint
       pure $ Constraint mempty (QualifiedName tok1 Nothing (N.ProperName "<unexpected")) []
 
+isConstrained :: Type a -> Bool
+isConstrained = everythingOnTypes (||) $ \case
+  TypeConstrained{} -> True
+  _ -> False
+
 toBinderConstructor :: Monoid a => NE.NonEmpty (Binder a) -> Parser (Binder a)
 toBinderConstructor = \case
   BinderConstructor a name [] NE.:| bs ->
     pure $ BinderConstructor a name bs
   a NE.:| [] -> pure a
-  a NE.:| _ -> unexpectedToks binderRange (unexpectedBinder) ErrExprInBinder a
+  a NE.:| _ -> unexpectedToks binderRange unexpectedBinder ErrExprInBinder a
 
 toRecordFields
   :: Monoid a
@@ -206,8 +248,8 @@
 checkFundeps (ClassHead _ _ _ _ Nothing) = pure ()
 checkFundeps (ClassHead _ _ _ vars (Just (_, fundeps))) = do
   let
-    k (TypeVarKinded (Wrapped _ (Labeled a _ _) _)) = getIdent $ nameValue a
-    k (TypeVarName a) = getIdent $ nameValue a
+    k (TypeVarKinded (Wrapped _ (Labeled (_, a) _ _) _)) = getIdent $ nameValue a
+    k (TypeVarName (_, a)) = getIdent $ nameValue a
     names = k <$> vars
     check a
       | getIdent (nameValue a) `elem` names = pure ()
diff --git a/src/Language/PureScript/CodeGen/JS.hs b/src/Language/PureScript/CodeGen/JS.hs
--- a/src/Language/PureScript/CodeGen/JS.hs
+++ b/src/Language/PureScript/CodeGen/JS.hs
@@ -6,39 +6,45 @@
   , moduleToJs
   ) where
 
-import Prelude.Compat
+import Prelude
 import Protolude (ordNub)
 
-import Control.Arrow ((&&&))
+import Control.Applicative (liftA2)
 import Control.Monad (forM, replicateM, void)
 import Control.Monad.Except (MonadError, throwError)
 import Control.Monad.Reader (MonadReader, asks)
-import Control.Monad.Supply.Class
+import Control.Monad.Supply.Class (MonadSupply, freshName)
+import Control.Monad.Writer (MonadWriter, runWriterT, writer)
 
+import Data.Bifunctor (first)
 import Data.List ((\\), intersect)
-import qualified Data.Foldable as F
-import qualified Data.Map as M
-import qualified Data.Set as S
-import Data.Maybe (fromMaybe, isNothing)
+import Data.List.NonEmpty qualified as NEL (nonEmpty)
+import Data.Foldable qualified as F
+import Data.Map qualified as M
+import Data.Set qualified as S
+import Data.Maybe (fromMaybe, mapMaybe, maybeToList)
+import Data.Monoid (Any(..))
 import Data.String (fromString)
 import Data.Text (Text)
-import qualified Data.Text as T
+import Data.Text qualified as T
 
-import Language.PureScript.AST.SourcePos
+import Language.PureScript.AST.SourcePos (SourceSpan, displayStartEndPos)
 import Language.PureScript.CodeGen.JS.Common as Common
-import Language.PureScript.CoreImp.AST (AST, everywhereTopDownM, withSourceSpan)
-import qualified Language.PureScript.CoreImp.AST as AST
-import Language.PureScript.CoreImp.Optimizer
-import Language.PureScript.CoreFn
-import Language.PureScript.Crash
+import Language.PureScript.CoreImp.AST (AST, InitializerEffects(..), everywhere, everywhereTopDownM, withSourceSpan)
+import Language.PureScript.CoreImp.AST qualified as AST
+import Language.PureScript.CoreImp.Module qualified as AST
+import Language.PureScript.CoreImp.Optimizer (optimize)
+import Language.PureScript.CoreFn (Ann, Bind(..), Binder(..), CaseAlternative(..), ConstructorType(..), Expr(..), Guard, Literal(..), Meta(..), Module(..), extractAnn, extractBinderAnn, modifyAnn, removeComments)
+import Language.PureScript.CoreFn.Laziness (applyLazinessTransform)
+import Language.PureScript.Crash (internalError)
 import Language.PureScript.Errors (ErrorMessageHint(..), SimpleErrorMessage(..),
                                    MultipleErrors(..), rethrow, errorMessage,
                                    errorMessage', rethrowWithPosition, addHint)
-import Language.PureScript.Names
-import Language.PureScript.Options
+import Language.PureScript.Names (Ident(..), ModuleName, ProperName(..), Qualified(..), QualifiedBy(..), runIdent, runModuleName, showIdent, showQualified)
+import Language.PureScript.Options (CodegenTarget(..), Options(..))
 import Language.PureScript.PSString (PSString, mkString)
 import Language.PureScript.Traversals (sndM)
-import qualified Language.PureScript.Constants as C
+import Language.PureScript.Constants.Prim qualified as C
 
 import System.FilePath.Posix ((</>))
 
@@ -46,120 +52,221 @@
 -- module.
 moduleToJs
   :: forall m
-   . (Monad m, MonadReader Options m, MonadSupply m, MonadError MultipleErrors m)
+   . (MonadReader Options m, MonadSupply m, MonadError MultipleErrors m)
   => Module Ann
-  -> Maybe AST
-  -> m [AST]
-moduleToJs (Module _ coms mn _ imps exps foreigns decls) foreign_ =
+  -> Maybe PSString
+  -> m AST.Module
+moduleToJs (Module _ coms mn _ imps exps reExps foreigns decls) foreignInclude =
   rethrow (addHint (ErrorInModule mn)) $ do
     let usedNames = concatMap getNames decls
-    let mnLookup = renameImports usedNames imps
-    let decls' = renameModules mnLookup decls
-    jsDecls <- mapM bindToJs decls'
-    optimized <- traverse (traverse optimize) jsDecls
-    let mnReverseLookup = M.fromList $ map (\(origName, (_, safeName)) -> (moduleNameToJs safeName, origName)) $ M.toList mnLookup
-    let usedModuleNames = foldMap (foldMap (findModules mnReverseLookup)) optimized
-    jsImports <- traverse (importToJs mnLookup)
-      . filter (flip S.member usedModuleNames)
-      . (\\ (mn : C.primModules)) $ ordNub $ map snd imps
+    let imps' = ordNub $ map snd imps
+    let mnLookup = renameImports usedNames imps'
+    (jsDecls, Any needRuntimeLazy) <- runWriterT $ mapM (moduleBindToJs mn) decls
+    optimized <- fmap (fmap (fmap annotatePure)) . optimize (map identToJs exps) $ if needRuntimeLazy then [runtimeLazy] : jsDecls else jsDecls
     F.traverse_ (F.traverse_ checkIntegers) optimized
     comments <- not <$> asks optionsNoComments
-    let strict = AST.StringLiteral Nothing "use strict"
-    let header = if comments && not (null coms) then AST.Comment Nothing coms strict else strict
-    let foreign' = [AST.VariableIntroduction Nothing "$foreign" foreign_ | not $ null foreigns || isNothing foreign_]
-    let moduleBody = header : foreign' ++ jsImports ++ concat optimized
+    let header = if comments then coms else []
+    let foreign' = maybe [] (pure . AST.Import FFINamespace) $ if null foreigns then Nothing else foreignInclude
+    let moduleBody = concat optimized
+    let (S.union (M.keysSet reExps) -> usedModuleNames, renamedModuleBody) = traverse (replaceModuleAccessors mnLookup) moduleBody
+    let jsImports
+          = map (importToJs mnLookup)
+          . filter (flip S.member usedModuleNames)
+          $ (\\ (mn : C.primModules)) imps'
     let foreignExps = exps `intersect` foreigns
     let standardExps = exps \\ foreignExps
-    let exps' = AST.ObjectLiteral Nothing $ map (mkString . runIdent &&& AST.Var Nothing . identToJs) standardExps
-                               ++ map (mkString . runIdent &&& foreignIdent) foreignExps
-    return $ moduleBody ++ [AST.Assignment Nothing (accessorString "exports" (AST.Var Nothing "module")) exps']
+    let reExps' = M.toList (M.withoutKeys reExps (S.fromList C.primModules))
+    let jsExports
+          =  (maybeToList . exportsToJs foreignInclude $ foreignExps)
+          ++ (maybeToList . exportsToJs Nothing $ standardExps)
+          ++  mapMaybe reExportsToJs reExps'
+    return $ AST.Module header (foreign' ++ jsImports) renamedModuleBody jsExports
 
   where
+  -- Adds purity annotations to top-level values for bundlers.
+  -- The semantics here derive from treating top-level module evaluation as pure, which lets
+  -- us remove any unreferenced top-level declarations. To achieve this, we wrap any non-trivial
+  -- top-level values in an IIFE marked with a pure annotation.
+  annotatePure :: AST -> AST
+  annotatePure = annotateOrWrap
+    where
+    annotateOrWrap = liftA2 fromMaybe pureIife maybePure
 
-  -- | Extracts all declaration names from a binding group.
+    -- If the JS is potentially effectful (in the eyes of a bundler that
+    -- doesn't know about PureScript), return Nothing. Otherwise, return Just
+    -- the JS with any needed pure annotations added, and, in the case of a
+    -- variable declaration, an IIFE to be annotated.
+    maybePure :: AST -> Maybe AST
+    maybePure = maybePureGen False
+
+    -- Like maybePure, but doesn't add a pure annotation to App. This exists
+    -- to prevent from doubling up on annotation comments on curried
+    -- applications; from experimentation, it turns out that a comment on the
+    -- outermost App is sufficient for the entire curried chain to be
+    -- considered effect-free.
+    maybePure' :: AST -> Maybe AST
+    maybePure' = maybePureGen True
+
+    maybePureGen alreadyAnnotated = \case
+      AST.VariableIntroduction ss name j -> Just (AST.VariableIntroduction ss name (fmap annotateOrWrap <$> j))
+      AST.App ss f args -> (if alreadyAnnotated then AST.App else pureApp) ss <$> maybePure' f <*> traverse maybePure args
+      AST.ArrayLiteral ss jss -> AST.ArrayLiteral ss <$> traverse maybePure jss
+      AST.ObjectLiteral ss props -> AST.ObjectLiteral ss <$> traverse (traverse maybePure) props
+      AST.Comment c js -> AST.Comment c <$> maybePure js
+
+      js@(AST.Indexer _ _ (AST.Var _ FFINamespace)) -> Just js
+
+      js@AST.NumericLiteral{} -> Just js
+      js@AST.StringLiteral{}  -> Just js
+      js@AST.BooleanLiteral{} -> Just js
+      js@AST.Function{}       -> Just js
+      js@AST.Var{}            -> Just js
+      js@AST.ModuleAccessor{} -> Just js
+
+      _ -> Nothing
+
+    pureIife :: AST -> AST
+    pureIife val = pureApp Nothing (AST.Function Nothing Nothing [] (AST.Block Nothing [AST.Return Nothing val])) []
+
+    pureApp :: Maybe SourceSpan -> AST -> [AST] -> AST
+    pureApp ss f = AST.Comment AST.PureAnnotation . AST.App ss f
+
+  -- Extracts all declaration names from a binding group.
   getNames :: Bind Ann -> [Ident]
   getNames (NonRec _ ident _) = [ident]
   getNames (Rec vals) = map (snd . fst) vals
 
-  -- | Creates alternative names for each module to ensure they don't collide
+  -- Creates alternative names for each module to ensure they don't collide
   -- with declaration names.
-  renameImports :: [Ident] -> [(Ann, ModuleName)] -> M.Map ModuleName (Ann, ModuleName)
+  renameImports :: [Ident] -> [ModuleName] -> M.Map ModuleName Text
   renameImports = go M.empty
     where
-    go :: M.Map ModuleName (Ann, ModuleName) -> [Ident] -> [(Ann, ModuleName)] -> M.Map ModuleName (Ann, ModuleName)
-    go acc used ((ann, mn') : mns') =
-      let mni = Ident $ runModuleName mn'
-      in if mn' /= mn && mni `elem` used
-         then let newName = freshModuleName 1 mn' used
-              in go (M.insert mn' (ann, newName) acc) (Ident (runModuleName newName) : used) mns'
-         else go (M.insert mn' (ann, mn') acc) used mns'
+    go :: M.Map ModuleName Text -> [Ident] -> [ModuleName] -> M.Map ModuleName Text
+    go acc used (mn' : mns') =
+      let mnj = moduleNameToJs mn'
+      in if mn' /= mn && Ident mnj `elem` used
+         then let newName = freshModuleName 1 mnj used
+              in go (M.insert mn' newName acc) (Ident newName : used) mns'
+         else go (M.insert mn' mnj acc) used mns'
     go acc _ [] = acc
 
-    freshModuleName :: Integer -> ModuleName -> [Ident] -> ModuleName
-    freshModuleName i mn'@(ModuleName pns) used =
-      let newName = ModuleName $ init pns ++ [ProperName $ runProperName (last pns) <> "_" <> T.pack (show i)]
-      in if Ident (runModuleName newName) `elem` used
+    freshModuleName :: Integer -> Text -> [Ident] -> Text
+    freshModuleName i mn' used =
+      let newName = mn' <> "_" <> T.pack (show i)
+      in if Ident newName `elem` used
          then freshModuleName (i + 1) mn' used
          else newName
 
-  -- | Generates JavaScript code for a module import, binding the required module
+  -- Generates JavaScript code for a module import, binding the required module
   -- to the alternative
-  importToJs :: M.Map ModuleName (Ann, ModuleName) -> ModuleName -> m AST
-  importToJs mnLookup mn' = do
-    let ((ss, _, _, _), mnSafe) = fromMaybe (internalError "Missing value in mnLookup") $ M.lookup mn' mnLookup
-    let moduleBody = AST.App Nothing (AST.Var Nothing "require")
-          [AST.StringLiteral Nothing (fromString (".." </> T.unpack (runModuleName mn') </> "index.js"))]
-    withPos ss $ AST.VariableIntroduction Nothing (moduleNameToJs mnSafe) (Just moduleBody)
+  importToJs :: M.Map ModuleName Text -> ModuleName -> AST.Import
+  importToJs mnLookup mn' =
+    let mnSafe = fromMaybe (internalError "Missing value in mnLookup") $ M.lookup mn' mnLookup
+    in AST.Import mnSafe (moduleImportPath mn')
 
-  -- | Replaces the `ModuleName`s in the AST so that the generated code refers to
-  -- the collision-avoiding renamed module imports.
-  renameModules :: M.Map ModuleName (Ann, ModuleName) -> [Bind Ann] -> [Bind Ann]
-  renameModules mnLookup binds =
-    let (f, _, _) = everywhereOnValues id goExpr goBinder
-    in map f binds
-    where
-    goExpr :: Expr a -> Expr a
-    goExpr (Var ann q) = Var ann (renameQual q)
-    goExpr e = e
-    goBinder :: Binder a -> Binder a
-    goBinder (ConstructorBinder ann q1 q2 bs) = ConstructorBinder ann (renameQual q1) (renameQual q2) bs
-    goBinder b = b
-    renameQual :: Qualified a -> Qualified a
-    renameQual (Qualified (Just mn') a) =
-      let (_,mnSafe) = fromMaybe (internalError "Missing value in mnLookup") $ M.lookup mn' mnLookup
-      in Qualified (Just mnSafe) a
-    renameQual q = q
+  -- Generates JavaScript code for exporting at least one identifier,
+  -- eventually from another module.
+  exportsToJs :: Maybe PSString -> [Ident] -> Maybe AST.Export
+  exportsToJs from = fmap (flip AST.Export from) . NEL.nonEmpty . fmap runIdent
 
-  -- |
-  -- Find the set of ModuleNames referenced by an AST.
-  --
-  findModules :: M.Map Text ModuleName -> AST -> S.Set ModuleName
-  findModules mnReverseLookup = AST.everything mappend go
+  -- Generates JavaScript code for re-exporting at least one identifier from
+  -- from another module.
+  reExportsToJs :: (ModuleName, [Ident]) -> Maybe AST.Export
+  reExportsToJs = uncurry exportsToJs . first (Just . moduleImportPath)
+
+  moduleImportPath :: ModuleName -> PSString
+  moduleImportPath mn' = fromString (".." </> T.unpack (runModuleName mn') </> "index.js")
+
+  -- Replaces the `ModuleAccessor`s in the AST with `Indexer`s, ensuring that
+  -- the generated code refers to the collision-avoiding renamed module
+  -- imports. Also returns set of used module names.
+  replaceModuleAccessors :: M.Map ModuleName Text -> AST -> (S.Set ModuleName, AST)
+  replaceModuleAccessors mnLookup = everywhereTopDownM $ \case
+    AST.ModuleAccessor _ mn' name ->
+      let mnSafe = fromMaybe (internalError "Missing value in mnLookup") $ M.lookup mn' mnLookup
+      in (S.singleton mn', accessorString name $ AST.Var Nothing mnSafe)
+    other -> pure other
+
+  -- Check that all integers fall within the valid int range for JavaScript.
+  checkIntegers :: AST -> m ()
+  checkIntegers = void . everywhereTopDownM go
     where
-    go (AST.Var _ name) = foldMap S.singleton $ M.lookup name mnReverseLookup
-    go _ = mempty
+    go :: AST -> m AST
+    go (AST.Unary _ AST.Negate (AST.NumericLiteral ss (Left i))) =
+      -- Move the negation inside the literal; since this is a top-down
+      -- traversal doing this replacement will stop the next case from raising
+      -- the error when attempting to use -2147483648, as if left unrewritten
+      -- the value is `Unary Negate (NumericLiteral (Left 2147483648))`, and
+      -- 2147483648 is larger than the maximum allowed int.
+      return $ AST.NumericLiteral ss (Left (-i))
+    go js@(AST.NumericLiteral ss (Left i)) =
+      let minInt = -2147483648
+          maxInt = 2147483647
+      in if i < minInt || i > maxInt
+         then throwError . maybe errorMessage errorMessage' ss $ IntOutOfRange i "JavaScript" minInt maxInt
+         else return js
+    go other = return other
 
-  -- |
+  runtimeLazy :: AST
+  runtimeLazy =
+    AST.VariableIntroduction Nothing "$runtime_lazy" . Just . (UnknownEffects, ) . AST.Function Nothing Nothing ["name", "moduleName", "init"] . AST.Block Nothing $
+      [ AST.VariableIntroduction Nothing "state" . Just . (UnknownEffects, ) . AST.NumericLiteral Nothing $ Left 0
+      , AST.VariableIntroduction Nothing "val" Nothing
+      , AST.Return Nothing . AST.Function Nothing Nothing ["lineNumber"] . AST.Block Nothing $
+        [ AST.IfElse Nothing (AST.Binary Nothing AST.EqualTo (AST.Var Nothing "state") (AST.NumericLiteral Nothing (Left 2))) (AST.Return Nothing $ AST.Var Nothing "val") Nothing
+        , AST.IfElse Nothing (AST.Binary Nothing AST.EqualTo (AST.Var Nothing "state") (AST.NumericLiteral Nothing (Left 1))) (AST.Throw Nothing $ AST.Unary Nothing AST.New (AST.App Nothing (AST.Var Nothing "ReferenceError") [foldl1 (AST.Binary Nothing AST.Add)
+          [ AST.Var Nothing "name"
+          , AST.StringLiteral Nothing " was needed before it finished initializing (module "
+          , AST.Var Nothing "moduleName"
+          , AST.StringLiteral Nothing ", line "
+          , AST.Var Nothing "lineNumber"
+          , AST.StringLiteral Nothing ")"
+          ], AST.Var Nothing "moduleName", AST.Var Nothing "lineNumber"])) Nothing
+        , AST.Assignment Nothing (AST.Var Nothing "state") . AST.NumericLiteral Nothing $ Left 1
+        , AST.Assignment Nothing (AST.Var Nothing "val") $ AST.App Nothing (AST.Var Nothing "init") []
+        , AST.Assignment Nothing (AST.Var Nothing "state") . AST.NumericLiteral Nothing $ Left 2
+        , AST.Return Nothing $ AST.Var Nothing "val"
+        ]
+      ]
+
+
+moduleBindToJs
+  :: forall m
+   . (MonadReader Options m, MonadSupply m, MonadWriter Any m, MonadError MultipleErrors m)
+  => ModuleName
+  -> Bind Ann
+  -> m [AST]
+moduleBindToJs mn = bindToJs
+  where
   -- Generate code in the simplified JavaScript intermediate representation for a declaration
-  --
   bindToJs :: Bind Ann -> m [AST]
+  bindToJs (NonRec (_, _, Just IsTypeClassConstructor) _ _) = pure []
+    -- Unlike other newtype constructors, type class constructors are only
+    -- ever applied; it's not possible to use them as values. So it's safe to
+    -- erase them.
   bindToJs (NonRec ann ident val) = return <$> nonRecToJS ann ident val
-  bindToJs (Rec vals) = forM vals (uncurry . uncurry $ nonRecToJS)
+  bindToJs (Rec vals) = writer (applyLazinessTransform mn vals) >>= traverse (uncurry . uncurry $ nonRecToJS)
 
-  -- | Generate code in the simplified JavaScript intermediate representation for a single non-recursive
+  -- Generate code in the simplified JavaScript intermediate representation for a single non-recursive
   -- declaration.
   --
   -- The main purpose of this function is to handle code generation for comments.
   nonRecToJS :: Ann -> Ident -> Expr Ann -> m AST
-  nonRecToJS a i e@(extractAnn -> (_, com, _, _)) | not (null com) = do
+  nonRecToJS a i e@(extractAnn -> (_, com, _)) | not (null com) = do
     withoutComment <- asks optionsNoComments
     if withoutComment
        then nonRecToJS a i (modifyAnn removeComments e)
-       else AST.Comment Nothing com <$> nonRecToJS a i (modifyAnn removeComments e)
-  nonRecToJS (ss, _, _, _) ident val = do
+       else AST.Comment (AST.SourceComments com) <$> nonRecToJS a i (modifyAnn removeComments e)
+  nonRecToJS (ss, _, _) ident val = do
     js <- valueToJs val
-    withPos ss $ AST.VariableIntroduction Nothing (identToJs ident) (Just js)
+    withPos ss $ AST.VariableIntroduction Nothing (identToJs ident) (Just (guessEffects val, js))
 
+  guessEffects :: Expr Ann -> AST.InitializerEffects
+  guessEffects = \case
+    Var _ (Qualified (BySourcePos _) _) -> NoEffects
+    App (_, _, Just IsSyntheticApp) _ _ -> NoEffects
+    _                                   -> UnknownEffects
+
   withPos :: SourceSpan -> AST -> m AST
   withPos ss js = do
     withSM <- asks (elem JSSourceMap . optionsCodegenTargets)
@@ -167,51 +274,33 @@
       then withSourceSpan ss js
       else js
 
-  -- | Generate code in the simplified JavaScript intermediate representation for a variable based on a
+  -- Generate code in the simplified JavaScript intermediate representation for a variable based on a
   -- PureScript identifier.
   var :: Ident -> AST
   var = AST.Var Nothing . identToJs
 
-  -- | Generate code in the simplified JavaScript intermediate representation for an accessor based on
-  -- a PureScript identifier. If the name is not valid in JavaScript (symbol based, reserved name) an
-  -- indexer is returned.
-  accessor :: Ident -> AST -> AST
-  accessor (Ident prop) = accessorString $ mkString prop
-  accessor (GenIdent _ _) = internalError "GenIdent in accessor"
-  accessor UnusedIdent = internalError "UnusedIdent in accessor"
-
-  accessorString :: PSString -> AST -> AST
-  accessorString prop = AST.Indexer Nothing (AST.StringLiteral Nothing prop)
-
-  -- | Generate code in the simplified JavaScript intermediate representation for a value or expression.
+  -- Generate code in the simplified JavaScript intermediate representation for a value or expression.
   valueToJs :: Expr Ann -> m AST
   valueToJs e =
-    let (ss, _, _, _) = extractAnn e in
+    let (ss, _, _) = extractAnn e in
     withPos ss =<< valueToJs' e
 
   valueToJs' :: Expr Ann -> m AST
-  valueToJs' (Literal (pos, _, _, _) l) =
+  valueToJs' (Literal (pos, _, _) l) =
     rethrowWithPosition pos $ literalToValueJS pos l
-  valueToJs' (Var (_, _, _, Just (IsConstructor _ [])) name) =
+  valueToJs' (Var (_, _, Just (IsConstructor _ [])) name) =
     return $ accessorString "value" $ qualifiedToJS id name
-  valueToJs' (Var (_, _, _, Just (IsConstructor _ _)) name) =
+  valueToJs' (Var (_, _, Just (IsConstructor _ _)) name) =
     return $ accessorString "create" $ qualifiedToJS id name
   valueToJs' (Accessor _ prop val) =
     accessorString prop <$> valueToJs val
-  valueToJs' (ObjectUpdate _ o ps) = do
+  valueToJs' (ObjectUpdate (pos, _, _) o copy ps) = do
     obj <- valueToJs o
     sts <- mapM (sndM valueToJs) ps
-    extendObj obj sts
-  valueToJs' e@(Abs (_, _, _, Just IsTypeClassConstructor) _ _) =
-    let args = unAbs e
-    in return $ AST.Function Nothing Nothing (map identToJs args) (AST.Block Nothing $ map assign args)
-    where
-    unAbs :: Expr Ann -> [Ident]
-    unAbs (Abs _ arg val) = arg : unAbs val
-    unAbs _ = []
-    assign :: Ident -> AST
-    assign name = AST.Assignment Nothing (accessorString (mkString $ runIdent name) (AST.Var Nothing "this"))
-                               (var name)
+    case copy of
+      Nothing -> extendObj obj sts
+      Just names -> pure $ AST.ObjectLiteral (Just pos) (map f names ++ sts)
+        where f name = (name, accessorString name obj)
   valueToJs' (Abs _ arg val) = do
     ret <- valueToJs val
     let jsArg = case arg of
@@ -222,32 +311,30 @@
     let (f, args) = unApp e []
     args' <- mapM valueToJs args
     case f of
-      Var (_, _, _, Just IsNewtype) _ -> return (head args')
-      Var (_, _, _, Just (IsConstructor _ fields)) name | length args == length fields ->
-        return $ AST.Unary Nothing AST.New $ AST.App Nothing (qualifiedToJS id name) args'
-      Var (_, _, _, Just IsTypeClassConstructor) name ->
+      Var (_, _, Just IsNewtype) _ -> return (head args')
+      Var (_, _, Just (IsConstructor _ fields)) name | length args == length fields ->
         return $ AST.Unary Nothing AST.New $ AST.App Nothing (qualifiedToJS id name) args'
       _ -> flip (foldl (\fn a -> AST.App Nothing fn [a])) args' <$> valueToJs f
     where
     unApp :: Expr Ann -> [Expr Ann] -> (Expr Ann, [Expr Ann])
     unApp (App _ val arg) args = unApp val (arg : args)
     unApp other args = (other, args)
-  valueToJs' (Var (_, _, _, Just IsForeign) qi@(Qualified (Just mn') ident)) =
+  valueToJs' (Var (_, _, Just IsForeign) qi@(Qualified (ByModuleName mn') ident)) =
     return $ if mn' == mn
              then foreignIdent ident
              else varToJs qi
-  valueToJs' (Var (_, _, _, Just IsForeign) ident) =
+  valueToJs' (Var (_, _, Just IsForeign) ident) =
     internalError $ "Encountered an unqualified reference to a foreign ident " ++ T.unpack (showQualified showIdent ident)
   valueToJs' (Var _ ident) = return $ varToJs ident
-  valueToJs' (Case (ss, _, _, _) values binders) = do
+  valueToJs' (Case (ss, _, _) values binders) = do
     vals <- mapM valueToJs values
     bindersToJs ss binders vals
   valueToJs' (Let _ ds val) = do
     ds' <- concat <$> mapM bindToJs ds
     ret <- valueToJs val
     return $ AST.App Nothing (AST.Function Nothing Nothing [] (AST.Block Nothing (ds' ++ [AST.Return Nothing ret]))) []
-  valueToJs' (Constructor (_, _, _, Just IsNewtype) _ ctor _) =
-    return $ AST.VariableIntroduction Nothing (properToJs ctor) (Just $
+  valueToJs' (Constructor (_, _, Just IsNewtype) _ ctor _) =
+    return $ AST.VariableIntroduction Nothing (properToJs ctor) (Just . (UnknownEffects, ) $
                 AST.ObjectLiteral Nothing [("create",
                   AST.Function Nothing Nothing ["value"]
                     (AST.Block Nothing [AST.Return Nothing $ AST.Var Nothing "value"]))])
@@ -278,7 +365,7 @@
   literalToValueJS ss (ArrayLiteral xs) = AST.ArrayLiteral (Just ss) <$> mapM valueToJs xs
   literalToValueJS ss (ObjectLiteral ps) = AST.ObjectLiteral (Just ss) <$> mapM (sndM valueToJs) ps
 
-  -- | Shallow copy an object.
+  -- Shallow copy an object.
   extendObj :: AST -> [(PSString, AST)] -> m AST
   extendObj obj sts = do
     newObj <- freshName
@@ -289,8 +376,8 @@
       jsNewObj = AST.Var Nothing newObj
       jsEvaluatedObj = AST.Var Nothing evaluatedObj
       block = AST.Block Nothing (evaluate:objAssign:copy:extend ++ [AST.Return Nothing jsNewObj])
-      evaluate = AST.VariableIntroduction Nothing evaluatedObj (Just obj)
-      objAssign = AST.VariableIntroduction Nothing newObj (Just $ AST.ObjectLiteral Nothing [])
+      evaluate = AST.VariableIntroduction Nothing evaluatedObj (Just (UnknownEffects, obj))
+      objAssign = AST.VariableIntroduction Nothing newObj (Just (NoEffects, AST.ObjectLiteral Nothing []))
       copy = AST.ForIn Nothing key jsEvaluatedObj $ AST.Block Nothing [AST.IfElse Nothing cond assign Nothing]
       cond = AST.App Nothing (accessorString "call" (accessorString "hasOwnProperty" (AST.ObjectLiteral Nothing []))) [jsEvaluatedObj, jsKey]
       assign = AST.Block Nothing [AST.Assignment Nothing (AST.Indexer Nothing jsKey jsNewObj) (AST.Indexer Nothing jsKey jsEvaluatedObj)]
@@ -298,28 +385,28 @@
       extend = map stToAssign sts
     return $ AST.App Nothing (AST.Function Nothing Nothing [] block) []
 
-  -- | Generate code in the simplified JavaScript intermediate representation for a reference to a
+  -- Generate code in the simplified JavaScript intermediate representation for a reference to a
   -- variable.
   varToJs :: Qualified Ident -> AST
-  varToJs (Qualified Nothing ident) = var ident
+  varToJs (Qualified (BySourcePos _) ident) = var ident
   varToJs qual = qualifiedToJS id qual
 
-  -- | Generate code in the simplified JavaScript intermediate representation for a reference to a
+  -- Generate code in the simplified JavaScript intermediate representation for a reference to a
   -- variable that may have a qualified name.
   qualifiedToJS :: (a -> Ident) -> Qualified a -> AST
-  qualifiedToJS f (Qualified (Just (ModuleName [ProperName mn'])) a) | mn' == C.prim = AST.Var Nothing . runIdent $ f a
-  qualifiedToJS f (Qualified (Just mn') a) | mn /= mn' = accessor (f a) (AST.Var Nothing (moduleNameToJs mn'))
+  qualifiedToJS f (Qualified (ByModuleName C.M_Prim) a) = AST.Var Nothing . runIdent $ f a
+  qualifiedToJS f (Qualified (ByModuleName mn') a) | mn /= mn' = AST.ModuleAccessor Nothing mn' . mkString . T.concatMap identCharToText . runIdent $ f a
   qualifiedToJS f (Qualified _ a) = AST.Var Nothing $ identToJs (f a)
 
   foreignIdent :: Ident -> AST
-  foreignIdent ident = accessorString (mkString $ runIdent ident) (AST.Var Nothing "$foreign")
+  foreignIdent ident = accessorString (mkString $ runIdent ident) (AST.Var Nothing FFINamespace)
 
-  -- | Generate code in the simplified JavaScript intermediate representation for pattern match binders
+  -- Generate code in the simplified JavaScript intermediate representation for pattern match binders
   -- and guards.
   bindersToJs :: SourceSpan -> [CaseAlternative Ann] -> [AST] -> m AST
   bindersToJs ss binders vals = do
     valNames <- replicateM (length vals) freshName
-    let assignments = zipWith (AST.VariableIntroduction Nothing) valNames (map Just vals)
+    let assignments = zipWith (AST.VariableIntroduction Nothing) valNames (map (Just . (UnknownEffects, )) vals)
     jss <- forM binders $ \(CaseAlternative bs result) -> do
       ret <- guardsToJs result
       go valNames ret bs
@@ -358,20 +445,20 @@
 
   binderToJs :: Text -> [AST] -> Binder Ann -> m [AST]
   binderToJs s done binder =
-    let (ss, _, _, _) = extractBinderAnn binder in
+    let (ss, _, _) = extractBinderAnn binder in
     traverse (withPos ss) =<< binderToJs' s done binder
 
-  -- | Generate code in the simplified JavaScript intermediate representation for a pattern match
+  -- Generate code in the simplified JavaScript intermediate representation for a pattern match
   -- binder.
   binderToJs' :: Text -> [AST] -> Binder Ann -> m [AST]
   binderToJs' _ done NullBinder{} = return done
   binderToJs' varName done (LiteralBinder _ l) =
     literalToBinderJS varName done l
   binderToJs' varName done (VarBinder _ ident) =
-    return (AST.VariableIntroduction Nothing (identToJs ident) (Just (AST.Var Nothing varName)) : done)
-  binderToJs' varName done (ConstructorBinder (_, _, _, Just IsNewtype) _ _ [b]) =
+    return (AST.VariableIntroduction Nothing (identToJs ident) (Just (NoEffects, AST.Var Nothing varName)) : done)
+  binderToJs' varName done (ConstructorBinder (_, _, Just IsNewtype) _ _ [b]) =
     binderToJs varName done b
-  binderToJs' varName done (ConstructorBinder (_, _, _, Just (IsConstructor ctorType fields)) _ ctor bs) = do
+  binderToJs' varName done (ConstructorBinder (_, _, Just (IsConstructor ctorType fields)) _ ctor bs) = do
     js <- go (zip fields bs) done
     return $ case ctorType of
       ProductType -> js
@@ -386,12 +473,12 @@
       argVar <- freshName
       done'' <- go remain done'
       js <- binderToJs argVar done'' binder
-      return (AST.VariableIntroduction Nothing argVar (Just $ accessorString (mkString $ identToJs field) $ AST.Var Nothing varName) : js)
+      return (AST.VariableIntroduction Nothing argVar (Just (UnknownEffects, accessorString (mkString $ identToJs field) $ AST.Var Nothing varName)) : js)
   binderToJs' _ _ ConstructorBinder{} =
     internalError "binderToJs: Invalid ConstructorBinder in binderToJs"
   binderToJs' varName done (NamedBinder _ ident binder) = do
     js <- binderToJs varName done binder
-    return (AST.VariableIntroduction Nothing (identToJs ident) (Just (AST.Var Nothing varName)) : js)
+    return (AST.VariableIntroduction Nothing (identToJs ident) (Just (NoEffects, AST.Var Nothing varName)) : js)
 
   literalToBinderJS :: Text -> [AST] -> Literal (Binder Ann) -> m [AST]
   literalToBinderJS varName done (NumericLiteral num) =
@@ -412,7 +499,7 @@
       propVar <- freshName
       done'' <- go done' bs'
       js <- binderToJs propVar done'' binder
-      return (AST.VariableIntroduction Nothing propVar (Just (accessorString prop (AST.Var Nothing varName))) : js)
+      return (AST.VariableIntroduction Nothing propVar (Just (UnknownEffects, accessorString prop (AST.Var Nothing varName))) : js)
   literalToBinderJS varName done (ArrayLiteral bs) = do
     js <- go done 0 bs
     return [AST.IfElse Nothing (AST.Binary Nothing AST.EqualTo (accessorString "length" (AST.Var Nothing varName)) (AST.NumericLiteral Nothing (Left (fromIntegral $ length bs)))) (AST.Block Nothing js) Nothing]
@@ -423,24 +510,10 @@
       elVar <- freshName
       done'' <- go done' (index + 1) bs'
       js <- binderToJs elVar done'' binder
-      return (AST.VariableIntroduction Nothing elVar (Just (AST.Indexer Nothing (AST.NumericLiteral Nothing (Left index)) (AST.Var Nothing varName))) : js)
+      return (AST.VariableIntroduction Nothing elVar (Just (UnknownEffects, AST.Indexer Nothing (AST.NumericLiteral Nothing (Left index)) (AST.Var Nothing varName))) : js)
 
-  -- Check that all integers fall within the valid int range for JavaScript.
-  checkIntegers :: AST -> m ()
-  checkIntegers = void . everywhereTopDownM go
-    where
-    go :: AST -> m AST
-    go (AST.Unary _ AST.Negate (AST.NumericLiteral ss (Left i))) =
-      -- Move the negation inside the literal; since this is a top-down
-      -- traversal doing this replacement will stop the next case from raising
-      -- the error when attempting to use -2147483648, as if left unrewritten
-      -- the value is `Unary Negate (NumericLiteral (Left 2147483648))`, and
-      -- 2147483648 is larger than the maximum allowed int.
-      return $ AST.NumericLiteral ss (Left (-i))
-    go js@(AST.NumericLiteral ss (Left i)) =
-      let minInt = -2147483648
-          maxInt = 2147483647
-      in if i < minInt || i > maxInt
-         then throwError . maybe errorMessage errorMessage' ss $ IntOutOfRange i "JavaScript" minInt maxInt
-         else return js
-    go other = return other
+accessorString :: PSString -> AST -> AST
+accessorString prop = AST.Indexer Nothing (AST.StringLiteral Nothing prop)
+
+pattern FFINamespace :: Text
+pattern FFINamespace = "$foreign"
diff --git a/src/Language/PureScript/CodeGen/JS/Common.hs b/src/Language/PureScript/CodeGen/JS/Common.hs
--- a/src/Language/PureScript/CodeGen/JS/Common.hs
+++ b/src/Language/PureScript/CodeGen/JS/Common.hs
@@ -1,29 +1,34 @@
 -- | Common code generation utility functions
 module Language.PureScript.CodeGen.JS.Common where
 
-import Prelude.Compat
+import Prelude
 
-import Data.Char
+import Data.Char (isAlpha, isAlphaNum, isDigit, ord)
 import Data.Text (Text)
-import qualified Data.Text as T
+import Data.Text qualified as T
 
-import Language.PureScript.Crash
-import Language.PureScript.Names
+import Language.PureScript.Crash (internalError)
+import Language.PureScript.Names (Ident(..), InternalIdentData(..), ModuleName(..), ProperName(..), unusedIdent)
 
 moduleNameToJs :: ModuleName -> Text
-moduleNameToJs (ModuleName pns) =
-  let name = T.intercalate "_" (runProperName `map` pns)
+moduleNameToJs (ModuleName mn) =
+  let name = T.replace "." "_" mn
   in if nameIsJsBuiltIn name then "$$" <> name else name
 
 -- | Convert an 'Ident' into a valid JavaScript identifier:
 --
 --  * Alphanumeric characters are kept unmodified.
 --
---  * Reserved javascript identifiers are prefixed with '$$'.
+--  * Reserved javascript identifiers and identifiers starting with digits are
+--    prefixed with '$$'.
 identToJs :: Ident -> Text
-identToJs (Ident name) = anyNameToJs name
+identToJs (Ident name)
+  | not (T.null name) && isDigit (T.head name) = "$$" <> T.concatMap identCharToText name
+  | otherwise = anyNameToJs name
 identToJs (GenIdent _ _) = internalError "GenIdent in identToJs"
-identToJs UnusedIdent = "$__unused"
+identToJs UnusedIdent = unusedIdent
+identToJs (InternalIdent RuntimeLazyFactory) = "$runtime_lazy"
+identToJs (InternalIdent (Lazy name)) = "$lazy_" <> anyNameToJs name
 
 -- | Convert a 'ProperName' into a valid JavaScript identifier:
 --
@@ -51,11 +56,9 @@
 -- absolutely necessary.
 isValidJsIdentifier :: Text -> Bool
 isValidJsIdentifier s =
-  and
-    [ not (T.null s)
-    , isAlpha (T.head s)
-    , s == anyNameToJs s
-    ]
+  not (T.null s) &&
+  isAlpha (T.head s) &&
+  s == anyNameToJs s
 
 -- | Attempts to find a human-readable name for a symbol, if none has been specified returns the
 -- ordinal value.
diff --git a/src/Language/PureScript/CodeGen/JS/Printer.hs b/src/Language/PureScript/CodeGen/JS/Printer.hs
--- a/src/Language/PureScript/CodeGen/JS/Printer.hs
+++ b/src/Language/PureScript/CodeGen/JS/Printer.hs
@@ -4,24 +4,26 @@
   , prettyPrintJSWithSourceMaps
   ) where
 
-import Prelude.Compat
+import Prelude
 
 import Control.Arrow ((<+>))
 import Control.Monad (forM, mzero)
 import Control.Monad.State (StateT, evalStateT)
-import Control.PatternArrows
-import qualified Control.Arrow as A
+import Control.PatternArrows (Operator(..), OperatorTable(..), Pattern(..), buildPrettyPrinter, mkPattern, mkPattern')
+import Control.Arrow qualified as A
 
 import Data.Maybe (fromMaybe)
 import Data.Text (Text)
-import qualified Data.Text as T
+import Data.Text qualified as T
+import Data.List.NonEmpty qualified as NEL (toList)
 
 import Language.PureScript.AST (SourceSpan(..))
-import Language.PureScript.CodeGen.JS.Common
-import Language.PureScript.CoreImp.AST
-import Language.PureScript.Comments
-import Language.PureScript.Crash
-import Language.PureScript.Pretty.Common
+import Language.PureScript.CodeGen.JS.Common (identCharToText, isValidJsIdentifier, nameIsJsBuiltIn, nameIsJsReserved)
+import Language.PureScript.CoreImp.AST (AST(..), BinaryOperator(..), CIComments(..), UnaryOperator(..), getSourceSpan)
+import Language.PureScript.CoreImp.Module (Export(..), Import(..), Module(..))
+import Language.PureScript.Comments (Comment(..))
+import Language.PureScript.Crash (internalError)
+import Language.PureScript.Pretty.Common (Emit(..), PrinterState(..), SMap, StrPos(..), addMapping', currentIndent, intercalate, parensPos, runPlainString, withIndent)
 import Language.PureScript.PSString (PSString, decodeString, prettyPrintStringJS)
 
 -- TODO (Christoph): Get rid of T.unpack / pack
@@ -71,7 +73,7 @@
   match (Var _ ident) = return $ emit ident
   match (VariableIntroduction _ ident value) = mconcat <$> sequence
     [ return $ emit $ "var " <> ident
-    , maybe (return mempty) (fmap (emit " = " <>) . prettyPrintJS') value
+    , maybe (return mempty) (fmap (emit " = " <>) . prettyPrintJS' . snd) value
     ]
   match (Assignment _ target value) = mconcat <$> sequence
     [ prettyPrintJS' target
@@ -114,40 +116,70 @@
     [ return $ emit "throw "
     , prettyPrintJS' value
     ]
-  match (Comment _ com js) = mconcat <$> sequence
+  match (Comment (SourceComments com) js) = mconcat <$> sequence
     [ return $ emit "\n"
     , mconcat <$> forM com comment
     , prettyPrintJS' js
     ]
+  match (Comment PureAnnotation js) = mconcat <$> sequence 
+    [ return $ emit "/* #__PURE__ */ "
+    , prettyPrintJS' js 
+    ]
   match _ = mzero
 
-  comment :: (Emit gen) => Comment -> StateT PrinterState Maybe gen
-  comment (LineComment com) = fmap mconcat $ sequence $
-    [ currentIndent
-    , return $ emit "//" <> emit com <> emit "\n"
-    ]
-  comment (BlockComment com) = fmap mconcat $ sequence $
-    [ currentIndent
-    , return $ emit "/**\n"
-    ] ++
-    map asLine (T.lines com) ++
-    [ currentIndent
-    , return $ emit " */\n"
+comment :: (Emit gen) => Comment -> StateT PrinterState Maybe gen
+comment (LineComment com) = mconcat <$> sequence
+  [ currentIndent
+  , return $ emit "//" <> emit com <> emit "\n"
+  ]
+comment (BlockComment com) = fmap mconcat $ sequence $
+  [ currentIndent
+  , return $ emit "/**\n"
+  ] ++
+  map asLine (T.lines com) ++
+  [ currentIndent
+  , return $ emit " */\n"
+  , currentIndent
+  ]
+  where
+  asLine :: (Emit gen) => Text -> StateT PrinterState Maybe gen
+  asLine s = do
+    i <- currentIndent
+    return $ i <> emit " * " <> (emit . removeComments) s <> emit "\n"
+
+  removeComments :: Text -> Text
+  removeComments t =
+    case T.stripPrefix "*/" t of
+      Just rest -> removeComments rest
+      Nothing -> case T.uncons t of
+        Just (x, xs) -> x `T.cons` removeComments xs
+        Nothing -> ""
+
+prettyImport :: (Emit gen) => Import -> StateT PrinterState Maybe gen
+prettyImport (Import ident from) =
+  return . emit $
+    "import * as " <> ident <> " from " <> prettyPrintStringJS from <> ";"
+
+prettyExport :: (Emit gen) => Export -> StateT PrinterState Maybe gen
+prettyExport (Export idents from) =
+  mconcat <$> sequence
+    [ return $ emit "export {\n"
+    , withIndent $ do
+        let exportsStrings = emit . exportedIdentToString from <$> idents
+        indentString <- currentIndent
+        return . intercalate (emit ",\n") . NEL.toList $ (indentString <>) <$> exportsStrings
+    , return $ emit "\n"
     , currentIndent
+    , return . emit $ "}" <> maybe "" ((" from " <>) . prettyPrintStringJS) from <> ";"
     ]
-    where
-    asLine :: (Emit gen) => Text -> StateT PrinterState Maybe gen
-    asLine s = do
-      i <- currentIndent
-      return $ i <> emit " * " <> (emit . removeComments) s <> emit "\n"
-
-    removeComments :: Text -> Text
-    removeComments t =
-      case T.stripPrefix "*/" t of
-        Just rest -> removeComments rest
-        Nothing -> case T.uncons t of
-          Just (x, xs) -> x `T.cons` removeComments xs
-          Nothing -> ""
+  where
+  exportedIdentToString Nothing ident
+    | nameIsJsReserved ident || nameIsJsBuiltIn ident
+    = "$$" <> ident <> " as " <> ident
+  exportedIdentToString _ "$main"
+    = T.concatMap identCharToText "$main" <> " as $main"
+  exportedIdentToString _ ident
+    = T.concatMap identCharToText ident
 
 accessor :: Pattern PrinterState AST (Text, AST)
 accessor = mkPattern match
@@ -217,14 +249,22 @@
   indentString <- currentIndent
   return $ intercalate (emit "\n") $ map ((<> emit ";") . (indentString <>)) jss
 
+prettyModule :: (Emit gen) => Module -> StateT PrinterState Maybe gen
+prettyModule Module{..} = do
+  header <- mconcat <$> traverse comment modHeader
+  imps <- traverse prettyImport modImports
+  body <- prettyStatements modBody
+  exps <- traverse prettyExport modExports
+  pure $ header <> intercalate (emit "\n") (imps ++ body : exps)
+
 -- | Generate a pretty-printed string representing a collection of JavaScript expressions at the same indentation level
-prettyPrintJSWithSourceMaps :: [AST] -> (Text, [SMap])
+prettyPrintJSWithSourceMaps :: Module -> (Text, [SMap])
 prettyPrintJSWithSourceMaps js =
-  let StrPos (_, s, mp) = (fromMaybe (internalError "Incomplete pattern") . flip evalStateT (PrinterState 0) . prettyStatements) js
+  let StrPos (_, s, mp) = (fromMaybe (internalError "Incomplete pattern") . flip evalStateT (PrinterState 0) . prettyModule) js
   in (s, mp)
 
-prettyPrintJS :: [AST] -> Text
-prettyPrintJS = maybe (internalError "Incomplete pattern") runPlainString . flip evalStateT (PrinterState 0) . prettyStatements
+prettyPrintJS :: Module -> Text
+prettyPrintJS = maybe (internalError "Incomplete pattern") runPlainString . flip evalStateT (PrinterState 0) . prettyModule
 
 -- | Generate an indented, pretty-printed string representing a JavaScript expression
 prettyPrintJS' :: (Emit gen) => AST -> StateT PrinterState Maybe gen
diff --git a/src/Language/PureScript/Comments.hs b/src/Language/PureScript/Comments.hs
--- a/src/Language/PureScript/Comments.hs
+++ b/src/Language/PureScript/Comments.hs
@@ -1,17 +1,17 @@
 {-# LANGUAGE TemplateHaskell #-}
-{-# LANGUAGE DeriveGeneric #-}
 
 -- |
 -- Defines the types of source code comments
 --
 module Language.PureScript.Comments where
 
-import Prelude.Compat
+import Prelude
+import Codec.Serialise (Serialise)
 import Control.DeepSeq (NFData)
 import Data.Text (Text)
 import GHC.Generics (Generic)
 
-import Data.Aeson.TH
+import Data.Aeson.TH (Options(..), SumEncoding(..), defaultOptions, deriveJSON)
 
 data Comment
   = LineComment Text
@@ -19,5 +19,6 @@
   deriving (Show, Eq, Ord, Generic)
 
 instance NFData Comment
+instance Serialise Comment
 
 $(deriveJSON (defaultOptions { sumEncoding = ObjectWithSingleField }) ''Comment)
diff --git a/src/Language/PureScript/Constants.hs b/src/Language/PureScript/Constants.hs
deleted file mode 100644
--- a/src/Language/PureScript/Constants.hs
+++ /dev/null
@@ -1,599 +0,0 @@
--- | Various constants which refer to things in the Prelude
-module Language.PureScript.Constants where
-
-import Prelude.Compat
-
-import Data.String (IsString)
-import Language.PureScript.PSString (PSString)
-import Language.PureScript.Names
-
--- Operators
-
-($) :: forall a. (IsString a) => a
-($) = "$"
-
-apply :: forall a. (IsString a) => a
-apply = "apply"
-
-(#) :: forall a. (IsString a) => a
-(#) = "#"
-
-applyFlipped :: forall a. (IsString a) => a
-applyFlipped = "applyFlipped"
-
-(<>) :: forall a. (IsString a) => a
-(<>) = "<>"
-
-(++) :: forall a. (IsString a) => a
-(++) = "++"
-
-append :: forall a. (IsString a) => a
-append = "append"
-
-(>>=) :: forall a. (IsString a) => a
-(>>=) = ">>="
-
-bind :: forall a. (IsString a) => a
-bind = "bind"
-
-discard :: forall a. (IsString a) => a
-discard = "discard"
-
-pattern Discard :: Qualified (ProperName 'ClassName)
-pattern Discard = Qualified (Just ControlBind) (ProperName "Discard")
-
-(+) :: forall a. (IsString a) => a
-(+) = "+"
-
-add :: forall a. (IsString a) => a
-add = "add"
-
-(-) :: forall a. (IsString a) => a
-(-) = "-"
-
-sub :: forall a. (IsString a) => a
-sub = "sub"
-
-(*) :: forall a. (IsString a) => a
-(*) = "*"
-
-mul :: forall a. (IsString a) => a
-mul = "mul"
-
-(/) :: forall a. (IsString a) => a
-(/) = "/"
-
-div :: forall a. (IsString a) => a
-div = "div"
-
-(%) :: forall a. (IsString a) => a
-(%) = "%"
-
-mod :: forall a. (IsString a) => a
-mod = "mod"
-
-(<) :: forall a. (IsString a) => a
-(<) = "<"
-
-lessThan :: forall a. (IsString a) => a
-lessThan = "lessThan"
-
-(>) :: forall a. (IsString a) => a
-(>) = ">"
-
-greaterThan :: forall a. (IsString a) => a
-greaterThan = "greaterThan"
-
-(<=) :: forall a. (IsString a) => a
-(<=) = "<="
-
-lessThanOrEq :: forall a. (IsString a) => a
-lessThanOrEq = "lessThanOrEq"
-
-(>=) :: forall a. (IsString a) => a
-(>=) = ">="
-
-greaterThanOrEq :: forall a. (IsString a) => a
-greaterThanOrEq = "greaterThanOrEq"
-
-(==) :: forall a. (IsString a) => a
-(==) = "=="
-
-eq :: forall a. (IsString a) => a
-eq = "eq"
-
-eq1 :: forall a. (IsString a) => a
-eq1 = "eq1"
-
-(/=) :: forall a. (IsString a) => a
-(/=) = "/="
-
-notEq :: forall a. (IsString a) => a
-notEq = "notEq"
-
-compare :: forall a. (IsString a) => a
-compare = "compare"
-
-compare1 :: forall a. (IsString a) => a
-compare1 = "compare1"
-
-(&&) :: forall a. (IsString a) => a
-(&&) = "&&"
-
-conj :: forall a. (IsString a) => a
-conj = "conj"
-
-(||) :: forall a. (IsString a) => a
-(||) = "||"
-
-disj :: forall a. (IsString a) => a
-disj = "disj"
-
-unsafeIndex :: forall a. (IsString a) => a
-unsafeIndex = "unsafeIndex"
-
-or :: forall a. (IsString a) => a
-or = "or"
-
-and :: forall a. (IsString a) => a
-and = "and"
-
-xor :: forall a. (IsString a) => a
-xor = "xor"
-
-(<<<) :: forall a. (IsString a) => a
-(<<<) = "<<<"
-
-compose :: forall a. (IsString a) => a
-compose = "compose"
-
-(>>>) :: forall a. (IsString a) => a
-(>>>) = ">>>"
-
-composeFlipped :: forall a. (IsString a) => a
-composeFlipped = "composeFlipped"
-
-map :: forall a. (IsString a) => a
-map = "map"
-
--- Functions
-
-negate :: forall a. (IsString a) => a
-negate = "negate"
-
-not :: forall a. (IsString a) => a
-not = "not"
-
-shl :: forall a. (IsString a) => a
-shl = "shl"
-
-shr :: forall a. (IsString a) => a
-shr = "shr"
-
-zshr :: forall a. (IsString a) => a
-zshr = "zshr"
-
-complement :: forall a. (IsString a) => a
-complement = "complement"
-
--- Prelude Values
-
-zero :: forall a. (IsString a) => a
-zero = "zero"
-
-one :: forall a. (IsString a) => a
-one = "one"
-
-bottom :: forall a. (IsString a) => a
-bottom = "bottom"
-
-top :: forall a. (IsString a) => a
-top = "top"
-
-return :: forall a. (IsString a) => a
-return = "return"
-
-pure' :: forall a. (IsString a) => a
-pure' = "pure"
-
-returnEscaped :: forall a. (IsString a) => a
-returnEscaped = "$return"
-
-unit :: forall a. (IsString a) => a
-unit = "unit"
-
--- Core lib values
-
-runST :: forall a. (IsString a) => a
-runST = "run"
-
-stRefValue :: forall a. (IsString a) => a
-stRefValue = "value"
-
-newSTRef :: forall a. (IsString a) => a
-newSTRef = "new"
-
-readSTRef :: forall a. (IsString a) => a
-readSTRef = "read"
-
-writeSTRef :: forall a. (IsString a) => a
-writeSTRef = "write"
-
-modifySTRef :: forall a. (IsString a) => a
-modifySTRef = "modify"
-
-mkFn :: forall a. (IsString a) => a
-mkFn = "mkFn"
-
-runFn :: forall a. (IsString a) => a
-runFn = "runFn"
-
-mkEffFn :: forall a. (IsString a) => a
-mkEffFn = "mkEffFn"
-
-runEffFn :: forall a. (IsString a) => a
-runEffFn = "runEffFn"
-
-mkEffectFn :: forall a. (IsString a) => a
-mkEffectFn = "mkEffectFn"
-
-runEffectFn :: forall a. (IsString a) => a
-runEffectFn = "runEffectFn"
-
--- Prim values
-
-undefined :: forall a. (IsString a) => a
-undefined = "undefined"
-
--- Type Class Dictionary Names
-
-data EffectDictionaries = EffectDictionaries
-  { edApplicativeDict :: PSString
-  , edBindDict :: PSString
-  , edMonadDict :: PSString
-  , edWhile :: PSString
-  , edUntil :: PSString
-  }
-
-effDictionaries :: EffectDictionaries
-effDictionaries = EffectDictionaries
-  { edApplicativeDict = "applicativeEff"
-  , edBindDict = "bindEff"
-  , edMonadDict = "monadEff"
-  , edWhile = "whileE"
-  , edUntil = "untilE"
-  }
-
-effectDictionaries :: EffectDictionaries
-effectDictionaries = EffectDictionaries
-  { edApplicativeDict = "applicativeEffect"
-  , edBindDict = "bindEffect"
-  , edMonadDict = "monadEffect"
-  , edWhile = "whileE"
-  , edUntil = "untilE"
-  }
-
-stDictionaries :: EffectDictionaries
-stDictionaries = EffectDictionaries
-  { edApplicativeDict = "applicativeST"
-  , edBindDict = "bindST"
-  , edMonadDict = "monadST"
-  , edWhile = "while"
-  , edUntil = "until"
-  }
-
-discardUnitDictionary :: forall a. (IsString a) => a
-discardUnitDictionary = "discardUnit"
-
-semiringNumber :: forall a. (IsString a) => a
-semiringNumber = "semiringNumber"
-
-semiringInt :: forall a. (IsString a) => a
-semiringInt = "semiringInt"
-
-ringNumber :: forall a. (IsString a) => a
-ringNumber = "ringNumber"
-
-ringInt :: forall a. (IsString a) => a
-ringInt = "ringInt"
-
-moduloSemiringNumber :: forall a. (IsString a) => a
-moduloSemiringNumber = "moduloSemiringNumber"
-
-moduloSemiringInt :: forall a. (IsString a) => a
-moduloSemiringInt = "moduloSemiringInt"
-
-euclideanRingNumber :: forall a. (IsString a) => a
-euclideanRingNumber = "euclideanRingNumber"
-
-euclideanRingInt :: forall a. (IsString a) => a
-euclideanRingInt = "euclideanRingInt"
-
-ordBoolean :: forall a. (IsString a) => a
-ordBoolean = "ordBoolean"
-
-ordNumber :: forall a. (IsString a) => a
-ordNumber = "ordNumber"
-
-ordInt :: forall a. (IsString a) => a
-ordInt = "ordInt"
-
-ordString :: forall a. (IsString a) => a
-ordString = "ordString"
-
-ordChar :: forall a. (IsString a) => a
-ordChar = "ordChar"
-
-eqNumber :: forall a. (IsString a) => a
-eqNumber = "eqNumber"
-
-eqInt :: forall a. (IsString a) => a
-eqInt = "eqInt"
-
-eqString :: forall a. (IsString a) => a
-eqString = "eqString"
-
-eqChar :: forall a. (IsString a) => a
-eqChar = "eqChar"
-
-eqBoolean :: forall a. (IsString a) => a
-eqBoolean = "eqBoolean"
-
-boundedBoolean :: forall a. (IsString a) => a
-boundedBoolean = "boundedBoolean"
-
-booleanAlgebraBoolean :: forall a. (IsString a) => a
-booleanAlgebraBoolean = "booleanAlgebraBoolean"
-
-heytingAlgebraBoolean :: forall a. (IsString a) => a
-heytingAlgebraBoolean = "heytingAlgebraBoolean"
-
-semigroupString :: forall a. (IsString a) => a
-semigroupString = "semigroupString"
-
-semigroupoidFn :: forall a. (IsString a) => a
-semigroupoidFn = "semigroupoidFn"
-
--- Generic Deriving
-
-generic :: forall a. (IsString a) => a
-generic = "Generic"
-
-toSpine :: forall a. (IsString a) => a
-toSpine = "toSpine"
-
-fromSpine :: forall a. (IsString a) => a
-fromSpine = "fromSpine"
-
-toSignature :: forall a. (IsString a) => a
-toSignature = "toSignature"
-
--- Main module
-
-main :: forall a. (IsString a) => a
-main = "main"
-
--- Prim
-
-partial :: forall a. (IsString a) => a
-partial = "Partial"
-
-pattern Prim :: ModuleName
-pattern Prim = ModuleName [ProperName "Prim"]
-
-pattern Partial :: Qualified (ProperName 'ClassName)
-pattern Partial = Qualified (Just Prim) (ProperName "Partial")
-
-pattern Record :: Qualified (ProperName 'TypeName)
-pattern Record = Qualified (Just Prim) (ProperName "Record")
-
--- Prim.Boolean
-
-pattern PrimBoolean :: ModuleName
-pattern PrimBoolean = ModuleName [ProperName "Prim", ProperName "Boolean"]
-
-booleanTrue :: Qualified (ProperName 'TypeName)
-booleanTrue = Qualified (Just PrimBoolean) (ProperName "True")
-
-booleanFalse :: Qualified (ProperName 'TypeName)
-booleanFalse = Qualified (Just PrimBoolean) (ProperName "False")
-
--- Prim.Ordering
-
-pattern PrimOrdering :: ModuleName
-pattern PrimOrdering = ModuleName [ProperName "Prim", ProperName "Ordering"]
-
-orderingLT :: Qualified (ProperName 'TypeName)
-orderingLT = Qualified (Just PrimOrdering) (ProperName "LT")
-
-orderingEQ :: Qualified (ProperName 'TypeName)
-orderingEQ = Qualified (Just PrimOrdering) (ProperName "EQ")
-
-orderingGT :: Qualified (ProperName 'TypeName)
-orderingGT = Qualified (Just PrimOrdering) (ProperName "GT")
-
--- Prim.Row
-
-pattern PrimRow :: ModuleName
-pattern PrimRow = ModuleName [ProperName "Prim", ProperName "Row"]
-
-pattern RowUnion :: Qualified (ProperName 'ClassName)
-pattern RowUnion = Qualified (Just PrimRow) (ProperName "Union")
-
-pattern RowNub :: Qualified (ProperName 'ClassName)
-pattern RowNub = Qualified (Just PrimRow) (ProperName "Nub")
-
-pattern RowCons :: Qualified (ProperName 'ClassName)
-pattern RowCons = Qualified (Just PrimRow) (ProperName "Cons")
-
-pattern RowLacks :: Qualified (ProperName 'ClassName)
-pattern RowLacks = Qualified (Just PrimRow) (ProperName "Lacks")
-
--- Prim.RowList
-
-pattern PrimRowList :: ModuleName
-pattern PrimRowList = ModuleName [ProperName "Prim", ProperName "RowList"]
-
-pattern RowToList :: Qualified (ProperName 'ClassName)
-pattern RowToList = Qualified (Just PrimRowList) (ProperName "RowToList")
-
-pattern RowListNil :: Qualified (ProperName 'TypeName)
-pattern RowListNil = Qualified (Just PrimRowList) (ProperName "Nil")
-
-pattern RowListCons :: Qualified (ProperName 'TypeName)
-pattern RowListCons = Qualified (Just PrimRowList) (ProperName "Cons")
-
--- Prim.Symbol
-
-pattern PrimSymbol :: ModuleName
-pattern PrimSymbol = ModuleName [ProperName "Prim", ProperName "Symbol"]
-
-pattern SymbolCompare :: Qualified (ProperName 'ClassName)
-pattern SymbolCompare = Qualified (Just PrimSymbol) (ProperName "Compare")
-
-pattern SymbolAppend :: Qualified (ProperName 'ClassName)
-pattern SymbolAppend = Qualified (Just PrimSymbol) (ProperName "Append")
-
-pattern SymbolCons :: Qualified (ProperName 'ClassName)
-pattern SymbolCons = Qualified (Just PrimSymbol) (ProperName "Cons")
-
--- Prim.TypeError
-
-pattern PrimTypeError :: ModuleName
-pattern PrimTypeError = ModuleName [ProperName "Prim", ProperName "TypeError"]
-
-pattern Fail :: Qualified (ProperName 'ClassName)
-pattern Fail = Qualified (Just PrimTypeError) (ProperName "Fail")
-
-pattern Warn :: Qualified (ProperName 'ClassName)
-pattern Warn = Qualified (Just PrimTypeError) (ProperName "Warn")
-
-primModules :: [ModuleName]
-primModules = [Prim, PrimBoolean, PrimOrdering, PrimRow, PrimRowList, PrimSymbol, PrimTypeError]
-
--- Data.Symbol
-
-pattern DataSymbol :: ModuleName
-pattern DataSymbol = ModuleName [ProperName "Data", ProperName "Symbol"]
-
-pattern IsSymbol :: Qualified (ProperName 'ClassName)
-pattern IsSymbol = Qualified (Just DataSymbol) (ProperName "IsSymbol")
-
-typ :: forall a. (IsString a) => a
-typ = "Type"
-
-kindBoolean :: forall a. (IsString a) => a
-kindBoolean = "Boolean"
-
-kindOrdering :: forall a. (IsString a) => a
-kindOrdering = "Ordering"
-
-kindRowList :: forall a. (IsString a) => a
-kindRowList = "RowList"
-
-symbol :: forall a. (IsString a) => a
-symbol = "Symbol"
-
-doc :: forall a. (IsString a) => a
-doc = "Doc"
-
--- Modules
-
-prim :: forall a. (IsString a) => a
-prim = "Prim"
-
-moduleBoolean :: forall a. (IsString a) => a
-moduleBoolean = "Boolean"
-
-moduleOrdering :: forall a. (IsString a) => a
-moduleOrdering = "Ordering"
-
-moduleRow :: forall a. (IsString a) => a
-moduleRow = "Row"
-
-moduleRowList :: forall a. (IsString a) => a
-moduleRowList = "RowList"
-
-moduleSymbol :: forall a. (IsString a) => a
-moduleSymbol = "Symbol"
-
-typeError :: forall a. (IsString a) => a
-typeError = "TypeError"
-
-prelude :: forall a. (IsString a) => a
-prelude = "Prelude"
-
-dataArray :: forall a. (IsString a) => a
-dataArray = "Data_Array"
-
-eff :: forall a. (IsString a) => a
-eff = "Control_Monad_Eff"
-
-effect :: forall a. (IsString a) => a
-effect = "Effect"
-
-st :: forall a. (IsString a) => a
-st = "Control_Monad_ST_Internal"
-
-controlApplicative :: forall a. (IsString a) => a
-controlApplicative = "Control_Applicative"
-
-controlSemigroupoid :: forall a. (IsString a) => a
-controlSemigroupoid = "Control_Semigroupoid"
-
-pattern ControlBind :: ModuleName
-pattern ControlBind = ModuleName [ProperName "Control", ProperName "Bind"]
-
-controlBind :: forall a. (IsString a) => a
-controlBind = "Control_Bind"
-
-controlMonadEffUncurried :: forall a. (IsString a) => a
-controlMonadEffUncurried = "Control_Monad_Eff_Uncurried"
-
-effectUncurried :: forall a. (IsString a) => a
-effectUncurried = "Effect_Uncurried"
-
-dataBounded :: forall a. (IsString a) => a
-dataBounded = "Data_Bounded"
-
-dataSemigroup :: forall a. (IsString a) => a
-dataSemigroup = "Data_Semigroup"
-
-dataHeytingAlgebra :: forall a. (IsString a) => a
-dataHeytingAlgebra = "Data_HeytingAlgebra"
-
-dataEq :: forall a. (IsString a) => a
-dataEq = "Data_Eq"
-
-dataOrd :: forall a. (IsString a) => a
-dataOrd = "Data_Ord"
-
-dataSemiring :: forall a. (IsString a) => a
-dataSemiring = "Data_Semiring"
-
-dataRing :: forall a. (IsString a) => a
-dataRing = "Data_Ring"
-
-dataEuclideanRing :: forall a. (IsString a) => a
-dataEuclideanRing = "Data_EuclideanRing"
-
-dataFunction :: forall a. (IsString a) => a
-dataFunction = "Data_Function"
-
-dataFunctionUncurried :: forall a. (IsString a) => a
-dataFunctionUncurried = "Data_Function_Uncurried"
-
-dataIntBits :: forall a. (IsString a) => a
-dataIntBits = "Data_Int_Bits"
-
-partialUnsafe :: forall a. (IsString a) => a
-partialUnsafe = "Partial_Unsafe"
-
-unsafePartial :: forall a. (IsString a) => a
-unsafePartial = "unsafePartial"
-
-unsafeCoerce :: forall a. (IsString a) => a
-unsafeCoerce = "Unsafe_Coerce"
-
-unsafeCoerceFn :: forall a. (IsString a) => a
-unsafeCoerceFn = "unsafeCoerce"
diff --git a/src/Language/PureScript/Constants/Libs.hs b/src/Language/PureScript/Constants/Libs.hs
new file mode 100644
--- /dev/null
+++ b/src/Language/PureScript/Constants/Libs.hs
@@ -0,0 +1,264 @@
+{-# LANGUAGE BlockArguments #-}
+{-# LANGUAGE TemplateHaskell #-}
+-- | Various constants which refer to things in the Prelude and other core libraries
+module Language.PureScript.Constants.Libs where
+
+import Protolude qualified as P
+
+import Data.String (IsString)
+import Language.PureScript.PSString (PSString)
+import Language.PureScript.Constants.TH qualified as TH
+
+-- Core lib values
+
+stRefValue :: forall a. IsString a => a
+stRefValue = "value"
+
+-- Type Class Dictionary Names
+
+data EffectDictionaries = EffectDictionaries
+  { edApplicativeDict :: PSString
+  , edBindDict :: PSString
+  , edMonadDict :: PSString
+  , edWhile :: PSString
+  , edUntil :: PSString
+  }
+
+effDictionaries :: EffectDictionaries
+effDictionaries = EffectDictionaries
+  { edApplicativeDict = "applicativeEff"
+  , edBindDict = "bindEff"
+  , edMonadDict = "monadEff"
+  , edWhile = "whileE"
+  , edUntil = "untilE"
+  }
+
+effectDictionaries :: EffectDictionaries
+effectDictionaries = EffectDictionaries
+  { edApplicativeDict = "applicativeEffect"
+  , edBindDict = "bindEffect"
+  , edMonadDict = "monadEffect"
+  , edWhile = "whileE"
+  , edUntil = "untilE"
+  }
+
+stDictionaries :: EffectDictionaries
+stDictionaries = EffectDictionaries
+  { edApplicativeDict = "applicativeST"
+  , edBindDict = "bindST"
+  , edMonadDict = "monadST"
+  , edWhile = "while"
+  , edUntil = "until"
+  }
+
+$(TH.declare do
+
+  -- purescript-prelude
+  
+  TH.mod "Control.Apply" do
+    TH.asIdent do TH.asString do TH.var "apply"
+
+  TH.mod "Control.Applicative" do
+    TH.asIdent do TH.asPair do TH.asString do TH.var "pure"
+
+  TH.mod "Control.Bind" do
+    TH.asPair do
+      TH.asString do
+        TH.var "bind"
+        TH.cls "Discard" ; TH.var "discard"
+
+      TH.var "discardUnit"
+
+  TH.mod "Control.Category" do
+    TH.asPair do
+      TH.asIdent do TH.var "identity"
+
+      TH.var "categoryFn"
+
+  TH.mod "Control.Semigroupoid" do
+    TH.asPair do
+      TH.vars ["compose", "composeFlipped"]
+      TH.var "semigroupoidFn"
+
+  TH.mod "Data.Bounded" do
+    TH.asPair do
+      TH.vars ["bottom", "top"]
+      TH.var "boundedBoolean"
+
+  TH.mod "Data.Eq" do
+    TH.cls "Eq" ; TH.asIdent do TH.asPair do TH.asString do TH.var "eq"
+    TH.cls "Eq1" ; TH.asIdent do TH.asString do TH.var "eq1"
+    TH.asPair do
+      TH.var "notEq"
+
+      TH.var "eqBoolean"
+      TH.var "eqChar"
+      TH.var "eqInt"
+      TH.var "eqNumber"
+      TH.var "eqString"
+
+  TH.mod "Data.EuclideanRing" do
+    TH.asPair do
+      TH.var "div"
+
+      TH.var "euclideanRingNumber"
+
+  TH.mod "Data.Function" do
+    TH.asIdent do
+      TH.prefixWith "function" do TH.vars ["apply", "applyFlipped"]
+      TH.var "const"
+      TH.var "flip"
+
+  TH.mod "Data.Functor" do
+    TH.cls "Functor" ; TH.asIdent do TH.asString do TH.var "map"
+
+  TH.mod "Data.Generic.Rep" do
+    TH.cls "Generic" ; TH.asIdent do TH.vars ["from", "to"]
+    TH.ntys ["Argument", "Constructor", "NoArguments", "NoConstructors", "Product"]
+    TH.dty "Sum" ["Inl", "Inr"]
+
+  TH.mod "Data.HeytingAlgebra" do
+    TH.asPair do
+      TH.asIdent do TH.vars ["conj", "disj", "not"]
+
+      TH.var "heytingAlgebraBoolean"
+
+  TH.mod "Data.Monoid" do
+    TH.asIdent do TH.var "mempty"
+
+  TH.mod "Data.Ord" do
+    TH.cls "Ord" ; TH.asIdent do TH.asString do TH.var "compare"
+    TH.cls "Ord1" ; TH.asIdent do TH.asString do TH.var "compare1"
+    TH.asPair do
+      TH.vars ["greaterThan", "greaterThanOrEq", "lessThan", "lessThanOrEq"]
+
+      TH.var "ordBoolean"
+      TH.var "ordChar"
+      TH.var "ordInt"
+      TH.var "ordNumber"
+      TH.var "ordString"
+
+  TH.mod "Data.Ordering" do
+    TH.dty "Ordering" ["EQ", "GT", "LT"]
+
+  TH.mod "Data.Reflectable" do
+    TH.cls "Reflectable"
+
+  TH.mod "Data.Ring" do
+    TH.asPair do
+      TH.asString do TH.vars ["negate", "sub"]
+
+      TH.var "ringInt"
+      TH.var "ringNumber"
+
+  TH.mod "Data.Semigroup" do
+    TH.asPair do
+      TH.asIdent do TH.var "append"
+
+      TH.var "semigroupString"
+
+  TH.mod "Data.Semiring" do
+    TH.asPair do
+      TH.vars ["add", "mul", "one", "zero"]
+
+      TH.var "semiringInt"
+      TH.var "semiringNumber"
+
+  TH.mod "Data.Symbol" do
+    TH.cls "IsSymbol"
+
+  -- purescript-arrays
+
+  TH.mod "Data.Array" do
+    TH.asPair do TH.var "unsafeIndex"
+
+  -- purescript-bifunctors
+
+  TH.mod "Data.Bifunctor" do
+    TH.cls "Bifunctor" ; TH.asIdent do TH.asString do TH.var "bimap"
+    TH.asIdent do TH.vars ["lmap", "rmap"]
+
+  -- purescript-contravariant
+
+  TH.mod "Data.Functor.Contravariant" do
+    TH.cls "Contravariant" ; TH.asIdent do TH.asString do TH.var "cmap"
+
+  -- purescript-eff
+
+  TH.mod "Control.Monad.Eff" (P.pure ())
+
+  TH.mod "Control.Monad.Eff.Uncurried" do
+    TH.asPair do TH.vars ["mkEffFn", "runEffFn"]
+
+  -- purescript-effect
+
+  TH.mod "Effect" (P.pure ())
+
+  TH.mod "Effect.Uncurried" do
+    TH.asPair do TH.vars ["mkEffectFn", "runEffectFn"]
+
+  -- purescript-foldable-traversable
+
+  TH.mod "Data.Bifoldable" do
+    TH.cls "Bifoldable" ; TH.asIdent do TH.asString do TH.vars ["bifoldMap", "bifoldl", "bifoldr"]
+
+  TH.mod "Data.Bitraversable" do
+    TH.cls "Bitraversable" ; TH.asString do TH.asIdent (TH.var "bitraverse"); TH.var "bisequence"
+    TH.asIdent do
+      TH.vars ["ltraverse", "rtraverse"]
+
+  TH.mod "Data.Foldable" do
+    TH.cls "Foldable" ; TH.asIdent do TH.asString do TH.vars ["foldMap", "foldl", "foldr"]
+
+  TH.mod "Data.Traversable" do
+    TH.cls "Traversable" ; TH.asString do TH.asIdent (TH.var "traverse") ; TH.var "sequence"
+
+  -- purescript-functions
+
+  TH.mod "Data.Function.Uncurried" do
+    TH.asPair do TH.asString do TH.vars ["mkFn", "runFn"]
+
+  -- purescript-integers
+
+  TH.mod "Data.Int.Bits" do
+    TH.asPair do
+      TH.var "and"
+      TH.var "complement"
+      TH.var "or"
+      TH.var "shl"
+      TH.var "shr"
+      TH.var "xor"
+      TH.var "zshr"
+
+  -- purescript-newtype
+
+  TH.mod "Data.Newtype" do
+    TH.cls "Newtype"
+
+  -- purescript-partial
+
+  TH.mod "Partial.Unsafe" do
+    TH.asIdent do TH.asPair do TH.var "unsafePartial"
+
+  -- purescript-profunctor
+
+  TH.mod "Data.Profunctor" do
+    TH.cls "Profunctor" ; TH.asIdent do TH.asString do TH.var "dimap"
+    TH.asIdent do
+      TH.var "lcmap"
+      TH.prefixWith "profunctor" do TH.var "rmap"
+
+  -- purescript-st
+
+  TH.mod "Control.Monad.ST.Internal" do
+    TH.asPair do TH.vars ["modify", "new", "read", "run", "write"]
+
+  TH.mod "Control.Monad.ST.Uncurried" do
+    TH.asPair do TH.vars ["mkSTFn", "runSTFn"]
+
+  -- purescript-unsafe-coerce
+
+  TH.mod "Unsafe.Coerce" do
+    TH.asPair do TH.var "unsafeCoerce"
+
+  )
diff --git a/src/Language/PureScript/Constants/Prim.hs b/src/Language/PureScript/Constants/Prim.hs
new file mode 100644
--- /dev/null
+++ b/src/Language/PureScript/Constants/Prim.hs
@@ -0,0 +1,57 @@
+{-# LANGUAGE BlockArguments #-}
+{-# LANGUAGE TemplateHaskell #-}
+-- | Various constants which refer to things in Prim
+module Language.PureScript.Constants.Prim where
+
+import Language.PureScript.Names (ModuleName)
+import Language.PureScript.Constants.TH qualified as TH
+
+$(TH.declare do
+  TH.mod "Prim" do
+    TH.cls "Partial"
+    TH.ty "Array"
+    TH.ty "Boolean"
+    TH.ty "Char"
+    TH.ty "Constraint"
+    TH.ty "Function"
+    TH.ty "Int"
+    TH.ty "Number"
+    TH.ty "Record"
+    TH.ty "Row"
+    TH.ty "String"
+    TH.ty "Symbol"
+    TH.ty "Type"
+    TH.asIdent do TH.asString do TH.var "undefined"
+
+  TH.mod "Prim.Boolean" do
+    TH.tys ["False", "True"]
+
+  TH.mod "Prim.Coerce" do
+    TH.cls "Coercible"
+
+  TH.mod "Prim.Int" do
+    TH.prefixWith "Int" do TH.clss ["Add", "Compare", "Mul", "ToString"]
+
+  TH.mod "Prim.Ordering" do
+    TH.prefixWith "Type" do TH.ty "Ordering"
+    TH.tys ["EQ", "GT", "LT"]
+
+  TH.mod "Prim.Row" do
+    TH.prefixWith "Row" do TH.clss ["Cons", "Lacks", "Nub", "Union"]
+  
+  TH.mod "Prim.RowList" do
+    TH.ty "RowList"
+    TH.cls "RowToList"
+    TH.prefixWith "RowList" do TH.tys ["Cons", "Nil"]
+
+  TH.mod "Prim.Symbol" do
+    TH.prefixWith "Symbol" do TH.clss ["Append", "Compare", "Cons"]
+
+  TH.mod "Prim.TypeError" do
+    TH.clss ["Fail", "Warn"]
+    TH.tys ["Above", "Beside", "Doc", "Quote", "QuoteLabel", "Text"]
+
+  )
+
+primModules :: [ModuleName]
+primModules = [M_Prim, M_Prim_Boolean, M_Prim_Coerce, M_Prim_Ordering, M_Prim_Row, M_Prim_RowList, M_Prim_Symbol, M_Prim_Int, M_Prim_TypeError]
diff --git a/src/Language/PureScript/Constants/TH.hs b/src/Language/PureScript/Constants/TH.hs
new file mode 100644
--- /dev/null
+++ b/src/Language/PureScript/Constants/TH.hs
@@ -0,0 +1,224 @@
+{-# LANGUAGE TemplateHaskell #-}
+-- | This module implements an eDSL for compactly declaring pattern synonyms
+-- representing known PureScript modules and their members.
+--
+-- The following example assumes this module is imported qualified as TH and
+-- the BlockArguments extension is used, both of which I recommend.
+--
+-- > $(TH.declare do
+-- >   TH.mod "Data.Foo" do
+-- >     TH.ty "SomeType"
+-- >     TH.asIdent do
+-- >       TH.var "someVariable"
+-- >   )
+--
+-- will become:
+--
+-- > pattern M_Data_Foo :: ModuleName
+-- > pattern M_Data_Foo = ModuleName "Data.Foo"
+-- >
+-- > pattern SomeType :: Qualified (ProperName 'TypeName)
+-- > pattern SomeType = Qualified (ByModuleName M_Data_Foo) (ProperName "SomeType")
+-- >
+-- > pattern I_someVariable :: Qualified Ident
+-- > pattern I_someVariable = Qualified (ByModuleName M_Data_Foo) (Ident "someVariable")
+--
+-- All pattern synonyms must start with an uppercase letter. To prevent
+-- namespace collisions, different types of pattern are distinguished by a sort
+-- of Hungarian notation convention:
+--
+-- @
+--   SomeType   -- a type or class name
+--   C_Ctor     -- a constructor name
+--   I_name     -- a Qualified Ident
+--   M_Data_Foo -- a module name
+--   P_name     -- a (module name, polymorphic string) pair
+--   S_name     -- a lone polymorphic string (this doesn't contain any module information)
+-- @
+--
+-- I_, P_, and S_ patterns are all optional and have to be enabled with
+-- `asIdent`, `asPair`, and `asString` modifiers respectively.
+--
+-- Finally, to disambiguate between identifiers with the same name (such as
+-- Data.Function.apply and Data.Apply.apply), the `prefixWith` modifier will
+-- modify the names of the patterns created within it.
+--
+-- > TH.mod "Data.Function" do
+-- >   TH.prefixWith "function" do
+-- >     TH.asIdent do
+-- >       TH.var "apply"
+-- 
+-- results in:
+--
+-- > pattern I_functionApply :: Qualified Ident
+-- > pattern I_functionApply = Qualified (ByModuleName (M_Data_Function) (Ident "apply")
+--
+module Language.PureScript.Constants.TH
+  ( declare
+  , mod
+  , cls, clss
+  , dty
+  , nty, ntys
+  , ty, tys
+  , var, vars
+  , prefixWith
+  , asIdent
+  , asPair
+  , asString
+  ) where
+
+import Protolude hiding (Type, mod)
+
+import Control.Lens (over, _head)
+import Control.Monad.Trans.RWS (RWS, execRWS)
+import Control.Monad.Trans.Writer (Writer, execWriter)
+import Control.Monad.Writer.Class (tell)
+import Data.String (String)
+import Language.Haskell.TH (Dec, Name, Pat, Q, Type, conP, implBidir, litP, mkName, patSynD, patSynSigD, prefixPatSyn, stringL)
+import Language.PureScript.Names (Ident(..), ModuleName(..), ProperName(..), ProperNameType(..), Qualified(..), QualifiedBy(..))
+
+-- | Generate pattern synonyms corresponding to the provided PureScript
+-- declarations.
+declare :: Writer (Q [Dec]) () -> Q [Dec]
+declare = execWriter
+
+-- | Declare a module.
+mod :: String -> ModDecs -> Writer (Q [Dec]) ()
+mod mnStr inner = do
+  -- pattern M_Data_Foo :: ModuleName
+  -- pattern M_Data_Foo = ModuleName "Data.Foo"
+  let mn = mkModuleName mnStr
+  tell $ typedPatSyn mn [t| ModuleName |] [p| ModuleName $(litP $ stringL mnStr) |]
+  tell $ snd $ execRWS inner (mn, "", []) ()
+
+-- | Declare a type class. The resulting pattern will use the name of the class
+-- and have type `Qualified (ProperName 'ClassName)`.
+cls :: String -> ModDecs
+cls cn = ask >>= \(mn, prefix, _) -> tell $ mkPnPat [t| 'ClassName |] mn prefix cn
+
+-- | Declare a list of type classes; shorthand for repeatedly calling `cls`.
+clss :: [String] -> ModDecs
+clss = traverse_ cls
+
+-- | Declare a data type, given the name of the type and a list of constructor
+-- names. A pattern will be created using the name of the type and have type
+-- `Qualified (ProperName 'TypeName)`. A pattern will also be created for each
+-- constructor prefixed with "C_", having type `Qualified (ProperName
+-- 'ConstructorName)`.
+dty :: String -> [String] -> ModDecs
+dty dn ctors = ask >>= \(mn, prefix, _) -> do
+  tell $ mkPnPat [t| 'TypeName |] mn prefix dn
+  tell $ map fold $ traverse (mkPnPat [t| 'ConstructorName |] mn $ "C_" <> prefix) ctors
+
+-- | Declare a data type with a singular constructor named the same as the
+-- type, as is commonly the case with newtypes (but this does not require the
+-- type to be a newtype in reality). Shorthand for calling `dty`.
+nty :: String -> ModDecs
+nty tn = dty tn [tn]
+
+-- | Declare a list of data types with singular constructors; shorthand for
+-- repeatedly calling `nty`, which itself is shorthand for `dty`.
+ntys :: [String] -> ModDecs
+ntys = traverse_ nty
+
+-- | Declare a type. The resulting pattern will use the name of the type and have
+-- type `Qualified (ProperName 'TypeName)`.
+ty :: String -> ModDecs
+ty tn = ask >>= \(mn, prefix, _) -> tell $ mkPnPat [t| 'TypeName |] mn prefix tn
+
+-- | Declare a list of types; shorthand for repeatedly calling `ty`.
+tys :: [String] -> ModDecs
+tys = traverse_ ty
+
+-- | Declare a variable, function, named instance, or generally a lower-case
+-- value member of a module. The patterns created depend on which of `asPair`,
+-- `asIdent`, or `asString` are used in the enclosing context.
+var :: String -> ModDecs
+var nm = ask >>= \(mn, prefix, vtds) -> tell $ foldMap (\f -> f mn prefix nm) vtds
+
+-- | Declare a list of variables; shorthand for repeatedly calling `var`.
+vars :: [String] -> ModDecs
+vars = traverse_ var
+
+-- | For every variable declared within, create a pattern synonym prefixed
+-- with "P_" having type `forall a. (Eq a, IsString a) => (ModuleName, a)`.
+asPair :: ModDecs -> ModDecs
+asPair = local $ addToVars mkPairDec
+
+-- | For every variable declared within, cerate a pattern synonym prefixed
+-- with "I_" having type `Qualified Ident`.
+asIdent :: ModDecs -> ModDecs
+asIdent = local $ addToVars mkIdentDec
+
+-- | For every variable declared within, cerate a pattern synonym prefixed
+-- with "S_" having type `forall a. (Eq a, IsString a) => a`.
+asString :: ModDecs -> ModDecs
+asString = local $ addToVars mkStringDec
+
+-- | Prefix the names of all enclosed declarations with the provided string, to
+-- prevent collisions with other identifiers. For example,
+-- `prefixWith "function"` would turn `I_apply` into `I_functionApply`, and
+-- `C_Example` into `C_FunctionExample`.
+prefixWith :: String -> ModDecs -> ModDecs
+prefixWith = local . applyPrefix
+
+-- Internals start here
+
+type ModDecs = RWS (Name, String, [VarToDec]) (Q [Dec]) () ()
+type VarToDec = Name -> String -> String -> Q [Dec]
+
+addToVars :: VarToDec -> (a, b, [VarToDec]) -> (a, b, [VarToDec])
+addToVars f (a, b, fs) = (a, b, f : fs)
+
+applyPrefix :: String -> (a, String, c) -> (a, String, c)
+applyPrefix prefix (a, prefix', c) = (a, camelAppend prefix' prefix, c)
+
+cap :: String -> String
+cap = over _head toUpper
+
+camelAppend :: String -> String -> String
+camelAppend l r = if null l then r else l <> cap r
+
+-- "Data.Foo" -> M_Data_Foo
+mkModuleName :: String -> Name
+mkModuleName = mkName . ("M_" <>) . map (\case '.' -> '_'; other -> other)
+
+-- "I_" -> "fn" -> "foo" -> I_fnFoo
+-- "I_" -> ""   -> "foo" -> I_foo
+mkPrefixedName :: String -> String -> String -> Name
+mkPrefixedName tag prefix = mkName . (tag <>) . camelAppend prefix
+
+-- 'TypeName -> M_Data_Foo -> "Function" -> "Foo" ->
+--   pattern FunctionFoo :: Qualified (ProperName 'TypeName)
+--   pattern FunctionFoo = Qualified (ByModuleName M_Data_Foo) (ProperName "Foo")
+mkPnPat :: Q Type -> VarToDec
+mkPnPat pnType mn prefix str = typedPatSyn (mkName $ cap prefix <> str)
+  [t| Qualified (ProperName $pnType) |]
+  [p| Qualified (ByModuleName $(conP mn [])) (ProperName $(litP $ stringL str)) |]
+
+-- M_Data_Foo -> "function" -> "foo" ->
+--   pattern I_functionFoo :: Qualified Ident
+--   pattern I_functionFoo = Qualified (ByModuleName M_Data_Foo) (Ident "foo")
+mkIdentDec :: VarToDec
+mkIdentDec mn prefix str = typedPatSyn (mkPrefixedName "I_" prefix str)
+  [t| Qualified Ident |]
+  [p| Qualified (ByModuleName $(conP mn [])) (Ident $(litP $ stringL str)) |]
+
+-- M_Data_Foo -> "function" -> "foo" ->
+--   pattern P_functionFoo :: forall a. (Eq a, IsString a) => (ModuleName, a)
+--   pattern P_functionFoo = (M_Data_Foo, "foo")
+mkPairDec :: VarToDec
+mkPairDec mn prefix str = typedPatSyn (mkPrefixedName "P_" prefix str)
+  [t| forall a. (Eq a, IsString a) => (ModuleName, a) |]
+  [p| ($(conP mn []), $(litP $ stringL str)) |]
+
+-- _ -> "function" -> "foo" ->
+--   pattern S_functionFoo :: forall a. (Eq a, IsString a) => a
+--   pattern S_functionFoo = "foo"
+mkStringDec :: VarToDec
+mkStringDec _ prefix str = typedPatSyn (mkPrefixedName "S_" prefix str)
+  [t| forall a. (Eq a, IsString a) => a |]
+  (litP $ stringL str)
+
+typedPatSyn :: Name -> Q Type -> Q Pat -> Q [Dec]
+typedPatSyn nm t p = sequence [patSynSigD nm t, patSynD nm (prefixPatSyn []) implBidir p]
diff --git a/src/Language/PureScript/CoreFn/Ann.hs b/src/Language/PureScript/CoreFn/Ann.hs
--- a/src/Language/PureScript/CoreFn/Ann.hs
+++ b/src/Language/PureScript/CoreFn/Ann.hs
@@ -1,25 +1,24 @@
 module Language.PureScript.CoreFn.Ann where
 
-import Prelude.Compat
+import Prelude
 
-import Language.PureScript.AST.SourcePos
-import Language.PureScript.Comments
-import Language.PureScript.CoreFn.Meta
-import Language.PureScript.Types
+import Language.PureScript.AST.SourcePos (SourceSpan)
+import Language.PureScript.Comments (Comment)
+import Language.PureScript.CoreFn.Meta (Meta)
 
 -- |
 -- Type alias for basic annotations
 --
-type Ann = (SourceSpan, [Comment], Maybe SourceType, Maybe Meta)
+type Ann = (SourceSpan, [Comment], Maybe Meta)
 
 -- |
 -- An annotation empty of metadata aside from a source span.
 --
 ssAnn :: SourceSpan -> Ann
-ssAnn ss = (ss, [], Nothing, Nothing)
+ssAnn ss = (ss, [], Nothing)
 
 -- |
 -- Remove the comments from an annotation
 --
 removeComments :: Ann -> Ann
-removeComments (ss, _, ty, meta) = (ss, [], ty, meta)
+removeComments (ss, _, meta) = (ss, [], meta)
diff --git a/src/Language/PureScript/CoreFn/Binders.hs b/src/Language/PureScript/CoreFn/Binders.hs
--- a/src/Language/PureScript/CoreFn/Binders.hs
+++ b/src/Language/PureScript/CoreFn/Binders.hs
@@ -3,10 +3,10 @@
 --
 module Language.PureScript.CoreFn.Binders where
 
-import Prelude.Compat
+import Prelude
 
-import Language.PureScript.AST.Literals
-import Language.PureScript.Names
+import Language.PureScript.AST.Literals (Literal)
+import Language.PureScript.Names (Ident, ProperName, ProperNameType(..), Qualified)
 
 -- |
 -- Data type for binders
@@ -31,7 +31,7 @@
   -- |
   -- A binder which binds its input to an identifier
   --
-  | NamedBinder a Ident (Binder a) deriving (Show, Functor)
+  | NamedBinder a Ident (Binder a) deriving (Eq, Ord, Show, Functor)
 
 
 extractBinderAnn :: Binder a -> a
diff --git a/src/Language/PureScript/CoreFn/CSE.hs b/src/Language/PureScript/CoreFn/CSE.hs
new file mode 100644
--- /dev/null
+++ b/src/Language/PureScript/CoreFn/CSE.hs
@@ -0,0 +1,442 @@
+{-# LANGUAGE TemplateHaskell #-}
+-- | This module performs limited common subexpression elimination
+module Language.PureScript.CoreFn.CSE (optimizeCommonSubexpressions) where
+
+import Protolude hiding (pass)
+
+import Control.Lens (At(..), makeLenses, non, view, (%~), (.=), (.~), (<>~), (^.))
+import Control.Monad.Supply (Supply)
+import Control.Monad.Supply.Class (MonadSupply)
+import Control.Monad.RWS (MonadWriter, RWST, censor, evalRWST, listen, pass, tell)
+import Data.Bitraversable (bitraverse)
+import Data.Functor.Compose (Compose(..))
+import Data.IntMap.Monoidal qualified as IM
+import Data.IntSet qualified as IS
+import Data.Map.Strict qualified as M
+import Data.Maybe (fromJust)
+import Data.Semigroup (Min(..))
+import Data.Semigroup.Generic (GenericSemigroupMonoid(..))
+
+import Language.PureScript.AST.Literals (Literal(..))
+import Language.PureScript.AST.SourcePos (nullSourceSpan)
+import Language.PureScript.Constants.Libs qualified as C
+import Language.PureScript.CoreFn.Ann (Ann)
+import Language.PureScript.CoreFn.Binders (Binder(..))
+import Language.PureScript.CoreFn.Expr (Bind(..), CaseAlternative(..), Expr(..))
+import Language.PureScript.CoreFn.Meta (Meta(IsSyntheticApp))
+import Language.PureScript.CoreFn.Traversals (everywhereOnValues, traverseCoreFn)
+import Language.PureScript.Environment (dictTypeName)
+import Language.PureScript.Names (pattern ByNullSourcePos, Ident(..), ModuleName, ProperName(..), Qualified(..), QualifiedBy(..), freshIdent, runIdent, toMaybeModuleName)
+import Language.PureScript.PSString (decodeString)
+
+-- |
+-- `discuss f m` is an action that listens to the output of `m`, passes that
+-- and its value through `f`, and uses (only) the value of the result to set
+-- the new value and output. (Any output produced via the monad in `f` is
+-- ignored, though other monadic effects will hold.)
+--
+discuss :: MonadWriter w m => ((a, w) -> m (b, w)) -> m a -> m b
+discuss f = pass . fmap (second const) . (f <=< listen)
+
+-- |
+-- Modify the target of an optic in the state with a monadic computation that
+-- returns some extra information of type `r` in a tuple.
+--
+-- I would prefer that this be a named function, but I don't know what to name
+-- it. I went with symbols instead because the function that this operator most
+-- resembles is `(%%=)`, which doesn't have a textual name as far as I know.
+-- Compare the following (approximate) types:
+--
+-- @
+-- (%%=)  :: MonadState s m => Lens s s a b -> (a ->   (r, b)) -> m r
+-- (%%<~) :: MonadState s m => Lens s s a b -> (a -> m (r, b)) -> m r
+-- @
+--
+-- Replacing the `=` with `<~` was inspired by analogy with the following pair:
+--
+-- @
+-- (.=) :: MonadState s m => Lens s s a b ->   b -> m ()
+-- (<~) :: MonadState s m => Lens s s a b -> m b -> m ()
+-- @
+--
+-- I regret any confusion that ensues.
+--
+-- Note that there are two interpretations that could reasonably be expected
+-- for this type.
+--
+-- @
+-- (%%<~) :: MonadState s m => Lens s s a b -> (a -> m (r, b)) -> m r
+-- @
+--
+-- One is:
+-- * Get the focused `a` value from the monad
+-- * Run the computation
+-- * Get the new state from the returned monad
+-- * Take the returned `b` value and set it in the new state
+--
+-- The other is:
+-- * Get the focused `a` value from the monad
+-- * Run the computation
+-- * Take the returned `b` value and set it in the *original* state
+-- * Put the result into the returned monad
+--
+-- This operator corresponds to the second interpretation. The purpose of this,
+-- and part of the purpose of having this operator at all instead of composing
+-- simpler operators, is to enable using the lens only once (on the original
+-- state) instead of twice (for a get and a set on different states).
+--
+(%%<~)
+  :: MonadState s m
+  => ((a -> Compose m ((,) r) b) -> s -> Compose m ((,) r) s)
+     -- ^ please read as Lens s s a b
+  -> (a -> m (r, b))
+  -> m r
+l %%<~ f = get >>= getCompose . l (Compose . f) >>= state . const
+infix 4 %%<~
+
+-- |
+-- A PluralityMap is like a weaker multiset: like a multiset, it can hold
+-- several of the same value, but instead of keeping track of their exact
+-- counts, it only records whether there is one (False) or more than one
+-- (True).
+--
+newtype PluralityMap k = PluralityMap { getPluralityMap :: M.Map k Bool }
+
+instance Ord k => Semigroup (PluralityMap k) where
+  PluralityMap l <> PluralityMap r =
+    let
+      l' = M.mapWithKey (\k -> (|| k `M.member` r)) l
+    in PluralityMap $ l' `M.union` r
+
+instance Ord k => Monoid (PluralityMap k) where
+  mempty = PluralityMap M.empty
+
+data BindingType = NonRecursive | Recursive deriving Eq
+
+-- |
+-- Record summary data about an expression.
+--
+data CSESummary = CSESummary
+  { _scopesUsed    :: IS.IntSet
+    -- ^ set of the scope numbers used in this expression
+  , _noFloatWithin :: Maybe (Min Int)
+    -- ^ optionally a scope within which this expression is not to be floated
+    -- (because the expression uses an identifier bound recursively in that
+    -- scope)
+  , _plurality     :: PluralityMap Ident
+    -- ^ which floated identifiers are used more than once in this expression
+    -- (note that a single use inside an Abs will be considered multiple uses,
+    -- as this pass doesn't know when/how many times an Abs will be executed)
+  , _newBindings   :: IM.MonoidalIntMap [(Ident, (PluralityMap Ident, Expr Ann))]
+    -- ^ floated bindings, organized by scope number
+  , _toBeReinlined :: M.Map Ident (Expr Ann)
+    -- ^ a map of floated identifiers that did not end up getting bound and
+    -- will need to be reinlined at the end of the pass
+  }
+  deriving Generic
+  deriving (Semigroup, Monoid) via GenericSemigroupMonoid CSESummary
+
+-- |
+-- Append a value at a given scope depth.
+--
+addToScope :: Semigroup v => Int -> v -> IM.MonoidalIntMap v -> IM.MonoidalIntMap v
+addToScope depth v
+  = IM.alter (Just . maybe v (<> v)) depth
+
+-- |
+-- Remove and return an entire scope from a map of bindings.
+--
+popScope :: Monoid v => Int -> IM.MonoidalIntMap v -> (v, IM.MonoidalIntMap v)
+popScope depth
+  = first fold . IM.updateLookupWithKey (\_ _ -> Nothing) depth
+
+-- |
+-- Describe the context of an expression.
+--
+data CSEEnvironment = CSEEnvironment
+  { _depth :: Int
+    -- ^ number of enclosing binding scopes (this includes not only Abs, but
+    -- Let and CaseAlternative bindings)
+  , _deepestTopLevelScope :: Int
+    -- ^ number of enclosing binding scopes outside the first Abs; used to
+    -- decide whether to qualify floated identifiers
+  , _bound :: M.Map Ident (Int, BindingType)
+    -- ^ map from identifiers to depth in which they are bound and whether
+    -- or not the binding is recursive
+  }
+
+makeLenses ''CSESummary
+makeLenses ''CSEEnvironment
+
+-- |
+-- Map from the shape of an expression to an identifier created to represent
+-- that expression, organized by scope depth.
+--
+type CSEState = IM.MonoidalIntMap (M.Map (Expr ()) Ident)
+
+-- |
+-- The monad in which CSE takes place.
+--
+type CSEMonad a = RWST CSEEnvironment CSESummary CSEState Supply a
+
+type HasCSEReader = MonadReader CSEEnvironment
+type HasCSEWriter = MonadWriter CSESummary
+type HasCSEState = MonadState CSEState
+
+-- |
+-- Run a CSEMonad computation; the return value is augmented with a map of
+-- identifiers that should be replaced in the final expression because they
+-- didn't end up needing to be floated.
+--
+runCSEMonad :: CSEMonad a -> Supply (a, M.Map Ident (Expr Ann))
+runCSEMonad x = second (^. toBeReinlined) <$> evalRWST x (CSEEnvironment 0 0 M.empty) IM.empty
+
+-- |
+-- Mark all expressions floated out of this computation as "plural". This pass
+-- assumes that any given Abs may be invoked multiple times, so any expressions
+-- inside the Abs but floated out of it also count as having multiple uses,
+-- even if they only appear once within the Abs. Consequently, any expressions
+-- that can be floated out of an Abs won't be reinlined at the end.
+--
+enterAbs :: HasCSEWriter m => m a -> m a
+enterAbs = censor $ plurality %~ PluralityMap . fmap (const True) . getPluralityMap
+
+-- |
+-- Run the provided computation in a new scope.
+--
+newScope :: (HasCSEReader m, HasCSEWriter m) => Bool -> (Int -> m a) -> m a
+newScope isTopLevel body = local goDeeper $ do
+  d <- view depth
+  censor (filterToDepth d) (body d)
+  where
+  filterToDepth d
+    = (scopesUsed %~ IS.filter (< d))
+    . (noFloatWithin %~ find (< Min d))
+  goDeeper env@CSEEnvironment{..} =
+    if isTopLevel
+    then env{ _depth = depth', _deepestTopLevelScope = depth' }
+    else env{ _depth = depth' }
+    where
+    depth' = succ _depth
+
+-- |
+-- Record a list of identifiers as being bound in the given scope.
+--
+withBoundIdents :: HasCSEReader m => [Ident] -> (Int, BindingType) -> m a -> m a
+withBoundIdents idents t = local (bound %~ flip (foldl' (flip (flip M.insert t))) idents)
+
+-- |
+-- Run the provided computation in a new scope in which the provided
+-- identifiers are bound non-recursively.
+--
+newScopeWithIdents :: (HasCSEReader m, HasCSEWriter m) => Bool -> [Ident] -> m a -> m a
+newScopeWithIdents isTopLevel idents = newScope isTopLevel . flip (withBoundIdents idents . (, NonRecursive))
+
+-- |
+-- Produce, or retrieve from the state, an identifier for referencing the given
+-- expression, at and below the given depth.
+--
+generateIdentFor :: (HasCSEState m, MonadSupply m) => Int -> Expr () -> m (Bool, Ident)
+generateIdentFor d e = at d . non mempty . at e %%<~ \case
+  Nothing    -> freshIdent (nameHint e) <&> \ident -> ((True, ident), Just ident)
+  Just ident -> pure ((False, ident), Just ident)
+  -- A reminder: as with %%=, the first element of the returned pair is the
+  -- final result of the expression, and the second element is the value to
+  -- stuff back through the lens into the state. (The difference is that %%<~
+  -- enables doing monadic work in the RHS, namely `freshIdent` here.)
+  where
+  nameHint = \case
+    App _ v1 v2
+      | Var _ n <- v1
+      , fmap (ProperName . runIdent) n == fmap dictTypeName C.IsSymbol
+      , Literal _ (ObjectLiteral [(_, Abs _ _ (Literal _ (StringLiteral str)))]) <- v2
+      , Just decodedStr <- decodeString str
+        -> decodedStr <> "IsSymbol"
+      | otherwise
+        -> nameHint v1
+    Var _ (Qualified _ ident)
+      | Ident name             <- ident -> name
+      | GenIdent (Just name) _ <- ident -> name
+    Accessor _ prop _
+      | Just decodedProp <- decodeString prop -> decodedProp
+    _ -> "ref"
+
+nullAnn :: Ann
+nullAnn = (nullSourceSpan, [], Nothing)
+
+-- |
+-- Use a map to substitute local Vars in a list of Binds.
+--
+replaceLocals :: M.Map Ident (Expr Ann) -> [Bind Ann] -> [Bind Ann]
+replaceLocals m = if M.null m then identity else map f' where
+  (f', g', _) = everywhereOnValues identity f identity
+  f e@(Var _ (Qualified _ ident)) = maybe e g' $ ident `M.lookup` m
+  f e = e
+
+-- |
+-- Store in the monad a new binding for the given expression, returning a Var
+-- referencing it. The provided CSESummary will be transformed to reflect the
+-- replacement.
+--
+floatExpr
+  :: (HasCSEReader m, HasCSEState m, MonadSupply m)
+  => QualifiedBy
+  -> (Expr Ann, CSESummary)
+  -> m (Expr Ann, CSESummary)
+floatExpr topLevelQB = \case
+  (e, w@CSESummary{ _noFloatWithin = Nothing, .. }) -> do
+    let deepestScope = if IS.null _scopesUsed then 0 else IS.findMax _scopesUsed
+    (isNew, ident) <- generateIdentFor deepestScope (void e)
+    topLevel <- view deepestTopLevelScope
+    let qb = if deepestScope > topLevel then ByNullSourcePos else topLevelQB
+    let w' = w
+          & (if isNew then newBindings %~ addToScope deepestScope [(ident, (_plurality, e))] else identity)
+          & plurality .~ PluralityMap (M.singleton ident False)
+    pure (Var nullAnn (Qualified qb ident), w')
+  (e, w) -> pure (e, w)
+
+-- |
+-- Take possession of the Binds intended to be added to the current scope,
+-- removing them from the state, and return the list of Binds along with
+-- whatever value is returned by the provided computation.
+--
+getNewBinds
+  :: (HasCSEReader m, HasCSEState m, HasCSEWriter m)
+  => m a
+  -> m ([Bind Ann], a)
+getNewBinds =
+  discuss $ \(a, w) -> do
+    d <- view depth
+    at d .= Nothing
+    let (floatedHere, w') = newBindings (popScope d) w
+    pure $ first (, a) $ foldr handleFloat ([], w') floatedHere
+  where
+  handleFloat (ident, (p, e)) (bs, w) =
+    if fromJust . M.lookup ident . getPluralityMap $ w ^. plurality
+    then (NonRec nullAnn ident e : bs, w')
+    else (bs, w' & toBeReinlined %~ M.insert ident e)
+    where w' = w & plurality <>~ p
+
+-- |
+-- Like getNewBinds, but also stores the Binds in a Let wrapping the provided
+-- expression. If said expression is already a Let, adds these Binds to that
+-- Let instead.
+--
+getNewBindsAsLet
+  :: (HasCSEReader m, HasCSEWriter m, HasCSEState m)
+  => m (Expr Ann)
+  -> m (Expr Ann)
+getNewBindsAsLet = fmap (uncurry go) . getNewBinds where
+  go bs = if null bs then identity else \case
+    Let a bs' e' -> Let a (bs ++ bs') e'
+    e'           -> Let nullAnn bs e'
+
+-- |
+-- Feed the Writer part of the monad with the requirements of this name.
+--
+summarizeName
+  :: (HasCSEReader m, HasCSEWriter m)
+  => ModuleName
+  -> Qualified Ident
+  -> m ()
+summarizeName mn (Qualified mn' ident) = do
+  m <- view bound
+  let (s, bt) =
+        fromMaybe (0, NonRecursive) $
+          guard (all (== mn) (toMaybeModuleName mn')) *> ident `M.lookup` m
+  tell $ mempty
+       & scopesUsed .~ IS.singleton s
+       & noFloatWithin .~ (guard (bt == Recursive) $> Min s)
+
+-- |
+-- Collect all the Idents put in scope by a list of Binders.
+--
+identsFromBinders :: [Binder a] -> [Ident]
+identsFromBinders = foldMap identsFromBinder where
+  identsFromBinder = \case
+    LiteralBinder _ (ArrayLiteral xs)  -> identsFromBinders xs
+    LiteralBinder _ (ObjectLiteral xs) -> identsFromBinders (map snd xs)
+    VarBinder _ ident                  -> [ident]
+    ConstructorBinder _ _ _ xs         -> identsFromBinders xs
+    NamedBinder _ ident x              -> ident : identsFromBinder x
+    LiteralBinder _ BooleanLiteral{}   -> []
+    LiteralBinder _ CharLiteral{}      -> []
+    LiteralBinder _ NumericLiteral{}   -> []
+    LiteralBinder _ StringLiteral{}    -> []
+    NullBinder{}                       -> []
+
+-- |
+-- Float synthetic Apps (right now, the only Apps marked as synthetic are type
+-- class dictionaries being fed to functions with constraints, superclass
+-- accessors, and instances of IsSymbol) to a new or existing Let as close to
+-- the top level as possible.
+--
+optimizeCommonSubexpressions :: ModuleName -> [Bind Ann] -> Supply [Bind Ann]
+optimizeCommonSubexpressions mn
+  = fmap (uncurry (flip replaceLocals))
+  . runCSEMonad
+  . fmap (uncurry (++))
+  . getNewBinds
+  . fmap fst
+  . handleBinds True (pure ())
+
+  where
+
+  -- This is the one place (I think?) that keeps this from being a general
+  -- common subexpression elimination pass.
+  shouldFloatExpr :: Expr Ann -> Bool
+  shouldFloatExpr = \case
+    App (_, _, Just IsSyntheticApp) e _ -> isSimple e
+    _                                   -> False
+
+  isSimple :: Expr Ann -> Bool
+  isSimple = \case
+    Var{}          -> True
+    Accessor _ _ e -> isSimple e
+    _              -> False
+
+  handleAndWrapExpr :: Expr Ann -> CSEMonad (Expr Ann)
+  handleAndWrapExpr = getNewBindsAsLet . handleExpr
+
+  (handleBind, handleExprDefault, handleBinder, _) = traverseCoreFn handleBind handleExpr handleBinder handleCaseAlternative
+
+  topLevelQB = ByModuleName mn
+
+  handleExpr :: Expr Ann -> CSEMonad (Expr Ann)
+  handleExpr = discuss (ifM (shouldFloatExpr . fst) (floatExpr topLevelQB) pure) . \case
+    Abs a ident e   -> enterAbs $ Abs a ident <$> newScopeWithIdents False [ident] (handleAndWrapExpr e)
+    v@(Var _ qname) -> summarizeName mn qname $> v
+    Let a bs e      -> uncurry (Let a) <$> handleBinds False (handleExpr e) bs
+    x               -> handleExprDefault x
+
+  handleCaseAlternative :: CaseAlternative Ann -> CSEMonad (CaseAlternative Ann)
+  handleCaseAlternative (CaseAlternative bs x) = CaseAlternative bs <$> do
+    newScopeWithIdents False (identsFromBinders bs) $
+      bitraverse (traverse $ bitraverse handleAndWrapExpr handleAndWrapExpr) handleAndWrapExpr x
+
+  handleBinds :: forall a. Bool -> CSEMonad a -> [Bind Ann] -> CSEMonad ([Bind Ann], a)
+  handleBinds isTopLevel = foldr go . fmap pure where
+    go :: Bind Ann -> CSEMonad ([Bind Ann], a) -> CSEMonad ([Bind Ann], a)
+    go b inner = case b of
+      -- For a NonRec Bind, traverse the bound expression in the current scope
+      -- and then create a new scope for any remaining Binds and/or whatever
+      -- inner thing all these Binds are applied to.
+      NonRec a ident e -> do
+        e' <- handleExpr e
+        newScopeWithIdents isTopLevel [ident] $
+          prependToNewBindsFromInner $ NonRec a ident e'
+      Rec es ->
+        -- For a Rec Bind, the bound expressions need a new scope in which all
+        -- these identifiers are bound recursively; then the remaining Binds
+        -- and the inner thing can be traversed in the same scope with the same
+        -- identifiers now bound non-recursively.
+        newScope isTopLevel $ \d -> do
+          let idents = map (snd . fst) es
+          es' <- withBoundIdents idents (d, Recursive) $ traverse (traverse handleExpr) es
+          withBoundIdents idents (d, NonRecursive) $
+            prependToNewBindsFromInner $ Rec es'
+
+      where
+
+      prependToNewBindsFromInner :: Bind Ann -> CSEMonad ([Bind Ann], a)
+      prependToNewBindsFromInner hd = first (hd :) . join <$> getNewBinds inner
diff --git a/src/Language/PureScript/CoreFn/Desugar.hs b/src/Language/PureScript/CoreFn/Desugar.hs
--- a/src/Language/PureScript/CoreFn/Desugar.hs
+++ b/src/Language/PureScript/CoreFn/Desugar.hs
@@ -1,33 +1,33 @@
 module Language.PureScript.CoreFn.Desugar (moduleToCoreFn) where
 
-import Prelude.Compat
-import Protolude (ordNub)
+import Prelude
+import Protolude (ordNub, orEmpty)
 
 import Control.Arrow (second)
 
 import Data.Function (on)
-import Data.List (sort, sortBy)
 import Data.Maybe (mapMaybe)
 import Data.Tuple (swap)
-import qualified Data.List.NonEmpty as NEL
-import qualified Data.Map as M
+import Data.List.NonEmpty qualified as NEL
+import Data.Map qualified as M
 
-import Language.PureScript.AST.Literals
-import Language.PureScript.AST.SourcePos
-import Language.PureScript.AST.Traversals
-import Language.PureScript.Comments
-import Language.PureScript.CoreFn.Ann
-import Language.PureScript.CoreFn.Binders
-import Language.PureScript.CoreFn.Expr
-import Language.PureScript.CoreFn.Meta
-import Language.PureScript.CoreFn.Module
-import Language.PureScript.Crash
-import Language.PureScript.Environment
-import Language.PureScript.Names
-import Language.PureScript.Sugar.TypeClasses (typeClassMemberName, superClassDictionaryNames)
-import Language.PureScript.Types
-import Language.PureScript.PSString (mkString)
-import qualified Language.PureScript.AST as A
+import Language.PureScript.AST.Literals (Literal(..))
+import Language.PureScript.AST.SourcePos (pattern NullSourceSpan, SourceSpan(..))
+import Language.PureScript.AST.Traversals (everythingOnValues)
+import Language.PureScript.Comments (Comment)
+import Language.PureScript.CoreFn.Ann (Ann, ssAnn)
+import Language.PureScript.CoreFn.Binders (Binder(..))
+import Language.PureScript.CoreFn.Expr (Bind(..), CaseAlternative(..), Expr(..), Guard)
+import Language.PureScript.CoreFn.Meta (ConstructorType(..), Meta(..))
+import Language.PureScript.CoreFn.Module (Module(..))
+import Language.PureScript.Crash (internalError)
+import Language.PureScript.Environment (DataDeclType(..), Environment(..), NameKind(..), isDictTypeName, lookupConstructor, lookupValue)
+import Language.PureScript.Label (Label(..))
+import Language.PureScript.Names (pattern ByNullSourcePos, Ident(..), ModuleName, ProperName(..), ProperNameType(..), Qualified(..), QualifiedBy(..), getQual)
+import Language.PureScript.PSString (PSString)
+import Language.PureScript.Types (pattern REmptyKinded, SourceType, Type(..))
+import Language.PureScript.AST qualified as A
+import Language.PureScript.Constants.Prim qualified as C
 
 -- | Desugars a module from AST to CoreFn representation.
 moduleToCoreFn :: Environment -> A.Module -> Module Ann
@@ -37,85 +37,114 @@
   let imports = mapMaybe importToCoreFn decls ++ fmap (ssAnn modSS,) (findQualModules decls)
       imports' = dedupeImports imports
       exps' = ordNub $ concatMap exportToCoreFn exps
+      reExps = M.map ordNub $ M.unionsWith (++) (mapMaybe (fmap reExportsToCoreFn . toReExportRef) exps)
       externs = ordNub $ mapMaybe externToCoreFn decls
       decls' = concatMap declToCoreFn decls
-  in Module modSS coms mn (spanName modSS) imports' exps' externs decls'
-
+  in Module modSS coms mn (spanName modSS) imports' exps' reExps externs decls'
   where
+  -- Creates a map from a module name to the re-export references defined in
+  -- that module.
+  reExportsToCoreFn :: (ModuleName, A.DeclarationRef) -> M.Map ModuleName [Ident]
+  reExportsToCoreFn (mn', ref') = M.singleton mn' (exportToCoreFn ref')
 
-  -- | Remove duplicate imports
+  toReExportRef :: A.DeclarationRef -> Maybe (ModuleName, A.DeclarationRef)
+  toReExportRef (A.ReExportRef _ src ref) =
+      fmap
+        (, ref)
+        (A.exportSourceImportedFrom src)
+  toReExportRef _ = Nothing
+
+  -- Remove duplicate imports
   dedupeImports :: [(Ann, ModuleName)] -> [(Ann, ModuleName)]
   dedupeImports = fmap swap . M.toList . M.fromListWith const . fmap swap
 
   ssA :: SourceSpan -> Ann
-  ssA ss = (ss, [], Nothing, Nothing)
+  ssA ss = (ss, [], Nothing)
 
-  -- | Desugars member declarations from AST to CoreFn representation.
+  -- Desugars member declarations from AST to CoreFn representation.
   declToCoreFn :: A.Declaration -> [Bind Ann]
-  declToCoreFn (A.DataDeclaration (ss, com) Newtype _ _ [(ctor, _)]) =
-    [NonRec (ssA ss) (properToIdent ctor) $
-      Abs (ss, com, Nothing, Just IsNewtype) (Ident "x") (Var (ssAnn ss) $ Qualified Nothing (Ident "x"))]
+  declToCoreFn (A.DataDeclaration (ss, com) Newtype _ _ [ctor]) =
+    [NonRec (ss, [], declMeta) (properToIdent $ A.dataCtorName ctor) $
+      Abs (ss, com, Just IsNewtype) (Ident "x") (Var (ssAnn ss) $ Qualified ByNullSourcePos (Ident "x"))]
+    where
+    declMeta = isDictTypeName (A.dataCtorName ctor) `orEmpty` IsTypeClassConstructor
   declToCoreFn d@(A.DataDeclaration _ Newtype _ _ _) =
     error $ "Found newtype with multiple constructors: " ++ show d
   declToCoreFn (A.DataDeclaration (ss, com) Data tyName _ ctors) =
-    flip fmap ctors $ \(ctor, _) ->
-      let (_, _, _, fields) = lookupConstructor env (Qualified (Just mn) ctor)
-      in NonRec (ssA ss) (properToIdent ctor) $ Constructor (ss, com, Nothing, Nothing) tyName ctor fields
+    flip fmap ctors $ \ctorDecl ->
+      let
+        ctor = A.dataCtorName ctorDecl
+        (_, _, _, fields) = lookupConstructor env (Qualified (ByModuleName mn) ctor)
+      in NonRec (ssA ss) (properToIdent ctor) $ Constructor (ss, com, Nothing) tyName ctor fields
   declToCoreFn (A.DataBindingGroupDeclaration ds) =
     concatMap declToCoreFn ds
   declToCoreFn (A.ValueDecl (ss, com) name _ _ [A.MkUnguarded e]) =
     [NonRec (ssA ss) name (exprToCoreFn ss com Nothing e)]
   declToCoreFn (A.BindingGroupDeclaration ds) =
     [Rec . NEL.toList $ fmap (\(((ss, com), name), _, e) -> ((ssA ss, name), exprToCoreFn ss com Nothing e)) ds]
-  declToCoreFn (A.TypeClassDeclaration sa@(ss, _) name _ supers _ members) =
-    [NonRec (ssA ss) (properToIdent name) $ mkTypeClassConstructor sa supers members]
   declToCoreFn _ = []
 
-  -- | Desugars expressions from AST to CoreFn representation.
+  -- Desugars expressions from AST to CoreFn representation.
   exprToCoreFn :: SourceSpan -> [Comment] -> Maybe SourceType -> A.Expr -> Expr Ann
-  exprToCoreFn _ com ty (A.Literal ss lit) =
-    Literal (ss, com, ty, Nothing) (fmap (exprToCoreFn ss com Nothing) lit)
-  exprToCoreFn ss com ty (A.Accessor name v) =
-    Accessor (ss, com, ty, Nothing) name (exprToCoreFn ss [] Nothing v)
+  exprToCoreFn _ com _ (A.Literal ss lit) =
+    Literal (ss, com, Nothing) (fmap (exprToCoreFn ss com Nothing) lit)
+  exprToCoreFn ss com _ (A.Accessor name v) =
+    Accessor (ss, com, Nothing) name (exprToCoreFn ss [] Nothing v)
   exprToCoreFn ss com ty (A.ObjectUpdate obj vs) =
-    ObjectUpdate (ss, com, ty, Nothing) (exprToCoreFn ss [] Nothing obj) $ fmap (second (exprToCoreFn ss [] Nothing)) vs
-  exprToCoreFn ss com ty (A.Abs (A.VarBinder _ name) v) =
-    Abs (ss, com, ty, Nothing) name (exprToCoreFn ss [] Nothing v)
+    ObjectUpdate (ss, com, Nothing) (exprToCoreFn ss [] Nothing obj) (ty >>= unchangedRecordFields (fmap fst vs)) $ fmap (second (exprToCoreFn ss [] Nothing)) vs
+    where
+    -- Return the unchanged labels of a closed record, or Nothing for other types or open records.
+    unchangedRecordFields :: [PSString] -> Type a -> Maybe [PSString]
+    unchangedRecordFields updated (TypeApp _ (TypeConstructor _ C.Record) row) =
+      collect row
+      where
+        collect :: Type a -> Maybe [PSString]
+        collect (REmptyKinded _ _) = Just []
+        collect (RCons _ (Label l) _ r) = (if l `elem` updated then id else (l :)) <$> collect r
+        collect _ = Nothing
+    unchangedRecordFields _ _ = Nothing
+  exprToCoreFn ss com _ (A.Abs (A.VarBinder _ name) v) =
+    Abs (ss, com, Nothing) name (exprToCoreFn ss [] Nothing v)
   exprToCoreFn _ _ _ (A.Abs _ _) =
     internalError "Abs with Binder argument was not desugared before exprToCoreFn mn"
-  exprToCoreFn ss com ty (A.App v1 v2) =
-    App (ss, com, ty, Nothing) (exprToCoreFn ss [] Nothing v1) (exprToCoreFn ss [] Nothing v2)
-  exprToCoreFn _ com ty (A.Var ss ident) =
-    Var (ss, com, ty, getValueMeta ident) ident
-  exprToCoreFn ss com ty (A.IfThenElse v1 v2 v3) =
-    Case (ss, com, ty, Nothing) [exprToCoreFn ss [] Nothing v1]
+  exprToCoreFn ss com _ (A.App v1 v2) =
+    App (ss, com, (isDictCtor v1 || isSynthetic v2) `orEmpty` IsSyntheticApp) v1' v2'
+    where
+    v1' = exprToCoreFn ss [] Nothing v1
+    v2' = exprToCoreFn ss [] Nothing v2
+    isDictCtor = \case
+      A.Constructor _ (Qualified _ name) -> isDictTypeName name
+      _ -> False
+    isSynthetic = \case
+      A.App v3 v4            -> isDictCtor v3 || isSynthetic v3 && isSynthetic v4
+      A.Accessor _ v3        -> isSynthetic v3
+      A.Var NullSourceSpan _ -> True
+      A.Unused{}             -> True
+      _                      -> False
+  exprToCoreFn ss com _ (A.Unused _) =
+    Var (ss, com, Nothing) C.I_undefined
+  exprToCoreFn _ com _ (A.Var ss ident) =
+    Var (ss, com, getValueMeta ident) ident
+  exprToCoreFn ss com _ (A.IfThenElse v1 v2 v3) =
+    Case (ss, com, Nothing) [exprToCoreFn ss [] Nothing v1]
       [ CaseAlternative [LiteralBinder (ssAnn ss) $ BooleanLiteral True]
                         (Right $ exprToCoreFn ss [] Nothing v2)
       , CaseAlternative [NullBinder (ssAnn ss)]
                         (Right $ exprToCoreFn ss [] Nothing v3) ]
-  exprToCoreFn _ com ty (A.Constructor ss name) =
-    Var (ss, com, ty, Just $ getConstructorMeta name) $ fmap properToIdent name
-  exprToCoreFn ss com ty (A.Case vs alts) =
-    Case (ss, com, ty, Nothing) (fmap (exprToCoreFn ss [] Nothing) vs) (fmap (altToCoreFn ss) alts)
+  exprToCoreFn _ com _ (A.Constructor ss name) =
+    Var (ss, com, Just $ getConstructorMeta name) $ fmap properToIdent name
+  exprToCoreFn ss com _ (A.Case vs alts) =
+    Case (ss, com, Nothing) (fmap (exprToCoreFn ss [] Nothing) vs) (fmap (altToCoreFn ss) alts)
   exprToCoreFn ss com _ (A.TypedValue _ v ty) =
     exprToCoreFn ss com (Just ty) v
-  exprToCoreFn ss com ty (A.Let w ds v) =
-    Let (ss, com, ty, getLetMeta w) (concatMap declToCoreFn ds) (exprToCoreFn ss [] Nothing v)
-  exprToCoreFn ss com ty (A.TypeClassDictionaryConstructorApp name (A.TypedValue _ lit@(A.Literal _ (A.ObjectLiteral _)) _)) =
-    exprToCoreFn ss com ty (A.TypeClassDictionaryConstructorApp name lit)
-  exprToCoreFn ss com _ (A.TypeClassDictionaryConstructorApp name (A.Literal _ (A.ObjectLiteral vs))) =
-    let args = fmap (exprToCoreFn ss [] Nothing . snd) $ sortBy (compare `on` fst) vs
-        ctor = Var (ss, [], Nothing, Just IsTypeClassConstructor) (fmap properToIdent name)
-    in foldl (App (ss, com, Nothing, Nothing)) ctor args
-  exprToCoreFn ss com ty  (A.TypeClassDictionaryAccessor _ ident) =
-    Abs (ss, com, ty, Nothing) (Ident "dict")
-      (Accessor (ssAnn ss) (mkString $ runIdent ident) (Var (ssAnn ss) $ Qualified Nothing (Ident "dict")))
+  exprToCoreFn ss com _ (A.Let w ds v) =
+    Let (ss, com, getLetMeta w) (concatMap declToCoreFn ds) (exprToCoreFn ss [] Nothing v)
   exprToCoreFn _ com ty (A.PositionedValue ss com1 v) =
     exprToCoreFn ss (com ++ com1) ty v
   exprToCoreFn _ _ _ e =
     error $ "Unexpected value in exprToCoreFn mn: " ++ show e
 
-  -- | Desugars case alternatives from AST to CoreFn representation.
+  -- Desugars case alternatives from AST to CoreFn representation.
   altToCoreFn :: SourceSpan -> A.CaseAlternative -> CaseAlternative Ann
   altToCoreFn ss (A.CaseAlternative bs vs) = CaseAlternative (map (binderToCoreFn ss []) bs) (go vs)
     where
@@ -131,19 +160,19 @@
     guardToExpr [A.ConditionGuard cond] = cond
     guardToExpr _ = internalError "Guard not correctly desugared"
 
-  -- | Desugars case binders from AST to CoreFn representation.
+  -- Desugars case binders from AST to CoreFn representation.
   binderToCoreFn :: SourceSpan -> [Comment] -> A.Binder -> Binder Ann
   binderToCoreFn _ com (A.LiteralBinder ss lit) =
-    LiteralBinder (ss, com, Nothing, Nothing) (fmap (binderToCoreFn ss com) lit)
+    LiteralBinder (ss, com, Nothing) (fmap (binderToCoreFn ss com) lit)
   binderToCoreFn ss com A.NullBinder =
-    NullBinder (ss, com, Nothing, Nothing)
+    NullBinder (ss, com, Nothing)
   binderToCoreFn _ com (A.VarBinder ss name) =
-    VarBinder (ss, com, Nothing, Nothing) name
+    VarBinder (ss, com, Nothing) name
   binderToCoreFn _ com (A.ConstructorBinder ss dctor@(Qualified mn' _) bs) =
     let (_, tctor, _, _) = lookupConstructor env dctor
-    in ConstructorBinder (ss, com, Nothing, Just $ getConstructorMeta dctor) (Qualified mn' tctor) dctor (fmap (binderToCoreFn ss []) bs)
+    in ConstructorBinder (ss, com, Just $ getConstructorMeta dctor) (Qualified mn' tctor) dctor (fmap (binderToCoreFn ss []) bs)
   binderToCoreFn _ com (A.NamedBinder ss name b) =
-    NamedBinder (ss, com, Nothing, Nothing) name (binderToCoreFn ss [] b)
+    NamedBinder (ss, com, Nothing) name (binderToCoreFn ss [] b)
   binderToCoreFn _ com (A.PositionedBinder ss com1 b) =
     binderToCoreFn ss (com ++ com1) b
   binderToCoreFn ss com (A.TypedBinder _ b) =
@@ -155,19 +184,19 @@
   binderToCoreFn _ _ A.ParensInBinder{} =
     internalError "ParensInBinder should have been desugared before binderToCoreFn"
 
-  -- | Gets metadata for let bindings.
+  -- Gets metadata for let bindings.
   getLetMeta :: A.WhereProvenance -> Maybe Meta
   getLetMeta A.FromWhere = Just IsWhere
   getLetMeta A.FromLet = Nothing
 
-  -- | Gets metadata for values.
+  -- Gets metadata for values.
   getValueMeta :: Qualified Ident -> Maybe Meta
   getValueMeta name =
     case lookupValue env name of
       Just (_, External, _) -> Just IsForeign
       _ -> Nothing
 
-  -- | Gets metadata for data constructors.
+  -- Gets metadata for data constructors.
   getConstructorMeta :: Qualified (ProperName 'ConstructorName) -> Meta
   getConstructorMeta ctor =
     case lookupConstructor env ctor of
@@ -185,7 +214,7 @@
     typeConstructor
       :: (Qualified (ProperName 'ConstructorName), (DataDeclType, ProperName 'TypeName, SourceType, [Ident]))
       -> (ModuleName, ProperName 'TypeName)
-    typeConstructor (Qualified (Just mn') _, (_, tyCtor, _, _)) = (mn', tyCtor)
+    typeConstructor (Qualified (ByModuleName mn') _, (_, tyCtor, _, _)) = (mn', tyCtor)
     typeConstructor _ = internalError "Invalid argument to typeConstructor"
 
 -- | Find module names from qualified references to values. This is used to
@@ -197,7 +226,7 @@
   in f `concatMap` decls
   where
   fqDecls :: A.Declaration -> [ModuleName]
-  fqDecls (A.TypeInstanceDeclaration _ _ _ _ _ q _ _) = getQual' q
+  fqDecls (A.TypeInstanceDeclaration _ _ _ _ _ _ q _ _) = getQual' q
   fqDecls (A.ValueFixityDeclaration _ _ q _) = getQual' q
   fqDecls (A.TypeFixityDeclaration _ _ q _) = getQual' q
   fqDecls _ = []
@@ -205,10 +234,6 @@
   fqValues :: A.Expr -> [ModuleName]
   fqValues (A.Var _ q) = getQual' q
   fqValues (A.Constructor _ q) = getQual' q
-  -- Some instances are automatically solved and have their class dictionaries
-  -- built inline instead of having a named instance defined and imported.
-  -- We therefore need to import these constructors if they aren't already.
-  fqValues (A.TypeClassDictionaryConstructorApp c _) = getQual' c
   fqValues _ = []
 
   fqBinders :: A.Binder -> [ModuleName]
@@ -220,7 +245,7 @@
 
 -- | Desugars import declarations from AST to CoreFn representation.
 importToCoreFn :: A.Declaration -> Maybe (Ann, ModuleName)
-importToCoreFn (A.ImportDeclaration (ss, com) name _ _) = Just ((ss, com, Nothing, Nothing), name)
+importToCoreFn (A.ImportDeclaration (ss, com) name _ _) = Just ((ss, com, Nothing), name)
 importToCoreFn _ = Nothing
 
 -- | Desugars foreign declarations from AST to CoreFn representation.
@@ -229,27 +254,18 @@
 externToCoreFn _ = Nothing
 
 -- | Desugars export declarations references from AST to CoreFn representation.
--- CoreFn modules only export values, so all data constructors, class
--- constructor, instances and values are flattened into one list.
+-- CoreFn modules only export values, so all data constructors, instances and
+-- values are flattened into one list.
 exportToCoreFn :: A.DeclarationRef -> [Ident]
 exportToCoreFn (A.TypeRef _ _ (Just dctors)) = fmap properToIdent dctors
+exportToCoreFn (A.TypeRef _ _ Nothing) = []
+exportToCoreFn (A.TypeOpRef _ _) = []
 exportToCoreFn (A.ValueRef _ name) = [name]
-exportToCoreFn (A.TypeClassRef _ name) = [properToIdent name]
-exportToCoreFn (A.TypeInstanceRef _ name) = [name]
-exportToCoreFn _ = []
-
--- | Makes a typeclass dictionary constructor function. The returned expression
--- is a function that accepts the superclass instances and member
--- implementations and returns a record for the instance dictionary.
-mkTypeClassConstructor :: SourceAnn -> [SourceConstraint] -> [A.Declaration] -> Expr Ann
-mkTypeClassConstructor (ss, com) [] [] = Literal (ss, com, Nothing, Just IsTypeClassConstructor) (ObjectLiteral [])
-mkTypeClassConstructor (ss, com) supers members =
-  let args@(a:as) = sort $ fmap typeClassMemberName members ++ superClassDictionaryNames supers
-      props = [ (mkString arg, Var (ssAnn ss) $ Qualified Nothing (Ident arg)) | arg <- args ]
-      dict = Literal (ssAnn ss) (ObjectLiteral props)
-  in Abs (ss, com, Nothing, Just IsTypeClassConstructor)
-         (Ident a)
-         (foldr (Abs (ssAnn ss) . Ident) dict as)
+exportToCoreFn (A.ValueOpRef _ _) = []
+exportToCoreFn (A.TypeClassRef _ _) = []
+exportToCoreFn (A.TypeInstanceRef _ name _) = [name]
+exportToCoreFn (A.ModuleRef _ _) = []
+exportToCoreFn (A.ReExportRef _ _ _) = []
 
 -- | Converts a ProperName to an Ident.
 properToIdent :: ProperName a -> Ident
diff --git a/src/Language/PureScript/CoreFn/Expr.hs b/src/Language/PureScript/CoreFn/Expr.hs
--- a/src/Language/PureScript/CoreFn/Expr.hs
+++ b/src/Language/PureScript/CoreFn/Expr.hs
@@ -3,13 +3,13 @@
 --
 module Language.PureScript.CoreFn.Expr where
 
-import Prelude.Compat
+import Prelude
 
 import Control.Arrow ((***))
 
-import Language.PureScript.AST.Literals
-import Language.PureScript.CoreFn.Binders
-import Language.PureScript.Names
+import Language.PureScript.AST.Literals (Literal)
+import Language.PureScript.CoreFn.Binders (Binder)
+import Language.PureScript.Names (Ident, ProperName, ProperNameType(..), Qualified)
 import Language.PureScript.PSString (PSString)
 
 -- |
@@ -29,9 +29,9 @@
   --
   | Accessor a PSString (Expr a)
   -- |
-  -- Partial record update
+  -- Partial record update (original value, fields to copy (if known), fields to update)
   --
-  | ObjectUpdate a (Expr a) [(PSString, Expr a)]
+  | ObjectUpdate a (Expr a) (Maybe [PSString]) [(PSString, Expr a)]
   -- |
   -- Function introduction
   --
@@ -52,7 +52,7 @@
   -- A let binding
   --
   | Let a [Bind a] (Expr a)
-  deriving (Show, Functor)
+  deriving (Eq, Ord, Show, Functor)
 
 -- |
 -- A let or module binding.
@@ -65,7 +65,7 @@
   -- |
   -- Mutually recursive binding group for several values
   --
-  | Rec [((a, Ident), Expr a)] deriving (Show, Functor)
+  | Rec [((a, Ident), Expr a)] deriving (Eq, Ord, Show, Functor)
 
 -- |
 -- A guard is just a boolean-valued expression that appears alongside a set of binders
@@ -84,7 +84,7 @@
     -- The result expression or a collect of guarded expressions
     --
   , caseAlternativeResult :: Either [(Guard a, Expr a)] (Expr a)
-  } deriving (Show)
+  } deriving (Eq, Ord, Show)
 
 instance Functor CaseAlternative where
 
@@ -99,7 +99,7 @@
 extractAnn (Literal a _) = a
 extractAnn (Constructor a _ _ _) = a
 extractAnn (Accessor a _ _) = a
-extractAnn (ObjectUpdate a _ _) = a
+extractAnn (ObjectUpdate a _ _ _) = a
 extractAnn (Abs a _ _) = a
 extractAnn (App a _ _) = a
 extractAnn (Var a _) = a
@@ -111,12 +111,12 @@
 -- Modify the annotation on a term
 --
 modifyAnn :: (a -> a) -> Expr a -> Expr a
-modifyAnn f (Literal a b)         = Literal (f a) b
-modifyAnn f (Constructor a b c d) = Constructor (f a) b c d
-modifyAnn f (Accessor a b c)      = Accessor (f a) b c
-modifyAnn f (ObjectUpdate a b c)  = ObjectUpdate (f a) b c
-modifyAnn f (Abs a b c)           = Abs (f a) b c
-modifyAnn f (App a b c)           = App (f a) b c
-modifyAnn f (Var a b)             = Var (f a) b
-modifyAnn f (Case a b c)          = Case (f a) b c
-modifyAnn f (Let a b c)           = Let (f a) b c
+modifyAnn f (Literal a b)          = Literal (f a) b
+modifyAnn f (Constructor a b c d)  = Constructor (f a) b c d
+modifyAnn f (Accessor a b c)       = Accessor (f a) b c
+modifyAnn f (ObjectUpdate a b c d) = ObjectUpdate (f a) b c d
+modifyAnn f (Abs a b c)            = Abs (f a) b c
+modifyAnn f (App a b c)            = App (f a) b c
+modifyAnn f (Var a b)              = Var (f a) b
+modifyAnn f (Case a b c)           = Case (f a) b c
+modifyAnn f (Let a b c)            = Let (f a) b c
diff --git a/src/Language/PureScript/CoreFn/FromJSON.hs b/src/Language/PureScript/CoreFn/FromJSON.hs
--- a/src/Language/PureScript/CoreFn/FromJSON.hs
+++ b/src/Language/PureScript/CoreFn/FromJSON.hs
@@ -4,25 +4,36 @@
 
 module Language.PureScript.CoreFn.FromJSON
   ( moduleFromJSON
+  , parseVersion'
   ) where
 
-import Prelude.Compat
+import Prelude
 
-import           Data.Aeson
-import           Data.Aeson.Types (Parser, Value, listParser)
-import           Data.Text (Text)
-import qualified Data.Text as T
-import           Text.ParserCombinators.ReadP (readP_to_S)
-import qualified Data.Vector as V
-import           Data.Version (Version, parseVersion)
+import Control.Applicative ((<|>))
 
-import           Language.PureScript.AST.SourcePos (SourceSpan(SourceSpan))
-import           Language.PureScript.AST.Literals
-import           Language.PureScript.CoreFn.Ann
-import           Language.PureScript.CoreFn
-import           Language.PureScript.Names
-import           Language.PureScript.PSString (PSString)
+import Data.Aeson (FromJSON(..), Object, Value(..), withObject, withText, (.:))
+import Data.Aeson.Types (Parser, listParser)
+import Data.Map.Strict qualified as M
+import Data.Text (Text)
+import Data.Text qualified as T
+import Data.Vector qualified as V
+import Data.Version (Version, parseVersion)
 
+import Language.PureScript.AST.SourcePos (SourceSpan(..))
+import Language.PureScript.AST.Literals (Literal(..))
+import Language.PureScript.CoreFn.Ann (Ann)
+import Language.PureScript.CoreFn (Bind(..), Binder(..), CaseAlternative(..), ConstructorType(..), Expr(..), Guard, Meta(..), Module(..))
+import Language.PureScript.Names (Ident(..), ModuleName(..), ProperName(..), Qualified(..), QualifiedBy(..), unusedIdent)
+import Language.PureScript.PSString (PSString)
+
+import Text.ParserCombinators.ReadP (readP_to_S)
+
+parseVersion' :: String -> Maybe Version
+parseVersion' str =
+  case filter (null . snd) $ readP_to_S parseVersion str of
+    [(vers, "")] -> Just vers
+    _            -> Nothing
+
 constructorTypeFromJSON :: Value -> Parser ConstructorType
 constructorTypeFromJSON v = do
   t <- parseJSON v
@@ -44,6 +55,8 @@
                         -> return $ Just IsTypeClassConstructor
         "IsForeign"     -> return $ Just IsForeign
         "IsWhere"       -> return $ Just IsWhere
+        "IsSyntheticApp"
+                        -> return $ Just IsSyntheticApp
         _               -> fail ("not recognized Meta: " ++ T.unpack type_)
 
     isConstructorFromJSON o = do
@@ -57,7 +70,7 @@
   annFromObj o = do
     ss <- o .: "sourceSpan" >>= sourceSpanFromJSON modulePath
     mm <- o .: "meta" >>= metaFromJSON
-    return (ss, [], Nothing, mm)
+    return (ss, [], mm)
 
 sourceSpanFromJSON :: FilePath -> Value -> Parser SourceSpan
 sourceSpanFromJSON modulePath = withObject "SourceSpan" $ \o ->
@@ -90,7 +103,9 @@
     ObjectLiteral <$> recordFromJSON t val
 
 identFromJSON :: Value -> Parser Ident
-identFromJSON = withText "Ident" (return . Ident)
+identFromJSON = withText "Ident" $ \case
+  ident | ident == unusedIdent -> pure UnusedIdent 
+        | otherwise -> pure $ Ident ident 
 
 properNameFromJSON :: Value -> Parser (ProperName a)
 properNameFromJSON = fmap ProperName . parseJSON
@@ -98,13 +113,19 @@
 qualifiedFromJSON :: (Text -> a) -> Value -> Parser (Qualified a)
 qualifiedFromJSON f = withObject "Qualified" qualifiedFromObj
   where
-  qualifiedFromObj o = do
-    mn <- o .:? "moduleName" >>= traverse moduleNameFromJSON
+  qualifiedFromObj o =
+    qualifiedByModuleFromObj o <|> qualifiedBySourcePosFromObj o
+  qualifiedByModuleFromObj o = do
+    mn <- o .: "moduleName" >>= moduleNameFromJSON
     i  <- o .: "identifier" >>= withText "Ident" (return . f)
-    return $ Qualified mn i
+    pure $ Qualified (ByModuleName mn) i
+  qualifiedBySourcePosFromObj o = do
+    ss <- o .: "sourcePos"
+    i  <- o .: "identifier" >>= withText "Ident" (return . f)
+    pure $ Qualified (BySourcePos ss) i
 
 moduleNameFromJSON :: Value -> Parser ModuleName
-moduleNameFromJSON v = ModuleName <$> listParser properNameFromJSON v
+moduleNameFromJSON v = ModuleName . T.intercalate "." <$> listParser parseJSON v
 
 moduleFromJSON :: Value -> Parser (Version, Module Ann)
 moduleFromJSON = withObject "Module" moduleFromObj
@@ -116,6 +137,7 @@
     moduleSourceSpan <- o .: "sourceSpan" >>= sourceSpanFromJSON modulePath
     moduleImports <- o .: "imports" >>= listParser (importFromJSON modulePath)
     moduleExports <- o .: "exports" >>= listParser identFromJSON
+    moduleReExports <- o .: "reExports" >>= reExportsFromJSON
     moduleDecls <- o .: "decls" >>= listParser (bindFromJSON modulePath)
     moduleForeign <- o .: "foreign" >>= listParser identFromJSON
     moduleComments <- o .: "comments" >>= listParser parseJSON
@@ -123,9 +145,9 @@
 
   versionFromJSON :: String -> Parser Version
   versionFromJSON v =
-    case readP_to_S parseVersion v of
-      (r, _) : _ -> return r
-      _ -> fail "failed parsing purs version"
+    case parseVersion' v of
+      Just r -> return r
+      Nothing -> fail "failed parsing purs version"
 
   importFromJSON :: FilePath -> Value -> Parser (Ann, ModuleName)
   importFromJSON modulePath = withObject "Import"
@@ -134,6 +156,9 @@
       mn  <- o .: "moduleName" >>= moduleNameFromJSON
       return (ann, mn))
 
+  reExportsFromJSON :: Value -> Parser (M.Map ModuleName [Ident])
+  reExportsFromJSON = fmap (M.map (map Ident)) . parseJSON
+
 bindFromJSON :: FilePath -> Value -> Parser (Bind Ann)
 bindFromJSON modulePath = withObject "Bind" bindFromObj
   where
@@ -203,8 +228,9 @@
   objectUpdateFromObj o = do
     ann <- o .: "annotation" >>= annFromJSON modulePath
     e   <- o .: "expression" >>= exprFromJSON modulePath
+    copy <- o .: "copy" >>= parseJSON
     us  <- o .: "updates" >>= recordFromJSON (exprFromJSON modulePath)
-    return $ ObjectUpdate ann e us
+    return $ ObjectUpdate ann e copy us
 
   absFromObj o = do
     ann <- o .: "annotation" >>= annFromJSON modulePath
diff --git a/src/Language/PureScript/CoreFn/Laziness.hs b/src/Language/PureScript/CoreFn/Laziness.hs
new file mode 100644
--- /dev/null
+++ b/src/Language/PureScript/CoreFn/Laziness.hs
@@ -0,0 +1,568 @@
+module Language.PureScript.CoreFn.Laziness
+  ( applyLazinessTransform
+  ) where
+
+import Protolude hiding (force)
+import Protolude.Unsafe (unsafeHead)
+
+import Control.Arrow ((&&&))
+import Data.Array qualified as A
+import Data.Coerce (coerce)
+import Data.Graph (SCC(..), stronglyConnComp)
+import Data.List (foldl1', (!!))
+import Data.IntMap.Monoidal qualified as IM
+import Data.IntSet qualified as IS
+import Data.Map.Monoidal qualified as M
+import Data.Semigroup (Max(..))
+import Data.Set qualified as S
+
+import Language.PureScript.AST.SourcePos (SourcePos(..), SourceSpan(..), nullSourceSpan)
+import Language.PureScript.Constants.Libs qualified as C
+import Language.PureScript.CoreFn (Ann, Bind, Expr(..), Literal(..), Meta(..), ssAnn, traverseCoreFn)
+import Language.PureScript.Crash (internalError)
+import Language.PureScript.Names (pattern ByNullSourcePos, Ident(..), InternalIdentData(..), ModuleName, Qualified(..), QualifiedBy(..), runIdent, runModuleName, toMaybeModuleName)
+import Language.PureScript.PSString (mkString)
+
+-- This module is responsible for ensuring that the bindings in recursive
+-- binding groups are initialized in a valid order, introducing run-time
+-- laziness and initialization checks as necessary.
+--
+-- PureScript is a call-by-value language with strict data constructors, this
+-- transformation notwithstanding. The only laziness introduced here is in the
+-- initialization of a binding. PureScript is uninterested in the order in
+-- which bindings are written by the user. The compiler has always attempted to
+-- emit the bindings in an order that makes sense for the backend, but without
+-- this transformation, recursive bindings are emitted in an arbitrary order,
+-- which can cause unexpected behavior at run time if a binding is dereferenced
+-- before it has initialized.
+--
+-- To prevent unexpected errors, this transformation does a syntax-driven
+-- analysis of a single recursive binding group to attempt to statically order
+-- the bindings, and when that fails, falls back to lazy initializers that will
+-- succeed or fail deterministically with a clear error at run time.
+--
+-- Example:
+--
+--   x = f \_ ->
+--     x
+--
+-- becomes (with some details of the $runtime_lazy function elided):
+-- 
+--   -- the binding of x has been rewritten as a lazy initializer
+--   $lazy_x = $runtime_lazy \_ ->
+--     f \_ ->
+--       $lazy_x 2  -- the reference to x has been rewritten as a force call
+--   x = $lazy_x 1
+--
+-- Central to this analysis are the concepts of delay and force, which are
+-- attributes given to every subexpression in the binding group. Delay and
+-- force are defined by the following traversal. This traversal is used twice:
+-- once to collect all the references made by each binding in the group, and
+-- then again to rewrite some references to force calls. (The implications of
+-- delay and force on initialization order are specified later.)
+
+-- |
+-- Visits every `Var` in an expression with the provided function, including
+-- the amount of delay and force applied to that `Var`, and substitutes the
+-- result back into the tree (propagating an `Applicative` effect).
+--
+-- Delay is a non-negative integer that represents the number of lambdas that
+-- enclose an expression. Force is a non-negative integer that represents the
+-- number of values that are being applied to an expression. Delay is always
+-- statically determinable, but force can be *unknown*, so it's represented
+-- here with a Maybe. In a function application `f a b`, `f` has force 2, but
+-- `a` and `b` have unknown force--it depends on what `f` does with them.
+--
+-- The rules of assigning delay and force are simple:
+--   * The expressions that are assigned to bindings in this group have
+--     delay 0, force 0.
+--   * In a function application, the function expression has force 1 higher
+--     than the force of the application expression, and the argument
+--     expression has unknown force.
+--     * UNLESS this argument is being directly provided to a constructor (in
+--       other words, the function expression is either a constructor itself or
+--       a constructor that has already been partially applied), in which case
+--       the force of both subexpressions is unchanged. We can assume that
+--       constructors don't apply any additional force to their arguments.
+--   * If the force of a lambda is zero, the delay of the body of the lambda is
+--     incremented; otherwise, the force of the body of the lambda is
+--     decremented. (Applying one argument to a lambda cancels out one unit of
+--     delay.)
+--   * In the argument of a Case and the bindings of a Let, force is unknown.
+--   * Everywhere else, preserve the delay and force of the enclosing
+--     expression.
+--
+-- Here are some illustrative examples of the above rules. We will use a
+-- pseudocode syntax to annotate a subexpression with delay and force:
+-- `expr#d!f` means `expr` has delay d and force f. `!*` is used to denote
+-- unknown force.
+--
+--   x = y#0!0
+--   x = y#0!2 a#0!* b#0!*
+--   x = (\_ -> y#1!0)#0!0
+--   x = \_ _ -> y#2!1 a#2!*
+--   x = (\_ -> y#0!0)#0!1 z#0!*
+--   x = Just { a: a#0!0, b: b#0!0 }
+--   x = let foo = (y#1!* a b#1!*)#1!* in foo + 1
+--
+-- (Note that this analysis is quite ignorant of any actual control flow
+-- choices made at run time. It doesn't even track what happens to a reference
+-- after it has been locally bound by a Let or Case. Instead, it just assumes
+-- the worst--once locally bound to a new name, it imagines that absolutely
+-- anything could happen to that new name and thus to the underlying reference.
+-- But the value-to-weight ratio of this approach is perhaps surprisingly
+-- high.)
+--
+-- Every subexpression gets a delay and a force, but we are only interested
+-- in references to other bindings in the binding group, so the traversal only
+-- exposes `Var`s to the provided function.
+--
+onVarsWithDelayAndForce :: forall f. Applicative f => (Int -> Maybe Int -> Ann -> Qualified Ident -> f (Expr Ann)) -> Expr Ann -> f (Expr Ann)
+onVarsWithDelayAndForce f = snd . go 0 $ Just 0
+  where
+  go :: Int -> Maybe Int -> (Bind Ann -> f (Bind Ann), Expr Ann -> f (Expr Ann))
+  go delay force = (handleBind, handleExpr')
+    where
+    (handleBind, handleExpr, handleBinder, handleCaseAlternative) = traverseCoreFn handleBind handleExpr' handleBinder handleCaseAlternative
+    handleExpr' = \case
+      Var a i -> f delay force a i
+      Abs a i e -> Abs a i <$> snd (if force == Just 0 then go (succ delay) force else go delay $ fmap pred force) e
+      -- A clumsy hack to preserve TCO in a particular idiom of unsafePartial once seen in Data.Map.Internal, possibly still used elsewhere.
+      App a1 e1@(Var _ C.I_unsafePartial) (Abs a2 i e2) -> App a1 e1 . Abs a2 i <$> handleExpr' e2
+      App a e1 e2 ->
+        -- `handleApp` is just to handle the constructor application exception
+        -- somewhat gracefully (i.e., without requiring a deep inspection of
+        -- the function expression at every step). If we didn't care about
+        -- constructors, this could have been simply:
+        --   App a <$> snd (go delay (fmap succ force)) e1 <*> snd (go delay Nothing) e2
+        handleApp 1 [(a, e2)] e1
+      Case a vs alts -> Case a <$> traverse (snd $ go delay Nothing) vs <*> traverse handleCaseAlternative alts
+      Let a ds e -> Let a <$> traverse (fst $ go delay Nothing) ds <*> handleExpr' e
+      other -> handleExpr other
+
+    handleApp len args = \case
+      App a e1 e2 -> handleApp (len + 1) ((a, e2) : args) e1
+      Var a@(_, _, Just meta) i | isConstructorLike meta
+        -> foldl (\e1 (a2, e2) -> App a2 <$> e1 <*> handleExpr' e2) (f delay force a i) args
+      e -> foldl (\e1 (a2, e2) -> App a2 <$> e1 <*> snd (go delay Nothing) e2) (snd (go delay (fmap (+ len) force)) e) args
+    isConstructorLike = \case
+      IsConstructor{} -> True
+      IsNewtype -> True
+      _ -> False
+
+-- Once we assign a delay and force value to every `Var` in the binding group,
+-- we can consider how to order the bindings to allow them all to successfully
+-- initialize. There is one principle here: each binding must be initialized
+-- before the identifier being bound is ready for use. If the preorder thus
+-- induced has cycles, those cycles need to be resolved with laziness. All of
+-- the details concern what "ready for use" means.
+--
+-- The definition of delay and force suggests that "ready for use" depends on
+-- those attributes. If a lambda is bound to the name x, then the references in
+-- the lambda don't need to be initialized before x is initialized. This is
+-- represented by the fact that those references have non-zero delay. But if
+-- the expression bound to x is instead the application of a function y that is
+-- also bound in this binding group, then not only does y need to be
+-- initialized before x, so do some of the non-zero delay references in y. This
+-- is represented by the fact that the occurrence of y in the expression bound
+-- to x has non-zero force.
+--
+-- An example, reusing the pseudocode annotations defined above:
+--
+--   x _ = y#1!0
+--   y = x#0!1 a
+--
+-- y doesn't need to be initialized before x is, because the reference to y in
+-- x's initializer has delay 1. But y does need to be initialized before x is
+-- ready for use with force 1, because force 1 is enough to overcome the delay
+-- of that reference. And since y has a delay-0 reference to x with force 1, y
+-- will need to be ready for use before it is initialized; thus, y needs to be
+-- made lazy.
+--
+-- So just as function applications "cancel out" lambdas, a known applied force
+-- cancels out an equal amount of delay, causing some references that may not
+-- have been needed earlier to enter play. (And to be safe, we must assume that
+-- unknown force cancels out *any* amount of delay.) There is another, subtler
+-- aspect of this: if there are not enough lambdas to absorb every argument
+-- applied to a function, those arguments will end up applied to the result of
+-- the function. Likewise, if there is excess force left over after some of it
+-- has been canceled by delay, that excess is carried to the references
+-- activated. (Again, an unknown amount of force must be assumed to lead to an
+-- unknown amount of excess force.)
+--
+-- Another example:
+--
+--   f = g#0!2 a b
+--   g x = h#1!2 c x
+--   h _ _ _ = f#3!0
+--
+-- Initializing f will lead to an infinite loop in this example. f invokes g
+-- with two arguments. g absorbs one argument, and the second ends up being
+-- applied to the result of h c x, resulting in h being invoked with three
+-- arguments. Invoking h with three arguments results in dereferencing f, which
+-- is not yet ready. To capture this loop in our analysis, we say that making
+-- f ready for use with force 0 requires making g ready for use with force 2,
+-- which requires making h ready for use with force 3 (two units of force from
+-- the lexical position of h, plus one unit of excess force carried forward),
+-- which cyclically requires f to be ready for use with force 0.
+--
+-- These preceding observations are captured and generalized by the following
+-- rules:
+--
+--   USE-INIT: Before a reference to x is ready for use with any force, x must
+--     be initialized.
+--
+--     We will make x lazy iff this rule induces a cycle--i.e., initializing x
+--     requires x to be ready for use first.
+--
+--   USE-USE: Before a reference to x is ready for use with force f:
+--     * if a reference in the initializer of x has delay d and force f',
+--     * and either d <= f or f is unknown,
+--     * then that reference must itself be ready for use with
+--       force f – d + f' (or with unknown force if f or f' is unknown).
+--
+--   USE-IMMEDIATE: Initializing a binding x is equivalent to requiring a
+--     reference to x to be ready for use with force 0, per USE-USE.
+--     
+--     Equivalently: before x is initialized, any reference in the initializer
+--     of x with delay 0 and force f must be ready for use with force f.
+--
+-- Examples:
+--
+--   Assume x is bound in a recursive binding group with the below bindings.
+--
+--   All of the following initializers require x to be ready for use with some
+--   amount of force, and therefore require x to be initialized first.
+--
+--   a = x#0!0
+--   b = (\_ -> x#0!0) 1
+--   c = foo x#0!*
+--   d = (\_ -> foo x#0!*) 1
+--
+--   In the following initializers, before p can be initialized, x must be
+--   ready for use with force f – d + f'. (And both x and q must be
+--   initialized, of course; but x being ready for use with that force may
+--   induce additional constraints.)
+--
+--   p = ... q#0!f ...
+--   q = ... x#d!f' ... (where d <= f)
+--
+--   Excess force stacks, of course: in the following initializers, before r
+--   can be initialized, x must be ready for use with force
+--   f — d + f' — d' + f'':
+--
+--   r = ... s#0!f ...
+--   s = ... t#d!f' ... (where d <= f)
+--   t = ... x#d'!f'' ... (where d' <= f – d + f')
+--
+--
+-- To satisfy these rules, we will construct a graph between (identifier,
+-- delay) pairs, with edges induced by the USE-USE rule, and effectively run a
+-- topsort to get the initialization preorder. For this part, it's simplest to
+-- think of delay as an element of the naturals extended with a positive
+-- infinity, corresponding to an unknown amount of force. (We'll do arithmetic
+-- on these extended naturals as you would naively expect; we won't do anything
+-- suspect like subtracting infinity from infinity.) With that in mind, we can
+-- construct the graph as follows: for each reference from i1 to i2 with delay
+-- d and force f, draw an infinite family of edges from (i1, d + n) to (i2, f +
+-- n) for all 0 <= n <= ∞, where n represents the excess force carried over
+-- from a previous edge. Unfortunately, as an infinite graph, we can't expect
+-- the tools in Data.Graph to help us traverse it; we will have to be a little
+-- bit clever.
+--
+-- The following data types and functions are for searching this infinite graph
+-- and carving from it a finite amount of data to work with. Specifically, we
+-- want to know for each identifier i, which other identifiers are
+-- irreflexively reachable from (i, 0) (and thus must be initialized before i
+-- is), and with what maximum force (in the event of a loop, not every
+-- reference to i in the reachable identifier needs to be rewritten to a force
+-- call; only the ones with delay up to the maximum force used during i's
+-- initialization). We also want the option of aborting a given reachability
+-- search, for one of two reasons.
+--
+--   * If we encounter a reference with unknown force, abort.
+--   * If we encounter a cycle where force on a single identifier is
+--     increasing, abort. (Because of USE-USE, as soon as an identifier is
+--     revisited with greater force than its first visit, the difference is
+--     carried forward as excess, so it is possible to retrace that path to get
+--     an arbitrarily high amount of force.)
+--
+-- Both reasons mean that it is theoretically possible for the identifier in
+-- question to need every other identifier in the binding group to be
+-- initialized before it is. (Every identifier in a recursive binding group is
+-- necessarily reachable from every other, ignoring delay and force, which is
+-- what arbitrarily high force lets you do.)
+--
+-- In order to reuse parts of this reachability computation across identifiers,
+-- we are going to represent it with a rose tree data structure interleaved with
+-- a monad capturing the abort semantics. (The monad is Maybe, but we don't
+-- need to know that here!)
+
+type MaxRoseTree m a = m (IM.MonoidalIntMap (MaxRoseNode m a))
+data MaxRoseNode m a = MaxRoseNode a (MaxRoseTree m a)
+
+-- Dissecting this data structure:
+--
+-- m (...)
+-- ^ represents whether to abort or continue the search
+--
+--   IM.MonoidalIntMap (...)
+--   ^ the keys of this map are other identifiers reachable from the current
+--     one (we'll map the identifiers in this binding group to Ints for ease of
+--     computation)
+--
+--     the values of this map are:
+--
+--     MaxRoseNode a (...)
+--     ^ this will store the force applied to the next identifier
+--       (MaxRoseTree m a)
+--       ^ and this, the tree of identifiers reachable from there
+--
+-- We're only interested in continuing down the search path that applies the
+-- most force to a given identifier! So when we combine two MaxRoseTrees,
+-- we want to resolve any key collisions in their MonoidalIntMaps with this
+-- semigroup:
+
+instance Ord a => Semigroup (MaxRoseNode m a) where
+  l@(MaxRoseNode l1 _) <> r@(MaxRoseNode r1 _) = if r1 > l1 then r else l
+
+-- And that's why this is called a MaxRoseTree.
+--
+-- Traversing this tree to get a single MonoidalIntMap with the entire closure
+-- plus force information is fairly straightforward:
+
+mrtFlatten :: (Monad m, Ord a) => MaxRoseTree m a -> m (IM.MonoidalIntMap (Max a))
+mrtFlatten = (getAp . IM.foldMapWithKey (\i (MaxRoseNode a inner) -> Ap $ (IM.singleton i (Max a) <>) <$> mrtFlatten inner) =<<)
+
+-- The use of the `Ap` monoid ensures that if any child of this tree aborts,
+-- the entire tree aborts.
+--
+-- One might ask, why interleave the abort monad with the tree at all if we're
+-- just going to flatten it out at the end? The point is to flatten it out at
+-- the end, but *not* during the generation of the tree. Attempting to flatten
+-- the tree as we generate it can result in an infinite loop, because a subtree
+-- needs to be exhaustively searched for abort conditions before it can be used
+-- in another tree. With this approach, we can use lazy trees as building
+-- blocks and, as long as they get rewritten to be finite or have aborts before
+-- they're flattened, the analysis still terminates.
+
+-- |
+-- Given a maximum index and a function that returns a map of edges to next
+-- indices, returns an array for each index up to maxIndex of maps from the
+-- indices reachable from the current index, to the maximum force applied to
+-- those indices.
+searchReachable
+  :: forall m force
+   . (Alternative m, Monad m, Enum force, Ord force)
+  => Int
+  -> ((Int, force) -> m (IM.MonoidalIntMap (Max force)))
+  -> A.Array Int (m (IM.MonoidalIntMap (Max force)))
+searchReachable maxIdx lookupEdges = mrtFlatten . unsafeHead <$> mem
+  where
+  -- This is a finite array of infinite lists, used to memoize all the search
+  -- trees. `unsafeHead` is used above to pull the first tree out of each list
+  -- in the array--the one corresponding to zero force, which is what's needed
+  -- to initialize the corresponding identifier. (`unsafeHead` is safe here, of
+  -- course: infinite lists.)
+  mem :: A.Array Int [MaxRoseTree m force]
+  mem = A.listArray (0, maxIdx)
+    [ [cutLoops <*> fmap (IM.mapWithKey memoizedNode) . lookupEdges $ (i, f) | f <- [toEnum 0..]]
+    | i <- [0..maxIdx]
+    ]
+
+  memoizedNode :: Int -> Max force -> MaxRoseNode m force
+  memoizedNode i (Max force) = MaxRoseNode force $ mem A.! i !! fromEnum force
+
+  -- And this is the function that prevents the search from actually being
+  -- infinite. It applies a filter to a `MaxRoseTree` at every level, looking for
+  -- indices anywhere in the tree that match the current vertex. If a match is
+  -- found with greater force than the current force, that part of the tree is
+  -- rewritten to abort; otherwise, that part of the tree is rewritten to be
+  -- empty (there's nothing new in that part of the search).
+  --
+  -- A new version of `cutLoops` is applied for each node in the search, so
+  -- each edge in a search path will add another filter on a new index. Since
+  -- there are a finite number of indices in our universe, this guarantees that
+  -- the analysis terminates, because no single search path can have length
+  -- greater than `maxIdx`.
+  cutLoops :: (Int, force) -> MaxRoseTree m force -> MaxRoseTree m force
+  cutLoops (i, force) = go
+    where
+    go = (=<<) . IM.traverseWithKey $ \i' (MaxRoseNode force' inner) ->
+      MaxRoseNode force' <$> if i == i' then guard (force >= force') $> pure IM.empty else pure $ go inner
+
+-- One last data structure to define and then it's on to the main event.
+--
+-- The laziness transform effectively takes a list of eager bindings (x = ...)
+-- and splits some of them into lazy definitions ($lazy_x = ...) and lazy
+-- bindings (x = $lazy_x ...). It's convenient to work with these three
+-- declarations as the following sum type:
+
+data RecursiveGroupItem e = EagerBinding Ann e | LazyDefinition e | LazyBinding Ann
+  deriving Functor
+
+-- |
+-- Transform a recursive binding group, reordering the bindings within when a
+-- correct initialization order can be statically determined, and rewriting
+-- bindings and references to be lazy otherwise.
+--
+applyLazinessTransform :: ModuleName -> [((Ann, Ident), Expr Ann)] -> ([((Ann, Ident), Expr Ann)], Any)
+applyLazinessTransform mn rawItems = let
+
+  -- Establish the mapping from names to ints.
+  rawItemsByName :: M.MonoidalMap Ident (Ann, Expr Ann)
+  rawItemsByName = M.fromList $ (snd . fst &&& first fst) <$> rawItems
+
+  maxIdx = M.size rawItemsByName - 1
+
+  rawItemsByIndex :: A.Array Int (Ann, Expr Ann)
+  rawItemsByIndex = A.listArray (0, maxIdx) $ M.elems rawItemsByName
+
+  names :: S.Set Ident
+  names = M.keysSet rawItemsByName
+
+  -- Now do the first delay/force traversal of all the bindings to find
+  -- references to other names in this binding group.
+  --
+  -- The parts of this type mean:
+  -- D is the maximum force (or Nothing if unknown) with which the identifier C
+  -- is referenced in any delay-B position inside the expression A.
+  --
+  -- where A, B, C, and D are as below:
+  --                A           B (keys)           C (keys)           D
+  findReferences :: Expr Ann -> IM.MonoidalIntMap (IM.MonoidalIntMap (Ap Maybe (Max Int)))
+  findReferences = (getConst .) . onVarsWithDelayAndForce $ \delay force _ -> \case
+    Qualified qb ident | all (== mn) (toMaybeModuleName qb), Just i <- ident `S.lookupIndex` names
+      -> Const . IM.singleton delay . IM.singleton i $ coerceForce force
+    _ -> Const IM.empty
+
+  -- The parts of this type mean:
+  -- D is the maximum force (or Nothing if unknown) with which the identifier C
+  -- is referenced in any delay-B position inside the binding of identifier A.
+  --
+  -- where A, B, C, and D are as below:
+  --                     A    B (keys)           C (keys)           D
+  refsByIndex :: A.Array Int (IM.MonoidalIntMap (IM.MonoidalIntMap (Ap Maybe (Max Int))))
+  refsByIndex = findReferences . snd <$> rawItemsByIndex
+
+  -- Using the approach explained above, traverse the reference graph generated
+  -- by `refsByIndex` and find all reachable names.
+  --
+  -- The parts of this type mean:
+  -- D is the maximum force with which the identifier C is referenced,
+  -- directly or indirectly, during the initialization of identifier A. B is
+  -- Nothing if the analysis of A was inconclusive and A might need the entire
+  -- binding group.
+  -- 
+  -- where A, B, C, and D are as below:
+  --                           A    B      C (keys)           D
+  reachablesByIndex :: A.Array Int (Maybe (IM.MonoidalIntMap (Max Int)))
+  reachablesByIndex = searchReachable maxIdx $ \(i, force) ->
+    getAp . flip IM.foldMapWithKey (dropKeysAbove force $ refsByIndex A.! i) $ \delay ->
+      IM.foldMapWithKey $ \i' force' ->
+        Ap $ IM.singleton i' . Max . (force - delay +) <$> uncoerceForce force'
+
+  -- If `reachablesByIndex` is a sort of labeled relation, this function
+  -- produces part of the reverse relation, but only for the edges from the
+  -- given vertex.
+  --
+  -- The parts of this type mean:
+  -- The identifier A is reachable from the identifier B with maximum force C
+  -- (B is also the index provided to the function).
+  --
+  -- where A, B, and C are as below:
+  --                      (B)    A                  B (singleton key)  C
+  reverseReachablesFor :: Int -> IM.MonoidalIntMap (IM.MonoidalIntMap (Ap Maybe (Max Int)))
+  reverseReachablesFor i = case reachablesByIndex A.! i of
+    Nothing -> IM.fromAscList $ (, IM.singleton i $ Ap Nothing) <$> [0..maxIdx]
+    Just im -> IM.singleton i . Ap . Just <$> im
+
+  -- We can use `reachablesByIndex` to build a finite graph and topsort it;
+  -- in the process, we'll pack the nodes of the graph with data we'll want
+  -- next. Remember that if our reachability computation aborted, we have to
+  -- assume that every other identifier is reachable from that one--hence the
+  -- `maybe [0..maxIdx]`.
+  sccs = stronglyConnComp $ do
+    (i, mbReachable) <- A.assocs reachablesByIndex
+    pure ((reverseReachablesFor i, (S.elemAt i names, rawItemsByIndex A.! i)), i, maybe [0..maxIdx] (IS.toList . IM.keysSet) mbReachable)
+
+  (replacements, items) = flip foldMap sccs $ \case
+    -- The easy case: this binding doesn't need to be made lazy after all!
+    AcyclicSCC (_, (ident, (a, e))) -> pure [(ident, EagerBinding a e)]
+    -- The tough case: we have a loop.
+    -- We need to do two things here:
+    --   * Collect the reversed reachables relation for each vertex in this
+    --     loop; we'll use this to replace references with force calls
+    --   * Copy the vertex list into two lists: a list of lazy definitions and
+    --     a list of lazy bindings
+    -- Both of these results are monoidal, so the outer `foldMap` will
+    -- concatenate them pairwise.
+    CyclicSCC vertices -> (foldMap fst vertices, map (fmap (LazyDefinition . snd) . snd) vertices ++ map (fmap (LazyBinding . fst) . snd) vertices)
+
+  -- We have `replacements` expressed in terms of indices; we want to map it
+  -- back to names before traversing the bindings again.
+  replacementsByName :: M.MonoidalMap Ident (M.MonoidalMap Ident (Ap Maybe (Max Int)))
+  replacementsByName = M.fromAscList . map (bimap (flip S.elemAt names) (M.fromAscList . map (first (flip S.elemAt names)) . IM.toAscList)) . IM.toAscList $ replacements
+
+  -- And finally, this is the second delay/force traversal where we take
+  -- `replacementsByName` and use it to rewrite references with force calls,
+  -- but only if the delay of those references is at most the maximum amount
+  -- of force used by the initialization of the referenced binding to
+  -- reference the outer binding. A reference made with a higher delay than
+  -- that can safely continue to use the original reference, since it won't be
+  -- needed until after the referenced binding is done initializing.
+  replaceReferencesWithForceCall :: (Ident, RecursiveGroupItem (Expr Ann)) -> (Ident, RecursiveGroupItem (Expr Ann))
+  replaceReferencesWithForceCall pair@(ident, item) = case ident `M.lookup` replacementsByName of
+    Nothing -> pair
+    Just m -> let
+      rewriteExpr = (runIdentity .) . onVarsWithDelayAndForce $ \delay _ ann -> pure . \case
+        Qualified qb ident' | all (== mn) (toMaybeModuleName qb), any (all (>= Max delay) . getAp) $ ident' `M.lookup` m
+          -> makeForceCall ann ident'
+        q -> Var ann q
+      in (ident, rewriteExpr <$> item)
+
+  -- All that's left to do is run the above replacement on every item,
+  -- translate items from our `RecursiveGroupItem` representation back into the
+  -- form CoreFn expects, and inform the caller whether we made any laziness
+  -- transformations after all. (That last bit of information is used to
+  -- determine if the runtime factory function needs to be injected.)
+  in (uncurry fromRGI . replaceReferencesWithForceCall <$> items, Any . not $ IM.null replacements)
+
+  where
+
+  nullAnn = ssAnn nullSourceSpan
+  runtimeLazy = Var nullAnn . Qualified ByNullSourcePos $ InternalIdent RuntimeLazyFactory
+  runFn3 = Var nullAnn . Qualified (ByModuleName C.M_Data_Function_Uncurried) . Ident $ C.S_runFn <> "3"
+  strLit = Literal nullAnn . StringLiteral . mkString
+
+  lazifyIdent = \case
+    Ident txt -> InternalIdent $ Lazy txt
+    _ -> internalError "Unexpected argument to lazifyIdent"
+
+  makeForceCall :: Ann -> Ident -> Expr Ann
+  makeForceCall (ss, _, _) ident
+    -- We expect the functions produced by `runtimeLazy` to accept one
+    -- argument: the line number on which this reference is made. The runtime
+    -- code uses this number to generate a message that identifies where the
+    -- evaluation looped.
+    = App nullAnn (Var nullAnn . Qualified ByNullSourcePos $ lazifyIdent ident)
+    . Literal nullAnn . NumericLiteral . Left . toInteger . sourcePosLine
+    $ spanStart ss
+
+  fromRGI :: Ident -> RecursiveGroupItem (Expr Ann) -> ((Ann, Ident), Expr Ann)
+  fromRGI i = \case
+    EagerBinding a e -> ((a, i), e)
+    -- We expect the `runtimeLazy` factory to accept three arguments: the
+    -- identifier being initialized, the name of the module, and of course a
+    -- thunk that actually contains the initialization code.
+    LazyDefinition e -> ((nullAnn, lazifyIdent i), foldl1' (App nullAnn) [runFn3, runtimeLazy, strLit $ runIdent i, strLit $ runModuleName mn, Abs nullAnn UnusedIdent e])
+    LazyBinding a -> ((a, i), makeForceCall a i)
+
+  dropKeysAbove :: Int -> IM.MonoidalIntMap a -> IM.MonoidalIntMap a
+  dropKeysAbove n = fst . IM.split (n + 1)
+
+  coerceForce :: Maybe Int -> Ap Maybe (Max Int)
+  coerceForce = coerce
+
+  uncoerceForce :: Ap Maybe (Max Int) -> Maybe Int
+  uncoerceForce = coerce
diff --git a/src/Language/PureScript/CoreFn/Meta.hs b/src/Language/PureScript/CoreFn/Meta.hs
--- a/src/Language/PureScript/CoreFn/Meta.hs
+++ b/src/Language/PureScript/CoreFn/Meta.hs
@@ -3,9 +3,9 @@
 --
 module Language.PureScript.CoreFn.Meta where
 
-import Prelude.Compat
+import Prelude
 
-import Language.PureScript.Names
+import Language.PureScript.Names (Ident)
 
 -- |
 -- Metadata annotations
@@ -31,6 +31,10 @@
   -- The contained value is a where clause
   --
   | IsWhere
+  -- |
+  -- The contained function application was synthesized by the compiler
+  --
+  | IsSyntheticApp
   deriving (Show, Eq, Ord)
 
 -- |
@@ -38,10 +42,10 @@
 --
 data ConstructorType
   -- |
-  -- The constructor is for a type with a single construcor
+  -- The constructor is for a type with a single constructor
   --
   = ProductType
   -- |
-  -- The constructor is for a type with multiple construcors
+  -- The constructor is for a type with multiple constructors
   --
   | SumType deriving (Show, Eq, Ord)
diff --git a/src/Language/PureScript/CoreFn/Module.hs b/src/Language/PureScript/CoreFn/Module.hs
--- a/src/Language/PureScript/CoreFn/Module.hs
+++ b/src/Language/PureScript/CoreFn/Module.hs
@@ -1,18 +1,17 @@
 module Language.PureScript.CoreFn.Module where
 
-import Prelude.Compat
+import Prelude
 
-import Language.PureScript.AST.SourcePos
-import Language.PureScript.Comments
-import Language.PureScript.CoreFn.Expr
-import Language.PureScript.Names
+import Data.Map.Strict (Map)
 
+import Language.PureScript.AST.SourcePos (SourceSpan)
+import Language.PureScript.Comments (Comment)
+import Language.PureScript.CoreFn.Expr (Bind)
+import Language.PureScript.Names (Ident, ModuleName)
+
 -- |
 -- The CoreFn module representation
 --
--- The json CoreFn representation does not contain type information.  When
--- parsing it one gets back `ModuleT () Ann` rathern than `ModuleT Type Ann`,
--- which is enough for `moduleToJs`.
 data Module a = Module
   { moduleSourceSpan :: SourceSpan
   , moduleComments :: [Comment]
@@ -20,6 +19,7 @@
   , modulePath :: FilePath
   , moduleImports :: [(a, ModuleName)]
   , moduleExports :: [Ident]
+  , moduleReExports :: Map ModuleName [Ident]
   , moduleForeign :: [Ident]
   , moduleDecls :: [Bind a]
-  } deriving (Show)
+  } deriving (Functor, Show)
diff --git a/src/Language/PureScript/CoreFn/Optimizer.hs b/src/Language/PureScript/CoreFn/Optimizer.hs
--- a/src/Language/PureScript/CoreFn/Optimizer.hs
+++ b/src/Language/PureScript/CoreFn/Optimizer.hs
@@ -1,56 +1,31 @@
 module Language.PureScript.CoreFn.Optimizer (optimizeCoreFn) where
 
-import Protolude hiding (Type)
+import Protolude hiding (Type, moduleName)
 
-import Data.List (lookup)
-import Language.PureScript.AST.Literals
-import Language.PureScript.AST.SourcePos
-import Language.PureScript.CoreFn.Ann
-import Language.PureScript.CoreFn.Expr
-import Language.PureScript.CoreFn.Module
-import Language.PureScript.CoreFn.Traversals
-import Language.PureScript.Names (Ident(UnusedIdent), Qualified(Qualified))
-import Language.PureScript.Label
-import Language.PureScript.Types
-import qualified Language.PureScript.Constants as C
+import Control.Monad.Supply (Supply)
+import Language.PureScript.CoreFn.Ann (Ann)
+import Language.PureScript.CoreFn.CSE (optimizeCommonSubexpressions)
+import Language.PureScript.CoreFn.Expr (Bind, Expr(..))
+import Language.PureScript.CoreFn.Module (Module(..))
+import Language.PureScript.CoreFn.Traversals (everywhereOnValues)
+import Language.PureScript.Constants.Libs qualified as C
 
 -- |
 -- CoreFn optimization pass.
 --
-optimizeCoreFn :: Module Ann -> Module Ann
-optimizeCoreFn m = m {moduleDecls = optimizeModuleDecls $ moduleDecls m}
+optimizeCoreFn :: Module Ann -> Supply (Module Ann)
+optimizeCoreFn m = fmap (\md -> m {moduleDecls = md}) . optimizeCommonSubexpressions (moduleName m) . optimizeModuleDecls $ moduleDecls m
 
 optimizeModuleDecls :: [Bind Ann] -> [Bind Ann]
 optimizeModuleDecls = map transformBinds
   where
   (transformBinds, _, _) = everywhereOnValues identity transformExprs identity
-  transformExprs = optimizeUnusedPartialFn . optimizeClosedRecordUpdate
-
-optimizeClosedRecordUpdate :: Expr Ann -> Expr Ann
-optimizeClosedRecordUpdate ou@(ObjectUpdate a@(_, _, Just t, _) r updatedFields) =
-  case closedRecordFields t of
-    Nothing -> ou
-    Just allFields -> Literal a (ObjectLiteral (map f allFields))
-      where f (Label l) = case lookup l updatedFields of
-              Nothing -> (l, Accessor (nullSourceSpan, [], Nothing, Nothing) l r)
-              Just e -> (l, e)
-optimizeClosedRecordUpdate e = e
-
--- | Return the labels of a closed record, or Nothing for other types or open records.
-closedRecordFields :: Type a -> Maybe [Label]
-closedRecordFields (TypeApp _ (TypeConstructor _ C.Record) row) =
-  collect row
-  where
-    collect :: Type a -> Maybe [Label]
-    collect (REmpty _) = Just []
-    collect (RCons _ l _ r) = collect r >>= return . (l :)
-    collect _ = Nothing
-closedRecordFields _ = Nothing
+  transformExprs
+    = optimizeDataFunctionApply
 
--- | See https://github.com/purescript/purescript/issues/3157
-optimizeUnusedPartialFn :: Expr a -> Expr a
-optimizeUnusedPartialFn (Let _
-  [NonRec _ UnusedIdent _]
-  (App _ (App _ (Var _ (Qualified _ UnusedIdent)) _) originalCoreFn)) =
-  originalCoreFn
-optimizeUnusedPartialFn e = e
+optimizeDataFunctionApply :: Expr a -> Expr a
+optimizeDataFunctionApply e = case e of
+  (App a (App _ (Var _ fn) x) y)
+    | C.I_functionApply <- fn -> App a x y
+    | C.I_functionApplyFlipped <- fn -> App a y x
+  _ -> e
diff --git a/src/Language/PureScript/CoreFn/ToJSON.hs b/src/Language/PureScript/CoreFn/ToJSON.hs
--- a/src/Language/PureScript/CoreFn/ToJSON.hs
+++ b/src/Language/PureScript/CoreFn/ToJSON.hs
@@ -7,84 +7,92 @@
   ( moduleToJSON
   ) where
 
-import           Prelude.Compat
+import Prelude
 
-import           Control.Arrow ((***))
-import           Data.Either (isLeft)
-import           Data.Maybe (maybe)
-import           Data.Aeson
-import           Data.Version (Version, showVersion)
-import           Data.Text (Text)
-import qualified Data.Text as T
+import Control.Arrow ((***))
+import Data.Either (isLeft)
+import Data.Map.Strict qualified as M
+import Data.Aeson (ToJSON(..), Value(..), object)
+import Data.Aeson qualified
+import Data.Aeson.Key qualified
+import Data.Aeson.Types (Pair)
+import Data.Version (Version, showVersion)
+import Data.Text (Text)
+import Data.Text qualified as T
 
-import           Language.PureScript.AST.Literals
-import           Language.PureScript.AST.SourcePos (SourceSpan(SourceSpan))
-import           Language.PureScript.CoreFn
-import           Language.PureScript.Names
-import           Language.PureScript.PSString (PSString)
+import Language.PureScript.AST.Literals (Literal(..))
+import Language.PureScript.AST.SourcePos (SourceSpan(..))
+import Language.PureScript.CoreFn (Ann, Bind(..), Binder(..), CaseAlternative(..), ConstructorType(..), Expr(..), Meta(..), Module(..))
+import Language.PureScript.Names (Ident, ModuleName(..), ProperName(..), Qualified(..), QualifiedBy(..), runIdent)
+import Language.PureScript.PSString (PSString)
 
 constructorTypeToJSON :: ConstructorType -> Value
 constructorTypeToJSON ProductType = toJSON "ProductType"
 constructorTypeToJSON SumType = toJSON "SumType"
 
+infixr 8 .=
+(.=) :: ToJSON a => String -> a -> Pair
+key .= value = Data.Aeson.Key.fromString key Data.Aeson..= value
+
 metaToJSON :: Meta -> Value
 metaToJSON (IsConstructor t is)
   = object
-    [ T.pack "metaType"         .= "IsConstructor"
-    , T.pack "constructorType"  .= constructorTypeToJSON t
-    , T.pack "identifiers"      .= identToJSON `map` is
+    [ "metaType"         .= "IsConstructor"
+    , "constructorType"  .= constructorTypeToJSON t
+    , "identifiers"      .= identToJSON `map` is
     ]
-metaToJSON IsNewtype              = object [ T.pack "metaType"  .= "IsNewtype" ]
-metaToJSON IsTypeClassConstructor = object [ T.pack "metaType"  .= "IsTypeClassConstructor" ]
-metaToJSON IsForeign              = object [ T.pack "metaType"  .= "IsForeign" ]
-metaToJSON IsWhere                = object [ T.pack "metaType"  .= "IsWhere" ]
+metaToJSON IsNewtype              = object [ "metaType"  .= "IsNewtype" ]
+metaToJSON IsTypeClassConstructor = object [ "metaType"  .= "IsTypeClassConstructor" ]
+metaToJSON IsForeign              = object [ "metaType"  .= "IsForeign" ]
+metaToJSON IsWhere                = object [ "metaType"  .= "IsWhere" ]
+metaToJSON IsSyntheticApp         = object [ "metaType"  .= "IsSyntheticApp" ]
 
 sourceSpanToJSON :: SourceSpan -> Value
 sourceSpanToJSON (SourceSpan _ spanStart spanEnd) =
-  object [ T.pack "start" .= spanStart
-         , T.pack "end"   .= spanEnd
+  object [ "start" .= spanStart
+         , "end"   .= spanEnd
          ]
 
 annToJSON :: Ann -> Value
-annToJSON (ss, _, _, m) = object [ T.pack "sourceSpan"  .= sourceSpanToJSON ss
-                                 , T.pack "meta"        .= maybe Null metaToJSON m
-                                 ]
+annToJSON (ss, _, m) = object [ "sourceSpan"  .= sourceSpanToJSON ss
+                              , "meta"        .= maybe Null metaToJSON m
+                              ]
 
 literalToJSON :: (a -> Value) -> Literal a -> Value
 literalToJSON _ (NumericLiteral (Left n))
   = object
-    [ T.pack "literalType" .= "IntLiteral"
-    , T.pack "value"       .= n
+    [ "literalType" .= "IntLiteral"
+    , "value"       .= n
     ]
 literalToJSON _ (NumericLiteral (Right n))
   = object
-      [ T.pack "literalType"  .= "NumberLiteral"
-      , T.pack "value"        .= n
+      [ "literalType"  .= "NumberLiteral"
+      , "value"        .= n
       ]
 literalToJSON _ (StringLiteral s)
   = object
-    [ T.pack "literalType"  .= "StringLiteral"
-    , T.pack "value"        .= s
+    [ "literalType"  .= "StringLiteral"
+    , "value"        .= s
     ]
 literalToJSON _ (CharLiteral c)
   = object
-    [ T.pack "literalType"  .= "CharLiteral"
-    , T.pack "value"        .= c
+    [ "literalType"  .= "CharLiteral"
+    , "value"        .= c
     ]
 literalToJSON _ (BooleanLiteral b)
   = object
-    [ T.pack "literalType"  .= "BooleanLiteral"
-    , T.pack "value"        .= b
+    [ "literalType"  .= "BooleanLiteral"
+    , "value"        .= b
     ]
 literalToJSON t (ArrayLiteral xs)
   = object
-    [ T.pack "literalType"  .= "ArrayLiteral"
-    , T.pack "value"        .= map t xs
+    [ "literalType"  .= "ArrayLiteral"
+    , "value"        .= map t xs
     ]
 literalToJSON t (ObjectLiteral xs)
   = object
-    [ T.pack "literalType"    .= "ObjectLiteral"
-    , T.pack "value"          .= recordToJSON t xs
+    [ "literalType"    .= "ObjectLiteral"
+    , "value"          .= recordToJSON t xs
     ]
 
 identToJSON :: Ident -> Value
@@ -94,49 +102,59 @@
 properNameToJSON = toJSON . runProperName
 
 qualifiedToJSON :: (a -> Text) -> Qualified a -> Value
-qualifiedToJSON f (Qualified mn a) = object
-  [ T.pack "moduleName"   .= maybe Null moduleNameToJSON mn
-  , T.pack "identifier"   .= toJSON (f a)
-  ]
+qualifiedToJSON f (Qualified qb a) =
+  case qb of
+    ByModuleName mn -> object
+      [ "moduleName" .= moduleNameToJSON mn
+      , "identifier" .= toJSON (f a)
+      ]
+    BySourcePos ss -> object
+      [ "sourcePos"  .= toJSON ss
+      , "identifier" .= toJSON (f a)
+      ]
 
 moduleNameToJSON :: ModuleName -> Value
-moduleNameToJSON (ModuleName pns) = toJSON $ properNameToJSON `map` pns
+moduleNameToJSON (ModuleName name) = toJSON (T.splitOn (T.pack ".") name)
 
 moduleToJSON :: Version -> Module Ann -> Value
 moduleToJSON v m = object
-  [ T.pack "sourceSpan" .= sourceSpanToJSON (moduleSourceSpan m)
-  , T.pack "moduleName" .= moduleNameToJSON (moduleName m)
-  , T.pack "modulePath" .= toJSON (modulePath m)
-  , T.pack "imports"    .= map importToJSON (moduleImports m)
-  , T.pack "exports"    .= map identToJSON (moduleExports m)
-  , T.pack "foreign"    .= map identToJSON (moduleForeign m)
-  , T.pack "decls"      .= map bindToJSON (moduleDecls m)
-  , T.pack "builtWith"  .= toJSON (showVersion v)
-  , T.pack "comments"   .= map toJSON (moduleComments m)
+  [ "sourceSpan" .= sourceSpanToJSON (moduleSourceSpan m)
+  , "moduleName" .= moduleNameToJSON (moduleName m)
+  , "modulePath" .= toJSON (modulePath m)
+  , "imports"    .= map importToJSON (moduleImports m)
+  , "exports"    .= map identToJSON (moduleExports m)
+  , "reExports"  .= reExportsToJSON (moduleReExports m)
+  , "foreign"    .= map identToJSON (moduleForeign m)
+  , "decls"      .= map bindToJSON (moduleDecls m)
+  , "builtWith"  .= toJSON (showVersion v)
+  , "comments"   .= map toJSON (moduleComments m)
   ]
 
   where
   importToJSON (ann,mn) = object
-    [ T.pack "annotation" .= annToJSON ann
-    , T.pack "moduleName" .= moduleNameToJSON mn
+    [ "annotation" .= annToJSON ann
+    , "moduleName" .= moduleNameToJSON mn
     ]
 
+  reExportsToJSON :: M.Map ModuleName [Ident] -> Value
+  reExportsToJSON = toJSON . M.map (map runIdent)
+
 bindToJSON :: Bind Ann -> Value
 bindToJSON (NonRec ann n e)
   = object
-    [ T.pack "bindType"   .= "NonRec"
-    , T.pack "annotation" .= annToJSON ann
-    , T.pack "identifier" .= identToJSON n
-    , T.pack "expression" .= exprToJSON e
+    [ "bindType"   .= "NonRec"
+    , "annotation" .= annToJSON ann
+    , "identifier" .= identToJSON n
+    , "expression" .= exprToJSON e
     ]
 bindToJSON (Rec bs)
   = object
-    [ T.pack "bindType"   .= "Rec"
-    , T.pack "binds"      .= map (\((ann, n), e)
+    [ "bindType"   .= "Rec"
+    , "binds"      .= map (\((ann, n), e)
                                   -> object
-                                      [ T.pack "identifier"  .= identToJSON n
-                                      , T.pack "annotation"   .= annToJSON ann
-                                      , T.pack "expression"   .= exprToJSON e
+                                      [ "identifier"  .= identToJSON n
+                                      , "annotation"   .= annToJSON ann
+                                      , "expression"   .= exprToJSON e
                                       ]) bs
     ]
 
@@ -144,86 +162,88 @@
 recordToJSON f = toJSON . map (toJSON *** f)
 
 exprToJSON :: Expr Ann -> Value
-exprToJSON (Var ann i)              = object [ T.pack "type"        .= toJSON "Var"
-                                             , T.pack "annotation"  .= annToJSON ann
-                                             , T.pack "value"       .= qualifiedToJSON runIdent i
+exprToJSON (Var ann i)              = object [ "type"        .= toJSON "Var"
+                                             , "annotation"  .= annToJSON ann
+                                             , "value"       .= qualifiedToJSON runIdent i
                                              ]
-exprToJSON (Literal ann l)          = object [ T.pack "type"        .= "Literal"
-                                             , T.pack "annotation"  .= annToJSON ann
-                                             , T.pack "value"       .=  literalToJSON exprToJSON l
+exprToJSON (Literal ann l)          = object [ "type"        .= "Literal"
+                                             , "annotation"  .= annToJSON ann
+                                             , "value"       .=  literalToJSON exprToJSON l
                                              ]
-exprToJSON (Constructor ann d c is) = object [ T.pack "type"        .= "Constructor"
-                                             , T.pack "annotation"  .= annToJSON ann
-                                             , T.pack "typeName"    .= properNameToJSON d
-                                             , T.pack "constructorName" .= properNameToJSON c
-                                             , T.pack "fieldNames"  .= map identToJSON is
+exprToJSON (Constructor ann d c is) = object [ "type"        .= "Constructor"
+                                             , "annotation"  .= annToJSON ann
+                                             , "typeName"    .= properNameToJSON d
+                                             , "constructorName" .= properNameToJSON c
+                                             , "fieldNames"  .= map identToJSON is
                                              ]
-exprToJSON (Accessor ann f r)       = object [ T.pack "type"        .= "Accessor"
-                                             , T.pack "annotation"  .= annToJSON ann
-                                             , T.pack "fieldName"   .= f
-                                             , T.pack "expression"  .= exprToJSON r
+exprToJSON (Accessor ann f r)       = object [ "type"        .= "Accessor"
+                                             , "annotation"  .= annToJSON ann
+                                             , "fieldName"   .= f
+                                             , "expression"  .= exprToJSON r
                                              ]
-exprToJSON (ObjectUpdate ann r fs)  = object [ T.pack "type"        .= "ObjectUpdate"
-                                             , T.pack "annotation"  .= annToJSON ann
-                                             , T.pack "expression"  .= exprToJSON r
-                                             , T.pack "updates"     .= recordToJSON exprToJSON fs
+exprToJSON (ObjectUpdate ann r copy fs)
+                                    = object [ "type"        .= "ObjectUpdate"
+                                             , "annotation"  .= annToJSON ann
+                                             , "expression"  .= exprToJSON r
+                                             , "copy"        .= toJSON copy
+                                             , "updates"     .= recordToJSON exprToJSON fs
                                              ]
-exprToJSON (Abs ann p b)            = object [ T.pack "type"        .= "Abs"
-                                             , T.pack "annotation"  .= annToJSON ann
-                                             , T.pack "argument"    .= identToJSON p
-                                             , T.pack "body"        .= exprToJSON b
+exprToJSON (Abs ann p b)            = object [ "type"        .= "Abs"
+                                             , "annotation"  .= annToJSON ann
+                                             , "argument"    .= identToJSON p
+                                             , "body"        .= exprToJSON b
                                              ]
-exprToJSON (App ann f x)            = object [ T.pack "type"        .= "App"
-                                             , T.pack "annotation"  .= annToJSON ann
-                                             , T.pack "abstraction" .= exprToJSON f
-                                             , T.pack "argument"    .= exprToJSON x
+exprToJSON (App ann f x)            = object [ "type"        .= "App"
+                                             , "annotation"  .= annToJSON ann
+                                             , "abstraction" .= exprToJSON f
+                                             , "argument"    .= exprToJSON x
                                              ]
-exprToJSON (Case ann ss cs)         = object [ T.pack "type"        .= "Case"
-                                             , T.pack "annotation"  .= annToJSON ann
-                                             , T.pack "caseExpressions"
+exprToJSON (Case ann ss cs)         = object [ "type"        .= "Case"
+                                             , "annotation"  .= annToJSON ann
+                                             , "caseExpressions"
                                                                     .= map exprToJSON ss
-                                             , T.pack "caseAlternatives"
+                                             , "caseAlternatives"
                                                                     .= map caseAlternativeToJSON cs
                                              ]
-exprToJSON (Let ann bs e)           = object [ T.pack "type"        .= "Let" 
-                                             , T.pack "annotation"  .= annToJSON ann
-                                             , T.pack "binds"       .= map bindToJSON bs
-                                             , T.pack "expression"  .= exprToJSON e
+exprToJSON (Let ann bs e)           = object [ "type"        .= "Let" 
+                                             , "annotation"  .= annToJSON ann
+                                             , "binds"       .= map bindToJSON bs
+                                             , "expression"  .= exprToJSON e
                                              ]
 
 caseAlternativeToJSON :: CaseAlternative Ann -> Value
 caseAlternativeToJSON (CaseAlternative bs r') =
   let isGuarded = isLeft r'
   in object
-      [ T.pack "binders"     .= toJSON (map binderToJSON bs)
-      , T.pack "isGuarded"   .= toJSON isGuarded
-      , T.pack (if isGuarded then "expressions" else "expression")
+      [ "binders"     .= toJSON (map binderToJSON bs)
+      , "isGuarded"   .= toJSON isGuarded
+      , (if isGuarded then "expressions" else "expression")
          .= case r' of
-             Left rs -> toJSON $ map (\(g, e) -> object [ T.pack "guard" .= exprToJSON g, T.pack "expression" .= exprToJSON e]) rs
+             Left rs -> toJSON $ map (\(g, e) -> object [ "guard" .= exprToJSON g, "expression" .= exprToJSON e]) rs
              Right r -> exprToJSON r
       ]
 
 binderToJSON :: Binder Ann -> Value
-binderToJSON (VarBinder ann v)              = object [ T.pack "binderType"  .= "VarBinder"
-                                                     , T.pack "annotation"  .= annToJSON ann
-                                                     , T.pack "identifier"  .= identToJSON v
+binderToJSON (VarBinder ann v)              = object [ "binderType"  .= "VarBinder"
+                                                     , "annotation"  .= annToJSON ann
+                                                     , "identifier"  .= identToJSON v
                                                      ]
-binderToJSON (NullBinder ann)               = object [ T.pack "binderType"  .= "NullBinder"
-                                                     , T.pack "annotation"  .= annToJSON ann
+binderToJSON (NullBinder ann)               = object [ "binderType"  .= "NullBinder"
+                                                     , "annotation"  .= annToJSON ann
                                                      ]
-binderToJSON (LiteralBinder ann l)          = object [ T.pack "binderType"  .= "LiteralBinder"
-                                                     , T.pack "annotation"  .= annToJSON ann
-                                                     , T.pack "literal"     .= literalToJSON binderToJSON l
+binderToJSON (LiteralBinder ann l)          = object [ "binderType"  .= "LiteralBinder"
+                                                     , "annotation"  .= annToJSON ann
+                                                     , "literal"     .= literalToJSON binderToJSON l
                                                      ]
-binderToJSON (ConstructorBinder ann d c bs) = object [ T.pack "binderType"  .= "ConstructorBinder"
-                                                     , T.pack "annotation"  .= annToJSON ann
-                                                     , T.pack "typeName"    .= qualifiedToJSON runProperName d
-                                                     , T.pack "constructorName"
+binderToJSON (ConstructorBinder ann d c bs) = object [ "binderType"  .= "ConstructorBinder"
+                                                     , "annotation"  .= annToJSON ann
+                                                     , "typeName"    .= qualifiedToJSON runProperName d
+                                                     , "constructorName"
                                                                             .= qualifiedToJSON runProperName c
-                                                     , T.pack "binders"     .= map binderToJSON bs
+                                                     , "binders"     .= map binderToJSON bs
                                                      ]
-binderToJSON (NamedBinder ann n b)          = object [ T.pack "binderType"  .= "NamedBinder"
-                                                     , T.pack "annotation"  .= annToJSON ann
-                                                     , T.pack "identifier"  .= identToJSON n
-                                                     , T.pack "binder"      .= binderToJSON b
+binderToJSON (NamedBinder ann n b)          = object [ "binderType"  .= "NamedBinder"
+                                                     , "annotation"  .= annToJSON ann
+                                                     , "identifier"  .= identToJSON n
+                                                     , "binder"      .= binderToJSON b
                                                      ]
diff --git a/src/Language/PureScript/CoreFn/Traversals.hs b/src/Language/PureScript/CoreFn/Traversals.hs
--- a/src/Language/PureScript/CoreFn/Traversals.hs
+++ b/src/Language/PureScript/CoreFn/Traversals.hs
@@ -3,13 +3,14 @@
 --
 module Language.PureScript.CoreFn.Traversals where
 
-import Prelude.Compat
+import Prelude
 
 import Control.Arrow (second, (***), (+++))
+import Data.Bitraversable (bitraverse)
 
-import Language.PureScript.AST.Literals
-import Language.PureScript.CoreFn.Binders
-import Language.PureScript.CoreFn.Expr
+import Language.PureScript.AST.Literals (Literal(..))
+import Language.PureScript.CoreFn.Binders (Binder(..))
+import Language.PureScript.CoreFn.Expr (Bind(..), CaseAlternative(..), Expr(..))
 
 everywhereOnValues :: (Bind a -> Bind a) ->
                       (Expr a -> Expr a) ->
@@ -22,7 +23,7 @@
 
   g' (Literal ann e) = g (Literal ann (handleLiteral g' e))
   g' (Accessor ann prop e) = g (Accessor ann prop (g' e))
-  g' (ObjectUpdate ann obj vs) = g (ObjectUpdate ann (g' obj) (map (fmap g') vs))
+  g' (ObjectUpdate ann obj copy vs) = g (ObjectUpdate ann (g' obj) copy (map (fmap g') vs))
   g' (Abs ann name e) = g (Abs ann name (g' e))
   g' (App ann v1 v2) = g (App ann (g' v1) (g' v2))
   g' (Case ann vs alts) = g (Case ann (map g' vs) (map handleCaseAlternative alts))
@@ -44,34 +45,42 @@
   handleLiteral i (ObjectLiteral ls) = ObjectLiteral (map (fmap i) ls)
   handleLiteral _ other = other
 
-everythingOnValues :: (r -> r -> r) ->
-                      (Bind a -> r) ->
-                      (Expr a -> r) ->
-                      (Binder a -> r) ->
-                      (CaseAlternative a -> r) ->
-                      (Bind a -> r, Expr a -> r, Binder a -> r, CaseAlternative a -> r)
-everythingOnValues (<>.) f g h i = (f', g', h', i')
+-- |
+-- Apply the provided functions to the top level of AST nodes.
+--
+-- This function is useful as a building block for recursive functions, but
+-- doesn't actually recurse itself.
+--
+traverseCoreFn
+  :: forall f a
+   . Applicative f
+  => (Bind a -> f (Bind a))
+  -> (Expr a -> f (Expr a))
+  -> (Binder a -> f (Binder a))
+  -> (CaseAlternative a -> f (CaseAlternative a))
+  -> (Bind a -> f (Bind a), Expr a -> f (Expr a), Binder a -> f (Binder a), CaseAlternative a -> f (CaseAlternative a))
+traverseCoreFn f g h i = (f', g', h', i')
   where
-  f' b@(NonRec _ _ e) = f b <>. g' e
-  f' b@(Rec es) = foldl (<>.) (f b) (map (g' . snd) es)
+  f' (NonRec a name e) = NonRec a name <$> g e
+  f' (Rec es) = Rec <$> traverse (traverse g) es
 
-  g' v@(Literal _ l) = foldl (<>.) (g v) (map g' (extractLiteral l))
-  g' v@(Accessor _ _ e1) = g v <>. g' e1
-  g' v@(ObjectUpdate _ obj vs) = foldl (<>.) (g v <>. g' obj) (map (g' . snd) vs)
-  g' v@(Abs _ _ e1) = g v <>. g' e1
-  g' v@(App _ e1 e2) = g v <>. g' e1 <>. g' e2
-  g' v@(Case _ vs alts) = foldl (<>.) (foldl (<>.) (g v) (map g' vs)) (map i' alts)
-  g' v@(Let _ ds e1) = foldl (<>.) (g v) (map f' ds) <>. g' e1
-  g' v = g v
+  g' (Literal ann e) = Literal ann <$> handleLiteral g e
+  g' (Accessor ann prop e) = Accessor ann prop <$> g e
+  g' (ObjectUpdate ann obj copy vs) = (\obj' -> ObjectUpdate ann obj' copy) <$> g obj <*> traverse (traverse g) vs
+  g' (Abs ann name e) = Abs ann name <$> g e
+  g' (App ann v1 v2) = App ann <$> g v1 <*> g v2
+  g' (Case ann vs alts) = Case ann <$> traverse g vs <*> traverse i alts
+  g' (Let ann ds e) = Let ann <$> traverse f ds <*> g' e
+  g' e = pure e
 
-  h' b@(LiteralBinder _ l) = foldl (<>.) (h b) (map h' (extractLiteral l))
-  h' b@(ConstructorBinder _ _ _ bs) = foldl (<>.) (h b) (map h' bs)
-  h' b@(NamedBinder _ _ b1) = h b <>. h' b1
-  h' b = h b
+  h' (LiteralBinder a b) = LiteralBinder a <$> handleLiteral h b
+  h' (NamedBinder a name b) = NamedBinder a name <$> h b
+  h' (ConstructorBinder a q1 q2 bs) = ConstructorBinder a q1 q2 <$> traverse h bs
+  h' b = pure b
 
-  i' ca@(CaseAlternative bs (Right val)) = foldl (<>.) (i ca) (map h' bs) <>. g' val
-  i' ca@(CaseAlternative bs (Left gs)) = foldl (<>.) (i ca) (map h' bs ++ concatMap (\(grd, val) -> [g' grd, g' val]) gs)
+  i' ca = CaseAlternative <$> traverse h (caseAlternativeBinders ca) <*> bitraverse (traverse $ bitraverse g g) g (caseAlternativeResult ca)
 
-  extractLiteral (ArrayLiteral xs) = xs
-  extractLiteral (ObjectLiteral xs) = map snd xs
-  extractLiteral _ = []
+  handleLiteral withItem = \case
+    ArrayLiteral ls -> ArrayLiteral <$> traverse withItem ls
+    ObjectLiteral ls -> ObjectLiteral <$> traverse (traverse withItem) ls
+    other -> pure other
diff --git a/src/Language/PureScript/CoreImp/AST.hs b/src/Language/PureScript/CoreImp/AST.hs
--- a/src/Language/PureScript/CoreImp/AST.hs
+++ b/src/Language/PureScript/CoreImp/AST.hs
@@ -1,16 +1,17 @@
 -- | Data types for the imperative core AST
 module Language.PureScript.CoreImp.AST where
 
-import Prelude.Compat
+import Prelude
 
 import Control.Monad ((>=>))
 import Control.Monad.Identity (Identity(..), runIdentity)
 import Data.Text (Text)
 
 import Language.PureScript.AST (SourceSpan(..))
-import Language.PureScript.Comments
+import Language.PureScript.Comments (Comment)
+import Language.PureScript.Names (ModuleName)
 import Language.PureScript.PSString (PSString)
-import Language.PureScript.Traversals
+import Language.PureScript.Traversals (sndM)
 
 -- | Built-in unary operators
 data UnaryOperator
@@ -44,6 +45,19 @@
   | ZeroFillShiftRight
   deriving (Show, Eq)
 
+-- | Data type for CoreImp comments, which can come from either the PureScript
+-- source or internal transformations.
+data CIComments
+  = SourceComments [Comment]
+  | PureAnnotation
+  deriving (Show, Eq)
+
+-- |
+-- Indicates whether the initializer of a variable is known not to have side
+-- effects, and thus can be inlined if needed or removed if unneeded.
+--
+data InitializerEffects = NoEffects | UnknownEffects deriving (Show, Eq)
+
 -- | Data type for simplified JavaScript expressions
 data AST
   = NumericLiteral (Maybe SourceSpan) (Either Integer Double)
@@ -68,9 +82,11 @@
   -- ^ Function application
   | Var (Maybe SourceSpan) Text
   -- ^ Variable
+  | ModuleAccessor (Maybe SourceSpan) ModuleName PSString
+  -- ^ Value from another module
   | Block (Maybe SourceSpan) [AST]
   -- ^ A block of expressions in braces
-  | VariableIntroduction (Maybe SourceSpan) Text (Maybe AST)
+  | VariableIntroduction (Maybe SourceSpan) Text (Maybe (InitializerEffects, AST))
   -- ^ A variable introduction and optional initialization
   | Assignment (Maybe SourceSpan) AST AST
   -- ^ A variable assignment
@@ -90,7 +106,7 @@
   -- ^ Throw statement
   | InstanceOf (Maybe SourceSpan) AST AST
   -- ^ instanceof check
-  | Comment (Maybe SourceSpan) [Comment] AST
+  | Comment CIComments AST
   -- ^ Commented JavaScript
   deriving (Show, Eq)
 
@@ -111,6 +127,7 @@
   go (Function _ name args j) = Function ss name args j
   go (App _ j js) = App ss j js
   go (Var _ s) = Var ss s
+  go (ModuleAccessor _ s1 s2) = ModuleAccessor ss s1 s2
   go (Block _ js) = Block ss js
   go (VariableIntroduction _ name j) = VariableIntroduction ss name j
   go (Assignment _ j1 j2) = Assignment ss j1 j2
@@ -122,7 +139,7 @@
   go (ReturnNoResult _) = ReturnNoResult ss
   go (Throw _ js) = Throw ss js
   go (InstanceOf _ j1 j2) = InstanceOf ss j1 j2
-  go (Comment _ com j) = Comment ss com j
+  go c@Comment{} = c
 
 getSourceSpan :: AST -> Maybe SourceSpan
 getSourceSpan = go where
@@ -138,6 +155,7 @@
   go (Function ss _ _ _) = ss
   go (App ss _ _) = ss
   go (Var ss _) = ss
+  go (ModuleAccessor ss _ _) = ss
   go (Block ss _) = ss
   go (VariableIntroduction ss _ _) = ss
   go (Assignment ss _ _) = ss
@@ -149,7 +167,7 @@
   go (ReturnNoResult ss) = ss
   go (Throw ss _) = ss
   go (InstanceOf ss _ _) = ss
-  go (Comment ss _ _) = ss
+  go (Comment _ _) = Nothing
 
 everywhere :: (AST -> AST) -> AST -> AST
 everywhere f = go where
@@ -162,7 +180,7 @@
   go (Function ss name args j) = f (Function ss name args (go j))
   go (App ss j js) = f (App ss (go j) (map go js))
   go (Block ss js) = f (Block ss (map go js))
-  go (VariableIntroduction ss name j) = f (VariableIntroduction ss name (fmap go j))
+  go (VariableIntroduction ss name j) = f (VariableIntroduction ss name (fmap (fmap go) j))
   go (Assignment ss j1 j2) = f (Assignment ss (go j1) (go j2))
   go (While ss j1 j2) = f (While ss (go j1) (go j2))
   go (For ss name j1 j2 j3) = f (For ss name (go j1) (go j2) (go j3))
@@ -171,7 +189,7 @@
   go (Return ss js) = f (Return ss (go js))
   go (Throw ss js) = f (Throw ss (go js))
   go (InstanceOf ss j1 j2) = f (InstanceOf ss (go j1) (go j2))
-  go (Comment ss com j) = f (Comment ss com (go j))
+  go (Comment com j) = f (Comment com (go j))
   go other = f other
 
 everywhereTopDown :: (AST -> AST) -> AST -> AST
@@ -188,7 +206,7 @@
   go (Function ss name args j) = Function ss name args <$> f' j
   go (App ss j js) = App ss <$> f' j <*> traverse f' js
   go (Block ss js) = Block ss <$> traverse f' js
-  go (VariableIntroduction ss name j) = VariableIntroduction ss name <$> traverse f' j
+  go (VariableIntroduction ss name j) = VariableIntroduction ss name <$> traverse (traverse f') j
   go (Assignment ss j1 j2) = Assignment ss <$> f' j1 <*> f' j2
   go (While ss j1 j2) = While ss <$> f' j1 <*> f' j2
   go (For ss name j1 j2 j3) = For ss name <$> f' j1 <*> f' j2 <*> f' j3
@@ -197,7 +215,7 @@
   go (Return ss j) = Return ss <$> f' j
   go (Throw ss j) = Throw ss <$> f' j
   go (InstanceOf ss j1 j2) = InstanceOf ss <$> f' j1 <*> f' j2
-  go (Comment ss com j) = Comment ss com <$> f' j
+  go (Comment com j) = Comment com <$> f' j
   go other = f other
 
 everything :: (r -> r -> r) -> (AST -> r) -> AST -> r
@@ -210,7 +228,7 @@
   go j@(Function _ _ _ j1) = f j <>. go j1
   go j@(App _ j1 js) = foldl (<>.) (f j <>. go j1) (map go js)
   go j@(Block _ js) = foldl (<>.) (f j) (map go js)
-  go j@(VariableIntroduction _ _ (Just j1)) = f j <>. go j1
+  go j@(VariableIntroduction _ _ (Just (_, j1))) = f j <>. go j1
   go j@(Assignment _ j1 j2) = f j <>. go j1 <>. go j2
   go j@(While _ j1 j2) = f j <>. go j1 <>. go j2
   go j@(For _ _ j1 j2 j3) = f j <>. go j1 <>. go j2 <>. go j3
@@ -220,5 +238,5 @@
   go j@(Return _ j1) = f j <>. go j1
   go j@(Throw _ j1) = f j <>. go j1
   go j@(InstanceOf _ j1 j2) = f j <>. go j1 <>. go j2
-  go j@(Comment _ _ j1) = f j <>. go j1
+  go j@(Comment _ j1) = f j <>. go j1
   go other = f other
diff --git a/src/Language/PureScript/CoreImp/Module.hs b/src/Language/PureScript/CoreImp/Module.hs
new file mode 100644
--- /dev/null
+++ b/src/Language/PureScript/CoreImp/Module.hs
@@ -0,0 +1,19 @@
+module Language.PureScript.CoreImp.Module where
+
+import Protolude
+import Data.List.NonEmpty qualified as NEL (NonEmpty)
+
+import Language.PureScript.Comments (Comment)
+import Language.PureScript.CoreImp.AST (AST)
+import Language.PureScript.PSString (PSString)
+
+data Module = Module
+  { modHeader :: [Comment]
+  , modImports :: [Import]
+  , modBody :: [AST]
+  , modExports :: [Export]
+  }
+
+data Import = Import Text PSString
+
+data Export = Export (NEL.NonEmpty Text) (Maybe PSString)
diff --git a/src/Language/PureScript/CoreImp/Optimizer.hs b/src/Language/PureScript/CoreImp/Optimizer.hs
--- a/src/Language/PureScript/CoreImp/Optimizer.hs
+++ b/src/Language/PureScript/CoreImp/Optimizer.hs
@@ -19,29 +19,34 @@
 --  * Inlining primitive JavaScript operators
 module Language.PureScript.CoreImp.Optimizer (optimize) where
 
-import Prelude.Compat
+import Prelude
 
+import Data.Text (Text)
+
 import Control.Monad.Supply.Class (MonadSupply)
-import Language.PureScript.CoreImp.AST
-import Language.PureScript.CoreImp.Optimizer.Blocks
-import Language.PureScript.CoreImp.Optimizer.Common
-import Language.PureScript.CoreImp.Optimizer.Inliner
-import Language.PureScript.CoreImp.Optimizer.MagicDo
-import Language.PureScript.CoreImp.Optimizer.TCO
-import Language.PureScript.CoreImp.Optimizer.Unused
+import Language.PureScript.CoreImp.AST (AST(..), InitializerEffects(..))
+import Language.PureScript.CoreImp.Optimizer.Blocks (collapseNestedBlocks, collapseNestedIfs)
+import Language.PureScript.CoreImp.Optimizer.Common (applyAll, replaceIdents)
+import Language.PureScript.CoreImp.Optimizer.Inliner (etaConvert, evaluateIifes, inlineCommonOperators, inlineCommonValues, inlineFnComposition, inlineFnIdentity, inlineUnsafeCoerce, inlineUnsafePartial, inlineVariables, unThunk)
+import Language.PureScript.CoreImp.Optimizer.MagicDo (inlineST, magicDoEff, magicDoEffect, magicDoST)
+import Language.PureScript.CoreImp.Optimizer.TCO (tco)
+import Language.PureScript.CoreImp.Optimizer.Unused (removeCodeAfterReturnStatements, removeUndefinedApp, removeUnusedEffectFreeVars)
 
 -- | Apply a series of optimizer passes to simplified JavaScript code
-optimize :: MonadSupply m => AST -> m AST
-optimize js = do
-    js' <- untilFixedPoint (inlineFnComposition . inlineUnsafeCoerce . inlineUnsafePartial . tidyUp . applyAll
-      [ inlineCommonValues
-      , inlineCommonOperators
-      ]) js
-    untilFixedPoint (return . tidyUp) . tco . inlineST
-      =<< untilFixedPoint (return . magicDoST)
-      =<< untilFixedPoint (return . magicDoEff)
-      =<< untilFixedPoint (return . magicDoEffect) js'
+optimize :: forall m. MonadSupply m => [Text] -> [[AST]] -> m [[AST]]
+optimize exps jsDecls = removeUnusedEffectFreeVars exps <$> traverse (traverse go) jsDecls
   where
+    go :: AST -> m AST
+    go js = do
+      js' <- untilFixedPoint (inlineFnComposition expander . inlineFnIdentity expander . inlineUnsafeCoerce . inlineUnsafePartial . tidyUp . applyAll
+        [ inlineCommonValues expander
+        , inlineCommonOperators expander
+        ]) js
+      untilFixedPoint (return . tidyUp) . tco . inlineST
+        =<< untilFixedPoint (return . magicDoST expander)
+        =<< untilFixedPoint (return . magicDoEff expander)
+        =<< untilFixedPoint (return . magicDoEffect expander) js'
+
     tidyUp :: AST -> AST
     tidyUp = applyAll
       [ collapseNestedBlocks
@@ -54,9 +59,27 @@
       , inlineVariables
       ]
 
+    expander = buildExpander (concat jsDecls)
+
 untilFixedPoint :: (Monad m, Eq a) => (a -> m a) -> a -> m a
 untilFixedPoint f = go
   where
   go a = do
    a' <- f a
    if a' == a then return a' else go a'
+
+-- |
+-- Take all top-level ASTs and return a function for expanding top-level
+-- variables during the various inlining steps in `optimize`.
+--
+-- Everything that gets inlined as an optimization is of a form that would
+-- have been lifted to a top-level binding during CSE, so for purposes of
+-- inlining we can save some time by only expanding variables bound at that
+-- level and not worrying about any inner scopes.
+--
+buildExpander :: [AST] -> AST -> AST
+buildExpander = replaceIdents . foldr go []
+  where
+  go = \case
+    VariableIntroduction _ name (Just (NoEffects, e)) -> ((name, e) :)
+    _ -> id
diff --git a/src/Language/PureScript/CoreImp/Optimizer/Blocks.hs b/src/Language/PureScript/CoreImp/Optimizer/Blocks.hs
--- a/src/Language/PureScript/CoreImp/Optimizer/Blocks.hs
+++ b/src/Language/PureScript/CoreImp/Optimizer/Blocks.hs
@@ -4,9 +4,9 @@
   , collapseNestedIfs
   ) where
 
-import Prelude.Compat
+import Prelude
 
-import Language.PureScript.CoreImp.AST
+import Language.PureScript.CoreImp.AST (AST(..), BinaryOperator(..), everywhere)
 
 -- | Collapse blocks which appear nested directly below another block
 collapseNestedBlocks :: AST -> AST
diff --git a/src/Language/PureScript/CoreImp/Optimizer/Common.hs b/src/Language/PureScript/CoreImp/Optimizer/Common.hs
--- a/src/Language/PureScript/CoreImp/Optimizer/Common.hs
+++ b/src/Language/PureScript/CoreImp/Optimizer/Common.hs
@@ -1,14 +1,15 @@
 -- | Common functions used by the various optimizer phases
 module Language.PureScript.CoreImp.Optimizer.Common where
 
-import Prelude.Compat
+import Prelude
 
 import Data.Text (Text)
 import Data.List (foldl')
 import Data.Maybe (fromMaybe)
 
-import Language.PureScript.Crash
-import Language.PureScript.CoreImp.AST
+import Language.PureScript.Crash (internalError)
+import Language.PureScript.CoreImp.AST (AST(..), everything, everywhere)
+import Language.PureScript.Names (ModuleName)
 import Language.PureScript.PSString (PSString)
 
 applyAll :: [a -> a] -> a -> a
@@ -43,14 +44,6 @@
   variablesOf (Var _ var) = [var]
   variablesOf _ = []
 
-isUsed :: Text -> AST -> Bool
-isUsed var1 = everything (||) check
-  where
-  check :: AST -> Bool
-  check (Var _ var2) | var1 == var2 = True
-  check (Assignment _ target _) | var1 == targetVariable target = True
-  check _ = False
-
 targetVariable :: AST -> Text
 targetVariable (Var _ var) = var
 targetVariable (Indexer _ _ tgt) = targetVariable tgt
@@ -67,10 +60,13 @@
 removeFromBlock go (Block ss sts) = Block ss (go sts)
 removeFromBlock _  js = js
 
-isDict :: (Text, PSString) -> AST -> Bool
-isDict (moduleName, dictName) (Indexer _ (StringLiteral _ x) (Var _ y)) =
-  x == dictName && y == moduleName
-isDict _ _ = False
+pattern Ref :: (ModuleName, PSString) -> AST
+pattern Ref pair <- (refPatternHelper -> Just pair)
+-- ideally: pattern Ref (moduleName, refName) <- ModuleAccessor _ moduleName refName
+-- but: https://gitlab.haskell.org/ghc/ghc/-/issues/12203
+--      https://github.com/ghc-proposals/ghc-proposals/pull/138
 
-isDict' :: [(Text, PSString)] -> AST -> Bool
-isDict' xs js = any (`isDict` js) xs
+refPatternHelper :: AST -> Maybe (ModuleName, PSString)
+refPatternHelper = \case
+  ModuleAccessor _ moduleName refName -> Just (moduleName, refName)
+  _ -> Nothing
diff --git a/src/Language/PureScript/CoreImp/Optimizer/Inliner.hs b/src/Language/PureScript/CoreImp/Optimizer/Inliner.hs
--- a/src/Language/PureScript/CoreImp/Optimizer/Inliner.hs
+++ b/src/Language/PureScript/CoreImp/Optimizer/Inliner.hs
@@ -4,6 +4,7 @@
   , inlineCommonValues
   , inlineCommonOperators
   , inlineFnComposition
+  , inlineFnIdentity
   , inlineUnsafeCoerce
   , inlineUnsafePartial
   , etaConvert
@@ -11,21 +12,22 @@
   , evaluateIifes
   ) where
 
-import Prelude.Compat
+import Prelude
 
 import Control.Monad.Supply.Class (MonadSupply, freshName)
 
 import Data.Either (rights)
 import Data.Maybe (fromMaybe)
-import Data.String (IsString, fromString)
 import Data.Text (Text)
-import qualified Data.Text as T
+import Data.Text qualified as T
 
-import Language.PureScript.PSString (PSString)
-import Language.PureScript.CoreImp.AST
-import Language.PureScript.CoreImp.Optimizer.Common
+import Language.PureScript.Names (ModuleName)
+import Language.PureScript.PSString (PSString, mkString)
+import Language.PureScript.CoreImp.AST (AST(..), BinaryOperator(..), InitializerEffects(..), UnaryOperator(..), everywhere, everywhereTopDown, everywhereTopDownM, getSourceSpan)
+import Language.PureScript.CoreImp.Optimizer.Common (pattern Ref, applyAll, isReassigned, isRebound, isUpdated, removeFromBlock, replaceIdent, replaceIdents)
 import Language.PureScript.AST (SourceSpan(..))
-import qualified Language.PureScript.Constants as C
+import Language.PureScript.Constants.Libs qualified as C
+import Language.PureScript.Constants.Prim qualified as C
 
 -- TODO: Potential bug:
 -- Shouldn't just inline this case: { var x = 0; x.toFixed(10); }
@@ -33,6 +35,7 @@
 -- Probably needs to be fixed in pretty-printer instead.
 shouldInline :: AST -> Bool
 shouldInline (Var _ _) = True
+shouldInline (ModuleAccessor _ _ _) = True
 shouldInline (NumericLiteral _ _) = True
 shouldInline (StringLiteral _ _) = True
 shouldInline (BooleanLiteral _ _) = True
@@ -45,7 +48,7 @@
   convert :: AST -> AST
   convert (Block ss [Return _ (App _ (Function _ Nothing idents block@(Block _ body)) args)])
     | all shouldInline args &&
-      not (any (`isRebound` block) (map (Var Nothing) idents)) &&
+      not (any ((`isRebound` block) . Var Nothing) idents) &&
       not (any (`isRebound` block) args)
       = Block ss (map (replaceIdents (zip idents args)) body)
   convert (Function _ Nothing [] (Block _ [Return _ (App _ fn [])])) = fn
@@ -68,7 +71,7 @@
   convert :: AST -> AST
   convert (App _ (Function _ Nothing [] (Block _ [Return _ ret])) []) = ret
   convert (App _ (Function _ Nothing idents (Block _ [Return ss ret])) [])
-    | not (any (`isReassigned` ret) idents) = replaceIdents (map (, Var ss C.undefined) idents) ret
+    | not (any (`isReassigned` ret) idents) = replaceIdents (map (, Var ss C.S_undefined) idents) ret
   convert js = js
 
 inlineVariables :: AST -> AST
@@ -76,139 +79,130 @@
   where
   go :: [AST] -> [AST]
   go [] = []
-  go (VariableIntroduction _ var (Just js) : sts)
+  go (VariableIntroduction _ var (Just (_, js)) : sts)
     | shouldInline js && not (any (isReassigned var) sts) && not (any (isRebound js) sts) && not (any (isUpdated var) sts) =
       go (map (replaceIdent var js) sts)
   go (s:sts) = s : go sts
 
-inlineCommonValues :: AST -> AST
-inlineCommonValues = everywhere convert
+inlineCommonValues :: (AST -> AST) -> AST -> AST
+inlineCommonValues expander = everywhere convert
   where
   convert :: AST -> AST
-  convert (App ss fn [dict])
-    | isDict' [semiringNumber, semiringInt] dict && isDict fnZero fn = NumericLiteral ss (Left 0)
-    | isDict' [semiringNumber, semiringInt] dict && isDict fnOne fn = NumericLiteral ss (Left 1)
-    | isDict boundedBoolean dict && isDict fnBottom fn = BooleanLiteral ss False
-    | isDict boundedBoolean dict && isDict fnTop fn = BooleanLiteral ss True
-  convert (App ss (App _ fn [dict]) [x])
-    | isDict ringInt dict && isDict fnNegate fn = Binary ss BitwiseOr (Unary ss Negate x) (NumericLiteral ss (Left 0))
-  convert (App ss (App _ (App _ fn [dict]) [x]) [y])
-    | isDict semiringInt dict && isDict fnAdd fn = intOp ss Add x y
-    | isDict semiringInt dict && isDict fnMultiply fn = intOp ss Multiply x y
-    | isDict ringInt dict && isDict fnSubtract fn = intOp ss Subtract x y
+  convert (expander -> App ss (Ref fn) [Ref dict])
+    | dict `elem` [C.P_semiringNumber, C.P_semiringInt], C.P_zero <- fn = NumericLiteral ss (Left 0)
+    | dict `elem` [C.P_semiringNumber, C.P_semiringInt], C.P_one <- fn = NumericLiteral ss (Left 1)
+    | C.P_boundedBoolean <- dict, C.P_bottom <- fn = BooleanLiteral ss False
+    | C.P_boundedBoolean <- dict, C.P_top <- fn = BooleanLiteral ss True
+  convert (App ss (expander -> App _ (Ref C.P_negate) [Ref C.P_ringInt]) [x])
+    = Binary ss BitwiseOr (Unary ss Negate x) (NumericLiteral ss (Left 0))
+  convert (App ss (App _ (expander -> App _ (Ref fn) [Ref dict]) [x]) [y])
+    | C.P_semiringInt <- dict, C.P_add <- fn = intOp ss Add x y
+    | C.P_semiringInt <- dict, C.P_mul <- fn = intOp ss Multiply x y
+    | C.P_ringInt <- dict, C.P_sub <- fn = intOp ss Subtract x y
   convert other = other
-  fnZero = (C.dataSemiring, C.zero)
-  fnOne = (C.dataSemiring, C.one)
-  fnBottom = (C.dataBounded, C.bottom)
-  fnTop = (C.dataBounded, C.top)
-  fnAdd = (C.dataSemiring, C.add)
-  fnMultiply = (C.dataSemiring, C.mul)
-  fnSubtract = (C.dataRing, C.sub)
-  fnNegate = (C.dataRing, C.negate)
   intOp ss op x y = Binary ss BitwiseOr (Binary ss op x y) (NumericLiteral ss (Left 0))
 
-inlineCommonOperators :: AST -> AST
-inlineCommonOperators = everywhereTopDown $ applyAll $
-  [ binary semiringNumber opAdd Add
-  , binary semiringNumber opMul Multiply
+inlineCommonOperators :: (AST -> AST) -> AST -> AST
+inlineCommonOperators expander = everywhereTopDown $ applyAll $
+  [ binary C.P_semiringNumber C.P_add Add
+  , binary C.P_semiringNumber C.P_mul Multiply
 
-  , binary ringNumber opSub Subtract
-  , unary  ringNumber opNegate Negate
+  , binary C.P_ringNumber C.P_sub Subtract
+  , unary  C.P_ringNumber C.P_negate Negate
 
-  , binary euclideanRingNumber opDiv Divide
+  , binary C.P_euclideanRingNumber C.P_div Divide
 
-  , binary eqNumber opEq EqualTo
-  , binary eqNumber opNotEq NotEqualTo
-  , binary eqInt opEq EqualTo
-  , binary eqInt opNotEq NotEqualTo
-  , binary eqString opEq EqualTo
-  , binary eqString opNotEq NotEqualTo
-  , binary eqChar opEq EqualTo
-  , binary eqChar opNotEq NotEqualTo
-  , binary eqBoolean opEq EqualTo
-  , binary eqBoolean opNotEq NotEqualTo
+  , binary C.P_eqNumber C.P_eq EqualTo
+  , binary C.P_eqNumber C.P_notEq NotEqualTo
+  , binary C.P_eqInt C.P_eq EqualTo
+  , binary C.P_eqInt C.P_notEq NotEqualTo
+  , binary C.P_eqString C.P_eq EqualTo
+  , binary C.P_eqString C.P_notEq NotEqualTo
+  , binary C.P_eqChar C.P_eq EqualTo
+  , binary C.P_eqChar C.P_notEq NotEqualTo
+  , binary C.P_eqBoolean C.P_eq EqualTo
+  , binary C.P_eqBoolean C.P_notEq NotEqualTo
 
-  , binary ordBoolean opLessThan LessThan
-  , binary ordBoolean opLessThanOrEq LessThanOrEqualTo
-  , binary ordBoolean opGreaterThan GreaterThan
-  , binary ordBoolean opGreaterThanOrEq GreaterThanOrEqualTo
-  , binary ordChar opLessThan LessThan
-  , binary ordChar opLessThanOrEq LessThanOrEqualTo
-  , binary ordChar opGreaterThan GreaterThan
-  , binary ordChar opGreaterThanOrEq GreaterThanOrEqualTo
-  , binary ordInt opLessThan LessThan
-  , binary ordInt opLessThanOrEq LessThanOrEqualTo
-  , binary ordInt opGreaterThan GreaterThan
-  , binary ordInt opGreaterThanOrEq GreaterThanOrEqualTo
-  , binary ordNumber opLessThan LessThan
-  , binary ordNumber opLessThanOrEq LessThanOrEqualTo
-  , binary ordNumber opGreaterThan GreaterThan
-  , binary ordNumber opGreaterThanOrEq GreaterThanOrEqualTo
-  , binary ordString opLessThan LessThan
-  , binary ordString opLessThanOrEq LessThanOrEqualTo
-  , binary ordString opGreaterThan GreaterThan
-  , binary ordString opGreaterThanOrEq GreaterThanOrEqualTo
+  , binary C.P_ordBoolean C.P_lessThan LessThan
+  , binary C.P_ordBoolean C.P_lessThanOrEq LessThanOrEqualTo
+  , binary C.P_ordBoolean C.P_greaterThan GreaterThan
+  , binary C.P_ordBoolean C.P_greaterThanOrEq GreaterThanOrEqualTo
+  , binary C.P_ordChar C.P_lessThan LessThan
+  , binary C.P_ordChar C.P_lessThanOrEq LessThanOrEqualTo
+  , binary C.P_ordChar C.P_greaterThan GreaterThan
+  , binary C.P_ordChar C.P_greaterThanOrEq GreaterThanOrEqualTo
+  , binary C.P_ordInt C.P_lessThan LessThan
+  , binary C.P_ordInt C.P_lessThanOrEq LessThanOrEqualTo
+  , binary C.P_ordInt C.P_greaterThan GreaterThan
+  , binary C.P_ordInt C.P_greaterThanOrEq GreaterThanOrEqualTo
+  , binary C.P_ordNumber C.P_lessThan LessThan
+  , binary C.P_ordNumber C.P_lessThanOrEq LessThanOrEqualTo
+  , binary C.P_ordNumber C.P_greaterThan GreaterThan
+  , binary C.P_ordNumber C.P_greaterThanOrEq GreaterThanOrEqualTo
+  , binary C.P_ordString C.P_lessThan LessThan
+  , binary C.P_ordString C.P_lessThanOrEq LessThanOrEqualTo
+  , binary C.P_ordString C.P_greaterThan GreaterThan
+  , binary C.P_ordString C.P_greaterThanOrEq GreaterThanOrEqualTo
 
-  , binary semigroupString opAppend Add
+  , binary C.P_semigroupString C.P_append Add
 
-  , binary heytingAlgebraBoolean opConj And
-  , binary heytingAlgebraBoolean opDisj Or
-  , unary  heytingAlgebraBoolean opNot Not
+  , binary C.P_heytingAlgebraBoolean C.P_conj And
+  , binary C.P_heytingAlgebraBoolean C.P_disj Or
+  , unary  C.P_heytingAlgebraBoolean C.P_not Not
 
-  , binary' C.dataIntBits C.or BitwiseOr
-  , binary' C.dataIntBits C.and BitwiseAnd
-  , binary' C.dataIntBits C.xor BitwiseXor
-  , binary' C.dataIntBits C.shl ShiftLeft
-  , binary' C.dataIntBits C.shr ShiftRight
-  , binary' C.dataIntBits C.zshr ZeroFillShiftRight
-  , unary'  C.dataIntBits C.complement BitwiseNot
+  , binary' C.P_or BitwiseOr
+  , binary' C.P_and BitwiseAnd
+  , binary' C.P_xor BitwiseXor
+  , binary' C.P_shl ShiftLeft
+  , binary' C.P_shr ShiftRight
+  , binary' C.P_zshr ZeroFillShiftRight
+  , unary'  C.P_complement BitwiseNot
 
-  , inlineNonClassFunction (isModFn (C.dataFunction, C.apply)) $ \f x -> App Nothing f [x]
-  , inlineNonClassFunction (isModFn (C.dataFunction, C.applyFlipped)) $ \x f -> App Nothing f [x]
-  , inlineNonClassFunction (isModFnWithDict (C.dataArray, C.unsafeIndex)) $ flip (Indexer Nothing)
+  , inlineNonClassFunction (isModFnWithDict C.P_unsafeIndex) $ flip (Indexer Nothing)
   ] ++
   [ fn | i <- [0..10], fn <- [ mkFn i, runFn i ] ] ++
-  [ fn | i <- [0..10], fn <- [ mkEffFn C.controlMonadEffUncurried C.mkEffFn i, runEffFn C.controlMonadEffUncurried C.runEffFn i ] ] ++
-  [ fn | i <- [0..10], fn <- [ mkEffFn C.effectUncurried C.mkEffectFn i, runEffFn C.effectUncurried C.runEffectFn i ] ]
+  [ fn | i <- [0..10], fn <- [ mkEffFn C.P_mkEffFn i, runEffFn C.P_runEffFn i ] ] ++
+  [ fn | i <- [0..10], fn <- [ mkEffFn C.P_mkEffectFn i, runEffFn C.P_runEffectFn i ] ] ++
+  [ fn | i <- [0..10], fn <- [ mkEffFn C.P_mkSTFn i, runEffFn C.P_runSTFn i ] ]
   where
-  binary :: (Text, PSString) -> (Text, PSString) -> BinaryOperator -> AST -> AST
-  binary dict fns op = convert where
+  binary :: (ModuleName, PSString) -> (ModuleName, PSString) -> BinaryOperator -> AST -> AST
+  binary dict fn op = convert where
     convert :: AST -> AST
-    convert (App ss (App _ (App _ fn [dict']) [x]) [y]) | isDict dict dict' && isDict fns fn = Binary ss op x y
+    convert (App ss (App _ (expander -> App _ (Ref fn') [Ref dict']) [x]) [y]) | dict == dict', fn == fn' = Binary ss op x y
     convert other = other
-  binary' :: Text -> PSString -> BinaryOperator -> AST -> AST
-  binary' moduleName opString op = convert where
+  binary' :: (ModuleName, PSString) -> BinaryOperator -> AST -> AST
+  binary' fn op = convert where
     convert :: AST -> AST
-    convert (App ss (App _ fn [x]) [y]) | isDict (moduleName, opString) fn = Binary ss op x y
+    convert (App ss (App _ (Ref fn') [x]) [y]) | fn == fn' = Binary ss op x y
     convert other = other
-  unary :: (Text, PSString) -> (Text, PSString) -> UnaryOperator -> AST -> AST
-  unary dicts fns op = convert where
+  unary :: (ModuleName, PSString) -> (ModuleName, PSString) -> UnaryOperator -> AST -> AST
+  unary dict fn op = convert where
     convert :: AST -> AST
-    convert (App ss (App _ fn [dict']) [x]) | isDict dicts dict' && isDict fns fn = Unary ss op x
+    convert (App ss (expander -> App _ (Ref fn') [Ref dict']) [x]) | dict == dict', fn == fn' = Unary ss op x
     convert other = other
-  unary' :: Text -> PSString -> UnaryOperator -> AST -> AST
-  unary' moduleName fnName op = convert where
+  unary' :: (ModuleName, PSString) -> UnaryOperator -> AST -> AST
+  unary' fn op = convert where
     convert :: AST -> AST
-    convert (App ss fn [x]) | isDict (moduleName, fnName) fn = Unary ss op x
+    convert (App ss (Ref fn') [x]) | fn == fn' = Unary ss op x
     convert other = other
 
   mkFn :: Int -> AST -> AST
-  mkFn = mkFn' C.dataFunctionUncurried C.mkFn $ \ss1 ss2 ss3 args js ->
+  mkFn = mkFn' C.P_mkFn $ \ss1 ss2 ss3 args js ->
     Function ss1 Nothing args (Block ss2 [Return ss3 js])
 
-  mkEffFn :: Text -> Text -> Int -> AST -> AST
-  mkEffFn modName fnName = mkFn' modName fnName $ \ss1 ss2 ss3 args js ->
+  mkEffFn :: (ModuleName, PSString) -> Int -> AST -> AST
+  mkEffFn mkFn_ = mkFn' mkFn_ $ \ss1 ss2 ss3 args js ->
     Function ss1 Nothing args (Block ss2 [Return ss3 (App ss3 js [])])
 
-  mkFn' :: Text -> Text -> (Maybe SourceSpan -> Maybe SourceSpan -> Maybe SourceSpan -> [Text] -> AST -> AST) -> Int -> AST -> AST
-  mkFn' modName fnName res 0 = convert where
+  mkFn' :: (ModuleName, PSString) -> (Maybe SourceSpan -> Maybe SourceSpan -> Maybe SourceSpan -> [Text] -> AST -> AST) -> Int -> AST -> AST
+  mkFn' mkFn_ res 0 = convert where
     convert :: AST -> AST
-    convert (App _ mkFnN [Function s1 Nothing [_] (Block s2 [Return s3 js])]) | isNFn modName fnName 0 mkFnN =
+    convert (App _ (Ref mkFnN) [Function s1 Nothing [_] (Block s2 [Return s3 js])]) | isNFn mkFn_ 0 mkFnN =
       res s1 s2 s3 [] js
     convert other = other
-  mkFn' modName fnName res n = convert where
+  mkFn' mkFn_ res n = convert where
     convert :: AST -> AST
-    convert orig@(App ss mkFnN [fn]) | isNFn modName fnName n mkFnN =
+    convert orig@(App ss (Ref mkFnN) [fn]) | isNFn mkFn_ n mkFnN =
       case collectArgs n [] fn of
         Just (args, [Return ss' ret]) -> res ss ss ss' args ret
         _ -> orig
@@ -218,25 +212,23 @@
     collectArgs m acc (Function _ Nothing [oneArg] (Block _ [Return _ ret])) = collectArgs (m - 1) (oneArg : acc) ret
     collectArgs _ _   _ = Nothing
 
-  isNFn :: Text -> Text -> Int -> AST -> Bool
-  isNFn expectMod prefix n (Indexer _ (StringLiteral _ name) (Var _ modName)) | modName == expectMod =
-    name == fromString (T.unpack prefix <> show n)
-  isNFn _ _ _ _ = False
+  isNFn :: (ModuleName, PSString) -> Int -> (ModuleName, PSString) -> Bool
+  isNFn prefix n fn = fmap (<> mkString (T.pack $ show n)) prefix == fn
 
   runFn :: Int -> AST -> AST
-  runFn = runFn' C.dataFunctionUncurried C.runFn App
+  runFn = runFn' C.P_runFn App
 
-  runEffFn :: Text -> Text -> Int -> AST -> AST
-  runEffFn modName fnName = runFn' modName fnName $ \ss fn acc ->
+  runEffFn :: (ModuleName, PSString) -> Int -> AST -> AST
+  runEffFn runFn_ = runFn' runFn_ $ \ss fn acc ->
     Function ss Nothing [] (Block ss [Return ss (App ss fn acc)])
 
-  runFn' :: Text -> Text -> (Maybe SourceSpan -> AST -> [AST] -> AST) -> Int -> AST -> AST
-  runFn' modName runFnName res n = convert where
+  runFn' :: (ModuleName, PSString) -> (Maybe SourceSpan -> AST -> [AST] -> AST) -> Int -> AST -> AST
+  runFn' runFn_ res n = convert where
     convert :: AST -> AST
     convert js = fromMaybe js $ go n [] js
 
     go :: Int -> [AST] -> AST -> Maybe AST
-    go 0 acc (App ss runFnN [fn]) | isNFn modName runFnName n runFnN && length acc == n =
+    go 0 acc (App ss (Ref runFnN) [fn]) | isNFn runFn_ n runFnN && length acc == n =
       Just $ res ss fn acc
     go m acc (App _ lhs [arg]) = go (m - 1) (arg : acc) lhs
     go _ _   _ = Nothing
@@ -247,32 +239,27 @@
     convert (App _ (App _ op' [x]) [y]) | p op' = f x y
     convert other = other
 
-  isModFn :: (Text, PSString) -> AST -> Bool
-  isModFn (m, op) (Indexer _ (StringLiteral _ op') (Var _ m')) =
-    m == m' && op == op'
-  isModFn _ _ = False
-
-  isModFnWithDict :: (Text, PSString) -> AST -> Bool
-  isModFnWithDict (m, op) (App _ (Indexer _ (StringLiteral _ op') (Var _ m')) [Var _ _]) =
-    m == m' && op == op'
+  isModFnWithDict :: (ModuleName, PSString) -> AST -> Bool
+  isModFnWithDict fn (App _ (Ref fn') [Var _ _]) = fn == fn'
   isModFnWithDict _ _ = False
 
 -- (f <<< g $ x) = f (g x)
 -- (f <<< g)     = \x -> f (g x)
-inlineFnComposition :: forall m. MonadSupply m => AST -> m AST
-inlineFnComposition = everywhereTopDownM convert where
+inlineFnComposition :: forall m. MonadSupply m => (AST -> AST) -> AST -> m AST
+inlineFnComposition expander = everywhereTopDownM convert
+  where
   convert :: AST -> m AST
-  convert (App s1 (App s2 (App _ (App _ fn [dict']) [x]) [y]) [z])
-    | isFnCompose dict' fn = return $ App s1 x [App s2 y [z]]
-    | isFnComposeFlipped dict' fn = return $ App s2 y [App s1 x [z]]
-  convert app@(App ss (App _ (App _ fn [dict']) _) _)
-    | isFnCompose dict' fn || isFnComposeFlipped dict' fn = mkApps ss <$> goApps app <*> freshName
+  convert (App s1 (App s2 (App _ (expander -> App _ (Ref fn) [Ref C.P_semigroupoidFn]) [x]) [y]) [z])
+    | C.P_compose <- fn = return $ App s1 x [App s2 y [z]]
+    | C.P_composeFlipped <- fn = return $ App s2 y [App s1 x [z]]
+  convert app@(App ss (App _ (expander -> App _ (Ref fn) [Ref C.P_semigroupoidFn]) _) _)
+    | fn `elem` [C.P_compose, C.P_composeFlipped] = mkApps ss <$> goApps app <*> freshName
   convert other = return other
 
   mkApps :: Maybe SourceSpan -> [Either AST (Text, AST)] -> Text -> AST
   mkApps ss fns a = App ss (Function ss Nothing [] (Block ss $ vars <> [Return Nothing comp])) []
     where
-    vars = uncurry (VariableIntroduction ss) . fmap Just <$> rights fns
+    vars = uncurry (VariableIntroduction ss) . fmap (Just . (UnknownEffects, )) <$> rights fns
     comp = Function ss Nothing [a] (Block ss [Return Nothing apps])
     apps = foldr (\fn acc -> App ss (mkApp fn) [acc]) (Var ss a) fns
 
@@ -280,138 +267,28 @@
   mkApp = either id $ \(name, arg) -> Var (getSourceSpan arg) name
 
   goApps :: AST -> m [Either AST (Text, AST)]
-  goApps (App _ (App _ (App _ fn [dict']) [x]) [y])
-    | isFnCompose dict' fn = mappend <$> goApps x <*> goApps y
-    | isFnComposeFlipped dict' fn = mappend <$> goApps y <*> goApps x
-  goApps app@(App {}) = pure . Right . (,app) <$> freshName
+  goApps (App _ (App _ (expander -> App _ (Ref fn) [Ref C.P_semigroupoidFn]) [x]) [y])
+    | C.P_compose <- fn = mappend <$> goApps x <*> goApps y
+    | C.P_composeFlipped <- fn = mappend <$> goApps y <*> goApps x
+  goApps app@App {} = pure . Right . (,app) <$> freshName
   goApps other = pure [Left other]
 
-  isFnCompose :: AST -> AST -> Bool
-  isFnCompose dict' fn = isDict semigroupoidFn dict' && isDict fnCompose fn
-
-  isFnComposeFlipped :: AST -> AST -> Bool
-  isFnComposeFlipped dict' fn = isDict semigroupoidFn dict' && isDict fnComposeFlipped fn
-
-  fnCompose :: forall a b. (IsString a, IsString b) => (a, b)
-  fnCompose = (C.controlSemigroupoid, C.compose)
-
-  fnComposeFlipped :: forall a b. (IsString a, IsString b) => (a, b)
-  fnComposeFlipped = (C.controlSemigroupoid, C.composeFlipped)
+inlineFnIdentity :: (AST -> AST) -> AST -> AST
+inlineFnIdentity expander = everywhereTopDown convert
+  where
+  convert :: AST -> AST
+  convert (App _ (expander -> App _ (Ref C.P_identity) [Ref C.P_categoryFn]) [x]) = x
+  convert other = other
 
 inlineUnsafeCoerce :: AST -> AST
 inlineUnsafeCoerce = everywhereTopDown convert where
-  convert (App _ (Indexer _ (StringLiteral _ unsafeCoerceFn) (Var _ unsafeCoerce)) [ comp ])
-    | unsafeCoerceFn == C.unsafeCoerceFn && unsafeCoerce == C.unsafeCoerce
-    = comp
+  convert (App _ (Ref C.P_unsafeCoerce) [ comp ]) = comp
   convert other = other
 
 inlineUnsafePartial :: AST -> AST
 inlineUnsafePartial = everywhereTopDown convert where
-  convert (App ss (Indexer _ (StringLiteral _ unsafePartial) (Var _ partialUnsafe)) [ comp ])
-    | unsafePartial == C.unsafePartial && partialUnsafe == C.partialUnsafe
+  convert (App ss (Ref C.P_unsafePartial) [ comp ])
     -- Apply to undefined here, the application should be optimized away
     -- if it is safe to do so
-    = App ss comp [ Var ss C.undefined ]
+    = App ss comp [ Var ss C.S_undefined ]
   convert other = other
-
-semiringNumber :: forall a b. (IsString a, IsString b) => (a, b)
-semiringNumber = (C.dataSemiring, C.semiringNumber)
-
-semiringInt :: forall a b. (IsString a, IsString b) => (a, b)
-semiringInt = (C.dataSemiring, C.semiringInt)
-
-ringNumber :: forall a b. (IsString a, IsString b) => (a, b)
-ringNumber = (C.dataRing, C.ringNumber)
-
-ringInt :: forall a b. (IsString a, IsString b) => (a, b)
-ringInt = (C.dataRing, C.ringInt)
-
-euclideanRingNumber :: forall a b. (IsString a, IsString b) => (a, b)
-euclideanRingNumber = (C.dataEuclideanRing, C.euclideanRingNumber)
-
-eqNumber :: forall a b. (IsString a, IsString b) => (a, b)
-eqNumber = (C.dataEq, C.eqNumber)
-
-eqInt :: forall a b. (IsString a, IsString b) => (a, b)
-eqInt = (C.dataEq, C.eqInt)
-
-eqString :: forall a b. (IsString a, IsString b) => (a, b)
-eqString = (C.dataEq, C.eqString)
-
-eqChar :: forall a b. (IsString a, IsString b) => (a, b)
-eqChar = (C.dataEq, C.eqChar)
-
-eqBoolean :: forall a b. (IsString a, IsString b) => (a, b)
-eqBoolean = (C.dataEq, C.eqBoolean)
-
-ordBoolean :: forall a b. (IsString a, IsString b) => (a, b)
-ordBoolean = (C.dataOrd, C.ordBoolean)
-
-ordNumber :: forall a b. (IsString a, IsString b) => (a, b)
-ordNumber = (C.dataOrd, C.ordNumber)
-
-ordInt :: forall a b. (IsString a, IsString b) => (a, b)
-ordInt = (C.dataOrd, C.ordInt)
-
-ordString :: forall a b. (IsString a, IsString b) => (a, b)
-ordString = (C.dataOrd, C.ordString)
-
-ordChar :: forall a b. (IsString a, IsString b) => (a, b)
-ordChar = (C.dataOrd, C.ordChar)
-
-semigroupString :: forall a b. (IsString a, IsString b) => (a, b)
-semigroupString = (C.dataSemigroup, C.semigroupString)
-
-boundedBoolean :: forall a b. (IsString a, IsString b) => (a, b)
-boundedBoolean = (C.dataBounded, C.boundedBoolean)
-
-heytingAlgebraBoolean :: forall a b. (IsString a, IsString b) => (a, b)
-heytingAlgebraBoolean = (C.dataHeytingAlgebra, C.heytingAlgebraBoolean)
-
-semigroupoidFn :: forall a b. (IsString a, IsString b) => (a, b)
-semigroupoidFn = (C.controlSemigroupoid, C.semigroupoidFn)
-
-opAdd :: forall a b. (IsString a, IsString b) => (a, b)
-opAdd = (C.dataSemiring, C.add)
-
-opMul :: forall a b. (IsString a, IsString b) => (a, b)
-opMul = (C.dataSemiring, C.mul)
-
-opEq :: forall a b. (IsString a, IsString b) => (a, b)
-opEq = (C.dataEq, C.eq)
-
-opNotEq :: forall a b. (IsString a, IsString b) => (a, b)
-opNotEq = (C.dataEq, C.notEq)
-
-opLessThan :: forall a b. (IsString a, IsString b) => (a, b)
-opLessThan = (C.dataOrd, C.lessThan)
-
-opLessThanOrEq :: forall a b. (IsString a, IsString b) => (a, b)
-opLessThanOrEq = (C.dataOrd, C.lessThanOrEq)
-
-opGreaterThan :: forall a b. (IsString a, IsString b) => (a, b)
-opGreaterThan = (C.dataOrd, C.greaterThan)
-
-opGreaterThanOrEq :: forall a b. (IsString a, IsString b) => (a, b)
-opGreaterThanOrEq = (C.dataOrd, C.greaterThanOrEq)
-
-opAppend :: forall a b. (IsString a, IsString b) => (a, b)
-opAppend = (C.dataSemigroup, C.append)
-
-opSub :: forall a b. (IsString a, IsString b) => (a, b)
-opSub = (C.dataRing, C.sub)
-
-opNegate :: forall a b. (IsString a, IsString b) => (a, b)
-opNegate = (C.dataRing, C.negate)
-
-opDiv :: forall a b. (IsString a, IsString b) => (a, b)
-opDiv = (C.dataEuclideanRing, C.div)
-
-opConj :: forall a b. (IsString a, IsString b) => (a, b)
-opConj = (C.dataHeytingAlgebra, C.conj)
-
-opDisj :: forall a b. (IsString a, IsString b) => (a, b)
-opDisj = (C.dataHeytingAlgebra, C.disj)
-
-opNot :: forall a b. (IsString a, IsString b) => (a, b)
-opNot = (C.dataHeytingAlgebra, C.not)
diff --git a/src/Language/PureScript/CoreImp/Optimizer/MagicDo.hs b/src/Language/PureScript/CoreImp/Optimizer/MagicDo.hs
--- a/src/Language/PureScript/CoreImp/Optimizer/MagicDo.hs
+++ b/src/Language/PureScript/CoreImp/Optimizer/MagicDo.hs
@@ -2,16 +2,16 @@
 -- and bind for the Eff monad, as well as some of its actions.
 module Language.PureScript.CoreImp.Optimizer.MagicDo (magicDoEffect, magicDoEff, magicDoST, inlineST) where
 
-import Prelude.Compat
+import Prelude
 import Protolude (ordNub)
 
 import Data.Maybe (fromJust, isJust)
-import Data.Text (Text)
 
-import Language.PureScript.CoreImp.AST
-import Language.PureScript.CoreImp.Optimizer.Common
+import Language.PureScript.CoreImp.AST (AST(..), InitializerEffects(..), UnaryOperator(..), everything, everywhere, everywhereTopDown)
+import Language.PureScript.CoreImp.Optimizer.Common (pattern Ref)
+import Language.PureScript.Names (ModuleName)
 import Language.PureScript.PSString (mkString)
-import qualified Language.PureScript.Constants as C
+import Language.PureScript.Constants.Libs qualified as C
 
 -- | Inline type class dictionaries for >>= and return for the Eff monad
 --
@@ -27,17 +27,17 @@
 --    var x = m1();
 --    ...
 --  }
-magicDoEff :: AST -> AST
-magicDoEff = magicDo C.eff C.effDictionaries
+magicDoEff :: (AST -> AST) -> AST -> AST
+magicDoEff = magicDo C.M_Control_Monad_Eff C.effDictionaries
 
-magicDoEffect :: AST -> AST
-magicDoEffect = magicDo C.effect C.effectDictionaries
+magicDoEffect :: (AST -> AST) -> AST -> AST
+magicDoEffect = magicDo C.M_Effect C.effectDictionaries
 
-magicDoST :: AST -> AST
-magicDoST = magicDo C.st C.stDictionaries
+magicDoST :: (AST -> AST) -> AST -> AST
+magicDoST = magicDo C.M_Control_Monad_ST_Internal C.stDictionaries
 
-magicDo :: Text -> C.EffectDictionaries -> AST -> AST
-magicDo effectModule C.EffectDictionaries{..} = everywhereTopDown convert
+magicDo :: ModuleName -> C.EffectDictionaries -> (AST -> AST) -> AST -> AST
+magicDo effectModule C.EffectDictionaries{..} expander = everywhereTopDown convert
   where
   -- The name of the function block which is added to denote a do block
   fnName = "__do"
@@ -48,9 +48,13 @@
   -- Desugar discard
   convert (App _ (App _ bind [m]) [Function s1 Nothing [] (Block s2 js)]) | isDiscard bind =
     Function s1 (Just fnName) [] $ Block s2 (App s2 m [] : map applyReturns js )
+  -- Desugar bind to wildcard
+  convert (App _ (App _ bind [m]) [Function s1 Nothing [] (Block s2 js)])
+    | isBind bind =
+    Function s1 (Just fnName) [] $ Block s2 (App s2 m [] : map applyReturns js )
   -- Desugar bind
   convert (App _ (App _ bind [m]) [Function s1 Nothing [arg] (Block s2 js)]) | isBind bind =
-    Function s1 (Just fnName) [] $ Block s2 (VariableIntroduction s2 arg (Just (App s2 m [])) : map applyReturns js)
+    Function s1 (Just fnName) [] $ Block s2 (VariableIntroduction s2 arg (Just (UnknownEffects, App s2 m [])) : map applyReturns js)
   -- Desugar untilE
   convert (App s1 (App _ f [arg]) []) | isEffFunc edUntil f =
     App s1 (Function s1 Nothing [] (Block s1 [ While s1 (Unary s1 Not (App s1 arg [])) (Block s1 []), Return s1 $ ObjectLiteral s1 []])) []
@@ -64,25 +68,16 @@
     App s1 (Function s2 Nothing [] (Block ss (applyReturns `fmap` body))) []
   convert other = other
   -- Check if an expression represents a monomorphic call to >>= for the Eff monad
-  isBind (App _ fn [dict]) | isDict (effectModule, edBindDict) dict && isBindPoly fn = True
+  isBind (expander -> App _ (Ref C.P_bind) [Ref dict]) = (effectModule, edBindDict) == dict
   isBind _ = False
   -- Check if an expression represents a call to @discard@
-  isDiscard (App _ (App _ fn [dict1]) [dict2])
-    | isDict (C.controlBind, C.discardUnitDictionary) dict1 &&
-      isDict (effectModule, edBindDict) dict2 &&
-      isDiscardPoly fn = True
+  isDiscard (expander -> App _ (expander -> App _ (Ref C.P_discard) [Ref C.P_discardUnit]) [Ref dict]) = (effectModule, edBindDict) == dict
   isDiscard _ = False
   -- Check if an expression represents a monomorphic call to pure or return for the Eff applicative
-  isPure (App _ fn [dict]) | isDict (effectModule, edApplicativeDict) dict && isPurePoly fn = True
+  isPure (expander -> App _ (Ref C.P_pure) [Ref dict]) = (effectModule, edApplicativeDict) == dict
   isPure _ = False
-  -- Check if an expression represents the polymorphic >>= function
-  isBindPoly = isDict (C.controlBind, C.bind)
-  -- Check if an expression represents the polymorphic pure function
-  isPurePoly = isDict (C.controlApplicative, C.pure')
-  -- Check if an expression represents the polymorphic discard function
-  isDiscardPoly = isDict (C.controlBind, C.discard)
   -- Check if an expression represents a function in the Effect module
-  isEffFunc name (Indexer _ (StringLiteral _ name') (Var _ eff)) = eff == effectModule && name == name'
+  isEffFunc name (Ref fn) = (effectModule, name) == fn
   isEffFunc _ _ = False
 
   applyReturns :: AST -> AST
@@ -98,10 +93,10 @@
 inlineST :: AST -> AST
 inlineST = everywhere convertBlock
   where
-  -- Look for runST blocks and inline the STRefs there.
-  -- If all STRefs are used in the scope of the same runST, only using { read, write, modify }STRef then
+  -- Look for run blocks and inline the STRefs there.
+  -- If all STRefs are used in the scope of the same run, only using { read, write, modify } then
   -- we can be more aggressive about inlining, and actually turn STRefs into local variables.
-  convertBlock (App s1 f [arg]) | isSTFunc C.runST f =
+  convertBlock (App s1 (Ref C.P_run) [arg]) =
     let refs = ordNub . findSTRefsIn $ arg
         usages = findAllSTUsagesIn arg
         allUsagesAreLocalVars = all (\u -> let v = toVar u in isJust v && fromJust v `elem` refs) usages
@@ -111,28 +106,25 @@
   -- Convert a block in a safe way, preserving object wrappers of references,
   -- or in a more aggressive way, turning wrappers into local variables depending on the
   -- agg(ressive) parameter.
-  convert agg (App s1 f [arg]) | isSTFunc C.newSTRef f =
+  convert agg (App s1 (Ref C.P_new) [arg]) =
    Function s1 Nothing [] (Block s1 [Return s1 $ if agg then arg else ObjectLiteral s1 [(mkString C.stRefValue, arg)]])
-  convert agg (App _ (App s1 f [ref]) []) | isSTFunc C.readSTRef f =
+  convert agg (App _ (App s1 (Ref C.P_read) [ref]) []) =
     if agg then ref else Indexer s1 (StringLiteral s1 C.stRefValue) ref
-  convert agg (App _ (App _ (App s1 f [arg]) [ref]) []) | isSTFunc C.writeSTRef f =
+  convert agg (App _ (App _ (App s1 (Ref C.P_write) [arg]) [ref]) []) =
     if agg then Assignment s1 ref arg else Assignment s1 (Indexer s1 (StringLiteral s1 C.stRefValue) ref) arg
-  convert agg (App _ (App _ (App s1 f [func]) [ref]) []) | isSTFunc C.modifySTRef f =
+  convert agg (App _ (App _ (App s1 (Ref C.P_modify) [func]) [ref]) []) =
     if agg then Assignment s1 ref (App s1 func [ref]) else Assignment s1 (Indexer s1 (StringLiteral s1 C.stRefValue) ref) (App s1 func [Indexer s1 (StringLiteral s1 C.stRefValue) ref])
   convert _ other = other
-  -- Check if an expression represents a function in the ST module
-  isSTFunc name (Indexer _ (StringLiteral _ name') (Var _ st)) = st == C.st && name == name'
-  isSTFunc _ _ = False
   -- Find all ST Refs initialized in this block
   findSTRefsIn = everything (++) isSTRef
     where
-    isSTRef (VariableIntroduction _ ident (Just (App _ (App _ f [_]) []))) | isSTFunc C.newSTRef f = [ident]
+    isSTRef (VariableIntroduction _ ident (Just (_, App _ (App _ (Ref C.P_new) [_]) []))) = [ident]
     isSTRef _ = []
-  -- Find all STRefs used as arguments to readSTRef, writeSTRef, modifySTRef
+  -- Find all STRefs used as arguments to read, write, modify
   findAllSTUsagesIn = everything (++) isSTUsage
     where
-    isSTUsage (App _ (App _ f [ref]) []) | isSTFunc C.readSTRef f = [ref]
-    isSTUsage (App _ (App _ (App _ f [_]) [ref]) []) | isSTFunc C.writeSTRef f || isSTFunc C.modifySTRef f = [ref]
+    isSTUsage (App _ (App _ (Ref C.P_read) [ref]) []) = [ref]
+    isSTUsage (App _ (App _ (App _ (Ref f) [_]) [ref]) []) | f `elem` [C.P_write, C.P_modify] = [ref]
     isSTUsage _ = []
   -- Find all uses of a variable
   appearingIn ref = everything (++) isVar
diff --git a/src/Language/PureScript/CoreImp/Optimizer/TCO.hs b/src/Language/PureScript/CoreImp/Optimizer/TCO.hs
--- a/src/Language/PureScript/CoreImp/Optimizer/TCO.hs
+++ b/src/Language/PureScript/CoreImp/Optimizer/TCO.hs
@@ -1,24 +1,30 @@
 -- | This module implements tail call elimination.
 module Language.PureScript.CoreImp.Optimizer.TCO (tco) where
 
-import Prelude.Compat
+import Prelude
 
-import Data.Text (Text)
-import Language.PureScript.CoreImp.AST
+import Control.Applicative (empty, liftA2)
+import Control.Monad (guard)
+import Control.Monad.State (State, evalState, get, modify)
+import Data.Functor (($>), (<&>))
+import Data.Set qualified as S
+import Data.Text (Text, pack)
+import Language.PureScript.CoreImp.AST (AST(..), InitializerEffects(..), UnaryOperator(..), everything, everywhereTopDownM)
 import Language.PureScript.AST.SourcePos (SourceSpan)
 import Safe (headDef, tailSafe)
 
 -- | Eliminate tail calls
 tco :: AST -> AST
-tco = everywhere convert where
+tco = flip evalState 0 . everywhereTopDownM convert where
   tcoVar :: Text -> Text
   tcoVar arg = "$tco_var_" <> arg
 
   copyVar :: Text -> Text
   copyVar arg = "$copy_" <> arg
 
-  tcoDone :: Text
-  tcoDone = "$tco_done"
+  tcoDoneM :: State Int Text
+  tcoDoneM = get <&> \count -> "$tco_done" <>
+    if count == 0 then "" else pack . show $ count
 
   tcoLoop :: Text
   tcoLoop = "$tco_loop"
@@ -26,104 +32,160 @@
   tcoResult :: Text
   tcoResult = "$tco_result"
 
-  convert :: AST -> AST
-  convert (VariableIntroduction ss name (Just fn@Function {}))
-      | isTailRecursive name body'
-      = VariableIntroduction ss name (Just (replace (toLoop name outerArgs innerArgs body')))
+  convert :: AST -> State Int AST
+  convert (VariableIntroduction ss name (Just (p, fn@Function {})))
+      | Just trFns <- findTailRecursiveFns name arity body'
+      = VariableIntroduction ss name . Just . (p,) . replace <$> toLoop trFns name arity outerArgs innerArgs body'
     where
       innerArgs = headDef [] argss
       outerArgs = concat . reverse $ tailSafe argss
-      (argss, body', replace) = collectAllFunctionArgs [] id fn
-  convert js = js
+      arity = length argss
+        -- this is the number of calls, not the number of arguments, if there's
+        -- ever a practical difference.
+      (argss, body', replace) = topCollectAllFunctionArgs [] id fn
+  convert js = pure js
 
-  collectAllFunctionArgs :: [[Text]] -> (AST -> AST) -> AST -> ([[Text]], AST, AST -> AST)
-  collectAllFunctionArgs allArgs f (Function s1 ident args (Block s2 (body@(Return _ _):_))) =
-    collectAllFunctionArgs (args : allArgs) (\b -> f (Function s1 ident (map copyVar args) (Block s2 [b]))) body
-  collectAllFunctionArgs allArgs f (Function ss ident args body@(Block _ _)) =
-    (args : allArgs, body, f . Function ss ident (map copyVar args))
-  collectAllFunctionArgs allArgs f (Return s1 (Function s2 ident args (Block s3 [body]))) =
-    collectAllFunctionArgs (args : allArgs) (\b -> f (Return s1 (Function s2 ident (map copyVar args) (Block s3 [b])))) body
-  collectAllFunctionArgs allArgs f (Return s1 (Function s2 ident args body@(Block _ _))) =
-    (args : allArgs, body, f . Return s1 . Function s2 ident (map copyVar args))
-  collectAllFunctionArgs allArgs f body = (allArgs, body, f)
+  rewriteFunctionsWith :: ([Text] -> [Text]) -> [[Text]] -> (AST -> AST) -> AST -> ([[Text]], AST, AST -> AST)
+  rewriteFunctionsWith argMapper = collectAllFunctionArgs
+    where
+    collectAllFunctionArgs allArgs f (Function s1 ident args (Block s2 (body@(Return _ _):_))) =
+      collectAllFunctionArgs (args : allArgs) (\b -> f (Function s1 ident (argMapper args) (Block s2 [b]))) body
+    collectAllFunctionArgs allArgs f (Function ss ident args body@(Block _ _)) =
+      (args : allArgs, body, f . Function ss ident (argMapper args))
+    collectAllFunctionArgs allArgs f (Return s1 (Function s2 ident args (Block s3 [body]))) =
+      collectAllFunctionArgs (args : allArgs) (\b -> f (Return s1 (Function s2 ident (argMapper args) (Block s3 [b])))) body
+    collectAllFunctionArgs allArgs f (Return s1 (Function s2 ident args body@(Block _ _))) =
+      (args : allArgs, body, f . Return s1 . Function s2 ident (argMapper args))
+    collectAllFunctionArgs allArgs f body = (allArgs, body, f)
 
-  isTailRecursive :: Text -> AST -> Bool
-  isTailRecursive ident js = countSelfReferences js > 0 && allInTailPosition js where
-    countSelfReferences = everything (+) match where
-      match :: AST -> Int
-      match (Var _ ident') | ident == ident' = 1
-      match _ = 0
+  topCollectAllFunctionArgs :: [[Text]] -> (AST -> AST) -> AST -> ([[Text]], AST, AST -> AST)
+  topCollectAllFunctionArgs = rewriteFunctionsWith (map copyVar)
 
+  innerCollectAllFunctionArgs :: [[Text]] -> (AST -> AST) -> AST -> ([[Text]], AST, AST -> AST)
+  innerCollectAllFunctionArgs = rewriteFunctionsWith id
+
+  countReferences :: Text -> AST -> Int
+  countReferences ident = everything (+) match where
+    match :: AST -> Int
+    match (Var _ ident') | ident == ident' = 1
+    match _ = 0
+
+  -- If `ident` is a tail-recursive function, returns a set of identifiers
+  -- that are locally bound to functions participating in the tail recursion.
+  -- Otherwise, returns Nothing.
+  findTailRecursiveFns :: Text -> Int -> AST -> Maybe (S.Set Text)
+  findTailRecursiveFns ident arity js = guard (countReferences ident js > 0) *> go (S.empty, S.singleton (ident, arity))
+    where
+
+    go :: (S.Set Text, S.Set (Text, Int)) -> Maybe (S.Set Text)
+    go (known, required) =
+      case S.minView required of
+        Just (r, required') -> do
+          required'' <- findTailPositionDeps r js
+          go (S.insert (fst r) known, required' <> S.filter (not . (`S.member` known) . fst) required'')
+        Nothing ->
+          pure known
+
+  -- Returns set of identifiers (with their arities) that need to be used
+  -- exclusively in tail calls using their full arity in order for this
+  -- identifier to be considered in tail position (or Nothing if this
+  -- identifier is used somewhere not as a tail call with full arity).
+  findTailPositionDeps :: (Text, Int) -> AST -> Maybe (S.Set (Text, Int))
+  findTailPositionDeps (ident, arity) = allInTailPosition where
+    countSelfReferences = countReferences ident
+
     allInTailPosition (Return _ expr)
-      | isSelfCall ident expr = countSelfReferences expr == 1
-      | otherwise = countSelfReferences expr == 0
+      | isSelfCall ident arity expr = guard (countSelfReferences expr == 1) $> S.empty
+      | otherwise = guard (countSelfReferences expr == 0) $> S.empty
     allInTailPosition (While _ js1 body)
-      = countSelfReferences js1 == 0 && allInTailPosition body
+      = guard (countSelfReferences js1 == 0) *> allInTailPosition body
     allInTailPosition (For _ _ js1 js2 body)
-      = countSelfReferences js1 == 0 && countSelfReferences js2 == 0 && allInTailPosition body
+      = guard (countSelfReferences js1 == 0 && countSelfReferences js2 == 0) *> allInTailPosition body
     allInTailPosition (ForIn _ _ js1 body)
-      = countSelfReferences js1 == 0 && allInTailPosition body
+      = guard (countSelfReferences js1 == 0) *> allInTailPosition body
     allInTailPosition (IfElse _ js1 body el)
-      = countSelfReferences js1 == 0 && allInTailPosition body && all allInTailPosition el
+      = guard (countSelfReferences js1 == 0) *> liftA2 mappend (allInTailPosition body) (foldMapA allInTailPosition el)
     allInTailPosition (Block _ body)
-      = all allInTailPosition body
+      = foldMapA allInTailPosition body
     allInTailPosition (Throw _ js1)
-      = countSelfReferences js1 == 0
+      = guard (countSelfReferences js1 == 0) $> S.empty
     allInTailPosition (ReturnNoResult _)
-      = True
-    allInTailPosition (VariableIntroduction _ _ js1)
-      = all ((== 0) . countSelfReferences) js1
+      = pure S.empty
+    allInTailPosition (VariableIntroduction _ _ Nothing)
+      = pure S.empty
+    allInTailPosition (VariableIntroduction _ ident' (Just (_, js1)))
+      | countSelfReferences js1 == 0 = pure S.empty
+      | Function _ Nothing _ _ <- js1
+      , (argss, body, _) <- innerCollectAllFunctionArgs [] id js1
+        = S.insert (ident', length argss) <$> allInTailPosition body
+      | otherwise = empty
     allInTailPosition (Assignment _ _ js1)
-      = countSelfReferences js1 == 0
-    allInTailPosition (Comment _ _ js1)
+      = guard (countSelfReferences js1 == 0) $> S.empty
+    allInTailPosition (Comment _ js1)
       = allInTailPosition js1
     allInTailPosition _
-      = False
+      = empty
 
-  toLoop :: Text -> [Text] -> [Text] -> AST -> AST
-  toLoop ident outerArgs innerArgs js =
-      Block rootSS $
-        map (\arg -> VariableIntroduction rootSS (tcoVar arg) (Just (Var rootSS (copyVar arg)))) outerArgs ++
-        [ VariableIntroduction rootSS tcoDone (Just (BooleanLiteral rootSS False))
+  toLoop :: S.Set Text -> Text -> Int -> [Text] -> [Text] -> AST -> State Int AST
+  toLoop trFns ident arity outerArgs innerArgs js = do
+    tcoDone <- tcoDoneM
+    modify (+ 1)
+
+    let
+      markDone :: Maybe SourceSpan -> AST
+      markDone ss = Assignment ss (Var ss tcoDone) (BooleanLiteral ss True)
+
+      loopify :: AST -> AST
+      loopify (Return ss ret)
+        | isSelfCall ident arity ret =
+          let
+            allArgumentValues = concat $ collectArgs [] ret
+          in
+            Block ss $
+              zipWith (\val arg ->
+                Assignment ss (Var ss (tcoVar arg)) val) allArgumentValues outerArgs
+              ++ zipWith (\val arg ->
+                Assignment ss (Var ss (copyVar arg)) val) (drop (length outerArgs) allArgumentValues) innerArgs
+              ++ [ ReturnNoResult ss ]
+        | isIndirectSelfCall ret = Return ss ret
+        | otherwise = Block ss [ markDone ss, Return ss ret ]
+      loopify (ReturnNoResult ss) = Block ss [ markDone ss, ReturnNoResult ss ]
+      loopify (While ss cond body) = While ss cond (loopify body)
+      loopify (For ss i js1 js2 body) = For ss i js1 js2 (loopify body)
+      loopify (ForIn ss i js1 body) = ForIn ss i js1 (loopify body)
+      loopify (IfElse ss cond body el) = IfElse ss cond (loopify body) (fmap loopify el)
+      loopify (Block ss body) = Block ss (map loopify body)
+      loopify (VariableIntroduction ss f (Just (p, fn@(Function _ Nothing _ _))))
+        | (_, body, replace) <- innerCollectAllFunctionArgs [] id fn
+        , f `S.member` trFns = VariableIntroduction ss f (Just (p, replace (loopify body)))
+      loopify other = other
+
+    pure $ Block rootSS $
+        map (\arg -> VariableIntroduction rootSS (tcoVar arg) (Just (UnknownEffects, Var rootSS (copyVar arg)))) outerArgs ++
+        [ VariableIntroduction rootSS tcoDone (Just (UnknownEffects, BooleanLiteral rootSS False))
         , VariableIntroduction rootSS tcoResult Nothing
         , Function rootSS (Just tcoLoop) (outerArgs ++ innerArgs) (Block rootSS [loopify js])
         , While rootSS (Unary rootSS Not (Var rootSS tcoDone))
             (Block rootSS
-              [(Assignment rootSS (Var rootSS tcoResult) (App rootSS (Var rootSS tcoLoop) ((map (Var rootSS . tcoVar) outerArgs) ++ (map (Var rootSS . copyVar) innerArgs))))])
+              [Assignment rootSS (Var rootSS tcoResult) (App rootSS (Var rootSS tcoLoop) (map (Var rootSS . tcoVar) outerArgs ++ map (Var rootSS . copyVar) innerArgs))])
         , Return rootSS (Var rootSS tcoResult)
         ]
     where
     rootSS = Nothing
 
-    loopify :: AST -> AST
-    loopify (Return ss ret)
-      | isSelfCall ident ret =
-        let
-          allArgumentValues = concat $ collectArgs [] ret
-        in
-          Block ss $
-            zipWith (\val arg ->
-              Assignment ss (Var ss (tcoVar arg)) val) allArgumentValues outerArgs
-            ++ zipWith (\val arg ->
-              Assignment ss (Var ss (copyVar arg)) val) (drop (length outerArgs) allArgumentValues) innerArgs
-            ++ [ ReturnNoResult ss ]
-      | otherwise = Block ss [ markDone ss, Return ss ret ]
-    loopify (ReturnNoResult ss) = Block ss [ markDone ss, ReturnNoResult ss ]
-    loopify (While ss cond body) = While ss cond (loopify body)
-    loopify (For ss i js1 js2 body) = For ss i js1 js2 (loopify body)
-    loopify (ForIn ss i js1 body) = ForIn ss i js1 (loopify body)
-    loopify (IfElse ss cond body el) = IfElse ss cond (loopify body) (fmap loopify el)
-    loopify (Block ss body) = Block ss (map loopify body)
-    loopify other = other
-
-    markDone :: Maybe SourceSpan -> AST
-    markDone ss = Assignment ss (Var ss tcoDone) (BooleanLiteral ss True)
-
     collectArgs :: [[AST]] -> AST -> [[AST]]
     collectArgs acc (App _ fn args') = collectArgs (args' : acc) fn
     collectArgs acc _ = acc
 
-  isSelfCall :: Text -> AST -> Bool
-  isSelfCall ident (App _ (Var _ ident') _) = ident == ident'
-  isSelfCall ident (App _ fn _) = isSelfCall ident fn
-  isSelfCall _ _ = False
+    isIndirectSelfCall :: AST -> Bool
+    isIndirectSelfCall (App _ (Var _ ident') _) = ident' `S.member` trFns
+    isIndirectSelfCall (App _ fn _) = isIndirectSelfCall fn
+    isIndirectSelfCall _ = False
+
+  isSelfCall :: Text -> Int -> AST -> Bool
+  isSelfCall ident 1 (App _ (Var _ ident') _) = ident == ident'
+  isSelfCall ident arity (App _ fn _) = isSelfCall ident (arity - 1) fn
+  isSelfCall _ _ _ = False
+
+foldMapA :: (Applicative f, Monoid w, Foldable t) => (a -> f w) -> t a -> f w
+foldMapA f = foldr (liftA2 mappend . f) (pure mempty)
diff --git a/src/Language/PureScript/CoreImp/Optimizer/Unused.hs b/src/Language/PureScript/CoreImp/Optimizer/Unused.hs
--- a/src/Language/PureScript/CoreImp/Optimizer/Unused.hs
+++ b/src/Language/PureScript/CoreImp/Optimizer/Unused.hs
@@ -2,20 +2,29 @@
 module Language.PureScript.CoreImp.Optimizer.Unused
   ( removeCodeAfterReturnStatements
   , removeUndefinedApp
+  , removeUnusedEffectFreeVars
   ) where
 
-import Prelude.Compat
+import Prelude
 
-import Language.PureScript.CoreImp.AST
-import Language.PureScript.CoreImp.Optimizer.Common
-import qualified Language.PureScript.Constants as C
+import Control.Monad (filterM)
+import Data.Monoid (Any(..))
+import Data.Set qualified as S
+import Data.Text (Text)
 
+import Language.PureScript.CoreImp.AST (AST(..), InitializerEffects(..), everything, everywhere)
+import Language.PureScript.CoreImp.Optimizer.Common (removeFromBlock)
+import Language.PureScript.Constants.Prim qualified as C
+
 removeCodeAfterReturnStatements :: AST -> AST
 removeCodeAfterReturnStatements = everywhere (removeFromBlock go)
   where
   go :: [AST] -> [AST]
-  go jss | not (any isReturn jss) = jss
-         | otherwise = let (body, ret : _) = break isReturn jss in body ++ [ret]
+  go jss =
+    case break isReturn jss of
+      (_, []) -> jss
+      (body, ret : _ ) -> body ++ [ret]
+
   isReturn (Return _ _) = True
   isReturn (ReturnNoResult _) = True
   isReturn _ = False
@@ -23,5 +32,24 @@
 removeUndefinedApp :: AST -> AST
 removeUndefinedApp = everywhere convert
   where
-  convert (App ss fn [Var _ arg]) | arg == C.undefined = App ss fn []
+  convert (App ss fn [Var _ C.S_undefined]) = App ss fn []
   convert js = js
+
+removeUnusedEffectFreeVars :: [Text] -> [[AST]] -> [[AST]]
+removeUnusedEffectFreeVars exps = loop
+  where
+  expsSet = S.fromList exps
+
+  loop :: [[AST]] -> [[AST]]
+  loop asts = if changed then loop (filter (not . null) asts') else asts
+    where
+    used = expsSet <> foldMap (foldMap (everything (<>) (\case Var _ x -> S.singleton x; _ -> S.empty))) asts
+    (Any changed, asts') = traverse (filterM (anyFalses . isInUsedSet used)) asts
+
+  isInUsedSet :: S.Set Text -> AST -> Bool
+  isInUsedSet used = \case
+    VariableIntroduction _ var (Just (NoEffects, _)) -> var `S.member` used
+    _ -> True
+
+  anyFalses :: Bool -> (Any, Bool)
+  anyFalses x = (Any (not x), x)
diff --git a/src/Language/PureScript/Crash.hs b/src/Language/PureScript/Crash.hs
--- a/src/Language/PureScript/Crash.hs
+++ b/src/Language/PureScript/Crash.hs
@@ -1,22 +1,8 @@
-{-# LANGUAGE CPP #-}
-{-# LANGUAGE ImplicitParams #-}
-
-module Language.PureScript.Crash where
-
-import Prelude.Compat
+module Language.PureScript.Crash (HasCallStack, internalError) where
 
-import qualified GHC.Stack
+import Prelude
 
--- | A compatibility wrapper for the @GHC.Stack.HasCallStack@ constraint.
-#if __GLASGOW_HASKELL__ >= 800
-type HasCallStack = GHC.Stack.HasCallStack
-#elif MIN_VERSION_GLASGOW_HASKELL(7,10,2,0)
-type HasCallStack = (?callStack :: GHC.Stack.CallStack)
-#else
-import GHC.Exts (Constraint)
--- CallStack wasn't present in GHC 7.10.1
-type HasCallStack = (() :: Constraint)
-#endif
+import GHC.Stack (HasCallStack)
 
 -- | Exit with an error message and a crash report link.
 internalError :: HasCallStack => String -> a
diff --git a/src/Language/PureScript/Docs/AsHtml.hs b/src/Language/PureScript/Docs/AsHtml.hs
--- a/src/Language/PureScript/Docs/AsHtml.hs
+++ b/src/Language/PureScript/Docs/AsHtml.hs
@@ -7,7 +7,6 @@
   HtmlOutputModule(..),
   HtmlRenderContext(..),
   nullRenderContext,
-  declNamespace,
   packageAsHtml,
   moduleAsHtml,
   makeFragment,
@@ -17,30 +16,27 @@
 import Prelude
 import Control.Category ((>>>))
 import Control.Monad (unless)
-import Data.Bifunctor (first)
+import Data.Bifunctor (bimap)
 import Data.Char (isUpper)
 import Data.Either (isRight)
-import qualified Data.List.NonEmpty as NE
+import Data.List.NonEmpty qualified as NE
 import Data.Maybe (fromMaybe)
 import Data.Foldable (for_)
 import Data.String (fromString)
 
 import Data.Text (Text)
-import qualified Data.Text as T
+import Data.Text qualified as T
 
 import Text.Blaze.Html5 as H hiding (map)
-import qualified Text.Blaze.Html5.Attributes as A
-import qualified Cheapskate
+import Text.Blaze.Html5.Attributes qualified as A
+import Cheapskate qualified
 
-import qualified Language.PureScript as P
+import Language.PureScript qualified as P
 
 import Language.PureScript.Docs.Types
-import Language.PureScript.Docs.RenderedCode hiding (sp)
-import qualified Language.PureScript.Docs.Render as Render
-import qualified Language.PureScript.CST as CST
-
-declNamespace :: Declaration -> Namespace
-declNamespace = declInfoNamespace . declInfo
+import Language.PureScript.Docs.RenderedCode (Link(..), outputWith)
+import Language.PureScript.Docs.Render qualified as Render
+import Language.PureScript.CST qualified as CST
 
 data HtmlOutput a = HtmlOutput
   { htmlIndex     :: [(Maybe Char, a)]
@@ -145,9 +141,12 @@
       case declInfo of
         AliasDeclaration fixity alias_ ->
           renderAlias fixity alias_
-        _ ->
-          pre ! A.class_ "decl__signature" $ code $
-            codeAsHtml r (Render.renderDeclaration d)
+        _ -> do
+          pre ! A.class_ "decl__signature" $ do
+            for_ declKind $ \kindInfo -> do
+              code ! A.class_ "decl__kind" $ do
+                codeAsHtml r (Render.renderKindSig declTitle kindInfo)
+            code $ codeAsHtml r (Render.renderDeclaration d)
 
       for_ declComments renderMarkdown
 
@@ -212,20 +211,40 @@
             linkToDecl ns target mn (withClass class_ (text name))
         NoLink ->
           text name
+    Role role ->
+      case role of
+        "nominal" -> renderRole describeNominal "decl__role_nominal"
+        "phantom" -> renderRole describePhantom "decl__role_phantom"
 
+        -- representational is intentionally not rendered
+        "representational" -> toHtml ("" :: Text)
+
+        x -> P.internalError $ "codeAsHtml: unknown value for role annotation: '" <> T.unpack x <> "'"
+      where
+        renderRole hoverTextContent className =
+          H.a ! A.href (v docRepoRolePage) ! A.target (v "_blank") ! A.class_ "decl__role" $ do
+            H.abbr ! A.class_ "decl__role_hover" ! A.title (v hoverTextContent) $ do
+              H.sub ! A.class_ className $ do
+                toHtml ("" :: Text)
+
+        docRepoRolePage =
+          "https://github.com/purescript/documentation/blob/master/language/Roles.md"
+
+        describeNominal =
+          "The 'nominal' role means this argument may not change when coercing the type."
+        describePhantom =
+          "The 'phantom' role means this argument can change freely when coercing the type."
+
   linkToDecl = linkToDeclaration r
 
   startsWithUpper :: Text -> Bool
-  startsWithUpper str =
-    if T.null str
-      then False
-      else isUpper (T.index str 0)
+  startsWithUpper str = not (T.null str) && isUpper (T.index str 0)
 
   isOp = isRight . runParser CST.parseOperator
 
   runParser :: CST.Parser a -> Text -> Either String a
   runParser p' =
-    first (CST.prettyPrintError . NE.head)
+    bimap (CST.prettyPrintError . NE.head) snd
       . CST.runTokenParser p'
       . CST.lex
 
@@ -248,7 +267,6 @@
   prefix = case ns of
     TypeLevel -> "#t:"
     ValueLevel -> "#v:"
-    KindLevel -> "#k:"
 
   -- TODO
   escape = id
@@ -320,7 +338,7 @@
 v = toValue
 
 withClass :: String -> Html -> Html
-withClass className content = H.span ! A.class_ (fromString className) $ content
+withClass className = H.span ! A.class_ (fromString className)
 
 partitionChildren ::
   [ChildDeclaration] ->
diff --git a/src/Language/PureScript/Docs/AsMarkdown.hs b/src/Language/PureScript/Docs/AsMarkdown.hs
--- a/src/Language/PureScript/Docs/AsMarkdown.hs
+++ b/src/Language/PureScript/Docs/AsMarkdown.hs
@@ -1,12 +1,11 @@
 module Language.PureScript.Docs.AsMarkdown
   ( Docs
   , runDocs
-  , modulesAsMarkdown
   , moduleAsMarkdown
   , codeToString
   ) where
 
-import Prelude.Compat
+import Prelude
 
 import Control.Monad (unless, zipWithM_)
 import Control.Monad.Writer (Writer, tell, execWriter)
@@ -14,15 +13,12 @@
 import Data.Foldable (for_)
 import Data.List (partition)
 import Data.Text (Text)
-import qualified Data.Text as T
-
-import Language.PureScript.Docs.RenderedCode
-import Language.PureScript.Docs.Types
-import qualified Language.PureScript as P
-import qualified Language.PureScript.Docs.Render as Render
+import Data.Text qualified as T
 
-modulesAsMarkdown :: [Module] -> Docs
-modulesAsMarkdown = mapM_ moduleAsMarkdown
+import Language.PureScript.Docs.RenderedCode (RenderedCode, RenderedCodeElement(..), outputWith)
+import Language.PureScript.Docs.Types (ChildDeclaration(..), ChildDeclarationInfo(..), Declaration(..), Module(..), ignorePackage)
+import Language.PureScript qualified as P
+import Language.PureScript.Docs.Render qualified as Render
 
 moduleAsMarkdown :: Module -> Docs
 moduleAsMarkdown Module{..} = do
@@ -66,6 +62,9 @@
   elemAsMarkdown (Keyword x)    = x
   elemAsMarkdown Space          = " "
   elemAsMarkdown (Symbol _ x _) = x
+
+  -- roles aren't rendered in markdown
+  elemAsMarkdown (Role _) = ""
 
 -- fixityAsMarkdown :: P.Fixity -> Docs
 -- fixityAsMarkdown (P.Fixity associativity precedence) =
diff --git a/src/Language/PureScript/Docs/Collect.hs b/src/Language/PureScript/Docs/Collect.hs
--- a/src/Language/PureScript/Docs/Collect.hs
+++ b/src/Language/PureScript/Docs/Collect.hs
@@ -6,27 +6,27 @@
 import Protolude hiding (check)
 
 import Control.Arrow ((&&&))
-import qualified Data.Aeson.BetterErrors as ABE
-import qualified Data.ByteString as BS
-import qualified Data.Map as Map
-import Data.String (String)
-import qualified Data.Set as Set
-import qualified Data.Text as T
+import Data.Aeson.BetterErrors qualified as ABE
+import Data.ByteString qualified as BS
+import Data.Map qualified as Map
+import Data.Set qualified as Set
+import Data.Text qualified as T
+import Data.Text.IO qualified as TIO
 import System.FilePath ((</>))
-import System.IO.UTF8 (readUTF8FileT)
+import System.IO.UTF8 (readUTF8FileT, readUTF8FilesT)
 
 import Language.PureScript.Docs.Convert.ReExports (updateReExports)
 import Language.PureScript.Docs.Prim (primModules)
-import Language.PureScript.Docs.Types
+import Language.PureScript.Docs.Types (InPackage(..), Module(..), asModule, displayPackageError, ignorePackage)
 
-import qualified Language.PureScript.AST as P
-import qualified Language.PureScript.CST as P
-import qualified Language.PureScript.Crash as P
-import qualified Language.PureScript.Errors as P
-import qualified Language.PureScript.Externs as P
-import qualified Language.PureScript.Make as P
-import qualified Language.PureScript.Names as P
-import qualified Language.PureScript.Options as P
+import Language.PureScript.AST qualified as P
+import Language.PureScript.CST qualified as P
+import Language.PureScript.Crash qualified as P
+import Language.PureScript.Errors qualified as P
+import Language.PureScript.Externs qualified as P
+import Language.PureScript.Make qualified as P
+import Language.PureScript.Names qualified as P
+import Language.PureScript.Options qualified as P
 
 import Web.Bower.PackageMeta (PackageName)
 
@@ -59,7 +59,7 @@
           addReExports withPackage docsModules externs
 
   docsModules <- go modulePaths
-  pure ((filter (shouldKeep . modName . snd) docsModules), modulesDeps)
+  pure (filter (shouldKeep . modName . snd) docsModules, modulesDeps)
 
   where
   packageDiscriminators modulesDeps =
@@ -89,27 +89,19 @@
   m [P.ExternsFile]
 compileForDocs outputDir inputFiles = do
   result <- liftIO $ do
-    moduleFiles <- readInput inputFiles
+    moduleFiles <- readUTF8FilesT inputFiles
     fmap fst $ P.runMake testOptions $ do
       ms <- P.parseModulesFromFiles identity moduleFiles
       let filePathMap = Map.fromList $ map (\(fp, pm) -> (P.getModuleName $ P.resPartial pm, Right fp)) ms
       foreigns <- P.inferForeignModules filePathMap
       let makeActions =
             (P.buildMakeActions outputDir filePathMap foreigns False)
-              { P.progress = liftIO . putStrLn . renderProgressMessage
+              { P.progress = liftIO . TIO.hPutStr stdout . (<> "\n") . P.renderProgressMessage "Compiling documentation for "
               }
       P.make makeActions (map snd ms)
   either throwError return result
 
   where
-  renderProgressMessage :: P.ProgressMessage -> String
-  renderProgressMessage (P.CompilingModule mn) =
-    "Compiling documentation for " ++ T.unpack (P.runModuleName mn)
-
-  readInput :: [FilePath] -> IO [(FilePath, Text)]
-  readInput files =
-    forM files $ \inFile -> (inFile, ) <$> readUTF8FileT inFile
-
   testOptions :: P.Options
   testOptions = P.defaultOptions { P.optionsCodegenTargets = Set.singleton P.Docs }
 
@@ -162,7 +154,7 @@
   [(tag, a)] ->
   m [(tag, b)]
 operateAndRetag keyA keyB operation input =
-  fmap (map retag) $ operation (map snd input)
+  map retag <$> operation (map snd input)
   where
   tags :: Map key tag
   tags = Map.fromList $ map (\(tag, a) -> (keyA a, tag)) input
@@ -230,4 +222,4 @@
     InPackage FilePath ->
     m (InPackage FilePath, Text)
   readFileAs fi =
-    liftIO . fmap ((fi,)) $ readUTF8FileT (ignorePackage fi)
+    liftIO . fmap (fi,) $ readUTF8FileT (ignorePackage fi)
diff --git a/src/Language/PureScript/Docs/Convert.hs b/src/Language/PureScript/Docs/Convert.hs
--- a/src/Language/PureScript/Docs/Convert.hs
+++ b/src/Language/PureScript/Docs/Convert.hs
@@ -10,22 +10,25 @@
 import Control.Category ((>>>))
 import Control.Monad.Writer.Strict (runWriterT)
 import Control.Monad.Supply (evalSupplyT)
-import Data.Functor (($>))
-import qualified Data.List.NonEmpty as NE
-import qualified Data.Map as Map
+import Data.List.NonEmpty qualified as NE
+import Data.Map qualified as Map
 import Data.String (String)
+import Data.Text qualified as T
 
 import Language.PureScript.Docs.Convert.Single (convertSingleModule)
-import Language.PureScript.Docs.Types
-import qualified Language.PureScript.CST as CST
-import qualified Language.PureScript.AST as P
-import qualified Language.PureScript.Crash as P
-import qualified Language.PureScript.Errors as P
-import qualified Language.PureScript.Externs as P
-import qualified Language.PureScript.Environment as P
-import qualified Language.PureScript.Names as P
-import qualified Language.PureScript.Sugar as P
-import qualified Language.PureScript.Types as P
+import Language.PureScript.Docs.Types (Declaration(..), DeclarationInfo(..), KindInfo(..), Module(..), Type')
+import Language.PureScript.CST qualified as CST
+import Language.PureScript.AST qualified as P
+import Language.PureScript.Crash qualified as P
+import Language.PureScript.Errors qualified as P
+import Language.PureScript.Externs qualified as P
+import Language.PureScript.Environment qualified as P
+import Language.PureScript.Names qualified as P
+import Language.PureScript.Roles qualified as P
+import Language.PureScript.Sugar qualified as P
+import Language.PureScript.Types qualified as P
+import Language.PureScript.Constants.Prim qualified as Prim
+import Language.PureScript.Sugar (RebracketCaller(CalledByDocs))
 
 -- |
 -- Convert a single module to a Docs.Module, making use of a pre-existing
@@ -35,29 +38,123 @@
 convertModule ::
   MonadError P.MultipleErrors m =>
   [P.ExternsFile] ->
+  P.Env ->
   P.Environment ->
   P.Module ->
   m Module
-convertModule externs checkEnv m =
-  partiallyDesugar externs [m] >>= \case
-    [m'] -> pure (insertValueTypes checkEnv (convertSingleModule m'))
-    _ -> P.internalError "partiallyDesugar did not return a singleton"
+convertModule externs env checkEnv =
+  fmap (insertValueTypesAndAdjustKinds checkEnv . convertSingleModule) . partiallyDesugar externs env
 
 -- |
+-- Convert FFI declarations into `DataDeclaration` so that the declaration's
+-- roles (if any) can annotate the generated type parameter names.
+--
+-- Inserts all data declarations inferred roles if none were specified
+-- explicitly.
+--
 -- Updates all the types of the ValueDeclarations inside the module based on
 -- their types inside the given Environment.
 --
-insertValueTypes ::
+-- Removes explicit kind signatures if they are "uninteresting."
+--
+-- Inserts inferred kind signatures into the corresponding declarations
+-- if no kind signature was declared explicitly and the kind
+-- signature is "interesting."
+--
+insertValueTypesAndAdjustKinds ::
   P.Environment -> Module -> Module
-insertValueTypes env m =
-  m { modDeclarations = map go (modDeclarations m) }
+insertValueTypesAndAdjustKinds env m =
+  m { modDeclarations = map (go . insertInferredRoles . convertFFIDecl) (modDeclarations m) }
   where
-  go (d@Declaration { declInfo = ValueDeclaration P.TypeWildcard{} }) =
+  -- Convert FFI declarations into data declaration
+  -- by generating the type parameters' names based on its kind signature.
+  -- Note: `Prim` modules' docs don't go through this conversion process
+  -- so `ExternDataDeclaration` values will still exist beyond this point.
+  convertFFIDecl d@Declaration { declInfo = ExternDataDeclaration kind roles } =
+    d { declInfo = DataDeclaration P.Data (genTypeParams kind) roles
+      , declKind = Just (KindInfo P.DataSig kind)
+      }
+
+  convertFFIDecl other = other
+
+  insertInferredRoles d@Declaration { declInfo = DataDeclaration dataDeclType args [] } =
+    d { declInfo = DataDeclaration dataDeclType args inferredRoles }
+
+    where
+    inferredRoles :: [P.Role]
+    inferredRoles = do
+      let key = P.Qualified (P.ByModuleName (modName m)) (P.ProperName (declTitle d))
+      case Map.lookup key (P.types env) of
+        Just (_, tyKind) -> case tyKind of
+          P.DataType _ tySourceTyRole _ ->
+            map (\(_,_,r) -> r) tySourceTyRole
+          P.ExternData rs ->
+            rs
+          _ ->
+            []
+        Nothing ->
+          err $ "type not found: " <> show key
+
+  insertInferredRoles other =
+    other
+
+  -- Given an FFI declaration like this
+  -- ```
+  -- foreign import data Foo
+  --    :: forall a b c d
+  --     . MyKind a b
+  --    -> OtherKind c d
+  --    -> Symbol
+  --    -> (Type -> Type)
+  --    -> (Type) -- unneeded parens a developer typo
+  --    -> Type
+  -- ```
+  -- Return a list of values, one for each implicit type parameter
+  -- of `(tX, Nothing)` where `X` refers to the index of he parameter
+  -- in that list, matching the values expected by `Render.toTypeVar`
+  genTypeParams :: Type' -> [(Text, Maybe Type')]
+  genTypeParams kind = do
+    let n = countParams 0 kind
+    map (\(i :: Int) -> ("t" <> T.pack (show i), Nothing)) $ take n [0..]
+    where
+      countParams :: Int -> Type' -> Int
+      countParams acc = \case
+        P.ForAll _ _ _ _ rest _ ->
+          countParams acc rest
+
+        P.TypeApp _ f a | isFunctionApplication f ->
+          countParams (acc + 1) a
+
+        P.ParensInType _ ty ->
+          countParams acc ty
+
+        _ ->
+          acc
+
+      isFunctionApplication = \case
+        P.TypeApp _ (P.TypeConstructor () Prim.Function) _ -> True
+        P.ParensInType _ ty -> isFunctionApplication ty
+        _ -> False
+
+  -- insert value types
+  go d@Declaration { declInfo = ValueDeclaration P.TypeWildcard{} } =
     let
       ident = P.Ident . CST.getIdent . CST.nameValue . parseIdent $ declTitle d
       ty = lookupName ident
     in
       d { declInfo = ValueDeclaration (ty $> ()) }
+
+  go d@Declaration{..} | Just keyword <- extractKeyword declInfo =
+    case declKind of
+      Just ks ->
+        -- hide explicit kind signatures that are "uninteresting"
+        if isUninteresting keyword $ kiKind ks
+          then d { declKind = Nothing }
+          else d
+      Nothing ->
+        -- insert inferred kinds so long as they are "interesting"
+        insertInferredKind d declTitle keyword
+
   go other =
     other
 
@@ -65,19 +162,89 @@
     either (err . ("failed to parse Ident: " ++)) identity . runParser CST.parseIdent
 
   lookupName name =
-    let key = P.Qualified (Just (modName m)) name
+    let key = P.Qualified (P.ByModuleName (modName m)) name
     in case Map.lookup key (P.names env) of
       Just (ty, _, _) ->
         ty
       Nothing ->
         err ("name not found: " ++ show key)
 
+  -- Extracts the keyword for a declaration (if there is one)
+  extractKeyword :: DeclarationInfo -> Maybe P.KindSignatureFor
+  extractKeyword = \case
+    DataDeclaration dataDeclType _ _ -> Just $ case dataDeclType of
+      P.Data -> P.DataSig
+      P.Newtype -> P.NewtypeSig
+    TypeSynonymDeclaration _ _ -> Just P.TypeSynonymSig
+    TypeClassDeclaration _ _ _ -> Just P.ClassSig
+    _ -> Nothing
+
+  -- Returns True if the kind signature is "uninteresting", which
+  -- is a kind that follows this form:
+  -- - `Type`
+  -- - `Constraint` (class declaration only)
+  -- - `Type -> K` where `K` is an "uninteresting" kind
+  isUninteresting
+    :: P.KindSignatureFor -> Type' -> Bool
+  isUninteresting keyword = \case
+    -- `Type -> ...`
+    P.TypeApp _ f a | isTypeAppFunctionType f -> isUninteresting keyword a
+    P.ParensInType _ ty -> isUninteresting keyword ty
+    x -> isKindPrimType x || (isClassKeyword && isKindPrimConstraint x)
+    where
+      isClassKeyword = case keyword of
+        P.ClassSig -> True
+        _ -> False
+
+      isTypeAppFunctionType = \case
+        P.TypeApp _ f a -> isKindFunction f && isKindPrimType a
+        P.ParensInType _ ty -> isTypeAppFunctionType ty
+        _ -> False
+
+      isKindFunction = isTypeConstructor Prim.Function
+      isKindPrimType = isTypeConstructor Prim.Type
+      isKindPrimConstraint = isTypeConstructor Prim.Constraint
+
+      isTypeConstructor k = \case
+        P.TypeConstructor _ k' -> k' == k
+        P.ParensInType _ ty -> isTypeConstructor k ty
+        _ -> False
+
+  insertInferredKind :: Declaration -> Text -> P.KindSignatureFor -> Declaration
+  insertInferredKind d name keyword =
+    let
+      key = P.Qualified (P.ByModuleName (modName m)) (P.ProperName name)
+    in case Map.lookup key (P.types env) of
+      Just (inferredKind, _) ->
+        if isUninteresting keyword inferredKind'
+          then  d
+          else  d { declKind = Just $ KindInfo
+                    { kiKeyword = keyword
+                    , kiKind = dropTypeSortAnnotation inferredKind'
+                    }
+                  }
+        where
+          inferredKind' = inferredKind $> ()
+
+          -- Note: the below change to the final kind used is intentionally
+          -- NOT being done for explicit kind signatures:
+          --
+          -- changes `forall (k :: Type). k -> ...`
+          -- to      `forall k          . k -> ...`
+          dropTypeSortAnnotation = \case
+            P.ForAll sa vis txt (Just (P.TypeConstructor _ Prim.Type)) rest skol ->
+              P.ForAll sa vis txt Nothing (dropTypeSortAnnotation rest) skol
+            rest -> rest
+
+      Nothing ->
+        err ("type not found: " ++ show key)
+
   err msg =
     P.internalError ("Docs.Convert.insertValueTypes: " ++ msg)
 
 runParser :: CST.Parser a -> Text -> Either String a
 runParser p =
-  first (CST.prettyPrintError . NE.head)
+  bimap (CST.prettyPrintError . NE.head) snd
     . CST.runTokenParser p
     . CST.lex
 
@@ -88,20 +255,19 @@
 partiallyDesugar ::
   (MonadError P.MultipleErrors m) =>
   [P.ExternsFile] ->
-  [P.Module] ->
-  m [P.Module]
-partiallyDesugar externs = evalSupplyT 0 . desugar'
+  P.Env ->
+  P.Module ->
+  m P.Module
+partiallyDesugar externs env = evalSupplyT 0 . desugar'
   where
   desugar' =
-    traverse P.desugarDoModule
-      >=> traverse P.desugarAdoModule
-      >=> map P.desugarLetPatternModule
-      >>> traverse P.desugarCasesModule
-      >=> traverse P.desugarTypeDeclarationsModule
-      >=> ignoreWarnings . P.desugarImports externs
-      >=> P.rebracketFiltered isInstanceDecl externs
-
-  ignoreWarnings = fmap fst . runWriterT
+    P.desugarDoModule
+      >=> P.desugarAdoModule
+      >=> P.desugarLetPatternModule
+      >>> P.desugarCasesModule
+      >=> P.desugarTypeDeclarationsModule
+      >=> fmap fst . runWriterT . flip evalStateT (env, mempty) . P.desugarImports
+      >=> P.rebracketFiltered CalledByDocs isInstanceDecl externs
 
-  isInstanceDecl (P.TypeInstanceDeclaration {}) = True
+  isInstanceDecl P.TypeInstanceDeclaration {} = True
   isInstanceDecl _ = False
diff --git a/src/Language/PureScript/Docs/Convert/ReExports.hs b/src/Language/PureScript/Docs/Convert/ReExports.hs
--- a/src/Language/PureScript/Docs/Convert/ReExports.hs
+++ b/src/Language/PureScript/Docs/Convert/ReExports.hs
@@ -2,31 +2,32 @@
   ( updateReExports
   ) where
 
-import Prelude.Compat
+import Prelude
 
 import Control.Arrow ((&&&), first, second)
-import Control.Monad
+import Control.Monad (foldM, (<=<))
 import Control.Monad.Reader.Class (MonadReader, ask)
 import Control.Monad.State.Class (MonadState, gets, modify)
 import Control.Monad.Trans.Reader (runReaderT)
 import Control.Monad.Trans.State.Strict (execState)
 
-import Data.Either
+import Data.Either (partitionEithers)
+import Data.Foldable (fold, traverse_)
 import Data.Map (Map)
-import Data.Maybe (mapMaybe, fromMaybe)
-import qualified Data.Map as Map
+import Data.Maybe (mapMaybe)
+import Data.Map qualified as Map
 import Data.Text (Text)
-import qualified Data.Text as T
+import Data.Text qualified as T
 
 import Language.PureScript.Docs.Types
 
-import qualified Language.PureScript.AST as P
-import qualified Language.PureScript.Crash as P
-import qualified Language.PureScript.Errors as P
-import qualified Language.PureScript.Externs as P
-import qualified Language.PureScript.ModuleDependencies as P
-import qualified Language.PureScript.Names as P
-import qualified Language.PureScript.Types as P
+import Language.PureScript.AST qualified as P
+import Language.PureScript.Crash qualified as P
+import Language.PureScript.Errors qualified as P
+import Language.PureScript.Externs qualified as P
+import Language.PureScript.ModuleDependencies qualified as P
+import Language.PureScript.Names qualified as P
+import Language.PureScript.Types qualified as P
 
 
 -- |
@@ -47,7 +48,7 @@
 updateReExports externs withPackage = execState action
   where
   action =
-    void (traverse go traversalOrder)
+    traverse_ go traversalOrder
 
   go mn = do
     mdl <- lookup' mn
@@ -68,7 +69,7 @@
 
   traversalOrder :: [P.ModuleName]
   traversalOrder =
-    case P.sortModules externsSignature externs of
+    case P.sortModules P.Transitive externsSignature externs of
       Right (es, _) -> map P.efModuleName es
       Left errs -> internalError $
         "failed to sortModules: " ++
@@ -98,7 +99,7 @@
   case Map.lookup mn externsEnv of
     Nothing ->
       internalError ("Module missing: " ++ T.unpack (P.runModuleName mn))
-    Just (P.ExternsFile { P.efExports = refs }) -> do
+    Just P.ExternsFile { P.efExports = refs } -> do
       let reExpRefs = mapMaybe toReExportRef refs
       runReaderT (collectDeclarations reExpRefs) mn
 
@@ -135,20 +136,18 @@
   typeClasses <- collect lookupTypeClassDeclaration expTCs
   types <- collect lookupTypeDeclaration expTypes
   typeOps <- collect lookupTypeOpDeclaration expTypeOps
-  kinds <- collect lookupKindDeclaration expKinds
 
   (vals, classes) <- handleTypeClassMembers valsAndMembers typeClasses
 
   let filteredTypes = filterDataConstructors expCtors types
   let filteredClasses = filterTypeClassMembers (Map.keys expVals) classes
 
-  pure (Map.toList (Map.unionsWith (<>) [filteredTypes, filteredClasses, vals, valOps, typeOps, kinds]))
+  pure (Map.toList (Map.unionsWith (<>) [filteredTypes, filteredClasses, vals, valOps, typeOps]))
 
   where
 
   collect
-    :: (Eq a, Show a)
-    => (P.ModuleName -> a -> m (P.ModuleName, [b]))
+    :: (P.ModuleName -> a -> m (P.ModuleName, [b]))
     -> Map a P.ExportSource
     -> m (Map P.ModuleName [b])
   collect lookup' exps = do
@@ -171,18 +170,16 @@
   expTypeOps :: Map (P.OpName 'P.TypeOpName) P.ExportSource
   expTypeOps = mkExportMap P.getTypeOpRef
 
-  expKinds :: Map (P.ProperName 'P.KindName) P.ExportSource
-  expKinds = mkExportMap P.getKindRef
-
   mkExportMap :: Ord name => (P.DeclarationRef -> Maybe name) -> Map name P.ExportSource
   mkExportMap f =
     Map.fromList $
       mapMaybe (\(exportSrc, ref) -> (,exportSrc) <$> f ref) reExports
 
   expCtors :: [P.ProperName 'P.ConstructorName]
-  expCtors = concatMap (fromMaybe [] . (>>= snd) . P.getTypeRef . snd) reExports
+  expCtors = concatMap (fold . (snd <=< P.getTypeRef . snd)) reExports
 
 lookupValueDeclaration ::
+  forall m.
   (MonadState (Map P.ModuleName Module) m,
    MonadReader P.ModuleName m) =>
   P.ModuleName ->
@@ -194,6 +191,7 @@
     rs =
       filter (\d -> declTitle d == P.showIdent ident
                     && (isValue d || isValueAlias d)) decls
+    errOther :: Show a => a -> m b
     errOther other =
       internalErrorInModule
         ("lookupValueDeclaration: unexpected result:\n" ++
@@ -312,24 +310,6 @@
          ++ show tyClass ++ ": "
          ++ (unlines . map show) other)
 
-lookupKindDeclaration
-  :: (MonadState (Map P.ModuleName Module) m, MonadReader P.ModuleName m)
-  => P.ModuleName
-  -> P.ProperName 'P.KindName
-  -> m (P.ModuleName, [Declaration])
-lookupKindDeclaration importedFrom kind = do
-  decls <- lookupModuleDeclarations "lookupKindDeclaration" importedFrom
-  let
-    ds = filter (\d -> declTitle d == P.runProperName kind
-                       && isKind d)
-                decls
-  case ds of
-    [d] ->
-      pure (importedFrom, [d])
-    other ->
-      internalErrorInModule
-        ("lookupKindDeclaration: unexpected result: " ++ show other)
-
 -- |
 -- Get the full list of declarations for a particular module out of the
 -- state, or raise an internal error if it is not there.
@@ -453,6 +433,7 @@
           , declSourceSpan = cdeclSourceSpan
           , declChildren   = []
           , declInfo       = ValueDeclaration (addConstraint constraint typ)
+          , declKind       = Nothing
           }
       _ ->
         internalErrorInModule
@@ -460,7 +441,7 @@
           ++ T.unpack cdeclTitle)
 
   addConstraint constraint =
-    P.quantify . P.moveQuantifiersToFront . P.ConstrainedType () constraint
+    P.quantify . P.moveQuantifiersToFront () . P.ConstrainedType () constraint
 
 splitMap :: Map k (v1, v2) -> (Map k v1, Map k v2)
 splitMap = fmap fst &&& fmap snd
@@ -530,7 +511,7 @@
 typeClassConstraintFor Declaration{..} =
   case declInfo of
     TypeClassDeclaration tyArgs _ _ ->
-      Just (P.Constraint () (P.Qualified Nothing (P.ProperName declTitle)) (mkConstraint tyArgs) Nothing)
+      Just (P.Constraint () (P.Qualified P.ByNullSourcePos (P.ProperName declTitle)) [] (mkConstraint tyArgs) Nothing)
     _ ->
       Nothing
   where
diff --git a/src/Language/PureScript/Docs/Convert/Single.hs b/src/Language/PureScript/Docs/Convert/Single.hs
--- a/src/Language/PureScript/Docs/Convert/Single.hs
+++ b/src/Language/PureScript/Docs/Convert/Single.hs
@@ -7,16 +7,16 @@
 
 import Control.Category ((>>>))
 
-import Data.Functor (($>))
-import qualified Data.Text as T
+import Data.Text qualified as T
 
-import Language.PureScript.Docs.Types
+import Language.PureScript.Docs.Types (ChildDeclaration(..), ChildDeclarationInfo(..), Declaration(..), DeclarationInfo(..), KindInfo(..), Module(..), Type', convertFundepsToStrings, isType, isTypeClass)
 
-import qualified Language.PureScript.AST as P
-import qualified Language.PureScript.Comments as P
-import qualified Language.PureScript.Crash as P
-import qualified Language.PureScript.Names as P
-import qualified Language.PureScript.Types as P
+import Language.PureScript.AST qualified as P
+import Language.PureScript.Comments qualified as P
+import Language.PureScript.Crash qualified as P
+import Language.PureScript.Names qualified as P
+import Language.PureScript.Roles qualified as P
+import Language.PureScript.Types qualified as P
 
 -- |
 -- Convert a single Module, but ignore re-exports; any re-exported types or
@@ -67,9 +67,21 @@
 -- since they appear at the top level in the AST, and since they might need to
 -- appear as children in two places (for example, if a data type defined in a
 -- module is an instance of a type class also defined in that module).
+--
+-- The AugmentKindSig constructor allows us to add a kind signature
+-- to its corresponding declaration. Comments for both declarations
+-- are also merged together.
 data DeclarationAugment
   = AugmentChild ChildDeclaration
+  | AugmentKindSig KindSignatureInfo
+  | AugmentRole (Maybe Text) [P.Role]
 
+data KindSignatureInfo = KindSignatureInfo
+  { ksiComments :: Maybe Text
+  , ksiKeyword :: P.KindSignatureFor
+  , ksiKind :: Type'
+  }
+
 -- | Augment top-level declarations; the second pass. See the comments under
 -- the type synonym IntermediateDeclaration for more information.
 augmentDeclarations :: [IntermediateDeclaration] -> [Declaration]
@@ -87,18 +99,46 @@
 
   augmentWith (AugmentChild child) d =
     d { declChildren = declChildren d ++ [child] }
+  augmentWith (AugmentKindSig KindSignatureInfo{..}) d =
+    d { declComments = mergeComments ksiComments $ declComments d
+      , declKind = Just $ KindInfo { kiKeyword = ksiKeyword, kiKind = ksiKind }
+      }
+  augmentWith (AugmentRole comms roles) d =
+    d { declComments = mergeComments (declComments d) comms
+      , declInfo = insertRoles
+      }
+    where
+      insertRoles = case declInfo d of
+        DataDeclaration dataDeclType args [] ->
+          DataDeclaration dataDeclType args roles
+        DataDeclaration _ _ _ ->
+          P.internalError "augmentWith: could not add a second role declaration to a data declaration"
 
+        ExternDataDeclaration kind [] ->
+          ExternDataDeclaration kind roles
+        ExternDataDeclaration _ _ ->
+          P.internalError "augmentWith: could not add a second role declaration to an FFI declaration"
+
+        _ -> P.internalError "augmentWith: could not add role to declaration"
+
+  mergeComments :: Maybe Text -> Maybe Text -> Maybe Text
+  mergeComments Nothing bot = bot
+  mergeComments top Nothing = top
+  mergeComments (Just topComs) (Just bottomComs) =
+    Just $ topComs <> "\n" <> bottomComs
+
 getDeclarationTitle :: P.Declaration -> Maybe Text
 getDeclarationTitle (P.ValueDeclaration vd) = Just (P.showIdent (P.valdeclIdent vd))
 getDeclarationTitle (P.ExternDeclaration _ name _) = Just (P.showIdent name)
 getDeclarationTitle (P.DataDeclaration _ _ name _ _) = Just (P.runProperName name)
 getDeclarationTitle (P.ExternDataDeclaration _ name _) = Just (P.runProperName name)
-getDeclarationTitle (P.ExternKindDeclaration _ name) = Just (P.runProperName name)
 getDeclarationTitle (P.TypeSynonymDeclaration _ name _ _) = Just (P.runProperName name)
 getDeclarationTitle (P.TypeClassDeclaration _ name _ _ _ _) = Just (P.runProperName name)
-getDeclarationTitle (P.TypeInstanceDeclaration _ _ _ name _ _ _ _) = Just (P.showIdent name)
+getDeclarationTitle (P.TypeInstanceDeclaration _ _ _ _ name _ _ _ _) = Just $ either (const "<anonymous>") P.showIdent name
 getDeclarationTitle (P.TypeFixityDeclaration _ _ _ op) = Just ("type " <> P.showOp op)
 getDeclarationTitle (P.ValueFixityDeclaration _ _ _ op) = Just (P.showOp op)
+getDeclarationTitle (P.KindDeclaration _ _ n _) = Just (P.runProperName n)
+getDeclarationTitle (P.RoleDeclaration P.RoleDeclarationData{..}) = Just (P.runProperName rdeclIdent)
 getDeclarationTitle _ = Nothing
 
 -- | Create a basic Declaration value.
@@ -109,6 +149,7 @@
               , declSourceSpan = Just ss -- TODO: make this non-optional when we next break the format
               , declChildren   = []
               , declInfo       = info
+              , declKind       = Nothing -- kind sigs are added in augment pass
               }
 
 basicDeclaration :: P.SourceAnn -> Text -> DeclarationInfo -> Maybe IntermediateDeclaration
@@ -120,21 +161,20 @@
 convertDeclaration (P.ValueDecl sa _ _ _ _) title =
   -- If no explicit type declaration was provided, insert a wildcard, so that
   -- the actual type will be added during type checking.
-  basicDeclaration sa title (ValueDeclaration (P.TypeWildcard () Nothing))
+  basicDeclaration sa title (ValueDeclaration (P.TypeWildcard () P.UnnamedWildcard))
 convertDeclaration (P.ExternDeclaration sa _ ty) title =
   basicDeclaration sa title (ValueDeclaration (ty $> ()))
 convertDeclaration (P.DataDeclaration sa dtype _ args ctors) title =
   Just (Right (mkDeclaration sa title info) { declChildren = children })
   where
-  info = DataDeclaration dtype (fmap (fmap (fmap ($> ()))) args)
+  info = DataDeclaration dtype (fmap (fmap (fmap ($> ()))) args) []
   children = map convertCtor ctors
-  convertCtor :: (P.ProperName 'P.ConstructorName, [(P.Ident, P.SourceType)]) -> ChildDeclaration
-  convertCtor (ctor', tys) =
-    ChildDeclaration (P.runProperName ctor') Nothing Nothing (ChildDataConstructor (fmap (($> ()) . snd) tys))
+  convertCtor :: P.DataConstructorDeclaration -> ChildDeclaration
+  convertCtor P.DataConstructorDeclaration{..} =
+    let (sourceSpan, comments) = dataCtorAnn
+    in ChildDeclaration (P.runProperName dataCtorName) (convertComments comments) (Just sourceSpan) (ChildDataConstructor (fmap (($> ()) . snd) dataCtorFields))
 convertDeclaration (P.ExternDataDeclaration sa _ kind') title =
-  basicDeclaration sa title (ExternDataDeclaration (kind' $> ()))
-convertDeclaration (P.ExternKindDeclaration sa _) title =
-  basicDeclaration sa title ExternKindDeclaration
+  basicDeclaration sa title (ExternDataDeclaration (kind' $> ()) [])
 convertDeclaration (P.TypeSynonymDeclaration sa _ args ty) title =
   basicDeclaration sa title (TypeSynonymDeclaration (fmap (fmap (fmap ($> ()))) args) (ty $> ()))
 convertDeclaration (P.TypeClassDeclaration sa _ args implies fundeps ds) title =
@@ -147,7 +187,7 @@
     ChildDeclaration (P.showIdent ident') (convertComments com) (Just ss) (ChildTypeClassMember (ty $> ()))
   convertClassMember _ =
     P.internalError "convertDeclaration: Invalid argument to convertClassMember."
-convertDeclaration (P.TypeInstanceDeclaration (ss, com) _ _ _ constraints className tys _) title =
+convertDeclaration (P.TypeInstanceDeclaration (ss, com) _ _ _ _ constraints className tys _) title =
   Just (Left ((classNameString, AugmentClass) : map (, AugmentType) typeNameStrings, AugmentChild childDecl))
   where
   classNameString = unQual className
@@ -163,6 +203,16 @@
   Just . Right $ mkDeclaration sa title (AliasDeclaration fixity (P.Qualified mn (Right alias)))
 convertDeclaration (P.TypeFixityDeclaration sa fixity (P.Qualified mn alias) _) title =
   Just . Right $ mkDeclaration sa title (AliasDeclaration fixity (P.Qualified mn (Left alias)))
+convertDeclaration (P.KindDeclaration sa keyword _ kind) title =
+  Just $ Left ([(title, AugmentType), (title, AugmentClass)], AugmentKindSig ksi)
+  where
+    comms = convertComments $ snd sa
+    ksi = KindSignatureInfo { ksiComments = comms, ksiKeyword = keyword, ksiKind = kind $> () }
+convertDeclaration (P.RoleDeclaration P.RoleDeclarationData{..}) title =
+  Just $ Left ([(title, AugmentType)], AugmentRole comms rdeclRoles)
+  where
+    comms = convertComments $ snd rdeclSourceAnn
+
 convertDeclaration _ _ = Nothing
 
 convertComments :: [P.Comment] -> Maybe Text
diff --git a/src/Language/PureScript/Docs/Prim.hs b/src/Language/PureScript/Docs/Prim.hs
--- a/src/Language/PureScript/Docs/Prim.hs
+++ b/src/Language/PureScript/Docs/Prim.hs
@@ -6,26 +6,28 @@
   , primModules
   ) where
 
-import Prelude.Compat hiding (fail)
+import Prelude hiding (fail)
 import Data.Functor (($>))
 import Data.Text (Text)
-import qualified Data.Text as T
-import qualified Data.Map as Map
-import qualified Data.Set as Set
-import Language.PureScript.Docs.Types
+import Data.Text qualified as T
+import Data.Map qualified as Map
+import Language.PureScript.Docs.Types (Declaration(..), DeclarationInfo(..), Module(..), Type', convertFundepsToStrings)
 
-import qualified Language.PureScript.Crash as P
-import qualified Language.PureScript.Environment as P
-import qualified Language.PureScript.Names as P
+import Language.PureScript.Constants.Prim qualified as P
+import Language.PureScript.Crash qualified as P
+import Language.PureScript.Environment qualified as P
+import Language.PureScript.Names qualified as P
 
 primModules :: [Module]
 primModules =
   [ primDocsModule
   , primBooleanDocsModule
+  , primCoerceDocsModule
   , primOrderingDocsModule
   , primRowDocsModule
   , primRowListDocsModule
   , primSymbolDocsModule
+  , primIntDocsModule
   , primTypeErrorDocsModule
   ]
 
@@ -35,7 +37,7 @@
   , modComments = Just $ T.unlines
       [ "The `Prim` module is embedded in the PureScript compiler in order to provide compiler support for certain types &mdash; for example, value literals, or syntax sugar. It is implicitly imported unqualified in every module except those that list it as a qualified import."
       , ""
-      , "`Prim` does not include additional built-in types and kinds that are defined deeper in the compiler. For example, row kinds (e.g. `# Type`, which is the kind of types such as `(name :: String, age :: Int)`), Type wildcards (e.g. `f :: _ -> Int`), and Quantified Types. Rather, these are documented in [the PureScript language reference](https://github.com/purescript/documentation/blob/master/language/Types.md)."
+      , "`Prim` does not include additional built-in types and kinds that are defined deeper in the compiler such as Type wildcards (e.g. `f :: _ -> Int`) and Quantified Types. Rather, these are documented in [the PureScript language reference](https://github.com/purescript/documentation/blob/master/language/Types.md)."
       ]
   , modDeclarations =
       [ function
@@ -48,7 +50,9 @@
       , boolean
       , partial
       , kindType
+      , kindConstraint
       , kindSymbol
+      , kindRow
       ]
   , modReExports = []
   }
@@ -58,13 +62,22 @@
   { modName = P.moduleNameFromString "Prim.Boolean"
   , modComments = Just "The Prim.Boolean module is embedded in the PureScript compiler. Unlike `Prim`, it is not imported implicitly. It contains a type level `Boolean` data structure."
   , modDeclarations =
-      [ kindBoolean
-      , booleanTrue
+      [ booleanTrue
       , booleanFalse
       ]
   , modReExports = []
   }
 
+primCoerceDocsModule :: Module
+primCoerceDocsModule = Module
+  { modName = P.moduleNameFromString "Prim.Coerce"
+  , modComments = Just "The Prim.Coerce module is embedded in the PureScript compiler. Unlike `Prim`, it is not imported implicitly. It contains an automatically solved type class for coercing types that have provably-identical runtime representations with [purescript-safe-coerce](https://pursuit.purescript.org/packages/purescript-safe-coerce)."
+  , modDeclarations =
+      [ coercible
+      ]
+  , modReExports = []
+  }
+
 primOrderingDocsModule :: Module
 primOrderingDocsModule = Module
   { modName = P.moduleNameFromString "Prim.Ordering"
@@ -116,6 +129,19 @@
   , modReExports = []
   }
 
+primIntDocsModule :: Module
+primIntDocsModule = Module
+  { modName = P.moduleNameFromString "Prim.Int"
+  , modComments = Just "The Prim.Int module is embedded in the PureScript compiler. Unlike `Prim`, it is not imported implicitly. It contains automatically solved type classes for working with type-level intural numbers."
+  , modDeclarations =
+      [ intAdd
+      , intCompare
+      , intMul
+      , intToString
+      ]
+  , modReExports = []
+  }
+
 primTypeErrorDocsModule :: Module
 primTypeErrorDocsModule = Module
   { modName = P.moduleNameFromString "Prim.TypeError"
@@ -133,46 +159,23 @@
   , modReExports = []
   }
 
-type NameGen a = Text -> P.Qualified (P.ProperName a)
-
-unsafeLookupOf
+unsafeLookup
   :: forall v (a :: P.ProperNameType)
-  . NameGen a
-  -> Map.Map (P.Qualified (P.ProperName a)) v
+  . Map.Map (P.Qualified (P.ProperName a)) v
   -> String
-  -> Text
+  -> P.Qualified (P.ProperName a)
   -> v
-unsafeLookupOf k m errorMsg name = go name
+unsafeLookup m errorMsg name = go name
   where
-  go = fromJust' . flip Map.lookup m . k
+  go = fromJust' . flip Map.lookup m
 
   fromJust' (Just x) = x
-  fromJust' _ = P.internalError $ errorMsg ++ show name
-
-primKindOf
-  :: NameGen 'P.KindName
-  -> Text
-  -> Text
-  -> Declaration
-primKindOf g title comments =
-  if Set.member (g title) P.allPrimKinds
-     then Declaration
-          { declTitle = title
-          , declComments = Just comments
-          , declSourceSpan = Nothing
-          , declChildren = []
-          , declInfo = ExternKindDeclaration
-          }
-    else P.internalError $ "Docs.Prim: No such Prim kind: " ++ T.unpack title
-
-primKind :: Text -> Text -> Declaration
-primKind = primKindOf P.primName
+  fromJust' _ = P.internalError $ errorMsg ++ show (P.runProperName $ P.disqualify name)
 
-lookupPrimTypeKindOf
-  :: NameGen 'P.TypeName
-  -> Text
-  -> Kind'
-lookupPrimTypeKindOf k = ($> ()) . fst . unsafeLookupOf k
+lookupPrimTypeKind
+  :: P.Qualified (P.ProperName 'P.TypeName)
+  -> Type'
+lookupPrimTypeKind = ($> ()) . fst . unsafeLookup
   ( P.primTypes <>
     P.primBooleanTypes <>
     P.primOrderingTypes <>
@@ -181,64 +184,91 @@
     P.primTypeErrorTypes
   ) "Docs.Prim: No such Prim type: "
 
-primType :: Text -> Text -> Declaration
-primType = primTypeOf P.primName
-
-primTypeOf :: NameGen 'P.TypeName -> Text -> Text -> Declaration
-primTypeOf gen title comments = Declaration
-  { declTitle = title
+primType :: P.Qualified (P.ProperName 'P.TypeName) -> Text -> Declaration
+primType tn comments = Declaration
+  { declTitle = P.runProperName $ P.disqualify tn
   , declComments = Just comments
   , declSourceSpan = Nothing
   , declChildren = []
-  , declInfo = ExternDataDeclaration (lookupPrimTypeKindOf gen title)
+  , declInfo = ExternDataDeclaration (lookupPrimTypeKind tn) []
+  , declKind = Nothing
   }
 
 -- | Lookup the TypeClassData of a Prim class. This function is specifically
 -- not exported because it is partial.
-lookupPrimClassOf :: NameGen 'P.ClassName -> Text -> P.TypeClassData
-lookupPrimClassOf g = unsafeLookupOf g
+lookupPrimClass :: P.Qualified (P.ProperName 'P.ClassName) -> P.TypeClassData
+lookupPrimClass = unsafeLookup
   ( P.primClasses <>
+    P.primCoerceClasses <>
     P.primRowClasses <>
     P.primRowListClasses <>
     P.primSymbolClasses <>
+    P.primIntClasses <>
     P.primTypeErrorClasses
   ) "Docs.Prim: No such Prim class: "
 
-primClass :: Text -> Text -> Declaration
-primClass = primClassOf P.primName
-
-primClassOf :: NameGen 'P.ClassName -> Text -> Text -> Declaration
-primClassOf gen title comments = Declaration
-  { declTitle = title
+primClass :: P.Qualified (P.ProperName 'P.ClassName) -> Text -> Declaration
+primClass cn comments = Declaration
+  { declTitle = P.runProperName $ P.disqualify cn
   , declComments = Just comments
   , declSourceSpan = Nothing
   , declChildren = []
   , declInfo =
       let
-        tcd = lookupPrimClassOf gen title
-        args = fmap (fmap (fmap ($> ()))) $ P.typeClassArguments tcd
-        superclasses = fmap ($> ()) $ P.typeClassSuperclasses tcd
+        tcd = lookupPrimClass cn
+        args = fmap (fmap ($> ())) <$> P.typeClassArguments tcd
+        superclasses = ($> ()) <$> P.typeClassSuperclasses tcd
         fundeps = convertFundepsToStrings args (P.typeClassDependencies tcd)
       in
         TypeClassDeclaration args superclasses fundeps
+  , declKind = Nothing
   }
 
 kindType :: Declaration
-kindType = primKind "Type" $ T.unlines
+kindType = primType P.Type $ T.unlines
   [ "`Type` is the kind of all proper types: those that classify value-level terms."
   , "For example the type `Boolean` has kind `Type`; denoted by `Boolean :: Type`."
   ]
 
+kindConstraint :: Declaration
+kindConstraint = primType P.Constraint $ T.unlines
+  [ "`Constraint` is the kind of type class constraints."
+  , "For example, a type class declaration like this:"
+  , ""
+  , "    class Semigroup a where"
+  , "      append :: a -> a -> a"
+  , ""
+  , "has the kind signature:"
+  , ""
+  , "    class Semigroup :: Type -> Constraint"
+  ]
+
 kindSymbol :: Declaration
-kindSymbol = primKind "Symbol" $ T.unlines
+kindSymbol = primType P.Symbol $ T.unlines
   [ "`Symbol` is the kind of type-level strings."
   , ""
   , "Construct types of this kind using the same literal syntax as documented"
   , "for strings."
+  , ""
+  , "    type Hello :: Symbol"
+  , "    type Hello = \"Hello, world\""
+  , ""
   ]
 
+kindRow :: Declaration
+kindRow = primType P.Row $ T.unlines
+  [ "`Row` is the kind constructor of label-indexed types which map type-level strings to other types."
+  , "The most common use of `Row` is `Row Type`, a row mapping labels to basic (of kind `Type`) types:"
+  , ""
+  , "    type ExampleRow :: Row Type"
+  , "    type ExampleRow = ( name :: String, values :: Array Int )"
+  , ""
+  , "This is the kind of `Row` expected by the `Record` type constructor."
+  , "More advanced row kinds like `Row (Type -> Type)` are used much less frequently."
+  ]
+
 function :: Declaration
-function = primType "Function" $ T.unlines
+function = primType P.Function $ T.unlines
   [ "A function, which takes values of the type specified by the first type"
   , "parameter, and returns values of the type specified by the second."
   , "In the JavaScript backend, this is a standard JavaScript Function."
@@ -257,7 +287,7 @@
   ]
 
 array :: Declaration
-array = primType "Array" $ T.unlines
+array = primType P.Array $ T.unlines
   [ "An Array: a data structure supporting efficient random access. In"
   , "the JavaScript backend, values of this type are represented as JavaScript"
   , "Arrays at runtime."
@@ -268,7 +298,7 @@
   ]
 
 record :: Declaration
-record = primType "Record" $ T.unlines
+record = primType P.Record $ T.unlines
   [ "The type of records whose fields are known at compile time. In the"
   , "JavaScript backend, values of this type are represented as JavaScript"
   , "Objects at runtime."
@@ -290,27 +320,53 @@
   ]
 
 number :: Declaration
-number = primType "Number" $ T.unlines
+number = primType P.Number $ T.unlines
   [ "A double precision floating point number (IEEE 754)."
   , ""
-  , "Construct values of this type with literals:"
+  , "Construct values of this type with literals."
+  , "Negative literals must be wrapped in parentheses if the negation sign could be mistaken"
+  , "for an infix operator:"
   , ""
-  , "    y = 35.23 :: Number"
-  , "    z = 1.224e6 :: Number"
+  , "    x = 35.23 :: Number"
+  , "    y = -1.224e6 :: Number"
+  , "    z = exp (-1.0) :: Number"
   ]
 
 int :: Declaration
-int = primType "Int" $ T.unlines
-  [ "A 32-bit signed integer. See the purescript-integers package for details"
+int = primType P.Int $ T.unlines
+  [ "A 32-bit signed integer. See the `purescript-integers` package for details"
   , "of how this is accomplished when compiling to JavaScript."
   , ""
-  , "Construct values of this type with literals:"
+  , "Construct values of this type with literals. Hexadecimal syntax is supported."
+  , "Negative literals must be wrapped in parentheses if the negation sign could be mistaken"
+  , "for an infix operator:"
   , ""
-  , "    x = 23 :: Int"
+  , "    x = -23 :: Int"
+  , "    y = 0x17 :: Int"
+  , "    z = complement (-24) :: Int"
+  , ""
+  , "Integers used as types are considered to have kind `Int`."
+  , "Unlike value-level `Int`s, which must be representable as a 32-bit signed integer,"
+  , "type-level `Int`s are unbounded. Hexadecimal support is also supported at the type level."
+  , ""
+  , "    type One :: Int"
+  , "    type One = 1"
+  , "    "
+  , "    type Beyond32BitSignedInt :: Int"
+  , "    type Beyond32BitSignedInt = 2147483648"
+  , "    "
+  , "    type HexInt :: Int"
+  , "    type HexInt = 0x17"
+  , ""
+  , "Negative integer literals at the type level must be"
+  , "wrapped in parentheses if the negation sign could be mistaken for an infix operator."
+  , ""
+  , "    type NegativeOne = -1"
+  , "    foo :: Proxy (-1) -> ..."
   ]
 
 string :: Declaration
-string = primType "String" $ T.unlines
+string = primType P.String $ T.unlines
   [ "A String. As in JavaScript, String values represent sequences of UTF-16"
   , "code units, which are not required to form a valid encoding of Unicode"
   , "text (for example, lone surrogates are permitted)."
@@ -319,77 +375,139 @@
   , ""
   , "    x = \"hello, world\" :: String"
   , ""
-  , "Multi-line string literals are also supported with triple quotes (`\"\"\"`)."
+  , "Multi-line string literals are also supported with triple quotes (`\"\"\"`):"
+  , ""
+  , "    x = \"\"\"multi"
+  , "       line\"\"\""
+  , ""
+  , "At the type level, string literals represent types with kind `Symbol`."
+  , "These types will have kind `String` in a future release:"
+  , ""
+  , "    type Hello :: Symbol"
+  , "    type Hello = \"Hello, world\""
   ]
 
 char :: Declaration
-char = primType "Char" $ T.unlines
-   [ "A single character (UTF-16 code unit). The JavaScript representation is a"
-   , "normal String, which is guaranteed to contain one code unit. This means"
-   , "that astral plane characters (i.e. those with code point values greater"
-   , "than 0xFFFF) cannot be represented as Char values."
-   , ""
-   , "Construct values of this type with literals, using single quotes `'`:"
-   , ""
-   , "    x = 'a' :: Char"
-   ]
+char = primType P.Char $ T.unlines
+  [ "A single character (UTF-16 code unit). The JavaScript representation is a"
+  , "normal `String`, which is guaranteed to contain one code unit. This means"
+  , "that astral plane characters (i.e. those with code point values greater"
+  , "than `0xFFFF`) cannot be represented as `Char` values."
+  , ""
+  , "Construct values of this type with literals, using single quotes `'`:"
+  , ""
+  , "    x = 'a' :: Char"
+  ]
 
 boolean :: Declaration
-boolean = primType "Boolean" $ T.unlines
+boolean = primType P.Boolean $ T.unlines
   [ "A JavaScript Boolean value."
   , ""
   , "Construct values of this type with the literals `true` and `false`."
+  , ""
+  , "The `True` and `False` types defined in `Prim.Boolean` have this type as their kind."
   ]
 
 partial :: Declaration
-partial = primClass "Partial" $ T.unlines
+partial = primClass P.Partial $ T.unlines
   [ "The Partial type class is used to indicate that a function is *partial,*"
   , "that is, it is not defined for all inputs. In practice, attempting to use"
   , "a partial function with a bad input will usually cause an error to be"
   , "thrown, although it is not safe to assume that this will happen in all"
   , "cases. For more information, see"
-  , "[the Partial type class guide](https://github.com/purescript/documentation/blob/master/guides/The-Partial-type-class.md)."
-  ]
-
-kindBoolean :: Declaration
-kindBoolean = primKindOf (P.primSubName "Boolean") "Boolean" $ T.unlines
-  [ "The `Boolean` kind provides True/False types at the type level"
+  , "[purescript-partial](https://pursuit.purescript.org/packages/purescript-partial/)."
   ]
 
 booleanTrue :: Declaration
-booleanTrue = primTypeOf (P.primSubName "Boolean") "True" $ T.unlines
+booleanTrue = primType P.True $ T.unlines
   [ "The 'True' boolean type."
   ]
 
 booleanFalse :: Declaration
-booleanFalse = primTypeOf (P.primSubName "Boolean") "False" $ T.unlines
+booleanFalse = primType P.False $ T.unlines
   [ "The 'False' boolean type."
   ]
 
+coercible :: Declaration
+coercible = primClass P.Coercible $ T.unlines
+  [ "Coercible is a two-parameter type class that has instances for types `a`"
+  , "and `b` if the compiler can infer that they have the same representation."
+  , "Coercible constraints are solved according to the following rules:"
+  , ""
+  , "* _reflexivity_, any type has the same representation as itself:"
+  , "`Coercible a a` holds."
+  , ""
+  , "* _symmetry_, if a type `a` can be coerced to some other type `b`, then `b`"
+  , "can also be coerced back to `a`: `Coercible a b` implies `Coercible b a`."
+  , ""
+  , "* _transitivity_, if a type `a` can be coerced to some other type `b` which"
+  , "can be coerced to some other type `c`, then `a` can also be coerced to `c`:"
+  , "`Coercible a b` and `Coercible b c` imply `Coercible a c`."
+  , ""
+  , "* Newtypes can be freely wrapped and unwrapped when their constructor is"
+  , "in scope:"
+  , ""
+  , "      newtype Age = Age Int"
+  , ""
+  , "`Coercible Int Age` and `Coercible Age Int` hold since `Age` has the same"
+  , "runtime representation than `Int`."
+  , ""
+  , "Newtype constructors have to be in scope to preserve abstraction. It's"
+  , "common to declare a newtype to encode some invariants (non emptiness of"
+  , "arrays with `Data.Array.NonEmpty.NonEmptyArray` for example), hide its"
+  , "constructor and export smart constructors instead. Without this restriction,"
+  , "the guarantees provided by such newtypes would be void."
+  , ""
+  , "* If none of the above are applicable, two types of kind `Type` may be"
+  , "coercible, but only if their heads are the same. For example,"
+  , "`Coercible (Maybe a) (Either a b)` does not hold because `Maybe` and"
+  , "`Either` are different. Those types don't share a common runtime"
+  , "representation so coercing between them would be unsafe. In addition their"
+  , "arguments may need to be identical or coercible, depending on the _roles_"
+  , "of the head's type parameters. Roles are documented in [the PureScript"
+  , "language reference](https://github.com/purescript/documentation/blob/master/language/Roles.md)."
+  , ""
+  , "Coercible being polykinded, we can also coerce more than types of kind `Type`:"
+  , ""
+  , "* Rows are coercible when they have the same labels, when the corresponding"
+  , "pairs of types are coercible and when their tails are coercible:"
+  , "`Coercible ( label :: a | r ) ( label :: b | s )` holds when"
+  , "`Coercible a b` and `Coercible r s` do. Closed rows cannot be coerced to"
+  , "open rows."
+  , ""
+  , "* Higher kinded types are coercible if they are coercible when fully"
+  , "saturated: `Coercible (f :: _ -> Type) (g :: _ -> Type)` holds when"
+  , "`Coercible (f a) (g a)` does."
+  , ""
+  , "This rule may seem puzzling since there is no term of type `_ -> Type` to"
+  , "apply `coerce` to, but it is necessary when coercing types with higher"
+  , "kinded parameters."
+  ]
+
 kindOrdering :: Declaration
-kindOrdering = primKindOf (P.primSubName "Ordering") "Ordering" $ T.unlines
-  [ "The `Ordering` kind represents the three possibilites of comparing two"
+kindOrdering = primType P.TypeOrdering $ T.unlines
+  [ "The `Ordering` kind represents the three possibilities of comparing two"
   , "types of the same kind: `LT` (less than), `EQ` (equal to), and"
   , "`GT` (greater than)."
   ]
 
 orderingLT :: Declaration
-orderingLT = primTypeOf (P.primSubName "Ordering") "LT" $ T.unlines
+orderingLT = primType P.LT $ T.unlines
   [ "The 'less than' ordering type."
   ]
 
 orderingEQ :: Declaration
-orderingEQ = primTypeOf (P.primSubName "Ordering") "EQ" $ T.unlines
+orderingEQ = primType P.EQ $ T.unlines
   [ "The 'equal to' ordering type."
   ]
 
 orderingGT :: Declaration
-orderingGT = primTypeOf (P.primSubName "Ordering") "GT" $ T.unlines
+orderingGT = primType P.GT $ T.unlines
   [ "The 'greater than' ordering type."
   ]
 
 union :: Declaration
-union = primClassOf (P.primSubName "Row") "Union" $ T.unlines
+union = primClass P.RowUnion $ T.unlines
   [ "The Union type class is used to compute the union of two rows of types"
   , "(left-biased, including duplicates)."
   , ""
@@ -397,66 +515,87 @@
   ]
 
 nub :: Declaration
-nub = primClassOf (P.primSubName "Row") "Nub" $ T.unlines
+nub = primClass P.RowNub $ T.unlines
   [ "The Nub type class is used to remove duplicate labels from rows."
   ]
 
 lacks :: Declaration
-lacks = primClassOf (P.primSubName "Row") "Lacks" $ T.unlines
+lacks = primClass P.RowLacks $ T.unlines
   [ "The Lacks type class asserts that a label does not occur in a given row."
   ]
 
 rowCons :: Declaration
-rowCons = primClassOf (P.primSubName "Row") "Cons" $ T.unlines
+rowCons = primClass P.RowCons $ T.unlines
   [ "The Cons type class is a 4-way relation which asserts that one row of"
   , "types can be obtained from another by inserting a new label/type pair on"
   , "the left."
   ]
 
 kindRowList :: Declaration
-kindRowList = primKindOf (P.primSubName "RowList") "RowList" $ T.unlines
+kindRowList = primType P.RowList $ T.unlines
   [ "A type level list representation of a row of types."
   ]
 
 rowListCons :: Declaration
-rowListCons = primTypeOf (P.primSubName "RowList") "Cons" $ T.unlines
+rowListCons = primType P.RowListCons $ T.unlines
   [ "Constructs a new `RowList` from a label, a type, and an existing tail"
   , "`RowList`.  E.g: `Cons \"x\" Int (Cons \"y\" Int Nil)`."
   ]
 
 rowListNil :: Declaration
-rowListNil = primTypeOf (P.primSubName "RowList") "Nil" $ T.unlines
+rowListNil = primType P.RowListNil $ T.unlines
   [ "The empty `RowList`."
   ]
 
 rowToList :: Declaration
-rowToList = primClassOf (P.primSubName "RowList") "RowToList" $ T.unlines
+rowToList = primClass P.RowToList $ T.unlines
   [ "Compiler solved type class for generating a `RowList` from a closed row"
   , "of types.  Entries are sorted by label and duplicates are preserved in"
   , "the order they appeared in the row."
   ]
 
 symbolAppend :: Declaration
-symbolAppend = primClassOf (P.primSubName "Symbol") "Append" $ T.unlines
+symbolAppend = primClass P.SymbolAppend $ T.unlines
   [ "Compiler solved type class for appending `Symbol`s together."
   ]
 
 symbolCompare :: Declaration
-symbolCompare = primClassOf (P.primSubName "Symbol") "Compare" $ T.unlines
+symbolCompare = primClass P.SymbolCompare $ T.unlines
   [ "Compiler solved type class for comparing two `Symbol`s."
   , "Produces an `Ordering`."
   ]
 
 symbolCons :: Declaration
-symbolCons = primClassOf (P.primSubName "Symbol") "Cons" $ T.unlines
+symbolCons = primClass P.SymbolCons $ T.unlines
   [ "Compiler solved type class for either splitting up a symbol into its"
   , "head and tail or for combining a head and tail into a new symbol."
   , "Requires the head to be a single character and the combined string"
   , "cannot be empty."
   ]
 
+intAdd :: Declaration
+intAdd = primClass P.IntAdd $ T.unlines
+  [ "Compiler solved type class for adding type-level `Int`s."
+  ]
+
+intCompare :: Declaration
+intCompare = primClass P.IntCompare $ T.unlines
+  [ "Compiler solved type class for comparing two type-level `Int`s."
+  , "Produces an `Ordering`."
+  ]
+
+intMul :: Declaration
+intMul = primClass P.IntMul $ T.unlines
+  [ "Compiler solved type class for multiplying type-level `Int`s."
+  ]
+
+intToString :: Declaration
+intToString = primClass P.IntToString $ T.unlines
+  [ "Compiler solved type class for converting a type-level `Int` into a type-level `String` (i.e. `Symbol`)."
+  ]
+
 fail :: Declaration
-fail = primClassOf (P.primSubName "TypeError") "Fail" $ T.unlines
+fail = primClass P.Fail $ T.unlines
   [ "The Fail type class is part of the custom type errors feature. To provide"
   , "a custom type error when someone tries to use a particular instance,"
   , "write that instance out with a Fail constraint."
@@ -466,7 +605,7 @@
   ]
 
 warn :: Declaration
-warn = primClassOf (P.primSubName "TypeError") "Warn" $ T.unlines
+warn = primClass P.Warn $ T.unlines
   [ "The Warn type class allows a custom compiler warning to be displayed."
   , ""
   , "For more information, see"
@@ -474,15 +613,15 @@
   ]
 
 kindDoc :: Declaration
-kindDoc = primKindOf (P.primSubName "TypeError") "Doc" $ T.unlines
+kindDoc = primType P.Doc $ T.unlines
   [ "`Doc` is the kind of type-level documents."
   , ""
-  , "This kind is used with the `Fail` and `Warn` type clases."
+  , "This kind is used with the `Fail` and `Warn` type classes."
   , "Build up a `Doc` with `Text`, `Quote`, `QuoteLabel`, `Beside`, and `Above`."
   ]
 
 textDoc :: Declaration
-textDoc = primTypeOf (P.primSubName "TypeError") "Text" $ T.unlines
+textDoc = primType P.Text $ T.unlines
   [ "The Text type constructor makes a Doc from a Symbol"
   , "to be used in a custom type error."
   , ""
@@ -491,7 +630,7 @@
   ]
 
 quoteDoc :: Declaration
-quoteDoc = primTypeOf (P.primSubName "TypeError") "Quote" $ T.unlines
+quoteDoc = primType P.Quote $ T.unlines
   [ "The Quote type constructor renders any concrete type as a Doc"
   , "to be used in a custom type error."
   , ""
@@ -500,7 +639,7 @@
   ]
 
 quoteLabelDoc :: Declaration
-quoteLabelDoc = primTypeOf (P.primSubName "TypeError") "QuoteLabel" $ T.unlines
+quoteLabelDoc = primType P.QuoteLabel $ T.unlines
   [ "The `QuoteLabel` type constructor will produce a `Doc` when given a `Symbol`. When the resulting `Doc` is rendered"
   , "for a `Warn` or `Fail` constraint, a syntactically valid label will be produced, escaping with quotes as needed."
   , ""
@@ -509,7 +648,7 @@
   ]
 
 besideDoc :: Declaration
-besideDoc = primTypeOf (P.primSubName "TypeError") "Beside" $ T.unlines
+besideDoc = primType P.Beside $ T.unlines
   [ "The Beside type constructor combines two Docs horizontally"
   , "to be used in a custom type error."
   , ""
@@ -518,7 +657,7 @@
   ]
 
 aboveDoc :: Declaration
-aboveDoc = primTypeOf (P.primSubName "TypeError") "Above" $ T.unlines
+aboveDoc = primType P.Above $ T.unlines
   [ "The Above type constructor combines two Docs vertically"
   , "in a custom type error."
   , ""
diff --git a/src/Language/PureScript/Docs/Render.hs b/src/Language/PureScript/Docs/Render.hs
--- a/src/Language/PureScript/Docs/Render.hs
+++ b/src/Language/PureScript/Docs/Render.hs
@@ -9,21 +9,30 @@
 
 module Language.PureScript.Docs.Render where
 
-import Prelude.Compat
+import Prelude
 
 import Data.Maybe (maybeToList)
 import Data.Text (Text)
-import qualified Data.Text as T
+import Data.Text qualified as T
 
 import Language.PureScript.Docs.RenderedCode
-import Language.PureScript.Docs.Types
-import Language.PureScript.Docs.Utils.MonoidExtras
+import Language.PureScript.Docs.Types (ChildDeclaration(..), ChildDeclarationInfo(..), Constraint', Declaration(..), DeclarationInfo(..), KindInfo(..), Type', isTypeClassMember, kindSignatureForKeyword)
+import Language.PureScript.Docs.Utils.MonoidExtras (mintersperse)
 
-import qualified Language.PureScript.AST as P
-import qualified Language.PureScript.Environment as P
-import qualified Language.PureScript.Names as P
-import qualified Language.PureScript.Types as P
+import Language.PureScript.AST qualified as P
+import Language.PureScript.Environment qualified as P
+import Language.PureScript.Names qualified as P
+import Language.PureScript.Types qualified as P
 
+renderKindSig :: Text -> KindInfo -> RenderedCode
+renderKindSig declTitle KindInfo{..} =
+  mintersperse sp
+      [ keyword $ kindSignatureForKeyword kiKeyword
+      , renderType (P.TypeConstructor () (notQualified declTitle))
+      , syntax "::"
+      , renderType kiKind
+      ]
+
 renderDeclaration :: Declaration -> RenderedCode
 renderDeclaration Declaration{..} =
   mintersperse sp $ case declInfo of
@@ -32,15 +41,18 @@
       , syntax "::"
       , renderType ty
       ]
-    DataDeclaration dtype args ->
+    DataDeclaration dtype args roles ->
       [ keyword (P.showDataDeclType dtype)
-      , renderType (typeApp declTitle args)
+      , renderTypeWithRole roles (typeApp declTitle args)
       ]
-    ExternDataDeclaration kind' ->
+
+    -- All FFI declarations, except for `Prim` modules' doc declarations,
+    -- will have been converted to `DataDeclaration`s by this point.
+    ExternDataDeclaration kind' _ ->
       [ keywordData
       , renderType (P.TypeConstructor () (notQualified declTitle))
       , syntax "::"
-      , renderKind kind'
+      , renderType kind'
       ]
     TypeSynonymDeclaration args ty ->
       [ keywordType
@@ -80,19 +92,13 @@
       , aliasName for declTitle
       ]
 
-    ExternKindDeclaration ->
-      [ keywordKind
-      , kind (notQualified declTitle)
-      ]
-
 renderChildDeclaration :: ChildDeclaration -> RenderedCode
 renderChildDeclaration ChildDeclaration{..} =
   mintersperse sp $ case cdeclInfo of
     ChildInstance constraints ty ->
       maybeToList (renderConstraints constraints) ++ [ renderType ty ]
     ChildDataConstructor args ->
-      [ dataCtor' cdeclTitle ]
-      ++ map renderTypeAtom args
+      dataCtor' cdeclTitle : map renderTypeAtom args
 
     ChildTypeClassMember ty ->
       [ ident' cdeclTitle
@@ -101,8 +107,8 @@
       ]
 
 renderConstraint :: Constraint' -> RenderedCode
-renderConstraint (P.Constraint ann pn tys _) =
-  renderType $ foldl (P.TypeApp ann) (P.TypeConstructor ann (fmap P.coerceProperName pn)) tys
+renderConstraint (P.Constraint ann pn kinds tys _) =
+  renderType $ foldl (P.TypeApp ann) (foldl (P.KindApp ann) (P.TypeConstructor ann (fmap P.coerceProperName pn)) kinds) tys
 
 renderConstraints :: [Constraint'] -> Maybe RenderedCode
 renderConstraints constraints
@@ -117,20 +123,20 @@
                  (map renderConstraint constraints)
 
 notQualified :: Text -> P.Qualified (P.ProperName a)
-notQualified = P.Qualified Nothing . P.ProperName
+notQualified = P.Qualified P.ByNullSourcePos . P.ProperName
 
 ident' :: Text -> RenderedCode
-ident' = ident . P.Qualified Nothing . P.Ident
+ident' = ident . P.Qualified P.ByNullSourcePos . P.Ident
 
 dataCtor' :: Text -> RenderedCode
 dataCtor' = dataCtor . notQualified
 
-typeApp :: Text -> [(Text, Maybe Kind')] -> Type'
+typeApp :: Text -> [(Text, Maybe Type')] -> Type'
 typeApp title typeArgs =
   foldl (P.TypeApp ())
         (P.TypeConstructor () (notQualified title))
         (map toTypeVar typeArgs)
 
-toTypeVar :: (Text, Maybe Kind') -> Type'
+toTypeVar :: (Text, Maybe Type') -> Type'
 toTypeVar (s, Nothing) = P.TypeVar () s
 toTypeVar (s, Just k) = P.KindedType () (P.TypeVar () s) k
diff --git a/src/Language/PureScript/Docs/RenderedCode.hs b/src/Language/PureScript/Docs/RenderedCode.hs
--- a/src/Language/PureScript/Docs/RenderedCode.hs
+++ b/src/Language/PureScript/Docs/RenderedCode.hs
@@ -6,4 +6,3 @@
 
 import Language.PureScript.Docs.RenderedCode.Types as RenderedCode
 import Language.PureScript.Docs.RenderedCode.RenderType as RenderedCode
-import Language.PureScript.Docs.RenderedCode.RenderKind as RenderedCode
diff --git a/src/Language/PureScript/Docs/RenderedCode/RenderKind.hs b/src/Language/PureScript/Docs/RenderedCode/RenderKind.hs
deleted file mode 100644
--- a/src/Language/PureScript/Docs/RenderedCode/RenderKind.hs
+++ /dev/null
@@ -1,57 +0,0 @@
-{-# LANGUAGE ScopedTypeVariables #-}
--- | Functions for producing RenderedCode values from PureScript Kind values.
---
-module Language.PureScript.Docs.RenderedCode.RenderKind
-  ( renderKind
-  ) where
-
--- TODO: This is pretty much copied from Language.PureScript.Pretty.Kinds.
--- Ideally we would unify the two.
-
-import Prelude.Compat
-
-import Control.Arrow (ArrowPlus(..))
-import Control.PatternArrows as PA
-
-import Data.Maybe (fromMaybe)
-import qualified Data.Text as T
-
-import Language.PureScript.Crash
-import Language.PureScript.Kinds
-
-import Language.PureScript.Docs.RenderedCode.Types
-
-typeLiterals :: Pattern () (Kind a) RenderedCode
-typeLiterals = mkPattern match
-  where
-  match (KUnknown _ u) =
-    Just $ typeVar $ T.cons 'k' (T.pack (show u))
-  match (NamedKind _ n) =
-    Just $ kind n
-  match _ = Nothing
-
-matchRow :: Pattern () (Kind a) ((), Kind a)
-matchRow = mkPattern match
-  where
-  match (Row _ k) = Just ((), k)
-  match _ = Nothing
-
-funKind :: Pattern () (Kind a) (Kind a, Kind a)
-funKind = mkPattern match
-  where
-  match (FunKind _ arg ret) = Just (arg, ret)
-  match _ = Nothing
-
--- | Generate RenderedCode value representing a Kind
-renderKind :: forall a. Kind a -> RenderedCode
-renderKind
-  = fromMaybe (internalError "Incomplete pattern")
-  . PA.pattern matchKind ()
-  where
-  matchKind :: Pattern () (Kind a) RenderedCode
-  matchKind = buildPrettyPrinter operators (typeLiterals <+> fmap parens matchKind)
-
-  operators :: OperatorTable () (Kind a) RenderedCode
-  operators =
-    OperatorTable [ [ Wrap matchRow $ \_ k -> syntax "#" <> sp <> k]
-                  , [ AssocR funKind $ \arg ret -> arg <> sp <> syntax "->" <> sp <> ret ] ]
diff --git a/src/Language/PureScript/Docs/RenderedCode/RenderType.hs b/src/Language/PureScript/Docs/RenderedCode/RenderType.hs
--- a/src/Language/PureScript/Docs/RenderedCode/RenderType.hs
+++ b/src/Language/PureScript/Docs/RenderedCode/RenderType.hs
@@ -1,40 +1,44 @@
+-- HLint is confused by the identifier `pattern` if PatternSynonyms is enabled.
+{-# LANGUAGE NoPatternSynonyms #-}
+
 -- | Functions for producing RenderedCode values from PureScript Type values.
 
 module Language.PureScript.Docs.RenderedCode.RenderType
   ( renderType
+  , renderTypeWithRole
   , renderType'
   , renderTypeAtom
   , renderTypeAtom'
   , renderRow
   ) where
 
-import Prelude.Compat
+import Prelude
 
 import Data.Maybe (fromMaybe)
-import Data.Text (Text)
+import Data.Text (Text, pack)
+import Data.List (uncons)
 
 import Control.Arrow ((<+>))
 import Control.PatternArrows as PA
 
-import Language.PureScript.Crash
-import Language.PureScript.Kinds
-import Language.PureScript.Label
-import Language.PureScript.Names
-import Language.PureScript.Pretty.Types
-import Language.PureScript.Types
+import Language.PureScript.Crash (internalError)
+import Language.PureScript.Label (Label)
+import Language.PureScript.Names (coerceProperName)
+import Language.PureScript.Pretty.Types (PrettyPrintConstraint, PrettyPrintType(..), convertPrettyPrintType, prettyPrintLabel)
+import Language.PureScript.Roles (Role, displayRole)
+import Language.PureScript.Types (Type, TypeVarVisibility, typeVarVisibilityPrefix)
 import Language.PureScript.PSString (prettyPrintString)
 
-import Language.PureScript.Docs.RenderedCode.Types
-import Language.PureScript.Docs.Utils.MonoidExtras
-import Language.PureScript.Docs.RenderedCode.RenderKind (renderKind)
+import Language.PureScript.Docs.RenderedCode.Types (RenderedCode, keywordForall, roleAnn, sp, syntax, typeCtor, typeOp, typeVar)
+import Language.PureScript.Docs.Utils.MonoidExtras (mintersperse)
 
 typeLiterals :: Pattern () PrettyPrintType RenderedCode
 typeLiterals = mkPattern match
   where
   match (PPTypeWildcard name) =
-    Just $ maybe (syntax "_") (syntax . ("?" <>)) name
-  match (PPTypeVar var) =
-    Just (typeVar var)
+    Just $ syntax $ maybe "_" ("?" <>) name
+  match (PPTypeVar var role) =
+    Just $ typeVar var <> roleAnn role
   match (PPRecord labels tail_) =
     Just $ mintersperse sp
               [ syntax "{"
@@ -51,12 +55,14 @@
     Just (typeOp n)
   match (PPTypeLevelString str) =
     Just (syntax (prettyPrintString str))
+  match (PPTypeLevelInt nat) =
+    Just (syntax $ pack $ show nat)
   match _ =
     Nothing
 
 renderConstraint :: PrettyPrintConstraint -> RenderedCode
-renderConstraint (pn, tys) =
-  let instApp = foldl PPTypeApp (PPTypeConstructor (fmap coerceProperName pn)) tys
+renderConstraint (pn, ks, tys) =
+  let instApp = foldl PPTypeApp (foldl (\a b -> PPTypeApp a (PPKindArg b)) (PPTypeConstructor (fmap coerceProperName pn)) ks) tys
   in  renderType' instApp
 
 renderConstraints :: PrettyPrintConstraint -> RenderedCode -> RenderedCode
@@ -94,16 +100,22 @@
   match (PPTypeApp f x) = Just (f, x)
   match _ = Nothing
 
+kindArg :: Pattern () PrettyPrintType ((), PrettyPrintType)
+kindArg = mkPattern match
+  where
+  match (PPKindArg ty) = Just ((), ty)
+  match _ = Nothing
+
 appliedFunction :: Pattern () PrettyPrintType (PrettyPrintType, PrettyPrintType)
 appliedFunction = mkPattern match
   where
   match (PPFunction arg ret) = Just (arg, ret)
   match _ = Nothing
 
-kinded :: Pattern () PrettyPrintType (Kind (), PrettyPrintType)
+kinded :: Pattern () PrettyPrintType (PrettyPrintType, PrettyPrintType)
 kinded = mkPattern match
   where
-  match (PPKindedType t k) = Just (k, t)
+  match (PPKindedType t k) = Just (t, k)
   match _ = Nothing
 
 constrained :: Pattern () PrettyPrintType (PrettyPrintConstraint, PrettyPrintType)
@@ -128,38 +140,108 @@
   where
   operators :: OperatorTable () PrettyPrintType RenderedCode
   operators =
-    OperatorTable [ [ AssocL typeApp $ \f x -> f <> sp <> x ]
+    OperatorTable [ [ Wrap kindArg $ \_ ty -> syntax "@" <> ty ]
+                  , [ AssocL typeApp $ \f x -> f <> sp <> x ]
                   , [ AssocR appliedFunction $ \arg ret -> mintersperse sp [arg, syntax "->", ret] ]
                   , [ Wrap constrained $ \deps ty -> renderConstraints deps ty ]
                   , [ Wrap forall_ $ \tyVars ty -> mconcat [ keywordForall, sp, renderTypeVars tyVars, syntax ".", sp, ty ] ]
-                  , [ Wrap kinded $ \k ty -> mintersperse sp [ty, syntax "::", renderKind k] ]
+                  , [ Wrap kinded $ \ty k -> mintersperse sp [renderType' ty, syntax "::", k] ]
                   , [ Wrap explicitParens $ \_ ty -> ty ]
                   ]
 
-forall_ :: Pattern () PrettyPrintType ([(Text, Maybe (Kind ()))], PrettyPrintType)
+forall_ :: Pattern () PrettyPrintType ([(TypeVarVisibility, Text, Maybe PrettyPrintType)], PrettyPrintType)
 forall_ = mkPattern match
   where
   match (PPForAll mbKindedIdents ty) = Just (mbKindedIdents, ty)
   match _ = Nothing
 
+renderTypeInternal :: (PrettyPrintType -> PrettyPrintType) -> Type a -> RenderedCode
+renderTypeInternal insertRolesIfAny =
+  renderType' . insertRolesIfAny . convertPrettyPrintType maxBound
+
 -- |
 -- Render code representing a Type
 --
 renderType :: Type a -> RenderedCode
-renderType = renderType' . convertPrettyPrintType maxBound
+renderType = renderTypeInternal id
 
+-- |
+-- Render code representing a Type
+-- but augment the `TypeVar`s with their `Role` if they have one
+--
+renderTypeWithRole :: [Role] -> Type a -> RenderedCode
+renderTypeWithRole = \case
+  [] -> renderType
+  roleList -> renderTypeInternal (addRole roleList [] . Left)
+  where
+  -- `data Foo first second = Foo` will produce
+  -- ```
+  -- PPTypeApp
+  --  (PPTypeApp (PPTypeConstructor fooName) (PPTypeVar "first" Nothing))
+  --  (PPTypeVar "second" Nothing)
+  -- ```
+  -- So, we recurse down the left side of `TypeApp` first before
+  -- recursing down the right side. To make this stack-safe,
+  -- we use a tail-recursive function with its own stack.
+  -- - Left = values that have not yet been examined and need
+  --          a role added to them (if any). There's still work "left" to do.
+  -- - Right = values that have been examined and now need to be
+  --           reassembled into their original value
+  addRole
+    :: [Role]
+    -> [Either PrettyPrintType PrettyPrintType]
+    -> Either PrettyPrintType PrettyPrintType
+    -> PrettyPrintType
+  addRole roles stack pp = case pp of
+    Left next -> case next of
+      PPTypeVar t Nothing
+        | Just (x, xs) <- uncons roles ->
+          addRole xs stack (Right $ PPTypeVar t (Just $ displayRole x))
+        | otherwise ->
+          internalError "addRole: invalid arguments - number of roles doesn't match number of type parameters"
+
+      PPTypeVar _ (Just _) ->
+        internalError "addRole: attempted to add a second role to a type parameter that already has one"
+
+      PPTypeApp leftSide rightSide -> do
+        -- push right-side to stack and continue recursing on left-side
+        addRole roles (Left rightSide : stack) (Left leftSide)
+
+      other ->
+        -- nothing to check, so move on
+        addRole roles stack (Right other)
+
+
+    pendingAssembly@(Right rightSideOrFinalValue) -> case stack of
+      (unfinishedRightSide@(Left _) : remaining) ->
+        -- We've finished recursing through the left-side of a `TypeApp`.
+        -- Now we'll recurse through the right-side.
+        -- We push `pendingAssembly` onto the stack so we can assemble
+        -- the `PPTypeApp` together once it's right-side is done.
+        addRole roles (pendingAssembly : remaining) unfinishedRightSide
+
+      (Right leftSide : remaining) ->
+        -- We've finished recursing through the right-side of a `TypeApp`
+        -- We'll rebulid it and wrap it in `Right` so any other higher-level
+        -- `TypeApp`s can be reassembled now, too.
+        addRole roles remaining (Right (PPTypeApp leftSide rightSideOrFinalValue))
+
+      [] ->
+        -- We've reassembled everything. It's time to return.
+        rightSideOrFinalValue
+
 renderType' :: PrettyPrintType -> RenderedCode
 renderType'
   = fromMaybe (internalError "Incomplete pattern")
   . PA.pattern matchType ()
 
-renderTypeVars :: [(Text, Maybe (Kind a))] -> RenderedCode
+renderTypeVars :: [(TypeVarVisibility, Text, Maybe PrettyPrintType)] -> RenderedCode
 renderTypeVars tyVars = mintersperse sp (map renderTypeVar tyVars)
 
-renderTypeVar :: (Text, Maybe (Kind a)) -> RenderedCode
-renderTypeVar (v, mbK) = case mbK of
-  Nothing -> typeVar v
-  Just k -> mintersperse sp [ mconcat [syntax "(", typeVar v], syntax "::", mconcat [renderKind k, syntax ")"] ]
+renderTypeVar :: (TypeVarVisibility, Text, Maybe PrettyPrintType) -> RenderedCode
+renderTypeVar (vis, v, mbK) = case mbK of
+  Nothing -> syntax (typeVarVisibilityPrefix vis) <> typeVar v
+  Just k -> mintersperse sp [ mconcat [syntax "(", syntax $ typeVarVisibilityPrefix vis, typeVar v], syntax "::", mconcat [renderType' k, syntax ")"] ]
 
 -- |
 -- Render code representing a Type, as it should appear inside parentheses
diff --git a/src/Language/PureScript/Docs/RenderedCode/Types.hs b/src/Language/PureScript/Docs/RenderedCode/Types.hs
--- a/src/Language/PureScript/Docs/RenderedCode/Types.hs
+++ b/src/Language/PureScript/Docs/RenderedCode/Types.hs
@@ -1,64 +1,52 @@
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE DeriveGeneric #-}
-
 -- | Data types and functions for representing a simplified form of PureScript
 -- code, intended for use in e.g. HTML documentation.
 
 module Language.PureScript.Docs.RenderedCode.Types
  ( RenderedCodeElement(..)
- , asRenderedCodeElement
  , ContainingModule(..)
  , asContainingModule
- , containingModuleToMaybe
  , maybeToContainingModule
- , fromContainingModule
  , fromQualified
  , Namespace(..)
  , Link(..)
  , FixityAlias
  , RenderedCode
- , asRenderedCode
  , outputWith
  , sp
- , parens
  , syntax
  , keyword
  , keywordForall
  , keywordData
- , keywordNewtype
  , keywordType
  , keywordClass
- , keywordInstance
  , keywordWhere
  , keywordFixity
- , keywordKind
  , keywordAs
  , ident
  , dataCtor
  , typeCtor
  , typeOp
  , typeVar
- , kind
+ , roleAnn
  , alias
  , aliasName
  ) where
 
-import Prelude.Compat
+import Prelude
 import GHC.Generics (Generic)
 
 import Control.DeepSeq (NFData)
 import Control.Monad.Error.Class (MonadError(..))
 
-import Data.Aeson.BetterErrors (Parse, nth, withText, withValue, toAesonParser, perhaps, asText, eachInArray)
-import qualified Data.Aeson as A
+import Data.Aeson.BetterErrors (Parse, nth, withText, withValue, toAesonParser, perhaps, asText)
+import Data.Aeson qualified as A
 import Data.Text (Text)
-import qualified Data.Text as T
-import qualified Data.ByteString.Lazy as BS
-import qualified Data.Text.Encoding as TE
+import Data.Text qualified as T
+import Data.ByteString.Lazy qualified as BS
+import Data.Text.Encoding qualified as TE
 
-import Language.PureScript.Names
+import Language.PureScript.Names (pattern ByNullSourcePos, Ident(..), ModuleName, OpName(..), OpNameType(..), ProperName(..), ProperNameType(..), Qualified(..), QualifiedBy(..), moduleNameFromString, runIdent, runModuleName)
 import Language.PureScript.AST (Associativity(..))
-import Language.PureScript.Crash (internalError)
 
 -- | Given a list of actions, attempt them all, returning the first success.
 -- If all the actions fail, 'tryAll' returns the first argument.
@@ -128,24 +116,9 @@
 maybeToContainingModule Nothing = ThisModule
 maybeToContainingModule (Just mn) = OtherModule mn
 
--- |
--- Convert a 'ContainingModule' to a 'Maybe' 'ModuleName', using the obvious
--- isomorphism.
---
-containingModuleToMaybe :: ContainingModule -> Maybe ModuleName
-containingModuleToMaybe ThisModule = Nothing
-containingModuleToMaybe (OtherModule mn) = Just mn
-
--- |
--- A version of 'fromMaybe' for 'ContainingModule' values.
---
-fromContainingModule :: ModuleName -> ContainingModule -> ModuleName
-fromContainingModule def ThisModule = def
-fromContainingModule _ (OtherModule mn) = mn
-
 fromQualified :: Qualified a -> (ContainingModule, a)
-fromQualified (Qualified mn x) =
-  (maybeToContainingModule mn, x)
+fromQualified (Qualified (ByModuleName mn) x) = (OtherModule mn, x)
+fromQualified (Qualified _ x) = (ThisModule, x)
 
 data Link
   = NoLink
@@ -170,7 +143,6 @@
 data Namespace
   = ValueLevel
   | TypeLevel
-  | KindLevel
   deriving (Show, Eq, Ord, Generic)
 
 instance NFData Namespace
@@ -184,7 +156,6 @@
     [ withText $ \case
         "ValueLevel" -> Right ValueLevel
         "TypeLevel" -> Right TypeLevel
-        "KindLevel" -> Right KindLevel
         _ -> Left ""
     ]
 
@@ -203,6 +174,7 @@
   -- namespace (value, type, or kind). Note that this is not related to the
   -- kind called Symbol for type-level strings.
   | Symbol Namespace Text Link
+  | Role Text
   deriving (Show, Eq, Ord)
 
 instance A.ToJSON RenderedCodeElement where
@@ -214,32 +186,8 @@
     A.toJSON ["space" :: Text]
   toJSON (Symbol ns str link) =
     A.toJSON ["symbol", A.toJSON ns, A.toJSON str, A.toJSON link]
-
-asRenderedCodeElement :: Parse Text RenderedCodeElement
-asRenderedCodeElement =
-  tryParse "RenderedCodeElement" $
-    [ a Syntax "syntax"
-    , a Keyword "keyword"
-    , asSpace
-    , asSymbol
-    ] ++ backwardsCompat
-  where
-  a ctor' ctorStr = firstEq ctorStr (ctor' <$> nth 1 asText)
-  asSymbol = firstEq "symbol" (Symbol <$> nth 1 asNamespace <*> nth 2 asText <*> nth 3 asLink)
-  asSpace = firstEq "space" (pure Space)
-
-  -- These will make some mistakes e.g. treating data constructors as types,
-  -- because the old code did not save information which is necessary to
-  -- distinguish these cases. This is the best we can do.
-  backwardsCompat =
-    [ oldAsIdent
-    , oldAsCtor
-    , oldAsKind
-    ]
-
-  oldAsIdent = firstEq "ident" (Symbol ValueLevel <$> nth 1 asText <*> nth 2 (Link <$> asContainingModule))
-  oldAsCtor = firstEq "ctor" (Symbol TypeLevel <$> nth 1 asText <*> nth 2 (Link <$> asContainingModule))
-  oldAsKind = firstEq "kind" (Symbol KindLevel <$> nth 1 asText <*> pure (Link ThisModule))
+  toJSON (Role role) =
+    A.toJSON ["role", role]
 
 -- |
 -- A type representing a highly simplified version of PureScript code, intended
@@ -252,9 +200,6 @@
 instance A.ToJSON RenderedCode where
   toJSON (RC elems) = A.toJSON elems
 
-asRenderedCode :: Parse Text RenderedCode
-asRenderedCode = RC <$> eachInArray asRenderedCodeElement
-
 -- |
 -- This function allows conversion of a 'RenderedCode' value into a value of
 -- some other type (for example, plain text, or HTML). The first argument
@@ -270,11 +215,6 @@
 sp :: RenderedCode
 sp = RC [Space]
 
--- |
--- Wrap a RenderedCode value in parens.
-parens :: RenderedCode -> RenderedCode
-parens x = syntax "(" <> x <> syntax ")"
-
 -- possible TODO: instead of this function, export RenderedCode values for
 -- each syntax element, eg syntaxArr (== syntax "->"), syntaxLBrace,
 -- syntaxRBrace, etc.
@@ -290,18 +230,12 @@
 keywordData :: RenderedCode
 keywordData = keyword "data"
 
-keywordNewtype :: RenderedCode
-keywordNewtype = keyword "newtype"
-
 keywordType :: RenderedCode
 keywordType = keyword "type"
 
 keywordClass :: RenderedCode
 keywordClass = keyword "class"
 
-keywordInstance :: RenderedCode
-keywordInstance = keyword "instance"
-
 keywordWhere :: RenderedCode
 keywordWhere = keyword "where"
 
@@ -310,9 +244,6 @@
 keywordFixity Infixr = keyword "infixr"
 keywordFixity Infix = keyword "infix"
 
-keywordKind :: RenderedCode
-keywordKind = keyword "kind"
-
 keywordAs :: RenderedCode
 keywordAs = keyword "as"
 
@@ -335,9 +266,13 @@
 typeVar :: Text -> RenderedCode
 typeVar x = RC [Symbol TypeLevel x NoLink]
 
-kind :: Qualified (ProperName 'KindName) -> RenderedCode
-kind (fromQualified -> (mn, name)) =
-  RC [Symbol KindLevel (runProperName name) (Link mn)]
+roleAnn :: Maybe Text -> RenderedCode
+roleAnn = RC . maybe [] renderRole
+  where
+  renderRole = \case
+    "nominal" -> [Role "nominal"]
+    "phantom" -> [Role "phantom"]
+    _ -> []
 
 type FixityAlias = Qualified (Either (ProperName 'TypeName) (Either Ident (ProperName 'ConstructorName)))
 
@@ -361,11 +296,9 @@
   in
     case ns of
       ValueLevel ->
-        ident (Qualified Nothing (Ident name))
+        ident (Qualified ByNullSourcePos (Ident name))
       TypeLevel ->
-        typeCtor (Qualified Nothing (ProperName name))
-      KindLevel ->
-        internalError "Kind aliases are not supported"
+        typeCtor (Qualified ByNullSourcePos (ProperName name))
 
 -- | Converts a FixityAlias into a different representation which is more
 -- useful to other functions in this module.
diff --git a/src/Language/PureScript/Docs/Tags.hs b/src/Language/PureScript/Docs/Tags.hs
--- a/src/Language/PureScript/Docs/Tags.hs
+++ b/src/Language/PureScript/Docs/Tags.hs
@@ -6,19 +6,19 @@
 
 import Prelude
 
-import           Control.Arrow (first)
-import           Data.List (sort)
-import           Data.Maybe (mapMaybe)
-import qualified Data.Text as T
+import Control.Arrow (first)
+import Data.List (sort)
+import Data.Maybe (mapMaybe)
+import Data.Text qualified as T
 import Language.PureScript.AST (SourceSpan, sourcePosLine, spanStart)
-import Language.PureScript.Docs.Types
+import Language.PureScript.Docs.Types (ChildDeclaration(..), Declaration(..), Module(..))
 
 tags :: Module -> [(String, Int)]
 tags = map (first T.unpack) . concatMap dtags . modDeclarations
   where
     dtags :: Declaration -> [(T.Text, Int)]
     dtags decl = case declSourceSpan decl of
-      Just ss -> (declTitle decl, pos ss):(mapMaybe subtag $ declChildren decl)
+      Just ss -> (declTitle decl, pos ss):mapMaybe subtag (declChildren decl)
       Nothing -> mapMaybe subtag $ declChildren decl
 
     subtag :: ChildDeclaration -> Maybe (T.Text, Int)
diff --git a/src/Language/PureScript/Docs/Types.hs b/src/Language/PureScript/Docs/Types.hs
--- a/src/Language/PureScript/Docs/Types.hs
+++ b/src/Language/PureScript/Docs/Types.hs
@@ -1,52 +1,48 @@
-{-# LANGUAGE DeriveGeneric #-}
-
 module Language.PureScript.Docs.Types
   ( module Language.PureScript.Docs.Types
   , module ReExports
   )
   where
 
-import Protolude hiding (to, from)
+import Protolude hiding (to, from, unlines)
 import Prelude (String, unlines, lookup)
 
-import GHC.Generics (Generic)
-import Control.DeepSeq (NFData)
 import Control.Arrow ((***))
 
 import Data.Aeson ((.=))
+import Data.Aeson.Key qualified as A.Key
 import Data.Aeson.BetterErrors
-  (Parse, ParseError, parse, keyOrDefault, throwCustomError, key, asText,
+  (Parse, keyOrDefault, throwCustomError, key, asText,
    keyMay, withString, eachInArray, asNull, (.!), toAesonParser, toAesonParser',
    fromAesonParser, perhaps, withText, asIntegral, nth, eachInObjectWithKey,
    asString)
-import qualified Data.Map as Map
+import Data.Map qualified as Map
 import Data.Time.Clock (UTCTime)
-import qualified Data.Time.Format as TimeFormat
-import Data.Version
-import qualified Data.Aeson as A
-import qualified Data.Text as T
-import qualified Data.Vector as V
-
-import qualified Language.PureScript.AST as P
-import qualified Language.PureScript.Crash as P
-import qualified Language.PureScript.Environment as P
-import qualified Language.PureScript.Kinds as P
-import qualified Language.PureScript.Names as P
-import qualified Language.PureScript.Types as P
-import qualified Paths_purescript as Paths
+import Data.Time.Format qualified as TimeFormat
+import Data.Version (Version(..), showVersion)
+import Data.Aeson qualified as A
+import Data.Text qualified as T
+import Data.Vector qualified as V
 
-import Text.ParserCombinators.ReadP (readP_to_S)
+import Language.PureScript.AST qualified as P
+import Language.PureScript.CoreFn.FromJSON qualified as P
+import Language.PureScript.Crash qualified as P
+import Language.PureScript.Environment qualified as P
+import Language.PureScript.Names qualified as P
+import Language.PureScript.Roles qualified as P
+import Language.PureScript.Types qualified as P
+import Paths_purescript qualified as Paths
 
-import Web.Bower.PackageMeta hiding (Version, displayError)
+import Web.Bower.PackageMeta (BowerError, PackageMeta(..), PackageName, asPackageMeta, parsePackageName, runPackageName, showBowerError)
 
 import Language.PureScript.Docs.RenderedCode as ReExports
-  (RenderedCode, asRenderedCode,
+  (RenderedCode,
    ContainingModule(..), asContainingModule,
-   RenderedCodeElement(..), asRenderedCodeElement,
+   RenderedCodeElement(..),
    Namespace(..), FixityAlias)
+import Language.PureScript.Publish.Registry.Compat (PursJsonError, showPursJsonError)
 
 type Type' = P.Type ()
-type Kind' = P.Kind ()
 type Constraint' = P.Constraint ()
 
 --------------------
@@ -81,8 +77,18 @@
 type UploadedPackage = Package NotYetKnown
 type VerifiedPackage = Package GithubUser
 
-type ManifestError = BowerError
+data ManifestError
+  = BowerManifest BowerError
+  | PursManifest PursJsonError
+  deriving (Show, Eq, Ord, Generic)
 
+instance NFData ManifestError
+
+showManifestError :: ManifestError -> Text
+showManifestError = \case
+  BowerManifest err -> showBowerError err
+  PursManifest err -> showPursJsonError err
+
 verifyPackage :: GithubUser -> UploadedPackage -> VerifiedPackage
 verifyPackage verifiedUser Package{..} =
   Package pkgMeta
@@ -139,6 +145,7 @@
   , declSourceSpan :: Maybe P.SourceSpan
   , declChildren   :: [ChildDeclaration]
   , declInfo       :: DeclarationInfo
+  , declKind       :: Maybe KindInfo
   }
   deriving (Show, Eq, Ord, Generic)
 
@@ -164,39 +171,45 @@
   -- newtype) and its type arguments. Constructors are represented as child
   -- declarations.
   --
-  | DataDeclaration P.DataDeclType [(Text, Maybe Kind')]
+  | DataDeclaration P.DataDeclType [(Text, Maybe Type')] [P.Role]
 
   -- |
   -- A data type foreign import, with its kind.
   --
-  | ExternDataDeclaration Kind'
+  | ExternDataDeclaration Type' [P.Role]
 
   -- |
   -- A type synonym, with its type arguments and its type.
   --
-  | TypeSynonymDeclaration [(Text, Maybe Kind')] Type'
+  | TypeSynonymDeclaration [(Text, Maybe Type')] Type'
 
   -- |
   -- A type class, with its type arguments, its superclasses and functional
   -- dependencies. Instances and members are represented as child declarations.
   --
-  | TypeClassDeclaration [(Text, Maybe Kind')] [Constraint'] [([Text], [Text])]
+  | TypeClassDeclaration [(Text, Maybe Type')] [Constraint'] [([Text], [Text])]
 
   -- |
   -- An operator alias declaration, with the member the alias is for and the
   -- operator's fixity.
   --
   | AliasDeclaration P.Fixity FixityAlias
-
-  -- |
-  -- A kind declaration
-  --
-  | ExternKindDeclaration
   deriving (Show, Eq, Ord, Generic)
 
 instance NFData DeclarationInfo
 
-convertFundepsToStrings :: [(Text, Maybe Kind')] -> [P.FunctionalDependency] -> [([Text], [Text])]
+-- |
+-- Wraps enough information to properly render the kind signature
+-- of a data/newtype/type/class declaration.
+data KindInfo = KindInfo
+  { kiKeyword :: P.KindSignatureFor
+  , kiKind :: Type'
+  }
+  deriving (Show, Eq, Ord, Generic)
+
+instance NFData KindInfo
+
+convertFundepsToStrings :: [(Text, Maybe Type')] -> [P.FunctionalDependency] -> [([Text], [Text])]
 convertFundepsToStrings args fundeps =
   map (\(P.FunctionalDependency from to) -> toArgs from to) fundeps
   where
@@ -216,12 +229,11 @@
 
 declInfoToString :: DeclarationInfo -> Text
 declInfoToString (ValueDeclaration _) = "value"
-declInfoToString (DataDeclaration _ _) = "data"
-declInfoToString (ExternDataDeclaration _) = "externData"
+declInfoToString (DataDeclaration _ _ _) = "data"
+declInfoToString (ExternDataDeclaration _ _) = "externData"
 declInfoToString (TypeSynonymDeclaration _ _) = "typeSynonym"
 declInfoToString (TypeClassDeclaration _ _ _) = "typeClass"
 declInfoToString (AliasDeclaration _ _) = "alias"
-declInfoToString ExternKindDeclaration = "kind"
 
 declInfoNamespace :: DeclarationInfo -> Namespace
 declInfoNamespace = \case
@@ -237,8 +249,6 @@
     TypeLevel
   AliasDeclaration _ alias ->
     either (const TypeLevel) (const ValueLevel) (P.disqualify alias)
-  ExternKindDeclaration{} ->
-    KindLevel
 
 isTypeClass :: Declaration -> Bool
 isTypeClass Declaration{..} =
@@ -272,12 +282,6 @@
     AliasDeclaration _ (P.Qualified _ d) -> isLeft d
     _ -> False
 
-isKind :: Declaration -> Bool
-isKind Declaration{..} =
-  case declInfo of
-    ExternKindDeclaration{} -> True
-    _ -> False
-
 -- | Discard any children which do not satisfy the given predicate.
 filterChildren :: (ChildDeclaration -> Bool) -> Declaration -> Declaration
 filterChildren p decl =
@@ -368,7 +372,9 @@
   | InvalidFixity
   | InvalidKind Text
   | InvalidDataDeclType Text
+  | InvalidKindSignatureFor Text
   | InvalidTime
+  | InvalidRole Text
   deriving (Show, Eq, Ord, Generic)
 
 instance NFData PackageError
@@ -384,13 +390,6 @@
   fmap f (Local x) = Local (f x)
   fmap f (FromDep pkgName x) = FromDep pkgName (f x)
 
-takeLocal :: InPackage a -> Maybe a
-takeLocal (Local a) = Just a
-takeLocal _ = Nothing
-
-takeLocals :: [InPackage a] -> [a]
-takeLocals = mapMaybe takeLocal
-
 ignorePackage :: InPackage a -> a
 ignorePackage (Local x) = x
 ignorePackage (FromDep _ x) = x
@@ -485,12 +484,6 @@
 ----------------------
 -- Parsing
 
-parseUploadedPackage :: Version -> LByteString -> Either (ParseError PackageError) UploadedPackage
-parseUploadedPackage minVersion = parse $ asUploadedPackage minVersion
-
-parseVerifiedPackage :: Version -> LByteString -> Either (ParseError PackageError) VerifiedPackage
-parseVerifiedPackage minVersion = parse $ asVerifiedPackage minVersion
-
 asPackage :: Version -> (forall e. Parse e a) -> Parse PackageError (Package a)
 asPackage minimumVersion uploader = do
   -- If the compilerVersion key is missing, we can be sure that it was produced
@@ -500,7 +493,7 @@
   when (compilerVersion < minimumVersion)
     (throwCustomError $ CompilerTooOld minimumVersion compilerVersion)
 
-  Package <$> key "packageMeta" asPackageMeta .! ErrorInPackageMeta
+  Package <$> key "packageMeta" asPackageMeta .! (ErrorInPackageMeta . BowerManifest)
           <*> key "version" asVersion
           <*> key "versionTag" asText
           <*> keyMay "tagTime" (withString parseTimeEither)
@@ -528,9 +521,6 @@
 instance A.FromJSON NotYetKnown where
   parseJSON = toAesonParser' asNotYetKnown
 
-asVerifiedPackage :: Version -> Parse PackageError VerifiedPackage
-asVerifiedPackage minVersion = asPackage minVersion asGithubUser
-
 displayPackageError :: PackageError -> Text
 displayPackageError e = case e of
   CompilerTooOld minV usedV ->
@@ -538,7 +528,7 @@
     <> " of the compiler, but it appears that " <> T.pack (showVersion usedV)
     <> " was used."
   ErrorInPackageMeta err ->
-    "Error in package metadata: " <> showBowerError err
+    "Error in package metadata: " <> showManifestError err
   InvalidVersion ->
     "Invalid version"
   InvalidDeclarationType str ->
@@ -551,8 +541,12 @@
     "Invalid kind: \"" <> str <> "\""
   InvalidDataDeclType str ->
     "Invalid data declaration type: \"" <> str <> "\""
+  InvalidKindSignatureFor str ->
+    "Invalid kind signature keyword: \"" <> str <> "\""
   InvalidTime ->
     "Invalid time"
+  InvalidRole str ->
+    "Invalid role keyword: \"" <> str <> "\""
 
 instance A.FromJSON a => A.FromJSON (Package a) where
   parseJSON = toAesonParser displayPackageError
@@ -565,13 +559,7 @@
   parseJSON = toAesonParser' asGithubUser
 
 asVersion :: Parse PackageError Version
-asVersion = withString (maybe (Left InvalidVersion) Right . parseVersion')
-
-parseVersion' :: String -> Maybe Version
-parseVersion' str =
-  case filter (null . snd) $ readP_to_S parseVersion str of
-    [(vers, "")] -> Just vers
-    _            -> Nothing
+asVersion = withString (maybe (Left InvalidVersion) Right . P.parseVersion')
 
 asModule :: Parse PackageError Module
 asModule =
@@ -587,6 +575,7 @@
               <*> key "sourceSpan" (perhaps asSourceSpan)
               <*> key "children" (eachInArray asChildDeclaration)
               <*> key "info" asDeclarationInfo
+              <*> keyOrDefault "kind" Nothing (perhaps asKindInfo)
 
 asReExport :: Parse PackageError (InPackage P.ModuleName, [Declaration])
 asReExport =
@@ -607,7 +596,7 @@
 
 asInPackage :: Parse ManifestError a -> Parse ManifestError (InPackage a)
 asInPackage inner =
-  build <$> key "package" (perhaps (withText parsePackageName))
+  build <$> key "package" (perhaps (withText (mapLeft BowerManifest . parsePackageName)))
         <*> key "item" inner
   where
   build Nothing = Local
@@ -640,8 +629,10 @@
     "data" ->
       DataDeclaration <$> key "dataDeclType" asDataDeclType
                       <*> key "typeArguments" asTypeArguments
+                      <*> keyOrDefault "roles" [] (eachInArray asRole)
     "externData" ->
-      ExternDataDeclaration <$> key "kind" asKind
+      ExternDataDeclaration <$> key "kind" asType
+                            <*> keyOrDefault "roles" [] (eachInArray asRole)
     "typeSynonym" ->
       TypeSynonymDeclaration <$> key "arguments" asTypeArguments
                              <*> key "type" asType
@@ -652,18 +643,38 @@
     "alias" ->
       AliasDeclaration <$> key "fixity" asFixity
                        <*> key "alias" asFixityAlias
+    -- Backwards compat: kinds are extern data
     "kind" ->
-      pure ExternKindDeclaration
+      pure $ ExternDataDeclaration (P.kindType $> ()) []
     other ->
       throwCustomError (InvalidDeclarationType other)
 
-asTypeArguments :: Parse PackageError [(Text, Maybe Kind')]
+asKindInfo :: Parse PackageError KindInfo
+asKindInfo =
+  KindInfo <$> key "keyword" asKindSignatureFor
+           <*> key "kind" asType
+
+asKindSignatureFor :: Parse PackageError P.KindSignatureFor
+asKindSignatureFor =
+  withText $ \case
+    "data" -> Right P.DataSig
+    "newtype" -> Right P.NewtypeSig
+    "class" -> Right P.ClassSig
+    "type" -> Right P.TypeSynonymSig
+    x -> Left (InvalidKindSignatureFor x)
+
+asTypeArguments :: Parse PackageError [(Text, Maybe Type')]
 asTypeArguments = eachInArray asTypeArgument
   where
-  asTypeArgument = (,) <$> nth 0 asText <*> nth 1 (perhaps asKind)
+  asTypeArgument = (,) <$> nth 0 asText <*> nth 1 (perhaps asType)
 
-asKind :: Parse PackageError Kind'
-asKind = fromAesonParser .! InvalidKind
+asRole :: Parse PackageError P.Role
+asRole =
+  withText $ \case
+    "Representational" -> Right P.Representational
+    "Nominal" -> Right P.Nominal
+    "Phantom" -> Right P.Phantom
+    other -> Left (InvalidRole other)
 
 asType :: Parse e Type'
 asType = fromAesonParser
@@ -675,7 +686,7 @@
 
 asDataDeclType :: Parse PackageError P.DataDeclType
 asDataDeclType =
-  withText $ \s -> case s of
+  withText $ \case
     "data"    -> Right P.Data
     "newtype" -> Right P.Newtype
     other     -> Left (InvalidDataDeclType other)
@@ -707,18 +718,13 @@
 
 asConstraint :: Parse PackageError Constraint'
 asConstraint = P.Constraint () <$> key "constraintClass" asQualifiedProperName
+                               <*> keyOrDefault "constraintKindArgs" [] (eachInArray asType)
                                <*> key "constraintArgs" (eachInArray asType)
                                <*> pure Nothing
 
 asQualifiedProperName :: Parse e (P.Qualified (P.ProperName a))
 asQualifiedProperName = fromAesonParser
 
-asQualifiedIdent :: Parse e (P.Qualified P.Ident)
-asQualifiedIdent = fromAesonParser
-
-asSourceAnn :: Parse e (P.SourceAnn)
-asSourceAnn = fromAesonParser
-
 asModuleMap :: Parse PackageError (Map P.ModuleName PackageName)
 asModuleMap =
   Map.fromList <$>
@@ -746,7 +752,7 @@
 
 parsePackageName' :: Text -> Either PackageError PackageName
 parsePackageName' =
-  mapLeft ErrorInPackageMeta . parsePackageName
+  mapLeft ErrorInPackageMeta . (mapLeft BowerManifest . parsePackageName)
 
 mapLeft :: (a -> a') -> Either a b -> Either a' b
 mapLeft f (Left x) = Left (f x)
@@ -771,10 +777,10 @@
       , "version"              .= showVersion pkgVersion
       , "versionTag"           .= pkgVersionTag
       , "modules"              .= pkgModules
-      , "moduleMap"            .= assocListToJSON P.runModuleName
+      , "moduleMap"            .= assocListToJSON (A.Key.fromText . P.runModuleName)
                                                   runPackageName
                                                   (Map.toList pkgModuleMap)
-      , "resolvedDependencies" .= assocListToJSON runPackageName
+      , "resolvedDependencies" .= assocListToJSON (A.Key.fromText . runPackageName)
                                                   (T.pack . showVersion)
                                                   pkgResolvedDependencies
       , "github"               .= pkgGithub
@@ -805,8 +811,22 @@
              , "sourceSpan" .= declSourceSpan
              , "children"   .= declChildren
              , "info"       .= declInfo
+             , "kind"       .= declKind
              ]
 
+instance A.ToJSON KindInfo where
+ toJSON KindInfo{..} =
+   A.object [ "keyword" .= kindSignatureForKeyword kiKeyword
+            , "kind"    .= kiKind
+            ]
+
+kindSignatureForKeyword :: P.KindSignatureFor -> Text
+kindSignatureForKeyword = \case
+  P.DataSig -> "data"
+  P.NewtypeSig -> "newtype"
+  P.TypeSynonymSig -> "type"
+  P.ClassSig -> "class"
+
 instance A.ToJSON ChildDeclaration where
   toJSON ChildDeclaration{..} =
     A.object [ "title"      .= cdeclTitle
@@ -820,12 +840,11 @@
     where
     props = case info of
       ValueDeclaration ty -> ["type" .= ty]
-      DataDeclaration ty args -> ["dataDeclType" .= ty, "typeArguments" .= args]
-      ExternDataDeclaration kind -> ["kind" .= kind]
+      DataDeclaration ty args roles -> ["dataDeclType" .= ty, "typeArguments" .= args, "roles" .= roles]
+      ExternDataDeclaration kind roles -> ["kind" .= kind, "roles" .= roles]
       TypeSynonymDeclaration args ty -> ["arguments" .= args, "type" .= ty]
       TypeClassDeclaration args super fundeps -> ["arguments" .= args, "superclasses" .= super, "fundeps" .= fundeps]
       AliasDeclaration fixity alias -> ["fixity" .= fixity, "alias" .= alias]
-      ExternKindDeclaration -> []
 
 instance A.ToJSON ChildDeclarationInfo where
   toJSON info = A.object $ "declType" .= childDeclInfoToString info : props
@@ -847,7 +866,7 @@
 --
 -- For example:
 -- @assocListToJSON T.pack T.pack [("a", "b")]@ will give @{"a": "b"}@.
-assocListToJSON :: (a -> Text) -> (b -> Text) -> [(a, b)] -> A.Value
+assocListToJSON :: (a -> A.Key) -> (b -> Text) -> [(a, b)] -> A.Value
 assocListToJSON f g xs = A.object (map (uncurry (.=) . (f *** g)) xs)
 
 instance A.ToJSON a => A.ToJSON (InPackage a) where
diff --git a/src/Language/PureScript/Docs/Utils/MonoidExtras.hs b/src/Language/PureScript/Docs/Utils/MonoidExtras.hs
--- a/src/Language/PureScript/Docs/Utils/MonoidExtras.hs
+++ b/src/Language/PureScript/Docs/Utils/MonoidExtras.hs
@@ -1,6 +1,6 @@
 module Language.PureScript.Docs.Utils.MonoidExtras where
 
-import Data.Monoid
+import Data.Monoid (Monoid(..), (<>))
 
 mintersperse :: (Monoid m) => m -> [m] -> m
 mintersperse _ []       = mempty
diff --git a/src/Language/PureScript/Environment.hs b/src/Language/PureScript/Environment.hs
--- a/src/Language/PureScript/Environment.hs
+++ b/src/Language/PureScript/Environment.hs
@@ -1,63 +1,63 @@
-{-# LANGUAGE DeriveGeneric #-}
-
 module Language.PureScript.Environment where
 
-import           Prelude.Compat
-import           Protolude (ordNub)
+import Prelude
 
-import           GHC.Generics (Generic)
-import           Control.DeepSeq (NFData)
-import           Data.Aeson ((.=), (.:))
-import qualified Data.Aeson as A
-import qualified Data.Map as M
-import qualified Data.Set as S
-import           Data.Maybe (fromMaybe, mapMaybe)
-import           Data.Text (Text)
-import qualified Data.Text as T
-import           Data.Tree (Tree, rootLabel)
-import qualified Data.Graph as G
-import           Data.Foldable (toList, fold)
-import qualified Data.List.NonEmpty as NEL
+import GHC.Generics (Generic)
+import Control.DeepSeq (NFData)
+import Control.Monad (unless)
+import Codec.Serialise (Serialise)
+import Data.Aeson ((.=), (.:))
+import Data.Aeson qualified as A
+import Data.Foldable (find, fold)
+import Data.Functor ((<&>))
+import Data.IntMap qualified as IM
+import Data.IntSet qualified as IS
+import Data.Map qualified as M
+import Data.Set qualified as S
+import Data.Maybe (fromMaybe, mapMaybe)
+import Data.Semigroup (First(..))
+import Data.Text (Text)
+import Data.Text qualified as T
+import Data.List.NonEmpty qualified as NEL
 
-import           Language.PureScript.AST.SourcePos
-import           Language.PureScript.Crash
-import           Language.PureScript.Kinds
-import           Language.PureScript.Names
-import           Language.PureScript.TypeClassDictionaries
-import           Language.PureScript.Types
-import qualified Language.PureScript.Constants as C
+import Language.PureScript.AST.SourcePos (nullSourceAnn)
+import Language.PureScript.Crash (internalError)
+import Language.PureScript.Names (Ident, ProperName(..), ProperNameType(..), Qualified, QualifiedBy, coerceProperName)
+import Language.PureScript.Roles (Role(..))
+import Language.PureScript.TypeClassDictionaries (NamedDict)
+import Language.PureScript.Types (SourceConstraint, SourceType, Type(..), TypeVarVisibility(..), eqType, srcTypeConstructor, freeTypeVariables)
+import Language.PureScript.Constants.Prim qualified as C
 
 -- | The @Environment@ defines all values and types which are currently in scope:
 data Environment = Environment
   { names :: M.Map (Qualified Ident) (SourceType, NameKind, NameVisibility)
   -- ^ Values currently in scope
-  , types :: M.Map (Qualified (ProperName 'TypeName)) (SourceKind, TypeKind)
+  , types :: M.Map (Qualified (ProperName 'TypeName)) (SourceType, TypeKind)
   -- ^ Type names currently in scope
   , dataConstructors :: M.Map (Qualified (ProperName 'ConstructorName)) (DataDeclType, ProperName 'TypeName, SourceType, [Ident])
   -- ^ Data constructors currently in scope, along with their associated type
   -- constructor name, argument types and return type.
-  , typeSynonyms :: M.Map (Qualified (ProperName 'TypeName)) ([(Text, Maybe SourceKind)], SourceType)
+  , typeSynonyms :: M.Map (Qualified (ProperName 'TypeName)) ([(Text, Maybe SourceType)], SourceType)
   -- ^ Type synonyms currently in scope
-  , typeClassDictionaries :: M.Map (Maybe ModuleName) (M.Map (Qualified (ProperName 'ClassName)) (M.Map (Qualified Ident) (NEL.NonEmpty NamedDict)))
+  , typeClassDictionaries :: M.Map QualifiedBy (M.Map (Qualified (ProperName 'ClassName)) (M.Map (Qualified Ident) (NEL.NonEmpty NamedDict)))
   -- ^ Available type class dictionaries. When looking up 'Nothing' in the
   -- outer map, this returns the map of type class dictionaries in local
   -- scope (ie dictionaries brought in by a constrained type).
   , typeClasses :: M.Map (Qualified (ProperName 'ClassName)) TypeClassData
   -- ^ Type classes
-  , kinds :: S.Set (Qualified (ProperName 'KindName))
-  -- ^ Kinds in scope
   } deriving (Show, Generic)
 
 instance NFData Environment
 
 -- | Information about a type class
 data TypeClassData = TypeClassData
-  { typeClassArguments :: [(Text, Maybe SourceKind)]
+  { typeClassArguments :: [(Text, Maybe SourceType)]
   -- ^ A list of type argument names, and their kinds, where kind annotations
   -- were provided.
-  , typeClassMembers :: [(Ident, SourceType)]
-  -- ^ A list of type class members and their types. Type arguments listed above
-  -- are considered bound in these types.
+  , typeClassMembers :: [(Ident, SourceType, Maybe (S.Set (NEL.NonEmpty Int)))]
+  -- ^ A list of type class members and their types and whether or not
+  -- they have type variables that must be defined using Visible Type Applications.
+  -- Type arguments listed above are considered bound in these types.
   , typeClassSuperclasses :: [SourceConstraint]
   -- ^ A list of superclasses of this type class. Type arguments listed above
   -- are considered bound in the types appearing in these constraints.
@@ -69,6 +69,8 @@
   -- typeClassArguments and typeClassDependencies.
   , typeClassCoveringSets :: S.Set (S.Set Int)
   -- ^ A sets of arguments that can be used to infer all other arguments.
+  , typeClassIsEmpty :: Bool
+  -- ^ Whether or not dictionaries for this type class are necessarily empty.
   } deriving (Show, Generic)
 
 instance NFData TypeClassData
@@ -83,6 +85,7 @@
   } deriving (Show, Generic)
 
 instance NFData FunctionalDependency
+instance Serialise FunctionalDependency
 
 instance A.FromJSON FunctionalDependency where
   parseJSON = A.withObject "FunctionalDependency" $ \o ->
@@ -98,7 +101,7 @@
 
 -- | The initial environment with no values and only the default javascript types defined
 initEnvironment :: Environment
-initEnvironment = Environment M.empty allPrimTypes M.empty M.empty M.empty allPrimClasses allPrimKinds
+initEnvironment = Environment M.empty allPrimTypes M.empty M.empty M.empty allPrimClasses
 
 -- | A constructor for TypeClassData that computes which type class arguments are fully determined
 -- and argument covering sets.
@@ -121,57 +124,109 @@
 -- determine X that X does not determine. This is the same thing: everything X determines includes everything
 -- in its SCC, and everything determining X is either before it in an SCC path, or in the same SCC.
 makeTypeClassData
-  :: [(Text, Maybe SourceKind)]
+  :: [(Text, Maybe SourceType)]
   -> [(Ident, SourceType)]
   -> [SourceConstraint]
   -> [FunctionalDependency]
+  -> Bool
   -> TypeClassData
-makeTypeClassData args m s deps = TypeClassData args m s deps determinedArgs coveringSets
+makeTypeClassData args m s deps = TypeClassData args m' s deps determinedArgs coveringSets
   where
-    argumentIndicies = [0 .. length args - 1]
+    ( determinedArgs, coveringSets ) = computeCoveringSets (length args) deps
 
-    -- each argument determines themselves
-    identities = (\i -> (i, [i])) <$> argumentIndicies
+    coveringSets' = S.toList coveringSets
 
-    -- list all the edges in the graph: for each fundep an edge exists for each determiner to each determined
-    contributingDeps = M.fromListWith (++) $ identities ++ do
-      fd <- deps
-      src <- fdDeterminers fd
-      (src, fdDetermined fd) : map (, []) (fdDetermined fd)
+    m' = map (\(a, b) -> (a, b, addVtaInfo b)) m
+    
+    addVtaInfo :: SourceType -> Maybe (S.Set (NEL.NonEmpty Int))
+    addVtaInfo memberTy = do
+      let mentionedArgIndexes = S.fromList (mapMaybe argToIndex $ freeTypeVariables memberTy)
+      let leftovers = map (`S.difference` mentionedArgIndexes) coveringSets'
+      S.fromList <$> traverse (NEL.nonEmpty . S.toList) leftovers
 
-    -- build a graph of which arguments determine other arguments
-    (depGraph, fromVertex, fromKey) = G.graphFromEdges ((\(n, v) -> (n, n, ordNub v)) <$> M.toList contributingDeps)
+    argToIndex :: Text -> Maybe Int
+    argToIndex = flip M.lookup $ M.fromList (zipWith ((,) . fst) args [0..])
 
-    -- do there exist any arguments that contribute to `arg` that `arg` doesn't contribute to
-    isFunDepDetermined :: Int -> Bool
-    isFunDepDetermined arg = case fromKey arg of
-      Nothing -> internalError "Unknown argument index in makeTypeClassData"
-      Just v -> let contributesToVar = G.reachable (G.transposeG depGraph) v
-                    varContributesTo = G.reachable depGraph v
-                in any (\r -> not (r `elem` varContributesTo)) contributesToVar
+-- A moving frontier of sets to consider, along with the fundeps that can be
+-- applied in each case. At each stage, all sets in the frontier will be the
+-- same size, decreasing by 1 each time.
+type Frontier = M.Map IS.IntSet (First (IM.IntMap (NEL.NonEmpty IS.IntSet)))
+--                         ^                 ^          ^          ^
+--         when *these* parameters           |          |          |
+--         are still needed,                 |          |          |
+--                              *these* parameters      |          |
+--                              can be determined       |          |
+--                                         from a non-zero         |
+--                                         number of fundeps,      |
+--                                                      which accept *these*
+--                                                      parameters as inputs.
 
-    -- find all the arguments that are determined
-    determinedArgs :: S.Set Int
-    determinedArgs = S.fromList $ filter isFunDepDetermined argumentIndicies
+computeCoveringSets :: Int -> [FunctionalDependency] -> (S.Set Int, S.Set (S.Set Int))
+computeCoveringSets nargs deps = ( determinedArgs, coveringSets )
+  where
+    argumentIndices = S.fromList [0 .. nargs - 1]
 
-    argFromVertex :: G.Vertex -> Int
-    argFromVertex index = let (_, arg, _) = fromVertex index in arg
+    -- Compute all sets of arguments that determine the remaining arguments via
+    -- functional dependencies. This is done in stages, where each stage
+    -- considers sets of the same size to share work.
+    allCoveringSets :: S.Set (S.Set Int)
+    allCoveringSets = S.map (S.fromDistinctAscList . IS.toAscList) $ fst $ search $
+      -- The initial frontier consists of just the set of all parameters and all
+      -- fundeps organized into the map structure.
+      M.singleton
+        (IS.fromList [0 .. nargs - 1]) $
+          First $ IM.fromListWith (<>) $ do
+            fd <- deps
+            let srcs = pure (IS.fromList (fdDeterminers fd))
+            tgt <- fdDetermined fd
+            pure (tgt, srcs)
 
-    isVertexDetermined :: G.Vertex -> Bool
-    isVertexDetermined = isFunDepDetermined . argFromVertex
+      where
 
-    -- from an scc find the non-determined args
-    sccNonDetermined :: Tree G.Vertex -> Maybe [Int]
-    sccNonDetermined tree
-      -- if any arg in an scc is determined then all of them are
-      | isVertexDetermined (rootLabel tree) = Nothing
-      | otherwise = Just (argFromVertex <$> toList tree)
+      -- Recursively advance the frontier until all frontiers are exhausted
+      -- and coverings sets found. The covering sets found during the process
+      -- are locally-minimal, in that none can be reduced by a fundep, but
+      -- there may be subsets found from other frontiers.
+      search :: Frontier -> (S.Set IS.IntSet, ())
+      search frontier = unless (null frontier) $ M.foldMapWithKey step frontier >>= search
 
-    -- find the covering sets
-    coveringSets :: S.Set (S.Set Int)
-    coveringSets = let funDepSets = sequence (mapMaybe sccNonDetermined (G.scc depGraph))
-                   in S.fromList (S.fromList <$> funDepSets)
+      -- The input set from the frontier is known to cover all parameters, but
+      -- it may be able to be reduced by more fundeps.
+      step :: IS.IntSet -> First (IM.IntMap (NEL.NonEmpty IS.IntSet)) -> (S.Set IS.IntSet, Frontier)
+      step needed (First inEdges)
+        -- If there are no applicable fundeps, record it as a locally minimal
+        -- covering set. This has already been reduced to only applicable fundeps
+        | IM.null inEdges = (S.singleton needed, M.empty)
+        | otherwise       = (S.empty, foldMap removeParameter paramsToTry)
 
+          where
+
+          determined = IM.keys inEdges
+          -- If there is an acyclically determined functional dependency, prefer
+          -- it to reduce the number of cases to check. That is a dependency
+          -- that does not help determine other parameters.
+          acycDetermined = find (`IS.notMember` (IS.unions $ concatMap NEL.toList $ IM.elems inEdges)) determined
+          paramsToTry = maybe determined pure acycDetermined
+
+          -- For each parameter to be removed to build the next frontier,
+          -- delete the fundeps that determine it and filter out the fundeps
+          -- that make use of it. Of course, if it an acyclic fundep we already
+          -- found that there are none that use it.
+          removeParameter :: Int -> Frontier
+          removeParameter y =
+            M.singleton
+              (IS.delete y needed) $
+                case acycDetermined of
+                  Just _ -> First $ IM.delete y inEdges
+                  Nothing ->
+                    First $ IM.mapMaybe (NEL.nonEmpty . NEL.filter (y `IS.notMember`)) $ IM.delete y inEdges
+
+    -- Reduce to the inclusion-minimal sets
+    coveringSets = S.filter (\v -> not (any (\c -> c `S.isProperSubsetOf` v) allCoveringSets)) allCoveringSets
+
+    -- An argument is determined if it is in no covering set
+    determinedArgs = argumentIndices `S.difference` fold coveringSets
+
 -- | The visibility of a name in scope
 data NameVisibility
   = Undefined
@@ -181,6 +236,7 @@
   deriving (Show, Eq, Generic)
 
 instance NFData NameVisibility
+instance Serialise NameVisibility
 
 -- | A flag for whether a name is for an private or public value - only public values will be
 -- included in a generated externs file.
@@ -189,20 +245,21 @@
   -- ^ A private value introduced as an artifact of code generation (class instances, class member
   -- accessors, etc.)
   | Public
-  -- ^ A public value for a module member or foreing import declaration
+  -- ^ A public value for a module member or foreign import declaration
   | External
   -- ^ A name for member introduced by foreign import
   deriving (Show, Eq, Generic)
 
 instance NFData NameKind
+instance Serialise NameKind
 
 -- | The kinds of a type
 data TypeKind
-  = DataType [(Text, Maybe SourceKind)] [(ProperName 'ConstructorName, [SourceType])]
+  = DataType DataDeclType [(Text, Maybe SourceType, Role)] [(ProperName 'ConstructorName, [SourceType])]
   -- ^ Data type
   | TypeSynonym
   -- ^ Type synonym
-  | ExternData
+  | ExternData [Role]
   -- ^ Foreign data
   | LocalTypeVariable
   -- ^ A local type variable
@@ -211,29 +268,7 @@
   deriving (Show, Eq, Generic)
 
 instance NFData TypeKind
-
-instance A.ToJSON TypeKind where
-  toJSON (DataType args ctors) =
-    A.object [ T.pack "DataType" .= A.object ["args" .= args, "ctors" .= ctors] ]
-  toJSON TypeSynonym       = A.toJSON (T.pack "TypeSynonym")
-  toJSON ExternData        = A.toJSON (T.pack "ExternData")
-  toJSON LocalTypeVariable = A.toJSON (T.pack "LocalTypeVariable")
-  toJSON ScopedTypeVar     = A.toJSON (T.pack "ScopedTypeVar")
-
-instance A.FromJSON TypeKind where
-  parseJSON (A.Object o) = do
-    args <- o .: "DataType"
-    A.withObject "args" (\o1 ->
-      DataType <$> o1 .: "args"
-               <*> o1 .: "ctors") args
-  parseJSON (A.String s) =
-    case s of
-      "TypeSynonym"       -> pure TypeSynonym
-      "ExternData"        -> pure ExternData
-      "LocalTypeVariable" -> pure LocalTypeVariable
-      "ScopedTypeVar"     -> pure ScopedTypeVar
-      _ -> fail "Unknown TypeKind"
-  parseJSON _ = fail "Invalid TypeKind"
+instance Serialise TypeKind
 
 -- | The type ('data' or 'newtype') of a data type declaration
 data DataDeclType
@@ -244,6 +279,7 @@
   deriving (Show, Eq, Ord, Generic)
 
 instance NFData DataDeclType
+instance Serialise DataDeclType
 
 showDataDeclType :: DataDeclType -> Text
 showDataDeclType Data = "data"
@@ -253,232 +289,198 @@
   toJSON = A.toJSON . showDataDeclType
 
 instance A.FromJSON DataDeclType where
-  parseJSON = A.withText "DataDeclType" $ \str ->
-    case str of
-      "data" -> return Data
-      "newtype" -> return Newtype
-      other -> fail $ "invalid type: '" ++ T.unpack other ++ "'"
-
--- | Construct a ProperName in the Prim module
-primName :: Text -> Qualified (ProperName a)
-primName = Qualified (Just $ ModuleName [ProperName C.prim]) . ProperName
-
--- | Construct a 'ProperName' in the @Prim.NAME@ module.
-primSubName :: Text -> Text -> Qualified (ProperName a)
-primSubName sub =
-  Qualified (Just $ ModuleName [ProperName C.prim, ProperName sub]) . ProperName
-
-primKind :: Text -> SourceKind
-primKind = NamedKind nullSourceAnn . primName
-
-primSubKind :: Text -> Text -> SourceKind
-primSubKind sub = NamedKind nullSourceAnn . primSubName sub
+  parseJSON = A.withText "DataDeclType" $ \case
+    "data" -> return Data
+    "newtype" -> return Newtype
+    other -> fail $ "invalid type: '" ++ T.unpack other ++ "'"
 
 -- | Kind of ground types
-kindType :: SourceKind
-kindType = primKind C.typ
-
-kindConstraint :: SourceKind
-kindConstraint = kindType
-
-isKindType :: Kind a -> Bool
-isKindType (NamedKind _ n) = n == primName C.typ
-isKindType _ = False
-
--- To make reading the kind signatures below easier
-(-:>) :: SourceKind -> SourceKind -> SourceKind
-(-:>) = FunKind nullSourceAnn
-infixr 4 -:>
+kindType :: SourceType
+kindType = srcTypeConstructor C.Type
 
-kindSymbol :: SourceKind
-kindSymbol = primKind C.symbol
+kindConstraint :: SourceType
+kindConstraint = srcTypeConstructor C.Constraint
 
-kindDoc :: SourceKind
-kindDoc = primSubKind C.typeError C.doc
+kindSymbol :: SourceType
+kindSymbol = srcTypeConstructor C.Symbol
 
-kindBoolean :: SourceKind
-kindBoolean = primSubKind C.moduleBoolean C.kindBoolean
+kindDoc :: SourceType
+kindDoc = srcTypeConstructor C.Doc
 
-kindOrdering :: SourceKind
-kindOrdering = primSubKind C.moduleOrdering C.kindOrdering
+kindOrdering :: SourceType
+kindOrdering = srcTypeConstructor C.TypeOrdering
 
-kindRowList :: SourceKind
-kindRowList = primSubKind C.moduleRowList C.kindRowList
+kindRowList :: SourceType -> SourceType
+kindRowList = TypeApp nullSourceAnn (srcTypeConstructor C.RowList)
 
-kindRow :: SourceKind -> SourceKind
-kindRow = Row nullSourceAnn
+kindRow :: SourceType -> SourceType
+kindRow = TypeApp nullSourceAnn (srcTypeConstructor C.Row)
 
--- | Construct a type in the Prim module
-primTy :: Text -> SourceType
-primTy = TypeConstructor nullSourceAnn . primName
+kindOfREmpty :: SourceType
+kindOfREmpty = tyForall "k" kindType (kindRow (tyVar "k"))
 
 -- | Type constructor for functions
 tyFunction :: SourceType
-tyFunction = primTy "Function"
+tyFunction = srcTypeConstructor C.Function
 
 -- | Type constructor for strings
 tyString :: SourceType
-tyString = primTy "String"
+tyString = srcTypeConstructor C.String
 
 -- | Type constructor for strings
 tyChar :: SourceType
-tyChar = primTy "Char"
+tyChar = srcTypeConstructor C.Char
 
 -- | Type constructor for numbers
 tyNumber :: SourceType
-tyNumber = primTy "Number"
+tyNumber = srcTypeConstructor C.Number
 
 -- | Type constructor for integers
 tyInt :: SourceType
-tyInt = primTy "Int"
+tyInt = srcTypeConstructor C.Int
 
 -- | Type constructor for booleans
 tyBoolean :: SourceType
-tyBoolean = primTy "Boolean"
+tyBoolean = srcTypeConstructor C.Boolean
 
 -- | Type constructor for arrays
 tyArray :: SourceType
-tyArray = primTy "Array"
+tyArray = srcTypeConstructor C.Array
 
 -- | Type constructor for records
 tyRecord :: SourceType
-tyRecord = primTy "Record"
-
--- | Check whether a type is a record
-isObject :: Type a -> Bool
-isObject = isTypeOrApplied tyRecord
+tyRecord = srcTypeConstructor C.Record
 
--- | Check whether a type is a function
-isFunction :: Type a -> Bool
-isFunction = isTypeOrApplied tyFunction
+tyVar :: Text -> SourceType
+tyVar = TypeVar nullSourceAnn
 
-isTypeOrApplied :: Type a -> Type b -> Bool
-isTypeOrApplied t1 (TypeApp _ t2 _) = eqType t1 t2
-isTypeOrApplied t1 t2 = eqType t1 t2
+tyForall :: Text -> SourceType -> SourceType -> SourceType
+tyForall var k ty = ForAll nullSourceAnn TypeVarInvisible var (Just k) ty Nothing
 
 -- | Smart constructor for function types
 function :: SourceType -> SourceType -> SourceType
-function t1 t2 = TypeApp nullSourceAnn (TypeApp nullSourceAnn tyFunction t1) t2
-
--- | Kinds in @Prim@
-primKinds :: S.Set (Qualified (ProperName 'KindName))
-primKinds = S.fromList
-  [ primName C.typ
-  , primName C.symbol
-  ]
-
--- | Kinds in @Prim.Boolean@
-primBooleanKinds :: S.Set (Qualified (ProperName 'KindName))
-primBooleanKinds = S.fromList
-  [ primSubName C.moduleBoolean C.kindBoolean
-  ]
-
--- | Kinds in @Prim.Ordering@
-primOrderingKinds :: S.Set (Qualified (ProperName 'KindName))
-primOrderingKinds = S.fromList
-  [ primSubName C.moduleOrdering C.kindOrdering
-  ]
-
--- | Kinds in @Prim.RowList@
-primRowListKinds :: S.Set (Qualified (ProperName 'KindName))
-primRowListKinds = S.fromList
-  [ primSubName C.moduleRowList C.kindRowList
-  ]
+function = TypeApp nullSourceAnn . TypeApp nullSourceAnn tyFunction
 
--- | Kinds in @Prim.TypeError@
-primTypeErrorKinds :: S.Set (Qualified (ProperName 'KindName))
-primTypeErrorKinds = S.fromList
-  [ primSubName C.typeError C.doc
-  ]
+-- To make reading the kind signatures below easier
+(-:>) :: SourceType -> SourceType -> SourceType
+(-:>) = function
+infixr 4 -:>
 
--- | All primitive kinds
-allPrimKinds :: S.Set (Qualified (ProperName 'KindName))
-allPrimKinds = fold
-  [ primKinds
-  , primBooleanKinds
-  , primOrderingKinds
-  , primRowListKinds
-  , primTypeErrorKinds
+primClass :: Qualified (ProperName 'ClassName) -> (SourceType -> SourceType) -> [(Qualified (ProperName 'TypeName), (SourceType, TypeKind))]
+primClass name mkKind =
+  [ let k = mkKind kindConstraint
+    in (coerceProperName <$> name, (k, ExternData (nominalRolesForKind k)))
+  , let k = mkKind kindType
+    in (dictTypeName . coerceProperName <$> name, (k, TypeSynonym))
   ]
 
--- | The primitive types in the external javascript environment with their
+-- | The primitive types in the external environment with their
 -- associated kinds. There are also pseudo `Fail`, `Warn`, and `Partial` types
 -- that correspond to the classes with the same names.
-primTypes :: M.Map (Qualified (ProperName 'TypeName)) (SourceKind, TypeKind)
-primTypes = M.fromList
-  [ (primName "Function", (kindType -:> kindType -:> kindType, ExternData))
-  , (primName "Array",    (kindType -:> kindType, ExternData))
-  , (primName "Record",   (kindRow kindType -:> kindType, ExternData))
-  , (primName "String",   (kindType, ExternData))
-  , (primName "Char",     (kindType, ExternData))
-  , (primName "Number",   (kindType, ExternData))
-  , (primName "Int",      (kindType, ExternData))
-  , (primName "Boolean",  (kindType, ExternData))
-  , (primName "Partial",  (kindConstraint, ExternData))
-  ]
+primTypes :: M.Map (Qualified (ProperName 'TypeName)) (SourceType, TypeKind)
+primTypes =
+  M.fromList
+    [ (C.Type,                         (kindType, ExternData []))
+    , (C.Constraint,                   (kindType, ExternData []))
+    , (C.Symbol,                       (kindType, ExternData []))
+    , (C.Row,                          (kindType -:> kindType, ExternData [Phantom]))
+    , (C.Function,                     (kindType -:> kindType -:> kindType, ExternData [Representational, Representational]))
+    , (C.Array,                        (kindType -:> kindType, ExternData [Representational]))
+    , (C.Record,                       (kindRow kindType -:> kindType, ExternData [Representational]))
+    , (C.String,                       (kindType, ExternData []))
+    , (C.Char,                         (kindType, ExternData []))
+    , (C.Number,                       (kindType, ExternData []))
+    , (C.Int,                          (kindType, ExternData []))
+    , (C.Boolean,                      (kindType, ExternData []))
+    , (C.Partial <&> coerceProperName, (kindConstraint, ExternData []))
+    ]
 
 -- | This 'Map' contains all of the prim types from all Prim modules.
-allPrimTypes :: M.Map (Qualified (ProperName 'TypeName)) (SourceKind, TypeKind)
+allPrimTypes :: M.Map (Qualified (ProperName 'TypeName)) (SourceType, TypeKind)
 allPrimTypes = M.unions
   [ primTypes
   , primBooleanTypes
+  , primCoerceTypes
   , primOrderingTypes
   , primRowTypes
   , primRowListTypes
   , primSymbolTypes
+  , primIntTypes
   , primTypeErrorTypes
   ]
 
-primBooleanTypes :: M.Map (Qualified (ProperName 'TypeName)) (SourceKind, TypeKind)
+primBooleanTypes :: M.Map (Qualified (ProperName 'TypeName)) (SourceType, TypeKind)
 primBooleanTypes =
   M.fromList
-    [ (primSubName C.moduleBoolean "True", (kindBoolean, ExternData))
-    , (primSubName C.moduleBoolean "False", (kindBoolean, ExternData))
+    [ (C.True, (tyBoolean, ExternData []))
+    , (C.False, (tyBoolean, ExternData []))
     ]
 
-primOrderingTypes :: M.Map (Qualified (ProperName 'TypeName)) (SourceKind, TypeKind)
+primCoerceTypes :: M.Map (Qualified (ProperName 'TypeName)) (SourceType, TypeKind)
+primCoerceTypes =
+  M.fromList $ mconcat
+    [ primClass C.Coercible (\kind -> tyForall "k" kindType $ tyVar "k" -:> tyVar "k" -:> kind)
+    ]
+
+primOrderingTypes :: M.Map (Qualified (ProperName 'TypeName)) (SourceType, TypeKind)
 primOrderingTypes =
   M.fromList
-    [ (primSubName C.moduleOrdering "LT", (kindOrdering, ExternData))
-    , (primSubName C.moduleOrdering "EQ", (kindOrdering, ExternData))
-    , (primSubName C.moduleOrdering "GT", (kindOrdering, ExternData))
+    [ (C.TypeOrdering, (kindType, ExternData []))
+    , (C.LT, (kindOrdering, ExternData []))
+    , (C.EQ, (kindOrdering, ExternData []))
+    , (C.GT, (kindOrdering, ExternData []))
     ]
 
-primRowTypes :: M.Map (Qualified (ProperName 'TypeName)) (SourceKind, TypeKind)
+primRowTypes :: M.Map (Qualified (ProperName 'TypeName)) (SourceType, TypeKind)
 primRowTypes =
-  M.fromList
-    [ (primSubName C.moduleRow "Union", (kindRow kindType -:> kindRow kindType -:> kindRow kindType -:> kindConstraint, ExternData))
-    , (primSubName C.moduleRow "Nub", (kindRow kindType -:> kindRow kindType -:> kindConstraint, ExternData))
-    , (primSubName C.moduleRow "Lacks", (kindSymbol -:> kindRow kindType -:> kindConstraint, ExternData))
-    , (primSubName C.moduleRow "Cons",  (kindSymbol -:> kindType -:> kindRow kindType -:> kindRow kindType -:> kindConstraint, ExternData))
+  M.fromList $ mconcat
+    [ primClass C.RowUnion (\kind -> tyForall "k" kindType $ kindRow (tyVar "k") -:> kindRow (tyVar "k") -:> kindRow (tyVar "k") -:> kind)
+    , primClass C.RowNub   (\kind -> tyForall "k" kindType $ kindRow (tyVar "k") -:> kindRow (tyVar "k") -:> kind)
+    , primClass C.RowLacks (\kind -> tyForall "k" kindType $ kindSymbol -:> kindRow (tyVar "k") -:> kind)
+    , primClass C.RowCons  (\kind -> tyForall "k" kindType $ kindSymbol -:> tyVar "k" -:> kindRow (tyVar "k") -:> kindRow (tyVar "k") -:> kind)
     ]
 
-primRowListTypes :: M.Map (Qualified (ProperName 'TypeName)) (SourceKind, TypeKind)
+primRowListTypes :: M.Map (Qualified (ProperName 'TypeName)) (SourceType, TypeKind)
 primRowListTypes =
-  M.fromList
-    [ (primSubName C.moduleRowList "Cons", (kindSymbol -:> kindType -:> kindRowList -:> kindRowList, ExternData))
-    , (primSubName C.moduleRowList "Nil", (kindRowList, ExternData))
-    , (primSubName C.moduleRowList "RowToList",  (kindRow kindType -:> kindRowList -:> kindConstraint, ExternData))
+  M.fromList $
+    [ (C.RowList, (kindType -:> kindType, ExternData [Phantom]))
+    , (C.RowListCons, (tyForall "k" kindType $ kindSymbol -:> tyVar "k" -:> kindRowList (tyVar "k") -:> kindRowList (tyVar "k"), ExternData [Phantom, Phantom, Phantom]))
+    , (C.RowListNil, (tyForall "k" kindType $ kindRowList (tyVar "k"), ExternData []))
+    ] <> mconcat
+    [ primClass C.RowToList  (\kind -> tyForall "k" kindType $ kindRow (tyVar "k") -:> kindRowList (tyVar "k") -:> kind)
     ]
 
-primSymbolTypes :: M.Map (Qualified (ProperName 'TypeName)) (SourceKind, TypeKind)
+primSymbolTypes :: M.Map (Qualified (ProperName 'TypeName)) (SourceType, TypeKind)
 primSymbolTypes =
-  M.fromList
-    [ (primSubName C.moduleSymbol "Append",  (kindSymbol -:> kindSymbol -:> kindSymbol -:> kindConstraint, ExternData))
-    , (primSubName C.moduleSymbol "Compare", (kindSymbol -:> kindSymbol -:> kindOrdering -:> kindConstraint, ExternData))
-    , (primSubName C.moduleSymbol "Cons",  (kindSymbol -:> kindSymbol -:> kindSymbol -:> kindConstraint, ExternData))
+  M.fromList $ mconcat
+    [ primClass C.SymbolAppend  (\kind -> kindSymbol -:> kindSymbol -:> kindSymbol -:> kind)
+    , primClass C.SymbolCompare (\kind -> kindSymbol -:> kindSymbol -:> kindOrdering -:> kind)
+    , primClass C.SymbolCons    (\kind -> kindSymbol -:> kindSymbol -:> kindSymbol -:> kind)
     ]
 
-primTypeErrorTypes :: M.Map (Qualified (ProperName 'TypeName)) (SourceKind, TypeKind)
+primIntTypes :: M.Map (Qualified (ProperName 'TypeName)) (SourceType, TypeKind)
+primIntTypes =
+  M.fromList $ mconcat
+    [ primClass C.IntAdd      (\kind -> tyInt -:> tyInt -:> tyInt -:> kind)
+    , primClass C.IntCompare  (\kind -> tyInt -:> tyInt -:> kindOrdering -:> kind)
+    , primClass C.IntMul      (\kind -> tyInt -:> tyInt -:> tyInt -:> kind)
+    , primClass C.IntToString (\kind -> tyInt -:> kindSymbol -:> kind)
+    ]
+
+primTypeErrorTypes :: M.Map (Qualified (ProperName 'TypeName)) (SourceType, TypeKind)
 primTypeErrorTypes =
-  M.fromList
-    [ (primSubName C.typeError "Fail", (kindDoc -:> kindConstraint, ExternData))
-    , (primSubName C.typeError "Warn", (kindDoc -:> kindConstraint, ExternData))
-    , (primSubName C.typeError "Text", (kindSymbol -:> kindDoc, ExternData))
-    , (primSubName C.typeError "Quote", (kindType -:> kindDoc, ExternData))
-    , (primSubName C.typeError "QuoteLabel", (kindSymbol -:> kindDoc, ExternData))
-    , (primSubName C.typeError "Beside", (kindDoc -:> kindDoc -:> kindDoc, ExternData))
-    , (primSubName C.typeError "Above", (kindDoc -:> kindDoc -:> kindDoc, ExternData))
+  M.fromList $
+    [ (C.Doc, (kindType, ExternData []))
+    , (C.Fail <&> coerceProperName, (kindDoc -:> kindConstraint, ExternData [Nominal]))
+    , (C.Warn <&> coerceProperName, (kindDoc -:> kindConstraint, ExternData [Nominal]))
+    , (C.Text, (kindSymbol -:> kindDoc, ExternData [Phantom]))
+    , (C.Quote, (tyForall "k" kindType $ tyVar "k" -:> kindDoc, ExternData [Phantom]))
+    , (C.QuoteLabel, (kindSymbol -:> kindDoc, ExternData [Phantom]))
+    , (C.Beside, (kindDoc -:> kindDoc -:> kindDoc, ExternData [Phantom, Phantom]))
+    , (C.Above, (kindDoc -:> kindDoc -:> kindDoc, ExternData [Phantom, Phantom]))
+    ] <> mconcat
+    [ primClass C.Fail (\kind -> kindDoc -:> kind)
+    , primClass C.Warn (\kind -> kindDoc -:> kind)
     ]
 
 -- | The primitive class map. This just contains the `Partial` class.
@@ -486,76 +488,88 @@
 primClasses :: M.Map (Qualified (ProperName 'ClassName)) TypeClassData
 primClasses =
   M.fromList
-    [ (primName "Partial", (makeTypeClassData [] [] [] []))
+    [ (C.Partial, makeTypeClassData [] [] [] [] True)
     ]
 
 -- | This contains all of the type classes from all Prim modules.
 allPrimClasses :: M.Map (Qualified (ProperName 'ClassName)) TypeClassData
 allPrimClasses = M.unions
   [ primClasses
+  , primCoerceClasses
   , primRowClasses
   , primRowListClasses
   , primSymbolClasses
+  , primIntClasses
   , primTypeErrorClasses
   ]
 
+primCoerceClasses :: M.Map (Qualified (ProperName 'ClassName)) TypeClassData
+primCoerceClasses =
+  M.fromList
+    -- class Coercible (a :: k) (b :: k)
+    [ (C.Coercible, makeTypeClassData
+        [ ("a", Just (tyVar "k"))
+        , ("b", Just (tyVar "k"))
+        ] [] [] [] True)
+    ]
+
 primRowClasses :: M.Map (Qualified (ProperName 'ClassName)) TypeClassData
 primRowClasses =
   M.fromList
-    -- class Union (left :: # Type) (right :: # Type) (union :: # Type) | left right -> union, right union -> left, union left -> right
-    [ (primSubName C.moduleRow "Union", makeTypeClassData
-        [ ("left", Just (kindRow kindType))
-        , ("right", Just (kindRow kindType))
-        , ("union", Just (kindRow kindType))
+    -- class Union (left :: Row k) (right :: Row k) (union :: Row k) | left right -> union, right union -> left, union left -> right
+    [ (C.RowUnion, makeTypeClassData
+        [ ("left", Just (kindRow (tyVar "k")))
+        , ("right", Just (kindRow (tyVar "k")))
+        , ("union", Just (kindRow (tyVar "k")))
         ] [] []
         [ FunctionalDependency [0, 1] [2]
         , FunctionalDependency [1, 2] [0]
         , FunctionalDependency [2, 0] [1]
-        ])
+        ] True)
 
-    -- class Nub (original :: # Type) (nubbed :: # Type) | i -> o
-    , (primSubName C.moduleRow "Nub", makeTypeClassData
-        [ ("original", Just (kindRow kindType))
-        , ("nubbed", Just (kindRow kindType))
+    -- class Nub (original :: Row k) (nubbed :: Row k) | original -> nubbed
+    , (C.RowNub, makeTypeClassData
+        [ ("original", Just (kindRow (tyVar "k")))
+        , ("nubbed", Just (kindRow (tyVar "k")))
         ] [] []
         [ FunctionalDependency [0] [1]
-        ])
+        ] True)
 
-    -- class Lacks (label :: Symbol) (row :: # Type)
-    , (primSubName C.moduleRow "Lacks", makeTypeClassData
+    -- class Lacks (label :: Symbol) (row :: Row k)
+    , (C.RowLacks, makeTypeClassData
         [ ("label", Just kindSymbol)
-        , ("row", Just (kindRow kindType))
-        ] [] [] [])
+        , ("row", Just (kindRow (tyVar "k")))
+        ] [] [] [] True)
 
-    -- class RowCons (label :: Symbol) (a :: Type) (tail :: # Type) (row :: # Type) | label tail a -> row, label row -> tail a
-    , (primSubName C.moduleRow "Cons", makeTypeClassData
+    -- class RowCons (label :: Symbol) (a :: k) (tail :: Row k) (row :: Row k) | label tail a -> row, label row -> tail a
+    , (C.RowCons, makeTypeClassData
         [ ("label", Just kindSymbol)
-        , ("a", Just kindType)
-        , ("tail", Just (kindRow kindType))
-        , ("row", Just (kindRow kindType))
+        , ("a", Just (tyVar "k"))
+        , ("tail", Just (kindRow (tyVar "k")))
+        , ("row", Just (kindRow (tyVar "k")))
         ] [] []
         [ FunctionalDependency [0, 1, 2] [3]
         , FunctionalDependency [0, 3] [1, 2]
-        ])
+        ] True)
     ]
 
 primRowListClasses :: M.Map (Qualified (ProperName 'ClassName)) TypeClassData
 primRowListClasses =
   M.fromList
-    -- class RowToList (row :: # Type) (list :: RowList) | row -> list
-    [ (primSubName C.moduleRowList "RowToList", makeTypeClassData
-        [ ("row", Just (kindRow kindType))
-        , ("list", Just kindRowList)
+    -- class RowToList (row :: Row k) (list :: RowList k) | row -> list
+    [ (C.RowToList, makeTypeClassData
+        [ ("row", Just (kindRow (tyVar "k")))
+        , ("list", Just (kindRowList (tyVar "k")))
         ] [] []
         [ FunctionalDependency [0] [1]
-        ])
+        ] True)
     ]
 
 primSymbolClasses :: M.Map (Qualified (ProperName 'ClassName)) TypeClassData
 primSymbolClasses =
   M.fromList
     -- class Append (left :: Symbol) (right :: Symbol) (appended :: Symbol) | left right -> appended, right appended -> left, appended left -> right
-    [ (primSubName C.moduleSymbol "Append", makeTypeClassData
+    [ (C.SymbolAppend, makeTypeClassData
         [ ("left", Just kindSymbol)
         , ("right", Just kindSymbol)
         , ("appended", Just kindSymbol)
@@ -563,38 +577,79 @@
         [ FunctionalDependency [0, 1] [2]
         , FunctionalDependency [1, 2] [0]
         , FunctionalDependency [2, 0] [1]
-        ])
+        ] True)
 
     -- class Compare (left :: Symbol) (right :: Symbol) (ordering :: Ordering) | left right -> ordering
-    , (primSubName C.moduleSymbol "Compare", makeTypeClassData
+    , (C.SymbolCompare, makeTypeClassData
         [ ("left", Just kindSymbol)
         , ("right", Just kindSymbol)
         , ("ordering", Just kindOrdering)
         ] [] []
         [ FunctionalDependency [0, 1] [2]
-        ])
+        ] True)
 
     -- class Cons (head :: Symbol) (tail :: Symbol) (symbol :: Symbol) | head tail -> symbol, symbol -> head tail
-    , (primSubName C.moduleSymbol "Cons", makeTypeClassData
+    , (C.SymbolCons, makeTypeClassData
         [ ("head", Just kindSymbol)
         , ("tail", Just kindSymbol)
         , ("symbol", Just kindSymbol)
         ] [] []
         [ FunctionalDependency [0, 1] [2]
         , FunctionalDependency [2] [0, 1]
-        ])
+        ] True)
     ]
 
+primIntClasses :: M.Map (Qualified (ProperName 'ClassName)) TypeClassData
+primIntClasses =
+  M.fromList
+    -- class Add (left :: Int) (right :: Int) (sum :: Int) | left right -> sum, left sum -> right, right sum -> left
+    [ (C.IntAdd, makeTypeClassData
+        [ ("left", Just tyInt)
+        , ("right", Just tyInt)
+        , ("sum", Just tyInt)
+        ] [] []
+        [ FunctionalDependency [0, 1] [2]
+        , FunctionalDependency [0, 2] [1]
+        , FunctionalDependency [1, 2] [0]
+        ] True)
+
+    -- class Compare (left :: Int) (right :: Int) (ordering :: Ordering) | left right -> ordering
+    , (C.IntCompare, makeTypeClassData
+        [ ("left", Just tyInt)
+        , ("right", Just tyInt)
+        , ("ordering", Just kindOrdering)
+        ] [] []
+        [ FunctionalDependency [0, 1] [2]
+        ] True)
+
+    -- class Mul (left :: Int) (right :: Int) (product :: Int) | left right -> product
+    , (C.IntMul, makeTypeClassData
+        [ ("left", Just tyInt)
+        , ("right", Just tyInt)
+        , ("product", Just tyInt)
+        ] [] []
+        [ FunctionalDependency [0, 1] [2]
+        ] True)
+
+    -- class ToString (int :: Int) (string :: Symbol) | int -> string
+    , (C.IntToString, makeTypeClassData
+        [ ("int", Just tyInt)
+        , ("string", Just kindSymbol)
+        ] [] []
+        [ FunctionalDependency [0] [1]
+        ] True)
+    ]
+
 primTypeErrorClasses :: M.Map (Qualified (ProperName 'ClassName)) TypeClassData
 primTypeErrorClasses =
   M.fromList
     -- class Fail (message :: Symbol)
-    [ (primSubName C.typeError "Fail", makeTypeClassData
-        [("message", Just kindDoc)] [] [] [])
+    [ (C.Fail, makeTypeClassData
+        [("message", Just kindDoc)] [] [] [] True)
 
     -- class Warn (message :: Symbol)
-    , (primSubName C.typeError "Warn", makeTypeClassData
-        [("message", Just kindDoc)] [] [] [])
+    , (C.Warn, makeTypeClassData
+        [("message", Just kindDoc)] [] [] [] True)
     ]
 
 -- | Finds information about data constructors from the current environment.
@@ -602,12 +657,31 @@
 lookupConstructor env ctor =
   fromMaybe (internalError "Data constructor not found") $ ctor `M.lookup` dataConstructors env
 
--- | Checks whether a data constructor is for a newtype.
-isNewtypeConstructor :: Environment -> Qualified (ProperName 'ConstructorName) -> Bool
-isNewtypeConstructor e ctor = case lookupConstructor e ctor of
-  (Newtype, _, _, _) -> True
-  (Data, _, _, _) -> False
-
 -- | Finds information about values from the current environment.
 lookupValue :: Environment -> Qualified Ident -> Maybe (SourceType, NameKind, NameVisibility)
 lookupValue env ident = ident `M.lookup` names env
+
+dictTypeName' :: Text -> Text
+dictTypeName' = (<> "$Dict")
+
+dictTypeName :: ProperName a -> ProperName a
+dictTypeName = ProperName . dictTypeName' . runProperName
+
+isDictTypeName :: ProperName a -> Bool
+isDictTypeName = T.isSuffixOf "$Dict" . runProperName
+
+-- |
+-- Given the kind of a type, generate a list @Nominal@ roles. This is used for
+-- opaque foreign types as well as type classes.
+nominalRolesForKind :: Type a -> [Role]
+nominalRolesForKind k = replicate (kindArity k) Nominal
+
+kindArity :: Type a -> Int
+kindArity = length . fst . unapplyKinds
+
+unapplyKinds :: Type a -> ([Type a], Type a)
+unapplyKinds = go [] where
+  go kinds (TypeApp _ (TypeApp _ fn k1) k2)
+    | eqType fn tyFunction = go (k1 : kinds) k2
+  go kinds (ForAll _ _ _ _ k _) = go kinds k
+  go kinds k = (reverse kinds, k)
diff --git a/src/Language/PureScript/Errors.hs b/src/Language/PureScript/Errors.hs
--- a/src/Language/PureScript/Errors.hs
+++ b/src/Language/PureScript/Errors.hs
@@ -1,1520 +1,2077 @@
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE NamedFieldPuns #-}
-
-module Language.PureScript.Errors
-  ( module Language.PureScript.AST
-  , module Language.PureScript.Errors
-  ) where
-
-import           Prelude.Compat
-import           Protolude (ordNub)
-
-import           Control.Arrow ((&&&))
-import           Control.Monad
-import           Control.Monad.Error.Class (MonadError(..))
-import           Control.Monad.Trans.State.Lazy
-import           Control.Monad.Writer
-import           Data.Char (isSpace)
-import           Data.Either (partitionEithers)
-import           Data.Foldable (fold)
-import           Data.Functor.Identity (Identity(..))
-import           Data.List (transpose, nubBy, partition, dropWhileEnd, sort, sortBy)
-import qualified Data.List.NonEmpty as NEL
-import           Data.Maybe (maybeToList, fromMaybe, mapMaybe)
-import qualified Data.Map as M
-import           Data.Ord (comparing)
-import qualified Data.Set as S
-import qualified Data.Text as T
-import           Data.Text (Text)
-import           Language.PureScript.AST
-import qualified Language.PureScript.Bundle as Bundle
-import qualified Language.PureScript.Constants as C
-import           Language.PureScript.Crash
-import qualified Language.PureScript.CST.Errors as CST
-import           Language.PureScript.Environment
-import           Language.PureScript.Label (Label(..))
-import           Language.PureScript.Names
-import           Language.PureScript.Pretty
-import           Language.PureScript.Pretty.Common (endWith)
-import           Language.PureScript.PSString (decodeStringWithReplacement)
-import           Language.PureScript.Traversals
-import           Language.PureScript.Types
-import qualified Language.PureScript.Publish.BoxesHelpers as BoxHelpers
-import qualified System.Console.ANSI as ANSI
-import qualified Text.Parsec as P
-import qualified Text.Parsec.Error as PE
-import           Text.Parsec.Error (Message(..))
-import qualified Text.PrettyPrint.Boxes as Box
-
-newtype ErrorSuggestion = ErrorSuggestion Text
-
--- | Get the source span for an error
-errorSpan :: ErrorMessage -> Maybe (NEL.NonEmpty SourceSpan)
-errorSpan = findHint matchSpan
-  where
-  matchSpan (PositionedError ss) = Just ss
-  matchSpan _ = Nothing
-
--- | Get the module name for an error
-errorModule :: ErrorMessage -> Maybe ModuleName
-errorModule = findHint matchModule
-  where
-  matchModule (ErrorInModule mn) = Just mn
-  matchModule _ = Nothing
-
-findHint :: (ErrorMessageHint -> Maybe a) -> ErrorMessage -> Maybe a
-findHint f (ErrorMessage hints _) = getLast . foldMap (Last . f) $ hints
-
--- | Remove the module name and span hints from an error
-stripModuleAndSpan :: ErrorMessage -> ErrorMessage
-stripModuleAndSpan (ErrorMessage hints e) = ErrorMessage (filter (not . shouldStrip) hints) e
-  where
-  shouldStrip (ErrorInModule _) = True
-  shouldStrip (PositionedError _) = True
-  shouldStrip _ = False
-
--- | Get the error code for a particular error type
-errorCode :: ErrorMessage -> Text
-errorCode em = case unwrapErrorMessage em of
-  ModuleNotFound{} -> "ModuleNotFound"
-  ErrorParsingFFIModule{} -> "ErrorParsingFFIModule"
-  ErrorParsingModule{} -> "ErrorParsingModule"
-  ErrorParsingCSTModule{} -> "ErrorParsingModule"
-  MissingFFIModule{} -> "MissingFFIModule"
-  UnnecessaryFFIModule{} -> "UnnecessaryFFIModule"
-  MissingFFIImplementations{} -> "MissingFFIImplementations"
-  UnusedFFIImplementations{} -> "UnusedFFIImplementations"
-  InvalidFFIIdentifier{} -> "InvalidFFIIdentifier"
-  CannotGetFileInfo{} -> "CannotGetFileInfo"
-  CannotReadFile{} -> "CannotReadFile"
-  CannotWriteFile{} -> "CannotWriteFile"
-  InfiniteType{} -> "InfiniteType"
-  InfiniteKind{} -> "InfiniteKind"
-  MultipleValueOpFixities{} -> "MultipleValueOpFixities"
-  MultipleTypeOpFixities{} -> "MultipleTypeOpFixities"
-  OrphanTypeDeclaration{} -> "OrphanTypeDeclaration"
-  RedefinedIdent{} -> "RedefinedIdent"
-  OverlappingNamesInLet -> "OverlappingNamesInLet"
-  UnknownName{} -> "UnknownName"
-  UnknownImport{} -> "UnknownImport"
-  UnknownImportDataConstructor{} -> "UnknownImportDataConstructor"
-  UnknownExport{} -> "UnknownExport"
-  UnknownExportDataConstructor{} -> "UnknownExportDataConstructor"
-  ScopeConflict{} -> "ScopeConflict"
-  ScopeShadowing{} -> "ScopeShadowing"
-  DeclConflict{} -> "DeclConflict"
-  ExportConflict{} -> "ExportConflict"
-  DuplicateModule{} -> "DuplicateModule"
-  DuplicateTypeClass{} -> "DuplicateTypeClass"
-  DuplicateInstance{} -> "DuplicateInstance"
-  DuplicateTypeArgument{} -> "DuplicateTypeArgument"
-  InvalidDoBind -> "InvalidDoBind"
-  InvalidDoLet -> "InvalidDoLet"
-  CycleInDeclaration{} -> "CycleInDeclaration"
-  CycleInTypeSynonym{} -> "CycleInTypeSynonym"
-  CycleInTypeClassDeclaration{} -> "CycleInTypeClassDeclaration"
-  CycleInModules{} -> "CycleInModules"
-  NameIsUndefined{} -> "NameIsUndefined"
-  UndefinedTypeVariable{} -> "UndefinedTypeVariable"
-  PartiallyAppliedSynonym{} -> "PartiallyAppliedSynonym"
-  EscapedSkolem{} -> "EscapedSkolem"
-  TypesDoNotUnify{} -> "TypesDoNotUnify"
-  KindsDoNotUnify{} -> "KindsDoNotUnify"
-  ConstrainedTypeUnified{} -> "ConstrainedTypeUnified"
-  OverlappingInstances{} -> "OverlappingInstances"
-  NoInstanceFound{} -> "NoInstanceFound"
-  AmbiguousTypeVariables{} -> "AmbiguousTypeVariables"
-  UnknownClass{} -> "UnknownClass"
-  PossiblyInfiniteInstance{} -> "PossiblyInfiniteInstance"
-  CannotDerive{} -> "CannotDerive"
-  InvalidNewtypeInstance{} -> "InvalidNewtypeInstance"
-  MissingNewtypeSuperclassInstance{} -> "MissingNewtypeSuperclassInstance"
-  UnverifiableSuperclassInstance{} -> "UnverifiableSuperclassInstance"
-  InvalidDerivedInstance{} -> "InvalidDerivedInstance"
-  ExpectedTypeConstructor{} -> "ExpectedTypeConstructor"
-  CannotFindDerivingType{} -> "CannotFindDerivingType"
-  DuplicateLabel{} -> "DuplicateLabel"
-  DuplicateValueDeclaration{} -> "DuplicateValueDeclaration"
-  ArgListLengthsDiffer{} -> "ArgListLengthsDiffer"
-  OverlappingArgNames{} -> "OverlappingArgNames"
-  MissingClassMember{} -> "MissingClassMember"
-  ExtraneousClassMember{} -> "ExtraneousClassMember"
-  ExpectedType{} -> "ExpectedType"
-  IncorrectConstructorArity{} -> "IncorrectConstructorArity"
-  ExprDoesNotHaveType{} -> "ExprDoesNotHaveType"
-  PropertyIsMissing{} -> "PropertyIsMissing"
-  AdditionalProperty{} -> "AdditionalProperty"
-  TypeSynonymInstance -> "TypeSynonymInstance"
-  OrphanInstance{} -> "OrphanInstance"
-  InvalidNewtype{} -> "InvalidNewtype"
-  InvalidInstanceHead{} -> "InvalidInstanceHead"
-  TransitiveExportError{} -> "TransitiveExportError"
-  TransitiveDctorExportError{} -> "TransitiveDctorExportError"
-  ShadowedName{} -> "ShadowedName"
-  ShadowedTypeVar{} -> "ShadowedTypeVar"
-  UnusedTypeVar{} -> "UnusedTypeVar"
-  WildcardInferredType{} -> "WildcardInferredType"
-  HoleInferredType{} -> "HoleInferredType"
-  MissingTypeDeclaration{} -> "MissingTypeDeclaration"
-  OverlappingPattern{} -> "OverlappingPattern"
-  IncompleteExhaustivityCheck{} -> "IncompleteExhaustivityCheck"
-  MisleadingEmptyTypeImport{} -> "MisleadingEmptyTypeImport"
-  ImportHidingModule{} -> "ImportHidingModule"
-  UnusedImport{} -> "UnusedImport"
-  UnusedExplicitImport{} -> "UnusedExplicitImport"
-  UnusedDctorImport{} -> "UnusedDctorImport"
-  UnusedDctorExplicitImport{} -> "UnusedDctorExplicitImport"
-  DuplicateSelectiveImport{} -> "DuplicateSelectiveImport"
-  DuplicateImport{} -> "DuplicateImport"
-  DuplicateImportRef{} -> "DuplicateImportRef"
-  DuplicateExportRef{} -> "DuplicateExportRef"
-  IntOutOfRange{} -> "IntOutOfRange"
-  ImplicitQualifiedImport{} -> "ImplicitQualifiedImport"
-  ImplicitQualifiedImportReExport{} -> "ImplicitQualifiedImportReExport"
-  ImplicitImport{} -> "ImplicitImport"
-  HidingImport{} -> "HidingImport"
-  CaseBinderLengthDiffers{} -> "CaseBinderLengthDiffers"
-  IncorrectAnonymousArgument -> "IncorrectAnonymousArgument"
-  InvalidOperatorInBinder{} -> "InvalidOperatorInBinder"
-  CannotGeneralizeRecursiveFunction{} -> "CannotGeneralizeRecursiveFunction"
-  CannotDeriveNewtypeForData{} -> "CannotDeriveNewtypeForData"
-  ExpectedWildcard{} -> "ExpectedWildcard"
-  CannotUseBindWithDo{} -> "CannotUseBindWithDo"
-  ClassInstanceArityMismatch{} -> "ClassInstanceArityMismatch"
-  UserDefinedWarning{} -> "UserDefinedWarning"
-  UnusableDeclaration{} -> "UnusableDeclaration"
-  CannotDefinePrimModules{} -> "CannotDefinePrimModules"
-  MixedAssociativityError{} -> "MixedAssociativityError"
-  NonAssociativeError{} -> "NonAssociativeError"
-
--- | A stack trace for an error
-newtype MultipleErrors = MultipleErrors
-  { runMultipleErrors :: [ErrorMessage]
-  } deriving (Show, Semigroup, Monoid)
-
--- | Check whether a collection of errors is empty or not.
-nonEmpty :: MultipleErrors -> Bool
-nonEmpty = not . null . runMultipleErrors
-
--- | Create an error set from a single simple error message
-errorMessage :: SimpleErrorMessage -> MultipleErrors
-errorMessage err = MultipleErrors [ErrorMessage [] err]
-
--- | Create an error set from a single simple error message and source annotation
-errorMessage' :: SourceSpan -> SimpleErrorMessage -> MultipleErrors
-errorMessage' ss err = MultipleErrors [ErrorMessage [positionedError ss] err]
-
--- | Create an error set from a single simple error message and source annotations
-errorMessage'' :: NEL.NonEmpty SourceSpan -> SimpleErrorMessage -> MultipleErrors
-errorMessage'' sss err = MultipleErrors [ErrorMessage [PositionedError sss] err]
-
--- | Create an error from multiple (possibly empty) source spans, reversed sorted.
-errorMessage''' :: [SourceSpan] -> SimpleErrorMessage -> MultipleErrors
-errorMessage''' sss err =
-  maybe (errorMessage err) (flip errorMessage'' err)
-    . NEL.nonEmpty
-    . reverse
-    . sort
-    $ filter (/= NullSourceSpan) sss
-
--- | Create an error set from a single error message
-singleError :: ErrorMessage -> MultipleErrors
-singleError = MultipleErrors . pure
-
--- | Lift a function on ErrorMessage to a function on MultipleErrors
-onErrorMessages :: (ErrorMessage -> ErrorMessage) -> MultipleErrors -> MultipleErrors
-onErrorMessages f = MultipleErrors . map f . runMultipleErrors
-
--- | Add a hint to an error message
-addHint :: ErrorMessageHint -> MultipleErrors -> MultipleErrors
-addHint hint = addHints [hint]
-
--- | Add hints to an error message
-addHints :: [ErrorMessageHint] -> MultipleErrors -> MultipleErrors
-addHints hints = onErrorMessages $ \(ErrorMessage hints' se) -> ErrorMessage (hints ++ hints') se
-
--- | A map from rigid type variable name/unknown variable pairs to new variables.
-data TypeMap = TypeMap
-  { umSkolemMap   :: M.Map Int (String, Int, Maybe SourceSpan)
-  -- ^ a map from skolems to their new names, including source and naming info
-  , umUnknownMap  :: M.Map Int Int
-  -- ^ a map from unification variables to their new names
-  , umNextIndex   :: Int
-  -- ^ unknowns and skolems share a source of names during renaming, to
-  -- avoid overlaps in error messages. This is the next label for either case.
-  } deriving Show
-
-defaultUnknownMap :: TypeMap
-defaultUnknownMap = TypeMap M.empty M.empty 0
-
--- | How critical the issue is
-data Level = Error | Warning deriving Show
-
--- | Extract nested error messages from wrapper errors
-unwrapErrorMessage :: ErrorMessage -> SimpleErrorMessage
-unwrapErrorMessage (ErrorMessage _ se) = se
-
-replaceUnknowns :: SourceType -> State TypeMap SourceType
-replaceUnknowns = everywhereOnTypesM replaceTypes where
-  replaceTypes :: SourceType -> State TypeMap SourceType
-  replaceTypes (TUnknown ann u) = do
-    m <- get
-    case M.lookup u (umUnknownMap m) of
-      Nothing -> do
-        let u' = umNextIndex m
-        put $ m { umUnknownMap = M.insert u u' (umUnknownMap m), umNextIndex = u' + 1 }
-        return (TUnknown ann u')
-      Just u' -> return (TUnknown ann u')
-  replaceTypes (Skolem ann name s sko) = do
-    m <- get
-    case M.lookup s (umSkolemMap m) of
-      Nothing -> do
-        let s' = umNextIndex m
-        put $ m { umSkolemMap = M.insert s (T.unpack name, s', Just (fst ann)) (umSkolemMap m), umNextIndex = s' + 1 }
-        return (Skolem ann name s' sko)
-      Just (_, s', _) -> return (Skolem ann name s' sko)
-  replaceTypes other = return other
-
-onTypesInErrorMessage :: (SourceType -> SourceType) -> ErrorMessage -> ErrorMessage
-onTypesInErrorMessage f = runIdentity . onTypesInErrorMessageM (Identity . f)
-
-onTypesInErrorMessageM :: Applicative m => (SourceType -> m SourceType) -> ErrorMessage -> m ErrorMessage
-onTypesInErrorMessageM f (ErrorMessage hints simple) = ErrorMessage <$> traverse gHint hints <*> gSimple simple
-  where
-  gSimple (InfiniteType t) = InfiniteType <$> f t
-  gSimple (TypesDoNotUnify t1 t2) = TypesDoNotUnify <$> f t1 <*> f t2
-  gSimple (ConstrainedTypeUnified t1 t2) = ConstrainedTypeUnified <$> f t1 <*> f t2
-  gSimple (ExprDoesNotHaveType e t) = ExprDoesNotHaveType e <$> f t
-  gSimple (InvalidInstanceHead t) = InvalidInstanceHead <$> f t
-  gSimple (NoInstanceFound con) = NoInstanceFound <$> overConstraintArgs (traverse f) con
-  gSimple (AmbiguousTypeVariables t con) = AmbiguousTypeVariables <$> f t <*> pure con
-  gSimple (OverlappingInstances cl ts insts) = OverlappingInstances cl <$> traverse f ts <*> pure insts
-  gSimple (PossiblyInfiniteInstance cl ts) = PossiblyInfiniteInstance cl <$> traverse f ts
-  gSimple (CannotDerive cl ts) = CannotDerive cl <$> traverse f ts
-  gSimple (InvalidNewtypeInstance cl ts) = InvalidNewtypeInstance cl <$> traverse f ts
-  gSimple (MissingNewtypeSuperclassInstance cl1 cl2 ts) = MissingNewtypeSuperclassInstance cl1 cl2 <$> traverse f ts
-  gSimple (UnverifiableSuperclassInstance cl1 cl2 ts) = UnverifiableSuperclassInstance cl1 cl2 <$> traverse f ts
-  gSimple (InvalidDerivedInstance cl ts n) = InvalidDerivedInstance cl <$> traverse f ts <*> pure n
-  gSimple (ExpectedTypeConstructor cl ts ty) = ExpectedTypeConstructor cl <$> traverse f ts <*> f ty
-  gSimple (ExpectedType ty k) = ExpectedType <$> f ty <*> pure k
-  gSimple (OrphanInstance nm cl noms ts) = OrphanInstance nm cl noms <$> traverse f ts
-  gSimple (WildcardInferredType ty ctx) = WildcardInferredType <$> f ty <*> traverse (sndM f) ctx
-  gSimple (HoleInferredType name ty ctx env) = HoleInferredType name <$> f ty <*> traverse (sndM f) ctx  <*> traverse (onTypeSearchTypesM f) env
-  gSimple (MissingTypeDeclaration nm ty) = MissingTypeDeclaration nm <$> f ty
-  gSimple (CannotGeneralizeRecursiveFunction nm ty) = CannotGeneralizeRecursiveFunction nm <$> f ty
-  gSimple other = pure other
-
-  gHint (ErrorInSubsumption t1 t2) = ErrorInSubsumption <$> f t1 <*> f t2
-  gHint (ErrorUnifyingTypes t1 t2) = ErrorUnifyingTypes <$> f t1 <*> f t2
-  gHint (ErrorCheckingType e t) = ErrorCheckingType e <$> f t
-  gHint (ErrorCheckingKind t) = ErrorCheckingKind <$> f t
-  gHint (ErrorInApplication e1 t1 e2) = ErrorInApplication e1 <$> f t1 <*> pure e2
-  gHint (ErrorInInstance cl ts) = ErrorInInstance cl <$> traverse f ts
-  gHint (ErrorSolvingConstraint con) = ErrorSolvingConstraint <$> overConstraintArgs (traverse f) con
-  gHint other = pure other
-
-errorDocUri :: ErrorMessage -> Text
-errorDocUri e = "https://github.com/purescript/documentation/blob/master/errors/" <> errorCode e <> ".md"
-
--- TODO Other possible suggestions:
--- WildcardInferredType - source span not small enough
--- DuplicateSelectiveImport - would require 2 ranges to remove and 1 insert
-errorSuggestion :: SimpleErrorMessage -> Maybe ErrorSuggestion
-errorSuggestion err =
-    case err of
-      UnusedImport{} -> emptySuggestion
-      DuplicateImport{} -> emptySuggestion
-      UnusedExplicitImport mn _ qual refs -> suggest $ importSuggestion mn refs qual
-      UnusedDctorImport mn _ qual refs -> suggest $ importSuggestion mn refs qual
-      UnusedDctorExplicitImport mn _ _ qual refs -> suggest $ importSuggestion mn refs qual
-      ImplicitImport mn refs -> suggest $ importSuggestion mn refs Nothing
-      ImplicitQualifiedImport mn asModule refs -> suggest $ importSuggestion mn refs (Just asModule)
-      ImplicitQualifiedImportReExport mn asModule refs -> suggest $ importSuggestion mn refs (Just asModule)
-      HidingImport mn refs -> suggest $ importSuggestion mn refs Nothing
-      MissingTypeDeclaration ident ty -> suggest $ showIdent ident <> " :: " <> T.pack (prettyPrintSuggestedType ty)
-      WildcardInferredType ty _ -> suggest $ T.pack (prettyPrintSuggestedType ty)
-      _ -> Nothing
-  where
-    emptySuggestion = Just $ ErrorSuggestion ""
-    suggest = Just . ErrorSuggestion
-
-    importSuggestion :: ModuleName -> [ DeclarationRef ] -> Maybe ModuleName -> Text
-    importSuggestion mn refs qual =
-      "import " <> runModuleName mn <> " (" <> T.intercalate ", " (mapMaybe prettyPrintRef refs) <> ")" <> qstr qual
-
-    qstr :: Maybe ModuleName -> Text
-    qstr (Just mn) = " as " <> runModuleName mn
-    qstr Nothing = ""
-
-suggestionSpan :: ErrorMessage -> Maybe SourceSpan
-suggestionSpan e =
-  -- The `NEL.head` is a bit arbitrary here, but I don't think we'll
-  -- have errors-with-suggestions that also have multiple source
-  -- spans. -garyb
-  getSpan (unwrapErrorMessage e) . NEL.head <$> errorSpan e
-  where
-    startOnly SourceSpan{spanName, spanStart} = SourceSpan {spanName, spanStart, spanEnd = spanStart}
-
-    getSpan simple ss =
-      case simple of
-        MissingTypeDeclaration{} -> startOnly ss
-        _ -> ss
-
-showSuggestion :: SimpleErrorMessage -> Text
-showSuggestion suggestion = case errorSuggestion suggestion of
-  Just (ErrorSuggestion x) -> x
-  _ -> ""
-
-ansiColor :: (ANSI.ColorIntensity, ANSI.Color) -> String
-ansiColor (intesity, color) =
-   ANSI.setSGRCode [ANSI.SetColor ANSI.Foreground intesity color]
-
-ansiColorReset :: String
-ansiColorReset =
-   ANSI.setSGRCode [ANSI.Reset]
-
-colorCode :: Maybe (ANSI.ColorIntensity, ANSI.Color) -> Text -> Text
-colorCode codeColor code = case codeColor of
-  Nothing -> code
-  Just cc -> T.pack (ansiColor cc) <> code <> T.pack ansiColorReset
-
-colorCodeBox :: Maybe (ANSI.ColorIntensity, ANSI.Color) -> Box.Box -> Box.Box
-colorCodeBox codeColor b = case codeColor of
-  Nothing -> b
-  Just cc
-    | Box.rows b == 1 ->
-        Box.text (ansiColor cc) Box.<> b `endWith` Box.text ansiColorReset
-
-    | otherwise -> Box.hcat Box.left -- making two boxes, one for each side of the box so that it will set each row it's own color and will reset it afterwards
-        [ Box.vcat Box.top $ replicate (Box.rows b) $ Box.text $ ansiColor cc
-        , b
-        , Box.vcat Box.top $ replicate (Box.rows b) $ Box.text ansiColorReset
-        ]
-
-
--- | Default color intesity and color for code
-defaultCodeColor :: (ANSI.ColorIntensity, ANSI.Color)
-defaultCodeColor = (ANSI.Dull, ANSI.Yellow)
-
--- | `prettyPrintSingleError` Options
-data PPEOptions = PPEOptions
-  { ppeCodeColor         :: Maybe (ANSI.ColorIntensity, ANSI.Color) -- ^ Color code with this color... or not
-  , ppeFull              :: Bool -- ^ Should write a full error message?
-  , ppeLevel             :: Level -- ^ Should this report an error or a warning?
-  , ppeShowDocs          :: Bool -- ^ Should show a link to error message's doc page?
-  , ppeRelativeDirectory :: FilePath -- ^ FilePath to which the errors are relative
-  }
-
--- | Default options for PPEOptions
-defaultPPEOptions :: PPEOptions
-defaultPPEOptions = PPEOptions
-  { ppeCodeColor         = Just defaultCodeColor
-  , ppeFull              = False
-  , ppeLevel             = Error
-  , ppeShowDocs          = True
-  , ppeRelativeDirectory = mempty
-  }
-
--- | Pretty print a single error, simplifying if necessary
-prettyPrintSingleError :: PPEOptions -> ErrorMessage -> Box.Box
-prettyPrintSingleError (PPEOptions codeColor full level showDocs relPath) e = flip evalState defaultUnknownMap $ do
-  em <- onTypesInErrorMessageM replaceUnknowns (if full then e else simplifyErrorMessage e)
-  um <- get
-  return (prettyPrintErrorMessage um em)
-  where
-  (markCode, markCodeBox) = (colorCode &&& colorCodeBox) codeColor
-
-  -- Pretty print an ErrorMessage
-  prettyPrintErrorMessage :: TypeMap -> ErrorMessage -> Box.Box
-  prettyPrintErrorMessage typeMap (ErrorMessage hints simple) =
-    paras $
-      [ foldr renderHint (indent (renderSimpleErrorMessage simple)) hints
-      ] ++
-      maybe [] (return . Box.moveDown 1) typeInformation ++
-      [ Box.moveDown 1 $ paras
-          [ line $ "See " <> errorDocUri e <> " for more information, "
-          , line $ "or to contribute content related to this " <> levelText <> "."
-          ]
-      | showDocs
-      ]
-    where
-    typeInformation :: Maybe Box.Box
-    typeInformation | not (null types) = Just $ Box.hsep 1 Box.left [ line "where", paras types ]
-                    | otherwise = Nothing
-      where
-      types :: [Box.Box]
-      types = map skolemInfo  (M.elems (umSkolemMap typeMap)) ++
-              map unknownInfo (M.elems (umUnknownMap typeMap))
-
-      skolemInfo :: (String, Int, Maybe SourceSpan) -> Box.Box
-      skolemInfo (name, s, ss) =
-        paras $
-          line (markCode (T.pack (name <> show s)) <> " is a rigid type variable")
-          : foldMap (return . line . ("  bound at " <>) . displayStartEndPos) ss
-
-      unknownInfo :: Int -> Box.Box
-      unknownInfo u = line $ markCode ("t" <> T.pack (show u)) <> " is an unknown type"
-
-    renderSimpleErrorMessage :: SimpleErrorMessage -> Box.Box
-    renderSimpleErrorMessage (ModuleNotFound mn) =
-      paras [ line $ "Module " <> markCode (runModuleName mn) <> " was not found."
-            , line $
-                if isBuiltinModuleName mn
-                  then
-                    "Module names in the Prim namespace are reserved for built-in modules, but this version of the compiler does not provide module " <> markCode (runModuleName mn) <> ". You may be able to fix this by updating your compiler to a newer version."
-                  else
-                    "Make sure the source file exists, and that it has been provided as an input to the compiler."
-            ]
-    renderSimpleErrorMessage (CannotGetFileInfo path) =
-      paras [ line "Unable to read file info: "
-            , indent . lineS $ path
-            ]
-    renderSimpleErrorMessage (CannotReadFile path) =
-      paras [ line "Unable to read file: "
-            , indent . lineS $ path
-            ]
-    renderSimpleErrorMessage (CannotWriteFile path) =
-      paras [ line "Unable to write file: "
-            , indent . lineS $ path
-            ]
-    renderSimpleErrorMessage (ErrorParsingFFIModule path extra) =
-      paras $ [ line "Unable to parse foreign module:"
-              , indent . lineS $ path
-              ] ++
-              map (indent . lineS) (concatMap Bundle.printErrorMessage (maybeToList extra))
-    renderSimpleErrorMessage (ErrorParsingModule err) =
-      paras [ line "Unable to parse module: "
-            , prettyPrintParseError err
-            ]
-    renderSimpleErrorMessage (ErrorParsingCSTModule err) =
-      paras [ line "Unable to parse module: "
-            , line $ T.pack $ CST.prettyPrintErrorMessage err
-            ]
-    renderSimpleErrorMessage (MissingFFIModule mn) =
-      line $ "The foreign module implementation for module " <> markCode (runModuleName mn) <> " is missing."
-    renderSimpleErrorMessage (UnnecessaryFFIModule mn path) =
-      paras [ line $ "An unnecessary foreign module implementation was provided for module " <> markCode (runModuleName mn) <> ": "
-            , indent . lineS $ path
-            , line $ "Module " <> markCode (runModuleName mn) <> " does not contain any foreign import declarations, so a foreign module is not necessary."
-            ]
-    renderSimpleErrorMessage (MissingFFIImplementations mn idents) =
-      paras [ line $ "The following values are not defined in the foreign module for module " <> markCode (runModuleName mn) <> ": "
-            , indent . paras $ map (line . runIdent) idents
-            ]
-    renderSimpleErrorMessage (UnusedFFIImplementations mn idents) =
-      paras [ line $ "The following definitions in the foreign module for module " <> markCode (runModuleName mn) <> " are unused: "
-            , indent . paras $ map (line . runIdent) idents
-            ]
-    renderSimpleErrorMessage (InvalidFFIIdentifier mn ident) =
-      paras [ line $ "In the FFI module for " <> markCode (runModuleName mn) <> ":"
-            , indent . paras $
-                [ line $ "The identifier " <> markCode ident <> " is not valid in PureScript."
-                , line "Note that exported identifiers in FFI modules must be valid PureScript identifiers."
-                ]
-            ]
-    renderSimpleErrorMessage InvalidDoBind =
-      line "The last statement in a 'do' block must be an expression, but this block ends with a binder."
-    renderSimpleErrorMessage InvalidDoLet =
-      line "The last statement in a 'do' block must be an expression, but this block ends with a let binding."
-    renderSimpleErrorMessage OverlappingNamesInLet =
-      line "The same name was used more than once in a let binding."
-    renderSimpleErrorMessage (InfiniteType ty) =
-      paras [ line "An infinite type was inferred for an expression: "
-            , markCodeBox $ indent $ typeAsBox prettyDepth ty
-            ]
-    renderSimpleErrorMessage (InfiniteKind ki) =
-      paras [ line "An infinite kind was inferred for a type: "
-            , indent $ line $ markCode $ prettyPrintKind ki
-            ]
-    renderSimpleErrorMessage (MultipleValueOpFixities op) =
-      line $ "There are multiple fixity/precedence declarations for operator " <> markCode (showOp op)
-    renderSimpleErrorMessage (MultipleTypeOpFixities op) =
-      line $ "There are multiple fixity/precedence declarations for type operator " <> markCode (showOp op)
-    renderSimpleErrorMessage (OrphanTypeDeclaration nm) =
-      line $ "The type declaration for " <> markCode (showIdent nm) <> " should be followed by its definition."
-    renderSimpleErrorMessage (RedefinedIdent name) =
-      line $ "The value " <> markCode (showIdent name) <> " has been defined multiple times"
-    renderSimpleErrorMessage (UnknownName name@(Qualified Nothing (IdentName (Ident i)))) | i `elem` [ C.bind, C.discard ] =
-      line $ "Unknown " <> printName name <> ". You're probably using do-notation, which the compiler replaces with calls to the " <> markCode i <> " function. Please import " <> markCode i <> " from module " <> markCode "Prelude"
-    renderSimpleErrorMessage (UnknownName name) =
-      line $ "Unknown " <> printName name
-    renderSimpleErrorMessage (UnknownImport mn name) =
-      paras [ line $ "Cannot import " <> printName (Qualified Nothing name) <> " from module " <> markCode (runModuleName mn)
-            , line "It either does not exist or the module does not export it."
-            ]
-    renderSimpleErrorMessage (UnknownImportDataConstructor mn tcon dcon) =
-      line $ "Module " <> runModuleName mn <> " does not export data constructor " <> markCode (runProperName dcon) <> " for type " <> markCode (runProperName tcon)
-    renderSimpleErrorMessage (UnknownExport name) =
-      line $ "Cannot export unknown " <> printName (Qualified Nothing name)
-    renderSimpleErrorMessage (UnknownExportDataConstructor tcon dcon) =
-      line $ "Cannot export data constructor " <> markCode (runProperName dcon) <> " for type " <> markCode (runProperName tcon) <> ", as it has not been declared."
-    renderSimpleErrorMessage (ScopeConflict nm ms) =
-      paras [ line $ "Conflicting definitions are in scope for " <> printName (Qualified Nothing nm) <> " from the following modules:"
-            , indent $ paras $ map (line . markCode . runModuleName) ms
-            ]
-    renderSimpleErrorMessage (ScopeShadowing nm exmn ms) =
-      paras [ line $ "Shadowed definitions are in scope for " <> printName (Qualified Nothing nm) <> " from the following open imports:"
-            , indent $ paras $ map (line . markCode . ("import " <>) . runModuleName) ms
-            , line $ "These will be ignored and the " <> case exmn of
-                Just exmn' -> "declaration from " <> markCode (runModuleName exmn') <> " will be used."
-                Nothing -> "local declaration will be used."
-            ]
-    renderSimpleErrorMessage (DeclConflict new existing) =
-      line $ "Declaration for " <> printName (Qualified Nothing new) <> " conflicts with an existing " <> nameType existing <> " of the same name."
-    renderSimpleErrorMessage (ExportConflict new existing) =
-      line $ "Export for " <> printName new <> " conflicts with " <> printName existing
-    renderSimpleErrorMessage (DuplicateModule mn) =
-      line $ "Module " <> markCode (runModuleName mn) <> " has been defined multiple times"
-    renderSimpleErrorMessage (DuplicateTypeClass pn ss) =
-      paras [ line ("Type class " <> markCode (runProperName pn) <> " has been defined multiple times:")
-            , indent $ line $ displaySourceSpan relPath ss
-            ]
-    renderSimpleErrorMessage (DuplicateInstance pn ss) =
-      paras [ line ("Instance " <> markCode (showIdent pn) <> " has been defined multiple times:")
-            , indent $ line $ displaySourceSpan relPath ss
-            ]
-    renderSimpleErrorMessage (CycleInDeclaration nm) =
-      line $ "The value of " <> markCode (showIdent nm) <> " is undefined here, so this reference is not allowed."
-    renderSimpleErrorMessage (CycleInModules mns) =
-      case mns of
-        [mn] ->
-          line $ "Module " <> markCode (runModuleName mn) <> " imports itself."
-        _ ->
-          paras [ line "There is a cycle in module dependencies in these modules: "
-                , indent $ paras (map (line . markCode . runModuleName) mns)
-                ]
-    renderSimpleErrorMessage (CycleInTypeSynonym name) =
-      paras [ line $ case name of
-                       Just pn -> "A cycle appears in the definition of type synonym " <> markCode (runProperName pn)
-                       Nothing -> "A cycle appears in a set of type synonym definitions."
-            , line "Cycles are disallowed because they can lead to loops in the type checker."
-            , line "Consider using a 'newtype' instead."
-            ]
-    renderSimpleErrorMessage (CycleInTypeClassDeclaration [name]) =
-      paras [ line $ "A type class '" <> markCode (runProperName (disqualify name)) <> "' may not have itself as a superclass." ]
-    renderSimpleErrorMessage (CycleInTypeClassDeclaration names) =
-      paras [ line $ "A cycle appears in a set of type class definitions:"
-            , indent $ line $ "{" <> (T.intercalate ", " (map (markCode . runProperName . disqualify) names)) <> "}"
-            , line "Cycles are disallowed because they can lead to loops in the type checker."
-            ]
-    renderSimpleErrorMessage (NameIsUndefined ident) =
-      line $ "Value " <> markCode (showIdent ident) <> " is undefined."
-    renderSimpleErrorMessage (UndefinedTypeVariable name) =
-      line $ "Type variable " <> markCode (runProperName name) <> " is undefined."
-    renderSimpleErrorMessage (PartiallyAppliedSynonym name) =
-      paras [ line $ "Type synonym " <> markCode (showQualified runProperName name) <> " is partially applied."
-            , line "Type synonyms must be applied to all of their type arguments."
-            ]
-    renderSimpleErrorMessage (EscapedSkolem name Nothing ty) =
-      paras [ line $ "The type variable " <> markCode name <> " has escaped its scope, appearing in the type"
-            , markCodeBox $ indent $ typeAsBox prettyDepth ty
-            ]
-    renderSimpleErrorMessage (EscapedSkolem name (Just srcSpan) ty) =
-      paras [ line $ "The type variable " <> markCode name <> ", bound at"
-            , indent $ line $ displaySourceSpan relPath srcSpan
-            , line "has escaped its scope, appearing in the type"
-            , markCodeBox $ indent $ typeAsBox prettyDepth ty
-            ]
-    renderSimpleErrorMessage (TypesDoNotUnify u1 u2)
-      = let (sorted1, sorted2) = sortRows u1 u2
-
-            sortRows :: Ord a => Type a -> Type a -> (Type a, Type a)
-            sortRows r1@RCons{} r2@RCons{} = sortRows' (rowToList r1) (rowToList r2)
-            sortRows t1 t2 = (t1, t2)
-
-            -- Put the common labels last
-            sortRows' :: Ord a => ([RowListItem a], Type a) -> ([RowListItem a], Type a) -> (Type a, Type a)
-            sortRows' (s1, r1) (s2, r2) =
-                  let elem' s (RowListItem _ name ty) = any (\(RowListItem _ name' ty') -> name == name' && eqType ty ty') s
-                      sort' = sortBy (comparing $ \(RowListItem _ name ty) -> (name, ty))
-                      (common1, unique1) = partition (elem' s2) s1
-                      (common2, unique2) = partition (elem' s1) s2
-                  in ( rowFromList (sort' unique1 ++ sort' common1, r1)
-                     , rowFromList (sort' unique2 ++ sort' common2, r2)
-                     )
-        in paras [ line "Could not match type"
-                 , markCodeBox $ indent $ typeAsBox prettyDepth sorted1
-                 , line "with type"
-                 , markCodeBox $ indent $ typeAsBox prettyDepth sorted2
-                 ]
-
-    renderSimpleErrorMessage (KindsDoNotUnify k1 k2) =
-      paras [ line "Could not match kind"
-            , indent $ line $ markCode $ prettyPrintKind k1
-            , line "with kind"
-            , indent $ line $ markCode $ prettyPrintKind k2
-            ]
-    renderSimpleErrorMessage (ConstrainedTypeUnified t1 t2) =
-      paras [ line "Could not match constrained type"
-            , markCodeBox $ indent $ typeAsBox prettyDepth t1
-            , line "with type"
-            , markCodeBox $ indent $ typeAsBox prettyDepth t2
-            ]
-    renderSimpleErrorMessage (OverlappingInstances _ _ []) = internalError "OverlappingInstances: empty instance list"
-    renderSimpleErrorMessage (OverlappingInstances nm ts ds) =
-      paras [ line "Overlapping type class instances found for"
-            , markCodeBox $ indent $ Box.hsep 1 Box.left
-                [ line (showQualified runProperName nm)
-                , Box.vcat Box.left (map (typeAtomAsBox prettyDepth) ts)
-                ]
-            , line "The following instances were found:"
-            , indent $ paras (map (line . showQualified showIdent) ds)
-            ]
-    renderSimpleErrorMessage (UnknownClass nm) =
-      paras [ line "No type class instance was found for class"
-            , markCodeBox $ indent $ line (showQualified runProperName nm)
-            , line "because the class was not in scope. Perhaps it was not exported."
-            ]
-    renderSimpleErrorMessage (NoInstanceFound (Constraint _ C.Fail [ ty ] _)) | Just box <- toTypelevelString ty =
-      paras [ line "A custom type error occurred while solving type class constraints:"
-            , indent box
-            ]
-    renderSimpleErrorMessage (NoInstanceFound (Constraint _ C.Partial
-                                                          _
-                                                          (Just (PartialConstraintData bs b)))) =
-      paras [ line "A case expression could not be determined to cover all inputs."
-            , line "The following additional cases are required to cover all inputs:"
-            , indent $ paras $
-                Box.hsep 1 Box.left
-                  (map (paras . map (line . markCode)) (transpose bs))
-                  : [line "..." | not b]
-            , line "Alternatively, add a Partial constraint to the type of the enclosing value."
-            ]
-    renderSimpleErrorMessage (NoInstanceFound (Constraint _ C.Discard [ty] _)) =
-      paras [ line "A result of type"
-            , markCodeBox $ indent $ typeAsBox prettyDepth ty
-            , line "was implicitly discarded in a do notation block."
-            , line ("You can use " <> markCode "_ <- ..." <> " to explicitly discard the result.")
-            ]
-    renderSimpleErrorMessage (NoInstanceFound (Constraint _ nm ts _)) =
-      paras [ line "No type class instance was found for"
-            , markCodeBox $ indent $ Box.hsep 1 Box.left
-                [ line (showQualified runProperName nm)
-                , Box.vcat Box.left (map (typeAtomAsBox prettyDepth) ts)
-                ]
-            , paras [ line "The instance head contains unknown type variables. Consider adding a type annotation."
-                    | any containsUnknowns ts
-                    ]
-            ]
-      where
-      containsUnknowns :: Type a -> Bool
-      containsUnknowns = everythingOnTypes (||) go
-        where
-        go TUnknown{} = True
-        go _ = False
-    renderSimpleErrorMessage (AmbiguousTypeVariables t _) =
-      paras [ line "The inferred type"
-            , markCodeBox $ indent $ typeAsBox prettyDepth t
-            , line "has type variables which are not mentioned in the body of the type. Consider adding a type annotation."
-            ]
-    renderSimpleErrorMessage (PossiblyInfiniteInstance nm ts) =
-      paras [ line "Type class instance for"
-            , markCodeBox $ indent $ Box.hsep 1 Box.left
-                [ line (showQualified runProperName nm)
-                , Box.vcat Box.left (map (typeAtomAsBox prettyDepth) ts)
-                ]
-            , line "is possibly infinite."
-            ]
-    renderSimpleErrorMessage (CannotDerive nm ts) =
-      paras [ line "Cannot derive a type class instance for"
-            , markCodeBox $ indent $ Box.hsep 1 Box.left
-                [ line (showQualified runProperName nm)
-                , Box.vcat Box.left (map (typeAtomAsBox prettyDepth) ts)
-                ]
-            , line "since instances of this type class are not derivable."
-            ]
-    renderSimpleErrorMessage (InvalidNewtypeInstance nm ts) =
-      paras [ line "Cannot derive newtype instance for"
-            , markCodeBox $ indent $ Box.hsep 1 Box.left
-                [ line (showQualified runProperName nm)
-                , Box.vcat Box.left (map (typeAtomAsBox prettyDepth) ts)
-                ]
-            , line "Make sure this is a newtype."
-            ]
-    renderSimpleErrorMessage (MissingNewtypeSuperclassInstance su cl ts) =
-      paras [ line "The derived newtype instance for"
-            , markCodeBox $ indent $ Box.hsep 1 Box.left
-                [ line (showQualified runProperName cl)
-                , Box.vcat Box.left (map (typeAtomAsBox prettyDepth) ts)
-                ]
-            , line $ "does not include a derived superclass instance for " <> markCode (showQualified runProperName su) <> "."
-            ]
-    renderSimpleErrorMessage (UnverifiableSuperclassInstance su cl ts) =
-      paras [ line "The derived newtype instance for"
-            , markCodeBox $ indent $ Box.hsep 1 Box.left
-                [ line (showQualified runProperName cl)
-                , Box.vcat Box.left (map (typeAtomAsBox prettyDepth) ts)
-                ]
-            , line $ "implies an superclass instance for " <> markCode (showQualified runProperName su) <> " which could not be verified."
-            ]
-    renderSimpleErrorMessage (InvalidDerivedInstance nm ts argCount) =
-      paras [ line "Cannot derive the type class instance"
-            , markCodeBox $ indent $ Box.hsep 1 Box.left
-                [ line (showQualified runProperName nm)
-                , Box.vcat Box.left (map (typeAtomAsBox prettyDepth) ts)
-                ]
-            , line $ fold $
-                [ "because the "
-                , markCode (showQualified runProperName nm)
-                , " type class has "
-                , T.pack (show argCount)
-                , " type "
-                , if argCount == 1 then "argument" else "arguments"
-                , ", but the declaration specifies " <> T.pack (show (length ts)) <> "."
-                ]
-            ]
-    renderSimpleErrorMessage (ExpectedTypeConstructor nm ts ty) =
-      paras [ line "Cannot derive the type class instance"
-            , markCodeBox $ indent $ Box.hsep 1 Box.left
-                [ line (showQualified runProperName nm)
-                , Box.vcat Box.left (map (typeAtomAsBox prettyDepth) ts)
-                ]
-            , "because the type"
-            , markCodeBox $ indent $ typeAsBox prettyDepth ty
-            , line "is not of the required form T a_1 ... a_n, where T is a type constructor defined in the same module."
-            ]
-    renderSimpleErrorMessage (CannotFindDerivingType nm) =
-      line $ "Cannot derive a type class instance, because the type declaration for " <> markCode (runProperName nm) <> " could not be found."
-    renderSimpleErrorMessage (DuplicateLabel l expr) =
-      paras $ [ line $ "Label " <> markCode (prettyPrintLabel l) <> " appears more than once in a row type." ]
-                       <> foldMap (\expr' -> [ line "Relevant expression: "
-                                             , markCodeBox $ indent $ prettyPrintValue prettyDepth expr'
-                                             ]) expr
-    renderSimpleErrorMessage (DuplicateTypeArgument name) =
-      line $ "Type argument " <> markCode name <> " appears more than once."
-    renderSimpleErrorMessage (DuplicateValueDeclaration nm) =
-      line $ "Multiple value declarations exist for " <> markCode (showIdent nm) <> "."
-    renderSimpleErrorMessage (ArgListLengthsDiffer ident) =
-      line $ "Argument list lengths differ in declaration " <> markCode (showIdent ident)
-    renderSimpleErrorMessage (OverlappingArgNames ident) =
-      line $ "Overlapping names in function/binder" <> foldMap ((" in declaration " <>) . showIdent) ident
-    renderSimpleErrorMessage (MissingClassMember identsAndTypes) =
-      paras $ [ line "The following type class members have not been implemented:"
-              , Box.vcat Box.left
-                [ markCodeBox $ Box.text (T.unpack (showIdent ident)) Box.<> " :: " Box.<> typeAsBox prettyDepth ty
-                | (ident, ty) <- NEL.toList identsAndTypes ]
-              ]
-    renderSimpleErrorMessage (ExtraneousClassMember ident className) =
-      line $ "" <> markCode (showIdent ident) <> " is not a member of type class " <> markCode (showQualified runProperName className)
-    renderSimpleErrorMessage (ExpectedType ty kind) =
-      paras [ line $ "In a type-annotated expression " <> markCode "x :: t" <> ", the type " <> markCode "t" <> " must have kind " <> markCode (prettyPrintKind kindType) <> "."
-            , line "The error arises from the type"
-            , markCodeBox $ indent $ typeAsBox prettyDepth ty
-            , line "having the kind"
-            , indent $ line $ markCode $ prettyPrintKind kind
-            , line "instead."
-            ]
-    renderSimpleErrorMessage (IncorrectConstructorArity nm expected actual) =
-      paras [ line $ "Data constructor " <> markCode (showQualified runProperName nm) <> " was given " <> T.pack (show actual) <> " arguments in a case expression, but expected " <> T.pack (show expected) <> " arguments."
-            , line $ "This problem can be fixed by giving " <> markCode (showQualified runProperName nm) <> " " <> T.pack (show expected) <> " arguments."
-            ]
-    renderSimpleErrorMessage (ExprDoesNotHaveType expr ty) =
-      paras [ line "Expression"
-            , markCodeBox $ indent $ prettyPrintValue prettyDepth expr
-            , line "does not have type"
-            , markCodeBox $ indent $ typeAsBox prettyDepth ty
-            ]
-    renderSimpleErrorMessage (PropertyIsMissing prop) =
-      line $ "Type of expression lacks required label " <> markCode (prettyPrintLabel prop) <> "."
-    renderSimpleErrorMessage (AdditionalProperty prop) =
-      line $ "Type of expression contains additional label " <> markCode (prettyPrintLabel prop) <> "."
-    renderSimpleErrorMessage TypeSynonymInstance =
-      line "Type class instances for type synonyms are disallowed."
-    renderSimpleErrorMessage (OrphanInstance nm cnm nonOrphanModules ts) =
-      paras [ line $ "Orphan instance " <> markCode (showIdent nm) <> " found for "
-            , markCodeBox $ indent $ Box.hsep 1 Box.left
-                [ line (showQualified runProperName cnm)
-                , Box.vcat Box.left (map (typeAtomAsBox prettyDepth) ts)
-                ]
-            , Box.vcat Box.left $ case modulesToList of
-                [] -> [ line "There is nowhere this instance can be placed without being an orphan."
-                      , line "A newtype wrapper can be used to avoid this problem."
-                      ]
-                _  -> [ Box.text $ "This problem can be resolved by declaring the instance in "
-                          <> T.unpack formattedModules
-                          <> ", or by defining the instance on a newtype wrapper."
-                      ]
-                ]
-      where
-        modulesToList = S.toList $ S.delete (moduleNameFromString "Prim") nonOrphanModules
-        formattedModules = T.intercalate " or " ((markCode . runModuleName) <$> modulesToList)
-    renderSimpleErrorMessage (InvalidNewtype name) =
-      paras [ line $ "Newtype " <> markCode (runProperName name) <> " is invalid."
-            , line "Newtypes must define a single constructor with a single argument."
-            ]
-    renderSimpleErrorMessage (InvalidInstanceHead ty) =
-      paras [ line "Type class instance head is invalid due to use of type"
-            , markCodeBox $ indent $ typeAsBox prettyDepth ty
-            , line "All types appearing in instance declarations must be of the form T a_1 .. a_n, where each type a_i is of the same form, unless the type is fully determined by other type class arguments via functional dependencies."
-            ]
-    renderSimpleErrorMessage (TransitiveExportError x ys) =
-      paras [ line $ "An export for " <> markCode (prettyPrintExport x) <> " requires the following to also be exported: "
-            , indent $ paras $ map (line . markCode . prettyPrintExport) ys
-            ]
-    renderSimpleErrorMessage (TransitiveDctorExportError x ctor) =
-      paras [ line $ "An export for " <> markCode (prettyPrintExport x) <> " requires the following data constructor to also be exported: "
-            , indent $ line $ markCode $ runProperName ctor
-            ]
-    renderSimpleErrorMessage (ShadowedName nm) =
-      line $ "Name " <> markCode (showIdent nm) <> " was shadowed."
-    renderSimpleErrorMessage (ShadowedTypeVar tv) =
-      line $ "Type variable " <> markCode tv <> " was shadowed."
-    renderSimpleErrorMessage (UnusedTypeVar tv) =
-      line $ "Type variable " <> markCode tv <> " is ambiguous, since it is unused in the polymorphic type which introduces it."
-    renderSimpleErrorMessage (MisleadingEmptyTypeImport mn name) =
-      line $ "Importing type " <> markCode (runProperName name <> "(..)") <> " from " <> markCode (runModuleName mn) <> " is misleading as it has no exported data constructors."
-    renderSimpleErrorMessage (ImportHidingModule name) =
-      paras [ line "hiding imports cannot be used to hide modules."
-            , line $ "An attempt was made to hide the import of " <> markCode (runModuleName name)
-            ]
-    renderSimpleErrorMessage (WildcardInferredType ty ctx) =
-      paras $ [ line "Wildcard type definition has the inferred type "
-              , markCodeBox $ indent $ typeAsBox prettyDepth ty
-              ] <> renderContext ctx
-    renderSimpleErrorMessage (HoleInferredType name ty ctx ts) =
-      let
-        maxTSResults = 15
-        tsResult = case ts of
-          Just (TSAfter{tsAfterIdentifiers=idents}) | not (null idents) ->
-            let
-              formatTS (names, types) =
-                let
-                  idBoxes = Box.text . T.unpack . showQualified id <$> names
-                  tyBoxes = (\t -> BoxHelpers.indented
-                              (Box.text ":: " Box.<> typeAsBox prettyDepth t)) <$> types
-                  longestId = maximum (map Box.cols idBoxes)
-                in
-                  Box.vcat Box.top $
-                      zipWith (Box.<>)
-                      (Box.alignHoriz Box.left longestId <$> idBoxes)
-                      tyBoxes
-            in [ line "You could substitute the hole with one of these values:"
-               , markCodeBox (indent (formatTS (unzip (take maxTSResults idents))))
-               ]
-          _ -> []
-      in
-        paras $ [ line $ "Hole '" <> markCode name <> "' has the inferred type "
-                , markCodeBox (indent (typeAsBox maxBound ty))
-                ] ++ tsResult ++ renderContext ctx
-    renderSimpleErrorMessage (MissingTypeDeclaration ident ty) =
-      paras [ line $ "No type declaration was provided for the top-level declaration of " <> markCode (showIdent ident) <> "."
-            , line "It is good practice to provide type declarations as a form of documentation."
-            , line $ "The inferred type of " <> markCode (showIdent ident) <> " was:"
-            , markCodeBox $ indent $ typeAsBox prettyDepth ty
-            ]
-    renderSimpleErrorMessage (OverlappingPattern bs b) =
-      paras $ [ line "A case expression contains unreachable cases:\n"
-              , Box.hsep 1 Box.left (map (paras . map (line . prettyPrintBinderAtom)) (transpose bs))
-              ] ++
-              [ line "..." | not b ]
-    renderSimpleErrorMessage IncompleteExhaustivityCheck =
-      paras [ line "An exhaustivity check was abandoned due to too many possible cases."
-            , line "You may want to decompose your data types into smaller types."
-            ]
-    renderSimpleErrorMessage (UnusedImport name) =
-      line $ "The import of module " <> markCode (runModuleName name) <> " is redundant"
-
-    renderSimpleErrorMessage msg@(UnusedExplicitImport mn names _ _) =
-      paras [ line $ "The import of module " <> markCode (runModuleName mn) <> " contains the following unused references:"
-            , indent $ paras $ map (line . markCode . runName . Qualified Nothing) names
-            , line "It could be replaced with:"
-            , indent $ line $ markCode $ showSuggestion msg ]
-
-    renderSimpleErrorMessage msg@(UnusedDctorImport mn name _ _) =
-      paras [line $ "The import of type " <> markCode (runProperName name)
-                    <> " from module " <> markCode (runModuleName mn) <> " includes data constructors but only the type is used"
-            , line "It could be replaced with:"
-            , indent $ line $ markCode $ showSuggestion msg ]
-
-    renderSimpleErrorMessage msg@(UnusedDctorExplicitImport mn name names _ _) =
-      paras [ line $ "The import of type " <> markCode (runProperName name)
-                     <> " from module " <> markCode (runModuleName mn) <> " includes the following unused data constructors:"
-            , indent $ paras $ map (line . markCode . runProperName) names
-            , line "It could be replaced with:"
-            , indent $ line $ markCode $ showSuggestion msg ]
-
-    renderSimpleErrorMessage (DuplicateSelectiveImport name) =
-      line $ "There is an existing import of " <> markCode (runModuleName name) <> ", consider merging the import lists"
-
-    renderSimpleErrorMessage (DuplicateImport name imp qual) =
-      line $ "Duplicate import of " <> markCode (prettyPrintImport name imp qual)
-
-    renderSimpleErrorMessage (DuplicateImportRef name) =
-      line $ "Import list contains multiple references to " <> printName (Qualified Nothing name)
-
-    renderSimpleErrorMessage (DuplicateExportRef name) =
-      line $ "Export list contains multiple references to " <> printName (Qualified Nothing name)
-
-    renderSimpleErrorMessage (IntOutOfRange value backend lo hi) =
-      paras [ line $ "Integer value " <> markCode (T.pack (show value)) <> " is out of range for the " <> backend <> " backend."
-            , line $ "Acceptable values fall within the range " <> markCode (T.pack (show lo)) <> " to " <> markCode (T.pack (show hi)) <> " (inclusive)." ]
-
-    renderSimpleErrorMessage msg@(ImplicitQualifiedImport importedModule asModule _) =
-      paras [ line $ "Module " <> markCode (runModuleName importedModule) <> " was imported as " <> markCode (runModuleName asModule) <> " with unspecified imports."
-            , line $ "As there are multiple modules being imported as " <> markCode (runModuleName asModule) <> ", consider using the explicit form:"
-            , indent $ line $ markCode $ showSuggestion msg
-            ]
-    renderSimpleErrorMessage msg@(ImplicitQualifiedImportReExport importedModule asModule _) =
-      paras [ line $ "Module " <> markCode (runModuleName importedModule) <> " was imported as " <> markCode (runModuleName asModule) <> " with unspecified imports."
-            , line $ "As this module is being re-exported, consider using the explicit form:"
-            , indent $ line $ markCode $ showSuggestion msg
-            ]
-
-    renderSimpleErrorMessage msg@(ImplicitImport mn _) =
-      paras [ line $ "Module " <> markCode (runModuleName mn) <> " has unspecified imports, consider using the explicit form: "
-            , indent $ line $ markCode $ showSuggestion msg
-            ]
-
-    renderSimpleErrorMessage msg@(HidingImport mn _) =
-      paras [ line $ "Module " <> markCode (runModuleName mn) <> " has unspecified imports, consider using the inclusive form: "
-            , indent $ line $ markCode $ showSuggestion msg
-            ]
-
-    renderSimpleErrorMessage (CaseBinderLengthDiffers l bs) =
-      paras [ line "Binder list length differs in case alternative:"
-            , indent $ line $ T.intercalate ", " $ fmap prettyPrintBinderAtom bs
-            , line $ "Expecting " <> T.pack (show l) <> " binder" <> (if l == 1 then "" else "s") <> "."
-            ]
-
-    renderSimpleErrorMessage IncorrectAnonymousArgument =
-      line "An anonymous function argument appears in an invalid context."
-
-    renderSimpleErrorMessage (InvalidOperatorInBinder op fn) =
-      paras [ line $ "Operator " <> markCode (showQualified showOp op) <> " cannot be used in a pattern as it is an alias for function " <> showQualified showIdent fn <> "."
-            , line "Only aliases for data constructors may be used in patterns."
-            ]
-
-    renderSimpleErrorMessage (CannotGeneralizeRecursiveFunction ident ty) =
-      paras [ line $ "Unable to generalize the type of the recursive function " <> markCode (showIdent ident) <> "."
-            , line $ "The inferred type of " <> markCode (showIdent ident) <> " was:"
-            , markCodeBox $ indent $ typeAsBox prettyDepth ty
-            , line "Try adding a type signature."
-            ]
-
-    renderSimpleErrorMessage (CannotDeriveNewtypeForData tyName) =
-      paras [ line $ "Cannot derive an instance of the " <> markCode "Newtype" <> " class for non-newtype " <> markCode (runProperName tyName) <> "."
-            ]
-
-    renderSimpleErrorMessage (ExpectedWildcard tyName) =
-      paras [ line $ "Expected a type wildcard (_) when deriving an instance for " <> markCode (runProperName tyName) <> "."
-            ]
-
-    renderSimpleErrorMessage (CannotUseBindWithDo name) =
-      paras [ line $ "The name " <> markCode (showIdent name) <> " cannot be brought into scope in a do notation block, since do notation uses the same name."
-            ]
-
-    renderSimpleErrorMessage (ClassInstanceArityMismatch dictName className expected actual) =
-      paras [ line $ "The type class " <> markCode (showQualified runProperName className) <>
-                     " expects " <> T.pack (show expected) <> " " <> argsMsg <> "."
-            , line $ "But the instance " <> markCode (showIdent dictName) <> mismatchMsg <> T.pack (show actual) <> "."
-            ]
-        where
-          mismatchMsg = if actual > expected then " provided " else " only provided "
-          argsMsg = if expected > 1 then "arguments" else "argument"
-
-    renderSimpleErrorMessage (UserDefinedWarning msgTy) =
-      let msg = fromMaybe (typeAsBox prettyDepth msgTy) (toTypelevelString msgTy) in
-      paras [ line "A custom warning occurred while solving type class constraints:"
-            , indent msg
-            ]
-
-    renderSimpleErrorMessage (UnusableDeclaration ident unexplained) =
-      paras $
-        [ line $ "The declaration " <> markCode (showIdent ident) <> " contains arguments that couldn't be determined."
-        ] <>
-
-        case unexplained of
-          [required] ->
-            [ line $ "These arguments are: { " <> T.intercalate ", " required <> " }"
-            ]
-
-          options  ->
-            [ line "To fix this, one of the following sets of variables must be determined:"
-            , Box.moveRight 2 . Box.vsep 0 Box.top $
-                map (\set -> line $ "{ " <> T.intercalate ", " set <> " }") options
-            ]
-
-    renderSimpleErrorMessage (CannotDefinePrimModules mn) =
-      paras $
-        [ line $ "The module name " <> markCode (runModuleName mn) <> " is in the Prim namespace."
-        , line $ "The Prim namespace is reserved for compiler-defined terms."
-        ]
-
-    renderSimpleErrorMessage (MixedAssociativityError opsWithAssoc) =
-      paras
-        [ line "Cannot parse an expression that uses operators of the same precedence but mixed associativity:"
-        , indent $ paras $ map (\(name, assoc) -> line $ markCode (showQualified showOp name) <> " is " <> markCode (T.pack (showAssoc assoc))) (NEL.toList opsWithAssoc)
-        , line "Use parentheses to resolve this ambiguity."
-        ]
-
-    renderSimpleErrorMessage (NonAssociativeError ops) =
-      if NEL.length ops == 1
-        then
-          paras
-            [ line $ "Cannot parse an expression that uses multiple instances of the non-associative operator " <> markCode (showQualified showOp (NEL.head ops)) <> "."
-            , line "Use parentheses to resolve this ambiguity."
-            ]
-        else
-          paras
-            [ line "Cannot parse an expression that uses multiple non-associative operators of the same precedence:"
-            , indent $ paras $ map (line . markCode . showQualified showOp) (NEL.toList ops)
-            , line "Use parentheses to resolve this ambiguity."
-            ]
-
-    renderHint :: ErrorMessageHint -> Box.Box -> Box.Box
-    renderHint (ErrorUnifyingTypes t1 t2) detail =
-      paras [ detail
-            , Box.hsep 1 Box.top [ line "while trying to match type"
-                                 , markCodeBox $ typeAsBox prettyDepth t1
-                                 ]
-            , Box.moveRight 2 $ Box.hsep 1 Box.top [ line "with type"
-                                                   , markCodeBox $ typeAsBox prettyDepth t2
-                                                   ]
-            ]
-    renderHint (ErrorInExpression expr) detail =
-      paras [ detail
-            , Box.hsep 1 Box.top [ Box.text "in the expression"
-                                 , markCodeBox $ markCodeBox $ prettyPrintValue prettyDepth expr
-                                 ]
-            ]
-    renderHint (ErrorInModule mn) detail =
-      paras [ line $ "in module " <> markCode (runModuleName mn)
-            , detail
-            ]
-    renderHint (ErrorInSubsumption t1 t2) detail =
-      paras [ detail
-            , Box.hsep 1 Box.top [ line "while checking that type"
-                                 , markCodeBox $ typeAsBox prettyDepth t1
-                                 ]
-            , Box.moveRight 2 $ Box.hsep 1 Box.top [ line "is at least as general as type"
-                                                   , markCodeBox $ typeAsBox prettyDepth t2
-                                                   ]
-            ]
-    renderHint (ErrorInInstance nm ts) detail =
-      paras [ detail
-            , line "in type class instance"
-            , markCodeBox $ indent $ Box.hsep 1 Box.top
-               [ line $ showQualified runProperName nm
-               , Box.vcat Box.left (map (typeAtomAsBox prettyDepth) ts)
-               ]
-            ]
-    renderHint (ErrorCheckingKind ty) detail =
-      paras [ detail
-            , Box.hsep 1 Box.top [ line "while checking the kind of"
-                                 , markCodeBox $ typeAsBox prettyDepth ty
-                                 ]
-            ]
-    renderHint ErrorCheckingGuard detail =
-      paras [ detail
-            , line "while checking the type of a guard clause"
-            ]
-    renderHint (ErrorInferringType expr) detail =
-      paras [ detail
-            , Box.hsep 1 Box.top [ line "while inferring the type of"
-                                 , markCodeBox $ prettyPrintValue prettyDepth expr
-                                 ]
-            ]
-    renderHint (ErrorCheckingType expr ty) detail =
-      paras [ detail
-            , Box.hsep 1 Box.top [ line "while checking that expression"
-                                 , markCodeBox $ prettyPrintValue prettyDepth expr
-                                 ]
-            , Box.moveRight 2 $ Box.hsep 1 Box.top [ line "has type"
-                                                   , markCodeBox $ typeAsBox prettyDepth ty
-                                                   ]
-            ]
-    renderHint (ErrorCheckingAccessor expr prop) detail =
-      paras [ detail
-            , Box.hsep 1 Box.top [ line "while checking type of property accessor"
-                                 , markCodeBox $ prettyPrintValue prettyDepth (Accessor prop expr)
-                                 ]
-            ]
-    renderHint (ErrorInApplication f t a) detail =
-      paras [ detail
-            , Box.hsep 1 Box.top [ line "while applying a function"
-                                 , markCodeBox $ prettyPrintValue prettyDepth f
-                                 ]
-            , Box.moveRight 2 $ Box.hsep 1 Box.top [ line "of type"
-                                                   , markCodeBox $ typeAsBox prettyDepth t
-                                                   ]
-            , Box.moveRight 2 $ Box.hsep 1 Box.top [ line "to argument"
-                                                   , markCodeBox $ prettyPrintValue prettyDepth a
-                                                   ]
-            ]
-    renderHint (ErrorInDataConstructor nm) detail =
-      paras [ detail
-            , line $ "in data constructor " <> markCode (runProperName nm)
-            ]
-    renderHint (ErrorInTypeConstructor nm) detail =
-      paras [ detail
-            , line $ "in type constructor " <> markCode (runProperName nm)
-            ]
-    renderHint (ErrorInBindingGroup nms) detail =
-      paras [ detail
-            , line $ "in binding group " <> T.intercalate ", " (NEL.toList (fmap showIdent nms))
-            ]
-    renderHint (ErrorInDataBindingGroup nms) detail =
-      paras [ detail
-            , line $ "in data binding group " <> T.intercalate ", " (map runProperName nms)
-            ]
-    renderHint (ErrorInTypeSynonym name) detail =
-      paras [ detail
-            , line $ "in type synonym " <> markCode (runProperName name)
-            ]
-    renderHint (ErrorInValueDeclaration n) detail =
-      paras [ detail
-            , line $ "in value declaration " <> markCode (showIdent n)
-            ]
-    renderHint (ErrorInTypeDeclaration n) detail =
-      paras [ detail
-            , line $ "in type declaration for " <> markCode (showIdent n)
-            ]
-    renderHint (ErrorInTypeClassDeclaration name) detail =
-      paras [ detail
-            , line $ "in type class declaration for " <> markCode (runProperName name)
-            ]
-    renderHint (ErrorInForeignImport nm) detail =
-      paras [ detail
-            , line $ "in foreign import " <> markCode (showIdent nm)
-            ]
-    renderHint (ErrorSolvingConstraint (Constraint _ nm ts _)) detail =
-      paras [ detail
-            , line "while solving type class constraint"
-            , markCodeBox $ indent $ Box.hsep 1 Box.left
-                [ line (showQualified runProperName nm)
-                , Box.vcat Box.left (map (typeAtomAsBox prettyDepth) ts)
-                ]
-            ]
-    renderHint (PositionedError srcSpan) detail =
-      paras [ line $ "at " <> displaySourceSpan relPath (NEL.head srcSpan)
-            , detail
-            ]
-
-    renderContext :: Context -> [Box.Box]
-    renderContext [] = []
-    renderContext ctx =
-      [ line "in the following context:"
-      , indent $ paras
-          [ Box.hcat Box.left [ Box.text (T.unpack (showIdent ident) ++ " :: ")
-                              , markCodeBox $ typeAsBox prettyDepth ty'
-                              ]
-          | (ident, ty') <- take 5 ctx
-          ]
-      ]
-
-    printName :: Qualified Name -> Text
-    printName qn = nameType (disqualify qn) <> " " <> markCode (runName qn)
-
-    nameType :: Name -> Text
-    nameType (IdentName _) = "value"
-    nameType (ValOpName _) = "operator"
-    nameType (TyName _) = "type"
-    nameType (TyOpName _) = "type operator"
-    nameType (DctorName _) = "data constructor"
-    nameType (TyClassName _) = "type class"
-    nameType (ModName _) = "module"
-    nameType (KiName _) = "kind"
-
-    runName :: Qualified Name -> Text
-    runName (Qualified mn (IdentName name)) =
-      showQualified showIdent (Qualified mn name)
-    runName (Qualified mn (ValOpName op)) =
-      showQualified showOp (Qualified mn op)
-    runName (Qualified mn (TyName name)) =
-      showQualified runProperName (Qualified mn name)
-    runName (Qualified mn (TyOpName op)) =
-      showQualified showOp (Qualified mn op)
-    runName (Qualified mn (DctorName name)) =
-      showQualified runProperName (Qualified mn name)
-    runName (Qualified mn (TyClassName name)) =
-      showQualified runProperName (Qualified mn name)
-    runName (Qualified mn (KiName name)) =
-      showQualified runProperName (Qualified mn name)
-    runName (Qualified Nothing (ModName name)) =
-      runModuleName name
-    runName (Qualified _ ModName{}) =
-      internalError "qualified ModName in runName"
-
-  prettyDepth :: Int
-  prettyDepth | full = 1000
-              | otherwise = 3
-
-  levelText :: Text
-  levelText = case level of
-    Error -> "error"
-    Warning -> "warning"
-
-  paras :: [Box.Box] -> Box.Box
-  paras = Box.vcat Box.left
-
-  -- | Simplify an error message
-  simplifyErrorMessage :: ErrorMessage -> ErrorMessage
-  simplifyErrorMessage (ErrorMessage hints simple) = ErrorMessage (simplifyHints hints) simple
-    where
-    -- Take the last instance of each "hint category"
-    simplifyHints :: [ErrorMessageHint] -> [ErrorMessageHint]
-    simplifyHints = reverse . nubBy categoriesEqual . stripRedudantHints simple . reverse
-
-    -- Don't remove hints in the "other" category
-    categoriesEqual :: ErrorMessageHint -> ErrorMessageHint -> Bool
-    categoriesEqual x y =
-      case (hintCategory x, hintCategory y) of
-        (OtherHint, _) -> False
-        (_, OtherHint) -> False
-        (c1, c2) -> c1 == c2
-
-    -- | See https://github.com/purescript/purescript/issues/1802
-    stripRedudantHints :: SimpleErrorMessage -> [ErrorMessageHint] -> [ErrorMessageHint]
-    stripRedudantHints ExprDoesNotHaveType{} = stripFirst isCheckHint
-      where
-      isCheckHint ErrorCheckingType{} = True
-      isCheckHint _ = False
-    stripRedudantHints TypesDoNotUnify{} = stripFirst isUnifyHint
-      where
-      isUnifyHint ErrorUnifyingTypes{} = True
-      isUnifyHint _ = False
-    stripRedudantHints NoInstanceFound{} = stripFirst isSolverHint
-      where
-      isSolverHint ErrorSolvingConstraint{} = True
-      isSolverHint _ = False
-    stripRedudantHints _ = id
-
-    stripFirst :: (ErrorMessageHint -> Bool) -> [ErrorMessageHint] -> [ErrorMessageHint]
-    stripFirst p (PositionedError pos : hs) = PositionedError pos : stripFirst p hs
-    stripFirst p (ErrorInModule mn    : hs) = ErrorInModule mn    : stripFirst p hs
-    stripFirst p (hint                : hs)
-      | p hint = hs
-      | otherwise = hint : hs
-    stripFirst _ [] = []
-
-  hintCategory :: ErrorMessageHint -> HintCategory
-  hintCategory ErrorCheckingType{}                  = ExprHint
-  hintCategory ErrorInferringType{}                 = ExprHint
-  hintCategory ErrorInExpression{}                  = ExprHint
-  hintCategory ErrorUnifyingTypes{}                 = CheckHint
-  hintCategory ErrorInSubsumption{}                 = CheckHint
-  hintCategory ErrorInApplication{}                 = CheckHint
-  hintCategory ErrorCheckingKind{}                  = CheckHint
-  hintCategory ErrorSolvingConstraint{}             = SolverHint
-  hintCategory PositionedError{}                    = PositionHint
-  hintCategory _                                    = OtherHint
-
--- Pretty print and export declaration
-prettyPrintExport :: DeclarationRef -> Text
-prettyPrintExport (TypeRef _ pn _) = runProperName pn
-prettyPrintExport ref =
-  fromMaybe
-    (internalError "prettyPrintRef returned Nothing in prettyPrintExport")
-    (prettyPrintRef ref)
-
-prettyPrintImport :: ModuleName -> ImportDeclarationType -> Maybe ModuleName -> Text
-prettyPrintImport mn idt qual =
-  let i = case idt of
-            Implicit -> runModuleName mn
-            Explicit refs -> runModuleName mn <> " (" <> T.intercalate ", " (mapMaybe prettyPrintRef refs) <> ")"
-            Hiding refs -> runModuleName mn <> " hiding (" <> T.intercalate "," (mapMaybe prettyPrintRef refs) <> ")"
-  in i <> maybe "" (\q -> " as " <> runModuleName q) qual
-
-prettyPrintRef :: DeclarationRef -> Maybe Text
-prettyPrintRef (TypeRef _ pn Nothing) =
-  Just $ runProperName pn <> "(..)"
-prettyPrintRef (TypeRef _ pn (Just [])) =
-  Just $ runProperName pn
-prettyPrintRef (TypeRef _ pn (Just dctors)) =
-  Just $ runProperName pn <> "(" <> T.intercalate ", " (map runProperName dctors) <> ")"
-prettyPrintRef (TypeOpRef _ op) =
-  Just $ "type " <> showOp op
-prettyPrintRef (ValueRef _ ident) =
-  Just $ showIdent ident
-prettyPrintRef (ValueOpRef _ op) =
-  Just $ showOp op
-prettyPrintRef (TypeClassRef _ pn) =
-  Just $ "class " <> runProperName pn
-prettyPrintRef (TypeInstanceRef _ ident) =
-  Just $ showIdent ident
-prettyPrintRef (ModuleRef _ name) =
-  Just $ "module " <> runModuleName name
-prettyPrintRef (KindRef _ pn) =
-  Just $ "kind " <> runProperName pn
-prettyPrintRef ReExportRef{} =
-  Nothing
-
--- | Pretty print multiple errors
-prettyPrintMultipleErrors :: PPEOptions -> MultipleErrors -> String
-prettyPrintMultipleErrors ppeOptions = unlines . map renderBox . prettyPrintMultipleErrorsBox ppeOptions
-
--- | Pretty print multiple warnings
-prettyPrintMultipleWarnings :: PPEOptions -> MultipleErrors -> String
-prettyPrintMultipleWarnings ppeOptions = unlines . map renderBox . prettyPrintMultipleWarningsBox ppeOptions
-
--- | Pretty print warnings as a Box
-prettyPrintMultipleWarningsBox :: PPEOptions -> MultipleErrors -> [Box.Box]
-prettyPrintMultipleWarningsBox ppeOptions = prettyPrintMultipleErrorsWith (ppeOptions { ppeLevel = Warning }) "Warning found:" "Warning"
-
--- | Pretty print errors as a Box
-prettyPrintMultipleErrorsBox :: PPEOptions -> MultipleErrors -> [Box.Box]
-prettyPrintMultipleErrorsBox ppeOptions = prettyPrintMultipleErrorsWith (ppeOptions { ppeLevel = Error }) "Error found:" "Error"
-
-prettyPrintMultipleErrorsWith :: PPEOptions -> String -> String -> MultipleErrors -> [Box.Box]
-prettyPrintMultipleErrorsWith ppeOptions intro _ (MultipleErrors [e]) =
-  let result = prettyPrintSingleError ppeOptions e
-  in [ Box.vcat Box.left [ Box.text intro
-                         , result
-                         ]
-     ]
-prettyPrintMultipleErrorsWith ppeOptions _ intro (MultipleErrors es) =
-  let result = map (prettyPrintSingleError ppeOptions) es
-  in concat $ zipWith withIntro [1 :: Int ..] result
-  where
-  withIntro i err = [ Box.text (intro ++ " " ++ show i ++ " of " ++ show (length es) ++ ":")
-                    , Box.moveRight 2 err
-                    ]
-
--- | Pretty print a Parsec ParseError as a Box
-prettyPrintParseError :: P.ParseError -> Box.Box
-prettyPrintParseError = prettyPrintParseErrorMessages "or" "unknown parse error" "expecting" "unexpected" "end of input" . PE.errorMessages
-
--- | Pretty print 'ParseError' detail messages.
---
--- Adapted from 'Text.Parsec.Error.showErrorMessages'.
--- See <https://github.com/aslatter/parsec/blob/v3.1.9/Text/Parsec/Error.hs#L173>.
-prettyPrintParseErrorMessages :: String -> String -> String -> String -> String -> [Message] -> Box.Box
-prettyPrintParseErrorMessages msgOr msgUnknown msgExpecting msgUnExpected msgEndOfInput msgs
-  | null msgs = Box.text msgUnknown
-  | otherwise = Box.vcat Box.left $ map Box.text $ clean [showSysUnExpect,showUnExpect,showExpect,showMessages]
-
-  where
-  (sysUnExpect,msgs1) = span (SysUnExpect "" ==) msgs
-  (unExpect,msgs2)    = span (UnExpect    "" ==) msgs1
-  (expect,messages)   = span (Expect      "" ==) msgs2
-
-  showExpect      = showMany msgExpecting expect
-  showUnExpect    = showMany msgUnExpected unExpect
-  showSysUnExpect | not (null unExpect) ||
-                    null sysUnExpect = ""
-                  | null firstMsg    = msgUnExpected ++ " " ++ msgEndOfInput
-                  | otherwise        = msgUnExpected ++ " " ++ firstMsg
-    where
-    firstMsg  = PE.messageString (head sysUnExpect)
-
-  showMessages      = showMany "" messages
-
-  -- helpers
-  showMany pre msgs' = case clean (map PE.messageString msgs') of
-                         [] -> ""
-                         ms | null pre  -> commasOr ms
-                            | otherwise -> pre ++ " " ++ commasOr ms
-
-  commasOr []       = ""
-  commasOr [m]      = m
-  commasOr ms       = commaSep (init ms) ++ " " ++ msgOr ++ " " ++ last ms
-
-  commaSep          = separate ", " . clean
-
-  separate   _ []     = ""
-  separate   _ [m]    = m
-  separate sep (m:ms) = m ++ sep ++ separate sep ms
-
-  clean             = ordNub . filter (not . null)
-
--- | Indent to the right, and pad on top and bottom.
-indent :: Box.Box -> Box.Box
-indent = Box.moveUp 1 . Box.moveDown 1 . Box.moveRight 2
-
-line :: Text -> Box.Box
-line = Box.text . T.unpack
-
-lineS :: String -> Box.Box
-lineS = Box.text
-
-renderBox :: Box.Box -> String
-renderBox = unlines
-            . map (dropWhileEnd isSpace)
-            . dropWhile whiteSpace
-            . dropWhileEnd whiteSpace
-            . lines
-            . Box.render
-  where
-  whiteSpace = all isSpace
-
-toTypelevelString :: Type a -> Maybe Box.Box
-toTypelevelString (TypeLevelString _ s) =
-  Just . Box.text $ decodeStringWithReplacement s
-toTypelevelString (TypeApp _ (TypeConstructor _ f) x)
-  | f == primSubName C.typeError "Text" = toTypelevelString x
-toTypelevelString (TypeApp _ (TypeConstructor _ f) x)
-  | f == primSubName C.typeError "Quote" = Just (typeAsBox maxBound x)
-toTypelevelString (TypeApp _ (TypeConstructor _ f) (TypeLevelString _ x))
-  | f == primSubName C.typeError "QuoteLabel" = Just . line . prettyPrintLabel . Label $ x
-toTypelevelString (TypeApp _ (TypeApp _ (TypeConstructor _ f) x) ret)
-  | f == primSubName C.typeError "Beside" =
-    (Box.<>) <$> toTypelevelString x <*> toTypelevelString ret
-toTypelevelString (TypeApp _ (TypeApp _ (TypeConstructor _ f) x) ret)
-  | f == primSubName C.typeError "Above" =
-    (Box.//) <$> toTypelevelString x <*> toTypelevelString ret
-toTypelevelString _ = Nothing
-
--- | Rethrow an error with a more detailed error message in the case of failure
-rethrow :: (MonadError e m) => (e -> e) -> m a -> m a
-rethrow f = flip catchError (throwError . f)
-
-reifyErrors :: (MonadError e m) => m a -> m (Either e a)
-reifyErrors ma = catchError (fmap Right ma) (return . Left)
-
-reflectErrors :: (MonadError e m) => m (Either e a) -> m a
-reflectErrors ma = ma >>= either throwError return
-
-warnAndRethrow :: (MonadError e m, MonadWriter e m) => (e -> e) -> m a -> m a
-warnAndRethrow f = rethrow f . censor f
-
--- | Rethrow an error with source position information
-rethrowWithPosition :: (MonadError MultipleErrors m) => SourceSpan -> m a -> m a
-rethrowWithPosition pos = rethrow (onErrorMessages (withPosition pos))
-
-warnWithPosition :: (MonadWriter MultipleErrors m) => SourceSpan -> m a -> m a
-warnWithPosition pos = censor (onErrorMessages (withPosition pos))
-
-warnAndRethrowWithPosition :: (MonadError MultipleErrors m, MonadWriter MultipleErrors m) => SourceSpan -> m a -> m a
-warnAndRethrowWithPosition pos = rethrowWithPosition pos . warnWithPosition pos
-
-withPosition :: SourceSpan -> ErrorMessage -> ErrorMessage
-withPosition NullSourceSpan err = err
-withPosition pos (ErrorMessage hints se) = ErrorMessage (positionedError pos : hints) se
-
-positionedError :: SourceSpan -> ErrorMessageHint
-positionedError = PositionedError . pure
-
-filterErrors :: (ErrorMessage -> Bool) -> MultipleErrors -> MultipleErrors
-filterErrors f = MultipleErrors . filter f . runMultipleErrors
-
--- | Runs a computation listening for warnings and then escalating any warnings
--- that match the predicate to error status.
-escalateWarningWhen
-  :: (MonadWriter MultipleErrors m, MonadError MultipleErrors m)
-  => (ErrorMessage -> Bool)
-  -> m a
-  -> m a
-escalateWarningWhen isError ma = do
-  (a, w) <- censor (const mempty) $ listen ma
-  let (errors, warnings) = partition isError (runMultipleErrors w)
-  tell $ MultipleErrors warnings
-  unless (null errors) $ throwError $ MultipleErrors errors
-  return a
-
--- | Collect errors in in parallel
-parU
-  :: forall m a b
-   . MonadError MultipleErrors m
-  => [a]
-  -> (a -> m b)
-  -> m [b]
-parU xs f =
-    forM xs (withError . f) >>= collectErrors
-  where
-    withError :: m b -> m (Either MultipleErrors b)
-    withError u = catchError (Right <$> u) (return . Left)
-
-    collectErrors :: [Either MultipleErrors b] -> m [b]
-    collectErrors es = case partitionEithers es of
-      ([], rs) -> return rs
-      (errs, _) -> throwError $ fold errs
+{-# LANGUAGE DeriveAnyClass #-}
+module Language.PureScript.Errors
+  ( module Language.PureScript.AST
+  , module Language.PureScript.Errors
+  ) where
+
+import Prelude
+import Protolude (unsnoc)
+
+import Control.Arrow ((&&&))
+import Control.DeepSeq (NFData)
+import Control.Lens (both, head1, over)
+import Control.Monad (forM, unless)
+import Control.Monad.Error.Class (MonadError(..))
+import Control.Monad.Trans.State.Lazy (State, evalState, get, put)
+import Control.Monad.Writer (Last(..), MonadWriter(..), censor)
+import Data.Bifunctor (first, second)
+import Data.Bitraversable (bitraverse)
+import Data.Char (isSpace)
+import Data.Containers.ListUtils (nubOrdOn)
+import Data.Either (partitionEithers)
+import Data.Foldable (fold)
+import Data.Function (on)
+import Data.Functor (($>))
+import Data.Functor.Identity (Identity(..))
+import Data.List (transpose, nubBy, partition, dropWhileEnd, sortOn, uncons)
+import Data.List.NonEmpty qualified as NEL
+import Data.List.NonEmpty (NonEmpty((:|)))
+import Data.Maybe (maybeToList, fromMaybe, isJust, mapMaybe)
+import Data.Map qualified as M
+import Data.Ord (Down(..))
+import Data.Set qualified as S
+import Data.Text qualified as T
+import Data.Text (Text)
+import Data.Traversable (for)
+import GHC.Generics (Generic)
+import GHC.Stack qualified
+import Language.PureScript.AST
+import Language.PureScript.Bundle qualified as Bundle
+import Language.PureScript.Constants.Libs qualified as C
+import Language.PureScript.Constants.Prim qualified as C
+import Language.PureScript.Crash (internalError)
+import Language.PureScript.CST.Errors qualified as CST
+import Language.PureScript.CST.Print qualified as CST
+import Language.PureScript.Label (Label(..))
+import Language.PureScript.Names
+import Language.PureScript.Pretty (prettyPrintBinderAtom, prettyPrintLabel, prettyPrintObjectKey, prettyPrintSuggestedType, prettyPrintValue, typeAsBox, typeAtomAsBox, typeDiffAsBox)
+import Language.PureScript.Pretty.Common (endWith)
+import Language.PureScript.PSString (decodeStringWithReplacement)
+import Language.PureScript.Roles (Role, displayRole)
+import Language.PureScript.Traversals (sndM)
+import Language.PureScript.Types (Constraint(..), ConstraintData(..), RowListItem(..), SourceConstraint, SourceType, Type(..), eraseForAllKindAnnotations, eraseKindApps, everywhereOnTypesTopDownM, getAnnForType, isMonoType, overConstraintArgs, rowFromList, rowToList, srcTUnknown)
+import Language.PureScript.Publish.BoxesHelpers qualified as BoxHelpers
+import System.Console.ANSI qualified as ANSI
+import System.FilePath (makeRelative)
+import Text.PrettyPrint.Boxes qualified as Box
+import Witherable (wither)
+
+-- | A type of error messages
+data SimpleErrorMessage
+  = InternalCompilerError Text Text
+  | ModuleNotFound ModuleName
+  | ErrorParsingFFIModule FilePath (Maybe Bundle.ErrorMessage)
+  | ErrorParsingCSTModule CST.ParserError
+  | WarningParsingCSTModule CST.ParserWarning
+  | MissingFFIModule ModuleName
+  | UnnecessaryFFIModule ModuleName FilePath
+  | MissingFFIImplementations ModuleName [Ident]
+  | UnusedFFIImplementations ModuleName [Ident]
+  | InvalidFFIIdentifier ModuleName Text
+  | DeprecatedFFIPrime ModuleName Text
+  | DeprecatedFFICommonJSModule ModuleName FilePath
+  | UnsupportedFFICommonJSExports ModuleName [Text]
+  | UnsupportedFFICommonJSImports ModuleName [Text]
+  | FileIOError Text Text -- ^ A description of what we were trying to do, and the error which occurred
+  | InfiniteType SourceType
+  | InfiniteKind SourceType
+  | MultipleValueOpFixities (OpName 'ValueOpName)
+  | MultipleTypeOpFixities (OpName 'TypeOpName)
+  | OrphanTypeDeclaration Ident
+  | OrphanKindDeclaration (ProperName 'TypeName)
+  | OrphanRoleDeclaration (ProperName 'TypeName)
+  | RedefinedIdent Ident
+  | OverlappingNamesInLet Ident
+  | UnknownName (Qualified Name)
+  | UnknownImport ModuleName Name
+  | UnknownImportDataConstructor ModuleName (ProperName 'TypeName) (ProperName 'ConstructorName)
+  | UnknownExport Name
+  | UnknownExportDataConstructor (ProperName 'TypeName) (ProperName 'ConstructorName)
+  | ScopeConflict Name [ModuleName]
+  | ScopeShadowing Name (Maybe ModuleName) [ModuleName]
+  | DeclConflict Name Name
+  | ExportConflict (Qualified Name) (Qualified Name)
+  | DuplicateModule ModuleName
+  | DuplicateTypeClass (ProperName 'ClassName) SourceSpan
+  | DuplicateInstance Ident SourceSpan
+  | DuplicateTypeArgument Text
+  | InvalidDoBind
+  | InvalidDoLet
+  | CycleInDeclaration Ident
+  | CycleInTypeSynonym (NEL.NonEmpty (ProperName 'TypeName))
+  | CycleInTypeClassDeclaration (NEL.NonEmpty (Qualified (ProperName 'ClassName)))
+  | CycleInKindDeclaration (NEL.NonEmpty (Qualified (ProperName 'TypeName)))
+  | CycleInModules (NEL.NonEmpty ModuleName)
+  | NameIsUndefined Ident
+  | UndefinedTypeVariable (ProperName 'TypeName)
+  | PartiallyAppliedSynonym (Qualified (ProperName 'TypeName))
+  | EscapedSkolem Text (Maybe SourceSpan) SourceType
+  | TypesDoNotUnify SourceType SourceType
+  | KindsDoNotUnify SourceType SourceType
+  | ConstrainedTypeUnified SourceType SourceType
+  | OverlappingInstances (Qualified (ProperName 'ClassName)) [SourceType] [Qualified (Either SourceType Ident)]
+  | NoInstanceFound
+      SourceConstraint -- ^ constraint that could not be solved
+      [Qualified (Either SourceType Ident)] -- ^ a list of instances that stopped further progress in instance chains due to ambiguity
+      UnknownsHint -- ^ whether eliminating unknowns with annotations might help or if visible type applications are required
+  | AmbiguousTypeVariables SourceType [(Text, Int)]
+  | UnknownClass (Qualified (ProperName 'ClassName))
+  | PossiblyInfiniteInstance (Qualified (ProperName 'ClassName)) [SourceType]
+  | PossiblyInfiniteCoercibleInstance
+  | CannotDerive (Qualified (ProperName 'ClassName)) [SourceType]
+  | InvalidDerivedInstance (Qualified (ProperName 'ClassName)) [SourceType] Int
+  | ExpectedTypeConstructor (Qualified (ProperName 'ClassName)) [SourceType] SourceType
+  | InvalidNewtypeInstance (Qualified (ProperName 'ClassName)) [SourceType]
+  | MissingNewtypeSuperclassInstance (Qualified (ProperName 'ClassName)) (Qualified (ProperName 'ClassName)) [SourceType]
+  | UnverifiableSuperclassInstance (Qualified (ProperName 'ClassName)) (Qualified (ProperName 'ClassName)) [SourceType]
+  | CannotFindDerivingType (ProperName 'TypeName)
+  | DuplicateLabel Label (Maybe Expr)
+  | DuplicateValueDeclaration Ident
+  | ArgListLengthsDiffer Ident
+  | OverlappingArgNames (Maybe Ident)
+  | MissingClassMember (NEL.NonEmpty (Ident, SourceType))
+  | ExtraneousClassMember Ident (Qualified (ProperName 'ClassName))
+  | ExpectedType SourceType SourceType
+  -- | constructor name, expected argument count, actual argument count
+  | IncorrectConstructorArity (Qualified (ProperName 'ConstructorName)) Int Int
+  | ExprDoesNotHaveType Expr SourceType
+  | PropertyIsMissing Label
+  | AdditionalProperty Label
+  | OrphanInstance Ident (Qualified (ProperName 'ClassName)) (S.Set ModuleName) [SourceType]
+  | InvalidNewtype (ProperName 'TypeName)
+  | InvalidInstanceHead SourceType
+  | TransitiveExportError DeclarationRef [DeclarationRef]
+  | TransitiveDctorExportError DeclarationRef [ProperName 'ConstructorName]
+  | HiddenConstructors DeclarationRef (Qualified (ProperName 'ClassName))
+  | ShadowedName Ident
+  | ShadowedTypeVar Text
+  | UnusedTypeVar Text
+  | UnusedName Ident
+  | UnusedDeclaration Ident
+  | WildcardInferredType SourceType Context
+  | HoleInferredType Text SourceType Context (Maybe TypeSearch)
+  | MissingTypeDeclaration Ident SourceType
+  | MissingKindDeclaration KindSignatureFor (ProperName 'TypeName) SourceType
+  | OverlappingPattern [[Binder]] Bool
+  | IncompleteExhaustivityCheck
+  | ImportHidingModule ModuleName
+  | UnusedImport ModuleName (Maybe ModuleName)
+  | UnusedExplicitImport ModuleName [Name] (Maybe ModuleName) [DeclarationRef]
+  | UnusedDctorImport ModuleName (ProperName 'TypeName) (Maybe ModuleName) [DeclarationRef]
+  | UnusedDctorExplicitImport ModuleName (ProperName 'TypeName) [ProperName 'ConstructorName] (Maybe ModuleName) [DeclarationRef]
+  | DuplicateSelectiveImport ModuleName
+  | DuplicateImport ModuleName ImportDeclarationType (Maybe ModuleName)
+  | DuplicateImportRef Name
+  | DuplicateExportRef Name
+  | IntOutOfRange Integer Text Integer Integer
+  | ImplicitQualifiedImport ModuleName ModuleName [DeclarationRef]
+  | ImplicitQualifiedImportReExport ModuleName ModuleName [DeclarationRef]
+  | ImplicitImport ModuleName [DeclarationRef]
+  | HidingImport ModuleName [DeclarationRef]
+  | CaseBinderLengthDiffers Int [Binder]
+  | IncorrectAnonymousArgument
+  | InvalidOperatorInBinder (Qualified (OpName 'ValueOpName)) (Qualified Ident)
+  | CannotGeneralizeRecursiveFunction Ident SourceType
+  | CannotDeriveNewtypeForData (ProperName 'TypeName)
+  | ExpectedWildcard (ProperName 'TypeName)
+  | CannotUseBindWithDo Ident
+  -- | instance name, type class, expected argument count, actual argument count
+  | ClassInstanceArityMismatch Ident (Qualified (ProperName 'ClassName)) Int Int
+  -- | a user-defined warning raised by using the Warn type class
+  | UserDefinedWarning SourceType
+  | CannotDefinePrimModules ModuleName
+  | MixedAssociativityError (NEL.NonEmpty (Qualified (OpName 'AnyOpName), Associativity))
+  | NonAssociativeError (NEL.NonEmpty (Qualified (OpName 'AnyOpName)))
+  | QuantificationCheckFailureInKind Text
+  | QuantificationCheckFailureInType [Int] SourceType
+  | VisibleQuantificationCheckFailureInType Text
+  | UnsupportedTypeInKind SourceType
+  -- | Declared role was more permissive than inferred.
+  | RoleMismatch
+      Text -- ^ Type variable in question
+      Role -- ^ inferred role
+      Role -- ^ declared role
+  | InvalidCoercibleInstanceDeclaration [SourceType]
+  | UnsupportedRoleDeclaration
+  | RoleDeclarationArityMismatch (ProperName 'TypeName) Int Int
+  | DuplicateRoleDeclaration (ProperName 'TypeName)
+  | CannotDeriveInvalidConstructorArg (Qualified (ProperName 'ClassName)) [Qualified (ProperName 'ClassName)] Bool
+  | CannotSkipTypeApplication SourceType
+  | CannotApplyExpressionOfTypeOnType SourceType SourceType
+  deriving (Show, Generic, NFData)
+
+data ErrorMessage = ErrorMessage
+  [ErrorMessageHint]
+  SimpleErrorMessage
+  deriving (Show, Generic, NFData)
+
+newtype ErrorSuggestion = ErrorSuggestion Text
+
+-- | Get the source span for an error
+errorSpan :: ErrorMessage -> Maybe (NEL.NonEmpty SourceSpan)
+errorSpan = findHint matchPE <> findHint matchRP
+  where
+  matchPE (PositionedError sss) = Just sss
+  matchPE _ = Nothing
+  matchRP (RelatedPositions sss) = Just sss
+  matchRP _ = Nothing
+
+-- | Get the module name for an error
+errorModule :: ErrorMessage -> Maybe ModuleName
+errorModule = findHint matchModule
+  where
+  matchModule (ErrorInModule mn) = Just mn
+  matchModule _ = Nothing
+
+findHint :: (ErrorMessageHint -> Maybe a) -> ErrorMessage -> Maybe a
+findHint f (ErrorMessage hints _) = getLast . foldMap (Last . f) $ hints
+
+-- | Remove the module name and span hints from an error
+stripModuleAndSpan :: ErrorMessage -> ErrorMessage
+stripModuleAndSpan (ErrorMessage hints e) = ErrorMessage (filter (not . shouldStrip) hints) e
+  where
+  shouldStrip (ErrorInModule _) = True
+  shouldStrip (PositionedError _) = True
+  shouldStrip _ = False
+
+-- | Get the error code for a particular error type
+errorCode :: ErrorMessage -> Text
+errorCode em = case unwrapErrorMessage em of
+  InternalCompilerError{} -> "InternalCompilerError"
+  ModuleNotFound{} -> "ModuleNotFound"
+  ErrorParsingFFIModule{} -> "ErrorParsingFFIModule"
+  ErrorParsingCSTModule{} -> "ErrorParsingModule"
+  WarningParsingCSTModule{} -> "WarningParsingModule"
+  MissingFFIModule{} -> "MissingFFIModule"
+  UnnecessaryFFIModule{} -> "UnnecessaryFFIModule"
+  MissingFFIImplementations{} -> "MissingFFIImplementations"
+  UnusedFFIImplementations{} -> "UnusedFFIImplementations"
+  InvalidFFIIdentifier{} -> "InvalidFFIIdentifier"
+  DeprecatedFFIPrime{} -> "DeprecatedFFIPrime"
+  DeprecatedFFICommonJSModule {} -> "DeprecatedFFICommonJSModule"
+  UnsupportedFFICommonJSExports {} -> "UnsupportedFFICommonJSExports"
+  UnsupportedFFICommonJSImports {} -> "UnsupportedFFICommonJSImports"
+  FileIOError{} -> "FileIOError"
+  InfiniteType{} -> "InfiniteType"
+  InfiniteKind{} -> "InfiniteKind"
+  MultipleValueOpFixities{} -> "MultipleValueOpFixities"
+  MultipleTypeOpFixities{} -> "MultipleTypeOpFixities"
+  OrphanTypeDeclaration{} -> "OrphanTypeDeclaration"
+  OrphanKindDeclaration{} -> "OrphanKindDeclaration"
+  OrphanRoleDeclaration{} -> "OrphanRoleDeclaration"
+  RedefinedIdent{} -> "RedefinedIdent"
+  OverlappingNamesInLet{} -> "OverlappingNamesInLet"
+  UnknownName{} -> "UnknownName"
+  UnknownImport{} -> "UnknownImport"
+  UnknownImportDataConstructor{} -> "UnknownImportDataConstructor"
+  UnknownExport{} -> "UnknownExport"
+  UnknownExportDataConstructor{} -> "UnknownExportDataConstructor"
+  ScopeConflict{} -> "ScopeConflict"
+  ScopeShadowing{} -> "ScopeShadowing"
+  DeclConflict{} -> "DeclConflict"
+  ExportConflict{} -> "ExportConflict"
+  DuplicateModule{} -> "DuplicateModule"
+  DuplicateTypeClass{} -> "DuplicateTypeClass"
+  DuplicateInstance{} -> "DuplicateInstance"
+  DuplicateTypeArgument{} -> "DuplicateTypeArgument"
+  InvalidDoBind -> "InvalidDoBind"
+  InvalidDoLet -> "InvalidDoLet"
+  CycleInDeclaration{} -> "CycleInDeclaration"
+  CycleInTypeSynonym{} -> "CycleInTypeSynonym"
+  CycleInTypeClassDeclaration{} -> "CycleInTypeClassDeclaration"
+  CycleInKindDeclaration{} -> "CycleInKindDeclaration"
+  CycleInModules{} -> "CycleInModules"
+  NameIsUndefined{} -> "NameIsUndefined"
+  UndefinedTypeVariable{} -> "UndefinedTypeVariable"
+  PartiallyAppliedSynonym{} -> "PartiallyAppliedSynonym"
+  EscapedSkolem{} -> "EscapedSkolem"
+  TypesDoNotUnify{} -> "TypesDoNotUnify"
+  KindsDoNotUnify{} -> "KindsDoNotUnify"
+  ConstrainedTypeUnified{} -> "ConstrainedTypeUnified"
+  OverlappingInstances{} -> "OverlappingInstances"
+  NoInstanceFound{} -> "NoInstanceFound"
+  AmbiguousTypeVariables{} -> "AmbiguousTypeVariables"
+  UnknownClass{} -> "UnknownClass"
+  PossiblyInfiniteInstance{} -> "PossiblyInfiniteInstance"
+  PossiblyInfiniteCoercibleInstance -> "PossiblyInfiniteCoercibleInstance"
+  CannotDerive{} -> "CannotDerive"
+  InvalidNewtypeInstance{} -> "InvalidNewtypeInstance"
+  MissingNewtypeSuperclassInstance{} -> "MissingNewtypeSuperclassInstance"
+  UnverifiableSuperclassInstance{} -> "UnverifiableSuperclassInstance"
+  InvalidDerivedInstance{} -> "InvalidDerivedInstance"
+  ExpectedTypeConstructor{} -> "ExpectedTypeConstructor"
+  CannotFindDerivingType{} -> "CannotFindDerivingType"
+  DuplicateLabel{} -> "DuplicateLabel"
+  DuplicateValueDeclaration{} -> "DuplicateValueDeclaration"
+  ArgListLengthsDiffer{} -> "ArgListLengthsDiffer"
+  OverlappingArgNames{} -> "OverlappingArgNames"
+  MissingClassMember{} -> "MissingClassMember"
+  ExtraneousClassMember{} -> "ExtraneousClassMember"
+  ExpectedType{} -> "ExpectedType"
+  IncorrectConstructorArity{} -> "IncorrectConstructorArity"
+  ExprDoesNotHaveType{} -> "ExprDoesNotHaveType"
+  PropertyIsMissing{} -> "PropertyIsMissing"
+  AdditionalProperty{} -> "AdditionalProperty"
+  OrphanInstance{} -> "OrphanInstance"
+  InvalidNewtype{} -> "InvalidNewtype"
+  InvalidInstanceHead{} -> "InvalidInstanceHead"
+  TransitiveExportError{} -> "TransitiveExportError"
+  TransitiveDctorExportError{} -> "TransitiveDctorExportError"
+  HiddenConstructors{} -> "HiddenConstructors"
+  ShadowedName{} -> "ShadowedName"
+  UnusedName{} -> "UnusedName"
+  UnusedDeclaration{} -> "UnusedDeclaration"
+  ShadowedTypeVar{} -> "ShadowedTypeVar"
+  UnusedTypeVar{} -> "UnusedTypeVar"
+  WildcardInferredType{} -> "WildcardInferredType"
+  HoleInferredType{} -> "HoleInferredType"
+  MissingTypeDeclaration{} -> "MissingTypeDeclaration"
+  MissingKindDeclaration{} -> "MissingKindDeclaration"
+  OverlappingPattern{} -> "OverlappingPattern"
+  IncompleteExhaustivityCheck{} -> "IncompleteExhaustivityCheck"
+  ImportHidingModule{} -> "ImportHidingModule"
+  UnusedImport{} -> "UnusedImport"
+  UnusedExplicitImport{} -> "UnusedExplicitImport"
+  UnusedDctorImport{} -> "UnusedDctorImport"
+  UnusedDctorExplicitImport{} -> "UnusedDctorExplicitImport"
+  DuplicateSelectiveImport{} -> "DuplicateSelectiveImport"
+  DuplicateImport{} -> "DuplicateImport"
+  DuplicateImportRef{} -> "DuplicateImportRef"
+  DuplicateExportRef{} -> "DuplicateExportRef"
+  IntOutOfRange{} -> "IntOutOfRange"
+  ImplicitQualifiedImport{} -> "ImplicitQualifiedImport"
+  ImplicitQualifiedImportReExport{} -> "ImplicitQualifiedImportReExport"
+  ImplicitImport{} -> "ImplicitImport"
+  HidingImport{} -> "HidingImport"
+  CaseBinderLengthDiffers{} -> "CaseBinderLengthDiffers"
+  IncorrectAnonymousArgument -> "IncorrectAnonymousArgument"
+  InvalidOperatorInBinder{} -> "InvalidOperatorInBinder"
+  CannotGeneralizeRecursiveFunction{} -> "CannotGeneralizeRecursiveFunction"
+  CannotDeriveNewtypeForData{} -> "CannotDeriveNewtypeForData"
+  ExpectedWildcard{} -> "ExpectedWildcard"
+  CannotUseBindWithDo{} -> "CannotUseBindWithDo"
+  ClassInstanceArityMismatch{} -> "ClassInstanceArityMismatch"
+  UserDefinedWarning{} -> "UserDefinedWarning"
+  CannotDefinePrimModules{} -> "CannotDefinePrimModules"
+  MixedAssociativityError{} -> "MixedAssociativityError"
+  NonAssociativeError{} -> "NonAssociativeError"
+  QuantificationCheckFailureInKind {} -> "QuantificationCheckFailureInKind"
+  QuantificationCheckFailureInType {} -> "QuantificationCheckFailureInType"
+  VisibleQuantificationCheckFailureInType {} -> "VisibleQuantificationCheckFailureInType"
+  UnsupportedTypeInKind {} -> "UnsupportedTypeInKind"
+  RoleMismatch {} -> "RoleMismatch"
+  InvalidCoercibleInstanceDeclaration {} -> "InvalidCoercibleInstanceDeclaration"
+  UnsupportedRoleDeclaration {} -> "UnsupportedRoleDeclaration"
+  RoleDeclarationArityMismatch {} -> "RoleDeclarationArityMismatch"
+  DuplicateRoleDeclaration {} -> "DuplicateRoleDeclaration"
+  CannotDeriveInvalidConstructorArg{} -> "CannotDeriveInvalidConstructorArg"
+  CannotSkipTypeApplication{} -> "CannotSkipTypeApplication"
+  CannotApplyExpressionOfTypeOnType{} -> "CannotApplyExpressionOfTypeOnType"
+
+-- | A stack trace for an error
+newtype MultipleErrors = MultipleErrors
+  { runMultipleErrors :: [ErrorMessage]
+  }
+  deriving stock (Show)
+  deriving newtype (Semigroup, Monoid, NFData)
+
+-- | Check whether a collection of errors is empty or not.
+nonEmpty :: MultipleErrors -> Bool
+nonEmpty = not . null . runMultipleErrors
+
+-- | Create an error set from a single simple error message
+errorMessage :: SimpleErrorMessage -> MultipleErrors
+errorMessage err = MultipleErrors [ErrorMessage [] err]
+
+-- | Create an error set from a single simple error message and source annotation
+errorMessage' :: SourceSpan -> SimpleErrorMessage -> MultipleErrors
+errorMessage' ss err = MultipleErrors [ErrorMessage [positionedError ss] err]
+
+-- | Create an error set from a single simple error message and source annotations
+errorMessage'' :: NEL.NonEmpty SourceSpan -> SimpleErrorMessage -> MultipleErrors
+errorMessage'' sss err = MultipleErrors [ErrorMessage [PositionedError sss] err]
+
+-- | Create an error from multiple (possibly empty) source spans, reversed sorted.
+errorMessage''' :: [SourceSpan] -> SimpleErrorMessage -> MultipleErrors
+errorMessage''' sss err =
+  maybe (errorMessage err) (flip errorMessage'' err)
+    . NEL.nonEmpty
+    . sortOn Down
+    $ filter (/= NullSourceSpan) sss
+
+-- | Create an error set from a single error message
+singleError :: ErrorMessage -> MultipleErrors
+singleError = MultipleErrors . pure
+
+-- | Lift a function on ErrorMessage to a function on MultipleErrors
+onErrorMessages :: (ErrorMessage -> ErrorMessage) -> MultipleErrors -> MultipleErrors
+onErrorMessages f = MultipleErrors . map f . runMultipleErrors
+
+-- | Add a hint to an error message
+addHint :: ErrorMessageHint -> MultipleErrors -> MultipleErrors
+addHint hint = addHints [hint]
+
+-- | Add hints to an error message
+addHints :: [ErrorMessageHint] -> MultipleErrors -> MultipleErrors
+addHints hints = onErrorMessages $ \(ErrorMessage hints' se) -> ErrorMessage (hints ++ hints') se
+
+-- | A map from rigid type variable name/unknown variable pairs to new variables.
+data TypeMap = TypeMap
+  { umSkolemMap   :: M.Map Int (String, Int, Maybe SourceSpan)
+  -- ^ a map from skolems to their new names, including source and naming info
+  , umUnknownMap  :: M.Map Int Int
+  -- ^ a map from unification variables to their new names
+  , umNextIndex   :: Int
+  -- ^ unknowns and skolems share a source of names during renaming, to
+  -- avoid overlaps in error messages. This is the next label for either case.
+  } deriving Show
+
+defaultUnknownMap :: TypeMap
+defaultUnknownMap = TypeMap M.empty M.empty 0
+
+-- | How critical the issue is
+data Level = Error | Warning deriving Show
+
+-- | Extract nested error messages from wrapper errors
+unwrapErrorMessage :: ErrorMessage -> SimpleErrorMessage
+unwrapErrorMessage (ErrorMessage _ se) = se
+
+replaceUnknowns :: SourceType -> State TypeMap SourceType
+replaceUnknowns = everywhereOnTypesTopDownM replaceTypes where
+  replaceTypes :: SourceType -> State TypeMap SourceType
+  replaceTypes (TUnknown ann u) = do
+    m <- get
+    case M.lookup u (umUnknownMap m) of
+      Nothing -> do
+        let u' = umNextIndex m
+        put $ m { umUnknownMap = M.insert u u' (umUnknownMap m), umNextIndex = u' + 1 }
+        return (TUnknown ann u')
+      Just u' -> return (TUnknown ann u')
+  -- We intentionally remove the kinds from skolems, because they are never
+  -- presented when pretty-printing. Any unknowns in those kinds shouldn't
+  -- appear in the list of unknowns unless used somewhere else.
+  replaceTypes (Skolem ann name _ s sko) = do
+    m <- get
+    case M.lookup s (umSkolemMap m) of
+      Nothing -> do
+        let s' = umNextIndex m
+        put $ m { umSkolemMap = M.insert s (T.unpack name, s', Just (fst ann)) (umSkolemMap m), umNextIndex = s' + 1 }
+        return (Skolem ann name Nothing s' sko)
+      Just (_, s', _) -> return (Skolem ann name Nothing s' sko)
+  replaceTypes other = return other
+
+onTypesInErrorMessage :: (SourceType -> SourceType) -> ErrorMessage -> ErrorMessage
+onTypesInErrorMessage f = runIdentity . onTypesInErrorMessageM (Identity . f)
+
+onTypesInErrorMessageM :: Applicative m => (SourceType -> m SourceType) -> ErrorMessage -> m ErrorMessage
+onTypesInErrorMessageM f (ErrorMessage hints simple) = ErrorMessage <$> traverse gHint hints <*> gSimple simple
+  where
+  gSimple (InfiniteType t) = InfiniteType <$> f t
+  gSimple (TypesDoNotUnify t1 t2) = TypesDoNotUnify <$> f t1 <*> f t2
+  gSimple (ConstrainedTypeUnified t1 t2) = ConstrainedTypeUnified <$> f t1 <*> f t2
+  gSimple (ExprDoesNotHaveType e t) = ExprDoesNotHaveType e <$> f t
+  gSimple (InvalidInstanceHead t) = InvalidInstanceHead <$> f t
+  gSimple (NoInstanceFound con ambig unks) = NoInstanceFound <$> overConstraintArgs (traverse f) con <*> pure ambig <*> pure unks
+  gSimple (AmbiguousTypeVariables t uis) = AmbiguousTypeVariables <$> f t <*> pure uis
+  gSimple (OverlappingInstances cl ts insts) = OverlappingInstances cl <$> traverse f ts <*> traverse (traverse $ bitraverse f pure) insts
+  gSimple (PossiblyInfiniteInstance cl ts) = PossiblyInfiniteInstance cl <$> traverse f ts
+  gSimple (CannotDerive cl ts) = CannotDerive cl <$> traverse f ts
+  gSimple (InvalidNewtypeInstance cl ts) = InvalidNewtypeInstance cl <$> traverse f ts
+  gSimple (MissingNewtypeSuperclassInstance cl1 cl2 ts) = MissingNewtypeSuperclassInstance cl1 cl2 <$> traverse f ts
+  gSimple (UnverifiableSuperclassInstance cl1 cl2 ts) = UnverifiableSuperclassInstance cl1 cl2 <$> traverse f ts
+  gSimple (InvalidDerivedInstance cl ts n) = InvalidDerivedInstance cl <$> traverse f ts <*> pure n
+  gSimple (ExpectedTypeConstructor cl ts ty) = ExpectedTypeConstructor cl <$> traverse f ts <*> f ty
+  gSimple (ExpectedType ty k) = ExpectedType <$> f ty <*> pure k
+  gSimple (OrphanInstance nm cl noms ts) = OrphanInstance nm cl noms <$> traverse f ts
+  gSimple (WildcardInferredType ty ctx) = WildcardInferredType <$> f ty <*> traverse (sndM f) ctx
+  gSimple (HoleInferredType name ty ctx env) = HoleInferredType name <$> f ty <*> traverse (sndM f) ctx  <*> traverse (onTypeSearchTypesM f) env
+  gSimple (MissingTypeDeclaration nm ty) = MissingTypeDeclaration nm <$> f ty
+  gSimple (MissingKindDeclaration sig nm ty) = MissingKindDeclaration sig nm <$> f ty
+  gSimple (CannotGeneralizeRecursiveFunction nm ty) = CannotGeneralizeRecursiveFunction nm <$> f ty
+  gSimple (InvalidCoercibleInstanceDeclaration tys) = InvalidCoercibleInstanceDeclaration <$> traverse f tys
+  gSimple other = pure other
+
+  gHint (ErrorInSubsumption t1 t2) = ErrorInSubsumption <$> f t1 <*> f t2
+  gHint (ErrorUnifyingTypes t1 t2) = ErrorUnifyingTypes <$> f t1 <*> f t2
+  gHint (ErrorCheckingType e t) = ErrorCheckingType e <$> f t
+  gHint (ErrorCheckingKind t k) = ErrorCheckingKind <$> f t <*> f k
+  gHint (ErrorInferringKind t) = ErrorInferringKind <$> f t
+  gHint (ErrorInApplication e1 t1 e2) = ErrorInApplication e1 <$> f t1 <*> pure e2
+  gHint (ErrorInInstance cl ts) = ErrorInInstance cl <$> traverse f ts
+  gHint (ErrorSolvingConstraint con) = ErrorSolvingConstraint <$> overConstraintArgs (traverse f) con
+  gHint other = pure other
+
+errorDocUri :: ErrorMessage -> Text
+errorDocUri e = "https://github.com/purescript/documentation/blob/master/errors/" <> errorCode e <> ".md"
+
+-- TODO Other possible suggestions:
+-- WildcardInferredType - source span not small enough
+-- DuplicateSelectiveImport - would require 2 ranges to remove and 1 insert
+errorSuggestion :: SimpleErrorMessage -> Maybe ErrorSuggestion
+errorSuggestion err =
+    case err of
+      UnusedImport{} -> emptySuggestion
+      DuplicateImport{} -> emptySuggestion
+      UnusedExplicitImport mn _ qual refs -> suggest $ importSuggestion mn refs qual
+      UnusedDctorImport mn _ qual refs -> suggest $ importSuggestion mn refs qual
+      UnusedDctorExplicitImport mn _ _ qual refs -> suggest $ importSuggestion mn refs qual
+      ImplicitImport mn refs -> suggest $ importSuggestion mn refs Nothing
+      ImplicitQualifiedImport mn asModule refs -> suggest $ importSuggestion mn refs (Just asModule)
+      ImplicitQualifiedImportReExport mn asModule refs -> suggest $ importSuggestion mn refs (Just asModule)
+      HidingImport mn refs -> suggest $ importSuggestion mn refs Nothing
+      MissingTypeDeclaration ident ty -> suggest $ showIdent ident <> " :: " <> T.pack (prettyPrintSuggestedTypeSimplified ty) <> "\n"
+      MissingKindDeclaration sig name ty -> suggest $ prettyPrintKindSignatureFor sig <> " " <> runProperName name <> " :: " <> T.pack (prettyPrintSuggestedTypeSimplified ty) <> "\n"
+      WildcardInferredType ty _ -> suggest $ T.pack (prettyPrintSuggestedTypeSimplified ty)
+      WarningParsingCSTModule pe -> do
+        let toks = CST.errToks pe
+        case CST.errType pe of
+          CST.WarnDeprecatedRowSyntax -> do
+            let kind = CST.printTokens $ drop 1 toks
+                sugg | " " `T.isPrefixOf` kind = "Row" <> kind
+                     | otherwise = "Row " <> kind
+            suggest sugg
+          CST.WarnDeprecatedForeignKindSyntax -> suggest $ "data " <> CST.printTokens (drop 3 toks)
+          CST.WarnDeprecatedKindImportSyntax -> suggest $ CST.printTokens $ drop 1 toks
+          CST.WarnDeprecatedKindExportSyntax -> suggest $ CST.printTokens $ drop 1 toks
+          CST.WarnDeprecatedCaseOfOffsideSyntax -> Nothing
+      _ -> Nothing
+  where
+    emptySuggestion = Just $ ErrorSuggestion ""
+    suggest = Just . ErrorSuggestion
+
+    importSuggestion :: ModuleName -> [ DeclarationRef ] -> Maybe ModuleName -> Text
+    importSuggestion mn refs qual =
+      "import " <> runModuleName mn <> " (" <> T.intercalate ", " (mapMaybe prettyPrintRef refs) <> ")" <> qstr qual
+
+    qstr :: Maybe ModuleName -> Text
+    qstr (Just mn) = " as " <> runModuleName mn
+    qstr Nothing = ""
+
+suggestionSpan :: ErrorMessage -> Maybe SourceSpan
+suggestionSpan e =
+  -- The `NEL.head` is a bit arbitrary here, but I don't think we'll
+  -- have errors-with-suggestions that also have multiple source
+  -- spans. -garyb
+  getSpan (unwrapErrorMessage e) . NEL.head <$> errorSpan e
+  where
+    startOnly SourceSpan{spanName, spanStart} = SourceSpan {spanName, spanStart, spanEnd = spanStart}
+
+    getSpan simple ss =
+      case simple of
+        MissingTypeDeclaration{} -> startOnly ss
+        MissingKindDeclaration{} -> startOnly ss
+        _ -> ss
+
+showSuggestion :: SimpleErrorMessage -> Text
+showSuggestion suggestion = case errorSuggestion suggestion of
+  Just (ErrorSuggestion x) -> x
+  _ -> ""
+
+ansiColor :: (ANSI.ColorIntensity, ANSI.Color) -> String
+ansiColor (intensity, color) =
+   ANSI.setSGRCode [ANSI.SetColor ANSI.Foreground intensity color]
+
+ansiColorReset :: String
+ansiColorReset =
+   ANSI.setSGRCode [ANSI.Reset]
+
+colorCode :: Maybe (ANSI.ColorIntensity, ANSI.Color) -> Text -> Text
+colorCode codeColor code = case codeColor of
+  Nothing -> code
+  Just cc -> T.pack (ansiColor cc) <> code <> T.pack ansiColorReset
+
+colorCodeBox :: Maybe (ANSI.ColorIntensity, ANSI.Color) -> Box.Box -> Box.Box
+colorCodeBox codeColor b = case codeColor of
+  Nothing -> b
+  Just cc
+    | Box.rows b == 1 ->
+        Box.text (ansiColor cc) Box.<> b `endWith` Box.text ansiColorReset
+
+    | otherwise -> Box.hcat Box.left -- making two boxes, one for each side of the box so that it will set each row it's own color and will reset it afterwards
+        [ Box.vcat Box.top $ replicate (Box.rows b) $ Box.text $ ansiColor cc
+        , b
+        , Box.vcat Box.top $ replicate (Box.rows b) $ Box.text ansiColorReset
+        ]
+
+commasAndConjunction :: Text -> [Text] -> Text
+commasAndConjunction conj = \case
+  [x] -> x
+  [x, y] -> x <> " " <> conj <> " " <> y
+  (unsnoc -> Just (rest, z)) -> foldMap (<> ", ") rest <> conj <> " " <> z
+  _ -> ""
+
+-- | Default color intensity and color for code
+defaultCodeColor :: (ANSI.ColorIntensity, ANSI.Color)
+defaultCodeColor = (ANSI.Dull, ANSI.Yellow)
+
+-- | `prettyPrintSingleError` Options
+data PPEOptions = PPEOptions
+  { ppeCodeColor         :: Maybe (ANSI.ColorIntensity, ANSI.Color) -- ^ Color code with this color... or not
+  , ppeFull              :: Bool -- ^ Should write a full error message?
+  , ppeLevel             :: Level -- ^ Should this report an error or a warning?
+  , ppeShowDocs          :: Bool -- ^ Should show a link to error message's doc page?
+  , ppeRelativeDirectory :: FilePath -- ^ FilePath to which the errors are relative
+  , ppeFileContents      :: [(FilePath, Text)] -- ^ Unparsed contents of source files
+  }
+
+-- | Default options for PPEOptions
+defaultPPEOptions :: PPEOptions
+defaultPPEOptions = PPEOptions
+  { ppeCodeColor         = Just defaultCodeColor
+  , ppeFull              = False
+  , ppeLevel             = Error
+  , ppeShowDocs          = True
+  , ppeRelativeDirectory = mempty
+  , ppeFileContents      = []
+  }
+
+-- | Pretty print a single error, simplifying if necessary
+prettyPrintSingleError :: PPEOptions -> ErrorMessage -> Box.Box
+prettyPrintSingleError (PPEOptions codeColor full level showDocs relPath fileContents) e = flip evalState defaultUnknownMap $ do
+  em <- onTypesInErrorMessageM replaceUnknowns (if full then e else simplifyErrorMessage e)
+  um <- get
+  return (prettyPrintErrorMessage um em)
+  where
+  (markCode, markCodeBox) = (colorCode &&& colorCodeBox) codeColor
+
+  -- Pretty print an ErrorMessage
+  prettyPrintErrorMessage :: TypeMap -> ErrorMessage -> Box.Box
+  prettyPrintErrorMessage typeMap (ErrorMessage hints simple) =
+    paras $
+      [ foldr renderHint (indent (renderSimpleErrorMessage simple)) hints
+      ] ++
+      maybe [] (return . Box.moveDown 1) typeInformation ++
+      [ Box.moveDown 1 $ paras
+          [ line $ "See " <> errorDocUri e <> " for more information, "
+          , line $ "or to contribute content related to this " <> levelText <> "."
+          ]
+      | showDocs
+      ]
+    where
+    typeInformation :: Maybe Box.Box
+    typeInformation | not (null types) = Just $ Box.hsep 1 Box.left [ line "where", paras types ]
+                    | otherwise = Nothing
+      where
+      types :: [Box.Box]
+      types = map skolemInfo  (M.elems (umSkolemMap typeMap)) ++
+              map unknownInfo (M.elems (umUnknownMap typeMap))
+
+      skolemInfo :: (String, Int, Maybe SourceSpan) -> Box.Box
+      skolemInfo (name, s, ss) =
+        paras $
+          line (markCode (T.pack (name <> show s)) <> " is a rigid type variable")
+          : foldMap (return . line . ("  bound at " <>) . displayStartEndPos) ss
+
+      unknownInfo :: Int -> Box.Box
+      unknownInfo u = line $ markCode ("t" <> T.pack (show u)) <> " is an unknown type"
+
+    renderSimpleErrorMessage :: SimpleErrorMessage -> Box.Box
+    renderSimpleErrorMessage (InternalCompilerError ctx err) =
+      paras [ line "Internal compiler error:"
+            , indent $ line err
+            , line ctx
+            , line "Please report this at https://github.com/purescript/purescript/issues"
+            ]
+    renderSimpleErrorMessage (ModuleNotFound mn) =
+      paras [ line $ "Module " <> markCode (runModuleName mn) <> " was not found."
+            , line $
+                if isBuiltinModuleName mn
+                  then
+                    "Module names in the Prim namespace are reserved for built-in modules, but this version of the compiler does not provide module " <> markCode (runModuleName mn) <> ". You may be able to fix this by updating your compiler to a newer version."
+                  else
+                    "Make sure the source file exists, and that it has been provided as an input to the compiler."
+            ]
+    renderSimpleErrorMessage (FileIOError doWhat err) =
+      paras [ line $ "I/O error while trying to " <> doWhat
+            , indent . line $ err
+            ]
+    renderSimpleErrorMessage (ErrorParsingFFIModule path extra) =
+      paras $ [ line "Unable to parse foreign module:"
+              , indent . lineS $ path
+              ] ++
+              map (indent . lineS) (concatMap Bundle.printErrorMessage (maybeToList extra))
+    renderSimpleErrorMessage (ErrorParsingCSTModule err) =
+      paras [ line "Unable to parse module: "
+            , line $ T.pack $ CST.prettyPrintErrorMessage err
+            ]
+    renderSimpleErrorMessage (WarningParsingCSTModule err) =
+      paras [ line $ T.pack $ CST.prettyPrintWarningMessage err
+            ]
+    renderSimpleErrorMessage (MissingFFIModule mn) =
+      line $ "The foreign module implementation for module " <> markCode (runModuleName mn) <> " is missing."
+    renderSimpleErrorMessage (UnnecessaryFFIModule mn path) =
+      paras [ line $ "An unnecessary foreign module implementation was provided for module " <> markCode (runModuleName mn) <> ": "
+            , indent . lineS $ path
+            , line $ "Module " <> markCode (runModuleName mn) <> " does not contain any foreign import declarations, so a foreign module is not necessary."
+            ]
+    renderSimpleErrorMessage (MissingFFIImplementations mn idents) =
+      paras [ line $ "The following values are not defined in the foreign module for module " <> markCode (runModuleName mn) <> ": "
+            , indent . paras $ map (line . runIdent) idents
+            ]
+    renderSimpleErrorMessage (UnusedFFIImplementations mn idents) =
+      paras [ line $ "The following definitions in the foreign module for module " <> markCode (runModuleName mn) <> " are unused: "
+            , indent . paras $ map (line . runIdent) idents
+            ]
+    renderSimpleErrorMessage (InvalidFFIIdentifier mn ident) =
+      paras [ line $ "In the FFI module for " <> markCode (runModuleName mn) <> ":"
+            , indent . paras $
+                [ line $ "The identifier " <> markCode ident <> " is not valid in PureScript."
+                , line "Note that exported identifiers in FFI modules must be valid PureScript identifiers."
+                ]
+            ]
+    renderSimpleErrorMessage (DeprecatedFFIPrime mn ident) =
+      paras [ line $ "In the FFI module for " <> markCode (runModuleName mn) <> ":"
+            , indent . paras $
+                [ line $ "The identifier " <> markCode ident <> " contains a prime (" <> markCode "'" <> ")."
+                , line "Primes are not allowed in identifiers exported from FFI modules."
+                ]
+            ]
+    renderSimpleErrorMessage (DeprecatedFFICommonJSModule mn path) =
+      paras [ line $ "A CommonJS foreign module implementation was provided for module " <> markCode (runModuleName mn) <> ": "
+            , indent . lineS $ path
+            , line "CommonJS foreign modules are no longer supported. Use native JavaScript/ECMAScript module syntax instead."
+            ]
+    renderSimpleErrorMessage (UnsupportedFFICommonJSExports mn idents) =
+      paras [ line $ "The following CommonJS exports are not supported in the ES foreign module for module " <> markCode (runModuleName mn) <> ": "
+            , indent . paras $ map line idents
+            ]
+    renderSimpleErrorMessage (UnsupportedFFICommonJSImports mn mids) =
+      paras [ line $ "The following CommonJS imports are not supported in the ES foreign module for module " <> markCode (runModuleName mn) <> ": "
+            , indent . paras $ map line mids
+            ]
+    renderSimpleErrorMessage InvalidDoBind =
+      line "The last statement in a 'do' block must be an expression, but this block ends with a binder."
+    renderSimpleErrorMessage InvalidDoLet =
+      line "The last statement in a 'do' block must be an expression, but this block ends with a let binding."
+    renderSimpleErrorMessage (OverlappingNamesInLet name) =
+      line $ "The name " <> markCode (showIdent name) <> " was defined multiple times in a binding group"
+    renderSimpleErrorMessage (InfiniteType ty) =
+      paras [ line "An infinite type was inferred for an expression: "
+            , markCodeBox $ indent $ prettyType ty
+            ]
+    renderSimpleErrorMessage (InfiniteKind ki) =
+      paras [ line "An infinite kind was inferred for a type: "
+            , markCodeBox $ indent $ prettyType ki
+            ]
+    renderSimpleErrorMessage (MultipleValueOpFixities op) =
+      line $ "There are multiple fixity/precedence declarations for operator " <> markCode (showOp op)
+    renderSimpleErrorMessage (MultipleTypeOpFixities op) =
+      line $ "There are multiple fixity/precedence declarations for type operator " <> markCode (showOp op)
+    renderSimpleErrorMessage (OrphanTypeDeclaration nm) =
+      line $ "The type declaration for " <> markCode (showIdent nm) <> " should be followed by its definition."
+    renderSimpleErrorMessage (OrphanKindDeclaration nm) =
+      line $ "The kind declaration for " <> markCode (runProperName nm) <> " should be followed by its definition."
+    renderSimpleErrorMessage (OrphanRoleDeclaration nm) =
+      line $ "The role declaration for " <> markCode (runProperName nm) <> " should follow its definition."
+    renderSimpleErrorMessage (RedefinedIdent name) =
+      line $ "The value " <> markCode (showIdent name) <> " has been defined multiple times"
+    renderSimpleErrorMessage (UnknownName name@(Qualified (BySourcePos _) (IdentName (Ident i)))) | i `elem` [ C.S_bind, C.S_discard ] =
+      line $ "Unknown " <> printName name <> ". You're probably using do-notation, which the compiler replaces with calls to the " <> markCode "bind" <> " and " <> markCode "discard" <> " functions. Please import " <> markCode i <> " from module " <> markCode "Prelude"
+    renderSimpleErrorMessage (UnknownName name@(Qualified (BySourcePos _) (IdentName (Ident C.S_negate)))) =
+      line $ "Unknown " <> printName name <> ". You're probably using numeric negation (the unary " <> markCode "-" <> " operator), which the compiler replaces with calls to the " <> markCode C.S_negate <> " function. Please import " <> markCode C.S_negate <> " from module " <> markCode "Prelude"
+    renderSimpleErrorMessage (UnknownName name) =
+      line $ "Unknown " <> printName name
+    renderSimpleErrorMessage (UnknownImport mn name) =
+      paras [ line $ "Cannot import " <> printName (Qualified ByNullSourcePos name) <> " from module " <> markCode (runModuleName mn)
+            , line "It either does not exist or the module does not export it."
+            ]
+    renderSimpleErrorMessage (UnknownImportDataConstructor mn tcon dcon) =
+      line $ "Module " <> runModuleName mn <> " does not export data constructor " <> markCode (runProperName dcon) <> " for type " <> markCode (runProperName tcon)
+    renderSimpleErrorMessage (UnknownExport name) =
+      line $ "Cannot export unknown " <> printName (Qualified ByNullSourcePos name)
+    renderSimpleErrorMessage (UnknownExportDataConstructor tcon dcon) =
+      line $ "Cannot export data constructor " <> markCode (runProperName dcon) <> " for type " <> markCode (runProperName tcon) <> ", as it has not been declared."
+    renderSimpleErrorMessage (ScopeConflict nm ms) =
+      paras [ line $ "Conflicting definitions are in scope for " <> printName (Qualified ByNullSourcePos nm) <> " from the following modules:"
+            , indent $ paras $ map (line . markCode . runModuleName) ms
+            ]
+    renderSimpleErrorMessage (ScopeShadowing nm exmn ms) =
+      paras [ line $ "Shadowed definitions are in scope for " <> printName (Qualified ByNullSourcePos nm) <> " from the following open imports:"
+            , indent $ paras $ map (line . markCode . ("import " <>) . runModuleName) ms
+            , line $ "These will be ignored and the " <> case exmn of
+                Just exmn' -> "declaration from " <> markCode (runModuleName exmn') <> " will be used."
+                Nothing -> "local declaration will be used."
+            ]
+    renderSimpleErrorMessage (DeclConflict new existing) =
+      line $ "Declaration for " <> printName (Qualified ByNullSourcePos new) <> " conflicts with an existing " <> nameType existing <> " of the same name."
+    renderSimpleErrorMessage (ExportConflict new existing) =
+      line $ "Export for " <> printName new <> " conflicts with " <> printName existing
+    renderSimpleErrorMessage (DuplicateModule mn) =
+      line $ "Module " <> markCode (runModuleName mn) <> " has been defined multiple times"
+    renderSimpleErrorMessage (DuplicateTypeClass pn ss) =
+      paras [ line ("Type class " <> markCode (runProperName pn) <> " has been defined multiple times:")
+            , indent $ line $ displaySourceSpan relPath ss
+            ]
+    renderSimpleErrorMessage (DuplicateInstance pn ss) =
+      paras [ line ("Instance " <> markCode (showIdent pn) <> " has been defined multiple times:")
+            , indent $ line $ displaySourceSpan relPath ss
+            ]
+    renderSimpleErrorMessage (CycleInDeclaration nm) =
+      line $ "The value of " <> markCode (showIdent nm) <> " is undefined here, so this reference is not allowed."
+    renderSimpleErrorMessage (CycleInModules mns) =
+      case mns of
+        mn :| [] ->
+          line $ "Module " <> markCode (runModuleName mn) <> " imports itself."
+        _ ->
+          paras [ line "There is a cycle in module dependencies in these modules: "
+                , indent $ paras (line . markCode . runModuleName <$> NEL.toList mns)
+                ]
+    renderSimpleErrorMessage (CycleInTypeSynonym names) =
+      paras $ cycleError <>
+            [ line "Cycles are disallowed because they can lead to loops in the type checker."
+            , line "Consider using a 'newtype' instead."
+            ]
+      where
+      cycleError = case names of
+        pn :| [] -> pure . line $ "A cycle appears in the definition of type synonym " <> markCode (runProperName pn)
+        _ -> [ line " A cycle appears in a set of type synonym definitions:"
+             , indent $ line $ "{" <> T.intercalate ", " (markCode . runProperName <$> NEL.toList names) <> "}"
+             ]
+    renderSimpleErrorMessage (CycleInTypeClassDeclaration (name :| [])) =
+      paras [ line $ "A type class '" <> markCode (runProperName (disqualify name)) <> "' may not have itself as a superclass." ]
+    renderSimpleErrorMessage (CycleInTypeClassDeclaration names) =
+      paras [ line "A cycle appears in a set of type class definitions:"
+            , indent $ line $ "{" <> T.intercalate ", " (markCode . runProperName . disqualify <$> NEL.toList names) <> "}"
+            , line "Cycles are disallowed because they can lead to loops in the type checker."
+            ]
+    renderSimpleErrorMessage (CycleInKindDeclaration (name :| [])) =
+      paras [ line $ "A kind declaration '" <> markCode (runProperName (disqualify name)) <> "' may not refer to itself in its own signature." ]
+    renderSimpleErrorMessage (CycleInKindDeclaration names) =
+      paras [ line "A cycle appears in a set of kind declarations:"
+            , indent $ line $ "{" <> T.intercalate ", " (markCode . runProperName . disqualify <$> NEL.toList names) <> "}"
+            , line "Kind declarations may not refer to themselves in their own signatures."
+            ]
+    renderSimpleErrorMessage (NameIsUndefined ident) =
+      line $ "Value " <> markCode (showIdent ident) <> " is undefined."
+    renderSimpleErrorMessage (UndefinedTypeVariable name) =
+      line $ "Type variable " <> markCode (runProperName name) <> " is undefined."
+    renderSimpleErrorMessage (PartiallyAppliedSynonym name) =
+      paras [ line $ "Type synonym " <> markCode (showQualified runProperName name) <> " is partially applied."
+            , line "Type synonyms must be applied to all of their type arguments."
+            ]
+    renderSimpleErrorMessage (EscapedSkolem name Nothing ty) =
+      paras [ line $ "The type variable " <> markCode name <> " has escaped its scope, appearing in the type"
+            , markCodeBox $ indent $ prettyType ty
+            ]
+    renderSimpleErrorMessage (EscapedSkolem name (Just srcSpan) ty) =
+      paras [ line $ "The type variable " <> markCode name <> ", bound at"
+            , indent $ line $ displaySourceSpan relPath srcSpan
+            , line "has escaped its scope, appearing in the type"
+            , markCodeBox $ indent $ prettyType ty
+            ]
+    renderSimpleErrorMessage (TypesDoNotUnify u1 u2)
+      = let (row1Box, row2Box) = printRows u1 u2
+
+        in paras [ line "Could not match type"
+                 , row1Box
+                 , line "with type"
+                 , row2Box
+                 ]
+
+    renderSimpleErrorMessage (KindsDoNotUnify k1 k2) =
+      paras [ line "Could not match kind"
+            , markCodeBox $ indent $ prettyType k1
+            , line "with kind"
+            , markCodeBox $ indent $ prettyType k2
+            ]
+    renderSimpleErrorMessage (ConstrainedTypeUnified t1 t2) =
+      paras [ line "Could not match constrained type"
+            , markCodeBox $ indent $ prettyType t1
+            , line "with type"
+            , markCodeBox $ indent $ prettyType t2
+            ]
+    renderSimpleErrorMessage (OverlappingInstances _ _ []) = internalError "OverlappingInstances: empty instance list"
+    renderSimpleErrorMessage (OverlappingInstances nm ts ds) =
+      paras [ line "Overlapping type class instances found for"
+            , markCodeBox $ indent $ Box.hsep 1 Box.left
+                [ line (showQualified runProperName nm)
+                , Box.vcat Box.left (map prettyTypeAtom ts)
+                ]
+            , line "The following instances were found:"
+            , indent $ paras (map prettyInstanceName ds)
+            ]
+    renderSimpleErrorMessage (UnknownClass nm) =
+      paras [ line "No type class instance was found for class"
+            , markCodeBox $ indent $ line (showQualified runProperName nm)
+            , line "because the class was not in scope. Perhaps it was not exported."
+            ]
+    renderSimpleErrorMessage (NoInstanceFound (Constraint _ C.Fail _ [ ty ] _) _ _) | Just box <- toTypelevelString ty =
+      paras [ line "Custom error:"
+            , indent box
+            ]
+    renderSimpleErrorMessage (NoInstanceFound (Constraint _ C.Partial
+                                                          _
+                                                          _
+                                                          (Just (PartialConstraintData bs b))) _ _) =
+      paras [ line "A case expression could not be determined to cover all inputs."
+            , line "The following additional cases are required to cover all inputs:"
+            , indent $ paras $
+                Box.hsep 1 Box.left
+                  (map (paras . map (line . markCode)) (transpose bs))
+                  : [line "..." | not b]
+            , line "Alternatively, add a Partial constraint to the type of the enclosing value."
+            ]
+    renderSimpleErrorMessage (NoInstanceFound (Constraint _ C.Discard _ [ty] _) _ _) =
+      paras [ line "A result of type"
+            , markCodeBox $ indent $ prettyType ty
+            , line "was implicitly discarded in a do notation block."
+            , line ("You can use " <> markCode "_ <- ..." <> " to explicitly discard the result.")
+            ]
+    renderSimpleErrorMessage (NoInstanceFound (Constraint _ nm _ ts _) ambiguous unks) =
+      paras $
+            [ line "No type class instance was found for"
+            , markCodeBox $ indent $ Box.hsep 1 Box.left
+                [ line (showQualified runProperName nm)
+                , Box.vcat Box.left (map prettyTypeAtom ts)
+                ]
+            , paras $ let useMessage msg =
+                            [ line msg
+                            , indent $ paras (map prettyInstanceName ambiguous)
+                            ]
+                      in case ambiguous of
+                        [] -> []
+                        [_] -> useMessage "The following instance partially overlaps the above constraint, which means the rest of its instance chain will not be considered:"
+                        _ -> useMessage "The following instances partially overlap the above constraint, which means the rest of their instance chains will not be considered:"
+            ] <> case unks of
+                  NoUnknowns ->
+                    []
+                  Unknowns ->
+                    [ line "The instance head contains unknown type variables. Consider adding a type annotation." ]
+                  UnknownsWithVtaRequiringArgs tyClassMembersRequiringVtas ->
+                    let
+                      renderSingleTyClassMember (tyClassMember, argsRequiringVtas) =
+                        Box.moveRight 2 $ paras $
+                          [ line $ markCode (showQualified showIdent tyClassMember) ]
+                          <> case argsRequiringVtas of
+                              [required] ->
+                                [ Box.moveRight 2 $ line $ T.intercalate ", " required ]
+                              options ->
+                                [ Box.moveRight 2 $ line "One of the following sets of type variables:"
+                                , Box.moveRight 2 $ paras $
+                                    map (\set -> Box.moveRight 2 $ line $ T.intercalate ", " set) options
+                                ]
+                    in
+                      [ paras
+                        [ line "The instance head contains unknown type variables."
+                        , Box.moveDown 1 $ paras $
+                            [ line $ "Note: The following type class members found in the expression require visible type applications to be unambiguous (e.g. " <> markCode "tyClassMember @Int" <> ")."]
+                            <> map renderSingleTyClassMember (NEL.toList tyClassMembersRequiringVtas)
+                        ]
+                      ]
+    renderSimpleErrorMessage (AmbiguousTypeVariables t uis) =
+      paras [ line "The inferred type"
+            , markCodeBox $ indent $ prettyType t
+            , line "has type variables which are not determined by those mentioned in the body of the type:"
+            , indent $ Box.hsep 1 Box.left
+              [ Box.vcat Box.left
+                [ line $ markCode (u <> T.pack (show i)) <> " could not be determined"
+                | (u, i) <- uis ]
+              ]
+            , line "Consider adding a type annotation."
+            ]
+    renderSimpleErrorMessage (PossiblyInfiniteInstance nm ts) =
+      paras [ line "Type class instance for"
+            , markCodeBox $ indent $ Box.hsep 1 Box.left
+                [ line (showQualified runProperName nm)
+                , Box.vcat Box.left (map prettyTypeAtom ts)
+                ]
+            , line "is possibly infinite."
+            ]
+    renderSimpleErrorMessage PossiblyInfiniteCoercibleInstance =
+      line $ "A " <> markCode "Coercible" <> " instance is possibly infinite."
+    renderSimpleErrorMessage (CannotDerive nm ts) =
+      paras [ line "Cannot derive a type class instance for"
+            , markCodeBox $ indent $ Box.hsep 1 Box.left
+                [ line (showQualified runProperName nm)
+                , Box.vcat Box.left (map prettyTypeAtom ts)
+                ]
+            , line "since instances of this type class are not derivable."
+            ]
+    renderSimpleErrorMessage (InvalidNewtypeInstance nm ts) =
+      paras [ line "Cannot derive newtype instance for"
+            , markCodeBox $ indent $ Box.hsep 1 Box.left
+                [ line (showQualified runProperName nm)
+                , Box.vcat Box.left (map prettyTypeAtom ts)
+                ]
+            , line "Make sure this is a newtype."
+            ]
+    renderSimpleErrorMessage (MissingNewtypeSuperclassInstance su cl ts) =
+      paras [ line "The derived newtype instance for"
+            , markCodeBox $ indent $ Box.hsep 1 Box.left
+                [ line (showQualified runProperName cl)
+                , Box.vcat Box.left (map prettyTypeAtom ts)
+                ]
+            , line $ "does not include a derived superclass instance for " <> markCode (showQualified runProperName su) <> "."
+            ]
+    renderSimpleErrorMessage (UnverifiableSuperclassInstance su cl ts) =
+      paras [ line "The derived newtype instance for"
+            , markCodeBox $ indent $ Box.hsep 1 Box.left
+                [ line (showQualified runProperName cl)
+                , Box.vcat Box.left (map prettyTypeAtom ts)
+                ]
+            , line $ "implies an superclass instance for " <> markCode (showQualified runProperName su) <> " which could not be verified."
+            ]
+    renderSimpleErrorMessage (InvalidDerivedInstance nm ts argCount) =
+      paras [ line "Cannot derive the type class instance"
+            , markCodeBox $ indent $ Box.hsep 1 Box.left
+                [ line (showQualified runProperName nm)
+                , Box.vcat Box.left (map prettyTypeAtom ts)
+                ]
+            , line $ fold
+                [ "because the "
+                , markCode (showQualified runProperName nm)
+                , " type class has "
+                , T.pack (show argCount)
+                , " type "
+                , if argCount == 1 then "argument" else "arguments"
+                , ", but the declaration specifies " <> T.pack (show (length ts)) <> "."
+                ]
+            ]
+    renderSimpleErrorMessage (ExpectedTypeConstructor nm ts ty) =
+      paras [ line "Cannot derive the type class instance"
+            , markCodeBox $ indent $ Box.hsep 1 Box.left
+                [ line (showQualified runProperName nm)
+                , Box.vcat Box.left (map prettyTypeAtom ts)
+                ]
+            , "because the type"
+            , markCodeBox $ indent $ prettyType ty
+            , line "is not of the required form T a_1 ... a_n, where T is a type constructor defined in the same module."
+            ]
+    renderSimpleErrorMessage (CannotFindDerivingType nm) =
+      line $ "Cannot derive a type class instance, because the type declaration for " <> markCode (runProperName nm) <> " could not be found."
+    renderSimpleErrorMessage (DuplicateLabel l expr) =
+      paras $ [ line $ "Label " <> markCode (prettyPrintLabel l) <> " appears more than once in a row type." ]
+                       <> foldMap (\expr' -> [ line "Relevant expression: "
+                                             , markCodeBox $ indent $ prettyPrintValue prettyDepth expr'
+                                             ]) expr
+    renderSimpleErrorMessage (DuplicateTypeArgument name) =
+      line $ "Type argument " <> markCode name <> " appears more than once."
+    renderSimpleErrorMessage (DuplicateValueDeclaration nm) =
+      line $ "Multiple value declarations exist for " <> markCode (showIdent nm) <> "."
+    renderSimpleErrorMessage (ArgListLengthsDiffer ident) =
+      line $ "Argument list lengths differ in declaration " <> markCode (showIdent ident)
+    renderSimpleErrorMessage (OverlappingArgNames ident) =
+      line $ "Overlapping names in function/binder" <> foldMap ((" in declaration " <>) . showIdent) ident
+    renderSimpleErrorMessage (MissingClassMember identsAndTypes) =
+      paras [ line "The following type class members have not been implemented:"
+            , Box.vcat Box.left
+              [ markCodeBox $ Box.text (T.unpack (showIdent ident)) Box.<> " :: " Box.<> prettyType ty
+              | (ident, ty) <- NEL.toList identsAndTypes ]
+            ]
+    renderSimpleErrorMessage (ExtraneousClassMember ident className) =
+      line $ "" <> markCode (showIdent ident) <> " is not a member of type class " <> markCode (showQualified runProperName className)
+    renderSimpleErrorMessage (ExpectedType ty kind) =
+      paras [ line $ "In a type-annotated expression " <> markCode "x :: t" <> ", the type " <> markCode "t" <> " must have kind " <> markCode (runProperName . disqualify $ C.Type) <> "."
+            , line "The error arises from the type"
+            , markCodeBox $ indent $ prettyType ty
+            , line "having the kind"
+            , markCodeBox $ indent $ prettyType kind
+            , line "instead."
+            ]
+    renderSimpleErrorMessage (IncorrectConstructorArity nm expected actual) =
+      paras [ line $ "Data constructor " <> markCode (showQualified runProperName nm) <> " was given " <> T.pack (show actual) <> " arguments in a case expression, but expected " <> T.pack (show expected) <> " arguments."
+            , line $ "This problem can be fixed by giving " <> markCode (showQualified runProperName nm) <> " " <> T.pack (show expected) <> " arguments."
+            ]
+    renderSimpleErrorMessage (ExprDoesNotHaveType expr ty) =
+      paras [ line "Expression"
+            , markCodeBox $ indent $ prettyPrintValue prettyDepth expr
+            , line "does not have type"
+            , markCodeBox $ indent $ prettyType ty
+            ]
+    renderSimpleErrorMessage (PropertyIsMissing prop) =
+      line $ "Type of expression lacks required label " <> markCode (prettyPrintLabel prop) <> "."
+    renderSimpleErrorMessage (AdditionalProperty prop) =
+      line $ "Type of expression contains additional label " <> markCode (prettyPrintLabel prop) <> "."
+    renderSimpleErrorMessage (OrphanInstance nm cnm nonOrphanModules ts) =
+      paras [ line $ "Orphan instance" <> prettyPrintPlainIdent nm <> " found for "
+            , markCodeBox $ indent $ Box.hsep 1 Box.left
+                [ line (showQualified runProperName cnm)
+                , Box.vcat Box.left (map prettyTypeAtom ts)
+                ]
+            , Box.vcat Box.left $ case modulesToList of
+                [] -> [ line "There is nowhere this instance can be placed without being an orphan."
+                      , line "A newtype wrapper can be used to avoid this problem."
+                      ]
+                _  -> [ Box.text $ "This problem can be resolved by declaring the instance in "
+                          <> T.unpack formattedModules
+                          <> ", or by defining the instance on a newtype wrapper."
+                      ]
+                ]
+      where
+        modulesToList = S.toList $ S.delete (moduleNameFromString "Prim") nonOrphanModules
+        formattedModules = T.intercalate " or " (markCode . runModuleName <$> modulesToList)
+    renderSimpleErrorMessage (InvalidNewtype name) =
+      paras [ line $ "Newtype " <> markCode (runProperName name) <> " is invalid."
+            , line "Newtypes must define a single constructor with a single argument."
+            ]
+    renderSimpleErrorMessage (InvalidInstanceHead ty) =
+      paras [ line "Type class instance head is invalid due to use of type"
+            , markCodeBox $ indent $ prettyType ty
+            , line "All types appearing in instance declarations must be of the form T a_1 .. a_n, where each type a_i is of the same form, unless the type is fully determined by other type class arguments via functional dependencies."
+            ]
+    renderSimpleErrorMessage (TransitiveExportError x ys) =
+      paras [ line $ "An export for " <> markCode (prettyPrintExport x) <> " requires the following to also be exported: "
+            , indent $ paras $ map (line . markCode . prettyPrintExport) ys
+            ]
+    renderSimpleErrorMessage (TransitiveDctorExportError x ctors) =
+      paras [ line $ "An export for " <> markCode (prettyPrintExport x) <> " requires the following data constructor" <> (if length ctors == 1 then "" else "s") <> " to also be exported: "
+            , indent $ paras $ map (line . markCode . runProperName) ctors
+            ]
+    renderSimpleErrorMessage (HiddenConstructors x className) =
+      paras [ line $ "An export for " <> markCode (prettyPrintExport x) <> " hides data constructors but the type declares an instance of " <> markCode (showQualified runProperName className) <> "."
+            , line "Such instance allows to match and construct values of this type, effectively making the constructors public."
+            ]
+    renderSimpleErrorMessage (ShadowedName nm) =
+      line $ "Name " <> markCode (showIdent nm) <> " was shadowed."
+    renderSimpleErrorMessage (ShadowedTypeVar tv) =
+      line $ "Type variable " <> markCode tv <> " was shadowed."
+    renderSimpleErrorMessage (UnusedName nm) =
+      line $ "Name " <> markCode (showIdent nm) <> " was introduced but not used."
+    renderSimpleErrorMessage (UnusedDeclaration nm) =
+      line $ "Declaration " <> markCode (showIdent nm) <> " was not used, and is not exported."
+    renderSimpleErrorMessage (UnusedTypeVar tv) =
+      line $ "Type variable " <> markCode tv <> " is ambiguous, since it is unused in the polymorphic type which introduces it."
+    renderSimpleErrorMessage (ImportHidingModule name) =
+      paras [ line "hiding imports cannot be used to hide modules."
+            , line $ "An attempt was made to hide the import of " <> markCode (runModuleName name)
+            ]
+    renderSimpleErrorMessage (WildcardInferredType ty ctx) =
+      paras $ [ line "Wildcard type definition has the inferred type "
+              , markCodeBox $ indent $ prettyType ty
+              ] <> renderContext ctx
+    renderSimpleErrorMessage (HoleInferredType name ty ctx ts) =
+      let
+        maxTSResults = 15
+        tsResult = case ts of
+          Just TSAfter{tsAfterIdentifiers=idents} | not (null idents) ->
+            let
+              formatTS (names, types) =
+                let
+                  idBoxes = Box.text . T.unpack . showQualified id <$> names
+                  tyBoxes = (\t -> BoxHelpers.indented
+                              (Box.text ":: " Box.<> prettyType t)) <$> types
+                  longestId = maximum (map Box.cols idBoxes)
+                in
+                  Box.vcat Box.top $
+                      zipWith (Box.<>)
+                      (Box.alignHoriz Box.left longestId <$> idBoxes)
+                      tyBoxes
+            in [ line "You could substitute the hole with one of these values:"
+               , markCodeBox (indent (formatTS (unzip (take maxTSResults idents))))
+               ]
+          _ -> []
+      in
+        paras $ [ line $ "Hole '" <> markCode name <> "' has the inferred type "
+                , markCodeBox (indent (prettyTypeWithDepth maxBound ty))
+                ] ++ tsResult ++ renderContext ctx
+    renderSimpleErrorMessage (MissingTypeDeclaration ident ty) =
+      paras [ line $ "No type declaration was provided for the top-level declaration of " <> markCode (showIdent ident) <> "."
+            , line "It is good practice to provide type declarations as a form of documentation."
+            , line $ "The inferred type of " <> markCode (showIdent ident) <> " was:"
+            , markCodeBox $ indent $ prettyTypeWithDepth maxBound ty
+            ]
+    renderSimpleErrorMessage (MissingKindDeclaration sig name ty) =
+      let sigKw = prettyPrintKindSignatureFor sig in
+      paras [ line $ "The inferred kind for the " <> sigKw <> " declaration " <> markCode (runProperName name) <> " contains polymorphic kinds."
+            , line "Consider adding a top-level kind signature as a form of documentation."
+            , markCodeBox $ indent $ Box.hsep 1 Box.left
+                [ line $ sigKw <> " " <> runProperName name <> " ::"
+                , prettyTypeWithDepth maxBound ty
+                ]
+            ]
+    renderSimpleErrorMessage (OverlappingPattern bs b) =
+      paras $ [ line "A case expression contains unreachable cases:\n"
+              , Box.hsep 1 Box.left (map (paras . map (line . prettyPrintBinderAtom)) (transpose bs))
+              ] ++
+              [ line "..." | not b ]
+    renderSimpleErrorMessage IncompleteExhaustivityCheck =
+      paras [ line "An exhaustivity check was abandoned due to too many possible cases."
+            , line "You may want to decompose your data types into smaller types."
+            ]
+
+    renderSimpleErrorMessage (UnusedImport mn qualifier) =
+      let
+        mark = markCode . runModuleName
+        unqualified = "The import of " <> mark mn <> " is redundant"
+        msg' q = "The qualified import of " <> mark mn <> " as " <> mark q <> " is redundant"
+        msg = maybe unqualified msg'
+      in line $ msg qualifier
+
+    renderSimpleErrorMessage msg@(UnusedExplicitImport mn names _ _) =
+      paras [ line $ "The import of module " <> markCode (runModuleName mn) <> " contains the following unused references:"
+            , indent $ paras $ map (line . markCode . runName . Qualified ByNullSourcePos) names
+            , line "It could be replaced with:"
+            , indent $ line $ markCode $ showSuggestion msg ]
+
+    renderSimpleErrorMessage msg@(UnusedDctorImport mn name _ _) =
+      paras [line $ "The import of type " <> markCode (runProperName name)
+                    <> " from module " <> markCode (runModuleName mn) <> " includes data constructors but only the type is used"
+            , line "It could be replaced with:"
+            , indent $ line $ markCode $ showSuggestion msg ]
+
+    renderSimpleErrorMessage msg@(UnusedDctorExplicitImport mn name names _ _) =
+      paras [ line $ "The import of type " <> markCode (runProperName name)
+                     <> " from module " <> markCode (runModuleName mn) <> " includes the following unused data constructors:"
+            , indent $ paras $ map (line . markCode . runProperName) names
+            , line "It could be replaced with:"
+            , indent $ line $ markCode $ showSuggestion msg ]
+
+    renderSimpleErrorMessage (DuplicateSelectiveImport name) =
+      line $ "There is an existing import of " <> markCode (runModuleName name) <> ", consider merging the import lists"
+
+    renderSimpleErrorMessage (DuplicateImport name imp qual) =
+      line $ "Duplicate import of " <> markCode (prettyPrintImport name imp qual)
+
+    renderSimpleErrorMessage (DuplicateImportRef name) =
+      line $ "Import list contains multiple references to " <> printName (Qualified ByNullSourcePos name)
+
+    renderSimpleErrorMessage (DuplicateExportRef name) =
+      line $ "Export list contains multiple references to " <> printName (Qualified ByNullSourcePos name)
+
+    renderSimpleErrorMessage (IntOutOfRange value backend lo hi) =
+      paras [ line $ "Integer value " <> markCode (T.pack (show value)) <> " is out of range for the " <> backend <> " backend."
+            , line $ "Acceptable values fall within the range " <> markCode (T.pack (show lo)) <> " to " <> markCode (T.pack (show hi)) <> " (inclusive)." ]
+
+    renderSimpleErrorMessage msg@(ImplicitQualifiedImport importedModule asModule _) =
+      paras [ line $ "Module " <> markCode (runModuleName importedModule) <> " was imported as " <> markCode (runModuleName asModule) <> " with unspecified imports."
+            , line $ "As there are multiple modules being imported as " <> markCode (runModuleName asModule) <> ", consider using the explicit form:"
+            , indent $ line $ markCode $ showSuggestion msg
+            ]
+    renderSimpleErrorMessage msg@(ImplicitQualifiedImportReExport importedModule asModule _) =
+      paras [ line $ "Module " <> markCode (runModuleName importedModule) <> " was imported as " <> markCode (runModuleName asModule) <> " with unspecified imports."
+            , line "As this module is being re-exported, consider using the explicit form:"
+            , indent $ line $ markCode $ showSuggestion msg
+            ]
+
+    renderSimpleErrorMessage msg@(ImplicitImport mn _) =
+      paras [ line $ "Module " <> markCode (runModuleName mn) <> " has unspecified imports, consider using the explicit form: "
+            , indent $ line $ markCode $ showSuggestion msg
+            ]
+
+    renderSimpleErrorMessage msg@(HidingImport mn _) =
+      paras [ line $ "Module " <> markCode (runModuleName mn) <> " has unspecified imports, consider using the inclusive form: "
+            , indent $ line $ markCode $ showSuggestion msg
+            ]
+
+    renderSimpleErrorMessage (CaseBinderLengthDiffers l bs) =
+      paras [ line "Binder list length differs in case alternative:"
+            , indent $ line $ T.intercalate ", " $ fmap prettyPrintBinderAtom bs
+            , line $ "Expecting " <> T.pack (show l) <> " binder" <> (if l == 1 then "" else "s") <> "."
+            ]
+
+    renderSimpleErrorMessage IncorrectAnonymousArgument =
+      line "An anonymous function argument appears in an invalid context."
+
+    renderSimpleErrorMessage (InvalidOperatorInBinder op fn) =
+      paras [ line $ "Operator " <> markCode (showQualified showOp op) <> " cannot be used in a pattern as it is an alias for function " <> showQualified showIdent fn <> "."
+            , line "Only aliases for data constructors may be used in patterns."
+            ]
+
+    renderSimpleErrorMessage (CannotGeneralizeRecursiveFunction ident ty) =
+      paras [ line $ "Unable to generalize the type of the recursive function " <> markCode (showIdent ident) <> "."
+            , line $ "The inferred type of " <> markCode (showIdent ident) <> " was:"
+            , markCodeBox $ indent $ prettyType ty
+            , line "Try adding a type signature."
+            ]
+
+    renderSimpleErrorMessage (CannotDeriveNewtypeForData tyName) =
+      paras [ line $ "Cannot derive an instance of the " <> markCode "Newtype" <> " class for non-newtype " <> markCode (runProperName tyName) <> "."
+            ]
+
+    renderSimpleErrorMessage (ExpectedWildcard tyName) =
+      paras [ line $ "Expected a type wildcard (_) when deriving an instance for " <> markCode (runProperName tyName) <> "."
+            ]
+
+    renderSimpleErrorMessage (CannotUseBindWithDo name) =
+      paras [ line $ "The name " <> markCode (showIdent name) <> " cannot be brought into scope in a do notation block, since do notation uses the same name."
+            ]
+
+    renderSimpleErrorMessage (ClassInstanceArityMismatch dictName className expected actual) =
+      paras [ line $ "The type class " <> markCode (showQualified runProperName className) <>
+                     " expects " <> T.pack (show expected) <> " " <> argsMsg <> "."
+            , line $ "But the instance" <> prettyPrintPlainIdent dictName <> mismatchMsg <> T.pack (show actual) <> "."
+            ]
+        where
+          mismatchMsg = if actual > expected then " provided " else " only provided "
+          argsMsg = if expected > 1 then "arguments" else "argument"
+
+    renderSimpleErrorMessage (UserDefinedWarning msgTy) =
+      let msg = fromMaybe (prettyType msgTy) (toTypelevelString msgTy) in
+      paras [ line "A custom warning occurred while solving type class constraints:"
+            , indent msg
+            ]
+
+    renderSimpleErrorMessage (CannotDefinePrimModules mn) =
+      paras
+        [ line $ "The module name " <> markCode (runModuleName mn) <> " is in the Prim namespace."
+        , line "The Prim namespace is reserved for compiler-defined terms."
+        ]
+
+    renderSimpleErrorMessage (MixedAssociativityError opsWithAssoc) =
+      paras
+        [ line "Cannot parse an expression that uses operators of the same precedence but mixed associativity:"
+        , indent $ paras $ map (\(name, assoc) -> line $ markCode (showQualified showOp name) <> " is " <> markCode (T.pack (showAssoc assoc))) (NEL.toList opsWithAssoc)
+        , line "Use parentheses to resolve this ambiguity."
+        ]
+
+    renderSimpleErrorMessage (NonAssociativeError ops) =
+      if NEL.length ops == 1
+        then
+          paras
+            [ line $ "Cannot parse an expression that uses multiple instances of the non-associative operator " <> markCode (showQualified showOp (NEL.head ops)) <> "."
+            , line "Use parentheses to resolve this ambiguity."
+            ]
+        else
+          paras
+            [ line "Cannot parse an expression that uses multiple non-associative operators of the same precedence:"
+            , indent $ paras $ map (line . markCode . showQualified showOp) (NEL.toList ops)
+            , line "Use parentheses to resolve this ambiguity."
+            ]
+
+    renderSimpleErrorMessage (QuantificationCheckFailureInKind var) =
+      paras
+        [ line $ "Cannot generalize the kind of type variable " <> markCode var <> " since it would not be well-scoped."
+        , line "Try adding a kind annotation."
+        ]
+
+    renderSimpleErrorMessage (QuantificationCheckFailureInType us ty) =
+      let unks =
+            fmap (\u -> Box.hsep 1 Box.top [ "where"
+                                           , markCodeBox (prettyType (srcTUnknown u))
+                                           , "is an unknown kind."
+                                           ]) us
+      in paras
+           [ line "Cannot unambiguously generalize kinds appearing in the elaborated type:"
+           , indent $ markCodeBox $ typeAsBox prettyDepth ty
+           , paras unks
+           , line "Try adding additional kind signatures or polymorphic kind variables."
+           ]
+
+    renderSimpleErrorMessage (VisibleQuantificationCheckFailureInType var) =
+      paras
+        [ line $ "Visible dependent quantification of type variable " <> markCode var <> " is not supported."
+        , line "If you would like this feature supported, please bother Liam Goodacre (@LiamGoodacre)."
+        ]
+
+    renderSimpleErrorMessage (UnsupportedTypeInKind ty) =
+      paras
+        [ line "The type:"
+        , indent $ markCodeBox $ prettyType ty
+        , line "is not supported in kinds."
+        ]
+
+    renderSimpleErrorMessage (RoleMismatch var inferred declared) =
+      paras
+        [ line $ "Role mismatch for the type parameter " <> markCode var <> ":"
+        , indent . line $
+            "The annotation says " <> markCode (displayRole declared) <>
+            " but the role " <> markCode (displayRole inferred) <>
+            " is required."
+        ]
+
+    renderSimpleErrorMessage (InvalidCoercibleInstanceDeclaration tys) =
+      paras
+        [ line "Invalid type class instance declaration for"
+        , markCodeBox $ indent $ Box.hsep 1 Box.left
+            [ line (showQualified runProperName C.Coercible)
+            , Box.vcat Box.left (map prettyTypeAtom tys)
+            ]
+        , line "Instance declarations of this type class are disallowed."
+        ]
+
+    renderSimpleErrorMessage UnsupportedRoleDeclaration =
+      line "Role declarations are only supported for data types, not for type synonyms nor type classes."
+
+    renderSimpleErrorMessage (RoleDeclarationArityMismatch name expected actual) =
+      line $ T.intercalate " "
+        [ "The type"
+        , markCode (runProperName name)
+        , "expects"
+        , T.pack (show expected)
+        , if expected == 1 then "argument" else "arguments"
+        , "but its role declaration lists"
+            <> if actual > expected then "" else " only"
+        , T.pack (show actual)
+        , if actual > 1 then "roles" else "role"
+        ] <> "."
+
+    renderSimpleErrorMessage (DuplicateRoleDeclaration name) =
+      line $ "Duplicate role declaration for " <> markCode (runProperName name) <> "."
+
+    renderSimpleErrorMessage (CannotDeriveInvalidConstructorArg className relatedClasses checkVariance) =
+      paras
+        [ line $ "One or more type variables are in positions that prevent " <> markCode (runProperName $ disqualify className) <> " from being derived."
+        , line $ "To derive this class, make sure that these variables are only used as the final arguments to type constructors, "
+          <> (if checkVariance then "that their variance matches the variance of " <> markCode (runProperName $ disqualify className) <> ", " else "")
+          <> "and that those type constructors themselves have instances of " <> commasAndConjunction "or" (markCode . showQualified runProperName <$> relatedClasses) <> "."
+        ]
+
+    renderSimpleErrorMessage (CannotSkipTypeApplication tyFn) =
+      paras
+        [ "An expression of type:"
+        , markCodeBox $ indent $ prettyType tyFn
+        , "cannot be skipped."
+        ]
+
+    renderSimpleErrorMessage (CannotApplyExpressionOfTypeOnType tyFn tyAr) =
+      paras $ infoLine <>
+        [ markCodeBox $ indent $ prettyType tyFn
+        , "cannot be applied to:"
+        , markCodeBox $ indent $ prettyType tyAr
+        ]
+      where
+      infoLine =
+        if isMonoType tyFn then
+          [ "An expression of monomorphic type:" ]
+        else
+          [ "An expression of polymorphic type"
+          , line $ "with the invisible type variable " <> markCode typeVariable <> ":"
+          ]
+
+      typeVariable = case tyFn of
+        ForAll _ _ v _ _ _ -> v
+        _ -> internalError "renderSimpleErrorMessage: Impossible!"
+
+    renderHint :: ErrorMessageHint -> Box.Box -> Box.Box
+    renderHint (ErrorUnifyingTypes t1@RCons{} t2@RCons{}) detail =
+      let (row1Box, row2Box) = printRows t1 t2
+      in paras [ detail
+            , Box.hsep 1 Box.top [ line "while trying to match type"
+                                 , row1Box
+                                 ]
+            , Box.moveRight 2 $ Box.hsep 1 Box.top [ line "with type"
+                                                   , row2Box
+                                                   ]
+            ]
+    renderHint (ErrorUnifyingTypes t1 t2) detail =
+      paras [ detail
+            , Box.hsep 1 Box.top [ line "while trying to match type"
+                                 , markCodeBox $ typeAsBox prettyDepth t1
+                                 ]
+            , Box.moveRight 2 $ Box.hsep 1 Box.top [ line "with type"
+                                                   , markCodeBox $ typeAsBox prettyDepth t2
+                                                   ]
+            ]
+    renderHint (ErrorInExpression expr) detail =
+      paras [ detail
+            , Box.hsep 1 Box.top [ Box.text "in the expression"
+                                 , markCodeBox $ markCodeBox $ prettyPrintValue prettyDepth expr
+                                 ]
+            ]
+    renderHint (ErrorInModule mn) detail =
+      paras [ line $ "in module " <> markCode (runModuleName mn)
+            , detail
+            ]
+    renderHint (ErrorInSubsumption t1 t2) detail =
+      paras [ detail
+            , Box.hsep 1 Box.top [ line "while checking that type"
+                                 , markCodeBox $ typeAsBox prettyDepth t1
+                                 ]
+            , Box.moveRight 2 $ Box.hsep 1 Box.top [ line "is at least as general as type"
+                                                   , markCodeBox $ typeAsBox prettyDepth t2
+                                                   ]
+            ]
+    renderHint (ErrorInRowLabel lb) detail =
+      paras [ detail
+            , Box.hsep 1 Box.top [ line "while matching label"
+                                 , markCodeBox $ line $ prettyPrintObjectKey (runLabel lb)
+                                 ]
+            ]
+    renderHint (ErrorInInstance nm ts) detail =
+      paras [ detail
+            , line "in type class instance"
+            , markCodeBox $ indent $ Box.hsep 1 Box.top
+               [ line $ showQualified runProperName nm
+               , Box.vcat Box.left (map (typeAtomAsBox prettyDepth) ts)
+               ]
+            ]
+    renderHint (ErrorCheckingKind ty kd) detail =
+      paras [ detail
+            , Box.hsep 1 Box.top [ line "while checking that type"
+                                 , markCodeBox $ typeAsBox prettyDepth ty
+                                 ]
+            , Box.moveRight 2 $ Box.hsep 1 Box.top [ line "has kind"
+                                                   , markCodeBox $ typeAsBox prettyDepth kd
+                                                   ]
+            ]
+    renderHint (ErrorInferringKind ty) detail =
+      paras [ detail
+            , Box.hsep 1 Box.top [ line "while inferring the kind of"
+                                 , markCodeBox $ typeAsBox prettyDepth ty
+                                 ]
+            ]
+    renderHint ErrorCheckingGuard detail =
+      paras [ detail
+            , line "while checking the type of a guard clause"
+            ]
+    renderHint (ErrorInferringType expr) detail =
+      paras [ detail
+            , Box.hsep 1 Box.top [ line "while inferring the type of"
+                                 , markCodeBox $ prettyPrintValue prettyDepth expr
+                                 ]
+            ]
+    renderHint (ErrorCheckingType expr ty) detail =
+      paras [ detail
+            , Box.hsep 1 Box.top [ line "while checking that expression"
+                                 , markCodeBox $ prettyPrintValue prettyDepth expr
+                                 ]
+            , Box.moveRight 2 $ Box.hsep 1 Box.top [ line "has type"
+                                                   , markCodeBox $ typeAsBox prettyDepth ty
+                                                   ]
+            ]
+    renderHint (ErrorCheckingAccessor expr prop) detail =
+      paras [ detail
+            , Box.hsep 1 Box.top [ line "while checking type of property accessor"
+                                 , markCodeBox $ prettyPrintValue prettyDepth (Accessor prop expr)
+                                 ]
+            ]
+    renderHint (ErrorInApplication f t a) detail =
+      paras [ detail
+            , Box.hsep 1 Box.top [ line "while applying a function"
+                                 , markCodeBox $ prettyPrintValue prettyDepth f
+                                 ]
+            , Box.moveRight 2 $ Box.hsep 1 Box.top [ line "of type"
+                                                   , markCodeBox $ typeAsBox prettyDepth t
+                                                   ]
+            , Box.moveRight 2 $ Box.hsep 1 Box.top [ line "to argument"
+                                                   , markCodeBox $ prettyPrintValue prettyDepth a
+                                                   ]
+            ]
+    renderHint (ErrorInDataConstructor nm) detail =
+      paras [ detail
+            , line $ "in data constructor " <> markCode (runProperName nm)
+            ]
+    renderHint (ErrorInTypeConstructor nm) detail =
+      paras [ detail
+            , line $ "in type constructor " <> markCode (runProperName nm)
+            ]
+    renderHint (ErrorInBindingGroup nms) detail =
+      paras [ detail
+            , line $ "in binding group " <> T.intercalate ", " (NEL.toList (fmap showIdent nms))
+            ]
+    renderHint (ErrorInDataBindingGroup nms) detail =
+      paras [ detail
+            , line $ "in data binding group " <> T.intercalate ", " (map runProperName nms)
+            ]
+    renderHint (ErrorInTypeSynonym name) detail =
+      paras [ detail
+            , line $ "in type synonym " <> markCode (runProperName name)
+            ]
+    renderHint (ErrorInValueDeclaration n) detail =
+      paras [ detail
+            , line $ "in value declaration " <> markCode (showIdent n)
+            ]
+    renderHint (ErrorInTypeDeclaration n) detail =
+      paras [ detail
+            , line $ "in type declaration for " <> markCode (showIdent n)
+            ]
+    renderHint (ErrorInTypeClassDeclaration name) detail =
+      paras [ detail
+            , line $ "in type class declaration for " <> markCode (runProperName name)
+            ]
+    renderHint (ErrorInKindDeclaration name) detail =
+      paras [ detail
+            , line $ "in kind declaration for " <> markCode (runProperName name)
+            ]
+    renderHint (ErrorInRoleDeclaration name) detail =
+      paras [ detail
+            , line $ "in role declaration for " <> markCode (runProperName name)
+            ]
+    renderHint (ErrorInForeignImport nm) detail =
+      paras [ detail
+            , line $ "in foreign import " <> markCode (showIdent nm)
+            ]
+    renderHint (ErrorInForeignImportData nm) detail =
+      paras [ detail
+            , line $ "in foreign data type declaration for " <> markCode (runProperName nm)
+            ]
+    renderHint (ErrorSolvingConstraint (Constraint _ nm _ ts _)) detail =
+      paras [ detail
+            , line "while solving type class constraint"
+            , markCodeBox $ indent $ Box.hsep 1 Box.left
+                [ line (showQualified runProperName nm)
+                , Box.vcat Box.left (map (typeAtomAsBox prettyDepth) ts)
+                ]
+            ]
+    renderHint (MissingConstructorImportForCoercible name) detail =
+      paras
+        [ detail
+        , Box.moveUp 1 $ Box.moveRight 2 $ line $ "Solving this instance requires the newtype constructor " <> markCode (showQualified runProperName name) <> " to be in scope."
+        ]
+    renderHint (PositionedError srcSpan) detail =
+      paras [ line $ "at " <> displaySourceSpan relPath (NEL.head srcSpan)
+            , detail
+            ]
+    renderHint (RelatedPositions srcSpans) detail =
+      paras
+        [ detail
+        , Box.moveRight 2 $ showSourceSpansInContext srcSpans
+        ]
+
+    printRow :: (Int -> Type a -> Box.Box) -> Type a -> Box.Box
+    printRow f = markCodeBox . indent . f prettyDepth .
+      if full then id else eraseForAllKindAnnotations . eraseKindApps
+
+    -- If both rows are not empty, print them as diffs
+    -- If verbose print all rows else only print unique rows
+    printRows :: Type a -> Type a -> (Box.Box, Box.Box)
+    printRows r1 r2 = case (full, r1, r2) of
+      (True, _ , _) -> (printRow typeAsBox r1, printRow typeAsBox r2)
+
+      (_, RCons{}, RCons{}) ->
+        let (sorted1, sorted2) = filterRows (rowToList r1) (rowToList r2)
+        in (printRow typeDiffAsBox sorted1, printRow typeDiffAsBox sorted2)
+
+      (_, _, _) -> (printRow typeAsBox r1, printRow typeAsBox r2)
+
+
+    -- Keep the unique labels only
+    filterRows :: ([RowListItem a], Type a) -> ([RowListItem a], Type a) -> (Type a, Type a)
+    filterRows (s1, r1) (s2, r2) =
+         let sort' = sortOn $ \(RowListItem _ name ty) -> (name, ty)
+             (unique1, unique2) = diffSortedRowLists (sort' s1, sort' s2)
+          in ( rowFromList (unique1, r1)
+             , rowFromList (unique2, r2)
+             )
+
+    -- Importantly, this removes exactly the same number of elements from
+    -- both lists, even if there are repeated (name, ty) keys. It requires
+    -- the inputs to be sorted but ensures that the outputs remain sorted.
+    diffSortedRowLists :: ([RowListItem a], [RowListItem a]) -> ([RowListItem a], [RowListItem a])
+    diffSortedRowLists = go where
+      go = \case
+        (s1@(h1@(RowListItem _ name1 ty1) : t1), s2@(h2@(RowListItem _ name2 ty2) : t2)) ->
+          case (name1, ty1) `compare` (name2, ty2) of
+            EQ ->                go (t1, t2)
+            LT -> first  (h1:) $ go (t1, s2)
+            GT -> second (h2:) $ go (s1, t2)
+        other -> other
+
+    renderContext :: Context -> [Box.Box]
+    renderContext [] = []
+    renderContext ctx =
+      [ line "in the following context:"
+      , indent $ paras
+          [ Box.hcat Box.left [ Box.text (T.unpack (showIdent ident) ++ " :: ")
+                              , markCodeBox $ typeAsBox prettyDepth ty'
+                              ]
+          | (ident, ty') <- take 30 ctx
+          ]
+      ]
+
+    printName :: Qualified Name -> Text
+    printName qn = nameType (disqualify qn) <> " " <> markCode (runName qn)
+
+    nameType :: Name -> Text
+    nameType (IdentName _) = "value"
+    nameType (ValOpName _) = "operator"
+    nameType (TyName _) = "type"
+    nameType (TyOpName _) = "type operator"
+    nameType (DctorName _) = "data constructor"
+    nameType (TyClassName _) = "type class"
+    nameType (ModName _) = "module"
+
+    runName :: Qualified Name -> Text
+    runName (Qualified qb (IdentName name)) =
+      showQualified showIdent (Qualified qb name)
+    runName (Qualified qb (ValOpName op)) =
+      showQualified showOp (Qualified qb op)
+    runName (Qualified qb (TyName name)) =
+      showQualified runProperName (Qualified qb name)
+    runName (Qualified qb (TyOpName op)) =
+      showQualified showOp (Qualified qb op)
+    runName (Qualified qb (DctorName name)) =
+      showQualified runProperName (Qualified qb name)
+    runName (Qualified qb (TyClassName name)) =
+      showQualified runProperName (Qualified qb name)
+    runName (Qualified (BySourcePos _) (ModName name)) =
+      runModuleName name
+    runName (Qualified _ ModName{}) =
+      internalError "qualified ModName in runName"
+
+  prettyDepth :: Int
+  prettyDepth | full = 1000
+              | otherwise = 3
+
+  prettyType :: Type a -> Box.Box
+  prettyType = prettyTypeWithDepth prettyDepth
+
+  prettyTypeWithDepth :: Int -> Type a -> Box.Box
+  prettyTypeWithDepth depth
+    | full = typeAsBox depth
+    | otherwise = typeAsBox depth . eraseForAllKindAnnotations . eraseKindApps
+
+  prettyTypeAtom :: Type a -> Box.Box
+  prettyTypeAtom
+    | full = typeAtomAsBox prettyDepth
+    | otherwise = typeAtomAsBox prettyDepth . eraseForAllKindAnnotations . eraseKindApps
+
+  levelText :: Text
+  levelText = case level of
+    Error -> "error"
+    Warning -> "warning"
+
+  paras :: forall f. Foldable f => f Box.Box -> Box.Box
+  paras = Box.vcat Box.left
+
+  -- Simplify an error message
+  simplifyErrorMessage :: ErrorMessage -> ErrorMessage
+  simplifyErrorMessage (ErrorMessage hints simple) = ErrorMessage (simplifyHints hints) simple
+    where
+    -- Take the last instance of each "hint category"
+    simplifyHints :: [ErrorMessageHint] -> [ErrorMessageHint]
+    simplifyHints = reverse . nubBy categoriesEqual . stripRedundantHints simple . reverse
+
+    -- Don't remove hints in the "other" category
+    categoriesEqual :: ErrorMessageHint -> ErrorMessageHint -> Bool
+    categoriesEqual x y =
+      case (hintCategory x, hintCategory y) of
+        (OtherHint, _) -> False
+        (_, OtherHint) -> False
+        (c1, c2) -> c1 == c2
+
+    -- See https://github.com/purescript/purescript/issues/1802
+    stripRedundantHints :: SimpleErrorMessage -> [ErrorMessageHint] -> [ErrorMessageHint]
+    stripRedundantHints ExprDoesNotHaveType{} = stripFirst isCheckHint
+      where
+      isCheckHint ErrorCheckingType{} = True
+      isCheckHint _ = False
+    stripRedundantHints TypesDoNotUnify{} = stripFirst isUnifyHint
+      where
+      isUnifyHint ErrorUnifyingTypes{} = True
+      isUnifyHint _ = False
+    stripRedundantHints (NoInstanceFound (Constraint _ C.Coercible _ args _) _ _) = filter (not . isSolverHint)
+      where
+      isSolverHint (ErrorSolvingConstraint (Constraint _ C.Coercible _ args' _)) = args == args'
+      isSolverHint _ = False
+    stripRedundantHints NoInstanceFound{} = stripFirst isSolverHint
+      where
+      isSolverHint ErrorSolvingConstraint{} = True
+      isSolverHint _ = False
+    stripRedundantHints _ = id
+
+    stripFirst :: (ErrorMessageHint -> Bool) -> [ErrorMessageHint] -> [ErrorMessageHint]
+    stripFirst p (PositionedError pos : hs) = PositionedError pos : stripFirst p hs
+    stripFirst p (ErrorInModule mn    : hs) = ErrorInModule mn    : stripFirst p hs
+    stripFirst p (hint                : hs)
+      | p hint = hs
+      | otherwise = hint : hs
+    stripFirst _ [] = []
+
+  hintCategory :: ErrorMessageHint -> HintCategory
+  hintCategory ErrorCheckingType{}                  = ExprHint
+  hintCategory ErrorInferringType{}                 = ExprHint
+  hintCategory ErrorInExpression{}                  = ExprHint
+  hintCategory ErrorUnifyingTypes{}                 = CheckHint
+  hintCategory ErrorInSubsumption{}                 = CheckHint
+  hintCategory ErrorInApplication{}                 = CheckHint
+  hintCategory ErrorCheckingKind{}                  = CheckHint
+  hintCategory ErrorSolvingConstraint{}             = SolverHint
+  hintCategory PositionedError{}                    = PositionHint
+  hintCategory ErrorInDataConstructor{}             = DeclarationHint
+  hintCategory ErrorInTypeConstructor{}             = DeclarationHint
+  hintCategory ErrorInBindingGroup{}                = DeclarationHint
+  hintCategory ErrorInDataBindingGroup{}            = DeclarationHint
+  hintCategory ErrorInTypeSynonym{}                 = DeclarationHint
+  hintCategory ErrorInValueDeclaration{}            = DeclarationHint
+  hintCategory ErrorInTypeDeclaration{}             = DeclarationHint
+  hintCategory ErrorInTypeClassDeclaration{}        = DeclarationHint
+  hintCategory ErrorInKindDeclaration{}             = DeclarationHint
+  hintCategory ErrorInRoleDeclaration{}             = DeclarationHint
+  hintCategory ErrorInForeignImport{}               = DeclarationHint
+  hintCategory _                                    = OtherHint
+
+  prettyPrintPlainIdent :: Ident -> Text
+  prettyPrintPlainIdent ident =
+    if isPlainIdent ident
+    then " " <> markCode (showIdent ident)
+    else ""
+
+  prettyInstanceName :: Qualified (Either SourceType Ident) -> Box.Box
+  prettyInstanceName = \case
+    Qualified qb (Left ty) ->
+      "instance "
+        Box.<> (case qb of
+                  ByModuleName mn -> "in module "
+                    Box.<> line (markCode $ runModuleName mn)
+                    Box.<> " "
+                  _ -> Box.nullBox)
+        Box.<> "with type "
+        Box.<> markCodeBox (prettyType ty)
+        Box.<> " "
+        Box.<> (line . displayStartEndPos . fst $ getAnnForType ty)
+    Qualified mn (Right inst) -> line . markCode . showQualified showIdent $ Qualified mn inst
+
+  -- As of this writing, this function assumes that all provided SourceSpans
+  -- are non-overlapping (except for exact duplicates) and span no line breaks. A
+  -- more sophisticated implementation without this limitation would be possible
+  -- but isn't yet needed.
+  showSourceSpansInContext :: NonEmpty SourceSpan -> Box.Box
+  showSourceSpansInContext
+    = maybe Box.nullBox (paras . fmap renderFile . NEL.groupWith1 spanName . NEL.sort)
+    . NEL.nonEmpty
+    . NEL.filter ((> 0) . sourcePosLine . spanStart)
+    where
+    renderFile :: NonEmpty SourceSpan -> Box.Box
+    renderFile sss = maybe Box.nullBox (linesToBox . T.lines) $ lookup fileName fileContents
+      where
+      fileName = spanName $ NEL.head sss
+      header = lineS . (<> ":") . makeRelative relPath $ fileName
+      lineBlocks = makeLineBlocks $ NEL.groupWith1 (sourcePosLine . spanStart) sss
+
+      linesToBox fileLines = Box.moveUp 1 $ header Box.// body
+        where
+        body
+          = Box.punctuateV Box.left (lineNumberStyle "...")
+          . map (paras . fmap renderLine)
+          . flip evalState (fileLines, 1)
+          . traverse (wither (\(i, x) -> fmap (i, , x) <$> ascLookupInState i) . NEL.toList)
+          $ NEL.toList lineBlocks
+
+    makeLineBlocks :: NonEmpty (NonEmpty SourceSpan) -> NonEmpty (NonEmpty (Int, [SourceSpan]))
+    makeLineBlocks = startBlock
+      where
+      startBlock (h :| t) = over head1 (NEL.cons (pred $ headLineNumber h, [])) $ continueBlock h t
+
+      continueBlock :: NonEmpty SourceSpan -> [NonEmpty SourceSpan] -> NonEmpty (NonEmpty (Int, [SourceSpan]))
+      continueBlock lineGroup = \case
+        [] ->
+          endBlock lineGroup []
+        nextGroup : groups -> case pred $ ((-) `on` headLineNumber) nextGroup lineGroup of
+          n | n <= 3 ->
+            over head1 (appendExtraLines n lineGroup <>) $ continueBlock nextGroup groups
+          _ ->
+            endBlock lineGroup . NEL.toList . startBlock $ nextGroup :| groups
+
+      endBlock :: NonEmpty SourceSpan -> [NonEmpty (Int, [SourceSpan])] -> NonEmpty (NonEmpty (Int, [SourceSpan]))
+      endBlock h t = appendExtraLines 1 h :| t
+
+      headLineNumber = sourcePosLine . spanStart . NEL.head
+
+      appendExtraLines :: Int -> NonEmpty SourceSpan -> NonEmpty (Int, [SourceSpan])
+      appendExtraLines n lineGroup = (lineNum, NEL.toList lineGroup) :| [(lineNum + i, []) | i <- [1..n]]
+        where
+        lineNum = headLineNumber lineGroup
+
+    renderLine :: (Int, Text, [SourceSpan]) -> Box.Box
+    renderLine (lineNum, text, sss) = numBox Box.<+> lineBox
+      where
+      colSpans = nubOrdOn fst $ map (over both (pred . sourcePosColumn) . (spanStart &&& spanEnd)) sss
+      numBox = lineNumberStyle $ show lineNum
+      lineBox =
+        if isJust codeColor
+        then colorCodeBox codeColor $ line $ foldr highlightSpan text colSpans
+        else line text Box.// line (finishUnderline $ foldr underlineSpan (T.length text, "") colSpans)
+
+    highlightSpan :: (Int, Int) -> Text -> Text
+    highlightSpan (startCol, endCol) text
+       = prefix
+      <> T.pack (ANSI.setSGRCode [ANSI.SetSwapForegroundBackground True])
+      <> spanText
+      <> T.pack (ANSI.setSGRCode [ANSI.SetSwapForegroundBackground False])
+      <> suffix
+      where
+      (prefix, rest) = T.splitAt startCol text
+      (spanText, suffix) = T.splitAt (endCol - startCol) rest
+
+    underlineSpan :: (Int, Int) -> (Int, Text) -> (Int, Text)
+    underlineSpan (startCol, endCol) (len, accum) = (startCol, T.replicate (endCol - startCol) "^" <> T.replicate (len - endCol) " " <> accum)
+
+    finishUnderline :: (Int, Text) -> Text
+    finishUnderline (len, accum) = T.replicate len " " <> accum
+
+    lineNumberStyle :: String -> Box.Box
+    lineNumberStyle = colorCodeBox (codeColor $> (ANSI.Vivid, ANSI.Black)) . Box.alignHoriz Box.right 5 . lineS
+
+  -- Lookup the nth element of a list, but without retraversing the list every
+  -- time, by instead keeping a tail of the list and the current element number
+  -- in State. Only works if the argument provided is strictly ascending over
+  -- the life of the State.
+  ascLookupInState :: forall a. Int -> State ([a], Int) (Maybe a)
+  ascLookupInState j = get >>= \(as, i) -> for (uncons $ drop (j - i) as) $ \(a, as') -> put (as', succ j) $> a
+
+-- Pretty print and export declaration
+prettyPrintExport :: DeclarationRef -> Text
+prettyPrintExport (TypeRef _ pn _) = runProperName pn
+prettyPrintExport ref =
+  fromMaybe
+    (internalError "prettyPrintRef returned Nothing in prettyPrintExport")
+    (prettyPrintRef ref)
+
+prettyPrintImport :: ModuleName -> ImportDeclarationType -> Maybe ModuleName -> Text
+prettyPrintImport mn idt qual =
+  let i = case idt of
+            Implicit -> runModuleName mn
+            Explicit refs -> runModuleName mn <> " (" <> T.intercalate ", " (mapMaybe prettyPrintRef refs) <> ")"
+            Hiding refs -> runModuleName mn <> " hiding (" <> T.intercalate ", " (mapMaybe prettyPrintRef refs) <> ")"
+  in i <> maybe "" (\q -> " as " <> runModuleName q) qual
+
+prettyPrintRef :: DeclarationRef -> Maybe Text
+prettyPrintRef (TypeRef _ pn Nothing) =
+  Just $ runProperName pn <> "(..)"
+prettyPrintRef (TypeRef _ pn (Just [])) =
+  Just $ runProperName pn
+prettyPrintRef (TypeRef _ pn (Just dctors)) =
+  Just $ runProperName pn <> "(" <> T.intercalate ", " (map runProperName dctors) <> ")"
+prettyPrintRef (TypeOpRef _ op) =
+  Just $ "type " <> showOp op
+prettyPrintRef (ValueRef _ ident) =
+  Just $ showIdent ident
+prettyPrintRef (ValueOpRef _ op) =
+  Just $ showOp op
+prettyPrintRef (TypeClassRef _ pn) =
+  Just $ "class " <> runProperName pn
+prettyPrintRef (TypeInstanceRef _ ident UserNamed) =
+  Just $ showIdent ident
+prettyPrintRef (TypeInstanceRef _ _ CompilerNamed) =
+  Nothing
+prettyPrintRef (ModuleRef _ name) =
+  Just $ "module " <> runModuleName name
+prettyPrintRef ReExportRef{} =
+  Nothing
+
+prettyPrintKindSignatureFor :: KindSignatureFor -> Text
+prettyPrintKindSignatureFor DataSig = "data"
+prettyPrintKindSignatureFor NewtypeSig = "newtype"
+prettyPrintKindSignatureFor TypeSynonymSig = "type"
+prettyPrintKindSignatureFor ClassSig = "class"
+
+prettyPrintSuggestedTypeSimplified :: Type a -> String
+prettyPrintSuggestedTypeSimplified = prettyPrintSuggestedType . eraseForAllKindAnnotations . eraseKindApps
+
+-- | Pretty print multiple errors
+prettyPrintMultipleErrors :: PPEOptions -> MultipleErrors -> String
+prettyPrintMultipleErrors ppeOptions = unlines . map renderBox . prettyPrintMultipleErrorsBox ppeOptions
+
+-- | Pretty print multiple warnings
+prettyPrintMultipleWarnings :: PPEOptions -> MultipleErrors -> String
+prettyPrintMultipleWarnings ppeOptions = unlines . map renderBox . prettyPrintMultipleWarningsBox ppeOptions
+
+-- | Pretty print warnings as a Box
+prettyPrintMultipleWarningsBox :: PPEOptions -> MultipleErrors -> [Box.Box]
+prettyPrintMultipleWarningsBox ppeOptions = prettyPrintMultipleErrorsWith (ppeOptions { ppeLevel = Warning }) "Warning found:" "Warning"
+
+-- | Pretty print errors as a Box
+prettyPrintMultipleErrorsBox :: PPEOptions -> MultipleErrors -> [Box.Box]
+prettyPrintMultipleErrorsBox ppeOptions = prettyPrintMultipleErrorsWith (ppeOptions { ppeLevel = Error }) "Error found:" "Error"
+
+prettyPrintMultipleErrorsWith :: PPEOptions -> String -> String -> MultipleErrors -> [Box.Box]
+prettyPrintMultipleErrorsWith ppeOptions intro _ (MultipleErrors [e]) =
+  let result = prettyPrintSingleError ppeOptions e
+  in [ Box.vcat Box.left [ Box.text intro
+                         , result
+                         ]
+     ]
+prettyPrintMultipleErrorsWith ppeOptions _ intro (MultipleErrors es) =
+  let result = map (prettyPrintSingleError ppeOptions) es
+  in concat $ zipWith withIntro [1 :: Int ..] result
+  where
+  withIntro i err = [ Box.text (intro ++ " " ++ show i ++ " of " ++ show (length es) ++ ":")
+                    , Box.moveRight 2 err
+                    ]
+
+-- | Indent to the right, and pad on top and bottom.
+indent :: Box.Box -> Box.Box
+indent = Box.moveUp 1 . Box.moveDown 1 . Box.moveRight 2
+
+line :: Text -> Box.Box
+line = Box.text . T.unpack
+
+lineS :: String -> Box.Box
+lineS = Box.text
+
+renderBox :: Box.Box -> String
+renderBox = unlines
+            . map (dropWhileEnd isSpace)
+            . dropWhile whiteSpace
+            . dropWhileEnd whiteSpace
+            . lines
+            . Box.render
+  where
+  whiteSpace = all isSpace
+
+toTypelevelString :: Type a -> Maybe Box.Box
+toTypelevelString (TypeLevelString _ s) =
+  Just . Box.text $ decodeStringWithReplacement s
+toTypelevelString (TypeApp _ (TypeConstructor _ C.Text) x) =
+  toTypelevelString x
+toTypelevelString (TypeApp _ (KindApp _ (TypeConstructor _ C.Quote) _) x) =
+  Just (typeAsBox maxBound x)
+toTypelevelString (TypeApp _ (TypeConstructor _ C.QuoteLabel) (TypeLevelString _ x)) =
+  Just . line . prettyPrintLabel . Label $ x
+toTypelevelString (TypeApp _ (TypeApp _ (TypeConstructor _ C.Beside) x) ret) =
+  (Box.<>) <$> toTypelevelString x <*> toTypelevelString ret
+toTypelevelString (TypeApp _ (TypeApp _ (TypeConstructor _ C.Above) x) ret) =
+  (Box.//) <$> toTypelevelString x <*> toTypelevelString ret
+toTypelevelString _ = Nothing
+
+-- | Rethrow an error with a more detailed error message in the case of failure
+rethrow :: (MonadError e m) => (e -> e) -> m a -> m a
+rethrow f = flip catchError (throwError . f)
+
+warnAndRethrow :: (MonadError e m, MonadWriter e m) => (e -> e) -> m a -> m a
+warnAndRethrow f = rethrow f . censor f
+
+-- | Rethrow an error with source position information
+rethrowWithPosition :: (MonadError MultipleErrors m) => SourceSpan -> m a -> m a
+rethrowWithPosition pos = rethrow (onErrorMessages (withPosition pos))
+
+warnWithPosition :: (MonadWriter MultipleErrors m) => SourceSpan -> m a -> m a
+warnWithPosition pos = censor (onErrorMessages (withPosition pos))
+
+warnAndRethrowWithPosition :: (MonadError MultipleErrors m, MonadWriter MultipleErrors m) => SourceSpan -> m a -> m a
+warnAndRethrowWithPosition pos = rethrowWithPosition pos . warnWithPosition pos
+
+withPosition :: SourceSpan -> ErrorMessage -> ErrorMessage
+withPosition NullSourceSpan err = err
+withPosition pos (ErrorMessage hints se) = ErrorMessage (positionedError pos : hints) se
+
+withoutPosition :: ErrorMessage -> ErrorMessage
+withoutPosition (ErrorMessage hints se) = ErrorMessage (filter go hints) se
+  where
+  go (PositionedError _) = False
+  go _ = True
+
+positionedError :: SourceSpan -> ErrorMessageHint
+positionedError = PositionedError . pure
+
+-- | Runs a computation listening for warnings and then escalating any warnings
+-- that match the predicate to error status.
+escalateWarningWhen
+  :: (MonadWriter MultipleErrors m, MonadError MultipleErrors m)
+  => (ErrorMessage -> Bool)
+  -> m a
+  -> m a
+escalateWarningWhen isError ma = do
+  (a, w) <- censor (const mempty) $ listen ma
+  let (errors, warnings) = partition isError (runMultipleErrors w)
+  tell $ MultipleErrors warnings
+  unless (null errors) $ throwError $ MultipleErrors errors
+  return a
+
+-- | Collect errors in in parallel
+parU
+  :: forall m a b
+   . MonadError MultipleErrors m
+  => [a]
+  -> (a -> m b)
+  -> m [b]
+parU xs f =
+    forM xs (withError . f) >>= collectErrors
+  where
+    withError :: m b -> m (Either MultipleErrors b)
+    withError u = catchError (Right <$> u) (return . Left)
+
+    collectErrors :: [Either MultipleErrors b] -> m [b]
+    collectErrors es = case partitionEithers es of
+      ([], rs) -> return rs
+      (errs, _) -> throwError $ fold errs
+
+internalCompilerError
+  :: (MonadError MultipleErrors m, GHC.Stack.HasCallStack)
+  => Text
+  -> m a
+internalCompilerError =
+  throwError
+    . errorMessage
+    . InternalCompilerError (T.pack (GHC.Stack.prettyCallStack GHC.Stack.callStack))
diff --git a/src/Language/PureScript/Errors/JSON.hs b/src/Language/PureScript/Errors/JSON.hs
--- a/src/Language/PureScript/Errors/JSON.hs
+++ b/src/Language/PureScript/Errors/JSON.hs
@@ -2,14 +2,13 @@
 
 module Language.PureScript.Errors.JSON where
 
-import Prelude.Compat
+import Prelude
 
-import qualified Data.Aeson.TH as A
-import qualified Data.List.NonEmpty as NEL
-import qualified Data.Text as T
+import Data.Aeson.TH qualified as A
+import Data.List.NonEmpty qualified as NEL
 import Data.Text (Text)
 
-import qualified Language.PureScript as P
+import Language.PureScript qualified as P
 
 data ErrorPosition = ErrorPosition
   { startLine :: Int
@@ -40,17 +39,17 @@
   } deriving (Show, Eq)
 
 $(A.deriveJSON A.defaultOptions ''ErrorPosition)
+$(A.deriveJSON A.defaultOptions ''ErrorSuggestion)
 $(A.deriveJSON A.defaultOptions ''JSONError)
 $(A.deriveJSON A.defaultOptions ''JSONResult)
-$(A.deriveJSON A.defaultOptions ''ErrorSuggestion)
 
-toJSONErrors :: Bool -> P.Level -> P.MultipleErrors -> [JSONError]
-toJSONErrors verbose level = map (toJSONError verbose level) . P.runMultipleErrors
+toJSONErrors :: Bool -> P.Level -> [(FilePath, Text)] -> P.MultipleErrors -> [JSONError]
+toJSONErrors verbose level files = map (toJSONError verbose level files) . P.runMultipleErrors
 
-toJSONError :: Bool -> P.Level -> P.ErrorMessage -> JSONError
-toJSONError verbose level e =
+toJSONError :: Bool -> P.Level -> [(FilePath, Text)] -> P.ErrorMessage -> JSONError
+toJSONError verbose level files e =
   JSONError (toErrorPosition <$> fmap NEL.head spans)
-            (P.renderBox (P.prettyPrintSingleError (P.PPEOptions Nothing verbose level False mempty) (P.stripModuleAndSpan e)))
+            (P.renderBox (P.prettyPrintSingleError (P.PPEOptions Nothing verbose level False mempty files) (P.stripModuleAndSpan e)))
             (P.errorCode e)
             (P.errorDocUri e)
             (P.spanName <$> fmap NEL.head spans)
@@ -73,5 +72,4 @@
       Nothing -> Nothing
       Just s -> Just $ ErrorSuggestion (suggestionText s) (toErrorPosition <$> P.suggestionSpan em)
 
-  -- TODO: Adding a newline because source spans chomp everything up to the next character
-  suggestionText (P.ErrorSuggestion s) = if T.null s then s else s <> "\n"
+  suggestionText (P.ErrorSuggestion s) = s
diff --git a/src/Language/PureScript/Externs.hs b/src/Language/PureScript/Externs.hs
--- a/src/Language/PureScript/Externs.hs
+++ b/src/Language/PureScript/Externs.hs
@@ -1,5 +1,4 @@
-{-# LANGUAGE TemplateHaskell #-}
-
+{-# Language DeriveAnyClass #-}
 -- |
 -- This module generates code for \"externs\" files, i.e. files containing only
 -- foreign import declarations.
@@ -10,39 +9,42 @@
   , ExternsFixity(..)
   , ExternsTypeFixity(..)
   , ExternsDeclaration(..)
+  , externsIsCurrentVersion
   , moduleToExternsFile
   , applyExternsFileToEnvironment
-  , decodeExterns
+  , externsFileName
   ) where
 
-import Prelude.Compat
+import Prelude
 
-import Control.Monad (guard)
-import Data.Aeson (decode)
-import Data.Aeson.TH
-import Data.ByteString.Lazy (ByteString)
+import Codec.Serialise (Serialise)
+import Control.DeepSeq (NFData)
+import Control.Monad (join)
 import Data.Maybe (fromMaybe, mapMaybe, maybeToList)
 import Data.List (foldl', find)
 import Data.Foldable (fold)
 import Data.Text (Text)
-import qualified Data.Text as T
+import Data.Text qualified as T
 import Data.Version (showVersion)
-import qualified Data.Map as M
-import qualified Data.Set as S
-import qualified Data.List.NonEmpty as NEL
+import Data.Map qualified as M
+import Data.List.NonEmpty qualified as NEL
+import GHC.Generics (Generic)
 
-import Language.PureScript.AST
-import Language.PureScript.Crash
-import Language.PureScript.Environment
-import Language.PureScript.Kinds
-import Language.PureScript.Names
-import Language.PureScript.TypeClassDictionaries
-import Language.PureScript.Types
+import Language.PureScript.AST (Associativity, Declaration(..), DeclarationRef(..), Fixity(..), ImportDeclarationType, Module(..), NameSource(..), Precedence, SourceSpan, pattern TypeFixityDeclaration, pattern ValueFixityDeclaration, getTypeOpRef, getValueOpRef)
+import Language.PureScript.AST.Declarations.ChainId (ChainId)
+import Language.PureScript.Crash (internalError)
+import Language.PureScript.Environment (DataDeclType, Environment(..), FunctionalDependency, NameKind(..), NameVisibility(..), TypeClassData(..), TypeKind(..), dictTypeName, makeTypeClassData)
+import Language.PureScript.Names (Ident, ModuleName, OpName, OpNameType(..), ProperName, ProperNameType(..), Qualified(..), QualifiedBy(..), coerceProperName, isPlainIdent)
+import Language.PureScript.TypeClassDictionaries (NamedDict, TypeClassDictionaryInScope(..))
+import Language.PureScript.Types (SourceConstraint, SourceType, srcInstanceType)
 
 import Paths_purescript as Paths
 
 -- | The data which will be serialized to an externs file
 data ExternsFile = ExternsFile
+  -- NOTE: Make sure to keep `efVersion` as the first field in this
+  -- record, so the derived Serialise instance produces CBOR that can
+  -- be checked for its version independent of the remaining format
   { efVersion :: Text
   -- ^ The externs version
   , efModuleName :: ModuleName
@@ -59,8 +61,10 @@
   -- ^ List of type and value declaration
   , efSourceSpan :: SourceSpan
   -- ^ Source span for error reporting
-  } deriving (Show)
+  } deriving (Show, Generic, NFData)
 
+instance Serialise ExternsFile
+
 -- | A module import in an externs file
 data ExternsImport = ExternsImport
   {
@@ -70,8 +74,10 @@
   , eiImportType :: ImportDeclarationType
   -- | The imported-as name, for qualified imports
   , eiImportedAs :: Maybe ModuleName
-  } deriving (Show)
+  } deriving (Show, Generic, NFData)
 
+instance Serialise ExternsImport
+
 -- | A fixity declaration in an externs file
 data ExternsFixity = ExternsFixity
   {
@@ -83,8 +89,10 @@
   , efOperator :: OpName 'ValueOpName
   -- | The value the operator is an alias for
   , efAlias :: Qualified (Either Ident (ProperName 'ConstructorName))
-  } deriving (Show)
+  } deriving (Show, Generic, NFData)
 
+instance Serialise ExternsFixity
+
 -- | A type fixity declaration in an externs file
 data ExternsTypeFixity = ExternsTypeFixity
   {
@@ -96,23 +104,25 @@
   , efTypeOperator :: OpName 'TypeOpName
   -- | The value the operator is an alias for
   , efTypeAlias :: Qualified (ProperName 'TypeName)
-  } deriving (Show)
+  } deriving (Show, Generic, NFData)
 
+instance Serialise ExternsTypeFixity
+
 -- | A type or value declaration appearing in an externs file
 data ExternsDeclaration =
   -- | A type declaration
     EDType
       { edTypeName                :: ProperName 'TypeName
-      , edTypeKind                :: SourceKind
+      , edTypeKind                :: SourceType
       , edTypeDeclarationKind     :: TypeKind
       }
   -- | A type synonym
   | EDTypeSynonym
       { edTypeSynonymName         :: ProperName 'TypeName
-      , edTypeSynonymArguments    :: [(Text, Maybe SourceKind)]
+      , edTypeSynonymArguments    :: [(Text, Maybe SourceType)]
       , edTypeSynonymType         :: SourceType
       }
-  -- | A data construtor
+  -- | A data constructor
   | EDDataConstructor
       { edDataCtorName            :: ProperName 'ConstructorName
       , edDataCtorOrigin          :: DataDeclType
@@ -128,26 +138,35 @@
   -- | A type class declaration
   | EDClass
       { edClassName               :: ProperName 'ClassName
-      , edClassTypeArguments      :: [(Text, Maybe SourceKind)]
+      , edClassTypeArguments      :: [(Text, Maybe SourceType)]
       , edClassMembers            :: [(Ident, SourceType)]
       , edClassConstraints        :: [SourceConstraint]
       , edFunctionalDependencies  :: [FunctionalDependency]
+      , edIsEmpty                 :: Bool
       }
   -- | An instance declaration
   | EDInstance
       { edInstanceClassName       :: Qualified (ProperName 'ClassName)
       , edInstanceName            :: Ident
+      , edInstanceForAll          :: [(Text, SourceType)]
+      , edInstanceKinds           :: [SourceType]
       , edInstanceTypes           :: [SourceType]
       , edInstanceConstraints     :: Maybe [SourceConstraint]
-      , edInstanceChain           :: [Qualified Ident]
+      , edInstanceChain           :: Maybe ChainId
       , edInstanceChainIndex      :: Integer
-      }
-  -- | A kind declaration
-  | EDKind
-      { edKindName                :: ProperName 'KindName
+      , edInstanceNameSource      :: NameSource
+      , edInstanceSourceSpan      :: SourceSpan
       }
-  deriving Show
+  deriving (Show, Generic, NFData)
 
+instance Serialise ExternsDeclaration
+
+-- | Check whether the version in an externs file matches the currently running
+-- version.
+externsIsCurrentVersion :: ExternsFile -> Bool
+externsIsCurrentVersion ef =
+  T.unpack (efVersion ef) == showVersion Paths.version
+
 -- | Convert an externs file back into a module
 applyExternsFileToEnvironment :: ExternsFile -> Environment -> Environment
 applyExternsFileToEnvironment ExternsFile{..} = flip (foldl' applyDecl) efDeclarations
@@ -156,100 +175,106 @@
   applyDecl env (EDType pn kind tyKind) = env { types = M.insert (qual pn) (kind, tyKind) (types env) }
   applyDecl env (EDTypeSynonym pn args ty) = env { typeSynonyms = M.insert (qual pn) (args, ty) (typeSynonyms env) }
   applyDecl env (EDDataConstructor pn dTy tNm ty nms) = env { dataConstructors = M.insert (qual pn) (dTy, tNm, ty, nms) (dataConstructors env) }
-  applyDecl env (EDValue ident ty) = env { names = M.insert (Qualified (Just efModuleName) ident) (ty, External, Defined) (names env) }
-  applyDecl env (EDClass pn args members cs deps) = env { typeClasses = M.insert (qual pn) (makeTypeClassData args members cs deps) (typeClasses env) }
-  applyDecl env (EDKind pn) = env { kinds = S.insert (qual pn) (kinds env) }
-  applyDecl env (EDInstance className ident tys cs ch idx) =
+  applyDecl env (EDValue ident ty) = env { names = M.insert (Qualified (ByModuleName efModuleName) ident) (ty, External, Defined) (names env) }
+  applyDecl env (EDClass pn args members cs deps tcIsEmpty) = env { typeClasses = M.insert (qual pn) (makeTypeClassData args members cs deps tcIsEmpty) (typeClasses env) }
+  applyDecl env (EDInstance className ident vars kinds tys cs ch idx ns ss) =
     env { typeClassDictionaries =
             updateMap
               (updateMap (M.insertWith (<>) (qual ident) (pure dict)) className)
-              (Just efModuleName) (typeClassDictionaries env) }
+              (ByModuleName efModuleName) (typeClassDictionaries env) }
     where
     dict :: NamedDict
-    dict = TypeClassDictionaryInScope ch idx (qual ident) [] className tys cs
+    dict = TypeClassDictionaryInScope ch idx (qual ident) [] className vars kinds tys cs instTy
 
     updateMap :: (Ord k, Monoid a) => (a -> a) -> k -> M.Map k a -> M.Map k a
     updateMap f = M.alter (Just . f . fold)
 
+    instTy :: Maybe SourceType
+    instTy = case ns of
+      CompilerNamed -> Just $ srcInstanceType ss vars className tys
+      UserNamed -> Nothing
+
   qual :: a -> Qualified a
-  qual = Qualified (Just efModuleName)
+  qual = Qualified (ByModuleName efModuleName)
 
--- | Generate an externs file for all declarations in a module
-moduleToExternsFile :: Module -> Environment -> ExternsFile
-moduleToExternsFile (Module _ _ _ _ Nothing) _ = internalError "moduleToExternsFile: module exports were not elaborated"
-moduleToExternsFile (Module ss _ mn ds (Just exps)) env = ExternsFile{..}
+-- | Generate an externs file for all declarations in a module.
+--
+-- The `Map Ident Ident` argument should contain any top-level `GenIdent`s that
+-- were rewritten to `Ident`s when the module was compiled; this rewrite only
+-- happens in the CoreFn, not the original module AST, so it needs to be
+-- applied to the exported names here also. (The appropriate map is returned by
+-- `L.P.Renamer.renameInModule`.)
+moduleToExternsFile :: Module -> Environment -> M.Map Ident Ident -> ExternsFile
+moduleToExternsFile (Module _ _ _ _ Nothing) _ _ = internalError "moduleToExternsFile: module exports were not elaborated"
+moduleToExternsFile (Module ss _ mn ds (Just exps)) env renamedIdents = ExternsFile{..}
   where
   efVersion       = T.pack (showVersion Paths.version)
   efModuleName    = mn
-  efExports       = exps
+  efExports       = map renameRef exps
   efImports       = mapMaybe importDecl ds
   efFixities      = mapMaybe fixityDecl ds
   efTypeFixities  = mapMaybe typeFixityDecl ds
-  efDeclarations  = concatMap toExternsDeclaration efExports
+  efDeclarations  = concatMap toExternsDeclaration exps
   efSourceSpan    = ss
 
   fixityDecl :: Declaration -> Maybe ExternsFixity
   fixityDecl (ValueFixityDeclaration _ (Fixity assoc prec) name op) =
-    fmap (const (ExternsFixity assoc prec op name)) (find (findOp getValueOpRef op) exps)
+    fmap (const (ExternsFixity assoc prec op name)) (find ((== Just op) . getValueOpRef) exps)
   fixityDecl _ = Nothing
 
   typeFixityDecl :: Declaration -> Maybe ExternsTypeFixity
   typeFixityDecl (TypeFixityDeclaration _ (Fixity assoc prec) name op) =
-    fmap (const (ExternsTypeFixity assoc prec op name)) (find (findOp getTypeOpRef op) exps)
+    fmap (const (ExternsTypeFixity assoc prec op name)) (find ((== Just op) . getTypeOpRef) exps)
   typeFixityDecl _ = Nothing
 
-  findOp :: (DeclarationRef -> Maybe (OpName a)) -> OpName a -> DeclarationRef -> Bool
-  findOp g op = maybe False (== op) . g
-
   importDecl :: Declaration -> Maybe ExternsImport
   importDecl (ImportDeclaration _ m mt qmn) = Just (ExternsImport m mt qmn)
   importDecl _ = Nothing
 
   toExternsDeclaration :: DeclarationRef -> [ExternsDeclaration]
   toExternsDeclaration (TypeRef _ pn dctors) =
-    case Qualified (Just mn) pn `M.lookup` types env of
+    case Qualified (ByModuleName mn) pn `M.lookup` types env of
       Nothing -> internalError "toExternsDeclaration: no kind in toExternsDeclaration"
       Just (kind, TypeSynonym)
-        | Just (args, synTy) <- Qualified (Just mn) pn `M.lookup` typeSynonyms env -> [ EDType pn kind TypeSynonym, EDTypeSynonym pn args synTy ]
-      Just (kind, ExternData) -> [ EDType pn kind ExternData ]
-      Just (kind, tk@(DataType _ tys)) ->
+        | Just (args, synTy) <- Qualified (ByModuleName mn) pn `M.lookup` typeSynonyms env -> [ EDType pn kind TypeSynonym, EDTypeSynonym pn args synTy ]
+      Just (kind, ExternData rs) -> [ EDType pn kind (ExternData rs) ]
+      Just (kind, tk@(DataType _ _ tys)) ->
         EDType pn kind tk : [ EDDataConstructor dctor dty pn ty args
                             | dctor <- fromMaybe (map fst tys) dctors
-                            , (dty, _, ty, args) <- maybeToList (Qualified (Just mn) dctor `M.lookup` dataConstructors env)
+                            , (dty, _, ty, args) <- maybeToList (Qualified (ByModuleName mn) dctor `M.lookup` dataConstructors env)
                             ]
       _ -> internalError "toExternsDeclaration: Invalid input"
   toExternsDeclaration (ValueRef _ ident)
-    | Just (ty, _, _) <- Qualified (Just mn) ident `M.lookup` names env
-    = [ EDValue ident ty ]
+    | Just (ty, _, _) <- Qualified (ByModuleName mn) ident `M.lookup` names env
+    = [ EDValue (lookupRenamedIdent ident) ty ]
   toExternsDeclaration (TypeClassRef _ className)
-    | Just TypeClassData{..} <- Qualified (Just mn) className `M.lookup` typeClasses env
-    , Just (kind, TypeSynonym) <- Qualified (Just mn) (coerceProperName className) `M.lookup` types env
-    , Just (_, synTy) <- Qualified (Just mn) (coerceProperName className) `M.lookup` typeSynonyms env
-    = [ EDType (coerceProperName className) kind TypeSynonym
-      , EDTypeSynonym (coerceProperName className) typeClassArguments synTy
-      , EDClass className typeClassArguments typeClassMembers typeClassSuperclasses typeClassDependencies
+    | let dictName = dictTypeName . coerceProperName $ className
+    , Just TypeClassData{..} <- Qualified (ByModuleName mn) className `M.lookup` typeClasses env
+    , Just (kind, tk) <- Qualified (ByModuleName mn) (coerceProperName className) `M.lookup` types env
+    , Just (dictKind, dictData@(DataType _ _ [(dctor, _)])) <- Qualified (ByModuleName mn) dictName `M.lookup` types env
+    , Just (dty, _, ty, args) <- Qualified (ByModuleName mn) dctor `M.lookup` dataConstructors env
+    = [ EDType (coerceProperName className) kind tk
+      , EDType dictName dictKind dictData
+      , EDDataConstructor dctor dty dictName ty args
+      , EDClass className typeClassArguments ((\(a, b, _) -> (a, b)) <$> typeClassMembers) typeClassSuperclasses typeClassDependencies typeClassIsEmpty
       ]
-  toExternsDeclaration (TypeInstanceRef _ ident)
-    = [ EDInstance tcdClassName ident tcdInstanceTypes tcdDependencies tcdChain tcdIndex
-      | m1 <- maybeToList (M.lookup (Just mn) (typeClassDictionaries env))
+  toExternsDeclaration (TypeInstanceRef ss' ident ns)
+    = [ EDInstance tcdClassName (lookupRenamedIdent ident) tcdForAll tcdInstanceKinds tcdInstanceTypes tcdDependencies tcdChain tcdIndex ns ss'
+      | m1 <- maybeToList (M.lookup (ByModuleName mn) (typeClassDictionaries env))
       , m2 <- M.elems m1
-      , nel <- maybeToList (M.lookup (Qualified (Just mn) ident) m2)
+      , nel <- maybeToList (M.lookup (Qualified (ByModuleName mn) ident) m2)
       , TypeClassDictionaryInScope{..} <- NEL.toList nel
       ]
-  toExternsDeclaration (KindRef _ pn)
-    | Qualified (Just mn) pn `S.member` kinds env
-    = [ EDKind pn ]
   toExternsDeclaration _ = []
 
-$(deriveJSON (defaultOptions { sumEncoding = ObjectWithSingleField }) ''ExternsImport)
-$(deriveJSON (defaultOptions { sumEncoding = ObjectWithSingleField }) ''ExternsFixity)
-$(deriveJSON (defaultOptions { sumEncoding = ObjectWithSingleField }) ''ExternsTypeFixity)
-$(deriveJSON (defaultOptions { sumEncoding = ObjectWithSingleField }) ''ExternsDeclaration)
-$(deriveJSON (defaultOptions { sumEncoding = ObjectWithSingleField }) ''ExternsFile)
+  renameRef :: DeclarationRef -> DeclarationRef
+  renameRef = \case
+    ValueRef ss' ident -> ValueRef ss' $ lookupRenamedIdent ident
+    TypeInstanceRef ss' ident _ | not $ isPlainIdent ident -> TypeInstanceRef ss' (lookupRenamedIdent ident) CompilerNamed
+    other -> other
 
+  lookupRenamedIdent :: Ident -> Ident
+  lookupRenamedIdent = flip (join M.findWithDefault) renamedIdents
 
-decodeExterns :: ByteString -> Maybe ExternsFile
-decodeExterns bs = do
-  externs <- decode bs
-  guard $ T.unpack (efVersion externs) == showVersion Paths.version
-  return externs
+externsFileName :: FilePath
+externsFileName = "externs.cbor"
diff --git a/src/Language/PureScript/Glob.hs b/src/Language/PureScript/Glob.hs
new file mode 100644
--- /dev/null
+++ b/src/Language/PureScript/Glob.hs
@@ -0,0 +1,44 @@
+module Language.PureScript.Glob where
+
+import Prelude
+
+import Control.Monad (when)
+import Data.List (nub, (\\))
+import Data.Text qualified as T
+import System.FilePath.Glob (glob)
+import System.IO (hPutStrLn, stderr)
+import System.IO.UTF8 (readUTF8FileT)
+
+data PSCGlobs = PSCGlobs
+  { pscInputGlobs :: [FilePath]
+  , pscInputGlobsFromFile :: Maybe FilePath
+  , pscExcludeGlobs :: [FilePath]
+  , pscWarnFileTypeNotFound :: FilePath -> IO ()
+  }
+
+toInputGlobs :: PSCGlobs -> IO [FilePath]
+toInputGlobs (PSCGlobs {..}) = do
+  globsFromFile <- inputGlobsFromFile pscInputGlobsFromFile
+  included <- globWarningOnMisses pscWarnFileTypeNotFound $ nub $ pscInputGlobs <> globsFromFile
+  excluded <- globWarningOnMisses pscWarnFileTypeNotFound pscExcludeGlobs
+  pure $ included \\ excluded
+
+inputGlobsFromFile :: Maybe FilePath -> IO [FilePath]
+inputGlobsFromFile globsFromFile = do
+  mbInputsFromFile <- traverse readUTF8FileT globsFromFile
+  let
+    excludeBlankLines = not . T.null . T.strip
+    excludeComments = not . T.isPrefixOf "#"
+    toInputs = map (T.unpack . T.strip) . filter (\x -> excludeBlankLines x && excludeComments x) . T.lines
+  pure $ foldMap toInputs mbInputsFromFile
+
+globWarningOnMisses :: (String -> IO ()) -> [FilePath] -> IO [FilePath]
+globWarningOnMisses warn = foldMap globWithWarning
+  where
+  globWithWarning pattern' = do
+    paths <- glob pattern'
+    when (null paths) $ warn pattern'
+    return paths
+
+warnFileTypeNotFound :: String -> String -> IO ()
+warnFileTypeNotFound pursCmd = hPutStrLn stderr . ("purs " <> pursCmd <> ": No files found using pattern: " ++)
diff --git a/src/Language/PureScript/Graph.hs b/src/Language/PureScript/Graph.hs
new file mode 100644
--- /dev/null
+++ b/src/Language/PureScript/Graph.hs
@@ -0,0 +1,58 @@
+module Language.PureScript.Graph (graph) where
+
+import Prelude
+
+import Data.Aeson qualified as Json
+import Data.Aeson.Key qualified as Json.Key
+import Data.Aeson.KeyMap qualified as Json.Map
+import Data.Map qualified as Map
+
+import Control.Monad (forM)
+import Data.Aeson ((.=))
+import Data.Foldable (foldl')
+import Data.Map (Map)
+import Data.Maybe (fromMaybe)
+import Data.Text (Text)
+import System.IO.UTF8 (readUTF8FileT)
+
+import Language.PureScript.Crash qualified as Crash
+import Language.PureScript.CST qualified as CST
+import Language.PureScript.Make qualified as Make
+import Language.PureScript.ModuleDependencies qualified as Dependencies
+import Language.PureScript.Options qualified as Options
+
+import Language.PureScript.Errors (MultipleErrors)
+import Language.PureScript.Names (ModuleName, runModuleName)
+
+
+-- | Given a set of filepaths, try to build the dependency graph and return
+--   that as its JSON representation (or a bunch of errors, if any)
+graph :: [FilePath] -> IO (Either MultipleErrors Json.Value, MultipleErrors)
+graph input = do
+  moduleFiles <- readInput input
+  Make.runMake Options.defaultOptions $ do
+    ms <- CST.parseModulesFromFiles id moduleFiles
+    let parsedModuleSig = Dependencies.moduleSignature . CST.resPartial
+    (_sorted, moduleGraph) <- Dependencies.sortModules Dependencies.Direct (parsedModuleSig . snd) ms
+    let pathMap = Map.fromList $
+          map (\(p, m) -> (Dependencies.sigModuleName (parsedModuleSig m), p)) ms
+    pure (moduleGraphToJSON pathMap moduleGraph)
+
+moduleGraphToJSON
+  :: Map ModuleName FilePath
+  -> Dependencies.ModuleGraph
+  -> Json.Value
+moduleGraphToJSON paths = Json.Object . foldl' insert mempty
+  where
+  insert :: Json.Object -> (ModuleName, [ModuleName]) -> Json.Object
+  insert obj (mn, depends) = Json.Map.insert (Json.Key.fromText (runModuleName mn)) value obj
+    where
+      path = fromMaybe (Crash.internalError "missing module name in graph") $ Map.lookup mn paths
+      value = Json.object
+        [ "path"  .= path
+        , "depends" .= fmap runModuleName depends
+        ]
+
+readInput :: [FilePath] -> IO [(FilePath, Text)]
+readInput inputFiles =
+  forM inputFiles $ \inFile -> (inFile, ) <$> readUTF8FileT inFile
diff --git a/src/Language/PureScript/Hierarchy.hs b/src/Language/PureScript/Hierarchy.hs
--- a/src/Language/PureScript/Hierarchy.hs
+++ b/src/Language/PureScript/Hierarchy.hs
@@ -15,12 +15,12 @@
 
 module Language.PureScript.Hierarchy where
 
-import           Prelude.Compat
-import           Protolude (ordNub)
+import Prelude
+import Protolude (ordNub)
 
-import           Data.List (sort)
-import qualified Data.Text as T
-import qualified Language.PureScript as P
+import Data.List (sort)
+import Data.Text qualified as T
+import Language.PureScript qualified as P
 
 newtype SuperMap = SuperMap
   { _unSuperMap :: Either (P.ProperName 'P.ClassName) (P.ProperName 'P.ClassName, P.ProperName 'P.ClassName)
@@ -54,8 +54,8 @@
   "  " <> P.runProperName super <> " -> " <> P.runProperName sub <> ";"
 
 runModuleName :: P.ModuleName -> GraphName
-runModuleName (P.ModuleName pns) =
-  GraphName $ T.intercalate "_" (P.runProperName <$> pns)
+runModuleName (P.ModuleName name) =
+  GraphName $ T.replace "." "_" name
 
 typeClasses :: Functor f => f P.Module -> f (Maybe Graph)
 typeClasses =
@@ -80,6 +80,6 @@
 
 superClasses :: P.Declaration -> [SuperMap]
 superClasses (P.TypeClassDeclaration _ sub _ supers@(_:_) _ _) =
-  fmap (\(P.Constraint _ (P.Qualified _ super) _ _) -> SuperMap (Right (super, sub))) supers
+  fmap (\(P.Constraint _ (P.Qualified _ super) _ _ _) -> SuperMap (Right (super, sub))) supers
 superClasses (P.TypeClassDeclaration _ sub _ _ _ _) = [SuperMap (Left sub)]
 superClasses _ = []
diff --git a/src/Language/PureScript/Ide.hs b/src/Language/PureScript/Ide.hs
--- a/src/Language/PureScript/Ide.hs
+++ b/src/Language/PureScript/Ide.hs
@@ -18,32 +18,33 @@
        ( handleCommand
        ) where
 
-import           Protolude hiding (moduleName)
+import Protolude hiding (moduleName)
 
-import           "monad-logger" Control.Monad.Logger
-import qualified Data.Map                           as Map
-import qualified Data.Text                          as T
-import qualified Language.PureScript                as P
-import qualified Language.PureScript.Ide.CaseSplit  as CS
-import           Language.PureScript.Ide.Command
-import           Language.PureScript.Ide.Completion
-import           Language.PureScript.Ide.Error
-import           Language.PureScript.Ide.Externs
-import           Language.PureScript.Ide.Filter
-import           Language.PureScript.Ide.Imports    hiding (Import)
-import           Language.PureScript.Ide.Matcher
-import           Language.PureScript.Ide.Prim
-import           Language.PureScript.Ide.Rebuild
-import           Language.PureScript.Ide.SourceFile
-import           Language.PureScript.Ide.State
-import           Language.PureScript.Ide.Types
-import           Language.PureScript.Ide.Util
-import           Language.PureScript.Ide.Usage (findUsages)
-import           System.Directory (getCurrentDirectory, getDirectoryContents, doesDirectoryExist, doesFileExist)
-import           System.FilePath ((</>), normalise)
-import           System.FilePath.Glob (glob)
+import "monad-logger" Control.Monad.Logger (MonadLogger, logWarnN)
+import Data.Map qualified as Map
+import Data.Text qualified as T
+import Language.PureScript qualified as P
+import Language.PureScript.Glob (toInputGlobs, PSCGlobs(..))
+import Language.PureScript.Ide.CaseSplit qualified as CS
+import Language.PureScript.Ide.Command (Command(..), ImportCommand(..), ListType(..))
+import Language.PureScript.Ide.Completion (CompletionOptions, completionFromMatch, getCompletions, getExactCompletions, simpleExport)
+import Language.PureScript.Ide.Error (IdeError(..))
+import Language.PureScript.Ide.Externs (readExternFile)
+import Language.PureScript.Ide.Filter (Filter)
+import Language.PureScript.Ide.Imports (parseImportsFromFile)
+import Language.PureScript.Ide.Imports.Actions (addImplicitImport, addImportForIdentifier, addQualifiedImport, answerRequest)
+import Language.PureScript.Ide.Matcher (Matcher)
+import Language.PureScript.Ide.Prim (idePrimDeclarations)
+import Language.PureScript.Ide.Rebuild (rebuildFileAsync, rebuildFileSync)
+import Language.PureScript.Ide.SourceFile (parseModulesFromFiles)
+import Language.PureScript.Ide.State (getAllModules, getLoadedModulenames, insertExterns, insertModule, populateVolatileState, populateVolatileStateSync, resetIdeState)
+import Language.PureScript.Ide.Types (Annotation(..), Ide, IdeConfiguration(..), IdeDeclarationAnn(..), IdeEnvironment(..), Success(..))
+import Language.PureScript.Ide.Util (discardAnn, identifierFromIdeDeclaration, namespaceForDeclaration, withEmptyAnn)
+import Language.PureScript.Ide.Usage (findUsages)
+import System.Directory (getCurrentDirectory, getDirectoryContents, doesDirectoryExist, doesFileExist)
+import System.FilePath ((</>), normalise)
 
--- | Accepts a Commmand and runs it against psc-ide's State. This is the main
+-- | Accepts a Command and runs it against psc-ide's State. This is the main
 -- entry point for the server.
 handleCommand
   :: (Ide m, MonadLogger m, MonadError IdeError m)
@@ -51,7 +52,8 @@
   -> m Success
 handleCommand c = case c of
   Load [] ->
-    findAvailableExterns >>= loadModulesAsync
+    -- Clearing the State before populating it to avoid a space leak
+    resetIdeState *> findAvailableExterns >>= loadModulesAsync
   Load modules ->
     loadModulesAsync modules
   LoadSync [] ->
@@ -153,33 +155,39 @@
   patterns <- CS.makePattern l b e csa <$> CS.caseSplit t
   pure (MultilineTextResult patterns)
 
--- | Finds all the externs.json files inside the output folder and returns the
--- corresponding Modulenames
+-- | Finds all the externs inside the output folder and returns the
+-- corresponding module names
 findAvailableExterns :: (Ide m, MonadError IdeError m) => m [P.ModuleName]
 findAvailableExterns = do
   oDir <- outputDirectory
   unlessM (liftIO (doesDirectoryExist oDir))
-    (throwError (GeneralError $ "Couldn't locate your output directory at: " <> (T.pack (normalise oDir))))
+    (throwError (GeneralError $ "Couldn't locate your output directory at: " <> T.pack (normalise oDir)))
   liftIO $ do
     directories <- getDirectoryContents oDir
     moduleNames <- filterM (containsExterns oDir) directories
     pure (P.moduleNameFromString . toS <$> moduleNames)
   where
-    -- Takes the output directory and a filepath like "Monad.Control.Eff" and
-    -- looks up, whether that folder contains an externs.json
+    -- Takes the output directory and a filepath like "Data.Array" and
+    -- looks up, whether that folder contains an externs file
     containsExterns :: FilePath -> FilePath -> IO Bool
     containsExterns oDir d
       | d `elem` [".", ".."] = pure False
       | otherwise = do
-          let file = oDir </> d </> "externs.json"
+          let file = oDir </> d </> P.externsFileName
           doesFileExist file
 
 -- | Finds all matches for the globs specified at the commandline
 findAllSourceFiles :: Ide m => m [FilePath]
 findAllSourceFiles = do
-  globs <- confGlobs . ideConfiguration <$> ask
-  liftIO (concatMapM glob globs)
+  IdeConfiguration{..} <- ideConfiguration <$> ask
+  liftIO $ toInputGlobs $ PSCGlobs
+    { pscInputGlobs = confGlobs
+    , pscInputGlobsFromFile = confGlobsFromFile
+    , pscExcludeGlobs = confGlobsExclude
+    , pscWarnFileTypeNotFound = const $ pure ()
+    }
 
+
 -- | Looks up the ExternsFiles for the given Modulenames and loads them into the
 -- server state. Then proceeds to parse all the specified sourcefiles and
 -- inserts their ASTs into the state. Finally kicks off an async worker, which
@@ -210,7 +218,7 @@
   -- We resolve all the modulenames to externs files and load these into memory.
   oDir <- outputDirectory
   let efPaths =
-        map (\mn -> oDir </> toS (P.runModuleName mn) </> "externs.json") moduleNames
+        map (\mn -> oDir </> toS (P.runModuleName mn) </> P.externsFileName) moduleNames
   efiles <- traverse readExternFile efPaths
   traverse_ insertExterns efiles
 
diff --git a/src/Language/PureScript/Ide/CaseSplit.hs b/src/Language/PureScript/Ide/CaseSplit.hs
--- a/src/Language/PureScript/Ide/CaseSplit.hs
+++ b/src/Language/PureScript/Ide/CaseSplit.hs
@@ -21,18 +21,18 @@
        , caseSplit
        ) where
 
-import           Protolude                     hiding (Constructor)
+import Protolude                     hiding (Constructor)
 
-import qualified Data.List.NonEmpty            as NE
-import qualified Data.Map                      as M
-import qualified Data.Text                     as T
-import qualified Language.PureScript           as P
-import qualified Language.PureScript.CST       as CST
+import Data.List.NonEmpty qualified as NE
+import Data.Map qualified as M
+import Data.Text qualified as T
+import Language.PureScript qualified as P
+import Language.PureScript.CST qualified as CST
 
-import           Language.PureScript.Externs
-import           Language.PureScript.Ide.Error
-import           Language.PureScript.Ide.State
-import           Language.PureScript.Ide.Types
+import Language.PureScript.Externs (ExternsDeclaration(..), ExternsFile(..))
+import Language.PureScript.Ide.Error (IdeError(..))
+import Language.PureScript.Ide.State (cachedRebuild, getExternFiles)
+import Language.PureScript.Ide.Types (Ide)
 
 type Constructor = (P.ProperName 'P.ConstructorName, [P.SourceType])
 
@@ -44,7 +44,7 @@
 noAnnotations :: WildcardAnnotations
 noAnnotations = WildcardAnnotations False
 
-type DataType = ([(Text, Maybe P.SourceKind)], [(P.ProperName 'P.ConstructorName, [P.SourceType])])
+type DataType = ([(Text, Maybe P.SourceType, P.Role)], [(P.ProperName 'P.ConstructorName, [P.SourceType])])
 
 caseSplit
   :: (Ide m, MonadError IdeError m)
@@ -54,7 +54,7 @@
   type' <- parseType' q
   (tc, args) <- splitTypeConstructor type'
   (typeVars, ctors) <- findTypeDeclaration tc
-  let applyTypeVars = P.everywhereOnTypes (P.replaceAllTypeVars (zip (map fst typeVars) args))
+  let applyTypeVars = P.everywhereOnTypes (P.replaceAllTypeVars (zip (map (\(name, _, _) -> name) typeVars) args))
   let appliedCtors = map (second (map applyTypeVars)) ctors
   pure appliedCtors
 
@@ -76,7 +76,7 @@
   -> First DataType
 findTypeDeclaration' t ExternsFile{..} =
   First $ head $ mapMaybe (\case
-            EDType tn _ (P.DataType typeVars ctors)
+            EDType tn _ (P.DataType _ typeVars ctors)
               | tn == t -> Just (typeVars, ctors)
             _ -> Nothing) efDeclarations
 
@@ -91,8 +91,8 @@
 prettyCtor :: WildcardAnnotations -> Constructor -> Text
 prettyCtor _ (ctorName, []) = P.runProperName ctorName
 prettyCtor wsa (ctorName, ctorArgs) =
-  "("<> P.runProperName ctorName <> " "
-  <> T.unwords (map (prettyPrintWildcard wsa) ctorArgs) <>")"
+  "(" <> P.runProperName ctorName <> " "
+  <> T.unwords (map (prettyPrintWildcard wsa) ctorArgs) <> ")"
 
 prettyPrintWildcard :: WildcardAnnotations -> P.Type a -> Text
 prettyPrintWildcard (WildcardAnnotations True) = prettyWildcard
@@ -125,14 +125,14 @@
               Text -> m P.SourceType
 parseType' s =
   case CST.runTokenParser CST.parseType $ CST.lex s of
-    Right type' -> pure $ CST.convertType "<purs-ide>" type'
+    Right type' -> pure $ CST.convertType "<purs-ide>" $ snd type'
     Left err ->
       throwError (GeneralError ("Parsing the splittype failed with:"
                                 <> show err))
 
 parseTypeDeclaration' :: (MonadError IdeError m) => Text -> m (P.Ident, P.SourceType)
 parseTypeDeclaration' s =
-  let x = fmap (CST.convertDeclaration "<purs-ide>")
+  let x = fmap (CST.convertDeclaration "<purs-ide>" . snd)
         $ CST.runTokenParser CST.parseDecl
         $ CST.lex s
   in
@@ -148,7 +148,7 @@
   where
     arguments = initMay splitted
     splitted = splitType' t
-    splitType' (P.ForAll _ _ _ t' _) = splitType' t'
+    splitType' (P.ForAll _ _ _ _ t' _) = splitType' t'
     splitType' (P.ConstrainedType _ _ t') = splitType' t'
     splitType' (P.TypeApp _ (P.TypeApp _ t' lhs) rhs)
           | P.eqType t' P.tyFunction = lhs : splitType' rhs
diff --git a/src/Language/PureScript/Ide/Command.hs b/src/Language/PureScript/Ide/Command.hs
--- a/src/Language/PureScript/Ide/Command.hs
+++ b/src/Language/PureScript/Ide/Command.hs
@@ -14,17 +14,18 @@
 
 module Language.PureScript.Ide.Command where
 
-import           Protolude
+import Protolude
 
-import           Data.Aeson
-import qualified Data.Map as Map
-import qualified Data.Set as Set
-import qualified Language.PureScript               as P
-import           Language.PureScript.Ide.CaseSplit
-import           Language.PureScript.Ide.Completion
-import           Language.PureScript.Ide.Filter
-import           Language.PureScript.Ide.Matcher
-import           Language.PureScript.Ide.Types
+import Control.Monad.Fail (fail)
+import Data.Aeson (FromJSON(..), withObject, (.!=), (.:), (.:?))
+import Data.Map qualified as Map
+import Data.Set qualified as Set
+import Language.PureScript qualified as P
+import Language.PureScript.Ide.CaseSplit (WildcardAnnotations, explicitAnnotations, noAnnotations)
+import Language.PureScript.Ide.Completion (CompletionOptions, defaultCompletionOptions)
+import Language.PureScript.Ide.Filter (Filter)
+import Language.PureScript.Ide.Matcher (Matcher)
+import Language.PureScript.Ide.Types (IdeDeclarationAnn, IdeNamespace)
 
 data Command
     = Load [P.ModuleName]
@@ -103,7 +104,7 @@
           <$> (o .: "identifier")
           <*> (fmap P.moduleNameFromString <$> o .:? "qualifier")
 
-      _ -> mzero
+      s -> fail ("Unknown import command: " <> show s)
 
 data ListType = LoadedModules | Imports FilePath | AvailableModules
 
@@ -114,7 +115,7 @@
       "import" -> Imports <$> o .: "file"
       "loadedModules" -> pure LoadedModules
       "availableModules" -> pure AvailableModules
-      _ -> mzero
+      s -> fail ("Unknown list type: " <> show s)
 
 instance FromJSON Command where
   parseJSON = withObject "command" $ \o -> do
@@ -159,7 +160,7 @@
       "usages" -> do
         params <- o .: "params"
         FindUsages
-          <$> (map P.moduleNameFromString (params .: "module"))
+          <$> map P.moduleNameFromString (params .: "module")
           <*> params .: "identifier"
           <*> params .: "namespace"
       "import" -> do
@@ -175,10 +176,14 @@
           <$> params .: "file"
           <*> params .:? "actualFile"
           <*> (parseCodegenTargets =<< params .:? "codegen" .!= [ "js" ])
-      _ -> mzero
+      c -> fail ("Unknown command: " <> show c)
     where
-      parseCodegenTargets =
-        maybe mzero (pure . Set.fromList) . traverse (flip Map.lookup P.codegenTargets)
+      parseCodegenTargets ts =
+        case traverse (\t -> Map.lookup t P.codegenTargets) ts of
+          Nothing ->
+            fail ("Failed to parse codegen targets: " <> show ts)
+          Just ts' ->
+            pure (Set.fromList ts')
 
       mkAnnotations True = explicitAnnotations
       mkAnnotations False = noAnnotations
diff --git a/src/Language/PureScript/Ide/Completion.hs b/src/Language/PureScript/Ide/Completion.hs
--- a/src/Language/PureScript/Ide/Completion.hs
+++ b/src/Language/PureScript/Ide/Completion.hs
@@ -9,18 +9,18 @@
        , applyCompletionOptions
        ) where
 
-import           Protolude hiding ((<&>), moduleName)
+import Protolude hiding ((<&>), moduleName)
 
-import           Data.Aeson
-import qualified Data.Map as Map
-import qualified Data.Text as T
-import qualified Language.PureScript as P
-import           Language.PureScript.Ide.Error (prettyPrintTypeSingleLine)
-import           Language.PureScript.Ide.Filter
-import           Language.PureScript.Ide.Matcher
-import           Language.PureScript.Ide.Types
-import           Language.PureScript.Ide.Util
-import           Lens.Micro.Platform hiding ((&))
+import Control.Lens ((.~), (<&>), (^.))
+import Data.Aeson (FromJSON(..), withObject, (.!=), (.:?))
+import Data.Map qualified as Map
+import Data.Text qualified as T
+import Language.PureScript qualified as P
+import Language.PureScript.Ide.Error (prettyPrintTypeSingleLine)
+import Language.PureScript.Ide.Filter (Filter, applyFilters, exactFilter)
+import Language.PureScript.Ide.Matcher (Matcher, runMatcher)
+import Language.PureScript.Ide.Types
+import Language.PureScript.Ide.Util (identT, identifierFromIdeDeclaration, namespaceForDeclaration, properNameT, typeOperatorAliasT, valueOperatorAliasT)
 
 -- | Applies the CompletionFilters and the Matcher to the given Modules
 --   and sorts the found Completions according to the Matching Score
@@ -54,8 +54,8 @@
 matchesFromModules :: ModuleMap [IdeDeclarationAnn] -> [Match IdeDeclarationAnn]
 matchesFromModules = Map.foldMapWithKey completionFromModule
   where
-    completionFromModule moduleName decls =
-      map (\x -> Match (moduleName, x)) decls
+    completionFromModule moduleName =
+      map $ \x -> Match (moduleName, x)
 
 data CompletionOptions = CompletionOptions
   { coMaxResults :: Maybe Int
@@ -89,14 +89,14 @@
   where
     go (Match (moduleName, d@(IdeDeclarationAnn ann decl))) =
       let
-        origin = fromMaybe moduleName (ann^.annExportedFrom)
+        origin = fromMaybe moduleName (ann ^. annExportedFrom)
       in
         Map.alter
         (insertDeclaration moduleName origin d)
         (Namespaced (namespaceForDeclaration decl)
          (P.runModuleName origin <> "." <> identifierFromIdeDeclaration decl))
     insertDeclaration moduleName origin d old = case old of
-      Nothing -> Just ( Match (origin, d & idaAnnotation.annExportedFrom .~ Nothing)
+      Nothing -> Just ( Match (origin, d & idaAnnotation . annExportedFrom .~ Nothing)
                       , [moduleName]
                       )
       Just x -> Just (second (moduleName :) x)
@@ -110,15 +110,14 @@
   where
     (complIdentifier, complExpandedType) = case decl of
       IdeDeclValue v -> (v ^. ideValueIdent . identT, v ^. ideValueType & prettyPrintTypeSingleLine)
-      IdeDeclType t -> (t ^. ideTypeName . properNameT, t ^. ideTypeKind & P.prettyPrintKind)
+      IdeDeclType t -> (t ^. ideTypeName . properNameT, t ^. ideTypeKind & prettyPrintTypeSingleLine)
       IdeDeclTypeSynonym s -> (s ^. ideSynonymName . properNameT, s ^. ideSynonymType & prettyPrintTypeSingleLine)
       IdeDeclDataConstructor d -> (d ^. ideDtorName . properNameT, d ^. ideDtorType & prettyPrintTypeSingleLine)
-      IdeDeclTypeClass d -> (d ^. ideTCName . properNameT, d ^. ideTCKind & P.prettyPrintKind)
+      IdeDeclTypeClass d -> (d ^. ideTCName . properNameT, d ^. ideTCKind & prettyPrintTypeSingleLine)
       IdeDeclValueOperator (IdeValueOperator op ref precedence associativity typeP) ->
         (P.runOpName op, maybe (showFixity precedence associativity (valueOperatorAliasT ref) op) prettyPrintTypeSingleLine typeP)
       IdeDeclTypeOperator (IdeTypeOperator op ref precedence associativity kind) ->
-        (P.runOpName op, maybe (showFixity precedence associativity (typeOperatorAliasT ref) op) P.prettyPrintKind kind)
-      IdeDeclKind k -> (P.runProperName k, "kind")
+        (P.runOpName op, maybe (showFixity precedence associativity (typeOperatorAliasT ref) op) prettyPrintTypeSingleLine kind)
       IdeDeclModule mn -> (P.runModuleName mn, "module")
 
     complExportedFrom = mns
@@ -130,6 +129,8 @@
     complLocation = _annLocation ann
 
     complDocumentation = _annDocumentation ann
+
+    complDeclarationType = Just (declarationType decl)
 
     showFixity p a r o =
       let asso = case a of
diff --git a/src/Language/PureScript/Ide/Error.hs b/src/Language/PureScript/Ide/Error.hs
--- a/src/Language/PureScript/Ide/Error.hs
+++ b/src/Language/PureScript/Ide/Error.hs
@@ -17,70 +17,81 @@
        , prettyPrintTypeSingleLine
        ) where
 
-import           Data.Aeson
-import qualified Data.Aeson.Types as Aeson
-import qualified Data.HashMap.Lazy as HM
-import qualified Data.Text as T
-import qualified Language.PureScript as P
-import           Language.PureScript.Errors.JSON
-import           Language.PureScript.Ide.Types   (ModuleIdent, Completion(..))
-import           Protolude
-import qualified Text.Parsec.Error               as Parsec
+import Data.Aeson (KeyValue(..), ToJSON(..), Value, object)
+import Data.Aeson.Types qualified as Aeson
+import Data.Aeson.KeyMap qualified as KM
+import Data.Text qualified as T
+import Language.PureScript qualified as P
+import Language.PureScript.Errors.JSON (toJSONError)
+import Language.PureScript.Ide.Types (ModuleIdent, Completion(..))
+import Protolude
 
 data IdeError
     = GeneralError Text
     | NotFound Text
     | ModuleNotFound ModuleIdent
     | ModuleFileNotFound ModuleIdent
-    | ParseError Parsec.ParseError Text
-    | RebuildError P.MultipleErrors
+    | RebuildError [(FilePath, Text)] P.MultipleErrors
     deriving (Show)
 
 instance ToJSON IdeError where
-  toJSON (RebuildError errs) = object
+  toJSON (RebuildError files errs) = object
     [ "resultType" .= ("error" :: Text)
-    , "result" .= encodeRebuildErrors errs
+    , "result" .= encodeRebuildErrors files errs
     ]
   toJSON err = object
     [ "resultType" .= ("error" :: Text)
     , "result" .= textError err
     ]
 
-encodeRebuildErrors :: P.MultipleErrors -> Value
-encodeRebuildErrors = toJSON . map encodeRebuildError . P.runMultipleErrors
+encodeRebuildErrors :: [(FilePath, Text)] -> P.MultipleErrors -> Value
+encodeRebuildErrors files = toJSON . map encodeRebuildError . P.runMultipleErrors
   where
     encodeRebuildError err = case err of
       (P.ErrorMessage _
        ((P.HoleInferredType name _ _
-         (Just (P.TSAfter{tsAfterIdentifiers=idents, tsAfterRecordFields=fields}))))) ->
-        insertTSCompletions name idents (fromMaybe [] fields) (toJSON (toJSONError False P.Error err))
+         (Just P.TSAfter{tsAfterIdentifiers=idents, tsAfterRecordFields=fields})))) ->
+        insertTSCompletions name idents (fromMaybe [] fields) (toJSON (toJSONError False P.Error files err))
       _ ->
-        (toJSON . toJSONError False P.Error) err
+        (toJSON . toJSONError False P.Error files) err
 
     insertTSCompletions name idents fields (Aeson.Object value) =
       Aeson.Object
-        (HM.insert "pursIde"
+        (KM.insert "pursIde"
          (object [ "name" .= name
-                 , "completions" .= (ordNub (map identCompletion idents ++ map fieldCompletion fields))
+                 , "completions" .= ordNub (map identCompletion idents ++ map fieldCompletion fields)
                  ]) value)
     insertTSCompletions _ _ _ v = v
 
     identCompletion (P.Qualified mn i, ty) =
-      Completion (maybe "" P.runModuleName mn) i (prettyPrintTypeSingleLine ty) (prettyPrintTypeSingleLine ty) Nothing Nothing (maybe [] (\x -> [x]) mn)
+      Completion     
+        { complModule = maybe "" P.runModuleName $ P.toMaybeModuleName mn
+        , complIdentifier = i
+        , complType = prettyPrintTypeSingleLine ty
+        , complExpandedType = prettyPrintTypeSingleLine ty
+        , complLocation = Nothing
+        , complDocumentation = Nothing
+        , complExportedFrom = toList $ P.toMaybeModuleName mn
+        , complDeclarationType = Nothing
+        }
     fieldCompletion (label, ty) =
-      Completion "" ("_." <> P.prettyPrintLabel label) (prettyPrintTypeSingleLine ty) (prettyPrintTypeSingleLine ty) Nothing Nothing []
+      Completion 
+        { complModule = ""
+        , complIdentifier = "_." <> P.prettyPrintLabel label
+        , complType = prettyPrintTypeSingleLine ty
+        , complExpandedType = prettyPrintTypeSingleLine ty
+        , complLocation = Nothing
+        , complDocumentation = Nothing
+        , complExportedFrom = []
+        , complDeclarationType = Nothing
+        }
 
 textError :: IdeError -> Text
 textError (GeneralError msg)          = msg
 textError (NotFound ident)            = "Symbol '" <> ident <> "' not found."
 textError (ModuleNotFound ident)      = "Module '" <> ident <> "' not found."
-textError (ModuleFileNotFound ident)  = "Extern file for module " <> ident <>" could not be found"
-textError (ParseError parseError msg) = let escape = show
-                                            -- escape newlines and other special
-                                            -- chars so we can send the error
-                                            -- over the socket as a single line
-                                        in msg <> ": " <> escape parseError
-textError (RebuildError err)          = show err
+textError (ModuleFileNotFound ident)  = "Extern file for module " <> ident <> " could not be found"
+textError (RebuildError _ err)        = show err
 
 prettyPrintTypeSingleLine :: P.Type a -> Text
 prettyPrintTypeSingleLine = T.unwords . map T.strip . T.lines . T.pack . P.prettyPrintTypeWithUnicode maxBound
diff --git a/src/Language/PureScript/Ide/Externs.hs b/src/Language/PureScript/Ide/Externs.hs
--- a/src/Language/PureScript/Ide/Externs.hs
+++ b/src/Language/PureScript/Ide/Externs.hs
@@ -1,61 +1,46 @@
------------------------------------------------------------------------------
---
--- Module      : Language.PureScript.Ide.Externs
--- Description : Handles externs files for psc-ide
--- Copyright   : Christoph Hegemann 2016
--- License     : MIT (http://opensource.org/licenses/MIT)
---
--- Maintainer  : Christoph Hegemann <christoph.hegemann1337@gmail.com>
--- Stability   : experimental
---
--- |
--- Handles externs files for psc-ide
------------------------------------------------------------------------------
-
-{-# LANGUAGE PackageImports  #-}
+{-# language PackageImports, BlockArguments #-}
 
 module Language.PureScript.Ide.Externs
   ( readExternFile
   , convertExterns
   ) where
 
-import           Protolude hiding (to, from, (&))
-
-import           "monad-logger" Control.Monad.Logger
-import           Data.Aeson (decodeStrict)
-import           Data.Aeson.Types (withObject, parseMaybe, (.:))
-import qualified Data.ByteString as BS
-import           Data.Version (showVersion)
-import           Language.PureScript.Ide.Error (IdeError (..))
-import           Language.PureScript.Ide.Types
-import           Lens.Micro.Platform
+import Protolude hiding (to, from, (&))
 
-import qualified Language.PureScript as P
+import Codec.CBOR.Term as Term
+import Control.Lens (preview, view, (&), (^.))
+import "monad-logger" Control.Monad.Logger (MonadLogger, logErrorN)
+import Data.Version (showVersion)
+import Data.Text qualified as Text
+import Language.PureScript qualified as P
+import Language.PureScript.Make.Monad qualified as Make
+import Language.PureScript.Ide.Error (IdeError (..))
+import Language.PureScript.Ide.Types (IdeDataConstructor(..), IdeDeclaration(..), IdeDeclarationAnn(..), IdeType(..), IdeTypeClass(..), IdeTypeOperator(..), IdeTypeSynonym(..), IdeValue(..), IdeValueOperator(..), _IdeDeclType, anyOf, emptyAnn, ideTypeKind, ideTypeName)
+import Language.PureScript.Ide.Util (properNameT)
 
 readExternFile
   :: (MonadIO m, MonadError IdeError m, MonadLogger m)
   => FilePath
   -> m P.ExternsFile
 readExternFile fp = do
-   externsFile <- liftIO (BS.readFile fp)
-   case decodeStrict externsFile of
-     Nothing ->
-       let parser = withObject "ExternsFileVersion" $ \o -> o .: "efVersion"
-           maybeEFVersion = parseMaybe parser =<< decodeStrict externsFile
-       in case maybeEFVersion of
-         Nothing ->
-            throwError (GeneralError
-                        ("Parsing the extern at: " <> toS fp <> " failed"))
-         Just efVersion -> do
-           let errMsg = "Version mismatch for the externs at: " <> toS fp
-                        <> " Expected: " <> version
-                        <> " Found: " <> efVersion
-           logErrorN errMsg
-           throwError (GeneralError errMsg)
-     Just externs -> pure externs
-
-     where
-       version = toS (showVersion P.version)
+  externsFile <- liftIO (Make.readCborFileIO fp)
+  case externsFile of
+    Just externs | version == P.efVersion externs ->
+      pure externs
+    _ ->
+      liftIO (Make.readCborFileIO fp) >>= \case
+        Just (Term.TList (_tag : Term.TString efVersion : _rest)) -> do
+          let errMsg =
+                "Version mismatch for the externs at: "
+                <> toS fp
+                <> " Expected: " <> version
+                <> " Found: " <> efVersion
+          logErrorN errMsg
+          throwError (GeneralError errMsg)
+        _ ->
+          throwError (GeneralError ("Parsing the extern at: " <> toS fp <> " failed"))
+    where
+      version = toS (showVersion P.version)
 
 convertExterns :: P.ExternsFile -> ([IdeDeclarationAnn], [(P.ModuleName, P.DeclarationRef)])
 convertExterns ef =
@@ -70,51 +55,40 @@
     moduleDecl = IdeDeclarationAnn emptyAnn (IdeDeclModule (P.efModuleName ef))
     (toResolve, declarations) =
       second catMaybes (partitionEithers (map convertDecl (P.efDeclarations ef)))
-
-    -- It's important that we resolve synonyms first, because that resolving
-    -- process removes the corresponding type declarations. This way we don't
-    -- leave any stray type declarations for type classes around since they have
-    -- already been cleaned up in the type synonym pass.
-    resolver = resolveTypeClasses toResolve <> resolveSynonyms toResolve
-    resolvedDeclarations = appEndo resolver declarations
+    resolvedDeclarations = resolveSynonymsAndClasses toResolve declarations
 
-resolveSynonyms :: [ToResolve] -> Endo [IdeDeclaration]
-resolveSynonyms = foldMap resolveSynonym
+resolveSynonymsAndClasses
+  :: [ToResolve]
+  -> [IdeDeclaration]
+  -> [IdeDeclaration]
+resolveSynonymsAndClasses trs decls = foldr go decls trs
   where
-    resolveSynonym tr = case tr of
-      TypeClassToResolve _ -> mempty
-      SynonymToResolve tn ty -> Endo $ \decls ->
-        case findType tn decls of
-          Nothing -> decls
+    go tr acc = case tr of
+      TypeClassToResolve tcn ->
+        case findType (P.coerceProperName tcn) acc of
+          Nothing ->
+            acc
+          Just tyDecl -> IdeDeclTypeClass
+            (IdeTypeClass tcn (tyDecl ^. ideTypeKind) [])
+            : filter (not . anyOf (_IdeDeclType . ideTypeName) (== P.coerceProperName tcn)) acc
+      SynonymToResolve tn ty ->
+        case findType tn acc of
+          Nothing ->
+            acc
           Just tyDecl ->
-            IdeDeclTypeSynonym (IdeTypeSynonym tn ty (tyDecl^.ideTypeKind))
-            : filter (not . anyOf (_IdeDeclType.ideTypeName) (== tn)) decls
-
-resolveTypeClasses :: [ToResolve] -> Endo [IdeDeclaration]
-resolveTypeClasses = foldMap resolveTypeClass
-  where
-    resolveTypeClass tr = case tr of
-      SynonymToResolve _ _ -> mempty
-      TypeClassToResolve tcn -> Endo $ \decls ->
-        case findSynonym (P.coerceProperName tcn) decls of
-          Nothing -> decls
-          Just tySyn -> IdeDeclTypeClass
-            (IdeTypeClass tcn (tySyn^.ideSynonymKind) [])
-            : filter (not . anyOf (_IdeDeclTypeSynonym.ideSynonymName) (== P.coerceProperName tcn)) decls
+            IdeDeclTypeSynonym (IdeTypeSynonym tn ty (tyDecl ^. ideTypeKind))
+            : filter (not . anyOf (_IdeDeclType . ideTypeName) (== tn)) acc
 
 findType :: P.ProperName 'P.TypeName -> [IdeDeclaration] -> Maybe IdeType
-findSynonym :: P.ProperName 'P.TypeName -> [IdeDeclaration] -> Maybe IdeTypeSynonym
-(findType, findSynonym) = ( findDecl _IdeDeclType ideTypeName
-                          , findDecl _IdeDeclTypeSynonym ideSynonymName
-                          )
-  where
-    findDecl p l tn decls = decls
-      & mapMaybe (preview p)
-      & find ((==) tn . view l)
+findType tn decls =
+  decls
+    & mapMaybe (preview _IdeDeclType)
+    & find ((==) tn . view ideTypeName)
 
--- The Externs format splits information about synonyms across EDType and
--- EDTypeSynonym declarations. For type classes there are three declarations
--- involved. We collect these and resolve them at the end of the conversion process.
+-- The Externs format splits information about synonyms across EDType
+-- and EDTypeSynonym declarations. For type classes it split them
+-- across an EDType and an EDClass . We collect these and resolve them
+-- at the end of the conversion process.
 data ToResolve
   = TypeClassToResolve (P.ProperName 'P.ClassName)
   | SynonymToResolve (P.ProperName 'P.TypeName) P.SourceType
@@ -125,21 +99,25 @@
 
 convertDecl :: P.ExternsDeclaration -> Either ToResolve (Maybe IdeDeclaration)
 convertDecl ed = case ed of
-  P.EDType{..} ->
-    Right (Just (IdeDeclType (IdeType edTypeName edTypeKind [])))
+  -- We need to filter all types and synonyms that contain a '$'
+  -- because those are typechecker internal definitions that shouldn't
+  -- be user facing
+  P.EDType{..} -> Right do
+    guard (isNothing (Text.find (== '$') (edTypeName ^. properNameT)))
+    Just (IdeDeclType (IdeType edTypeName edTypeKind []))
   P.EDTypeSynonym{..} ->
-    Left (SynonymToResolve edTypeSynonymName edTypeSynonymType)
-  P.EDDataConstructor{..} ->
-    Right
-      (Just
-        (IdeDeclDataConstructor
-          (IdeDataConstructor edDataCtorName edDataCtorTypeCtor edDataCtorType)))
+    if isNothing (Text.find (== '$') (edTypeSynonymName ^. properNameT))
+      then Left (SynonymToResolve edTypeSynonymName edTypeSynonymType)
+      else Right Nothing
+  P.EDDataConstructor{..} -> Right do
+    guard (isNothing (Text.find (== '$') (edDataCtorName ^. properNameT)))
+    Just
+      (IdeDeclDataConstructor
+        (IdeDataConstructor edDataCtorName edDataCtorTypeCtor edDataCtorType))
   P.EDValue{..} ->
     Right (Just (IdeDeclValue (IdeValue edValueName edValueType)))
   P.EDClass{..} ->
     Left (TypeClassToResolve edClassName)
-  P.EDKind{..} ->
-    Right (Just (IdeDeclKind edKindName))
   P.EDInstance{} ->
     Right Nothing
 
diff --git a/src/Language/PureScript/Ide/Filter.hs b/src/Language/PureScript/Ide/Filter.hs
--- a/src/Language/PureScript/Ide/Filter.hs
+++ b/src/Language/PureScript/Ide/Filter.hs
@@ -12,8 +12,6 @@
 -- Filters for psc-ide commands
 -----------------------------------------------------------------------------
 
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-
 module Language.PureScript.Ide.Filter
        ( Filter
        , moduleFilter
@@ -21,21 +19,27 @@
        , exactFilter
        , prefixFilter
        , declarationTypeFilter
+       , dependencyFilter
        , applyFilters
        ) where
 
-import           Protolude                     hiding (isPrefixOf, Prefix)
+import Protolude                     hiding (isPrefixOf, Prefix)
 
-import           Data.Bifunctor (first)
-import           Data.Aeson
-import           Data.Text                     (isPrefixOf)
-import qualified Data.Set as Set
-import qualified Data.Map as Map
-import           Language.PureScript.Ide.Filter.Declaration (DeclarationType, declarationType)
-import           Language.PureScript.Ide.Types
-import           Language.PureScript.Ide.Util
-import qualified Language.PureScript           as P
+import Control.Monad.Fail (fail)
+import Data.Aeson (FromJSON(..), withObject, (.:), (.:?))
+import Data.Text (isPrefixOf)
+import Data.Set qualified as Set
+import Data.Map qualified as Map
+import Language.PureScript.Ide.Filter.Declaration (DeclarationType)
+import Language.PureScript.Ide.Types (IdeDeclarationAnn, IdeNamespace, ModuleMap, declarationType)
+import Language.PureScript.Ide.Imports (Import, sliceImportSection)
+import Language.PureScript.Ide.Util (discardAnn, identifierFromIdeDeclaration, namespaceForDeclaration)
 
+import Language.PureScript qualified as P
+import Data.Text qualified as T
+
+import Language.PureScript.Ide.Filter.Imports (matchImport)
+
 newtype Filter = Filter (Either (Set P.ModuleName) DeclarationFilter)
   deriving Show
 
@@ -47,6 +51,7 @@
   | Exact Text
   | Namespace (Set IdeNamespace)
   | DeclType (Set DeclarationType)
+  | Dependencies { qualifier :: Maybe P.ModuleName, currentModuleName :: P.ModuleName, dependencyImports :: [Import] }
   deriving Show
 
 -- | Only keeps Declarations in the given modules
@@ -69,6 +74,9 @@
 declarationTypeFilter :: Set DeclarationType -> Filter
 declarationTypeFilter dts = Filter (Right (DeclType dts))
 
+dependencyFilter :: Maybe P.ModuleName -> P.ModuleName -> [Import] -> Filter
+dependencyFilter q m f = Filter (Right (Dependencies q m f))
+
 optimizeFilters :: [Filter] -> (Maybe (Set P.ModuleName), [DeclarationFilter])
 optimizeFilters = first smashModuleFilters . partitionEithers . map unFilter
   where
@@ -90,21 +98,23 @@
   -> ModuleMap [IdeDeclarationAnn]
 applyDeclarationFilters fs =
   Map.filter (not . null)
-  . Map.map (foldr (.) identity (map applyDeclarationFilter fs))
+  . Map.mapWithKey (\modl decls -> foldr (.) identity (map (applyDeclarationFilter modl) fs) decls)
 
 applyDeclarationFilter
-  :: DeclarationFilter
+  :: P.ModuleName
+  -> DeclarationFilter
   -> [IdeDeclarationAnn]
   -> [IdeDeclarationAnn]
-applyDeclarationFilter f = case f of
+applyDeclarationFilter modl f = case f of
   Prefix prefix -> prefixFilter' prefix
   Exact t -> exactFilter' t
   Namespace namespaces -> namespaceFilter' namespaces
   DeclType dts -> declarationTypeFilter' dts
+  Dependencies qual currentModuleName imps -> dependencyFilter' modl qual currentModuleName imps
 
 namespaceFilter' :: Set IdeNamespace -> [IdeDeclarationAnn] -> [IdeDeclarationAnn]
 namespaceFilter' namespaces =
-  filter (\decl -> elem (namespaceForDeclaration (discardAnn decl)) namespaces)
+  filter (\decl -> namespaceForDeclaration (discardAnn decl) `elem` namespaces)
 
 exactFilter' :: Text -> [IdeDeclarationAnn] -> [IdeDeclarationAnn]
 exactFilter' search =
@@ -118,6 +128,13 @@
 declarationTypeFilter' declTypes =
   filter (\decl -> declarationType (discardAnn decl) `Set.member` declTypes)
 
+dependencyFilter' :: P.ModuleName -> Maybe P.ModuleName -> P.ModuleName -> [Import] -> [IdeDeclarationAnn] -> [IdeDeclarationAnn]
+dependencyFilter' modl qual currentModuleName imports =
+  if modl == currentModuleName && isNothing qual then
+    identity
+  else
+    filter (\decl -> any (matchImport qual modl decl) imports)
+
 instance FromJSON Filter where
   parseJSON = withObject "filter" $ \o -> do
     (filter' :: Text) <- o .: "filter"
@@ -131,7 +148,7 @@
         search <- params .: "search"
         pure (exactFilter search)
       "prefix" -> do
-        params <- o.: "params"
+        params <- o .: "params"
         search <- params .: "search"
         pure (prefixFilter search)
       "namespace" -> do
@@ -139,6 +156,13 @@
         namespaces <- params .: "namespaces"
         pure (namespaceFilter (Set.fromList namespaces))
       "declarations" -> do
-        declarations <- o.: "params"
+        declarations <- o .: "params"
         pure (declarationTypeFilter (Set.fromList declarations))
-      _ -> mzero
+      "dependencies" -> do
+        params <- o .: "params"
+        moduleText <- params .: "moduleText"
+        qualifier <- fmap P.moduleNameFromString <$> params .:? "qualifier"
+        case sliceImportSection (T.lines moduleText) of
+          Left err -> fail ("Couldn't parse module imports: " <> T.unpack err)
+          Right (currentModuleName, _, imports, _ ) -> pure (dependencyFilter qualifier currentModuleName imports)
+      s -> fail ("Unknown filter: " <> show s)
diff --git a/src/Language/PureScript/Ide/Filter/Declaration.hs b/src/Language/PureScript/Ide/Filter/Declaration.hs
--- a/src/Language/PureScript/Ide/Filter/Declaration.hs
+++ b/src/Language/PureScript/Ide/Filter/Declaration.hs
@@ -1,14 +1,11 @@
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-
 module Language.PureScript.Ide.Filter.Declaration
        ( DeclarationType(..)
-       , declarationType
        ) where
 
-import           Protolude                     hiding (isPrefixOf)
+import Protolude                     hiding (isPrefixOf)
 
-import           Data.Aeson
-import qualified Language.PureScript.Ide.Types as PI
+import Control.Monad.Fail (fail)
+import Data.Aeson (FromJSON(..), ToJSON(..), withText)
 
 data DeclarationType
   = Value
@@ -18,32 +15,28 @@
   | TypeClass
   | ValueOperator
   | TypeOperator
-  | Kind
   | Module
   deriving (Show, Eq, Ord)
 
 instance FromJSON DeclarationType where
-  parseJSON = withText "Declaration type tag" $ \str ->
-    case str of
-      "value"             -> pure Value
-      "type"              -> pure Type
-      "synonym"           -> pure Synonym
-      "dataconstructor"   -> pure DataConstructor
-      "typeclass"         -> pure TypeClass
-      "valueoperator"     -> pure ValueOperator
-      "typeoperator"      -> pure TypeOperator
-      "kind"              -> pure Kind
-      "module"            -> pure Module
-      _                   -> mzero
+  parseJSON = withText "Declaration type tag" $ \case
+    "value"             -> pure Value
+    "type"              -> pure Type
+    "synonym"           -> pure Synonym
+    "dataconstructor"   -> pure DataConstructor
+    "typeclass"         -> pure TypeClass
+    "valueoperator"     -> pure ValueOperator
+    "typeoperator"      -> pure TypeOperator
+    "module"            -> pure Module
+    s                   -> fail ("Unknown declaration type: " <> show s)
 
-declarationType :: PI.IdeDeclaration -> DeclarationType
-declarationType decl = case decl of
-  PI.IdeDeclValue _ -> Value
-  PI.IdeDeclType _ -> Type
-  PI.IdeDeclTypeSynonym _ -> Synonym
-  PI.IdeDeclDataConstructor _ -> DataConstructor
-  PI.IdeDeclTypeClass _ -> TypeClass
-  PI.IdeDeclValueOperator _ -> ValueOperator
-  PI.IdeDeclTypeOperator _ -> TypeOperator
-  PI.IdeDeclKind _ -> Kind
-  PI.IdeDeclModule _ -> Module
+instance ToJSON DeclarationType where
+  toJSON = toJSON . \case
+    Value           -> "value" :: Text
+    Type            -> "type"
+    Synonym         -> "synonym"
+    DataConstructor -> "dataconstructor"
+    TypeClass       -> "typeclass"
+    ValueOperator   -> "valueoperator"
+    TypeOperator    -> "typeoperator"
+    Module          -> "module"
diff --git a/src/Language/PureScript/Ide/Filter/Imports.hs b/src/Language/PureScript/Ide/Filter/Imports.hs
new file mode 100644
--- /dev/null
+++ b/src/Language/PureScript/Ide/Filter/Imports.hs
@@ -0,0 +1,31 @@
+module Language.PureScript.Ide.Filter.Imports where
+
+
+import Protolude                     hiding (isPrefixOf)
+
+import Language.PureScript.Ide.Types (IdeDataConstructor(..), IdeDeclaration(..), IdeDeclarationAnn(..), IdeType(..), IdeTypeClass(..), IdeTypeOperator(..), IdeTypeSynonym(..), IdeValue(..), IdeValueOperator(..))
+import Language.PureScript.Ide.Imports (Import(..))
+
+import Language.PureScript qualified as P
+
+matchImport :: Maybe P.ModuleName -> P.ModuleName -> IdeDeclarationAnn -> Import -> Bool
+matchImport matchQualifier declMod (IdeDeclarationAnn _ decl) (Import importMod declTy qualifier) | declMod == importMod && matchQualifier == qualifier =
+  case declTy of 
+    P.Implicit -> True
+    P.Explicit refs -> any (matchRef decl) refs
+    P.Hiding refs -> not $ any (matchRef decl) refs
+  where
+    matchRef (IdeDeclValue (IdeValue ident _)) (P.ValueRef _ ident') = ident == ident'
+    matchRef (IdeDeclType (IdeType tname _kind _dctors)) (P.TypeRef _ tname' _dctors') = tname == tname'
+    matchRef (IdeDeclTypeSynonym (IdeTypeSynonym tname _type _kind)) (P.TypeRef _ tname' _dctors) = tname == tname' -- Can this occur?
+    
+    matchRef (IdeDeclDataConstructor (IdeDataConstructor dcname tname _type)) (P.TypeRef _ tname' dctors) =
+      tname == tname'
+      && maybe True (dcname `elem`) dctors -- (..) or explicitly lists constructor
+      
+    matchRef (IdeDeclTypeClass (IdeTypeClass tcname _kind _instances)) (P.TypeClassRef _ tcname') = tcname == tcname'
+    matchRef (IdeDeclValueOperator (IdeValueOperator{ _ideValueOpName })) (P.ValueOpRef _ opname) = _ideValueOpName == opname
+    matchRef (IdeDeclTypeOperator (IdeTypeOperator{ _ideTypeOpName })) (P.TypeOpRef _ opname) = _ideTypeOpName == opname
+    matchRef _ _ = False
+
+matchImport _ _ _ _ = False
diff --git a/src/Language/PureScript/Ide/Imports.hs b/src/Language/PureScript/Ide/Imports.hs
--- a/src/Language/PureScript/Ide/Imports.hs
+++ b/src/Language/PureScript/Ide/Imports.hs
@@ -13,41 +13,27 @@
 -----------------------------------------------------------------------------
 
 module Language.PureScript.Ide.Imports
-       ( addImplicitImport
-       , addQualifiedImport
-       , addImportForIdentifier
-       , answerRequest
-       , parseImportsFromFile
+       ( parseImportsFromFile
+       , parseImportsFromFile'
          -- for tests
        , parseImport
        , prettyPrintImportSection
-       , addImplicitImport'
-       , addQualifiedImport'
-       , addExplicitImport'
        , sliceImportSection
        , prettyPrintImport'
        , Import(Import)
        )
        where
 
-import           Protolude hiding (moduleName)
+import Protolude hiding (moduleName)
 
-import           Data.List                          (findIndex, nubBy, partition)
-import qualified Data.List.NonEmpty                 as NE
-import qualified Data.Map                           as Map
-import qualified Data.Text                          as T
-import qualified Language.PureScript                as P
-import qualified Language.PureScript.Constants      as C
-import qualified Language.PureScript.CST            as CST
-import           Language.PureScript.Ide.Completion
-import           Language.PureScript.Ide.Error
-import           Language.PureScript.Ide.Filter
-import           Language.PureScript.Ide.State
-import           Language.PureScript.Ide.Prim
-import           Language.PureScript.Ide.Types
-import           Language.PureScript.Ide.Util
-import           Lens.Micro.Platform                ((^.), (%~), ix, has)
-import           System.IO.UTF8                     (writeUTF8FileT)
+import Control.Lens ((^.), (%~), ix)
+import Data.List (partition)
+import Data.List.NonEmpty qualified as NE
+import Data.Text qualified as T
+import Language.PureScript qualified as P
+import Language.PureScript.CST qualified as CST
+import Language.PureScript.Ide.Error (IdeError(..))
+import Language.PureScript.Ide.Util (ideReadFile)
 
 data Import = Import P.ModuleName P.ImportDeclarationType (Maybe P.ModuleName)
               deriving (Eq, Show)
@@ -93,7 +79,7 @@
 
 parseModuleHeader :: Text -> Either (NE.NonEmpty CST.ParserError) ImportParse
 parseModuleHeader src = do
-  CST.PartialResult md _ <- CST.parseModule $ CST.lenient $ CST.lex src
+  CST.PartialResult md _ <- CST.parseModule $ CST.lenient $ CST.lexModule src
   let
     mn = CST.nameValue $ CST.modNamespace md
     decls = flip fmap (CST.modImports md) $ \decl -> do
@@ -136,205 +122,6 @@
       & ix 0 %~ T.drop (c1 - 1)
       & ix (l2 - l1) %~ T.take c2
 
--- | Adds an implicit import like @import Prelude@ to a Sourcefile.
-addImplicitImport
-  :: (MonadIO m, MonadError IdeError m)
-  => FilePath     -- ^ The source file read from
-  -> P.ModuleName -- ^ The module to import
-  -> m [Text]
-addImplicitImport fp mn = do
-  (_, pre, imports, post) <- parseImportsFromFile' fp
-  let newImportSection = addImplicitImport' imports mn
-  pure $ joinSections (pre, newImportSection, post)
-
-addImplicitImport' :: [Import] -> P.ModuleName -> [Text]
-addImplicitImport' imports mn =
-  prettyPrintImportSection (Import mn P.Implicit Nothing : imports)
-
--- | Adds a qualified import like @import Data.Map as Map@ to a source file.
-addQualifiedImport
-  :: (MonadIO m, MonadError IdeError m)
-  => FilePath
-  -- ^ The sourcefile read from
-  -> P.ModuleName
-  -- ^ The module to import
-  -> P.ModuleName
-  -- ^ The qualifier under which to import
-  -> m [Text]
-addQualifiedImport fp mn qualifier = do
-  (_, pre, imports, post) <- parseImportsFromFile' fp
-  let newImportSection = addQualifiedImport' imports mn qualifier
-  pure $ joinSections (pre, newImportSection, post)
-
-addQualifiedImport' :: [Import] -> P.ModuleName -> P.ModuleName -> [Text]
-addQualifiedImport' imports mn qualifier =
-  prettyPrintImportSection (Import mn P.Implicit (Just qualifier) : imports)
-
--- | Adds an explicit import like @import Prelude (unit)@ to a Sourcefile. If an
--- explicit import already exists for the given module, it adds the identifier
--- to that imports list.
---
--- So @addExplicitImport "/File.purs" "bind" "Prelude"@ with an already existing
--- @import Prelude (bind)@ in the file File.purs returns @["import Prelude
--- (bind, unit)"]@
-addExplicitImport :: (MonadIO m, MonadError IdeError m) =>
-                     FilePath -> IdeDeclaration -> P.ModuleName -> Maybe P.ModuleName -> m [Text]
-addExplicitImport fp decl moduleName qualifier = do
-  (mn, pre, imports, post) <- parseImportsFromFile' fp
-  let newImportSection =
-        -- TODO: Open an issue when this PR is merged, we should optimise this
-        -- so that this case does not write to disc
-        if mn == moduleName
-        then imports
-        else addExplicitImport' decl moduleName qualifier imports
-  pure $ joinSections (pre, prettyPrintImportSection newImportSection, post)
-
-addExplicitImport' :: IdeDeclaration -> P.ModuleName -> Maybe P.ModuleName -> [Import] -> [Import]
-addExplicitImport' decl moduleName qualifier imports =
-  let
-    isImplicitlyImported =
-        any (\case
-          Import mn P.Implicit qualifier' -> mn == moduleName && qualifier == qualifier'
-          _ -> False) imports
-    isNotExplicitlyImportedFromPrim =
-      moduleName == C.Prim &&
-        not (any (\case
-          Import C.Prim (P.Explicit _) Nothing -> True
-          _ -> False) imports)
-    -- We can't import Modules from other modules
-    isModule = has _IdeDeclModule decl
-
-    matches (Import mn (P.Explicit _) qualifier') = mn == moduleName && qualifier == qualifier'
-    matches _ = False
-    freshImport = Import moduleName (P.Explicit [refFromDeclaration decl]) qualifier
-  in
-    if isImplicitlyImported || isNotExplicitlyImportedFromPrim || isModule
-    then imports
-    else updateAtFirstOrPrepend matches (insertDeclIntoImport decl) freshImport imports
-  where
-    refFromDeclaration (IdeDeclTypeClass tc) =
-      P.TypeClassRef ideSpan (tc ^. ideTCName)
-    refFromDeclaration (IdeDeclDataConstructor dtor) =
-      P.TypeRef ideSpan (dtor ^. ideDtorTypeName) Nothing
-    refFromDeclaration (IdeDeclType t) =
-      P.TypeRef ideSpan (t ^. ideTypeName) (Just [])
-    refFromDeclaration (IdeDeclValueOperator op) =
-      P.ValueOpRef ideSpan (op ^. ideValueOpName)
-    refFromDeclaration (IdeDeclTypeOperator op) =
-      P.TypeOpRef ideSpan (op ^. ideTypeOpName)
-    refFromDeclaration (IdeDeclKind kn) =
-      P.KindRef ideSpan kn
-    refFromDeclaration d =
-      P.ValueRef ideSpan (P.Ident (identifierFromIdeDeclaration d))
-
-    -- | Adds a declaration to an import:
-    -- TypeDeclaration "Maybe" + Data.Maybe (maybe) -> Data.Maybe(Maybe, maybe)
-    insertDeclIntoImport :: IdeDeclaration -> Import -> Import
-    insertDeclIntoImport decl' (Import mn (P.Explicit refs) qual) =
-      Import mn (P.Explicit (sortBy P.compDecRef (insertDeclIntoRefs decl' refs))) qual
-    insertDeclIntoImport _ is = is
-
-    insertDeclIntoRefs :: IdeDeclaration -> [P.DeclarationRef] -> [P.DeclarationRef]
-    insertDeclIntoRefs d@(IdeDeclDataConstructor dtor) refs =
-      updateAtFirstOrPrepend
-        (matchType (dtor ^. ideDtorTypeName))
-        (insertDtor (dtor ^. ideDtorName))
-        (refFromDeclaration d)
-        refs
-    insertDeclIntoRefs (IdeDeclType t) refs
-      | any matches refs = refs
-      where
-        matches (P.TypeRef _ typeName _) = _ideTypeName t == typeName
-        matches _ = False
-    insertDeclIntoRefs dr refs = nubBy ((==) `on` P.prettyPrintRef) (refFromDeclaration dr : refs)
-
-    insertDtor _ (P.TypeRef ss tn' _) = P.TypeRef ss tn' Nothing
-    insertDtor _ refs = refs
-
-    matchType :: P.ProperName 'P.TypeName -> P.DeclarationRef -> Bool
-    matchType tn (P.TypeRef _ n _) = tn == n
-    matchType _ _ = False
-
-ideSpan :: P.SourceSpan
-ideSpan = P.internalModuleSourceSpan "<psc-ide>"
-
-updateAtFirstOrPrepend :: (a -> Bool) -> (a -> a) -> a -> [a] -> [a]
-updateAtFirstOrPrepend p t d l =
-  case findIndex p l of
-    Nothing -> d : l
-    Just i ->
-      let (x, a : y) = splitAt i l
-      in x ++ [t a] ++ y
-
--- | Looks up the given identifier in the currently loaded modules.
---
--- * Throws an error if the identifier cannot be found.
---
--- * If exactly one match is found, adds an explicit import to the importsection
---
--- * If more than one possible imports are found, reports the possibilities as a
--- list of completions.
-addImportForIdentifier
-  :: (Ide m, MonadError IdeError m)
-  => FilePath -- ^ The Sourcefile to read from
-  -> Text     -- ^ The identifier to import
-  -> Maybe P.ModuleName  -- ^ The optional qualifier under which to import
-  -> [Filter] -- ^ Filters to apply before searching for the identifier
-  -> m (Either [Match IdeDeclaration] [Text])
-addImportForIdentifier fp ident qual filters = do
-  let addPrim = Map.union idePrimDeclarations
-  modules <- getAllModules Nothing
-  let
-    matches =
-      getExactMatches ident filters (addPrim modules)
-        & map (fmap discardAnn)
-        & filter (\(Match (_, d)) -> not (has _IdeDeclModule d))
-
-  case matches of
-    [] ->
-      throwError (NotFound "Couldn't find the given identifier. \
-                           \Have you loaded the corresponding module?")
-
-    -- Only one match was found for the given identifier, so we can insert it
-    -- right away
-    [Match (m, decl)] ->
-      Right <$> addExplicitImport fp decl m qual
-
-    -- This case comes up for newtypes and dataconstructors. Because values and
-    -- types don't share a namespace we can get multiple matches from the same
-    -- module. This also happens for parameterized types, as these generate both
-    -- a type aswell as a type synonym.
-
-    ms@[Match (m1, d1), Match (m2, d2)] ->
-      if m1 /= m2
-         -- If the modules don't line up we just ask the user to specify the
-         -- module
-      then pure (Left ms)
-      else case decideRedundantCase d1 d2 <|> decideRedundantCase d2 d1 of
-        -- If dataconstructor and type line up we just import the
-        -- dataconstructor as that will give us an unnecessary import warning at
-        -- worst
-        Just decl ->
-          Right <$> addExplicitImport fp decl m1 qual
-        -- Here we need the user to specify whether he wanted a dataconstructor
-        -- or a type
-
-        -- TODO: With the new namespace filter, this can actually be a
-        -- request for the user to specify which of the two was wanted.
-        Nothing ->
-          throwError (GeneralError "Undecidable between type and dataconstructor")
-
-    -- Multiple matches were found so we need to ask the user to clarify which
-    -- module he meant
-    xs ->
-      pure (Left xs)
-    where
-      decideRedundantCase d@(IdeDeclDataConstructor dtor) (IdeDeclType t) =
-        if dtor ^. ideDtorTypeName == t ^. ideTypeName then Just d else Nothing
-      decideRedundantCase IdeDeclType{} ts@IdeDeclTypeSynonym{} =
-        Just ts
-      decideRedundantCase _ _ = Nothing
-
 prettyPrintImport' :: Import -> Text
 prettyPrintImport' (Import mn idt qual) =
   "import " <> P.prettyPrintImport mn idt qual
@@ -356,36 +143,12 @@
       Import _ (P.Hiding _) Nothing -> True
       _ -> False
 
-
--- | Writes a list of lines to @Just filepath@ and responds with a @TextResult@,
--- or returns the lines as a @MultilineTextResult@ if @Nothing@ was given as the
--- first argument.
-answerRequest :: (MonadIO m) => Maybe FilePath -> [Text] -> m Success
-answerRequest outfp rs  =
-  case outfp of
-    Nothing -> pure (MultilineTextResult rs)
-    Just outfp' -> do
-      liftIO (writeUTF8FileT outfp' (T.unlines rs))
-      pure (TextResult ("Written to " <> T.pack outfp'))
-
 -- | Test and ghci helper
 parseImport :: Text -> Maybe Import
 parseImport t =
-  case fmap (CST.convertImportDecl "<purs-ide>")
+  case fmap (CST.convertImportDecl "<purs-ide>" . snd)
         $ CST.runTokenParser CST.parseImportDeclP
         $ CST.lex t of
     Right (_, mn, idt, mmn) ->
       Just (Import mn idt mmn)
     _ -> Nothing
-
-joinSections :: ([Text], [Text], [Text]) -> [Text]
-joinSections (pre, decls, post) = pre `joinLine` (decls `joinLine` post)
-  where
-  isBlank = T.all (== ' ')
-  joinLine as bs
-    | Just ln1 <- lastMay as
-    , Just ln2 <- head bs
-    , not (isBlank ln1) && not (isBlank ln2) =
-        as ++ [""] ++ bs
-    | otherwise =
-        as ++ bs
diff --git a/src/Language/PureScript/Ide/Imports/Actions.hs b/src/Language/PureScript/Ide/Imports/Actions.hs
new file mode 100644
--- /dev/null
+++ b/src/Language/PureScript/Ide/Imports/Actions.hs
@@ -0,0 +1,251 @@
+module Language.PureScript.Ide.Imports.Actions 
+       ( addImplicitImport
+       , addQualifiedImport
+       , addImportForIdentifier
+       , answerRequest
+
+        -- for tests
+       , addImplicitImport'
+       , addQualifiedImport'
+       , addExplicitImport'
+       )
+where
+
+import Protolude hiding (moduleName)
+
+import Control.Lens ((^.), has)
+import Data.List (nubBy)
+import Data.Map qualified as Map
+import Data.Text qualified as T
+import Language.PureScript qualified as P
+import Language.PureScript.Constants.Prim qualified as C
+import Language.PureScript.Ide.Completion (getExactMatches)
+import Language.PureScript.Ide.Error (IdeError(..))
+import Language.PureScript.Ide.Filter (Filter)
+import Language.PureScript.Ide.Imports (Import(..), parseImportsFromFile', prettyPrintImportSection)
+import Language.PureScript.Ide.State (getAllModules)
+import Language.PureScript.Ide.Prim (idePrimDeclarations)
+import Language.PureScript.Ide.Types (Ide, IdeDeclaration(..), IdeType(..), Match(..), Success(..), _IdeDeclModule, ideDtorName, ideDtorTypeName, ideTCName, ideTypeName, ideTypeOpName, ideValueOpName)
+import Language.PureScript.Ide.Util (discardAnn, identifierFromIdeDeclaration)
+import System.IO.UTF8 (writeUTF8FileT)
+
+-- | Adds an implicit import like @import Prelude@ to a Sourcefile.
+addImplicitImport
+  :: (MonadIO m, MonadError IdeError m)
+  => FilePath     -- ^ The source file read from
+  -> P.ModuleName -- ^ The module to import
+  -> m [Text]
+addImplicitImport fp mn = do
+  (_, pre, imports, post) <- parseImportsFromFile' fp
+  let newImportSection = addImplicitImport' imports mn
+  pure $ joinSections (pre, newImportSection, post)
+
+addImplicitImport' :: [Import] -> P.ModuleName -> [Text]
+addImplicitImport' imports mn =
+  prettyPrintImportSection (Import mn P.Implicit Nothing : imports)
+
+-- | Adds a qualified import like @import Data.Map as Map@ to a source file.
+addQualifiedImport
+  :: (MonadIO m, MonadError IdeError m)
+  => FilePath
+  -- ^ The sourcefile read from
+  -> P.ModuleName
+  -- ^ The module to import
+  -> P.ModuleName
+  -- ^ The qualifier under which to import
+  -> m [Text]
+addQualifiedImport fp mn qualifier = do
+  (_, pre, imports, post) <- parseImportsFromFile' fp
+  let newImportSection = addQualifiedImport' imports mn qualifier
+  pure $ joinSections (pre, newImportSection, post)
+
+addQualifiedImport' :: [Import] -> P.ModuleName -> P.ModuleName -> [Text]
+addQualifiedImport' imports mn qualifier =
+  prettyPrintImportSection (Import mn P.Implicit (Just qualifier) : imports)
+
+-- | Adds an explicit import like @import Prelude (unit)@ to a Sourcefile. If an
+-- explicit import already exists for the given module, it adds the identifier
+-- to that imports list.
+--
+-- So @addExplicitImport "/File.purs" "bind" "Prelude"@ with an already existing
+-- @import Prelude (bind)@ in the file File.purs returns @["import Prelude
+-- (bind, unit)"]@
+addExplicitImport :: (MonadIO m, MonadError IdeError m) =>
+                     FilePath -> IdeDeclaration -> P.ModuleName -> Maybe P.ModuleName -> m [Text]
+addExplicitImport fp decl moduleName qualifier = do
+  (mn, pre, imports, post) <- parseImportsFromFile' fp
+  let newImportSection =
+        -- TODO: Open an issue when this PR is merged, we should optimise this
+        -- so that this case does not write to disc
+        if mn == moduleName
+        then imports
+        else addExplicitImport' decl moduleName qualifier imports
+  pure $ joinSections (pre, prettyPrintImportSection newImportSection, post)
+
+addExplicitImport' :: IdeDeclaration -> P.ModuleName -> Maybe P.ModuleName -> [Import] -> [Import]
+addExplicitImport' decl moduleName qualifier imports =
+  let
+    isImplicitlyImported =
+        any (\case
+          Import mn P.Implicit qualifier' -> mn == moduleName && qualifier == qualifier'
+          _ -> False) imports
+    isNotExplicitlyImportedFromPrim =
+      moduleName == C.M_Prim &&
+        not (any (\case
+          Import C.M_Prim (P.Explicit _) Nothing -> True
+          _ -> False) imports)
+    -- We can't import Modules from other modules
+    isModule = has _IdeDeclModule decl
+
+    matches (Import mn (P.Explicit _) qualifier') = mn == moduleName && qualifier == qualifier'
+    matches _ = False
+    freshImport = Import moduleName (P.Explicit [refFromDeclaration decl]) qualifier
+  in
+    if isImplicitlyImported || isNotExplicitlyImportedFromPrim || isModule
+    then imports
+    else updateAtFirstOrPrepend matches (insertDeclIntoImport decl) freshImport imports
+  where
+    refFromDeclaration (IdeDeclTypeClass tc) =
+      P.TypeClassRef ideSpan (tc ^. ideTCName)
+    refFromDeclaration (IdeDeclDataConstructor dtor) =
+      P.TypeRef ideSpan (dtor ^. ideDtorTypeName) Nothing
+    refFromDeclaration (IdeDeclType t) =
+      P.TypeRef ideSpan (t ^. ideTypeName) (Just [])
+    refFromDeclaration (IdeDeclValueOperator op) =
+      P.ValueOpRef ideSpan (op ^. ideValueOpName)
+    refFromDeclaration (IdeDeclTypeOperator op) =
+      P.TypeOpRef ideSpan (op ^. ideTypeOpName)
+    refFromDeclaration d =
+      P.ValueRef ideSpan (P.Ident (identifierFromIdeDeclaration d))
+
+    -- Adds a declaration to an import:
+    -- TypeDeclaration "Maybe" + Data.Maybe (maybe) -> Data.Maybe(Maybe, maybe)
+    insertDeclIntoImport :: IdeDeclaration -> Import -> Import
+    insertDeclIntoImport decl' (Import mn (P.Explicit refs) qual) =
+      Import mn (P.Explicit (sort (insertDeclIntoRefs decl' refs))) qual
+    insertDeclIntoImport _ is = is
+
+    insertDeclIntoRefs :: IdeDeclaration -> [P.DeclarationRef] -> [P.DeclarationRef]
+    insertDeclIntoRefs d@(IdeDeclDataConstructor dtor) refs =
+      updateAtFirstOrPrepend
+        (matchType (dtor ^. ideDtorTypeName))
+        (insertDtor (dtor ^. ideDtorName))
+        (refFromDeclaration d)
+        refs
+    insertDeclIntoRefs (IdeDeclType t) refs
+      | any matches refs = refs
+      where
+        matches (P.TypeRef _ typeName _) = _ideTypeName t == typeName
+        matches _ = False
+    insertDeclIntoRefs dr refs = nubBy ((==) `on` P.prettyPrintRef) (refFromDeclaration dr : refs)
+
+    insertDtor _ (P.TypeRef ss tn' _) = P.TypeRef ss tn' Nothing
+    insertDtor _ refs = refs
+
+    matchType :: P.ProperName 'P.TypeName -> P.DeclarationRef -> Bool
+    matchType tn (P.TypeRef _ n _) = tn == n
+    matchType _ _ = False
+
+
+-- | Looks up the given identifier in the currently loaded modules.
+--
+-- * Throws an error if the identifier cannot be found.
+--
+-- * If exactly one match is found, adds an explicit import to the importsection
+--
+-- * If more than one possible imports are found, reports the possibilities as a
+-- list of completions.
+addImportForIdentifier
+  :: (Ide m, MonadError IdeError m)
+  => FilePath -- ^ The Sourcefile to read from
+  -> Text     -- ^ The identifier to import
+  -> Maybe P.ModuleName  -- ^ The optional qualifier under which to import
+  -> [Filter] -- ^ Filters to apply before searching for the identifier
+  -> m (Either [Match IdeDeclaration] [Text])
+addImportForIdentifier fp ident qual filters = do
+  let addPrim = Map.union idePrimDeclarations
+  modules <- getAllModules Nothing
+  let
+    matches =
+      getExactMatches ident filters (addPrim modules)
+        & map (fmap discardAnn)
+        & filter (\(Match (_, d)) -> not (has _IdeDeclModule d))
+
+  case matches of
+    [] ->
+      throwError (NotFound "Couldn't find the given identifier. \
+                           \Have you loaded the corresponding module?")
+
+    -- Only one match was found for the given identifier, so we can insert it
+    -- right away
+    [Match (m, decl)] ->
+      Right <$> addExplicitImport fp decl m qual
+
+    -- This case comes up for newtypes and dataconstructors. Because values and
+    -- types don't share a namespace we can get multiple matches from the same
+    -- module. This also happens for parameterized types, as these generate both
+    -- a type as well as a type synonym.
+
+    ms@[Match (m1, d1), Match (m2, d2)] ->
+      if m1 /= m2
+         -- If the modules don't line up we just ask the user to specify the
+         -- module
+      then pure (Left ms)
+      else case decideRedundantCase d1 d2 <|> decideRedundantCase d2 d1 of
+        -- If dataconstructor and type line up we just import the
+        -- dataconstructor as that will give us an unnecessary import warning at
+        -- worst
+        Just decl ->
+          Right <$> addExplicitImport fp decl m1 qual
+        -- Here we need the user to specify whether they wanted a 
+        -- dataconstructor or a type
+        Nothing ->
+          throwError (GeneralError "Undecidable between type and dataconstructor")
+
+    -- Multiple matches were found so we need to ask the user to clarify which
+    -- module they meant
+    xs ->
+      pure (Left xs)
+    where
+      decideRedundantCase d@(IdeDeclDataConstructor dtor) (IdeDeclType t) =
+        if dtor ^. ideDtorTypeName == t ^. ideTypeName then Just d else Nothing
+      decideRedundantCase IdeDeclType{} ts@IdeDeclTypeSynonym{} =
+        Just ts
+      decideRedundantCase _ _ = Nothing
+
+-- | Writes a list of lines to @Just filepath@ and responds with a @TextResult@,
+-- or returns the lines as a @MultilineTextResult@ if @Nothing@ was given as the
+-- first argument.
+answerRequest :: (MonadIO m) => Maybe FilePath -> [Text] -> m Success
+answerRequest outfp rs  =
+  case outfp of
+    Nothing -> pure (MultilineTextResult rs)
+    Just outfp' -> do
+      liftIO (writeUTF8FileT outfp' (T.unlines rs))
+      pure (TextResult ("Written to " <> T.pack outfp'))
+
+
+-- | If none of the elements of the list satisfy the given predicate 'predicate', then prepend the default value 'def'
+-- to the given list. Otherwise, update the first element of the list that satisfies 'predicate' with the updating
+-- function 'update'.
+updateAtFirstOrPrepend :: (a -> Bool) -> (a -> a) -> a -> [a] -> [a]
+updateAtFirstOrPrepend predicate update def xs =
+  case break predicate xs of
+    (before, []) -> def : before
+    (before, x : after) -> before ++ [update x] ++ after
+
+
+ideSpan :: P.SourceSpan
+ideSpan = P.internalModuleSourceSpan "<psc-ide>"
+
+joinSections :: ([Text], [Text], [Text]) -> [Text]
+joinSections (pre, decls, post) = pre `joinLine` (decls `joinLine` post)
+  where
+  isBlank = T.all (== ' ')
+  joinLine as bs
+    | Just ln1 <- lastMay as
+    , Just ln2 <- head bs
+    , not (isBlank ln1) && not (isBlank ln2) =
+        as ++ [""] ++ bs
+    | otherwise =
+        as ++ bs
diff --git a/src/Language/PureScript/Ide/Logging.hs b/src/Language/PureScript/Ide/Logging.hs
--- a/src/Language/PureScript/Ide/Logging.hs
+++ b/src/Language/PureScript/Ide/Logging.hs
@@ -7,13 +7,13 @@
        , labelTimespec
        ) where
 
-import           Protolude
+import Protolude
 
-import           "monad-logger" Control.Monad.Logger
-import qualified Data.Text as T
-import           Language.PureScript.Ide.Types
-import           System.Clock
-import           Text.Printf
+import "monad-logger" Control.Monad.Logger (LogLevel(..), LoggingT, MonadLogger, filterLogger, logOtherN, runStdoutLoggingT)
+import Data.Text qualified as T
+import Language.PureScript.Ide.Types (IdeLogLevel(..))
+import System.Clock (Clock(..), TimeSpec, diffTimeSpec, getTime, toNanoSecs)
+import Text.Printf (printf)
 
 runLogger :: MonadIO m => IdeLogLevel -> LoggingT m a -> m a
 runLogger logLevel' =
@@ -22,7 +22,7 @@
                                          LogAll -> True
                                          LogDefault -> not (logLevel == LevelOther "perf" || logLevel == LevelDebug)
                                          LogNone -> False
-                                         LogDebug -> not (logLevel == LevelOther "perf")
+                                         LogDebug -> logLevel /= LevelOther "perf"
                                          LogPerf -> logLevel == LevelOther "perf")
 
 labelTimespec :: Text -> TimeSpec -> Text
diff --git a/src/Language/PureScript/Ide/Matcher.hs b/src/Language/PureScript/Ide/Matcher.hs
--- a/src/Language/PureScript/Ide/Matcher.hs
+++ b/src/Language/PureScript/Ide/Matcher.hs
@@ -12,9 +12,6 @@
 -- Matchers for psc-ide commands
 -----------------------------------------------------------------------------
 
-{-# LANGUAGE FlexibleInstances          #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-
 module Language.PureScript.Ide.Matcher
        ( Matcher
        , runMatcher
@@ -22,15 +19,16 @@
        , flexMatcher
        ) where
 
-import           Protolude
+import Protolude
 
-import           Data.Aeson
-import qualified Data.Text                     as T
-import qualified Data.Text.Encoding            as TE
-import           Language.PureScript.Ide.Types
-import           Language.PureScript.Ide.Util
-import           Text.EditDistance
-import           Text.Regex.TDFA               ((=~))
+import Control.Monad.Fail (fail)
+import Data.Aeson (FromJSON(..), withObject, (.:), (.:?))
+import Data.Text qualified as T
+import Data.Text.Encoding qualified as TE
+import Language.PureScript.Ide.Types (IdeDeclarationAnn, Match)
+import Language.PureScript.Ide.Util (discardAnn, identifierFromIdeDeclaration, unwrapMatch)
+import Text.EditDistance (defaultEditCosts, levenshteinDistance)
+import Text.Regex.TDFA ((=~))
 
 
 type ScoredMatch a = (Match a, Double)
@@ -49,10 +47,10 @@
         distanceMatcher
           <$> params .: "search"
           <*> params .: "maximumDistance"
-      Just _ -> mzero
+      Just s -> fail ("Unknown matcher: " <> show s)
       Nothing -> return mempty
 
--- | Matches any occurence of the search string with intersections
+-- | Matches any occurrence of the search string with intersections
 --
 -- The scoring measures how far the matches span the string where
 -- closer is better.
@@ -82,7 +80,7 @@
 runMatcher (Matcher m)= appEndo m
 
 sortCompletions :: [ScoredMatch a] -> [ScoredMatch a]
-sortCompletions = sortBy (flip compare `on` snd)
+sortCompletions = sortOn (Down . snd)
 
 flexMatch :: Text -> [Match IdeDeclarationAnn] -> [ScoredMatch IdeDeclarationAnn]
 flexMatch = mapMaybe . flexRate
@@ -96,7 +94,7 @@
 -- Borrowed from: http://cdewaka.com/2013/06/fuzzy-pattern-matching-in-haskell/
 --
 -- By string =~ pattern we'll get the start of the match and the length of
--- the matchas a (start, length) tuple if there's a match.
+-- the matches a (start, length) tuple if there's a match.
 -- If match fails then it would be (-1,0)
 flexScore :: Text -> Text -> Maybe Double
 flexScore pat str =
diff --git a/src/Language/PureScript/Ide/Prim.hs b/src/Language/PureScript/Ide/Prim.hs
--- a/src/Language/PureScript/Ide/Prim.hs
+++ b/src/Language/PureScript/Ide/Prim.hs
@@ -1,40 +1,48 @@
 module Language.PureScript.Ide.Prim (idePrimDeclarations) where
 
-import           Protolude
-import qualified Data.Map as Map
-import qualified Data.Set as Set
-import qualified Language.PureScript as P
-import qualified Language.PureScript.Constants as C
-import qualified Language.PureScript.Environment as PEnv
-import           Language.PureScript.Ide.Types
+import Protolude
 
+import Data.Text qualified as T
+import Data.Map qualified as Map
+import Language.PureScript qualified as P
+import Language.PureScript.Constants.Prim qualified as C
+import Language.PureScript.Environment qualified as PEnv
+import Language.PureScript.Ide.Types (IdeDeclaration(..), IdeDeclarationAnn(..), IdeType(..), IdeTypeClass(..), ModuleMap, emptyAnn)
+
 idePrimDeclarations :: ModuleMap [IdeDeclarationAnn]
 idePrimDeclarations = Map.fromList
-  [ ( C.Prim
-    , mconcat [primTypes, primKinds, primClasses]
+  [ ( C.M_Prim
+    , mconcat [primTypes, primClasses]
     )
-  , ( C.PrimBoolean
-    , mconcat [primBooleanTypes, primBooleanKinds]
+  , ( C.M_Prim_Boolean
+    , mconcat [primBooleanTypes]
     )
-  , ( C.PrimOrdering
-    , mconcat [primOrderingTypes, primOrderingKinds]
+  , ( C.M_Prim_Ordering
+    , mconcat [primOrderingTypes]
     )
-  , ( C.PrimRow
+  , ( C.M_Prim_Row
     , mconcat [primRowTypes, primRowClasses]
     )
-  , ( C.PrimRowList
-    , mconcat [primRowListTypes, primRowListClasses, primRowListKinds]
+  , ( C.M_Prim_RowList
+    , mconcat [primRowListTypes, primRowListClasses]
     )
-  , ( C.PrimSymbol
+  , ( C.M_Prim_Symbol
     , mconcat [primSymbolTypes, primSymbolClasses]
     )
-  , ( C.PrimTypeError
-    , mconcat [primTypeErrorTypes, primTypeErrorClasses, primTypeErrorKinds]
+  , ( C.M_Prim_Int
+    , mconcat [primIntTypes, primIntClasses]
     )
+  , ( C.M_Prim_TypeError
+    , mconcat [primTypeErrorTypes, primTypeErrorClasses]
+    )
   ]
   where
-    annType tys = foreach (Map.toList tys) $ \(tn, (kind, _)) ->
-      IdeDeclarationAnn emptyAnn (IdeDeclType (IdeType (P.disqualify tn) kind []))
+    annType tys = flip mapMaybe (Map.toList tys) $ \(tn, (kind, _)) -> do
+      let name = P.disqualify tn
+      -- We need to remove the ClassName$Dict synonyms, because we
+      -- don't want them to show up in completions
+      guard (isNothing (T.find (== '$') (P.runProperName name)))
+      Just (IdeDeclarationAnn emptyAnn (IdeDeclType (IdeType name kind [])))
     annClass cls = foreach (Map.toList cls) $ \(cn, _) ->
       -- Dummy kind and instances here, but we primarily care about the name completion
       IdeDeclarationAnn emptyAnn (IdeDeclTypeClass (IdeTypeClass (P.disqualify cn) P.kindType []) )
@@ -50,25 +58,12 @@
     primRowTypes = annType (removeClasses PEnv.primRowTypes PEnv.primRowClasses)
     primRowListTypes = annType (removeClasses PEnv.primRowListTypes PEnv.primRowListClasses)
     primSymbolTypes = annType (removeClasses PEnv.primSymbolTypes PEnv.primSymbolClasses)
+    primIntTypes = annType (removeClasses PEnv.primIntTypes PEnv.primIntClasses)
     primTypeErrorTypes = annType (removeClasses PEnv.primTypeErrorTypes PEnv.primTypeErrorClasses)
 
     primClasses = annClass PEnv.primClasses
     primRowClasses = annClass PEnv.primRowClasses
     primRowListClasses = annClass PEnv.primRowListClasses
     primSymbolClasses = annClass PEnv.primSymbolClasses
+    primIntClasses = annClass PEnv.primIntClasses
     primTypeErrorClasses = annClass PEnv.primTypeErrorClasses
-
-    primKinds = foreach (Set.toList PEnv.primKinds) $ \kn ->
-      IdeDeclarationAnn emptyAnn (IdeDeclKind (P.disqualify kn))
-
-    primBooleanKinds = foreach (Set.toList PEnv.primBooleanKinds) $ \kn ->
-      IdeDeclarationAnn emptyAnn (IdeDeclKind (P.disqualify kn))
-
-    primOrderingKinds = foreach (Set.toList PEnv.primOrderingKinds) $ \kn ->
-      IdeDeclarationAnn emptyAnn (IdeDeclKind (P.disqualify kn))
-
-    primRowListKinds = foreach (Set.toList PEnv.primRowListKinds) $ \kn ->
-      IdeDeclarationAnn emptyAnn (IdeDeclKind (P.disqualify kn))
-
-    primTypeErrorKinds = foreach (Set.toList PEnv.primTypeErrorKinds) $ \kn ->
-      IdeDeclarationAnn emptyAnn (IdeDeclKind (P.disqualify kn))
diff --git a/src/Language/PureScript/Ide/Rebuild.hs b/src/Language/PureScript/Ide/Rebuild.hs
--- a/src/Language/PureScript/Ide/Rebuild.hs
+++ b/src/Language/PureScript/Ide/Rebuild.hs
@@ -1,5 +1,4 @@
-{-# LANGUAGE PackageImports        #-}
-{-# LANGUAGE TemplateHaskell       #-}
+{-# language PackageImports, TemplateHaskell, BlockArguments #-}
 
 module Language.PureScript.Ide.Rebuild
   ( rebuildFileSync
@@ -7,21 +6,27 @@
   , rebuildFile
   ) where
 
-import           Protolude
+import Protolude hiding (moduleName)
 
-import           "monad-logger" Control.Monad.Logger
-import qualified Data.List                       as List
-import qualified Data.Map.Lazy                   as M
-import           Data.Maybe                      (fromJust)
-import qualified Data.Set                        as S
-import qualified Language.PureScript             as P
-import qualified Language.PureScript.CST         as CST
-import           Language.PureScript.Ide.Error
-import           Language.PureScript.Ide.Logging
-import           Language.PureScript.Ide.State
-import           Language.PureScript.Ide.Types
-import           Language.PureScript.Ide.Util
+import "monad-logger" Control.Monad.Logger (LoggingT, MonadLogger, logDebug)
+import Data.List qualified as List
+import Data.Map.Lazy qualified as M
+import Data.Maybe (fromJust)
+import Data.Set qualified as S
+import Data.Time qualified as Time
+import Data.Text qualified as Text
+import Language.PureScript qualified as P
+import Language.PureScript.Make (ffiCodegen')
+import Language.PureScript.Make.Cache (CacheInfo(..), normaliseForCache)
+import Language.PureScript.CST qualified as CST
 
+import Language.PureScript.Ide.Error (IdeError(..))
+import Language.PureScript.Ide.Logging (labelTimespec, logPerf, runLogger)
+import Language.PureScript.Ide.State (cacheRebuild, getExternFiles, insertExterns, insertModule, populateVolatileState, updateCacheTimestamp)
+import Language.PureScript.Ide.Types (Ide, IdeConfiguration(..), IdeEnvironment(..), ModuleMap, Success(..))
+import Language.PureScript.Ide.Util (ideReadFile)
+import System.Directory (getCurrentDirectory)
+
 -- | Given a filepath performs the following steps:
 --
 -- * Reads and parses a PureScript module from the filepath.
@@ -49,44 +54,86 @@
   -- ^ A runner for the second build with open exports
   -> m Success
 rebuildFile file actualFile codegenTargets runOpenBuild = do
-  (fp, input) <- ideReadFile file
+  (fp, input) <-
+    case List.stripPrefix "data:" file of
+      Just source -> pure ("", Text.pack source)
+      _ -> ideReadFile file
   let fp' = fromMaybe fp actualFile
-  m <- case CST.parseFromFile fp' input of
+  (pwarnings, m) <- case sequence $ CST.parseFromFile fp' input of
     Left parseError ->
-      throwError $ RebuildError $ CST.toMultipleErrors fp' parseError
+      throwError $ RebuildError [(fp', input)] $ CST.toMultipleErrors fp' parseError
     Right m -> pure m
-
+  let moduleName = P.getModuleName m
   -- Externs files must be sorted ahead of time, so that they get applied
   -- in the right order (bottom up) to the 'Environment'.
   externs <- logPerf (labelTimespec "Sorting externs") (sortExterns m =<< getExternFiles)
-
   outputDirectory <- confOutputPath . ideConfiguration <$> ask
-
   -- For rebuilding, we want to 'RebuildAlways', but for inferring foreign
   -- modules using their file paths, we need to specify the path in the 'Map'.
-  let filePathMap = M.singleton (P.getModuleName m) (Left P.RebuildAlways)
-  foreigns <- P.inferForeignModules (M.singleton (P.getModuleName m) (Right file))
-
-  let makeEnv = MakeActionsEnv outputDirectory filePathMap foreigns False
+  let filePathMap = M.singleton moduleName (Left P.RebuildAlways)
+  let pureRebuild = fp == ""
+  let modulePath = if pureRebuild then fp' else file
+  foreigns <- P.inferForeignModules (M.singleton moduleName (Right modulePath))
+  let makeEnv = P.buildMakeActions outputDirectory filePathMap foreigns False
+        & (if pureRebuild then enableForeignCheck foreigns codegenTargets . shushCodegen else identity)
+        & shushProgress
   -- Rebuild the single module using the cached externs
   (result, warnings) <- logPerf (labelTimespec "Rebuilding Module") $
-    liftIO
-    . P.runMake (P.defaultOptions { P.optionsCodegenTargets = codegenTargets })
-    . P.rebuildModule (buildMakeActions
-                        >>= shushProgress $ makeEnv) externs $ m
+    liftIO $ P.runMake (P.defaultOptions { P.optionsCodegenTargets = codegenTargets }) do
+      newExterns <- P.rebuildModule makeEnv externs m
+      unless pureRebuild
+        $ updateCacheDb codegenTargets outputDirectory file actualFile moduleName
+      pure newExterns
   case result of
-    Left errors -> throwError (RebuildError errors)
+    Left errors ->
+      throwError (RebuildError [(fp', input)] errors)
     Right newExterns -> do
-      whenM isEditorMode $ do
-        insertModule (fromMaybe file actualFile, m)
-        insertExterns newExterns
-        void populateVolatileState
+      insertModule (fromMaybe file actualFile, m)
+      insertExterns newExterns
+      void populateVolatileState
+      _ <- updateCacheTimestamp
       runOpenBuild (rebuildModuleOpen makeEnv externs m)
-      pure (RebuildSuccess warnings)
+      pure (RebuildSuccess (CST.toMultipleWarnings fp pwarnings <> warnings))
 
-isEditorMode :: Ide m => m Bool
-isEditorMode = asks (confEditorMode . ideConfiguration)
+-- | When adjusting the cache db file after a rebuild we always pick a
+-- non-sensical timestamp ("1858-11-17T00:00:00Z"), and rely on the
+-- content hash to tell whether the module needs rebuilding. This is
+-- because IDE rebuilds may be triggered on temporary files to not
+-- force editors to save the actual source file to get at diagnostics
+dayZero :: Time.UTCTime
+dayZero = Time.UTCTime (Time.ModifiedJulianDay 0) 0
 
+updateCacheDb
+  :: MonadIO m
+  => MonadError P.MultipleErrors m
+  => Set P.CodegenTarget
+  -> FilePath
+  -- ^ The output directory
+  -> FilePath
+  -- ^ The file to read the content hash from
+  -> Maybe FilePath
+  -- ^ The file name to update in the cache
+  -> P.ModuleName
+  -- ^ The module name to update in the cache
+  -> m ()
+updateCacheDb codegenTargets outputDirectory file actualFile moduleName = do
+  cwd <- liftIO getCurrentDirectory
+  contentHash <- P.hashFile file
+  let moduleCacheInfo = (normaliseForCache cwd (fromMaybe file actualFile), (dayZero, contentHash))
+
+  foreignCacheInfo <-
+    if S.member P.JS codegenTargets then do
+      foreigns' <- P.inferForeignModules (M.singleton moduleName (Right (fromMaybe file actualFile)))
+      for (M.lookup moduleName foreigns') \foreignPath -> do
+        foreignHash <- P.hashFile foreignPath
+        pure (normaliseForCache cwd foreignPath, (dayZero, foreignHash))
+    else
+      pure Nothing
+
+  let cacheInfo = M.fromList (moduleCacheInfo : maybeToList foreignCacheInfo)
+  cacheDb <- P.readCacheDb' outputDirectory
+  P.writeCacheDb' outputDirectory (M.insert moduleName (CacheInfo cacheInfo) cacheDb)
+
 rebuildFileAsync
   :: forall m. (Ide m, MonadLogger m, MonadError IdeError m)
   => FilePath -> Maybe FilePath -> Set P.CodegenTarget -> m Success
@@ -109,22 +156,17 @@
         let ll = confLogLevel (ideConfiguration env)
         void (liftIO (runLogger ll (runReaderT action env)))
 
-
 -- | Rebuilds a module but opens up its export list first and stores the result
 -- inside the rebuild cache
 rebuildModuleOpen
   :: (Ide m, MonadLogger m)
-  => MakeActionsEnv
+  => P.MakeActions P.Make
   -> [P.ExternsFile]
   -> P.Module
   -> m ()
-rebuildModuleOpen makeEnv externs m = void $ runExceptT $ do
-  (openResult, _) <- liftIO
-    . P.runMake P.defaultOptions
-    . P.rebuildModule (buildMakeActions
-                       >>= shushProgress
-                       >>= shushCodegen
-                       $ makeEnv) externs $ openModuleExports m
+rebuildModuleOpen makeEnv externs m = void $ runExceptT do
+  (openResult, _) <- liftIO $ P.runMake P.defaultOptions $
+    P.rebuildModule (shushProgress (shushCodegen makeEnv)) externs (openModuleExports m)
   case openResult of
     Left _ ->
       throwError (GeneralError "Failed when rebuilding with open exports")
@@ -133,36 +175,28 @@
         ("Setting Rebuild cache: " <> P.runModuleName (P.efModuleName result))
       cacheRebuild result
 
--- | Parameters we can access while building our @MakeActions@
-data MakeActionsEnv =
-  MakeActionsEnv
-  { maeOutputDirectory :: FilePath
-  , maeFilePathMap     :: ModuleMap (Either P.RebuildPolicy FilePath)
-  , maeForeignPathMap  :: ModuleMap FilePath
-  , maePrefixComment   :: Bool
-  }
-
--- | Builds the default @MakeActions@ from a @MakeActionsEnv@
-buildMakeActions :: MakeActionsEnv -> P.MakeActions P.Make
-buildMakeActions MakeActionsEnv{..} =
-  P.buildMakeActions
-    maeOutputDirectory
-    maeFilePathMap
-    maeForeignPathMap
-    maePrefixComment
-
 -- | Shuts the compiler up about progress messages
-shushProgress :: P.MakeActions P.Make -> MakeActionsEnv -> P.MakeActions P.Make
-shushProgress ma _ =
+shushProgress :: Monad m => P.MakeActions m -> P.MakeActions m
+shushProgress ma =
   ma { P.progress = \_ -> pure () }
 
 -- | Stops any kind of codegen
-shushCodegen :: P.MakeActions P.Make -> MakeActionsEnv -> P.MakeActions P.Make
-shushCodegen ma MakeActionsEnv{..} =
+shushCodegen :: Monad m => P.MakeActions m -> P.MakeActions m
+shushCodegen ma =
   ma { P.codegen = \_ _ _ -> pure ()
      , P.ffiCodegen = \_ -> pure ()
      }
 
+-- | Enables foreign module check without actual codegen.
+enableForeignCheck
+  :: M.Map P.ModuleName FilePath
+  -> S.Set P.CodegenTarget
+  -> P.MakeActions P.Make
+  -> P.MakeActions P.Make
+enableForeignCheck foreigns codegenTargets ma =
+  ma { P.ffiCodegen = ffiCodegen' foreigns codegenTargets Nothing
+     }
+
 -- | Returns a topologically sorted list of dependent ExternsFiles for the given
 -- module. Throws an error if there is a cyclic dependency within the
 -- ExternsFiles
@@ -173,14 +207,14 @@
   -> m [P.ExternsFile]
 sortExterns m ex = do
   sorted' <- runExceptT
-           . P.sortModules P.moduleSignature
+           . P.sortModules P.Transitive P.moduleSignature
            . (:) m
            . map mkShallowModule
            . M.elems
            . M.delete (P.getModuleName m) $ ex
   case sorted' of
     Left err ->
-      throwError (RebuildError err)
+      throwError (RebuildError [] err)
     Right (sorted, graph) -> do
       let deps = fromJust (List.lookup (P.getModuleName m) graph)
       pure $ mapMaybe getExtern (deps `inOrderOf` map P.getModuleName sorted)
diff --git a/src/Language/PureScript/Ide/Reexports.hs b/src/Language/PureScript/Ide/Reexports.hs
--- a/src/Language/PureScript/Ide/Reexports.hs
+++ b/src/Language/PureScript/Ide/Reexports.hs
@@ -1,4 +1,3 @@
-{-# LANGUAGE DeriveGeneric #-}
 -----------------------------------------------------------------------------
 --
 -- Module      : Language.PureScript.Ide.Reexports
@@ -23,13 +22,13 @@
   , resolveReexports'
   ) where
 
-import           Protolude hiding (moduleName)
+import Protolude hiding (moduleName)
 
-import qualified Data.Map                      as Map
-import qualified Language.PureScript           as P
-import           Language.PureScript.Ide.Types
-import           Language.PureScript.Ide.Util
-import           Lens.Micro.Platform           hiding ((&))
+import Control.Lens (set)
+import Data.Map qualified as Map
+import Language.PureScript qualified as P
+import Language.PureScript.Ide.Types
+import Language.PureScript.Ide.Util (discardAnn)
 
 -- | Contains the module with resolved reexports, and possible failures
 data ReexportResult a
@@ -86,7 +85,7 @@
       Nothing -> Left x
       Just decls' ->
         let
-          setExportedFrom = set (idaAnnotation.annExportedFrom) . Just
+          setExportedFrom = set (idaAnnotation . annExportedFrom) . Just
         in
           bimap (mn,) (map (setExportedFrom mn)) (resolveRef decls' r)
 
@@ -104,7 +103,7 @@
           Nothing ->
             -- If the dataconstructor field inside the TypeRef is Nothing, that
             -- means that all data constructors are exported, so we need to look
-            -- those up ourselfes
+            -- those up ourselves
             findDtors tn
           Just dtors -> mapMaybe lookupDtor dtors
   P.ValueRef _ i ->
@@ -115,8 +114,6 @@
     findWrapped (anyOf (_IdeDeclTypeOperator . ideTypeOpName) (== name))
   P.TypeClassRef _ name ->
     findWrapped (anyOf (_IdeDeclTypeClass . ideTCName) (== name))
-  P.KindRef _ name ->
-    findWrapped (anyOf _IdeDeclKind (== name))
   _ ->
     Left ref
   where
diff --git a/src/Language/PureScript/Ide/SourceFile.hs b/src/Language/PureScript/Ide/SourceFile.hs
--- a/src/Language/PureScript/Ide/SourceFile.hs
+++ b/src/Language/PureScript/Ide/SourceFile.hs
@@ -13,35 +13,26 @@
 -----------------------------------------------------------------------------
 
 module Language.PureScript.Ide.SourceFile
-  ( parseModule
-  , parseModulesFromFiles
+  ( parseModulesFromFiles
   , extractAstInformation
   -- for tests
   , extractSpans
   , extractTypeAnnotations
   ) where
 
-import           Protolude
-
-import           Control.Parallel.Strategies (withStrategy, parList, rseq)
-import qualified Data.Map                      as Map
-import qualified Language.PureScript           as P
-import qualified Language.PureScript.CST       as CST
-import           Language.PureScript.Ide.Error
-import           Language.PureScript.Ide.Types
-import           Language.PureScript.Ide.Util
+import Protolude
 
-parseModule
-  :: (MonadIO m, MonadError IdeError m)
-  => FilePath
-  -> m (Either FilePath (FilePath, P.Module))
-parseModule path = do
-  (absPath, contents) <- ideReadFile path
-  pure (parseModule' absPath contents)
+import Control.Parallel.Strategies (withStrategy, parList, rseq)
+import Data.Map qualified as Map
+import Language.PureScript qualified as P
+import Language.PureScript.CST qualified as CST
+import Language.PureScript.Ide.Error (IdeError)
+import Language.PureScript.Ide.Types (DefinitionSites, IdeNamespace(..), IdeNamespaced(..), TypeAnnotations)
+import Language.PureScript.Ide.Util (ideReadFile)
 
-parseModule' :: FilePath -> Text -> Either FilePath (FilePath, P.Module)
-parseModule' path file =
-  case CST.parseFromFile path file of
+parseModule :: FilePath -> Text -> Either FilePath (FilePath, P.Module)
+parseModule path file =
+  case snd $ CST.parseFromFile path file of
     Left _ -> Left path
     Right m -> Right (path, m)
 
@@ -51,7 +42,7 @@
   -> m [Either FilePath (FilePath, P.Module)]
 parseModulesFromFiles paths = do
   files <- traverse ideReadFile paths
-  pure (inParallel (map (uncurry parseModule') files))
+  pure (inParallel (map (uncurry parseModule) files))
   where
     inParallel :: [Either e (k, a)] -> [Either e (k, a)]
     inParallel = withStrategy (parList rseq)
@@ -87,8 +78,7 @@
   P.TypeClassDeclaration (ss, _) name _ _ _ members ->
     (IdeNamespaced IdeNSType (P.runProperName name), ss) : concatMap extractSpans' members
   P.DataDeclaration (ss, _) _ name _ ctors ->
-    (IdeNamespaced IdeNSType (P.runProperName name), ss)
-    : map (\(cname, _) -> (IdeNamespaced IdeNSValue (P.runProperName cname), ss)) ctors
+    (IdeNamespaced IdeNSType (P.runProperName name), ss) : map dtorSpan ctors
   P.FixityDeclaration (ss, _) (Left (P.ValueFixity _ _ opName)) ->
     [(IdeNamespaced IdeNSValue (P.runOpName opName), ss)]
   P.FixityDeclaration (ss, _) (Right (P.TypeFixity _ _ opName)) ->
@@ -97,10 +87,11 @@
     [(IdeNamespaced IdeNSValue (P.runIdent ident), ss)]
   P.ExternDataDeclaration (ss, _) name _ ->
     [(IdeNamespaced IdeNSType (P.runProperName name), ss)]
-  P.ExternKindDeclaration (ss, _) name ->
-    [(IdeNamespaced IdeNSKind (P.runProperName name), ss)]
   _ -> []
   where
+    dtorSpan :: P.DataConstructorDeclaration -> (IdeNamespaced, P.SourceSpan)
+    dtorSpan P.DataConstructorDeclaration{ P.dataCtorName = name, P.dataCtorAnn = (ss, _) } =
+      (IdeNamespaced IdeNSValue (P.runProperName name), ss)
     -- We need this special case to be able to also get the position info for
     -- typeclass member functions. Typedeclarations would clash with value
     -- declarations for non-typeclass members, which is why we can't handle them
diff --git a/src/Language/PureScript/Ide/State.hs b/src/Language/PureScript/Ide/State.hs
--- a/src/Language/PureScript/Ide/State.hs
+++ b/src/Language/PureScript/Ide/State.hs
@@ -12,10 +12,8 @@
 -- Functions to access psc-ide's state
 -----------------------------------------------------------------------------
 
-{-# LANGUAGE PackageImports  #-}
-{-# LANGUAGE TemplateHaskell #-}
-{-# LANGUAGE NamedFieldPuns  #-}
-{-# LANGUAGE BangPatterns    #-}
+{-# LANGUAGE PackageImports #-}
+{-# LANGUAGE TypeApplications #-}
 
 module Language.PureScript.Ide.State
   ( getLoadedModulenames
@@ -31,27 +29,33 @@
   , populateVolatileState
   , populateVolatileStateSync
   , populateVolatileStateSTM
+  , getOutputDirectory
+  , updateCacheTimestamp
   -- for tests
   , resolveOperatorsForModule
   , resolveInstances
   , resolveDataConstructorsForModule
   ) where
 
-import           Protolude hiding (moduleName)
+import Protolude hiding (moduleName, unzip)
 
-import           Control.Arrow
-import           Control.Concurrent.STM
-import           "monad-logger" Control.Monad.Logger
-import qualified Data.Map.Lazy                      as Map
-import qualified Language.PureScript                as P
-import           Language.PureScript.Docs.Convert.Single (convertComments)
-import           Language.PureScript.Externs
-import           Language.PureScript.Ide.Externs
-import           Language.PureScript.Ide.Reexports
-import           Language.PureScript.Ide.SourceFile
-import           Language.PureScript.Ide.Types
-import           Language.PureScript.Ide.Util
-import           Lens.Micro.Platform                hiding ((&))
+import Control.Concurrent.STM (TVar, modifyTVar, readTVar, readTVarIO, writeTVar)
+import Control.Lens (Ixed(..), preview, view, (%~), (.~), (^.))
+import "monad-logger" Control.Monad.Logger (MonadLogger, logWarnN)
+import Data.IORef (readIORef, writeIORef)
+import Data.Map.Lazy qualified as Map
+import Data.Time.Clock (UTCTime)
+import Data.Zip (unzip)
+import Language.PureScript qualified as P
+import Language.PureScript.Docs.Convert.Single (convertComments)
+import Language.PureScript.Externs (ExternsDeclaration(..), ExternsFile(..))
+import Language.PureScript.Make.Actions (cacheDbFile)
+import Language.PureScript.Ide.Externs (convertExterns)
+import Language.PureScript.Ide.Reexports (ReexportResult(..), prettyPrintReexportResult, reexportHasFailures, resolveReexports)
+import Language.PureScript.Ide.SourceFile (extractAstInformation)
+import Language.PureScript.Ide.Types
+import Language.PureScript.Ide.Util (discardAnn, displayTimeSpec, logPerf, opNameT, properNameT, runLogger)
+import System.Directory (getModificationTime)
 
 -- | Resets all State inside psc-ide
 resetIdeState :: Ide m => m ()
@@ -59,6 +63,31 @@
   ideVar <- ideStateVar <$> ask
   liftIO (atomically (writeTVar ideVar emptyIdeState))
 
+getOutputDirectory :: Ide m => m FilePath
+getOutputDirectory = do
+  confOutputPath . ideConfiguration <$> ask
+
+getCacheTimestamp :: Ide m => m (Maybe UTCTime)
+getCacheTimestamp = do
+  x <- ideCacheDbTimestamp <$> ask
+  liftIO (readIORef x)
+
+readCacheTimestamp :: Ide m => m (Maybe UTCTime)
+readCacheTimestamp = do
+  cacheDb <- cacheDbFile <$> getOutputDirectory
+  liftIO (hush <$> try @SomeException (getModificationTime cacheDb))
+
+updateCacheTimestamp :: Ide m => m (Maybe (Maybe UTCTime, Maybe UTCTime))
+updateCacheTimestamp = do
+  old <- getCacheTimestamp
+  new <- readCacheTimestamp
+  if old == new
+    then pure Nothing
+    else do
+      ts <- ideCacheDbTimestamp <$> ask
+      liftIO (writeIORef ts new)
+      pure (Just (old, new))
+
 -- | Gets the loaded Modulenames
 getLoadedModulenames :: Ide m => m [P.ModuleName]
 getLoadedModulenames = Map.keys <$> getExternFiles
@@ -178,7 +207,7 @@
     (\mn -> logWarnN . prettyPrintReexportResult (const (P.runModuleName mn)))
     (Map.filter reexportHasFailures results)
 
-populateVolatileState :: (Ide m, MonadLogger m) => m (Async ())
+populateVolatileState :: Ide m => m (Async ())
 populateVolatileState = do
   env <- ask
   let ll = confLogLevel (ideConfiguration env)
@@ -196,7 +225,7 @@
   -- through the repopulation
   rebuildCache <- vsCachedRebuild <$> getVolatileStateSTM ref
   let asts = map (extractAstInformation . fst) modules
-  let (moduleDeclarations, reexportRefs) = (map fst &&& map snd) (Map.map convertExterns externs)
+  let (moduleDeclarations, reexportRefs) = unzip (Map.map convertExterns externs)
       results =
         moduleDeclarations
         & map resolveDataConstructorsForModule
@@ -220,15 +249,16 @@
   :: (DefinitionSites P.SourceSpan, TypeAnnotations)
   -> [IdeDeclarationAnn]
   -> [IdeDeclarationAnn]
-resolveLocationsForModule (defs, types) decls =
-  map convertDeclaration decls
+resolveLocationsForModule (defs, types) =
+  map convertDeclaration
   where
     convertDeclaration :: IdeDeclarationAnn -> IdeDeclarationAnn
     convertDeclaration (IdeDeclarationAnn ann d) = convertDeclaration'
       annotateFunction
       annotateValue
+      annotateDataConstructor
       annotateType
-      annotateKind
+      annotateType -- type classes live in the type namespace
       annotateModule
       d
       where
@@ -236,8 +266,8 @@
                                                     , _annTypeAnnotation = Map.lookup x types
                                                     })
         annotateValue x = IdeDeclarationAnn (ann {_annLocation = Map.lookup (IdeNamespaced IdeNSValue x) defs})
+        annotateDataConstructor x = IdeDeclarationAnn (ann {_annLocation = Map.lookup (IdeNamespaced IdeNSValue x) defs})
         annotateType x = IdeDeclarationAnn (ann {_annLocation = Map.lookup (IdeNamespaced IdeNSType x) defs})
-        annotateKind x = IdeDeclarationAnn (ann {_annLocation = Map.lookup (IdeNamespaced IdeNSKind x) defs})
         annotateModule x = IdeDeclarationAnn (ann {_annLocation = Map.lookup (IdeNamespaced IdeNSModule x) defs})
 
 convertDeclaration'
@@ -246,9 +276,10 @@
   -> (Text -> IdeDeclaration -> IdeDeclarationAnn)
   -> (Text -> IdeDeclaration -> IdeDeclarationAnn)
   -> (Text -> IdeDeclaration -> IdeDeclarationAnn)
+  -> (Text -> IdeDeclaration -> IdeDeclarationAnn)
   -> IdeDeclaration
   -> IdeDeclarationAnn
-convertDeclaration' annotateFunction annotateValue annotateType annotateKind annotateModule d =
+convertDeclaration' annotateFunction annotateValue annotateDataConstructor annotateType annotateClass annotateModule d =
   case d of
     IdeDeclValue v ->
       annotateFunction (v ^. ideValueIdent) d
@@ -257,15 +288,13 @@
     IdeDeclTypeSynonym s ->
       annotateType (s ^. ideSynonymName . properNameT) d
     IdeDeclDataConstructor dtor ->
-      annotateValue (dtor ^. ideDtorName . properNameT) d
+      annotateDataConstructor (dtor ^. ideDtorName . properNameT) d
     IdeDeclTypeClass tc ->
-      annotateType (tc ^. ideTCName . properNameT) d
+      annotateClass (tc ^. ideTCName . properNameT) d
     IdeDeclValueOperator operator ->
       annotateValue (operator ^. ideValueOpName . opNameT) d
     IdeDeclTypeOperator operator ->
       annotateType (operator ^. ideTypeOpName . opNameT) d
-    IdeDeclKind i ->
-      annotateKind (i ^. properNameT) d
     IdeDeclModule mn ->
       annotateModule (P.runModuleName mn) d
 
@@ -281,15 +310,25 @@
   :: P.Module
     -> [IdeDeclarationAnn]
     -> [IdeDeclarationAnn]
-resolveDocumentationForModule (P.Module _ moduleComments moduleName sdecls _) decls = map convertDecl decls
+resolveDocumentationForModule (P.Module _ moduleComments moduleName sdecls _) =
+  map convertDecl
   where
+  extractDeclComments :: P.Declaration -> [(P.Name, [P.Comment])]
+  extractDeclComments = \case
+    P.DataDeclaration (_, cs) _ ctorName _ ctors ->
+      (P.TyName ctorName, cs) : map dtorComments ctors
+    P.TypeClassDeclaration (_, cs) tyClassName _ _ _ members ->
+      (P.TyClassName tyClassName, cs) : concatMap extractDeclComments members
+    decl ->
+      maybe [] (\name' -> [(name', snd (P.declSourceAnn decl))]) (name decl)
+
   comments :: Map P.Name [P.Comment]
-  comments = Map.insert (P.ModName moduleName) moduleComments $ Map.fromListWith (flip (<>)) $ mapMaybe (\d ->
-    case name d of
-      Just name' -> Just (name', snd $ P.declSourceAnn d)
-      _ -> Nothing)
-    sdecls
+  comments = Map.insert (P.ModName moduleName) moduleComments $
+    Map.fromListWith (flip (<>)) $ concatMap extractDeclComments sdecls
 
+  dtorComments :: P.DataConstructorDeclaration -> (P.Name, [P.Comment])
+  dtorComments dcd = (P.DctorName (P.dataCtorName dcd), snd (P.dataCtorAnn dcd))
+
   name :: P.Declaration -> Maybe P.Name
   name (P.TypeDeclaration d) = Just $ P.IdentName $ P.tydeclIdent d
   name decl = P.declName decl
@@ -299,8 +338,9 @@
     convertDeclaration'
       (annotateValue . P.IdentName)
       (annotateValue . P.IdentName . P.Ident)
+      (annotateValue . P.DctorName . P.ProperName)
       (annotateValue . P.TyName . P.ProperName)
-      (annotateValue . P.KiName . P.ProperName)
+      (annotateValue . P.TyClassName . P.ProperName)
       (annotateValue . P.ModName . P.moduleNameFromString)
       d
     where
@@ -320,7 +360,7 @@
   where
     extractInstances mn P.EDInstance{..} =
       case edInstanceClassName of
-          P.Qualified (Just classModule) className ->
+          P.Qualified (P.ByModuleName classModule) className ->
             Just (IdeInstance mn
                   edInstanceName
                   edInstanceTypes
@@ -361,18 +401,17 @@
     getDeclarations :: P.ModuleName -> [IdeDeclaration]
     getDeclarations moduleName =
       Map.lookup moduleName modules
-      & fromMaybe []
-      & map discardAnn
+      & foldMap (map discardAnn)
 
     resolveOperator (IdeDeclValueOperator op)
-      | (P.Qualified (Just mn) (Left ident)) <- op ^. ideValueOpAlias =
+      | (P.Qualified (P.ByModuleName mn) (Left ident)) <- op ^. ideValueOpAlias =
           let t = getDeclarations mn
                   & mapMaybe (preview _IdeDeclValue)
                   & filter (anyOf ideValueIdent (== ident))
                   & map (view ideValueType)
                   & listToMaybe
           in IdeDeclValueOperator (op & ideValueOpType .~ t)
-      | (P.Qualified (Just mn) (Right dtor)) <- op ^. ideValueOpAlias =
+      | (P.Qualified (P.ByModuleName mn) (Right dtor)) <- op ^. ideValueOpAlias =
           let t = getDeclarations mn
                   & mapMaybe (preview _IdeDeclDataConstructor)
                   & filter (anyOf ideDtorName (== dtor))
@@ -380,7 +419,7 @@
                   & listToMaybe
           in IdeDeclValueOperator (op & ideValueOpType .~ t)
     resolveOperator (IdeDeclTypeOperator op)
-      | P.Qualified (Just mn) properName <- op ^. ideTypeOpAlias =
+      | P.Qualified (P.ByModuleName mn) properName <- op ^. ideTypeOpAlias =
           let k = getDeclarations mn
                   & mapMaybe (preview _IdeDeclType)
                   & filter (anyOf ideTypeName (== properName))
@@ -402,12 +441,12 @@
     resolveDataConstructors :: IdeDeclaration -> IdeDeclaration
     resolveDataConstructors decl = case decl of
       IdeDeclType ty ->
-        IdeDeclType (ty & ideTypeDtors .~ fromMaybe [] (Map.lookup (ty^.ideTypeName) dtors))
+        IdeDeclType (ty & ideTypeDtors .~ fromMaybe [] (Map.lookup (ty ^. ideTypeName) dtors))
       _ ->
         decl
 
     dtors =
       decls
-      & mapMaybe (preview (idaDeclaration._IdeDeclDataConstructor))
+      & mapMaybe (preview (idaDeclaration . _IdeDeclDataConstructor))
       & foldr (\(IdeDataConstructor name typeName type') ->
                   Map.insertWith (<>) typeName [(name, type')]) Map.empty
diff --git a/src/Language/PureScript/Ide/Types.hs b/src/Language/PureScript/Ide/Types.hs
--- a/src/Language/PureScript/Ide/Types.hs
+++ b/src/Language/PureScript/Ide/Types.hs
@@ -1,32 +1,23 @@
------------------------------------------------------------------------------
---
--- Module      : Language.PureScript.Ide.Types
--- Description : Type definitions for psc-ide
--- Copyright   : Christoph Hegemann 2016
--- License     : MIT (http://opensource.org/licenses/MIT)
---
--- Maintainer  : Christoph Hegemann <christoph.hegemann1337@gmail.com>
--- Stability   : experimental
---
 -- |
 -- Type definitions for psc-ide
------------------------------------------------------------------------------
 
-{-# LANGUAGE DeriveGeneric   #-}
-{-# LANGUAGE DeriveAnyClass  #-}
-{-# LANGUAGE DeriveFoldable  #-}
-{-# LANGUAGE TemplateHaskell #-}
+{-# language DeriveAnyClass, NoGeneralizedNewtypeDeriving, TemplateHaskell #-}
 
 module Language.PureScript.Ide.Types where
 
-import           Protolude hiding (moduleName)
+import Protolude hiding (moduleName)
 
-import           Control.Concurrent.STM
-import           Data.Aeson
-import qualified Data.Map.Lazy as M
-import qualified Language.PureScript as P
-import qualified Language.PureScript.Errors.JSON as P
-import           Lens.Micro.Platform hiding ((.=))
+import Control.Concurrent.STM (TVar)
+import Control.Lens (Getting, Traversal', makeLenses)
+import Control.Monad.Fail (fail)
+import Data.Aeson (ToJSON, FromJSON, (.=))
+import Data.Aeson qualified as Aeson
+import Data.IORef (IORef)
+import Data.Time.Clock (UTCTime)
+import Data.Map.Lazy qualified as M
+import Language.PureScript qualified as P
+import Language.PureScript.Errors.JSON qualified as P
+import Language.PureScript.Ide.Filter.Declaration (DeclarationType(..))
 
 type ModuleIdent = Text
 type ModuleMap a = Map P.ModuleName a
@@ -40,59 +31,58 @@
   | IdeDeclValueOperator IdeValueOperator
   | IdeDeclTypeOperator IdeTypeOperator
   | IdeDeclModule P.ModuleName
-  | IdeDeclKind (P.ProperName 'P.KindName)
   deriving (Show, Eq, Ord, Generic, NFData)
 
 data IdeValue = IdeValue
   { _ideValueIdent :: P.Ident
-  , _ideValueType  :: P.SourceType
+  , _ideValueType :: P.SourceType
   } deriving (Show, Eq, Ord, Generic, NFData)
 
 data IdeType = IdeType
  { _ideTypeName :: P.ProperName 'P.TypeName
- , _ideTypeKind :: P.SourceKind
+ , _ideTypeKind :: P.SourceType
  , _ideTypeDtors :: [(P.ProperName 'P.ConstructorName, P.SourceType)]
  } deriving (Show, Eq, Ord, Generic, NFData)
 
 data IdeTypeSynonym = IdeTypeSynonym
   { _ideSynonymName :: P.ProperName 'P.TypeName
   , _ideSynonymType :: P.SourceType
-  , _ideSynonymKind :: P.SourceKind
+  , _ideSynonymKind :: P.SourceType
   } deriving (Show, Eq, Ord, Generic, NFData)
 
 data IdeDataConstructor = IdeDataConstructor
-  { _ideDtorName     :: P.ProperName 'P.ConstructorName
+  { _ideDtorName :: P.ProperName 'P.ConstructorName
   , _ideDtorTypeName :: P.ProperName 'P.TypeName
-  , _ideDtorType     :: P.SourceType
+  , _ideDtorType :: P.SourceType
   } deriving (Show, Eq, Ord, Generic, NFData)
 
 data IdeTypeClass = IdeTypeClass
   { _ideTCName :: P.ProperName 'P.ClassName
-  , _ideTCKind :: P.SourceKind
+  , _ideTCKind :: P.SourceType
   , _ideTCInstances :: [IdeInstance]
   } deriving (Show, Eq, Ord, Generic, NFData)
 
 data IdeInstance = IdeInstance
-  { _ideInstanceModule      :: P.ModuleName
-  , _ideInstanceName        :: P.Ident
-  , _ideInstanceTypes       :: [P.SourceType]
+  { _ideInstanceModule :: P.ModuleName
+  , _ideInstanceName :: P.Ident
+  , _ideInstanceTypes :: [P.SourceType]
   , _ideInstanceConstraints :: Maybe [P.SourceConstraint]
   } deriving (Show, Eq, Ord, Generic, NFData)
 
 data IdeValueOperator = IdeValueOperator
-  { _ideValueOpName          :: P.OpName 'P.ValueOpName
-  , _ideValueOpAlias         :: P.Qualified (Either P.Ident (P.ProperName 'P.ConstructorName))
-  , _ideValueOpPrecedence    :: P.Precedence
+  { _ideValueOpName :: P.OpName 'P.ValueOpName
+  , _ideValueOpAlias :: P.Qualified (Either P.Ident (P.ProperName 'P.ConstructorName))
+  , _ideValueOpPrecedence :: P.Precedence
   , _ideValueOpAssociativity :: P.Associativity
-  , _ideValueOpType          :: Maybe P.SourceType
+  , _ideValueOpType :: Maybe P.SourceType
   } deriving (Show, Eq, Ord, Generic, NFData)
 
 data IdeTypeOperator = IdeTypeOperator
-  { _ideTypeOpName          :: P.OpName 'P.TypeOpName
-  , _ideTypeOpAlias         :: P.Qualified (P.ProperName 'P.TypeName)
-  , _ideTypeOpPrecedence    :: P.Precedence
+  { _ideTypeOpName :: P.OpName 'P.TypeOpName
+  , _ideTypeOpAlias :: P.Qualified (P.ProperName 'P.TypeName)
+  , _ideTypeOpPrecedence :: P.Precedence
   , _ideTypeOpAssociativity :: P.Associativity
-  , _ideTypeOpKind          :: Maybe P.SourceKind
+  , _ideTypeOpKind :: Maybe P.SourceType
   } deriving (Show, Eq, Ord, Generic, NFData)
 
 _IdeDeclValue :: Traversal' IdeDeclaration IdeValue
@@ -123,10 +113,6 @@
 _IdeDeclTypeOperator f (IdeDeclTypeOperator x) = map IdeDeclTypeOperator (f x)
 _IdeDeclTypeOperator _ x = pure x
 
-_IdeDeclKind :: Traversal' IdeDeclaration (P.ProperName 'P.KindName)
-_IdeDeclKind f (IdeDeclKind x) = map IdeDeclKind (f x)
-_IdeDeclKind _ x = pure x
-
 _IdeDeclModule :: Traversal' IdeDeclaration P.ModuleName
 _IdeDeclModule f (IdeDeclModule x) = map IdeDeclModule (f x)
 _IdeDeclModule _ x = pure x
@@ -139,21 +125,20 @@
 makeLenses ''IdeTypeSynonym
 makeLenses ''IdeDataConstructor
 makeLenses ''IdeTypeClass
-makeLenses ''IdeInstance
 makeLenses ''IdeValueOperator
 makeLenses ''IdeTypeOperator
 
 data IdeDeclarationAnn = IdeDeclarationAnn
-  { _idaAnnotation  :: Annotation
+  { _idaAnnotation :: Annotation
   , _idaDeclaration :: IdeDeclaration
   } deriving (Show, Eq, Ord, Generic, NFData)
 
 data Annotation
   = Annotation
-  { _annLocation       :: Maybe P.SourceSpan
-  , _annExportedFrom   :: Maybe P.ModuleName
+  { _annLocation :: Maybe P.SourceSpan
+  , _annExportedFrom :: Maybe P.ModuleName
   , _annTypeAnnotation :: Maybe P.SourceType
-  , _annDocumentation  :: Maybe Text
+  , _annDocumentation :: Maybe Text
   } deriving (Show, Eq, Ord, Generic, NFData)
 
 makeLenses ''Annotation
@@ -175,21 +160,23 @@
 data IdeConfiguration =
   IdeConfiguration
   { confOutputPath :: FilePath
-  , confLogLevel   :: IdeLogLevel
-  , confGlobs      :: [FilePath]
-  , confEditorMode :: Bool
+  , confLogLevel :: IdeLogLevel
+  , confGlobs :: [FilePath]
+  , confGlobsFromFile :: Maybe FilePath
+  , confGlobsExclude :: [FilePath]
   }
 
 data IdeEnvironment =
   IdeEnvironment
-  { ideStateVar      :: TVar IdeState
+  { ideStateVar :: TVar IdeState
   , ideConfiguration :: IdeConfiguration
+  , ideCacheDbTimestamp :: IORef (Maybe UTCTime)
   }
 
 type Ide m = (MonadIO m, MonadReader IdeEnvironment m)
 
 data IdeState = IdeState
-  { ideFileState     :: IdeFileState
+  { ideFileState :: IdeFileState
   , ideVolatileState :: IdeVolatileState
   } deriving (Show)
 
@@ -221,8 +208,8 @@
 -- with open imports which is used to provide completions for module private
 -- declarations
 data IdeVolatileState = IdeVolatileState
-  { vsAstData       :: AstData P.SourceSpan
-  , vsDeclarations  :: ModuleMap [IdeDeclarationAnn]
+  { vsAstData :: AstData P.SourceSpan
+  , vsDeclarations :: ModuleMap [IdeDeclarationAnn]
   , vsCachedRebuild :: Maybe (P.ModuleName, P.ExternsFile)
   } deriving (Show)
 
@@ -231,35 +218,48 @@
 
 -- | A completion as it gets sent to the editors
 data Completion = Completion
-  { complModule        :: Text
-  , complIdentifier    :: Text
-  , complType          :: Text
-  , complExpandedType  :: Text
-  , complLocation      :: Maybe P.SourceSpan
+  { complModule :: Text
+  , complIdentifier :: Text
+  , complType :: Text
+  , complExpandedType :: Text
+  , complLocation :: Maybe P.SourceSpan
   , complDocumentation :: Maybe Text
-  , complExportedFrom  :: [P.ModuleName]
+  , complExportedFrom :: [P.ModuleName]
+  , complDeclarationType :: Maybe DeclarationType
   } deriving (Show, Eq, Ord)
 
 instance ToJSON Completion where
-  toJSON (Completion {..}) =
-    object [ "module" .= complModule
-           , "identifier" .= complIdentifier
-           , "type" .= complType
-           , "expandedType" .= complExpandedType
-           , "definedAt" .= complLocation
-           , "documentation" .= complDocumentation
-           , "exportedFrom" .= map P.runModuleName complExportedFrom
-           ]
+  toJSON Completion {..} =
+    Aeson.object
+      [ "module" .= complModule
+      , "identifier" .= complIdentifier
+      , "type" .= complType
+      , "expandedType" .= complExpandedType
+      , "definedAt" .= complLocation
+      , "documentation" .= complDocumentation
+      , "exportedFrom" .= map P.runModuleName complExportedFrom
+      , "declarationType" .= complDeclarationType
+      ]
 
 identifierFromDeclarationRef :: P.DeclarationRef -> Text
-identifierFromDeclarationRef (P.TypeRef _ name _) = P.runProperName name
-identifierFromDeclarationRef (P.ValueRef _ ident) = P.runIdent ident
-identifierFromDeclarationRef (P.TypeClassRef _ name) = P.runProperName name
-identifierFromDeclarationRef (P.KindRef _ name) = P.runProperName name
-identifierFromDeclarationRef (P.ValueOpRef _ op) = P.showOp op
-identifierFromDeclarationRef (P.TypeOpRef _ op) = P.showOp op
-identifierFromDeclarationRef _ = ""
+identifierFromDeclarationRef = \case
+  P.TypeRef _ name _ -> P.runProperName name
+  P.ValueRef _ ident -> P.runIdent ident
+  P.TypeClassRef _ name -> P.runProperName name
+  P.ValueOpRef _ op -> P.showOp op
+  P.TypeOpRef _ op -> P.showOp op
+  _ -> ""
 
+declarationType :: IdeDeclaration -> DeclarationType
+declarationType decl = case decl of
+  IdeDeclValue _ -> Value
+  IdeDeclType _ -> Type
+  IdeDeclTypeSynonym _ -> Synonym
+  IdeDeclDataConstructor _ -> DataConstructor
+  IdeDeclTypeClass _ -> TypeClass
+  IdeDeclValueOperator _ -> ValueOperator
+  IdeDeclTypeOperator _ -> TypeOperator
+  IdeDeclModule _ -> Module
 data Success =
   CompletionResult [Completion]
   | TextResult Text
@@ -270,50 +270,57 @@
   | RebuildSuccess P.MultipleErrors
   deriving (Show)
 
-encodeSuccess :: (ToJSON a) => a -> Value
+encodeSuccess :: ToJSON a => a -> Aeson.Value
 encodeSuccess res =
-    object ["resultType" .= ("success" :: Text), "result" .= res]
+  Aeson.object ["resultType" .= ("success" :: Text), "result" .= res]
 
 instance ToJSON Success where
-  toJSON (CompletionResult cs) = encodeSuccess cs
-  toJSON (TextResult t) = encodeSuccess t
-  toJSON (UsagesResult ssp) = encodeSuccess ssp
-  toJSON (MultilineTextResult ts) = encodeSuccess ts
-  toJSON (ImportList (moduleName, imports)) = object [ "resultType" .= ("success" :: Text)
-                                                     , "result" .= object [ "imports" .= map encodeImport imports
-                                                                          , "moduleName" .= P.runModuleName moduleName]]
-  toJSON (ModuleList modules) = encodeSuccess modules
-  toJSON (RebuildSuccess warnings) = encodeSuccess (P.toJSONErrors False P.Warning warnings)
+  toJSON = \case
+    CompletionResult cs -> encodeSuccess cs
+    TextResult t -> encodeSuccess t
+    UsagesResult ssp -> encodeSuccess ssp
+    MultilineTextResult ts -> encodeSuccess ts
+    ImportList (moduleName, imports) ->
+      Aeson.object
+        [ "resultType" .= ("success" :: Text)
+        , "result" .= Aeson.object
+            [ "imports" .= map encodeImport imports
+            , "moduleName" .= P.runModuleName moduleName
+            ]
+        ]
+    ModuleList modules -> encodeSuccess modules
+    RebuildSuccess warnings -> encodeSuccess (P.toJSONErrors False P.Warning [] warnings)
 
-encodeImport :: (P.ModuleName, P.ImportDeclarationType, Maybe P.ModuleName) -> Value
+encodeImport :: (P.ModuleName, P.ImportDeclarationType, Maybe P.ModuleName) -> Aeson.Value
 encodeImport (P.runModuleName -> mn, importType, map P.runModuleName -> qualifier) = case importType of
   P.Implicit ->
-    object $ [ "module" .= mn
-             , "importType" .= ("implicit" :: Text)
-             ] ++ map (\x -> "qualifier" .= x) (maybeToList qualifier)
+    Aeson.object $
+      [ "module" .= mn
+      , "importType" .= ("implicit" :: Text)
+      ] ++ map ("qualifier" .=) (maybeToList qualifier)
   P.Explicit refs ->
-    object $ [ "module" .= mn
-             , "importType" .= ("explicit" :: Text)
-             , "identifiers" .= (identifierFromDeclarationRef <$> refs)
-             ] ++ map (\x -> "qualifier" .= x) (maybeToList qualifier)
+    Aeson.object $
+      [ "module" .= mn
+      , "importType" .= ("explicit" :: Text)
+      , "identifiers" .= (identifierFromDeclarationRef <$> refs)
+      ] ++ map ("qualifier" .=) (maybeToList qualifier)
   P.Hiding refs ->
-    object $ [ "module" .= mn
-             , "importType" .= ("hiding" :: Text)
-             , "identifiers" .= (identifierFromDeclarationRef <$> refs)
-             ] ++ map (\x -> "qualifier" .= x) (maybeToList qualifier)
+    Aeson.object $
+      [ "module" .= mn
+      , "importType" .= ("hiding" :: Text)
+      , "identifiers" .= (identifierFromDeclarationRef <$> refs)
+      ] ++ map ("qualifier" .=) (maybeToList qualifier)
 
 -- | Denotes the different namespaces a name in PureScript can reside in.
-data IdeNamespace = IdeNSValue | IdeNSType | IdeNSKind | IdeNSModule
+data IdeNamespace = IdeNSValue | IdeNSType | IdeNSModule
   deriving (Show, Eq, Ord, Generic, NFData)
 
 instance FromJSON IdeNamespace where
-  parseJSON (String s) = case s of
+  parseJSON = Aeson.withText "Namespace" $ \case
     "value" -> pure IdeNSValue
     "type" -> pure IdeNSType
-    "kind" -> pure IdeNSKind
     "module" -> pure IdeNSModule
-    _       -> mzero
-  parseJSON _ = mzero
+    s -> fail ("Unknown namespace: " <> show s)
 
 -- | A name tagged with a namespace
 data IdeNamespaced = IdeNamespaced IdeNamespace Text
diff --git a/src/Language/PureScript/Ide/Usage.hs b/src/Language/PureScript/Ide/Usage.hs
--- a/src/Language/PureScript/Ide/Usage.hs
+++ b/src/Language/PureScript/Ide/Usage.hs
@@ -6,15 +6,15 @@
   , findUsages
   ) where
 
-import           Protolude hiding (moduleName)
+import Protolude hiding (moduleName)
 
-import qualified Data.Map as Map
-import qualified Data.Set as Set
-import qualified Language.PureScript as P
-import           Language.PureScript.Ide.State (getAllModules, getFileState)
-import           Language.PureScript.Ide.Types
-import           Language.PureScript.Ide.Util
-import           Lens.Micro.Platform (preview)
+import Control.Lens (preview)
+import Data.Map qualified as Map
+import Data.Set qualified as Set
+import Language.PureScript qualified as P
+import Language.PureScript.Ide.State (getAllModules, getFileState)
+import Language.PureScript.Ide.Types
+import Language.PureScript.Ide.Util (identifierFromIdeDeclaration, namespaceForDeclaration)
 
 -- |
 -- How we find usages, given an IdeDeclaration and the module it was defined in:
@@ -25,7 +25,7 @@
 -- module.
 -- 3. Apply the collected search specifications and collect the results
 findUsages
-  :: (MonadIO m, Ide m)
+  :: Ide m
   => IdeDeclaration
   -> P.ModuleName
   -> m (ModuleMap (NonEmpty P.SourceSpan))
@@ -67,7 +67,7 @@
     go = foldMap isImporting . P.getModuleDeclarations
 
     isImporting d = case d of
-      P.ImportDeclaration _ mn' it qual | mn == mn' -> P.Qualified qual <$> case it of
+      P.ImportDeclaration _ mn' it qual | mn == mn' -> P.Qualified (P.byMaybeModuleName qual) <$> case it of
         P.Implicit -> pure declaration
         P.Explicit refs
           | any (declaration `matchesRef`) refs -> pure declaration
@@ -109,9 +109,6 @@
   IdeDeclTypeOperator typeOperator -> case ref of
     P.TypeOpRef _ opName -> opName == _ideTypeOpName typeOperator
     _ -> False
-  IdeDeclKind kind -> case ref of
-    P.KindRef _ kindName -> kindName == kind
-    _ -> False
   IdeDeclModule m -> case ref of
     P.ModuleRef _ mn -> m == mn
     _ -> False
@@ -123,7 +120,7 @@
   -> ModuleMap (NonEmpty Search)
 eligibleModules query@(moduleName, declaration) decls modules =
   let
-    searchDefiningModule = P.Qualified Nothing declaration :| []
+    searchDefiningModule = P.Qualified P.ByNullSourcePos declaration :| []
   in
     Map.insert moduleName searchDefiningModule $
       foldMap (directDependants declaration modules) (moduleName :| findReexportingModules query decls)
diff --git a/src/Language/PureScript/Ide/Util.hs b/src/Language/PureScript/Ide/Util.hs
--- a/src/Language/PureScript/Ide/Util.hs
+++ b/src/Language/PureScript/Ide/Util.hs
@@ -29,19 +29,20 @@
   , module Language.PureScript.Ide.Logging
   ) where
 
-import           Protolude                           hiding (decodeUtf8,
+import Protolude                           hiding (decodeUtf8,
                                                       encodeUtf8, to)
 
-import           Data.Aeson
-import qualified Data.Text.Lazy                      as TL
-import           Data.Text.Lazy.Encoding             as TLE
-import qualified Language.PureScript                 as P
-import           Language.PureScript.Ide.Error       (IdeError(..))
-import           Language.PureScript.Ide.Logging
-import           Language.PureScript.Ide.Types
-import           Lens.Micro.Platform                 hiding ((&))
-import           System.IO.UTF8                      (readUTF8FileT)
-import           System.Directory                    (makeAbsolute)
+import Control.Lens (Getting, to, (^.))
+import Data.Aeson (FromJSON, ToJSON, eitherDecode, encode)
+import Data.Text qualified as T
+import Data.Text.Lazy qualified as TL
+import Data.Text.Lazy.Encoding             as TLE
+import Language.PureScript qualified as P
+import Language.PureScript.Ide.Error (IdeError(..))
+import Language.PureScript.Ide.Logging
+import Language.PureScript.Ide.Types (IdeDeclaration(..), IdeDeclarationAnn(..), IdeNamespace(..), Match(..), emptyAnn, ideDtorName, ideSynonymName, ideTCName, ideTypeName, ideTypeOpName, ideValueIdent, ideValueOpName)
+import System.IO.UTF8 (readUTF8FileT)
+import System.Directory (makeAbsolute)
 
 identifierFromIdeDeclaration :: IdeDeclaration -> Text
 identifierFromIdeDeclaration d = case d of
@@ -52,7 +53,6 @@
   IdeDeclTypeClass tc -> tc ^. ideTCName . properNameT
   IdeDeclValueOperator op -> op ^. ideValueOpName & P.runOpName
   IdeDeclTypeOperator op -> op ^. ideTypeOpName & P.runOpName
-  IdeDeclKind name -> P.runProperName name
   IdeDeclModule name -> P.runModuleName name
 
 namespaceForDeclaration :: IdeDeclaration -> IdeNamespace
@@ -64,7 +64,6 @@
   IdeDeclTypeClass _ -> IdeNSType
   IdeDeclValueOperator _ -> IdeNSValue
   IdeDeclTypeOperator _ -> IdeNSType
-  IdeDeclKind _ -> IdeNSKind
   IdeDeclModule _ -> IdeNSModule
 
 discardAnn :: IdeDeclarationAnn -> IdeDeclaration
@@ -78,19 +77,19 @@
 
 valueOperatorAliasT
   :: P.Qualified (Either P.Ident (P.ProperName 'P.ConstructorName)) -> Text
-valueOperatorAliasT i =
-  P.showQualified (either P.runIdent P.runProperName) i
+valueOperatorAliasT =
+  P.showQualified $ either P.runIdent P.runProperName
 
 typeOperatorAliasT
   :: P.Qualified (P.ProperName 'P.TypeName) -> Text
-typeOperatorAliasT i =
-  P.showQualified P.runProperName i
+typeOperatorAliasT =
+  P.showQualified P.runProperName
 
 encodeT :: (ToJSON a) => a -> Text
 encodeT = TL.toStrict . TLE.decodeUtf8 . encode
 
-decodeT :: (FromJSON a) => Text -> Maybe a
-decodeT = decode . TLE.encodeUtf8 . TL.fromStrict
+decodeT :: (FromJSON a) => Text -> Either Text a
+decodeT = first T.pack . eitherDecode . TLE.encodeUtf8 . TL.fromStrict
 
 properNameT :: Getting r (P.ProperName a) Text
 properNameT = to P.runProperName
diff --git a/src/Language/PureScript/Ide/Watcher.hs b/src/Language/PureScript/Ide/Watcher.hs
deleted file mode 100644
--- a/src/Language/PureScript/Ide/Watcher.hs
+++ /dev/null
@@ -1,56 +0,0 @@
-{-# LANGUAGE PackageImports #-}
------------------------------------------------------------------------------
---
--- Module      : Language.PureScript.Ide.Watcher
--- Description : File watcher for externs files
--- Copyright   : Christoph Hegemann 2016
--- License     : MIT (http://opensource.org/licenses/MIT)
---
--- Maintainer  : Christoph Hegemann <christoph.hegemann1337@gmail.com>
--- Stability   : experimental
---
--- |
--- File watcher for externs files
------------------------------------------------------------------------------
-
-module Language.PureScript.Ide.Watcher
- ( watcher
- ) where
-
-import                Protolude
-
-import                Control.Concurrent.STM
-import "monad-logger" Control.Monad.Logger
-import                Language.PureScript.Ide.Externs
-import                Language.PureScript.Ide.State
-import                Language.PureScript.Ide.Types
-import                Language.PureScript.Ide.Util
-import                System.FSNotify
-import                System.FilePath
-
--- | Reloads an ExternsFile from Disc. If the Event indicates the ExternsFile
--- was deleted we don't do anything.
-reloadFile :: IdeLogLevel -> TVar IdeState -> Event -> IO ()
-reloadFile _ _ Removed{} = pure ()
-reloadFile logLevel ref ev = runLogger logLevel $ do
-  let fp = eventPath ev
-  ef' <- runExceptT (readExternFile fp)
-  case ef' of
-    Left err ->
-      logErrorN ("Failed to reload file at: " <> toS fp <> " with error: " <> show err)
-    Right ef -> do
-      lift $ void $ atomically (insertExternsSTM ref ef *> populateVolatileStateSTM ref)
-      logDebugN ("Reloaded File at: " <> toS fp)
-
--- | Installs filewatchers for the given directory and reloads ExternsFiles when
--- they change on disc
-watcher :: Bool -> IdeLogLevel -> TVar IdeState -> FilePath -> IO ()
-watcher polling logLevel stateVar fp =
-  withManagerConf
-    (defaultConfig { confDebounce = NoDebounce
-                   , confUsePolling = polling
-                   }) $ \mgr -> do
-      _ <- watchTree mgr fp
-        (\ev -> takeFileName (eventPath ev) == "externs.json")
-        (reloadFile logLevel stateVar)
-      forever (threadDelay 100000)
diff --git a/src/Language/PureScript/Interactive.hs b/src/Language/PureScript/Interactive.hs
--- a/src/Language/PureScript/Interactive.hs
+++ b/src/Language/PureScript/Interactive.hs
@@ -9,40 +9,39 @@
   , runMake
   ) where
 
-import           Prelude ()
-import           Prelude.Compat
-import           Protolude (ordNub)
+import Prelude
+import Protolude (ordNub)
 
-import           Data.List (sort, find, foldl')
-import           Data.Maybe (fromMaybe, mapMaybe)
-import qualified Data.Map as M
-import qualified Data.Set as S
-import           Data.Text (Text)
-import qualified Data.Text as T
+import Data.List (sort, find, foldl')
+import Data.Maybe (fromMaybe, mapMaybe)
+import Data.Map qualified as M
+import Data.Set qualified as S
+import Data.Text (Text)
+import Data.Text qualified as T
 
-import           Control.Monad.IO.Class (MonadIO, liftIO)
-import           Control.Monad.State.Class
-import           Control.Monad.Reader.Class
-import           Control.Monad.Trans.Except (ExceptT(..), runExceptT)
-import           Control.Monad.Trans.State.Strict (StateT, runStateT, evalStateT)
-import           Control.Monad.Writer.Strict (Writer(), runWriter)
+import Control.Monad.IO.Class (MonadIO, liftIO)
+import Control.Monad.State.Class (MonadState(..), gets, modify)
+import Control.Monad.Reader.Class (MonadReader, asks)
+import Control.Monad.Trans.Except (ExceptT(..), runExceptT)
+import Control.Monad.Trans.State.Strict (StateT, runStateT, evalStateT)
+import Control.Monad.Writer.Strict (Writer(), runWriter)
 
-import qualified Language.PureScript as P
-import qualified Language.PureScript.CST as CST
-import qualified Language.PureScript.Names as N
-import qualified Language.PureScript.Constants as C
+import Language.PureScript qualified as P
+import Language.PureScript.CST qualified as CST
+import Language.PureScript.Names qualified as N
+import Language.PureScript.Constants.Prim qualified as C
 
-import           Language.PureScript.Interactive.Completion   as Interactive
-import           Language.PureScript.Interactive.IO           as Interactive
-import           Language.PureScript.Interactive.Message      as Interactive
-import           Language.PureScript.Interactive.Module       as Interactive
-import           Language.PureScript.Interactive.Parser       as Interactive
-import           Language.PureScript.Interactive.Printer      as Interactive
-import           Language.PureScript.Interactive.Types        as Interactive
+import Language.PureScript.Interactive.Completion   as Interactive
+import Language.PureScript.Interactive.IO           as Interactive
+import Language.PureScript.Interactive.Message      as Interactive
+import Language.PureScript.Interactive.Module       as Interactive
+import Language.PureScript.Interactive.Parser       as Interactive
+import Language.PureScript.Interactive.Printer      as Interactive
+import Language.PureScript.Interactive.Types        as Interactive
 
-import           System.Directory (getCurrentDirectory)
-import           System.FilePath ((</>))
-import           System.FilePath.Glob (glob)
+import System.Directory (getCurrentDirectory)
+import System.FilePath ((</>))
+import System.FilePath.Glob (glob)
 
 -- | Pretty-print errors
 printErrors :: MonadIO m => P.MultipleErrors -> m ()
@@ -179,7 +178,7 @@
 
 -- | Show actual loaded modules in psci.
 handleShowLoadedModules
-  :: (MonadState PSCiState m, MonadIO m)
+  :: MonadState PSCiState m
   => (String -> m ())
   -> m ()
 handleShowLoadedModules print' = do
@@ -190,7 +189,7 @@
 
 -- | Show the imported modules in psci.
 handleShowImportedModules
-  :: (MonadState PSCiState m, MonadIO m)
+  :: MonadState PSCiState m
   => (String -> m ())
   -> m ()
 handleShowImportedModules print' = do
@@ -218,12 +217,12 @@
     Just $ N.showOp op
   showRef (P.TypeClassRef _ pn) =
     Just $ "class " <> N.runProperName pn
-  showRef (P.TypeInstanceRef _ ident) =
+  showRef (P.TypeInstanceRef _ ident P.UserNamed) =
     Just $ N.runIdent ident
+  showRef (P.TypeInstanceRef _ _ P.CompilerNamed) =
+    Nothing
   showRef (P.ModuleRef _ name) =
     Just $ "module " <> N.runModuleName name
-  showRef (P.KindRef _ pn) =
-    Just $ "kind " <> N.runProperName pn
   showRef (P.ReExportRef _ _ _) =
     Nothing
 
@@ -231,7 +230,7 @@
   commaList = T.intercalate ", "
 
 handleShowPrint
-  :: (MonadState PSCiState m, MonadIO m)
+  :: MonadState PSCiState m
   => (String -> m ())
   -> m ()
 handleShowPrint print' = do
@@ -274,7 +273,7 @@
   case e of
     Left errs -> printErrors errs
     Right (_, env') ->
-      case M.lookup (P.mkQualified (P.Ident "it") (P.ModuleName [P.ProperName "$PSCI"])) (P.names env') of
+      case M.lookup (P.mkQualified (P.Ident "it") (P.ModuleName "$PSCI")) (P.names env') of
         Just (ty, _, _) -> print' . P.prettyPrintType maxBound $ ty
         Nothing -> print' "Could not find type"
 
@@ -287,26 +286,26 @@
 handleKindOf print' typ = do
   st <- get
   let m = createTemporaryModuleForKind st typ
-      mName = P.ModuleName [P.ProperName "$PSCI"]
+      mName = P.ModuleName "$PSCI"
   e <- liftIO . runMake $ rebuild (map snd (psciLoadedExterns st)) m
   case e of
     Left errs -> printErrors errs
     Right (_, env') ->
-      case M.lookup (P.Qualified (Just mName) $ P.ProperName "IT") (P.typeSynonyms env') of
+      case M.lookup (P.Qualified (P.ByModuleName mName) $ P.ProperName "IT") (P.typeSynonyms env') of
         Just (_, typ') -> do
           let chk = (P.emptyCheckState env') { P.checkCurrentModule = Just mName }
-              k   = check (P.kindOf typ') chk
+              k   = check (snd <$> P.kindOf typ') chk
 
               check :: StateT P.CheckState (ExceptT P.MultipleErrors (Writer P.MultipleErrors)) a -> P.CheckState -> Either P.MultipleErrors (a, P.CheckState)
               check sew = fst . runWriter . runExceptT . runStateT sew
           case k of
             Left err        -> printErrors err
-            Right (kind, _) -> print' . T.unpack . P.prettyPrintKind $ kind
+            Right (kind, _) -> print' . P.prettyPrintType 1024 $ kind
         Nothing -> print' "Could not find kind"
 
 -- | Browse a module and displays its signature
 handleBrowse
-  :: (MonadReader PSCiConfig m, MonadState PSCiState m, MonadIO m)
+  :: (MonadReader PSCiConfig m, MonadState PSCiState m)
   => (String -> m ())
   -> P.ModuleName
   -> m ()
diff --git a/src/Language/PureScript/Interactive/Completion.hs b/src/Language/PureScript/Interactive/Completion.hs
--- a/src/Language/PureScript/Interactive/Completion.hs
+++ b/src/Language/PureScript/Interactive/Completion.hs
@@ -6,20 +6,20 @@
   , formatCompletions
   ) where
 
-import Prelude.Compat
+import Prelude
 import Protolude (ordNub)
 
-import           Control.Monad.IO.Class (MonadIO(..))
-import           Control.Monad.State.Class (MonadState(..))
-import           Control.Monad.Trans.Reader (asks, runReaderT, ReaderT)
-import           Data.List (nub, isPrefixOf, isInfixOf, isSuffixOf, sortBy, stripPrefix)
-import           Data.Map (keys)
-import           Data.Maybe (mapMaybe)
-import qualified Data.Text as T
-import qualified Language.PureScript as P
-import qualified Language.PureScript.Interactive.Directive as D
-import           Language.PureScript.Interactive.Types
-import           System.Console.Haskeline
+import Control.Monad.IO.Class (MonadIO(..))
+import Control.Monad.State.Class (MonadState(..))
+import Control.Monad.Trans.Reader (asks, runReaderT, ReaderT)
+import Data.List (nub, isPrefixOf, isInfixOf, isSuffixOf, sortBy, stripPrefix)
+import Data.Map (keys)
+import Data.Maybe (mapMaybe)
+import Data.Text qualified as T
+import Language.PureScript qualified as P
+import Language.PureScript.Interactive.Directive qualified as D
+import Language.PureScript.Interactive.Types (Directive(..), PSCiState, psciExports, psciImports, psciLoadedExterns, replQueryStrings)
+import System.Console.Haskeline (Completion(..), CompletionFunc, completeWordWithPrev, listFiles, simpleCompletion)
 
 -- Completions may read the state, but not modify it.
 type CompletionM = ReaderT PSCiState IO
diff --git a/src/Language/PureScript/Interactive/Directive.hs b/src/Language/PureScript/Interactive/Directive.hs
--- a/src/Language/PureScript/Interactive/Directive.hs
+++ b/src/Language/PureScript/Interactive/Directive.hs
@@ -3,19 +3,13 @@
 --
 module Language.PureScript.Interactive.Directive where
 
-import Prelude.Compat
+import Prelude
 
-import Data.Maybe (fromJust, listToMaybe)
+import Data.Maybe (fromJust)
 import Data.List (isPrefixOf)
 import Data.Tuple (swap)
 
-import Language.PureScript.Interactive.Types
-
--- |
--- List of all avaliable directives.
---
-directives :: [Directive]
-directives = map fst directiveStrings
+import Language.PureScript.Interactive.Types (Directive(..))
 
 -- |
 -- A mapping of directives to the different strings that can be used to invoke
@@ -42,13 +36,7 @@
 directiveStrings' :: [(String, Directive)]
 directiveStrings' = concatMap go directiveStrings
   where
-  go (dir, strs) = map (\s -> (s, dir)) strs
-
--- |
--- List of all directive strings.
---
-strings :: [String]
-strings = concatMap snd directiveStrings
+  go (dir, strs) = map (, dir) strs
 
 -- |
 -- Returns all possible string representations of a directive.
@@ -76,9 +64,6 @@
 
 directiveStringsFor :: String -> [String]
 directiveStringsFor = map snd . directivesFor'
-
-parseDirective :: String -> Maybe Directive
-parseDirective = listToMaybe . directivesFor
 
 -- |
 -- The help menu.
diff --git a/src/Language/PureScript/Interactive/IO.hs b/src/Language/PureScript/Interactive/IO.hs
--- a/src/Language/PureScript/Interactive/IO.hs
+++ b/src/Language/PureScript/Interactive/IO.hs
@@ -1,13 +1,25 @@
-module Language.PureScript.Interactive.IO (findNodeProcess, getHistoryFilename) where
+{-# LANGUAGE TypeApplications #-}
 
-import Prelude.Compat
+module Language.PureScript.Interactive.IO (findNodeProcess, readNodeProcessWithExitCode, getHistoryFilename) where
 
-import Control.Monad (msum)
+import Prelude
+
+import Control.Monad (msum, void)
+import Control.Monad.Error.Class (throwError)
+import Control.Monad.Trans.Class (lift)
+import Control.Monad.Trans.Except (ExceptT(..), runExceptT)
 import Control.Monad.Trans.Maybe (MaybeT(..), runMaybeT)
+import Data.Functor ((<&>))
+import Data.List (isInfixOf)
 import System.Directory (XdgDirectory (..), createDirectoryIfMissing,
                          getAppUserDataDirectory, getXdgDirectory,
                          findExecutable, doesFileExist)
+import System.Exit (ExitCode(ExitFailure, ExitSuccess))
 import System.FilePath (takeDirectory, (</>))
+import System.Process (readProcessWithExitCode)
+import Text.Parsec ((<?>), many1, parse, sepBy)
+import Text.Parsec.Char (char, digit)
+import Protolude (note)
 
 mkdirp :: FilePath -> IO ()
 mkdirp = createDirectoryIfMissing True . takeDirectory
@@ -21,9 +33,42 @@
 -- Locates the node executable.
 -- Checks for either @nodejs@ or @node@.
 --
-findNodeProcess :: IO (Maybe String)
-findNodeProcess = onFirstFileMatching findExecutable names
-  where names = ["nodejs", "node"]
+findNodeProcess :: IO (Either String String)
+findNodeProcess = onFirstFileMatching findExecutable ["nodejs", "node"] <&>
+  note "Could not find Node.js. Do you have Node.js installed and available in your PATH?"
+
+findNodeVersion :: String -> IO (Maybe String)
+findNodeVersion node = do
+  result <- readProcessWithExitCode node ["--version"] ""
+  return $ case result of
+    (ExitSuccess, version, _) -> Just version
+    (ExitFailure _, _, _) -> Nothing
+
+readNodeProcessWithExitCode :: Maybe FilePath -> [String] -> String -> IO (Either String (ExitCode, String, String))
+readNodeProcessWithExitCode nodePath nodeArgs stdin = runExceptT $ do
+  process <- maybe (ExceptT findNodeProcess) pure nodePath
+  (major, _, _) <- lift (findNodeVersion process) >>= \case
+    Nothing -> throwError "Could not find Node.js version."
+    Just version -> do
+      let semver = do
+            void $ char 'v'
+            major : minor : patch : _ <- fmap (read @Int) (many1 digit) `sepBy` void (char '.')
+            pure (major, minor, patch)
+      case parse (semver <?> "Could not parse Node.js version.") "" version of
+        Left err -> throwError $ show err
+        Right (major, minor, patch)
+          | major < 12 -> throwError $ "Unsupported Node.js version " <> show major <> ". Required Node.js version >=12."
+          | otherwise -> pure (major, minor, patch)
+  let nodeArgs' = if major < 13 then "--experimental-modules" : nodeArgs else nodeArgs
+  lift (readProcessWithExitCode process nodeArgs' stdin) <&> \case
+    (ExitSuccess, out, err) ->
+      (ExitSuccess, out, censorExperimentalWarnings err)
+    (ExitFailure code, out, err) ->
+      (ExitFailure code, out, err)
+
+censorExperimentalWarnings :: String -> String
+censorExperimentalWarnings =
+  unlines . filter (not . ("ExperimentalWarning" `isInfixOf`)) . lines
 
 -- |
 -- Grabs the filename where the history is stored.
diff --git a/src/Language/PureScript/Interactive/Message.hs b/src/Language/PureScript/Interactive/Message.hs
--- a/src/Language/PureScript/Interactive/Message.hs
+++ b/src/Language/PureScript/Interactive/Message.hs
@@ -1,12 +1,12 @@
 module Language.PureScript.Interactive.Message where
 
-import           Prelude.Compat
+import Prelude
 
-import           Data.List (intercalate)
-import           Data.Version (showVersion)
-import qualified Paths_purescript as Paths
-import qualified Language.PureScript.Interactive.Directive as D
-import           Language.PureScript.Interactive.Types
+import Data.List (intercalate)
+import Data.Version (showVersion)
+import Paths_purescript qualified as Paths
+import Language.PureScript.Interactive.Directive qualified as D
+import Language.PureScript.Interactive.Types (Directive)
 
 -- Messages
 
diff --git a/src/Language/PureScript/Interactive/Module.hs b/src/Language/PureScript/Interactive/Module.hs
--- a/src/Language/PureScript/Interactive/Module.hs
+++ b/src/Language/PureScript/Interactive/Module.hs
@@ -1,14 +1,13 @@
 module Language.PureScript.Interactive.Module where
 
-import           Prelude.Compat
+import Prelude
 
-import           Control.Monad
-import qualified Language.PureScript as P
-import qualified Language.PureScript.CST as CST
-import           Language.PureScript.Interactive.Types
-import           System.Directory (getCurrentDirectory)
-import           System.FilePath (pathSeparator, makeRelative)
-import           System.IO.UTF8 (readUTF8FileT)
+import Language.PureScript qualified as P
+import Language.PureScript.CST qualified as CST
+import Language.PureScript.Interactive.Types (ImportedModule, PSCiState, initialInteractivePrint, psciImportedModules, psciInteractivePrint, psciLetBindings)
+import System.Directory (getCurrentDirectory)
+import System.FilePath (pathSeparator, makeRelative)
+import System.IO.UTF8 (readUTF8FilesT)
 
 -- * Support Module
 
@@ -18,27 +17,16 @@
 
 -- | Checks if the Console module is defined
 supportModuleIsDefined :: [P.ModuleName] -> Bool
-supportModuleIsDefined = any ((== supportModuleName))
+supportModuleIsDefined = elem supportModuleName
 
 -- * Module Management
 
--- | Loads a file for use with imports.
-loadModule :: FilePath -> IO (Either String [P.Module])
-loadModule filename = do
-  pwd <- getCurrentDirectory
-  content <- readUTF8FileT filename
-  return $
-    either (Left . P.prettyPrintMultipleErrors P.defaultPPEOptions {P.ppeRelativeDirectory = pwd}) (Right . map snd) $
-      CST.parseFromFiles id [(filename, content)]
-
 -- | Load all modules.
 loadAllModules :: [FilePath] -> IO (Either P.MultipleErrors [(FilePath, P.Module)])
 loadAllModules files = do
   pwd <- getCurrentDirectory
-  filesAndContent <- forM files $ \filename -> do
-    content <- readUTF8FileT filename
-    return (filename, content)
-  return $ CST.parseFromFiles (makeRelative pwd) filesAndContent
+  filesAndContent <- readUTF8FilesT files
+  return $ fmap (fmap snd) <$> CST.parseFromFiles (makeRelative pwd) filesAndContent
 
 -- |
 -- Makes a volatile module to execute the current expression.
@@ -48,18 +36,18 @@
   let
     imports       = psciImportedModules st
     lets          = psciLetBindings st
-    moduleName    = P.ModuleName [P.ProperName "$PSCI"]
-    effModuleName = P.moduleNameFromString "Effect"
-    effImport     = (effModuleName, P.Implicit, Just (P.ModuleName [P.ProperName "$Effect"]))
-    supportImport = (fst (psciInteractivePrint st), P.Implicit, Just (P.ModuleName [P.ProperName "$Support"]))
-    eval          = P.Var internalSpan (P.Qualified (Just (P.ModuleName [P.ProperName "$Support"])) (snd (psciInteractivePrint st)))
-    mainValue     = P.App eval (P.Var internalSpan (P.Qualified Nothing (P.Ident "it")))
+    moduleName    = P.ModuleName "$PSCI"
+    effModuleName = P.ModuleName "Effect"
+    effImport     = (effModuleName, P.Implicit, Just (P.ModuleName "$Effect"))
+    supportImport = (fst (psciInteractivePrint st), P.Implicit, Just (P.ModuleName "$Support"))
+    eval          = P.Var internalSpan (P.Qualified (P.ByModuleName (P.ModuleName "$Support")) (snd (psciInteractivePrint st)))
+    mainValue     = P.App eval (P.Var internalSpan (P.Qualified P.ByNullSourcePos (P.Ident "it")))
     itDecl        = P.ValueDecl (internalSpan, []) (P.Ident "it") P.Public [] [P.MkUnguarded val]
     typeDecl      = P.TypeDeclaration
                       (P.TypeDeclarationData (internalSpan, []) (P.Ident "$main")
                         (P.srcTypeApp
                           (P.srcTypeConstructor
-                            (P.Qualified (Just (P.ModuleName [P.ProperName "$Effect"])) (P.ProperName "Effect")))
+                            (P.Qualified (P.ByModuleName (P.ModuleName "$Effect")) (P.ProperName "Effect")))
                                   P.srcTypeWildcard))
     mainDecl      = P.ValueDecl (internalSpan, []) (P.Ident "$main") P.Public [] [P.MkUnguarded mainValue]
     decls         = if exec then [itDecl, typeDecl, mainDecl] else [itDecl]
@@ -78,7 +66,7 @@
   let
     imports    = psciImportedModules st
     lets       = psciLetBindings st
-    moduleName = P.ModuleName [P.ProperName "$PSCI"]
+    moduleName = P.ModuleName "$PSCI"
     itDecl     = P.TypeSynonymDeclaration (internalSpan, []) (P.ProperName "IT") [] typ
   in
     P.Module internalSpan [] moduleName ((importDecl `map` imports) ++ lets ++ [itDecl]) Nothing
@@ -90,7 +78,7 @@
 createTemporaryModuleForImports st =
   let
     imports    = psciImportedModules st
-    moduleName = P.ModuleName [P.ProperName "$PSCI"]
+    moduleName = P.ModuleName "$PSCI"
   in
     P.Module internalSpan [] moduleName (importDecl `map` imports) Nothing
 
@@ -101,7 +89,7 @@
 indexFile = ".psci_modules" ++ pathSeparator : "index.js"
 
 modulesDir :: FilePath
-modulesDir = ".psci_modules" ++ pathSeparator : "node_modules"
+modulesDir = ".psci_modules"
 
 internalSpan :: P.SourceSpan
 internalSpan = P.internalModuleSourceSpan "<internal>"
diff --git a/src/Language/PureScript/Interactive/Parser.hs b/src/Language/PureScript/Interactive/Parser.hs
--- a/src/Language/PureScript/Interactive/Parser.hs
+++ b/src/Language/PureScript/Interactive/Parser.hs
@@ -6,27 +6,26 @@
   , parseCommand
   ) where
 
-import           Prelude.Compat hiding (lex)
+import Prelude
 
-import           Control.Monad (join, unless)
-import           Data.Bifunctor (first)
-import           Data.Char (isSpace)
-import           Data.List (intercalate)
-import qualified Data.List.NonEmpty as NE
-import qualified Data.Text as T
-import qualified Language.PureScript as P
-import qualified Language.PureScript.CST as CST
-import qualified Language.PureScript.CST.Monad as CSTM
-import qualified Language.PureScript.CST.Positions as CST
-import qualified Language.PureScript.Interactive.Directive as D
-import           Language.PureScript.Interactive.Types
+import Control.Monad (join)
+import Data.Bifunctor (bimap)
+import Data.Char (isSpace)
+import Data.List (intercalate)
+import Data.List.NonEmpty qualified as NE
+import Data.Text qualified as T
+import Language.PureScript qualified as P
+import Language.PureScript.CST qualified as CST
+import Language.PureScript.CST.Monad qualified as CSTM
+import Language.PureScript.Interactive.Directive qualified as D
+import Language.PureScript.Interactive.Types (Command(..), Directive(..), ReplQuery(..), parseReplQuery, replQueryStrings)
 
 -- |
 -- Parses a limited set of commands from from .purs-repl
 --
 parseDotFile :: FilePath -> String -> Either String [Command]
 parseDotFile filePath =
-  first (CST.prettyPrintError . NE.head)
+  bimap (CST.prettyPrintError . NE.head) snd
     . CST.runTokenParser (parseMany parser <* CSTM.token CST.TokEof)
     . CST.lexTopLevel
     . T.pack
@@ -65,7 +64,7 @@
 
 parseRest :: CST.Parser a -> String -> Either String a
 parseRest p =
-   first (CST.prettyPrintError . NE.head)
+   bimap (CST.prettyPrintError . NE.head) snd
     . CST.runTokenParser (p <* CSTM.token CST.TokEof)
     . CST.lexTopLevel
     . T.pack
@@ -128,28 +127,7 @@
 -- | Any declaration that we don't need a 'special case' parser for
 -- (like import declarations).
 psciDeclaration :: CST.Parser Command
-psciDeclaration = do
-  decl <- CST.parseDeclP
-  let decl' = CST.convertDeclaration "" decl
-  unless (all acceptable decl') $ do
-    let
-      tok  = fst $ CST.declRange decl
-      tok' = T.unpack $ CST.printToken $ CST.tokValue tok
-      msg  = tok' <> "; this kind of declaration is not supported in psci"
-    CSTM.parseFail tok $ CST.ErrLexeme (Just msg) []
-  pure $ Decls decl'
-
-acceptable :: P.Declaration -> Bool
-acceptable P.DataDeclaration{} = True
-acceptable P.TypeSynonymDeclaration{} = True
-acceptable P.ExternDeclaration{} = True
-acceptable P.ExternDataDeclaration{} = True
-acceptable P.TypeClassDeclaration{} = True
-acceptable P.TypeInstanceDeclaration{} = True
-acceptable P.ExternKindDeclaration{} = True
-acceptable P.TypeDeclaration{} = True
-acceptable P.ValueDeclaration{} = True
-acceptable _ = False
+psciDeclaration = Decls . CST.convertDeclaration "" <$> CST.parseDeclP
 
 parseReplQuery' :: String -> Either String ReplQuery
 parseReplQuery' str =
diff --git a/src/Language/PureScript/Interactive/Printer.hs b/src/Language/PureScript/Interactive/Printer.hs
--- a/src/Language/PureScript/Interactive/Printer.hs
+++ b/src/Language/PureScript/Interactive/Printer.hs
@@ -1,14 +1,14 @@
 module Language.PureScript.Interactive.Printer where
 
-import           Prelude.Compat
+import Prelude
 
-import           Data.List (intersperse)
-import qualified Data.Map as M
-import           Data.Maybe (mapMaybe)
-import qualified Data.Text as T
-import           Data.Text (Text)
-import qualified Language.PureScript as P
-import qualified Text.PrettyPrint.Boxes as Box
+import Data.List (intersperse)
+import Data.Map qualified as M
+import Data.Maybe (mapMaybe)
+import Data.Text qualified as T
+import Data.Text (Text)
+import Language.PureScript qualified as P
+import Text.PrettyPrint.Boxes qualified as Box
 
 -- TODO (Christoph): Text version of boxes
 textT :: Text -> Box.Box
@@ -25,6 +25,8 @@
     let moduleNamesIdent = byModuleName names
         moduleTypeClasses = byModuleName typeClasses
         moduleTypes = byModuleName types
+
+        byModuleName :: M.Map (P.Qualified a) b -> [P.Qualified a]
         byModuleName = filter ((== Just moduleName) . P.getQual) . M.keys
 
   in
@@ -61,13 +63,13 @@
                     if null typeClassSuperclasses
                     then Box.text ""
                     else Box.text "("
-                         Box.<> Box.hcat Box.left (intersperse (Box.text ", ") $ map (\(P.Constraint _ (P.Qualified _ pn) lt _) -> textT (P.runProperName pn) Box.<+> Box.hcat Box.left (map (P.typeAtomAsBox maxBound) lt)) typeClassSuperclasses)
+                         Box.<> Box.hcat Box.left (intersperse (Box.text ", ") $ map (\(P.Constraint _ (P.Qualified _ pn) _ lt _) -> textT (P.runProperName pn) Box.<+> Box.hcat Box.left (map (P.typeAtomAsBox maxBound) lt)) typeClassSuperclasses)
                          Box.<> Box.text ") <= "
                 className =
                     textT (P.runProperName name)
                     Box.<> textT (foldMap ((" " <>) . fst) typeClassArguments)
                 classBody =
-                    Box.vcat Box.top (map (\(i, t) -> textT (P.showIdent i <> " ::") Box.<+> P.typeAsBox maxBound t) typeClassMembers)
+                    Box.vcat Box.top (map (\(i, t, _) -> textT (P.showIdent i <> " ::") Box.<+> P.typeAsBox maxBound t) typeClassMembers)
 
             in
               Just $
@@ -79,16 +81,16 @@
 
 
         findType
-          :: M.Map (P.Qualified (P.ProperName 'P.TypeName)) (P.SourceKind, P.TypeKind)
+          :: M.Map (P.Qualified (P.ProperName 'P.TypeName)) (P.SourceType, P.TypeKind)
           -> P.Qualified (P.ProperName 'P.TypeName)
-          -> (P.Qualified (P.ProperName 'P.TypeName), Maybe (P.SourceKind, P.TypeKind))
+          -> (P.Qualified (P.ProperName 'P.TypeName), Maybe (P.SourceType, P.TypeKind))
         findType envTypes name = (name, M.lookup name envTypes)
 
         showType
           :: M.Map (P.Qualified (P.ProperName 'P.ClassName)) P.TypeClassData
           -> M.Map (P.Qualified (P.ProperName 'P.ConstructorName)) (P.DataDeclType, P.ProperName 'P.TypeName, P.SourceType, [P.Ident])
-          -> M.Map (P.Qualified (P.ProperName 'P.TypeName)) ([(Text, Maybe P.SourceKind)], P.SourceType)
-          -> (P.Qualified (P.ProperName 'P.TypeName), Maybe (P.SourceKind, P.TypeKind))
+          -> M.Map (P.Qualified (P.ProperName 'P.TypeName)) ([(Text, Maybe P.SourceType)], P.SourceType)
+          -> (P.Qualified (P.ProperName 'P.TypeName), Maybe (P.SourceType, P.TypeKind))
           -> Maybe Box.Box
         showType typeClassesEnv dataConstructorsEnv typeSynonymsEnv (n@(P.Qualified modul name), typ) =
           case (typ, M.lookup n typeSynonymsEnv) of
@@ -101,7 +103,7 @@
                     textT ("type " <> P.runProperName name <> foldMap ((" " <>) . fst) typevars)
                     Box.// Box.moveRight 2 (Box.text "=" Box.<+> P.typeAsBox maxBound dtType)
 
-            (Just (_, P.DataType typevars pt), _) ->
+            (Just (_, P.DataType _ typevars pt), _) ->
               let prefix =
                     case pt of
                       [(dtProperName,_)] ->
@@ -111,7 +113,7 @@
                       _ -> "data"
 
               in
-                Just $ textT (prefix <> " " <> P.runProperName name <> foldMap ((" " <>) . fst) typevars) Box.// printCons pt
+                Just $ textT (prefix <> " " <> P.runProperName name <> foldMap ((" " <>) . (\(v, _, _) -> v)) typevars) Box.// printCons pt
 
             _ ->
               Nothing
@@ -120,7 +122,7 @@
                     Box.moveRight 2 $
                     Box.vcat Box.left $
                     mapFirstRest (Box.text "=" Box.<+>) (Box.text "|" Box.<+>) $
-                    map (\(cons,idents) -> (textT (P.runProperName cons) Box.<> Box.hcat Box.left (map prettyPrintType idents))) pt
+                    map (\(cons,idents) -> textT (P.runProperName cons) Box.<> Box.hcat Box.left (map prettyPrintType idents)) pt
 
                 prettyPrintType t = Box.text " " Box.<> P.typeAtomAsBox maxBound t
 
diff --git a/src/Language/PureScript/Interactive/Types.hs b/src/Language/PureScript/Interactive/Types.hs
--- a/src/Language/PureScript/Interactive/Types.hs
+++ b/src/Language/PureScript/Interactive/Types.hs
@@ -15,7 +15,6 @@
   , psciLetBindings
   , initialPSCiState
   , initialInteractivePrint
-  , psciImportedModuleNames
   , updateImportedModules
   , updateLoadedExterns
   , updateLets
@@ -29,14 +28,16 @@
   , Directive(..)
   ) where
 
-import Prelude.Compat
+import Prelude
 
-import qualified Language.PureScript as P
-import qualified Data.Map as M
-import           Data.List (foldl')
-import           Language.PureScript.Sugar.Names.Env (nullImports, primExports)
-import           Control.Monad.Trans.Except (runExceptT)
-import           Control.Monad.Writer.Strict (runWriterT)
+import Language.PureScript qualified as P
+import Data.Map qualified as M
+import Data.List (foldl')
+import Language.PureScript.Sugar.Names.Env (nullImports, primExports)
+import Control.Monad (foldM)
+import Control.Monad.Trans.Except (runExceptT)
+import Control.Monad.Trans.State (execStateT)
+import Control.Monad.Writer.Strict (runWriterT)
 
 
 -- | The PSCI configuration.
@@ -107,10 +108,6 @@
 --
 type ImportedModule = (P.ModuleName, P.ImportDeclarationType, Maybe P.ModuleName)
 
-psciImportedModuleNames :: PSCiState -> [P.ModuleName]
-psciImportedModuleNames st =
-  map (\(mn, _, _) -> mn) (psciImportedModules st)
-
 -- * State helpers
 
 -- This function updates the Imports and Exports values in the PSCiState, which are used for
@@ -118,25 +115,27 @@
 -- ensure that completions remain accurate.
 updateImportExports :: PSCiState -> PSCiState
 updateImportExports st@(PSCiState modules lets externs iprint _ _) =
-  case desugarModule [temporaryModule] of
+  case createEnv (map snd externs) >>= flip desugarModule temporaryModule of
     Left _          -> st -- TODO: can this fail and what should we do?
-    Right (env, _)  ->
+    Right env  ->
       case M.lookup temporaryName env of
         Just (_, is, es)  -> PSCiState modules lets externs iprint is es
         _                 -> st -- impossible
   where
 
-  desugarModule :: [P.Module] -> Either P.MultipleErrors (P.Env, [P.Module])
-  desugarModule = runExceptT =<< hushWarnings . P.desugarImportsWithEnv (map snd externs)
-  hushWarnings  = fmap fst . runWriterT
+  desugarModule :: P.Env -> P.Module -> Either P.MultipleErrors P.Env
+  desugarModule e = runExceptT =<< fmap (fst . fst) . runWriterT . flip execStateT (e, mempty) . P.desugarImports
 
+  createEnv :: [P.ExternsFile] -> Either P.MultipleErrors P.Env
+  createEnv = runExceptT =<< fmap fst . runWriterT . foldM P.externsEnv P.primEnv
+
   temporaryName :: P.ModuleName
-  temporaryName = P.ModuleName [P.ProperName "$PSCI"]
+  temporaryName = P.ModuleName "$PSCI"
 
   temporaryModule :: P.Module
   temporaryModule =
     let
-      prim = (P.ModuleName [P.ProperName "Prim"], P.Implicit, Nothing)
+      prim = (P.ModuleName "Prim", P.Implicit, Nothing)
       decl = (importDecl `map` (prim : modules)) ++ lets
     in
       P.Module internalSpan [] temporaryName decl Nothing
diff --git a/src/Language/PureScript/Kinds.hs b/src/Language/PureScript/Kinds.hs
deleted file mode 100644
--- a/src/Language/PureScript/Kinds.hs
+++ /dev/null
@@ -1,183 +0,0 @@
-{-# LANGUAGE FlexibleInstances #-}
-{-# LANGUAGE DeriveGeneric #-}
-{-# LANGUAGE DeriveFoldable #-}
-{-# LANGUAGE DeriveTraversable #-}
-{-# LANGUAGE ScopedTypeVariables #-}
-
-module Language.PureScript.Kinds where
-
-import Prelude.Compat
-
-import GHC.Generics (Generic)
-import Control.Applicative ((<|>))
-import Control.DeepSeq (NFData)
-import Data.Text (Text)
-import Data.Aeson (Value, toJSON, (.=), (.:))
-import Data.Aeson.Types (Parser)
-import qualified Data.Aeson as A
-
-import Language.PureScript.AST.SourcePos
-import Language.PureScript.Names
-
-import Lens.Micro.Platform (Lens', (^.), set)
-
-type SourceKind = Kind SourceAnn
-
--- | The data type of kinds
-data Kind a
-  -- | Unification variable of type Kind
-  = KUnknown a Int
-  -- | Kinds for labelled, unordered rows without duplicates
-  | Row a (Kind a)
-  -- | Function kinds
-  | FunKind a (Kind a) (Kind a)
-  -- | A named kind
-  | NamedKind a (Qualified (ProperName 'KindName))
-  deriving (Show, Generic, Functor, Foldable, Traversable)
-
-instance NFData a => NFData (Kind a)
-
-srcKUnknown :: Int -> SourceKind
-srcKUnknown = KUnknown NullSourceAnn
-
-srcRow :: SourceKind -> SourceKind
-srcRow = Row NullSourceAnn
-
-srcFunKind :: SourceKind -> SourceKind -> SourceKind
-srcFunKind = FunKind NullSourceAnn
-
-srcNamedKind :: Qualified (ProperName 'KindName) -> SourceKind
-srcNamedKind = NamedKind NullSourceAnn
-
-kindToJSON :: forall a. (a -> Value) -> Kind a -> Value
-kindToJSON annToJSON kind =
-  case kind of
-    KUnknown a i ->
-      variant "KUnknown" a i
-    Row a k ->
-      variant "Row" a (go k)
-    FunKind a k1 k2 ->
-      variant "FunKind" a (go k1, go k2)
-    NamedKind a n ->
-      variant "NamedKind" a n
-  where
-  go :: Kind a -> Value
-  go = kindToJSON annToJSON
-
-  variant :: A.ToJSON b => Text -> a -> b -> A.Value
-  variant tag ann contents =
-    A.object
-      [ "tag"        .= tag
-      , "annotation" .= annToJSON ann
-      , "contents"   .= contents
-      ]
-
-instance A.ToJSON a => A.ToJSON (Kind a) where
-  toJSON = kindToJSON toJSON
-
-kindFromJSON :: forall a. Parser a -> (Value -> Parser a) -> Value -> Parser (Kind a)
-kindFromJSON defaultAnn annFromJSON = A.withObject "Kind" $ \o -> do
-  tag <- o .: "tag"
-  a   <- (o .: "annotation" >>= annFromJSON) <|> defaultAnn
-  let
-    contents :: A.FromJSON b => Parser b
-    contents = o .: "contents"
-  case tag of
-    "KUnknown" ->
-      KUnknown a <$> contents
-    "Row" ->
-      Row a <$> (go =<< contents)
-    "FunKind" -> do
-      (b, c) <- contents
-      FunKind a <$> go b <*> go c
-    "NamedKind" ->
-      NamedKind a <$> contents
-    other ->
-      fail $ "Unrecognised tag: " ++ other
-  where
-  go :: Value -> Parser (Kind a)
-  go = kindFromJSON defaultAnn annFromJSON
-
--- These overlapping instances exist to preserve compatability for common
--- instances which have a sensible default for missing annotations.
-instance {-# OVERLAPPING #-} A.FromJSON (Kind SourceAnn) where
-  parseJSON = kindFromJSON (pure NullSourceAnn) A.parseJSON
-
-instance {-# OVERLAPPING #-} A.FromJSON (Kind ()) where
-  parseJSON = kindFromJSON (pure ()) A.parseJSON
-
-instance {-# OVERLAPPING #-} A.FromJSON a => A.FromJSON (Kind a) where
-  parseJSON = kindFromJSON (fail "Invalid annotation") A.parseJSON
-
-everywhereOnKinds :: (Kind a -> Kind a) -> Kind a -> Kind a
-everywhereOnKinds f = go
-  where
-  go (Row ann k1) = f (Row ann (go k1))
-  go (FunKind ann k1 k2) = f (FunKind ann (go k1) (go k2))
-  go other = f other
-
-everywhereOnKindsM :: Monad m => (Kind a -> m (Kind a)) -> Kind a -> m (Kind a)
-everywhereOnKindsM f = go
-  where
-  go (Row ann k1) = (Row ann <$> go k1) >>= f
-  go (FunKind ann k1 k2) = (FunKind ann <$> go k1 <*> go k2) >>= f
-  go other = f other
-
-everythingOnKinds :: (r -> r -> r) -> (Kind a -> r) -> Kind a -> r
-everythingOnKinds (<>.) f = go
-  where
-  go k@(Row _ k1) = f k <>. go k1
-  go k@(FunKind _ k1 k2) = f k <>. go k1 <>. go k2
-  go other = f other
-
-annForKind :: Lens' (Kind a) a
-annForKind k (KUnknown a b) = (\z -> KUnknown z b) <$> k a
-annForKind k (Row a b) = (\z -> Row z b) <$> k a
-annForKind k (FunKind a b c) = (\z -> FunKind z b c) <$> k a
-annForKind k (NamedKind a b) = (\z -> NamedKind z b) <$> k a
-
-getAnnForKind :: Kind a -> a
-getAnnForKind = (^. annForKind)
-
-setAnnForKind :: a -> Kind a -> Kind a
-setAnnForKind = set annForKind
-
-instance Eq (Kind a) where
-  (==) = eqKind
-
-instance Ord (Kind a) where
-  compare = compareKind
-
-eqKind :: Kind a -> Kind b -> Bool
-eqKind (KUnknown _ a) (KUnknown _ a') = a == a'
-eqKind (Row _ a) (Row _ a') = eqKind a a'
-eqKind (FunKind _ a b) (FunKind _ a' b') = eqKind a a' && eqKind b b'
-eqKind (NamedKind _ a) (NamedKind _ a') = a == a'
-eqKind _ _ = False
-
-eqMaybeKind :: Maybe (Kind a) -> Maybe (Kind b) -> Bool
-eqMaybeKind Nothing (Just _) = False
-eqMaybeKind (Just _) Nothing = False
-eqMaybeKind Nothing Nothing = True
-eqMaybeKind (Just a) (Just b) = eqKind a b
-
-compareKind :: Kind a -> Kind b -> Ordering
-compareKind (KUnknown _ a) (KUnknown _ a') = compare a a'
-compareKind (KUnknown {}) _ = LT
-
-compareKind (Row _ a) (Row _ a') = compareKind a a'
-compareKind (Row {}) _ = LT
-compareKind _ (Row {}) = GT
-
-compareKind (FunKind _ a b) (FunKind _ a' b') = compareKind a b <> compareKind a' b'
-compareKind (FunKind {}) _ = LT
-compareKind _ (FunKind {}) = GT
-
-compareKind (NamedKind _ a) (NamedKind _ a') = compare a a'
-compareKind (NamedKind {}) _ = GT
-
-compareMaybeKind :: Maybe (Kind a) -> Maybe (Kind b) -> Ordering
-compareMaybeKind Nothing Nothing = EQ
-compareMaybeKind Nothing (Just _) = LT
-compareMaybeKind (Just _) Nothing = GT
-compareMaybeKind (Just a) (Just b) = compareKind a b
diff --git a/src/Language/PureScript/Label.hs b/src/Language/PureScript/Label.hs
--- a/src/Language/PureScript/Label.hs
+++ b/src/Language/PureScript/Label.hs
@@ -1,14 +1,12 @@
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE DeriveGeneric #-}
-
 module Language.PureScript.Label (Label(..)) where
 
-import Prelude.Compat hiding (lex)
+import Prelude
 import GHC.Generics (Generic)
+import Codec.Serialise (Serialise)
 import Control.DeepSeq (NFData)
 import Data.Monoid ()
 import Data.String (IsString(..))
-import qualified Data.Aeson as A
+import Data.Aeson qualified as A
 
 import Language.PureScript.PSString (PSString)
 
@@ -20,3 +18,4 @@
   deriving (Show, Eq, Ord, IsString, Semigroup, Monoid, A.ToJSON, A.FromJSON, Generic)
 
 instance NFData Label
+instance Serialise Label
diff --git a/src/Language/PureScript/Linter.hs b/src/Language/PureScript/Linter.hs
--- a/src/Language/PureScript/Linter.hs
+++ b/src/Language/PureScript/Linter.hs
@@ -3,37 +3,38 @@
 --
 module Language.PureScript.Linter (lint, module L) where
 
-import Prelude.Compat
+import Prelude
 
-import Control.Monad.Writer.Class
+import Control.Monad.Writer.Class (MonadWriter(..), censor)
 
 import Data.Maybe (mapMaybe)
-import qualified Data.Set as S
+import Data.Set qualified as S
 import Data.Text (Text)
+import Data.Text qualified as Text
+import Control.Monad ((<=<))
 
 import Language.PureScript.AST
-import Language.PureScript.Crash
-import Language.PureScript.Errors
+import Language.PureScript.Errors (MultipleErrors, SimpleErrorMessage(..), addHint, errorMessage')
 import Language.PureScript.Linter.Exhaustive as L
 import Language.PureScript.Linter.Imports as L
-import Language.PureScript.Names
-import Language.PureScript.Types
+import Language.PureScript.Names (Ident(..), Qualified(..), QualifiedBy(..), getIdentName, runIdent)
+import Language.PureScript.Types (Constraint(..), SourceType, Type(..), everythingWithContextOnTypes)
+import Language.PureScript.Constants.Libs qualified as C
 
 -- | Lint the PureScript AST.
 -- |
--- | Right now, this pass only performs a shadowing check.
+-- | Right now, this pass performs a shadowing check and a check for unused bindings.
 lint :: forall m. (MonadWriter MultipleErrors m) => Module -> m ()
-lint (Module _ _ mn ds _) = censor (addHint (ErrorInModule mn)) $ mapM_ lintDeclaration ds
+lint modl@(Module _ _ mn ds _) = do
+  lintUnused modl
+  censor (addHint (ErrorInModule mn)) $ mapM_ lintDeclaration ds
+
   where
   moduleNames :: S.Set ScopedIdent
   moduleNames = S.fromList (map ToplevelIdent (mapMaybe getDeclIdent ds))
 
   getDeclIdent :: Declaration -> Maybe Ident
-  getDeclIdent (ValueDeclaration vd) = Just (valdeclIdent vd)
-  getDeclIdent (ExternDeclaration _ ident _) = Just ident
-  getDeclIdent (TypeInstanceDeclaration _ _ _ ident _ _ _ _) = Just ident
-  getDeclIdent BindingGroupDeclaration{} = internalError "lint: binding groups should not be desugared yet."
-  getDeclIdent _ = Nothing
+  getDeclIdent = getIdentName <=< declName
 
   lintDeclaration :: Declaration -> m ()
   lintDeclaration = tell . f
@@ -85,7 +86,7 @@
     where
 
     step :: S.Set Text -> SourceType -> (S.Set Text, MultipleErrors)
-    step s (ForAll _ tv _ _ _) = bindVar s tv
+    step s (ForAll _ _ tv _ _ _) = bindVar s tv
     step s _ = (s, mempty)
 
     bindVar :: S.Set Text -> Text -> (S.Set Text, MultipleErrors)
@@ -96,12 +97,15 @@
       -- Recursively walk the type and prune used variables from `unused`
       go :: S.Set Text -> SourceType -> (S.Set Text, MultipleErrors)
       go unused (TypeVar _ v) = (S.delete v unused, mempty)
-      go unused (ForAll _ tv _ t1 _) =
-        let (nowUnused, errors) = go (S.insert tv unused) t1
+      go unused (ForAll _ _ tv mbK t1 _) =
+        let (nowUnused, errors)
+              | Just k <- mbK = go unused k `combine` go (S.insert tv unused) t1
+              | otherwise = go (S.insert tv unused) t1
             restoredUnused = if S.member tv unused then S.insert tv nowUnused else nowUnused
             combinedErrors = if S.member tv nowUnused then errors <> errorMessage' ss (UnusedTypeVar tv) else errors
         in (restoredUnused, combinedErrors)
       go unused (TypeApp _ f x) = go unused f `combine` go unused x
+      go unused (KindApp _ f x) = go unused f `combine` go unused x
       go unused (ConstrainedType _ c t1) = foldl combine (unused, mempty) $ map (go unused) (constraintArgs c <> [t1])
       go unused (RCons _ _ t1 rest) = go unused t1 `combine` go unused rest
       go unused (KindedType _ t1 _) = go unused t1
@@ -109,6 +113,7 @@
       go unused (BinaryNoParensType _ t1 t2 t3) = go unused t1 `combine` go unused t2 `combine` go unused t3
       go unused TUnknown{} = (unused, mempty)
       go unused TypeLevelString{} = (unused, mempty)
+      go unused TypeLevelInt{} = (unused, mempty)
       go unused TypeWildcard{} = (unused, mempty)
       go unused TypeConstructor{} = (unused, mempty)
       go unused TypeOp{} = (unused, mempty)
@@ -126,3 +131,169 @@
     | name `S.member` s = (s, errorMessage' ss (mkError name))
     | otherwise = (S.insert name s, mempty)
 
+
+
+lintUnused :: forall m. (MonadWriter MultipleErrors m) => Module -> m ()
+lintUnused (Module modSS _ mn modDecls exports) =
+  censor (addHint (ErrorInModule mn)) $ do
+    topVars <- traverse lintDeclaration modDecls
+    let allVars = S.unions topVars
+    case exports of
+      Nothing ->
+        pure ()
+      Just exports'
+        | any thisModuleRef exports' -> pure ()
+        | otherwise -> do
+          let exportIds = S.fromList $ mapMaybe getValueRef exports'
+              expectedUsedDecls = S.fromList (mapMaybe getDeclIdent $ filter isValueDecl modDecls) `S.difference` exportIds
+              unused = (expectedUsedDecls `S.difference` allVars) `S.difference` rebindable
+              newErrs = mconcat $ map unusedDeclError $ S.toList unused
+          tell newErrs
+          pure ()
+  where
+  unusedDeclError ident = errorMessage' ss $ UnusedDeclaration ident
+    where
+      ss = case filter ((== Just ident) . getDeclIdent) modDecls of
+                  decl:_ -> declSourceSpan decl
+                  _ -> modSS
+
+  thisModuleRef :: DeclarationRef -> Bool
+  thisModuleRef (ModuleRef _ mn') = mn == mn'
+  thisModuleRef _ = False
+
+  rebindable :: S.Set Ident
+  rebindable = S.fromList [ Ident C.S_bind, Ident C.S_discard ]
+
+  getDeclIdent :: Declaration -> Maybe Ident
+  getDeclIdent = getIdentName <=< declName
+
+  lintDeclaration :: Declaration -> m (S.Set Ident)
+  lintDeclaration declToLint = do
+    let (vars, errs) = goDecl declToLint
+    tell errs
+    pure vars
+    where
+
+    goDecl :: Declaration -> (S.Set Ident, MultipleErrors)
+    goDecl (ValueDeclaration vd) =
+        let allExprs = concatMap unguard $ valdeclExpression vd
+            bindNewNames = S.fromList (concatMap binderNamesWithSpans $ valdeclBinders vd)
+            (vars, errs) = removeAndWarn bindNewNames $ mconcat $ map go allExprs
+            errs' = addHint (ErrorInValueDeclaration $ valdeclIdent vd) errs
+        in
+          (vars, errs')
+
+    goDecl (ValueFixityDeclaration _ _ (Qualified _ (Left v)) _) = (S.singleton v, mempty)
+
+    goDecl (TypeInstanceDeclaration _ _ _ _ _ _ _ _ (ExplicitInstance decls)) = mconcat $ map goDecl decls
+    goDecl _ = mempty
+
+    go :: Expr -> (S.Set Ident, MultipleErrors)
+    go (Var _ (Qualified (BySourcePos _) v)) = (S.singleton v, mempty)
+    go (Var _ _) = (S.empty, mempty)
+
+    go (Let _ ds e) = onDecls ds (go e)
+
+    go (Abs binder v1) =
+      let newNames = S.fromList (binderNamesWithSpans binder)
+      in
+      removeAndWarn newNames $ go v1
+
+    go (UnaryMinus _ v1) = go v1
+    go (BinaryNoParens v0 v1 v2) = go v0 <> go v1 <> go v2
+    go (Parens v1) = go v1
+    go (Accessor _ v1) = go v1
+
+    go (ObjectUpdate obj vs) = mconcat (go obj : map (go . snd) vs)
+    go (ObjectUpdateNested obj vs) = go obj <> goTree vs
+      where
+        goTree (PathTree tree) = mconcat $ map (goNode . snd) (runAssocList tree)
+        goNode (Leaf val) = go val
+        goNode (Branch val) = goTree val
+
+    go (App v1 v2) = go v1 <> go v2
+    go (VisibleTypeApp v _) = go v
+    go (Unused v) = go v
+    go (IfThenElse v1 v2 v3) = go v1 <> go v2 <> go v3
+    go (Case vs alts) =
+      let f (CaseAlternative binders gexprs) =
+            let bindNewNames = S.fromList (concatMap binderNamesWithSpans binders)
+                allExprs = concatMap unguard gexprs
+            in
+                removeAndWarn bindNewNames $ mconcat $ map go allExprs
+      in
+      mconcat $ map go vs ++ map f alts
+
+    go (TypedValue _ v1 _) = go v1
+    go (Do _ es) = doElts es Nothing
+    go (Ado _ es v1) = doElts es (Just v1)
+
+    go (Literal _ (ArrayLiteral es)) = mconcat $ map go es
+    go (Literal _ (ObjectLiteral oo)) = mconcat $ map (go . snd) oo
+
+    go (PositionedValue _ _ v1) = go v1
+
+    go (Literal _ _) = mempty
+    go (Op _ _) = mempty
+    go (Constructor _ _) = mempty
+    go (TypeClassDictionary _ _ _) = mempty
+    go (DeferredDictionary _ _) = mempty
+    go (DerivedInstancePlaceholder _ _) = mempty
+    go AnonymousArgument = mempty
+    go (Hole _) = mempty
+
+
+    doElts :: [DoNotationElement] -> Maybe Expr -> (S.Set Ident, MultipleErrors)
+    doElts (DoNotationValue e : rest) v = go e <> doElts rest v
+    doElts (DoNotationBind binder e : rest) v =
+      let bindNewNames = S.fromList (binderNamesWithSpans binder)
+      in go e <> removeAndWarn bindNewNames (doElts rest v)
+
+    doElts (DoNotationLet ds : rest) v = onDecls ds (doElts rest v)
+
+    doElts (PositionedDoNotationElement _ _ e : rest) v = doElts (e : rest) v
+    doElts [] (Just e) = go e <> (rebindable, mempty)
+    doElts [] Nothing = (rebindable, mempty)
+
+    -- (non-recursively, recursively) bound idents in decl
+    declIdents :: Declaration -> (S.Set (SourceSpan, Ident), S.Set (SourceSpan, Ident))
+    declIdents (ValueDecl (ss,_) ident _ _ _) = (S.empty, S.singleton (ss, ident))
+    declIdents (BoundValueDeclaration _ binders _) = (S.fromList $ binderNamesWithSpans binders, S.empty)
+    declIdents _ = (S.empty, S.empty)
+
+    onDecls :: [ Declaration ] -> (S.Set Ident, MultipleErrors) -> (S.Set Ident, MultipleErrors)
+    onDecls ds errs = 
+      let 
+        onDecl d (accErrs, accLetNamesRec) = 
+            let (letNames, recNames) = declIdents d
+                dErrs = underDecl d
+                errs' = dErrs <> removeAndWarn letNames accErrs
+            in
+                (errs', accLetNamesRec <> recNames)
+        (errs'', letNamesRec) = foldr onDecl (errs, S.empty) ds
+      in
+        removeAndWarn letNamesRec errs''
+
+    -- let f x = e  -- check the x in e (but not the f)
+    underDecl (ValueDecl _ _ _ binders gexprs) =
+      let bindNewNames = S.fromList (concatMap binderNamesWithSpans binders)
+          allExprs = concatMap unguard gexprs
+      in
+          removeAndWarn bindNewNames $ foldr1 (<>) $ map go allExprs
+    -- let {x} = e  -- no binding to check inside e
+    underDecl (BoundValueDeclaration _ _ expr) = go expr
+    underDecl _ = (mempty, mempty)
+
+    unguard (GuardedExpr guards expr) = map unguard' guards ++ [expr]
+    unguard' (ConditionGuard ee) = ee
+    unguard' (PatternGuard _ ee) = ee
+
+    removeAndWarn :: S.Set (SourceSpan, Ident) -> (S.Set Ident, MultipleErrors) -> (S.Set Ident, MultipleErrors)
+    removeAndWarn newNamesWithSpans (used, errors) =
+      let newNames = S.map snd newNamesWithSpans
+          filteredUsed = used `S.difference` newNames
+          warnUnused = S.filter (not . Text.isPrefixOf "_" . runIdent) (newNames `S.difference` used)
+          warnUnusedSpans = S.filter (\(_,ident) -> ident `elem` warnUnused) newNamesWithSpans 
+          combinedErrors = if not $ S.null warnUnusedSpans then errors <> mconcat (map (\(ss,ident) -> errorMessage' ss $ UnusedName ident) $ S.toList warnUnusedSpans) else errors
+      in
+        (filteredUsed, combinedErrors)
diff --git a/src/Language/PureScript/Linter/Exhaustive.hs b/src/Language/PureScript/Linter/Exhaustive.hs
--- a/src/Language/PureScript/Linter/Exhaustive.hs
+++ b/src/Language/PureScript/Linter/Exhaustive.hs
@@ -8,34 +8,30 @@
   ( checkExhaustiveExpr
   ) where
 
-import Prelude.Compat
+import Prelude
 import Protolude (ordNub)
 
-import Control.Applicative
+import Control.Applicative (Applicative(..))
 import Control.Arrow (first, second)
 import Control.Monad (unless)
-import Control.Monad.Writer.Class
-import Control.Monad.Supply.Class (MonadSupply, fresh, freshName)
+import Control.Monad.Writer.Class (MonadWriter(..))
 
-import Data.Function (on)
-import Data.List (foldl', sortBy)
+import Data.List (foldl', sortOn)
 import Data.Maybe (fromMaybe)
-import qualified Data.Map as M
-import Data.Text (Text)
-import qualified Data.Text as T
+import Data.Map qualified as M
+import Data.Text qualified as T
 
-import Language.PureScript.AST.Binders
-import Language.PureScript.AST.Declarations
-import Language.PureScript.AST.Literals
-import Language.PureScript.Crash
-import Language.PureScript.Environment
-import Language.PureScript.Errors
-import Language.PureScript.Kinds
+import Language.PureScript.AST.Binders (Binder(..))
+import Language.PureScript.AST.Declarations (CaseAlternative(..), Expr(..), Guard(..), GuardedExpr(..), pattern MkUnguarded, isTrueExpr)
+import Language.PureScript.AST.Literals (Literal(..))
+import Language.PureScript.AST.Traversals (everywhereOnValuesM)
+import Language.PureScript.Crash (internalError)
+import Language.PureScript.Environment (DataDeclType, Environment(..), TypeKind(..))
+import Language.PureScript.Errors (MultipleErrors, pattern NullSourceAnn, SimpleErrorMessage(..), SourceSpan, errorMessage')
 import Language.PureScript.Names as P
 import Language.PureScript.Pretty.Values (prettyPrintBinderAtom)
-import Language.PureScript.Traversals
 import Language.PureScript.Types as P
-import qualified Language.PureScript.Constants as C
+import Language.PureScript.Constants.Prim qualified as C
 
 -- | There are two modes of failure for the redundancy check:
 --
@@ -53,7 +49,7 @@
   -> ModuleName
   -> Qualified (ProperName b)
   -> Qualified (ProperName a)
-qualifyName n defmn qn = Qualified (Just mn) n
+qualifyName n defmn qn = Qualified (ByModuleName mn) n
   where
   (mn, _) = qualify defmn qn
 
@@ -67,11 +63,11 @@
 getConstructors env defmn n = extractConstructors lnte
   where
 
-  extractConstructors :: Maybe (SourceKind, TypeKind) -> [(ProperName 'ConstructorName, [SourceType])]
-  extractConstructors (Just (_, DataType _ pt)) = pt
+  extractConstructors :: Maybe (SourceType, TypeKind) -> [(ProperName 'ConstructorName, [SourceType])]
+  extractConstructors (Just (_, DataType _ _ pt)) = pt
   extractConstructors _ = internalError "Data name not in the scope of the current environment in extractConstructors"
 
-  lnte :: Maybe (SourceKind, TypeKind)
+  lnte :: Maybe (SourceType, TypeKind)
   lnte = M.lookup qpn (types env)
 
   qpn :: Qualified (ProperName 'TypeName)
@@ -134,7 +130,7 @@
   where
   (allMisses, pr) = uncurry (missingCasesMultiple env mn) (unzip binders)
 
-  sortNames = sortBy (compare `on` fst)
+  sortNames = sortOn fst
 
   (sbs, sbs') = (sortNames bs, sortNames bs')
 
@@ -207,7 +203,7 @@
 isExhaustiveGuard :: Environment -> ModuleName -> [GuardedExpr] -> Bool
 isExhaustiveGuard _ _ [MkUnguarded _] = True
 isExhaustiveGuard env moduleName gs   =
-  not . null $ filter (\(GuardedExpr grd _) -> isExhaustive grd) gs
+  any (\(GuardedExpr grd _) -> isExhaustive grd) gs
   where
     isExhaustive :: [Guard] -> Bool
     isExhaustive = all checkGuard
@@ -240,7 +236,7 @@
 --
 checkExhaustive
   :: forall m
-   . (MonadWriter MultipleErrors m, MonadSupply m)
+   . MonadWriter MultipleErrors m
    => SourceSpan
    -> Environment
    -> ModuleName
@@ -258,7 +254,7 @@
     in (missed', ( if null approx
                      then liftA2 (&&) cond nec
                      else Left Incomplete
-                 , if either (const True) id cond
+                 , if and cond
                      then redundant
                      else caseAlternativeBinders ca : redundant
                  )
@@ -270,49 +266,22 @@
        case rr of
          Left Incomplete -> tellIncomplete
          _ -> return ()
-       if null bss
-         then return expr
+       return $ if null bss
+         then expr
          else addPartialConstraint (second null (splitAt 5 bss)) expr
     where
       tellRedundant = tell . errorMessage' ss . uncurry OverlappingPattern . second null . splitAt 5 $ bss'
       tellIncomplete = tell . errorMessage' ss $ IncompleteExhaustivityCheck
 
-  -- | We add a Partial constraint by adding a call to the following identity function:
-  --
-  -- partial :: forall a. Partial => a -> a
+  -- We add a Partial constraint by annotating the expression to have type `Partial => _`.
   --
   -- The binder information is provided so that it can be embedded in the constraint,
   -- and then included in the error message.
-  addPartialConstraint :: ([[Binder]], Bool) -> Expr -> m Expr
-  addPartialConstraint (bss, complete) e = do
-    tyVar <- ("p" <>) . T.pack . show <$> fresh
-    var <- freshName
-    return $
-      Let
-        FromLet
-        [ partial var tyVar ]
-        $ App (Var ss (Qualified Nothing UnusedIdent)) e
+  addPartialConstraint :: ([[Binder]], Bool) -> Expr -> Expr
+  addPartialConstraint (bss, complete) e =
+    TypedValue True e $
+      srcConstrainedType (srcConstraint C.Partial [] [] (Just constraintData)) $ TypeWildcard NullSourceAnn IgnoredWildcard
     where
-      partial :: Text -> Text -> Declaration
-      partial var tyVar =
-        ValueDecl (ss, []) UnusedIdent Private [] $
-        [MkUnguarded
-          (TypedValue
-           True
-           (Abs (VarBinder ss (Ident var)) (Var ss (Qualified Nothing (Ident var))))
-           (ty tyVar))
-        ]
-
-      ty :: Text -> SourceType
-      ty tyVar =
-        srcForAll tyVar
-          Nothing
-          ( srcConstrainedType
-              (srcConstraint C.Partial [] (Just constraintData))
-              $ srcTypeApp (srcTypeApp tyFunction (srcTypeVar tyVar)) (srcTypeVar tyVar)
-          )
-          Nothing
-
       constraintData :: ConstraintData
       constraintData =
         PartialConstraintData (map (map prettyPrintBinderAtom) bss) complete
@@ -322,43 +291,19 @@
 --
 checkExhaustiveExpr
   :: forall m
-   . (MonadWriter MultipleErrors m, MonadSupply m)
+   . MonadWriter MultipleErrors m
    => SourceSpan
    -> Environment
    -> ModuleName
    -> Expr
    -> m Expr
-checkExhaustiveExpr initSS env mn = onExpr initSS
+checkExhaustiveExpr ss env mn = onExpr'
   where
-  onDecl :: Declaration -> m Declaration
-  onDecl (BindingGroupDeclaration bs) = BindingGroupDeclaration <$> mapM (\(sai@((ss, _), _), nk, expr) -> (sai, nk,) <$> onExpr ss expr) bs
-  onDecl (ValueDecl sa@(ss, _) name x y [MkUnguarded e]) =
-     ValueDecl sa name x y . mkUnguardedExpr <$> censor (addHint (ErrorInValueDeclaration name)) (onExpr ss e)
-  onDecl decl = return decl
-
-  onExpr :: SourceSpan -> Expr -> m Expr
-  onExpr _ (UnaryMinus ss e) = UnaryMinus ss <$> onExpr ss e
-  onExpr _ (Literal ss (ArrayLiteral es)) = Literal ss . ArrayLiteral <$> mapM (onExpr ss) es
-  onExpr _ (Literal ss (ObjectLiteral es)) = Literal ss . ObjectLiteral <$> mapM (sndM (onExpr ss)) es
-  onExpr ss (TypeClassDictionaryConstructorApp x e) = TypeClassDictionaryConstructorApp x <$> onExpr ss e
-  onExpr ss (Accessor x e) = Accessor x <$> onExpr ss e
-  onExpr ss (ObjectUpdate o es) = ObjectUpdate <$> onExpr ss o <*> mapM (sndM (onExpr ss)) es
-  onExpr ss (Abs x e) = Abs x <$> onExpr ss e
-  onExpr ss (App e1 e2) = App <$> onExpr ss e1 <*> onExpr ss e2
-  onExpr ss (IfThenElse e1 e2 e3) = IfThenElse <$> onExpr ss e1 <*> onExpr ss e2 <*> onExpr ss e3
-  onExpr ss (Case es cas) = do
-    case' <- Case <$> mapM (onExpr ss) es <*> mapM (onCaseAlternative ss) cas
-    checkExhaustive ss env mn (length es) cas case'
-  onExpr ss (TypedValue x e y) = TypedValue x <$> onExpr ss e <*> pure y
-  onExpr ss (Let w ds e) = Let w <$> mapM onDecl ds <*> onExpr ss e
-  onExpr _ (PositionedValue ss x e) = PositionedValue ss x <$> onExpr ss e
-  onExpr _ expr = return expr
-
-  onCaseAlternative :: SourceSpan -> CaseAlternative -> m CaseAlternative
-  onCaseAlternative ss (CaseAlternative x [MkUnguarded e]) = CaseAlternative x . mkUnguardedExpr <$> onExpr ss e
-  onCaseAlternative ss (CaseAlternative x es) = CaseAlternative x <$> mapM (onGuardedExpr ss) es
-
-  onGuardedExpr :: SourceSpan -> GuardedExpr -> m GuardedExpr
-  onGuardedExpr ss (GuardedExpr guard rhs) = GuardedExpr guard <$> onExpr ss rhs
+  (_, onExpr', _) = everywhereOnValuesM pure onExpr pure
 
-  mkUnguardedExpr = pure . MkUnguarded
+  onExpr :: Expr -> m Expr
+  onExpr e = case e of
+    Case es cas ->
+      checkExhaustive ss env mn (length es) cas e
+    _ ->
+      pure e
diff --git a/src/Language/PureScript/Linter/Imports.hs b/src/Language/PureScript/Linter/Imports.hs
--- a/src/Language/PureScript/Linter/Imports.hs
+++ b/src/Language/PureScript/Linter/Imports.hs
@@ -4,30 +4,30 @@
   , UsedImports()
   ) where
 
-import Prelude.Compat
+import Prelude
 import Protolude (ordNub)
 
 import Control.Monad (join, unless, foldM, (<=<))
-import Control.Monad.Writer.Class
+import Control.Monad.Writer.Class (MonadWriter(..))
 
 import Data.Function (on)
 import Data.Foldable (for_)
-import Data.List (find, intersect, groupBy, sortBy, (\\))
+import Data.List (find, intersect, groupBy, sort, sortOn, (\\))
 import Data.Maybe (mapMaybe)
 import Data.Monoid (Sum(..))
 import Data.Traversable (forM)
-import qualified Data.Text as T
-import qualified Data.Map as M
+import Data.Text qualified as T
+import Data.Map qualified as M
 
-import Language.PureScript.AST.Declarations
-import Language.PureScript.AST.SourcePos
-import Language.PureScript.Crash
-import Language.PureScript.Errors
+import Language.PureScript.AST.Declarations (Declaration(..), DeclarationRef(..), ExportSource, ImportDeclarationType(..), Module(..), getTypeRef, isExplicit)
+import Language.PureScript.AST.SourcePos (SourceSpan)
+import Language.PureScript.Crash (internalError)
+import Language.PureScript.Errors (MultipleErrors, SimpleErrorMessage(..), errorMessage')
 import Language.PureScript.Names
 import Language.PureScript.Sugar.Names.Common (warnDuplicateRefs)
-import Language.PureScript.Sugar.Names.Env
-import Language.PureScript.Sugar.Names.Imports
-import qualified Language.PureScript.Constants as C
+import Language.PureScript.Sugar.Names.Env (Env, Exports(..), ImportRecord(..), Imports(..), envModuleExports, nullImports)
+import Language.PureScript.Sugar.Names.Imports (ImportDef, findImports)
+import Language.PureScript.Constants.Prim qualified as C
 
 -- |
 -- Map of module name to list of imported names from that module which have
@@ -94,7 +94,7 @@
           . map tail
           . filter ((> 1) . length)
           . groupBy ((==) `on` defQual)
-          . sortBy (compare `on` defQual)
+          . sortOn defQual
           $ unwarned
 
     for_ duplicates $ \(pos, _, _) ->
@@ -142,7 +142,7 @@
   -- Checks whether a module is the Prim module - used to suppress any checks
   -- made, as Prim is always implicitly imported.
   isPrim :: ModuleName -> Bool
-  isPrim = (== ModuleName [ProperName C.prim])
+  isPrim = (== C.M_Prim)
 
   -- Creates a map of virtual modules mapped to all the declarations that
   -- import to that module, with the corresponding source span, import type,
@@ -196,13 +196,13 @@
             _ -> Nothing
       | isQualifiedWith k q =
           case importName (head is) of
-            Qualified (Just mn') name -> Just (mn', Qualified mnq (toName name))
+            Qualified (ByModuleName mn') name -> Just (mn', Qualified mnq (toName name))
             _ -> internalError "unqualified name in extractByQual"
     go _ = Nothing
 
 
 -- Replace explicit type refs with data constructor lists from listing the
--- used constructors explicity `T(X, Y, [...])` to `T(..)` for suggestion
+-- used constructors explicitly `T(X, Y, [...])` to `T(..)` for suggestion
 -- message.
 -- Done everywhere when suggesting a completely new explicit imports list, otherwise
 -- maintain the existing form.
@@ -279,7 +279,7 @@
           isMatch _ _ = False
 
   unused :: m Bool
-  unused = warn (UnusedImport mni)
+  unused = warn (UnusedImport mni qualifierName)
 
   warn :: SimpleErrorMessage -> m Bool
   warn err = tell (errorMessage' ss err) >> return True
@@ -300,7 +300,7 @@
   dtys
     :: ModuleName
     -> M.Map (ProperName 'TypeName) ([ProperName 'ConstructorName], ExportSource)
-  dtys mn = maybe M.empty exportedTypes $ envModuleExports <$> mn `M.lookup` env
+  dtys mn = foldMap (exportedTypes . envModuleExports) $ mn `M.lookup` env
 
   dctorsForType
     :: ModuleName
@@ -328,14 +328,13 @@
     valueOpRefs = ValueOpRef ss <$> mapMaybe (getValOpName <=< disqualifyFor qn) names
     typeOpRefs = TypeOpRef ss <$> mapMaybe (getTypeOpName <=< disqualifyFor qn) names
     types = mapMaybe (getTypeName <=< disqualifyFor qn) names
-    kindRefs = KindRef ss <$> mapMaybe (getKindName <=< disqualifyFor qn) names
     dctors = mapMaybe (getDctorName <=< disqualifyFor qn) names
     typesWithDctors = reconstructTypeRefs dctors
     typesWithoutDctors = filter (`M.notMember` typesWithDctors) types
     typesRefs
       = map (flip (TypeRef ss) (Just [])) typesWithoutDctors
       ++ map (\(ty, ds) -> TypeRef ss ty (Just ds)) (M.toList typesWithDctors)
-  in sortBy compDecRef $ classRefs ++ typeOpRefs ++ typesRefs ++ kindRefs ++ valueRefs ++ valueOpRefs
+  in sort $ classRefs ++ typeOpRefs ++ typesRefs ++ valueRefs ++ valueOpRefs
 
   where
 
diff --git a/src/Language/PureScript/Linter/Wildcards.hs b/src/Language/PureScript/Linter/Wildcards.hs
new file mode 100644
--- /dev/null
+++ b/src/Language/PureScript/Linter/Wildcards.hs
@@ -0,0 +1,47 @@
+module Language.PureScript.Linter.Wildcards
+  ( ignoreWildcardsUnderCompleteTypeSignatures
+  ) where
+
+import Protolude hiding (Type)
+
+import Language.PureScript.AST (Binder(..), Declaration, Expr(..), everywhereWithContextOnValues)
+import Language.PureScript.Types (Type(..), WildcardData(..), everythingOnTypes, everywhereOnTypes)
+
+-- |
+-- Replaces `TypeWildcard _ UnnamedWildcard` with
+-- `TypeWildcard _ IgnoredWildcard` in places where we don't want to emit a
+-- warning about wildcards.
+--
+-- The guiding principle here is that a wildcard can be ignored if there is a
+-- complete (wildcard-free) type signature on a binding somewhere between the
+-- type in which the wildcard occurs and the top level of the module. In
+-- particular, this means that top-level signatures containing wildcards are
+-- always warnings, and a top-level signature always prevents wildcards on
+-- inner bindings from emitting warnings.
+--
+ignoreWildcardsUnderCompleteTypeSignatures :: Declaration -> Declaration
+ignoreWildcardsUnderCompleteTypeSignatures = onDecl
+  where
+  (onDecl, _, _, _, _, _) = everywhereWithContextOnValues False (,) handleExpr handleBinder (,) (,) (,)
+
+  handleExpr isCovered = \case
+    tv@(TypedValue chk v ty)
+      | isCovered -> (True, TypedValue chk v $ ignoreWildcards ty)
+      | otherwise -> (isComplete ty, tv)
+    other -> (isCovered, other)
+
+  handleBinder isCovered = \case
+    tb@(TypedBinder ty b)
+      | isCovered -> (True, TypedBinder (ignoreWildcards ty) b)
+      | otherwise -> (isComplete ty, tb)
+    other -> (isCovered, other)
+
+ignoreWildcards :: Type a -> Type a
+ignoreWildcards = everywhereOnTypes $ \case
+  TypeWildcard a UnnamedWildcard -> TypeWildcard a IgnoredWildcard
+  other -> other
+
+isComplete :: Type a -> Bool
+isComplete = everythingOnTypes (&&) $ \case
+  TypeWildcard{} -> False
+  _ -> True
diff --git a/src/Language/PureScript/Make.hs b/src/Language/PureScript/Make.hs
--- a/src/Language/PureScript/Make.hs
+++ b/src/Language/PureScript/Make.hs
@@ -2,70 +2,108 @@
   (
   -- * Make API
   rebuildModule
+  , rebuildModule'
   , make
   , inferForeignModules
   , module Monad
   , module Actions
   ) where
 
-import           Prelude.Compat
+import Prelude
 
-import           Control.Concurrent.Lifted as C
-import           Control.Monad hiding (sequence)
-import           Control.Monad.Error.Class (MonadError(..))
-import           Control.Monad.IO.Class
-import           Control.Monad.Supply
-import           Control.Monad.Trans.Control (MonadBaseControl(..))
-import           Control.Monad.Writer.Class (MonadWriter(..))
-import           Data.Aeson (encode)
-import           Data.Function (on)
-import           Data.Foldable (for_)
-import           Data.List (foldl', sortBy)
-import qualified Data.List.NonEmpty as NEL
-import           Data.Maybe (fromMaybe)
-import qualified Data.Map as M
-import qualified Data.Set as S
-import qualified Data.Text as T
-import           Language.PureScript.AST
-import           Language.PureScript.Crash
-import qualified Language.PureScript.CST as CST
-import qualified Language.PureScript.Docs.Convert as Docs
-import           Language.PureScript.Environment
-import           Language.PureScript.Errors
-import           Language.PureScript.Externs
-import           Language.PureScript.Linter
-import           Language.PureScript.ModuleDependencies
-import           Language.PureScript.Names
-import           Language.PureScript.Renamer
-import           Language.PureScript.Sugar
-import           Language.PureScript.TypeChecker
-import           Language.PureScript.Make.BuildPlan
-import qualified Language.PureScript.Make.BuildPlan as BuildPlan
-import           Language.PureScript.Make.Actions as Actions
-import           Language.PureScript.Make.Monad as Monad
-import qualified Language.PureScript.CoreFn as CF
-import           System.Directory (doesFileExist)
-import           System.FilePath (replaceExtension)
+import Control.Concurrent.Lifted as C
+import Control.DeepSeq (force)
+import Control.Exception.Lifted (onException, bracket_, evaluate)
+import Control.Monad (foldM, unless, when, (<=<))
+import Control.Monad.Base (MonadBase(liftBase))
+import Control.Monad.Error.Class (MonadError(..))
+import Control.Monad.IO.Class (MonadIO(..))
+import Control.Monad.Supply (evalSupplyT, runSupply, runSupplyT)
+import Control.Monad.Trans.Control (MonadBaseControl(..))
+import Control.Monad.Trans.State (runStateT)
+import Control.Monad.Writer.Class (MonadWriter(..), censor)
+import Control.Monad.Writer.Strict (runWriterT)
+import Data.Function (on)
+import Data.Foldable (fold, for_)
+import Data.List (foldl', sortOn)
+import Data.List.NonEmpty qualified as NEL
+import Data.Maybe (fromMaybe)
+import Data.Map qualified as M
+import Data.Set qualified as S
+import Data.Text qualified as T
+import Debug.Trace (traceMarkerIO)
+import Language.PureScript.AST (ErrorMessageHint(..), Module(..), SourceSpan(..), getModuleName, getModuleSourceSpan, importPrim)
+import Language.PureScript.Crash (internalError)
+import Language.PureScript.CST qualified as CST
+import Language.PureScript.Docs.Convert qualified as Docs
+import Language.PureScript.Environment (initEnvironment)
+import Language.PureScript.Errors (MultipleErrors, SimpleErrorMessage(..), addHint, defaultPPEOptions, errorMessage', errorMessage'', prettyPrintMultipleErrors)
+import Language.PureScript.Externs (ExternsFile, applyExternsFileToEnvironment, moduleToExternsFile)
+import Language.PureScript.Linter (Name(..), lint, lintImports)
+import Language.PureScript.ModuleDependencies (DependencyDepth(..), moduleSignature, sortModules)
+import Language.PureScript.Names (ModuleName, isBuiltinModuleName, runModuleName)
+import Language.PureScript.Renamer (renameInModule)
+import Language.PureScript.Sugar (Env, collapseBindingGroups, createBindingGroups, desugar, desugarCaseGuards, externsEnv, primEnv)
+import Language.PureScript.TypeChecker (CheckState(..), emptyCheckState, typeCheckModule)
+import Language.PureScript.Make.BuildPlan (BuildJobResult(..), BuildPlan(..), getResult)
+import Language.PureScript.Make.BuildPlan qualified as BuildPlan
+import Language.PureScript.Make.Cache qualified as Cache
+import Language.PureScript.Make.Actions as Actions
+import Language.PureScript.Make.Monad as Monad
+import Language.PureScript.CoreFn qualified as CF
+import System.Directory (doesFileExist)
+import System.FilePath (replaceExtension)
 
 -- | Rebuild a single module.
 --
 -- This function is used for fast-rebuild workflows (PSCi and psc-ide are examples).
 rebuildModule
   :: forall m
-   . (Monad m, MonadBaseControl IO m, MonadError MultipleErrors m, MonadWriter MultipleErrors m)
+   . (MonadError MultipleErrors m, MonadWriter MultipleErrors m)
   => MakeActions m
   -> [ExternsFile]
   -> Module
   -> m ExternsFile
-rebuildModule MakeActions{..} externs m@(Module _ _ moduleName _ _) = do
-  progress $ CompilingModule moduleName
+rebuildModule actions externs m = do
+  env <- fmap fst . runWriterT $ foldM externsEnv primEnv externs
+  rebuildModule' actions env externs m
+
+rebuildModule'
+  :: forall m
+   . (MonadError MultipleErrors m, MonadWriter MultipleErrors m)
+  => MakeActions m
+  -> Env
+  -> [ExternsFile]
+  -> Module
+  -> m ExternsFile
+rebuildModule' act env ext mdl = rebuildModuleWithIndex act env ext mdl Nothing
+
+rebuildModuleWithIndex
+  :: forall m
+   . (MonadError MultipleErrors m, MonadWriter MultipleErrors m)
+  => MakeActions m
+  -> Env
+  -> [ExternsFile]
+  -> Module
+  -> Maybe (Int, Int)
+  -> m ExternsFile
+rebuildModuleWithIndex MakeActions{..} exEnv externs m@(Module _ _ moduleName _ _) moduleIndex = do
+  progress $ CompilingModule moduleName moduleIndex
   let env = foldl' (flip applyExternsFileToEnvironment) initEnvironment externs
       withPrim = importPrim m
   lint withPrim
+
   ((Module ss coms _ elaborated exps, env'), nextVar) <- runSupplyT 0 $ do
-    desugar externs [withPrim] >>= \case
-      [desugared] -> runCheck' (emptyCheckState env) $ typeCheckModule desugared
-      _ -> internalError "desugar did not return a singleton"
+    (desugared, (exEnv', usedImports)) <- runStateT (desugar externs withPrim) (exEnv, mempty)
+    let modulesExports = (\(_, _, exports) -> exports) <$> exEnv'
+    (checked, CheckState{..}) <- runStateT (typeCheckModule modulesExports desugared) $ emptyCheckState env
+    let usedImports' = foldl' (flip $ \(fromModuleName, newtypeCtorName) ->
+          M.alter (Just . (fmap DctorName newtypeCtorName :) . fold) fromModuleName) usedImports checkConstructorImportsForCoercible
+    -- Imports cannot be linted before type checking because we need to
+    -- known which newtype constructors are used to solve Coercible
+    -- constraints in order to not report them as unused.
+    censor (addHint (ErrorInModule moduleName)) $ lintImports checked exEnv' usedImports'
+    return (checked, checkEnv)
 
   -- desugar case declarations *after* type- and exhaustiveness checking
   -- since pattern guards introduces cases which the exhaustiveness checker
@@ -76,9 +114,9 @@
   regrouped <- createBindingGroups moduleName . collapseBindingGroups $ deguarded
   let mod' = Module ss coms moduleName regrouped exps
       corefn = CF.moduleToCoreFn env' mod'
-      optimized = CF.optimizeCoreFn corefn
-      [renamed] = renameInModules [optimized]
-      exts = moduleToExternsFile mod' env'
+      (optimized, nextVar'') = runSupply nextVar' $ CF.optimizeCoreFn corefn
+      (renamedIdents, renamed) = renameInModule optimized
+      exts = moduleToExternsFile mod' env' renamedIdents
   ffiCodegen renamed
 
   -- It may seem more obvious to write `docs <- Docs.convertModule m env' here,
@@ -88,52 +126,86 @@
   -- a bug in the compiler, which should be reported as such.
   -- 2. We do not want to perform any extra work generating docs unless the
   -- user has asked for docs to be generated.
-  let docs = case Docs.convertModule externs env' m of
+  let docs = case Docs.convertModule externs exEnv env' m of
                Left errs -> internalError $
                  "Failed to produce docs for " ++ T.unpack (runModuleName moduleName)
                  ++ "; details:\n" ++ prettyPrintMultipleErrors defaultPPEOptions errs
                Right d -> d
 
-  evalSupplyT nextVar' . codegen renamed docs . encode $ exts
+  evalSupplyT nextVar'' $ codegen renamed docs exts
   return exts
 
--- | Compiles in "make" mode, compiling each module separately to a @.js@ file and an @externs.json@ file.
+-- | Compiles in "make" mode, compiling each module separately to a @.js@ file and an @externs.cbor@ file.
 --
--- If timestamps have not changed, the externs file can be used to provide the module's types without
--- having to typecheck the module again.
-make :: forall m. (Monad m, MonadBaseControl IO m, MonadError MultipleErrors m, MonadWriter MultipleErrors m)
+-- If timestamps or hashes have not changed, existing externs files can be used to provide upstream modules' types without
+-- having to typecheck those modules again.
+make :: forall m. (MonadBaseControl IO m, MonadError MultipleErrors m, MonadWriter MultipleErrors m)
      => MakeActions m
      -> [CST.PartialResult Module]
      -> m [ExternsFile]
 make ma@MakeActions{..} ms = do
   checkModuleNames
+  cacheDb <- readCacheDb
 
-  (sorted, graph) <- sortModules (moduleSignature . CST.resPartial) ms
+  (sorted, graph) <- sortModules Transitive (moduleSignature . CST.resPartial) ms
 
-  buildPlan <- BuildPlan.construct ma (sorted, graph)
+  (buildPlan, newCacheDb) <- BuildPlan.construct ma cacheDb (sorted, graph)
 
+  -- Limit concurrent module builds to the number of capabilities as
+  -- (by default) inferred from `+RTS -N -RTS` or set explicitly like `-N4`.
+  -- This is to ensure that modules complete fully before moving on, to avoid
+  -- holding excess memory during compilation from modules that were paused
+  -- by the Haskell runtime.
+  capabilities <- getNumCapabilities
+  let concurrency = max 1 capabilities
+  lock <- C.newQSem concurrency
+
   let toBeRebuilt = filter (BuildPlan.needsRebuild buildPlan . getModuleName . CST.resPartial) sorted
+  let totalModuleCount = length toBeRebuilt
   for_ toBeRebuilt $ \m -> fork $ do
     let moduleName = getModuleName . CST.resPartial $ m
     let deps = fromMaybe (internalError "make: module not found in dependency graph.") (lookup moduleName graph)
-    buildModule buildPlan moduleName
+    buildModule lock buildPlan moduleName totalModuleCount
       (spanName . getModuleSourceSpan . CST.resPartial $ m)
-      (importPrim <$> CST.resFull m)
+      (fst $ CST.resFull m)
+      (fmap importPrim . snd $ CST.resFull m)
       (deps `inOrderOf` map (getModuleName . CST.resPartial) sorted)
 
-  -- Wait for all threads to complete, and collect errors.
-  errors <- BuildPlan.collectErrors buildPlan
+      -- Prevent hanging on other modules when there is an internal error
+      -- (the exception is thrown, but other threads waiting on MVars are released)
+      `onException` BuildPlan.markComplete buildPlan moduleName (BuildJobFailed mempty)
 
+  -- Wait for all threads to complete, and collect results (and errors).
+  (failures, successes) <-
+    let
+      splitResults = \case
+        BuildJobSucceeded _ exts ->
+          Right exts
+        BuildJobFailed errs ->
+          Left errs
+        BuildJobSkipped ->
+          Left mempty
+    in
+      M.mapEither splitResults <$> BuildPlan.collectResults buildPlan
+
+  -- Write the updated build cache database to disk
+  writeCacheDb $ Cache.removeModules (M.keysSet failures) newCacheDb
+
+  writePackageJson
+
+  -- If generating docs, also generate them for the Prim modules
+  outputPrimDocs
+
   -- All threads have completed, rethrow any caught errors.
+  let errors = M.elems failures
   unless (null errors) $ throwError (mconcat errors)
 
-  -- Collect all ExternsFiles
-  results <- BuildPlan.collectResults buildPlan
-
   -- Here we return all the ExternsFile in the ordering of the topological sort,
   -- so they can be folded into an Environment. This result is used in the tests
   -- and in PSCI.
-  let lookupResult mn = fromMaybe (internalError "make: module not found in results") (M.lookup mn results)
+  let lookupResult mn =
+        fromMaybe (internalError "make: module not found in results")
+        $ M.lookup mn successes
   return (map (lookupResult . getModuleName . CST.resPartial) sorted)
 
   where
@@ -159,7 +231,7 @@
   -- Find all groups of duplicate values in a list based on a projection.
   findDuplicates :: Ord b => (a -> b) -> [a] -> Maybe [NEL.NonEmpty a]
   findDuplicates f xs =
-    case filter ((> 1) . length) . NEL.groupBy ((==) `on` f) . sortBy (compare `on` f) $ xs of
+    case filter ((> 1) . length) . NEL.groupBy ((==) `on` f) . sortOn f $ xs of
       [] -> Nothing
       xss -> Just xss
 
@@ -167,22 +239,48 @@
   inOrderOf :: (Ord a) => [a] -> [a] -> [a]
   inOrderOf xs ys = let s = S.fromList xs in filter (`S.member` s) ys
 
-  buildModule :: BuildPlan -> ModuleName -> FilePath -> Either (NEL.NonEmpty CST.ParserError) Module -> [ModuleName] -> m ()
-  buildModule buildPlan moduleName fp mres deps = flip catchError (complete Nothing . Just) $ do
-    m <- CST.unwrapParserError fp mres
-    -- We need to wait for dependencies to be built, before checking if the current
-    -- module should be rebuilt, so the first thing to do is to wait on the
-    -- MVars for the module's dependencies.
-    mexterns <- fmap unzip . sequence <$> traverse (getResult buildPlan) deps
+  buildModule :: QSem -> BuildPlan -> ModuleName -> Int -> FilePath -> [CST.ParserWarning] -> Either (NEL.NonEmpty CST.ParserError) Module -> [ModuleName] -> m ()
+  buildModule lock buildPlan moduleName cnt fp pwarnings mres deps = do
+    result <- flip catchError (return . BuildJobFailed) $ do
+      let pwarnings' = CST.toMultipleWarnings fp pwarnings
+      tell pwarnings'
+      m <- CST.unwrapParserError fp mres
+      -- We need to wait for dependencies to be built, before checking if the current
+      -- module should be rebuilt, so the first thing to do is to wait on the
+      -- MVars for the module's dependencies.
+      mexterns <- fmap unzip . sequence <$> traverse (getResult buildPlan) deps
 
-    case mexterns of
-      Just (_, externs) -> do
-        (exts, warnings) <- listen $ rebuildModule ma externs m
-        complete (Just (warnings, exts)) Nothing
-      Nothing -> complete Nothing Nothing
-    where
-    complete :: Maybe (MultipleErrors, ExternsFile) -> Maybe MultipleErrors -> m ()
-    complete = BuildPlan.markComplete buildPlan moduleName
+      case mexterns of
+        Just (_, externs) -> do
+          -- We need to ensure that all dependencies have been included in Env
+          C.modifyMVar_ (bpEnv buildPlan) $ \env -> do
+            let
+              go :: Env -> ModuleName -> m Env
+              go e dep = case lookup dep (zip deps externs) of
+                Just exts
+                  | not (M.member dep e) -> externsEnv e exts
+                _ -> return e
+            foldM go env deps
+          env <- C.readMVar (bpEnv buildPlan)
+          idx <- C.takeMVar (bpIndex buildPlan)
+          C.putMVar (bpIndex buildPlan) (idx + 1)
+
+          -- Bracket all of the per-module work behind the semaphore, including
+          -- forcing the result. This is done to limit concurrency and keep
+          -- memory usage down; see comments above.
+          (exts, warnings) <- bracket_ (C.waitQSem lock) (C.signalQSem lock) $ do
+            -- Eventlog markers for profiling; see debug/eventlog.js
+            liftBase $ traceMarkerIO $ T.unpack (runModuleName moduleName) <> " start"
+            -- Force the externs and warnings to avoid retaining excess module
+            -- data after the module is finished compiling.
+            extsAndWarnings <- evaluate . force <=< listen $ do
+              rebuildModuleWithIndex ma env externs m (Just (idx, cnt))
+            liftBase $ traceMarkerIO $ T.unpack (runModuleName moduleName) <> " end"
+            return extsAndWarnings
+          return $ BuildJobSucceeded (pwarnings' <> warnings) exts
+        Nothing -> return BuildJobSkipped
+
+    BuildPlan.markComplete buildPlan moduleName result
 
 -- | Infer the module name for a module by looking for the same filename with
 -- a .js extension.
diff --git a/src/Language/PureScript/Make/Actions.hs b/src/Language/PureScript/Make/Actions.hs
--- a/src/Language/PureScript/Make/Actions.hs
+++ b/src/Language/PureScript/Make/Actions.hs
@@ -1,58 +1,63 @@
 module Language.PureScript.Make.Actions
   ( MakeActions(..)
   , RebuildPolicy(..)
-  , Externs()
   , ProgressMessage(..)
+  , renderProgressMessage
   , buildMakeActions
   , checkForeignDecls
+  , cacheDbFile
+  , readCacheDb'
+  , writeCacheDb'
+  , ffiCodegen'
   ) where
 
-import           Prelude
+import Prelude
 
-import           Control.Monad hiding (sequence)
-import           Control.Monad.Error.Class (MonadError(..))
-import           Control.Monad.IO.Class
-import           Control.Monad.Reader (asks)
-import           Control.Monad.Supply
-import           Control.Monad.Trans.Class (MonadTrans(..))
-import           Control.Monad.Writer.Class (MonadWriter(..))
-import           Data.Aeson (encode)
-import           Data.Bifunctor (bimap)
-import qualified Data.ByteString.Lazy as B
-import qualified Data.ByteString.Lazy as LB
-import qualified Data.ByteString.Lazy.UTF8 as LBU8
-import           Data.Either (partitionEithers)
-import           Data.Foldable (for_, minimum)
-import qualified Data.List.NonEmpty as NEL
-import qualified Data.Map as M
-import           Data.Maybe (fromMaybe)
-import qualified Data.Set as S
-import qualified Data.Text as T
-import qualified Data.Text.Encoding as TE
-import           Data.Time.Clock (UTCTime)
-import           Data.Version (showVersion)
-import qualified Language.JavaScript.Parser as JS
-import           Language.PureScript.AST
-import qualified Language.PureScript.Bundle as Bundle
-import qualified Language.PureScript.CodeGen.JS as J
-import           Language.PureScript.CodeGen.JS.Printer
-import qualified Language.PureScript.CoreFn as CF
-import qualified Language.PureScript.CoreFn.ToJSON as CFJ
-import qualified Language.PureScript.CoreImp.AST as Imp
-import           Language.PureScript.Crash
-import qualified Language.PureScript.CST as CST
-import qualified Language.PureScript.Docs.Types as Docs
-import           Language.PureScript.Errors
-import           Language.PureScript.Make.Monad
-import           Language.PureScript.Names
-import           Language.PureScript.Names (runModuleName, ModuleName)
-import           Language.PureScript.Options hiding (codegenTargets)
-import           Language.PureScript.Pretty.Common (SMap(..))
-import qualified Paths_purescript as Paths
-import           SourceMap
-import           SourceMap.Types
-import           System.Directory (doesFileExist, getModificationTime, createDirectoryIfMissing, getCurrentDirectory)
-import           System.FilePath ((</>), takeDirectory, makeRelative, splitPath, normalise)
+import Control.Monad (unless, when)
+import Control.Monad.Error.Class (MonadError(..))
+import Control.Monad.IO.Class (MonadIO(..))
+import Control.Monad.Reader (asks)
+import Control.Monad.Supply (SupplyT)
+import Control.Monad.Trans.Class (MonadTrans(..))
+import Control.Monad.Writer.Class (MonadWriter(..))
+import Data.Aeson (Value(String), (.=), object)
+import Data.Bifunctor (bimap, first)
+import Data.Either (partitionEithers)
+import Data.Foldable (for_)
+import Data.List.NonEmpty qualified as NEL
+import Data.Map qualified as M
+import Data.Maybe (fromMaybe, maybeToList)
+import Data.Set qualified as S
+import Data.Text qualified as T
+import Data.Text.IO qualified as TIO
+import Data.Text.Encoding qualified as TE
+import Data.Time.Clock (UTCTime)
+import Data.Version (showVersion)
+import Language.JavaScript.Parser qualified as JS
+import Language.PureScript.AST (SourcePos(..))
+import Language.PureScript.Bundle qualified as Bundle
+import Language.PureScript.CodeGen.JS qualified as J
+import Language.PureScript.CodeGen.JS.Printer (prettyPrintJS, prettyPrintJSWithSourceMaps)
+import Language.PureScript.CoreFn qualified as CF
+import Language.PureScript.CoreFn.ToJSON qualified as CFJ
+import Language.PureScript.Crash (internalError)
+import Language.PureScript.CST qualified as CST
+import Language.PureScript.Docs.Prim qualified as Docs.Prim
+import Language.PureScript.Docs.Types qualified as Docs
+import Language.PureScript.Errors (MultipleErrors, SimpleErrorMessage(..), errorMessage, errorMessage')
+import Language.PureScript.Externs (ExternsFile, externsFileName)
+import Language.PureScript.Make.Monad (Make, copyFile, getTimestamp, getTimestampMaybe, hashFile, makeIO, readExternsFile, readJSONFile, readTextFile, writeCborFile, writeJSONFile, writeTextFile)
+import Language.PureScript.Make.Cache (CacheDb, ContentHash, normaliseForCache)
+import Language.PureScript.Names (Ident(..), ModuleName, runModuleName)
+import Language.PureScript.Options (CodegenTarget(..), Options(..))
+import Language.PureScript.Pretty.Common (SMap(..))
+import Paths_purescript qualified as Paths
+import SourceMap (generate)
+import SourceMap.Types (Mapping(..), Pos(..), SourceMapping(..))
+import System.Directory (getCurrentDirectory)
+import System.FilePath ((</>), makeRelative, splitPath, normalise, splitDirectories)
+import System.FilePath.Posix qualified as Posix
+import System.IO (stderr)
 
 -- | Determines when to rebuild a module
 data RebuildPolicy
@@ -64,16 +69,25 @@
 
 -- | Progress messages from the make process
 data ProgressMessage
-  = CompilingModule ModuleName
+  = CompilingModule ModuleName (Maybe (Int, Int))
   -- ^ Compilation started for the specified module
   deriving (Show, Eq, Ord)
 
--- | Generated code for an externs file.
-type Externs = LB.ByteString
-
 -- | Render a progress message
-renderProgressMessage :: ProgressMessage -> String
-renderProgressMessage (CompilingModule mn) = "Compiling " ++ T.unpack (runModuleName mn)
+renderProgressMessage :: T.Text -> ProgressMessage -> T.Text
+renderProgressMessage infx (CompilingModule mn mi) =
+  T.concat
+    [ renderProgressIndex mi
+    , infx
+    , runModuleName mn
+    ]
+  where
+  renderProgressIndex :: Maybe (Int, Int) -> T.Text
+  renderProgressIndex = maybe "" $ \(start, end) ->
+    let start' = T.pack (show start)
+        end' = T.pack (show end)
+        preSpace = T.replicate (T.length end' - T.length start') " "
+    in "[" <> preSpace <> start' <> " of " <> end' <> "] "
 
 -- | Actions that require implementations when running in "make" mode.
 --
@@ -83,25 +97,71 @@
 --
 -- * The details of how files are read/written etc.
 data MakeActions m = MakeActions
-  { getInputTimestamp :: ModuleName -> m (Either RebuildPolicy (Maybe UTCTime))
-  -- ^ Get the timestamp for the input file(s) for a module. If there are multiple
-  -- files (@.purs@ and foreign files, for example) the timestamp should be for
-  -- the most recently modified file.
+  { getInputTimestampsAndHashes :: ModuleName -> m (Either RebuildPolicy (M.Map FilePath (UTCTime, m ContentHash)))
+  -- ^ Get the timestamps and content hashes for the input files for a module.
+  -- The content hash is returned as a monadic action so that the file does not
+  -- have to be read if it's not necessary.
   , getOutputTimestamp :: ModuleName -> m (Maybe UTCTime)
-  -- ^ Get the timestamp for the output files for a module. This should be the
-  -- timestamp for the oldest modified file, or 'Nothing' if any of the required
-  -- output files are missing.
-  , readExterns :: ModuleName -> m (FilePath, Externs)
+  -- ^ Get the time this module was last compiled, provided that all of the
+  -- requested codegen targets were also produced then. The defaultMakeActions
+  -- implementation uses the modification time of the externs file, because the
+  -- externs file is written first and we always write one. If there is no
+  -- externs file, or if any of the requested codegen targets were not produced
+  -- the last time this module was compiled, this function must return Nothing;
+  -- this indicates that the module will have to be recompiled.
+  , readExterns :: ModuleName -> m (FilePath, Maybe ExternsFile)
   -- ^ Read the externs file for a module as a string and also return the actual
   -- path for the file.
-  , codegen :: CF.Module CF.Ann -> Docs.Module -> Externs -> SupplyT m ()
+  , codegen :: CF.Module CF.Ann -> Docs.Module -> ExternsFile -> SupplyT m ()
   -- ^ Run the code generator for the module and write any required output files.
   , ffiCodegen :: CF.Module CF.Ann -> m ()
   -- ^ Check ffi and print it in the output directory.
   , progress :: ProgressMessage -> m ()
   -- ^ Respond to a progress update.
+  , readCacheDb :: m CacheDb
+  -- ^ Read the cache database (which contains timestamps and hashes for input
+  -- files) from some external source, e.g. a file on disk.
+  , writeCacheDb :: CacheDb -> m ()
+  -- ^ Write the given cache database to some external source (e.g. a file on
+  -- disk).
+  , writePackageJson :: m ()
+  -- ^ Write to the output directory the package.json file allowing Node.js to
+  -- load .js files as ES modules.
+  , outputPrimDocs :: m ()
+  -- ^ If generating docs, output the documentation for the Prim modules
   }
 
+-- | Given the output directory, determines the location for the
+-- CacheDb file
+cacheDbFile :: FilePath -> FilePath
+cacheDbFile = (</> "cache-db.json")
+
+readCacheDb'
+  :: (MonadIO m, MonadError MultipleErrors m)
+  => FilePath
+  -- ^ The path to the output directory
+  -> m CacheDb
+readCacheDb' outputDir =
+  fromMaybe mempty <$> readJSONFile (cacheDbFile outputDir)
+
+writeCacheDb'
+  :: (MonadIO m, MonadError MultipleErrors m)
+  => FilePath
+  -- ^ The path to the output directory
+  -> CacheDb
+  -- ^ The CacheDb to be written
+  -> m ()
+writeCacheDb' = writeJSONFile . cacheDbFile
+
+writePackageJson'
+  :: (MonadIO m, MonadError MultipleErrors m)
+  => FilePath
+  -- ^ The path to the output directory
+  -> m ()
+writePackageJson' outputDir = writeJSONFile (outputDir </> "package.json") $ object
+  [ "type" .= String "module"
+  ]
+
 -- | A set of make actions that read and write modules from the given directory.
 buildMakeActions
   :: FilePath
@@ -114,15 +174,25 @@
   -- ^ Generate a prefix comment?
   -> MakeActions Make
 buildMakeActions outputDir filePathMap foreigns usePrefix =
-    MakeActions getInputTimestamp getOutputTimestamp readExterns codegen ffiCodegen progress
+    MakeActions getInputTimestampsAndHashes getOutputTimestamp readExterns codegen ffiCodegen progress readCacheDb writeCacheDb writePackageJson outputPrimDocs
   where
 
-  getInputTimestamp :: ModuleName -> Make (Either RebuildPolicy (Maybe UTCTime))
-  getInputTimestamp mn = do
+  getInputTimestampsAndHashes
+    :: ModuleName
+    -> Make (Either RebuildPolicy (M.Map FilePath (UTCTime, Make ContentHash)))
+  getInputTimestampsAndHashes mn = do
     let path = fromMaybe (internalError "Module has no filename in 'make'") $ M.lookup mn filePathMap
-    e1 <- traverse getTimestamp path
-    fPath <- maybe (return Nothing) getTimestamp $ M.lookup mn foreigns
-    return $ fmap (max fPath) e1
+    case path of
+      Left policy ->
+        return (Left policy)
+      Right filePath -> do
+        cwd <- makeIO "Getting the current directory" getCurrentDirectory
+        let inputPaths = map (normaliseForCache cwd) (filePath : maybeToList (M.lookup mn foreigns))
+            getInfo fp = do
+              ts <- getTimestamp fp
+              return (ts, hashFile fp)
+        pathsWithInfo <- traverse (\fp -> (fp,) <$> getInfo fp) inputPaths
+        return $ Right $ M.fromList pathsWithInfo
 
   outputFilename :: ModuleName -> String -> FilePath
   outputFilename mn fn =
@@ -139,35 +209,62 @@
   getOutputTimestamp :: ModuleName -> Make (Maybe UTCTime)
   getOutputTimestamp mn = do
     codegenTargets <- asks optionsCodegenTargets
-    let outputPaths = [outputFilename mn "externs.json"] <> fmap (targetFilename mn) (S.toList codegenTargets)
-    timestamps <- traverse getTimestamp outputPaths
-    pure $ fmap minimum . NEL.nonEmpty =<< sequence timestamps
+    mExternsTimestamp <- getTimestampMaybe (outputFilename mn externsFileName)
+    case mExternsTimestamp of
+      Nothing ->
+        -- If there is no externs file, we will need to compile the module in
+        -- order to produce one.
+        pure Nothing
+      Just externsTimestamp ->
+        case NEL.nonEmpty (fmap (targetFilename mn) (S.toList codegenTargets)) of
+          Nothing ->
+            -- If the externs file exists and no other codegen targets have
+            -- been requested, then we can consider the module up-to-date
+            pure (Just externsTimestamp)
+          Just outputPaths -> do
+            -- If any of the other output paths are nonexistent or older than
+            -- the externs file, then they should be considered outdated, and
+            -- so the module will need rebuilding.
+            mmodTimes <- traverse getTimestampMaybe outputPaths
+            pure $ case sequence mmodTimes of
+              Nothing ->
+                Nothing
+              Just modTimes ->
+                if externsTimestamp <= minimum modTimes
+                  then Just externsTimestamp
+                  else Nothing
 
-  readExterns :: ModuleName -> Make (FilePath, Externs)
+  readExterns :: ModuleName -> Make (FilePath, Maybe ExternsFile)
   readExterns mn = do
-    let path = outputDir </> T.unpack (runModuleName mn) </> "externs.json"
-    (path, ) <$> readTextFile path
+    let path = outputDir </> T.unpack (runModuleName mn) </> externsFileName
+    (path, ) <$> readExternsFile path
 
-  codegen :: CF.Module CF.Ann -> Docs.Module -> Externs -> SupplyT Make ()
+  outputPrimDocs :: Make ()
+  outputPrimDocs = do
+    codegenTargets <- asks optionsCodegenTargets
+    when (S.member Docs codegenTargets) $ for_ Docs.Prim.primModules $ \docsMod@Docs.Module{..} ->
+      writeJSONFile (outputFilename modName "docs.json") docsMod
+
+  codegen :: CF.Module CF.Ann -> Docs.Module -> ExternsFile -> SupplyT Make ()
   codegen m docs exts = do
     let mn = CF.moduleName m
-    lift $ writeTextFile (outputFilename mn "externs.json") exts
+    lift $ writeCborFile (outputFilename mn externsFileName) exts
     codegenTargets <- lift $ asks optionsCodegenTargets
     when (S.member CoreFn codegenTargets) $ do
       let coreFnFile = targetFilename mn CoreFn
           json = CFJ.moduleToJSON Paths.version m
-      lift $ writeTextFile coreFnFile (encode json)
+      lift $ writeJSONFile coreFnFile json
     when (S.member JS codegenTargets) $ do
       foreignInclude <- case mn `M.lookup` foreigns of
         Just _
           | not $ requiresForeign m -> do
               return Nothing
           | otherwise -> do
-              return $ Just $ Imp.App Nothing (Imp.Var Nothing "require") [Imp.StringLiteral Nothing "./foreign.js"]
+              return $ Just "./foreign.js"
         Nothing | requiresForeign m -> throwError . errorMessage' (CF.moduleSourceSpan m) $ MissingFFIModule mn
                 | otherwise -> return Nothing
       rawJs <- J.moduleToJs m foreignInclude
-      dir <- lift $ makeIO (const (ErrorMessage [] $ CannotGetFileInfo ".")) getCurrentDirectory
+      dir <- lift $ makeIO "get the current directory" getCurrentDirectory
       let sourceMaps = S.member JSSourceMap codegenTargets
           (pjs, mappings) = if sourceMaps then prettyPrintJSWithSourceMaps rawJs else (prettyPrintJS rawJs, [])
           jsFile = targetFilename mn JS
@@ -176,110 +273,140 @@
           js = T.unlines $ map ("// " <>) prefix ++ [pjs]
           mapRef = if sourceMaps then "//# sourceMappingURL=index.js.map\n" else ""
       lift $ do
-        writeTextFile jsFile (B.fromStrict $ TE.encodeUtf8 $ js <> mapRef)
+        writeTextFile jsFile (TE.encodeUtf8 $ js <> mapRef)
         when sourceMaps $ genSourceMap dir mapFile (length prefix) mappings
     when (S.member Docs codegenTargets) $ do
-      lift $ writeTextFile (outputFilename mn "docs.json") (encode docs)
+      lift $ writeJSONFile (outputFilename mn "docs.json") docs
 
   ffiCodegen :: CF.Module CF.Ann -> Make ()
   ffiCodegen m = do
     codegenTargets <- asks optionsCodegenTargets
-    when (S.member JS codegenTargets) $ do
-      let mn = CF.moduleName m
-          foreignFile = outputFilename mn "foreign.js"
-      case mn `M.lookup` foreigns of
-        Just path
-          | not $ requiresForeign m ->
-              tell $ errorMessage' (CF.moduleSourceSpan m) $ UnnecessaryFFIModule mn path
-          | otherwise ->
-              checkForeignDecls m path
-        Nothing | requiresForeign m -> throwError . errorMessage' (CF.moduleSourceSpan m) $ MissingFFIModule mn
-                | otherwise -> return ()
-      for_ (mn `M.lookup` foreigns) (readTextFile >=> writeTextFile foreignFile)
+    ffiCodegen' foreigns codegenTargets (Just outputFilename) m
 
   genSourceMap :: String -> String -> Int -> [SMap] -> Make ()
   genSourceMap dir mapFile extraLines mappings = do
-    let pathToDir = iterate (".." </>) ".." !! length (splitPath $ normalise outputDir)
+    let pathToDir = iterate (".." Posix.</>) ".." !! length (splitPath $ normalise outputDir)
         sourceFile = case mappings of
-                      (SMap file _ _ : _) -> Just $ pathToDir </> makeRelative dir (T.unpack file)
+                      (SMap file _ _ : _) -> Just $ pathToDir Posix.</> normalizeSMPath (makeRelative dir (T.unpack file))
                       _ -> Nothing
     let rawMapping = SourceMapping { smFile = "index.js", smSourceRoot = Nothing, smMappings =
       map (\(SMap _ orig gen) -> Mapping {
           mapOriginal = Just $ convertPos $ add 0 (-1) orig
         , mapSourceFile = sourceFile
-        , mapGenerated = convertPos $ add (extraLines+1) 0 gen
+        , mapGenerated = convertPos $ add (extraLines + 1) 0 gen
         , mapName = Nothing
         }) mappings
     }
     let mapping = generate rawMapping
-    writeTextFile mapFile (encode mapping)
+    writeJSONFile mapFile mapping
     where
     add :: Int -> Int -> SourcePos -> SourcePos
-    add n m (SourcePos n' m') = SourcePos (n+n') (m+m')
+    add n m (SourcePos n' m') = SourcePos (n + n') (m + m')
 
     convertPos :: SourcePos -> Pos
     convertPos SourcePos { sourcePosLine = l, sourcePosColumn = c } =
       Pos { posLine = fromIntegral l, posColumn = fromIntegral c }
 
+    normalizeSMPath :: FilePath -> FilePath
+    normalizeSMPath = Posix.joinPath . splitDirectories
+
   requiresForeign :: CF.Module a -> Bool
   requiresForeign = not . null . CF.moduleForeign
 
-  getTimestamp :: FilePath -> Make (Maybe UTCTime)
-  getTimestamp path = makeIO (const (ErrorMessage [] $ CannotGetFileInfo path)) $ do
-    exists <- doesFileExist path
-    if exists
-      then Just <$> getModificationTime path
-      else pure Nothing
+  progress :: ProgressMessage -> Make ()
+  progress = liftIO . TIO.hPutStr stderr . (<> "\n") . renderProgressMessage "Compiling "
 
-  writeTextFile :: FilePath -> B.ByteString -> Make ()
-  writeTextFile path text = makeIO (const (ErrorMessage [] $ CannotWriteFile path)) $ do
-    mkdirp path
-    B.writeFile path text
-    where
-    mkdirp :: FilePath -> IO ()
-    mkdirp = createDirectoryIfMissing True . takeDirectory
+  readCacheDb :: Make CacheDb
+  readCacheDb = readCacheDb' outputDir
 
-  progress :: ProgressMessage -> Make ()
-  progress = liftIO . putStrLn . renderProgressMessage
+  writeCacheDb :: CacheDb -> Make ()
+  writeCacheDb = writeCacheDb' outputDir
 
+  writePackageJson :: Make ()
+  writePackageJson = writePackageJson' outputDir
+
+data ForeignModuleType = ESModule | CJSModule deriving (Show)
+
 -- | Check that the declarations in a given PureScript module match with those
 -- in its corresponding foreign module.
-checkForeignDecls :: CF.Module ann -> FilePath -> Make ()
+checkForeignDecls :: CF.Module ann -> FilePath -> Make (Either MultipleErrors (ForeignModuleType, S.Set Ident))
 checkForeignDecls m path = do
-  jsStr <- readTextFile path
-  js <- either (errorParsingModule . Bundle.UnableToParseModule) pure $ JS.parse (LBU8.toString jsStr) path
-
-  foreignIdentsStrs <- either errorParsingModule pure $ getExps js
-  foreignIdents <- either
-                     errorInvalidForeignIdentifiers
-                     (pure . S.fromList)
-                     (parseIdents foreignIdentsStrs)
-  let importedIdents = S.fromList (CF.moduleForeign m)
-
-  let unusedFFI = foreignIdents S.\\ importedIdents
-  unless (null unusedFFI) $
-    tell . errorMessage' modSS . UnusedFFIImplementations mname $
-      S.toList unusedFFI
+  jsStr <- T.unpack <$> readTextFile path
 
-  let missingFFI = importedIdents S.\\ foreignIdents
-  unless (null missingFFI) $
-    throwError . errorMessage' modSS . MissingFFIImplementations mname $
-      S.toList missingFFI
+  let
+    parseResult :: Either MultipleErrors JS.JSAST
+    parseResult = first (errorParsingModule . Bundle.UnableToParseModule) $ JS.parseModule jsStr path
+  traverse checkFFI parseResult
 
   where
   mname = CF.moduleName m
   modSS = CF.moduleSourceSpan m
 
-  errorParsingModule :: Bundle.ErrorMessage -> Make a
-  errorParsingModule = throwError . errorMessage' modSS . ErrorParsingFFIModule path . Just
+  checkFFI :: JS.JSAST -> Make (ForeignModuleType, S.Set Ident)
+  checkFFI js = do
+    (foreignModuleType, foreignIdentsStrs) <-
+        case (,) <$> getForeignModuleExports js <*> getForeignModuleImports js of
+          Left reason -> throwError $ errorParsingModule reason
+          Right (Bundle.ForeignModuleExports{..}, Bundle.ForeignModuleImports{..})
+            | not (null cjsExports && null cjsImports)
+            , null esExports
+            , null esImports -> do
+                let deprecatedFFI = filter (elem '\'') cjsExports
+                unless (null deprecatedFFI) $
+                  errorDeprecatedForeignPrimes deprecatedFFI
 
-  getExps :: JS.JSAST -> Either Bundle.ErrorMessage [String]
-  getExps = Bundle.getExportedIdentifiers (T.unpack (runModuleName mname))
+                pure (CJSModule, cjsExports)
+            | otherwise -> do
+                unless (null cjsImports) $
+                  errorUnsupportedFFICommonJSImports cjsImports
 
+                unless (null cjsExports) $
+                  errorUnsupportedFFICommonJSExports cjsExports
+
+                pure (ESModule, esExports)
+
+    foreignIdents <- either
+                      errorInvalidForeignIdentifiers
+                      (pure . S.fromList)
+                      (parseIdents foreignIdentsStrs)
+    let importedIdents = S.fromList (CF.moduleForeign m)
+
+    let unusedFFI = foreignIdents S.\\ importedIdents
+    unless (null unusedFFI) $
+      tell . errorMessage' modSS . UnusedFFIImplementations mname $
+        S.toList unusedFFI
+
+    let missingFFI = importedIdents S.\\ foreignIdents
+    unless (null missingFFI) $
+      throwError . errorMessage' modSS . MissingFFIImplementations mname $
+        S.toList missingFFI
+    pure (foreignModuleType, foreignIdents)
+
+  errorParsingModule :: Bundle.ErrorMessage -> MultipleErrors
+  errorParsingModule = errorMessage' modSS . ErrorParsingFFIModule path . Just
+
+  getForeignModuleExports :: JS.JSAST -> Either Bundle.ErrorMessage  Bundle.ForeignModuleExports
+  getForeignModuleExports = Bundle.getExportedIdentifiers (T.unpack (runModuleName mname))
+
+  getForeignModuleImports :: JS.JSAST -> Either Bundle.ErrorMessage Bundle.ForeignModuleImports
+  getForeignModuleImports = Bundle.getImportedModules (T.unpack (runModuleName mname))
+
   errorInvalidForeignIdentifiers :: [String] -> Make a
   errorInvalidForeignIdentifiers =
     throwError . mconcat . map (errorMessage . InvalidFFIIdentifier mname . T.pack)
 
+  errorDeprecatedForeignPrimes :: [String] -> Make a
+  errorDeprecatedForeignPrimes =
+    throwError . mconcat . map (errorMessage' modSS . DeprecatedFFIPrime mname . T.pack)
+
+  errorUnsupportedFFICommonJSExports :: [String] -> Make a
+  errorUnsupportedFFICommonJSExports =
+    throwError . errorMessage' modSS . UnsupportedFFICommonJSExports mname . map T.pack
+
+  errorUnsupportedFFICommonJSImports :: [String] -> Make a
+  errorUnsupportedFFICommonJSImports =
+    throwError . errorMessage' modSS . UnsupportedFFICommonJSImports mname . map T.pack
+
   parseIdents :: [String] -> Either [String] [Ident]
   parseIdents strs =
     case partitionEithers (map parseIdent strs) of
@@ -292,7 +419,37 @@
   -- identifier should be enough.
   parseIdent :: String -> Either String Ident
   parseIdent str =
-    bimap (const str) (Ident . CST.getIdent . CST.nameValue)
+    bimap (const str) (Ident . CST.getIdent . CST.nameValue . snd)
       . CST.runTokenParser CST.parseIdent
       . CST.lex
       $ T.pack str
+
+-- | FFI check and codegen action.
+-- If path maker is supplied copies foreign module to the output.
+ffiCodegen'
+  :: M.Map ModuleName FilePath
+  -> S.Set CodegenTarget
+  -> Maybe (ModuleName -> String -> FilePath)
+  -> CF.Module CF.Ann
+  -> Make ()
+ffiCodegen' foreigns codegenTargets makeOutputPath m = do
+  when (S.member JS codegenTargets) $ do
+    let mn = CF.moduleName m
+    case mn `M.lookup` foreigns of
+      Just path
+        | not $ requiresForeign m ->
+            tell $ errorMessage' (CF.moduleSourceSpan m) $ UnnecessaryFFIModule mn path
+        | otherwise -> do
+            checkResult <- checkForeignDecls m path
+            case checkResult of
+              Left _ -> copyForeign path mn
+              Right (ESModule, _) -> copyForeign path mn
+              Right (CJSModule, _) -> do
+                throwError $ errorMessage' (CF.moduleSourceSpan m) $ DeprecatedFFICommonJSModule mn path
+      Nothing | requiresForeign m -> throwError . errorMessage' (CF.moduleSourceSpan m) $ MissingFFIModule mn
+              | otherwise -> return ()
+  where
+  requiresForeign = not . null . CF.moduleForeign
+
+  copyForeign path mn =
+    for_ makeOutputPath (\outputFilename -> copyFile path (outputFilename mn "foreign.js"))
diff --git a/src/Language/PureScript/Make/BuildPlan.hs b/src/Language/PureScript/Make/BuildPlan.hs
--- a/src/Language/PureScript/Make/BuildPlan.hs
+++ b/src/Language/PureScript/Make/BuildPlan.hs
@@ -1,38 +1,44 @@
 module Language.PureScript.Make.BuildPlan
-  ( BuildPlan()
+  ( BuildPlan(bpEnv, bpIndex)
+  , BuildJobResult(..)
+  , buildJobSuccess
   , construct
   , getResult
-  , collectErrors
   , collectResults
   , markComplete
   , needsRebuild
   ) where
 
-import           Prelude
+import Prelude
 
-import           Control.Concurrent.Async.Lifted as A
-import           Control.Concurrent.Lifted as C
-import           Control.Monad hiding (sequence)
-import           Control.Monad.Trans.Class (lift)
-import           Control.Monad.Trans.Control (MonadBaseControl(..))
-import           Control.Monad.Trans.Maybe (MaybeT(..), runMaybeT)
-import           Data.Foldable (foldl')
-import qualified Data.Map as M
-import           Data.Maybe (catMaybes, fromMaybe)
-import           Data.Time.Clock (UTCTime)
-import           Language.PureScript.AST
-import           Language.PureScript.Crash
-import qualified Language.PureScript.CST as CST
-import           Language.PureScript.Errors
-import           Language.PureScript.Externs
-import           Language.PureScript.Make.Actions as Actions
-import           Language.PureScript.Names (ModuleName)
+import Control.Concurrent.Async.Lifted as A
+import Control.Concurrent.Lifted as C
+import Control.Monad.Base (liftBase)
+import Control.Monad (foldM)
+import Control.Monad.Trans.Control (MonadBaseControl(..))
+import Control.Monad.Trans.Maybe (MaybeT(..), runMaybeT)
+import Data.Foldable (foldl')
+import Data.Map qualified as M
+import Data.Maybe (fromMaybe, mapMaybe)
+import Data.Time.Clock (UTCTime)
+import Language.PureScript.AST (Module, getModuleName)
+import Language.PureScript.Crash (internalError)
+import Language.PureScript.CST qualified as CST
+import Language.PureScript.Errors (MultipleErrors(..))
+import Language.PureScript.Externs (ExternsFile)
+import Language.PureScript.Make.Actions as Actions
+import Language.PureScript.Make.Cache (CacheDb, CacheInfo, checkChanged)
+import Language.PureScript.Names (ModuleName)
+import Language.PureScript.Sugar.Names.Env (Env, primEnv)
+import System.Directory (getCurrentDirectory)
 
 -- | The BuildPlan tracks information about our build progress, and holds all
 -- prebuilt modules for incremental builds.
 data BuildPlan = BuildPlan
   { bpPrebuilt :: M.Map ModuleName Prebuilt
   , bpBuildJobs :: M.Map ModuleName BuildJob
+  , bpEnv :: C.MVar Env
+  , bpIndex :: C.MVar Int
   }
 
 data Prebuilt = Prebuilt
@@ -40,50 +46,66 @@
   , pbExternsFile :: ExternsFile
   }
 
-data BuildJob = BuildJob
-  { bjResult :: C.MVar (Maybe (MultipleErrors, ExternsFile))
-  , bjErrors :: C.MVar (Maybe MultipleErrors)
+newtype BuildJob = BuildJob
+  { bjResult :: C.MVar BuildJobResult
+    -- ^ Note: an empty MVar indicates that the build job has not yet finished.
   }
 
+data BuildJobResult
+  = BuildJobSucceeded !MultipleErrors !ExternsFile
+  -- ^ Succeeded, with warnings and externs
+  --
+  | BuildJobFailed !MultipleErrors
+  -- ^ Failed, with errors
+
+  | BuildJobSkipped
+  -- ^ The build job was not run, because an upstream build job failed
+
+buildJobSuccess :: BuildJobResult -> Maybe (MultipleErrors, ExternsFile)
+buildJobSuccess (BuildJobSucceeded warnings externs) = Just (warnings, externs)
+buildJobSuccess _ = Nothing
+
+-- | Information obtained about a particular module while constructing a build
+-- plan; used to decide whether a module needs rebuilding.
+data RebuildStatus = RebuildStatus
+  { statusModuleName :: ModuleName
+  , statusRebuildNever :: Bool
+  , statusNewCacheInfo :: Maybe CacheInfo
+    -- ^ New cache info for this module which should be stored for subsequent
+    -- incremental builds. A value of Nothing indicates that cache info for
+    -- this module should not be stored in the build cache, because it is being
+    -- rebuilt according to a RebuildPolicy instead.
+  , statusPrebuilt :: Maybe Prebuilt
+    -- ^ Prebuilt externs and timestamp for this module, if any.
+  }
+
 -- | Called when we finished compiling a module and want to report back the
 -- compilation result, as well as any potential errors that were thrown.
 markComplete
   :: (MonadBaseControl IO m)
   => BuildPlan
   -> ModuleName
-  -> Maybe (MultipleErrors, ExternsFile)
-  -> Maybe MultipleErrors
+  -> BuildJobResult
   -> m ()
-markComplete buildPlan moduleName result errors = do
-  let BuildJob rVar eVar = fromMaybe (internalError "make: markComplete no barrier") $ M.lookup moduleName (bpBuildJobs buildPlan)
+markComplete buildPlan moduleName result = do
+  let BuildJob rVar = fromMaybe (internalError "make: markComplete no barrier") $ M.lookup moduleName (bpBuildJobs buildPlan)
   putMVar rVar result
-  putMVar eVar errors
 
 -- | Whether or not the module with the given ModuleName needs to be rebuilt
 needsRebuild :: BuildPlan -> ModuleName -> Bool
 needsRebuild bp moduleName = M.member moduleName (bpBuildJobs bp)
 
--- | Collects errors for all modules that have been rebuilt. This will block
--- until all outstanding build jobs are finished.
-collectErrors
-  :: (MonadBaseControl IO m)
-  => BuildPlan
-  -> m [MultipleErrors]
-collectErrors buildPlan  = do
-  errors <- traverse readMVar $ map bjErrors $ M.elems (bpBuildJobs buildPlan)
-  pure (catMaybes errors)
-
--- | Collects ExternsFiles for all prebuilt as well as rebuilt modules. Panics
--- if any build job returned an error.
+-- | Collects results for all prebuilt as well as rebuilt modules. This will
+-- block until all build jobs are finished. Prebuilt modules always return no
+-- warnings.
 collectResults
   :: (MonadBaseControl IO m)
   => BuildPlan
-  -> m (M.Map ModuleName ExternsFile)
+  -> m (M.Map ModuleName BuildJobResult)
 collectResults buildPlan = do
-  let externs = M.map pbExternsFile (bpPrebuilt buildPlan)
-  barrierResults <- traverse (takeMVar . bjResult) $ bpBuildJobs buildPlan
-  let barrierExterns = M.map (snd . fromMaybe (internalError "make: externs were missing but no errors reported.")) barrierResults
-  pure (M.union externs barrierExterns)
+  let prebuiltResults = M.map (BuildJobSucceeded (MultipleErrors []) . pbExternsFile) (bpPrebuilt buildPlan)
+  barrierResults <- traverse (readMVar . bjResult) $ bpBuildJobs buildPlan
+  pure (M.union prebuiltResults barrierResults)
 
 -- | Gets the the build result for a given module name independent of whether it
 -- was rebuilt or prebuilt. Prebuilt modules always return no warnings.
@@ -96,42 +118,81 @@
   case M.lookup moduleName (bpPrebuilt buildPlan) of
     Just es ->
       pure (Just (MultipleErrors [], pbExternsFile es))
-    Nothing ->
-      readMVar $ bjResult $ fromMaybe (internalError "make: no barrier") $ M.lookup moduleName (bpBuildJobs buildPlan)
+    Nothing -> do
+      r <- readMVar $ bjResult $ fromMaybe (internalError "make: no barrier") $ M.lookup moduleName (bpBuildJobs buildPlan)
+      pure $ buildJobSuccess r
 
 -- | Constructs a BuildPlan for the given module graph.
 --
 -- The given MakeActions are used to collect various timestamps in order to
 -- determine whether a module needs rebuilding.
 construct
-  :: forall m. (Monad m, MonadBaseControl IO m)
+  :: forall m. MonadBaseControl IO m
   => MakeActions m
+  -> CacheDb
   -> ([CST.PartialResult Module], [(ModuleName, [ModuleName])])
-  -> m BuildPlan
-construct MakeActions{..} (sorted, graph) = do
-  prebuilt <- foldl' collectPrebuiltModules M.empty . catMaybes <$> A.forConcurrently sorted findExistingExtern
-  let toBeRebuilt = filter (not . flip M.member prebuilt . getModuleName . CST.resPartial) sorted
-  buildJobs <- foldM makeBuildJob M.empty (map (getModuleName . CST.resPartial) toBeRebuilt)
-  pure $ BuildPlan prebuilt buildJobs
+  -> m (BuildPlan, CacheDb)
+construct MakeActions{..} cacheDb (sorted, graph) = do
+  let sortedModuleNames = map (getModuleName . CST.resPartial) sorted
+  rebuildStatuses <- A.forConcurrently sortedModuleNames getRebuildStatus
+  let prebuilt =
+        foldl' collectPrebuiltModules M.empty $
+          mapMaybe (\s -> (statusModuleName s, statusRebuildNever s,) <$> statusPrebuilt s) rebuildStatuses
+  let toBeRebuilt = filter (not . flip M.member prebuilt) sortedModuleNames
+  buildJobs <- foldM makeBuildJob M.empty toBeRebuilt
+  env <- C.newMVar primEnv
+  idx <- C.newMVar 1
+  pure
+    ( BuildPlan prebuilt buildJobs env idx
+    , let
+        update = flip $ \s ->
+          M.alter (const (statusNewCacheInfo s)) (statusModuleName s)
+      in
+        foldl' update cacheDb rebuildStatuses
+    )
   where
     makeBuildJob prev moduleName = do
-      buildJob <- BuildJob <$> C.newEmptyMVar <*> C.newEmptyMVar
+      buildJob <- BuildJob <$> C.newEmptyMVar
       pure (M.insert moduleName buildJob prev)
 
-    findExistingExtern :: CST.PartialResult Module -> m (Maybe (ModuleName, Bool, Prebuilt))
-    findExistingExtern (getModuleName . CST.resPartial -> moduleName) = runMaybeT $ do
-      inputTimestamp <- lift $ getInputTimestamp moduleName
-      (rebuildNever, existingTimestamp) <-
-        case inputTimestamp of
-          Left RebuildNever ->
-            fmap (True,) $ MaybeT $ getOutputTimestamp moduleName
-          Right (Just t1) -> do
-            outputTimestamp <- MaybeT $ getOutputTimestamp moduleName
-            guard (t1 < outputTimestamp)
-            pure (False, outputTimestamp)
-          _ -> mzero
-      externsFile <- MaybeT $ decodeExterns . snd <$> readExterns moduleName
-      pure (moduleName, rebuildNever, Prebuilt existingTimestamp externsFile)
+    getRebuildStatus :: ModuleName -> m RebuildStatus
+    getRebuildStatus moduleName = do
+      inputInfo <- getInputTimestampsAndHashes moduleName
+      case inputInfo of
+        Left RebuildNever -> do
+          prebuilt <- findExistingExtern moduleName
+          pure (RebuildStatus
+            { statusModuleName = moduleName
+            , statusRebuildNever = True
+            , statusPrebuilt = prebuilt
+            , statusNewCacheInfo = Nothing
+            })
+        Left RebuildAlways -> do
+          pure (RebuildStatus
+            { statusModuleName = moduleName
+            , statusRebuildNever = False
+            , statusPrebuilt = Nothing
+            , statusNewCacheInfo = Nothing
+            })
+        Right cacheInfo -> do
+          cwd <- liftBase getCurrentDirectory
+          (newCacheInfo, isUpToDate) <- checkChanged cacheDb moduleName cwd cacheInfo
+          prebuilt <-
+            if isUpToDate
+              then findExistingExtern moduleName
+              else pure Nothing
+          pure (RebuildStatus
+            { statusModuleName = moduleName
+            , statusRebuildNever = False
+            , statusPrebuilt = prebuilt
+            , statusNewCacheInfo = Just newCacheInfo
+            })
+
+    findExistingExtern :: ModuleName -> m (Maybe Prebuilt)
+    findExistingExtern moduleName = runMaybeT $ do
+      timestamp <- MaybeT $ getOutputTimestamp moduleName
+      externs <- MaybeT $ snd <$> readExterns moduleName
+      pure (Prebuilt timestamp externs)
 
     collectPrebuiltModules :: M.Map ModuleName Prebuilt -> (ModuleName, Bool, Prebuilt) -> M.Map ModuleName Prebuilt
     collectPrebuiltModules prev (moduleName, rebuildNever, pb)
diff --git a/src/Language/PureScript/Make/Cache.hs b/src/Language/PureScript/Make/Cache.hs
new file mode 100644
--- /dev/null
+++ b/src/Language/PureScript/Make/Cache.hs
@@ -0,0 +1,149 @@
+module Language.PureScript.Make.Cache
+  ( ContentHash
+  , hash
+  , CacheDb
+  , CacheInfo(..)
+  , checkChanged
+  , removeModules
+  , normaliseForCache
+  ) where
+
+import Prelude
+
+import Control.Category ((>>>))
+import Control.Monad ((>=>))
+import Crypto.Hash (HashAlgorithm, Digest, SHA512)
+import Crypto.Hash qualified as Hash
+import Data.Aeson qualified as Aeson
+import Data.Align (align)
+import Data.ByteArray.Encoding (Base(Base16), convertToBase, convertFromBase)
+import Data.ByteString qualified as BS
+import Data.Map (Map)
+import Data.Map qualified as Map
+import Data.Maybe (fromMaybe)
+import Data.Monoid (All(..))
+import Data.Set (Set)
+import Data.Text (Text)
+import Data.Text.Encoding (encodeUtf8, decodeUtf8)
+import Data.These (These(..))
+import Data.Time.Clock (UTCTime)
+import Data.Traversable (for)
+import System.FilePath qualified as FilePath
+
+import Language.PureScript.Names (ModuleName)
+
+digestToHex :: Digest a -> Text
+digestToHex = decodeUtf8 . convertToBase Base16
+
+digestFromHex :: forall a. HashAlgorithm a => Text -> Maybe (Digest a)
+digestFromHex =
+  encodeUtf8
+  >>> either (const Nothing) Just . convertFromBase Base16
+  >=> (Hash.digestFromByteString :: BS.ByteString -> Maybe (Digest a))
+
+-- | Defines the hash algorithm we use for cache invalidation of input files.
+newtype ContentHash = ContentHash
+  { unContentHash :: Digest SHA512 }
+  deriving (Show, Eq, Ord)
+
+instance Aeson.ToJSON ContentHash where
+  toJSON = Aeson.toJSON . digestToHex . unContentHash
+
+instance Aeson.FromJSON ContentHash where
+  parseJSON x = do
+    str <- Aeson.parseJSON x
+    case digestFromHex str of
+      Just digest ->
+        pure $ ContentHash digest
+      Nothing ->
+        fail "Unable to decode ContentHash"
+
+hash :: BS.ByteString -> ContentHash
+hash = ContentHash . Hash.hash
+
+type CacheDb = Map ModuleName CacheInfo
+
+-- | A CacheInfo contains all of the information we need to store about a
+-- particular module in the cache database.
+newtype CacheInfo = CacheInfo
+  { unCacheInfo :: Map FilePath (UTCTime, ContentHash) }
+  deriving stock (Show)
+  deriving newtype (Eq, Ord, Semigroup, Monoid, Aeson.FromJSON, Aeson.ToJSON)
+
+-- | Given a module name, and a map containing the associated input files
+-- together with current metadata i.e. timestamps and hashes, check whether the
+-- input files have changed, based on comparing with the database stored in the
+-- monadic state.
+--
+-- The CacheInfo in the return value should be stored in the cache for future
+-- builds.
+--
+-- The Bool in the return value indicates whether it is safe to use existing
+-- build artifacts for this module, at least based on the timestamps and hashes
+-- of the module's input files.
+--
+-- If the timestamps are the same as those in the database, assume the file is
+-- unchanged, and return True without checking hashes.
+--
+-- If any of the timestamps differ from what is in the database, check the
+-- hashes of those files. In this case, update the database with any changed
+-- timestamps and hashes, and return True if and only if all of the hashes are
+-- unchanged.
+checkChanged
+  :: Monad m
+  => CacheDb
+  -> ModuleName
+  -> FilePath
+  -> Map FilePath (UTCTime, m ContentHash)
+  -> m (CacheInfo, Bool)
+checkChanged cacheDb mn basePath currentInfo = do
+
+  let dbInfo = unCacheInfo $ fromMaybe mempty (Map.lookup mn cacheDb)
+  (newInfo, isUpToDate) <-
+    fmap mconcat $
+      for (Map.toList (align dbInfo currentInfo)) $ \(normaliseForCache basePath -> fp, aligned) -> do
+        case aligned of
+          This _ -> do
+            -- One of the input files listed in the cache no longer exists;
+            -- remove that file from the cache and note that the module needs
+            -- rebuilding
+            pure (Map.empty, All False)
+          That (timestamp, getHash) -> do
+            -- The module has a new input file; add it to the cache and
+            -- note that the module needs rebuilding.
+            newHash <- getHash
+            pure (Map.singleton fp (timestamp, newHash), All False)
+          These db@(dbTimestamp, _) (newTimestamp, _) | dbTimestamp == newTimestamp -> do
+            -- This file exists both currently and in the cache database,
+            -- and the timestamp is unchanged, so we skip checking the
+            -- hash.
+            pure (Map.singleton fp db, mempty)
+          These (_, dbHash) (newTimestamp, getHash) -> do
+            -- This file exists both currently and in the cache database,
+            -- but the timestamp has changed, so we need to check the hash.
+            newHash <- getHash
+            pure (Map.singleton fp (newTimestamp, newHash), All (dbHash == newHash))
+
+  pure (CacheInfo newInfo, getAll isUpToDate)
+
+-- | Remove any modules from the given set from the cache database; used when
+-- they failed to build.
+removeModules :: Set ModuleName -> CacheDb -> CacheDb
+removeModules = flip Map.withoutKeys
+
+-- | 1. Any path that is beneath our current working directory will be
+-- stored as a normalised relative path
+-- 2. Any path that isn't will be stored as an absolute path
+normaliseForCache :: FilePath -> FilePath -> FilePath
+normaliseForCache basePath fp =
+    if FilePath.isRelative fp then
+      FilePath.normalise fp
+    else
+      let relativePath = FilePath.makeRelative basePath fp in
+      if FilePath.isRelative relativePath then
+        FilePath.normalise relativePath
+      else
+        -- If the path is still absolute after trying to make it
+        -- relative to the base that means it is not underneath
+        -- the base path
+        FilePath.normalise fp
diff --git a/src/Language/PureScript/Make/Monad.hs b/src/Language/PureScript/Make/Monad.hs
--- a/src/Language/PureScript/Make/Monad.hs
+++ b/src/Language/PureScript/Make/Monad.hs
@@ -1,28 +1,52 @@
-{-# LANGUAGE TypeFamilies #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
 module Language.PureScript.Make.Monad
   ( -- * Implementation of Make API using files on disk
     Make(..)
   , runMake
   , makeIO
+  , getTimestamp
+  , getTimestampMaybe
   , readTextFile
+  , readJSONFile
+  , readJSONFileIO
+  , readCborFile
+  , readCborFileIO
+  , readExternsFile
+  , hashFile
+  , writeTextFile
+  , writeJSONFile
+  , writeCborFile
+  , writeCborFileIO
+  , copyFile
   ) where
 
-import           Prelude
+import Prelude
 
-import           Control.Monad.Base (MonadBase(..))
-import           Control.Monad.Error.Class (MonadError(..))
-import           Control.Monad.IO.Class
-import           Control.Monad.Logger
-import           Control.Monad.Reader (MonadReader(..), ReaderT(..))
-import           Control.Monad.Trans.Control (MonadBaseControl(..))
-import           Control.Monad.Trans.Except
-import           Control.Monad.Writer.Class (MonadWriter(..))
-import qualified Data.ByteString.Lazy as B
-import           Language.PureScript.AST
-import           Language.PureScript.Errors
-import           Language.PureScript.Options
-import           System.IO.Error (tryIOError)
+import Codec.Serialise (Serialise)
+import Codec.Serialise qualified as Serialise
+import Control.Exception (fromException, tryJust, Exception (displayException))
+import Control.Monad (join, guard)
+import Control.Monad.Base (MonadBase(..))
+import Control.Monad.Error.Class (MonadError(..))
+import Control.Monad.IO.Class (MonadIO(..))
+import Control.Monad.Logger (Logger, runLogger')
+import Control.Monad.Reader (MonadReader(..), ReaderT(..))
+import Control.Monad.Trans.Control (MonadBaseControl(..))
+import Control.Monad.Trans.Except (ExceptT, runExceptT)
+import Control.Monad.Writer.Class (MonadWriter(..))
+import Data.Aeson qualified as Aeson
+import Data.ByteString qualified as B
+import Data.Text (Text)
+import Data.Text qualified as Text
+import Data.Time.Clock (UTCTime)
+import Language.PureScript.Errors (ErrorMessage(..), MultipleErrors, SimpleErrorMessage(..), singleError)
+import Language.PureScript.Externs (ExternsFile, externsIsCurrentVersion)
+import Language.PureScript.Make.Cache (ContentHash, hash)
+import Language.PureScript.Options (Options)
+import System.Directory (createDirectoryIfMissing, getModificationTime)
+import System.Directory qualified as Directory
+import System.FilePath (takeDirectory)
+import System.IO.Error (tryIOError, isDoesNotExistError)
+import System.IO.UTF8 (readUTF8FileT)
 
 -- | A monad for running make actions
 newtype Make a = Make
@@ -41,14 +65,123 @@
 runMake :: Options -> Make a -> IO (Either MultipleErrors a, MultipleErrors)
 runMake opts = runLogger' . runExceptT . flip runReaderT opts . unMake
 
--- | Run an 'IO' action in the 'Make' monad, by specifying how IO errors should
--- be rendered as 'ErrorMessage' values.
-makeIO :: (IOError -> ErrorMessage) -> IO a -> Make a
-makeIO f io = do
-  e <- liftIO $ tryIOError io
-  either (throwError . singleError . f) return e
+-- | Run an 'IO' action in the 'Make' monad. The 'String' argument should
+-- describe what we were trying to do; it is used for rendering errors in the
+-- case that an IOException is thrown.
+makeIO :: (MonadIO m, MonadError MultipleErrors m) => Text -> IO a -> m a
+makeIO description io = do
+  res <- liftIO (tryIOError io)
+  either (throwError . singleError . ErrorMessage [] . FileIOError description . Text.pack . displayException) pure res
 
--- | Read a text file in the 'Make' monad, capturing any errors using the
+-- | Get a file's modification time in the 'Make' monad, capturing any errors
+-- using the 'MonadError' instance.
+getTimestamp :: (MonadIO m, MonadError MultipleErrors m) => FilePath -> m UTCTime
+getTimestamp path =
+  makeIO ("get a timestamp for file: " <> Text.pack path) $ getModificationTime path
+
+-- | Get a file's modification time in the 'Make' monad, returning Nothing if
+-- the file does not exist.
+getTimestampMaybe :: (MonadIO m, MonadError MultipleErrors m) => FilePath -> m (Maybe UTCTime)
+getTimestampMaybe path =
+  makeIO ("get a timestamp for file: " <> Text.pack path) $ catchDoesNotExist $ getModificationTime path
+
+-- | Read a text file strictly in the 'Make' monad, capturing any errors using
+-- the 'MonadError' instance.
+readTextFile :: (MonadIO m, MonadError MultipleErrors m) => FilePath -> m Text
+readTextFile path =
+  makeIO ("read file: " <> Text.pack path) $
+    readUTF8FileT path
+
+-- | Read a JSON file in the 'Make' monad, returning 'Nothing' if the file does
+-- not exist or could not be parsed. Errors are captured using the 'MonadError'
+-- instance.
+readJSONFile :: (MonadIO m, MonadError MultipleErrors m) => Aeson.FromJSON a => FilePath -> m (Maybe a)
+readJSONFile path =
+  makeIO ("read JSON file: " <> Text.pack path) (readJSONFileIO path)
+
+readJSONFileIO :: Aeson.FromJSON a => FilePath -> IO (Maybe a)
+readJSONFileIO path = do
+  r <- catchDoesNotExist $ Aeson.decodeFileStrict' path
+  return $ join r
+
+-- | Read a Cbor encoded file in the 'Make' monad, returning
+-- 'Nothing' if the file does not exist or could not be parsed. Errors
+-- are captured using the 'MonadError' instance.
+readCborFile :: (MonadIO m, MonadError MultipleErrors m) => Serialise a => FilePath -> m (Maybe a)
+readCborFile path =
+  makeIO ("read Binary file: " <> Text.pack path) (readCborFileIO path)
+
+readCborFileIO :: Serialise a => FilePath -> IO (Maybe a)
+readCborFileIO path = do
+  r <- catchDoesNotExist $ catchDeserialiseFailure $ Serialise.readFileDeserialise path
+  return (join r)
+
+-- | Read an externs file, returning 'Nothing' if the file does not exist,
+-- could not be parsed, or was generated by a different version of the
+-- compiler.
+readExternsFile :: (MonadIO m, MonadError MultipleErrors m) => FilePath -> m (Maybe ExternsFile)
+readExternsFile path = do
+  mexterns <- readCborFile path
+  return $ do
+    externs <- mexterns
+    guard $ externsIsCurrentVersion externs
+    return externs
+
+hashFile :: (MonadIO m, MonadError MultipleErrors m) => FilePath -> m ContentHash
+hashFile path = do
+  makeIO ("hash file: " <> Text.pack path)
+    (hash <$> B.readFile path)
+
+-- | If the provided action threw an 'isDoesNotExist' error, catch it and
+-- return Nothing. Otherwise return Just the result of the inner action.
+catchDoesNotExist :: IO a -> IO (Maybe a)
+catchDoesNotExist inner = do
+  r <- tryJust (guard . isDoesNotExistError) inner
+  case r of
+    Left () ->
+      return Nothing
+    Right x ->
+      return (Just x)
+
+catchDeserialiseFailure :: IO a -> IO (Maybe a)
+catchDeserialiseFailure inner = do
+  r <- tryJust fromException inner
+  case r of
+    Left (_ :: Serialise.DeserialiseFailure) ->
+      return Nothing
+    Right x ->
+      return (Just x)
+
+-- | Write a text file in the 'Make' monad, capturing any errors using the
 -- 'MonadError' instance.
-readTextFile :: FilePath -> Make B.ByteString
-readTextFile path = makeIO (const (ErrorMessage [] $ CannotReadFile path)) $ B.readFile path
+writeTextFile :: FilePath -> B.ByteString -> Make ()
+writeTextFile path text = makeIO ("write file: " <> Text.pack path) $ do
+  createParentDirectory path
+  B.writeFile path text
+
+-- | Write a JSON file in the 'Make' monad, capturing any errors using the
+-- 'MonadError' instance.
+writeJSONFile :: (MonadIO m, MonadError MultipleErrors m) => Aeson.ToJSON a => FilePath -> a -> m ()
+writeJSONFile path value = makeIO ("write JSON file: " <> Text.pack path) $ do
+  createParentDirectory path
+  Aeson.encodeFile path value
+
+writeCborFile :: (MonadIO m, MonadError MultipleErrors m) => Serialise a => FilePath -> a -> m ()
+writeCborFile path value =
+  makeIO ("write Cbor file: " <> Text.pack path) (writeCborFileIO path value)
+
+writeCborFileIO :: Serialise a => FilePath -> a -> IO ()
+writeCborFileIO path value = do
+  createParentDirectory path
+  Serialise.writeFileSerialise path value
+
+-- | Copy a file in the 'Make' monad, capturing any errors using the
+-- 'MonadError' instance.
+copyFile :: (MonadIO m, MonadError MultipleErrors m) => FilePath -> FilePath -> m ()
+copyFile src dest =
+  makeIO ("copy file: " <> Text.pack src <> " -> " <> Text.pack dest) $ do
+    createParentDirectory dest
+    Directory.copyFile src dest
+
+createParentDirectory :: FilePath -> IO ()
+createParentDirectory = createDirectoryIfMissing True . takeDirectory
diff --git a/src/Language/PureScript/ModuleDependencies.hs b/src/Language/PureScript/ModuleDependencies.hs
--- a/src/Language/PureScript/ModuleDependencies.hs
+++ b/src/Language/PureScript/ModuleDependencies.hs
@@ -1,20 +1,22 @@
 -- | Provides the ability to sort modules based on module dependencies
 module Language.PureScript.ModuleDependencies
-  ( sortModules
+  ( DependencyDepth(..)
+  , sortModules
   , ModuleGraph
   , ModuleSignature(..)
   , moduleSignature
   ) where
 
-import           Protolude hiding (head)
+import Protolude hiding (head)
 
-import           Data.Graph
-import qualified Data.Set as S
-import           Language.PureScript.AST
-import qualified Language.PureScript.Constants as C
-import           Language.PureScript.Crash
-import           Language.PureScript.Errors hiding (nonEmpty)
-import           Language.PureScript.Names
+import Data.Array ((!))
+import Data.Graph (SCC(..), graphFromEdges, reachable, stronglyConnComp)
+import Data.Set qualified as S
+import Language.PureScript.AST (Declaration(..), ErrorMessageHint(..), Module(..), SourceSpan)
+import Language.PureScript.Constants.Prim qualified as C
+import Language.PureScript.Crash (internalError)
+import Language.PureScript.Errors (MultipleErrors, SimpleErrorMessage(..), addHint, errorMessage', errorMessage'', parU)
+import Language.PureScript.Names (ModuleName)
 
 -- | A list of modules with their transitive dependencies
 type ModuleGraph = [(ModuleName, [ModuleName])]
@@ -26,16 +28,19 @@
   , sigImports :: [(ModuleName, SourceSpan)]
   }
 
+data DependencyDepth = Direct | Transitive
+
 -- | Sort a collection of modules based on module dependencies.
 --
 -- Reports an error if the module graph contains a cycle.
 sortModules
   :: forall m a
    . MonadError MultipleErrors m
-  => (a -> ModuleSignature)
+  => DependencyDepth
+  -> (a -> ModuleSignature)
   -> [a]
   -> m ([a], ModuleGraph)
-sortModules toSig ms = do
+sortModules dependencyDepth toSig ms = do
     let
       ms' = (\m -> (m, toSig m)) <$> ms
       mns = S.fromList $ map (sigModuleName . snd) ms'
@@ -44,7 +49,9 @@
     let (graph, fromVertex, toVertex) = graphFromEdges verts
         moduleGraph = do (_, mn, _) <- verts
                          let v       = fromMaybe (internalError "sortModules: vertex not found") (toVertex mn)
-                             deps    = reachable graph v
+                             deps    = case dependencyDepth of
+                                         Direct -> graph ! v
+                                         Transitive -> reachable graph v
                              toKey i = case fromVertex i of (_, key, _) -> key
                          return (mn, filter (/= mn) (map toKey deps))
     return (fst <$> ms'', moduleGraph)
@@ -76,7 +83,7 @@
     Just ms' ->
       throwError
         . errorMessage'' (fmap (sigSourceSpan . snd) ms')
-        $ CycleInModules (map (sigModuleName . snd) ms)
+        $ CycleInModules (map (sigModuleName . snd) ms')
 
 moduleSignature :: Module -> ModuleSignature
 moduleSignature (Module ss _ mn ds _) = ModuleSignature ss mn (ordNub (mapMaybe usedModules ds))
diff --git a/src/Language/PureScript/Names.hs b/src/Language/PureScript/Names.hs
--- a/src/Language/PureScript/Names.hs
+++ b/src/Language/PureScript/Names.hs
@@ -1,24 +1,27 @@
 {-# LANGUAGE TemplateHaskell #-}
-{-# LANGUAGE DeriveGeneric #-}
-{-# LANGUAGE DeriveTraversable #-}
-{-# LANGUAGE DeriveFoldable #-}
 
 -- |
 -- Data types for names
 --
 module Language.PureScript.Names where
 
-import Prelude.Compat
+import Prelude
 
-import Control.Monad.Supply.Class
+import Codec.Serialise (Serialise)
+import Control.Applicative ((<|>))
+import Control.Monad.Supply.Class (MonadSupply(..))
 import Control.DeepSeq (NFData)
+import Data.Functor.Contravariant (contramap)
+import Data.Vector qualified as V
 
 import GHC.Generics (Generic)
-import Data.Aeson
-import Data.Aeson.TH
+import Data.Aeson (FromJSON(..), FromJSONKey(..), Options(..), SumEncoding(..), ToJSON(..), ToJSONKey(..), defaultOptions, parseJSON2, toJSON2, withArray)
+import Data.Aeson.TH (deriveJSON)
 import Data.Text (Text)
-import qualified Data.Text as T
+import Data.Text qualified as T
 
+import Language.PureScript.AST.SourcePos (SourcePos, pattern SourcePos)
+
 -- | A sum of the possible name types, useful for error and lint messages.
 data Name
   = IdentName Ident
@@ -28,10 +31,10 @@
   | DctorName (ProperName 'ConstructorName)
   | TyClassName (ProperName 'ClassName)
   | ModName ModuleName
-  | KiName (ProperName 'KindName)
   deriving (Eq, Ord, Show, Generic)
 
 instance NFData Name
+instance Serialise Name
 
 getIdentName :: Name -> Maybe Ident
 getIdentName (IdentName name) = Just name
@@ -45,10 +48,6 @@
 getTypeName (TyName name) = Just name
 getTypeName _ = Nothing
 
-getKindName :: Name -> Maybe (ProperName 'KindName)
-getKindName (KiName name) = Just name
-getKindName _ = Nothing
-
 getTypeOpName :: Name -> Maybe (OpName 'TypeOpName)
 getTypeOpName (TyOpName name) = Just name
 getTypeOpName _ = Nothing
@@ -61,10 +60,21 @@
 getClassName (TyClassName name) = Just name
 getClassName _ = Nothing
 
-getModName :: Name -> Maybe ModuleName
-getModName (ModName name) = Just name
-getModName _ = Nothing
+-- |
+-- This type is meant to be extended with any new uses for idents that come
+-- along. Adding constructors to this type is cheaper than adding them to
+-- `Ident` because functions that match on `Ident` can ignore all
+-- `InternalIdent`s with a single pattern, and thus don't have to change if
+-- a new `InternalIdentData` constructor is created.
+--
+data InternalIdentData
+  -- Used by CoreFn.Laziness
+  = RuntimeLazyFactory | Lazy !Text
+  deriving (Show, Eq, Ord, Generic)
 
+instance NFData InternalIdentData
+instance Serialise InternalIdentData
+
 -- |
 -- Names for value identifiers
 --
@@ -81,15 +91,24 @@
   -- A generated name used only for type-checking
   --
   | UnusedIdent
+  -- |
+  -- A generated name used only for internal transformations
+  --
+  | InternalIdent !InternalIdentData
   deriving (Show, Eq, Ord, Generic)
 
 instance NFData Ident
+instance Serialise Ident
 
+unusedIdent :: Text
+unusedIdent = "$__unused"
+
 runIdent :: Ident -> Text
 runIdent (Ident i) = i
 runIdent (GenIdent Nothing n) = "$" <> T.pack (show n)
 runIdent (GenIdent (Just name) n) = "$" <> name <> T.pack (show n)
-runIdent UnusedIdent = "$__unused"
+runIdent UnusedIdent = unusedIdent
+runIdent InternalIdent{} = error "unexpected InternalIdent"
 
 showIdent :: Ident -> Text
 showIdent = runIdent
@@ -100,6 +119,10 @@
 freshIdent' :: MonadSupply m => m Ident
 freshIdent' = GenIdent Nothing <$> fresh
 
+isPlainIdent :: Ident -> Bool
+isPlainIdent Ident{} = True
+isPlainIdent _ = False
+
 -- |
 -- Operator alias names.
 --
@@ -107,6 +130,7 @@
   deriving (Show, Eq, Ord, Generic)
 
 instance NFData (OpName a)
+instance Serialise (OpName a)
 
 instance ToJSON (OpName a) where
   toJSON = toJSON . runOpName
@@ -125,6 +149,9 @@
 eraseOpName :: OpName a -> OpName 'AnyOpName
 eraseOpName = OpName . runOpName
 
+coerceOpName :: OpName a -> OpName b
+coerceOpName = OpName . runOpName
+
 -- |
 -- Proper names, i.e. capitalized names for e.g. module names, type//data constructors.
 --
@@ -132,6 +159,7 @@
   deriving (Show, Eq, Ord, Generic)
 
 instance NFData (ProperName a)
+instance Serialise (ProperName a)
 
 instance ToJSON (ProperName a) where
   toJSON = toJSON . runProperName
@@ -146,7 +174,6 @@
   = TypeName
   | ConstructorName
   | ClassName
-  | KindName
   | Namespace
 
 -- |
@@ -160,53 +187,72 @@
 -- |
 -- Module names
 --
-newtype ModuleName = ModuleName [ProperName 'Namespace]
+newtype ModuleName = ModuleName Text
   deriving (Show, Eq, Ord, Generic)
+  deriving newtype Serialise
 
 instance NFData ModuleName
 
 runModuleName :: ModuleName -> Text
-runModuleName (ModuleName pns) = T.intercalate "." (runProperName <$> pns)
+runModuleName (ModuleName name) = name
 
 moduleNameFromString :: Text -> ModuleName
-moduleNameFromString = ModuleName . splitProperNames
-  where
-  splitProperNames s = case T.dropWhile (== '.') s of
-    "" -> []
-    s' -> ProperName w : splitProperNames s''
-      where (w, s'') = T.break (== '.') s'
+moduleNameFromString = ModuleName
 
 isBuiltinModuleName :: ModuleName -> Bool
-isBuiltinModuleName (ModuleName (ProperName "Prim" : _)) = True
-isBuiltinModuleName _ = False
+isBuiltinModuleName (ModuleName mn) = mn == "Prim" || "Prim." `T.isPrefixOf` mn
 
+data QualifiedBy
+  = BySourcePos SourcePos
+  | ByModuleName ModuleName
+  deriving (Show, Eq, Ord, Generic)
+
+pattern ByNullSourcePos :: QualifiedBy
+pattern ByNullSourcePos = BySourcePos (SourcePos 0 0)
+
+instance NFData QualifiedBy
+instance Serialise QualifiedBy
+
+isBySourcePos :: QualifiedBy -> Bool
+isBySourcePos (BySourcePos _) = True
+isBySourcePos _ = False
+
+byMaybeModuleName :: Maybe ModuleName -> QualifiedBy
+byMaybeModuleName (Just mn) = ByModuleName mn
+byMaybeModuleName Nothing = ByNullSourcePos
+
+toMaybeModuleName :: QualifiedBy -> Maybe ModuleName
+toMaybeModuleName (ByModuleName mn) = Just mn
+toMaybeModuleName (BySourcePos _) = Nothing
+
 -- |
 -- A qualified name, i.e. a name with an optional module name
 --
-data Qualified a = Qualified (Maybe ModuleName) a
+data Qualified a = Qualified QualifiedBy a
   deriving (Show, Eq, Ord, Functor, Foldable, Traversable, Generic)
 
 instance NFData a => NFData (Qualified a)
+instance Serialise a => Serialise (Qualified a)
 
 showQualified :: (a -> Text) -> Qualified a -> Text
-showQualified f (Qualified Nothing a) = f a
-showQualified f (Qualified (Just name) a) = runModuleName name <> "." <> f a
+showQualified f (Qualified (BySourcePos  _) a) = f a
+showQualified f (Qualified (ByModuleName name) a) = runModuleName name <> "." <> f a
 
 getQual :: Qualified a -> Maybe ModuleName
-getQual (Qualified mn _) = mn
+getQual (Qualified qb _) = toMaybeModuleName qb
 
 -- |
 -- Provide a default module name, if a name is unqualified
 --
 qualify :: ModuleName -> Qualified a -> (ModuleName, a)
-qualify m (Qualified Nothing a) = (m, a)
-qualify _ (Qualified (Just m) a) = (m, a)
+qualify m (Qualified (BySourcePos _) a) = (m, a)
+qualify _ (Qualified (ByModuleName m) a) = (m, a)
 
 -- |
 -- Makes a qualified value from a name and module name.
 --
 mkQualified :: a -> ModuleName -> Qualified a
-mkQualified name mn = Qualified (Just mn) name
+mkQualified name mn = Qualified (ByModuleName mn) name
 
 -- | Remove the module name from a qualified name
 disqualify :: Qualified a -> a
@@ -217,14 +263,14 @@
 -- module name.
 --
 disqualifyFor :: Maybe ModuleName -> Qualified a -> Maybe a
-disqualifyFor mn (Qualified mn' a) | mn == mn' = Just a
+disqualifyFor mn (Qualified qb a) | mn == toMaybeModuleName qb = Just a
 disqualifyFor _ _ = Nothing
 
 -- |
 -- Checks whether a qualified value is actually qualified with a module reference
 --
 isQualified :: Qualified a -> Bool
-isQualified (Qualified Nothing _) = False
+isQualified (Qualified (BySourcePos  _) _) = False
 isQualified _ = True
 
 -- |
@@ -237,9 +283,40 @@
 -- Checks whether a qualified value is qualified with a particular module
 --
 isQualifiedWith :: ModuleName -> Qualified a -> Bool
-isQualifiedWith mn (Qualified (Just mn') _) = mn == mn'
+isQualifiedWith mn (Qualified (ByModuleName mn') _) = mn == mn'
 isQualifiedWith _ _ = False
 
-$(deriveJSON (defaultOptions { sumEncoding = ObjectWithSingleField }) ''Qualified)
+instance ToJSON a => ToJSON (Qualified a) where
+  toJSON (Qualified qb a) = case qb of
+    ByModuleName mn -> toJSON2 (mn, a)
+    BySourcePos ss -> toJSON2 (ss, a)
+
+instance FromJSON a => FromJSON (Qualified a) where
+  parseJSON v = byModule <|> bySourcePos <|> byMaybeModuleName'
+    where
+    byModule = do
+      (mn, a) <- parseJSON2 v
+      pure $ Qualified (ByModuleName mn) a
+    bySourcePos = do
+      (ss, a) <- parseJSON2 v
+      pure $ Qualified (BySourcePos ss) a
+    byMaybeModuleName' = do
+      (mn, a) <- parseJSON2 v
+      pure $ Qualified (byMaybeModuleName mn) a
+
+instance ToJSON ModuleName where
+  toJSON (ModuleName name) = toJSON (T.splitOn "." name)
+
+instance FromJSON ModuleName where
+  parseJSON = withArray "ModuleName" $ \names -> do
+    names' <- traverse parseJSON names
+    pure (ModuleName (T.intercalate "." (V.toList names')))
+
+instance ToJSONKey ModuleName where
+  toJSONKey = contramap runModuleName toJSONKey
+
+instance FromJSONKey ModuleName where
+  fromJSONKey = fmap moduleNameFromString fromJSONKey
+
+$(deriveJSON (defaultOptions { sumEncoding = ObjectWithSingleField }) ''InternalIdentData)
 $(deriveJSON (defaultOptions { sumEncoding = ObjectWithSingleField }) ''Ident)
-$(deriveJSON (defaultOptions { sumEncoding = ObjectWithSingleField }) ''ModuleName)
diff --git a/src/Language/PureScript/Options.hs b/src/Language/PureScript/Options.hs
--- a/src/Language/PureScript/Options.hs
+++ b/src/Language/PureScript/Options.hs
@@ -1,10 +1,10 @@
 -- | The data type of compiler options
 module Language.PureScript.Options where
 
-import Prelude.Compat
-import qualified Data.Set as S
+import Prelude
+import Data.Set qualified as S
 import Data.Map (Map)
-import qualified Data.Map as Map
+import Data.Map qualified as Map
 
 -- | The data type of compiler options
 data Options = Options
diff --git a/src/Language/PureScript/PSString.hs b/src/Language/PureScript/PSString.hs
--- a/src/Language/PureScript/PSString.hs
+++ b/src/Language/PureScript/PSString.hs
@@ -1,7 +1,3 @@
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE OverloadedStrings #-}
-{-# LANGUAGE DeriveGeneric #-}
-
 module Language.PureScript.PSString
   ( PSString
   , toUTF16CodeUnits
@@ -13,28 +9,30 @@
   , mkString
   ) where
 
-import Prelude.Compat
+import Prelude
 import GHC.Generics (Generic)
+import Codec.Serialise (Serialise)
 import Control.DeepSeq (NFData)
 import Control.Exception (try, evaluate)
 import Control.Applicative ((<|>))
-import Data.Char (chr)
+import Data.Char qualified as Char
 import Data.Bits (shiftR)
+import Data.Either (fromRight)
 import Data.List (unfoldr)
 import Data.Scientific (toBoundedInteger)
 import Data.String (IsString(..))
 import Data.ByteString (ByteString)
-import qualified Data.ByteString as BS
+import Data.ByteString qualified as BS
 import Data.Text (Text)
-import qualified Data.Text as T
+import Data.Text qualified as T
 import Data.Text.Encoding (decodeUtf16BE)
 import Data.Text.Encoding.Error (UnicodeException)
-import qualified Data.Vector as V
+import Data.Vector qualified as V
 import Data.Word (Word16, Word8)
 import Numeric (showHex)
 import System.IO.Unsafe (unsafePerformIO)
-import qualified Data.Aeson as A
-import qualified Data.Aeson.Types as A
+import Data.Aeson qualified as A
+import Data.Aeson.Types qualified as A
 
 -- |
 -- Strings in PureScript are sequences of UTF-16 code units, which do not
@@ -54,6 +52,7 @@
   deriving (Eq, Ord, Semigroup, Monoid, Generic)
 
 instance NFData PSString
+instance Serialise PSString
 
 instance Show PSString where
   show = show . codePoints
@@ -67,14 +66,14 @@
 -- we do not export it.
 --
 codePoints :: PSString -> String
-codePoints = map (either (chr . fromIntegral) id) . decodeStringEither
+codePoints = map (either (Char.chr . fromIntegral) id) . decodeStringEither
 
 -- |
 -- Decode a PSString as UTF-16 text. Lone surrogates will be replaced with
 -- U+FFFD REPLACEMENT CHARACTER
 --
 decodeStringWithReplacement :: PSString -> String
-decodeStringWithReplacement = map (either (const '\xFFFD') id) . decodeStringEither
+decodeStringWithReplacement = map (fromRight '\xFFFD') . decodeStringEither
 
 -- |
 -- Decode a PSString as UTF-16. Lone surrogates in the input are represented in
@@ -94,14 +93,6 @@
   unsurrogate h l = toEnum ((toInt h - 0xD800) * 0x400 + (toInt l - 0xDC00) + 0x10000)
 
 -- |
--- Pretty print a PSString, using Haskell/PureScript escape sequences.
--- This is identical to the Show instance except that we get a Text out instead
--- of a String.
---
-prettyPrintString :: PSString -> Text
-prettyPrintString = T.pack . show
-
--- |
 -- Attempt to decode a PSString as UTF-16 text. This will fail (returning
 -- Nothing) if the argument contains lone surrogates.
 --
@@ -156,6 +147,53 @@
     parseCodeUnit b = A.withScientific "two-byte non-negative integer" (maybe (A.typeMismatch "" b) return . toBoundedInteger) b
 
 -- |
+-- Pretty print a PSString, using PureScript escape sequences.
+--
+prettyPrintString :: PSString -> Text
+prettyPrintString s = "\"" <> foldMap encodeChar (decodeStringEither s) <> "\""
+  where
+  encodeChar :: Either Word16 Char -> Text
+  encodeChar (Left c) = "\\x" <> showHex' 6 c
+  encodeChar (Right c)
+    | c == '\t' = "\\t"
+    | c == '\r' = "\\r"
+    | c == '\n' = "\\n"
+    | c == '"'  = "\\\""
+    | c == '\''  = "\\\'"
+    | c == '\\' = "\\\\"
+    | shouldPrint c = T.singleton c
+    | otherwise = "\\x" <> showHex' 6 (Char.ord c)
+
+  -- Note we do not use Data.Char.isPrint here because that includes things
+  -- like zero-width spaces and combining punctuation marks, which could be
+  -- confusing to print unescaped.
+  shouldPrint :: Char -> Bool
+  -- The standard space character, U+20 SPACE, is the only space char we should
+  -- print without escaping
+  shouldPrint ' ' = True
+  shouldPrint c =
+    Char.generalCategory c `elem`
+      [ Char.UppercaseLetter
+      , Char.LowercaseLetter
+      , Char.TitlecaseLetter
+      , Char.OtherLetter
+      , Char.DecimalNumber
+      , Char.LetterNumber
+      , Char.OtherNumber
+      , Char.ConnectorPunctuation
+      , Char.DashPunctuation
+      , Char.OpenPunctuation
+      , Char.ClosePunctuation
+      , Char.InitialQuote
+      , Char.FinalQuote
+      , Char.OtherPunctuation
+      , Char.MathSymbol
+      , Char.CurrencySymbol
+      , Char.ModifierSymbol
+      , Char.OtherSymbol
+      ]
+
+-- |
 -- Pretty print a PSString, using JavaScript escape sequences. Intended for
 -- use in compiled JS output.
 --
@@ -163,8 +201,8 @@
 prettyPrintStringJS s = "\"" <> foldMap encodeChar (toUTF16CodeUnits s) <> "\""
   where
   encodeChar :: Word16 -> Text
-  encodeChar c | c > 0xFF = "\\u" <> hex 4 c
-  encodeChar c | c > 0x7E || c < 0x20 = "\\x" <> hex 2 c
+  encodeChar c | c > 0xFF = "\\u" <> showHex' 4 c
+  encodeChar c | c > 0x7E || c < 0x20 = "\\x" <> showHex' 2 c
   encodeChar c | toChar c == '\b' = "\\b"
   encodeChar c | toChar c == '\t' = "\\t"
   encodeChar c | toChar c == '\n' = "\\n"
@@ -175,10 +213,10 @@
   encodeChar c | toChar c == '\\' = "\\\\"
   encodeChar c = T.singleton $ toChar c
 
-  hex :: (Enum a) => Int -> a -> Text
-  hex width c =
-    let hs = showHex (fromEnum c) "" in
-    T.pack (replicate (width - length hs) '0' <> hs)
+showHex' :: Enum a => Int -> a -> Text
+showHex' width c =
+  let hs = showHex (fromEnum c) "" in
+  T.pack (replicate (width - length hs) '0' <> hs)
 
 isLead :: Word16 -> Bool
 isLead h = h >= 0xD800 && h <= 0xDBFF
diff --git a/src/Language/PureScript/Pretty.hs b/src/Language/PureScript/Pretty.hs
--- a/src/Language/PureScript/Pretty.hs
+++ b/src/Language/PureScript/Pretty.hs
@@ -7,7 +7,6 @@
 -- * [@Language.PureScript.Pretty.Types@] Pretty printer for types
 module Language.PureScript.Pretty (module P) where
 
-import Language.PureScript.Pretty.Kinds as P
 import Language.PureScript.Pretty.Types as P
 import Language.PureScript.Pretty.Values as P
 import Language.PureScript.PSString as P (prettyPrintString)
diff --git a/src/Language/PureScript/Pretty/Common.hs b/src/Language/PureScript/Pretty/Common.hs
--- a/src/Language/PureScript/Pretty/Common.hs
+++ b/src/Language/PureScript/Pretty/Common.hs
@@ -1,29 +1,21 @@
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-
 -- |
 -- Common pretty-printing utility functions
 --
 module Language.PureScript.Pretty.Common where
 
-import Prelude.Compat
+import Prelude
 
 import Control.Monad.State (StateT, modify, get)
 
 import Data.List (elemIndices, intersperse)
 import Data.Text (Text)
-import qualified Data.Text as T
+import Data.Text qualified as T
 
-import Language.PureScript.AST (SourcePos(..), SourceSpan(..))
+import Language.PureScript.AST (SourcePos(..), SourceSpan(..), nullSourceSpan)
 import Language.PureScript.CST.Lexer (isUnquotedKey)
 
-import Text.PrettyPrint.Boxes hiding ((<>))
-import qualified Text.PrettyPrint.Boxes as Box
-
--- |
--- Wrap a string in parentheses
---
-parens :: String -> String
-parens s = "(" <> s <> ")"
+import Text.PrettyPrint.Boxes (Box(..), emptyBox, text, top, vcat, (//))
+import Text.PrettyPrint.Boxes qualified as Box
 
 parensT :: Text -> Text
 parensT s = "(" <> s <> ")"
@@ -69,9 +61,7 @@
       plus (a, c) (StrPos (a', _, c')) = (a `addPos` a', (bumpPos a <$> c') : c)
 
 instance Emit StrPos where
-  -- |
   -- Augment a string with its length (rows/column)
-  --
   emit str =
     -- TODO(Christoph): get rid of T.unpack
     let newlines = elemIndices '\n' (T.unpack str)
@@ -79,10 +69,8 @@
     in
     StrPos (SourcePos { sourcePosLine = length newlines, sourcePosColumn = T.length str - index }, str, [])
 
-  -- |
   -- Add a new mapping entry for given source position with initially zero generated position
-  --
-  addMapping SourceSpan { spanName = file, spanStart = startPos } = StrPos (zeroPos, mempty, [mapping])
+  addMapping ss@SourceSpan { spanName = file, spanStart = startPos } = StrPos (zeroPos, mempty, [ mapping | ss /= nullSourceSpan ])
     where
       mapping = SMap (T.pack file) startPos zeroPos
       zeroPos = SourcePos 0 0
@@ -104,17 +92,14 @@
 bumpPos p (SMap f s g) = SMap f s $ p `addPos` g
 
 addPos :: SourcePos -> SourcePos -> SourcePos
-addPos (SourcePos n m) (SourcePos 0 m') = SourcePos n (m+m')
-addPos (SourcePos n _) (SourcePos n' m') = SourcePos (n+n') m'
+addPos (SourcePos n m) (SourcePos 0 m') = SourcePos n (m + m')
+addPos (SourcePos n _) (SourcePos n' m') = SourcePos (n + n') m'
 
 
 data PrinterState = PrinterState { indent :: Int }
 
-emptyPrinterState :: PrinterState
-emptyPrinterState = PrinterState { indent = 0 }
-
 -- |
--- Number of characters per identation level
+-- Number of characters per indentation level
 --
 blockIndent :: Int
 blockIndent = 4
@@ -136,15 +121,6 @@
 currentIndent = do
   current <- get
   return $ emit $ T.replicate (indent current) " "
-
--- |
--- Print many lines
---
-prettyPrintMany :: (Emit gen) => (a -> StateT PrinterState Maybe gen) -> [a] -> StateT PrinterState Maybe gen
-prettyPrintMany f xs = do
-  ss <- mapM f xs
-  indentString <- currentIndent
-  return $ intercalate (emit "\n") $ map (mappend indentString) ss
 
 objectKeyRequiresQuoting :: Text -> Bool
 objectKeyRequiresQuoting = not . isUnquotedKey
diff --git a/src/Language/PureScript/Pretty/Kinds.hs b/src/Language/PureScript/Pretty/Kinds.hs
deleted file mode 100644
--- a/src/Language/PureScript/Pretty/Kinds.hs
+++ /dev/null
@@ -1,57 +0,0 @@
--- |
--- Pretty printer for kinds
---
-module Language.PureScript.Pretty.Kinds
-  ( prettyPrintKind
-  ) where
-
-import Prelude.Compat
-
-import Control.Arrow (ArrowPlus(..))
-import Control.PatternArrows as PA
-
-import Data.Maybe (fromMaybe)
-import qualified Data.Text as T
-import Data.Text (Text)
-
-import Language.PureScript.Crash
-import Language.PureScript.Kinds
-import Language.PureScript.Names
-import Language.PureScript.Pretty.Common
-
-typeLiterals :: Pattern () (Kind a) Text
-typeLiterals = mkPattern match
-  where
-  match (KUnknown _ u) =
-    Just $ T.cons 'k' (T.pack (show u))
-  match (NamedKind _ name) =
-    Just $ if isQualifiedWith (moduleNameFromString "Prim") name
-      then runProperName (disqualify name)
-      else showQualified runProperName name
-  match _ = Nothing
-
-matchRow :: Pattern () (Kind a) ((), Kind a)
-matchRow = mkPattern match
-  where
-  match (Row _ k) = Just ((), k)
-  match _ = Nothing
-
-funKind :: Pattern () (Kind a) (Kind a, Kind a)
-funKind = mkPattern match
-  where
-  match (FunKind _ arg ret) = Just (arg, ret)
-  match _ = Nothing
-
--- | Generate a pretty-printed string representing a Kind
-prettyPrintKind :: Kind a -> Text
-prettyPrintKind
-  = fromMaybe (internalError "Incomplete pattern")
-  . PA.pattern matchKind ()
-  where
-  matchKind :: Pattern () (Kind a) Text
-  matchKind = buildPrettyPrinter operators (typeLiterals <+> fmap parensT matchKind)
-
-  operators :: OperatorTable () (Kind a) Text
-  operators =
-    OperatorTable [ [ Wrap matchRow $ \_ k -> "# " <> k]
-                  , [ AssocR funKind $ \arg ret -> arg <> " -> " <> ret ] ]
diff --git a/src/Language/PureScript/Pretty/Types.hs b/src/Language/PureScript/Pretty/Types.hs
--- a/src/Language/PureScript/Pretty/Types.hs
+++ b/src/Language/PureScript/Pretty/Types.hs
@@ -6,7 +6,7 @@
   , PrettyPrintConstraint
   , convertPrettyPrintType
   , typeAsBox
-  , suggestedTypeAsBox
+  , typeDiffAsBox
   , prettyPrintType
   , prettyPrintTypeWithUnicode
   , prettyPrintSuggestedType
@@ -16,80 +16,83 @@
   , prettyPrintObjectKey
   ) where
 
-import Prelude.Compat hiding ((<>))
+import Prelude hiding ((<>))
 
 import Control.Arrow ((<+>))
+import Control.Lens (_2, (%~))
 import Control.PatternArrows as PA
 
-import Data.Functor (($>))
-import Data.Maybe (fromMaybe)
+import Data.Maybe (fromMaybe, catMaybes)
 import Data.Text (Text)
-import qualified Data.Text as T
+import Data.Text qualified as T
 
-import Language.PureScript.Crash
-import Language.PureScript.Environment
-import Language.PureScript.Kinds
-import Language.PureScript.Names
-import Language.PureScript.Pretty.Common
-import Language.PureScript.Pretty.Kinds
-import Language.PureScript.Types
+import Language.PureScript.Crash (internalError)
+import Language.PureScript.Environment (tyFunction, tyRecord)
+import Language.PureScript.Names (OpName(..), OpNameType(..), ProperName(..), ProperNameType(..), Qualified, coerceProperName, disqualify, showQualified)
+import Language.PureScript.Pretty.Common (before, objectKeyRequiresQuoting)
+import Language.PureScript.Types (Constraint(..), pattern REmptyKinded, RowListItem(..), Type(..), TypeVarVisibility(..), WildcardData(..), eqType, rowToSortedList, typeVarVisibilityPrefix)
 import Language.PureScript.PSString (PSString, prettyPrintString, decodeString)
 import Language.PureScript.Label (Label(..))
 
-import Text.PrettyPrint.Boxes hiding ((<+>))
+import Text.PrettyPrint.Boxes (Box(..), hcat, hsep, left, moveRight, nullBox, render, text, top, vcat, (<>))
 
 data PrettyPrintType
   = PPTUnknown Int
-  | PPTypeVar Text
+  | PPTypeVar Text (Maybe Text)
   | PPTypeLevelString PSString
+  | PPTypeLevelInt Integer
   | PPTypeWildcard (Maybe Text)
   | PPTypeConstructor (Qualified (ProperName 'TypeName))
   | PPTypeOp (Qualified (OpName 'TypeOpName))
   | PPSkolem Text Int
   | PPTypeApp PrettyPrintType PrettyPrintType
+  | PPKindArg PrettyPrintType
   | PPConstrainedType PrettyPrintConstraint PrettyPrintType
-  | PPKindedType PrettyPrintType (Kind ())
+  | PPKindedType PrettyPrintType PrettyPrintType
   | PPBinaryNoParensType PrettyPrintType PrettyPrintType PrettyPrintType
   | PPParensInType PrettyPrintType
-  | PPForAll [(Text, Maybe (Kind ()))] PrettyPrintType
+  | PPForAll [(TypeVarVisibility, Text, Maybe PrettyPrintType)] PrettyPrintType
   | PPFunction PrettyPrintType PrettyPrintType
   | PPRecord [(Label, PrettyPrintType)] (Maybe PrettyPrintType)
   | PPRow [(Label, PrettyPrintType)] (Maybe PrettyPrintType)
   | PPTruncated
 
-type PrettyPrintConstraint = (Qualified (ProperName 'ClassName), [PrettyPrintType])
+type PrettyPrintConstraint = (Qualified (ProperName 'ClassName), [PrettyPrintType], [PrettyPrintType])
 
 convertPrettyPrintType :: Int -> Type a -> PrettyPrintType
 convertPrettyPrintType = go
   where
   go _ (TUnknown _ n) = PPTUnknown n
-  go _ (TypeVar _ t) = PPTypeVar t
+  go _ (TypeVar _ t) = PPTypeVar t Nothing
   go _ (TypeLevelString _ s) = PPTypeLevelString s
-  go _ (TypeWildcard _ n) = PPTypeWildcard n
+  go _ (TypeLevelInt _ n) = PPTypeLevelInt n
+  go _ (TypeWildcard _ (HoleWildcard n)) = PPTypeWildcard (Just n)
+  go _ (TypeWildcard _ _) = PPTypeWildcard Nothing
   go _ (TypeConstructor _ c) = PPTypeConstructor c
   go _ (TypeOp _ o) = PPTypeOp o
-  go _ (Skolem _ t n _) = PPSkolem t n
+  go _ (Skolem _ t _ n _) = PPSkolem t n
   go _ (REmpty _) = PPRow [] Nothing
   -- Guard the remaining "complex" type atoms on the current depth value. The
   -- prior  constructors can all be printed simply so it's not really helpful to
   -- truncate them.
   go d _ | d < 0 = PPTruncated
-  go d (ConstrainedType _ (Constraint _ cls args _) ty) = PPConstrainedType (cls, go (d-1) <$> args) (go d ty)
-  go d (KindedType _ ty k) = PPKindedType (go (d-1) ty) (k $> ())
+  go d (ConstrainedType _ (Constraint _ cls kargs args _) ty) = PPConstrainedType (cls, go (d-1) <$> kargs, go (d-1) <$> args) (go d ty)
+  go d (KindedType _ ty k) = PPKindedType (go (d-1) ty) (go (d-1) k)
   go d (BinaryNoParensType _ ty1 ty2 ty3) = PPBinaryNoParensType (go (d-1) ty1) (go (d-1) ty2) (go (d-1) ty3)
   go d (ParensInType _ ty) = PPParensInType (go (d-1) ty)
   go d ty@RCons{} = uncurry PPRow (goRow d ty)
-  go d (ForAll _ v mbK ty _) = goForAll d [(v, fmap ($> ()) mbK)] ty
+  go d (ForAll _ vis v mbK ty _) = goForAll d [(vis, v, fmap (go (d-1)) mbK)] ty
   go d (TypeApp _ a b) = goTypeApp d a b
+  go d (KindApp _ a b) = PPTypeApp (go (d-1) a) (PPKindArg (go (d-1) b))
 
-  goForAll d vs (ForAll _ v mbK ty _) = goForAll d ((v, fmap ($> ()) mbK) : vs) ty
-  goForAll d vs ty = PPForAll vs (go (d-1) ty)
+  goForAll d vs (ForAll _ vis v mbK ty _) = goForAll d ((vis, v, fmap (go (d-1)) mbK) : vs) ty
+  goForAll d vs ty = PPForAll (reverse vs) (go (d-1) ty)
 
   goRow d ty =
     let (items, tail_) = rowToSortedList ty
     in ( map (\item -> (rowListLabel item, go (d-1) (rowListType item))) items
        , case tail_ of
-           REmpty _ -> Nothing
+           REmptyKinded _ _ -> Nothing
            _ -> Just (go (d-1) tail_)
        )
 
@@ -109,7 +112,7 @@
     doubleRightArrow = if troUnicode tro then "⇒" else "=>"
 
 constraintAsBox :: PrettyPrintConstraint -> Box
-constraintAsBox (pn, tys) = typeAsBox' (foldl PPTypeApp (PPTypeConstructor (fmap coerceProperName pn)) tys)
+constraintAsBox (pn, ks, tys) = typeAsBox' (foldl PPTypeApp (foldl (\a b -> PPTypeApp a (PPKindArg b)) (PPTypeConstructor (fmap coerceProperName pn)) ks) tys)
 
 -- |
 -- Generate a pretty-printed string representing a Row
@@ -118,13 +121,13 @@
 prettyPrintRowWith tro open close labels rest =
   case (labels, rest) of
     ([], Nothing) ->
-      text [open, close]
+      if troRowAsDiff tro then text [ open, ' ' ] <> text "..." <> text [ ' ', close ] else text [ open, close ]
     ([], Just _) ->
       text [ open, ' ' ] <> tailToPs rest <> text [ ' ', close ]
     _ ->
       vcat left $
         zipWith (\(nm, ty) i -> nameAndTypeToPs (if i == 0 then open else ',') nm ty) labels [0 :: Int ..] ++
-        [ tailToPs rest, text [close] ]
+        catMaybes [ rowDiff, pure $ tailToPs rest, pure $ text [close] ]
 
   where
   nameAndTypeToPs :: Char -> Label -> PrettyPrintType -> Box
@@ -132,6 +135,8 @@
 
   doubleColon = if troUnicode tro then "∷" else "::"
 
+  rowDiff = if troRowAsDiff tro then Just (text "...") else Nothing
+
   tailToPs :: Maybe PrettyPrintType -> Box
   tailToPs Nothing = nullBox
   tailToPs (Just other) = text "| " <> typeAsBox' other
@@ -142,16 +147,22 @@
   match (PPTypeApp f x) = Just (f, x)
   match _ = Nothing
 
+kindArg :: Pattern () PrettyPrintType ((), PrettyPrintType)
+kindArg = mkPattern match
+  where
+  match (PPKindArg ty) = Just ((), ty)
+  match _ = Nothing
+
 appliedFunction :: Pattern () PrettyPrintType (PrettyPrintType, PrettyPrintType)
 appliedFunction = mkPattern match
   where
   match (PPFunction arg ret) = Just (arg, ret)
   match _ = Nothing
 
-kinded :: Pattern () PrettyPrintType (Kind (), PrettyPrintType)
+kinded :: Pattern () PrettyPrintType (PrettyPrintType, PrettyPrintType)
 kinded = mkPattern match
   where
-  match (PPKindedType t k) = Just (k, t)
+  match (PPKindedType t k) = Just (t, k)
   match _ = Nothing
 
 constrained :: Pattern () PrettyPrintType (PrettyPrintConstraint, PrettyPrintType)
@@ -168,13 +179,14 @@
 
 matchTypeAtom :: TypeRenderOptions -> Pattern () PrettyPrintType Box
 matchTypeAtom tro@TypeRenderOptions{troSuggesting = suggesting} =
-    typeLiterals <+> fmap ((`before` (text ")")) . (text "(" <>)) (matchType tro)
+    typeLiterals <+> fmap ((`before` text ")") . (text "(" <>)) (matchType tro)
   where
     typeLiterals :: Pattern () PrettyPrintType Box
     typeLiterals = mkPattern match where
-      match (PPTypeWildcard name) = Just $ maybe (text "_") (text . ('?' :) . T.unpack) name
-      match (PPTypeVar var) = Just $ text $ T.unpack var
+      match (PPTypeWildcard name) = Just $ text $ maybe "_" (('?' :) . T.unpack) name
+      match (PPTypeVar var _) = Just $ text $ T.unpack var
       match (PPTypeLevelString s) = Just $ text $ T.unpack $ prettyPrintString s
+      match (PPTypeLevelInt n) = Just $ text $ show n
       match (PPTypeConstructor ctor) = Just $ text $ T.unpack $ runProperName $ disqualify ctor
       match (PPTUnknown u)
         | suggesting = Just $ text "_"
@@ -194,19 +206,22 @@
 matchType tro = buildPrettyPrinter operators (matchTypeAtom tro) where
   operators :: OperatorTable () PrettyPrintType Box
   operators =
-    OperatorTable [ [ AssocL typeApp $ \f x -> keepSingleLinesOr (moveRight 2) f x ]
+    OperatorTable [ [ Wrap kindArg $ \_ ty -> text "@" <> ty ]
+                  , [ AssocL typeApp $ \f x -> keepSingleLinesOr (moveRight 2) f x ]
                   , [ AssocR appliedFunction $ \arg ret -> keepSingleLinesOr id arg (text rightArrow <> " " <> ret) ]
                   , [ Wrap constrained $ \deps ty -> constraintsAsBox tro deps ty ]
-                  , [ Wrap forall_ $ \idents ty -> keepSingleLinesOr (moveRight 2) (text (forall' ++ " " ++ unwords (fmap printMbKindedType idents) ++ ".")) ty ]
-                  , [ Wrap kinded $ \k ty -> keepSingleLinesOr (moveRight 2) ty (text (doubleColon ++ " " ++ T.unpack (prettyPrintKind k))) ]
+                  , [ Wrap forall_ $ \idents ty -> keepSingleLinesOr (moveRight 2) (hsep 1 top (text forall' : fmap printMbKindedType idents) <> text ".") ty ]
+                  , [ Wrap kinded $ \ty k -> keepSingleLinesOr (moveRight 2) (typeAsBox' ty) (text (doubleColon ++ " ") <> k) ]
                   , [ Wrap explicitParens $ \_ ty -> ty ]
                   ]
 
   rightArrow = if troUnicode tro then "→" else "->"
   forall' = if troUnicode tro then "∀" else "forall"
   doubleColon = if troUnicode tro then "∷" else "::"
-  printMbKindedType (v, mbK) = maybe v (\k -> unwords ["(" ++ v, doubleColon, T.unpack (prettyPrintKind k) ++ ")"]) mbK
 
+  printMbKindedType (vis, v, Nothing) = text (T.unpack $ typeVarVisibilityPrefix vis) <> text v
+  printMbKindedType (vis, v, Just k) = text ("(" ++ T.unpack (typeVarVisibilityPrefix vis) ++ v ++ " " ++ doubleColon ++ " ") <> typeAsBox' k <> text ")"
+
   -- If both boxes span a single line, keep them on the same line, or else
   -- use the specified function to modify the second box, then combine vertically.
   keepSingleLinesOr :: (Box -> Box) -> Box -> Box -> Box
@@ -214,10 +229,10 @@
     | rows b1 > 1 || rows b2 > 1 = vcat left [ b1, f b2 ]
     | otherwise = hcat top [ b1, text " ", b2]
 
-forall_ :: Pattern () PrettyPrintType ([(String, Maybe (Kind ()))], PrettyPrintType)
+forall_ :: Pattern () PrettyPrintType ([(TypeVarVisibility, String, Maybe PrettyPrintType)], PrettyPrintType)
 forall_ = mkPattern match
   where
-  match (PPForAll idents ty) = Just (map (\(v, mbK) -> (T.unpack v, mbK)) idents, ty)
+  match (PPForAll idents ty) = Just ((_2 %~ T.unpack) <$> idents, ty)
   match _ = Nothing
 
 typeAtomAsBox' :: PrettyPrintType -> Box
@@ -238,22 +253,29 @@
 typeAsBox :: Int -> Type a -> Box
 typeAsBox maxDepth = typeAsBox' . convertPrettyPrintType maxDepth
 
-suggestedTypeAsBox :: PrettyPrintType -> Box
-suggestedTypeAsBox = typeAsBoxImpl suggestingOptions
+typeDiffAsBox' :: PrettyPrintType -> Box
+typeDiffAsBox' = typeAsBoxImpl diffOptions
 
+typeDiffAsBox :: Int -> Type a -> Box
+typeDiffAsBox maxDepth = typeDiffAsBox' . convertPrettyPrintType maxDepth
+
 data TypeRenderOptions = TypeRenderOptions
   { troSuggesting :: Bool
   , troUnicode :: Bool
+  , troRowAsDiff :: Bool
   }
 
 suggestingOptions :: TypeRenderOptions
-suggestingOptions = TypeRenderOptions True False
+suggestingOptions = TypeRenderOptions True False False
 
 defaultOptions :: TypeRenderOptions
-defaultOptions = TypeRenderOptions False False
+defaultOptions = TypeRenderOptions False False False
 
+diffOptions :: TypeRenderOptions
+diffOptions = TypeRenderOptions False False True
+
 unicodeOptions :: TypeRenderOptions
-unicodeOptions = TypeRenderOptions False True
+unicodeOptions = TypeRenderOptions False True False
 
 typeAsBoxImpl :: TypeRenderOptions -> PrettyPrintType -> Box
 typeAsBoxImpl tro
diff --git a/src/Language/PureScript/Pretty/Values.hs b/src/Language/PureScript/Pretty/Values.hs
--- a/src/Language/PureScript/Pretty/Values.hs
+++ b/src/Language/PureScript/Pretty/Values.hs
@@ -7,25 +7,24 @@
   , prettyPrintBinderAtom
   ) where
 
-import Prelude.Compat hiding ((<>))
+import Prelude hiding ((<>))
 
 import Control.Arrow (second)
 
-import Data.Maybe (maybe)
 import Data.Text (Text)
-import qualified Data.List.NonEmpty as NEL
-import qualified Data.Monoid as Monoid ((<>))
-import qualified Data.Text as T
+import Data.List.NonEmpty qualified as NEL
+import Data.Monoid qualified as Monoid ((<>))
+import Data.Text qualified as T
 
-import Language.PureScript.AST
-import Language.PureScript.Crash
-import Language.PureScript.Names
-import Language.PureScript.Pretty.Common
+import Language.PureScript.AST (AssocList(..), Binder(..), CaseAlternative(..), Declaration(..), DoNotationElement(..), Expr(..), Guard(..), GuardedExpr(..), Literal(..), PathNode(..), PathTree(..), TypeDeclarationData(..), pattern ValueDecl, WhereProvenance(..))
+import Language.PureScript.Crash (internalError)
+import Language.PureScript.Names (OpName(..), ProperName(..), Qualified(..), disqualify, runModuleName, showIdent)
+import Language.PureScript.Pretty.Common (before, beforeWithSpace, parensT)
 import Language.PureScript.Pretty.Types (typeAsBox, typeAtomAsBox, prettyPrintObjectKey)
 import Language.PureScript.Types (Constraint(..))
 import Language.PureScript.PSString (PSString, prettyPrintString)
 
-import Text.PrettyPrint.Boxes
+import Text.PrettyPrint.Boxes (Box, left, moveRight, text, vcat, vsep, (//), (<>))
 
 -- TODO(Christoph): remove T.unpack s
 
@@ -67,9 +66,9 @@
     printNode (key, Leaf val) = prettyPrintUpdateEntry d key val
     printNode (key, Branch val) = textT (prettyPrintObjectKey key) `beforeWithSpace` prettyPrintUpdate val
 prettyPrintValue d (App val arg) = prettyPrintValueAtom (d - 1) val `beforeWithSpace` prettyPrintValueAtom (d - 1) arg
+prettyPrintValue d (VisibleTypeApp val _) = prettyPrintValueAtom (d - 1) val
+prettyPrintValue d (Unused val) = prettyPrintValue d val
 prettyPrintValue d (Abs arg val) = text ('\\' : T.unpack (prettyPrintBinder arg) ++ " -> ") // moveRight 2 (prettyPrintValue (d - 1) val)
-prettyPrintValue d (TypeClassDictionaryConstructorApp className ps) =
-  text (T.unpack (runProperName (disqualify className)) ++ " ") <> prettyPrintValueAtom (d - 1) ps
 prettyPrintValue d (Case values binders) =
   (text "case " <> foldr beforeWithSpace (text "of") (map (prettyPrintValueAtom (d - 1)) values)) //
     moveRight 2 (vcat left (map (prettyPrintCaseAlternative (d - 1)) binders))
@@ -86,10 +85,10 @@
 prettyPrintValue d (Ado m els yield) =
   textT (maybe "" ((Monoid.<> ".") . runModuleName) m) <> text "ado " <> vcat left (map (prettyPrintDoNotationElement (d - 1)) els) //
   (text "in " <> prettyPrintValue (d - 1) yield)
-prettyPrintValue d (TypeClassDictionary (Constraint _ name tys _) _ _) = foldl1 beforeWithSpace $ text ("#dict " ++ T.unpack (runProperName (disqualify name))) : map (typeAtomAsBox d) tys
+-- TODO: constraint kind args
+prettyPrintValue d (TypeClassDictionary (Constraint _ name _ tys _) _ _) = foldl1 beforeWithSpace $ text ("#dict " ++ T.unpack (runProperName (disqualify name))) : map (typeAtomAsBox d) tys
 prettyPrintValue _ (DeferredDictionary name _) = text $ "#dict " ++ T.unpack (runProperName (disqualify name))
-prettyPrintValue _ (TypeClassDictionaryAccessor className ident) =
-    text "#dict-accessor " <> text (T.unpack (runProperName (disqualify className))) <> text "." <> text (T.unpack (showIdent ident)) <> text ">"
+prettyPrintValue _ (DerivedInstancePlaceholder name _) = text $ "#derived " ++ T.unpack (runProperName (disqualify name))
 prettyPrintValue d (TypedValue _ val _) = prettyPrintValue d val
 prettyPrintValue d (PositionedValue _ _ val) = prettyPrintValue d val
 prettyPrintValue d (Literal _ l) = prettyPrintLiteralValue d l
@@ -225,7 +224,7 @@
 --
 prettyPrintBinder :: Binder -> Text
 prettyPrintBinder (ConstructorBinder _ ctor []) = runProperName (disqualify ctor)
-prettyPrintBinder (ConstructorBinder _ ctor args) = (runProperName (disqualify ctor)) Monoid.<> " " Monoid.<> T.unwords (map prettyPrintBinderAtom args)
+prettyPrintBinder (ConstructorBinder _ ctor args) = runProperName (disqualify ctor) Monoid.<> " " Monoid.<> T.unwords (map prettyPrintBinderAtom args)
 prettyPrintBinder (PositionedBinder _ _ binder) = prettyPrintBinder binder
 prettyPrintBinder (TypedBinder _ binder) = prettyPrintBinder binder
 prettyPrintBinder b = prettyPrintBinderAtom b
diff --git a/src/Language/PureScript/Publish.hs b/src/Language/PureScript/Publish.hs
--- a/src/Language/PureScript/Publish.hs
+++ b/src/Language/PureScript/Publish.hs
@@ -1,5 +1,3 @@
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-
 module Language.PureScript.Publish
   ( preparePackage
   , preparePackage'
@@ -19,41 +17,43 @@
   , getModules
   ) where
 
-import Protolude hiding (stdin)
+import Protolude hiding (stdin, lines)
 
 import Control.Arrow ((***))
 import Control.Category ((>>>))
 import Control.Monad.Writer.Strict (MonadWriter, WriterT, runWriterT, tell)
 
-import Data.Aeson.BetterErrors (Parse, parse, keyMay, eachInObjectWithKey, eachInObject, key, keyOrDefault, asBool, asString, withString, asText, withText)
-import qualified Data.ByteString.Lazy as BL
-import Data.Char (isSpace)
+import Data.ByteString.Lazy qualified as BL
 import Data.String (String, lines)
-import Data.List (stripPrefix, (\\), nubBy)
-import Data.List.NonEmpty (NonEmpty(..))
-import qualified Data.Text as T
+import Data.List (stripPrefix, (\\))
+import Data.Text qualified as T
 import Data.Time.Clock (UTCTime)
 import Data.Time.Clock.POSIX (posixSecondsToUTCTime)
-import Data.Version
-import qualified Distribution.SPDX as SPDX
-import qualified Distribution.Parsec.Class as CabalParsec
+import Data.Version (Version)
+import Distribution.SPDX qualified as SPDX
+import Distribution.Parsec qualified as CabalParsec
 
 import System.Directory (doesFileExist)
 import System.FilePath.Glob (globDir1)
 import System.Process (readProcess)
 
 import Web.Bower.PackageMeta (PackageMeta(..), PackageName, Repository(..))
-import qualified Web.Bower.PackageMeta as Bower
+import Web.Bower.PackageMeta qualified as Bower
 
-import Language.PureScript.Publish.ErrorsWarnings
-import Language.PureScript.Publish.Utils
-import qualified Language.PureScript as P (version, ModuleName)
-import qualified Language.PureScript.Docs as D
+import Language.PureScript.Publish.ErrorsWarnings (InternalError(..), OtherError(..), PackageError(..), PackageWarning(..), RepositoryFieldError(..), UserError(..), printError, printWarnings)
+import Language.PureScript.Publish.Registry.Compat (asPursJson, toBowerPackage)
+import Language.PureScript.Publish.Utils (globRelative, purescriptSourceFiles)
+import Language.PureScript qualified as P (version, ModuleName)
+import Language.PureScript.CoreFn.FromJSON qualified as P
+import Language.PureScript.Docs qualified as D
+import Data.Aeson.BetterErrors (Parse, withString, eachInObjectWithKey, asString, key, keyMay, parse, mapError)
+import Language.PureScript.Docs.Types (ManifestError(BowerManifest, PursManifest))
 
 data PublishOptions = PublishOptions
   { -- | How to obtain the version tag and version that the data being
     -- generated will refer to.
     publishGetVersion :: PrepareM (Text, Version)
+    -- | How to obtain at what time the version was committed
   , publishGetTagTime :: Text -> PrepareM UTCTime
   , -- | What to do when the working tree is dirty
     publishWorkingTreeDirty :: PrepareM ()
@@ -131,11 +131,23 @@
 
 preparePackage' :: PublishOptions -> PrepareM D.UploadedPackage
 preparePackage' opts = do
-  unlessM (liftIO (doesFileExist (publishManifestFile opts))) (userError PackageManifestNotFound)
   checkCleanWorkingTree opts
 
-  pkgMeta <- liftIO (Bower.decodeFile (publishManifestFile opts))
-               >>= flip catchLeft (userError . CouldntDecodePackageManifest)
+  let manifestPath = publishManifestFile opts
+  pkgMeta <- liftIO (try (BL.readFile manifestPath)) >>= \case
+    Left (_ :: IOException) ->
+      userError $ PackageManifestNotFound manifestPath
+    Right found -> do
+      -- We can determine the type of the manifest file based on the file path,
+      -- as both the PureScript and Bower registries require their manifest
+      -- files to have specific names.
+      let isPursJson = "purs.json" `T.isInfixOf` T.pack manifestPath
+      if isPursJson then do
+        pursJson <- catchLeft (parse (mapError PursManifest asPursJson) found) (userError . CouldntDecodePackageManifest)
+        catchLeft (toBowerPackage pursJson) (userError . CouldntConvertPackageManifest)
+      else
+        catchLeft (parse (mapError BowerManifest Bower.asPackageMeta) found) (userError . CouldntDecodePackageManifest)
+
   checkLicense pkgMeta
 
   (pkgVersionTag, pkgVersion) <- publishGetVersion opts
@@ -146,15 +158,12 @@
 
   (pkgModules, pkgModuleMap)  <- getModules opts (map (second fst) resolvedDeps)
 
-  let declaredDeps = map fst $
-                       Bower.bowerDependencies pkgMeta
-                       ++ Bower.bowerDevDependencies pkgMeta
+  let declaredDeps = map fst $ Bower.bowerDependencies pkgMeta
   pkgResolvedDependencies <- handleDeps declaredDeps (map (second snd) resolvedDeps)
 
   let pkgUploader = D.NotYetKnown
   let pkgCompilerVersion = P.version
 
-
   return D.Package{..}
 
 getModules
@@ -165,24 +174,31 @@
   (inputFiles, depsFiles) <- liftIO (getInputAndDepsFiles paths)
 
   (modules, moduleMap) <-
-    (liftIO (runExceptT (D.collectDocs (publishCompileOutputDir opts) inputFiles depsFiles)))
+    liftIO (runExceptT (D.collectDocs (publishCompileOutputDir opts) inputFiles depsFiles))
     >>= either (userError . CompileError) return
 
   pure (map snd modules, moduleMap)
 
 data TreeStatus = Clean | Dirty deriving (Show, Eq, Ord, Enum)
 
-getGitWorkingTreeStatus :: PrepareM TreeStatus
-getGitWorkingTreeStatus = do
-  out <- readProcess' "git" ["status", "--porcelain"] ""
+getGitWorkingTreeStatus :: FilePath -> PrepareM TreeStatus
+getGitWorkingTreeStatus manifestFilePath = do
+  output <- lines <$> readProcess' "git" ["status", "--porcelain"] ""
+  -- The PureScript registry generates purs.json files when publishing legacy
+  -- packages. To ensure these packages can also be published to Pursuit, we
+  -- include an exemption to the working tree status check that will ignore
+  -- untracked purs.json files. Note that _modified_ purs.json files will
+  -- still fail this check.
+  let untrackedPursJson = "?? " <> manifestFilePath
+  let filtered = filter (/= untrackedPursJson) output
   return $
-    if all null . lines $ out
+    if all null filtered
       then Clean
       else Dirty
 
 checkCleanWorkingTree :: PublishOptions -> PrepareM ()
 checkCleanWorkingTree opts = do
-  status <- getGitWorkingTreeStatus
+  status <- getGitWorkingTreeStatus (publishManifestFile opts)
   unless (status == Clean) $
     publishWorkingTreeDirty opts
 
@@ -199,7 +215,7 @@
     dropWhile isSpace >>> reverse >>> dropWhile isSpace >>> reverse
   parseMay str = do
     digits <- stripPrefix "v" str
-    (str,) <$> D.parseVersion' digits
+    (str,) <$> P.parseVersion' digits
 
 -- | Given a git tag, get the time it was created.
 getTagTime :: Text -> PrepareM UTCTime
@@ -215,7 +231,7 @@
     Nothing -> do
       giturl <- catchError (Just . T.strip . T.pack <$> readProcess' "git" ["config", "remote.origin.url"] "")
                   (const (return Nothing))
-      userError (BadRepositoryField (RepositoryFieldMissing (giturl >>= extractGithub >>= return . format)))
+      userError (BadRepositoryField (RepositoryFieldMissing (giturl >>= extractGithub <&> format)))
     Just Repository{..} -> do
       unless (repositoryType == "git")
         (userError (BadRepositoryField (BadRepositoryType repositoryType)))
@@ -296,12 +312,7 @@
     Right res ->
       pure res
     Left err ->
-      case parse asLegacyResolutions depsBS of
-        Right res -> do
-          warn $ LegacyResolutionsFormat resolutionsFile
-          pure res
-        Left _ ->
-          userError $ ResolutionsFileError resolutionsFile err
+      userError $ ResolutionsFileError resolutionsFile err
 
 -- | Parser for resolutions files, which contain information about the packages
 -- which this package depends on. A resolutions file should look something like
@@ -335,51 +346,10 @@
 
 asVersion :: Parse D.PackageError Version
 asVersion =
-  withString (note D.InvalidVersion . D.parseVersion')
-
--- | Extracts all dependencies and their versions from a legacy resolutions
--- file, which is based on the output of `bower list --json --offline`.
-asLegacyResolutions :: Parse D.PackageError [(PackageName, (FilePath, DependencyStatus))]
-asLegacyResolutions =
-  nubBy ((==) `on` fst) <$> go True
-  where
-  go isToplevel =
-    keyDependencies isToplevel $
-        (++) <$> (takeJusts <$> eachInObjectWithKey parsePackageName asDirectoryAndDependencyStatus)
-             <*> (concatMap snd <$> eachInObject (go False))
-
-
-  keyDependencies isToplevel =
-    if isToplevel
-      then key "dependencies"
-      else fmap (fromMaybe []) . keyMay "dependencies"
-
-  takeJusts :: [(a, Maybe b)] -> [(a,b)]
-  takeJusts = mapMaybe $ \(x,y) -> (x,) <$> y
-
-  asDirectoryAndDependencyStatus :: Parse D.PackageError (Maybe (FilePath, DependencyStatus))
-  asDirectoryAndDependencyStatus = do
-    isMissing <- keyOrDefault "missing" False asBool
-    if isMissing
-      then return Nothing
-      else do
-        directory <- key "canonicalDir" asString
-        status <- key "pkgMeta" $
-           keyOrDefault "_resolution" NoResolution $ do
-             type_ <- key "type" asText
-             case type_ of
-              "version" ->
-                key "tag" $ fmap ResolvedVersion $ withText $ \tag ->
-                  let
-                    tag' = fromMaybe tag (T.stripPrefix "v" tag)
-                  in
-                    note D.InvalidVersion (D.parseVersion' (T.unpack tag'))
-              other ->
-                return (ResolvedOther other)
-        return $ Just (directory, status)
+  withString (note D.InvalidVersion . P.parseVersion')
 
 parsePackageName :: Text -> Either D.PackageError PackageName
-parsePackageName = first D.ErrorInPackageMeta . Bower.parsePackageName
+parsePackageName = first D.ErrorInPackageMeta . D.mapLeft BowerManifest . Bower.parsePackageName
 
 handleDeps
   :: [PackageName]
diff --git a/src/Language/PureScript/Publish/BoxesHelpers.hs b/src/Language/PureScript/Publish/BoxesHelpers.hs
--- a/src/Language/PureScript/Publish/BoxesHelpers.hs
+++ b/src/Language/PureScript/Publish/BoxesHelpers.hs
@@ -4,13 +4,13 @@
   , module Language.PureScript.Publish.BoxesHelpers
   ) where
 
-import Prelude.Compat
+import Prelude
 
 import Data.Text (Text)
-import qualified Data.Text as T
+import Data.Text qualified as T
 import System.IO (hPutStr, stderr)
 
-import qualified Text.PrettyPrint.Boxes as Boxes
+import Text.PrettyPrint.Boxes qualified as Boxes
 
 width :: Int
 width = 79
@@ -44,6 +44,3 @@
 
 printToStderr :: Boxes.Box -> IO ()
 printToStderr = hPutStr stderr . Boxes.render
-
-printToStdout :: Boxes.Box -> IO ()
-printToStdout = putStr . Boxes.render
diff --git a/src/Language/PureScript/Publish/ErrorsWarnings.hs b/src/Language/PureScript/Publish/ErrorsWarnings.hs
--- a/src/Language/PureScript/Publish/ErrorsWarnings.hs
+++ b/src/Language/PureScript/Publish/ErrorsWarnings.hs
@@ -7,32 +7,32 @@
   , RepositoryFieldError(..)
   , JSONSource(..)
   , printError
-  , printErrorToStdout
   , renderError
   , printWarnings
   , renderWarnings
   ) where
 
-import Prelude.Compat
+import Prelude
 
 import Control.Exception (IOException)
 
 import Data.Aeson.BetterErrors (ParseError, displayError)
 import Data.List (intersperse)
 import Data.List.NonEmpty (NonEmpty(..))
-import Data.Maybe
-import Data.Monoid hiding (First, getFirst)
-import Data.Semigroup (First(..))
-import Data.Version
-import qualified Data.List.NonEmpty as NonEmpty
+import Data.Maybe (catMaybes, fromMaybe)
+import Data.Monoid (Any(..))
+import Data.Version (Version, showVersion)
+import Data.List.NonEmpty qualified as NonEmpty
 import Data.Text (Text)
-import qualified Data.Text as T
+import Data.Text qualified as T
 
-import qualified Language.PureScript.Docs.Types as D
-import qualified Language.PureScript as P
-import Language.PureScript.Publish.BoxesHelpers
+import Language.PureScript.Docs.Types qualified as D
+import Language.PureScript qualified as P
+import Language.PureScript.Publish.BoxesHelpers (Box, bulletedList, bulletedListT, indented, nullBox, para, printToStderr, spacer, successivelyIndented, vcat)
 
 import Web.Bower.PackageMeta (PackageName, runPackageName, showBowerError)
+import Web.Bower.PackageMeta qualified as Bower
+import Language.PureScript.Docs.Types (showManifestError)
 
 -- | An error which meant that it was not possible to retrieve metadata for a
 -- package.
@@ -45,14 +45,14 @@
 data PackageWarning
   = NoResolvedVersion PackageName
   | UnacceptableVersion (PackageName, Text)
-  | DirtyWorkingTree_Warn
-  | LegacyResolutionsFormat FilePath
+  | DirtyWorkingTreeWarn
   deriving (Show)
 
 -- | An error that should be fixed by the user.
 data UserError
-  = PackageManifestNotFound
+  = PackageManifestNotFound FilePath
   | ResolutionsFileNotFound
+  | CouldntConvertPackageManifest Bower.BowerError
   | CouldntDecodePackageManifest (ParseError D.ManifestError)
   | TagMustBeCheckedOut
   | AmbiguousVersions [Version] -- Invariant: should contain at least two elements
@@ -89,9 +89,6 @@
 printError :: PackageError -> IO ()
 printError = printToStderr . renderError
 
-printErrorToStdout :: PackageError -> IO ()
-printErrorToStdout = printToStdout . renderError
-
 renderError :: PackageError -> Box
 renderError err =
   case err of
@@ -121,17 +118,26 @@
 
 displayUserError :: UserError -> Box
 displayUserError e = case e of
-  PackageManifestNotFound ->
-    para (
-      "The package manifest file was not found. Please create one, or run " ++
-      "`pulp init`."
-      )
+  PackageManifestNotFound path -> do
+    vcat
+      [ para "The package manifest file was not found:"
+      , indented (para path)
+      , spacer
+      , para "Please create either a bower.json or purs.json manifest file."
+      ]
   ResolutionsFileNotFound ->
     para "The resolutions file was not found."
+  CouldntConvertPackageManifest err ->
+    vcat
+      [ para "Unable to convert your package manifest file to the Bower format:"
+      , indented ((para . T.unpack) (showBowerError err))
+      , spacer
+      , para "Please ensure that your package manifest file is valid."
+      ]
   CouldntDecodePackageManifest err ->
     vcat
       [ para "There was a problem with your package manifest file:"
-      , indented (vcat (map (para . T.unpack) (displayError showBowerError err)))
+      , indented (vcat (map (para . T.unpack) (displayError showManifestError err)))
       , spacer
       , para "Please ensure that your package manifest file is valid."
       ]
@@ -159,7 +165,7 @@
           [ "The currently checked out commit seems to have been tagged with "
           , "more than 1 version, and I don't know which one should be used. "
           , "Please either delete some of the tags, or create a new commit "
-          , "to tag the desired verson with."
+          , "to tag the desired version with."
           ])
       , spacer
       , para "Tags for the currently checked out commit:"
@@ -168,32 +174,34 @@
     displayRepositoryError err
   NoLicenseSpecified ->
     vcat $
-      [ para (concat
-          [ "No license is specified in package manifest. Please add one, using the "
-          , "SPDX license expression format. For example, any of the "
-          , "following would be acceptable:"
-          ])
+      [ para $ concat
+          [ "No license is specified in package manifest. Please add a "
+          , "\"license\" property with a SPDX license expression. For example, "
+          , "any of the following would be acceptable:"
+          ]
       , spacer
       ] ++ spdxExamples ++
       [ spacer
-      , para (
-          "Note that distributing code without a license means that nobody "
-          ++ "will (legally) be able to use it."
-          )
+      , para $
+          "See https://spdx.org/licenses/ for a full list of licenses. For more " ++
+          "information on SPDX license expressions, see https://spdx.org/ids-how"
       , spacer
-      , para (concat
-          [ "It is also recommended to add a LICENSE file to the repository, "
-          , "including your name and the current year, although this is not "
-          , "necessary."
-          ])
+      , para $
+          "Note that distributing code without a license means that nobody will " ++
+          "(legally) be able to use it."
+      , spacer
+      , para $
+          "It is also recommended to add a LICENSE file to the repository, " ++
+          "including your name and the current year, although this is not necessary."
       ]
   InvalidLicense ->
     vcat $
-      [ para (concat
-          [ "The license specified in package manifest is not a valid SPDX license "
-          , "expression. Please use the SPDX license expression format. For "
-          , "example, any of the following would be acceptable:"
-          ])
+      [ para $ concat
+          [ "The license specified in package manifest is not a valid SPDX "
+          , "license expression. Please update the \"license\" property so that "
+          , "it is a valid SPDX license expression. For example, any of the "
+          , "following would be acceptable:"
+          ]
       , spacer
       ] ++
       spdxExamples
@@ -203,12 +211,11 @@
         do_          = pl "do" "does"
         dependencies = pl "dependencies" "dependency"
     in vcat $
-      [ para (concat
+      para (concat
         [ "The following ", dependencies, " ", do_, " not appear to be "
         , "installed:"
-        ])
-      ] ++
-        bulletedListT runPackageName (NonEmpty.toList pkgs)
+        ]) :
+      bulletedListT runPackageName (NonEmpty.toList pkgs)
   CompileError err ->
     vcat
       [ para "Compile error:"
@@ -221,8 +228,8 @@
         )
   ResolutionsFileError path err ->
     successivelyIndented $
-      [ "Error in resolutions file (" ++ path ++ "):" ]
-      ++ map T.unpack (displayError D.displayPackageError err)
+      ("Error in resolutions file (" ++ path ++ "):") :
+      map T.unpack (displayError D.displayPackageError err)
 
 spdxExamples :: [Box]
 spdxExamples =
@@ -230,8 +237,8 @@
     [ "* \"MIT\""
     , "* \"Apache-2.0\""
     , "* \"BSD-2-Clause\""
-    , "* \"GPL-2.0+\""
-    , "* \"(GPL-3.0 OR MIT)\""
+    , "* \"GPL-2.0-or-later\""
+    , "* \"(GPL-3.0-only OR MIT)\""
     ]
 
 displayRepositoryError :: RepositoryFieldError -> Box
@@ -239,10 +246,10 @@
   RepositoryFieldMissing giturl ->
     vcat
       [ para (concat
-         [ "The 'repository' field is not present in your package manifest file. "
+         [ "The 'repository' or 'location' field is not present in your package manifest file. "
          , "Without this information, Pursuit would not be able to generate "
          , "source links in your package's documentation. Please add one - like "
-         , "this, for example:"
+         , "this, if you are using the bower.json format:"
          ])
       , spacer
       , indented (vcat
@@ -252,6 +259,15 @@
           , para "}"
           ]
         )
+      , para "or like this, if you are using the purs.json format:"
+      , spacer
+      , indented (vcat
+          [ para "\"location\": {"
+          , indented (para "\"githubOwner\": \"USER\",")
+          , indented (para "\"githubRepo\": \"REPO\",")
+          , para "}"
+          ]
+        )
       ]
   BadRepositoryType ty ->
     para (concat
@@ -297,16 +313,15 @@
   { noResolvedVersions      :: [PackageName]
   , unacceptableVersions    :: [(PackageName, Text)]
   , dirtyWorkingTree        :: Any
-  , legacyResolutionsFormat :: Maybe (First FilePath)
   }
   deriving (Show, Eq, Ord)
 
 instance Semigroup CollectedWarnings where
-  (<>) (CollectedWarnings a b c d) (CollectedWarnings a' b' c' d') =
-    CollectedWarnings (a <> a') (b <> b') (c <> c') (d <> d')
+  (<>) (CollectedWarnings a b c) (CollectedWarnings a' b' c') =
+    CollectedWarnings (a <> a') (b <> b') (c <> c')
 
 instance Monoid CollectedWarnings where
-  mempty = CollectedWarnings mempty mempty mempty mempty
+  mempty = CollectedWarnings mempty mempty mempty
 
 collectWarnings :: [PackageWarning] -> CollectedWarnings
 collectWarnings = foldMap singular
@@ -316,10 +331,8 @@
       mempty { noResolvedVersions = [pn] }
     UnacceptableVersion t ->
       mempty { unacceptableVersions = [t] }
-    DirtyWorkingTree_Warn ->
+    DirtyWorkingTreeWarn ->
       mempty { dirtyWorkingTree = Any True }
-    LegacyResolutionsFormat path ->
-      mempty { legacyResolutionsFormat = Just (First path) }
 
 renderWarnings :: [PackageWarning] -> Box
 renderWarnings warns =
@@ -330,7 +343,6 @@
                , if getAny dirtyWorkingTree
                    then Just warnDirtyWorkingTree
                    else Nothing
-               , fmap (warnLegacyResolutions . getFirst) legacyResolutionsFormat
                ]
   in case catMaybes mboxes of
        []    -> nullBox
@@ -395,21 +407,6 @@
     "Your working tree is dirty. (Note: this would be an error if it "
     ++ "were not a dry run)"
     )
-
-warnLegacyResolutions :: FilePath -> Box
-warnLegacyResolutions path =
-  vcat $
-    [ para (concat
-        [ "Your resolutions file (" ++ path ++ ") is using the deprecated "
-        , "legacy format. Support for this format will be dropped in a future "
-        , "version."
-        ])
-    , spacer
-    , para (concat
-        [ "In most cases, all you need to do to use the new format and silence "
-        , "this warning is to upgrade Pulp."
-        ])
-    ]
 
 printWarnings :: [PackageWarning] -> IO ()
 printWarnings = printToStderr . renderWarnings
diff --git a/src/Language/PureScript/Publish/Registry/Compat.hs b/src/Language/PureScript/Publish/Registry/Compat.hs
new file mode 100644
--- /dev/null
+++ b/src/Language/PureScript/Publish/Registry/Compat.hs
@@ -0,0 +1,98 @@
+-- | A compatibility module that allows a restricted set of purs.json manifest
+-- | files to be used for publishing. The manifest must described a package
+-- | available on GitHub, and it must be convertable to a Bower manifest.
+-- |
+-- | Fully supporting the registry manifest format will require `purs publish`
+-- | and by extension Pursuit to relax the requirement that packages are hosted
+-- | on GitHub, because the registry does not have this requirement.
+module Language.PureScript.Publish.Registry.Compat where
+
+import Protolude
+import Data.Map qualified as Map
+import Web.Bower.PackageMeta qualified as Bower
+import Data.Bitraversable (Bitraversable(..))
+import Data.Aeson.BetterErrors (key, asText, keyMay, eachInObject, Parse, throwCustomError)
+
+-- | Convert a valid purs.json manifest into a bower.json manifest
+toBowerPackage :: PursJson -> Either Bower.BowerError Bower.PackageMeta
+toBowerPackage PursJson{..} = do
+  bowerName <- Bower.parsePackageName ("purescript-" <> pursJsonName)
+  let
+    bowerDescription = pursJsonDescription
+    bowerMain = []
+    bowerModuleType = []
+    bowerLicense = [ pursJsonLicense ]
+    bowerIgnore = []
+    bowerKeywords = []
+    bowerAuthors = []
+    bowerHomepage = Just pursJsonLocation
+    bowerRepository = Just $ Bower.Repository { repositoryUrl = pursJsonLocation, repositoryType = "git" }
+    bowerDevDependencies = []
+    bowerResolutions = []
+    bowerPrivate = False
+
+  let parseDependencies = traverse (bitraverse (Bower.parsePackageName . ("purescript-" <>)) (pure . Bower.VersionRange))
+  bowerDependencies <- parseDependencies $ Map.toAscList pursJsonDependencies
+  pure $ Bower.PackageMeta {..}
+
+-- | A partial representation of the purs.json manifest format, including only
+-- | the fields required for publishing.
+-- |
+-- | https://github.com/purescript/registry/blob/master/v1/Manifest.dhall
+--
+-- This type is intended for compatibility with the Bower publishing pipeline,
+-- and does not accurately reflect all possible purs.json manifests. However,
+-- supporting purs.json manifests properly introduces breaking changes to the
+-- compiler and to Pursuit.
+data PursJson = PursJson
+  { -- | The name of the package
+    pursJsonName :: Text
+    -- | The SPDX identifier representing the package license
+  , pursJsonLicense :: Text
+    -- | The GitHub repository hosting the package
+  , pursJsonLocation :: Text
+    -- | An optional description of the package
+  , pursJsonDescription :: Maybe Text
+    -- | A map of dependencies, where keys are package names and values are
+    -- | dependency ranges of the form '>=X.Y.Z <X.Y.Z'
+  , pursJsonDependencies :: Map Text Text
+  }
+
+data PursJsonError
+  = MalformedLocationField
+  deriving (Eq, Show, Ord, Generic)
+
+instance NFData PursJsonError
+
+showPursJsonError :: PursJsonError -> Text
+showPursJsonError = \case
+  MalformedLocationField ->
+    "The 'location' field must be either '{ \"githubOwner\": OWNER, \"githubRepo\": REPO }' or '{ \"gitUrl\": URL }'."
+
+asPursJson :: Parse PursJsonError PursJson
+asPursJson = do
+  pursJsonName <- key "name" asText
+  pursJsonDescription <- keyMay "description" asText
+  pursJsonLicense <- key "license" asText
+  pursJsonDependencies <- key "dependencies" (Map.fromAscList <$> eachInObject asText)
+  -- Packages are required to come from GitHub in PureScript 0.14.x, but the
+  -- PureScript registry does not require this, nor does it require that
+  -- packages are Git repositories. This restriction should be lifted when
+  -- we fully support purs.json manifests in the compiler and on Pursuit.
+  --
+  -- For the time being, we only parse manifests that include a GitHub owner
+  -- and repo pair, or which specify a Git URL, which we use to try and get
+  -- the package from GitHub.
+  pursJsonLocation <- key "location" asOwnerRepoOrGitUrl
+  pure $ PursJson{..}
+  where
+  asOwnerRepoOrGitUrl =
+    catchError asOwnerRepo (\_ -> catchError asGitUrl (\_ -> throwCustomError MalformedLocationField))
+
+  asGitUrl =
+    key "gitUrl" asText
+
+  asOwnerRepo = do
+    githubOwner <- key "githubOwner" asText
+    githubRepo <- key "githubRepo" asText
+    pure $ "https://github.com/" <> githubOwner <> "/" <> githubRepo <> ".git"
diff --git a/src/Language/PureScript/Publish/Utils.hs b/src/Language/PureScript/Publish/Utils.hs
--- a/src/Language/PureScript/Publish/Utils.hs
+++ b/src/Language/PureScript/Publish/Utils.hs
@@ -1,8 +1,8 @@
 module Language.PureScript.Publish.Utils where
 
-import Prelude.Compat
+import Prelude
 
-import System.Directory
+import System.Directory (getCurrentDirectory)
 import System.FilePath.Glob (Pattern, compile, globDir1)
 
 -- | Glob relative to the current directory, and produce relative pathnames.
diff --git a/src/Language/PureScript/Renamer.hs b/src/Language/PureScript/Renamer.hs
--- a/src/Language/PureScript/Renamer.hs
+++ b/src/Language/PureScript/Renamer.hs
@@ -1,21 +1,22 @@
 -- |
 -- Renaming pass that prevents shadowing of local identifiers.
 --
-module Language.PureScript.Renamer (renameInModules) where
+module Language.PureScript.Renamer (renameInModule) where
 
-import Prelude.Compat
+import Prelude
 
-import Control.Monad.State
+import Control.Monad.State (MonadState(..), State, gets, modify, runState, (>=>))
 
+import Data.Functor ((<&>))
 import Data.List (find)
 import Data.Maybe (fromJust, fromMaybe)
-import qualified Data.Map as M
-import qualified Data.Set as S
-import qualified Data.Text as T
+import Data.Map qualified as M
+import Data.Set qualified as S
+import Data.Text qualified as T
 
-import Language.PureScript.CoreFn
-import Language.PureScript.Names
-import Language.PureScript.Traversals
+import Language.PureScript.CoreFn (Ann, Bind(..), Binder(..), CaseAlternative(..), Expr(..), Literal(..), Module(..))
+import Language.PureScript.Names (Ident(..), Qualified(..), isBySourcePos, isPlainIdent, runIdent, showIdent)
+import Language.PureScript.Traversals (eitherM, pairM, sndM)
 
 -- |
 -- The state object used in this module
@@ -39,8 +40,8 @@
 -- |
 -- Runs renaming starting with a list of idents for the initial scope.
 --
-runRename :: [Ident] -> Rename a -> a
-runRename scope = flip evalState (initState scope)
+runRename :: [Ident] -> Rename a -> (a, RenameState)
+runRename scope = flip runState (initState scope)
 
 -- |
 -- Creates a new renaming scope using the current as a basis. Used to backtrack
@@ -93,49 +94,69 @@
     Just name'' -> return name''
     Nothing -> error $ "Rename scope is missing ident '" ++ T.unpack (showIdent name) ++ "'"
 
+
 -- |
--- Finds idents introduced by declarations.
+-- Renames within each declaration in a module. Returns the map of renamed
+-- identifiers in the top-level scope, so that they can be renamed in the
+-- externs files as well.
 --
-findDeclIdents :: [Bind Ann] -> [Ident]
-findDeclIdents = concatMap go
+renameInModule :: Module Ann -> (M.Map Ident Ident, Module Ann)
+renameInModule m@(Module _ _ _ _ _ exports _ foreigns decls) = (rsBoundNames, m { moduleExports, moduleDecls })
   where
-  go (NonRec _ ident _) = [ident]
-  go (Rec ds) = map (snd . fst) ds
+  ((moduleDecls, moduleExports), RenameState{..}) = runRename foreigns $
+    (,) <$> renameInDecls decls <*> traverse lookupIdent exports
 
 -- |
--- Renames within each declaration in a module.
+-- Renames within a list of declarations. The list is processed in three
+-- passes:
 --
-renameInModules :: [Module Ann] -> [Module Ann]
-renameInModules = map go
+--  1) Declarations with user-provided names are added to the scope, renaming
+--     them only if necessary to prevent shadowing.
+--  2) Declarations with compiler-provided names are added to the scope,
+--     renaming them to prevent shadowing or collision with a user-provided
+--     name.
+--  3) The bodies of the declarations are processed recursively.
+--
+-- The distinction between passes 1 and 2 is critical in the top-level module
+-- scope, where declarations can be exported and named declarations must not
+-- be renamed. Below the top level, this only matters for programmers looking
+-- at the generated code or using a debugger; we want them to see the names
+-- they used as much as possible.
+--
+-- The distinction between the first two passes and pass 3 is important because
+-- a `GenIdent` can appear before its declaration in a depth-first traversal,
+-- and we need to visit the declaration first in order to rename all of its
+-- uses. Similarly, a plain `Ident` could shadow another declared in an outer
+-- scope but later in a depth-first traversal, and we need to visit the
+-- outer declaration first in order to know to rename the inner one.
+--
+renameInDecls :: [Bind Ann] -> Rename [Bind Ann]
+renameInDecls =
+      traverse (renameDecl False)
+  >=> traverse (renameDecl True)
+  >=> traverse renameValuesInDecl
+
   where
-  go :: Module Ann -> Module Ann
-  go m@(Module _ _ _ _ _ _ _ decls) = m { moduleDecls = map (renameInDecl' (findDeclIdents decls)) decls }
 
-  renameInDecl' :: [Ident] -> Bind Ann -> Bind Ann
-  renameInDecl' scope = runRename scope . renameInDecl True
+  renameDecl :: Bool -> Bind Ann -> Rename (Bind Ann)
+  renameDecl isSecondPass = \case
+    NonRec a name val -> updateName name <&> \name' -> NonRec a name' val
+    Rec ds -> Rec <$> traverse updateNames ds
+    where
+    updateName :: Ident -> Rename Ident
+    updateName name = (if isSecondPass == isPlainIdent name then pure else updateScope) name
 
--- |
--- Renames within a declaration. isTopLevel is used to determine whether the
--- declaration is a module member or appearing within a Let. At the top level
--- declarations are not renamed or added to the scope (they should already have
--- been added), whereas in a Let declarations are renamed if their name shadows
--- another in the current scope.
---
-renameInDecl :: Bool -> Bind Ann -> Rename (Bind Ann)
-renameInDecl isTopLevel (NonRec a name val) = do
-  name' <- if isTopLevel then return name else updateScope name
-  NonRec a name' <$> renameInValue val
-renameInDecl isTopLevel (Rec ds) = do
-  ds' <- traverse updateNames ds
-  Rec <$> traverse updateValues ds'
-  where
-  updateNames :: ((Ann, Ident), Expr Ann) -> Rename ((Ann, Ident), Expr Ann)
-  updateNames ((a, name), val) = do
-    name' <- if isTopLevel then return name else updateScope name
-    return ((a, name'), val)
-  updateValues :: ((Ann, Ident), Expr Ann) -> Rename ((Ann, Ident), Expr Ann)
-  updateValues (aname, val) = (,) aname <$> renameInValue val
+    updateNames :: ((Ann, Ident), Expr Ann) -> Rename ((Ann, Ident), Expr Ann)
+    updateNames ((a, name), val) = updateName name <&> \name' -> ((a, name'), val)
 
+  renameValuesInDecl :: Bind Ann -> Rename (Bind Ann)
+  renameValuesInDecl = \case
+    NonRec a name val -> NonRec a name <$> renameInValue val
+    Rec ds -> Rec <$> traverse updateValues ds
+    where
+    updateValues :: ((Ann, Ident), Expr Ann) -> Rename ((Ann, Ident), Expr Ann)
+    updateValues (aname, val) = (aname, ) <$> renameInValue val
+
 -- |
 -- Renames within a value.
 --
@@ -145,20 +166,23 @@
 renameInValue c@Constructor{} = return c
 renameInValue (Accessor ann prop v) =
   Accessor ann prop <$> renameInValue v
-renameInValue (ObjectUpdate ann obj vs) =
-  ObjectUpdate ann <$> renameInValue obj <*> traverse (\(name, v) -> (,) name <$> renameInValue v) vs
-renameInValue e@(Abs (_, _, _, Just IsTypeClassConstructor) _ _) = return e
+renameInValue (ObjectUpdate ann obj copy vs) =
+  (\obj' -> ObjectUpdate ann obj' copy) <$> renameInValue obj <*> traverse (\(name, v) -> (name, ) <$> renameInValue v) vs
 renameInValue (Abs ann name v) =
   newScope $ Abs ann <$> updateScope name <*> renameInValue v
 renameInValue (App ann v1 v2) =
   App ann <$> renameInValue v1 <*> renameInValue v2
-renameInValue (Var ann (Qualified Nothing name)) =
-  Var ann . Qualified Nothing <$> lookupIdent name
+renameInValue (Var ann (Qualified qb name)) | isBySourcePos qb || not (isPlainIdent name) =
+  -- This should only rename identifiers local to the current module: either
+  -- they aren't qualified, or they are but they have a name that should not
+  -- have appeared in a module's externs, so they must be from this module's
+  -- top-level scope.
+  Var ann . Qualified qb <$> lookupIdent name
 renameInValue v@Var{} = return v
 renameInValue (Case ann vs alts) =
   newScope $ Case ann <$> traverse renameInValue vs <*> traverse renameInCaseAlternative alts
 renameInValue (Let ann ds v) =
-  newScope $ Let ann <$> traverse (renameInDecl False) ds <*> renameInValue v
+  newScope $ Let ann <$> renameInDecls ds <*> renameInValue v
 
 -- |
 -- Renames within literals.
diff --git a/src/Language/PureScript/Roles.hs b/src/Language/PureScript/Roles.hs
new file mode 100644
--- /dev/null
+++ b/src/Language/PureScript/Roles.hs
@@ -0,0 +1,43 @@
+{-# LANGUAGE TemplateHaskell #-}
+
+-- |
+-- Data types for roles.
+--
+module Language.PureScript.Roles
+  ( Role(..)
+  , displayRole
+  ) where
+
+import Prelude
+
+import Codec.Serialise (Serialise)
+import Control.DeepSeq (NFData)
+import Data.Aeson qualified as A
+import Data.Aeson.TH qualified as A
+import Data.Text (Text)
+import GHC.Generics (Generic)
+
+-- |
+-- The role of a type constructor's parameter.
+data Role
+  = Nominal
+  -- ^ This parameter's identity affects the representation of the type it is
+  -- parameterising.
+  | Representational
+  -- ^ This parameter's representation affects the representation of the type it
+  -- is parameterising.
+  | Phantom
+  -- ^ This parameter has no effect on the representation of the type it is
+  -- parameterising.
+  deriving (Show, Eq, Ord, Generic)
+
+instance NFData Role
+instance Serialise Role
+
+$(A.deriveJSON A.defaultOptions ''Role)
+
+displayRole :: Role -> Text
+displayRole r = case r of
+  Nominal -> "nominal"
+  Representational -> "representational"
+  Phantom -> "phantom"
diff --git a/src/Language/PureScript/Sugar.hs b/src/Language/PureScript/Sugar.hs
--- a/src/Language/PureScript/Sugar.hs
+++ b/src/Language/PureScript/Sugar.hs
@@ -4,17 +4,16 @@
 module Language.PureScript.Sugar (desugar, module S) where
 
 import Control.Category ((>>>))
-import Control.Monad
-import Control.Monad.Error.Class (MonadError())
-import Control.Monad.Supply.Class
-import Control.Monad.Writer.Class (MonadWriter())
-
-import Data.List (map)
-import Data.Traversable (traverse)
+import Control.Monad ((>=>))
+import Control.Monad.Error.Class (MonadError)
+import Control.Monad.Supply.Class (MonadSupply)
+import Control.Monad.State.Class (MonadState)
+import Control.Monad.Writer.Class (MonadWriter)
 
-import Language.PureScript.AST
-import Language.PureScript.Errors
-import Language.PureScript.Externs
+import Language.PureScript.AST (Module)
+import Language.PureScript.Errors (MultipleErrors)
+import Language.PureScript.Externs (ExternsFile)
+import Language.PureScript.Linter.Imports (UsedImports)
 import Language.PureScript.Sugar.BindingGroups as S
 import Language.PureScript.Sugar.CaseDeclarations as S
 import Language.PureScript.Sugar.DoNotation as S
@@ -48,26 +47,29 @@
 --
 --  * Rebracket user-defined binary operators
 --
---  * Introduce type synonyms for type class dictionaries
+--  * Introduce newtypes for type class dictionaries and value declarations for instances
 --
 --  * Group mutually recursive value and data declarations into binding groups.
 --
 desugar
-  :: (MonadSupply m, MonadError MultipleErrors m, MonadWriter MultipleErrors m)
+  :: MonadSupply m
+  => MonadError MultipleErrors m
+  => MonadWriter MultipleErrors m
+  => MonadState (Env, UsedImports) m
   => [ExternsFile]
-  -> [Module]
-  -> m [Module]
+  -> Module
+  -> m Module
 desugar externs =
-  map desugarSignedLiterals
-    >>> traverse desugarObjectConstructors
-    >=> traverse desugarDoModule
-    >=> traverse desugarAdoModule
-    >=> map desugarLetPatternModule
-    >>> traverse desugarCasesModule
-    >=> traverse desugarTypeDeclarationsModule
-    >=> desugarImports externs
+  desugarSignedLiterals
+    >>> desugarObjectConstructors
+    >=> desugarDoModule
+    >=> desugarAdoModule
+    >=> desugarLetPatternModule
+    >>> desugarCasesModule
+    >=> desugarTypeDeclarationsModule
+    >=> desugarImports
     >=> rebracket externs
-    >=> traverse checkFixityExports
-    >=> traverse (deriveInstances externs)
+    >=> checkFixityExports
+    >=> deriveInstances
     >=> desugarTypeClasses externs
-    >=> traverse createBindingGroupsModule
+    >=> createBindingGroupsModule
diff --git a/src/Language/PureScript/Sugar/AdoNotation.hs b/src/Language/PureScript/Sugar/AdoNotation.hs
--- a/src/Language/PureScript/Sugar/AdoNotation.hs
+++ b/src/Language/PureScript/Sugar/AdoNotation.hs
@@ -1,20 +1,18 @@
 -- | This module implements the desugaring pass which replaces ado-notation statements with
 -- appropriate calls to pure and apply.
 
-{-# LANGUAGE PatternGuards #-}
-
 module Language.PureScript.Sugar.AdoNotation (desugarAdoModule) where
 
-import           Prelude.Compat hiding (abs)
+import Prelude hiding (abs)
 
-import           Control.Monad (foldM)
-import           Control.Monad.Error.Class (MonadError(..))
-import           Control.Monad.Supply.Class
-import           Data.List (foldl')
-import           Language.PureScript.AST
-import           Language.PureScript.Errors
-import           Language.PureScript.Names
-import qualified Language.PureScript.Constants as C
+import Control.Monad (foldM)
+import Control.Monad.Error.Class (MonadError(..))
+import Control.Monad.Supply.Class (MonadSupply)
+import Data.List (foldl')
+import Language.PureScript.AST (Binder(..), CaseAlternative(..), Declaration, DoNotationElement(..), Expr(..), pattern MkUnguarded, Module(..), SourceSpan, WhereProvenance(..), declSourceSpan, everywhereOnValuesM)
+import Language.PureScript.Errors (MultipleErrors, parU, rethrowWithPosition)
+import Language.PureScript.Names (pattern ByNullSourcePos, Ident(..), ModuleName, Qualified(..), byMaybeModuleName, freshIdent')
+import Language.PureScript.Constants.Libs qualified as C
 
 -- | Replace all @AdoNotationBind@ and @AdoNotationValue@ constructors with
 -- applications of the pure and apply functions in scope, and all @AdoNotationLet@
@@ -25,43 +23,44 @@
 -- | Desugar a single ado statement
 desugarAdo :: forall m. (MonadSupply m, MonadError MultipleErrors m) => Declaration -> m Declaration
 desugarAdo d =
-  let (f, _, _) = everywhereOnValuesM return replace return
-  in f d
+  let ss = declSourceSpan d
+      (f, _, _) = everywhereOnValuesM return (replace ss) return
+  in rethrowWithPosition ss $ f d
   where
-  pure' :: Maybe ModuleName -> Expr
-  pure' m = Var nullSourceSpan (Qualified m (Ident C.pure'))
+  pure' :: SourceSpan -> Maybe ModuleName -> Expr
+  pure' ss m = Var ss (Qualified (byMaybeModuleName m) (Ident C.S_pure))
 
-  map' :: Maybe ModuleName -> Expr
-  map' m = Var nullSourceSpan (Qualified m (Ident C.map))
+  map' :: SourceSpan -> Maybe ModuleName -> Expr
+  map' ss m = Var ss (Qualified (byMaybeModuleName m) (Ident C.S_map))
 
-  apply :: Maybe ModuleName -> Expr
-  apply m = Var nullSourceSpan (Qualified m (Ident C.apply))
+  apply :: SourceSpan -> Maybe ModuleName -> Expr
+  apply ss m = Var ss (Qualified (byMaybeModuleName m) (Ident C.S_apply))
 
-  replace :: Expr -> m Expr
-  replace (Ado m els yield) = do
-    (func, args) <- foldM go (yield, []) (reverse els)
+  replace :: SourceSpan -> Expr -> m Expr
+  replace pos (Ado m els yield) = do
+    (func, args) <- foldM (go pos) (yield, []) (reverse els)
     return $ case args of
-      [] -> App (pure' m) func
-      hd : tl -> foldl' (\a b -> App (App (apply m) a) b) (App (App (map' m) func) hd) tl
-  replace (PositionedValue pos com v) = PositionedValue pos com <$> rethrowWithPosition pos (replace v)
-  replace other = return other
+      [] -> App (pure' pos m) func
+      hd : tl -> foldl' (\a b -> App (App (apply pos m) a) b) (App (App (map' pos m) func) hd) tl
+  replace _ (PositionedValue pos com v) = PositionedValue pos com <$> rethrowWithPosition pos (replace pos v)
+  replace _ other = return other
 
-  go :: (Expr, [Expr]) -> DoNotationElement -> m (Expr, [Expr])
-  go (yield, args) (DoNotationValue val) =
+  go :: SourceSpan -> (Expr, [Expr]) -> DoNotationElement -> m (Expr, [Expr])
+  go _ (yield, args) (DoNotationValue val) =
     return (Abs NullBinder yield, val : args)
-  go (yield, args) (DoNotationBind (VarBinder ss ident) val) =
+  go _ (yield, args) (DoNotationBind (VarBinder ss ident) val) =
     return (Abs (VarBinder ss ident) yield, val : args)
-  go (yield, args) (DoNotationBind binder val) = do
+  go ss (yield, args) (DoNotationBind binder val) = do
     ident <- freshIdent'
-    let abs = Abs (VarBinder nullSourceSpan ident)
-                  (Case [Var nullSourceSpan (Qualified Nothing ident)]
+    let abs = Abs (VarBinder ss ident)
+                  (Case [Var ss (Qualified ByNullSourcePos ident)]
                         [CaseAlternative [binder] [MkUnguarded yield]])
     return (abs, val : args)
-  go (yield, args) (DoNotationLet ds) = do
+  go _ (yield, args) (DoNotationLet ds) = do
     return (Let FromLet ds yield, args)
-  go acc (PositionedDoNotationElement pos com el) =
+  go _ acc (PositionedDoNotationElement pos com el) =
     rethrowWithPosition pos $ do
-      (yield, args) <- go acc el
+      (yield, args) <- go pos acc el
       return $ case args of
         [] -> (PositionedValue pos com yield, args)
         (a : as) -> (yield, PositionedValue pos com a : as)
diff --git a/src/Language/PureScript/Sugar/BindingGroups.hs b/src/Language/PureScript/Sugar/BindingGroups.hs
--- a/src/Language/PureScript/Sugar/BindingGroups.hs
+++ b/src/Language/PureScript/Sugar/BindingGroups.hs
@@ -6,28 +6,37 @@
   ( createBindingGroups
   , createBindingGroupsModule
   , collapseBindingGroups
-  , collapseBindingGroupsModule
   ) where
 
-import Prelude.Compat
-import Protolude (ordNub)
+import Prelude
+import Protolude (ordNub, swap)
 
-import Control.Monad ((<=<))
+import Control.Monad ((<=<), guard)
 import Control.Monad.Error.Class (MonadError(..))
 
-import Data.Graph
-import Data.List (intersect)
+import Data.Graph (SCC(..), stronglyConnComp, stronglyConnCompR)
+import Data.List (intersect, (\\))
+import Data.List.NonEmpty (NonEmpty((:|)), nonEmpty)
+import Data.Foldable (find)
+import Data.Functor (($>))
 import Data.Maybe (isJust, mapMaybe)
-import qualified Data.List.NonEmpty as NEL
-import qualified Data.Set as S
+import Data.List.NonEmpty qualified as NEL
+import Data.Map qualified as M
+import Data.Set qualified as S
 
 import Language.PureScript.AST
-import Language.PureScript.Crash
-import Language.PureScript.Environment
-import Language.PureScript.Errors
-import Language.PureScript.Names
-import Language.PureScript.Types
+import Language.PureScript.Crash (internalError)
+import Language.PureScript.Environment (NameKind)
+import Language.PureScript.Errors (ErrorMessage(..), MultipleErrors(..), SimpleErrorMessage(..), errorMessage', parU, positionedError)
+import Language.PureScript.Names (pattern ByNullSourcePos, Ident, ModuleName, ProperName, ProperNameType(..), Qualified(..), QualifiedBy(..), coerceProperName)
+import Language.PureScript.Types (Constraint(..), SourceConstraint, SourceType, Type(..), everythingOnTypes)
 
+data VertexType
+  = VertexDefinition
+  | VertexKindSignature
+  | VertexRoleDeclaration
+  deriving (Eq, Ord, Show)
+
 -- |
 -- Replace all sets of mutually-recursive declarations in a module with binding groups
 --
@@ -38,14 +47,6 @@
 createBindingGroupsModule (Module ss coms name ds exps) =
   Module ss coms name <$> createBindingGroups name ds <*> pure exps
 
--- |
--- Collapse all binding groups in a module to individual declarations
---
-collapseBindingGroupsModule :: [Module] -> [Module]
-collapseBindingGroupsModule =
-  fmap $ \(Module ss coms name ds exps) ->
-    Module ss coms name (collapseBindingGroups ds) exps
-
 createBindingGroups
   :: forall m
    . (MonadError MultipleErrors m)
@@ -61,25 +62,67 @@
   handleExprs (Let w ds val) = (\ds' -> Let w ds' val) <$> handleDecls ds
   handleExprs other = return other
 
-  -- |
   -- Replace all sets of mutually-recursive declarations with binding groups
-  --
   handleDecls :: [Declaration] -> m [Declaration]
   handleDecls ds = do
     let values = mapMaybe (fmap (fmap extractGuardedExpr) . getValueDeclaration) ds
-        dataDecls = filter isDataDecl ds
-        allProperNames = fmap declTypeName dataDecls
-        dataVerts = fmap (\d -> (d, declTypeName d, usedTypeNames moduleName d `intersect` allProperNames)) dataDecls
-    dataBindingGroupDecls <- parU (stronglyConnComp dataVerts) toDataBindingGroup
-    let allIdents = fmap valdeclIdent values
-        valueVerts = fmap (\d -> (d, valdeclIdent d, usedIdents moduleName d `intersect` allIdents)) values
-    bindingGroupDecls <- parU (stronglyConnComp valueVerts) (toBindingGroup moduleName)
+        kindDecls = (,VertexKindSignature) <$> filter isKindDecl ds
+        dataDecls = (,VertexDefinition) <$> filter (\a -> isDataDecl a || isExternDataDecl a || isTypeSynonymDecl a || isTypeClassDecl a) ds
+        roleDecls = (,VertexRoleDeclaration) <$> filter isRoleDecl ds
+        roleAnns = declTypeName . fst <$> roleDecls
+        kindSigs = declTypeName . fst <$> kindDecls
+        typeSyns = declTypeName <$> filter isTypeSynonymDecl ds
+        nonTypeSynKindSigs = kindSigs \\ typeSyns
+        allDecls = kindDecls ++ dataDecls ++ roleDecls
+        allProperNames = declTypeName . fst <$> allDecls
+        mkVert (d, vty) =
+          let names = usedTypeNames moduleName d `intersect` allProperNames
+              name = declTypeName d
+              -- If a dependency of a kind signature has a kind signature, than that's all we need to
+              -- depend on, except in the case that we are using a type synonym. In order to expand
+              -- the type synonym, we must depend on the synonym declaration itself.
+              --
+              -- Arguably, type declarations (as opposed to just kind signatures) could also depend
+              -- on kind signatures when present. Attempting this caused one known issue (#4038); the
+              -- type checker might not expect type declarations not to be preceded or grouped by
+              -- their actual dependencies in all cases. But in principle, if done carefully, this
+              -- approach could be used to reduce the number or size of data binding group cycles.
+              -- (It's critical that kind signatures not appear in groups, which is why they get
+              -- special treatment.)
+              vtype n
+                | vty == VertexKindSignature && n `elem` nonTypeSynKindSigs = VertexKindSignature
+                | otherwise = VertexDefinition
+              deps = fmap (\n -> (n, vtype n)) names
+              self
+                | vty == VertexDefinition =
+                       (guard (name `elem` kindSigs) $> (name, VertexKindSignature))
+                    ++ (guard (name `elem` roleAnns && not (isExternDataDecl d)) $> (name, VertexRoleDeclaration))
+                | vty == VertexRoleDeclaration = [(name, VertexDefinition)]
+                | otherwise = []
+          in (d, (name, vty), self ++ deps)
+        dataVerts = fmap mkVert allDecls
+    dataBindingGroupDecls <- parU (stronglyConnCompR dataVerts) toDataBindingGroup
+    let
+      -- #4437
+      --
+      -- The idea here is to create a `Graph` whose `key` is a tuple: `(Bool, Ident)`,
+      -- where the `Bool` encodes the absence of a type hole. This relies on an implementation
+      -- detail for `stronglyConnComp` which allows identifiers with no type holes to "float"
+      -- and get checked before those that do, while preserving reverse topological sorting.
+      makeValueDeclarationKey = (,) <$> exprHasNoTypeHole . valdeclExpression <*> valdeclIdent
+      valueDeclarationKeys = makeValueDeclarationKey <$> values
+
+      valueDeclarationInfo = M.fromList $ swap <$> valueDeclarationKeys
+      findDeclarationInfo i = (M.findWithDefault False i valueDeclarationInfo, i)
+      computeValueDependencies = (`intersect` valueDeclarationKeys) . fmap findDeclarationInfo . usedIdents moduleName 
+  
+      makeValueDeclarationVert = (,,) <$> id <*> makeValueDeclarationKey <*> computeValueDependencies
+      valueDeclarationVerts = makeValueDeclarationVert <$> values
+
+    bindingGroupDecls <- parU (stronglyConnComp valueDeclarationVerts) (toBindingGroup moduleName)
     return $ filter isImportDecl ds ++
-             filter isExternKindDecl ds ++
-             filter isExternDataDecl ds ++
              dataBindingGroupDecls ++
-             filter isTypeClassDeclaration ds ++
-             filter isTypeClassInstanceDeclaration ds ++
+             filter isTypeClassInstanceDecl ds ++
              filter isFixityDecl ds ++
              filter isExternDecl ds ++
              bindingGroupDecls
@@ -87,13 +130,33 @@
       extractGuardedExpr [MkUnguarded expr] = expr
       extractGuardedExpr _ = internalError "Expected Guards to have been desugared in handleDecls."
 
+      exprHasNoTypeHole :: Expr -> Bool
+      exprHasNoTypeHole = not . exprHasTypeHole
+        where
+        exprHasTypeHole :: Expr -> Bool
+        (_, exprHasTypeHole, _, _, _) = everythingOnValues (||) goDefault goExpr goDefault goDefault goDefault
+          where
+          goExpr :: Expr -> Bool
+          goExpr (Hole _) = True
+          goExpr _ = False
+
+          goDefault :: forall a. a -> Bool
+          goDefault = const False
+
 -- |
 -- Collapse all binding groups to individual declarations
 --
 collapseBindingGroups :: [Declaration] -> [Declaration]
 collapseBindingGroups =
-  let (f, _, _) = everywhereOnValues id collapseBindingGroupsForValue id
-  in fmap f . concatMap go
+  let (f, _, _) = everywhereOnValues id flattenBindingGroupsForValue id
+  in fmap f . flattenBindingGroups
+
+flattenBindingGroupsForValue :: Expr -> Expr
+flattenBindingGroupsForValue (Let w ds val) = Let w (flattenBindingGroups ds) val
+flattenBindingGroupsForValue other = other
+
+flattenBindingGroups :: [Declaration] -> [Declaration]
+flattenBindingGroups = concatMap go
   where
   go (DataBindingGroupDeclaration ds) = NEL.toList ds
   go (BindingGroupDeclaration ds) =
@@ -101,10 +164,6 @@
       ValueDecl sa ident nameKind [] [MkUnguarded val]) ds
   go other = [other]
 
-collapseBindingGroupsForValue :: Expr -> Expr
-collapseBindingGroupsForValue (Let w ds val) = Let w (collapseBindingGroups ds) val
-collapseBindingGroupsForValue other = other
-
 usedIdents :: ModuleName -> ValueDeclarationData Expr -> [Ident]
 usedIdents moduleName = ordNub . usedIdents' S.empty . valdeclExpression
   where
@@ -113,9 +172,9 @@
   (_, usedIdents', _, _, _) = everythingWithScope def usedNamesE def def def
 
   usedNamesE :: S.Set ScopedIdent -> Expr -> [Ident]
-  usedNamesE scope (Var _ (Qualified Nothing name))
+  usedNamesE scope (Var _ (Qualified (BySourcePos _) name))
     | LocalIdent name `S.notMember` scope = [name]
-  usedNamesE scope (Var _ (Qualified (Just moduleName') name))
+  usedNamesE scope (Var _ (Qualified (ByModuleName moduleName') name))
     | moduleName == moduleName' && ToplevelIdent name `S.notMember` scope = [name]
   usedNamesE _ _ = []
 
@@ -127,30 +186,42 @@
   def s _ = (s, [])
 
   usedNamesE :: Bool -> Expr -> (Bool, [Ident])
-  usedNamesE True (Var _ (Qualified Nothing name)) = (True, [name])
-  usedNamesE True (Var _ (Qualified (Just moduleName') name))
+  usedNamesE True (Var _ (Qualified (BySourcePos _) name)) = (True, [name])
+  usedNamesE True (Var _ (Qualified (ByModuleName moduleName') name))
     | moduleName == moduleName' = (True, [name])
   usedNamesE True (Abs _ _) = (False, [])
   usedNamesE scope _ = (scope, [])
 
 usedTypeNames :: ModuleName -> Declaration -> [ProperName 'TypeName]
-usedTypeNames moduleName =
-  let (f, _, _, _, _) = accumTypes (everythingOnTypes (++) usedNames)
-  in ordNub . f
+usedTypeNames moduleName = go
   where
+  (f, _, _, _, _) = accumTypes (everythingOnTypes (++) usedNames)
+
+  go :: Declaration -> [ProperName 'TypeName]
+  go decl = ordNub (f decl <> usedNamesForTypeClassDeps decl)
+
   usedNames :: SourceType -> [ProperName 'TypeName]
-  usedNames (ConstrainedType _ con _) =
-    case con of
-      (Constraint _ (Qualified (Just moduleName') name) _ _)
-        | moduleName == moduleName' -> [coerceProperName name]
-      _ -> []
-  usedNames (TypeConstructor _ (Qualified (Just moduleName') name))
+  usedNames (ConstrainedType _ con _) = usedConstraint con
+  usedNames (TypeConstructor _ (Qualified (ByModuleName moduleName') name))
     | moduleName == moduleName' = [name]
   usedNames _ = []
 
+  usedConstraint :: SourceConstraint -> [ProperName 'TypeName]
+  usedConstraint (Constraint _ (Qualified (ByModuleName moduleName') name) _ _ _)
+    | moduleName == moduleName' = [coerceProperName name]
+  usedConstraint _ = []
+
+  usedNamesForTypeClassDeps :: Declaration -> [ProperName 'TypeName]
+  usedNamesForTypeClassDeps (TypeClassDeclaration _ _ _ deps _ _) = foldMap usedConstraint deps
+  usedNamesForTypeClassDeps _ = []
+
 declTypeName :: Declaration -> ProperName 'TypeName
 declTypeName (DataDeclaration _ _ pn _ _) = pn
+declTypeName (ExternDataDeclaration _ pn _) = pn
 declTypeName (TypeSynonymDeclaration _ pn _ _) = pn
+declTypeName (TypeClassDeclaration _ pn _ _ _ _) = coerceProperName pn
+declTypeName (KindDeclaration _ _ pn _) = pn
+declTypeName (RoleDeclaration (RoleDeclarationData _ pn _)) = pn
 declTypeName _ = internalError "Expected DataDeclaration"
 
 -- |
@@ -191,15 +262,36 @@
 
 toDataBindingGroup
   :: MonadError MultipleErrors m
-  => SCC Declaration
+  => Ord a
+  => SCC (Declaration, (ProperName 'TypeName, a), [(ProperName 'TypeName, a)])
   -> m Declaration
-toDataBindingGroup (AcyclicSCC d) = return d
-toDataBindingGroup (CyclicSCC [d]) = case isTypeSynonym d of
-  Just pn -> throwError . errorMessage' (declSourceSpan d) $ CycleInTypeSynonym (Just pn)
-  _ -> return d
+toDataBindingGroup (AcyclicSCC (d, _, _)) = return d
 toDataBindingGroup (CyclicSCC ds')
-  | all (isJust . isTypeSynonym) ds' = throwError . errorMessage' (declSourceSpan (head ds')) $ CycleInTypeSynonym Nothing
-  | otherwise = return . DataBindingGroupDeclaration $ NEL.fromList ds'
+  | Just kds@((ss, _):|_) <- nonEmpty $ concatMap (kindDecl . getDecl) ds' = throwError . errorMessage' ss . CycleInKindDeclaration $ fmap snd kds
+  | not (null typeSynonymCycles) =
+      throwError
+        . MultipleErrors
+        . fmap (\syns -> ErrorMessage [positionedError . declSourceSpan . getDecl $ NEL.head syns] . CycleInTypeSynonym $ fmap (fst . getName) syns)
+        $ typeSynonymCycles
+  | otherwise = return . DataBindingGroupDeclaration . NEL.fromList $ getDecl <$> ds'
+  where
+  kindDecl (KindDeclaration sa _ pn _) = [(fst sa, Qualified ByNullSourcePos pn)]
+  kindDecl (ExternDataDeclaration sa pn _) = [(fst sa, Qualified ByNullSourcePos pn)]
+  kindDecl _ = []
+
+  getDecl (decl, _, _) = decl
+  getName (_, name, _) = name
+  lookupVert name = find ((==) name . getName) ds'
+
+  onlySynonyms (decl, name, deps) = do
+    guard . isJust $ isTypeSynonym decl
+    pure (decl, name, filter (maybe False (isJust . isTypeSynonym . getDecl) . lookupVert) deps)
+
+  isCycle (CyclicSCC c) = nonEmpty c
+  isCycle _ = Nothing
+
+  typeSynonymCycles =
+    mapMaybe isCycle . stronglyConnCompR . mapMaybe onlySynonyms $ ds'
 
 isTypeSynonym :: Declaration -> Maybe (ProperName 'TypeName)
 isTypeSynonym (TypeSynonymDeclaration _ pn _ _) = Just pn
diff --git a/src/Language/PureScript/Sugar/CaseDeclarations.hs b/src/Language/PureScript/Sugar/CaseDeclarations.hs
--- a/src/Language/PureScript/Sugar/CaseDeclarations.hs
+++ b/src/Language/PureScript/Sugar/CaseDeclarations.hs
@@ -8,7 +8,7 @@
   , desugarCaseGuards
   ) where
 
-import Prelude.Compat
+import Prelude
 import Protolude (ordNub)
 
 import Data.List (groupBy, foldl1')
@@ -16,13 +16,13 @@
 
 import Control.Monad ((<=<), forM, replicateM, join, unless)
 import Control.Monad.Error.Class (MonadError(..))
-import Control.Monad.Supply.Class
+import Control.Monad.Supply.Class (MonadSupply)
 
 import Language.PureScript.AST
-import Language.PureScript.Crash
-import Language.PureScript.Environment
-import Language.PureScript.Errors
-import Language.PureScript.Names
+import Language.PureScript.Crash (internalError)
+import Language.PureScript.Environment (NameKind(..))
+import Language.PureScript.Errors (ErrorMessage(..), MultipleErrors(..), SimpleErrorMessage(..), addHint, errorMessage', parU, rethrow, withPosition)
+import Language.PureScript.Names (pattern ByNullSourcePos, Ident, Qualified(..), freshIdent')
 import Language.PureScript.TypeChecker.Monad (guardWith)
 
 -- |
@@ -58,13 +58,13 @@
   -> Expr
   -> m Expr
 desugarGuardedExprs ss (Case scrut alternatives)
-  | any (not . isTrivialExpr) scrut = do
+  | not $ all isTrivialExpr scrut = do
     -- in case the scrutinee is non trivial (e.g. not a Var or Literal)
-    -- we may evaluate the scrutinee more than once when a guard occurrs.
+    -- we may evaluate the scrutinee more than once when a guard occurs.
     -- We bind the scrutinee to Vars here to mitigate this case.
     (scrut', scrut_decls) <- unzip <$> forM scrut (\e -> do
       scrut_id <- freshIdent'
-      pure ( Var ss (Qualified Nothing scrut_id)
+      pure ( Var ss (Qualified ByNullSourcePos scrut_id)
            , ValueDecl (ss, []) scrut_id Private [] [MkUnguarded e]
            )
       )
@@ -171,8 +171,8 @@
           -- if the binder is a var binder we must not add
           -- the fail case as it results in unreachable
           -- alternative
-          alt_fail' | all isIrrefutable vb = []
-                    | otherwise = alt_fail
+          alt_fail' n | all isIrrefutable vb = []
+                      | otherwise = alt_fail n
 
 
           -- we are here:
@@ -186,18 +186,18 @@
           --
         in Case scrut
             (CaseAlternative vb [MkUnguarded (desugarGuard gs e alt_fail)]
-              : alt_fail')
+              : alt_fail' (length scrut))
 
       return [ CaseAlternative scrut_nullbinder [MkUnguarded rhs]]
 
-    desugarGuard :: [Guard] -> Expr -> [CaseAlternative] -> Expr
+    desugarGuard :: [Guard] -> Expr -> (Int ->[CaseAlternative]) -> Expr
     desugarGuard [] e _ = e
     desugarGuard (ConditionGuard c : gs) e match_failed
       | isTrueExpr c = desugarGuard gs e match_failed
       | otherwise =
         Case [c]
           (CaseAlternative [LiteralBinder ss (BooleanLiteral True)]
-            [MkUnguarded (desugarGuard gs e match_failed)] : match_failed)
+            [MkUnguarded (desugarGuard gs e match_failed)] : match_failed 1)
 
     desugarGuard (PatternGuard vb g : gs) e match_failed =
       Case [g]
@@ -206,7 +206,7 @@
       where
         -- don't consider match_failed case if the binder is irrefutable
         match_failed' | isIrrefutable vb = []
-                      | otherwise        = match_failed
+                      | otherwise        = match_failed 1
 
     -- we generate a let-binding for the remaining guards
     -- and alternatives. A CaseAlternative is passed (or in
@@ -215,7 +215,7 @@
     desugarAltOutOfLine :: [Binder]
                         -> [GuardedExpr]
                         -> [CaseAlternative]
-                        -> ([CaseAlternative] -> Expr)
+                        -> ((Int -> [CaseAlternative]) -> Expr)
                         -> m Expr
     desugarAltOutOfLine alt_binder rem_guarded rem_alts mk_body
       | Just rem_case <- mkCaseOfRemainingGuardsAndAlts = do
@@ -226,9 +226,10 @@
 
         let
           goto_rem_case :: Expr
-          goto_rem_case = Var ss (Qualified Nothing rem_case_id)
+          goto_rem_case = Var ss (Qualified ByNullSourcePos rem_case_id)
             `App` Literal ss (BooleanLiteral True)
-          alt_fail = [CaseAlternative [NullBinder] [MkUnguarded goto_rem_case]]
+          alt_fail :: Int -> [CaseAlternative]
+          alt_fail n = [CaseAlternative (replicate n NullBinder) [MkUnguarded goto_rem_case]]
 
         pure $ Let FromLet [
           ValueDecl (ss, []) rem_case_id Private []
@@ -236,7 +237,7 @@
           ] (mk_body alt_fail)
 
       | otherwise
-      = pure $ mk_body []
+      = pure $ mk_body (const [])
       where
         mkCaseOfRemainingGuardsAndAlts
           | not (null rem_guarded)
@@ -251,7 +252,7 @@
 
     -- case expressions with a single alternative which have
     -- a NullBinder occur frequently after desugaring
-    -- complex guards. This function removes these superflous
+    -- complex guards. This function removes these superfluous
     -- cases.
     optimize :: Expr -> Expr
     optimize (Case _ [CaseAlternative vb [MkUnguarded v]])
@@ -266,8 +267,8 @@
     alts' <- desugarAlternatives alternatives
     return $ optimize (Case scrut alts')
 
-desugarGuardedExprs ss (TypedValue infered e ty) =
-  TypedValue infered <$> desugarGuardedExprs ss e <*> pure ty
+desugarGuardedExprs ss (TypedValue inferred e ty) =
+  TypedValue inferred <$> desugarGuardedExprs ss e <*> pure ty
 
 desugarGuardedExprs _ (PositionedValue ss comms e) =
   PositionedValue ss comms <$> desugarGuardedExprs ss e
@@ -312,7 +313,7 @@
     pure (Abs (VarBinder ss i) val)
   replace (Abs binder val) = do
     ident <- freshIdent'
-    return $ Abs (VarBinder nullSourceSpan ident) $ Case [Var nullSourceSpan (Qualified Nothing ident)] [CaseAlternative [binder] [MkUnguarded val]]
+    return $ Abs (VarBinder nullSourceSpan ident) $ Case [Var nullSourceSpan (Qualified ByNullSourcePos ident)] [CaseAlternative [binder] [MkUnguarded val]]
   replace other = return other
 
 stripPositioned :: Binder -> Binder
@@ -326,8 +327,8 @@
 desugarCases = desugarRest <=< fmap join . flip parU toDecls . groupBy inSameGroup
   where
     desugarRest :: [Declaration] -> m [Declaration]
-    desugarRest (TypeInstanceDeclaration sa cd idx name constraints className tys ds : rest) =
-      (:) <$> (TypeInstanceDeclaration sa cd idx name constraints className tys <$> traverseTypeInstanceBody desugarCases ds) <*> desugarRest rest
+    desugarRest (TypeInstanceDeclaration sa na cd idx name constraints className tys ds : rest) =
+      (:) <$> (TypeInstanceDeclaration sa na cd idx name constraints className tys <$> traverseTypeInstanceBody desugarCases ds) <*> desugarRest rest
     desugarRest (ValueDecl sa name nameKind bs result : rest) =
       let (_, f, _) = everywhereOnValuesTopDownM return go return
           f' = mapM (\(GuardedExpr gs e) -> GuardedExpr gs <$> f e)
@@ -379,10 +380,10 @@
       argNames = foldl1 resolveNames namedArgs
   args <- if allUnique (catMaybes argNames)
             then mapM argName argNames
-            else replicateM (length argNames) freshIdent'
-  let vars = map (Var ss . Qualified Nothing) args
+            else replicateM (length argNames) ((nullSourceSpan, ) <$> freshIdent')
+  let vars = map (Var ss . Qualified ByNullSourcePos . snd) args
       binders = [ CaseAlternative bs result | (bs, result) <- alternatives ]
-  let value = foldr (Abs . VarBinder ss) (Case vars binders) args
+  let value = foldr (Abs . uncurry VarBinder) (Case vars binders) args
 
   return $ ValueDecl (ss, []) ident Public [] [MkUnguarded value]
   where
@@ -390,8 +391,8 @@
   -- VarBinders will become Just _ which is a potential name.
   -- Everything else becomes Nothing, which indicates that we
   -- have to generate a name.
-  findName :: Binder -> Maybe Ident
-  findName (VarBinder _ name) = Just name
+  findName :: Binder -> Maybe (SourceSpan, Ident)
+  findName (VarBinder ss' name) = Just (ss', name)
   findName (PositionedBinder _ _ binder) = findName binder
   findName _ = Nothing
 
@@ -400,18 +401,18 @@
   allUnique :: (Ord a) => [a] -> Bool
   allUnique xs = length xs == length (ordNub xs)
 
-  argName :: Maybe Ident -> m Ident
-  argName (Just name) = return name
-  argName _ = freshIdent'
+  argName :: Maybe (SourceSpan, Ident) -> m (SourceSpan, Ident)
+  argName (Just (ss', name)) = return (ss', name)
+  argName _ = (nullSourceSpan, ) <$> freshIdent'
 
   -- Combine two lists of potential names from two case alternatives
-  -- by zipping correspoding columns.
-  resolveNames :: [Maybe Ident] -> [Maybe Ident] -> [Maybe Ident]
+  -- by zipping corresponding columns.
+  resolveNames :: [Maybe (SourceSpan, Ident)] -> [Maybe (SourceSpan, Ident)] -> [Maybe (SourceSpan, Ident)]
   resolveNames = zipWith resolveName
 
   -- Resolve a pair of names. VarBinder beats NullBinder, and everything
   -- else results in Nothing.
-  resolveName :: Maybe Ident -> Maybe Ident -> Maybe Ident
+  resolveName :: Maybe (SourceSpan, Ident) -> Maybe (SourceSpan, Ident) -> Maybe (SourceSpan, Ident)
   resolveName (Just a) (Just b)
     | a == b = Just a
     | otherwise = Nothing
diff --git a/src/Language/PureScript/Sugar/DoNotation.hs b/src/Language/PureScript/Sugar/DoNotation.hs
--- a/src/Language/PureScript/Sugar/DoNotation.hs
+++ b/src/Language/PureScript/Sugar/DoNotation.hs
@@ -1,20 +1,20 @@
 -- | This module implements the desugaring pass which replaces do-notation statements with
 -- appropriate calls to bind.
 
-{-# LANGUAGE PatternGuards #-}
-
 module Language.PureScript.Sugar.DoNotation (desugarDoModule) where
 
-import           Prelude.Compat
+import Prelude
 
-import           Control.Monad.Error.Class (MonadError(..))
-import           Control.Monad.Supply.Class
-import           Data.Monoid (First(..))
-import           Language.PureScript.AST
-import           Language.PureScript.Crash
-import           Language.PureScript.Errors
-import           Language.PureScript.Names
-import qualified Language.PureScript.Constants as C
+import Control.Applicative ((<|>))
+import Control.Monad.Error.Class (MonadError(..))
+import Control.Monad.Supply.Class (MonadSupply)
+import Data.Maybe (fromMaybe)
+import Data.Monoid (First(..))
+import Language.PureScript.AST (Binder(..), CaseAlternative(..), Declaration, DoNotationElement(..), Expr(..), pattern MkUnguarded, Module(..), SourceSpan, pattern ValueDecl, WhereProvenance(..), binderNames, declSourceSpan, everywhereOnValuesM)
+import Language.PureScript.Crash (internalError)
+import Language.PureScript.Errors (MultipleErrors, SimpleErrorMessage(..), errorMessage, errorMessage', parU, rethrowWithPosition)
+import Language.PureScript.Names (pattern ByNullSourcePos, Ident(..), ModuleName, Qualified(..), byMaybeModuleName, freshIdent')
+import Language.PureScript.Constants.Libs qualified as C
 
 -- | Replace all @DoNotationBind@ and @DoNotationValue@ constructors with
 -- applications of the bind function in scope, and all @DoNotationLet@
@@ -30,16 +30,23 @@
   in rethrowWithPosition ss $ f d
   where
   bind :: SourceSpan -> Maybe ModuleName -> Expr
-  bind ss m = Var ss (Qualified m (Ident C.bind))
+  bind ss m = Var ss (Qualified (byMaybeModuleName m) (Ident C.S_bind))
 
   discard :: SourceSpan -> Maybe ModuleName -> Expr
-  discard ss m = Var ss (Qualified m (Ident C.discard))
+  discard ss m = Var ss (Qualified (byMaybeModuleName m) (Ident C.S_discard))
 
   replace :: SourceSpan -> Expr -> m Expr
   replace pos (Do m els) = go pos m els
   replace _ (PositionedValue pos com v) = PositionedValue pos com <$> rethrowWithPosition pos (replace pos v)
   replace _ other = return other
 
+  stripPositionedBinder :: Binder -> (Maybe SourceSpan, Binder)
+  stripPositionedBinder (PositionedBinder ss _ b) =
+    let (ss', b') = stripPositionedBinder b
+     in (ss' <|> Just ss, b')
+  stripPositionedBinder b =
+    (Nothing, b)
+
   go :: SourceSpan -> Maybe ModuleName -> [DoNotationElement] -> m Expr
   go _ _ [] = internalError "The impossible happened in desugarDo"
   go _ _ [DoNotationValue val] = return val
@@ -50,20 +57,25 @@
   go _ _ (DoNotationBind b _ : _) | First (Just ident) <- foldMap fromIdent (binderNames b) =
       throwError . errorMessage $ CannotUseBindWithDo (Ident ident)
     where
-      fromIdent (Ident i) | i `elem` [ C.bind, C.discard ] = First (Just i)
+      fromIdent (Ident i) | i `elem` [ C.S_bind, C.S_discard ] = First (Just i)
       fromIdent _ = mempty
-  go pos m (DoNotationBind (VarBinder ss ident) val : rest) = do
-    rest' <- go pos m rest
-    return $ App (App (bind pos m) val) (Abs (VarBinder ss ident) rest')
   go pos m (DoNotationBind binder val : rest) = do
     rest' <- go pos m rest
-    ident <- freshIdent'
-    return $ App (App (bind pos m) val) (Abs (VarBinder pos ident) (Case [Var pos (Qualified Nothing ident)] [CaseAlternative [binder] [MkUnguarded rest']]))
+    let (mss, binder') = stripPositionedBinder binder
+    let ss = fromMaybe pos mss
+    case binder' of
+      NullBinder ->
+        return $ App (App (bind pos m) val) (Abs (VarBinder ss UnusedIdent) rest')
+      VarBinder _ ident ->
+        return $ App (App (bind pos m) val) (Abs (VarBinder ss ident) rest')
+      _ -> do
+        ident <- freshIdent'
+        return $ App (App (bind pos m) val) (Abs (VarBinder pos ident) (Case [Var pos (Qualified ByNullSourcePos ident)] [CaseAlternative [binder] [MkUnguarded rest']]))
   go _ _ [DoNotationLet _] = throwError . errorMessage $ InvalidDoLet
   go pos m (DoNotationLet ds : rest) = do
     let checkBind :: Declaration -> m ()
         checkBind (ValueDecl (ss, _) i@(Ident name) _ _ _)
-          | name `elem` [ C.bind, C.discard ] = throwError . errorMessage' ss $ CannotUseBindWithDo i
+          | name `elem` [ C.S_bind, C.S_discard ] = throwError . errorMessage' ss $ CannotUseBindWithDo i
         checkBind _ = pure ()
     mapM_ checkBind ds
     rest' <- go pos m rest
diff --git a/src/Language/PureScript/Sugar/LetPattern.hs b/src/Language/PureScript/Sugar/LetPattern.hs
--- a/src/Language/PureScript/Sugar/LetPattern.hs
+++ b/src/Language/PureScript/Sugar/LetPattern.hs
@@ -4,13 +4,13 @@
 --
 module Language.PureScript.Sugar.LetPattern (desugarLetPatternModule) where
 
-import Prelude.Compat
+import Prelude
 
-import Data.List (groupBy, concatMap)
+import Data.List (groupBy)
 import Data.Function (on)
 
-import Language.PureScript.AST
-import Language.PureScript.Crash
+import Language.PureScript.AST (Binder, CaseAlternative(..), Declaration(..), Expr(..), pattern MkUnguarded, Module(..), SourceAnn, WhereProvenance, everywhereOnValues)
+import Language.PureScript.Crash (internalError)
 
 -- | Replace every @BoundValueDeclaration@ in @Let@ expressions with @Case@
 -- expressions.
@@ -28,11 +28,11 @@
   replace other = other
 
   go :: WhereProvenance
-     -- ^ Metadata about whether the let-in was a where clause
+          -- Metadata about whether the let-in was a where clause
      -> [Either [Declaration] (SourceAnn, Binder, Expr)]
-     -- ^ Declarations to desugar
+          -- Declarations to desugar
      -> Expr
-     -- ^ The original let-in result expression
+          -- The original let-in result expression
      -> Expr
   go _ [] e = e
   go w (Right ((pos, com), binder, boundE) : ds) e =
diff --git a/src/Language/PureScript/Sugar/Names.hs b/src/Language/PureScript/Sugar/Names.hs
--- a/src/Language/PureScript/Sugar/Names.hs
+++ b/src/Language/PureScript/Sugar/Names.hs
@@ -1,7 +1,7 @@
 module Language.PureScript.Sugar.Names
   ( desugarImports
-  , desugarImportsWithEnv
   , Env
+  , externsEnv
   , primEnv
   , ImportRecord(..)
   , ImportProvenance(..)
@@ -9,122 +9,108 @@
   , Exports(..)
   ) where
 
-import Prelude.Compat
-import Protolude (ordNub, sortBy, on)
+import Prelude
+import Protolude (sortOn, swap, foldl')
 
-import Control.Arrow (first)
-import Control.Monad
+import Control.Arrow (first, second, (&&&))
+import Control.Monad (foldM, when, (>=>))
 import Control.Monad.Error.Class (MonadError(..))
-import Control.Monad.State.Lazy
-import Control.Monad.Writer (MonadWriter(..), censor)
+import Control.Monad.State.Lazy (MonadState, StateT(..), gets, modify)
+import Control.Monad.Writer (MonadWriter(..))
 
+import Data.List.NonEmpty qualified as NEL
 import Data.Maybe (fromMaybe, mapMaybe)
-import qualified Data.Map as M
-import qualified Data.Set as S
+import Data.Map qualified as M
+import Data.Set qualified as S
 
 import Language.PureScript.AST
-import Language.PureScript.Crash
-import Language.PureScript.Errors
-import Language.PureScript.Externs
-import Language.PureScript.Kinds
-import Language.PureScript.Linter.Imports
-import Language.PureScript.Names
-import Language.PureScript.Sugar.Names.Env
-import Language.PureScript.Sugar.Names.Exports
-import Language.PureScript.Sugar.Names.Imports
-import Language.PureScript.Traversals
-import Language.PureScript.Types
+import Language.PureScript.Crash (internalError)
+import Language.PureScript.Errors (MultipleErrors, SimpleErrorMessage(..), addHint, errorMessage, errorMessage'', nonEmpty, parU, warnAndRethrow, warnAndRethrowWithPosition)
+import Language.PureScript.Externs (ExternsDeclaration(..), ExternsFile(..), ExternsImport(..))
+import Language.PureScript.Linter.Imports (Name(..), UsedImports)
+import Language.PureScript.Names (pattern ByNullSourcePos, Ident, OpName, OpNameType(..), ProperName, ProperNameType(..), Qualified(..), QualifiedBy(..))
+import Language.PureScript.Sugar.Names.Env (Env, Exports(..), ImportProvenance(..), ImportRecord(..), Imports(..), checkImportConflicts, nullImports, primEnv)
+import Language.PureScript.Sugar.Names.Exports (findExportable, resolveExports)
+import Language.PureScript.Sugar.Names.Imports (resolveImports, resolveModuleImport)
+import Language.PureScript.Traversals (defS, sndM)
+import Language.PureScript.Types (Constraint(..), SourceConstraint, SourceType, Type(..), everywhereOnTypesM)
 
 -- |
--- Replaces all local names with qualified names within a list of modules. The
--- modules should be topologically sorted beforehand.
+-- Replaces all local names with qualified names.
 --
 desugarImports
   :: forall m
-   . (MonadError MultipleErrors m, MonadWriter MultipleErrors m)
-  => [ExternsFile]
-  -> [Module]
-  -> m [Module]
-desugarImports externs modules =
-  fmap snd (desugarImportsWithEnv externs modules)
+   . (MonadError MultipleErrors m, MonadWriter MultipleErrors m, MonadState (Env, UsedImports) m)
+  => Module
+  -> m Module
+desugarImports = updateEnv >=> renameInModule'
+  where
+  updateEnv :: Module -> m Module
+  updateEnv m@(Module ss _ mn _ refs) = do
+    members <- findExportable m
+    env' <- gets $ M.insert mn (ss, nullImports, members) . fst
+    (m', imps) <- resolveImports env' m
+    exps <- maybe (return members) (resolveExports env' ss mn imps members) refs
+    modify . first $ M.insert mn (ss, imps, exps)
+    return m'
 
-desugarImportsWithEnv
+  renameInModule' :: Module -> m Module
+  renameInModule' m@(Module _ _ mn _ _) =
+    warnAndRethrow (addHint (ErrorInModule mn)) $ do
+      env <- gets fst
+      let (_, imps, exps) = fromMaybe (internalError "Module is missing in renameInModule'") $ M.lookup mn env
+      (m', used) <- flip runStateT M.empty $ renameInModule imps m
+      modify . second $ M.unionWith (<>) used
+      return $ elaborateExports exps m'
+
+-- | Create an environment from a collection of externs files
+externsEnv
   :: forall m
-  . (MonadError MultipleErrors m, MonadWriter MultipleErrors m)
-  => [ExternsFile]
-  -> [Module]
-  -> m (Env, [Module])
-desugarImportsWithEnv externs modules = do
-  env <- silence $ foldM externsEnv primEnv externs
-  (modules', env') <- first reverse <$> foldM updateEnv ([], env) modules
-  (env',) <$> traverse (renameInModule' env') modules'
+   . (MonadError MultipleErrors m, MonadWriter MultipleErrors m)
+  => Env
+  -> ExternsFile
+  -> m Env
+externsEnv env ExternsFile{..} = do
+  let members = Exports{..}
+      env' = M.insert efModuleName (efSourceSpan, nullImports, members) env
+      fromEFImport (ExternsImport mn mt qmn) = (mn, [(efSourceSpan, Just mt, qmn)])
+  imps <- foldM (resolveModuleImport env') nullImports (map fromEFImport efImports)
+  exps <- resolveExports env' efSourceSpan efModuleName imps members efExports
+  return $ M.insert efModuleName (efSourceSpan, imps, exps) env
   where
-  silence :: m a -> m a
-  silence = censor (const mempty)
 
-  -- | Create an environment from a collection of externs files
-  externsEnv :: Env -> ExternsFile -> m Env
-  externsEnv env ExternsFile{..} = do
-    let members = Exports{..}
-        env' = M.insert efModuleName (efSourceSpan, nullImports, members) env
-        fromEFImport (ExternsImport mn mt qmn) = (mn, [(efSourceSpan, Just mt, qmn)])
-    imps <- foldM (resolveModuleImport env') nullImports (map fromEFImport efImports)
-    exps <- resolveExports env' efSourceSpan efModuleName imps members efExports
-    return $ M.insert efModuleName (efSourceSpan, imps, exps) env
-    where
-
-    -- An ExportSource for declarations local to the module which the given
-    -- ExternsFile corresponds to.
-    localExportSource =
-      ExportSource { exportSourceDefinedIn = efModuleName
-                   , exportSourceImportedFrom = Nothing
-                   }
+  -- An ExportSource for declarations local to the module which the given
+  -- ExternsFile corresponds to.
+  localExportSource =
+    ExportSource { exportSourceDefinedIn = efModuleName
+                  , exportSourceImportedFrom = Nothing
+                  }
 
-    exportedTypes :: M.Map (ProperName 'TypeName) ([ProperName 'ConstructorName], ExportSource)
-    exportedTypes = M.fromList $ mapMaybe toExportedType efExports
+  exportedTypes :: M.Map (ProperName 'TypeName) ([ProperName 'ConstructorName], ExportSource)
+  exportedTypes = M.fromList $ mapMaybe toExportedType efExports
+    where
+    toExportedType (TypeRef _ tyCon dctors) = Just (tyCon, (fromMaybe (mapMaybe forTyCon efDeclarations) dctors, localExportSource))
       where
-      toExportedType (TypeRef _ tyCon dctors) = Just (tyCon, (fromMaybe (mapMaybe forTyCon efDeclarations) dctors, localExportSource))
-        where
-        forTyCon :: ExternsDeclaration -> Maybe (ProperName 'ConstructorName)
-        forTyCon (EDDataConstructor pn _ tNm _ _) | tNm == tyCon = Just pn
-        forTyCon _ = Nothing
-      toExportedType _ = Nothing
-
-    exportedTypeOps :: M.Map (OpName 'TypeOpName) ExportSource
-    exportedTypeOps = exportedRefs getTypeOpRef
-
-    exportedTypeClasses :: M.Map (ProperName 'ClassName) ExportSource
-    exportedTypeClasses = exportedRefs getTypeClassRef
-
-    exportedValues :: M.Map Ident ExportSource
-    exportedValues = exportedRefs getValueRef
+      forTyCon :: ExternsDeclaration -> Maybe (ProperName 'ConstructorName)
+      forTyCon (EDDataConstructor pn _ tNm _ _) | tNm == tyCon = Just pn
+      forTyCon _ = Nothing
+    toExportedType _ = Nothing
 
-    exportedValueOps :: M.Map (OpName 'ValueOpName) ExportSource
-    exportedValueOps = exportedRefs getValueOpRef
+  exportedTypeOps :: M.Map (OpName 'TypeOpName) ExportSource
+  exportedTypeOps = exportedRefs getTypeOpRef
 
-    exportedKinds :: M.Map (ProperName 'KindName) ExportSource
-    exportedKinds = exportedRefs getKindRef
+  exportedTypeClasses :: M.Map (ProperName 'ClassName) ExportSource
+  exportedTypeClasses = exportedRefs getTypeClassRef
 
-    exportedRefs :: Ord a => (DeclarationRef -> Maybe a) -> M.Map a ExportSource
-    exportedRefs f =
-      M.fromList $ (, localExportSource) <$> mapMaybe f efExports
+  exportedValues :: M.Map Ident ExportSource
+  exportedValues = exportedRefs getValueRef
 
-  updateEnv :: ([Module], Env) -> Module -> m ([Module], Env)
-  updateEnv (ms, env) m@(Module ss _ mn _ refs) = do
-    members <- findExportable m
-    let env' = M.insert mn (ss, nullImports, members) env
-    (m', imps) <- resolveImports env' m
-    exps <- maybe (return members) (resolveExports env' ss mn imps members) refs
-    return (m' : ms, M.insert mn (ss, imps, exps) env)
+  exportedValueOps :: M.Map (OpName 'ValueOpName) ExportSource
+  exportedValueOps = exportedRefs getValueOpRef
 
-  renameInModule' :: Env -> Module -> m Module
-  renameInModule' env m@(Module _ _ mn _ _) =
-    warnAndRethrow (addHint (ErrorInModule mn)) $ do
-      let (_, imps, exps) = fromMaybe (internalError "Module is missing in renameInModule'") $ M.lookup mn env
-      (m', used) <- flip runStateT M.empty $ renameInModule imps m
-      let m'' = elaborateExports exps m'
-      lintImports m'' env used
-      return m''
+  exportedRefs :: Ord a => (DeclarationRef -> Maybe a) -> M.Map a ExportSource
+  exportedRefs f =
+    M.fromList $ (, localExportSource) <$> mapMaybe f efExports
 
 -- |
 -- Make all exports for a module explicit. This may still affect modules that
@@ -143,7 +129,6 @@
     ++ go (TypeClassRef ss) exportedTypeClasses
     ++ go (ValueRef ss) exportedValues
     ++ go (ValueOpRef ss) exportedValueOps
-    ++ go (KindRef ss) exportedKinds
     ++ maybe [] (filter isModuleRef) refs
   where
 
@@ -165,7 +150,7 @@
 -- their order in the source file.
 reorderExports :: [Declaration] -> Maybe [DeclarationRef] -> [DeclarationRef] -> [DeclarationRef]
 reorderExports decls originalRefs =
-  sortBy (compare `on` originalIndex)
+  sortOn originalIndex
   where
   names =
     maybe (mapMaybe declName decls) (map declRefName) originalRefs
@@ -188,55 +173,60 @@
   Module modSS coms mn <$> parU decls go <*> pure exps
   where
 
-  (go, _, _, _, _) =
+  (go, _, _, _, _, _) =
     everywhereWithContextOnValuesM
-      (modSS, [])
+      (modSS, M.empty)
       (\(_, bound) d -> (\(bound', d') -> ((declSourceSpan d', bound'), d')) <$> updateDecl bound d)
       updateValue
       updateBinder
       updateCase
       defS
+      updateGuard
 
   updateDecl
-    :: [Ident]
+    :: M.Map Ident SourcePos
     -> Declaration
-    -> m ([Ident], Declaration)
+    -> m (M.Map Ident SourcePos, Declaration)
   updateDecl bound (DataDeclaration sa dtype name args dctors) =
     fmap (bound,) $
       DataDeclaration sa dtype name
         <$> updateTypeArguments args
-        <*> traverse (sndM (traverse (sndM updateTypesEverywhere))) dctors
+        <*> traverse (traverseDataCtorFields (traverse (sndM updateTypesEverywhere))) dctors
   updateDecl bound (TypeSynonymDeclaration sa name ps ty) =
     fmap (bound,) $
       TypeSynonymDeclaration sa name
         <$> updateTypeArguments ps
         <*> updateTypesEverywhere ty
-  updateDecl bound (TypeClassDeclaration sa@(ss, _) className args implies deps ds) =
+  updateDecl bound (TypeClassDeclaration sa className args implies deps ds) =
     fmap (bound,) $
       TypeClassDeclaration sa className
         <$> updateTypeArguments args
-        <*> updateConstraints ss implies
+        <*> updateConstraints implies
         <*> pure deps
         <*> pure ds
-  updateDecl bound (TypeInstanceDeclaration sa@(ss, _) ch idx name cs cn ts ds) =
+  updateDecl bound (TypeInstanceDeclaration sa na@(ss, _) ch idx name cs cn ts ds) =
     fmap (bound,) $
-      TypeInstanceDeclaration sa ch idx name
-        <$> updateConstraints ss cs
+      TypeInstanceDeclaration sa na ch idx name
+        <$> updateConstraints cs
         <*> updateClassName cn ss
         <*> traverse updateTypesEverywhere ts
         <*> pure ds
+  updateDecl bound (KindDeclaration sa kindFor name ty) =
+    fmap (bound,) $
+      KindDeclaration sa kindFor name
+        <$> updateTypesEverywhere ty
   updateDecl bound (TypeDeclaration (TypeDeclarationData sa name ty)) =
     fmap (bound,) $
       TypeDeclaration . TypeDeclarationData sa name
         <$> updateTypesEverywhere ty
   updateDecl bound (ExternDeclaration sa name ty) =
-    fmap (name : bound,) $
+    fmap (M.insert name (spanStart $ fst sa) bound,) $
       ExternDeclaration sa name
         <$> updateTypesEverywhere ty
   updateDecl bound (ExternDataDeclaration sa name ki) =
     fmap (bound,) $
       ExternDataDeclaration sa name
-        <$> updateKindsEverywhere ki
+        <$> updateTypesEverywhere ki
   updateDecl bound (TypeFixityDeclaration sa@(ss, _) fixity alias op) =
     fmap (bound,) $
       TypeFixityDeclaration sa fixity
@@ -256,40 +246,63 @@
     return (b, d)
 
   updateValue
-    :: (SourceSpan, [Ident])
+    :: (SourceSpan, M.Map Ident SourcePos)
     -> Expr
-    -> m ((SourceSpan, [Ident]), Expr)
+    -> m ((SourceSpan, M.Map Ident SourcePos), Expr)
   updateValue (_, bound) v@(PositionedValue pos' _ _) =
     return ((pos', bound), v)
   updateValue (pos, bound) (Abs (VarBinder ss arg) val') =
-    return ((pos, arg : bound), Abs (VarBinder ss arg) val')
+    return ((pos, M.insert arg (spanStart ss) bound), Abs (VarBinder ss arg) val')
   updateValue (pos, bound) (Let w ds val') = do
-    let args = mapMaybe letBoundVariable ds
-    unless (length (ordNub args) == length args) .
-      throwError . errorMessage' pos $ OverlappingNamesInLet
-    return ((pos, args ++ bound), Let w ds val')
-  updateValue (_, bound) (Var ss name'@(Qualified Nothing ident)) | ident `notElem` bound =
-    (,) (ss, bound) <$> (Var ss <$> updateValueName name' ss)
-  updateValue (_, bound) (Var ss name'@(Qualified (Just _) _)) =
-    (,) (ss, bound) <$> (Var ss <$> updateValueName name' ss)
+    let
+      args = mapMaybe letBoundVariable ds
+      groupByFst = map (\ts -> (fst (NEL.head ts), snd <$> ts)) . NEL.groupAllWith fst
+      duplicateArgsErrs = foldMap mkArgError $ groupByFst args
+      mkArgError (ident, poses)
+        | NEL.length poses < 2 = mempty
+        | otherwise = errorMessage'' (NEL.reverse poses) (OverlappingNamesInLet ident)
+    when (nonEmpty duplicateArgsErrs) $
+      throwError duplicateArgsErrs
+    return ((pos, declarationsToMap ds `M.union` bound), Let w ds val')
+  updateValue (_, bound) (Var ss name'@(Qualified qualifiedBy ident)) =
+    ((ss, bound), ) <$> case (M.lookup ident bound, qualifiedBy) of
+      -- bound idents that have yet to be locally qualified.
+      (Just sourcePos, ByNullSourcePos) ->
+        pure $ Var ss (Qualified (BySourcePos sourcePos) ident)
+      -- unbound idents are likely import unqualified imports, so we
+      -- handle them through updateValueName if they don't exist as a
+      -- local binding.
+      (Nothing, ByNullSourcePos) ->
+        Var ss <$> updateValueName name' ss
+      -- bound/unbound idents with explicit qualification is still
+      -- handled through updateValueName, as it fully resolves the
+      -- ModuleName.
+      (_, ByModuleName _) ->
+        Var ss <$> updateValueName name' ss
+      -- encountering non-null source spans may be a bug in previous
+      -- desugaring steps or with the AST traversals.
+      (_, BySourcePos _) ->
+        internalError "updateValue: ident is locally-qualified by a non-null source position"
   updateValue (_, bound) (Op ss op) =
-    (,) (ss, bound) <$> (Op ss <$> updateValueOpName op ss)
+    ((ss, bound), ) <$> (Op ss <$> updateValueOpName op ss)
   updateValue (_, bound) (Constructor ss name) =
-    (,) (ss, bound) <$> (Constructor ss <$> updateDataConstructorName name ss)
+    ((ss, bound), ) <$> (Constructor ss <$> updateDataConstructorName name ss)
   updateValue s (TypedValue check val ty) =
-    (,) s <$> (TypedValue check val <$> updateTypesEverywhere ty)
+    (s, ) <$> (TypedValue check val <$> updateTypesEverywhere ty)
+  updateValue s (VisibleTypeApp val ty) =
+    (s, ) <$> VisibleTypeApp val <$> updateTypesEverywhere ty
   updateValue s v = return (s, v)
 
   updateBinder
-    :: (SourceSpan, [Ident])
+    :: (SourceSpan, M.Map Ident SourcePos)
     -> Binder
-    -> m ((SourceSpan, [Ident]), Binder)
+    -> m ((SourceSpan, M.Map Ident SourcePos), Binder)
   updateBinder (_, bound) v@(PositionedBinder pos _ _) =
     return ((pos, bound), v)
   updateBinder (_, bound) (ConstructorBinder ss name b) =
-    (,) (ss, bound) <$> (ConstructorBinder ss <$> updateDataConstructorName name ss <*> pure b)
+    ((ss, bound), ) <$> (ConstructorBinder ss <$> updateDataConstructorName name ss <*> pure b)
   updateBinder (_, bound) (OpBinder ss op) =
-    (,) (ss, bound) <$> (OpBinder ss <$> updateValueOpName op ss)
+    ((ss, bound), ) <$> (OpBinder ss <$> updateValueOpName op ss)
   updateBinder s (TypedBinder t b) = do
     t' <- updateTypesEverywhere t
     return (s, TypedBinder t' b)
@@ -297,34 +310,44 @@
     return (s, v)
 
   updateCase
-    :: (SourceSpan, [Ident])
+    :: (SourceSpan, M.Map Ident SourcePos)
     -> CaseAlternative
-    -> m ((SourceSpan, [Ident]), CaseAlternative)
-  updateCase (pos, bound) c@(CaseAlternative bs gs) =
-    return ((pos, concatMap binderNames bs ++ updateGuard gs ++ bound), c)
+    -> m ((SourceSpan, M.Map Ident SourcePos), CaseAlternative)
+  updateCase (pos, bound) c@(CaseAlternative bs _) =
+    return ((pos, rUnionMap binderNamesWithSpans' bs `M.union` bound), c)
     where
-    updateGuard :: [GuardedExpr] -> [Ident]
-    updateGuard [] = []
-    updateGuard (GuardedExpr g _ : xs) =
-      concatMap updatePatGuard g ++ updateGuard xs
-      where
-        updatePatGuard (PatternGuard b _) = binderNames b
-        updatePatGuard _                  = []
+    rUnionMap f = foldl' (flip (M.union . f)) M.empty
 
-  letBoundVariable :: Declaration -> Maybe Ident
-  letBoundVariable = fmap valdeclIdent . getValueDeclaration
+  updateGuard
+    :: (SourceSpan, M.Map Ident SourcePos)
+    -> Guard
+    -> m ((SourceSpan, M.Map Ident SourcePos), Guard)
+  updateGuard (pos, bound) g@(ConditionGuard _) =
+    return ((pos, bound), g)
+  updateGuard (pos, bound) g@(PatternGuard b _) =
+    return ((pos, binderNamesWithSpans' b `M.union` bound), g)
 
-  updateKindsEverywhere :: SourceKind -> m SourceKind
-  updateKindsEverywhere = everywhereOnKindsM updateKind
+  binderNamesWithSpans' :: Binder -> M.Map Ident SourcePos
+  binderNamesWithSpans'
+    = M.fromList
+    . fmap (second spanStart . swap)
+    . binderNamesWithSpans
+
+  letBoundVariable :: Declaration -> Maybe (Ident, SourceSpan)
+  letBoundVariable = fmap (valdeclIdent &&& (fst . valdeclSourceAnn)) . getValueDeclaration
+
+  declarationsToMap :: [Declaration] -> M.Map Ident SourcePos
+  declarationsToMap = foldl goDTM M.empty
     where
-    updateKind :: SourceKind -> m SourceKind
-    updateKind (NamedKind ann@(ss, _) name) = NamedKind ann <$> updateKindName name ss
-    updateKind k = return k
+      goDTM a (ValueDeclaration ValueDeclarationData {..}) =
+        M.insert valdeclIdent (spanStart $ fst valdeclSourceAnn) a
+      goDTM a _ =
+        a
 
   updateTypeArguments
     :: (Traversable f, Traversable g)
-    => f (a, g SourceKind) -> m (f (a, g SourceKind))
-  updateTypeArguments = traverse (sndM (traverse updateKindsEverywhere))
+    => f (a, g SourceType) -> m (f (a, g SourceType))
+  updateTypeArguments = traverse (sndM (traverse updateTypesEverywhere))
 
   updateTypesEverywhere :: SourceType -> m SourceType
   updateTypesEverywhere = everywhereOnTypesM updateType
@@ -333,19 +356,16 @@
     updateType (TypeOp ann@(ss, _) name) = TypeOp ann <$> updateTypeOpName name ss
     updateType (TypeConstructor ann@(ss, _) name) = TypeConstructor ann <$> updateTypeName name ss
     updateType (ConstrainedType ann c t) = ConstrainedType ann <$> updateInConstraint c <*> pure t
-    updateType (ForAll ann v mbK t sco) = case mbK of
-      Nothing -> pure $ ForAll ann v Nothing t sco
-      Just k -> ForAll ann v <$> fmap pure (updateKindsEverywhere k) <*> pure t <*> pure sco
-    updateType (KindedType ann t k) = KindedType ann t <$> updateKindsEverywhere k
     updateType t = return t
     updateInConstraint :: SourceConstraint -> m SourceConstraint
-    updateInConstraint (Constraint ann@(ss, _) name ts info) =
-      Constraint ann <$> updateClassName name ss <*> pure ts <*> pure info
+    updateInConstraint (Constraint ann@(ss, _) name ks ts info) =
+      Constraint ann <$> updateClassName name ss <*> pure ks <*> pure ts <*> pure info
 
-  updateConstraints :: SourceSpan -> [SourceConstraint] -> m [SourceConstraint]
-  updateConstraints pos = traverse $ \(Constraint ann name ts info) ->
+  updateConstraints :: [SourceConstraint] -> m [SourceConstraint]
+  updateConstraints = traverse $ \(Constraint ann@(pos, _) name ks ts info) ->
     Constraint ann
       <$> updateClassName name pos
+      <*> traverse updateTypesEverywhere ks
       <*> traverse updateTypesEverywhere ts
       <*> pure info
 
@@ -382,14 +402,8 @@
     -> m (Qualified (OpName 'ValueOpName))
   updateValueOpName = update (importedValueOps imports) ValOpName
 
-  updateKindName
-    :: Qualified (ProperName 'KindName)
-    -> SourceSpan
-    -> m (Qualified (ProperName 'KindName))
-  updateKindName = update (importedKinds imports) KiName
-
   -- Update names so unqualified references become qualified, and locally
-  -- qualified references are replaced with their canoncial qualified names
+  -- qualified references are replaced with their canonical qualified names
   -- (e.g. M.Map -> Data.Map.Map).
   update
     :: (Ord a)
@@ -410,16 +424,16 @@
         (mnNew, mnOrig) <- checkImportConflicts pos mn toName options
         modify $ \usedImports ->
           M.insertWith (++) mnNew [fmap toName qname] usedImports
-        return $ Qualified (Just mnOrig) name
+        return $ Qualified (ByModuleName mnOrig) name
 
       -- If the name wasn't found in our imports but was qualified then we need
       -- to check whether it's a failed import from a "pseudo" module (created
       -- by qualified importing). If that's not the case, then we just need to
       -- check it refers to a symbol in another module.
-      (Nothing, Just mn'') ->
+      (Nothing, ByModuleName mn'') ->
         if mn'' `S.member` importedQualModules imports || mn'' `S.member` importedModules imports
         then throwUnknown
-        else throwError . errorMessage . UnknownName . Qualified Nothing $ ModName mn''
+        else throwError . errorMessage . UnknownName . Qualified ByNullSourcePos $ ModName mn''
 
       -- If neither of the above cases are true then it's an undefined or
       -- unimported symbol.
diff --git a/src/Language/PureScript/Sugar/Names/Common.hs b/src/Language/PureScript/Sugar/Names/Common.hs
--- a/src/Language/PureScript/Sugar/Names/Common.hs
+++ b/src/Language/PureScript/Sugar/Names/Common.hs
@@ -1,17 +1,17 @@
 module Language.PureScript.Sugar.Names.Common (warnDuplicateRefs) where
 
-import Prelude.Compat
+import Prelude
 import Protolude (ordNub)
 
 import Control.Monad.Writer (MonadWriter(..))
 
 import Data.Foldable (for_)
-import Data.List (nub, (\\))
+import Data.List (group, sort, (\\))
 import Data.Maybe (mapMaybe)
 
-import Language.PureScript.AST
-import Language.PureScript.Errors
-import Language.PureScript.Names
+import Language.PureScript.AST (DeclarationRef(..), SourceSpan)
+import Language.PureScript.Errors (MultipleErrors, SimpleErrorMessage, errorMessage, warnWithPosition)
+import Language.PureScript.Names (Name(..))
 
 -- |
 -- Warns about duplicate values in a list of declaration refs.
@@ -24,7 +24,7 @@
   -> m ()
 warnDuplicateRefs pos toError refs = do
   let withoutCtors = deleteCtors `map` refs
-      dupeRefs = mapMaybe (refToName pos) $ withoutCtors \\ nub withoutCtors
+      dupeRefs = mapMaybe (refToName pos) $ removeUnique withoutCtors
       dupeCtors = concat $ mapMaybe (extractCtors pos) refs
 
   for_ (dupeRefs ++ dupeCtors) $ \(pos', name) ->
@@ -32,6 +32,17 @@
 
   where
 
+  -- Removes all unique elements from list
+  -- as well as one of each duplicate.
+  -- Example:
+  --  removeUnique [1,2,2,3,3,3,4] == [2,3,3]
+  -- Note that it may be more correct to keep ALL duplicates,
+  -- but that requires additional changes in how warnings are printed.
+  -- Example of keeping all duplicates (not what this code currently does):
+  --  removeUnique [1,2,2,3,3,3,4] == [2,2,3,3,3]
+  removeUnique :: Ord a => [a] -> [a]
+  removeUnique = concatMap (drop 1) . group . sort
+
   -- Deletes the constructor information from TypeRefs so that only the
   -- referenced type is used in the duplicate check - constructors are handled
   -- separately
@@ -43,7 +54,7 @@
   extractCtors :: SourceSpan -> DeclarationRef -> Maybe [(SourceSpan, Name)]
   extractCtors pos' (TypeRef _ _ (Just dctors)) =
     let dupes = dctors \\ ordNub dctors
-    in if null dupes then Nothing else Just $ ((pos',) . DctorName) <$> dupes
+    in if null dupes then Nothing else Just $ (pos',) . DctorName <$> dupes
   extractCtors _ _ = Nothing
 
   -- Converts a DeclarationRef into a name for an error message.
diff --git a/src/Language/PureScript/Sugar/Names/Env.hs b/src/Language/PureScript/Sugar/Names/Env.hs
--- a/src/Language/PureScript/Sugar/Names/Env.hs
+++ b/src/Language/PureScript/Sugar/Names/Env.hs
@@ -8,8 +8,6 @@
   , Env
   , primEnv
   , primExports
-  , envModuleSourceSpan
-  , envModuleImports
   , envModuleExports
   , ExportMode(..)
   , exportType
@@ -17,30 +15,29 @@
   , exportTypeClass
   , exportValue
   , exportValueOp
-  , exportKind
-  , getExports
   , checkImportConflicts
   ) where
 
-import Prelude.Compat
+import Prelude
 
-import Control.Monad
+import Control.Monad (forM_, when)
 import Control.Monad.Error.Class (MonadError(..))
 import Control.Monad.Writer.Class (MonadWriter(..))
 
 import Data.Function (on)
 import Data.Foldable (find)
-import Data.List (groupBy, sortBy, delete)
-import Data.Maybe (fromJust, mapMaybe)
+import Data.List (groupBy, sortOn, delete)
+import Data.Maybe (mapMaybe)
 import Safe (headMay)
-import qualified Data.Map as M
-import qualified Data.Set as S
+import Data.Map qualified as M
+import Data.Set qualified as S
 
-import qualified Language.PureScript.Constants as C
-import Language.PureScript.AST
+import Language.PureScript.Constants.Prim qualified as C
+import Language.PureScript.AST (ExportSource(..), SourceSpan, internalModuleSourceSpan, nullSourceSpan)
+import Language.PureScript.Crash (internalError)
 import Language.PureScript.Environment
-import Language.PureScript.Errors
-import Language.PureScript.Names
+import Language.PureScript.Errors (MultipleErrors, SimpleErrorMessage(..), errorMessage, errorMessage')
+import Language.PureScript.Names (Ident, ModuleName, Name(..), OpName, OpNameType(..), ProperName, ProperNameType(..), Qualified(..), QualifiedBy(..), coerceProperName, disqualify, getQual)
 
 -- |
 -- The details for an import: the name of the thing that is being imported
@@ -112,7 +109,7 @@
   -- |
   -- Local names for kinds within a module mapped to their qualified names
   --
-  , importedKinds :: ImportMap (ProperName 'KindName)
+  , importedKinds :: ImportMap (ProperName 'TypeName)
   } deriving (Show)
 
 nullImports :: Imports
@@ -145,17 +142,13 @@
   -- from.
   --
   , exportedValueOps :: M.Map (OpName 'ValueOpName) ExportSource
-  -- |
-  -- The exported kinds along with the module they originally came from.
-  --
-  , exportedKinds :: M.Map (ProperName 'KindName) ExportSource
   } deriving (Show)
 
 -- |
 -- An empty 'Exports' value.
 --
 nullExports :: Exports
-nullExports = Exports M.empty M.empty M.empty M.empty M.empty M.empty
+nullExports = Exports M.empty M.empty M.empty M.empty M.empty
 
 -- |
 -- The imports and exports for a collection of modules. The 'SourceSpan' is used
@@ -165,18 +158,6 @@
 type Env = M.Map ModuleName (SourceSpan, Imports, Exports)
 
 -- |
--- Extracts the 'SourceSpan' from an 'Env' value.
---
-envModuleSourceSpan :: (SourceSpan, a, b) -> SourceSpan
-envModuleSourceSpan (ss, _, _) = ss
-
--- |
--- Extracts the 'Imports' from an 'Env' value.
---
-envModuleImports :: (a, Imports, b) -> Imports
-envModuleImports (_, imps, _) = imps
-
--- |
 -- Extracts the 'Exports' from an 'Env' value.
 --
 envModuleExports :: (a, b, Exports) -> Exports
@@ -186,43 +167,54 @@
 -- The exported types from the @Prim@ module
 --
 primExports :: Exports
-primExports = mkPrimExports primTypes primClasses primKinds
+primExports = mkPrimExports primTypes primClasses
 
 -- |
 -- The exported types from the @Prim.Boolean@ module
 --
 primBooleanExports :: Exports
-primBooleanExports = mkPrimExports primBooleanTypes mempty primBooleanKinds
+primBooleanExports = mkPrimExports primBooleanTypes mempty
 
 -- |
+-- The exported types from the @Prim.Coerce@ module
+--
+primCoerceExports :: Exports
+primCoerceExports = mkPrimExports primCoerceTypes primCoerceClasses
+
+-- |
 -- The exported types from the @Prim.Ordering@ module
 --
 primOrderingExports :: Exports
-primOrderingExports = mkPrimExports primOrderingTypes mempty primOrderingKinds
+primOrderingExports = mkPrimExports primOrderingTypes mempty
 
 -- |
 -- The exported types from the @Prim.Row@ module
 --
 primRowExports :: Exports
-primRowExports = mkPrimExports primRowTypes primRowClasses mempty
+primRowExports = mkPrimExports primRowTypes primRowClasses
 
 -- |
 -- The exported types from the @Prim.RowList@ module
 --
 primRowListExports :: Exports
-primRowListExports = mkPrimExports primRowListTypes primRowListClasses primRowListKinds
+primRowListExports = mkPrimExports primRowListTypes primRowListClasses
 
 -- |
 -- The exported types from the @Prim.Symbol@ module
 --
 primSymbolExports :: Exports
-primSymbolExports = mkPrimExports primSymbolTypes primSymbolClasses mempty
+primSymbolExports = mkPrimExports primSymbolTypes primSymbolClasses
 
 -- |
+-- The exported types from the @Prim.Int@ module
+primIntExports :: Exports
+primIntExports = mkPrimExports primIntTypes primIntClasses
+
+-- |
 -- The exported types from the @Prim.TypeError@ module
 --
 primTypeErrorExports :: Exports
-primTypeErrorExports = mkPrimExports primTypeErrorTypes primTypeErrorClasses primTypeErrorKinds
+primTypeErrorExports = mkPrimExports primTypeErrorTypes primTypeErrorClasses
 
 -- |
 -- Create a set of exports for a Prim module.
@@ -230,47 +222,55 @@
 mkPrimExports
   :: M.Map (Qualified (ProperName 'TypeName)) a
   -> M.Map (Qualified (ProperName 'ClassName)) b
-  -> S.Set (Qualified (ProperName 'KindName))
   -> Exports
-mkPrimExports ts cs ks =
+mkPrimExports ts cs =
   nullExports
     { exportedTypes = M.fromList $ mkTypeEntry `map` M.keys ts
     , exportedTypeClasses = M.fromList $ mkClassEntry `map` M.keys cs
-    , exportedKinds = M.fromList $ mkKindEntry `map` S.toList ks
     }
   where
-  mkTypeEntry (Qualified mn name) = (name, ([], primExportSource mn))
-  mkClassEntry (Qualified mn name) = (name, primExportSource mn)
-  mkKindEntry (Qualified mn name) = (name, primExportSource mn)
+  mkTypeEntry (Qualified (ByModuleName mn) name) = (name, ([], primExportSource mn))
+  mkTypeEntry _ = internalError
+    "mkPrimExports.mkTypeEntry: a name is qualified BySourcePos instead of ByModuleName"
 
+  mkClassEntry (Qualified (ByModuleName mn) name) = (name, primExportSource mn)
+  mkClassEntry _ = internalError
+    "mkPrimExports.mkClassEntry: a name is qualified BySourcePos instead of ByModuleName"
+
   primExportSource mn =
     ExportSource
       { exportSourceImportedFrom = Nothing
-      , exportSourceDefinedIn = fromJust mn
+      , exportSourceDefinedIn = mn
       }
 
 -- | Environment which only contains the Prim modules.
 primEnv :: Env
 primEnv = M.fromList
-  [ ( C.Prim
+  [ ( C.M_Prim
     , (internalModuleSourceSpan "<Prim>", nullImports, primExports)
     )
-  , ( C.PrimBoolean
+  , ( C.M_Prim_Boolean
     , (internalModuleSourceSpan "<Prim.Boolean>", nullImports, primBooleanExports)
     )
-  , ( C.PrimOrdering
+  , ( C.M_Prim_Coerce
+    , (internalModuleSourceSpan "<Prim.Coerce>", nullImports, primCoerceExports)
+    )
+  , ( C.M_Prim_Ordering
     , (internalModuleSourceSpan "<Prim.Ordering>", nullImports, primOrderingExports)
     )
-  , ( C.PrimRow
+  , ( C.M_Prim_Row
     , (internalModuleSourceSpan "<Prim.Row>", nullImports, primRowExports)
     )
-  , ( C.PrimRowList
+  , ( C.M_Prim_RowList
     , (internalModuleSourceSpan "<Prim.RowList>", nullImports, primRowListExports)
     )
-  , ( C.PrimSymbol
+  , ( C.M_Prim_Symbol
     , (internalModuleSourceSpan "<Prim.Symbol>", nullImports, primSymbolExports)
     )
-  , ( C.PrimTypeError
+  , ( C.M_Prim_Int
+    , (internalModuleSourceSpan "<Prim.Int>", nullImports, primIntExports)
+    )
+  , ( C.M_Prim_TypeError
     , (internalModuleSourceSpan "<Prim.TypeError>", nullImports, primTypeErrorExports)
     )
   ]
@@ -401,20 +401,6 @@
   return $ exps { exportedValueOps = valueOps }
 
 -- |
--- Safely adds a kind to some exports, returning an error if a conflict occurs.
---
-exportKind
-  :: MonadError MultipleErrors m
-  => SourceSpan
-  -> Exports
-  -> ProperName 'KindName
-  -> ExportSource
-  -> m Exports
-exportKind ss exps name src = do
-  kinds <- addExport ss KiName name src (exportedKinds exps)
-  return $ exps { exportedKinds = kinds }
-
--- |
 -- Adds an entry to a list of exports unless it is already present, in which
 -- case an error is returned.
 --
@@ -477,17 +463,7 @@
   -> m a
 throwExportConflict' ss new existing newName existingName =
   throwError . errorMessage' ss $
-    ExportConflict (Qualified (Just new) newName) (Qualified (Just existing) existingName)
-
--- |
--- Gets the exports for a module, or raise an error if the module doesn't exist.
---
-getExports :: MonadError MultipleErrors m => Env -> ModuleName -> m Exports
-getExports env mn =
-  maybe
-    (throwError . errorMessage . UnknownName . Qualified Nothing $ ModName mn)
-    (return . envModuleExports)
-  $ M.lookup mn env
+    ExportConflict (Qualified (ByModuleName new) newName) (Qualified (ByModuleName existing) existingName)
 
 -- |
 -- When reading a value from the imports, check that there are no conflicts in
@@ -503,7 +479,7 @@
   -> m (ModuleName, ModuleName)
 checkImportConflicts ss currentModule toName xs =
   let
-    byOrig = sortBy (compare `on` importSourceModule) xs
+    byOrig = sortOn importSourceModule xs
     groups = groupBy ((==) `on` importSourceModule) byOrig
     nonImplicit = filter ((/= FromImplicit) . importProvenance) xs
     name = toName . disqualify . importName $ head xs
@@ -511,12 +487,15 @@
   in
     if length groups > 1
     then case nonImplicit of
-      [ImportRecord (Qualified (Just mnNew) _) mnOrig _ _] -> do
+      [ImportRecord (Qualified (ByModuleName mnNew) _) mnOrig _ _] -> do
         let warningModule = if mnNew == currentModule then Nothing else Just mnNew
             ss' = maybe nullSourceSpan importSourceSpan . headMay . filter ((== FromImplicit) . importProvenance) $ xs
         tell . errorMessage' ss' $ ScopeShadowing name warningModule $ delete mnNew conflictModules
         return (mnNew, mnOrig)
       _ -> throwError . errorMessage' ss $ ScopeConflict name conflictModules
     else
-      let ImportRecord (Qualified (Just mnNew) _) mnOrig _ _ = head byOrig
-      in return (mnNew, mnOrig)
+      case head byOrig of
+        ImportRecord (Qualified (ByModuleName mnNew) _) mnOrig _ _ ->
+          return (mnNew, mnOrig)
+        _ ->
+          internalError "checkImportConflicts: ImportRecord should be qualified"
diff --git a/src/Language/PureScript/Sugar/Names/Exports.hs b/src/Language/PureScript/Sugar/Names/Exports.hs
--- a/src/Language/PureScript/Sugar/Names/Exports.hs
+++ b/src/Language/PureScript/Sugar/Names/Exports.hs
@@ -3,23 +3,23 @@
   , resolveExports
   ) where
 
-import Prelude.Compat
+import Prelude
 
-import Control.Monad
+import Control.Monad (filterM, foldM, liftM2, unless, void, when)
 import Control.Monad.Writer.Class (MonadWriter(..))
 import Control.Monad.Error.Class (MonadError(..))
 
 import Data.Function (on)
 import Data.Foldable (traverse_)
-import Data.List (intersect, groupBy, sortBy)
+import Data.List (intersect, groupBy, sortOn)
 import Data.Maybe (fromMaybe, mapMaybe)
-import qualified Data.Map as M
+import Data.Map qualified as M
 
 import Language.PureScript.AST
-import Language.PureScript.Crash
-import Language.PureScript.Errors
-import Language.PureScript.Names
-import Language.PureScript.Sugar.Names.Env
+import Language.PureScript.Crash (internalError)
+import Language.PureScript.Errors (MultipleErrors, SimpleErrorMessage(..), addHint, errorMessage', rethrow, rethrowWithPosition, warnAndRethrow)
+import Language.PureScript.Names (Ident, ModuleName, Name(..), OpName, OpNameType(..), ProperName, ProperNameType(..), Qualified(..), QualifiedBy(..), disqualifyFor, isQualifiedWith, isUnqualified)
+import Language.PureScript.Sugar.Names.Env (Env, ExportMode(..), Exports(..), ImportRecord(..), Imports(..), checkImportConflicts, envModuleExports, exportType, exportTypeClass, exportTypeOp, exportValue, exportValueOp, nullExports)
 import Language.PureScript.Sugar.Names.Common (warnDuplicateRefs)
 
 -- |
@@ -46,7 +46,7 @@
     go exps'' (TypeDeclaration (TypeDeclarationData (ss', _) name _)) = exportValue ss' exps'' name source
     go _ _ = internalError "Invalid declaration in TypeClassDeclaration"
   updateExports exps (DataDeclaration (ss, _) _ tn _ dcs) =
-    exportType ss Internal exps tn (map fst dcs) source
+    exportType ss Internal exps tn (map dataCtorName dcs) source
   updateExports exps (TypeSynonymDeclaration (ss, _) tn _ _) =
     exportType ss Internal exps tn [] source
   updateExports exps (ExternDataDeclaration (ss, _) tn _) =
@@ -59,8 +59,6 @@
     exportTypeOp ss exps op source
   updateExports exps (ExternDeclaration (ss, _) name _) =
     exportValue ss exps name source
-  updateExports exps (ExternKindDeclaration (ss, _) pn) =
-    exportKind ss exps pn source
   updateExports exps _ = return exps
 
 -- |
@@ -96,14 +94,12 @@
     let classes' = exportedTypeClasses result `M.union` exportedTypeClasses exps
     let values' = exportedValues result `M.union` exportedValues exps
     let valueOps' = exportedValueOps result `M.union` exportedValueOps exps
-    let kinds' = exportedKinds result `M.union` exportedKinds exps
     return result
       { exportedTypes = types'
       , exportedTypeOps = typeOps'
       , exportedTypeClasses = classes'
       , exportedValues = values'
       , exportedValueOps = valueOps'
-      , exportedKinds = kinds'
       }
   elaborateModuleExports result (ModuleRef ss' name) = do
     let isPseudo = isPseudoModule name
@@ -115,13 +111,11 @@
     reClasses <- extract ss' isPseudo name TyClassName (importedTypeClasses imps)
     reValues <- extract ss' isPseudo name IdentName (importedValues imps)
     reValueOps <- extract ss' isPseudo name ValOpName (importedValueOps imps)
-    reKinds <- extract ss' isPseudo name KiName (importedKinds imps)
     foldM (\exps' ((tctor, dctors), src) -> exportType ss' ReExport exps' tctor dctors src) result (resolveTypeExports reTypes reDctors)
       >>= flip (foldM (uncurry . exportTypeOp ss')) (map resolveTypeOp reTypeOps)
       >>= flip (foldM (uncurry . exportTypeClass ss' ReExport)) (map resolveClass reClasses)
       >>= flip (foldM (uncurry . exportValue ss')) (map resolveValue reValues)
       >>= flip (foldM (uncurry . exportValueOp ss')) (map resolveValueOp reValueOps)
-      >>= flip (foldM (uncurry . exportKind ss')) (map resolveKind reKinds)
   elaborateModuleExports result _ = return result
 
   -- Extracts a list of values for a module based on a lookup table. If the
@@ -176,7 +170,7 @@
     go
       :: Qualified (ProperName 'TypeName)
       -> ((ProperName 'TypeName, [ProperName 'ConstructorName]), ExportSource)
-    go (Qualified (Just mn'') name) =
+    go (Qualified (ByModuleName mn'') name) =
       fromMaybe (internalError "Missing value in resolveTypeExports") $ do
         exps' <- envModuleExports <$> mn'' `M.lookup` env
         (dctors', src) <- name `M.lookup` exportedTypes exps'
@@ -185,7 +179,7 @@
           ( (name, relevantDctors `intersect` dctors')
           , src { exportSourceImportedFrom = Just mn'' }
           )
-    go (Qualified Nothing _) = internalError "Unqualified value in resolveTypeExports"
+    go (Qualified _ _) = internalError "Unqualified value in resolveTypeExports"
 
   -- Looks up an imported type operator and re-qualifies it with the original
   -- module it came from.
@@ -215,22 +209,15 @@
     = fromMaybe (internalError "Missing value in resolveValueOp")
     $ resolve exportedValueOps op
 
-  -- Looks up an imported kind and re-qualifies it with the original
-  -- module it came from.
-  resolveKind :: Qualified (ProperName 'KindName) -> (ProperName 'KindName, ExportSource)
-  resolveKind kind
-    = fromMaybe (internalError "Missing value in resolveKind")
-    $ resolve exportedKinds kind
-
   resolve
     :: Ord a
     => (Exports -> M.Map a ExportSource)
     -> Qualified a
     -> Maybe (a, ExportSource)
-  resolve f (Qualified (Just mn'') a) = do
+  resolve f (Qualified (ByModuleName mn'') a) = do
     exps' <- envModuleExports <$> mn'' `M.lookup` env
     src <- a `M.lookup` f exps'
-    return $ (a, src { exportSourceImportedFrom = Just mn'' })
+    return (a, src { exportSourceImportedFrom = Just mn'' })
   resolve _ _ = internalError "Unqualified value in resolve"
 
 -- |
@@ -250,14 +237,12 @@
   classes <- foldM (filterExport TyClassName getTypeClassRef exportedTypeClasses) M.empty refs
   values <- foldM (filterExport IdentName getValueRef exportedValues) M.empty refs
   valueOps <- foldM (filterExport ValOpName getValueOpRef exportedValueOps) M.empty refs
-  kinds <- foldM (filterExport KiName getKindRef exportedKinds) M.empty refs
   return Exports
     { exportedTypes = types
     , exportedTypeOps = typeOps
     , exportedTypeClasses = classes
     , exportedValues = values
     , exportedValueOps = valueOps
-    , exportedKinds = kinds
     }
 
   where
@@ -271,7 +256,7 @@
     = fmap (\(ss', (tc, dcs)) -> TypeRef ss' tc dcs)
     . fmap (foldr1 $ \(ss, (tc, dcs1)) (_, (_, dcs2)) -> (ss, (tc, liftM2 (++) dcs1 dcs2)))
     . groupBy ((==) `on` (fst . snd))
-    . sortBy (compare `on` (fst . snd))
+    . sortOn (fst . snd)
     . mapMaybe (\ref -> (declRefSourceSpan ref,) <$> getTypeRef ref)
 
   filterTypes
diff --git a/src/Language/PureScript/Sugar/Names/Imports.hs b/src/Language/PureScript/Sugar/Names/Imports.hs
--- a/src/Language/PureScript/Sugar/Names/Imports.hs
+++ b/src/Language/PureScript/Sugar/Names/Imports.hs
@@ -5,21 +5,21 @@
   , findImports
   ) where
 
-import Prelude.Compat
+import Prelude
 
-import Control.Monad
+import Control.Monad (foldM, when)
 import Control.Monad.Error.Class (MonadError(..))
 
 import Data.Foldable (for_, traverse_)
 import Data.Maybe (fromMaybe)
-import qualified Data.Map as M
-import qualified Data.Set as S
+import Data.Map qualified as M
+import Data.Set qualified as S
 
-import Language.PureScript.AST
-import Language.PureScript.Crash
-import Language.PureScript.Errors
-import Language.PureScript.Names
-import Language.PureScript.Sugar.Names.Env
+import Language.PureScript.AST (Declaration(..), DeclarationRef(..), ErrorMessageHint(..), ExportSource(..), ImportDeclarationType(..), Module(..), SourceSpan, internalModuleSourceSpan)
+import Language.PureScript.Crash (internalError)
+import Language.PureScript.Errors (MultipleErrors, SimpleErrorMessage(..), addHint, errorMessage', rethrow)
+import Language.PureScript.Names (pattern ByNullSourcePos, ModuleName, Name(..), ProperName, ProperNameType(..), Qualified(..), QualifiedBy(..), byMaybeModuleName)
+import Language.PureScript.Sugar.Names.Env (Env, Exports(..), ImportProvenance(..), ImportRecord(..), Imports(..), envModuleExports, nullImports)
 
 type ImportDef = (SourceSpan, ImportDeclarationType, Maybe ModuleName)
 
@@ -32,10 +32,9 @@
   -> M.Map ModuleName [ImportDef]
 findImports = foldr go M.empty
   where
-  go (ImportDeclaration (pos, _) mn typ qual) result =
-    let imp = (pos, typ, qual)
-    in M.insert mn (maybe [imp] (imp :) (mn `M.lookup` result)) result
-  go _ result = result
+  go (ImportDeclaration (pos, _) mn typ qual) =
+    M.alter (return . ((pos, typ, qual) :) . fromMaybe []) mn
+  go _ = id
 
 -- |
 -- Constructs a set of imports for a module.
@@ -70,7 +69,7 @@
   go ie' (ss, typ, impQual) = do
     modExports <-
       maybe
-        (throwError . errorMessage' ss . UnknownName . Qualified Nothing $ ModName mn)
+        (throwError . errorMessage' ss . UnknownName . Qualified ByNullSourcePos $ ModName mn)
         (return . envModuleExports)
         (mn `M.lookup` env)
     let impModules = importedModules ie'
@@ -124,8 +123,6 @@
       checkImportExists ss TyClassName (exportedTypeClasses exps) name
     check (ModuleRef ss name) | isHiding =
       throwError . errorMessage' ss $ ImportHidingModule name
-    check (KindRef ss name) =
-      checkImportExists ss KiName (exportedKinds exps) name
     check r = internalError $ "Invalid argument to checkRefs: " ++ show r
 
   -- Check that an explicitly imported item exists in the module it is being imported from
@@ -177,7 +174,6 @@
       >>= flip (foldM (\m (name, _) -> importer m (ValueRef ss name))) (M.toList (exportedValues exps))
       >>= flip (foldM (\m (name, _) -> importer m (ValueOpRef ss name))) (M.toList (exportedValueOps exps))
       >>= flip (foldM (\m (name, _) -> importer m (TypeClassRef ss name))) (M.toList (exportedTypeClasses exps))
-      >>= flip (foldM (\m (name, _) -> importer m (KindRef ss name))) (M.toList (exportedKinds exps))
 
   importRef :: ImportProvenance -> Imports -> DeclarationRef -> m Imports
   importRef prov imp (ValueRef ss name) = do
@@ -200,9 +196,6 @@
   importRef prov imp (TypeClassRef ss name) = do
     let typeClasses' = updateImports (importedTypeClasses imp) (exportedTypeClasses exps) id name ss prov
     return $ imp { importedTypeClasses = typeClasses' }
-  importRef prov imp (KindRef ss name) = do
-    let kinds' = updateImports (importedKinds imp) (exportedKinds exps) id name ss prov
-    return $ imp { importedKinds = kinds' }
   importRef _ _ TypeInstanceRef{} = internalError "TypeInstanceRef in importRef"
   importRef _ _ ModuleRef{} = internalError "ModuleRef in importRef"
   importRef _ _ ReExportRef{} = internalError "ReExportRef in importRef"
@@ -228,9 +221,9 @@
   updateImports imps' exps' expName name ss prov =
     let
       src = maybe (internalError "Invalid state in updateImports") expName (name `M.lookup` exps')
-      rec = ImportRecord (Qualified (Just importModule) name) (exportSourceDefinedIn src) ss prov
+      rec = ImportRecord (Qualified (ByModuleName importModule) name) (exportSourceDefinedIn src) ss prov
     in
       M.alter
         (\currNames -> Just $ rec : fromMaybe [] currNames)
-        (Qualified impQual name)
+        (Qualified (byMaybeModuleName impQual) name)
         imps'
diff --git a/src/Language/PureScript/Sugar/ObjectWildcards.hs b/src/Language/PureScript/Sugar/ObjectWildcards.hs
--- a/src/Language/PureScript/Sugar/ObjectWildcards.hs
+++ b/src/Language/PureScript/Sugar/ObjectWildcards.hs
@@ -3,19 +3,19 @@
   , desugarDecl
   ) where
 
-import           Prelude.Compat
+import Prelude
 
-import           Control.Monad (forM)
-import           Control.Monad.Error.Class (MonadError(..))
-import           Control.Monad.Supply.Class
-import           Data.Foldable (toList)
-import           Data.List (foldl')
-import           Data.Maybe (catMaybes)
-import           Language.PureScript.AST
-import           Language.PureScript.Environment (NameKind(..))
-import           Language.PureScript.Errors
-import           Language.PureScript.Names
-import           Language.PureScript.PSString (PSString)
+import Control.Monad (forM)
+import Control.Monad.Error.Class (MonadError(..))
+import Control.Monad.Supply.Class (MonadSupply)
+import Data.Foldable (toList)
+import Data.List (foldl')
+import Data.Maybe (catMaybes)
+import Language.PureScript.AST
+import Language.PureScript.Environment (NameKind(..))
+import Language.PureScript.Errors (MultipleErrors, rethrowWithPosition)
+import Language.PureScript.Names (pattern ByNullSourcePos, Ident, Qualified(..), freshIdent')
+import Language.PureScript.PSString (PSString)
 
 
 desugarObjectConstructors
@@ -31,16 +31,6 @@
   (fn, _, _) = everywhereOnValuesTopDownM return desugarExpr return
 
   desugarExpr :: Expr -> m Expr
-  desugarExpr AnonymousArgument = throwError . errorMessage $ IncorrectAnonymousArgument
-  desugarExpr (Parens b)
-    | b' <- stripPositionInfo b
-    , BinaryNoParens op val u <- b'
-    , isAnonymousArgument u = do arg <- freshIdent'
-                                 return $ Abs (VarBinder nullSourceSpan arg) $ App (App op val) (Var nullSourceSpan (Qualified Nothing arg))
-    | b' <- stripPositionInfo b
-    , BinaryNoParens op u val <- b'
-    , isAnonymousArgument u = do arg <- freshIdent'
-                                 return $ Abs (VarBinder nullSourceSpan arg) $ App (App op (Var nullSourceSpan (Qualified Nothing arg))) val
   desugarExpr (Literal ss (ObjectLiteral ps)) = wrapLambdaAssoc (Literal ss . ObjectLiteral) ps
   desugarExpr (ObjectUpdateNested obj ps) = transformNestedUpdate obj ps
   desugarExpr (Accessor prop u)
@@ -96,25 +86,16 @@
   wrapLambdaAssoc :: ([(PSString, Expr)] -> Expr) -> [(PSString, Expr)] -> m Expr
   wrapLambdaAssoc mkVal = wrapLambda (mkVal . runAssocList) . AssocList
 
-  stripPositionInfo :: Expr -> Expr
-  stripPositionInfo (PositionedValue _ _ e) = stripPositionInfo e
-  stripPositionInfo e = e
-
   peelAnonAccessorChain :: Expr -> Maybe [PSString]
   peelAnonAccessorChain (Accessor p e) = (p :) <$> peelAnonAccessorChain e
   peelAnonAccessorChain (PositionedValue _ _ e) = peelAnonAccessorChain e
   peelAnonAccessorChain AnonymousArgument = Just []
   peelAnonAccessorChain _ = Nothing
 
-  isAnonymousArgument :: Expr -> Bool
-  isAnonymousArgument AnonymousArgument = True
-  isAnonymousArgument (PositionedValue _ _ e) = isAnonymousArgument e
-  isAnonymousArgument _ = False
-
   freshIfAnon :: Expr -> m (Maybe Ident)
   freshIfAnon u
     | isAnonymousArgument u = Just <$> freshIdent'
     | otherwise = return Nothing
 
   argToExpr :: Ident -> Expr
-  argToExpr = Var nullSourceSpan . Qualified Nothing
+  argToExpr = Var nullSourceSpan . Qualified ByNullSourcePos
diff --git a/src/Language/PureScript/Sugar/Operators.hs b/src/Language/PureScript/Sugar/Operators.hs
--- a/src/Language/PureScript/Sugar/Operators.hs
+++ b/src/Language/PureScript/Sugar/Operators.hs
@@ -7,37 +7,40 @@
 --
 module Language.PureScript.Sugar.Operators
   ( desugarSignedLiterals
+  , RebracketCaller(..)
   , rebracket
   , rebracketFiltered
   , checkFixityExports
   ) where
 
-import Prelude.Compat
+import Prelude
 
 import Language.PureScript.AST
-import Language.PureScript.Crash
-import Language.PureScript.Errors
-import Language.PureScript.Externs
-import Language.PureScript.Names
-import Language.PureScript.Sugar.Operators.Binders
-import Language.PureScript.Sugar.Operators.Expr
-import Language.PureScript.Sugar.Operators.Types
+import Language.PureScript.Crash (internalError)
+import Language.PureScript.Errors (MultipleErrors, SimpleErrorMessage(..), addHint, errorMessage, errorMessage', parU, rethrow, rethrowWithPosition)
+import Language.PureScript.Externs (ExternsFile(..), ExternsFixity(..), ExternsTypeFixity(..))
+import Language.PureScript.Names (pattern ByNullSourcePos, Ident(..), Name(..), OpName, OpNameType(..), ProperName, ProperNameType(..), Qualified(..), QualifiedBy(..), freshIdent')
+import Language.PureScript.Sugar.Operators.Binders (matchBinderOperators)
+import Language.PureScript.Sugar.Operators.Expr (matchExprOperators)
+import Language.PureScript.Sugar.Operators.Types (matchTypeOperators)
 import Language.PureScript.Traversals (defS, sndM)
-import Language.PureScript.Types
+import Language.PureScript.Types (Constraint(..), SourceType, Type(..), everywhereOnTypesTopDownM, overConstraintArgs)
 
 import Control.Monad (unless, (<=<))
 import Control.Monad.Error.Class (MonadError(..))
+import Control.Monad.Supply.Class (MonadSupply)
 
 import Data.Either (partitionEithers)
 import Data.Foldable (for_, traverse_)
 import Data.Function (on)
+import Data.Functor (($>))
 import Data.Functor.Identity (Identity(..), runIdentity)
-import Data.List (groupBy, sortBy)
+import Data.List (groupBy, sortOn)
 import Data.Maybe (mapMaybe, listToMaybe)
-import Data.Traversable (for)
-import qualified Data.Map as M
+import Data.Map qualified as M
+import Data.Ord (Down(..))
 
-import qualified Language.PureScript.Constants as C
+import Language.PureScript.Constants.Libs qualified as C
 
 -- |
 -- Removes unary negation operators and replaces them with calls to `negate`.
@@ -47,7 +50,7 @@
   Module ss coms mn (map f' ds) exts
   where
   (f', _, _) = everywhereOnValues id go id
-  go (UnaryMinus ss' val) = App (Var ss' (Qualified Nothing (Ident C.negate))) val
+  go (UnaryMinus ss' val) = App (Var ss' (Qualified ByNullSourcePos (Ident C.S_negate))) val
   go other = other
 
 -- |
@@ -66,11 +69,12 @@
 rebracket
   :: forall m
    . MonadError MultipleErrors m
+  => MonadSupply m
   => [ExternsFile]
-  -> [Module]
-  -> m [Module]
+  -> Module
+  -> m Module
 rebracket =
-  rebracketFiltered (const True)
+  rebracketFiltered CalledByCompile (const True)
 
 -- |
 -- A version of `rebracket` which allows you to choose which declarations
@@ -82,15 +86,17 @@
 rebracketFiltered
   :: forall m
    . MonadError MultipleErrors m
-  => (Declaration -> Bool)
+  => MonadSupply m
+  => RebracketCaller
+  -> (Declaration -> Bool)
   -> [ExternsFile]
-  -> [Module]
-  -> m [Module]
-rebracketFiltered pred_ externs modules = do
+  -> Module
+  -> m Module
+rebracketFiltered !caller pred_ externs m = do
   let (valueFixities, typeFixities) =
         partitionEithers
           $ concatMap externsFixities externs
-          ++ concatMap collectFixities modules
+          ++ collectFixities m
 
   ensureNoDuplicates' MultipleValueOpFixities valueFixities
   ensureNoDuplicates' MultipleTypeOpFixities typeFixities
@@ -100,9 +106,8 @@
   let typeOpTable = customOperatorTable' typeFixities
   let typeAliased = M.fromList (map makeLookupEntry typeFixities)
 
-  for modules
-    $ renameAliasedOperators valueAliased typeAliased
-    <=< rebracketModule pred_ valueOpTable typeOpTable
+  rebracketModule caller pred_ valueOpTable typeOpTable m >>=
+    renameAliasedOperators valueAliased typeAliased
 
   where
 
@@ -131,7 +136,7 @@
     Module ss coms mn <$> mapM (usingPredicate pred_ f') ds <*> pure exts
     where
     (goDecl', goExpr', goBinder') = updateTypes goType
-    (f', _, _, _, _) =
+    (f', _, _, _, _, _) =
       everywhereWithContextOnValuesM
         ss
         (\_ d -> (declSourceSpan d,) <$> goDecl' d)
@@ -139,6 +144,7 @@
         (\pos -> uncurry goBinder <=< goBinder' pos)
         defS
         defS
+        defS
 
     goExpr :: SourceSpan -> Expr -> m (SourceSpan, Expr)
     goExpr _ e@(PositionedValue pos _ _) = return (pos, e)
@@ -167,31 +173,60 @@
     goBinder pos other = return (pos, other)
 
     goType :: SourceSpan -> SourceType -> m SourceType
-    goType pos (BinaryNoParensType ann (TypeOp ann2 op) lhs rhs) =
+    goType pos (TypeOp ann2 op) =
       case op `M.lookup` typeAliased of
         Just alias ->
-          return $ TypeApp ann (TypeApp ann (TypeConstructor ann2 alias) lhs) rhs
+          return $ TypeConstructor ann2 alias
         Nothing ->
           throwError . errorMessage' pos $ UnknownName $ fmap TyOpName op
     goType _ other = return other
 
+-- | Indicates whether the `rebracketModule`
+-- is being called with the full desugar pass
+-- run via `purs compile` or whether
+-- only the partial desugar pass is run
+-- via `purs docs`.
+-- This indication is needed to prevent
+-- a `purs docs` error when using
+-- `case _ of` syntax in a type class instance.
+data RebracketCaller
+  = CalledByCompile
+  | CalledByDocs
+  deriving (Eq, Show)
+
 rebracketModule
   :: forall m
    . (MonadError MultipleErrors m)
-  => (Declaration -> Bool)
+  => MonadSupply m
+  => RebracketCaller
+  -> (Declaration -> Bool)
   -> [[(Qualified (OpName 'ValueOpName), Associativity)]]
   -> [[(Qualified (OpName 'TypeOpName), Associativity)]]
   -> Module
   -> m Module
-rebracketModule pred_ valueOpTable typeOpTable (Module ss coms mn ds exts) =
+rebracketModule !caller pred_ valueOpTable typeOpTable (Module ss coms mn ds exts) =
   Module ss coms mn <$> f' ds <*> pure exts
   where
   f' :: [Declaration] -> m [Declaration]
   f' =
     fmap (map (\d -> if pred_ d then removeParens d else d)) .
-    flip parU (usingPredicate pred_ f)
+    flip parU (usingPredicate pred_ h)
 
-  (f, _, _, _, _) =
+  -- The AST will run through all the desugar passes when compiling
+  -- and only some of the desugar passes when generating docs.
+  -- When generating docs, `case _ of` syntax used in an instance declaration
+  -- can trigger the `IncorrectAnonymousArgument` error because it does not
+  -- run the same passes that the compile desugaring does. Since `purs docs`
+  -- will only succeed once `purs compile` succeeds, we can ignore this check
+  -- when running `purs docs`.
+  -- See https://github.com/purescript/purescript/issues/4274#issuecomment-1087730651=
+  -- for more info.
+  h :: Declaration -> m Declaration
+  h = case caller of
+    CalledByDocs -> f
+    CalledByCompile -> g <=< f
+
+  (f, _, _, _, _, _) =
       everywhereWithContextOnValuesM
         ss
         (\_ d -> (declSourceSpan d,) <$> goDecl d)
@@ -199,7 +234,10 @@
         (\pos -> wrap (matchBinderOperators valueOpTable) <=< goBinder' pos)
         defS
         defS
+        defS
 
+  (g, _, _) = everywhereOnValuesTopDownM pure removeBinaryNoParens pure
+
   (goDecl, goExpr', goBinder') = updateTypes goType
 
   goType :: SourceSpan -> SourceType -> m SourceType
@@ -208,6 +246,24 @@
   wrap :: (a -> m a) -> (SourceSpan, a) -> m (SourceSpan, a)
   wrap go (ss', a) = (ss',) <$> go a
 
+removeBinaryNoParens :: (MonadError MultipleErrors m, MonadSupply m) => Expr -> m Expr
+removeBinaryNoParens u
+  | isAnonymousArgument u = case u of
+                              PositionedValue p _ _ -> rethrowWithPosition p err
+                              _ -> err
+                            where err = throwError . errorMessage $ IncorrectAnonymousArgument
+removeBinaryNoParens (Parens (stripPositionInfo -> BinaryNoParens op l r))
+  | isAnonymousArgument r = do arg <- freshIdent'
+                               return $ Abs (VarBinder nullSourceSpan arg) $ App (App op l) (Var nullSourceSpan (Qualified ByNullSourcePos arg))
+  | isAnonymousArgument l = do arg <- freshIdent'
+                               return $ Abs (VarBinder nullSourceSpan arg) $ App (App op (Var nullSourceSpan (Qualified ByNullSourcePos arg))) r
+removeBinaryNoParens (BinaryNoParens op l r) = return $ App (App op l) r
+removeBinaryNoParens e = return e
+
+stripPositionInfo :: Expr -> Expr
+stripPositionInfo (PositionedValue _ _ e) = stripPositionInfo e
+stripPositionInfo e = e
+
 removeParens :: Declaration -> Declaration
 removeParens = f
   where
@@ -247,7 +303,7 @@
     -> Either ValueFixityRecord TypeFixityRecord
   fromFixity (ExternsFixity assoc prec op name) =
     Left
-      ( Qualified (Just efModuleName) op
+      ( Qualified (ByModuleName efModuleName) op
       , internalModuleSourceSpan ""
       , Fixity assoc prec
       , name
@@ -258,7 +314,7 @@
     -> Either ValueFixityRecord TypeFixityRecord
   fromTypeFixity (ExternsTypeFixity assoc prec op name) =
     Right
-      ( Qualified (Just efModuleName) op
+      ( Qualified (ByModuleName efModuleName) op
       , internalModuleSourceSpan ""
       , Fixity assoc prec
       , name
@@ -269,9 +325,9 @@
   where
   collect :: Declaration -> [Either ValueFixityRecord TypeFixityRecord]
   collect (ValueFixityDeclaration (ss, _) fixity name op) =
-    [Left (Qualified (Just moduleName) op, ss, fixity, name)]
+    [Left (Qualified (ByModuleName moduleName) op, ss, fixity, name)]
   collect (TypeFixityDeclaration (ss, _) fixity name op) =
-    [Right (Qualified (Just moduleName) op, ss, fixity, name)]
+    [Right (Qualified (ByModuleName moduleName) op, ss, fixity, name)]
   collect _ = []
 
 ensureNoDuplicates
@@ -279,11 +335,11 @@
   => (a -> SimpleErrorMessage)
   -> [(Qualified a, SourceSpan)]
   -> m ()
-ensureNoDuplicates toError m = go $ sortBy (compare `on` fst) m
+ensureNoDuplicates toError m = go $ sortOn fst m
   where
   go [] = return ()
   go [_] = return ()
-  go ((x@(Qualified (Just mn) op), _) : (y, pos) : _) | x == y =
+  go ((x@(Qualified (ByModuleName mn) op), _) : (y, pos) : _) | x == y =
     rethrow (addHint (ErrorInModule mn)) $
       rethrowWithPosition pos $ throwError . errorMessage $ toError op
   go (_ : rest) = go rest
@@ -294,7 +350,7 @@
 customOperatorTable fixities =
   let
     userOps = map (\(name, Fixity a p) -> (name, p, a)) fixities
-    sorted = sortBy (flip compare `on` (\(_, p, _) -> p)) userOps
+    sorted = sortOn (Down . (\(_, p, _) -> p)) userOps
     groups = groupBy ((==) `on` (\(_, p, _) -> p)) sorted
   in
     map (map (\(name, _, a) -> (name, a))) groups
@@ -315,28 +371,38 @@
 
   goDecl :: Declaration -> m Declaration
   goDecl (DataDeclaration sa@(ss, _) ddt name args dctors) =
-    DataDeclaration sa ddt name args <$> traverse (sndM (traverse (sndM (goType' ss)))) dctors
+    DataDeclaration sa ddt name
+      <$> traverse (traverse (traverse (goType' ss))) args
+      <*> traverse (traverseDataCtorFields (traverse (sndM (goType' ss)))) dctors
   goDecl (ExternDeclaration sa@(ss, _) name ty) =
     ExternDeclaration sa name <$> goType' ss ty
   goDecl (TypeClassDeclaration sa@(ss, _) name args implies deps decls) = do
     implies' <- traverse (overConstraintArgs (traverse (goType' ss))) implies
-    return $ TypeClassDeclaration sa name args implies' deps decls
-  goDecl (TypeInstanceDeclaration sa@(ss, _) ch idx name cs className tys impls) = do
+    args' <- traverse (traverse (traverse (goType' ss))) args
+    return $ TypeClassDeclaration sa name args' implies' deps decls
+  goDecl (TypeInstanceDeclaration sa@(ss, _) na ch idx name cs className tys impls) = do
     cs' <- traverse (overConstraintArgs (traverse (goType' ss))) cs
     tys' <- traverse (goType' ss) tys
-    return $ TypeInstanceDeclaration sa ch idx name cs' className tys' impls
+    return $ TypeInstanceDeclaration sa na ch idx name cs' className tys' impls
   goDecl (TypeSynonymDeclaration sa@(ss, _) name args ty) =
-    TypeSynonymDeclaration sa name args <$> goType' ss ty
+    TypeSynonymDeclaration sa name
+      <$> traverse (traverse (traverse (goType' ss))) args
+      <*> goType' ss ty
   goDecl (TypeDeclaration (TypeDeclarationData sa@(ss, _) expr ty)) =
     TypeDeclaration . TypeDeclarationData sa expr <$> goType' ss ty
+  goDecl (KindDeclaration sa@(ss, _) sigFor name ty) =
+    KindDeclaration sa sigFor name <$> goType' ss ty
+  goDecl (ExternDataDeclaration sa@(ss, _) name ty) =
+    ExternDataDeclaration sa name <$> goType' ss ty
   goDecl other =
     return other
 
   goExpr :: SourceSpan -> Expr -> m (SourceSpan, Expr)
   goExpr _ e@(PositionedValue pos _ _) = return (pos, e)
-  goExpr pos (TypeClassDictionary (Constraint ann name tys info) dicts hints) = do
+  goExpr pos (TypeClassDictionary (Constraint ann name kinds tys info) dicts hints) = do
+    kinds' <- traverse (goType' pos) kinds
     tys' <- traverse (goType' pos) tys
-    return (pos, TypeClassDictionary (Constraint ann name tys' info) dicts hints)
+    return (pos, TypeClassDictionary (Constraint ann name kinds' tys' info) dicts hints)
   goExpr pos (DeferredDictionary cls tys) = do
     tys' <- traverse (goType' pos) tys
     return (pos, DeferredDictionary cls tys')
@@ -368,7 +434,7 @@
 checkFixityExports m@(Module ss _ mn ds (Just exps)) =
   rethrow (addHint (ErrorInModule mn))
     $ rethrowWithPosition ss (traverse_ checkRef exps)
-    *> return m
+    $> m
   where
 
   checkRef :: DeclarationRef -> m ()
@@ -381,7 +447,7 @@
       Right ctor ->
         unless (anyTypeRef (maybe False (elem ctor) . snd))
           . throwError . errorMessage' ss
-          $ TransitiveDctorExportError dr ctor
+          $ TransitiveDctorExportError dr [ctor]
   checkRef dr@(TypeOpRef ss' op) =
     for_ (getTypeOpAlias op) $ \ty ->
       unless (anyTypeRef ((== ty) . fst))
@@ -395,7 +461,7 @@
   getTypeOpAlias op =
     listToMaybe (mapMaybe (either (const Nothing) go <=< getFixityDecl) ds)
     where
-    go (TypeFixity _ (Qualified (Just mn') ident) op')
+    go (TypeFixity _ (Qualified (ByModuleName mn') ident) op')
       | mn == mn' && op == op' = Just ident
     go _ = Nothing
 
@@ -407,7 +473,7 @@
   getValueOpAlias op =
     listToMaybe (mapMaybe (either go (const Nothing) <=< getFixityDecl) ds)
     where
-    go (ValueFixity _ (Qualified (Just mn') ident) op')
+    go (ValueFixity _ (Qualified (ByModuleName mn') ident) op')
       | mn == mn' && op == op' = Just ident
     go _ = Nothing
 
diff --git a/src/Language/PureScript/Sugar/Operators/Binders.hs b/src/Language/PureScript/Sugar/Operators/Binders.hs
--- a/src/Language/PureScript/Sugar/Operators/Binders.hs
+++ b/src/Language/PureScript/Sugar/Operators/Binders.hs
@@ -1,13 +1,13 @@
 module Language.PureScript.Sugar.Operators.Binders where
 
-import Prelude.Compat
+import Prelude
 
-import Control.Monad.Except
+import Control.Monad.Except (MonadError)
 
-import Language.PureScript.AST
-import Language.PureScript.Errors
-import Language.PureScript.Names
-import Language.PureScript.Sugar.Operators.Common
+import Language.PureScript.AST (Associativity, Binder(..), SourceSpan)
+import Language.PureScript.Errors (MultipleErrors)
+import Language.PureScript.Names (OpName(..), OpNameType(..), Qualified(..))
+import Language.PureScript.Sugar.Operators.Common (matchOperators)
 
 matchBinderOperators
   :: MonadError MultipleErrors m
diff --git a/src/Language/PureScript/Sugar/Operators/Common.hs b/src/Language/PureScript/Sugar/Operators/Common.hs
--- a/src/Language/PureScript/Sugar/Operators/Common.hs
+++ b/src/Language/PureScript/Sugar/Operators/Common.hs
@@ -1,25 +1,25 @@
 module Language.PureScript.Sugar.Operators.Common where
 
-import Prelude.Compat
+import Prelude
 
-import Control.Monad.State
-import Control.Monad.Except
+import Control.Monad.State (guard, join)
+import Control.Monad.Except (MonadError(..))
 
 import Data.Either (rights)
-import Data.Functor.Identity
+import Data.Functor.Identity (Identity)
 import Data.List (sortOn)
 import Data.Maybe (mapMaybe, fromJust)
-import qualified Data.List.NonEmpty as NEL
-import qualified Data.Map as M
+import Data.List.NonEmpty qualified as NEL
+import Data.Map qualified as M
 
-import qualified Text.Parsec as P
-import qualified Text.Parsec.Pos as P
-import qualified Text.Parsec.Expr as P
+import Text.Parsec qualified as P
+import Text.Parsec.Pos qualified as P
+import Text.Parsec.Expr qualified as P
 
-import Language.PureScript.AST
-import Language.PureScript.Crash
-import Language.PureScript.Errors
-import Language.PureScript.Names
+import Language.PureScript.AST (Associativity(..), ErrorMessageHint(..), SourceSpan)
+import Language.PureScript.Crash (internalError)
+import Language.PureScript.Errors (ErrorMessage(..), MultipleErrors(..), SimpleErrorMessage(..))
+import Language.PureScript.Names (OpName, Qualified, eraseOpName)
 
 type Chain a = [Either a a]
 
@@ -96,7 +96,7 @@
   -- grouping them by shared precedence, then if any of the following conditions
   -- are met, we have something to report:
   --   1. any of the groups have mixed associativity
-  --   2. there is more than one occurance of a non-associative operator in a
+  --   2. there is more than one occurrence of a non-associative operator in a
   --      precedence group
   mkErrors :: Chain a -> [ErrorMessage]
   mkErrors chain =
@@ -104,9 +104,9 @@
       opInfo :: M.Map (Qualified (OpName nameType)) (Integer, Associativity)
       opInfo = M.fromList $ concatMap (\(n, o) -> map (\(name, assoc) -> (name, (n, assoc))) o) (zip [0..] ops)
       opPrec :: Qualified (OpName nameType) -> Integer
-      opPrec = fromJust . fmap fst . flip M.lookup opInfo
+      opPrec = fst . fromJust . flip M.lookup opInfo
       opAssoc :: Qualified (OpName nameType) -> Associativity
-      opAssoc = fromJust . fmap snd . flip M.lookup opInfo
+      opAssoc = snd . fromJust . flip M.lookup opInfo
       chainOpSpans :: M.Map (Qualified (OpName nameType)) (NEL.NonEmpty SourceSpan)
       chainOpSpans = foldr (\(ss, name) -> M.alter (Just . maybe (pure ss) (NEL.cons ss)) name) M.empty . mapMaybe fromOp $ rights chain
       opUsages :: Qualified (OpName nameType) -> Int
@@ -118,7 +118,7 @@
       mixedAssoc :: [NEL.NonEmpty (Qualified (OpName nameType))]
       mixedAssoc = fmap join . filter (\precGroup -> NEL.length precGroup > 1) $ assocGrouped
       nonAssoc :: [NEL.NonEmpty (Qualified (OpName nameType))]
-      nonAssoc = join $ fmap (NEL.filter (\assocGroup -> opAssoc (NEL.head assocGroup) == Infix && sum (fmap opUsages assocGroup) > 1)) assocGrouped
+      nonAssoc = NEL.filter (\assocGroup -> opAssoc (NEL.head assocGroup) == Infix && sum (fmap opUsages assocGroup) > 1) =<< assocGrouped
     in
       if null (nonAssoc ++ mixedAssoc)
         then internalError "matchOperators: cannot reorder operators"
@@ -141,4 +141,4 @@
     -> ErrorMessage
   mkPositionedError chainOpSpans grp =
     ErrorMessage
-      [PositionedError (join . fmap (fromJust . flip M.lookup chainOpSpans) $ grp)]
+      [PositionedError (fromJust . flip M.lookup chainOpSpans =<< grp)]
diff --git a/src/Language/PureScript/Sugar/Operators/Expr.hs b/src/Language/PureScript/Sugar/Operators/Expr.hs
--- a/src/Language/PureScript/Sugar/Operators/Expr.hs
+++ b/src/Language/PureScript/Sugar/Operators/Expr.hs
@@ -1,17 +1,17 @@
 module Language.PureScript.Sugar.Operators.Expr where
 
-import Prelude.Compat
+import Prelude
 
-import Control.Monad.Except
-import Data.Functor.Identity
+import Control.Monad.Except (MonadError)
+import Data.Functor.Identity (Identity)
 
-import qualified Text.Parsec as P
-import qualified Text.Parsec.Expr as P
+import Text.Parsec qualified as P
+import Text.Parsec.Expr qualified as P
 
-import Language.PureScript.AST
-import Language.PureScript.Names
-import Language.PureScript.Sugar.Operators.Common
-import Language.PureScript.Errors
+import Language.PureScript.AST (Associativity, Expr(..), SourceSpan)
+import Language.PureScript.Names (OpName(..), OpNameType(..), Qualified(..))
+import Language.PureScript.Sugar.Operators.Common (Chain, matchOperators, token)
+import Language.PureScript.Errors (MultipleErrors)
 
 matchExprOperators
   :: MonadError MultipleErrors m
@@ -36,13 +36,13 @@
   fromOp _ = Nothing
 
   reapply :: SourceSpan -> Qualified (OpName 'ValueOpName) -> Expr -> Expr -> Expr
-  reapply ss op t1 = App (App (Op ss op) t1)
+  reapply ss = BinaryNoParens . Op ss
 
   modOpTable
     :: [[P.Operator (Chain Expr) () Identity Expr]]
     -> [[P.Operator (Chain Expr) () Identity Expr]]
   modOpTable table =
-    [ P.Infix (P.try (parseTicks >>= \op -> return (\t1 t2 -> App (App op t1) t2))) P.AssocLeft ]
+    [ P.Infix (P.try (BinaryNoParens <$> parseTicks)) P.AssocLeft ]
     : table
 
   parseTicks :: P.Parsec (Chain Expr) () Expr
diff --git a/src/Language/PureScript/Sugar/Operators/Types.hs b/src/Language/PureScript/Sugar/Operators/Types.hs
--- a/src/Language/PureScript/Sugar/Operators/Types.hs
+++ b/src/Language/PureScript/Sugar/Operators/Types.hs
@@ -1,13 +1,13 @@
 module Language.PureScript.Sugar.Operators.Types where
 
-import Prelude.Compat
+import Prelude
 
-import Control.Monad.Except
-import Language.PureScript.AST
-import Language.PureScript.Errors
-import Language.PureScript.Names
-import Language.PureScript.Sugar.Operators.Common
-import Language.PureScript.Types
+import Control.Monad.Except (MonadError)
+import Language.PureScript.AST (Associativity, SourceSpan)
+import Language.PureScript.Errors (MultipleErrors)
+import Language.PureScript.Names (OpName(..), OpNameType(..), Qualified(..))
+import Language.PureScript.Sugar.Operators.Common (matchOperators)
+import Language.PureScript.Types (SourceType, Type(..), srcTypeApp)
 
 matchTypeOperators
   :: MonadError MultipleErrors m
@@ -31,4 +31,4 @@
   fromOp _ = Nothing
 
   reapply :: a -> Qualified (OpName 'TypeOpName) -> SourceType -> SourceType -> SourceType
-  reapply _ = srcBinaryNoParensType . srcTypeOp
+  reapply _ op = srcTypeApp . srcTypeApp (TypeOp (ss, []) op)
diff --git a/src/Language/PureScript/Sugar/TypeClasses.hs b/src/Language/PureScript/Sugar/TypeClasses.hs
--- a/src/Language/PureScript/Sugar/TypeClasses.hs
+++ b/src/Language/PureScript/Sugar/TypeClasses.hs
@@ -1,6 +1,6 @@
 -- |
--- This module implements the desugaring pass which creates type synonyms for type class dictionaries
--- and dictionary expressions for type class instances.
+-- This module implements the desugaring pass which creates newtypes for type class dictionaries
+-- and value declarations for type class instances.
 --
 module Language.PureScript.Sugar.TypeClasses
   ( desugarTypeClasses
@@ -8,31 +8,33 @@
   , superClassDictionaryNames
   ) where
 
-import Prelude.Compat
+import Prelude
 
-import           Control.Arrow (first, second)
-import           Control.Monad.Error.Class (MonadError(..))
-import           Control.Monad.State
-import           Control.Monad.Supply.Class
-import           Data.Graph
-import           Data.List (find, partition)
-import qualified Data.Map as M
-import           Data.Maybe (catMaybes, mapMaybe, isJust, fromMaybe)
-import qualified Data.List.NonEmpty as NEL
-import qualified Data.Set as S
-import           Data.Text (Text)
-import qualified Language.PureScript.Constants as C
-import           Language.PureScript.Crash
-import           Language.PureScript.Environment
-import           Language.PureScript.Errors hiding (isExported)
-import           Language.PureScript.Externs
-import           Language.PureScript.Kinds
-import           Language.PureScript.Label (Label(..))
-import           Language.PureScript.Names
-import           Language.PureScript.PSString (mkString)
-import           Language.PureScript.Sugar.CaseDeclarations
-import           Language.PureScript.Types
-import           Language.PureScript.TypeClassDictionaries (superclassName)
+import Control.Arrow (first, second)
+import Control.Monad (unless)
+import Control.Monad.Error.Class (MonadError(..))
+import Control.Monad.State (MonadState(..), StateT, evalStateT, modify)
+import Control.Monad.Supply.Class (MonadSupply)
+import Data.Graph (SCC(..), stronglyConnComp)
+import Data.List (find, partition)
+import Data.List.NonEmpty (nonEmpty)
+import Data.Map qualified as M
+import Data.Maybe (catMaybes, mapMaybe, isJust)
+import Data.List.NonEmpty qualified as NEL
+import Data.Set qualified as S
+import Data.Text (Text)
+import Data.Traversable (for)
+import Language.PureScript.Constants.Prim qualified as C
+import Language.PureScript.Crash (internalError)
+import Language.PureScript.Environment (DataDeclType(..), NameKind(..), TypeClassData(..), dictTypeName, function, makeTypeClassData, primClasses, primCoerceClasses, primIntClasses, primRowClasses, primRowListClasses, primSymbolClasses, primTypeErrorClasses, tyRecord)
+import Language.PureScript.Errors hiding (isExported, nonEmpty)
+import Language.PureScript.Externs (ExternsDeclaration(..), ExternsFile(..))
+import Language.PureScript.Label (Label(..))
+import Language.PureScript.Names (pattern ByNullSourcePos, Ident(..), ModuleName, Name(..), ProperName, ProperNameType(..), Qualified(..), QualifiedBy(..), coerceProperName, freshIdent, qualify, runIdent)
+import Language.PureScript.PSString (mkString)
+import Language.PureScript.Sugar.CaseDeclarations (desugarCases)
+import Language.PureScript.TypeClassDictionaries (superclassName)
+import Language.PureScript.Types
 
 type MemberMap = M.Map (ModuleName, ProperName 'ClassName) TypeClassData
 
@@ -45,18 +47,20 @@
 desugarTypeClasses
   :: (MonadSupply m, MonadError MultipleErrors m)
   => [ExternsFile]
-  -> [Module]
-  -> m [Module]
-desugarTypeClasses externs = flip evalStateT initialState . traverse desugarModule
+  -> Module
+  -> m Module
+desugarTypeClasses externs = flip evalStateT initialState . desugarModule
   where
   initialState :: MemberMap
   initialState =
     mconcat
-      [ M.mapKeys (qualify (ModuleName [ProperName C.prim])) primClasses
-      , M.mapKeys (qualify C.PrimRow) primRowClasses
-      , M.mapKeys (qualify C.PrimRowList) primRowListClasses
-      , M.mapKeys (qualify C.PrimSymbol) primSymbolClasses
-      , M.mapKeys (qualify C.PrimTypeError) primTypeErrorClasses
+      [ M.mapKeys (qualify C.M_Prim) primClasses
+      , M.mapKeys (qualify C.M_Prim_Coerce) primCoerceClasses
+      , M.mapKeys (qualify C.M_Prim_Row) primRowClasses
+      , M.mapKeys (qualify C.M_Prim_RowList) primRowListClasses
+      , M.mapKeys (qualify C.M_Prim_Symbol) primSymbolClasses
+      , M.mapKeys (qualify C.M_Prim_Int) primIntClasses
+      , M.mapKeys (qualify C.M_Prim_TypeError) primTypeErrorClasses
       , M.fromList (externs >>= \ExternsFile{..} -> mapMaybe (fromExternsDecl efModuleName) efDeclarations)
       ]
 
@@ -64,8 +68,8 @@
     :: ModuleName
     -> ExternsDeclaration
     -> Maybe ((ModuleName, ProperName 'ClassName), TypeClassData)
-  fromExternsDecl mn (EDClass name args members implies deps) = Just ((mn, name), typeClass) where
-    typeClass = makeTypeClassData args members implies deps
+  fromExternsDecl mn (EDClass name args members implies deps tcIsEmpty) = Just ((mn, name), typeClass) where
+    typeClass = makeTypeClassData args members implies deps tcIsEmpty
   fromExternsDecl _ _ = Nothing
 
 desugarModule
@@ -73,7 +77,7 @@
   => Module
   -> Desugar m Module
 desugarModule (Module ss coms name decls (Just exps)) = do
-  let (classDecls, restDecls) = partition isTypeClassDeclaration decls
+  let (classDecls, restDecls) = partition isTypeClassDecl decls
       classVerts = fmap (\d -> (d, classDeclName d, superClassesNames d)) classDecls
   (classNewExpss, classDeclss) <- unzip <$> parU (stronglyConnComp classVerts) (desugarClassDecl name exps)
   (restNewExpss, restDeclss) <- unzip <$> parU restDecls (desugarDecl name exps)
@@ -85,24 +89,26 @@
     -> SCC Declaration
     -> Desugar m (Maybe DeclarationRef, [Declaration])
   desugarClassDecl name' exps' (AcyclicSCC d) = desugarDecl name' exps' d
-  desugarClassDecl _ _ (CyclicSCC ds') = throwError . errorMessage' (declSourceSpan (head ds')) $ CycleInTypeClassDeclaration (map classDeclName ds')
+  desugarClassDecl _ _ (CyclicSCC ds')
+    | Just ds'' <- nonEmpty ds' = throwError . errorMessage' (declSourceSpan (NEL.head ds'')) $ CycleInTypeClassDeclaration (NEL.map classDeclName ds'')
+    | otherwise = internalError "desugarClassDecl: empty CyclicSCC"
 
   superClassesNames :: Declaration -> [Qualified (ProperName 'ClassName)]
   superClassesNames (TypeClassDeclaration _ _ _ implies _ _) = fmap constraintName implies
   superClassesNames _ = []
 
   constraintName :: SourceConstraint -> Qualified (ProperName 'ClassName)
-  constraintName (Constraint _ cName _ _) = cName
+  constraintName (Constraint _ cName _ _ _) = cName
 
   classDeclName :: Declaration -> Qualified (ProperName 'ClassName)
-  classDeclName (TypeClassDeclaration _ pn _ _ _ _) = Qualified (Just name) pn
+  classDeclName (TypeClassDeclaration _ pn _ _ _ _) = Qualified (ByModuleName name) pn
   classDeclName _ = internalError "Expected TypeClassDeclaration"
 
 desugarModule _ = internalError "Exports should have been elaborated in name desugaring"
 
 {- Desugar type class and type class instance declarations
 --
--- Type classes become type synonyms for their dictionaries, and type instances become dictionary declarations.
+-- Type classes become newtypes for their dictionaries, and type instances become dictionary declarations.
 -- Additional values are generated to access individual members of a dictionary, with the appropriate type.
 --
 -- E.g. the following
@@ -130,68 +136,64 @@
 --
 --   <TypeClassDeclaration Foo ...>
 --
---   type Foo a = { foo :: a -> a }
+--   newtype Foo$Dict a = Foo$Dict { foo :: a -> a }
 --
 --   -- this following type is marked as not needing to be checked so a new Abs
 --   -- is not introduced around the definition in type checking, but when
 --   -- called the dictionary value is still passed in for the `dict` argument
---   foo :: forall a. (Foo a) => a -> a
---   foo dict = dict.foo
+--   foo :: forall a. (Foo$Dict a) => a -> a
+--   foo (Foo$Dict dict) = dict.foo
 --
---   fooString :: {} -> Foo String
---   fooString _ = <TypeClassDictionaryConstructorApp Foo { foo: \s -> s ++ s }>
+--   fooString :: Foo$Dict String
+--   fooString = Foo$Dict { foo: \s -> s ++ s }
 --
---   fooArray :: forall a. (Foo a) => Foo [a]
---   fooArray = <TypeClassDictionaryConstructorApp Foo { foo: map foo }>
+--   fooArray :: forall a. (Foo$Dict a) => Foo$Dict [a]
+--   fooArray = Foo$Dict { foo: map foo }
 --
 --   {- Superclasses -}
 --
 --   <TypeClassDeclaration Sub ...>
 --
---   type Sub a = { sub :: a
---                , "Foo0" :: {} -> Foo a
---                }
+--   newtype Sub$Dict a = Sub$Dict { sub :: a
+--                                 , "Foo0" :: {} -> Foo$Dict a
+--                                 }
 --
 --   -- As with `foo` above, this type is unchecked at the declaration
---   sub :: forall a. (Sub a) => a
---   sub dict = dict.sub
+--   sub :: forall a. (Sub$Dict a) => a
+--   sub (Sub$Dict dict) = dict.sub
 --
---   subString :: {} -> Sub String
---   subString _ = { sub: "",
---                 , "Foo0": \_ -> <DeferredDictionary Foo String>
---                 }
+--   subString :: Sub$Dict String
+--   subString = Sub$Dict { sub: "",
+--                        , "Foo0": \_ -> <DeferredDictionary Foo String>
+--                        }
 --
 -- and finally as the generated javascript:
 --
---   function Foo(foo) {
---       this.foo = foo;
---   };
---
 --   var foo = function (dict) {
 --       return dict.foo;
 --   };
 --
---   var fooString = function (_) {
---       return new Foo(function (s) {
---           return s + s;
---       });
---   };
---
---   var fooArray = function (__dict_Foo_15) {
---       return new Foo(map(foo(__dict_Foo_15)));
+--   var fooString = {
+--      foo: function (s) {
+--          return s + s;
+--      }
 --   };
 --
---   function Sub(Foo0, sub) {
---       this["Foo0"] = Foo0;
---       this.sub = sub;
+--   var fooArray = function (dictFoo) {
+--       return {
+--           foo: map(foo(dictFoo))
+--       };
 --   };
 --
 --   var sub = function (dict) {
 --       return dict.sub;
 --   };
 --
---   var subString = function (_) {
---       return new Sub(fooString, "");
+--   var subString = {
+--       sub: "",
+--       Foo0: function () {
+--           return fooString;
+--       }
 --   };
 -}
 desugarDecl
@@ -203,22 +205,39 @@
 desugarDecl mn exps = go
   where
   go d@(TypeClassDeclaration sa name args implies deps members) = do
-    modify (M.insert (mn, name) (makeTypeClassData args (map memberToNameAndType members) implies deps))
+    modify (M.insert (mn, name) (makeTypeClassData args (map memberToNameAndType members) implies deps False))
     return (Nothing, d : typeClassDictionaryDeclaration sa name args implies members : map (typeClassMemberToDictionaryAccessor mn name args) members)
-  go (TypeInstanceDeclaration _ _ _ _ _ _ _ DerivedInstance) = internalError "Derived instanced should have been desugared"
-  go d@(TypeInstanceDeclaration sa _ _ name deps className tys (ExplicitInstance members)) = do
-    desugared <- desugarCases members
-    dictDecl <- typeInstanceDictionaryDeclaration sa name mn deps className tys desugared
-    return (expRef name className tys, [d, dictDecl])
-  go d@(TypeInstanceDeclaration sa _ _ name deps className tys (NewtypeInstanceWithDictionary dict)) = do
-    let dictTy = foldl srcTypeApp (srcTypeConstructor (fmap coerceProperName className)) tys
-        constrainedTy = quantify (foldr (srcConstrainedType) dictTy deps)
-    return (expRef name className tys, [d, ValueDecl sa name Private [] [MkUnguarded (TypedValue True dict constrainedTy)]])
+  go (TypeInstanceDeclaration sa na chainId idx name deps className tys body) = do
+    name' <- desugarInstName name
+    let d = TypeInstanceDeclaration sa na chainId idx (Right name') deps className tys body
+    let explicitOrNot = case body of
+          DerivedInstance -> Left $ DerivedInstancePlaceholder className KnownClassStrategy
+          NewtypeInstance -> Left $ DerivedInstancePlaceholder className NewtypeStrategy
+          ExplicitInstance members -> Right members
+    dictDecl <- case explicitOrNot of
+      Right members
+        | className == C.Coercible ->
+          throwError . errorMessage' (fst sa) $ InvalidCoercibleInstanceDeclaration tys
+        | otherwise -> do
+          desugared <- desugarCases members
+          typeInstanceDictionaryDeclaration sa name' mn deps className tys desugared
+      Left dict ->
+        let
+          dictTy = foldl srcTypeApp (srcTypeConstructor (fmap (coerceProperName . dictTypeName) className)) tys
+          constrainedTy = quantify (foldr srcConstrainedType dictTy deps)
+        in
+          return $ ValueDecl sa name' Private [] [MkUnguarded (TypedValue True dict constrainedTy)]
+    return (expRef name' className tys, [d, dictDecl])
   go other = return (Nothing, [other])
 
+  -- Completes the name generation for type class instances that do not have
+  -- a unique name defined in source code.
+  desugarInstName :: MonadSupply m => Either Text Ident -> Desugar m Ident
+  desugarInstName = either freshIdent pure
+
   expRef :: Ident -> Qualified (ProperName 'ClassName) -> [SourceType] -> Maybe DeclarationRef
   expRef name className tys
-    | isExportedClass className && all isExportedType (getConstructors `concatMap` tys) = Just $ TypeInstanceRef genSpan name
+    | isExportedClass className && all isExportedType (getConstructors `concatMap` tys) = Just $ TypeInstanceRef genSpan name UserNamed
     | otherwise = Nothing
 
   isExportedClass :: Qualified (ProperName 'ClassName) -> Bool
@@ -231,7 +250,7 @@
     :: (ProperName a -> [DeclarationRef] -> Bool)
     -> Qualified (ProperName a)
     -> Bool
-  isExported test (Qualified (Just mn') pn) = mn /= mn' || test pn exps
+  isExported test (Qualified (ByModuleName mn') pn) = mn /= mn' || test pn exps
   isExported _ _ = internalError "Names should have been qualified in name desugaring"
 
   matchesTypeRef :: ProperName 'TypeName -> DeclarationRef -> Bool
@@ -254,32 +273,39 @@
 typeClassDictionaryDeclaration
   :: SourceAnn
   -> ProperName 'ClassName
-  -> [(Text, Maybe SourceKind)]
+  -> [(Text, Maybe SourceType)]
   -> [SourceConstraint]
   -> [Declaration]
   -> Declaration
 typeClassDictionaryDeclaration sa name args implies members =
   let superclassTypes = superClassDictionaryNames implies `zip`
-        [ function unit (foldl srcTypeApp (srcTypeConstructor (fmap coerceProperName superclass)) tyArgs)
-        | (Constraint _ superclass tyArgs _) <- implies
+        [ function unit (foldl srcTypeApp (srcTypeConstructor (fmap (coerceProperName . dictTypeName) superclass)) tyArgs)
+        | (Constraint _ superclass _ tyArgs _) <- implies
         ]
       members' = map (first runIdent . memberToNameAndType) members
       mtys = members' ++ superclassTypes
       toRowListItem (l, t) = srcRowListItem (Label $ mkString l) t
-  in TypeSynonymDeclaration sa (coerceProperName name) args (srcTypeApp tyRecord $ rowFromList (map toRowListItem mtys, srcREmpty))
+      ctor = DataConstructorDeclaration sa (coerceProperName $ dictTypeName name)
+        [(Ident "dict", srcTypeApp tyRecord $ rowFromList (map toRowListItem mtys, srcREmpty))]
+  in DataDeclaration sa Newtype (coerceProperName $ dictTypeName name) args [ctor]
 
 typeClassMemberToDictionaryAccessor
   :: ModuleName
   -> ProperName 'ClassName
-  -> [(Text, Maybe SourceKind)]
+  -> [(Text, Maybe SourceType)]
   -> Declaration
   -> Declaration
-typeClassMemberToDictionaryAccessor mn name args (TypeDeclaration (TypeDeclarationData sa ident ty)) =
-  let className = Qualified (Just mn) name
-  in ValueDecl sa ident Private [] $
+typeClassMemberToDictionaryAccessor mn name args (TypeDeclaration (TypeDeclarationData sa@(ss, _) ident ty)) =
+  let className = Qualified (ByModuleName mn) name
+      dictIdent = Ident "dict"
+      dictObjIdent = Ident "v"
+      ctor = ConstructorBinder ss (coerceProperName . dictTypeName <$> className) [VarBinder ss dictObjIdent]
+      acsr = Accessor (mkString $ runIdent ident) (Var ss (Qualified ByNullSourcePos dictObjIdent))
+      visibility = second (const TypeVarVisible) <$> args
+  in ValueDecl sa ident Private []
     [MkUnguarded (
-     TypedValue False (TypeClassDictionaryAccessor className ident) $
-       moveQuantifiersToFront (quantify (srcConstrainedType (srcConstraint className (map (srcTypeVar . fst) args) Nothing) ty))
+     TypedValue False (Abs (VarBinder ss dictIdent) (Case [Var ss $ Qualified ByNullSourcePos dictIdent] [CaseAlternative [ctor] [MkUnguarded acsr]])) $
+       addVisibility visibility (moveQuantifiersToFront NullSourceAnn (quantify (srcConstrainedType (srcConstraint className [] (map (srcTypeVar . fst) args) Nothing) ty)))
     )]
 typeClassMemberToDictionaryAccessor _ _ _ _ = internalError "Invalid declaration in type class definition"
 
@@ -288,7 +314,7 @@
 
 typeInstanceDictionaryDeclaration
   :: forall m
-   . (MonadSupply m, MonadError MultipleErrors m)
+   . MonadError MultipleErrors m
   => SourceAnn
   -> Ident
   -> ModuleName
@@ -307,32 +333,38 @@
       M.lookup (qualify mn className) m
 
   -- Replace the type arguments with the appropriate types in the member types
-  let memberTypes = map (second (replaceAllTypeVars (zip (map fst typeClassArguments) tys))) typeClassMembers
+  let memberTypes = map (second (replaceAllTypeVars (zip (map fst typeClassArguments) tys)) . tuple3To2) typeClassMembers
 
   let declaredMembers = S.fromList $ mapMaybe declIdent decls
 
-  case filter (\(ident, _) -> not $ S.member ident declaredMembers) memberTypes of
-    hd : tl -> throwError . errorMessage' ss $ MissingClassMember (hd NEL.:| tl)
-    [] -> do
-      -- Create values for the type instance members
-      members <- zip (map typeClassMemberName decls) <$> traverse (memberToValue memberTypes) decls
+  -- Instance declarations with a Fail constraint are unreachable code, so
+  -- we allow them to be empty.
+  let unreachable = any ((C.Fail ==) . constraintClass) deps && null decls
 
-      -- Create the type of the dictionary
-      -- The type is a record type, but depending on type instance dependencies, may be constrained.
-      -- The dictionary itself is a record literal.
-      let superclasses = superClassDictionaryNames typeClassSuperclasses `zip`
-            [ Abs (VarBinder ss UnusedIdent) (DeferredDictionary superclass tyArgs)
-            | (Constraint _ superclass suTyArgs _) <- typeClassSuperclasses
-            , let tyArgs = map (replaceAllTypeVars (zip (map fst typeClassArguments) tys)) suTyArgs
-            ]
+  unless unreachable $
+    case filter (\(ident, _) -> not $ S.member ident declaredMembers) memberTypes of
+      hd : tl -> throwError . errorMessage' ss $ MissingClassMember (hd NEL.:| tl)
+      [] -> pure ()
 
-      let props = Literal ss $ ObjectLiteral $ map (first mkString) (members ++ superclasses)
-          dictTy = foldl srcTypeApp (srcTypeConstructor (fmap coerceProperName className)) tys
-          constrainedTy = quantify (foldr srcConstrainedType dictTy deps)
-          dict = TypeClassDictionaryConstructorApp className props
-          result = ValueDecl sa name Private [] [MkUnguarded (TypedValue True dict constrainedTy)]
-      return result
+  -- Create values for the type instance members
+  members <- zip (map typeClassMemberName decls) <$> traverse (memberToValue memberTypes) decls
 
+  -- Create the type of the dictionary
+  -- The type is a record type, but depending on type instance dependencies, may be constrained.
+  -- The dictionary itself is a record literal (unless unreachable, in which case it's undefined).
+  superclassesDicts <- for typeClassSuperclasses $ \(Constraint _ superclass _ suTyArgs _) -> do
+    let tyArgs = map (replaceAllTypeVars (zip (map fst typeClassArguments) tys)) suTyArgs
+    pure $ Abs (VarBinder ss UnusedIdent) (DeferredDictionary superclass tyArgs)
+  let superclasses = superClassDictionaryNames typeClassSuperclasses `zip` superclassesDicts
+
+  let props = Literal ss $ ObjectLiteral $ map (first mkString) (members ++ superclasses)
+      dictTy = foldl srcTypeApp (srcTypeConstructor (fmap (coerceProperName . dictTypeName) className)) tys
+      constrainedTy = quantify (foldr srcConstrainedType dictTy deps)
+      dict = App (Constructor ss (fmap (coerceProperName . dictTypeName) className)) props
+      mkTV = if unreachable then TypedValue False (Var nullSourceSpan C.I_undefined) else TypedValue True dict
+      result = ValueDecl sa name Private [] [MkUnguarded (mkTV constrainedTy)]
+  return result
+
   where
 
   memberToValue :: [(Ident, SourceType)] -> Declaration -> Desugar m Expr
@@ -347,10 +379,13 @@
 declIdent _ = Nothing
 
 typeClassMemberName :: Declaration -> Text
-typeClassMemberName = fromMaybe (internalError "typeClassMemberName: Invalid declaration in type class definition") . fmap runIdent . declIdent
+typeClassMemberName = maybe (internalError "typeClassMemberName: Invalid declaration in type class definition") runIdent . declIdent
 
 superClassDictionaryNames :: [Constraint a] -> [Text]
 superClassDictionaryNames supers =
   [ superclassName pn index
-  | (index, Constraint _ pn _ _) <- zip [0..] supers
+  | (index, Constraint _ pn _ _ _) <- zip [0..] supers
   ]
+
+tuple3To2 :: (a, b, c) -> (a, b)
+tuple3To2 (a, b, _) = (a, b)
diff --git a/src/Language/PureScript/Sugar/TypeClasses/Deriving.hs b/src/Language/PureScript/Sugar/TypeClasses/Deriving.hs
--- a/src/Language/PureScript/Sugar/TypeClasses/Deriving.hs
+++ b/src/Language/PureScript/Sugar/TypeClasses/Deriving.hs
@@ -1,378 +1,164 @@
 -- | This module implements the generic deriving elaboration that takes place during desugaring.
 module Language.PureScript.Sugar.TypeClasses.Deriving (deriveInstances) where
 
-import           Prelude.Compat
-import           Protolude (ordNub)
-
-import           Control.Arrow (second)
-import           Control.Monad (replicateM, zipWithM, unless, when)
-import           Control.Monad.Error.Class (MonadError(..))
-import           Control.Monad.Writer.Class (MonadWriter(..))
-import           Control.Monad.Supply.Class (MonadSupply)
-import           Data.Foldable (for_)
-import           Data.List (foldl', find, sortBy, unzip5)
-import qualified Data.Map as M
-import           Data.Maybe (fromMaybe, mapMaybe)
-import           Data.Ord (comparing)
-import qualified Data.Set as S
-import           Data.Text (Text)
-import           Language.PureScript.AST
-import qualified Language.PureScript.Constants as C
-import           Language.PureScript.Crash
-import           Language.PureScript.Environment
-import           Language.PureScript.Errors
-import           Language.PureScript.Externs
-import           Language.PureScript.Kinds
-import           Language.PureScript.Names
-import           Language.PureScript.Label (Label(..))
-import           Language.PureScript.PSString (mkString)
-import           Language.PureScript.Types
-import           Language.PureScript.TypeChecker (checkNewtype)
-import           Language.PureScript.TypeChecker.Synonyms (SynonymMap, replaceAllTypeSynonymsM)
-
--- | When deriving an instance for a newtype, we must ensure that all superclass
--- instances were derived in the same way. This data structure is used to ensure
--- this property.
-data NewtypeDerivedInstances = NewtypeDerivedInstances
-  { ndiClasses :: M.Map (ModuleName, ProperName 'ClassName) ([Text], [SourceConstraint], [FunctionalDependency])
-  -- ^ A list of superclass constraints for each type class. Since type classes
-  -- have not been desugared here, we need to track this.
-  , ndiDerivedInstances :: S.Set ((ModuleName, ProperName 'ClassName), (ModuleName, ProperName 'TypeName))
-  -- ^ A list of newtype instances which were derived in this module.
-  } deriving Show
-
-instance Semigroup NewtypeDerivedInstances where
-  x <> y =
-    NewtypeDerivedInstances { ndiClasses          = ndiClasses          x <> ndiClasses          y
-                            , ndiDerivedInstances = ndiDerivedInstances x <> ndiDerivedInstances y
-                            }
-
-instance Monoid NewtypeDerivedInstances where
-  mempty = NewtypeDerivedInstances mempty mempty
+import Prelude
+import Protolude (note)
 
--- | Extract the name of the newtype appearing in the last type argument of
--- a derived newtype instance.
---
--- Note: since newtypes in newtype instances can only be applied to type arguments
--- (no flexible instances allowed), we don't need to bother with unification when
--- looking for matching superclass instances, which saves us a lot of work. Instead,
--- we just match the newtype name.
-extractNewtypeName :: ModuleName -> [SourceType] -> Maybe (ModuleName, ProperName 'TypeName)
-extractNewtypeName _ [] = Nothing
-extractNewtypeName mn xs = go (last xs) where
-  go (TypeApp _ ty (TypeVar _ _)) = go ty
-  go (TypeConstructor _ name) = Just (qualify mn name)
-  go _ = Nothing
+import Control.Monad.Error.Class (MonadError(..))
+import Control.Monad.Supply.Class (MonadSupply)
+import Data.List (foldl', find, unzip5)
+import Language.PureScript.AST (Binder(..), CaseAlternative(..), DataConstructorDeclaration(..), Declaration(..), Expr(..), pattern MkUnguarded, Module(..), SourceSpan(..), TypeInstanceBody(..), pattern ValueDecl)
+import Language.PureScript.AST.Utils (UnwrappedTypeConstructor(..), lamCase, unguarded, unwrapTypeConstructor)
+import Language.PureScript.Constants.Libs qualified as Libs
+import Language.PureScript.Crash (internalError)
+import Language.PureScript.Environment (DataDeclType(..), NameKind(..))
+import Language.PureScript.Errors (MultipleErrors, SimpleErrorMessage(..), errorMessage')
+import Language.PureScript.Names (pattern ByNullSourcePos, Ident(..), ModuleName, ProperName(..), ProperNameType(..), Qualified(..), QualifiedBy(..), freshIdent)
+import Language.PureScript.PSString (mkString)
+import Language.PureScript.Types (SourceType, Type(..), WildcardData(..), replaceAllTypeVars, srcTypeApp, srcTypeConstructor, srcTypeLevelString)
+import Language.PureScript.TypeChecker (checkNewtype)
 
 -- | Elaborates deriving instance declarations by code generation.
 deriveInstances
   :: forall m
-   . (MonadError MultipleErrors m, MonadWriter MultipleErrors m, MonadSupply m)
-  => [ExternsFile]
-  -> Module
+   . (MonadError MultipleErrors m, MonadSupply m)
+  => Module
   -> m Module
-deriveInstances externs (Module ss coms mn ds exts) =
-    Module ss coms mn <$> mapM (deriveInstance mn synonyms instanceData ds) ds <*> pure exts
-  where
-    -- We need to collect type synonym information, since synonyms will not be
-    -- removed until later, during type checking.
-    synonyms :: SynonymMap
-    synonyms =
-        M.fromList $ (externs >>= \ExternsFile{..} -> mapMaybe (fromExternsDecl efModuleName) efDeclarations)
-                  ++ mapMaybe fromLocalDecl ds
-      where
-        fromExternsDecl mn' (EDTypeSynonym name args ty) = Just (Qualified (Just mn') name, (args, ty))
-        fromExternsDecl _ _ = Nothing
-
-        fromLocalDecl (TypeSynonymDeclaration _ name args ty) =
-          Just (Qualified (Just mn) name, (args, ty))
-        fromLocalDecl _ = Nothing
-
-    instanceData :: NewtypeDerivedInstances
-    instanceData =
-        foldMap (\ExternsFile{..} -> foldMap (fromExternsDecl efModuleName) efDeclarations) externs <> foldMap fromLocalDecl ds
-      where
-        fromExternsDecl mn' EDClass{..} =
-          NewtypeDerivedInstances (M.singleton (mn', edClassName) (map fst edClassTypeArguments, edClassConstraints, edFunctionalDependencies)) mempty
-        fromExternsDecl mn' EDInstance{..} =
-          foldMap (\nm -> NewtypeDerivedInstances mempty (S.singleton (qualify mn' edInstanceClassName, nm))) (extractNewtypeName mn' edInstanceTypes)
-        fromExternsDecl _ _ = mempty
-
-        fromLocalDecl (TypeClassDeclaration _ cl args cons deps _) =
-          NewtypeDerivedInstances (M.singleton (mn, cl) (map fst args, cons, deps)) mempty
-        fromLocalDecl (TypeInstanceDeclaration _ _ _ _ _ cl tys _) =
-          foldMap (\nm -> NewtypeDerivedInstances mempty (S.singleton (qualify mn cl, nm))) (extractNewtypeName mn tys)
-        fromLocalDecl _ = mempty
+deriveInstances (Module ss coms mn ds exts) =
+    Module ss coms mn <$> mapM (deriveInstance mn ds) ds <*> pure exts
 
 -- | Takes a declaration, and if the declaration is a deriving TypeInstanceDeclaration,
 -- elaborates that into an instance declaration via code generation.
+--
+-- More instance deriving happens during type checking. The instances
+-- derived here are special for two reasons:
+-- * they depend only on the structure of the data, not types; and
+-- * they expect wildcard types from the user and generate type expressions
+--   to replace them.
+--
 deriveInstance
-  :: (MonadError MultipleErrors m, MonadWriter MultipleErrors m, MonadSupply m)
+  :: forall m
+   . (MonadError MultipleErrors m, MonadSupply m)
   => ModuleName
-  -> SynonymMap
-  -> NewtypeDerivedInstances
   -> [Declaration]
   -> Declaration
   -> m Declaration
-deriveInstance mn syns _ ds (TypeInstanceDeclaration sa@(ss, _) ch idx nm deps className tys DerivedInstance)
-  | className == Qualified (Just dataEq) (ProperName "Eq")
-  = case tys of
-      [ty] | Just (Qualified mn' tyCon, _) <- unwrapTypeConstructor ty
-           , mn == fromMaybe mn mn'
-           -> TypeInstanceDeclaration sa ch idx nm deps className tys . ExplicitInstance <$> deriveEq ss mn syns ds tyCon
-           | otherwise -> throwError . errorMessage' ss $ ExpectedTypeConstructor className tys ty
-      _ -> throwError . errorMessage' ss $ InvalidDerivedInstance className tys 1
-  | className == Qualified (Just dataEq) (ProperName "Eq1")
-  = case tys of
-      [ty] | Just (Qualified mn' _, _) <- unwrapTypeConstructor ty
-           , mn == fromMaybe mn mn'
-           -> pure . TypeInstanceDeclaration sa ch idx nm deps className tys . ExplicitInstance $ deriveEq1 ss
-           | otherwise -> throwError . errorMessage' ss $ ExpectedTypeConstructor className tys ty
-      _ -> throwError . errorMessage' ss $ InvalidDerivedInstance className tys 1
-  | className == Qualified (Just dataOrd) (ProperName "Ord")
-  = case tys of
-      [ty] | Just (Qualified mn' tyCon, _) <- unwrapTypeConstructor ty
-           , mn == fromMaybe mn mn'
-           -> TypeInstanceDeclaration sa ch idx nm deps className tys . ExplicitInstance <$> deriveOrd ss mn syns ds tyCon
-           | otherwise -> throwError . errorMessage' ss $ ExpectedTypeConstructor className tys ty
-      _ -> throwError . errorMessage' ss $ InvalidDerivedInstance className tys 1
-  | className == Qualified (Just dataOrd) (ProperName "Ord1")
-  = case tys of
-      [ty] | Just (Qualified mn' _, _) <- unwrapTypeConstructor ty
-           , mn == fromMaybe mn mn'
-           -> pure . TypeInstanceDeclaration sa ch idx nm deps className tys . ExplicitInstance $ deriveOrd1 ss
-           | otherwise -> throwError . errorMessage' ss $ ExpectedTypeConstructor className tys ty
-      _ -> throwError . errorMessage' ss $ InvalidDerivedInstance className tys 1
-  | className == Qualified (Just dataFunctor) (ProperName "Functor")
-  = case tys of
-      [ty] | Just (Qualified mn' tyCon, _) <- unwrapTypeConstructor ty
-           , mn == fromMaybe mn mn'
-           -> TypeInstanceDeclaration sa ch idx nm deps className tys . ExplicitInstance <$> deriveFunctor ss mn syns ds tyCon
-           | otherwise -> throwError . errorMessage' ss $ ExpectedTypeConstructor className tys ty
-      _ -> throwError . errorMessage' ss $ InvalidDerivedInstance className tys 1
-  | className == Qualified (Just dataNewtype) (ProperName "Newtype")
-  = case tys of
-      [wrappedTy, unwrappedTy]
-        | Just (Qualified mn' tyCon, args) <- unwrapTypeConstructor wrappedTy
-        , mn == fromMaybe mn mn'
-        -> do (inst, actualUnwrappedTy) <- deriveNewtype ss mn syns ds tyCon args unwrappedTy
-              return $ TypeInstanceDeclaration sa ch idx nm deps className [wrappedTy, actualUnwrappedTy] (ExplicitInstance inst)
-        | otherwise -> throwError . errorMessage' ss $ ExpectedTypeConstructor className tys wrappedTy
-      _ -> throwError . errorMessage' ss $ InvalidDerivedInstance className tys 2
-  | className == Qualified (Just dataGenericRep) (ProperName C.generic)
-  = case tys of
-      [actualTy, repTy]
-        | Just (Qualified mn' tyCon, args) <- unwrapTypeConstructor actualTy
-        , mn == fromMaybe mn mn'
-        -> do (inst, inferredRepTy) <- deriveGenericRep ss mn syns ds tyCon args repTy
-              return $ TypeInstanceDeclaration sa ch idx nm deps className [actualTy, inferredRepTy] (ExplicitInstance inst)
-        | otherwise -> throwError . errorMessage' ss $ ExpectedTypeConstructor className tys actualTy
-      _ -> throwError . errorMessage' ss $ InvalidDerivedInstance className tys 2
-  | otherwise = throwError . errorMessage' ss $ CannotDerive className tys
-deriveInstance mn syns ndis ds (TypeInstanceDeclaration sa@(ss, _) ch idx nm deps className tys NewtypeInstance) =
-  case tys of
-    _ : _ | Just (Qualified mn' tyCon, args) <- unwrapTypeConstructor (last tys)
-          , mn == fromMaybe mn mn'
-          -> TypeInstanceDeclaration sa ch idx nm deps className tys . NewtypeInstanceWithDictionary <$> deriveNewtypeInstance ss mn syns ndis className ds tys tyCon args
-          | otherwise -> throwError . errorMessage' ss $ ExpectedTypeConstructor className tys (last tys)
-    _ -> throwError . errorMessage' ss $ InvalidNewtypeInstance className tys
-deriveInstance _ _ _ _ e = return e
-
-unwrapTypeConstructor :: SourceType -> Maybe (Qualified (ProperName 'TypeName), [SourceType])
-unwrapTypeConstructor = fmap (second reverse) . go
-  where
-  go (TypeConstructor _ tyCon) = Just (tyCon, [])
-  go (TypeApp _ ty arg) = do
-    (tyCon, args) <- go ty
-    return (tyCon, arg : args)
-  go _ = Nothing
-
-deriveNewtypeInstance
-  :: forall m
-   . (MonadError MultipleErrors m, MonadWriter MultipleErrors m)
-  => SourceSpan
-  -> ModuleName
-  -> SynonymMap
-  -> NewtypeDerivedInstances
-  -> Qualified (ProperName 'ClassName)
-  -> [Declaration]
-  -> [SourceType]
-  -> ProperName 'TypeName
-  -> [SourceType]
-  -> m Expr
-deriveNewtypeInstance ss mn syns ndis className ds tys tyConNm dargs = do
-    verifySuperclasses
-    tyCon <- findTypeDecl ss tyConNm ds
-    go tyCon
-  where
-    go (DataDeclaration _ Newtype _ tyArgNames [(_, [(_, wrapped)])]) = do
-      -- The newtype might not be applied to all type arguments.
-      -- This is okay as long as the newtype wraps something which ends with
-      -- sufficiently many type applications to variables.
-      -- For example, we can derive Functor for
-      --
-      -- newtype MyArray a = MyArray (Array a)
-      --
-      -- since Array a is a type application which uses the last
-      -- type argument
-      wrapped' <- replaceAllTypeSynonymsM syns wrapped
-      case stripRight (takeReverse (length tyArgNames - length dargs) tyArgNames) wrapped' of
-        Just wrapped'' -> do
-          let subst = zipWith (\(name, _) t -> (name, t)) tyArgNames dargs
-          return (DeferredDictionary className (init tys ++ [replaceAllTypeVars subst wrapped'']))
-        Nothing -> throwError . errorMessage' ss $ InvalidNewtypeInstance className tys
-    go _ = throwError . errorMessage' ss $ InvalidNewtypeInstance className tys
-
-    takeReverse :: Int -> [a] -> [a]
-    takeReverse n = take n . reverse
-
-    stripRight :: [(Text, Maybe kind)] -> SourceType -> Maybe SourceType
-    stripRight [] ty = Just ty
-    stripRight ((arg, _) : args) (TypeApp _ t (TypeVar _ arg'))
-      | arg == arg' = stripRight args t
-    stripRight _ _ = Nothing
-
-    verifySuperclasses :: m ()
-    verifySuperclasses =
-      for_ (M.lookup (qualify mn className) (ndiClasses ndis)) $ \(args, superclasses, _) ->
-        for_ superclasses $ \Constraint{..} -> do
-          let constraintClass' = qualify (error "verifySuperclasses: unknown class module") constraintClass
-          for_ (M.lookup constraintClass' (ndiClasses ndis)) $ \(_, _, deps) ->
-            -- We need to check whether the newtype is mentioned, because of classes like MonadWriter
-            -- with its Monoid superclass constraint.
-            when (not (null args) && any ((last args `elem`) . usedTypeVariables) constraintArgs) $ do
-              -- For now, we only verify superclasses where the newtype is the only argument,
-              -- or for which all other arguments are determined by functional dependencies.
-              -- Everything else raises a UnverifiableSuperclassInstance warning.
-              -- This covers pretty much all cases we're interested in, but later we might want to do
-              -- more work to extend this to other superclass relationships.
-              let determined = map (srcTypeVar . (args !!)) . ordNub . concatMap fdDetermined . filter ((== [length args - 1]) . fdDeterminers) $ deps
-              if eqType (last constraintArgs) (srcTypeVar (last args)) && all (`elem` determined) (init constraintArgs)
-                then do
-                  -- Now make sure that a superclass instance was derived. Again, this is not a complete
-                  -- check, since the superclass might have multiple type arguments, so overlaps might still
-                  -- be possible, so we warn again.
-                  for_ (extractNewtypeName mn tys) $ \nm ->
-                    unless ((constraintClass', nm) `S.member` ndiDerivedInstances ndis) $
-                      tell . errorMessage' ss $ MissingNewtypeSuperclassInstance constraintClass className tys
-                else tell . errorMessage' ss $ UnverifiableSuperclassInstance constraintClass className tys
-
-dataGenericRep :: ModuleName
-dataGenericRep = ModuleName [ ProperName "Data", ProperName "Generic", ProperName "Rep" ]
-
-dataEq :: ModuleName
-dataEq = ModuleName [ ProperName "Data", ProperName "Eq" ]
-
-dataOrd :: ModuleName
-dataOrd = ModuleName [ ProperName "Data", ProperName "Ord" ]
-
-dataNewtype :: ModuleName
-dataNewtype = ModuleName [ ProperName "Data", ProperName "Newtype" ]
-
-dataFunctor :: ModuleName
-dataFunctor = ModuleName [ ProperName "Data", ProperName "Functor" ]
+deriveInstance mn ds decl =
+  case decl of
+    TypeInstanceDeclaration sa@(ss, _) na ch idx nm deps className tys DerivedInstance -> let
+      binaryWildcardClass :: (Declaration -> [SourceType] -> m ([Declaration], SourceType)) -> m Declaration
+      binaryWildcardClass f = case tys of
+        [ty1, ty2] -> case unwrapTypeConstructor ty1 of
+          Just UnwrappedTypeConstructor{..} | mn == utcModuleName -> do
+            checkIsWildcard ss utcTyCon ty2
+            tyConDecl <- findTypeDecl ss utcTyCon ds
+            (members, ty2') <- f tyConDecl utcArgs
+            pure $ TypeInstanceDeclaration sa na ch idx nm deps className [ty1, ty2'] (ExplicitInstance members)
+          _ -> throwError . errorMessage' ss $ ExpectedTypeConstructor className tys ty1
+        _ -> throwError . errorMessage' ss $ InvalidDerivedInstance className tys 2
 
-unguarded :: Expr -> [GuardedExpr]
-unguarded e = [MkUnguarded e]
+      in case className of
+        Libs.Generic -> binaryWildcardClass (deriveGenericRep ss mn)
+        Libs.Newtype -> binaryWildcardClass deriveNewtype
+        _ -> pure decl
+    _ -> pure decl
 
 deriveGenericRep
   :: forall m
    . (MonadError MultipleErrors m, MonadSupply m)
   => SourceSpan
   -> ModuleName
-  -> SynonymMap
-  -> [Declaration]
-  -> ProperName 'TypeName
+  -> Declaration
   -> [SourceType]
-  -> SourceType
   -> m ([Declaration], SourceType)
-deriveGenericRep ss mn syns ds tyConNm tyConArgs repTy = do
-    checkIsWildcard ss tyConNm repTy
-    go =<< findTypeDecl ss tyConNm ds
-  where
-    go :: Declaration -> m ([Declaration], SourceType)
-    go (DataDeclaration (ss', _) _ _ args dctors) = do
+deriveGenericRep ss mn tyCon tyConArgs =
+  case tyCon of
+    DataDeclaration (ss', _) _ _ args dctors -> do
       x <- freshIdent "x"
       (reps, to, from) <- unzip3 <$> traverse makeInst dctors
       let rep = toRepTy reps
           inst | null reps =
                    -- If there are no cases, spin
                    [ ValueDecl (ss', []) (Ident "to") Public [] $ unguarded $
-                      lamCase ss' x
+                      lamCase x
                         [ CaseAlternative
                             [NullBinder]
-                            (unguarded (App toName (Var ss' (Qualified Nothing x))))
+                            (unguarded (App (Var ss Libs.I_to) (Var ss' (Qualified ByNullSourcePos x))))
                         ]
                    , ValueDecl (ss', []) (Ident "from") Public [] $ unguarded $
-                      lamCase ss' x
+                      lamCase x
                         [ CaseAlternative
                             [NullBinder]
-                            (unguarded (App fromName (Var ss' (Qualified Nothing x))))
+                            (unguarded (App (Var ss Libs.I_from) (Var ss' (Qualified ByNullSourcePos x))))
                         ]
                    ]
                | otherwise =
                    [ ValueDecl (ss', []) (Ident "to") Public [] $ unguarded $
-                       lamCase ss' x (zipWith ($) (map underBinder (sumBinders (length dctors))) to)
+                       lamCase x (zipWith ($) (map underBinder (sumBinders (length dctors))) to)
                    , ValueDecl (ss', []) (Ident "from") Public [] $ unguarded $
-                       lamCase ss' x (zipWith ($) (map underExpr (sumExprs (length dctors))) from)
+                       lamCase x (zipWith ($) (map underExpr (sumExprs (length dctors))) from)
                    ]
 
           subst = zipWith ((,) . fst) args tyConArgs
       return (inst, replaceAllTypeVars subst rep)
-    go _ = internalError "deriveGenericRep go: expected DataDeclaration"
+    _ -> internalError "deriveGenericRep: expected DataDeclaration"
 
+    where
+
     select :: (a -> a) -> (a -> a) -> Int -> [a -> a]
     select _ _ 0 = []
     select _ _ 1 = [id]
     select l r n = take (n - 1) (iterate (r .) l) ++ [compN (n - 1) r]
 
     sumBinders :: Int -> [Binder -> Binder]
-    sumBinders = select (ConstructorBinder ss inl . pure) (ConstructorBinder ss inr . pure)
+    sumBinders = select (ConstructorBinder ss Libs.C_Inl . pure)
+                        (ConstructorBinder ss Libs.C_Inr . pure)
 
     sumExprs :: Int -> [Expr -> Expr]
-    sumExprs = select (App (Constructor ss inl)) (App (Constructor ss inr))
+    sumExprs = select (App (Constructor ss Libs.C_Inl))
+                      (App (Constructor ss Libs.C_Inr))
 
     compN :: Int -> (a -> a) -> a -> a
     compN 0 _ = id
     compN n f = f . compN (n - 1) f
 
     makeInst
-      :: (ProperName 'ConstructorName, [(Ident, SourceType)])
+      :: DataConstructorDeclaration
       -> m (SourceType, CaseAlternative, CaseAlternative)
-    makeInst (ctorName, args) = do
-        args' <- mapM (replaceAllTypeSynonymsM syns . snd) args
+    makeInst (DataConstructorDeclaration _ ctorName args) = do
+        let args' = map snd args
         (ctorTy, matchProduct, ctorArgs, matchCtor, mkProduct) <- makeProduct args'
-        return ( srcTypeApp (srcTypeApp (srcTypeConstructor constructor)
+        return ( srcTypeApp (srcTypeApp (srcTypeConstructor Libs.Constructor)
                                   (srcTypeLevelString $ mkString (runProperName ctorName)))
                          ctorTy
-               , CaseAlternative [ ConstructorBinder ss constructor [matchProduct] ]
-                                 (unguarded (foldl' App (Constructor ss (Qualified (Just mn) ctorName)) ctorArgs))
-               , CaseAlternative [ ConstructorBinder ss (Qualified (Just mn) ctorName) matchCtor ]
-                                 (unguarded (constructor' mkProduct))
+               , CaseAlternative [ ConstructorBinder ss Libs.C_Constructor [matchProduct] ]
+                                 (unguarded (foldl' App (Constructor ss (Qualified (ByModuleName mn) ctorName)) ctorArgs))
+               , CaseAlternative [ ConstructorBinder ss (Qualified (ByModuleName mn) ctorName) matchCtor ]
+                                 (unguarded (App (Constructor ss Libs.C_Constructor) mkProduct))
                )
 
     makeProduct
       :: [SourceType]
       -> m (SourceType, Binder, [Expr], [Binder], Expr)
     makeProduct [] =
-      pure (noArgs, NullBinder, [], [], noArgs')
+      pure (srcTypeConstructor Libs.NoArguments, NullBinder, [], [], Constructor ss Libs.C_NoArguments)
     makeProduct args = do
       (tys, bs1, es1, bs2, es2) <- unzip5 <$> traverse makeArg args
-      pure ( foldr1 (\f -> srcTypeApp (srcTypeApp (srcTypeConstructor productName) f)) tys
-           , foldr1 (\b1 b2 -> ConstructorBinder ss productName [b1, b2]) bs1
+      pure ( foldr1 (\f -> srcTypeApp (srcTypeApp (srcTypeConstructor Libs.Product) f)) tys
+           , foldr1 (\b1 b2 -> ConstructorBinder ss Libs.C_Product [b1, b2]) bs1
            , es1
            , bs2
-           , foldr1 (\e1 -> App (App (Constructor ss productName) e1)) es2
+           , foldr1 (\e1 -> App (App (Constructor ss Libs.C_Product) e1)) es2
            )
 
     makeArg :: SourceType -> m (SourceType, Binder, Expr, Binder, Expr)
     makeArg arg = do
       argName <- freshIdent "arg"
-      pure ( srcTypeApp (srcTypeConstructor argument) arg
-           , ConstructorBinder ss argument [ VarBinder ss argName ]
-           , Var ss (Qualified Nothing argName)
+      pure ( srcTypeApp (srcTypeConstructor Libs.Argument) arg
+           , ConstructorBinder ss Libs.C_Argument [ VarBinder ss argName ]
+           , Var ss (Qualified (BySourcePos $ spanStart ss) argName)
            , VarBinder ss argName
-           , argument' (Var ss (Qualified Nothing argName))
+           , App (Constructor ss Libs.C_Argument) (Var ss (Qualified (BySourcePos $ spanStart ss) argName))
            )
 
     underBinder :: (Binder -> Binder) -> CaseAlternative -> CaseAlternative
@@ -383,260 +169,30 @@
     underExpr _ _ = internalError "underExpr: expected unguarded alternative"
 
     toRepTy :: [SourceType] -> SourceType
-    toRepTy [] = noCtors
+    toRepTy [] = srcTypeConstructor Libs.NoConstructors
     toRepTy [only] = only
-    toRepTy ctors = foldr1 (\f -> srcTypeApp (srcTypeApp sumCtor f)) ctors
-
-    toName :: Expr
-    toName = Var ss (Qualified (Just dataGenericRep) (Ident "to"))
-
-    fromName :: Expr
-    fromName = Var ss (Qualified (Just dataGenericRep) (Ident "from"))
-
-    noCtors :: SourceType
-    noCtors = srcTypeConstructor (Qualified (Just dataGenericRep) (ProperName "NoConstructors"))
-
-    noArgs :: SourceType
-    noArgs = srcTypeConstructor (Qualified (Just dataGenericRep) (ProperName "NoArguments"))
-
-    noArgs' :: Expr
-    noArgs' = Constructor ss (Qualified (Just dataGenericRep) (ProperName "NoArguments"))
-
-    sumCtor :: SourceType
-    sumCtor = srcTypeConstructor (Qualified (Just dataGenericRep) (ProperName "Sum"))
-
-    inl :: Qualified (ProperName 'ConstructorName)
-    inl = Qualified (Just dataGenericRep) (ProperName "Inl")
-
-    inr :: Qualified (ProperName 'ConstructorName)
-    inr = Qualified (Just dataGenericRep) (ProperName "Inr")
-
-    productName :: Qualified (ProperName ty)
-    productName = Qualified (Just dataGenericRep) (ProperName "Product")
-
-    constructor :: Qualified (ProperName ty)
-    constructor = Qualified (Just dataGenericRep) (ProperName "Constructor")
-
-    constructor' :: Expr -> Expr
-    constructor' = App (Constructor ss constructor)
-
-    argument :: Qualified (ProperName ty)
-    argument = Qualified (Just dataGenericRep) (ProperName "Argument")
-
-    argument' :: Expr -> Expr
-    argument' = App (Constructor ss argument)
+    toRepTy ctors = foldr1 (\f -> srcTypeApp (srcTypeApp (srcTypeConstructor Libs.Sum) f)) ctors
 
 checkIsWildcard :: MonadError MultipleErrors m => SourceSpan -> ProperName 'TypeName -> SourceType -> m ()
-checkIsWildcard _ _ (TypeWildcard _ Nothing) = return ()
+checkIsWildcard _ _ (TypeWildcard _ UnnamedWildcard) = return ()
 checkIsWildcard ss tyConNm _ =
   throwError . errorMessage' ss $ ExpectedWildcard tyConNm
 
-deriveEq
-  :: forall m
-   . (MonadError MultipleErrors m, MonadSupply m)
-  => SourceSpan
-  -> ModuleName
-  -> SynonymMap
-  -> [Declaration]
-  -> ProperName 'TypeName
-  -> m [Declaration]
-deriveEq ss mn syns ds tyConNm = do
-  tyCon <- findTypeDecl ss tyConNm ds
-  eqFun <- mkEqFunction tyCon
-  return [ ValueDecl (ss, []) (Ident C.eq) Public [] (unguarded eqFun) ]
-  where
-    mkEqFunction :: Declaration -> m Expr
-    mkEqFunction (DataDeclaration (ss', _) _ _ _ args) = do
-      x <- freshIdent "x"
-      y <- freshIdent "y"
-      lamCase2 ss' x y <$> (addCatch <$> mapM mkCtorClause args)
-    mkEqFunction _ = internalError "mkEqFunction: expected DataDeclaration"
-
-    preludeConj :: Expr -> Expr -> Expr
-    preludeConj = App . App (Var ss (Qualified (Just (ModuleName [ProperName "Data", ProperName "HeytingAlgebra"])) (Ident C.conj)))
-
-    preludeEq :: Expr -> Expr -> Expr
-    preludeEq = App . App (Var ss (Qualified (Just dataEq) (Ident C.eq)))
-
-    preludeEq1 :: Expr -> Expr -> Expr
-    preludeEq1 = App . App (Var ss (Qualified (Just dataEq) (Ident C.eq1)))
-
-    addCatch :: [CaseAlternative] -> [CaseAlternative]
-    addCatch xs
-      | length xs /= 1 = xs ++ [catchAll]
-      | otherwise = xs -- Avoid redundant case
-      where
-      catchAll = CaseAlternative [NullBinder, NullBinder] (unguarded (Literal ss (BooleanLiteral False)))
-
-    mkCtorClause :: (ProperName 'ConstructorName, [(Ident, SourceType)]) -> m CaseAlternative
-    mkCtorClause (ctorName, tys) = do
-      identsL <- replicateM (length tys) (freshIdent "l")
-      identsR <- replicateM (length tys) (freshIdent "r")
-      tys' <- mapM (replaceAllTypeSynonymsM syns . snd) tys
-      let tests = zipWith3 toEqTest (map (Var ss . Qualified Nothing) identsL) (map (Var ss . Qualified Nothing) identsR) tys'
-      return $ CaseAlternative [caseBinder identsL, caseBinder identsR] (unguarded (conjAll tests))
-      where
-      caseBinder idents = ConstructorBinder ss (Qualified (Just mn) ctorName) (map (VarBinder ss) idents)
-
-    conjAll :: [Expr] -> Expr
-    conjAll [] = Literal ss (BooleanLiteral True)
-    conjAll xs = foldl1 preludeConj xs
-
-    toEqTest :: Expr -> Expr -> SourceType -> Expr
-    toEqTest l r ty
-      | Just rec <- objectType ty
-      , Just fields <- decomposeRec rec =
-          conjAll
-          . map (\((Label str), typ) -> toEqTest (Accessor str l) (Accessor str r) typ)
-          $ fields
-      | isAppliedVar ty = preludeEq1 l r
-      | otherwise = preludeEq l r
-
-deriveEq1 :: SourceSpan -> [Declaration]
-deriveEq1 ss =
-  [ ValueDecl (ss, []) (Ident C.eq1) Public [] (unguarded preludeEq)]
-  where
-    preludeEq :: Expr
-    preludeEq = Var ss (Qualified (Just dataEq) (Ident C.eq))
-
-deriveOrd
-  :: forall m
-   . (MonadError MultipleErrors m, MonadSupply m)
-  => SourceSpan
-  -> ModuleName
-  -> SynonymMap
-  -> [Declaration]
-  -> ProperName 'TypeName
-  -> m [Declaration]
-deriveOrd ss mn syns ds tyConNm = do
-  tyCon <- findTypeDecl ss tyConNm ds
-  compareFun <- mkCompareFunction tyCon
-  return [ ValueDecl (ss, []) (Ident C.compare) Public [] (unguarded compareFun) ]
-  where
-    mkCompareFunction :: Declaration -> m Expr
-    mkCompareFunction (DataDeclaration (ss', _) _ _ _ args) = do
-      x <- freshIdent "x"
-      y <- freshIdent "y"
-      lamCase2 ss' x y <$> (addCatch . concat <$> mapM mkCtorClauses (splitLast args))
-    mkCompareFunction _ = internalError "mkCompareFunction: expected DataDeclaration"
-
-    splitLast :: [a] -> [(a, Bool)]
-    splitLast [] = []
-    splitLast [x] = [(x, True)]
-    splitLast (x : xs) = (x, False) : splitLast xs
-
-    addCatch :: [CaseAlternative] -> [CaseAlternative]
-    addCatch xs
-      | null xs = [catchAll] -- No type constructors
-      | otherwise = xs
-      where
-      catchAll = CaseAlternative [NullBinder, NullBinder] (unguarded (orderingCtor "EQ"))
-
-    orderingName :: Text -> Qualified (ProperName a)
-    orderingName = Qualified (Just (ModuleName [ProperName "Data", ProperName "Ordering"])) . ProperName
-
-    orderingCtor :: Text -> Expr
-    orderingCtor = Constructor ss . orderingName
-
-    orderingBinder :: Text -> Binder
-    orderingBinder name = ConstructorBinder ss (orderingName name) []
-
-    ordCompare :: Expr -> Expr -> Expr
-    ordCompare = App . App (Var ss (Qualified (Just dataOrd) (Ident C.compare)))
-
-    ordCompare1 :: Expr -> Expr -> Expr
-    ordCompare1 = App . App (Var ss (Qualified (Just dataOrd) (Ident C.compare1)))
-
-    mkCtorClauses :: ((ProperName 'ConstructorName, [(Ident, SourceType)]), Bool) -> m [CaseAlternative]
-    mkCtorClauses ((ctorName, tys), isLast) = do
-      identsL <- replicateM (length tys) (freshIdent "l")
-      identsR <- replicateM (length tys) (freshIdent "r")
-      tys' <- mapM (replaceAllTypeSynonymsM syns . snd) tys
-      let tests = zipWith3 toOrdering (map (Var ss . Qualified Nothing) identsL) (map (Var ss . Qualified Nothing) identsR) tys'
-          extras | not isLast = [ CaseAlternative [ ConstructorBinder ss (Qualified (Just mn) ctorName) (replicate (length tys) NullBinder)
-                                                  , NullBinder
-                                                  ]
-                                                  (unguarded (orderingCtor "LT"))
-                                , CaseAlternative [ NullBinder
-                                                  , ConstructorBinder ss (Qualified (Just mn) ctorName) (replicate (length tys) NullBinder)
-                                                  ]
-                                                  (unguarded (orderingCtor "GT"))
-                                ]
-                 | otherwise = []
-      return $ CaseAlternative [ caseBinder identsL
-                               , caseBinder identsR
-                               ]
-                               (unguarded (appendAll tests))
-             : extras
-
-      where
-      caseBinder idents = ConstructorBinder ss (Qualified (Just mn) ctorName) (map (VarBinder ss) idents)
-
-    appendAll :: [Expr] -> Expr
-    appendAll [] = orderingCtor "EQ"
-    appendAll [x] = x
-    appendAll (x : xs) = Case [x] [ CaseAlternative [orderingBinder "LT"]
-                                                    (unguarded (orderingCtor "LT"))
-                                  , CaseAlternative [orderingBinder "GT"]
-                                                    (unguarded (orderingCtor "GT"))
-                                  , CaseAlternative [ NullBinder ]
-                                                    (unguarded (appendAll xs))
-                                  ]
-
-    toOrdering :: Expr -> Expr -> SourceType -> Expr
-    toOrdering l r ty
-      | Just rec <- objectType ty
-      , Just fields <- decomposeRec rec =
-          appendAll
-          . map (\((Label str), typ) -> toOrdering (Accessor str l) (Accessor str r) typ)
-          $ fields
-      | isAppliedVar ty = ordCompare1 l r
-      | otherwise = ordCompare l r
-
-deriveOrd1 :: SourceSpan -> [Declaration]
-deriveOrd1 ss =
-  [ ValueDecl (ss, []) (Ident C.compare1) Public [] (unguarded dataOrdCompare)]
-  where
-    dataOrdCompare :: Expr
-    dataOrdCompare = Var ss (Qualified (Just dataOrd) (Ident C.compare))
-
 deriveNewtype
   :: forall m
-   . (MonadError MultipleErrors m, MonadSupply m)
-  => SourceSpan
-  -> ModuleName
-  -> SynonymMap
-  -> [Declaration]
-  -> ProperName 'TypeName
+   . MonadError MultipleErrors m
+  => Declaration
   -> [SourceType]
-  -> SourceType
   -> m ([Declaration], SourceType)
-deriveNewtype ss mn syns ds tyConNm tyConArgs unwrappedTy = do
-    checkIsWildcard ss tyConNm unwrappedTy
-    go =<< findTypeDecl ss tyConNm ds
-  where
-    go :: Declaration -> m ([Declaration], SourceType)
-    go (DataDeclaration (ss', _) Data name _ _) =
+deriveNewtype tyCon tyConArgs =
+  case tyCon of
+    DataDeclaration (ss', _) Data name _ _ ->
       throwError . errorMessage' ss' $ CannotDeriveNewtypeForData name
-    go (DataDeclaration (ss', _) Newtype name args dctors) = do
-      checkNewtype name dctors
-      wrappedIdent <- freshIdent "n"
-      unwrappedIdent <- freshIdent "a"
-      let (ctorName, [(_, ty)]) = head dctors
-      ty' <- replaceAllTypeSynonymsM syns ty
-      let inst =
-            [ ValueDecl (ss', []) (Ident "wrap") Public [] $ unguarded $
-                Constructor ss' (Qualified (Just mn) ctorName)
-            , ValueDecl (ss', []) (Ident "unwrap") Public [] $ unguarded $
-                lamCase ss' wrappedIdent
-                  [ CaseAlternative
-                      [ConstructorBinder ss' (Qualified (Just mn) ctorName) [VarBinder ss' unwrappedIdent]]
-                      (unguarded (Var ss' (Qualified Nothing unwrappedIdent)))
-                  ]
-            ]
-          subst = zipWith ((,) . fst) args tyConArgs
-      return (inst, replaceAllTypeVars subst ty')
-    go _ = internalError "deriveNewtype go: expected DataDeclaration"
+    DataDeclaration _ Newtype name args dctors -> do
+      (_, (_, ty)) <- checkNewtype name dctors
+      let subst = zipWith ((,) . fst) args tyConArgs
+      return ([], replaceAllTypeVars subst ty)
+    _ -> internalError "deriveNewtype: expected DataDeclaration"
 
 findTypeDecl
   :: (MonadError MultipleErrors m)
@@ -644,116 +200,8 @@
   -> ProperName 'TypeName
   -> [Declaration]
   -> m Declaration
-findTypeDecl ss tyConNm = maybe (throwError . errorMessage' ss $ CannotFindDerivingType tyConNm) return . find isTypeDecl
+findTypeDecl ss tyConNm = note (errorMessage' ss $ CannotFindDerivingType tyConNm) . find isTypeDecl
   where
   isTypeDecl :: Declaration -> Bool
-  isTypeDecl (DataDeclaration _ _ nm _ _) | nm == tyConNm = True
+  isTypeDecl (DataDeclaration _ _ nm _ _) = nm == tyConNm
   isTypeDecl _ = False
-
-lam :: SourceSpan -> Ident -> Expr -> Expr
-lam ss = Abs . VarBinder ss
-
-lamCase :: SourceSpan -> Ident -> [CaseAlternative] -> Expr
-lamCase ss s = lam ss s . Case [mkVar ss s]
-
-lamCase2 :: SourceSpan -> Ident -> Ident -> [CaseAlternative] -> Expr
-lamCase2 ss s t = lam ss s . lam ss t . Case [mkVar ss s, mkVar ss t]
-
-mkVarMn :: SourceSpan -> Maybe ModuleName -> Ident -> Expr
-mkVarMn ss mn = Var ss . Qualified mn
-
-mkVar :: SourceSpan -> Ident -> Expr
-mkVar ss = mkVarMn ss Nothing
-
-isAppliedVar :: Type a -> Bool
-isAppliedVar (TypeApp _ (TypeVar _ _) _) = True
-isAppliedVar _ = False
-
-objectType :: Type a -> Maybe (Type a)
-objectType (TypeApp _ (TypeConstructor _ C.Record) rec) = Just rec
-objectType _ = Nothing
-
-decomposeRec :: SourceType -> Maybe [(Label, SourceType)]
-decomposeRec = fmap (sortBy (comparing fst)) . go
-  where go (RCons _ str typ typs) = fmap ((str, typ) :) (go typs)
-        go (REmpty _) = Just []
-        go _ = Nothing
-
-decomposeRec' :: SourceType -> [(Label, SourceType)]
-decomposeRec' = sortBy (comparing fst) . go
-  where go (RCons _ str typ typs) = (str, typ) : go typs
-        go _ = []
-
-deriveFunctor
-  :: forall m
-   . (MonadError MultipleErrors m, MonadSupply m)
-  => SourceSpan
-  -> ModuleName
-  -> SynonymMap
-  -> [Declaration]
-  -> ProperName 'TypeName
-  -> m [Declaration]
-deriveFunctor ss mn syns ds tyConNm = do
-  tyCon <- findTypeDecl ss tyConNm ds
-  mapFun <- mkMapFunction tyCon
-  return [ ValueDecl (ss, []) (Ident C.map) Public [] (unguarded mapFun) ]
-  where
-    mkMapFunction :: Declaration -> m Expr
-    mkMapFunction (DataDeclaration (ss', _) _ _ tys ctors) = case reverse tys of
-      [] -> throwError . errorMessage' ss' $ KindsDoNotUnify (FunKind nullSourceAnn kindType kindType) kindType
-      ((iTy, _) : _) -> do
-        f <- freshIdent "f"
-        m <- freshIdent "m"
-        lam ss' f . lamCase ss' m <$> mapM (mkCtorClause iTy f) ctors
-    mkMapFunction _ = internalError "mkMapFunction: expected DataDeclaration"
-
-    mkCtorClause :: Text -> Ident -> (ProperName 'ConstructorName, [(Ident, SourceType)]) -> m CaseAlternative
-    mkCtorClause iTyName f (ctorName, ctorTys) = do
-      idents <- replicateM (length ctorTys) (freshIdent "v")
-      ctorTys' <- mapM (replaceAllTypeSynonymsM syns . snd) ctorTys
-      args <- zipWithM transformArg idents ctorTys'
-      let ctor = Constructor ss (Qualified (Just mn) ctorName)
-          rebuilt = foldl' App ctor args
-          caseBinder = ConstructorBinder ss (Qualified (Just mn) ctorName) (VarBinder ss <$> idents)
-      return $ CaseAlternative [caseBinder] (unguarded rebuilt)
-      where
-        fVar = mkVar ss f
-        mapVar = mkVarMn ss (Just dataFunctor) (Ident C.map)
-
-        -- TODO: deal with type synonyms, ala https://github.com/purescript/purescript/pull/2516
-        transformArg :: Ident -> SourceType -> m Expr
-        transformArg ident = fmap (foldr App (mkVar ss ident)) . goType where
-
-          goType :: SourceType -> m (Maybe Expr)
-          -- argument matches the index type
-          goType (TypeVar _ t) | t == iTyName = return (Just fVar)
-
-          -- records
-          goType recTy | Just row <- objectType recTy =
-              traverse buildUpdate (decomposeRec' row) >>= (traverse buildRecord . justUpdates)
-            where
-              justUpdates :: [Maybe (Label, Expr)] -> Maybe [(Label, Expr)]
-              justUpdates = foldMap (fmap return)
-
-              buildUpdate :: (Label, SourceType) -> m (Maybe (Label, Expr))
-              buildUpdate (lbl, ty) = do upd <- goType ty
-                                         return ((lbl,) <$> upd)
-
-              buildRecord :: [(Label, Expr)] -> m Expr
-              buildRecord updates = do
-                arg <- freshIdent "o"
-                let argVar = mkVar ss arg
-                    mkAssignment ((Label l), x) = (l, App x (Accessor l argVar))
-                return (lam ss arg (ObjectUpdate argVar (mkAssignment <$> updates)))
-
-          -- quantifiers
-          goType (ForAll _ scopedVar _ t _) | scopedVar /= iTyName = goType t
-
-          -- constraints
-          goType (ConstrainedType _ _ t) = goType t
-
-          -- under a `* -> *`, just assume functor for now
-          goType (TypeApp _ _ t) = fmap (App mapVar) <$> goType t
-
-          -- otherwise do nothing - will fail type checking if type does actually contain index
-          goType _ = return Nothing
diff --git a/src/Language/PureScript/Sugar/TypeDeclarations.hs b/src/Language/PureScript/Sugar/TypeDeclarations.hs
--- a/src/Language/PureScript/Sugar/TypeDeclarations.hs
+++ b/src/Language/PureScript/Sugar/TypeDeclarations.hs
@@ -6,14 +6,15 @@
   ( desugarTypeDeclarationsModule
   ) where
 
-import Prelude.Compat
+import Prelude
 
+import Control.Monad (unless)
 import Control.Monad.Error.Class (MonadError(..))
 
-import Language.PureScript.AST
-import Language.PureScript.Names
-import Language.PureScript.Environment
-import Language.PureScript.Errors
+import Language.PureScript.AST (Declaration(..), ErrorMessageHint(..), Expr(..), GuardedExpr(..), KindSignatureFor(..), pattern MkUnguarded, Module(..), RoleDeclarationData(..), TypeDeclarationData(..), TypeInstanceBody(..), pattern ValueDecl, declSourceSpan, everywhereOnValuesTopDownM)
+import Language.PureScript.Names (Ident, coerceProperName)
+import Language.PureScript.Environment (DataDeclType(..), NameKind)
+import Language.PureScript.Errors (MultipleErrors, SimpleErrorMessage(..), addHint, errorMessage', rethrow)
 
 -- |
 -- Replace all top level type declarations in a module with type annotations
@@ -24,7 +25,9 @@
   => Module
   -> m Module
 desugarTypeDeclarationsModule (Module modSS coms name ds exps) =
-  rethrow (addHint (ErrorInModule name)) $
+  rethrow (addHint (ErrorInModule name)) $ do
+    checkKindDeclarations ds
+    checkRoleDeclarations Nothing ds
     Module modSS coms name <$> desugarTypeDeclarations ds <*> pure exps
   where
 
@@ -48,8 +51,47 @@
     where
     go (Let w ds' val') = Let w <$> desugarTypeDeclarations ds' <*> pure val'
     go other = return other
-  desugarTypeDeclarations (TypeInstanceDeclaration sa ch idx nm deps cls args (ExplicitInstance ds') : rest) =
-    (:) <$> (TypeInstanceDeclaration sa ch idx nm deps cls args . ExplicitInstance <$> desugarTypeDeclarations ds')
+  desugarTypeDeclarations (TypeInstanceDeclaration sa na ch idx nm deps cls args (ExplicitInstance ds') : rest) =
+    (:) <$> (TypeInstanceDeclaration sa na ch idx nm deps cls args . ExplicitInstance <$> desugarTypeDeclarations ds')
         <*> desugarTypeDeclarations rest
   desugarTypeDeclarations (d:rest) = (:) d <$> desugarTypeDeclarations rest
   desugarTypeDeclarations [] = return []
+
+  checkKindDeclarations :: [Declaration] -> m ()
+  checkKindDeclarations (KindDeclaration sa kindFor name' _ : d : rest) = do
+    unless (matchesDeclaration d) . throwError . errorMessage' (fst sa) $ OrphanKindDeclaration name'
+    checkKindDeclarations rest
+    where
+    matchesDeclaration :: Declaration -> Bool
+    matchesDeclaration (DataDeclaration _ Data name'' _ _) = kindFor == DataSig && name' == name''
+    matchesDeclaration (DataDeclaration _ Newtype name'' _ _) = kindFor == NewtypeSig && name' == name''
+    matchesDeclaration (TypeSynonymDeclaration _ name'' _ _) = kindFor == TypeSynonymSig && name' == name''
+    matchesDeclaration (TypeClassDeclaration _ name'' _ _ _ _) = kindFor == ClassSig && name' == coerceProperName name''
+    matchesDeclaration _ = False
+  checkKindDeclarations (KindDeclaration sa _ name' _ : _) = do
+    throwError . errorMessage' (fst sa) $ OrphanKindDeclaration name'
+  checkKindDeclarations (_ : rest) = checkKindDeclarations rest
+  checkKindDeclarations [] = return ()
+
+  checkRoleDeclarations :: Maybe Declaration -> [Declaration] -> m ()
+  checkRoleDeclarations Nothing (RoleDeclaration RoleDeclarationData{..} : _) =
+    throwError . errorMessage' (fst rdeclSourceAnn) $ OrphanRoleDeclaration rdeclIdent
+  checkRoleDeclarations (Just (RoleDeclaration (RoleDeclarationData _ name' _))) ((RoleDeclaration RoleDeclarationData{..}) : _) | name' == rdeclIdent =
+    throwError . errorMessage' (fst rdeclSourceAnn) $ DuplicateRoleDeclaration rdeclIdent
+  checkRoleDeclarations (Just d) (rd@(RoleDeclaration RoleDeclarationData{..}) : rest) = do
+    unless (matchesDeclaration d) . throwError . errorMessage' (fst rdeclSourceAnn) $ OrphanRoleDeclaration rdeclIdent
+    unless (isSupported d) . throwError . errorMessage' (fst rdeclSourceAnn) $ UnsupportedRoleDeclaration
+    checkRoleDeclarations (Just rd) rest
+    where
+    isSupported :: Declaration -> Bool
+    isSupported DataDeclaration{} = True
+    isSupported ExternDataDeclaration{} = True
+    isSupported _ = False
+    matchesDeclaration :: Declaration -> Bool
+    matchesDeclaration (DataDeclaration _ _ name' _ _) = rdeclIdent == name'
+    matchesDeclaration (ExternDataDeclaration _ name' _) = rdeclIdent == name'
+    matchesDeclaration (TypeSynonymDeclaration _ name' _ _) = rdeclIdent == name'
+    matchesDeclaration (TypeClassDeclaration _ name' _ _ _ _) = rdeclIdent == coerceProperName name'
+    matchesDeclaration _ = False
+  checkRoleDeclarations _ (d : rest) = checkRoleDeclarations (Just d) rest
+  checkRoleDeclarations _ [] = return ()
diff --git a/src/Language/PureScript/Traversals.hs b/src/Language/PureScript/Traversals.hs
--- a/src/Language/PureScript/Traversals.hs
+++ b/src/Language/PureScript/Traversals.hs
@@ -1,27 +1,23 @@
--- | Common functions for implementing generic traversals
-module Language.PureScript.Traversals where
-
-import Prelude.Compat
-
-fstM :: (Functor f) => (a -> f c) -> (a, b) -> f (c, b)
-fstM f (a, b) = flip (,) b <$> f a
-
-sndM :: (Functor f) => (b -> f c) -> (a, b) -> f (a, c)
-sndM f (a, b) = (,) a <$> f b
-
-thirdM :: (Functor f) => (c -> f d) -> (a, b, c) -> f (a, b, d)
-thirdM f (a, b, c) = (,,) a b <$> f c
-
-pairM :: (Applicative f) => (a -> f c) -> (b -> f d) -> (a, b) -> f (c, d)
-pairM f g (a, b)  = (,) <$> f a <*> g b
-
-maybeM :: (Applicative f) => (a -> f b) -> Maybe a -> f (Maybe b)
-maybeM _ Nothing = pure Nothing
-maybeM f (Just a) = Just <$> f a
-
-eitherM :: (Applicative f) => (a -> f c) -> (b -> f d) -> Either a b -> f (Either c d)
-eitherM f _ (Left a)  = Left  <$> f a
-eitherM _ g (Right b) = Right <$> g b
-
-defS :: (Monad m) => st -> val -> m (st, val)
-defS s val = return (s, val)
+-- | Common functions for implementing generic traversals
+module Language.PureScript.Traversals where
+
+import Prelude
+
+sndM :: (Functor f) => (b -> f c) -> (a, b) -> f (a, c)
+sndM f (a, b) = (a, ) <$> f b
+
+sndM' :: (Functor f) => (a -> b -> f c) -> (a, b) -> f (a, c)
+sndM' f (a, b) = (a, ) <$> f a b
+
+thirdM :: (Functor f) => (c -> f d) -> (a, b, c) -> f (a, b, d)
+thirdM f (a, b, c) = (a, b, ) <$> f c
+
+pairM :: (Applicative f) => (a -> f c) -> (b -> f d) -> (a, b) -> f (c, d)
+pairM f g (a, b)  = (,) <$> f a <*> g b
+
+eitherM :: (Applicative f) => (a -> f c) -> (b -> f d) -> Either a b -> f (Either c d)
+eitherM f _ (Left a)  = Left  <$> f a
+eitherM _ g (Right b) = Right <$> g b
+
+defS :: (Monad m) => st -> val -> m (st, val)
+defS s val = return (s, val)
diff --git a/src/Language/PureScript/TypeChecker.hs b/src/Language/PureScript/TypeChecker.hs
--- a/src/Language/PureScript/TypeChecker.hs
+++ b/src/Language/PureScript/TypeChecker.hs
@@ -1,5 +1,3 @@
-{-# LANGUAGE FlexibleInstances #-}
-
 -- |
 -- The top-level type checker, which checks all declarations in a module.
 --
@@ -9,88 +7,119 @@
   , checkNewtype
   ) where
 
-import Prelude.Compat
-import Protolude (ordNub)
+import Prelude
+import Protolude (headMay, maybeToLeft, ordNub)
 
-import Control.Arrow (second)
-import Control.Monad (when, unless, void, forM)
+import Control.Lens ((^..), _2)
+import Control.Monad (when, unless, void, forM, zipWithM_)
 import Control.Monad.Error.Class (MonadError(..))
 import Control.Monad.State.Class (MonadState(..), modify, gets)
 import Control.Monad.Supply.Class (MonadSupply)
-import Control.Monad.Writer.Class (MonadWriter(..), censor)
+import Control.Monad.Writer.Class (MonadWriter, tell)
 
 import Data.Foldable (for_, traverse_, toList)
-import Data.List (nub, nubBy, (\\), sort, group, intersect)
-import Data.Maybe
+import Data.List (nubBy, (\\), sort, group)
+import Data.Maybe (fromMaybe, listToMaybe, mapMaybe)
+import Data.Either (partitionEithers)
 import Data.Text (Text)
-import qualified Data.List.NonEmpty as NEL
-import qualified Data.Map as M
-import qualified Data.Set as S
-import qualified Data.Text as T
+import Data.List.NonEmpty qualified as NEL
+import Data.Map qualified as M
+import Data.Set qualified as S
+import Data.Text qualified as T
 
 import Language.PureScript.AST
-import Language.PureScript.Crash
-import Language.PureScript.Environment
-import Language.PureScript.Errors
-import Language.PureScript.Kinds
-import Language.PureScript.Linter
-import Language.PureScript.Names
+import Language.PureScript.AST.Declarations.ChainId (ChainId)
+import Language.PureScript.Constants.Libs qualified as Libs
+import Language.PureScript.Crash (internalError)
+import Language.PureScript.Environment (DataDeclType(..), Environment(..), FunctionalDependency, NameKind(..), NameVisibility(..), TypeClassData(..), TypeKind(..), isDictTypeName, kindArity, makeTypeClassData, nominalRolesForKind, tyFunction)
+import Language.PureScript.Errors (MultipleErrors, SimpleErrorMessage(..), addHint, errorMessage, errorMessage', positionedError, rethrow, warnAndRethrow)
+import Language.PureScript.Linter (checkExhaustiveExpr)
+import Language.PureScript.Linter.Wildcards (ignoreWildcardsUnderCompleteTypeSignatures)
+import Language.PureScript.Names (Ident, ModuleName, ProperName, ProperNameType(..), Qualified(..), QualifiedBy(..), coerceProperName, disqualify, isPlainIdent, mkQualified)
+import Language.PureScript.Roles (Role)
+import Language.PureScript.Sugar.Names.Env (Exports(..))
 import Language.PureScript.TypeChecker.Kinds as T
 import Language.PureScript.TypeChecker.Monad as T
+import Language.PureScript.TypeChecker.Roles as T
 import Language.PureScript.TypeChecker.Synonyms as T
 import Language.PureScript.TypeChecker.Types as T
-import Language.PureScript.TypeClassDictionaries
-import Language.PureScript.Types
-
-import Lens.Micro.Platform ((^..), _2, _3)
+import Language.PureScript.TypeChecker.Unify (varIfUnknown)
+import Language.PureScript.TypeClassDictionaries (NamedDict, TypeClassDictionaryInScope(..))
+import Language.PureScript.Types (Constraint(..), SourceConstraint, SourceType, Type(..), containsForAll, eqType, everythingOnTypes, overConstraintArgs, srcInstanceType, unapplyTypes)
 
 addDataType
   :: (MonadState CheckState m, MonadError MultipleErrors m, MonadWriter MultipleErrors m)
   => ModuleName
   -> DataDeclType
   -> ProperName 'TypeName
-  -> [(Text, Maybe SourceKind)]
-  -> [(ProperName 'ConstructorName, [(Ident, SourceType)])]
-  -> SourceKind
+  -> [(Text, Maybe SourceType, Role)]
+  -> [(DataConstructorDeclaration, SourceType)]
+  -> SourceType
   -> m ()
 addDataType moduleName dtype name args dctors ctorKind = do
   env <- getEnv
-  putEnv $ env { types = M.insert (Qualified (Just moduleName) name) (ctorKind, DataType args (map (second (map snd)) dctors)) (types env) }
-  for_ dctors $ \(dctor, fields) ->
+  let mapDataCtor (DataConstructorDeclaration _ ctorName vars) = (ctorName, snd <$> vars)
+      qualName = Qualified (ByModuleName moduleName) name
+      hasSig = qualName `M.member` types env
+  putEnv $ env { types = M.insert qualName (ctorKind, DataType dtype args (map (mapDataCtor . fst) dctors)) (types env) }
+  unless (hasSig || isDictTypeName name || not (containsForAll ctorKind)) $ do
+    tell . errorMessage $ MissingKindDeclaration (if dtype == Newtype then NewtypeSig else DataSig) name ctorKind
+  for_ dctors $ \(DataConstructorDeclaration _ dctor fields, polyType) ->
     warnAndRethrow (addHint (ErrorInDataConstructor dctor)) $
-      addDataConstructor moduleName dtype name (map fst args) dctor fields
+      addDataConstructor moduleName dtype name dctor fields polyType
 
 addDataConstructor
   :: (MonadState CheckState m, MonadError MultipleErrors m)
   => ModuleName
   -> DataDeclType
   -> ProperName 'TypeName
-  -> [Text]
   -> ProperName 'ConstructorName
   -> [(Ident, SourceType)]
+  -> SourceType
   -> m ()
-addDataConstructor moduleName dtype name args dctor dctorArgs = do
-  let (fields, tys) = unzip dctorArgs
+addDataConstructor moduleName dtype name dctor dctorArgs polyType = do
+  let fields = fst <$> dctorArgs
   env <- getEnv
-  traverse_ checkTypeSynonyms tys
-  let retTy = foldl srcTypeApp (srcTypeConstructor (Qualified (Just moduleName) name)) (map srcTypeVar args)
-  let dctorTy = foldr function retTy tys
-  let polyType = mkForAll (map (\i -> (NullSourceAnn, (i, Nothing))) args) dctorTy
-  putEnv $ env { dataConstructors = M.insert (Qualified (Just moduleName) dctor) (dtype, name, polyType, fields) (dataConstructors env) }
+  checkTypeSynonyms polyType
+  putEnv $ env { dataConstructors = M.insert (Qualified (ByModuleName moduleName) dctor) (dtype, name, polyType, fields) (dataConstructors env) }
 
+checkRoleDeclaration
+  :: (MonadState CheckState m, MonadError MultipleErrors m, MonadWriter MultipleErrors m)
+  => ModuleName
+  -> RoleDeclarationData
+  -> m ()
+checkRoleDeclaration moduleName (RoleDeclarationData (ss, _) name declaredRoles) = do
+  warnAndRethrow (addHint (ErrorInRoleDeclaration name) . addHint (positionedError ss)) $ do
+    env <- getEnv
+    let qualName = Qualified (ByModuleName moduleName) name
+    case M.lookup qualName (types env) of
+      Just (kind, DataType dtype args dctors) -> do
+        checkRoleDeclarationArity name declaredRoles (length args)
+        checkRoles args declaredRoles
+        let args' = zipWith (\(v, k, _) r -> (v, k, r)) args declaredRoles
+        putEnv $ env { types = M.insert qualName (kind, DataType dtype args' dctors) (types env) }
+      Just (kind, ExternData _) -> do
+        checkRoleDeclarationArity name declaredRoles (kindArity kind)
+        putEnv $ env { types = M.insert qualName (kind, ExternData declaredRoles) (types env) }
+      _ -> internalError "Unsupported role declaration"
+
 addTypeSynonym
-  :: (MonadState CheckState m, MonadError MultipleErrors m)
+  :: (MonadState CheckState m, MonadError MultipleErrors m, MonadWriter MultipleErrors m)
   => ModuleName
   -> ProperName 'TypeName
-  -> [(Text, Maybe SourceKind)]
+  -> [(Text, Maybe SourceType)]
   -> SourceType
-  -> SourceKind
+  -> SourceType
   -> m ()
 addTypeSynonym moduleName name args ty kind = do
   env <- getEnv
   checkTypeSynonyms ty
-  putEnv $ env { types = M.insert (Qualified (Just moduleName) name) (kind, TypeSynonym) (types env)
-               , typeSynonyms = M.insert (Qualified (Just moduleName) name) (args, ty) (typeSynonyms env) }
+  let qualName = Qualified (ByModuleName moduleName) name
+      hasSig = qualName `M.member` types env
+  unless (hasSig || not (containsForAll kind)) $ do
+    tell . errorMessage $ MissingKindDeclaration TypeSynonymSig name kind
+  putEnv $ env { types = M.insert qualName (kind, TypeSynonym) (types env)
+               , typeSynonyms = M.insert qualName (args, ty) (typeSynonyms env) }
 
 valueIsNotDefined
   :: (MonadState CheckState m, MonadError MultipleErrors m)
@@ -99,7 +128,7 @@
   -> m ()
 valueIsNotDefined moduleName name = do
   env <- getEnv
-  case M.lookup (Qualified (Just moduleName) name) (names env) of
+  case M.lookup (Qualified (ByModuleName moduleName) name) (names env) of
     Just _ -> throwError . errorMessage $ RedefinedIdent name
     Nothing -> return ()
 
@@ -112,55 +141,49 @@
   -> m ()
 addValue moduleName name ty nameKind = do
   env <- getEnv
-  putEnv (env { names = M.insert (Qualified (Just moduleName) name) (ty, nameKind, Defined) (names env) })
+  putEnv (env { names = M.insert (Qualified (ByModuleName moduleName) name) (ty, nameKind, Defined) (names env) })
 
 addTypeClass
   :: forall m
-   . (MonadState CheckState m, MonadError MultipleErrors m)
-  => Qualified (ProperName 'ClassName)
-  -> [(Text, Maybe SourceKind)]
+   . (MonadState CheckState m, MonadError MultipleErrors m, MonadWriter MultipleErrors m)
+  => ModuleName
+  -> Qualified (ProperName 'ClassName)
+  -> [(Text, Maybe SourceType)]
   -> [SourceConstraint]
   -> [FunctionalDependency]
   -> [Declaration]
+  -> SourceType
   -> m ()
-addTypeClass qualifiedClassName args implies dependencies ds = do
+addTypeClass _ qualifiedClassName args implies dependencies ds kind = do
   env <- getEnv
-  traverse_ (checkMemberIsUsable (typeSynonyms env)) classMembers
-  modify $ \st -> st { checkEnv = (checkEnv st) { typeClasses = M.insert qualifiedClassName newClass (typeClasses . checkEnv $ st) } }
+  newClass <- mkNewClass
+  let qualName = fmap coerceProperName qualifiedClassName
+      hasSig = qualName `M.member` types env
+  unless (hasSig || not (containsForAll kind)) $ do
+    tell . errorMessage $ MissingKindDeclaration ClassSig (disqualify qualName) kind
+  putEnv $ env { types = M.insert qualName (kind, ExternData (nominalRolesForKind kind)) (types env)
+               , typeClasses = M.insert qualifiedClassName newClass (typeClasses env) }
   where
     classMembers :: [(Ident, SourceType)]
     classMembers = map toPair ds
 
-    newClass :: TypeClassData
-    newClass = makeTypeClassData args classMembers implies dependencies
-
-    coveringSets :: [S.Set Int]
-    coveringSets = S.toList (typeClassCoveringSets newClass)
-
-    argToIndex :: Text -> Maybe Int
-    argToIndex = flip M.lookup $ M.fromList (zipWith ((,) . fst) args [0..])
+    mkNewClass :: m TypeClassData
+    mkNewClass = do
+      env <- getEnv
+      implies' <- (traverse . overConstraintArgs . traverse) replaceAllTypeSynonyms implies
+      let ctIsEmpty = null classMembers && all (typeClassIsEmpty . findSuperClass env) implies'
+      pure $ makeTypeClassData args classMembers implies' dependencies ctIsEmpty
+      where
+      findSuperClass env c = case M.lookup (constraintClass c) (typeClasses env) of
+        Just tcd -> tcd
+        Nothing -> internalError "Unknown super class in TypeClassDeclaration"
 
     toPair (TypeDeclaration (TypeDeclarationData _ ident ty)) = (ident, ty)
     toPair _ = internalError "Invalid declaration in TypeClassDeclaration"
 
-    -- Currently we are only checking usability based on the type class currently
-    -- being defined.  If the mentioned arguments don't include a covering set,
-    -- then we won't be able to find a instance.
-    checkMemberIsUsable :: T.SynonymMap -> (Ident, SourceType) -> m ()
-    checkMemberIsUsable syns (ident, memberTy) = do
-      memberTy' <- T.replaceAllTypeSynonymsM syns memberTy
-      let mentionedArgIndexes = S.fromList (mapMaybe argToIndex (freeTypeVariables memberTy'))
-      let leftovers = map (`S.difference` mentionedArgIndexes) coveringSets
-
-      unless (any null leftovers) . throwError . errorMessage $
-        let
-          solutions = map (map (fst . (args !!)) . S.toList) leftovers
-        in
-          UnusableDeclaration ident (nub solutions)
-
 addTypeClassDictionaries
   :: (MonadState CheckState m)
-  => Maybe ModuleName
+  => QualifiedBy
   -> M.Map (Qualified (ProperName 'ClassName)) (M.Map (Qualified Ident) (NEL.NonEmpty NamedDict))
   -> m ()
 addTypeClassDictionaries mn entries =
@@ -192,11 +215,11 @@
   check = \case
     TypeVar _ _ -> return ()
     TypeLevelString _ _ -> return ()
-    TypeConstructor _ ctor -> do
-      env <- getEnv
-      when (ctor `M.member` typeSynonyms env) . throwError . errorMessage $ TypeSynonymInstance
-      return ()
+    TypeLevelInt _ _ -> return ()
+    TypeConstructor _ _ -> return ()
     TypeApp _ t1 t2 -> check t1 >> check t2
+    KindApp _ t k -> check t >> check k
+    KindedType _ t _ -> check t
     REmpty _ | isFunDepDetermined -> return ()
     RCons _ _ hd tl | isFunDepDetermined -> check hd >> check tl
     ty -> throwError . errorMessage $ InvalidInstanceHead ty
@@ -219,6 +242,8 @@
 --
 --  * Type-check all values and add them to the @Environment@
 --
+--  * Infer all type roles and add them to the @Environment@
+--
 --  * Bring type class instances into scope
 --
 --  * Process module imports
@@ -227,55 +252,85 @@
   :: forall m
    . (MonadSupply m, MonadState CheckState m, MonadError MultipleErrors m, MonadWriter MultipleErrors m)
   => ModuleName
-  -> [DeclarationRef]
   -> [Declaration]
   -> m [Declaration]
-typeCheckAll moduleName _ = traverse go
+typeCheckAll moduleName = traverse go
   where
   go :: Declaration -> m Declaration
   go (DataDeclaration sa@(ss, _) dtype name args dctors) = do
     warnAndRethrow (addHint (ErrorInTypeConstructor name) . addHint (positionedError ss)) $ do
-      when (dtype == Newtype) $ checkNewtype name dctors
+      when (dtype == Newtype) $ void $ checkNewtype name dctors
       checkDuplicateTypeArguments $ map fst args
-      ctorKind <- kindsOf True moduleName name args (concatMap (fmap snd . snd) dctors)
+      (dataCtors, ctorKind) <- kindOfData moduleName (sa, name, args, dctors)
       let args' = args `withKinds` ctorKind
-      addDataType moduleName dtype name args' dctors ctorKind
+      env <- getEnv
+      dctors' <- traverse (replaceTypeSynonymsInDataConstructor . fst) dataCtors
+      let args'' = args' `withRoles` inferRoles env moduleName name args' dctors'
+      addDataType moduleName dtype name args'' dataCtors ctorKind
     return $ DataDeclaration sa dtype name args dctors
-  go (d@(DataBindingGroupDeclaration tys)) = do
+  go d@(DataBindingGroupDeclaration tys) = do
     let tysList = NEL.toList tys
         syns = mapMaybe toTypeSynonym tysList
         dataDecls = mapMaybe toDataDecl tysList
-        bindingGroupNames = ordNub ((syns^..traverse._2) ++ (dataDecls^..traverse._3))
+        roleDecls = mapMaybe toRoleDecl tysList
+        clss = mapMaybe toClassDecl tysList
+        bindingGroupNames = ordNub ((syns ^.. traverse . _2) ++ (dataDecls ^.. traverse . _2 . _2) ++ fmap coerceProperName (clss ^.. traverse . _2 . _2))
         sss = fmap declSourceSpan tys
     warnAndRethrow (addHint (ErrorInDataBindingGroup bindingGroupNames) . addHint (PositionedError sss)) $ do
-      (syn_ks, data_ks) <- kindsOfAll moduleName syns (map (\(sa, _, name, args, dctors) -> (sa, name, args, concatMap (fmap snd . snd) dctors)) dataDecls)
-      for_ (zip dataDecls data_ks) $ \((_, dtype, name, args, dctors), ctorKind) -> do
-        when (dtype == Newtype) $ checkNewtype name dctors
-        checkDuplicateTypeArguments $ map fst args
-        let args' = args `withKinds` ctorKind
-        addDataType moduleName dtype name args' dctors ctorKind
-      for_ (zip syns syn_ks) $ \((_, name, args, ty), kind) -> do
+      env <- getEnv
+      (syn_ks, data_ks, cls_ks) <- kindsOfAll moduleName syns (fmap snd dataDecls) (fmap snd clss)
+      for_ (zip syns syn_ks) $ \((_, name, args, _), (elabTy, kind)) -> do
         checkDuplicateTypeArguments $ map fst args
         let args' = args `withKinds` kind
-        addTypeSynonym moduleName name args' ty kind
+        addTypeSynonym moduleName name args' elabTy kind
+      let dataDeclsWithKinds = zipWith (\(dtype, (_, name, args, _)) (dataCtors, ctorKind) ->
+            (dtype, name, args `withKinds` ctorKind, dataCtors, ctorKind)) dataDecls data_ks
+      inferRoles' <- fmap (inferDataBindingGroupRoles env moduleName roleDecls) .
+        forM dataDeclsWithKinds $ \(_, name, args, dataCtors, _) ->
+          (name, args,) <$> traverse (replaceTypeSynonymsInDataConstructor . fst) dataCtors
+      for_ dataDeclsWithKinds $ \(dtype, name, args', dataCtors, ctorKind) -> do
+        when (dtype == Newtype) $ void $ checkNewtype name (map fst dataCtors)
+        checkDuplicateTypeArguments $ map fst args'
+        let args'' = args' `withRoles` inferRoles' name args'
+        addDataType moduleName dtype name args'' dataCtors ctorKind
+      for_ roleDecls $ checkRoleDeclaration moduleName
+      for_ (zip clss cls_ks) $ \((deps, (sa, pn, _, _, _)), (args', implies', tys', kind)) -> do
+        let qualifiedClassName = Qualified (ByModuleName moduleName) pn
+        guardWith (errorMessage (DuplicateTypeClass pn (fst sa))) $
+          not (M.member qualifiedClassName (typeClasses env))
+        addTypeClass moduleName qualifiedClassName (fmap Just <$> args') implies' deps tys' kind
     return d
     where
     toTypeSynonym (TypeSynonymDeclaration sa nm args ty) = Just (sa, nm, args, ty)
     toTypeSynonym _ = Nothing
-    toDataDecl (DataDeclaration sa dtype nm args dctors) = Just (sa, dtype, nm, args, dctors)
+    toDataDecl (DataDeclaration sa dtype nm args dctors) = Just (dtype, (sa, nm, args, dctors))
     toDataDecl _ = Nothing
+    toRoleDecl (RoleDeclaration rdd) = Just rdd
+    toRoleDecl _ = Nothing
+    toClassDecl (TypeClassDeclaration sa nm args implies deps decls) = Just (deps, (sa, nm, args, implies, decls))
+    toClassDecl _ = Nothing
   go (TypeSynonymDeclaration sa@(ss, _) name args ty) = do
     warnAndRethrow (addHint (ErrorInTypeSynonym name) . addHint (positionedError ss) ) $ do
       checkDuplicateTypeArguments $ map fst args
-      kind <- kindsOf False moduleName name args [ty]
+      (elabTy, kind) <- kindOfTypeSynonym moduleName (sa, name, args, ty)
       let args' = args `withKinds` kind
-      addTypeSynonym moduleName name args' ty kind
+      addTypeSynonym moduleName name args' elabTy kind
     return $ TypeSynonymDeclaration sa name args ty
+  go (KindDeclaration sa@(ss, _) kindFor name ty) = do
+    warnAndRethrow (addHint (ErrorInKindDeclaration name) . addHint (positionedError ss)) $ do
+      elabTy <- withFreshSubstitution $ checkKindDeclaration moduleName ty
+      env <- getEnv
+      putEnv $ env { types = M.insert (Qualified (ByModuleName moduleName) name) (elabTy, LocalTypeVariable) (types env) }
+      return $ KindDeclaration sa kindFor name elabTy
+  go d@(RoleDeclaration rdd) = do
+    checkRoleDeclaration moduleName rdd
+    return d
   go TypeDeclaration{} =
     internalError "Type declarations should have been removed before typeCheckAlld"
   go (ValueDecl sa@(ss, _) name nameKind [] [MkUnguarded val]) = do
     env <- getEnv
-    warnAndRethrow (addHint (ErrorInValueDeclaration name) . addHint (positionedError ss)) . censorLocalUnnamedWildcards val $ do
+    let declHint = if isPlainIdent name then addHint (ErrorInValueDeclaration name) else id
+    warnAndRethrow (declHint . addHint (positionedError ss)) $ do
       val' <- checkExhaustiveExpr ss env moduleName val
       valueIsNotDefined moduleName name
       typesOf NonRecursiveBindingGroup moduleName [((sa, name), val')] >>= \case
@@ -283,7 +338,6 @@
           addValue moduleName name ty nameKind
           return $ ValueDecl sa name nameKind [] [MkUnguarded val'']
         _ -> internalError "typesOf did not return a singleton"
-    where
   go ValueDeclaration{} = internalError "Binders were not desugared"
   go BoundValueDeclaration{} = internalError "BoundValueDeclaration should be desugared"
   go (BindingGroupDeclaration vals) = do
@@ -301,37 +355,42 @@
         addValue moduleName name ty nameKind
         return (sai, nameKind, val)
       return . BindingGroupDeclaration $ NEL.fromList vals''
-  go (d@(ExternDataDeclaration _ name kind)) = do
-    env <- getEnv
-    putEnv $ env { types = M.insert (Qualified (Just moduleName) name) (kind, ExternData) (types env) }
-    return d
-  go (d@(ExternKindDeclaration _ name)) = do
-    env <- getEnv
-    putEnv $ env { kinds = S.insert (Qualified (Just moduleName) name) (kinds env) }
-    return d
-  go (d@(ExternDeclaration (ss, _) name ty)) = do
+  go d@(ExternDataDeclaration (ss, _) name kind) = do
+    warnAndRethrow (addHint (ErrorInForeignImportData name) . addHint (positionedError ss)) $ do
+      elabKind <- withFreshSubstitution $ checkKindDeclaration moduleName kind
+      env <- getEnv
+      let qualName = Qualified (ByModuleName moduleName) name
+          roles = nominalRolesForKind elabKind
+      putEnv $ env { types = M.insert qualName (elabKind, ExternData roles) (types env) }
+      return d
+  go d@(ExternDeclaration (ss, _) name ty) = do
     warnAndRethrow (addHint (ErrorInForeignImport name) . addHint (positionedError ss)) $ do
       env <- getEnv
-      kind <- kindOf ty
-      guardWith (errorMessage (ExpectedType ty kind)) $ kind == kindType
-      case M.lookup (Qualified (Just moduleName) name) (names env) of
+      (elabTy, kind) <- withFreshSubstitution $ do
+        ((unks, ty'), kind) <- kindOfWithUnknowns ty
+        ty'' <- varIfUnknown unks ty'
+        pure (ty'', kind)
+      checkTypeKind elabTy kind
+      case M.lookup (Qualified (ByModuleName moduleName) name) (names env) of
         Just _ -> throwError . errorMessage $ RedefinedIdent name
-        Nothing -> putEnv (env { names = M.insert (Qualified (Just moduleName) name) (ty, External, Defined) (names env) })
+        Nothing -> putEnv (env { names = M.insert (Qualified (ByModuleName moduleName) name) (elabTy, External, Defined) (names env) })
     return d
   go d@FixityDeclaration{} = return d
   go d@ImportDeclaration{} = return d
-  go d@(TypeClassDeclaration (ss, _) pn args implies deps tys) = do
+  go d@(TypeClassDeclaration sa@(ss, _) pn args implies deps tys) = do
     warnAndRethrow (addHint (ErrorInTypeClassDeclaration pn) . addHint (positionedError ss)) $ do
       env <- getEnv
-      let qualifiedClassName = Qualified (Just moduleName) pn
+      let qualifiedClassName = Qualified (ByModuleName moduleName) pn
       guardWith (errorMessage (DuplicateTypeClass pn ss)) $
         not (M.member qualifiedClassName (typeClasses env))
-      addTypeClass qualifiedClassName args implies deps tys
+      (args', implies', tys', kind) <- kindOfClass moduleName (sa, pn, args, implies, tys)
+      addTypeClass moduleName qualifiedClassName (fmap Just <$> args') implies' deps tys' kind
       return d
-  go (d@(TypeInstanceDeclaration (ss, _) ch idx dictName deps className tys body)) =
+  go (TypeInstanceDeclaration _ _ _ _ (Left _) _ _ _ _) = internalError "typeCheckAll: type class instance generated name should have been desugared"
+  go d@(TypeInstanceDeclaration sa@(ss, _) _ ch idx (Right dictName) deps className tys body) =
     rethrow (addHint (ErrorInInstance className tys) . addHint (positionedError ss)) $ do
       env <- getEnv
-      let qualifiedDictName = Qualified (Just moduleName) dictName
+      let qualifiedDictName = Qualified (ByModuleName moduleName) dictName
       flip (traverse_ . traverse_) (typeClassDictionaries env) $ \dictionaries ->
         guardWith (errorMessage (DuplicateInstance dictName ss)) $
           not (M.member qualifiedDictName dictionaries)
@@ -339,15 +398,19 @@
         Nothing -> internalError "typeCheckAll: Encountered unknown type class in instance declaration"
         Just typeClass -> do
           checkInstanceArity dictName className typeClass tys
-          sequence_ (zipWith (checkTypeClassInstance typeClass) [0..] tys)
-          let nonOrphanModules = findNonOrphanModules className typeClass tys
-          checkOrphanInstance dictName className tys nonOrphanModules
-          let qualifiedChain = Qualified (Just moduleName) <$> ch
-          checkOverlappingInstance qualifiedChain dictName className typeClass tys nonOrphanModules
+          (deps', kinds', tys', vars) <- withFreshSubstitution $ checkInstanceDeclaration moduleName (sa, deps, className, tys)
+          tys'' <- traverse replaceAllTypeSynonyms tys'
+          zipWithM_ (checkTypeClassInstance typeClass) [0..] tys''
+          let nonOrphanModules = findNonOrphanModules className typeClass tys''
+          checkOrphanInstance dictName className tys'' nonOrphanModules
+          let chainId = Just ch
+          checkOverlappingInstance ss chainId dictName vars className typeClass tys'' nonOrphanModules
           _ <- traverseTypeInstanceBody checkInstanceMembers body
-          deps' <- (traverse . overConstraintArgs . traverse) replaceAllTypeSynonyms deps
-          let dict = TypeClassDictionaryInScope qualifiedChain idx qualifiedDictName [] className tys (Just deps')
-          addTypeClassDictionaries (Just moduleName) . M.singleton className $ M.singleton (tcdValue dict) (pure dict)
+          deps'' <- (traverse . overConstraintArgs . traverse) replaceAllTypeSynonyms deps'
+          let dict =
+                TypeClassDictionaryInScope chainId idx qualifiedDictName [] className vars kinds' tys'' (Just deps'') $
+                  if isPlainIdent dictName then Nothing else Just $ srcInstanceType ss vars className tys''
+          addTypeClassDictionaries (ByModuleName moduleName) . M.singleton className $ M.singleton (tcdValue dict) (pure dict)
           return d
 
   checkInstanceArity :: Ident -> Qualified (ProperName 'ClassName) -> TypeClassData -> [SourceType] -> m ()
@@ -379,7 +442,7 @@
     -> TypeClassData
     -> [SourceType]
     -> S.Set ModuleName
-  findNonOrphanModules (Qualified (Just mn') _) typeClass tys' = nonOrphanModules
+  findNonOrphanModules (Qualified (ByModuleName mn') _) typeClass tys' = nonOrphanModules
     where
     nonOrphanModules :: S.Set ModuleName
     nonOrphanModules = S.insert mn' nonOrphanModules'
@@ -387,9 +450,12 @@
     typeModule :: SourceType -> Maybe ModuleName
     typeModule (TypeVar _ _) = Nothing
     typeModule (TypeLevelString _ _) = Nothing
-    typeModule (TypeConstructor _ (Qualified (Just mn'') _)) = Just mn''
-    typeModule (TypeConstructor _ (Qualified Nothing _)) = internalError "Unqualified type name in findNonOrphanModules"
+    typeModule (TypeLevelInt _ _) = Nothing
+    typeModule (TypeConstructor _ (Qualified (ByModuleName mn'') _)) = Just mn''
+    typeModule (TypeConstructor _ (Qualified (BySourcePos _) _)) = internalError "Unqualified type name in findNonOrphanModules"
     typeModule (TypeApp _ t1 _) = typeModule t1
+    typeModule (KindApp _ t1 _) = typeModule t1
+    typeModule (KindedType _ t1 _) = typeModule t1
     typeModule _ = internalError "Invalid type in instance in findNonOrphanModules"
 
     modulesByTypeIndex :: M.Map Int (Maybe ModuleName)
@@ -411,31 +477,36 @@
   -- Check that the instance currently being declared doesn't overlap with any
   -- other instance in any module that this instance wouldn't be considered an
   -- orphan in.  There are overlapping instance situations that won't be caught
-  -- by this, for example when combining multiparametr type classes with
+  -- by this, for example when combining multiparameter type classes with
   -- flexible instances: the instances `Cls X y` and `Cls x Y` overlap and
   -- could live in different modules but won't be caught here.
   checkOverlappingInstance
-    :: [Qualified Ident]
+    :: SourceSpan
+    -> Maybe ChainId
     -> Ident
+    -> [(Text, SourceType)]
     -> Qualified (ProperName 'ClassName)
     -> TypeClassData
     -> [SourceType]
     -> S.Set ModuleName
     -> m ()
-  checkOverlappingInstance ch dictName className typeClass tys' nonOrphanModules = do
+  checkOverlappingInstance ss ch dictName vars className typeClass tys' nonOrphanModules = do
     for_ nonOrphanModules $ \m -> do
-      dicts <- M.toList <$> lookupTypeClassDictionariesForClass (Just m) className
+      dicts <- M.toList <$> lookupTypeClassDictionariesForClass (ByModuleName m) className
 
-      for_ dicts $ \(ident, dictNel) -> do
+      for_ dicts $ \(Qualified mn' ident, dictNel) -> do
         for_ dictNel $ \dict -> do
           -- ignore instances in the same instance chain
           if ch == tcdChain dict ||
             instancesAreApart (typeClassCoveringSets typeClass) tys' (tcdInstanceTypes dict)
           then return ()
-          else throwError . errorMessage $
-                OverlappingInstances className
-                                      tys'
-                                      [ident, Qualified (Just moduleName) dictName]
+          else do
+            let this = if isPlainIdent dictName then Right dictName else Left $ srcInstanceType ss vars className tys'
+            let that = Qualified mn' . maybeToLeft ident $ tcdDescription dict
+            throwError . errorMessage $
+              OverlappingInstances className
+                                    tys'
+                                    [that, Qualified (ByModuleName moduleName) this]
 
   instancesAreApart
     :: S.Set (S.Set Int)
@@ -468,38 +539,38 @@
     | moduleName `S.member` nonOrphanModules = return ()
     | otherwise = throwError . errorMessage $ OrphanInstance dictName className nonOrphanModules tys'
 
-  censorLocalUnnamedWildcards :: Expr -> m a -> m a
-  censorLocalUnnamedWildcards (TypedValue _ _ ty) = censor (filterErrors (not . isLocalUnnamedWildcardError ty))
-  censorLocalUnnamedWildcards _ = id
-
-  isLocalUnnamedWildcardError :: SourceType -> ErrorMessage -> Bool
-  isLocalUnnamedWildcardError ty err@(ErrorMessage _ (WildcardInferredType _ _)) =
-    let
-      ssWildcard (TypeWildcard (ss', _) Nothing) = [ss']
-      ssWildcard _ = []
-      sssWildcards = everythingOnTypes (<>) ssWildcard ty
-      sss = maybe [] NEL.toList $ errorSpan err
-    in
-      null $ intersect sss sssWildcards
-  isLocalUnnamedWildcardError _ _ = False
-
-  -- |
   -- This function adds the argument kinds for a type constructor so that they may appear in the externs file,
   -- extracted from the kind of the type constructor itself.
   --
-  withKinds :: [(Text, Maybe SourceKind)] -> SourceKind -> [(Text, Maybe SourceKind)]
-  withKinds []                  _               = []
-  withKinds (s@(_, Just _ ):ss) (FunKind _ _   k) = s : withKinds ss k
-  withKinds (  (s, Nothing):ss) (FunKind _ k1 k2) = (s, Just k1) : withKinds ss k2
-  withKinds _                   _                 = internalError "Invalid arguments to peelKinds"
+  withKinds :: [(Text, Maybe SourceType)] -> SourceType -> [(Text, Maybe SourceType)]
+  withKinds [] _ = []
+  withKinds ss (ForAll _ _ _ _ k _) = withKinds ss k
+  withKinds (s@(_, Just _):ss) (TypeApp _ (TypeApp _ tyFn _) k2) | eqType tyFn tyFunction = s : withKinds ss k2
+  withKinds ((s, Nothing):ss) (TypeApp _ (TypeApp _ tyFn k1) k2) | eqType tyFn tyFunction = (s, Just k1) : withKinds ss k2
+  withKinds _ _ = internalError "Invalid arguments to withKinds"
 
+  withRoles :: [(Text, Maybe SourceType)] -> [Role] -> [(Text, Maybe SourceType, Role)]
+  withRoles = zipWith $ \(v, k) r -> (v, k, r)
+
+  replaceTypeSynonymsInDataConstructor :: DataConstructorDeclaration -> m DataConstructorDeclaration
+  replaceTypeSynonymsInDataConstructor DataConstructorDeclaration{..} = do
+    dataCtorFields' <- traverse (traverse replaceAllTypeSynonyms) dataCtorFields
+    return DataConstructorDeclaration
+      { dataCtorFields = dataCtorFields'
+      , ..
+      }
+
+-- | Check that a newtype has just one data constructor with just one field, or
+-- throw an error. If the newtype is valid, this function returns the single
+-- data constructor declaration and the single field, as a 'proof' that the
+-- newtype was indeed a valid newtype.
 checkNewtype
   :: forall m
    . MonadError MultipleErrors m
   => ProperName 'TypeName
-  -> [(ProperName 'ConstructorName, [(Ident, SourceType)])]
-  -> m ()
-checkNewtype _ [(_, [_])] = return ()
+  -> [DataConstructorDeclaration]
+  -> m (DataConstructorDeclaration, (Ident, SourceType))
+checkNewtype _ [decl@(DataConstructorDeclaration _ _ [field])] = return (decl, field)
 checkNewtype name _ = throwError . errorMessage $ InvalidNewtype name
 
 -- |
@@ -509,30 +580,58 @@
 typeCheckModule
   :: forall m
    . (MonadSupply m, MonadState CheckState m, MonadError MultipleErrors m, MonadWriter MultipleErrors m)
-  => Module
+  => M.Map ModuleName Exports
+  -> Module
   -> m Module
-typeCheckModule (Module _ _ _ _ Nothing) =
+typeCheckModule _ (Module _ _ _ _ Nothing) =
   internalError "exports should have been elaborated before typeCheckModule"
-typeCheckModule (Module ss coms mn decls (Just exps)) =
+typeCheckModule modulesExports (Module ss coms mn decls (Just exps)) =
   warnAndRethrow (addHint (ErrorInModule mn)) $ do
-    modify (\s -> s { checkCurrentModule = Just mn })
-    decls' <- typeCheckAll mn exps decls
+    let (decls', imports) = partitionEithers $ fromImportDecl <$> decls
+    modify (\s -> s { checkCurrentModule = Just mn, checkCurrentModuleImports = imports })
+    decls'' <- typeCheckAll mn $ ignoreWildcardsUnderCompleteTypeSignatures <$> decls'
     checkSuperClassesAreExported <- getSuperClassExportCheck
     for_ exps $ \e -> do
       checkTypesAreExported e
       checkClassMembersAreExported e
       checkClassesAreExported e
       checkSuperClassesAreExported e
-    return $ Module ss coms mn decls' (Just exps)
+      checkDataConstructorsAreExported e
+    return $ Module ss coms mn (map toImportDecl imports ++ decls'') (Just exps)
   where
+
+  fromImportDecl
+    :: Declaration
+    -> Either Declaration
+              ( SourceAnn
+              , ModuleName
+              , ImportDeclarationType
+              , Maybe ModuleName
+              , M.Map (ProperName 'TypeName) ([ProperName 'ConstructorName], ExportSource)
+              )
+  fromImportDecl (ImportDeclaration sa moduleName importDeclarationType asModuleName) =
+    Right (sa, moduleName, importDeclarationType, asModuleName, foldMap exportedTypes $ M.lookup moduleName modulesExports)
+  fromImportDecl decl = Left decl
+
+  toImportDecl
+    :: ( SourceAnn
+       , ModuleName
+       , ImportDeclarationType
+       , Maybe ModuleName
+       , M.Map (ProperName 'TypeName) ([ProperName 'ConstructorName], ExportSource)
+       )
+    -> Declaration
+  toImportDecl (sa, moduleName, importDeclarationType, asModuleName, _) =
+    ImportDeclaration sa moduleName importDeclarationType asModuleName
+
   qualify' :: a -> Qualified a
-  qualify' = Qualified (Just mn)
+  qualify' = Qualified (ByModuleName mn)
 
   getSuperClassExportCheck = do
     classesToSuperClasses <- gets
       ( M.map
         ( S.fromList
-        . filter (\(Qualified mn' _) -> mn' == Just mn)
+        . filter (\(Qualified mn' _) -> mn' == ByModuleName mn)
         . fmap constraintClass
         . typeClassSuperclasses
         )
@@ -556,7 +655,7 @@
 
     pure $ checkSuperClassExport superClassesFor transitiveSuperClassesFor
   moduleClassExports :: S.Set (Qualified (ProperName 'ClassName))
-  moduleClassExports = S.fromList $ mapMaybe (\x -> case x of
+  moduleClassExports = S.fromList $ mapMaybe (\case
      TypeClassRef _ name -> Just (qualify' name)
      _ -> Nothing) exps
 
@@ -567,10 +666,11 @@
   checkMemberExport extract dr@(TypeRef _ name dctors) = do
     env <- getEnv
     for_ (M.lookup (qualify' name) (types env)) $ \(k, _) -> do
-      let findModuleKinds = everythingOnKinds (++) $ \case
-            NamedKind _ (Qualified (Just mn') kindName) | mn' == mn -> [kindName]
-            _ -> []
-      checkExport dr $ KindRef (declRefSourceSpan dr) <$> findModuleKinds k
+      -- TODO: remove?
+      -- let findModuleKinds = everythingOnTypes (++) $ \case
+      --       TypeConstructor _ (Qualified (ByModuleName mn') kindName) | mn' == mn -> [kindName]
+      --       _ -> []
+      checkExport dr (extract k)
     for_ (M.lookup (qualify' name) (typeSynonyms env)) $ \(_, ty) ->
       checkExport dr (extract ty)
     for_ dctors $ \dctors' ->
@@ -610,7 +710,6 @@
     where
     exported e = any (exports e) exps
     exports (TypeRef _ pn1 _) (TypeRef _ pn2 _) = pn1 == pn2
-    exports (KindRef _ pn1) (KindRef _ pn2) = pn1 == pn2
     exports (ValueRef _ id1) (ValueRef _ id2) = id1 == id2
     exports (TypeClassRef _ pn1) (TypeClassRef _ pn2) = pn1 == pn2
     exports _ _ = False
@@ -628,7 +727,7 @@
     findTcons :: SourceType -> [DeclarationRef]
     findTcons = everythingOnTypes (++) go
       where
-      go (TypeConstructor _ (Qualified (Just mn') name)) | mn' == mn =
+      go (TypeConstructor _ (Qualified (ByModuleName mn') name)) | mn' == mn =
         [TypeRef (declRefSourceSpan ref) name (internalError "Data constructors unused in checkTypesAreExported")]
       go _ = []
 
@@ -643,7 +742,7 @@
       go (ConstrainedType _ c _) = (fmap (TypeClassRef (declRefSourceSpan ref)) . extractCurrentModuleClass . constraintClass) c
       go _ = []
     extractCurrentModuleClass :: Qualified (ProperName 'ClassName) -> [ProperName 'ClassName]
-    extractCurrentModuleClass (Qualified (Just mn') name) | mn == mn' = [name]
+    extractCurrentModuleClass (Qualified (ByModuleName mn') name) | mn == mn' = [name]
     extractCurrentModuleClass _ = []
 
   checkClassMembersAreExported :: DeclarationRef -> m ()
@@ -654,8 +753,41 @@
     where
     findClassMembers :: Declaration -> Maybe [Ident]
     findClassMembers (TypeClassDeclaration _ name' _ _ _ ds) | name == name' = Just $ map extractMemberName ds
+    findClassMembers (DataBindingGroupDeclaration decls') = headMay . mapMaybe findClassMembers $ NEL.toList decls'
     findClassMembers _ = Nothing
     extractMemberName :: Declaration -> Ident
     extractMemberName (TypeDeclaration td) = tydeclIdent td
     extractMemberName _ = internalError "Unexpected declaration in typeclass member list"
   checkClassMembersAreExported _ = return ()
+
+  -- If a type is exported without data constructors, we warn on `Generic` or `Newtype` instances.
+  -- On the other hand if any data constructors are exported, we require all of them to be exported.
+  checkDataConstructorsAreExported :: DeclarationRef -> m ()
+  checkDataConstructorsAreExported dr@(TypeRef ss' name (fromMaybe [] -> exportedDataConstructorsNames))
+    | null exportedDataConstructorsNames = for_
+      [ Libs.Generic
+      , Libs.Newtype
+      ] $ \className -> do
+        env <- getEnv
+        let dicts = foldMap (foldMap NEL.toList) $
+              M.lookup (ByModuleName mn) (typeClassDictionaries env) >>= M.lookup className
+        when (any isDictOfTypeRef dicts) $
+          tell . errorMessage' ss' $ HiddenConstructors dr className
+    | otherwise = do
+      env <- getEnv
+      let dataConstructorNames = fromMaybe [] $
+            M.lookup (mkQualified name mn) (types env) >>= getDataConstructorNames . snd
+          missingDataConstructorsNames = dataConstructorNames \\ exportedDataConstructorsNames
+      unless (null missingDataConstructorsNames) $
+        throwError . errorMessage' ss' $ TransitiveDctorExportError dr missingDataConstructorsNames
+      where
+      isDictOfTypeRef :: TypeClassDictionaryInScope a -> Bool
+      isDictOfTypeRef dict
+        | (TypeConstructor _ qualTyName, _, _) : _ <- unapplyTypes <$> tcdInstanceTypes dict
+        , qualTyName == Qualified (ByModuleName mn) name
+        = True
+      isDictOfTypeRef _ = False
+      getDataConstructorNames :: TypeKind -> Maybe [ProperName 'ConstructorName]
+      getDataConstructorNames (DataType _ _ constructors) = Just $ fst <$> constructors
+      getDataConstructorNames _ = Nothing
+  checkDataConstructorsAreExported _ = return ()
diff --git a/src/Language/PureScript/TypeChecker/Deriving.hs b/src/Language/PureScript/TypeChecker/Deriving.hs
new file mode 100644
--- /dev/null
+++ b/src/Language/PureScript/TypeChecker/Deriving.hs
@@ -0,0 +1,836 @@
+{- HLINT ignore "Unused LANGUAGE pragma" -} -- HLint doesn't recognize that TypeApplications is used in a pattern
+{-# LANGUAGE GADTs #-}
+{-# LANGUAGE TypeApplications #-}
+module Language.PureScript.TypeChecker.Deriving (deriveInstance) where
+
+import Protolude hiding (Type)
+
+import Control.Lens (both, over)
+import Control.Monad.Error.Class (liftEither)
+import Control.Monad.Trans.Writer (Writer, WriterT, runWriter, runWriterT)
+import Control.Monad.Writer.Class (MonadWriter(..))
+import Data.Align (align, unalign)
+import Data.Foldable (foldl1, foldr1)
+import Data.List (init, last, zipWith3, (!!))
+import Data.Map qualified as M
+import Data.These (These(..), mergeTheseWith, these)
+
+import Control.Monad.Supply.Class (MonadSupply)
+import Language.PureScript.AST (Binder(..), CaseAlternative(..), ErrorMessageHint(..), Expr(..), InstanceDerivationStrategy(..), Literal(..), SourceSpan, nullSourceSpan)
+import Language.PureScript.AST.Utils (UnwrappedTypeConstructor(..), lam, lamCase, lamCase2, mkBinder, mkCtor, mkCtorBinder, mkLit, mkRef, mkVar, unguarded, unwrapTypeConstructor, utcQTyCon)
+import Language.PureScript.Constants.Libs qualified as Libs
+import Language.PureScript.Constants.Prim qualified as Prim
+import Language.PureScript.Crash (internalError)
+import Language.PureScript.Environment (DataDeclType(..), Environment(..), FunctionalDependency(..), TypeClassData(..), TypeKind(..), kindType, (-:>))
+import Language.PureScript.Errors (MultipleErrors, SimpleErrorMessage(..), addHint, errorMessage, internalCompilerError)
+import Language.PureScript.Label (Label(..))
+import Language.PureScript.Names (pattern ByNullSourcePos, Ident(..), ModuleName(..), Name(..), ProperName(..), ProperNameType(..), Qualified(..), QualifiedBy(..), coerceProperName, freshIdent, qualify)
+import Language.PureScript.PSString (PSString, mkString)
+import Language.PureScript.Sugar.TypeClasses (superClassDictionaryNames)
+import Language.PureScript.TypeChecker.Entailment (InstanceContext, findDicts)
+import Language.PureScript.TypeChecker.Monad (CheckState, getEnv, getTypeClassDictionaries, unsafeCheckCurrentModule)
+import Language.PureScript.TypeChecker.Synonyms (replaceAllTypeSynonyms)
+import Language.PureScript.TypeClassDictionaries (TypeClassDictionaryInScope(..))
+import Language.PureScript.Types (Constraint(..), pattern REmptyKinded, SourceType, Type(..), completeBinderList, eqType, everythingOnTypes, replaceAllTypeVars, srcTypeVar, usedTypeVariables)
+
+-- | Extract the name of the newtype appearing in the last type argument of
+-- a derived newtype instance.
+--
+-- Note: since newtypes in newtype instances can only be applied to type arguments
+-- (no flexible instances allowed), we don't need to bother with unification when
+-- looking for matching superclass instances, which saves us a lot of work. Instead,
+-- we just match the newtype name.
+extractNewtypeName :: ModuleName -> [SourceType] -> Maybe (ModuleName, ProperName 'TypeName)
+extractNewtypeName mn
+  = fmap (qualify mn . utcQTyCon)
+  . (unwrapTypeConstructor <=< lastMay)
+
+deriveInstance
+  :: forall m
+   . MonadError MultipleErrors m
+  => MonadState CheckState m
+  => MonadSupply m
+  => MonadWriter MultipleErrors m
+  => SourceType
+  -> Qualified (ProperName 'ClassName)
+  -> InstanceDerivationStrategy
+  -> m Expr
+deriveInstance instType className strategy = do
+  mn <- unsafeCheckCurrentModule
+  env <- getEnv
+  instUtc@UnwrappedTypeConstructor{ utcArgs = tys } <- maybe (internalCompilerError "invalid instance type") pure $ unwrapTypeConstructor instType
+  let ctorName = coerceProperName <$> utcQTyCon instUtc
+
+  TypeClassData{..} <-
+    note (errorMessage . UnknownName $ fmap TyClassName className) $
+      className `M.lookup` typeClasses env
+
+  case strategy of
+    KnownClassStrategy -> let
+      unaryClass :: (UnwrappedTypeConstructor -> m [(PSString, Expr)]) -> m Expr
+      unaryClass f = case tys of
+        [ty] -> case unwrapTypeConstructor ty of
+          Just utc | mn == utcModuleName utc -> do
+            let superclassesDicts = flip map typeClassSuperclasses $ \(Constraint _ superclass _ suTyArgs _) ->
+                  let tyArgs = map (replaceAllTypeVars (zip (map fst typeClassArguments) tys)) suTyArgs
+                  in lam UnusedIdent (DeferredDictionary superclass tyArgs)
+            let superclasses = map mkString (superClassDictionaryNames typeClassSuperclasses) `zip` superclassesDicts
+            App (Constructor nullSourceSpan ctorName) . mkLit . ObjectLiteral . (++ superclasses) <$> f utc
+          _ -> throwError . errorMessage $ ExpectedTypeConstructor className tys ty
+        _ -> throwError . errorMessage $ InvalidDerivedInstance className tys 1
+
+      unaryClass' f = unaryClass (f className)
+
+      in case className of
+        Libs.Bifoldable -> unaryClass' $ deriveFoldable True
+        Libs.Bifunctor -> unaryClass' $ deriveFunctor (Just False) False Libs.S_bimap
+        Libs.Bitraversable -> unaryClass' $ deriveTraversable True
+        Libs.Contravariant -> unaryClass' $ deriveFunctor Nothing True Libs.S_cmap
+        Libs.Eq -> unaryClass deriveEq
+        Libs.Eq1 -> unaryClass $ const deriveEq1
+        Libs.Foldable -> unaryClass' $ deriveFoldable False
+        Libs.Functor -> unaryClass' $ deriveFunctor Nothing False Libs.S_map
+        Libs.Ord -> unaryClass deriveOrd
+        Libs.Ord1 -> unaryClass $ const deriveOrd1
+        Libs.Profunctor -> unaryClass' $ deriveFunctor (Just True) False Libs.S_dimap
+        Libs.Traversable -> unaryClass' $ deriveTraversable False
+        -- See L.P.Sugar.TypeClasses.Deriving for the classes that can be
+        -- derived prior to type checking.
+        _ -> throwError . errorMessage $ CannotDerive className tys
+
+    NewtypeStrategy ->
+      case tys of
+        _ : _ | Just utc <- unwrapTypeConstructor (last tys)
+              , mn == utcModuleName utc
+              -> deriveNewtypeInstance className tys utc
+              | otherwise -> throwError . errorMessage $ ExpectedTypeConstructor className tys (last tys)
+        _ -> throwError . errorMessage $ InvalidNewtypeInstance className tys
+
+deriveNewtypeInstance
+  :: forall m
+   . MonadError MultipleErrors m
+  => MonadState CheckState m
+  => MonadWriter MultipleErrors m
+  => Qualified (ProperName 'ClassName)
+  -> [SourceType]
+  -> UnwrappedTypeConstructor
+  -> m Expr
+deriveNewtypeInstance className tys (UnwrappedTypeConstructor mn tyConNm dkargs dargs) = do
+    verifySuperclasses
+    (dtype, tyKindNames, tyArgNames, ctors) <- lookupTypeDecl mn tyConNm
+    go dtype tyKindNames tyArgNames ctors
+  where
+    go (Just Newtype) tyKindNames tyArgNames [(_, [wrapped])] = do
+      -- The newtype might not be applied to all type arguments.
+      -- This is okay as long as the newtype wraps something which ends with
+      -- sufficiently many type applications to variables.
+      -- For example, we can derive Functor for
+      --
+      -- newtype MyArray a = MyArray (Array a)
+      --
+      -- since Array a is a type application which uses the last
+      -- type argument
+      wrapped' <- replaceAllTypeSynonyms wrapped
+      case stripRight (takeReverse (length tyArgNames - length dargs) tyArgNames) wrapped' of
+        Just wrapped'' -> do
+          let subst = zipWith (\(name, _) t -> (name, t)) tyArgNames dargs <> zip tyKindNames dkargs
+          wrapped''' <- replaceAllTypeSynonyms $ replaceAllTypeVars subst wrapped''
+          tys' <- mapM replaceAllTypeSynonyms tys
+          return (DeferredDictionary className (init tys' ++ [wrapped''']))
+        Nothing -> throwError . errorMessage $ InvalidNewtypeInstance className tys
+    go _ _ _ _ = throwError . errorMessage $ InvalidNewtypeInstance className tys
+
+    takeReverse :: Int -> [a] -> [a]
+    takeReverse n = take n . reverse
+
+    stripRight :: [(Text, Maybe kind)] -> SourceType -> Maybe SourceType
+    stripRight [] ty = Just ty
+    stripRight ((arg, _) : args) (TypeApp _ t (TypeVar _ arg'))
+      | arg == arg' = stripRight args t
+    stripRight _ _ = Nothing
+
+    verifySuperclasses :: m ()
+    verifySuperclasses = do
+      env <- getEnv
+      for_ (M.lookup className (typeClasses env)) $ \TypeClassData{ typeClassArguments = args, typeClassSuperclasses = superclasses } ->
+        for_ superclasses $ \Constraint{..} -> do
+          let constraintClass' = qualify (internalError "verifySuperclasses: unknown class module") constraintClass
+          for_ (M.lookup constraintClass (typeClasses env)) $ \TypeClassData{ typeClassDependencies = deps } ->
+            -- We need to check whether the newtype is mentioned, because of classes like MonadWriter
+            -- with its Monoid superclass constraint.
+            when (not (null args) && any ((fst (last args) `elem`) . usedTypeVariables) constraintArgs) $ do
+              -- For now, we only verify superclasses where the newtype is the only argument,
+              -- or for which all other arguments are determined by functional dependencies.
+              -- Everything else raises a UnverifiableSuperclassInstance warning.
+              -- This covers pretty much all cases we're interested in, but later we might want to do
+              -- more work to extend this to other superclass relationships.
+              let determined = map (srcTypeVar . fst . (args !!)) . ordNub . concatMap fdDetermined . filter ((== [length args - 1]) . fdDeterminers) $ deps
+              if eqType (last constraintArgs) (srcTypeVar . fst $ last args) && all (`elem` determined) (init constraintArgs)
+                then do
+                  -- Now make sure that a superclass instance was derived. Again, this is not a complete
+                  -- check, since the superclass might have multiple type arguments, so overlaps might still
+                  -- be possible, so we warn again.
+                  for_ (extractNewtypeName mn tys) $ \nm -> do
+                    unless (hasNewtypeSuperclassInstance constraintClass' nm (typeClassDictionaries env)) $
+                      tell . errorMessage $ MissingNewtypeSuperclassInstance constraintClass className tys
+                else tell . errorMessage $ UnverifiableSuperclassInstance constraintClass className tys
+
+    -- Note that this check doesn't actually verify that the superclass is
+    -- newtype-derived; see #3168. The whole verifySuperclasses feature
+    -- is pretty sketchy, and could use a thorough review and probably rewrite.
+    hasNewtypeSuperclassInstance (suModule, suClass) nt@(newtypeModule, _) dicts =
+      let su = Qualified (ByModuleName suModule) suClass
+          lookIn mn'
+            = elem nt
+            . (toList . extractNewtypeName mn' . tcdInstanceTypes
+                <=< foldMap toList . M.elems
+                <=< toList . (M.lookup su <=< M.lookup (ByModuleName mn')))
+            $ dicts
+      in lookIn suModule || lookIn newtypeModule
+
+data TypeInfo = TypeInfo
+  { tiTypeParams :: [Text]
+  , tiCtors :: [(ProperName 'ConstructorName, [SourceType])]
+  , tiArgSubst :: [(Text, SourceType)]
+  }
+
+lookupTypeInfo
+  :: forall m
+   . MonadError MultipleErrors m
+  => MonadState CheckState m
+  => UnwrappedTypeConstructor
+  -> m TypeInfo
+lookupTypeInfo UnwrappedTypeConstructor{..} = do
+  (_, kindParams, map fst -> tiTypeParams, tiCtors) <- lookupTypeDecl utcModuleName utcTyCon
+  let tiArgSubst = zip tiTypeParams utcArgs <> zip kindParams utcKindArgs
+  pure TypeInfo{..}
+
+deriveEq
+  :: forall m
+   . MonadError MultipleErrors m
+  => MonadState CheckState m
+  => MonadSupply m
+  => UnwrappedTypeConstructor
+  -> m [(PSString, Expr)]
+deriveEq utc = do
+  TypeInfo{..} <- lookupTypeInfo utc
+  eqFun <- mkEqFunction tiCtors
+  pure [(Libs.S_eq, eqFun)]
+  where
+    mkEqFunction :: [(ProperName 'ConstructorName, [SourceType])] -> m Expr
+    mkEqFunction ctors = do
+      x <- freshIdent "x"
+      y <- freshIdent "y"
+      lamCase2 x y . addCatch <$> mapM mkCtorClause ctors
+
+    preludeConj :: Expr -> Expr -> Expr
+    preludeConj = App . App (mkRef Libs.I_conj)
+
+    preludeEq :: Expr -> Expr -> Expr
+    preludeEq = App . App (mkRef Libs.I_eq)
+
+    preludeEq1 :: Expr -> Expr -> Expr
+    preludeEq1 = App . App (mkRef Libs.I_eq1)
+
+    addCatch :: [CaseAlternative] -> [CaseAlternative]
+    addCatch xs
+      | length xs /= 1 = xs ++ [catchAll]
+      | otherwise = xs -- Avoid redundant case
+      where
+      catchAll = CaseAlternative [NullBinder, NullBinder] (unguarded (mkLit (BooleanLiteral False)))
+
+    mkCtorClause :: (ProperName 'ConstructorName, [SourceType]) -> m CaseAlternative
+    mkCtorClause (ctorName, tys) = do
+      identsL <- replicateM (length tys) (freshIdent "l")
+      identsR <- replicateM (length tys) (freshIdent "r")
+      tys' <- mapM replaceAllTypeSynonyms tys
+      let tests = zipWith3 toEqTest (map mkVar identsL) (map mkVar identsR) tys'
+      return $ CaseAlternative [caseBinder identsL, caseBinder identsR] (unguarded (conjAll tests))
+      where
+      caseBinder idents = mkCtorBinder (utcModuleName utc) ctorName $ map mkBinder idents
+
+    conjAll :: [Expr] -> Expr
+    conjAll = \case
+      [] -> mkLit (BooleanLiteral True)
+      xs -> foldl1 preludeConj xs
+
+    toEqTest :: Expr -> Expr -> SourceType -> Expr
+    toEqTest l r ty
+      | Just fields <- decomposeRec <=< objectType $ ty
+        = conjAll
+        . map (\(Label str, typ) -> toEqTest (Accessor str l) (Accessor str r) typ)
+        $ fields
+      | isAppliedVar ty = preludeEq1 l r
+      | otherwise = preludeEq l r
+
+deriveEq1 :: forall m. Applicative m => m [(PSString, Expr)]
+deriveEq1 = pure [(Libs.S_eq1, mkRef Libs.I_eq)]
+
+deriveOrd
+  :: forall m
+   . MonadError MultipleErrors m
+  => MonadState CheckState m
+  => MonadSupply m
+  => UnwrappedTypeConstructor
+  -> m [(PSString, Expr)]
+deriveOrd utc = do
+  TypeInfo{..} <- lookupTypeInfo utc
+  compareFun <- mkCompareFunction tiCtors
+  pure [(Libs.S_compare, compareFun)]
+  where
+    mkCompareFunction :: [(ProperName 'ConstructorName, [SourceType])] -> m Expr
+    mkCompareFunction ctors = do
+      x <- freshIdent "x"
+      y <- freshIdent "y"
+      lamCase2 x y <$> (addCatch . concat <$> mapM mkCtorClauses (splitLast ctors))
+
+    splitLast :: [a] -> [(a, Bool)]
+    splitLast [] = []
+    splitLast [x] = [(x, True)]
+    splitLast (x : xs) = (x, False) : splitLast xs
+
+    addCatch :: [CaseAlternative] -> [CaseAlternative]
+    addCatch xs
+      | null xs = [catchAll] -- No type constructors
+      | otherwise = xs
+      where
+      catchAll = CaseAlternative [NullBinder, NullBinder] (unguarded (orderingCtor "EQ"))
+
+    orderingMod :: ModuleName
+    orderingMod = ModuleName "Data.Ordering"
+
+    orderingCtor :: Text -> Expr
+    orderingCtor = mkCtor orderingMod . ProperName
+
+    orderingBinder :: Text -> Binder
+    orderingBinder name = mkCtorBinder orderingMod (ProperName name) []
+
+    ordCompare :: Expr -> Expr -> Expr
+    ordCompare = App . App (mkRef Libs.I_compare)
+
+    ordCompare1 :: Expr -> Expr -> Expr
+    ordCompare1 = App . App (mkRef Libs.I_compare1)
+
+    mkCtorClauses :: ((ProperName 'ConstructorName, [SourceType]), Bool) -> m [CaseAlternative]
+    mkCtorClauses ((ctorName, tys), isLast) = do
+      identsL <- replicateM (length tys) (freshIdent "l")
+      identsR <- replicateM (length tys) (freshIdent "r")
+      tys' <- mapM replaceAllTypeSynonyms tys
+      let tests = zipWith3 toOrdering (map mkVar identsL) (map mkVar identsR) tys'
+          extras | not isLast = [ CaseAlternative [nullCaseBinder, NullBinder] (unguarded (orderingCtor "LT"))
+                                , CaseAlternative [NullBinder, nullCaseBinder] (unguarded (orderingCtor "GT"))
+                                ]
+                 | otherwise = []
+      return $ CaseAlternative [ caseBinder identsL
+                               , caseBinder identsR
+                               ]
+                               (unguarded (appendAll tests))
+             : extras
+
+      where
+      mn = utcModuleName utc
+      caseBinder idents = mkCtorBinder mn ctorName $ map mkBinder idents
+      nullCaseBinder = mkCtorBinder mn ctorName $ replicate (length tys) NullBinder
+
+    appendAll :: [Expr] -> Expr
+    appendAll = \case
+      [] -> orderingCtor "EQ"
+      [x] -> x
+      (x : xs) -> Case [x] [ CaseAlternative [orderingBinder "LT"] (unguarded (orderingCtor "LT"))
+                           , CaseAlternative [orderingBinder "GT"] (unguarded (orderingCtor "GT"))
+                           , CaseAlternative [NullBinder] (unguarded (appendAll xs))
+                           ]
+
+    toOrdering :: Expr -> Expr -> SourceType -> Expr
+    toOrdering l r ty
+      | Just fields <- decomposeRec <=< objectType $ ty
+        = appendAll
+        . map (\(Label str, typ) -> toOrdering (Accessor str l) (Accessor str r) typ)
+        $ fields
+      | isAppliedVar ty = ordCompare1 l r
+      | otherwise = ordCompare l r
+
+deriveOrd1 :: forall m. Applicative m => m [(PSString, Expr)]
+deriveOrd1 = pure [(Libs.S_compare1, mkRef Libs.I_compare)]
+
+lookupTypeDecl
+  :: forall m
+   . MonadError MultipleErrors m
+  => MonadState CheckState m
+  => ModuleName
+  -> ProperName 'TypeName
+  -> m (Maybe DataDeclType, [Text], [(Text, Maybe SourceType)], [(ProperName 'ConstructorName, [SourceType])])
+lookupTypeDecl mn typeName = do
+  env <- getEnv
+  note (errorMessage $ CannotFindDerivingType typeName) $ do
+    (kind, DataType _ args dctors) <- Qualified (ByModuleName mn) typeName `M.lookup` types env
+    (kargs, _) <- completeBinderList kind
+    let dtype = do
+          (ctorName, _) <- headMay dctors
+          (a, _, _, _) <- Qualified (ByModuleName mn) ctorName `M.lookup` dataConstructors env
+          pure a
+    pure (dtype, fst . snd <$> kargs, map (\(v, k, _) -> (v, k)) args, dctors)
+
+isAppliedVar :: Type a -> Bool
+isAppliedVar (TypeApp _ (TypeVar _ _) _) = True
+isAppliedVar _ = False
+
+objectType :: Type a -> Maybe (Type a)
+objectType (TypeApp _ (TypeConstructor _ Prim.Record) rec) = Just rec
+objectType _ = Nothing
+
+decomposeRec :: SourceType -> Maybe [(Label, SourceType)]
+decomposeRec = fmap (sortOn fst) . go
+  where go (RCons _ str typ typs) = fmap ((str, typ) :) (go typs)
+        go (REmptyKinded _ _) = Just []
+        go _ = Nothing
+
+decomposeRec' :: SourceType -> [(Label, SourceType)]
+decomposeRec' = sortOn fst . go
+  where go (RCons _ str typ typs) = (str, typ) : go typs
+        go _ = []
+
+-- | The parameter `c` is used to allow or forbid contravariance for different
+-- type classes. When deriving a type class that is a variation on Functor, a
+-- witness for `c` will be provided; when deriving a type class that is a
+-- variation on Foldable or Traversable, `c` will be Void and the contravariant
+-- ParamUsage constructor can be skipped in pattern matching.
+data ParamUsage c
+  = IsParam
+  | IsLParam
+    -- ^ enables biparametric classes (of any variance) to be derived
+  | MentionsParam (ParamUsage c)
+    -- ^ enables monoparametric classes to be used in a derivation
+  | MentionsParamBi (These (ParamUsage c) (ParamUsage c))
+    -- ^ enables biparametric classes to be used in a derivation
+  | MentionsParamContravariantly !c (ContravariantParamUsage c)
+    -- ^ enables contravariant classes (of either parametricity) to be used in a derivation
+  | IsRecord (NonEmpty (PSString, ParamUsage c))
+
+data ContravariantParamUsage c
+  = MentionsParamContra (ParamUsage c)
+    -- ^ enables Contravariant to be used in a derivation
+  | MentionsParamPro (These (ParamUsage c) (ParamUsage c))
+    -- ^ enables Profunctor to be used in a derivation
+
+data CovariantClasses = CovariantClasses
+  { monoClass :: Qualified (ProperName 'ClassName)
+  , biClass :: Qualified (ProperName 'ClassName)
+  }
+
+data ContravariantClasses = ContravariantClasses
+  { contraClass :: Qualified (ProperName 'ClassName)
+  , proClass :: Qualified (ProperName 'ClassName)
+  }
+
+data ContravarianceSupport c = ContravarianceSupport
+  { contravarianceWitness :: c
+  , paramIsContravariant :: Bool
+  , lparamIsContravariant :: Bool
+  , contravariantClasses :: ContravariantClasses
+  }
+
+-- | Return, if possible, a These the contents of which each satisfy the
+-- predicate.
+filterThese :: forall a. (a -> Bool) -> These a a -> Maybe (These a a)
+filterThese p = uncurry align . over both (mfilter p) . unalign . Just
+
+validateParamsInTypeConstructors
+  :: forall c m
+   . MonadError MultipleErrors m
+  => MonadState CheckState m
+  => Qualified (ProperName 'ClassName)
+  -> UnwrappedTypeConstructor
+  -> Bool
+  -> CovariantClasses
+  -> Maybe (ContravarianceSupport c)
+  -> m [(ProperName 'ConstructorName, [Maybe (ParamUsage c)])]
+validateParamsInTypeConstructors derivingClass utc isBi CovariantClasses{..} contravarianceSupport = do
+  TypeInfo{..} <- lookupTypeInfo utc
+  (mbLParam, param) <- liftEither . first (errorMessage . flip KindsDoNotUnify kindType . (kindType -:>)) $
+    case (isBi, reverse tiTypeParams) of
+      (False, x : _)    -> Right (Nothing, x)
+      (False, _)        -> Left kindType
+      (True, y : x : _) -> Right (Just x, y)
+      (True, _ : _)     -> Left kindType
+      (True, _)         -> Left $ kindType -:> kindType
+  ctors <- traverse (traverse $ traverse replaceAllTypeSynonyms) tiCtors
+  tcds <- getTypeClassDictionaries
+  let (ctorUsages, problemSpans) = runWriter $ traverse (traverse . traverse $ typeToUsageOf tcds tiArgSubst (maybe That These mbLParam param) False) ctors
+  let relatedClasses = [monoClass, biClass] ++ ([contraClass, proClass] <*> (contravariantClasses <$> toList contravarianceSupport))
+  for_ (nonEmpty $ ordNub problemSpans) $ \sss ->
+    throwError . addHint (RelatedPositions sss) . errorMessage $ CannotDeriveInvalidConstructorArg derivingClass relatedClasses (isJust contravarianceSupport)
+  pure ctorUsages
+
+  where
+  typeToUsageOf :: InstanceContext -> [(Text, SourceType)] -> These Text Text -> Bool -> SourceType -> Writer [SourceSpan] (Maybe (ParamUsage c))
+  typeToUsageOf tcds subst = fix $ \go params isNegative -> let
+    goCo = go params isNegative
+    goContra = go params $ not isNegative
+
+    assertNoParamUsedIn :: SourceType -> Writer [SourceSpan] ()
+    assertNoParamUsedIn ty = void $ both (flip assertParamNotUsedIn ty) params
+
+    assertParamNotUsedIn :: Text -> SourceType -> Writer [SourceSpan] ()
+    assertParamNotUsedIn param = everythingOnTypes (*>) $ \case
+      TypeVar (ss, _) name | name == param -> tell [ss]
+      _ -> pure ()
+
+    tryBiClasses ht tyLArg tyArg
+      | hasInstance tcds ht biClass
+        = goCo tyLArg >>= preferMonoClass MentionsParamBi
+      | Just (ContravarianceSupport c _ _ ContravariantClasses{..}) <- contravarianceSupport, hasInstance tcds ht proClass
+        = goContra tyLArg >>= preferMonoClass (MentionsParamContravariantly c . MentionsParamPro)
+      | otherwise
+        = assertNoParamUsedIn tyLArg *> tryMonoClasses ht tyArg
+      where
+      preferMonoClass f lUsage =
+        (if isNothing lUsage && hasInstance tcds ht monoClass then fmap MentionsParam else fmap f . align lUsage) <$> goCo tyArg
+
+    tryMonoClasses ht tyArg
+      | hasInstance tcds ht monoClass
+        = fmap MentionsParam <$> goCo tyArg
+      | Just (ContravarianceSupport c _ _ ContravariantClasses{..}) <- contravarianceSupport, hasInstance tcds ht contraClass
+        = fmap (MentionsParamContravariantly c . MentionsParamContra) <$> goContra tyArg
+      | otherwise
+        = assertNoParamUsedIn tyArg $> Nothing
+
+    headOfTypeWithSubst :: SourceType -> Qualified (Either Text (ProperName 'TypeName))
+    headOfTypeWithSubst = headOfType . replaceAllTypeVars subst
+
+    in \case
+      ForAll _ _ name _ ty _ ->
+        fmap join . traverse (\params' -> go params' isNegative ty) $ filterThese (/= name) params
+
+      ConstrainedType _ _ ty ->
+        goCo ty
+
+      TypeApp _ (TypeConstructor _ Prim.Record) row ->
+        fmap (fmap IsRecord . nonEmpty . catMaybes) . for (decomposeRec' row) $ \(Label lbl, ty) ->
+          fmap (lbl, ) <$> goCo ty
+
+      TypeApp _ (TypeApp _ tyFn tyLArg) tyArg ->
+        assertNoParamUsedIn tyFn *> tryBiClasses (headOfTypeWithSubst tyFn) tyLArg tyArg
+
+      TypeApp _ tyFn tyArg ->
+        assertNoParamUsedIn tyFn *> tryMonoClasses (headOfTypeWithSubst tyFn) tyArg
+
+      TypeVar (ss, _) name -> mergeTheseWith (checkName lparamIsContra IsLParam) (checkName paramIsContra IsParam) (liftA2 (<|>)) params
+        where
+        checkName thisParamIsContra usage param
+          | name == param = when (thisParamIsContra /= isNegative) (tell [ss]) $> Just usage
+          | otherwise = pure Nothing
+
+      ty ->
+        assertNoParamUsedIn ty $> Nothing
+
+  paramIsContra = any paramIsContravariant contravarianceSupport
+  lparamIsContra = any lparamIsContravariant contravarianceSupport
+
+  hasInstance :: InstanceContext -> Qualified (Either Text (ProperName 'TypeName)) -> Qualified (ProperName 'ClassName) -> Bool
+  hasInstance tcds ht@(Qualified qb _) cn@(Qualified cqb _) =
+    any tcdAppliesToType $ concatMap (findDicts tcds cn) (ordNub [ByNullSourcePos, cqb, qb])
+    where
+    tcdAppliesToType tcd = case tcdInstanceTypes tcd of
+      [headOfType -> ht'] -> ht == ht'
+        -- It's possible that, if ht and ht' are Lefts, this might require
+        -- verifying that the name isn't shadowed by something in tcdForAll. I
+        -- can't devise a legal program that causes this issue, but if in the
+        -- future it seems like a good idea, it probably is.
+      _ -> False
+
+  headOfType :: SourceType -> Qualified (Either Text (ProperName 'TypeName))
+  headOfType = fix $ \go -> \case
+    TypeApp _ ty _ -> go ty
+    KindApp _ ty _ -> go ty
+    TypeVar _ nm -> Qualified ByNullSourcePos (Left nm)
+    Skolem _ nm _ _ _ -> Qualified ByNullSourcePos (Left nm)
+    TypeConstructor _ (Qualified qb nm) -> Qualified qb (Right nm)
+    ty -> internalError $ "headOfType missing a case: " <> show (void ty)
+
+usingLamIdent :: forall m. MonadSupply m => (Expr -> m Expr) -> m Expr
+usingLamIdent cb = do
+  ident <- freshIdent "v"
+  lam ident <$> cb (mkVar ident)
+
+traverseFields :: forall c f. Applicative f => (ParamUsage c -> Expr -> f Expr) -> NonEmpty (PSString, ParamUsage c) -> Expr -> f Expr
+traverseFields f fields r = fmap (ObjectUpdate r) . for (toList fields) $ \(lbl, usage) -> (lbl, ) <$> f usage (Accessor lbl r)
+
+unnestRecords :: forall c f. Applicative f => (ParamUsage c -> Expr -> f Expr) -> ParamUsage c -> Expr -> f Expr
+unnestRecords f = fix $ \go -> \case
+  IsRecord fields -> traverseFields go fields
+  usage -> f usage
+
+mkCasesForTraversal
+  :: forall c f m
+   . Applicative f -- this effect distinguishes the semantics of maps, folds, and traversals
+  => MonadSupply m
+  => ModuleName
+  -> (ParamUsage c -> Expr -> f Expr) -- how to handle constructor arguments
+  -> (f Expr -> m Expr) -- resolve the applicative effect into an expression
+  -> [(ProperName 'ConstructorName, [Maybe (ParamUsage c)])]
+  -> m Expr
+mkCasesForTraversal mn handleArg extractExpr ctors = do
+  m <- freshIdent "m"
+  fmap (lamCase m) . for ctors $ \(ctorName, ctorUsages) -> do
+    ctorArgs <- for ctorUsages $ \usage -> freshIdent "v" <&> (, usage)
+    let ctor = mkCtor mn ctorName
+    let caseBinder = mkCtorBinder mn ctorName $ map (mkBinder . fst) ctorArgs
+    fmap (CaseAlternative [caseBinder] . unguarded) . extractExpr $
+      fmap (foldl' App ctor) . for ctorArgs $ \(ident, mbUsage) -> maybe pure handleArg mbUsage $ mkVar ident
+
+data TraversalExprs = TraversalExprs
+  { recurseVar :: Expr -- a var representing map, foldMap, or traverse, for handling structured values
+  , birecurseVar :: Expr -- same, but bimap, bifoldMap, or bitraverse
+  , lrecurseExpr :: Expr -- same, but lmap or ltraverse (there is no lfoldMap, but we can use `flip bifoldMap mempty`)
+  , rrecurseExpr :: Expr -- same, but rmap or rtraverse etc., which conceptually should be the same as recurseVar but the bi classes aren't subclasses of the mono classes
+  }
+
+data ContraversalExprs = ContraversalExprs
+  { crecurseVar :: Expr
+  , direcurseVar :: Expr
+  , lcrecurseVar :: Expr
+  , rprorecurseVar :: Expr
+  }
+
+appBirecurseExprs :: TraversalExprs -> These Expr Expr -> Expr
+appBirecurseExprs TraversalExprs{..} = these (App lrecurseExpr) (App rrecurseExpr) (App . App birecurseVar)
+
+appDirecurseExprs :: ContraversalExprs -> These Expr Expr -> Expr
+appDirecurseExprs ContraversalExprs{..} = these (App lcrecurseVar) (App rprorecurseVar) (App . App direcurseVar)
+
+data TraversalOps m = forall f. Applicative f => TraversalOps
+  { visitExpr :: m Expr -> f Expr -- lift an expression into the applicative effect defining the traversal
+  , extractExpr :: f Expr -> m Expr -- resolve the applicative effect into an expression
+  }
+
+mkTraversal
+  :: forall c m
+   . MonadSupply m
+  => ModuleName
+  -> Bool
+  -> TraversalExprs
+  -> (c -> ContraversalExprs)
+  -> TraversalOps m
+  -> [(ProperName 'ConstructorName, [Maybe (ParamUsage c)])]
+  -> m Expr
+mkTraversal mn isBi te@TraversalExprs{..} getContraversalExprs (TraversalOps @_ @f visitExpr extractExpr) ctors = do
+  f <- freshIdent "f"
+  g <- if isBi then freshIdent "g" else pure f
+  let
+    handleValue :: ParamUsage c -> Expr -> f Expr
+    handleValue = unnestRecords $ \usage inputExpr -> visitExpr $ flip App inputExpr <$> mkFnExprForValue usage
+
+    mkFnExprForValue :: ParamUsage c -> m Expr
+    mkFnExprForValue = \case
+      IsParam ->
+        pure $ mkVar g
+      IsLParam ->
+        pure $ mkVar f
+      MentionsParam innerUsage ->
+        App recurseVar <$> mkFnExprForValue innerUsage
+      MentionsParamBi theseInnerUsages ->
+        appBirecurseExprs te <$> both mkFnExprForValue theseInnerUsages
+      MentionsParamContravariantly c contraUsage -> do
+        let ce@ContraversalExprs{..} = getContraversalExprs c
+        case contraUsage of
+          MentionsParamContra innerUsage ->
+            App crecurseVar <$> mkFnExprForValue innerUsage
+          MentionsParamPro theseInnerUsages ->
+            appDirecurseExprs ce <$> both mkFnExprForValue theseInnerUsages
+      IsRecord fields ->
+        usingLamIdent $ extractExpr . traverseFields handleValue fields
+
+  lam f . applyWhen isBi (lam g) <$> mkCasesForTraversal mn handleValue extractExpr ctors
+
+deriveFunctor
+  :: forall m
+   . MonadError MultipleErrors m
+  => MonadState CheckState m
+  => MonadSupply m
+  => Maybe Bool -- does left parameter exist, and is it contravariant?
+  -> Bool -- is the (right) parameter contravariant?
+  -> PSString -- name of the map function for this functor type
+  -> Qualified (ProperName 'ClassName)
+  -> UnwrappedTypeConstructor
+  -> m [(PSString, Expr)]
+deriveFunctor mbLParamIsContravariant paramIsContravariant mapName nm utc = do
+  ctors <- validateParamsInTypeConstructors nm utc isBi functorClasses $ Just $ ContravarianceSupport
+    { contravarianceWitness = ()
+    , paramIsContravariant
+    , lparamIsContravariant = or mbLParamIsContravariant
+    , contravariantClasses
+    }
+  mapFun <- mkTraversal (utcModuleName utc) isBi mapExprs (const cmapExprs) (TraversalOps identity identity) ctors
+  pure [(mapName, mapFun)]
+  where
+  isBi = isJust mbLParamIsContravariant
+  mapExprs = TraversalExprs
+    { recurseVar = mkRef Libs.I_map
+    , birecurseVar = mkRef Libs.I_bimap
+    , lrecurseExpr = mkRef Libs.I_lmap
+    , rrecurseExpr = mkRef Libs.I_rmap
+    }
+  cmapExprs = ContraversalExprs
+    { crecurseVar = mkRef Libs.I_cmap
+    , direcurseVar = mkRef Libs.I_dimap
+    , lcrecurseVar = mkRef Libs.I_lcmap
+    , rprorecurseVar = mkRef Libs.I_profunctorRmap
+    }
+  functorClasses = CovariantClasses Libs.Functor Libs.Bifunctor
+  contravariantClasses = ContravariantClasses Libs.Contravariant Libs.Profunctor
+
+toConst :: forall f a b. f a -> Const [f a] b
+toConst = Const . pure
+
+consumeConst :: forall f a b c. Applicative f => ([a] -> b) -> Const [f a] c -> f b
+consumeConst f = fmap f . sequenceA . getConst
+
+applyWhen :: forall a. Bool -> (a -> a) -> a -> a
+applyWhen cond f = if cond then f else identity
+
+deriveFoldable
+  :: forall m
+   . MonadError MultipleErrors m
+  => MonadState CheckState m
+  => MonadSupply m
+  => Bool -- is there a left parameter (are we deriving Bifoldable)?
+  -> Qualified (ProperName 'ClassName)
+  -> UnwrappedTypeConstructor
+  -> m [(PSString, Expr)]
+deriveFoldable isBi nm utc = do
+  ctors <- validateParamsInTypeConstructors nm utc isBi foldableClasses Nothing
+  foldlFun <- mkAsymmetricFoldFunction False foldlExprs ctors
+  foldrFun <- mkAsymmetricFoldFunction True foldrExprs ctors
+  foldMapFun <- mkTraversal mn isBi foldMapExprs absurd foldMapOps ctors
+  pure
+    [ (if isBi then Libs.S_bifoldl else Libs.S_foldl, foldlFun)
+    , (if isBi then Libs.S_bifoldr else Libs.S_foldr, foldrFun)
+    , (if isBi then Libs.S_bifoldMap else Libs.S_foldMap, foldMapFun)
+    ]
+  where
+  mn = utcModuleName utc
+  foldableClasses = CovariantClasses Libs.Foldable Libs.Bifoldable
+  foldlExprs = TraversalExprs
+    { recurseVar = mkRef Libs.I_foldl
+    , birecurseVar = bifoldlVar
+    , lrecurseExpr = App (App flipVar bifoldlVar) constVar
+    , rrecurseExpr = App bifoldlVar constVar
+    }
+  foldrExprs = TraversalExprs
+    { recurseVar = mkRef Libs.I_foldr
+    , birecurseVar = bifoldrVar
+    , lrecurseExpr = App (App flipVar bifoldrVar) (App constVar identityVar)
+    , rrecurseExpr = App bifoldrVar (App constVar identityVar)
+    }
+  foldMapExprs = TraversalExprs
+    { recurseVar = mkRef Libs.I_foldMap
+    , birecurseVar = bifoldMapVar
+    , lrecurseExpr = App (App flipVar bifoldMapVar) memptyVar
+    , rrecurseExpr = App bifoldMapVar memptyVar
+    }
+  bifoldlVar = mkRef Libs.I_bifoldl
+  bifoldrVar = mkRef Libs.I_bifoldr
+  bifoldMapVar = mkRef Libs.I_bifoldMap
+  constVar = mkRef Libs.I_const
+  flipVar = mkRef Libs.I_flip
+  identityVar = mkRef Libs.I_identity
+  memptyVar = mkRef Libs.I_mempty
+
+  mkAsymmetricFoldFunction :: Bool -> TraversalExprs -> [(ProperName 'ConstructorName, [Maybe (ParamUsage Void)])] -> m Expr
+  mkAsymmetricFoldFunction isRightFold te@TraversalExprs{..} ctors = do
+    f <- freshIdent "f"
+    g <- if isBi then freshIdent "g" else pure f
+    z <- freshIdent "z"
+    let
+      appCombiner :: (Bool, Expr) -> Expr -> Expr -> Expr
+      appCombiner (isFlipped, fn) = applyWhen (isFlipped == isRightFold) flip $ App . App fn
+
+      mkCombinerExpr :: ParamUsage Void -> m Expr
+      mkCombinerExpr = fmap (uncurry $ \isFlipped -> applyWhen isFlipped $ App flipVar) . getCombiner
+
+      handleValue :: ParamUsage Void -> Expr -> Const [m (Expr -> Expr)] Expr
+      handleValue = unnestRecords $ \usage inputExpr -> toConst $ flip appCombiner inputExpr <$> getCombiner usage
+
+      getCombiner :: ParamUsage Void -> m (Bool, Expr)
+      getCombiner = \case
+        IsParam ->
+          pure (False, mkVar g)
+        IsLParam ->
+          pure (False, mkVar f)
+        MentionsParam innerUsage ->
+          (isRightFold, ) . App recurseVar <$> mkCombinerExpr innerUsage
+        MentionsParamBi theseInnerUsages ->
+          (isRightFold, ) . appBirecurseExprs te <$> both mkCombinerExpr theseInnerUsages
+        IsRecord fields -> do
+          let foldFieldsOf = traverseFields handleValue fields
+          fmap (False, ) . usingLamIdent $ \lVar ->
+            usingLamIdent $
+              if isRightFold
+              then flip extractExprStartingWith $ foldFieldsOf lVar
+              else extractExprStartingWith lVar . foldFieldsOf
+
+      extractExprStartingWith :: Expr -> Const [m (Expr -> Expr)] Expr -> m Expr
+      extractExprStartingWith = consumeConst . if isRightFold then foldr ($) else foldl' (&)
+
+    lam f . applyWhen isBi (lam g) . lam z <$> mkCasesForTraversal mn handleValue (extractExprStartingWith $ mkVar z) ctors
+
+foldMapOps :: forall m. Applicative m => TraversalOps m
+foldMapOps = TraversalOps { visitExpr = toConst, .. }
+  where
+  appendVar = mkRef Libs.I_append
+  memptyVar = mkRef Libs.I_mempty
+
+  extractExpr :: Const [m Expr] Expr -> m Expr
+  extractExpr = consumeConst $ \case
+    [] -> memptyVar
+    exprs -> foldr1 (App . App appendVar) exprs
+
+deriveTraversable
+  :: forall m
+   . MonadError MultipleErrors m
+  => MonadState CheckState m
+  => MonadSupply m
+  => Bool -- is there a left parameter (are we deriving Bitraversable)?
+  -> Qualified (ProperName 'ClassName)
+  -> UnwrappedTypeConstructor
+  -> m [(PSString, Expr)]
+deriveTraversable isBi nm utc = do
+  ctors <- validateParamsInTypeConstructors nm utc isBi traversableClasses Nothing
+  traverseFun <- mkTraversal (utcModuleName utc) isBi traverseExprs absurd traverseOps ctors
+  sequenceFun <- usingLamIdent $ pure . App (App (if isBi then App bitraverseVar identityVar else traverseVar) identityVar)
+  pure
+    [ (if isBi then Libs.S_bitraverse else Libs.S_traverse, traverseFun)
+    , (if isBi then Libs.S_bisequence else Libs.S_sequence, sequenceFun)
+    ]
+  where
+  traversableClasses = CovariantClasses Libs.Traversable Libs.Bitraversable
+  traverseExprs = TraversalExprs
+    { recurseVar = traverseVar
+    , birecurseVar = bitraverseVar
+    , lrecurseExpr = mkRef Libs.I_ltraverse
+    , rrecurseExpr = mkRef Libs.I_rtraverse
+    }
+  traverseVar = mkRef Libs.I_traverse
+  bitraverseVar = mkRef Libs.I_bitraverse
+  identityVar = mkRef Libs.I_identity
+
+traverseOps :: forall m. MonadSupply m => TraversalOps m
+traverseOps = TraversalOps { .. }
+  where
+  pureVar = mkRef Libs.I_pure
+  mapVar = mkRef Libs.I_map
+  applyVar = mkRef Libs.I_apply
+
+  visitExpr :: m Expr -> WriterT [(Ident, m Expr)] m Expr
+  visitExpr traversedExpr = do
+    ident <- freshIdent "v"
+    tell [(ident, traversedExpr)] $> mkVar ident
+
+  extractExpr :: WriterT [(Ident, m Expr)] m Expr -> m Expr
+  extractExpr = runWriterT >=> \(result, unzip -> (ctx, args)) -> flip mkApps (foldr lam result ctx) <$> sequenceA args
+
+  mkApps :: [Expr] -> Expr -> Expr
+  mkApps = \case
+    [] -> App pureVar
+    h : t -> \l -> foldl' (App . App applyVar) (App (App mapVar l) h) t
diff --git a/src/Language/PureScript/TypeChecker/Entailment.hs b/src/Language/PureScript/TypeChecker/Entailment.hs
--- a/src/Language/PureScript/TypeChecker/Entailment.hs
+++ b/src/Language/PureScript/TypeChecker/Entailment.hs
@@ -1,5 +1,3 @@
-{-# LANGUAGE NamedFieldPuns #-}
-
 -- |
 -- Type class entailment
 --
@@ -9,41 +7,50 @@
   , replaceTypeClassDictionaries
   , newDictionaries
   , entails
+  , findDicts
   ) where
 
-import Prelude.Compat
-import Protolude (ordNub)
+import Prelude
+import Protolude (ordNub, headMay)
 
 import Control.Arrow (second, (&&&))
 import Control.Monad.Error.Class (MonadError(..))
-import Control.Monad.State
+import Control.Monad.State (MonadState(..), MonadTrans(..), StateT(..), evalStateT, execStateT, foldM, gets, guard, join, modify, zipWithM, zipWithM_, (<=<))
 import Control.Monad.Supply.Class (MonadSupply(..))
-import Control.Monad.Writer
+import Control.Monad.Writer (Any(..), MonadWriter(..), WriterT(..))
 
+import Data.Either (lefts, partitionEithers)
 import Data.Foldable (for_, fold, toList)
 import Data.Function (on)
-import Data.Functor (($>))
-import Data.List (minimumBy, groupBy, nubBy, sortBy)
-import Data.Maybe (fromMaybe, mapMaybe)
-import qualified Data.Map as M
-import qualified Data.Set as S
+import Data.Functor (($>), (<&>))
+import Data.List (delete, findIndices, minimumBy, nubBy, sortOn, tails)
+import Data.Maybe (catMaybes, fromMaybe, listToMaybe, mapMaybe)
+import Data.Map qualified as M
+import Data.Set qualified as S
 import Data.Traversable (for)
 import Data.Text (Text, stripPrefix, stripSuffix)
-import qualified Data.Text as T
-import qualified Data.List.NonEmpty as NEL
+import Data.Text qualified as T
+import Data.List.NonEmpty (NonEmpty(..))
+import Data.List.NonEmpty qualified as NEL
 
-import Language.PureScript.AST
-import Language.PureScript.Crash
-import Language.PureScript.Environment
-import Language.PureScript.Errors
-import Language.PureScript.Names
-import Language.PureScript.TypeChecker.Monad
-import Language.PureScript.TypeChecker.Unify
-import Language.PureScript.TypeClassDictionaries
+import Language.PureScript.AST (Binder(..), ErrorMessageHint(..), Expr(..), Literal(..), pattern NullSourceSpan, everywhereOnValuesTopDownM, nullSourceSpan, everythingOnValues)
+import Language.PureScript.AST.Declarations (UnknownsHint(..))
+import Language.PureScript.Crash (internalError)
+import Language.PureScript.Environment (Environment(..), FunctionalDependency(..), TypeClassData(..), dictTypeName, kindRow, tyBoolean, tyInt, tyString)
+import Language.PureScript.Errors (MultipleErrors, SimpleErrorMessage(..), addHint, addHints, errorMessage, rethrow)
+import Language.PureScript.Names (pattern ByNullSourcePos, Ident(..), ModuleName, ProperName(..), ProperNameType(..), Qualified(..), QualifiedBy(..), byMaybeModuleName, coerceProperName, disqualify, freshIdent, getQual)
+import Language.PureScript.TypeChecker.Entailment.Coercible (GivenSolverState(..), WantedSolverState(..), initialGivenSolverState, initialWantedSolverState, insoluble, solveGivens, solveWanteds)
+import Language.PureScript.TypeChecker.Entailment.IntCompare (mkFacts, mkRelation, solveRelation)
+import Language.PureScript.TypeChecker.Kinds (elaborateKind, unifyKinds')
+import Language.PureScript.TypeChecker.Monad (CheckState(..), withErrorMessageHint)
+import Language.PureScript.TypeChecker.Synonyms (replaceAllTypeSynonyms)
+import Language.PureScript.TypeChecker.Unify (freshTypeWithKind, substituteType, unifyTypes)
+import Language.PureScript.TypeClassDictionaries (NamedDict, TypeClassDictionaryInScope(..), superclassName)
 import Language.PureScript.Types
 import Language.PureScript.Label (Label(..))
 import Language.PureScript.PSString (PSString, mkString, decodeString)
-import qualified Language.PureScript.Constants as C
+import Language.PureScript.Constants.Libs qualified as C
+import Language.PureScript.Constants.Prim qualified as C
 
 -- | Describes what sort of dictionary to generate for type class instances
 data Evidence
@@ -53,9 +60,29 @@
   -- | Computed instances
   | WarnInstance SourceType -- ^ Warn type class with a user-defined warning message
   | IsSymbolInstance PSString -- ^ The IsSymbol type class for a given Symbol literal
+  | ReflectableInstance Reflectable -- ^ The Reflectable type class for a reflectable kind
   | EmptyClassInstance        -- ^ For any solved type class with no members
   deriving (Show, Eq)
 
+-- | Describes kinds that are reflectable to the term-level
+data Reflectable
+  = ReflectableInt Integer -- ^ For type-level numbers
+  | ReflectableString PSString -- ^ For type-level strings
+  | ReflectableBoolean Bool -- ^ For type-level booleans
+  | ReflectableOrdering Ordering -- ^ For type-level orderings
+  deriving (Show, Eq)
+
+-- | Reflect a reflectable type into an expression
+asExpression :: Reflectable -> Expr
+asExpression = \case
+  ReflectableInt n -> Literal NullSourceSpan $ NumericLiteral $ Left n
+  ReflectableString s -> Literal NullSourceSpan $ StringLiteral s
+  ReflectableBoolean b -> Literal NullSourceSpan $ BooleanLiteral b
+  ReflectableOrdering o -> Constructor NullSourceSpan $ case o of
+    LT -> C.C_LT
+    EQ -> C.C_EQ
+    GT -> C.C_GT
+
 -- | Extract the identifier of a named instance
 namedInstanceIdentifier :: Evidence -> Maybe (Qualified Ident)
 namedInstanceIdentifier (NamedInstance i) = Just i
@@ -65,10 +92,13 @@
 type TypeClassDict = TypeClassDictionaryInScope Evidence
 
 -- | The 'InstanceContext' tracks those constraints which can be satisfied.
-type InstanceContext = M.Map (Maybe ModuleName)
+type InstanceContext = M.Map QualifiedBy
                          (M.Map (Qualified (ProperName 'ClassName))
-                           (M.Map (Qualified Ident) (NEL.NonEmpty NamedDict)))
+                           (M.Map (Qualified Ident) (NonEmpty NamedDict)))
 
+findDicts :: InstanceContext -> Qualified (ProperName 'ClassName) -> QualifiedBy -> [TypeClassDict]
+findDicts ctx cn = fmap (fmap NamedInstance) . foldMap NEL.toList . foldMap M.elems . (M.lookup cn <=< flip M.lookup ctx)
+
 -- | A type substitution which makes an instance head match a list of types.
 --
 -- Note: we store many types per type variable name. For any name, all types
@@ -160,72 +190,98 @@
   -- ^ Error message hints to apply to any instance errors
   -> WriterT (Any, [(Ident, InstanceContext, SourceConstraint)]) (StateT InstanceContext m) Expr
 entails SolverOptions{..} constraint context hints =
-    solve constraint
+  overConstraintArgsAll (lift . lift . traverse replaceAllTypeSynonyms) constraint >>= solve
   where
-    forClassName :: InstanceContext -> Qualified (ProperName 'ClassName) -> [SourceType] -> [TypeClassDict]
-    forClassName ctx cn@C.Warn [msg] =
+    forClassNameM :: Environment -> InstanceContext -> Qualified (ProperName 'ClassName) -> [SourceType] -> [SourceType] -> m [TypeClassDict]
+    forClassNameM env ctx cn@C.Coercible kinds args =
+      fromMaybe (forClassName env ctx cn kinds args) <$>
+        solveCoercible env ctx kinds args
+    forClassNameM env ctx cn kinds args =
+      pure $ forClassName env ctx cn kinds args
+
+    forClassName :: Environment -> InstanceContext -> Qualified (ProperName 'ClassName) -> [SourceType] -> [SourceType] -> [TypeClassDict]
+    forClassName _ ctx cn@C.Warn _ [msg] =
       -- Prefer a warning dictionary in scope if there is one available.
       -- This allows us to defer a warning by propagating the constraint.
-      findDicts ctx cn Nothing ++ [TypeClassDictionaryInScope [] 0 (WarnInstance msg) [] C.Warn [msg] Nothing]
-    forClassName _ C.IsSymbol args | Just dicts <- solveIsSymbol args = dicts
-    forClassName _ C.SymbolCompare args | Just dicts <- solveSymbolCompare args = dicts
-    forClassName _ C.SymbolAppend args | Just dicts <- solveSymbolAppend args = dicts
-    forClassName _ C.SymbolCons args | Just dicts <- solveSymbolCons args = dicts
-    forClassName _ C.RowUnion args | Just dicts <- solveUnion args = dicts
-    forClassName _ C.RowNub args | Just dicts <- solveNub args = dicts
-    forClassName _ C.RowLacks args | Just dicts <- solveLacks args = dicts
-    forClassName _ C.RowCons args | Just dicts <- solveRowCons args = dicts
-    forClassName _ C.RowToList args | Just dicts <- solveRowToList args = dicts
-    forClassName ctx cn@(Qualified (Just mn) _) tys = concatMap (findDicts ctx cn) (ordNub (Nothing : Just mn : map Just (mapMaybe ctorModules tys)))
-    forClassName _ _ _ = internalError "forClassName: expected qualified class name"
+      findDicts ctx cn ByNullSourcePos ++ [TypeClassDictionaryInScope Nothing 0 (WarnInstance msg) [] C.Warn [] [] [msg] Nothing Nothing]
+    forClassName _ _ C.IsSymbol _ args | Just dicts <- solveIsSymbol args = dicts
+    forClassName _ _ C.SymbolCompare _ args | Just dicts <- solveSymbolCompare args = dicts
+    forClassName _ _ C.SymbolAppend _ args | Just dicts <- solveSymbolAppend args = dicts
+    forClassName _ _ C.SymbolCons _ args | Just dicts <- solveSymbolCons args = dicts
+    forClassName _ _ C.IntAdd _ args | Just dicts <- solveIntAdd args = dicts
+    forClassName _ ctx C.IntCompare _ args | Just dicts <- solveIntCompare ctx args = dicts
+    forClassName _ _ C.IntMul _ args | Just dicts <- solveIntMul args = dicts
+    forClassName _ _ C.IntToString _ args | Just dicts <- solveIntToString args = dicts
+    forClassName _ _ C.Reflectable _ args | Just dicts <- solveReflectable args = dicts
+    forClassName _ _ C.RowUnion kinds args | Just dicts <- solveUnion kinds args = dicts
+    forClassName _ _ C.RowNub kinds args | Just dicts <- solveNub kinds args = dicts
+    forClassName _ _ C.RowLacks kinds args | Just dicts <- solveLacks kinds args = dicts
+    forClassName _ _ C.RowCons kinds args | Just dicts <- solveRowCons kinds args = dicts
+    forClassName _ _ C.RowToList kinds args | Just dicts <- solveRowToList kinds args = dicts
+    forClassName _ ctx cn@(Qualified (ByModuleName mn) _) _ tys = concatMap (findDicts ctx cn) (ordNub (ByNullSourcePos : ByModuleName mn : map ByModuleName (mapMaybe ctorModules tys)))
+    forClassName _ _ _ _ _ = internalError "forClassName: expected qualified class name"
 
     ctorModules :: SourceType -> Maybe ModuleName
-    ctorModules (TypeConstructor _ (Qualified (Just mn) _)) = Just mn
-    ctorModules (TypeConstructor _ (Qualified Nothing _)) = internalError "ctorModules: unqualified type name"
+    ctorModules (TypeConstructor _ (Qualified (ByModuleName mn) _)) = Just mn
+    ctorModules (TypeConstructor _ (Qualified (BySourcePos _) _)) = internalError "ctorModules: unqualified type name"
     ctorModules (TypeApp _ ty _) = ctorModules ty
+    ctorModules (KindApp _ ty _) = ctorModules ty
     ctorModules (KindedType _ ty _) = ctorModules ty
     ctorModules _ = Nothing
 
-    findDicts :: InstanceContext -> Qualified (ProperName 'ClassName) -> Maybe ModuleName -> [TypeClassDict]
-    findDicts ctx cn = fmap (fmap NamedInstance) . foldMap NEL.toList . foldMap M.elems . (>>= M.lookup cn) . flip M.lookup ctx
-
     valUndefined :: Expr
-    valUndefined = Var nullSourceSpan (Qualified (Just (ModuleName [ProperName C.prim])) (Ident C.undefined))
+    valUndefined = Var nullSourceSpan C.I_undefined
 
     solve :: SourceConstraint -> WriterT (Any, [(Ident, InstanceContext, SourceConstraint)]) (StateT InstanceContext m) Expr
-    solve con = go 0 con
+    solve = go 0 hints
       where
-        go :: Int -> SourceConstraint -> WriterT (Any, [(Ident, InstanceContext, SourceConstraint)]) (StateT InstanceContext m) Expr
-        go work (Constraint _ className' tys' _) | work > 1000 = throwError . errorMessage $ PossiblyInfiniteInstance className' tys'
-        go work con'@(Constraint _ className' tys' conInfo) = WriterT . StateT . (withErrorMessageHint (ErrorSolvingConstraint con') .) . runStateT . runWriterT $ do
+        go :: Int -> [ErrorMessageHint] -> SourceConstraint -> WriterT (Any, [(Ident, InstanceContext, SourceConstraint)]) (StateT InstanceContext m) Expr
+        go work _ (Constraint _ className' _ tys' _) | work > 1000 = throwError . errorMessage $ PossiblyInfiniteInstance className' tys'
+        go work hints' con@(Constraint _ className' kinds' tys' conInfo) = WriterT . StateT . (withErrorMessageHint (ErrorSolvingConstraint con) .) . runStateT . runWriterT $ do
             -- We might have unified types by solving other constraints, so we need to
             -- apply the latest substitution.
             latestSubst <- lift . lift $ gets checkSubstitution
-            let tys'' = map (substituteType latestSubst) tys'
+            let kinds'' = map (substituteType latestSubst) kinds'
+                tys'' = map (substituteType latestSubst) tys'
+
             -- Get the inferred constraint context so far, and merge it with the global context
             inferred <- lift get
             -- We need information about functional dependencies, so we have to look up the class
             -- name in the environment:
-            classesInScope <- lift . lift $ gets (typeClasses . checkEnv)
-            TypeClassData{ typeClassDependencies } <- case M.lookup className' classesInScope of
-              Nothing -> throwError . errorMessage $ UnknownClass className'
-              Just tcd -> pure tcd
-            let instances = do
-                  chain <- groupBy ((==) `on` tcdChain) $
-                           sortBy (compare `on` (tcdChain &&& tcdIndex)) $
-                           forClassName (combineContexts context inferred) className' tys''
+            env <- lift . lift $ gets checkEnv
+            let classesInScope = typeClasses env
+            TypeClassData
+              { typeClassArguments
+              , typeClassDependencies
+              , typeClassIsEmpty
+              , typeClassCoveringSets
+              , typeClassMembers 
+              } <- case M.lookup className' classesInScope of
+                Nothing -> throwError . errorMessage $ UnknownClass className'
+                Just tcd -> pure tcd
+
+            dicts <- lift . lift $ forClassNameM env (combineContexts context inferred) className' kinds'' tys''
+
+            let (catMaybes -> ambiguous, instances) = partitionEithers $ do
+                  chain :: NonEmpty TypeClassDict <-
+                           NEL.groupBy ((==) `on` tcdChain) $
+                           sortOn (tcdChain &&& tcdIndex)
+                           dicts
                   -- process instances in a chain in index order
-                  let found = for chain $ \tcd ->
+                  let found = for (tails1 chain) $ \(tcd :| tl) ->
                                 -- Make sure the type unifies with the type in the type instance definition
                                 case matches typeClassDependencies tcd tys'' of
-                                  Apart        -> Right ()                  -- keep searching
-                                  Match substs -> Left (Just (substs, tcd)) -- found a match
-                                  Unknown      -> Left Nothing              -- can't continue with this chain yet, need proof of apartness
-                  case found of
-                    Right _               -> []          -- all apart
-                    Left Nothing          -> []          -- last unknown
-                    Left (Just substsTcd) -> [substsTcd] -- found a match
-            solution <- lift . lift $ unique tys'' instances
+                                  Apart        -> Right ()                   -- keep searching
+                                  Match substs -> Left (Right (substs, tcd)) -- found a match
+                                  Unknown ->
+                                    if null (tcdChain tcd) || null tl
+                                    then Right ()                                   -- need proof of apartness but this is either not in a chain or at the end
+                                    else Left (Left (tcdToInstanceDescription tcd)) -- can't continue with this chain yet, need proof of apartness
+
+                  lefts [found]
+            solution <- lift . lift 
+              $ unique kinds'' tys'' ambiguous instances 
+              $ unknownsInAllCoveringSets (fst . (typeClassArguments !!)) typeClassMembers tys'' typeClassCoveringSets
             case solution of
               Solved substs tcd -> do
                 -- Note that we solved something.
@@ -244,16 +300,19 @@
                 currentSubst' <- lift . lift $ gets checkSubstitution
                 let subst'' = fmap (substituteType currentSubst') subst'
                 -- Solve any necessary subgoals
-                args <- solveSubgoals subst'' (tcdDependencies tcd)
+                args <- solveSubgoals subst'' (ErrorSolvingConstraint con) (tcdDependencies tcd)
+
                 initDict <- lift . lift $ mkDictionary (tcdValue tcd) args
+
                 let match = foldr (\(className, index) dict -> subclassDictionaryValue dict className index)
                                   initDict
                                   (tcdPath tcd)
-                return match
+
+                return (if typeClassIsEmpty then Unused match else match)
               Unsolved unsolved -> do
                 -- Generate a fresh name for the unsolved constraint's new dictionary
                 ident <- freshIdent ("dict" <> runProperName (disqualify (constraintClass unsolved)))
-                let qident = Qualified Nothing ident
+                let qident = Qualified ByNullSourcePos ident
                 -- Store the new dictionary in the InstanceContext so that we can solve this goal in
                 -- future.
                 newDicts <- lift . lift $ newDictionaries [] qident unsolved
@@ -265,11 +324,11 @@
               Deferred ->
                 -- Constraint was deferred, just return the dictionary unchanged,
                 -- with no unsolved constraints. Hopefully, we can solve this later.
-                return (TypeClassDictionary (srcConstraint className' tys'' conInfo) context hints)
+                return (TypeClassDictionary (srcConstraint className' kinds'' tys'' conInfo) context hints')
           where
-            -- | When checking functional dependencies, we need to use unification to make
+            -- When checking functional dependencies, we need to use unification to make
             -- sure it is safe to use the selected instance. We will unify the solved type with
-            -- the type in the instance head under the substition inferred from its instantiation.
+            -- the type in the instance head under the substitution inferred from its instantiation.
             -- As an example, when solving MonadState t0 (State Int), we choose the
             -- MonadState s (State s) instance, and we unify t0 with Int, since the functional
             -- dependency from MonadState dictates that t0 should unify with s\[s -> Int], which is
@@ -277,46 +336,55 @@
             -- from the type, so we end up with a unification error. So, any type arguments which
             -- appear in the instance head, but not in the substitution need to be replaced with
             -- fresh type variables. This function extends a substitution with fresh type variables
-            -- as necessary, based on the types in the instance head.
+            -- as necessary, based on the types in the instance head. It also unifies kinds based on
+            -- the substitution so kind information propagates correctly through the solver.
             withFreshTypes
               :: TypeClassDict
               -> Matching SourceType
               -> m (Matching SourceType)
-            withFreshTypes TypeClassDictionaryInScope{..} subst = do
-                let onType = everythingOnTypes S.union fromTypeVar
-                    typeVarsInHead = foldMap onType tcdInstanceTypes
-                                  <> foldMap (foldMap (foldMap onType . constraintArgs)) tcdDependencies
-                    typeVarsInSubst = S.fromList (M.keys subst)
-                    uninstantiatedTypeVars = typeVarsInHead S.\\ typeVarsInSubst
-                newSubst <- traverse withFreshType (S.toList uninstantiatedTypeVars)
-                return (subst <> M.fromList newSubst)
+            withFreshTypes TypeClassDictionaryInScope{..} initSubst = do
+                subst <- foldM withFreshType initSubst $ filter (flip M.notMember initSubst . fst) tcdForAll
+                for_ (M.toList initSubst) $ unifySubstKind subst
+                pure subst
               where
-                fromTypeVar (TypeVar _ v) = S.singleton v
-                fromTypeVar _ = S.empty
+                withFreshType subst (var, kind) = do
+                  ty <- freshTypeWithKind $ replaceAllTypeVars (M.toList subst) kind
+                  pure $ M.insert var ty subst
 
-                withFreshType s = do
-                  t <- freshType
-                  return (s, t)
+                unifySubstKind subst (var, ty) =
+                  for_ (lookup var tcdForAll) $ \instKind -> do
+                    tyKind <- elaborateKind ty
+                    currentSubst <- gets checkSubstitution
+                    unifyKinds'
+                      (substituteType currentSubst . replaceAllTypeVars (M.toList subst) $ instKind)
+                      (substituteType currentSubst tyKind)
 
-            unique :: [SourceType] -> [(a, TypeClassDict)] -> m (EntailsResult a)
-            unique tyArgs []
+            unique :: [SourceType] -> [SourceType] -> [Qualified (Either SourceType Ident)] -> [(a, TypeClassDict)] -> UnknownsHint -> m (EntailsResult a)
+            unique kindArgs tyArgs ambiguous [] unks
               | solverDeferErrors = return Deferred
               -- We need a special case for nullary type classes, since we want
               -- to generalize over Partial constraints.
-              | solverShouldGeneralize && (null tyArgs || any canBeGeneralized tyArgs) = return (Unsolved (srcConstraint className' tyArgs conInfo))
-              | otherwise = throwError . errorMessage $ NoInstanceFound (srcConstraint className' tyArgs conInfo)
-            unique _      [(a, dict)] = return $ Solved a dict
-            unique tyArgs tcds
+              | solverShouldGeneralize && ((null kindArgs && null tyArgs) || any canBeGeneralized kindArgs || any canBeGeneralized tyArgs) =
+                  return (Unsolved (srcConstraint className' kindArgs tyArgs conInfo))
+              | otherwise = throwError . errorMessage $ NoInstanceFound (srcConstraint className' kindArgs tyArgs conInfo) ambiguous unks
+            unique _ _ _ [(a, dict)] _ = return $ Solved a dict
+            unique _ tyArgs _ tcds _
               | pairwiseAny overlapping (map snd tcds) =
-                  throwError . errorMessage $ OverlappingInstances className' tyArgs (tcds >>= (toList . namedInstanceIdentifier . tcdValue . snd))
+                  throwError . errorMessage $ OverlappingInstances className' tyArgs (tcds >>= (toList . tcdToInstanceDescription . snd))
               | otherwise = return $ uncurry Solved (minimumBy (compare `on` length . tcdPath . snd) tcds)
 
+            tcdToInstanceDescription :: TypeClassDict -> Maybe (Qualified (Either SourceType Ident))
+            tcdToInstanceDescription TypeClassDictionaryInScope{ tcdDescription, tcdValue } =
+              let nii = namedInstanceIdentifier tcdValue
+              in case tcdDescription of
+                Just ty -> flip Qualified (Left ty) <$> fmap (byMaybeModuleName . getQual) nii
+                Nothing -> fmap Right <$> nii
+
             canBeGeneralized :: Type a -> Bool
             canBeGeneralized TUnknown{} = True
             canBeGeneralized (KindedType _ t _) = canBeGeneralized t
             canBeGeneralized _ = False
 
-            -- |
             -- Check if two dictionaries are overlapping
             --
             -- Dictionaries which are subclass dictionaries cannot overlap, since otherwise the overlap would have
@@ -331,15 +399,15 @@
             -- Create dictionaries for subgoals which still need to be solved by calling go recursively
             -- E.g. the goal (Show a, Show b) => Show (Either a b) can be satisfied if the current type
             -- unifies with Either a b, and we can satisfy the subgoals Show a and Show b recursively.
-            solveSubgoals :: Matching SourceType -> Maybe [SourceConstraint] -> WriterT (Any, [(Ident, InstanceContext, SourceConstraint)]) (StateT InstanceContext m) (Maybe [Expr])
-            solveSubgoals _ Nothing = return Nothing
-            solveSubgoals subst (Just subgoals) =
-              Just <$> traverse (go (work + 1) . mapConstraintArgs (map (replaceAllTypeVars (M.toList subst)))) subgoals
+            solveSubgoals :: Matching SourceType -> ErrorMessageHint -> Maybe [SourceConstraint] -> WriterT (Any, [(Ident, InstanceContext, SourceConstraint)]) (StateT InstanceContext m) (Maybe [Expr])
+            solveSubgoals _ _ Nothing = return Nothing
+            solveSubgoals subst hint (Just subgoals) =
+              Just <$> traverse (rethrow (addHint hint) . go (work + 1) (hints' <> [hint]) . mapConstraintArgsAll (map (replaceAllTypeVars (M.toList subst)))) subgoals
 
             -- We need subgoal dictionaries to appear in the term somewhere
             -- If there aren't any then the dictionary is just undefined
             useEmptyDict :: Maybe [Expr] -> Expr
-            useEmptyDict args = foldl (App . Abs (VarBinder nullSourceSpan UnusedIdent)) valUndefined (fold args)
+            useEmptyDict args = Unused (foldl (App . Abs (VarBinder nullSourceSpan UnusedIdent)) valUndefined (fold args))
 
             -- Make a dictionary from subgoal dictionaries by applying the correct function
             mkDictionary :: Evidence -> Maybe [Expr] -> m Expr
@@ -353,35 +421,98 @@
               return (useEmptyDict args)
             mkDictionary (IsSymbolInstance sym) _ =
               let fields = [ ("reflectSymbol", Abs (VarBinder nullSourceSpan UnusedIdent) (Literal nullSourceSpan (StringLiteral sym))) ] in
-              return $ TypeClassDictionaryConstructorApp C.IsSymbol (Literal nullSourceSpan (ObjectLiteral fields))
+              return $ App (Constructor nullSourceSpan (coerceProperName . dictTypeName <$> C.IsSymbol)) (Literal nullSourceSpan (ObjectLiteral fields))
+            mkDictionary (ReflectableInstance ref) _ =
+              let fields = [ ("reflectType", Abs (VarBinder nullSourceSpan UnusedIdent) (asExpression ref)) ] in
+              pure $ App (Constructor nullSourceSpan (coerceProperName . dictTypeName <$> C.Reflectable)) (Literal nullSourceSpan (ObjectLiteral fields))
 
+            unknownsInAllCoveringSets :: (Int -> Text) -> [(Ident, SourceType, Maybe (S.Set (NEL.NonEmpty Int)))] -> [SourceType] -> S.Set (S.Set Int) -> UnknownsHint
+            unknownsInAllCoveringSets indexToArgText tyClassMembers tyArgs coveringSets = do
+              let unkIndices = findIndices containsUnknowns tyArgs
+              if all (\s -> any (`S.member` s) unkIndices) coveringSets then 
+                fromMaybe Unknowns unknownsRequiringVtas
+              else 
+                NoUnknowns
+              where
+                unknownsRequiringVtas = do
+                  tyClassModuleName <- getQual className'
+                  let
+                    tyClassMemberVta :: M.Map (Qualified Ident) [[Text]]
+                    tyClassMemberVta = M.fromList $ mapMaybe qualifyAndFilter tyClassMembers
+                      where
+                        -- Only keep type class members that need VTAs to resolve their type class instances
+                        qualifyAndFilter (ident, _, mbVtaRequiredArgs) = mbVtaRequiredArgs <&> \vtaRequiredArgs ->
+                          (Qualified (ByModuleName tyClassModuleName) ident, map (map indexToArgText . NEL.toList) $ S.toList vtaRequiredArgs)
+
+                    tyClassMembersInExpr :: Expr -> [(Qualified Ident, [[Text]])]
+                    tyClassMembersInExpr = getVars
+                      where
+                        (_, getVars, _, _, _) = everythingOnValues (++) ignore getVarIdents ignore ignore ignore
+                        ignore = const []
+                        getVarIdents = \case
+                          Var _ ident | Just vtas <- M.lookup ident tyClassMemberVta -> 
+                            [(ident, vtas)]
+                          _ -> 
+                            []
+
+                    getECTExpr = \case
+                      ErrorCheckingType expr _ -> Just expr
+                      _ -> Nothing
+                      
+                  tyClassMembers' <- headMay $ mapMaybe (fmap tyClassMembersInExpr . getECTExpr) hints
+                  membersWithVtas <- NEL.nonEmpty tyClassMembers'
+                  pure $ UnknownsWithVtaRequiringArgs membersWithVtas
+
         -- Turn a DictionaryValue into a Expr
         subclassDictionaryValue :: Expr -> Qualified (ProperName 'ClassName) -> Integer -> Expr
         subclassDictionaryValue dict className index =
           App (Accessor (mkString (superclassName className index)) dict) valUndefined
 
+    solveCoercible :: Environment -> InstanceContext -> [SourceType] -> [SourceType] -> m (Maybe [TypeClassDict])
+    solveCoercible env ctx kinds [a, b] = do
+      let coercibleDictsInScope = findDicts ctx C.Coercible ByNullSourcePos
+          givens = flip mapMaybe coercibleDictsInScope $ \case
+            dict | [a', b'] <- tcdInstanceTypes dict -> Just (a', b')
+                 | otherwise -> Nothing
+      GivenSolverState{ inertGivens } <- execStateT (solveGivens env) $
+        initialGivenSolverState givens
+      (WantedSolverState{ inertWanteds }, hints') <- runWriterT . execStateT (solveWanteds env) $
+        initialWantedSolverState inertGivens a b
+      -- Solving fails when there's irreducible wanteds left.
+      --
+      -- We report the first residual constraint instead of the initial wanted,
+      -- unless we just swapped its arguments.
+      --
+      -- We may have collected hints for the solving failure along the way, in
+      -- which case we decorate the error with the first one.
+      maybe id addHint (listToMaybe hints') `rethrow` case inertWanteds of
+        [] -> pure $ Just [TypeClassDictionaryInScope Nothing 0 EmptyClassInstance [] C.Coercible [] kinds [a, b] Nothing Nothing]
+        (k, a', b') : _ | a' == b && b' == a -> throwError $ insoluble k b' a'
+        (k, a', b') : _ -> throwError $ insoluble k a' b'
+    solveCoercible _ _ _ _ = pure Nothing
+
     solveIsSymbol :: [SourceType] -> Maybe [TypeClassDict]
-    solveIsSymbol [TypeLevelString ann sym] = Just [TypeClassDictionaryInScope [] 0 (IsSymbolInstance sym) [] C.IsSymbol [TypeLevelString ann sym] Nothing]
+    solveIsSymbol [TypeLevelString ann sym] = Just [TypeClassDictionaryInScope Nothing 0 (IsSymbolInstance sym) [] C.IsSymbol [] [] [TypeLevelString ann sym] Nothing Nothing]
     solveIsSymbol _ = Nothing
 
     solveSymbolCompare :: [SourceType] -> Maybe [TypeClassDict]
     solveSymbolCompare [arg0@(TypeLevelString _ lhs), arg1@(TypeLevelString _ rhs), _] =
       let ordering = case compare lhs rhs of
-                  LT -> C.orderingLT
-                  EQ -> C.orderingEQ
-                  GT -> C.orderingGT
+                  LT -> C.LT
+                  EQ -> C.EQ
+                  GT -> C.GT
           args' = [arg0, arg1, srcTypeConstructor ordering]
-      in Just [TypeClassDictionaryInScope [] 0 EmptyClassInstance [] C.SymbolCompare args' Nothing]
+      in Just [TypeClassDictionaryInScope Nothing 0 EmptyClassInstance [] C.SymbolCompare [] [] args' Nothing Nothing]
     solveSymbolCompare _ = Nothing
 
     solveSymbolAppend :: [SourceType] -> Maybe [TypeClassDict]
     solveSymbolAppend [arg0, arg1, arg2] = do
       (arg0', arg1', arg2') <- appendSymbols arg0 arg1 arg2
       let args' = [arg0', arg1', arg2']
-      pure [TypeClassDictionaryInScope [] 0 EmptyClassInstance [] C.SymbolAppend args' Nothing]
+      pure [TypeClassDictionaryInScope Nothing 0 EmptyClassInstance [] C.SymbolAppend [] [] args' Nothing Nothing]
     solveSymbolAppend _ = Nothing
 
-    -- | Append type level symbols, or, run backwards, strip a prefix or suffix
+    -- Append type level symbols, or, run backwards, strip a prefix or suffix
     appendSymbols :: SourceType -> SourceType -> SourceType -> Maybe (SourceType, SourceType, SourceType)
     appendSymbols arg0@(TypeLevelString _ lhs) arg1@(TypeLevelString _ rhs) _ = Just (arg0, arg1, srcTypeLevelString (lhs <> rhs))
     appendSymbols arg0@(TypeLevelString _ lhs) _ arg2@(TypeLevelString _ out) = do
@@ -400,7 +531,7 @@
     solveSymbolCons [arg0, arg1, arg2] = do
       (arg0', arg1', arg2') <- consSymbol arg0 arg1 arg2
       let args' = [arg0', arg1', arg2']
-      pure [TypeClassDictionaryInScope [] 0 EmptyClassInstance [] C.SymbolCons args' Nothing]
+      pure [TypeClassDictionaryInScope Nothing 0 EmptyClassInstance [] C.SymbolCons [] [] args' Nothing Nothing]
     solveSymbolCons _ = Nothing
 
     consSymbol :: SourceType -> SourceType -> SourceType -> Maybe (SourceType, SourceType, SourceType)
@@ -415,89 +546,186 @@
       pure (arg1, arg2, srcTypeLevelString (mkString $ h' <> t'))
     consSymbol _ _ _ = Nothing
 
-    solveUnion :: [SourceType] -> Maybe [TypeClassDict]
-    solveUnion [l, r, u] = do
-      (lOut, rOut, uOut, cst) <- unionRows l r u
-      pure [ TypeClassDictionaryInScope [] 0 EmptyClassInstance [] C.RowUnion [lOut, rOut, uOut] cst ]
-    solveUnion _ = Nothing
+    solveIntToString :: [SourceType] -> Maybe [TypeClassDict]
+    solveIntToString [arg0, _] = do
+      (arg0', arg1') <- printIntToString arg0
+      let args' = [arg0', arg1']
+      pure [TypeClassDictionaryInScope Nothing 0 EmptyClassInstance [] C.IntToString [] [] args' Nothing Nothing]
+    solveIntToString _ = Nothing
 
-    -- | Left biased union of two row types
-    unionRows :: SourceType -> SourceType -> SourceType -> Maybe (SourceType, SourceType, SourceType, Maybe [SourceConstraint])
-    unionRows l r _ =
-        guard canMakeProgress $> (l, r, rowFromList out, cons)
+    printIntToString :: SourceType -> Maybe (SourceType, SourceType)
+    printIntToString arg0@(TypeLevelInt _ i) = do
+      pure (arg0, srcTypeLevelString $ mkString $ T.pack $ show i)
+    printIntToString _ = Nothing
+
+    solveReflectable :: [SourceType] -> Maybe [TypeClassDict]
+    solveReflectable [typeLevel, _] = do
+      (ref, typ) <- case typeLevel of
+        TypeLevelInt _ i -> pure (ReflectableInt i, tyInt)
+        TypeLevelString _ s -> pure (ReflectableString s, tyString)
+        TypeConstructor _ n
+          | n == C.True -> pure (ReflectableBoolean True, tyBoolean)
+          | n == C.False -> pure (ReflectableBoolean False, tyBoolean)
+          | n == C.LT -> pure (ReflectableOrdering LT, srcTypeConstructor C.Ordering)
+          | n == C.EQ -> pure (ReflectableOrdering EQ, srcTypeConstructor C.Ordering)
+          | n == C.GT -> pure (ReflectableOrdering GT, srcTypeConstructor C.Ordering)
+        _ -> Nothing
+      pure [TypeClassDictionaryInScope Nothing 0 (ReflectableInstance ref) [] C.Reflectable [] [] [typeLevel, typ] Nothing Nothing]
+    solveReflectable _ = Nothing
+
+    solveIntAdd :: [SourceType] -> Maybe [TypeClassDict]
+    solveIntAdd [arg0, arg1, arg2] = do
+      (arg0', arg1', arg2') <- addInts arg0 arg1 arg2
+      let args' = [arg0', arg1', arg2']
+      pure [TypeClassDictionaryInScope Nothing 0 EmptyClassInstance [] C.IntAdd [] [] args' Nothing Nothing]
+    solveIntAdd _ = Nothing
+
+    addInts :: SourceType -> SourceType -> SourceType -> Maybe (SourceType, SourceType, SourceType)
+    -- l r -> o, l + r = o
+    addInts arg0@(TypeLevelInt _ l) arg1@(TypeLevelInt _ r) _ = pure (arg0, arg1, srcTypeLevelInt (l + r))
+    -- l o -> r, o - l = r
+    addInts arg0@(TypeLevelInt _ l) _ arg2@(TypeLevelInt _ o) = pure (arg0, srcTypeLevelInt (o - l), arg2)
+    -- r o -> l, o - r = l
+    addInts _ arg1@(TypeLevelInt _ r) arg2@(TypeLevelInt _ o) = pure (srcTypeLevelInt (o - r), arg1, arg2)
+    addInts _ _ _                                             = Nothing
+
+    solveIntCompare :: InstanceContext -> [SourceType] -> Maybe [TypeClassDict]
+    solveIntCompare _ [arg0@(TypeLevelInt _ a), arg1@(TypeLevelInt _ b), _] =
+      let ordering = case compare a b of
+            EQ -> C.EQ
+            LT -> C.LT
+            GT -> C.GT
+          args' = [arg0, arg1, srcTypeConstructor ordering]
+      in pure [TypeClassDictionaryInScope Nothing 0 EmptyClassInstance [] C.IntCompare [] [] args' Nothing Nothing]
+    solveIntCompare ctx args@[a, b, _] = do
+      let compareDictsInScope = findDicts ctx C.IntCompare ByNullSourcePos
+          givens = flip mapMaybe compareDictsInScope $ \case
+            dict | [a', b', c'] <- tcdInstanceTypes dict -> mkRelation a' b' c'
+                 | otherwise -> Nothing
+          facts = mkFacts (args : (tcdInstanceTypes <$> compareDictsInScope))
+      c' <- solveRelation (givens <> facts) a b
+      pure [TypeClassDictionaryInScope Nothing 0 EmptyClassInstance [] C.IntCompare [] [] [a, b, srcTypeConstructor c'] Nothing Nothing]
+    solveIntCompare _ _ = Nothing
+
+    solveIntMul :: [SourceType] -> Maybe [TypeClassDict]
+    solveIntMul [arg0@(TypeLevelInt _ l), arg1@(TypeLevelInt _ r), _] =
+      let args' = [arg0, arg1, srcTypeLevelInt (l * r)]
+      in pure [TypeClassDictionaryInScope Nothing 0 EmptyClassInstance [] C.IntMul [] [] args' Nothing Nothing]
+    solveIntMul _ = Nothing
+
+    solveUnion :: [SourceType] -> [SourceType] -> Maybe [TypeClassDict]
+    solveUnion kinds [l, r, u] = do
+      (lOut, rOut, uOut, cst, vars) <- unionRows kinds l r u
+      pure [ TypeClassDictionaryInScope Nothing 0 EmptyClassInstance [] C.RowUnion vars kinds [lOut, rOut, uOut] cst Nothing ]
+    solveUnion _ _ = Nothing
+
+    -- Left biased union of two row types
+
+    unionRows :: [SourceType] -> SourceType -> SourceType -> SourceType -> Maybe (SourceType, SourceType, SourceType, Maybe [SourceConstraint], [(Text, SourceType)])
+    unionRows kinds l r u =
+        guard canMakeProgress $> (lOut, rOut, uOut, cons, vars)
       where
         (fixed, rest) = rowToList l
 
         rowVar = srcTypeVar "r"
 
-        (canMakeProgress, out, cons) =
+        (canMakeProgress, lOut, rOut, uOut, cons, vars) =
           case rest of
             -- If the left hand side is a closed row, then we can merge
             -- its labels into the right hand side.
-            REmpty _ -> (True, (fixed, r), Nothing)
+            REmptyKinded _ _ -> (True, l, r, rowFromList (fixed, r), Nothing, [])
+            -- If the right hand side and output are closed rows, then we can
+            -- compute the left hand side by subtracting the right hand side
+            -- from the output.
+            _ | (right, rightu@(REmptyKinded _ _)) <- rowToList r
+              , (output, restu@(REmptyKinded _ _)) <- rowToList u ->
+              let
+                -- Partition the output rows into those that belong in right
+                -- (taken off the end) and those that must end up in left.
+                grabLabel e (left', right', remaining)
+                  | rowListLabel e `elem` remaining =
+                    (left', e : right', delete (rowListLabel e) remaining)
+                  | otherwise =
+                    (e : left', right', remaining)
+                (outL, outR, leftover) =
+                  foldr grabLabel ([], [], fmap rowListLabel right) output
+              in ( null leftover
+                 , rowFromList (outL, restu)
+                 , rowFromList (outR, rightu)
+                 , u
+                 , Nothing
+                 , []
+                 )
             -- If the left hand side is not definitely closed, then the only way we
             -- can safely make progress is to move any known labels from the left
             -- input into the output, and add a constraint for any remaining labels.
             -- Otherwise, the left hand tail might contain the same labels as on
             -- the right hand side, and we can't be certain we won't reorder the
             -- types for such labels.
-            _ -> (not (null fixed), (fixed, rowVar), Just [ srcConstraint C.RowUnion [rest, r, rowVar] Nothing ])
+            _ -> ( not (null fixed)
+                 , l, r
+                 , rowFromList (fixed, rowVar)
+                 , Just [ srcConstraint C.RowUnion kinds [rest, r, rowVar] Nothing ]
+                 , [("r", kindRow (head kinds))]
+                 )
 
-    solveRowCons :: [SourceType] -> Maybe [TypeClassDict]
-    solveRowCons [TypeLevelString ann sym, ty, r, _] =
-      Just [ TypeClassDictionaryInScope [] 0 EmptyClassInstance [] C.RowCons [TypeLevelString ann sym, ty, r, srcRCons (Label sym) ty r] Nothing ]
-    solveRowCons _ = Nothing
+    solveRowCons :: [SourceType] -> [SourceType] -> Maybe [TypeClassDict]
+    solveRowCons kinds [TypeLevelString ann sym, ty, r, _] =
+      Just [ TypeClassDictionaryInScope Nothing 0 EmptyClassInstance [] C.RowCons [] kinds [TypeLevelString ann sym, ty, r, srcRCons (Label sym) ty r] Nothing Nothing ]
+    solveRowCons _ _ = Nothing
 
-    solveRowToList :: [SourceType] -> Maybe [TypeClassDict]
-    solveRowToList [r, _] = do
-      entries <- rowToRowList r
-      pure [ TypeClassDictionaryInScope [] 0 EmptyClassInstance [] C.RowToList [r, entries] Nothing ]
-    solveRowToList _ = Nothing
+    solveRowToList :: [SourceType] -> [SourceType] -> Maybe [TypeClassDict]
+    solveRowToList [kind] [r, _] = do
+      entries <- rowToRowList kind r
+      pure [ TypeClassDictionaryInScope Nothing 0 EmptyClassInstance [] C.RowToList [] [kind] [r, entries] Nothing Nothing ]
+    solveRowToList _ _ = Nothing
 
-    -- | Convert a closed row to a sorted list of entries
-    rowToRowList :: SourceType -> Maybe SourceType
-    rowToRowList r =
-        guard (eqType rest $ REmpty ()) $>
-        foldr rowListCons (srcTypeConstructor C.RowListNil) fixed
+    -- Convert a closed row to a sorted list of entries
+    rowToRowList :: SourceType -> SourceType -> Maybe SourceType
+    rowToRowList kind r =
+        guard (isREmpty rest) $>
+        foldr rowListCons (srcKindApp (srcTypeConstructor C.RowListNil) kind) fixed
       where
         (fixed, rest) = rowToSortedList r
         rowListCons (RowListItem _ lbl ty) tl =
-          foldl srcTypeApp (srcTypeConstructor C.RowListCons)
+          foldl srcTypeApp (srcKindApp (srcTypeConstructor C.RowListCons) kind)
             [ srcTypeLevelString (runLabel lbl)
             , ty
             , tl ]
 
-    solveNub :: [SourceType] -> Maybe [TypeClassDict]
-    solveNub [r, _] = do
+    solveNub :: [SourceType] -> [SourceType] -> Maybe [TypeClassDict]
+    solveNub kinds [r, _] = do
       r' <- nubRows r
-      pure [ TypeClassDictionaryInScope [] 0 EmptyClassInstance [] C.RowNub [r, r'] Nothing ]
-    solveNub _ = Nothing
+      pure [ TypeClassDictionaryInScope Nothing 0 EmptyClassInstance [] C.RowNub [] kinds [r, r'] Nothing Nothing ]
+    solveNub _ _ = Nothing
 
     nubRows :: SourceType -> Maybe SourceType
     nubRows r =
-        guard (eqType rest $ REmpty ()) $>
+        guard (isREmpty rest) $>
         rowFromList (nubBy ((==) `on` rowListLabel) fixed, rest)
       where
         (fixed, rest) = rowToSortedList r
 
-    solveLacks :: [SourceType] -> Maybe [TypeClassDict]
-    solveLacks [TypeLevelString ann sym, r] = do
-      (r', cst) <- rowLacks sym r
-      pure [ TypeClassDictionaryInScope [] 0 EmptyClassInstance [] C.RowLacks [TypeLevelString ann sym, r'] cst ]
-    solveLacks _ = Nothing
+    solveLacks :: [SourceType] -> [SourceType] -> Maybe [TypeClassDict]
+    solveLacks kinds tys@[_, REmptyKinded _ _] =
+      pure [ TypeClassDictionaryInScope Nothing 0 EmptyClassInstance [] C.RowLacks [] kinds tys Nothing Nothing ]
+    solveLacks kinds [TypeLevelString ann sym, r] = do
+      (r', cst) <- rowLacks kinds sym r
+      pure [ TypeClassDictionaryInScope Nothing 0 EmptyClassInstance [] C.RowLacks [] kinds [TypeLevelString ann sym, r'] cst Nothing ]
+    solveLacks _ _ = Nothing
 
-    rowLacks :: PSString -> SourceType -> Maybe (SourceType, Maybe [SourceConstraint])
-    rowLacks sym r =
+    rowLacks :: [SourceType] -> PSString -> SourceType -> Maybe (SourceType, Maybe [SourceConstraint])
+    rowLacks kinds sym r =
         guard (lacksSym && canMakeProgress) $> (r, cst)
       where
         (fixed, rest) = rowToList r
 
         lacksSym =
-          not $ sym `elem` (runLabel . rowListLabel <$> fixed)
+          sym `notElem` (runLabel . rowListLabel <$> fixed)
 
         (canMakeProgress, cst) = case rest of
-            REmpty _ -> (True, Nothing)
-            _ -> (not (null fixed), Just [ srcConstraint C.RowLacks [srcTypeLevelString sym, rest] Nothing ])
+            REmptyKinded _ _ -> (True, Nothing)
+            _ -> (not (null fixed), Just [ srcConstraint C.RowLacks kinds [srcTypeLevelString sym, rest] Nothing ])
 
 -- Check if an instance matches our list of types, allowing for types
 -- to be solved via functional dependencies. If the types match, we return a
@@ -514,7 +742,7 @@
                 solved = map snd . filter ((`S.notMember` determinedSet) . fst) $ zipWith (\(_, ts) i -> (i, ts)) matched [0..]
             in verifySubstitution (M.unionsWith (++) solved)
   where
-    -- | Find the closure of a set of functional dependencies.
+    -- Find the closure of a set of functional dependencies.
     covers :: [(Matched (), subst)] -> Bool
     covers ms = finalSet == S.fromList [0..length ms - 1]
       where
@@ -547,32 +775,36 @@
     typeHeadsAreEqual (KindedType _  t1 _) t2                                  = typeHeadsAreEqual t1 t2
     typeHeadsAreEqual t1                     (KindedType _ t2 _)               = typeHeadsAreEqual t1 t2
     typeHeadsAreEqual (TUnknown _ u1)        (TUnknown _ u2)      | u1 == u2   = (Match (), M.empty)
-    typeHeadsAreEqual (Skolem _ _ s1 _)      (Skolem _ _ s2 _)    | s1 == s2   = (Match (), M.empty)
+    typeHeadsAreEqual (Skolem _ _ _ s1 _)      (Skolem _ _ _ s2 _)    | s1 == s2   = (Match (), M.empty)
     typeHeadsAreEqual t                      (TypeVar _ v)                     = (Match (), M.singleton v [t])
     typeHeadsAreEqual (TypeConstructor _ c1) (TypeConstructor _ c2) | c1 == c2 = (Match (), M.empty)
     typeHeadsAreEqual (TypeLevelString _ s1) (TypeLevelString _ s2) | s1 == s2 = (Match (), M.empty)
+    typeHeadsAreEqual (TypeLevelInt _ n1)    (TypeLevelInt _ n2)    | n1 == n2 = (Match (), M.empty)
     typeHeadsAreEqual (TypeApp _ h1 t1)      (TypeApp _ h2 t2)                 =
       both (typeHeadsAreEqual h1 h2) (typeHeadsAreEqual t1 t2)
+    typeHeadsAreEqual (KindApp _ h1 t1)      (KindApp _ h2 t2)                 =
+      both (typeHeadsAreEqual h1 h2) (typeHeadsAreEqual t1 t2)
     typeHeadsAreEqual (REmpty _) (REmpty _) = (Match (), M.empty)
     typeHeadsAreEqual r1@RCons{} r2@RCons{} =
         foldr both (uncurry go rest) common
       where
-        (common, rest) = alignRowsWith typeHeadsAreEqual r1 r2
+        (common, rest) = alignRowsWith (const typeHeadsAreEqual) r1 r2
 
         go :: ([RowListItem a], Type a) -> ([RowListItem a], Type a) -> (Matched (), Matching [Type a])
         go (l,  KindedType _ t1 _) (r,  t2)                            = go (l, t1) (r, t2)
         go (l,  t1)                (r,  KindedType _ t2 _)             = go (l, t1) (r, t2)
+        go (l,  KindApp _ t1 k1)   (r,  KindApp _ t2 k2) | eqType k1 k2 = go (l, t1) (r, t2)
         go ([], REmpty _)          ([], REmpty _)                      = (Match (), M.empty)
         go ([], TUnknown _ u1)     ([], TUnknown _ u2)      | u1 == u2 = (Match (), M.empty)
         go ([], TypeVar _ v1)      ([], TypeVar _ v2)       | v1 == v2 = (Match (), M.empty)
-        go ([], Skolem _ _ sk1 _)  ([], Skolem _ _ sk2 _) | sk1 == sk2 = (Match (), M.empty)
+        go ([], Skolem _ _ _ sk1 _)  ([], Skolem _ _ _ sk2 _) | sk1 == sk2 = (Match (), M.empty)
         go ([], TUnknown _ _)      _                                   = (Unknown, M.empty)
         go (sd, r)                 ([], TypeVar _ v)                   = (Match (), M.singleton v [rowFromList (sd, r)])
         go _ _                                                         = (Apart, M.empty)
     typeHeadsAreEqual (TUnknown _ _) _ = (Unknown, M.empty)
+    typeHeadsAreEqual Skolem{} _       = (Unknown, M.empty)
     typeHeadsAreEqual _ _ = (Apart, M.empty)
 
-
     both :: (Matched (), Matching [Type a]) -> (Matched (), Matching [Type a]) -> (Matched (), Matching [Type a])
     both (b1, m1) (b2, m2) = (b1 <> b2, M.unionWith (++) m1 m2)
 
@@ -588,25 +820,32 @@
       typesAreEqual (KindedType _ t1 _)    t2                     = typesAreEqual t1 t2
       typesAreEqual t1                     (KindedType _ t2 _)    = typesAreEqual t1 t2
       typesAreEqual (TUnknown _ u1)        (TUnknown _ u2)        | u1 == u2 = Match ()
-      typesAreEqual (Skolem _ _ s1 _)      (Skolem _ _ s2 _)      | s1 == s2 = Match ()
-      typesAreEqual (Skolem _ _ _ _)       _                      = Unknown
-      typesAreEqual _                      (Skolem _ _ _ _)       = Unknown
+      typesAreEqual (TUnknown _ u1)        t2                     = if t2 `containsUnknown` u1 then Apart else Unknown
+      typesAreEqual t1                     (TUnknown _ u2)        = if t1 `containsUnknown` u2 then Apart else Unknown
+      typesAreEqual (Skolem _ _ _ s1 _)    (Skolem _ _ _ s2 _)    | s1 == s2 = Match ()
+      typesAreEqual (Skolem _ _ _ s1 _)    t2                     = if t2 `containsSkolem` s1 then Apart else Unknown
+      typesAreEqual t1                     (Skolem _ _ _ s2 _)    = if t1 `containsSkolem` s2 then Apart else Unknown
       typesAreEqual (TypeVar _ v1)         (TypeVar _ v2)         | v1 == v2 = Match ()
       typesAreEqual (TypeLevelString _ s1) (TypeLevelString _ s2) | s1 == s2 = Match ()
+      typesAreEqual (TypeLevelInt _ n1)    (TypeLevelInt _ n2)    | n1 == n2 = Match ()
       typesAreEqual (TypeConstructor _ c1) (TypeConstructor _ c2) | c1 == c2 = Match ()
       typesAreEqual (TypeApp _ h1 t1)      (TypeApp _ h2 t2)      = typesAreEqual h1 h2 <> typesAreEqual t1 t2
+      typesAreEqual (KindApp _ h1 t1)      (KindApp _ h2 t2)      = typesAreEqual h1 h2 <> typesAreEqual t1 t2
       typesAreEqual (REmpty _)             (REmpty _)             = Match ()
       typesAreEqual r1                     r2                     | isRCons r1 || isRCons r2 =
-          let (common, rest) = alignRowsWith typesAreEqual r1 r2
+          let (common, rest) = alignRowsWith (const typesAreEqual) r1 r2
           in fold common <> uncurry go rest
         where
           go :: ([RowListItem a], Type a) -> ([RowListItem a], Type a) -> Matched ()
           go (l, KindedType _ t1 _) (r, t2)                           = go (l, t1) (r, t2)
           go (l, t1)                (r, KindedType _ t2 _)            = go (l, t1) (r, t2)
+          go ([], KindApp _ t1 k1)  ([], KindApp _ t2 k2)             = typesAreEqual t1 t2 <> typesAreEqual k1 k2
           go ([], TUnknown _ u1)    ([], TUnknown _ u2)    | u1 == u2 = Match ()
-          go ([], Skolem _ _ s1 _)  ([], Skolem _ _ s2 _)  | s1 == s2 = Match ()
-          go ([], Skolem _ _ _ _)   _                                 = Unknown
-          go _                      ([], Skolem _ _ _ _)              = Unknown
+          go ([], TUnknown _ _)     ([], _)                           = Unknown
+          go ([], _)                ([], TUnknown _ _)                = Unknown
+          go ([], Skolem _ _ _ s1 _)  ([], Skolem _ _ _ s2 _)  | s1 == s2 = Match ()
+          go ([], Skolem _ _ _ _ _)   _                               = Unknown
+          go _                      ([], Skolem _ _ _ _ _)            = Unknown
           go ([], REmpty _)         ([], REmpty _)                    = Match ()
           go ([], TypeVar _ v1)     ([], TypeVar _ v2)     | v1 == v2 = Match ()
           go _  _                                                     = Apart
@@ -616,6 +855,12 @@
       isRCons RCons{}    = True
       isRCons _          = False
 
+      containsSkolem :: Type a -> Int -> Bool
+      containsSkolem t s = everythingOnTypes (||) (\case Skolem _ _ _ s' _ -> s == s'; _ -> False) t
+
+      containsUnknown :: Type a -> Int -> Bool
+      containsUnknown t u = everythingOnTypes (||) (\case TUnknown _ u' -> u == u'; _ -> False) t
+
 -- | Add a dictionary for the constraint to the scope, and dictionaries
 -- for all implied superclass instances.
 newDictionaries
@@ -624,22 +869,23 @@
   -> Qualified Ident
   -> SourceConstraint
   -> m [NamedDict]
-newDictionaries path name (Constraint _ className instanceTy _) = do
+newDictionaries path name (Constraint _ className instanceKinds instanceTy _) = do
     tcs <- gets (typeClasses . checkEnv)
     let TypeClassData{..} = fromMaybe (internalError "newDictionaries: type class lookup failed") $ M.lookup className tcs
-    supDicts <- join <$> zipWithM (\(Constraint ann supName supArgs _) index ->
+    supDicts <- join <$> zipWithM (\(Constraint ann supName supKinds supArgs _) index ->
+                                      let sub = zip (map fst typeClassArguments) instanceTy in
                                       newDictionaries ((supName, index) : path)
                                                       name
-                                                      (Constraint ann supName (instantiateSuperclass (map fst typeClassArguments) supArgs instanceTy) Nothing)
+                                                      (Constraint ann supName
+                                                        (replaceAllTypeVars sub <$> supKinds)
+                                                        (replaceAllTypeVars sub <$> supArgs)
+                                                        Nothing)
                                   ) typeClassSuperclasses [0..]
-    return (TypeClassDictionaryInScope [] 0 name path className instanceTy Nothing : supDicts)
-  where
-    instantiateSuperclass :: [Text] -> [SourceType] -> [SourceType] -> [SourceType]
-    instantiateSuperclass args supArgs tys = map (replaceAllTypeVars (zip args tys)) supArgs
+    return (TypeClassDictionaryInScope Nothing 0 name path className [] instanceKinds instanceTy Nothing Nothing : supDicts)
 
 mkContext :: [NamedDict] -> InstanceContext
 mkContext = foldr combineContexts M.empty . map fromDict where
-  fromDict d = M.singleton Nothing (M.singleton (tcdClassName d) (M.singleton (tcdValue d) (pure d)))
+  fromDict d = M.singleton ByNullSourcePos (M.singleton (tcdClassName d) (M.singleton (tcdValue d) (pure d)))
 
 -- | Check all pairs of values in a list match a predicate
 pairwiseAll :: Monoid m => (a -> a -> m) -> [a] -> m
@@ -657,3 +903,19 @@
 pairwiseM _ [] = pure ()
 pairwiseM _ [_] = pure ()
 pairwiseM p (x : xs) = traverse (p x) xs *> pairwiseM p xs
+
+-- | Return all nonempty tails of a nonempty list. For example:
+--
+-- tails1 (fromList [1]) == fromList [fromList [1]]
+-- tails1 (fromList [1,2]) == fromList [fromList [1,2], fromList [2]]
+-- tails1 (fromList [1,2,3]) == fromList [fromList [1,2,3], fromList [2,3], fromList [3]]
+tails1 :: NonEmpty a -> NonEmpty (NonEmpty a)
+tails1 =
+  -- NEL.fromList is an unsafe function, but this usage should be safe, since:
+  -- - `tails xs = [xs, tail xs, tail (tail xs), ..., []]`
+  -- - If `xs` is nonempty, it follows that `tails xs` contains at least one nonempty
+  --   list, since `head (tails xs) = xs`.
+  -- - The only empty element of `tails xs` is the last one (by the definition of `tails`)
+  -- - Therefore, if we take all but the last element of `tails xs` i.e.
+  --   `init (tails xs)`, we have a nonempty list of nonempty lists
+  NEL.fromList . map NEL.fromList . init . tails . NEL.toList
diff --git a/src/Language/PureScript/TypeChecker/Entailment/Coercible.hs b/src/Language/PureScript/TypeChecker/Entailment/Coercible.hs
new file mode 100644
--- /dev/null
+++ b/src/Language/PureScript/TypeChecker/Entailment/Coercible.hs
@@ -0,0 +1,946 @@
+{-# LANGUAGE DuplicateRecordFields #-}
+
+-- |
+-- Interaction solver for Coercible constraints
+--
+module Language.PureScript.TypeChecker.Entailment.Coercible
+  ( GivenSolverState(..)
+  , initialGivenSolverState
+  , solveGivens
+  , WantedSolverState(..)
+  , initialWantedSolverState
+  , solveWanteds
+  , insoluble
+  ) where
+
+import Prelude hiding (interact)
+
+import Control.Applicative ((<|>), empty)
+import Control.Arrow ((&&&))
+import Control.Monad ((<=<), guard, unless, when)
+import Control.Monad.Error.Class (MonadError, catchError, throwError)
+import Control.Monad.State (MonadState, StateT, get, gets, modify, put)
+import Control.Monad.Trans.Class (lift)
+import Control.Monad.Trans.Maybe (MaybeT(..), runMaybeT)
+import Control.Monad.Trans.Except (ExceptT(..), runExceptT)
+import Control.Monad.Writer.Strict (MonadWriter, Writer, execWriter, runWriter, runWriterT, tell)
+import Data.Either (partitionEithers)
+import Data.Foldable (fold, foldl', for_, toList)
+import Data.Functor (($>))
+import Data.List (find)
+import Data.Maybe (fromMaybe, isJust)
+import Data.Monoid (Any(..))
+import Data.Text (Text)
+
+import Data.Map qualified as M
+import Data.Set qualified as S
+
+import Language.PureScript.Crash (internalError)
+import Language.PureScript.Environment (DataDeclType(..), Environment(..), TypeKind(..), unapplyKinds)
+import Language.PureScript.Errors (DeclarationRef(..), ErrorMessageHint(..), ExportSource, ImportDeclarationType(..), MultipleErrors, SimpleErrorMessage(..), SourceAnn, errorMessage, UnknownsHint(..))
+import Language.PureScript.Names (ModuleName, ProperName, ProperNameType(..), Qualified(..), byMaybeModuleName, toMaybeModuleName)
+import Language.PureScript.TypeChecker.Kinds (elaborateKind, freshKindWithKind, unifyKinds')
+import Language.PureScript.TypeChecker.Monad (CheckState(..))
+import Language.PureScript.TypeChecker.Roles (lookupRoles)
+import Language.PureScript.TypeChecker.Synonyms (replaceAllTypeSynonyms)
+import Language.PureScript.TypeChecker.Unify (alignRowsWith, freshTypeWithKind, substituteType)
+import Language.PureScript.Roles (Role(..))
+import Language.PureScript.Types (Constraint(..), SourceType, Type(..), completeBinderList, containsUnknowns, everythingOnTypes, isMonoType, replaceAllTypeVars, rowFromList, srcConstraint, srcTypeApp, unapplyTypes)
+import Language.PureScript.Constants.Prim qualified as Prim
+
+-- | State of the given constraints solver.
+data GivenSolverState =
+  GivenSolverState
+    { inertGivens :: [(SourceType, SourceType, SourceType)]
+  -- ^ A set of irreducible given constraints which do not interact together.
+    , unsolvedGivens :: [(SourceType, SourceType)]
+  -- ^ Given constraints yet to be solved.
+    }
+
+-- | Initialize the given constraints solver state with the givens to solve.
+initialGivenSolverState :: [(SourceType, SourceType)] -> GivenSolverState
+initialGivenSolverState =
+  GivenSolverState []
+
+-- | The given constraints solver follows these steps:
+--
+-- 1. Solving can diverge for recursive newtypes, so we check the solver depth
+-- and abort if we crossed an arbitrary limit.
+--
+-- For instance the declarations:
+--
+-- @
+-- newtype N a = N (a -> N a)
+--
+-- example :: forall a b. N a -> N b
+-- example = coerce
+-- @
+--
+-- yield the wanted @Coercible (N a) (N b)@ which we can unwrap on both sides
+-- to yield @Coercible (a -> N a) (b -> N b)@, which we can then decompose back
+-- to @Coercible a b@ and @Coercible (N a) (N b)@.
+--
+-- 2. We pick a constraint from the unsolved queue. If the queue is empty we are
+-- done, otherwise we unify the constraint arguments kinds and continue.
+--
+-- 3. Then we try to canonicalize the constraint.
+
+-- 3a. Canonicalization can fail, in which case we swallow the error and pretend
+-- the constraint is irreducible because it is possible to eventually solve it.
+--
+-- For instance the declarations:
+--
+-- @
+-- data D a = D a
+-- type role D nominal
+--
+-- example :: forall a b. Coercible (D a) (D b) => D a -> D b
+-- example = coerce
+-- @
+--
+-- yield an insoluble given @Coercible (D a) (D b)@ which discharges the wanted
+-- constraint regardless, because the given can be solved if @a@ and @b@ turn
+-- out to be equal: @example (D true) :: D Boolean@ should compile.
+--
+-- 3b. Canonicalization can succeed with an irreducible constraint which we
+-- then interact with the inert set.
+--
+-- 3bi. These interactions can yield a derived constraint which we add to the
+-- unsolved queue and then go back to 1.
+--
+-- 3bii. These interactions can discharge the constraint, in which case we go
+-- back to 1.
+--
+-- 3biii The constraint may not react to the inert set, in which case we add it
+-- to the inert set, kick out any constraint that can be rewritten by the new
+-- inert, add them to the unsolved queue and then go back to 1.
+--
+-- 3c. Otherwise canonicalization can succeed with derived constraints which we
+-- add to the unsolved queue and then go back to 1.
+solveGivens
+  :: MonadError MultipleErrors m
+  => MonadState CheckState m
+  => Environment
+  -> StateT GivenSolverState m ()
+solveGivens env = go (0 :: Int) where
+  go n = do
+    when (n > 1000) . throwError . errorMessage $ PossiblyInfiniteCoercibleInstance
+    gets unsolvedGivens >>= \case
+      [] -> pure ()
+      given : unsolved -> do
+        (k, a, b) <- lift $ unify given
+        GivenSolverState{..} <- get
+        lift (fst <$> runWriterT (canon env Nothing k a b `catchError` recover)) >>= \case
+          Irreducible -> case interact env (a, b) inertGivens of
+            Just (Simplified (a', b')) ->
+              put $ GivenSolverState { unsolvedGivens = (a', b') : unsolved, .. }
+            Just Discharged ->
+              put $ GivenSolverState { unsolvedGivens = unsolved, .. }
+            Nothing -> do
+              let (kickedOut, kept) = partitionEithers $ kicksOut env (a, b) <$> inertGivens
+              put $ GivenSolverState
+                { inertGivens = (k, a, b) : kept
+                , unsolvedGivens = kickedOut <> unsolved
+                }
+          Canonicalized deriveds ->
+            put $ GivenSolverState { unsolvedGivens = toList deriveds <> unsolved, .. }
+        go (n + 1)
+  recover _ = pure Irreducible
+
+-- | State of the wanted constraints solver.
+data WantedSolverState =
+  WantedSolverState
+    { inertGivens :: [(SourceType, SourceType, SourceType)]
+  -- ^ A set of irreducible given constraints which do not interact together,
+  -- but which could interact with the wanteds.
+    , inertWanteds :: [(SourceType, SourceType, SourceType)]
+  -- ^ A set of irreducible wanted constraints which do not interact together,
+  -- nor with any given.
+    , unsolvedWanteds :: [(SourceType, SourceType)]
+  -- ^ Wanted constraints yet to be solved.
+    }
+
+-- | Initialize the wanted constraints solver state with an inert set of givens
+-- and the two parameters of the wanted to solve.
+initialWantedSolverState
+  :: [(SourceType, SourceType, SourceType)]
+  -> SourceType
+  -> SourceType
+  -> WantedSolverState
+initialWantedSolverState givens a b =
+  WantedSolverState givens [] [(a, b)]
+
+-- | The wanted constraints solver follows similar steps than the given solver,
+-- except for:
+--
+-- 1. When canonicalization fails we can swallow the error, but only if the
+-- wanted interacts with the givens.
+--
+-- For instance the declarations:
+--
+-- @
+-- data D a = D a
+-- type role D nominal
+--
+-- example :: forall a b. Coercible (D a) (D b) => D a -> D b
+-- example = coerce
+-- @
+--
+-- yield an insoluble wanted @Coercible (D a) (D b)@ which is discharged by
+-- the given. But we want @example :: forall a b. D a -> D b@ to fail.
+--
+-- 2. Irreducible wanted constraints don't interact with the inert wanteds set,
+-- because doing so would yield confusing error messages.
+--
+-- For instance the declarations:
+--
+-- @
+-- data D a = D a
+--
+-- example :: forall a. D a a -> D Boolean Char
+-- example = coerce
+-- @
+--
+-- yield the wanted @Coercible (D a a) (D Boolean Char)@, which is decomposed to
+-- the irreducibles @Coercible a Boolean@ and @Coercible a Char@. Would we
+-- interact the latter with the former, we would report an insoluble
+-- @Coercible Boolean Char@.
+solveWanteds
+  :: MonadError MultipleErrors m
+  => MonadWriter [ErrorMessageHint] m
+  => MonadState CheckState m
+  => Environment
+  -> StateT WantedSolverState m ()
+solveWanteds env = go (0 :: Int) where
+  go n = do
+    when (n > 1000) . throwError . errorMessage $ PossiblyInfiniteCoercibleInstance
+    gets unsolvedWanteds >>= \case
+      [] -> pure ()
+      wanted : unsolved -> do
+        (k, a, b) <- lift $ unify wanted
+        WantedSolverState{..} <- get
+        lift (canon env (Just inertGivens) k a b `catchError` recover (a, b) inertGivens) >>= \case
+          Irreducible -> case interact env (a, b) inertGivens of
+            Just (Simplified (a', b')) ->
+              put $ WantedSolverState { unsolvedWanteds = (a', b') : unsolved, .. }
+            Just Discharged ->
+              put $ WantedSolverState { unsolvedWanteds = unsolved, .. }
+            Nothing ->
+              put $ WantedSolverState
+                { inertWanteds = (k, a, b) : inertWanteds
+                , unsolvedWanteds = unsolved
+                , ..
+                }
+          Canonicalized deriveds ->
+            put $ WantedSolverState { unsolvedWanteds = toList deriveds <> unsolved, .. }
+        go (n + 1)
+  recover wanted givens errors =
+    case interact env wanted givens of
+      Nothing -> throwError errors
+      Just (Simplified wanted') -> pure . Canonicalized $ S.singleton wanted'
+      Just Discharged -> pure $ Canonicalized mempty
+
+-- | Unifying constraints arguments kinds isn't strictly necessary but yields
+-- better error messages. For instance we cannot solve the constraint
+-- @Coercible (D :: Type -> Type) (D a :: Type)@ because its arguments kinds
+-- don't match and trying to unify them will say so, which is more helpful than
+-- simply saying that no type class instance was found.
+--
+-- A subtle thing to note is that types with polymorphic kinds can be annotated
+-- with kind applications mentioning unknowns that we may have solved by
+-- unifying the kinds.
+--
+-- For instance the declarations:
+--
+-- @
+-- data D :: forall k. k -> Type
+-- data D a = D
+--
+-- type role D representational
+--
+-- example :: D D -> D D
+-- example = coerce
+-- @
+--
+-- yield a wanted
+-- @Coercible (D \@(k1 -> Type) (D \@k1)) (D \@(k2 -> Type) (D \@k2))@, which we
+-- decompose to @Coercible (D \@k1) (D \@k2)@, where @k1@ and @k2@ are unknowns.
+-- This constraint is not reflexive because @D \@k1@ and @D \@k2@ are differents
+-- but both arguments kinds unify with @k -> Type@, where @k@ is a fresh unknown,
+-- so applying the substitution to @D \@k1@ and @D \@k2@ yields a
+-- @Coercible (D \@k) (D \@k)@ constraint which could be trivially solved by
+-- reflexivity instead of having to saturate the type constructors.
+unify
+  :: MonadError MultipleErrors m
+  => MonadState CheckState m
+  => (SourceType, SourceType)
+  -> m (SourceType, SourceType, SourceType)
+unify (a, b) = do
+  let kindOf = sequence . (id &&& elaborateKind) <=< replaceAllTypeSynonyms
+  (a', kind) <- kindOf a
+  (b', kind') <- kindOf b
+  unifyKinds' kind kind'
+  subst <- gets checkSubstitution
+  pure ( substituteType subst kind
+       , substituteType subst a'
+       , substituteType subst b'
+       )
+
+-- | A successful interaction between an irreducible constraint and an inert
+--  given constraint has two possible outcomes:
+data Interaction
+  = Simplified (SourceType, SourceType)
+  -- ^ The interaction can yield a derived constraint,
+  | Discharged
+  -- ^ or we can learn the irreducible constraint is redundant and discharge it.
+
+-- | Interact an irreducible constraint with an inert set of givens.
+interact
+  :: Environment
+  -> (SourceType, SourceType)
+  -> [(SourceType, SourceType, SourceType)]
+  -> Maybe Interaction
+interact env irred = go where
+  go [] = Nothing
+  go (inert : _)
+    | canDischarge inert irred = Just Discharged
+    | Just derived <- interactSameTyVar inert irred = Just $ Simplified derived
+    | Just derived <- interactDiffTyVar env inert irred = Just $ Simplified derived
+  go (_ : inerts) = go inerts
+
+-- | A given constraint of the form @Coercible a b@ can discharge constraints
+-- of the form @Coercible a b@ and @Coercible b a@.
+canDischarge
+  :: (SourceType, SourceType, SourceType)
+  -> (SourceType, SourceType)
+  -> Bool
+canDischarge (_, a, b) constraint =
+  (a, b) == constraint || (b, a) == constraint
+
+-- | Two canonical constraints of the form @Coercible tv ty1@ and
+-- @Coercible tv ty2@ can interact together and yield a new constraint
+-- @Coercible ty1 ty2@. Canonicality matters to avoid loops.
+--
+-- For instance the declarations:
+--
+-- @
+-- data D a = D a
+-- newtype N a = N (D (N a))
+--
+-- example :: forall a. Coercible a (D a) => a -> N a
+-- example = coerce
+-- @
+--
+-- yield a non canonical wanted @Coercible a (N a)@ that we can unwrap on the
+-- right to yield @Coercible a (D (N a))@. Would it interact with the non
+-- canonical given @Coercible a (D a)@ it would give @Coercible (D a) (D (N a))@,
+-- then decompose back to @Coercible a (N a)@.
+interactSameTyVar
+  :: (SourceType, SourceType, SourceType)
+  -> (SourceType, SourceType)
+  -> Maybe (SourceType, SourceType)
+interactSameTyVar (_, tv1, ty1) (tv2, ty2)
+  | tv1 == tv2 && isCanonicalTyVarEq (tv1, ty1) && isCanonicalTyVarEq (tv2, ty2)
+  = Just (ty1, ty2)
+  | otherwise = Nothing
+
+-- | Two canonical constraints of the form @Coercible tv1 ty1@ and
+-- @Coercible tv2 ty2@ can interact together and yield a new constraint
+-- @Coercible tv2 ty2[ty1/tv1]@. Once again, canonicality matters to avoid loops.
+--
+-- For instance the declarations:
+--
+-- @
+-- data D a = D a
+--
+-- example :: forall a b. Coercible b (D b) => a -> b
+-- example = coerce
+-- @
+--
+-- yield an irreducible canonical wanted @Coercible a b@. Would it interact with
+-- the non canonical given @Coercible b (D b)@ it would give @Coercible a (D b)@,
+-- which would keep interacting indefinitely with the given.
+interactDiffTyVar
+  :: Environment
+  -> (SourceType, SourceType, SourceType)
+  -> (SourceType, SourceType)
+  -> Maybe (SourceType, SourceType)
+interactDiffTyVar env (_, tv1, ty1) (tv2, ty2)
+  | tv1 /= tv2 && isCanonicalTyVarEq (tv2, ty2)
+  , (ty2', Any True) <- runWriter $ rewrite env (tv1, ty1) ty2
+  = Just (tv2, ty2')
+  | otherwise = Nothing
+
+-- | A canonical constraint of the form @Coercible tv1 ty1@ can rewrite the
+-- right hand side of an irreducible constraint of the form @Coercible tv2 ty2@
+-- by substituting @ty1@ for every occurrence of @tv1@ at representational and
+-- phantom role in @ty2@. Nominal occurrences are left untouched.
+rewrite :: Environment -> (SourceType, SourceType) -> SourceType -> Writer Any SourceType
+rewrite env (Skolem _ _ _ s1 _, ty1) | not $ occurs s1 ty1 = go where
+  go (Skolem _ _ _ s2 _) | s1 == s2 = tell (Any True) $> ty1
+  go ty2 | (Skolem{}, _, xs) <- unapplyTypes ty2, not $ null xs =
+    rewriteTyVarApp go ty2
+         | (TypeConstructor _ tyName, _, _) <- unapplyTypes ty2 = do
+    rewriteTyConApp go (lookupRoles env tyName) ty2
+  go (KindApp sa ty k) = KindApp sa <$> go ty <*> pure k
+  go (ForAll sa vis tv k ty scope) = ForAll sa vis tv k <$> go ty <*> pure scope
+  go (ConstrainedType sa Constraint{..} ty) | s1 `S.notMember` foldMap skolems constraintArgs =
+    ConstrainedType sa Constraint{..} <$> go ty
+  go (RCons sa label ty rest) = RCons sa label <$> go ty <*> go rest
+  go (KindedType sa ty k) = KindedType sa <$> go ty <*> pure k
+  go ty2 = pure ty2
+rewrite _ _ = pure
+
+-- | Rewrite the head of a type application of the form @tv a_0 .. a_n@.
+rewriteTyVarApp
+  :: Applicative m
+  => (SourceType -> m SourceType)
+  -> SourceType
+  -> m SourceType
+rewriteTyVarApp f = go where
+  go (TypeApp sa lhs rhs) =
+    TypeApp sa <$> go lhs <*> pure rhs
+  go (KindApp sa ty k) =
+    KindApp sa <$> go ty <*> pure k
+  go ty = f ty
+
+-- | Rewrite the representational and phantom arguments of a type application
+-- of the form @D a_0 .. a_n@.
+rewriteTyConApp
+  :: Applicative m
+  => (SourceType -> m SourceType)
+  -> [Role]
+  -> SourceType
+  -> m SourceType
+rewriteTyConApp f = go where
+  go (role : roles) (TypeApp sa lhs rhs) =
+    TypeApp sa <$> go roles lhs <*> case role of
+      Nominal -> pure rhs
+      _ -> f rhs
+  go roles (KindApp sa ty k) =
+    KindApp sa <$> go roles ty <*> pure k
+  go _ ty = pure ty
+
+canRewrite :: Environment -> (SourceType, SourceType) -> SourceType -> Bool
+canRewrite env irred = getAny . execWriter . rewrite env irred
+
+-- | An irreducible given constraint must kick out of the inert set any
+-- constraint it can rewrite when it becomes inert, otherwise solving would be
+-- sensitive to the order of constraints. Wanteds cannot rewrite other wanteds
+-- so this applies only to givens.
+--
+-- For instance the declaration:
+--
+-- @
+-- example :: forall f g a b. Coercible a (f b) => Coercible f g => Proxy f -> a -> g b
+-- example _ = coerce
+-- @
+--
+-- yields the irreducible givens @Coercible a (f b)@ and @Coercible f g@. Would
+-- we not kick out the former when adding the latter to the inert set we would
+-- not be able to rewrite it to @Coercible a (g b)@ and discharge the wanted,
+-- but inverting the givens would work.
+kicksOut
+  :: Environment
+  -> (SourceType, SourceType)
+  -> (SourceType, SourceType, SourceType)
+  -> Either (SourceType, SourceType) (SourceType, SourceType, SourceType)
+kicksOut env irred (_, tv2, ty2)
+  | isCanonicalTyVarEq (tv2, ty2) && canRewrite env irred ty2
+  = Left (tv2, ty2)
+kicksOut _ _ inert = Right inert
+
+-- | A constraint of the form @Coercible tv ty@ is canonical when @tv@ does not
+-- occur in @ty@. Non canonical constraints do not interact to prevent loops.
+isCanonicalTyVarEq :: (SourceType, SourceType) -> Bool
+isCanonicalTyVarEq (Skolem _ _ _ s _, ty) = not $ occurs s ty
+isCanonicalTyVarEq _ = False
+
+occurs :: Int -> SourceType -> Bool
+occurs s1 = everythingOnTypes (||) go where
+  go (Skolem _ _ _ s2 _) | s1 == s2 = True
+  go _ = False
+
+skolems :: SourceType -> S.Set Int
+skolems = everythingOnTypes (<>) go where
+  go (Skolem _ _ _ s _) = S.singleton s
+  go _ = mempty
+
+-- | A successful canonicalization result has two possible outcomes:
+data Canonicalized
+  = Canonicalized (S.Set (SourceType, SourceType))
+  -- ^ Canonicalization can yield a set of derived constraints,
+  | Irreducible
+  -- ^ or we can learn the constraint is irreducible. Irreducibility is not
+  -- necessarily an error, we may make further progress by interacting with
+  -- inerts.
+
+-- | Canonicalization takes a wanted constraint and try to reduce it to a set of
+-- simpler constraints whose satisfaction will imply the goal.
+canon
+  :: MonadError MultipleErrors m
+  => MonadWriter [ErrorMessageHint] m
+  => MonadState CheckState m
+  => Environment
+  -> Maybe [(SourceType, SourceType, SourceType)]
+  -> SourceType
+  -> SourceType
+  -> SourceType
+  -> m Canonicalized
+canon env givens k a b =
+  maybe (throwError $ insoluble k a b) pure <=< runMaybeT $
+        canonRefl a b
+    <|> canonUnsaturatedHigherKindedType env a b
+    <|> canonRow a b
+    -- We unwrap newtypes before trying the decomposition rules because it let
+    -- us solve more constraints.
+    --
+    -- For instance the declarations:
+    --
+    -- @
+    -- newtype N f a = N (f a)
+    --
+    -- example :: forall a b. Coercible a b => N Maybe a -> N Maybe b
+    -- example = coerce
+    -- @
+    --
+    -- yield the wanted @Coercible (N Maybe a) (N Maybe b)@ which we cannot
+    -- decompose because the second parameter of @N@ is nominal. On the other
+    -- hand, unwrapping on both sides yields @Coercible (Maybe a) (Maybe b)@
+    -- which we can then decompose to @Coercible a b@ and discharge with the
+    -- given.
+    <|> canonNewtypeLeft env a b
+    <|> canonNewtypeRight env a b
+    <|> canonDecomposition env a b
+    <|> canonDecompositionFailure env k a b
+    <|> canonNewtypeDecomposition env givens a b
+    <|> canonNewtypeDecompositionFailure a b
+    <|> canonTypeVars a b
+    <|> canonTypeVarLeft a b
+    <|> canonTypeVarRight a b
+    <|> canonApplicationLeft a b
+    <|> canonApplicationRight a b
+
+insoluble
+  :: SourceType
+  -> SourceType
+  -> SourceType
+  -> MultipleErrors
+insoluble k a b =
+  -- We can erase kind applications when determining whether to show the
+  -- "Consider adding a type annotation" hint, because annotating kinds to
+  -- instantiate unknowns in Coercible constraints should never resolve
+  -- NoInstanceFound errors.
+  errorMessage $ NoInstanceFound (srcConstraint Prim.Coercible [k] [a, b] Nothing) [] 
+    $ if any containsUnknowns [a, b] then Unknowns else NoUnknowns
+
+-- | Constraints of the form @Coercible a b@ can be solved if the two arguments
+-- are the same. Since we currently don't support higher-rank arguments in
+-- instance heads, term equality is a sufficient notion of "the same".
+canonRefl
+  :: Monad m
+  => SourceType
+  -> SourceType
+  -> MaybeT m Canonicalized
+canonRefl a b =
+  guard (a == b) $> Canonicalized mempty
+
+-- | Constraints of the form @Coercible (T1 a_0 .. a_n) (T2 b_0 .. b_n)@, where
+-- both arguments have kind @k1 -> k2@, yield a constraint
+-- @Coercible (T1 a_0 .. a_n c_0 .. c_m) (T2 b_0 .. b_n c_0 .. c_m)@, where both
+-- arguments are fully saturated with the same unknowns and have kind @Type@.
+canonUnsaturatedHigherKindedType
+  :: MonadError MultipleErrors m
+  => MonadState CheckState m
+  => Environment
+  -> SourceType
+  -> SourceType
+  -> MaybeT m Canonicalized
+canonUnsaturatedHigherKindedType env a b
+  | (TypeConstructor _ aTyName, akapps, axs) <- unapplyTypes a
+  , (ak, _) <- fromMaybe (internalError "canonUnsaturatedHigherKindedType: type lookup failed") $ M.lookup aTyName (types env)
+  , (aks, _) <- unapplyKinds ak
+  , length axs < length aks = do
+      ak' <- lift $ do
+        let (kvs, ak') = fromMaybe (internalError "canonUnsaturatedHigherKindedType: unkinded forall binder") $ completeBinderList ak
+            instantiatedKinds = zipWith (\(_, (kv, _)) k -> (kv, k)) kvs akapps
+        unknownKinds <- traverse (\((ss, _), (kv, k)) -> (kv,) <$> freshKindWithKind ss k) $ drop (length akapps) kvs
+        pure $ replaceAllTypeVars (instantiatedKinds <> unknownKinds) ak'
+      let (aks', _) = unapplyKinds ak'
+      tys <- traverse freshTypeWithKind $ drop (length axs) aks'
+      let a' = foldl' srcTypeApp a tys
+          b' = foldl' srcTypeApp b tys
+      pure . Canonicalized $ S.singleton (a', b')
+  | otherwise = empty
+
+-- | Constraints of the form
+-- @Coercible ( label_0 :: a_0, .. label_n :: a_n | r ) ( label_0 :: b_0, .. label_n :: b_n | s )@
+-- yield a constraint @Coercible r s@ and constraints on the types for each
+-- label in both rows. Labels exclusive to one row yield a failure.
+canonRow
+  :: MonadError MultipleErrors m
+  => MonadState CheckState m
+  => SourceType
+  -> SourceType
+  -> MaybeT m Canonicalized
+canonRow a b
+  | RCons{} <- a =
+      case alignRowsWith (const (,)) a b of
+        -- We throw early when a bare unknown remains on either side after
+        -- aligning the rows because we don't know how to canonicalize them yet
+        -- and the unification error thrown when the rows are misaligned should
+        -- not mention unknowns.
+        (_, (([], u@TUnknown{}), rl2)) -> do
+          k <- elaborateKind u
+          throwError $ insoluble k u (rowFromList rl2)
+        (_, (rl1, ([], u@TUnknown{}))) -> do
+          k <- elaborateKind u
+          throwError $ insoluble k (rowFromList rl1) u
+        (deriveds, (([], tail1), ([], tail2))) -> do
+          pure . Canonicalized . S.fromList $ (tail1, tail2) : deriveds
+        (_, (rl1, rl2)) ->
+          throwError . errorMessage $ TypesDoNotUnify (rowFromList rl1) (rowFromList rl2)
+  | otherwise = empty
+
+-- | Unwrapping a newtype can fails in two ways:
+data UnwrapNewtypeError
+  = CannotUnwrapInfiniteNewtypeChain
+  -- ^ The newtype might wrap an infinite newtype chain. We may think that this
+  -- is already handled by the solver depth check, but failing to unwrap
+  -- infinite chains of newtypes let us try other rules.
+  --
+  -- For instance the declarations:
+  --
+  -- @
+  -- newtype N a = N (N a)
+  -- type role N representational
+  --
+  -- example :: forall a b. Coercible a b => N a -> N b
+  -- example = coerce
+  -- @
+  --
+  -- yield a wanted @Coercible (N a) (N b)@ that we can decompose to
+  -- @Coercible a b@ then discharge with the given if the newtype
+  -- unwrapping rules do not apply.
+  | CannotUnwrapConstructor
+  -- ^ The constructor may not be in scope or may not belong to a newtype.
+
+-- | Unwraps a newtype and yields its underlying type with the newtype arguments
+-- substituted in (e.g. @N[D/a] = D@ given @newtype N a = N a@ and @data D = D@).
+unwrapNewtype
+  :: MonadState CheckState m
+  => MonadWriter [ErrorMessageHint] m
+  => Environment
+  -> SourceType
+  -> m (Either UnwrapNewtypeError SourceType)
+unwrapNewtype env = go (0 :: Int) where
+  go n ty = runExceptT $ do
+    when (n > 1000) $ throwError CannotUnwrapInfiniteNewtypeChain
+    (currentModuleName, currentModuleImports) <- gets $ checkCurrentModule &&& checkCurrentModuleImports
+    case unapplyTypes ty of
+      (TypeConstructor _ newtypeName, ks, xs)
+        | Just (inScope, fromModuleName, tvs, newtypeCtorName, wrappedTy) <-
+            lookupNewtypeConstructorInScope env currentModuleName currentModuleImports newtypeName ks
+        -- We refuse to unwrap newtypes over polytypes because we don't know how
+        -- to canonicalize them yet and we'd rather try to make progress with
+        -- another rule.
+        , isMonoType wrappedTy -> do
+            unless inScope $ do
+              tell [MissingConstructorImportForCoercible newtypeCtorName]
+              throwError CannotUnwrapConstructor
+            for_ fromModuleName $ flip addConstructorImportForCoercible newtypeCtorName
+            let wrappedTySub = replaceAllTypeVars (zip tvs xs) wrappedTy
+            ExceptT (go (n + 1) wrappedTySub) `catchError` \case
+              CannotUnwrapInfiniteNewtypeChain -> throwError CannotUnwrapInfiniteNewtypeChain
+              CannotUnwrapConstructor -> pure wrappedTySub
+      _ -> throwError CannotUnwrapConstructor
+  addConstructorImportForCoercible fromModuleName newtypeCtorName = modify $ \st ->
+    st { checkConstructorImportsForCoercible = S.insert (fromModuleName, newtypeCtorName) $ checkConstructorImportsForCoercible st }
+
+-- | Looks up a given name and, if it names a newtype, returns the names of the
+-- type's parameters, the type the newtype wraps and the names of the type's
+-- fields.
+lookupNewtypeConstructor
+  :: Environment
+  -> Qualified (ProperName 'TypeName)
+  -> [SourceType]
+  -> Maybe ([Text], ProperName 'ConstructorName, SourceType)
+lookupNewtypeConstructor env qualifiedNewtypeName ks = do
+  (newtyk, DataType Newtype tvs [(ctorName, [wrappedTy])]) <- M.lookup qualifiedNewtypeName (types env)
+  let (kvs, _) = fromMaybe (internalError "lookupNewtypeConstructor: unkinded forall binder") $ completeBinderList newtyk
+      instantiatedKinds = zipWith (\(_, (kv, _)) k -> (kv, k)) kvs ks
+  pure (map (\(name, _, _) -> name) tvs, ctorName, replaceAllTypeVars instantiatedKinds wrappedTy)
+
+-- | Behaves like 'lookupNewtypeConstructor' but also returns whether the
+-- newtype constructor is in scope and the module from which it is imported, or
+-- 'Nothing' if it is defined in the current module.
+lookupNewtypeConstructorInScope
+  :: Environment
+  -> Maybe ModuleName
+  -> [ ( SourceAnn
+       , ModuleName
+       , ImportDeclarationType
+       , Maybe ModuleName
+       , M.Map (ProperName 'TypeName) ([ProperName 'ConstructorName], ExportSource)
+       )
+     ]
+  -> Qualified (ProperName 'TypeName)
+  -> [SourceType]
+  -> Maybe (Bool, Maybe ModuleName, [Text], Qualified (ProperName 'ConstructorName), SourceType)
+lookupNewtypeConstructorInScope env currentModuleName currentModuleImports qualifiedNewtypeName@(Qualified newtypeModuleName newtypeName) ks = do
+  let fromModule = find isNewtypeCtorImported currentModuleImports
+      fromModuleName = (\(_, n, _, _, _) -> n) <$> fromModule
+      asModuleName = (\(_, _, _, n, _) -> n) =<< fromModule
+      isDefinedInCurrentModule = toMaybeModuleName newtypeModuleName == currentModuleName
+      isImported = isJust fromModule
+      inScope = isDefinedInCurrentModule || isImported
+  (tvs, ctorName, wrappedTy) <- lookupNewtypeConstructor env qualifiedNewtypeName ks
+  pure (inScope, fromModuleName, tvs, Qualified (byMaybeModuleName asModuleName) ctorName, wrappedTy)
+  where
+  isNewtypeCtorImported (_, _, importDeclType, _, exportedTypes) =
+    case M.lookup newtypeName exportedTypes of
+      Just ([_], _) -> case importDeclType of
+        Implicit -> True
+        Explicit refs -> any isNewtypeCtorRef refs
+        Hiding refs -> not $ any isNewtypeCtorRef refs
+      _ -> False
+  isNewtypeCtorRef = \case
+    TypeRef _ importedTyName Nothing -> importedTyName == newtypeName
+    TypeRef _ importedTyName (Just [_]) -> importedTyName == newtypeName
+    _ -> False
+
+-- | Constraints of the form @Coercible (N a_0 .. a_n) b@ yield a constraint
+-- @Coercible a b@ if unwrapping the newtype yields @a@.
+canonNewtypeLeft
+  :: MonadState CheckState m
+  => MonadWriter [ErrorMessageHint] m
+  => Environment
+  -> SourceType
+  -> SourceType
+  -> MaybeT m Canonicalized
+canonNewtypeLeft env a b =
+  unwrapNewtype env a >>= \case
+    Left CannotUnwrapInfiniteNewtypeChain -> empty
+    Left CannotUnwrapConstructor -> empty
+    Right a' -> pure . Canonicalized $ S.singleton (a', b)
+
+-- | Constraints of the form @Coercible a (N b_0 .. b_n)@ yield a constraint
+-- @Coercible a b@ if unwrapping the newtype yields @b@.
+canonNewtypeRight
+  :: MonadState CheckState m
+  => MonadWriter [ErrorMessageHint] m
+  => Environment
+  -> SourceType
+  -> SourceType
+  -> MaybeT m Canonicalized
+canonNewtypeRight env =
+  flip $ canonNewtypeLeft env
+
+-- | Decomposes constraints of the form @Coercible (D a_0 .. a_n) (D b_0 .. b_n)@
+-- into constraints on their representational arguments, ignoring phantom
+-- arguments and failing on unequal nominal arguments.
+--
+-- For instance given the declarations:
+--
+-- @
+-- data D a b c = D a b
+-- type role D nominal representational phantom
+-- @
+--
+-- We can decompose @Coercible (D a b d) (D a c e)@ into @Coercible b c@, but
+-- decomposing @Coercible (D a c d) (D b c d)@ would fail.
+decompose
+  :: MonadError MultipleErrors m
+  => Environment
+  -> Qualified (ProperName 'TypeName)
+  -> [SourceType]
+  -> [SourceType]
+  -> m Canonicalized
+decompose env tyName axs bxs = do
+  let roles = lookupRoles env tyName
+      f role ax bx = case role of
+        Nominal
+          -- If we had first-class equality constraints, we'd just
+          -- emit one of the form @(a ~ b)@ here and let the solver
+          -- recurse. Since we don't we must compare the types at
+          -- this point and fail if they don't match. This likely
+          -- means there are cases we should be able to handle that
+          -- we currently can't, but is at least sound.
+          | ax == bx ->
+              pure mempty
+          | otherwise ->
+              throwError . errorMessage $ TypesDoNotUnify ax bx
+        Representational ->
+          pure $ S.singleton (ax, bx)
+        Phantom ->
+          pure mempty
+  fmap (Canonicalized . fold) $ sequence $ zipWith3 f roles axs bxs
+
+-- | Constraints of the form @Coercible (D a_0 .. a_n) (D b_0 .. b_n)@, where
+-- @D@ is not a newtype, yield constraints on their arguments.
+canonDecomposition
+  :: MonadError MultipleErrors m
+  => Environment
+  -> SourceType
+  -> SourceType
+  -> MaybeT m Canonicalized
+canonDecomposition env a b
+  | (TypeConstructor _ aTyName, _, axs) <- unapplyTypes a
+  , (TypeConstructor _ bTyName, _, bxs) <- unapplyTypes b
+  , aTyName == bTyName
+  , Nothing <- lookupNewtypeConstructor env aTyName [] =
+      decompose env aTyName axs bxs
+  | otherwise = empty
+
+-- | Constraints of the form @Coercible (D1 a_0 .. a_n) (D2 b_0 .. b_n)@, where
+-- @D1@ and @D2@ are different type constructors and neither of them are
+-- newtypes, are insoluble.
+canonDecompositionFailure
+  :: MonadError MultipleErrors m
+  => Environment
+  -> SourceType
+  -> SourceType
+  -> SourceType
+  -> MaybeT m Canonicalized
+canonDecompositionFailure env k a b
+  | (TypeConstructor _ aTyName, _, _) <- unapplyTypes a
+  , (TypeConstructor _ bTyName, _, _) <- unapplyTypes b
+  , aTyName /= bTyName
+  , Nothing <- lookupNewtypeConstructor env aTyName []
+  , Nothing <- lookupNewtypeConstructor env bTyName [] =
+      throwError $ insoluble k a b
+  | otherwise = empty
+
+-- | Wanted constraints of the form @Coercible (N a_0 .. a_n) (N b_0 .. b_n)@,
+-- where @N@ is a newtype whose constructor is out of scope, yield constraints
+-- on their arguments only when no given constraint can discharge them.
+--
+-- We cannot decompose given constraints because newtypes are not necessarily
+-- injective with respect to representational equality.
+--
+-- For instance given the declaration:
+--
+-- @
+-- newtype Const a b = MkConst a
+-- type role Const representational representational
+-- @
+--
+-- Decomposing a given @Coercible (Const a a) (Const a b)@ constraint to
+-- @Coercible a b@ when @MkConst@ is out of scope would let us coerce arbitrary
+-- types in modules where @MkConst@ is imported, because the given is easily
+-- satisfied with the newtype unwrapping rules.
+--
+-- Moreover we do not decompose wanted constraints if they could be discharged
+-- by a given constraint.
+--
+-- For instance the declaration:
+--
+-- @
+-- example :: forall a b. Coercible (Const a a) (Const a b) => Const a a -> Const a b
+-- example = coerce
+-- @
+--
+-- yield an irreducible given @Coercible (Const a a) (Const a b)@ when @MkConst@
+-- is out of scope. Would we decompose the wanted
+-- @Coercible (Const a a) (Const a b)@ to @Coercible a b@ we would not be able
+-- to discharge it with the given.
+canonNewtypeDecomposition
+  :: MonadError MultipleErrors m
+  => Environment
+  -> Maybe [(SourceType, SourceType, SourceType)]
+  -> SourceType
+  -> SourceType
+  -> MaybeT m Canonicalized
+canonNewtypeDecomposition env (Just givens) a b
+  | (TypeConstructor _ aTyName, _, axs) <- unapplyTypes a
+  , (TypeConstructor _ bTyName, _, bxs) <- unapplyTypes b
+  , aTyName == bTyName
+  , Just _ <- lookupNewtypeConstructor env aTyName [] = do
+      let givensCanDischarge = any (\given -> canDischarge given (a, b)) givens
+      guard $ not givensCanDischarge
+      decompose env aTyName axs bxs
+canonNewtypeDecomposition _ _ _ _ = empty
+
+-- | Constraints of the form @Coercible (N1 a_0 .. a_n) (N2 b_0 .. b_n)@, where
+-- @N1@ and @N2@ are different type constructors and either of them is a
+-- newtype whose constructor is out of scope, are irreducible.
+canonNewtypeDecompositionFailure
+  :: Monad m
+  => SourceType
+  -> SourceType
+  -> MaybeT m Canonicalized
+canonNewtypeDecompositionFailure a b
+  | (TypeConstructor{}, _, _) <- unapplyTypes a
+  , (TypeConstructor{}, _, _) <- unapplyTypes b
+  = pure Irreducible
+  | otherwise = empty
+
+-- | Constraints of the form @Coercible tv1 tv2@ may be irreducibles, but only
+-- when the variables are lexicographically ordered. Reordering variables is
+-- necessary to prevent loops.
+--
+-- For instance the declaration:
+--
+-- @
+-- example :: forall a b. Coercible a b => Coercible b a => a -> b
+-- example = coerce
+-- @
+--
+-- yields the irreducible givens @Coercible a b@ and @Coercible b a@ which would
+-- repeatedly kick each other out the inert set whereas reordering the latter to
+-- @Coercible a b@ makes it redundant and let us discharge it.
+canonTypeVars
+  :: Monad m
+  => SourceType
+  -> SourceType
+  -> MaybeT m Canonicalized
+canonTypeVars a b
+  | Skolem _ tv1 _ _ _ <- a
+  , Skolem _ tv2 _ _ _ <- b
+  , tv2 < tv1
+  = pure . Canonicalized $ S.singleton (b, a)
+  | Skolem{} <- a, Skolem{} <- b
+  = pure Irreducible
+  | otherwise = empty
+
+-- | Constraints of the form @Coercible tv ty@ are irreducibles.
+canonTypeVarLeft
+  :: Monad m
+  => SourceType
+  -> SourceType
+  -> MaybeT m Canonicalized
+canonTypeVarLeft a _
+  | Skolem{} <- a = pure Irreducible
+  | otherwise = empty
+
+-- | Constraints of the form @Coercible ty tv@ are reordered to
+-- @Coercible tv ty@ to satisfy the canonicality requirement of having the type
+-- variable on the left.
+canonTypeVarRight
+  :: Monad m
+  => SourceType
+  -> SourceType
+  -> MaybeT m Canonicalized
+canonTypeVarRight a b
+  | Skolem{} <- b = pure . Canonicalized $ S.singleton (b, a)
+  | otherwise = empty
+
+-- | Constraints of the form @Coercible (f a_0 .. a_n) b@ are irreducibles.
+canonApplicationLeft
+  :: Monad m
+  => SourceType
+  -> SourceType
+  -> MaybeT m Canonicalized
+canonApplicationLeft a _
+  | TypeApp{} <- a = pure Irreducible
+  | otherwise = empty
+
+-- | Constraints of the form @Coercible a (f b_0 .. b_n) b@ are irreducibles.
+canonApplicationRight
+  :: Monad m
+  => SourceType
+  -> SourceType
+  -> MaybeT m Canonicalized
+canonApplicationRight _ b
+  | TypeApp{} <- b = pure Irreducible
+  | otherwise = empty
diff --git a/src/Language/PureScript/TypeChecker/Entailment/IntCompare.hs b/src/Language/PureScript/TypeChecker/Entailment/IntCompare.hs
new file mode 100644
--- /dev/null
+++ b/src/Language/PureScript/TypeChecker/Entailment/IntCompare.hs
@@ -0,0 +1,102 @@
+-- |
+-- Graph-based solver for comparing type-level numbers with respect to
+-- reflexivity, symmetry, and transitivity properties.
+--
+module Language.PureScript.TypeChecker.Entailment.IntCompare where
+
+import Protolude
+
+import Data.Graph qualified as G
+import Data.Map qualified as M
+
+import Language.PureScript.Names qualified as P
+import Language.PureScript.Types qualified as P
+import Language.PureScript.Constants.Prim qualified as P
+
+data Relation a
+  = Equal a a
+  | LessThan a a
+  deriving (Functor, Show, Eq, Ord)
+
+type Context a = [Relation a]
+
+type PSOrdering = P.Qualified (P.ProperName 'P.TypeName)
+
+-- Commentary:
+--
+-- In essence, this solver builds a directed graph using the provided
+-- context, which is then used to determine the relationship between
+-- the two elements being compared.
+--
+-- Given the context [a < b, b < c], we can infer that a < c as a
+-- path exists from a to c. Likewise, we can also infer that c > a
+-- as a path exists from c to a.
+--
+-- ╔═══╗    ╔═══╗    ╔═══╗
+-- ║ a ║ -> ║ b ║ -> ║ c ║
+-- ╚═══╝    ╚═══╝    ╚═══╝
+--
+-- Introducing equality to the context augments the graph further,
+-- and it is represented by creating cycles between equal nodes.
+-- For example, [a < b, b < c, c = d] yields the following graph:
+--
+-- ╔═══╗    ╔═══╗    ╔═══╗     ╔═══╗
+-- ║ a ║ -> ║ b ║ -> ║ c ║ <-> ║ d ║
+-- ╚═══╝    ╚═══╝    ╚═══╝     ╚═══╝
+solveRelation :: forall a. Ord a => Context a -> a -> a -> Maybe PSOrdering
+solveRelation context lhs rhs =
+  if lhs == rhs then
+    pure P.EQ
+  else do
+    let (graph, search) = inequalities
+    lhs' <- search lhs
+    rhs' <- search rhs
+    case (G.path graph lhs' rhs', G.path graph rhs' lhs') of
+      (True, True) ->
+        pure P.EQ
+      (True, False) ->
+        pure P.LT
+      (False, True) ->
+        pure P.GT
+      _ ->
+        Nothing
+  where
+  inequalities :: (G.Graph, a -> Maybe G.Vertex)
+  inequalities = makeGraph $ clean $ foldMap convert context
+    where
+    convert :: Relation a -> [(a, [a])]
+    convert (Equal a b)    = [(a, [b]), (b, [a])]
+    convert (LessThan a b) = [(a, [b]), (b, [])]
+
+    makeGraph :: [(a, [a])] -> (G.Graph, a -> Maybe G.Vertex)
+    makeGraph m =
+      case G.graphFromEdges $ (\(a, b) -> (a, a, b)) <$> m of
+        (g, _, f) -> (g, f)
+
+    clean :: forall k. Ord k => [(k, [k])] -> [(k, [k])]
+    clean = M.toList . M.fromListWith (<>)
+
+mkRelation :: P.Type a -> P.Type a -> P.Type a -> Maybe (Relation (P.Type a))
+mkRelation lhs rhs rel = case rel of
+  P.TypeConstructor _ ordering
+    | ordering == P.EQ -> pure $ Equal lhs rhs
+    | ordering == P.LT -> pure $ LessThan lhs rhs
+    | ordering == P.GT -> pure $ LessThan rhs lhs
+  _ ->
+    Nothing
+
+mkFacts :: [[P.Type a]] -> [Relation (P.Type a)]
+mkFacts = mkRels [] . sort . findFacts
+  where
+  mkRels a [] = concat a
+  mkRels a (x : xs) = mkRels (map (LessThan x) xs : a) xs
+
+  findFacts = mapMaybe $ \case
+    [P.TypeLevelInt _ _, P.TypeLevelInt _ _, _] ->
+      Nothing
+    [i@(P.TypeLevelInt _ _), _, _] ->
+      Just i
+    [_, i@(P.TypeLevelInt _ _), _] ->
+      Just i
+    _ ->
+      Nothing
diff --git a/src/Language/PureScript/TypeChecker/Kinds.hs b/src/Language/PureScript/TypeChecker/Kinds.hs
--- a/src/Language/PureScript/TypeChecker/Kinds.hs
+++ b/src/Language/PureScript/TypeChecker/Kinds.hs
@@ -1,276 +1,1020 @@
-{-# LANGUAGE FlexibleInstances #-}
-
--- |
--- This module implements the kind checker
---
-module Language.PureScript.TypeChecker.Kinds
-  ( kindOf
-  , kindOfWithScopedVars
-  , kindsOf
-  , kindsOfAll
-  ) where
-
-import Prelude.Compat
-
-import Control.Arrow (second)
-import Control.Monad
-import Control.Monad.Error.Class (MonadError(..))
-import Control.Monad.State
-
-import Data.Functor (($>))
-import qualified Data.Map as M
-import Data.Text (Text)
-import Data.Traversable (for)
-
-import Language.PureScript.Crash
-import Language.PureScript.Environment
-import Language.PureScript.Errors
-import Language.PureScript.Kinds
-import Language.PureScript.Names
-import Language.PureScript.TypeChecker.Monad
-import Language.PureScript.Types
-
--- | Generate a fresh kind variable
-freshKind :: (MonadState CheckState m) => SourceAnn -> m SourceKind
-freshKind ann = do
-  k <- gets checkNextKind
-  modify $ \st -> st { checkNextKind = k + 1 }
-  return $ KUnknown ann k
-
-freshKind' :: (MonadState CheckState m) => m SourceKind
-freshKind' = freshKind NullSourceAnn
-
--- | Update the substitution to solve a kind constraint
-solveKind
-  :: (MonadError MultipleErrors m, MonadState CheckState m)
-  => Int
-  -> SourceKind
-  -> m ()
-solveKind u k = do
-  occursCheck u k
-  modify $ \cs -> cs { checkSubstitution =
-                         (checkSubstitution cs) { substKind =
-                                                    M.insert u k $ substKind $ checkSubstitution cs
-                                                }
-                     }
-
--- | Apply a substitution to a kind
-substituteKind :: Substitution -> SourceKind -> SourceKind
-substituteKind sub = everywhereOnKinds go
-  where
-  go (KUnknown ann u) =
-    case M.lookup u (substKind sub) of
-      Nothing -> KUnknown ann u
-      Just (KUnknown ann' u1) | u1 == u -> KUnknown ann' u1
-      Just t -> substituteKind sub t
-  go other = other
-
--- | Make sure that an unknown does not occur in a kind
-occursCheck
-  :: (MonadError MultipleErrors m)
-  => Int
-  -> SourceKind
-  -> m ()
-occursCheck _ KUnknown{} = return ()
-occursCheck u k = void $ everywhereOnKindsM go k
-  where
-  go (KUnknown _ u') | u == u' = throwError . errorMessage . InfiniteKind $ k
-  go other = return other
-
--- | Unify two kinds
-unifyKinds
-  :: (MonadError MultipleErrors m, MonadState CheckState m)
-  => SourceKind
-  -> SourceKind
-  -> m ()
-unifyKinds k1 k2 = do
-  sub <- gets checkSubstitution
-  go (substituteKind sub k1) (substituteKind sub k2)
-  where
-  go (KUnknown _ u1) (KUnknown _ u2) | u1 == u2 = return ()
-  go (KUnknown _ u) k = solveKind u k
-  go k (KUnknown _ u) = solveKind u k
-  go (NamedKind _ k1') (NamedKind _ k2') | k1' == k2' = return ()
-  go (Row _ k1') (Row _ k2') = unifyKinds k1' k2'
-  go (FunKind _ k1' k2') (FunKind _ k3 k4) = do
-    unifyKinds k1' k3
-    unifyKinds k2' k4
-  go k1' k2' =
-    throwError
-      . errorMessage''' (fst . getAnnForKind <$> [k1', k2'])
-      $ KindsDoNotUnify k1' k2'
-
--- | Infer the kind of a single type
-kindOf
-  :: (MonadError MultipleErrors m, MonadState CheckState m)
-  => SourceType
-  -> m SourceKind
-kindOf ty = fst <$> kindOfWithScopedVars ty
-
--- | Infer the kind of a single type, returning the kinds of any scoped type variables
-kindOfWithScopedVars ::
-  (MonadError MultipleErrors m, MonadState CheckState m) =>
-  SourceType ->
-  m (SourceKind, [(Text, SourceKind)])
-kindOfWithScopedVars ty =
-  withErrorMessageHint (ErrorCheckingKind ty) $
-    fmap tidyUp . withFreshSubstitution . captureSubstitution $ infer ty
-  where
-  tidyUp ((k, args), sub) = ( starIfUnknown (substituteKind sub k)
-                            , map (second (starIfUnknown . substituteKind sub)) args
-                            )
-
--- | Infer the kind of a type constructor with a collection of arguments and a collection of associated data constructors
-kindsOf
-  :: (MonadError MultipleErrors m, MonadState CheckState m)
-  => Bool
-  -> ModuleName
-  -> ProperName 'TypeName
-  -> [(Text, Maybe SourceKind)]
-  -> [SourceType]
-  -> m SourceKind
-kindsOf isData moduleName name args ts = fmap tidyUp . withFreshSubstitution . captureSubstitution $ do
-  tyCon <- freshKind'
-  kargs <- replicateM (length args) $ freshKind'
-  rest <- zipWithM freshKindVar args kargs
-  let dict = (name, tyCon) : rest
-  bindLocalTypeVariables moduleName dict $
-    solveTypes isData ts kargs tyCon
-  where
-  tidyUp (k, sub) = starIfUnknown $ substituteKind sub k
-
-freshKindVar
-  :: (MonadError MultipleErrors m, MonadState CheckState m)
-  => (Text, Maybe SourceKind)
-  -> SourceKind
-  -> m (ProperName 'TypeName, SourceKind)
-freshKindVar (arg, Nothing) kind = return (ProperName arg, kind)
-freshKindVar (arg, Just kind') kind = do
-  unifyKinds kind kind'
-  return (ProperName arg, kind')
-
--- | Simultaneously infer the kinds of several mutually recursive type constructors
-kindsOfAll
-  :: (MonadError MultipleErrors m, MonadState CheckState m)
-  => ModuleName
-  -> [(SourceAnn, ProperName 'TypeName, [(Text, Maybe SourceKind)], SourceType)]
-  -> [(SourceAnn, ProperName 'TypeName, [(Text, Maybe SourceKind)], [SourceType])]
-  -> m ([SourceKind], [SourceKind])
-kindsOfAll moduleName syns tys = fmap tidyUp . withFreshSubstitution . captureSubstitution $ do
-  synVars <- for syns $ \(sa, _, _, _) -> freshKind sa
-  let dict = zipWith (\(_, name, _, _) var -> (name, var)) syns synVars
-  bindLocalTypeVariables moduleName dict $ do
-    tyCons <- for tys $ \(sa, _, _, _) -> freshKind sa
-    let dict' = zipWith (\(_, name, _, _) tyCon -> (name, tyCon)) tys tyCons
-    bindLocalTypeVariables moduleName dict' $ do
-      data_ks <- zipWithM (\tyCon (_, _, args, ts) -> do
-        kargs <- for args $ \(_, kind) -> maybe freshKind' (freshKind . getAnnForKind) kind
-        argDict <- zipWithM freshKindVar args kargs
-        bindLocalTypeVariables moduleName argDict $
-          solveTypes True ts kargs tyCon) tyCons tys
-      syn_ks <- zipWithM (\synVar (_, _, args, ty) -> do
-        kargs <- for args $ \(_, kind) -> maybe freshKind' (freshKind . getAnnForKind) kind
-        argDict <- zipWithM freshKindVar args kargs
-        bindLocalTypeVariables moduleName argDict $
-          solveTypes False [ty] kargs synVar) synVars syns
-      return (syn_ks, data_ks)
-  where
-  tidyUp ((ks1, ks2), sub) = (map (starIfUnknown . substituteKind sub) ks1, map (starIfUnknown . substituteKind sub) ks2)
-
--- | Solve the set of kind constraints associated with the data constructors for a type constructor
-solveTypes
-  :: (MonadError MultipleErrors m, MonadState CheckState m)
-  => Bool
-  -> [SourceType]
-  -> [SourceKind]
-  -> SourceKind
-  -> m SourceKind
-solveTypes isData ts kargs tyCon = do
-  ks <- traverse (fmap fst . infer) ts
-  when isData $ do
-    unifyKinds tyCon (foldr srcFunKind kindType kargs)
-    forM_ ks $ \k -> unifyKinds k (kindType $> getAnnForKind k)
-  unless isData $
-    unifyKinds tyCon (foldr srcFunKind (head ks) kargs)
-  return tyCon
-
--- | Default all unknown kinds to the kindType kind of types
-starIfUnknown :: Kind a -> Kind a
-starIfUnknown (KUnknown ann _) = kindType $> ann
-starIfUnknown (Row ann k) = Row ann (starIfUnknown k)
-starIfUnknown (FunKind ann k1 k2) = FunKind ann (starIfUnknown k1) (starIfUnknown k2)
-starIfUnknown k = k
-
--- | Infer a kind for a type
-infer
-  :: (MonadError MultipleErrors m, MonadState CheckState m)
-  => SourceType
-  -> m (SourceKind, [(Text, SourceKind)])
-infer ty =
-  withErrorMessageHint (ErrorCheckingKind ty)
-    . rethrowWithPosition (fst $ getAnnForType ty)
-    $ infer' ty
-
-infer'
-  :: forall m
-   . (MonadError MultipleErrors m, MonadState CheckState m)
-  => SourceType
-  -> m (SourceKind, [(Text, SourceKind)])
-infer' (ForAll ann ident mbK ty _) = do
-  k1 <- maybe (freshKind ann) pure mbK
-  moduleName <- unsafeCheckCurrentModule
-  (k2, args) <- bindLocalTypeVariables moduleName [(ProperName ident, k1)] $ infer ty
-  unifyKinds k2 kindType
-  return (kindType, (ident, k1) : args)
-infer' (KindedType _ ty k) = do
-  (k', args) <- infer ty
-  unifyKinds k k'
-  return (k', args)
-infer' other = (, []) <$> go other
-  where
-  go :: SourceType -> m SourceKind
-  go (ForAll ann ident mbK ty _) = do
-    k1 <- maybe (freshKind ann) pure mbK
-    moduleName <- unsafeCheckCurrentModule
-    k2 <- bindLocalTypeVariables moduleName [(ProperName ident, k1)] $ go ty
-    unifyKinds k2 kindType
-    return $ kindType $> ann
-  go (KindedType _ ty k) = do
-    k' <- go ty
-    unifyKinds k k'
-    return k'
-  go (TypeWildcard ann _) = freshKind ann
-  go (TUnknown ann _) = freshKind ann
-  go (TypeLevelString ann _) = return $ kindSymbol $> ann
-  go (TypeVar ann v) = do
-    moduleName <- unsafeCheckCurrentModule
-    ($> ann) <$> lookupTypeVariable moduleName (Qualified Nothing (ProperName v))
-  go (Skolem ann v _ _) = do
-    moduleName <- unsafeCheckCurrentModule
-    ($> ann) <$> lookupTypeVariable moduleName (Qualified Nothing (ProperName v))
-  go (TypeConstructor ann v) = do
-    env <- getEnv
-    case M.lookup v (types env) of
-      Nothing -> throwError . errorMessage' (fst ann) . UnknownName $ fmap TyName v
-      Just (kind, _) -> return $ kind $> ann
-  go (TypeApp ann t1 t2) = do
-    k0 <- freshKind ann
-    k1 <- go t1
-    k2 <- go t2
-    unifyKinds k1 (FunKind ann k2 k0)
-    return k0
-  go (REmpty ann) = do
-    k <- freshKind ann
-    return $ Row ann k
-  go (RCons ann _ ty row) = do
-    k1 <- go ty
-    k2 <- go row
-    unifyKinds k2 (Row ann k1)
-    return $ Row ann k1
-  go (ConstrainedType ann2 (Constraint ann1 className tys _) ty) = do
-    k1 <- go $ foldl (TypeApp ann2) (TypeConstructor ann1 (fmap coerceProperName className)) tys
-    unifyKinds k1 kindType
-    k2 <- go ty
-    unifyKinds k2 kindType
-    return $ kindType $> ann2
-  go ty = internalError $ "Invalid argument to infer: " ++ show ty
+-- |
+-- This module implements the kind checker
+--
+module Language.PureScript.TypeChecker.Kinds
+  ( kindOf
+  , kindOfWithUnknowns
+  , kindOfWithScopedVars
+  , kindOfData
+  , kindOfTypeSynonym
+  , kindOfClass
+  , kindsOfAll
+  , unifyKinds
+  , unifyKinds'
+  , subsumesKind
+  , instantiateKind
+  , checkKind
+  , inferKind
+  , elaborateKind
+  , checkConstraint
+  , checkInstanceDeclaration
+  , checkKindDeclaration
+  , checkTypeKind
+  , unknownsWithKinds
+  , freshKind
+  , freshKindWithKind
+  ) where
+
+import Prelude
+
+import Control.Arrow ((***))
+import Control.Lens ((^.), _1, _2, _3)
+import Control.Monad (join, unless, void, when, (<=<))
+import Control.Monad.Error.Class (MonadError(..))
+import Control.Monad.State (MonadState, gets, modify)
+import Control.Monad.Supply.Class (MonadSupply(..))
+
+import Data.Bifunctor (first, second)
+import Data.Bitraversable (bitraverse)
+import Data.Foldable (for_, traverse_)
+import Data.Function (on)
+import Data.Functor (($>))
+import Data.IntSet qualified as IS
+import Data.List (nubBy, sortOn, (\\))
+import Data.Map qualified as M
+import Data.Maybe (fromJust, fromMaybe)
+import Data.Text (Text)
+import Data.Text qualified as T
+import Data.Traversable (for)
+
+import Language.PureScript.Crash (HasCallStack, internalError)
+import Language.PureScript.Environment qualified as E
+import Language.PureScript.Errors
+import Language.PureScript.Names (pattern ByNullSourcePos, ModuleName, Name(..), ProperName(..), ProperNameType(..), Qualified(..), QualifiedBy(..), coerceProperName, mkQualified)
+import Language.PureScript.TypeChecker.Monad (CheckState(..), Substitution(..), UnkLevel(..), Unknown, bindLocalTypeVariables, debugType, getEnv, lookupTypeVariable, unsafeCheckCurrentModule, withErrorMessageHint, withFreshSubstitution)
+import Language.PureScript.TypeChecker.Skolems (newSkolemConstant, newSkolemScope, skolemize)
+import Language.PureScript.TypeChecker.Synonyms (replaceAllTypeSynonyms)
+import Language.PureScript.Types
+import Language.PureScript.Pretty.Types (prettyPrintType)
+
+generalizeUnknowns :: [(Unknown, SourceType)] -> SourceType -> SourceType
+generalizeUnknowns unks ty =
+  generalizeUnknownsWithVars (unknownVarNames (usedTypeVariables ty) unks) ty
+
+generalizeUnknownsWithVars :: [(Unknown, (Text, SourceType))] -> SourceType -> SourceType
+generalizeUnknownsWithVars binders ty =
+  mkForAll ((getAnnForType ty,) . fmap (Just . replaceUnknownsWithVars binders) . snd <$> binders) . replaceUnknownsWithVars binders $ ty
+
+replaceUnknownsWithVars :: [(Unknown, (Text, a))] -> SourceType -> SourceType
+replaceUnknownsWithVars binders ty
+  | null binders = ty
+  | otherwise = go ty
+  where
+  go :: SourceType -> SourceType
+  go = everywhereOnTypes $ \case
+    TUnknown ann unk | Just (name, _) <- lookup unk binders -> TypeVar ann name
+    other -> other
+
+unknownVarNames :: [Text] -> [(Unknown, SourceType)] -> [(Unknown, (Text, SourceType))]
+unknownVarNames used unks =
+  zipWith (\(a, b) n -> (a, (n, b))) unks $ allVars \\ used
+  where
+  allVars :: [Text]
+  allVars
+    | [_] <- unks = "k" : vars
+    | otherwise = vars
+
+  vars :: [Text]
+  vars = fmap (("k" <>) . T.pack . show) ([1..] :: [Int])
+
+apply :: (MonadState CheckState m) => SourceType -> m SourceType
+apply ty = flip substituteType ty <$> gets checkSubstitution
+
+substituteType :: Substitution -> SourceType -> SourceType
+substituteType sub = everywhereOnTypes $ \case
+  TUnknown ann u ->
+    case M.lookup u (substType sub) of
+      Nothing -> TUnknown ann u
+      Just (TUnknown ann' u1) | u1 == u -> TUnknown ann' u1
+      Just t -> substituteType sub t
+  other ->
+    other
+
+freshUnknown :: (MonadState CheckState m) => m Unknown
+freshUnknown = do
+  k <- gets checkNextType
+  modify $ \st -> st { checkNextType = k + 1 }
+  pure k
+
+freshKind :: (MonadState CheckState m) => SourceSpan -> m SourceType
+freshKind ss = freshKindWithKind ss E.kindType
+
+freshKindWithKind :: (MonadState CheckState m) => SourceSpan -> SourceType -> m SourceType
+freshKindWithKind ss kind = do
+  u <- freshUnknown
+  addUnsolved Nothing u kind
+  pure $ TUnknown (ss, []) u
+
+addUnsolved :: (MonadState CheckState m) => Maybe UnkLevel -> Unknown -> SourceType -> m ()
+addUnsolved lvl unk kind = modify $ \st -> do
+  let
+    newLvl = UnkLevel $ case lvl of
+      Nothing -> pure unk
+      Just (UnkLevel lvl') -> lvl' <> pure unk
+    subs = checkSubstitution st
+    uns = M.insert unk (newLvl, kind) $ substUnsolved subs
+  st { checkSubstitution = subs { substUnsolved = uns } }
+
+solve :: (MonadState CheckState m) => Unknown -> SourceType -> m ()
+solve unk solution = modify $ \st -> do
+  let
+    subs = checkSubstitution st
+    tys = M.insert unk solution $ substType subs
+  st { checkSubstitution = subs { substType = tys } }
+
+lookupUnsolved
+  :: (MonadState CheckState m, MonadError MultipleErrors m, HasCallStack)
+  => Unknown
+  -> m (UnkLevel, SourceType)
+lookupUnsolved u = do
+  uns <- gets (substUnsolved . checkSubstitution)
+  case M.lookup u uns of
+    Nothing -> internalCompilerError $ "Unsolved unification variable ?" <> T.pack (show u) <> " is not bound"
+    Just res -> return res
+
+unknownsWithKinds
+  :: forall m. (MonadState CheckState m, MonadError MultipleErrors m, HasCallStack)
+  => [Unknown]
+  -> m [(Unknown, SourceType)]
+unknownsWithKinds = fmap (fmap snd . nubBy ((==) `on` fst) . sortOn fst . join) . traverse go
+  where
+  go u = do
+    (lvl, ty) <- traverse apply =<< lookupUnsolved u
+    rest <- fmap join . traverse go . IS.toList . unknowns $ ty
+    pure $ (lvl, (u, ty)) : rest
+
+inferKind
+  :: (MonadError MultipleErrors m, MonadState CheckState m, HasCallStack)
+  => SourceType
+  -> m (SourceType, SourceType)
+inferKind = \tyToInfer ->
+  withErrorMessageHint (ErrorInferringKind tyToInfer)
+    . rethrowWithPosition (fst $ getAnnForType tyToInfer)
+    $ go tyToInfer
+  where
+  go = \case
+    ty@(TypeConstructor ann v) -> do
+      env <- getEnv
+      case M.lookup v (E.types env) of
+        Nothing ->
+          throwError . errorMessage' (fst ann) . UnknownName . fmap TyName $ v
+        Just (kind, E.LocalTypeVariable) -> do
+          kind' <- apply kind
+          pure (ty, kind' $> ann)
+        Just (kind, _) -> do
+          pure (ty, kind $> ann)
+    ConstrainedType ann' con@(Constraint ann v _ _ _) ty -> do
+      env <- getEnv
+      con' <- case M.lookup (coerceProperName <$> v) (E.types env) of
+        Nothing ->
+          throwError . errorMessage' (fst ann) . UnknownName . fmap TyClassName $ v
+        Just _ ->
+          checkConstraint con
+      ty' <- checkIsSaturatedType ty
+      con'' <- applyConstraint con'
+      pure (ConstrainedType ann' con'' ty', E.kindType $> ann')
+    ty@(TypeLevelString ann _) ->
+      pure (ty, E.kindSymbol $> ann)
+    ty@(TypeLevelInt ann _) ->
+      pure (ty, E.tyInt $> ann)
+    ty@(TypeVar ann v) -> do
+      moduleName <- unsafeCheckCurrentModule
+      kind <- apply =<< lookupTypeVariable moduleName (Qualified ByNullSourcePos $ ProperName v)
+      pure (ty, kind $> ann)
+    ty@(Skolem ann _ mbK _ _) -> do
+      kind <- apply $ fromMaybe (internalError "Skolem has no kind") mbK
+      pure (ty, kind $> ann)
+    ty@(TUnknown ann u) -> do
+      kind <- apply . snd =<< lookupUnsolved u
+      pure (ty, kind $> ann)
+    ty@(TypeWildcard ann _) -> do
+      k <- freshKind (fst ann)
+      pure (ty, k $> ann)
+    ty@(REmpty ann) -> do
+      pure (ty, E.kindOfREmpty $> ann)
+    ty@(RCons ann _ _ _) | (rowList, rowTail) <- rowToList ty -> do
+      kr <- freshKind (fst ann)
+      rowList' <- for rowList $ \(RowListItem a lbl t) ->
+        RowListItem a lbl <$> checkKind t kr
+      rowTail' <- checkKind rowTail $ E.kindRow kr
+      kr' <- apply kr
+      pure (rowFromList (rowList', rowTail'), E.kindRow kr' $> ann)
+    TypeApp ann t1 t2 -> do
+      (t1', k1) <- go t1
+      inferAppKind ann (t1', k1) t2
+    KindApp ann t1 t2 -> do
+      (t1', kind) <- bitraverse pure apply =<< go t1
+      case kind of
+        ForAll _ _ arg (Just argKind) resKind _ -> do
+          t2' <- checkKind t2 argKind
+          pure (KindApp ann t1' t2', replaceTypeVars arg t2' resKind)
+        _ ->
+          internalError "inferKind: unkinded forall binder"
+    KindedType _ t1 t2 -> do
+      t2' <- replaceAllTypeSynonyms . fst =<< go t2
+      t1' <- checkKind t1 t2'
+      t2'' <- apply t2'
+      pure (t1', t2'')
+    ForAll ann vis arg mbKind ty sc -> do
+      moduleName <- unsafeCheckCurrentModule
+      kind <- case mbKind of
+        Just k -> replaceAllTypeSynonyms =<< checkIsSaturatedType k
+        Nothing -> freshKind (fst ann)
+      (ty', unks) <- bindLocalTypeVariables moduleName [(ProperName arg, kind)] $ do
+        ty' <- apply =<< checkIsSaturatedType ty
+        unks <- unknownsWithKinds . IS.toList $ unknowns ty'
+        pure (ty', unks)
+      for_ unks . uncurry $ addUnsolved Nothing
+      pure (ForAll ann vis arg (Just kind) ty' sc, E.kindType $> ann)
+    ParensInType _ ty ->
+      go ty
+    ty ->
+      internalError $ "inferKind: Unimplemented case \n" <> prettyPrintType 100 ty
+
+inferAppKind
+  :: (MonadError MultipleErrors m, MonadState CheckState m, HasCallStack)
+  => SourceAnn
+  -> (SourceType, SourceType)
+  -> SourceType
+  -> m (SourceType, SourceType)
+inferAppKind ann (fn, fnKind) arg = case fnKind of
+  TypeApp _ (TypeApp _ arrKind argKind) resKind | eqType arrKind E.tyFunction -> do
+    expandSynonyms <- requiresSynonymsToExpand fn
+    arg' <- checkKind' expandSynonyms arg argKind
+    (TypeApp ann fn arg',) <$> apply resKind
+  TUnknown _ u -> do
+    (lvl, _) <- lookupUnsolved u
+    u1 <- freshUnknown
+    u2 <- freshUnknown
+    addUnsolved (Just lvl) u1 E.kindType
+    addUnsolved (Just lvl) u2 E.kindType
+    solve u $ (TUnknown ann u1 E.-:> TUnknown ann u2) $> ann
+    arg' <- checkKind arg $ TUnknown ann u1
+    pure (TypeApp ann fn arg', TUnknown ann u2)
+  ForAll _ _ a (Just k) ty _ -> do
+    u <- freshUnknown
+    addUnsolved Nothing u k
+    inferAppKind ann (KindApp ann fn (TUnknown ann u), replaceTypeVars a (TUnknown ann u) ty) arg
+  _ ->
+    cannotApplyTypeToType fn arg
+  where
+  requiresSynonymsToExpand = \case
+    TypeConstructor _ v -> M.notMember v . E.typeSynonyms <$> getEnv
+    TypeApp _ l _ -> requiresSynonymsToExpand l
+    KindApp _ l _ -> requiresSynonymsToExpand l
+    _ -> pure True
+
+cannotApplyTypeToType
+  :: (MonadError MultipleErrors m, MonadState CheckState m, HasCallStack)
+  => SourceType
+  -> SourceType
+  -> m a
+cannotApplyTypeToType fn arg = do
+  argKind <- snd <$> inferKind arg
+  _ <- checkKind fn . srcTypeApp (srcTypeApp E.tyFunction argKind) =<< freshKind nullSourceSpan
+  internalCompilerError . T.pack $ "Cannot apply type to type: " <> debugType (srcTypeApp fn arg)
+
+cannotApplyKindToType
+  :: (MonadError MultipleErrors m, MonadState CheckState m, HasCallStack)
+  => SourceType
+  -> SourceType
+  -> m a
+cannotApplyKindToType poly arg = do
+  let ann = getAnnForType arg
+  argKind <- snd <$> inferKind arg
+  _ <- checkKind poly . mkForAll [(ann, ("k", Just argKind))] =<< freshKind nullSourceSpan
+  internalCompilerError . T.pack $ "Cannot apply kind to type: " <> debugType (srcKindApp poly arg)
+
+checkKind
+  :: (MonadError MultipleErrors m, MonadState CheckState m, HasCallStack)
+  => SourceType
+  -> SourceType
+  -> m SourceType
+checkKind = checkKind' False
+
+-- | `checkIsSaturatedType t` is identical to `checkKind t E.kindType` except
+-- that the former checks that the type synonyms in `t` expand completely. This
+-- is the appropriate function to use when expanding the types of type
+-- parameter kinds, arguments to data constructors, etc., in order for the
+-- PartiallyAppliedSynonym error to take precedence over the KindsDoNotUnify
+-- error.
+--
+checkIsSaturatedType
+  :: (MonadError MultipleErrors m, MonadState CheckState m, HasCallStack)
+  => SourceType
+  -> m SourceType
+checkIsSaturatedType ty = checkKind' True ty E.kindType
+
+checkKind'
+  :: (MonadError MultipleErrors m, MonadState CheckState m, HasCallStack)
+  => Bool
+  -> SourceType
+  -> SourceType
+  -> m SourceType
+checkKind' requireSynonymsToExpand ty kind2 = do
+  withErrorMessageHint (ErrorCheckingKind ty kind2)
+    . rethrowWithPosition (fst $ getAnnForType ty) $ do
+        (ty', kind1) <- inferKind ty
+        kind1' <- apply kind1
+        kind2' <- apply kind2
+        when requireSynonymsToExpand $ void $ replaceAllTypeSynonyms ty'
+        instantiateKind (ty', kind1') kind2'
+
+instantiateKind
+  :: (MonadError MultipleErrors m, MonadState CheckState m, HasCallStack)
+  => (SourceType, SourceType)
+  -> SourceType
+  -> m SourceType
+instantiateKind (ty, kind1) kind2 = case kind1 of
+  ForAll _ _ a (Just k) t _ | shouldInstantiate kind2 -> do
+    let ann = getAnnForType ty
+    u <- freshKindWithKind (fst ann) k
+    instantiateKind (KindApp ann ty u, replaceTypeVars a u t) kind2
+  _ -> do
+    subsumesKind kind1 kind2
+    pure ty
+  where
+  shouldInstantiate = not . \case
+    ForAll _ _ _ _ _ _ -> True
+    _ -> False
+
+subsumesKind
+  :: (MonadError MultipleErrors m, MonadState CheckState m, HasCallStack)
+  => SourceType
+  -> SourceType
+  -> m ()
+subsumesKind = go
+  where
+  go = curry $ \case
+    (TypeApp _ (TypeApp _ arr1 a1) a2, TypeApp _ (TypeApp _ arr2 b1) b2)
+      | eqType arr1 E.tyFunction
+      , eqType arr2 E.tyFunction -> do
+          go b1 a1
+          join $ go <$> apply a2 <*> apply b2
+    (a, ForAll ann _ var mbKind b mbScope) -> do
+      scope <- maybe newSkolemScope pure mbScope
+      skolc <- newSkolemConstant
+      go a $ skolemize ann var mbKind skolc scope b
+    (ForAll ann _ var (Just kind) a _, b) -> do
+      a' <- freshKindWithKind (fst ann) kind
+      go (replaceTypeVars var a' a) b
+    (TUnknown ann u, b@(TypeApp _ (TypeApp _ arr _) _))
+      | eqType arr E.tyFunction
+      , IS.notMember u (unknowns b) ->
+          join $ go <$> solveUnknownAsFunction ann u <*> pure b
+    (a@(TypeApp _ (TypeApp _ arr _) _), TUnknown ann u)
+      | eqType arr E.tyFunction
+      , IS.notMember u (unknowns a) ->
+          join $ go <$> pure a <*> solveUnknownAsFunction ann u
+    (a, b) ->
+      unifyKinds a b
+
+unifyKinds
+  :: (MonadError MultipleErrors m, MonadState CheckState m, HasCallStack)
+  => SourceType
+  -> SourceType
+  -> m ()
+unifyKinds = unifyKindsWithFailure $ \w1 w2 ->
+  throwError
+    . errorMessage''' (fst . getAnnForType <$> [w1, w2])
+    $ KindsDoNotUnify w1 w2
+
+-- | Does not attach positions to the error node, instead relies on the
+-- | local position context. This is useful when invoking kind unification
+-- | outside of kind checker internals.
+unifyKinds'
+  :: (MonadError MultipleErrors m, MonadState CheckState m, HasCallStack)
+  => SourceType
+  -> SourceType
+  -> m ()
+unifyKinds' = unifyKindsWithFailure $ \w1 w2 ->
+  throwError
+    . errorMessage
+    $ KindsDoNotUnify w1 w2
+
+-- | Check the kind of a type, failing if it is not of kind *.
+checkTypeKind
+  :: (MonadError MultipleErrors m, MonadState CheckState m, HasCallStack)
+  => SourceType
+  -> SourceType
+  -> m ()
+checkTypeKind ty kind =
+  unifyKindsWithFailure (\_ _ -> throwError . errorMessage $ ExpectedType ty kind) kind E.kindType
+
+unifyKindsWithFailure
+  :: (MonadError MultipleErrors m, MonadState CheckState m, HasCallStack)
+  => (SourceType -> SourceType -> m ())
+  -> SourceType
+  -> SourceType
+  -> m ()
+unifyKindsWithFailure onFailure = go
+  where
+  goWithLabel l t1 t2 = withErrorMessageHint (ErrorInRowLabel l) $ go t1 t2
+  go = curry $ \case
+    (TypeApp _ p1 p2, TypeApp _ p3 p4) -> do
+      go p1 p3
+      join $ go <$> apply p2 <*> apply p4
+    (KindApp _ p1 p2, KindApp _ p3 p4) -> do
+      go p1 p3
+      join $ go <$> apply p2 <*> apply p4
+    (r1@(RCons _ _ _ _), r2) ->
+      unifyRows r1 r2
+    (r1, r2@(RCons _ _ _ _)) ->
+      unifyRows r1 r2
+    (r1@(REmpty _), r2) ->
+      unifyRows r1 r2
+    (r1, r2@(REmpty _)) ->
+      unifyRows r1 r2
+    (w1, w2) | eqType w1 w2 ->
+      pure ()
+    (TUnknown _ a', p1) ->
+      solveUnknown a' p1
+    (p1, TUnknown _ a') ->
+      solveUnknown a' p1
+    (w1, w2) ->
+      onFailure w1 w2
+
+  unifyRows r1 r2 = do
+    let (matches, rest) = alignRowsWith goWithLabel r1 r2
+    sequence_ matches
+    unifyTails rest
+
+  unifyTails = \case
+    (([], TUnknown _ a'), (rs, p1)) ->
+      solveUnknown a' $ rowFromList (rs, p1)
+    ((rs, p1), ([], TUnknown _ a')) ->
+      solveUnknown a' $ rowFromList (rs, p1)
+    (([], w1), ([], w2)) | eqType w1 w2 ->
+      pure ()
+    ((rs1, TUnknown _ u1), (rs2, TUnknown _ u2)) | u1 /= u2 -> do
+      rest <- freshKind nullSourceSpan
+      solveUnknown u1 $ rowFromList (rs2, rest)
+      solveUnknown u2 $ rowFromList (rs1, rest)
+    (w1, w2) ->
+      onFailure (rowFromList w1) (rowFromList w2)
+
+solveUnknown
+  :: (MonadError MultipleErrors m, MonadState CheckState m, HasCallStack)
+  => Unknown
+  -> SourceType
+  -> m ()
+solveUnknown a' p1 = do
+  p2 <- promoteKind a' p1
+  w1 <- snd <$> lookupUnsolved a'
+  join $ unifyKinds <$> apply w1 <*> elaborateKind p2
+  solve a' p2
+
+solveUnknownAsFunction
+  :: (MonadError MultipleErrors m, MonadState CheckState m, HasCallStack)
+  => SourceAnn
+  -> Unknown
+  -> m SourceType
+solveUnknownAsFunction ann u = do
+  lvl <- fst <$> lookupUnsolved u
+  u1 <- freshUnknown
+  u2 <- freshUnknown
+  addUnsolved (Just lvl) u1 E.kindType
+  addUnsolved (Just lvl) u2 E.kindType
+  let uarr = (TUnknown ann u1 E.-:> TUnknown ann u2) $> ann
+  solve u uarr
+  pure uarr
+
+promoteKind
+  :: (MonadError MultipleErrors m, MonadState CheckState m, HasCallStack)
+  => Unknown
+  -> SourceType
+  -> m SourceType
+promoteKind u2 ty = do
+  lvl2 <- fst <$> lookupUnsolved u2
+  flip everywhereOnTypesM ty $ \case
+    ty'@(TUnknown ann u1) -> do
+      when (u1 == u2) . throwError . errorMessage . InfiniteKind $ ty
+      (lvl1, k) <- lookupUnsolved u1
+      if lvl1 < lvl2 then
+        pure ty'
+      else do
+        k'  <- promoteKind u2 =<< apply k
+        u1' <- freshUnknown
+        addUnsolved (Just lvl2) u1' k'
+        solve u1 $ TUnknown ann u1'
+        pure $ TUnknown ann u1'
+    ty' ->
+      pure ty'
+
+elaborateKind
+  :: (MonadError MultipleErrors m, MonadState CheckState m, HasCallStack)
+  => SourceType
+  -> m SourceType
+elaborateKind = \case
+  TypeLevelString ann _ ->
+    pure $ E.kindSymbol $> ann
+  TypeLevelInt ann _ ->
+    pure $ E.tyInt $> ann
+  TypeConstructor ann v -> do
+    env <- getEnv
+    case M.lookup v (E.types env) of
+      Nothing ->
+        throwError . errorMessage' (fst ann) . UnknownName . fmap TyName $ v
+      Just (kind, _) ->
+        ($> ann) <$> apply kind
+  TypeVar ann a -> do
+    moduleName <- unsafeCheckCurrentModule
+    kind <- apply =<< lookupTypeVariable moduleName (Qualified ByNullSourcePos $ ProperName a)
+    pure (kind $> ann)
+  (Skolem ann _ mbK _ _) -> do
+    kind <- apply $ fromMaybe (internalError "Skolem has no kind") mbK
+    pure $ kind $> ann
+  TUnknown ann a' -> do
+    kind <- snd <$> lookupUnsolved a'
+    ($> ann) <$> apply kind
+  REmpty ann -> do
+    pure $ E.kindOfREmpty $> ann
+  RCons ann _ t1 _ -> do
+    k1 <- elaborateKind t1
+    pure $ E.kindRow k1 $> ann
+  ty@(TypeApp ann t1 t2) -> do
+    k1 <- elaborateKind t1
+    case k1 of
+      TypeApp _ (TypeApp _ k _) w2 | eqType k E.tyFunction -> do
+        pure $ w2 $> ann
+      -- Normally we wouldn't unify in `elaborateKind`, since an unknown should
+      -- always have a known kind. However, since type holes are fully inference
+      -- driven, they are unknowns with unknown kinds, which may require some
+      -- late unification here.
+      TUnknown a u -> do
+        _ <- solveUnknownAsFunction a u
+        elaborateKind ty
+      _ ->
+        cannotApplyTypeToType t1 t2
+  KindApp ann t1 t2 -> do
+    k1 <- elaborateKind t1
+    case k1 of
+      ForAll _ _ a _ n _ -> do
+        flip (replaceTypeVars a) n . ($> ann) <$> apply t2
+      _ ->
+        cannotApplyKindToType t1 t2
+  ForAll ann _ _ _ _ _ -> do
+    pure $ E.kindType $> ann
+  ConstrainedType ann _ _ ->
+    pure $ E.kindType $> ann
+  KindedType ann _ k ->
+    pure $ k $> ann
+  ty ->
+    throwError . errorMessage' (fst (getAnnForType ty)) $ UnsupportedTypeInKind ty
+
+checkEscapedSkolems :: MonadError MultipleErrors m => SourceType -> m ()
+checkEscapedSkolems ty =
+  traverse_ (throwError . toSkolemError)
+    . everythingWithContextOnTypes ty [] (<>) go
+    $ ty
+  where
+  go :: SourceType -> SourceType -> (SourceType, [(SourceSpan, Text, SourceType)])
+  go ty' = \case
+    Skolem ss name _ _ _ -> (ty', [(fst ss, name, ty')])
+    ty''@(KindApp _ _ _) -> (ty'', [])
+    _ -> (ty', [])
+
+  toSkolemError (ss, name, ty') =
+    errorMessage' (fst $ getAnnForType ty') $ EscapedSkolem name (Just ss) ty'
+
+kindOfWithUnknowns
+  :: (MonadError MultipleErrors m, MonadState CheckState m, HasCallStack)
+  => SourceType
+  -> m (([(Unknown, SourceType)], SourceType), SourceType)
+kindOfWithUnknowns ty = do
+  (ty', kind) <- kindOf ty
+  unks <- unknownsWithKinds . IS.toList $ unknowns ty'
+  pure ((unks, ty'), kind)
+
+-- | Infer the kind of a single type
+kindOf
+  :: (MonadError MultipleErrors m, MonadState CheckState m, HasCallStack)
+  => SourceType
+  -> m (SourceType, SourceType)
+kindOf = fmap (first snd) . kindOfWithScopedVars
+
+-- | Infer the kind of a single type, returning the kinds of any scoped type variables
+kindOfWithScopedVars
+  :: (MonadError MultipleErrors m, MonadState CheckState m, HasCallStack)
+  => SourceType
+  -> m (([(Text, SourceType)], SourceType), SourceType)
+kindOfWithScopedVars ty = do
+  (ty', kind) <- bitraverse apply (replaceAllTypeSynonyms <=< apply) =<< inferKind ty
+  let binders = fst . fromJust $ completeBinderList ty'
+  pure ((snd <$> binders, ty'), kind)
+
+type DataDeclarationArgs =
+  ( SourceAnn
+  , ProperName 'TypeName
+  , [(Text, Maybe SourceType)]
+  , [DataConstructorDeclaration]
+  )
+
+type DataDeclarationResult =
+  ( [(DataConstructorDeclaration, SourceType)]
+  -- The infered type signatures of data constructors
+  , SourceType
+  -- The inferred kind of the declaration
+  )
+
+kindOfData
+  :: forall m. (MonadError MultipleErrors m, MonadState CheckState m)
+  => ModuleName
+  -> DataDeclarationArgs
+  -> m DataDeclarationResult
+kindOfData moduleName dataDecl =
+  head . (^. _2) <$> kindsOfAll moduleName [] [dataDecl] []
+
+inferDataDeclaration
+  :: forall m. (MonadError MultipleErrors m, MonadState CheckState m)
+  => ModuleName
+  -> DataDeclarationArgs
+  -> m [(DataConstructorDeclaration, SourceType)]
+inferDataDeclaration moduleName (ann, tyName, tyArgs, ctors) = do
+  tyKind <- apply =<< lookupTypeVariable moduleName (Qualified ByNullSourcePos tyName)
+  let (sigBinders, tyKind') = fromJust . completeBinderList $ tyKind
+  bindLocalTypeVariables moduleName (first ProperName . snd <$> sigBinders) $ do
+    tyArgs' <- for tyArgs . traverse . maybe (freshKind (fst ann)) $ replaceAllTypeSynonyms <=< apply <=< checkIsSaturatedType
+    subsumesKind (foldr ((E.-:>) . snd) E.kindType tyArgs') tyKind'
+    bindLocalTypeVariables moduleName (first ProperName <$> tyArgs') $ do
+      let tyCtorName = srcTypeConstructor $ mkQualified tyName moduleName
+          tyCtor = foldl (\ty -> srcKindApp ty . srcTypeVar . fst . snd) tyCtorName sigBinders
+          tyCtor' = foldl (\ty -> srcTypeApp ty . srcTypeVar . fst) tyCtor tyArgs'
+          ctorBinders = fmap (fmap (fmap Just)) $ sigBinders <> fmap (nullSourceAnn,) tyArgs'
+          visibility = second (const TypeVarVisible) <$> tyArgs
+      for ctors $
+        fmap (fmap (addVisibility visibility . mkForAll ctorBinders)) . inferDataConstructor tyCtor'
+
+inferDataConstructor
+  :: forall m. (MonadError MultipleErrors m, MonadState CheckState m)
+  => SourceType
+  -> DataConstructorDeclaration
+  -> m (DataConstructorDeclaration, SourceType)
+inferDataConstructor tyCtor DataConstructorDeclaration{..} = do
+  dataCtorFields' <- traverse (traverse checkIsSaturatedType) dataCtorFields
+  dataCtor <- flip (foldr ((E.-:>) . snd)) dataCtorFields' <$> checkKind tyCtor E.kindType
+  pure ( DataConstructorDeclaration { dataCtorFields = dataCtorFields', .. }, dataCtor )
+
+type TypeDeclarationArgs =
+  ( SourceAnn
+  , ProperName 'TypeName
+  , [(Text, Maybe SourceType)]
+  , SourceType
+  )
+
+type TypeDeclarationResult =
+  ( SourceType
+  -- The elaborated rhs of the declaration
+  , SourceType
+  -- The inferred kind of the declaration
+  )
+
+kindOfTypeSynonym
+  :: forall m. (MonadError MultipleErrors m, MonadState CheckState m)
+  => ModuleName
+  -> TypeDeclarationArgs
+  -> m TypeDeclarationResult
+kindOfTypeSynonym moduleName typeDecl =
+  head . (^. _1) <$> kindsOfAll moduleName [typeDecl] [] []
+
+inferTypeSynonym
+  :: forall m. (MonadError MultipleErrors m, MonadState CheckState m)
+  => ModuleName
+  -> TypeDeclarationArgs
+  -> m SourceType
+inferTypeSynonym moduleName (ann, tyName, tyArgs, tyBody) = do
+  tyKind <- apply =<< lookupTypeVariable moduleName (Qualified ByNullSourcePos tyName)
+  let (sigBinders, tyKind') = fromJust . completeBinderList $ tyKind
+  bindLocalTypeVariables moduleName (first ProperName . snd <$> sigBinders) $ do
+    kindRes <- freshKind (fst ann)
+    tyArgs' <- for tyArgs . traverse . maybe (freshKind (fst ann)) $ replaceAllTypeSynonyms <=< apply <=< checkIsSaturatedType
+    unifyKinds tyKind' $ foldr ((E.-:>) . snd) kindRes tyArgs'
+    bindLocalTypeVariables moduleName (first ProperName <$> tyArgs') $ do
+      tyBodyAndKind <- traverse apply =<< inferKind tyBody
+      instantiateKind tyBodyAndKind =<< apply kindRes
+
+-- | Checks that a particular generalization is valid and well-scoped.
+-- | Implicitly generalized kinds are always elaborated before explicitly
+-- | quantified type variables. It's possible that such a kind can be
+-- | inserted before other variables that it depends on, making it
+-- | ill-scoped. We require that users explicitly generalize this kind
+-- | in such a case.
+checkQuantification
+  :: forall m. (MonadError MultipleErrors m)
+  => SourceType
+  -> m ()
+checkQuantification =
+  collectErrors . go [] [] . fst . fromJust . completeBinderList
+  where
+  collectErrors vars =
+    unless (null vars)
+      . throwError
+      . foldMap (\(ann, arg) -> errorMessage' (fst ann) $ QuantificationCheckFailureInKind arg)
+      $ vars
+
+  go acc _ [] = reverse acc
+  go acc sco ((_, (arg, k)) : rest)
+    | not . all (flip elem sco) $ freeTypeVariables k = goDeps acc arg rest
+    | otherwise = go acc (arg : sco) rest
+
+  goDeps acc _ [] = acc
+  goDeps acc karg ((ann, (arg, k)) : rest)
+    | isDep && arg == karg = (ann, arg) : acc
+    | isDep = goDeps ((ann, arg) : acc) karg rest
+    | otherwise = goDeps acc karg rest
+    where
+    isDep =
+      elem karg $ freeTypeVariables k
+
+checkVisibleTypeQuantification
+  :: forall m. (MonadError MultipleErrors m)
+  => SourceType
+  -> m ()
+checkVisibleTypeQuantification =
+  collectErrors . freeTypeVariables
+  where
+  collectErrors vars =
+    unless (null vars)
+      . throwError
+      . foldMap (errorMessage . VisibleQuantificationCheckFailureInType)
+      $ vars
+
+-- | Checks that there are no remaining unknowns in a type, and if so
+-- | throws an error. This is necessary for contexts where we can't
+-- | implicitly generalize unknowns, such as on the right-hand-side of
+-- | a type synonym, or in arguments to data constructors.
+checkTypeQuantification
+  :: forall m. (MonadError MultipleErrors m)
+  => SourceType
+  -> m ()
+checkTypeQuantification =
+  collectErrors . everythingWithContextOnTypes True [] (<>) unknownsInKinds
+  where
+  collectErrors tysWithUnks =
+    unless (null tysWithUnks) . throwError . foldMap toMultipleErrors $ tysWithUnks
+
+  toMultipleErrors (ss, unks, ty) =
+    errorMessage' ss $ QuantificationCheckFailureInType (IS.toList unks) ty
+
+  unknownsInKinds False _ = (False, [])
+  unknownsInKinds _ ty = case ty of
+    ForAll sa _ _ _ _ _ | unks <- unknowns ty, not (IS.null unks) ->
+      (False, [(fst sa, unks, ty)])
+    KindApp sa _ _ | unks <- unknowns ty, not (IS.null unks) ->
+      (False, [(fst sa, unks, ty)])
+    ConstrainedType sa _ _ | unks <- unknowns ty, not (IS.null unks) ->
+      (False, [(fst sa, unks, ty)])
+    _ ->
+      (True, [])
+
+type ClassDeclarationArgs =
+  ( SourceAnn
+  , ProperName 'ClassName
+  , [(Text, Maybe SourceType)]
+  , [SourceConstraint]
+  , [Declaration]
+  )
+
+type ClassDeclarationResult =
+  ( [(Text, SourceType)]
+  -- The kind annotated class arguments
+  , [SourceConstraint]
+  -- The kind annotated superclass constraints
+  , [Declaration]
+  -- The kind annotated declarations
+  , SourceType
+  -- The inferred kind of the declaration
+  )
+
+kindOfClass
+  :: forall m. (MonadError MultipleErrors m, MonadState CheckState m)
+  => ModuleName
+  -> ClassDeclarationArgs
+  -> m ClassDeclarationResult
+kindOfClass moduleName clsDecl =
+  head . (^. _3) <$> kindsOfAll moduleName [] [] [clsDecl]
+
+inferClassDeclaration
+  :: forall m. (MonadError MultipleErrors m, MonadState CheckState m)
+  => ModuleName
+  -> ClassDeclarationArgs
+  -> m ([(Text, SourceType)], [SourceConstraint], [Declaration])
+inferClassDeclaration moduleName (ann, clsName, clsArgs, superClasses, decls) = do
+  clsKind <- apply =<< lookupTypeVariable moduleName (Qualified ByNullSourcePos $ coerceProperName clsName)
+  let (sigBinders, clsKind') = fromJust . completeBinderList $ clsKind
+  bindLocalTypeVariables moduleName (first ProperName . snd <$> sigBinders) $ do
+    clsArgs' <- for clsArgs . traverse . maybe (freshKind (fst ann)) $ replaceAllTypeSynonyms <=< apply <=< checkIsSaturatedType
+    unifyKinds clsKind' $ foldr ((E.-:>) . snd) E.kindConstraint clsArgs'
+    bindLocalTypeVariables moduleName (first ProperName <$> clsArgs') $ do
+      (clsArgs',,)
+        <$> for superClasses checkConstraint
+        <*> for decls checkClassMemberDeclaration
+
+checkClassMemberDeclaration
+  :: forall m. (MonadError MultipleErrors m, MonadState CheckState m)
+  => Declaration
+  -> m Declaration
+checkClassMemberDeclaration = \case
+  TypeDeclaration (TypeDeclarationData ann ident ty) ->
+    TypeDeclaration . TypeDeclarationData ann ident <$> checkKind ty E.kindType
+  _ -> internalError "Invalid class member declaration"
+
+applyClassMemberDeclaration
+  :: forall m. (MonadError MultipleErrors m, MonadState CheckState m)
+  => Declaration
+  -> m Declaration
+applyClassMemberDeclaration = \case
+  TypeDeclaration (TypeDeclarationData ann ident ty) ->
+    TypeDeclaration . TypeDeclarationData ann ident <$> apply ty
+  _ -> internalError "Invalid class member declaration"
+
+mapTypeDeclaration :: (SourceType -> SourceType) -> Declaration -> Declaration
+mapTypeDeclaration f = \case
+  TypeDeclaration (TypeDeclarationData ann ident ty) ->
+    TypeDeclaration . TypeDeclarationData ann ident $ f ty
+  other ->
+    other
+
+checkConstraint
+  :: forall m. (MonadError MultipleErrors m, MonadState CheckState m)
+  => SourceConstraint
+  -> m SourceConstraint
+checkConstraint (Constraint ann clsName kinds args dat) = do
+  let ty = foldl (TypeApp ann) (foldl (KindApp ann) (TypeConstructor ann (fmap coerceProperName clsName)) kinds) args
+  (_, kinds', args') <- unapplyTypes <$> checkKind ty E.kindConstraint
+  pure $ Constraint ann clsName kinds' args' dat
+
+applyConstraint
+  :: forall m. (MonadError MultipleErrors m, MonadState CheckState m)
+  => SourceConstraint
+  -> m SourceConstraint
+applyConstraint (Constraint ann clsName kinds args dat) = do
+  let ty = foldl (TypeApp ann) (foldl (KindApp ann) (TypeConstructor ann (fmap coerceProperName clsName)) kinds) args
+  (_, kinds', args') <- unapplyTypes <$> apply ty
+  pure $ Constraint ann clsName kinds' args' dat
+
+type InstanceDeclarationArgs =
+  ( SourceAnn
+  , [SourceConstraint]
+  , Qualified (ProperName 'ClassName)
+  , [SourceType]
+  )
+
+type InstanceDeclarationResult =
+  ( [SourceConstraint]
+  , [SourceType]
+  , [SourceType]
+  , [(Text, SourceType)]
+  )
+
+checkInstanceDeclaration
+  :: forall m. (MonadError MultipleErrors m, MonadState CheckState m)
+  => ModuleName
+  -> InstanceDeclarationArgs
+  -> m InstanceDeclarationResult
+checkInstanceDeclaration moduleName (ann, constraints, clsName, args) = do
+  let ty = foldl (TypeApp ann) (TypeConstructor ann (fmap coerceProperName clsName)) args
+      tyWithConstraints = foldr srcConstrainedType ty constraints
+      freeVars = freeTypeVariables tyWithConstraints
+  freeVarsDict <- for freeVars $ \v -> (ProperName v,) <$> freshKind (fst ann)
+  bindLocalTypeVariables moduleName freeVarsDict $ do
+    ty' <- checkKind ty E.kindConstraint
+    constraints' <- for constraints checkConstraint
+    allTy <- apply $ foldr srcConstrainedType ty' constraints'
+    allUnknowns <- unknownsWithKinds . IS.toList . foldMap unknowns . (allTy :) =<< traverse (apply . snd) freeVarsDict
+    let unknownVars = unknownVarNames (usedTypeVariables allTy) allUnknowns
+    let allWithVars = replaceUnknownsWithVars unknownVars allTy
+    let (allConstraints, (_, allKinds, allArgs)) = unapplyTypes <$> unapplyConstraints allWithVars
+    varKinds <- traverse (traverse (fmap (replaceUnknownsWithVars unknownVars) . apply)) $ (snd <$> unknownVars) <> (first runProperName <$> freeVarsDict)
+    pure (allConstraints, allKinds, allArgs, varKinds)
+
+checkKindDeclaration
+  :: forall m. (MonadSupply m, MonadError MultipleErrors m, MonadState CheckState m)
+  => ModuleName
+  -> SourceType
+  -> m SourceType
+checkKindDeclaration _ ty = do
+  (ty', kind) <- kindOf ty
+  checkTypeKind kind E.kindType
+  ty'' <- replaceAllTypeSynonyms ty'
+  unks <- unknownsWithKinds . IS.toList $ unknowns ty''
+  finalTy <- generalizeUnknowns unks <$> freshenForAlls ty' ty''
+  checkQuantification finalTy
+  checkValidKind finalTy
+  where
+  -- When expanding type synonyms and generalizing, we need to generate more
+  -- unique names so that they don't clash or shadow other names, or can
+  -- be referenced (easily).
+  freshVar arg = (arg <>) . T.pack . show <$> fresh
+  freshenForAlls = curry $ \case
+    (ForAll _ _ v1 _ ty1 _, ForAll a2 vis v2 k2 ty2 sc2) | v1 == v2 -> do
+      ty2' <- freshenForAlls ty1 ty2
+      pure $ ForAll a2 vis v2 k2 ty2' sc2
+    (_, ty2) -> go ty2 where
+      go = \case
+        ForAll a' vis v' k' ty' sc' -> do
+          v'' <- freshVar v'
+          ty'' <- go (replaceTypeVars v' (TypeVar a' v'') ty')
+          pure $ ForAll a' vis v'' k' ty'' sc'
+        other -> pure other
+
+  checkValidKind = everywhereOnTypesM $ \case
+    ty'@(ConstrainedType ann _ _) ->
+      throwError . errorMessage' (fst ann) $ UnsupportedTypeInKind ty'
+    other -> pure other
+
+existingSignatureOrFreshKind
+  :: forall m. MonadState CheckState m
+  => ModuleName
+  -> SourceSpan
+  -> ProperName 'TypeName
+  -> m SourceType
+existingSignatureOrFreshKind moduleName ss name = do
+  env <- getEnv
+  case M.lookup (Qualified (ByModuleName moduleName) name) (E.types env) of
+    Nothing -> freshKind ss
+    Just (kind, _) -> pure kind
+
+kindsOfAll
+  :: forall m. (MonadError MultipleErrors m, MonadState CheckState m)
+  => ModuleName
+  -> [TypeDeclarationArgs]
+  -> [DataDeclarationArgs]
+  -> [ClassDeclarationArgs]
+  -> m ([TypeDeclarationResult], [DataDeclarationResult], [ClassDeclarationResult])
+kindsOfAll moduleName syns dats clss = withFreshSubstitution $ do
+  synDict <- for syns $ \(sa, synName, _, _) -> (synName,) <$> existingSignatureOrFreshKind moduleName (fst sa) synName
+  datDict <- for dats $ \(sa, datName, _, _) -> (datName,) <$> existingSignatureOrFreshKind moduleName (fst sa) datName
+  clsDict <- for clss $ \(sa, clsName, _, _, _) -> fmap (coerceProperName clsName,) $ existingSignatureOrFreshKind moduleName (fst sa) $ coerceProperName clsName
+  let bindingGroup = synDict <> datDict <> clsDict
+  bindLocalTypeVariables moduleName bindingGroup $ do
+    synResults <- for syns (inferTypeSynonym moduleName)
+    datResults <- for dats (inferDataDeclaration moduleName)
+    clsResults <- for clss (inferClassDeclaration moduleName)
+    synResultsWithUnks <- for (zip synDict synResults) $ \((synName, synKind), synBody) -> do
+      synKind' <- apply synKind
+      synBody' <- apply synBody
+      pure (((synName, synKind'), synBody'), unknowns synKind')
+    datResultsWithUnks <- for (zip datDict datResults) $ \((datName, datKind), ctors) -> do
+      datKind' <- apply datKind
+      ctors' <- traverse (bitraverse (traverseDataCtorFields (traverse (traverse apply))) apply) ctors
+      pure (((datName, datKind'), ctors'), unknowns datKind')
+    clsResultsWithUnks <- for (zip clsDict clsResults) $ \((clsName, clsKind), (args, supers, decls)) -> do
+      clsKind' <- apply clsKind
+      args' <- traverse (traverse apply) args
+      supers' <- traverse applyConstraint supers
+      decls' <- traverse applyClassMemberDeclaration decls
+      pure (((clsName, clsKind'), (args', supers', decls')), unknowns clsKind')
+    let synUnks = fmap (\(((synName, _), _), unks) -> (synName, unks)) synResultsWithUnks
+        datUnks = fmap (\(((datName, _), _), unks) -> (datName, unks)) datResultsWithUnks
+        clsUnks = fmap (\(((clsName, _), _), unks) -> (clsName, unks)) clsResultsWithUnks
+        tysUnks = synUnks <> datUnks <> clsUnks
+    allUnks <- unknownsWithKinds . IS.toList $ foldMap snd tysUnks
+    let mkTySub (name, unks) = do
+          let tyCtorName = mkQualified name moduleName
+              tyUnks = filter (flip IS.member unks . fst) allUnks
+              tyCtor = foldl (\ty -> srcKindApp ty . TUnknown nullSourceAnn . fst) (srcTypeConstructor tyCtorName) tyUnks
+          (tyCtorName, (tyCtor, tyUnks))
+        tySubs = fmap mkTySub tysUnks
+        replaceTypeCtors = everywhereOnTypes $ \case
+          TypeConstructor _ name
+            | Just (tyCtor, _) <- lookup name tySubs -> tyCtor
+          other -> other
+        clsResultsWithKinds = flip fmap clsResultsWithUnks $ \(((clsName, clsKind), (args, supers, decls)), _) -> do
+          let tyUnks = snd . fromJust $ lookup (mkQualified clsName moduleName) tySubs
+              (usedTypeVariablesInDecls, _, _, _, _) = accumTypes usedTypeVariables
+              usedVars = usedTypeVariables clsKind
+                      <> foldMap (usedTypeVariables . snd) args
+                      <> foldMap (foldMap usedTypeVariables . (\c -> constraintKindArgs c <> constraintArgs c)) supers
+                      <> foldMap usedTypeVariablesInDecls decls
+              unkBinders = unknownVarNames usedVars tyUnks
+              args' = fmap (replaceUnknownsWithVars unkBinders . replaceTypeCtors) <$> args
+              supers' = mapConstraintArgsAll (fmap (replaceUnknownsWithVars unkBinders . replaceTypeCtors)) <$> supers
+              decls' = mapTypeDeclaration (replaceUnknownsWithVars unkBinders . replaceTypeCtors) <$> decls
+          (args', supers', decls', generalizeUnknownsWithVars unkBinders clsKind)
+    datResultsWithKinds <- for datResultsWithUnks $ \(((datName, datKind), ctors), _) -> do
+      let tyUnks = snd . fromJust $ lookup (mkQualified datName moduleName) tySubs
+          replaceDataCtorField ty = replaceUnknownsWithVars (unknownVarNames (usedTypeVariables ty) tyUnks) $ replaceTypeCtors ty
+          ctors' = fmap (mapDataCtorFields (fmap (fmap replaceDataCtorField)) *** generalizeUnknowns tyUnks . replaceTypeCtors) ctors
+      traverse_ (traverse_ checkTypeQuantification) ctors'
+      pure (ctors', generalizeUnknowns tyUnks datKind)
+    synResultsWithKinds <- for synResultsWithUnks $ \(((synName, synKind), synBody), _) -> do
+      let tyUnks = snd . fromJust $ lookup (mkQualified synName moduleName) tySubs
+          unkBinders = unknownVarNames (usedTypeVariables synKind <> usedTypeVariables synBody) tyUnks
+          genBody = replaceUnknownsWithVars unkBinders $ replaceTypeCtors synBody
+          genSig = generalizeUnknownsWithVars unkBinders synKind
+      checkEscapedSkolems genBody
+      checkTypeQuantification genBody
+      checkVisibleTypeQuantification genSig
+      pure (genBody, genSig)
+    pure (synResultsWithKinds, datResultsWithKinds, clsResultsWithKinds)
diff --git a/src/Language/PureScript/TypeChecker/Monad.hs b/src/Language/PureScript/TypeChecker/Monad.hs
--- a/src/Language/PureScript/TypeChecker/Monad.hs
+++ b/src/Language/PureScript/TypeChecker/Monad.hs
@@ -1,4 +1,3 @@
-{-# LANGUAGE FlexibleInstances #-}
 {-# LANGUAGE GADTs #-}
 
 -- |
@@ -6,35 +5,70 @@
 --
 module Language.PureScript.TypeChecker.Monad where
 
-import Prelude.Compat
+import Prelude
 
 import Control.Arrow (second)
 import Control.Monad.Error.Class (MonadError(..))
-import Control.Monad.State
+import Control.Monad.State (MonadState(..), StateT(..), forM_, gets, guard, join, modify, when, (<=<))
 import Control.Monad.Writer.Class (MonadWriter(..), censor)
 
-import Data.Maybe
-import qualified Data.Map as M
-import Data.Text (Text)
-import qualified Data.List.NonEmpty as NEL
+import Data.Maybe (fromMaybe)
+import Data.Map qualified as M
+import Data.Set qualified as S
+import Data.Text (Text, isPrefixOf, unpack)
+import Data.List.NonEmpty qualified as NEL
 
 import Language.PureScript.Crash (internalError)
-import Language.PureScript.Environment
-import Language.PureScript.Errors
-import Language.PureScript.Kinds
-import Language.PureScript.Names
-import Language.PureScript.TypeClassDictionaries
-import Language.PureScript.Types
+import Language.PureScript.Environment (Environment(..), NameKind(..), NameVisibility(..), TypeClassData(..), TypeKind(..))
+import Language.PureScript.Errors (Context, ErrorMessageHint, ExportSource, Expr, ImportDeclarationType, MultipleErrors, SimpleErrorMessage(..), SourceAnn, SourceSpan(..), addHint, errorMessage, positionedError, rethrow, warnWithPosition)
+import Language.PureScript.Names (Ident(..), ModuleName, ProperName(..), ProperNameType(..), Qualified(..), QualifiedBy(..), coerceProperName, disqualify, runIdent, runModuleName, showQualified, toMaybeModuleName)
+import Language.PureScript.Pretty.Types (prettyPrintType)
+import Language.PureScript.Pretty.Values (prettyPrintValue)
+import Language.PureScript.TypeClassDictionaries (NamedDict, TypeClassDictionaryInScope(..))
+import Language.PureScript.Types (Constraint(..), SourceType, Type(..), srcKindedType, srcTypeVar)
+import Text.PrettyPrint.Boxes (render)
 
--- | A substitution of unification variables for types or kinds
+newtype UnkLevel = UnkLevel (NEL.NonEmpty Unknown)
+  deriving (Eq, Show)
+
+-- This instance differs from the NEL instance in that longer but otherwise
+-- equal paths are LT rather than GT. An extended path puts it *before* its root.
+instance Ord UnkLevel where
+  compare (UnkLevel a) (UnkLevel b) =
+    go (NEL.toList a) (NEL.toList b)
+    where
+    go [] [] = EQ
+    go _  [] = LT
+    go [] _  = GT
+    go (x:xs) (y:ys) =
+      compare x y <> go xs ys
+
+-- | A substitution of unification variables for types.
 data Substitution = Substitution
-  { substType :: M.Map Int SourceType -- ^ Type substitution
-  , substKind :: M.Map Int SourceKind -- ^ Kind substitution
+  { substType :: M.Map Int SourceType
+  -- ^ Type substitution
+  , substUnsolved :: M.Map Int (UnkLevel, SourceType)
+  -- ^ Unsolved unification variables with their level (scope ordering) and kind
+  , substNames :: M.Map Int Text
+  -- ^ The original names of unknowns
   }
 
+insertUnkName :: (MonadState CheckState m) => Unknown -> Text -> m ()
+insertUnkName u t = do
+  modify (\s ->
+            s { checkSubstitution =
+                  (checkSubstitution s) { substNames =
+                                            M.insert u t $ substNames $ checkSubstitution s
+                                        }
+              }
+         )
+
+lookupUnkName :: (MonadState CheckState m) => Unknown -> m (Maybe Text)
+lookupUnkName u = gets $ M.lookup u . substNames . checkSubstitution
+
 -- | An empty substitution
 emptySubstitution :: Substitution
-emptySubstitution = Substitution M.empty M.empty
+emptySubstitution = Substitution M.empty M.empty M.empty
 
 -- | State required for type checking
 data CheckState = CheckState
@@ -42,14 +76,24 @@
   -- ^ The current @Environment@
   , checkNextType :: Int
   -- ^ The next type unification variable
-  , checkNextKind :: Int
-  -- ^ The next kind unification variable
   , checkNextSkolem :: Int
   -- ^ The next skolem variable
   , checkNextSkolemScope :: Int
   -- ^ The next skolem scope constant
   , checkCurrentModule :: Maybe ModuleName
   -- ^ The current module
+  , checkCurrentModuleImports ::
+      [ ( SourceAnn
+        , ModuleName
+        , ImportDeclarationType
+        , Maybe ModuleName
+        , M.Map (ProperName 'TypeName) ([ProperName 'ConstructorName], ExportSource)
+        )
+      ]
+  -- ^ The current module imports and their exported types.
+  -- Newtype constructors have to be in scope for some Coercible constraints to
+  -- be solvable, so we need to know which constructors are imported and whether
+  -- they are actually defined in or re-exported from the imported modules.
   , checkSubstitution :: Substitution
   -- ^ The current substitution
   , checkHints :: [ErrorMessageHint]
@@ -57,11 +101,14 @@
   -- This goes into state, rather than using 'rethrow',
   -- since this way, we can provide good error messages
   -- during instance resolution.
+  , checkConstructorImportsForCoercible :: S.Set (ModuleName, Qualified (ProperName 'ConstructorName))
+  -- ^ Newtype constructors imports required to solve Coercible constraints.
+  -- We have to keep track of them so that we don't emit unused import warnings.
   }
 
 -- | Create an empty @CheckState@
 emptyCheckState :: Environment -> CheckState
-emptyCheckState env = CheckState env 0 0 0 0 Nothing emptySubstitution []
+emptyCheckState env = CheckState env 0 0 0 Nothing [] emptySubstitution [] mempty
 
 -- | Unification variables
 type Unknown = Int
@@ -82,7 +129,7 @@
 -- | Temporarily bind a collection of names to types
 bindTypes
   :: MonadState CheckState m
-  => M.Map (Qualified (ProperName 'TypeName)) (SourceKind, TypeKind)
+  => M.Map (Qualified (ProperName 'TypeName)) (SourceType, TypeKind)
   -> m a
   -> m a
 bindTypes newNames action = do
@@ -96,15 +143,15 @@
 withScopedTypeVars
   :: (MonadState CheckState m, MonadWriter MultipleErrors m)
   => ModuleName
-  -> [(Text, SourceKind)]
+  -> [(Text, SourceType)]
   -> m a
   -> m a
 withScopedTypeVars mn ks ma = do
   orig <- get
   forM_ ks $ \(name, _) ->
-    when (Qualified (Just mn) (ProperName name) `M.member` types (checkEnv orig)) $
+    when (Qualified (ByModuleName mn) (ProperName name) `M.member` types (checkEnv orig)) $
       tell . errorMessage $ ShadowedTypeVar name
-  bindTypes (M.fromList (map (\(name, k) -> (Qualified (Just mn) (ProperName name), (k, ScopedTypeVar))) ks)) ma
+  bindTypes (M.fromList (map (\(name, k) -> (Qualified (ByModuleName mn) (ProperName name), (k, ScopedTypeVar))) ks)) ma
 
 withErrorMessageHint
   :: (MonadState CheckState m, MonadError MultipleErrors m)
@@ -149,8 +196,8 @@
 
   let mentries =
         M.fromListWith (M.unionWith (M.unionWith (<>)))
-          [ (mn, M.singleton className (M.singleton (tcdValue entry) (pure entry)))
-          | entry@TypeClassDictionaryInScope{ tcdValue = Qualified mn _, tcdClassName = className }
+          [ (qb, M.singleton className (M.singleton tcdValue (pure entry)))
+          | entry@TypeClassDictionaryInScope{ tcdValue = tcdValue@(Qualified qb _), tcdClassName = className }
               <- entries
           ]
 
@@ -162,20 +209,20 @@
 -- | Get the currently available map of type class dictionaries
 getTypeClassDictionaries
   :: (MonadState CheckState m)
-  => m (M.Map (Maybe ModuleName) (M.Map (Qualified (ProperName 'ClassName)) (M.Map (Qualified Ident) (NEL.NonEmpty NamedDict))))
-getTypeClassDictionaries = typeClassDictionaries . checkEnv <$> get
+  => m (M.Map QualifiedBy (M.Map (Qualified (ProperName 'ClassName)) (M.Map (Qualified Ident) (NEL.NonEmpty NamedDict))))
+getTypeClassDictionaries = gets $ typeClassDictionaries . checkEnv
 
 -- | Lookup type class dictionaries in a module.
 lookupTypeClassDictionaries
   :: (MonadState CheckState m)
-  => Maybe ModuleName
+  => QualifiedBy
   -> m (M.Map (Qualified (ProperName 'ClassName)) (M.Map (Qualified Ident) (NEL.NonEmpty NamedDict)))
-lookupTypeClassDictionaries mn = fromMaybe M.empty . M.lookup mn . typeClassDictionaries . checkEnv <$> get
+lookupTypeClassDictionaries mn = gets $ fromMaybe M.empty . M.lookup mn . typeClassDictionaries . checkEnv
 
 -- | Lookup type class dictionaries in a module.
 lookupTypeClassDictionariesForClass
   :: (MonadState CheckState m)
-  => Maybe ModuleName
+  => QualifiedBy
   -> Qualified (ProperName 'ClassName)
   -> m (M.Map (Qualified Ident) (NEL.NonEmpty NamedDict))
 lookupTypeClassDictionariesForClass mn cn = fromMaybe M.empty . M.lookup cn <$> lookupTypeClassDictionaries mn
@@ -183,21 +230,21 @@
 -- | Temporarily bind a collection of names to local variables
 bindLocalVariables
   :: (MonadState CheckState m)
-  => [(Ident, SourceType, NameVisibility)]
+  => [(SourceSpan, Ident, SourceType, NameVisibility)]
   -> m a
   -> m a
 bindLocalVariables bindings =
-  bindNames (M.fromList $ flip map bindings $ \(name, ty, visibility) -> (Qualified Nothing name, (ty, Private, visibility)))
+  bindNames (M.fromList $ flip map bindings $ \(ss, name, ty, visibility) -> (Qualified (BySourcePos $ spanStart ss) name, (ty, Private, visibility)))
 
 -- | Temporarily bind a collection of names to local type variables
 bindLocalTypeVariables
   :: (MonadState CheckState m)
   => ModuleName
-  -> [(ProperName 'TypeName, SourceKind)]
+  -> [(ProperName 'TypeName, SourceType)]
   -> m a
   -> m a
 bindLocalTypeVariables moduleName bindings =
-  bindTypes (M.fromList $ flip map bindings $ \(pn, kind) -> (Qualified (Just moduleName) pn, (kind, LocalTypeVariable)))
+  bindTypes (M.fromList $ flip map bindings $ \(pn, kind) -> (Qualified (ByModuleName moduleName) pn, (kind, LocalTypeVariable)))
 
 -- | Update the visibility of all names to Defined
 makeBindingGroupVisible :: (MonadState CheckState m) => m ()
@@ -253,22 +300,26 @@
   :: (e ~ MultipleErrors, MonadState CheckState m, MonadError e m)
   => ModuleName
   -> Qualified (ProperName 'TypeName)
-  -> m SourceKind
-lookupTypeVariable currentModule (Qualified moduleName name) = do
+  -> m SourceType
+lookupTypeVariable currentModule (Qualified qb name) = do
   env <- getEnv
-  case M.lookup (Qualified (Just $ fromMaybe currentModule moduleName) name) (types env) of
+  case M.lookup (Qualified qb' name) (types env) of
     Nothing -> throwError . errorMessage $ UndefinedTypeVariable name
     Just (k, _) -> return k
+  where
+  qb' = ByModuleName $ case qb of
+    ByModuleName m -> m
+    BySourcePos _ -> currentModule
 
 -- | Get the current @Environment@
 getEnv :: (MonadState CheckState m) => m Environment
-getEnv = checkEnv <$> get
+getEnv = gets checkEnv
 
 -- | Get locally-bound names in context, to create an error message.
 getLocalContext :: MonadState CheckState m => m Context
 getLocalContext = do
   env <- getEnv
-  return [ (ident, ty') | (Qualified Nothing ident@Ident{}, (ty', _, Defined)) <- M.toList (names env) ]
+  return [ (ident, ty') | (Qualified (BySourcePos _) ident@Ident{}, (ty', _, Defined)) <- M.toList (names env) ]
 
 -- | Update the @Environment@
 putEnv :: (MonadState CheckState m) => Environment -> m ()
@@ -278,26 +329,15 @@
 modifyEnv :: (MonadState CheckState m) => (Environment -> Environment) -> m ()
 modifyEnv f = modify (\s -> s { checkEnv = f (checkEnv s) })
 
--- | Run a computation in the typechecking monad, starting with an empty @Environment@
-runCheck :: (Functor m) => StateT CheckState m a -> m (a, Environment)
-runCheck = runCheck' (emptyCheckState initEnvironment)
-
 -- | Run a computation in the typechecking monad, failing with an error, or succeeding with a return value and the final @Environment@.
-runCheck' :: (Functor m) => CheckState -> StateT CheckState m a -> m (a, Environment)
-runCheck' st check = second checkEnv <$> runStateT check st
+runCheck :: (Functor m) => CheckState -> StateT CheckState m a -> m (a, Environment)
+runCheck st check = second checkEnv <$> runStateT check st
 
 -- | Make an assertion, failing with an error message
 guardWith :: (MonadError e m) => e -> Bool -> m ()
 guardWith _ True = return ()
 guardWith e False = throwError e
 
--- | Run a computation in the substitution monad, generating a return value and the final substitution.
-captureSubstitution
-  :: MonadState CheckState m
-  => m a
-  -> m (a, Substitution)
-captureSubstitution = capturingSubstitution (,)
-
 capturingSubstitution
   :: MonadState CheckState m
   => (a -> Substitution -> b)
@@ -329,6 +369,116 @@
   :: forall m
    . (MonadError MultipleErrors m, MonadState CheckState m)
   => m ModuleName
-unsafeCheckCurrentModule = checkCurrentModule <$> get >>= \case
+unsafeCheckCurrentModule = gets checkCurrentModule >>= \case
   Nothing -> internalError "No module name set in scope"
   Just name -> pure name
+
+debugEnv :: Environment -> [String]
+debugEnv env = join
+  [ debugTypes env
+  , debugTypeSynonyms env
+  , debugTypeClasses env
+  , debugTypeClassDictionaries env
+  , debugDataConstructors env
+  , debugNames env
+  ]
+
+debugType :: Type a -> String
+debugType = init . prettyPrintType 100
+
+debugConstraint :: Constraint a -> String
+debugConstraint (Constraint ann clsName kinds args _) =
+  debugType $ foldl (TypeApp ann) (foldl (KindApp ann) (TypeConstructor ann (fmap coerceProperName clsName)) kinds) args
+
+debugTypes :: Environment -> [String]
+debugTypes = go <=< M.toList . types
+  where
+  go (qual, (srcTy, which)) = do
+    let
+      ppTy = prettyPrintType 100 srcTy
+      name = showQualified runProperName qual
+      decl = case which of
+        DataType _ _ _    -> "data"
+        TypeSynonym       -> "type"
+        ExternData _      -> "extern"
+        LocalTypeVariable -> "local"
+        ScopedTypeVar     -> "scoped"
+    guard (not ("Prim" `isPrefixOf` name))
+    pure $ decl <> " " <> unpack name <> " :: " <> init ppTy
+
+debugNames :: Environment -> [String]
+debugNames = fmap go . M.toList . names
+  where
+  go (qual, (srcTy, _, _)) = do
+    let
+      ppTy = prettyPrintType 100 srcTy
+      name = showQualified runIdent qual
+    unpack name <> " :: " <> init ppTy
+
+debugDataConstructors :: Environment -> [String]
+debugDataConstructors = fmap go . M.toList . dataConstructors
+  where
+  go (qual, (_, _, ty, _)) = do
+    let
+      ppTy = prettyPrintType 100 ty
+      name = showQualified runProperName qual
+    unpack name <> " :: " <> init ppTy
+
+debugTypeSynonyms :: Environment -> [String]
+debugTypeSynonyms = fmap go . M.toList . typeSynonyms
+  where
+  go (qual, (binders, subTy)) = do
+    let
+      vars = unwords $ flip fmap binders $ \case
+               (v, Just k) -> "(" <> unpack v <> " :: " <> init (prettyPrintType 100 k) <> ")"
+               (v, Nothing) -> unpack v
+      ppTy = prettyPrintType 100 subTy
+      name = showQualified runProperName qual
+    "type " <> unpack name <> " " <> vars <> " = " <> init ppTy
+
+debugTypeClassDictionaries :: Environment -> [String]
+debugTypeClassDictionaries = go . typeClassDictionaries
+  where
+  go tcds = do
+    (mbModuleName, classes) <- M.toList tcds
+    (className, instances) <- M.toList classes
+    (ident, dicts) <- M.toList instances
+    let
+      moduleName = maybe "" (\m -> "[" <> runModuleName m <> "] ") (toMaybeModuleName mbModuleName)
+      className' = showQualified runProperName className
+      ident' = showQualified runIdent ident
+      kds = unwords $ fmap ((\a -> "@(" <> a <> ")") . debugType) $ tcdInstanceKinds $ NEL.head dicts
+      tys = unwords $ fmap ((\a -> "(" <> a <> ")") . debugType) $ tcdInstanceTypes $ NEL.head dicts
+    pure $ "dict " <> unpack moduleName <> unpack className' <> " " <> unpack ident' <> " (" <> show (length dicts) <> ")" <> " " <> kds <> " " <> tys
+
+debugTypeClasses :: Environment -> [String]
+debugTypeClasses = fmap go . M.toList . typeClasses
+  where
+  go (className, tc) = do
+    let
+      className' = showQualified runProperName className
+      args = unwords $ (\(a, b) -> "(" <> debugType (maybe (srcTypeVar a) (srcKindedType (srcTypeVar a)) b) <> ")") <$> typeClassArguments tc
+    "class " <> unpack className' <> " " <> args
+
+debugValue :: Expr -> String
+debugValue = init . render . prettyPrintValue 100
+
+debugSubstitution :: Substitution -> [String]
+debugSubstitution (Substitution solved unsolved names) =
+  concat
+    [ fmap go1 (M.toList solved)
+    , fmap go2 (M.toList unsolved')
+    , fmap go3 (M.toList names)
+    ]
+  where
+  unsolved' =
+    M.filterWithKey (\k _ -> M.notMember k solved) unsolved
+
+  go1 (u, ty) =
+    "?" <> show u <> " = " <> debugType ty
+
+  go2 (u, (_, k)) =
+    "?" <> show u <> " :: " <> debugType k
+
+  go3 (u, t) =
+    unpack t <> show u
diff --git a/src/Language/PureScript/TypeChecker/Roles.hs b/src/Language/PureScript/TypeChecker/Roles.hs
new file mode 100644
--- /dev/null
+++ b/src/Language/PureScript/TypeChecker/Roles.hs
@@ -0,0 +1,263 @@
+{-# LANGUAGE TypeApplications #-}
+
+-- |
+-- Role inference
+--
+module Language.PureScript.TypeChecker.Roles
+  ( lookupRoles
+  , checkRoles
+  , checkRoleDeclarationArity
+  , inferRoles
+  , inferDataBindingGroupRoles
+  ) where
+
+import Prelude
+
+import Control.Arrow ((&&&))
+import Control.Monad (unless, when, zipWithM_)
+import Control.Monad.Error.Class (MonadError(..))
+import Control.Monad.State (MonadState(..), runState, state)
+import Data.Coerce (coerce)
+import Data.Map qualified as M
+import Data.Maybe (fromMaybe)
+import Data.Set qualified as S
+import Data.Semigroup (Any(..))
+import Data.Text (Text)
+
+import Language.PureScript.Environment (Environment(..), TypeKind(..))
+import Language.PureScript.Errors (DataConstructorDeclaration(..), MultipleErrors, RoleDeclarationData(..), SimpleErrorMessage(..), errorMessage)
+import Language.PureScript.Names (ModuleName, ProperName, ProperNameType(..), Qualified(..), QualifiedBy(..))
+import Language.PureScript.Roles (Role(..))
+import Language.PureScript.Types (Constraint(..), SourceType, Type(..), freeTypeVariables, unapplyTypes)
+
+-- |
+-- A map of a type's formal parameter names to their roles. This type's
+-- @Semigroup@ and @Monoid@ instances preserve the least-permissive role
+-- ascribed to any given variable, as defined by the @Role@ type's @Ord@
+-- instance. That is, a variable that has been marked as @Nominal@ can not
+-- later be marked @Representational@, and so on.
+newtype RoleMap = RoleMap { getRoleMap :: M.Map Text Role }
+
+instance Semigroup RoleMap where
+  (<>) =
+    coerce @(M.Map Text Role -> _ -> _) @(RoleMap -> _ -> _) (M.unionWith min)
+
+instance Monoid RoleMap where
+  mempty =
+    RoleMap M.empty
+
+type RoleEnv = M.Map (Qualified (ProperName 'TypeName)) [Role]
+
+typeKindRoles :: TypeKind -> Maybe [Role]
+typeKindRoles = \case
+  DataType _ args _ ->
+    Just $ map (\(_, _, role) -> role) args
+  ExternData roles ->
+    Just roles
+  _ ->
+    Nothing
+
+getRoleEnv :: Environment -> RoleEnv
+getRoleEnv env =
+  M.mapMaybe (typeKindRoles . snd) (types env)
+
+updateRoleEnv
+  :: Qualified (ProperName 'TypeName)
+  -> [Role]
+  -> RoleEnv
+  -> (Any, RoleEnv)
+updateRoleEnv qualTyName roles' roleEnv =
+  let roles = fromMaybe (repeat Phantom) $ M.lookup qualTyName roleEnv
+      mostRestrictiveRoles = zipWith min roles roles'
+      didRolesChange = any (uncurry (<)) $ zip mostRestrictiveRoles roles
+  in (Any didRolesChange, M.insert qualTyName mostRestrictiveRoles roleEnv)
+
+-- |
+-- Lookup the roles for a type in the environment. If the type does not have
+-- roles (e.g. is a type synonym or a type variable), then this function
+-- returns an empty list.
+--
+lookupRoles
+  :: Environment
+  -> Qualified (ProperName 'TypeName)
+  -> [Role]
+lookupRoles env tyName =
+  fromMaybe [] $ M.lookup tyName (types env) >>= typeKindRoles . snd
+
+-- |
+-- Compares the inferred roles to the explicitly declared roles and ensures
+-- that the explicitly declared roles are not more permissive than the
+-- inferred ones.
+--
+checkRoles
+  :: forall m
+   . (MonadError MultipleErrors m)
+  => [(Text, Maybe SourceType, Role)]
+    -- ^ type parameters for the data type whose roles we are checking
+  -> [Role]
+    -- ^ roles declared for the data type
+  -> m ()
+checkRoles tyArgs declaredRoles = do
+  let k (var, _, inf) dec =
+        when (inf < dec) . throwError . errorMessage $ RoleMismatch var inf dec
+  zipWithM_ k tyArgs declaredRoles
+
+checkRoleDeclarationArity
+  :: forall m
+   . (MonadError MultipleErrors m)
+  => ProperName 'TypeName
+  -> [Role]
+  -> Int
+  -> m ()
+checkRoleDeclarationArity tyName roles expected = do
+  let actual = length roles
+  unless (expected == actual) $
+    throwError . errorMessage $
+      RoleDeclarationArityMismatch tyName expected actual
+
+-- |
+-- Infers roles for the given data type declaration.
+--
+inferRoles
+  :: Environment
+  -> ModuleName
+  -> ProperName 'TypeName
+    -- ^ The name of the data type whose roles we are checking
+  -> [(Text, Maybe SourceType)]
+    -- ^ type parameters for the data type whose roles we are checking
+  -> [DataConstructorDeclaration]
+    -- ^ constructors of the data type whose roles we are checking
+  -> [Role]
+inferRoles env moduleName tyName tyArgs ctors =
+  inferDataBindingGroupRoles env moduleName [] [(tyName, tyArgs, ctors)] tyName tyArgs
+
+inferDataBindingGroupRoles
+  :: Environment
+  -> ModuleName
+  -> [RoleDeclarationData]
+  -> [DataDeclaration]
+  -> ProperName 'TypeName
+  -> [(Text, Maybe SourceType)]
+  -> [Role]
+inferDataBindingGroupRoles env moduleName roleDeclarations group =
+  let declaredRoleEnv = M.fromList $ map (Qualified (ByModuleName moduleName) . rdeclIdent &&& rdeclRoles) roleDeclarations
+      inferredRoleEnv = getRoleEnv env
+      initialRoleEnv = declaredRoleEnv `M.union` inferredRoleEnv
+      inferredRoleEnv' = inferDataBindingGroupRoles' moduleName group initialRoleEnv
+  in \tyName tyArgs ->
+        let qualTyName = Qualified (ByModuleName moduleName) tyName
+            inferredRoles = M.lookup qualTyName inferredRoleEnv'
+        in fromMaybe (Phantom <$ tyArgs) inferredRoles
+
+type DataDeclaration =
+  ( ProperName 'TypeName
+  , [(Text, Maybe SourceType)]
+  , [DataConstructorDeclaration]
+  )
+
+inferDataBindingGroupRoles'
+  :: ModuleName
+  -> [DataDeclaration]
+  -> RoleEnv
+  -> RoleEnv
+inferDataBindingGroupRoles' moduleName group roleEnv =
+  let (Any didRolesChange, roleEnv') = flip runState roleEnv $
+        mconcat <$> traverse (state . inferDataDeclarationRoles moduleName) group
+  in if didRolesChange
+     then inferDataBindingGroupRoles' moduleName group roleEnv'
+     else roleEnv'
+
+-- |
+-- Infers roles for the given data type declaration, along with a flag to tell
+-- if more restrictive roles were added to the environment.
+--
+inferDataDeclarationRoles
+  :: ModuleName
+  -> DataDeclaration
+  -> RoleEnv
+  -> (Any, RoleEnv)
+inferDataDeclarationRoles moduleName (tyName, tyArgs, ctors) roleEnv =
+  let qualTyName = Qualified (ByModuleName moduleName) tyName
+      ctorRoles = getRoleMap . foldMap (walk mempty . snd) $ ctors >>= dataCtorFields
+      inferredRoles = map (\(arg, _) -> fromMaybe Phantom (M.lookup arg ctorRoles)) tyArgs
+  in updateRoleEnv qualTyName inferredRoles roleEnv
+  where
+  -- This function is named @walk@ to match the specification given in the
+  -- "Role inference" section of the paper "Safe Zero-cost Coercions for
+  -- Haskell".
+  walk :: S.Set Text -> SourceType -> RoleMap
+  walk btvs (TypeVar _ v)
+    -- A type variable standing alone (e.g. @a@ in @data D a b = D a@) is
+    -- representational, _unless_ it has been bound by a quantifier, in which
+    -- case it is not actually a parameter to the type (e.g. @z@ in
+    -- @data T z = T (forall z. z -> z)@).
+    | S.member v btvs =
+        mempty
+    | otherwise =
+        RoleMap $ M.singleton v Representational
+  walk btvs (ForAll _ _ tv _ t _) =
+    -- We can walk under universal quantifiers as long as we make note of the
+    -- variables that they bind. For instance, given a definition
+    -- @data T z = T (forall z. z -> z)@, we will make note that @z@ is bound
+    -- by a quantifier so that we do not mark @T@'s parameter as
+    -- representational later on. Similarly, given a definition like
+    -- @data D a = D (forall r. r -> a)@, we'll mark @r@ as bound so that it
+    -- doesn't appear as a spurious parameter to @D@ when we complete
+    -- inference.
+    walk (S.insert tv btvs) t
+  walk btvs (ConstrainedType _ Constraint{..} t) =
+    -- For constrained types, mark all free variables in the constraint
+    -- arguments as nominal and recurse on the type beneath the constraint.
+    walk btvs t <> foldMap (freeNominals btvs) constraintArgs
+  walk btvs (RCons _ _ thead ttail) = do
+    -- For row types, we just walk along them and collect the results.
+    walk btvs thead <> walk btvs ttail
+  walk btvs (KindedType _ t _k) =
+    -- For kind-annotated types, discard the annotation and recurse on the
+    -- type beneath.
+    walk btvs t
+  walk btvs t
+    | (t1, _, t2s) <- unapplyTypes t
+    , not $ null t2s =
+        case t1 of
+          -- If the type is an application of a type constructor to some
+          -- arguments, recursively infer the roles of the type constructor's
+          -- arguments. For each (role, argument) pair:
+          --
+          -- - If the role is nominal, mark all free variables in the argument
+          -- as nominal also, since they cannot be coerced if the
+          -- argument's nominality is to be preserved.
+          --
+          -- - If the role is representational, recurse on the argument, since
+          -- its use of our parameters is important.
+          --
+          -- - If the role is phantom, terminate, since the argument's use of
+          -- our parameters is unimportant.
+          TypeConstructor _ t1Name ->
+            let
+              t1Roles = fromMaybe (repeat Phantom) $ M.lookup t1Name roleEnv
+              k role ti = case role of
+                Nominal ->
+                  freeNominals btvs ti
+                Representational ->
+                  go ti
+                Phantom ->
+                  mempty
+            in mconcat (zipWith k t1Roles t2s)
+          -- If the type is an application of any other type-level term, walk
+          -- that term to collect its roles and mark all free variables in
+          -- its argument as nominal.
+          _ -> do
+            go t1 <> foldMap (freeNominals btvs) t2s
+    | otherwise =
+        mempty
+    where
+      go = walk btvs
+
+-- Given a type, computes the list of free variables in that type
+-- (taking into account those bound in @walk@) and returns a @RoleMap@
+-- ascribing a nominal role to each of those variables.
+freeNominals :: S.Set Text -> SourceType -> RoleMap
+freeNominals btvs x =
+  let ftvs = filter (flip S.notMember btvs) (freeTypeVariables x)
+  in  RoleMap (M.fromList $ map (, Nominal) ftvs)
diff --git a/src/Language/PureScript/TypeChecker/Skolems.hs b/src/Language/PureScript/TypeChecker/Skolems.hs
--- a/src/Language/PureScript/TypeChecker/Skolems.hs
+++ b/src/Language/PureScript/TypeChecker/Skolems.hs
@@ -8,7 +8,7 @@
   , skolemEscapeCheck
   ) where
 
-import Prelude.Compat
+import Prelude
 
 import Control.Monad.Error.Class (MonadError(..))
 import Control.Monad.State.Class (MonadState(..), gets, modify)
@@ -16,12 +16,12 @@
 import Data.Functor.Identity (Identity(), runIdentity)
 import Data.Set (Set, fromList, notMember)
 import Data.Text (Text)
-import Language.PureScript.AST
-import Language.PureScript.Crash
-import Language.PureScript.Errors
+import Language.PureScript.AST (Binder(..), ErrorMessageHint(..), Expr(..), SourceAnn, SourceSpan, everythingWithContextOnValues, everywhereWithContextOnValuesM, nonEmptySpan)
+import Language.PureScript.Crash (internalError)
+import Language.PureScript.Errors (ErrorMessage(..), MultipleErrors, SimpleErrorMessage(..), positionedError, singleError)
 import Language.PureScript.Traversals (defS)
-import Language.PureScript.TypeChecker.Monad
-import Language.PureScript.Types
+import Language.PureScript.TypeChecker.Monad (CheckState(..))
+import Language.PureScript.Types (SkolemScope(..), SourceType, Type(..), everythingOnTypes, everywhereOnTypesM, replaceTypeVars)
 
 -- | Generate a new skolem constant
 newSkolemConstant :: MonadState CheckState m => m Int
@@ -30,11 +30,11 @@
   modify $ \st -> st { checkNextSkolem = s + 1 }
   return s
 
--- | Introduce skolem scope at every occurence of a ForAll
+-- | Introduce skolem scope at every occurrence of a ForAll
 introduceSkolemScope :: MonadState CheckState m => Type a -> m (Type a)
 introduceSkolemScope = everywhereOnTypesM go
   where
-  go (ForAll ann ident mbK ty Nothing) = ForAll ann ident mbK ty <$> (Just <$> newSkolemScope)
+  go (ForAll ann vis ident mbK ty Nothing) = ForAll ann vis ident mbK ty <$> (Just <$> newSkolemScope)
   go other = return other
 
 -- | Generate a new skolem scope
@@ -45,33 +45,35 @@
   return $ SkolemScope s
 
 -- | Skolemize a type variable by replacing its instances with fresh skolem constants
-skolemize :: a -> Text -> Int -> SkolemScope -> Type a -> Type a
-skolemize ann ident sko scope = replaceTypeVars ident (Skolem ann ident sko scope)
+skolemize :: a -> Text -> Maybe (Type a) -> Int -> SkolemScope -> Type a -> Type a
+skolemize ann ident mbK sko scope = replaceTypeVars ident (Skolem ann ident mbK sko scope)
 
 -- | This function skolemizes type variables appearing in any type signatures or
 -- 'DeferredDictionary' placeholders. These type variables are the only places
 -- where scoped type variables can appear in expressions.
-skolemizeTypesInValue :: SourceAnn -> Text -> Int -> SkolemScope -> Expr -> Expr
-skolemizeTypesInValue ann ident sko scope =
+skolemizeTypesInValue :: SourceAnn -> Text -> Maybe SourceType -> Int -> SkolemScope -> Expr -> Expr
+skolemizeTypesInValue ann ident mbK sko scope =
     runIdentity . onExpr'
   where
     onExpr' :: Expr -> Identity Expr
-    (_, onExpr', _, _, _) = everywhereWithContextOnValuesM [] defS onExpr onBinder defS defS
+    (_, onExpr', _, _, _, _) = everywhereWithContextOnValuesM [] defS onExpr onBinder defS defS defS
 
     onExpr :: [Text] -> Expr -> Identity ([Text], Expr)
     onExpr sco (DeferredDictionary c ts)
-      | ident `notElem` sco = return (sco, DeferredDictionary c (map (skolemize ann ident sko scope) ts))
+      | ident `notElem` sco = return (sco, DeferredDictionary c (map (skolemize ann ident mbK sko scope) ts))
     onExpr sco (TypedValue check val ty)
-      | ident `notElem` sco = return (sco ++ peelTypeVars ty, TypedValue check val (skolemize ann ident sko scope ty))
+      | ident `notElem` sco = return (sco ++ peelTypeVars ty, TypedValue check val (skolemize ann ident mbK sko scope ty))
+    onExpr sco (VisibleTypeApp val ty)
+      | ident `notElem` sco = return (sco ++ peelTypeVars ty, VisibleTypeApp val (skolemize ann ident mbK sko scope ty))
     onExpr sco other = return (sco, other)
 
     onBinder :: [Text] -> Binder -> Identity ([Text], Binder)
     onBinder sco (TypedBinder ty b)
-      | ident `notElem` sco = return (sco ++ peelTypeVars ty, TypedBinder (skolemize ann ident sko scope ty) b)
+      | ident `notElem` sco = return (sco ++ peelTypeVars ty, TypedBinder (skolemize ann ident mbK sko scope ty) b)
     onBinder sco other = return (sco, other)
 
     peelTypeVars :: SourceType -> [Text]
-    peelTypeVars (ForAll _ i _ ty _) = i : peelTypeVars ty
+    peelTypeVars (ForAll _ _ i _ ty _) = i : peelTypeVars ty
     peelTypeVars _ = []
 
 -- | Ensure skolem variables do not escape their scope
@@ -116,14 +118,14 @@
 
         -- Collect any scopes appearing in quantifiers at the top level
         collectScopes :: SourceType -> [SkolemScope]
-        collectScopes (ForAll _ _ _ t (Just sco)) = sco : collectScopes t
+        collectScopes (ForAll _ _ _ _ t (Just sco)) = sco : collectScopes t
         collectScopes ForAll{} = internalError "skolemEscapeCheck: No skolem scope"
         collectScopes _ = []
 
         -- Collect any skolem variables appearing in a type
         collectSkolems :: SourceType -> [(SourceAnn, Text, SkolemScope)]
         collectSkolems = everythingOnTypes (++) collect where
-          collect (Skolem ss name _ scope) = [(ss, name, scope)]
+          collect (Skolem ss name _ _ scope) = [(ss, name, scope)]
           collect _ = []
     go scos _ = (scos, [])
 skolemEscapeCheck _ = internalError "skolemEscapeCheck: untyped value"
diff --git a/src/Language/PureScript/TypeChecker/Subsumption.hs b/src/Language/PureScript/TypeChecker/Subsumption.hs
--- a/src/Language/PureScript/TypeChecker/Subsumption.hs
+++ b/src/Language/PureScript/TypeChecker/Subsumption.hs
@@ -1,12 +1,11 @@
 {-# LANGUAGE GADTs #-}
-{-# LANGUAGE TypeFamilies #-}
 
 -- | Subsumption checking
 module Language.PureScript.TypeChecker.Subsumption
   ( subsumes
   ) where
 
-import Prelude.Compat
+import Prelude
 
 import Control.Monad (when)
 import Control.Monad.Error.Class (MonadError(..))
@@ -17,14 +16,14 @@
 import Data.List.Ordered (minusBy')
 import Data.Ord (comparing)
 
-import Language.PureScript.AST
-import Language.PureScript.Crash
-import Language.PureScript.Environment
-import Language.PureScript.Errors
-import Language.PureScript.TypeChecker.Monad
-import Language.PureScript.TypeChecker.Skolems
-import Language.PureScript.TypeChecker.Unify
-import Language.PureScript.Types
+import Language.PureScript.AST (ErrorMessageHint(..), Expr(..), pattern NullSourceAnn)
+import Language.PureScript.Crash (internalError)
+import Language.PureScript.Environment (tyFunction, tyRecord)
+import Language.PureScript.Errors (MultipleErrors, SimpleErrorMessage(..), errorMessage, internalCompilerError)
+import Language.PureScript.TypeChecker.Monad (CheckState, getHints, getTypeClassDictionaries, withErrorMessageHint)
+import Language.PureScript.TypeChecker.Skolems (newSkolemConstant, skolemize)
+import Language.PureScript.TypeChecker.Unify (alignRowsWith, freshTypeWithKind, unifyTypes)
+import Language.PureScript.Types (RowListItem(..), SourceType, Type(..), eqType, isREmpty, replaceTypeVars, rowFromList)
 
 -- | Subsumption can operate in two modes:
 --
@@ -75,14 +74,15 @@
   -> SourceType
   -> SourceType
   -> m (Coercion mode)
-subsumes' mode (ForAll _ ident _ ty1 _) ty2 = do
-  replaced <- replaceVarWithUnknown ident ty1
+subsumes' mode (ForAll _ _ ident mbK ty1 _) ty2 = do
+  u <- maybe (internalCompilerError "Unelaborated forall") freshTypeWithKind mbK
+  let replaced = replaceTypeVars ident u ty1
   subsumes' mode replaced ty2
-subsumes' mode ty1 (ForAll _ ident _ ty2 sco) =
+subsumes' mode ty1 (ForAll _ _ ident mbK ty2 sco) =
   case sco of
     Just sco' -> do
       sko <- newSkolemConstant
-      let sk = skolemize NullSourceAnn ident sko sco' ty2
+      let sk = skolemize NullSourceAnn ident mbK sko sco' ty2
       subsumes' mode ty1 sk
     Nothing -> internalError "subsumes: unspecified skolem scope"
 subsumes' mode (TypeApp _ (TypeApp _ f1 arg1) ret1) (TypeApp _ (TypeApp _ f2 arg2) ret2) | eqType f1 tyFunction && eqType f2 tyFunction = do
@@ -103,17 +103,19 @@
   let addDicts val = App val (TypeClassDictionary con dicts hints)
   return (elaborate . addDicts)
 subsumes' mode (TypeApp _ f1 r1) (TypeApp _ f2 r2) | eqType f1 tyRecord && eqType f2 tyRecord = do
-    let (common, ((ts1', r1'), (ts2', r2'))) = alignRowsWith (subsumes' SNoElaborate) r1 r2
+    let goWithLabel l t1 t2 = withErrorMessageHint (ErrorInRowLabel l) $ subsumes' SNoElaborate t1 t2
+    let (common, ((ts1', r1'), (ts2', r2'))) = alignRowsWith goWithLabel r1 r2
     -- For { ts1 | r1 } to subsume { ts2 | r2 } when r1 is empty (= we're working with a closed row),
     -- every property in ts2 must appear in ts1. If not, then the candidate expression is missing a required property.
     -- Conversely, when r2 is empty, every property in ts1 must appear in ts2, or else the expression has
     -- an additional property which is not allowed.
-    when (eqType r1' $ REmpty ())
+    when (isREmpty r1')
       (for_ (firstMissingProp ts2' ts1') (throwError . errorMessage . PropertyIsMissing . rowListLabel))
-    when (eqType r2' $ REmpty ())
+    when (isREmpty r2')
       (for_ (firstMissingProp ts1' ts2') (throwError . errorMessage . AdditionalProperty . rowListLabel))
     -- Check subsumption for common labels
     sequence_ common
+    -- Inject the info here
     unifyTypes (rowFromList (ts1', r1')) (rowFromList (ts2', r2'))
     -- Nothing was elaborated, return the default coercion
     return (defaultCoercion mode)
diff --git a/src/Language/PureScript/TypeChecker/Synonyms.hs b/src/Language/PureScript/TypeChecker/Synonyms.hs
--- a/src/Language/PureScript/TypeChecker/Synonyms.hs
+++ b/src/Language/PureScript/TypeChecker/Synonyms.hs
@@ -5,58 +5,58 @@
 --
 module Language.PureScript.TypeChecker.Synonyms
   ( SynonymMap
+  , KindMap
   , replaceAllTypeSynonyms
-  , replaceAllTypeSynonymsM
   ) where
 
-import           Prelude.Compat
+import Prelude
 
-import           Control.Monad.Error.Class (MonadError(..))
-import           Control.Monad.State
-import           Data.Maybe (fromMaybe)
-import qualified Data.Map as M
-import           Data.Text (Text)
-import           Language.PureScript.Environment
-import           Language.PureScript.Errors
-import           Language.PureScript.Kinds
-import           Language.PureScript.Names
-import           Language.PureScript.TypeChecker.Monad
-import           Language.PureScript.Types
+import Control.Monad.Error.Class (MonadError(..))
+import Control.Monad.State (MonadState)
+import Data.Maybe (fromMaybe)
+import Data.Map qualified as M
+import Data.Text (Text)
+import Language.PureScript.Environment (Environment(..), TypeKind)
+import Language.PureScript.Errors (MultipleErrors, SimpleErrorMessage(..), SourceSpan, errorMessage')
+import Language.PureScript.Names (ProperName, ProperNameType(..), Qualified)
+import Language.PureScript.TypeChecker.Monad (CheckState, getEnv)
+import Language.PureScript.Types (SourceType, Type(..), completeBinderList, everywhereOnTypesTopDownM, getAnnForType, replaceAllTypeVars)
 
 -- | Type synonym information (arguments with kinds, aliased type), indexed by name
-type SynonymMap = M.Map (Qualified (ProperName 'TypeName)) ([(Text, Maybe SourceKind)], SourceType)
+type SynonymMap = M.Map (Qualified (ProperName 'TypeName)) ([(Text, Maybe SourceType)], SourceType)
 
+type KindMap = M.Map (Qualified (ProperName 'TypeName)) (SourceType, TypeKind)
+
 replaceAllTypeSynonyms'
   :: SynonymMap
+  -> KindMap
   -> SourceType
   -> Either MultipleErrors SourceType
-replaceAllTypeSynonyms' syns = everywhereOnTypesTopDownM try
+replaceAllTypeSynonyms' syns kinds = everywhereOnTypesTopDownM try
   where
   try :: SourceType -> Either MultipleErrors SourceType
-  try t = fromMaybe t <$> go 0 [] t
+  try t = fromMaybe t <$> go (fst $ getAnnForType t) 0 [] [] t
 
-  go :: Int -> [SourceType] -> SourceType -> Either MultipleErrors (Maybe SourceType)
-  go c args (TypeConstructor _ ctor)
+  go :: SourceSpan -> Int -> [SourceType] -> [SourceType] -> SourceType -> Either MultipleErrors (Maybe SourceType)
+  go ss c kargs args (TypeConstructor _ ctor)
     | Just (synArgs, body) <- M.lookup ctor syns
     , c == length synArgs
-    = let repl = replaceAllTypeVars (zip (map fst synArgs) args) body
+    , kindArgs <- lookupKindArgs ctor
+    , length kargs == length kindArgs
+    = let repl = replaceAllTypeVars (zip (map fst synArgs) args <> zip kindArgs kargs) body
       in Just <$> try repl
     | Just (synArgs, _) <- M.lookup ctor syns
     , length synArgs > c
-    = throwError . errorMessage $ PartiallyAppliedSynonym ctor
-  go c args (TypeApp _ f arg) = go (c + 1) (arg : args) f
-  go _ _ _ = return Nothing
+    = throwError . errorMessage' ss $ PartiallyAppliedSynonym ctor
+  go ss c kargs args (TypeApp _ f arg) = go ss (c + 1) kargs (arg : args) f
+  go ss c kargs args (KindApp _ f arg) = go ss c (arg : kargs) args f
+  go _ _ _ _ _ = return Nothing
 
+  lookupKindArgs :: Qualified (ProperName 'TypeName) -> [Text]
+  lookupKindArgs ctor = fromMaybe [] $ fmap (fmap (fst . snd) . fst) . completeBinderList . fst =<< M.lookup ctor kinds
+
 -- | Replace fully applied type synonyms
 replaceAllTypeSynonyms :: (e ~ MultipleErrors, MonadState CheckState m, MonadError e m) => SourceType -> m SourceType
 replaceAllTypeSynonyms d = do
   env <- getEnv
-  either throwError return $ replaceAllTypeSynonyms' (typeSynonyms env) d
-
--- | Replace fully applied type synonyms by explicitly providing a 'SynonymMap'.
-replaceAllTypeSynonymsM
-  :: MonadError MultipleErrors m
-  => SynonymMap
-  -> SourceType
-  -> m SourceType
-replaceAllTypeSynonymsM syns = either throwError pure . replaceAllTypeSynonyms' syns
+  either throwError return $ replaceAllTypeSynonyms' (typeSynonyms env) (types env) d
diff --git a/src/Language/PureScript/TypeChecker/TypeSearch.hs b/src/Language/PureScript/TypeChecker/TypeSearch.hs
--- a/src/Language/PureScript/TypeChecker/TypeSearch.hs
+++ b/src/Language/PureScript/TypeChecker/TypeSearch.hs
@@ -2,26 +2,26 @@
   ( typeSearch
   ) where
 
-import           Protolude
+import Protolude
 
-import           Control.Monad.Writer (WriterT, runWriterT)
-import qualified Data.Map                                    as Map
-import qualified Language.PureScript.TypeChecker.Entailment  as Entailment
+import Control.Monad.Writer (WriterT, runWriterT)
+import Data.Map qualified as Map
+import Language.PureScript.TypeChecker.Entailment qualified as Entailment
 
-import qualified Language.PureScript.TypeChecker.Monad       as TC
-import           Language.PureScript.TypeChecker.Subsumption
-import           Language.PureScript.TypeChecker.Unify       as P
+import Language.PureScript.TypeChecker.Monad qualified as TC
+import Language.PureScript.TypeChecker.Subsumption (subsumes)
+import Language.PureScript.TypeChecker.Unify       as P
 
-import           Control.Monad.Supply                        as P
-import           Language.PureScript.AST                     as P
-import           Language.PureScript.Environment             as P
-import           Language.PureScript.Errors                  as P
-import           Language.PureScript.Label
-import           Language.PureScript.Names                   as P
-import           Language.PureScript.Pretty.Types            as P
-import           Language.PureScript.TypeChecker.Skolems     as Skolem
-import           Language.PureScript.TypeChecker.Synonyms    as P
-import           Language.PureScript.Types                   as P
+import Control.Monad.Supply                        as P
+import Language.PureScript.AST                     as P
+import Language.PureScript.Environment             as P
+import Language.PureScript.Errors                  as P
+import Language.PureScript.Label (Label)
+import Language.PureScript.Names                   as P
+import Language.PureScript.Pretty.Types            as P
+import Language.PureScript.TypeChecker.Skolems     as Skolem
+import Language.PureScript.TypeChecker.Synonyms    as P
+import Language.PureScript.Types                   as P
 
 checkInEnvironment
   :: Environment
@@ -33,10 +33,10 @@
   . runExcept
   . evalWriterT
   . P.evalSupplyT 0
-  . TC.runCheck' (st { TC.checkEnv = env })
+  . TC.runCheck (st { TC.checkEnv = env })
 
 evalWriterT :: Monad m => WriterT b m r -> m r
-evalWriterT m = liftM fst (runWriterT m)
+evalWriterT m = fmap fst (runWriterT m)
 
 checkSubsume
   :: Maybe [(P.Ident, Entailment.InstanceContext, P.SourceConstraint)]
@@ -59,7 +59,7 @@
   userT' <- initializeSkolems userT
   envT' <- initializeSkolems envT
 
-  let dummyExpression = P.Var nullSourceSpan (P.Qualified Nothing (P.Ident "x"))
+  let dummyExpression = P.Var nullSourceSpan (P.Qualified P.ByNullSourcePos (P.Ident "x"))
 
   elab <- subsumes envT' userT'
   subst <- gets TC.checkSubstitution
@@ -93,8 +93,8 @@
 
   userT' <- initializeSkolems userT
 
-  rowType <- freshType
-  resultType <- freshType
+  rowType <- freshTypeWithKind (P.kindRow P.kindType)
+  resultType <- freshTypeWithKind P.kindType
   let recordFunction = srcTypeApp (srcTypeApp tyFunction (srcTypeApp tyRecord rowType)) resultType
   _ <- subsumes recordFunction userT'
   subst <- gets TC.checkSubstitution
@@ -123,8 +123,11 @@
     matchingNames = runTypeSearch (Map.map (\(ty, _, _) -> ty) (P.names env))
     matchingConstructors = runTypeSearch (Map.map (\(_, _, ty, _) -> ty) (P.dataConstructors env))
     (allLabels, matchingLabels) = accessorSearch unsolved env st type'
+
+    runPlainIdent (Qualified m (Ident k), v) = Just (Qualified m k, v)
+    runPlainIdent _ = Nothing
   in
-    ( (first (P.Qualified Nothing . ("_." <>) . P.prettyPrintLabel) <$> matchingLabels)
-      <> (first (map P.runIdent) <$> Map.toList matchingNames)
+    ( (first (P.Qualified P.ByNullSourcePos . ("_." <>) . P.prettyPrintLabel) <$> matchingLabels)
+      <> mapMaybe runPlainIdent (Map.toList matchingNames)
       <> (first (map P.runProperName) <$> Map.toList matchingConstructors)
     , if null allLabels then Nothing else Just allLabels)
diff --git a/src/Language/PureScript/TypeChecker/Types.hs b/src/Language/PureScript/TypeChecker/Types.hs
--- a/src/Language/PureScript/TypeChecker/Types.hs
+++ b/src/Language/PureScript/TypeChecker/Types.hs
@@ -1,11 +1,10 @@
-{-# LANGUAGE NamedFieldPuns #-}
-
 -- |
 -- This module implements the type checker
 --
 module Language.PureScript.TypeChecker.Types
   ( BindingGroupType(..)
   , typesOf
+  , checkTypeKind
   ) where
 
 {-
@@ -24,11 +23,11 @@
       Check a function of a given type returns a value of another type when applied to its arguments
 -}
 
-import Prelude.Compat
-import Protolude (ordNub)
+import Prelude
+import Protolude (ordNub, fold, atMay)
 
 import Control.Arrow (first, second, (***))
-import Control.Monad
+import Control.Monad (forM, forM_, guard, replicateM, unless, when, zipWithM, (<=<))
 import Control.Monad.Error.Class (MonadError(..))
 import Control.Monad.State.Class (MonadState(..), gets)
 import Control.Monad.Supply.Class (MonadSupply)
@@ -39,26 +38,27 @@
 import Data.Functor (($>))
 import Data.List (transpose, (\\), partition, delete)
 import Data.Maybe (fromMaybe)
+import Data.Text (Text)
 import Data.Traversable (for)
-import qualified Data.List.NonEmpty as NEL
-import qualified Data.Map as M
-import qualified Data.Set as S
+import Data.List.NonEmpty qualified as NEL
+import Data.Map qualified as M
+import Data.Set qualified as S
+import Data.IntSet qualified as IS
 
 import Language.PureScript.AST
-import Language.PureScript.Crash
+import Language.PureScript.Crash (internalError)
 import Language.PureScript.Environment
-import Language.PureScript.Errors
-import Language.PureScript.Kinds
-import Language.PureScript.Names
-import Language.PureScript.Traversals
-import Language.PureScript.TypeChecker.Entailment
-import Language.PureScript.TypeChecker.Kinds
+import Language.PureScript.Errors (ErrorMessage(..), MultipleErrors, SimpleErrorMessage(..), errorMessage, errorMessage', escalateWarningWhen, internalCompilerError, onErrorMessages, onTypesInErrorMessage, parU)
+import Language.PureScript.Names (pattern ByNullSourcePos, Ident(..), ModuleName, Name(..), ProperName(..), ProperNameType(..), Qualified(..), QualifiedBy(..), byMaybeModuleName, coerceProperName, freshIdent)
+import Language.PureScript.TypeChecker.Deriving (deriveInstance)
+import Language.PureScript.TypeChecker.Entailment (InstanceContext, newDictionaries, replaceTypeClassDictionaries)
+import Language.PureScript.TypeChecker.Kinds (checkConstraint, checkKind, checkTypeKind, kindOf, kindOfWithScopedVars, unifyKinds', unknownsWithKinds)
 import Language.PureScript.TypeChecker.Monad
-import Language.PureScript.TypeChecker.Skolems
-import Language.PureScript.TypeChecker.Subsumption
-import Language.PureScript.TypeChecker.Synonyms
-import Language.PureScript.TypeChecker.TypeSearch
-import Language.PureScript.TypeChecker.Unify
+import Language.PureScript.TypeChecker.Skolems (introduceSkolemScope, newSkolemConstant, newSkolemScope, skolemEscapeCheck, skolemize, skolemizeTypesInValue)
+import Language.PureScript.TypeChecker.Subsumption (subsumes)
+import Language.PureScript.TypeChecker.Synonyms (replaceAllTypeSynonyms)
+import Language.PureScript.TypeChecker.TypeSearch (typeSearch)
+import Language.PureScript.TypeChecker.Unify (freshTypeWithKind, replaceTypeWildcards, substituteType, unifyTypes, unknownsInType, varIfUnknown)
 import Language.PureScript.Types
 import Language.PureScript.Label (Label(..))
 import Language.PureScript.PSString (PSString)
@@ -75,6 +75,12 @@
 tvToExpr :: TypedValue' -> Expr
 tvToExpr (TypedValue' c e t) = TypedValue c e t
 
+-- | Lookup data about a type class in the @Environment@
+lookupTypeClass :: MonadState CheckState m => Qualified (ProperName 'ClassName) -> m TypeClassData
+lookupTypeClass name =
+  let findClass = fromMaybe (internalError "entails: type class not found in environment") . M.lookup name
+   in gets (findClass . typeClasses . checkEnv)
+
 -- | Infer the types of multiple mutually-recursive values, and return elaborated values including
 -- type class dictionaries and type annotations.
 typesOf
@@ -96,9 +102,12 @@
       -- Generalize and constrain the type
       currentSubst <- gets checkSubstitution
       let ty' = substituteType currentSubst ty
-          unsolvedTypeVars = ordNub $ unknownsInType ty'
-          generalized = generalize unsolved ty'
+          ty'' = constrain unsolved ty'
+      unsolvedTypeVarsWithKinds <- unknownsWithKinds . IS.toList . unknowns $ constrain unsolved ty''
+      let unsolvedTypeVars = IS.toList $ unknowns ty'
 
+      generalized <- varIfUnknown unsolvedTypeVarsWithKinds ty''
+
       when shouldGeneralize $ do
         -- Show the inferred type in a warning
         tell
@@ -110,21 +119,59 @@
           . throwError
           . errorMessage' ss
           $ CannotGeneralizeRecursiveFunction ident generalized
-        -- Make sure any unsolved type constraints only use type variables which appear
-        -- unknown in the inferred type.
-        forM_ unsolved $ \(_, _, con) -> do
-          -- We need information about functional dependencies, since we allow
-          -- ambiguous types to be inferred if they can be solved by some functional
-          -- dependency.
-          let findClass = fromMaybe (internalError "entails: type class not found in environment") . M.lookup (constraintClass con)
-          TypeClassData{ typeClassDependencies } <- gets (findClass . typeClasses . checkEnv)
-          let solved = foldMap (S.fromList . fdDetermined) typeClassDependencies
-          let constraintTypeVars = ordNub . foldMap (unknownsInType . fst) . filter ((`notElem` solved) . snd) $ zip (constraintArgs con) [0..]
-          when (any (`notElem` unsolvedTypeVars) constraintTypeVars) .
-            throwError
-              . onErrorMessages (replaceTypes currentSubst)
-              . errorMessage' ss
-              $ AmbiguousTypeVariables generalized con
+        -- We need information about functional dependencies, since we allow
+        -- ambiguous types to be inferred if they can be solved by some functional
+        -- dependency.
+        conData <- forM unsolved $ \(_, _, con) -> do
+          TypeClassData{ typeClassDependencies } <- lookupTypeClass $ constraintClass con
+          let
+            -- The set of unknowns mentioned in each argument.
+            unknownsForArg :: [S.Set Int]
+            unknownsForArg =
+              map (S.fromList . map snd . unknownsInType) (constraintArgs con)
+          pure (typeClassDependencies, unknownsForArg)
+        -- Make sure any unsolved type constraints are determined by the
+        -- type variables which appear unknown in the inferred type.
+        let
+          -- Take the closure of fundeps across constraints, to get more
+          -- and more solved variables until reaching a fixpoint.
+          solveFrom :: S.Set Int -> S.Set Int
+          solveFrom determined = do
+            let solved = solve1 determined
+            if solved `S.isSubsetOf` determined
+              then determined
+              else solveFrom (determined <> solved)
+          solve1 :: S.Set Int -> S.Set Int
+          solve1 determined = fold $ do
+            (tcDeps, conArgUnknowns) <- conData
+            let
+              lookupUnknowns :: Int -> Maybe (S.Set Int)
+              lookupUnknowns = atMay conArgUnknowns
+              unknownsDetermined :: Maybe (S.Set Int) -> Bool
+              unknownsDetermined Nothing = False
+              unknownsDetermined (Just unks) =
+                unks `S.isSubsetOf` determined
+            -- If all of the determining arguments of a particular fundep are
+            -- already determined, add the determined arguments from the fundep
+            tcDep <- tcDeps
+            guard $ all (unknownsDetermined . lookupUnknowns) (fdDeterminers tcDep)
+            map (fromMaybe S.empty . lookupUnknowns) (fdDetermined tcDep)
+        -- These unknowns can be determined from the body of the inferred
+        -- type (i.e. excluding the unknowns mentioned in the constraints)
+        let determinedFromType = S.fromList unsolvedTypeVars
+        -- These are all the unknowns mentioned in the constraints
+        let constraintTypeVars = fold (conData >>= snd)
+        let solved = solveFrom determinedFromType
+        let unsolvedVars = S.difference constraintTypeVars solved
+        let lookupUnkName' i = do
+              mn <- lookupUnkName i
+              pure (fromMaybe "t" mn, i)
+        unsolvedVarNames <- traverse lookupUnkName' (S.toList unsolvedVars)
+        unless (S.null unsolvedVars) .
+          throwError
+            . onErrorMessages (replaceTypes currentSubst)
+            . errorMessage' ss
+            $ AmbiguousTypeVariables generalized unsolvedVarNames
 
       -- Check skolem variables did not escape their scope
       skolemEscapeCheck val'
@@ -135,7 +182,7 @@
     finalState <- get
     let replaceTypes' = replaceTypes (checkSubstitution finalState)
         runTypeSearch' gen = runTypeSearch (guard gen $> foldMap snd inferred) finalState
-        raisePreviousWarnings gen = (escalateWarningWhen isHoleError . tell . onErrorMessages (runTypeSearch' gen . replaceTypes'))
+        raisePreviousWarnings gen = escalateWarningWhen isHoleError . tell . onErrorMessages (runTypeSearch' gen . replaceTypes')
 
     raisePreviousWarnings False wInfer
     forM_ tys $ \(shouldGeneralize, ((_, (_, _)), w)) ->
@@ -149,12 +196,12 @@
       -> ErrorMessage
     replaceTypes subst = onTypesInErrorMessage (substituteType subst)
 
-    -- | Run type search to complete any typed hole error messages
+    -- Run type search to complete any typed hole error messages
     runTypeSearch
       :: Maybe [(Ident, InstanceContext, SourceConstraint)]
-      -- ^ Any unsolved constraints which we need to continue to satisfy
+           -- Any unsolved constraints which we need to continue to satisfy
       -> CheckState
-      -- ^ The final type checker state
+           -- The final type checker state
       -> ErrorMessage
       -> ErrorMessage
     runTypeSearch cons st = \case
@@ -166,13 +213,11 @@
         in ErrorMessage hints (HoleInferredType x ty y (Just searchResult))
       other -> other
 
-    -- | Generalize type vars using forall and add inferred constraints
-    generalize unsolved = varIfUnknown . constrain unsolved
-
-    -- | Add any unsolved constraints
+    -- Add any unsolved constraints
     constrain cs ty = foldr srcConstrainedType ty (map (\(_, _, x) -> x) cs)
 
     -- Apply the substitution that was returned from runUnify to both types and (type-annotated) values
+
     tidyUp ts sub = first (map (second (first (second (overTypes (substituteType sub) *** substituteType sub))))) ts
 
     isHoleError :: ErrorMessage -> Bool
@@ -186,7 +231,7 @@
 data SplitBindingGroup = SplitBindingGroup
   { _splitBindingGroupUntyped :: [((SourceAnn, Ident), (Expr, SourceType))]
   -- ^ The untyped expressions
-  , _splitBindingGroupTyped :: [((SourceAnn, Ident), (Expr, SourceType, Bool))]
+  , _splitBindingGroupTyped :: [((SourceAnn, Ident), (Expr, [(Text, SourceType)], SourceType, Bool))]
   -- ^ The typed expressions, along with their type annotations
   , _splitBindingGroupNames :: M.Map (Qualified Ident) (SourceType, NameKind, NameVisibility)
   -- ^ A map containing all expressions and their assigned types (which might be
@@ -200,7 +245,7 @@
 -- This function also generates fresh unification variables for the types of
 -- declarations without type annotations, returned in the 'UntypedData' structure.
 typeDictionaryForBindingGroup
-  :: (MonadState CheckState m, MonadWriter MultipleErrors m)
+  :: (MonadState CheckState m, MonadError MultipleErrors m, MonadWriter MultipleErrors m)
   => Maybe ModuleName
   -> [((SourceAnn, Ident), Expr)]
   -> m SplitBindingGroup
@@ -210,20 +255,22 @@
     -- fully expanded types.
     let (untyped, typed) = partitionEithers (map splitTypeAnnotation vals)
     (typedDict, typed') <- fmap unzip . for typed $ \(sai, (expr, ty, checkType)) -> do
-      ty' <- replaceTypeWildcards ty
-      return ((sai, ty'), (sai, (expr, ty', checkType)))
+      ((args, elabTy), kind) <- kindOfWithScopedVars ty
+      checkTypeKind ty kind
+      elabTy' <- replaceTypeWildcards elabTy
+      return ((sai, elabTy'), (sai, (expr, args, elabTy', checkType)))
     -- Create fresh unification variables for the types of untyped declarations
     (untypedDict, untyped') <- fmap unzip . for untyped $ \(sai, expr) -> do
-      ty <- freshType
+      ty <- freshTypeWithKind kindType
       return ((sai, ty), (sai, (expr, ty)))
     -- Create the dictionary of all name/type pairs, which will be added to the
     -- environment during type checking
-    let dict = M.fromList [ (Qualified moduleName ident, (ty, Private, Undefined))
-                          | ((_, ident), ty) <- typedDict <> untypedDict
+    let dict = M.fromList [ (Qualified (maybe (BySourcePos $ spanStart ss) ByModuleName moduleName) ident, (ty, Private, Undefined))
+                          | (((ss, _), ident), ty) <- typedDict <> untypedDict
                           ]
     return (SplitBindingGroup untyped' typed' dict)
   where
-    -- | Check if a value contains a type annotation, and if so, separate it
+    -- Check if a value contains a type annotation, and if so, separate it
     -- from the value itself.
     splitTypeAnnotation :: (a, Expr) -> Either (a, Expr) (a, (Expr, SourceType, Bool))
     splitTypeAnnotation (a, TypedValue checkType value ty) = Right (a, (value, ty, checkType))
@@ -237,15 +284,12 @@
 checkTypedBindingGroupElement
   :: (MonadSupply m, MonadState CheckState m, MonadError MultipleErrors m, MonadWriter MultipleErrors m)
   => ModuleName
-  -> ((SourceAnn, Ident), (Expr, SourceType, Bool))
+  -> ((SourceAnn, Ident), (Expr, [(Text, SourceType)], SourceType, Bool))
   -- ^ The identifier we are trying to define, along with the expression and its type annotation
   -> M.Map (Qualified Ident) (SourceType, NameKind, NameVisibility)
   -- ^ Names brought into scope in this binding group
   -> m ((SourceAnn, Ident), (Expr, SourceType))
-checkTypedBindingGroupElement mn (ident, (val, ty, checkType)) dict = do
-  -- Kind check
-  (kind, args) <- kindOfWithScopedVars ty
-  checkTypeKind ty kind
+checkTypedBindingGroupElement mn (ident, (val, args, ty, checkType)) dict = do
   -- We replace type synonyms _after_ kind-checking, since we don't want type
   -- synonym expansion to bring type variables into scope. See #2542.
   ty' <- introduceSkolemScope <=< replaceAllTypeSynonyms $ ty
@@ -271,14 +315,6 @@
   unifyTypes ty ty'
   return (ident, (TypedValue True val' ty', ty'))
 
--- | Check the kind of a type, failing if it is not of kind *.
-checkTypeKind
-  :: MonadError MultipleErrors m
-  => SourceType
-  -> SourceKind
-  -> m ()
-checkTypeKind ty kind = guardWith (errorMessage (ExpectedType ty kind)) $ isKindType kind
-
 -- | Remove any ForAlls and ConstrainedType constructors in a type by introducing new unknowns
 -- or TypeClassDictionary values.
 --
@@ -289,15 +325,39 @@
   => Expr
   -> SourceType
   -> m (Expr, SourceType)
-instantiatePolyTypeWithUnknowns val (ForAll _ ident _ ty _) = do
-  ty' <- replaceVarWithUnknown ident ty
-  instantiatePolyTypeWithUnknowns val ty'
+instantiatePolyTypeWithUnknowns val (ForAll _ _ ident mbK ty _) = do
+  u <- maybe (internalCompilerError "Unelaborated forall") freshTypeWithKind mbK
+  insertUnkName' u ident
+  instantiatePolyTypeWithUnknowns val $ replaceTypeVars ident u ty
 instantiatePolyTypeWithUnknowns val (ConstrainedType _ con ty) = do
-   dicts <- getTypeClassDictionaries
-   hints <- getHints
-   instantiatePolyTypeWithUnknowns (App val (TypeClassDictionary con dicts hints)) ty
+  dicts <- getTypeClassDictionaries
+  hints <- getHints
+  instantiatePolyTypeWithUnknowns (App val (TypeClassDictionary con dicts hints)) ty
 instantiatePolyTypeWithUnknowns val ty = return (val, ty)
 
+instantiatePolyTypeWithUnknownsUntilVisible
+  :: (MonadState CheckState m, MonadError MultipleErrors m)
+  => Expr
+  -> SourceType
+  -> m (Expr, SourceType)
+instantiatePolyTypeWithUnknownsUntilVisible val (ForAll _ TypeVarInvisible ident mbK ty _) = do
+  u <- maybe (internalCompilerError "Unelaborated forall") freshTypeWithKind mbK
+  insertUnkName' u ident
+  instantiatePolyTypeWithUnknownsUntilVisible val $ replaceTypeVars ident u ty
+instantiatePolyTypeWithUnknownsUntilVisible val ty = return (val, ty)
+
+instantiateConstraint :: MonadState CheckState m => Expr -> Type SourceAnn -> m (Expr, Type SourceAnn)
+instantiateConstraint val (ConstrainedType _ con ty) = do
+  dicts <- getTypeClassDictionaries
+  hints <- getHints
+  instantiateConstraint (App val (TypeClassDictionary con dicts hints)) ty
+instantiateConstraint val ty = pure (val, ty)
+
+-- | Match against TUnknown and call insertUnkName, failing otherwise.
+insertUnkName' :: (MonadState CheckState m, MonadError MultipleErrors m) => SourceType -> Text -> m ()
+insertUnkName' (TUnknown _ i) n = insertUnkName i n
+insertUnkName' _ _ = internalCompilerError "type is not TUnknown"
+
 -- | Infer a type for a value, rethrowing any error to provide a more useful error message
 infer
   :: (MonadSupply m, MonadState CheckState m, MonadError MultipleErrors m, MonadWriter MultipleErrors m)
@@ -318,7 +378,7 @@
 infer' v@(Literal _ (BooleanLiteral _)) = return $ TypedValue' True v tyBoolean
 infer' (Literal ss (ArrayLiteral vals)) = do
   ts <- traverse infer vals
-  els <- freshType
+  els <- freshTypeWithKind kindType
   ts' <- forM ts $ \(TypedValue' ch val t) -> do
     (val', t') <- instantiatePolyTypeWithUnknowns val t
     unifyTypes els t'
@@ -326,47 +386,71 @@
   return $ TypedValue' True (Literal ss (ArrayLiteral ts')) (srcTypeApp tyArray els)
 infer' (Literal ss (ObjectLiteral ps)) = do
   ensureNoDuplicateProperties ps
-  -- We make a special case for Vars in record labels, since these are the
-  -- only types of expressions for which 'infer' can return a polymorphic type.
-  -- They need to be instantiated here.
-  let shouldInstantiate :: Expr -> Bool
-      shouldInstantiate Var{} = True
-      shouldInstantiate (PositionedValue _ _ e) = shouldInstantiate e
-      shouldInstantiate _ = False
-
-      inferProperty :: (PSString, Expr) -> m (PSString, (Expr, SourceType))
-      inferProperty (name, val) = do
-        TypedValue' _ val' ty <- infer val
-        valAndType <- if shouldInstantiate val
-                        then instantiatePolyTypeWithUnknowns val' ty
-                        else pure (val', ty)
-        pure (name, valAndType)
+  typedFields <- inferProperties ps
+  let
+    toRowListItem :: (PSString, (Expr, SourceType)) -> RowListItem SourceAnn
+    toRowListItem (l, (_, t)) = srcRowListItem (Label l) t
 
-      toRowListItem (lbl, (_, ty)) = srcRowListItem (Label lbl) ty
+    recordType :: SourceType
+    recordType = srcTypeApp tyRecord $ rowFromList (toRowListItem <$> typedFields, srcKindApp srcREmpty kindType)
 
-  fields <- forM ps inferProperty
-  let ty = srcTypeApp tyRecord $ rowFromList (map toRowListItem fields, srcREmpty)
-  return $ TypedValue' True (Literal ss (ObjectLiteral (map (fmap (uncurry (TypedValue True))) fields))) ty
-infer' (ObjectUpdate o ps) = do
+    typedProperties :: [(PSString, Expr)]
+    typedProperties = fmap (fmap (uncurry (TypedValue True))) typedFields
+  pure $ TypedValue' True (Literal ss (ObjectLiteral typedProperties)) recordType
+infer' (ObjectUpdate ob ps) = do
   ensureNoDuplicateProperties ps
-  row <- freshType
-  typedVals <- zipWith (\(name, _) t -> (name, t)) ps <$> traverse (infer . snd) ps
-  let toRowListItem = uncurry srcRowListItem
-  let newTys = map (\(name, TypedValue' _ _ ty) -> (Label name, ty)) typedVals
-  oldTys <- zip (map (Label . fst) ps) <$> replicateM (length ps) freshType
-  let oldTy = srcTypeApp tyRecord $ rowFromList (toRowListItem <$> oldTys, row)
-  o' <- TypedValue True <$> (tvToExpr <$> check o oldTy) <*> pure oldTy
-  let newVals = map (fmap tvToExpr) typedVals
-  return $ TypedValue' True (ObjectUpdate o' newVals) $ srcTypeApp tyRecord $ rowFromList (toRowListItem <$> newTys, row)
+  -- This "tail" holds all other fields not being updated.
+  rowType <- freshTypeWithKind (kindRow kindType)
+  let updateLabels = Label . fst <$> ps
+  -- Generate unification variables for each field in ps.
+  --
+  -- Given:
+  --
+  -- ob { a = 0, b = 0 }
+  --
+  -- Then:
+  --
+  -- obTypes = [(a, ?0), (b, ?1)]
+  obTypes <- zip updateLabels <$> replicateM (length updateLabels) (freshTypeWithKind kindType)
+  let obItems :: [RowListItem SourceAnn]
+      obItems = uncurry srcRowListItem <$> obTypes
+      -- Create a record type that contains the unification variables.
+      --
+      -- obRecordType = Record ( a :: ?0, b :: ?1 | rowType )
+      obRecordType :: SourceType
+      obRecordType = srcTypeApp tyRecord $ rowFromList (obItems, rowType)
+  -- Check ob against obRecordType.
+  --
+  -- Given:
+  --
+  -- ob : { a :: Int, b :: Int }
+  --
+  -- Then:
+  --
+  -- ?0  ~  Int
+  -- ?1  ~  Int
+  -- ob' : { a :: ?0, b :: ?1 }
+  ob' <- TypedValue True <$> (tvToExpr <$> check ob obRecordType) <*> pure obRecordType
+  -- Infer the types of the values used for the record update.
+  typedFields <- inferProperties ps
+  let newItems :: [RowListItem SourceAnn]
+      newItems = (\(l, (_, t)) -> srcRowListItem (Label l) t) <$> typedFields
+
+      ps' :: [(PSString, Expr)]
+      ps' = (\(l, (e, t)) -> (l, TypedValue True e t)) <$> typedFields
+
+      newRecordType :: SourceType
+      newRecordType = srcTypeApp tyRecord $ rowFromList (newItems, rowType)
+  pure $ TypedValue' True (ObjectUpdate ob' ps') newRecordType
 infer' (Accessor prop val) = withErrorMessageHint (ErrorCheckingAccessor val prop) $ do
-  field <- freshType
-  rest <- freshType
+  field <- freshTypeWithKind kindType
+  rest <- freshTypeWithKind (kindRow kindType)
   typed <- tvToExpr <$> check val (srcTypeApp tyRecord (srcRCons (Label prop) field rest))
   return $ TypedValue' True (Accessor prop typed) field
 infer' (Abs binder ret)
   | VarBinder ss arg <- binder = do
-      ty <- freshType
-      withBindingGroupVisible $ bindLocalVariables [(arg, ty, Defined)] $ do
+      ty <- freshTypeWithKind kindType
+      withBindingGroupVisible $ bindLocalVariables [(ss, arg, ty, Defined)] $ do
         body@(TypedValue' _ _ bodyTy) <- infer' ret
         (body', bodyTy') <- instantiatePolyTypeWithUnknowns (tvToExpr body) bodyTy
         return $ TypedValue' True (Abs (VarBinder ss arg) body') (function ty bodyTy')
@@ -375,6 +459,26 @@
   f'@(TypedValue' _ _ ft) <- infer f
   (ret, app) <- checkFunctionApplication (tvToExpr f') ft arg
   return $ TypedValue' True app ret
+infer' (VisibleTypeApp valFn (TypeWildcard _ _)) = do
+  TypedValue' _ valFn' valTy <- infer valFn
+  (valFn'', valTy') <- instantiatePolyTypeWithUnknownsUntilVisible valFn' valTy
+  case valTy' of
+    ForAll qAnn _ qName qKind qBody qSko -> do
+      pure $ TypedValue' True valFn'' (ForAll qAnn TypeVarInvisible qName qKind qBody qSko)
+    _ ->
+      throwError $ errorMessage $ CannotSkipTypeApplication valTy'
+infer' (VisibleTypeApp valFn tyArg) = do
+  TypedValue' _ valFn' valTy <- infer valFn
+  tyArg' <- introduceSkolemScope <=< replaceAllTypeSynonyms <=< replaceTypeWildcards $ tyArg
+  (valFn'', valTy') <- instantiatePolyTypeWithUnknownsUntilVisible valFn' valTy
+  case valTy' of
+    ForAll _ _ qName (Just qKind) qBody _ -> do
+      tyArg'' <- replaceAllTypeSynonyms <=< checkKind tyArg' $ qKind
+      let resTy = replaceTypeVars qName tyArg'' qBody
+      (valFn''', resTy') <- instantiateConstraint valFn'' resTy
+      pure $ TypedValue' True valFn''' resTy'
+    _ ->
+      throwError $ errorMessage $ CannotApplyExpressionOfTypeOnType valTy tyArg
 infer' (Var ss var) = do
   checkVisibility var
   ty <- introduceSkolemScope <=< replaceAllTypeSynonyms <=< replaceTypeWildcards <=< lookupVariable $ var
@@ -388,11 +492,10 @@
   env <- getEnv
   case M.lookup c (dataConstructors env) of
     Nothing -> throwError . errorMessage . UnknownName . fmap DctorName $ c
-    Just (_, _, ty, _) -> do (v', ty') <- sndM (introduceSkolemScope <=< replaceAllTypeSynonyms) <=< instantiatePolyTypeWithUnknowns v $ ty
-                             return $ TypedValue' True v' ty'
+    Just (_, _, ty, _) -> TypedValue' True v <$> (introduceSkolemScope <=< replaceAllTypeSynonyms $ ty)
 infer' (Case vals binders) = do
   (vals', ts) <- instantiateForBinders vals binders
-  ret <- freshType
+  ret <- freshTypeWithKind kindType
   binders' <- checkBinders ts ret binders
   return $ TypedValue' True (Case vals' binders') ret
 infer' (IfThenElse cond th el) = do
@@ -409,18 +512,19 @@
 infer' (DeferredDictionary className tys) = do
   dicts <- getTypeClassDictionaries
   hints <- getHints
+  con <- checkConstraint (srcConstraint className [] tys Nothing)
   return $ TypedValue' False
-             (TypeClassDictionary (srcConstraint className tys Nothing) dicts hints)
+             (TypeClassDictionary con dicts hints)
              (foldl srcTypeApp (srcTypeConstructor (fmap coerceProperName className)) tys)
 infer' (TypedValue checkType val ty) = do
   moduleName <- unsafeCheckCurrentModule
-  (kind, args) <- kindOfWithScopedVars ty
+  ((args, elabTy), kind) <- kindOfWithScopedVars ty
   checkTypeKind ty kind
-  ty' <- introduceSkolemScope <=< replaceAllTypeSynonyms <=< replaceTypeWildcards $ ty
+  ty' <- introduceSkolemScope <=< replaceAllTypeSynonyms <=< replaceTypeWildcards $ elabTy
   tv <- if checkType then withScopedTypeVars moduleName args (check val ty') else return (TypedValue' False val ty)
   return $ TypedValue' True (tvToExpr tv) ty'
 infer' (Hole name) = do
-  ty <- freshType
+  ty <- freshTypeWithKind kindType
   ctx <- getLocalContext
   env <- getEnv
   tell . errorMessage $ HoleInferredType name ty ctx . Just $ TSBefore env
@@ -430,6 +534,45 @@
   return $ TypedValue' t (PositionedValue pos c v) ty
 infer' v = internalError $ "Invalid argument to infer: " ++ show v
 
+-- |
+-- Infer the types of named record fields.
+inferProperties
+  :: ( MonadSupply m
+     , MonadState CheckState m
+     , MonadError MultipleErrors m
+     , MonadWriter MultipleErrors m
+     )
+  => [(PSString, Expr)]
+  -> m [(PSString, (Expr, SourceType))]
+inferProperties = traverse (traverse inferWithinRecord)
+
+-- |
+-- Infer the type of a value when used as a record field.
+inferWithinRecord
+  :: ( MonadSupply m
+     , MonadState CheckState m
+     , MonadError MultipleErrors m
+     , MonadWriter MultipleErrors m
+     )
+  => Expr
+  -> m (Expr, SourceType)
+inferWithinRecord e = do
+  TypedValue' _ v t <- infer e
+  if propertyShouldInstantiate e
+    then instantiatePolyTypeWithUnknowns v t
+    else pure (v, t)
+
+-- |
+-- Determines if a value's type needs to be monomorphized when
+-- used inside of a record.
+propertyShouldInstantiate :: Expr -> Bool
+propertyShouldInstantiate = \case
+  Var{} -> True
+  Constructor{} -> True
+  VisibleTypeApp e _ -> propertyShouldInstantiate e
+  PositionedValue _ _ e -> propertyShouldInstantiate e
+  _ -> False
+
 inferLetBinding
   :: (MonadSupply m, MonadState CheckState m, MonadError MultipleErrors m, MonadWriter MultipleErrors m)
   => [Declaration]
@@ -437,26 +580,26 @@
   -> Expr
   -> (Expr -> m TypedValue')
   -> m ([Declaration], TypedValue')
-inferLetBinding seen [] ret j = (,) seen <$> withBindingGroupVisible (j ret)
+inferLetBinding seen [] ret j = (seen, ) <$> withBindingGroupVisible (j ret)
 inferLetBinding seen (ValueDecl sa@(ss, _) ident nameKind [] [MkUnguarded (TypedValue checkType val ty)] : rest) ret j = do
   moduleName <- unsafeCheckCurrentModule
   TypedValue' _ val' ty'' <- warnAndRethrowWithPositionTC ss $ do
-    (kind, args) <- kindOfWithScopedVars ty
+    ((args, elabTy), kind) <- kindOfWithScopedVars ty
     checkTypeKind ty kind
-    let dict = M.singleton (Qualified Nothing ident) (ty, nameKind, Undefined)
-    ty' <- introduceSkolemScope <=< replaceAllTypeSynonyms <=< replaceTypeWildcards $ ty
+    let dict = M.singleton (Qualified (BySourcePos $ spanStart ss) ident) (elabTy, nameKind, Undefined)
+    ty' <- introduceSkolemScope <=< replaceAllTypeSynonyms <=< replaceTypeWildcards $ elabTy
     if checkType
       then withScopedTypeVars moduleName args (bindNames dict (check val ty'))
-      else return (TypedValue' checkType val ty)
-  bindNames (M.singleton (Qualified Nothing ident) (ty'', nameKind, Defined))
+      else return (TypedValue' checkType val elabTy)
+  bindNames (M.singleton (Qualified (BySourcePos $ spanStart ss) ident) (ty'', nameKind, Defined))
     $ inferLetBinding (seen ++ [ValueDecl sa ident nameKind [] [MkUnguarded (TypedValue checkType val' ty'')]]) rest ret j
 inferLetBinding seen (ValueDecl sa@(ss, _) ident nameKind [] [MkUnguarded val] : rest) ret j = do
-  valTy <- freshType
+  valTy <- freshTypeWithKind kindType
   TypedValue' _ val' valTy' <- warnAndRethrowWithPositionTC ss $ do
-    let dict = M.singleton (Qualified Nothing ident) (valTy, nameKind, Undefined)
+    let dict = M.singleton (Qualified (BySourcePos $ spanStart ss) ident) (valTy, nameKind, Undefined)
     bindNames dict $ infer val
   warnAndRethrowWithPositionTC ss $ unifyTypes valTy valTy'
-  bindNames (M.singleton (Qualified Nothing ident) (valTy', nameKind, Defined))
+  bindNames (M.singleton (Qualified (BySourcePos $ spanStart ss) ident) (valTy', nameKind, Defined))
     $ inferLetBinding (seen ++ [ValueDecl sa ident nameKind [] [MkUnguarded val']]) rest ret j
 inferLetBinding seen (BindingGroupDeclaration ds : rest) ret j = do
   moduleName <- unsafeCheckCurrentModule
@@ -475,14 +618,14 @@
    . (MonadState CheckState m, MonadError MultipleErrors m, MonadWriter MultipleErrors m)
   => SourceType
   -> Binder
-  -> m (M.Map Ident SourceType)
+  -> m (M.Map Ident (SourceSpan, SourceType))
 inferBinder _ NullBinder = return M.empty
 inferBinder val (LiteralBinder _ (StringLiteral _)) = unifyTypes val tyString >> return M.empty
 inferBinder val (LiteralBinder _ (CharLiteral _)) = unifyTypes val tyChar >> return M.empty
 inferBinder val (LiteralBinder _ (NumericLiteral (Left _))) = unifyTypes val tyInt >> return M.empty
 inferBinder val (LiteralBinder _ (NumericLiteral (Right _))) = unifyTypes val tyNumber >> return M.empty
 inferBinder val (LiteralBinder _ (BooleanLiteral _)) = unifyTypes val tyBoolean >> return M.empty
-inferBinder val (VarBinder _ name) = return $ M.singleton name val
+inferBinder val (VarBinder ss name) = return $ M.singleton name (ss, val)
 inferBinder val (ConstructorBinder ss ctor binders) = do
   env <- getEnv
   case M.lookup ctor (dataConstructors env) of
@@ -503,34 +646,34 @@
     go args (TypeApp _ (TypeApp _ fn arg) ret) | eqType fn tyFunction = go (arg : args) ret
     go args ret = (args, ret)
 inferBinder val (LiteralBinder _ (ObjectLiteral props)) = do
-  row <- freshType
-  rest <- freshType
+  row <- freshTypeWithKind (kindRow kindType)
+  rest <- freshTypeWithKind (kindRow kindType)
   m1 <- inferRowProperties row rest props
   unifyTypes val (srcTypeApp tyRecord row)
   return m1
   where
-  inferRowProperties :: SourceType -> SourceType -> [(PSString, Binder)] -> m (M.Map Ident SourceType)
+  inferRowProperties :: SourceType -> SourceType -> [(PSString, Binder)] -> m (M.Map Ident (SourceSpan, SourceType))
   inferRowProperties nrow row [] = unifyTypes nrow row >> return M.empty
   inferRowProperties nrow row ((name, binder):binders) = do
-    propTy <- freshType
+    propTy <- freshTypeWithKind kindType
     m1 <- inferBinder propTy binder
     m2 <- inferRowProperties nrow (srcRCons (Label name) propTy row) binders
     return $ m1 `M.union` m2
 inferBinder val (LiteralBinder _ (ArrayLiteral binders)) = do
-  el <- freshType
+  el <- freshTypeWithKind kindType
   m1 <- M.unions <$> traverse (inferBinder el) binders
   unifyTypes val (srcTypeApp tyArray el)
   return m1
 inferBinder val (NamedBinder ss name binder) =
   warnAndRethrowWithPositionTC ss $ do
     m <- inferBinder val binder
-    return $ M.insert name val m
+    return $ M.insert name (ss, val) m
 inferBinder val (PositionedBinder pos _ binder) =
   warnAndRethrowWithPositionTC pos $ inferBinder val binder
 inferBinder val (TypedBinder ty binder) = do
-  kind <- kindOf ty
+  (elabTy, kind) <- kindOf ty
   checkTypeKind ty kind
-  ty1 <- introduceSkolemScope <=< replaceAllTypeSynonyms <=< replaceTypeWildcards $ ty
+  ty1 <- introduceSkolemScope <=< replaceAllTypeSynonyms <=< replaceTypeWildcards $ elabTy
   unifyTypes val ty1
   inferBinder ty1 binder
 inferBinder _ OpBinder{} =
@@ -579,7 +722,7 @@
   guardWith (errorMessage $ OverlappingArgNames Nothing) $
     let ns = concatMap binderNames binders in length (ordNub ns) == length ns
   m1 <- M.unions <$> zipWithM inferBinder nvals binders
-  r <- bindLocalVariables [ (name, ty, Defined) | (name, ty) <- M.toList m1 ] $
+  r <- bindLocalVariables [ (ss, name, ty, Defined) | (name, (ss, ty)) <- M.toList m1 ] $
        CaseAlternative binders <$> forM result (\ge -> checkGuardedRhs ge ret)
   rs <- checkBinders nvals ret bs
   return $ r : rs
@@ -599,8 +742,8 @@
 checkGuardedRhs (GuardedExpr (PatternGuard binder expr : guards) rhs) ret = do
   tv@(TypedValue' _ _ ty) <- infer expr
   variables <- inferBinder ty binder
-  GuardedExpr guards' rhs' <- bindLocalVariables [ (name, bty, Defined)
-                                                 | (name, bty) <- M.toList variables
+  GuardedExpr guards' rhs' <- bindLocalVariables [ (ss, name, bty, Defined)
+                                                 | (name, (ss, bty)) <- M.toList variables
                                                  ] $
     checkGuardedRhs (GuardedExpr guards rhs) ret
   return $ GuardedExpr (PatternGuard binder (tvToExpr tv) : guards') rhs'
@@ -613,7 +756,7 @@
   => Expr
   -> SourceType
   -> m TypedValue'
-check val ty = withErrorMessageHint (ErrorCheckingType val ty) $ check' val ty
+check val ty = withErrorMessageHint' val (ErrorCheckingType val ty) $ check' val ty
 
 -- |
 -- Check the type of a value
@@ -624,19 +767,31 @@
   => Expr
   -> SourceType
   -> m TypedValue'
-check' val (ForAll ann ident mbK ty _) = do
+check' val (ForAll ann vis ident mbK ty _) = do
+  env <- getEnv
+  mn <- gets checkCurrentModule
   scope <- newSkolemScope
   sko <- newSkolemConstant
   let ss = case val of
              PositionedValue pos c _ -> (pos, c)
              _ -> NullSourceAnn
-      sk = skolemize ss ident sko scope ty
-      skVal = skolemizeTypesInValue ss ident sko scope val
+      sk = skolemize ss ident mbK sko scope ty
+      -- We should only skolemize types in values when the type variable
+      -- was actually brought into scope. Otherwise we can end up skolemizing
+      -- an undefined type variable that happens to clash with the variable we
+      -- want to skolemize. This can happen due to synonym expansion (see 2542).
+      skVal
+        | Just _ <- M.lookup (Qualified (byMaybeModuleName mn) (ProperName ident)) $ types env =
+            skolemizeTypesInValue ss ident mbK sko scope val
+        | otherwise = val
   val' <- tvToExpr <$> check skVal sk
-  return $ TypedValue' True val' (ForAll ann ident mbK ty (Just scope))
-check' val t@(ConstrainedType _ con@(Constraint _ (Qualified _ (ProperName className)) _ _) ty) = do
-  dictName <- freshIdent ("dict" <> className)
-  dicts <- newDictionaries [] (Qualified Nothing dictName) con
+  return $ TypedValue' True val' (ForAll ann vis ident mbK ty (Just scope))
+check' val t@(ConstrainedType _ con@(Constraint _ cls@(Qualified _ (ProperName className)) _ _ _) ty) = do
+  TypeClassData{ typeClassIsEmpty } <- lookupTypeClass cls
+  -- An empty class dictionary is never used; see code in `TypeChecker.Entailment`
+  -- that wraps empty dictionary solutions in `Unused`.
+  dictName <- if typeClassIsEmpty then pure UnusedIdent else freshIdent ("dict" <> className)
+  dicts <- newDictionaries [] (Qualified ByNullSourcePos dictName) con
   val' <- withBindingGroupVisible $ withTypeClassDictionaries dicts $ check val ty
   return $ TypedValue' True (Abs (VarBinder nullSourceSpan dictName) (tvToExpr val')) t
 check' val u@(TUnknown _ _) = do
@@ -662,7 +817,7 @@
 check' (Abs binder ret) ty@(TypeApp _ (TypeApp _ t argTy) retTy)
   | VarBinder ss arg <- binder = do
       unifyTypes t tyFunction
-      ret' <- withBindingGroupVisible $ bindLocalVariables [(arg, argTy, Defined)] $ check ret retTy
+      ret' <- withBindingGroupVisible $ bindLocalVariables [(ss, arg, argTy, Defined)] $ check ret retTy
       return $ TypedValue' True (Abs (VarBinder ss arg) (tvToExpr ret')) ty
   | otherwise = internalError "Binder was not desugared"
 check' (App f arg) ret = do
@@ -685,17 +840,21 @@
   -}
   dicts <- getTypeClassDictionaries
   hints <- getHints
+  con <- checkConstraint (srcConstraint className [] tys Nothing)
   return $ TypedValue' False
-             (TypeClassDictionary (srcConstraint className tys Nothing) dicts hints)
+             (TypeClassDictionary con dicts hints)
              ty
 check' (TypedValue checkType val ty1) ty2 = do
-  kind <- kindOf ty1
-  checkTypeKind ty1 kind
-  ty1' <- introduceSkolemScope <=< replaceAllTypeSynonyms <=< replaceTypeWildcards $ ty1
-  ty2' <- introduceSkolemScope <=< replaceAllTypeSynonyms <=< replaceTypeWildcards $ ty2
+  moduleName <- unsafeCheckCurrentModule
+  ((args, elabTy1), kind1) <- kindOfWithScopedVars ty1
+  (elabTy2, kind2) <- kindOf ty2
+  unifyKinds' kind1 kind2
+  checkTypeKind ty1 kind1
+  ty1' <- introduceSkolemScope <=< replaceAllTypeSynonyms <=< replaceTypeWildcards $ elabTy1
+  ty2' <- introduceSkolemScope <=< replaceAllTypeSynonyms <=< replaceTypeWildcards $ elabTy2
   elaborate <- subsumes ty1' ty2'
   val' <- if checkType
-            then tvToExpr <$> check val ty1'
+            then withScopedTypeVars moduleName args $ tvToExpr <$> check val ty1'
             else pure val
   return $ TypedValue' True (TypedValue checkType (elaborate val') ty1') ty2'
 check' (Case vals binders) ret = do
@@ -711,21 +870,22 @@
   ensureNoDuplicateProperties ps
   ps' <- checkProperties e ps row False
   return $ TypedValue' True (Literal ss (ObjectLiteral ps')) t
-check' (TypeClassDictionaryConstructorApp name ps) t = do
-  ps' <- tvToExpr <$> check' ps t
-  return $ TypedValue' True (TypeClassDictionaryConstructorApp name ps') t
+check' (DerivedInstancePlaceholder name strategy) t = do
+  d <- deriveInstance t name strategy
+  d' <- tvToExpr <$> check' d t
+  return $ TypedValue' True d' t
 check' e@(ObjectUpdate obj ps) t@(TypeApp _ o row) | o == tyRecord = do
   ensureNoDuplicateProperties ps
   -- We need to be careful to avoid duplicate labels here.
   -- We check _obj_ against the type _t_ with the types in _ps_ replaced with unknowns.
   let (propsToCheck, rest) = rowToList row
       (removedProps, remainingProps) = partition (\(RowListItem _ p _) -> p `elem` map (Label . fst) ps) propsToCheck
-  us <- zipWith srcRowListItem (map rowListLabel removedProps) <$> replicateM (length ps) freshType
+  us <- zipWith srcRowListItem (map rowListLabel removedProps) <$> replicateM (length ps) (freshTypeWithKind kindType)
   obj' <- tvToExpr <$> check obj (srcTypeApp tyRecord (rowFromList (us ++ remainingProps, rest)))
   ps' <- checkProperties e ps row True
   return $ TypedValue' True (ObjectUpdate obj' ps') t
 check' (Accessor prop val) ty = withErrorMessageHint (ErrorCheckingAccessor val prop) $ do
-  rest <- freshType
+  rest <- freshTypeWithKind (kindRow kindType)
   val' <- tvToExpr <$> check val (srcTypeApp tyRecord (srcRCons (Label prop) ty rest))
   return $ TypedValue' True (Accessor prop val') ty
 check' v@(Constructor _ c) ty = do
@@ -734,7 +894,7 @@
     Nothing -> throwError . errorMessage . UnknownName . fmap DctorName $ c
     Just (_, _, ty1, _) -> do
       repl <- introduceSkolemScope <=< replaceAllTypeSynonyms $ ty1
-      ty' <- introduceSkolemScope ty
+      ty' <- introduceSkolemScope <=< replaceAllTypeSynonyms $ ty
       elaborate <- subsumes repl ty'
       return $ TypedValue' True (elaborate v) ty'
 check' (Let w ds val) ty = do
@@ -768,7 +928,7 @@
   convert = fmap (fmap tvToExpr)
   (ts', r') = rowToList row
   toRowPair (RowListItem _ lbl ty) = (lbl, ty)
-  go [] [] (REmpty _) = return []
+  go [] [] (REmptyKinded _ _) = return []
   go [] [] u@(TUnknown _ _)
     | lax = return []
     | otherwise = do unifyTypes u srcREmpty
@@ -776,15 +936,15 @@
   go [] [] Skolem{} | lax = return []
   go [] ((p, _): _) _ | lax = return []
                       | otherwise = throwError . errorMessage $ PropertyIsMissing p
-  go ((p,_):_) [] (REmpty _) = throwError . errorMessage $ AdditionalProperty $ Label p
+  go ((p,_):_) [] (REmptyKinded _ _) = throwError . errorMessage $ AdditionalProperty $ Label p
   go ((p,v):ps') ts r =
     case lookup (Label p) ts of
       Nothing -> do
-        v'@(TypedValue' _ _ ty) <- infer v
-        rest <- freshType
+        (v', ty) <- inferWithinRecord v
+        rest <- freshTypeWithKind (kindRow kindType)
         unifyTypes r (srcRCons (Label p) ty rest)
         ps'' <- go ps' ts rest
-        return $ (p, v') : ps''
+        return $ (p, TypedValue' True v' ty) : ps''
       Just ty -> do
         v' <- check v ty
         ps'' <- go ps' (delete (Label p, ty) ts) r
@@ -814,7 +974,7 @@
   -- ^ The argument expression
   -> m (SourceType, Expr)
   -- ^ The result type, and the elaborated term
-checkFunctionApplication fn fnTy arg = withErrorMessageHint (ErrorInApplication fn fnTy arg) $ do
+checkFunctionApplication fn fnTy arg = withErrorMessageHint' fn (ErrorInApplication fn fnTy arg) $ do
   subst <- gets checkSubstitution
   checkFunctionApplication' fn (substituteType subst fnTy) arg
 
@@ -829,8 +989,10 @@
   unifyTypes tyFunction' tyFunction
   arg' <- tvToExpr <$> check arg argTy
   return (retTy, App fn arg')
-checkFunctionApplication' fn (ForAll _ ident _ ty _) arg = do
-  replaced <- replaceVarWithUnknown ident ty
+checkFunctionApplication' fn (ForAll _ _ ident mbK ty _) arg = do
+  u <- maybe (internalCompilerError "Unelaborated forall") freshTypeWithKind mbK
+  insertUnkName' u ident
+  let replaced = replaceTypeVars ident u ty
   checkFunctionApplication fn replaced arg
 checkFunctionApplication' fn (KindedType _ ty _) arg =
   checkFunctionApplication fn ty arg
@@ -845,7 +1007,7 @@
     TypedValue' _ arg' t <- infer arg
     (arg'', t') <- instantiatePolyTypeWithUnknowns arg' t
     return $ TypedValue' True arg'' t'
-  ret <- freshType
+  ret <- freshTypeWithKind kindType
   unifyTypes u (function ty ret)
   return (ret, App fn (tvToExpr tv))
 
@@ -858,3 +1020,21 @@
   case ls \\ ordNub ls of
     l : _ -> throwError . errorMessage $ DuplicateLabel (Label l) Nothing
     _ -> return ()
+
+-- | Test if this is an internal value to be excluded from error hints
+isInternal :: Expr -> Bool
+isInternal = \case
+  PositionedValue _ _ v -> isInternal v
+  TypedValue _ v _ -> isInternal v
+  Constructor _ (Qualified _ name) -> isDictTypeName name
+  DerivedInstancePlaceholder{} -> True
+  _ -> False
+
+-- | Introduce a hint only if the given expression is not internal
+withErrorMessageHint'
+  :: (MonadState CheckState m, MonadError MultipleErrors m)
+  => Expr
+  -> ErrorMessageHint
+  -> m a
+  -> m a
+withErrorMessageHint' expr = if isInternal expr then const id else withErrorMessageHint
diff --git a/src/Language/PureScript/TypeChecker/Unify.hs b/src/Language/PureScript/TypeChecker/Unify.hs
--- a/src/Language/PureScript/TypeChecker/Unify.hs
+++ b/src/Language/PureScript/TypeChecker/Unify.hs
@@ -1,57 +1,80 @@
-{-# LANGUAGE FlexibleInstances #-}
-
 -- |
 -- Functions and instances relating to unification
 --
 module Language.PureScript.TypeChecker.Unify
   ( freshType
+  , freshTypeWithKind
   , solveType
   , substituteType
   , unknownsInType
   , unifyTypes
   , unifyRows
   , alignRowsWith
-  , replaceVarWithUnknown
   , replaceTypeWildcards
   , varIfUnknown
   ) where
 
-import Prelude.Compat
+import Prelude
 
-import Control.Arrow (first, second)
-import Control.Monad
+import Control.Monad (forM_, void)
 import Control.Monad.Error.Class (MonadError(..))
-import Control.Monad.State.Class (MonadState(..), gets, modify)
+import Control.Monad.State.Class (MonadState(..), gets, modify, state)
 import Control.Monad.Writer.Class (MonadWriter(..))
 
 import Data.Foldable (traverse_)
-import Data.Function (on)
-import Data.List (sortBy, nubBy)
-import qualified Data.Map as M
-import Data.Ord (comparing)
-import Data.Text (Text)
-import qualified Data.Text as T
+import Data.Maybe (fromMaybe)
+import Data.Map qualified as M
+import Data.Text qualified as T
 
-import Language.PureScript.Crash
-import Language.PureScript.Errors
-import Language.PureScript.TypeChecker.Monad
-import Language.PureScript.TypeChecker.Skolems
-import Language.PureScript.Types
+import Language.PureScript.Crash (internalError)
+import Language.PureScript.Environment qualified as E
+import Language.PureScript.Errors (ErrorMessageHint(..), MultipleErrors, SimpleErrorMessage(..), SourceAnn, errorMessage, internalCompilerError, onErrorMessages, rethrow, warnWithPosition, withoutPosition)
+import Language.PureScript.TypeChecker.Kinds (elaborateKind, instantiateKind, unifyKinds')
+import Language.PureScript.TypeChecker.Monad (CheckState(..), Substitution(..), UnkLevel(..), Unknown, getLocalContext, guardWith, lookupUnkName, withErrorMessageHint)
+import Language.PureScript.TypeChecker.Skolems (newSkolemConstant, skolemize)
+import Language.PureScript.Types (Constraint(..), pattern REmptyKinded, RowListItem(..), SourceType, Type(..), WildcardData(..), alignRowsWith, everythingOnTypes, everywhereOnTypes, everywhereOnTypesM, getAnnForType, mkForAll, rowFromList, srcTUnknown)
 
--- | Generate a fresh type variable
+-- | Generate a fresh type variable with an unknown kind. Avoid this if at all possible.
 freshType :: (MonadState CheckState m) => m SourceType
-freshType = do
-  t <- gets checkNextType
-  modify $ \st -> st { checkNextType = t + 1 }
-  return $ srcTUnknown t
+freshType = state $ \st -> do
+  let
+    t = checkNextType st
+    st' = st { checkNextType = t + 2
+             , checkSubstitution =
+                 (checkSubstitution st) { substUnsolved = M.insert t (UnkLevel (pure t), E.kindType)
+                                                        . M.insert (t + 1) (UnkLevel (pure (t + 1)), srcTUnknown t)
+                                                        . substUnsolved
+                                                        $ checkSubstitution st
+                                        }
+             }
+  (srcTUnknown (t + 1), st')
 
+-- | Generate a fresh type variable with a known kind.
+freshTypeWithKind :: (MonadState CheckState m) => SourceType -> m SourceType
+freshTypeWithKind kind = state $ \st -> do
+  let
+    t = checkNextType st
+    st' = st { checkNextType = t + 1
+             , checkSubstitution =
+                 (checkSubstitution st) { substUnsolved = M.insert t (UnkLevel (pure t), kind) (substUnsolved (checkSubstitution st)) }
+             }
+  (srcTUnknown t, st')
+
 -- | Update the substitution to solve a type constraint
 solveType :: (MonadError MultipleErrors m, MonadState CheckState m) => Int -> SourceType -> m ()
-solveType u t = do
+solveType u t = rethrow (onErrorMessages withoutPosition) $ do
+  -- We strip the position so that any errors get rethrown with the position of
+  -- the original unification constraint. Otherwise errors may arise from arbitrary
+  -- locations. We don't otherwise have the "correct" position on hand, since it
+  -- is maintained as part of the type-checker stack.
   occursCheck u t
+  k1 <- elaborateKind t
+  subst <- gets checkSubstitution
+  k2 <- maybe (internalCompilerError ("No kind for unification variable ?" <> T.pack (show u))) (pure . substituteType subst . snd) . M.lookup u . substUnsolved $ subst
+  t' <- instantiateKind (t, k1) k2
   modify $ \cs -> cs { checkSubstitution =
                          (checkSubstitution cs) { substType =
-                                                    M.insert u t $ substType $ checkSubstitution cs
+                                                    M.insert u t' $ substType $ checkSubstitution cs
                                                 }
                      }
 
@@ -91,17 +114,17 @@
   unifyTypes' (TUnknown _ u1) (TUnknown _ u2) | u1 == u2 = return ()
   unifyTypes' (TUnknown _ u) t = solveType u t
   unifyTypes' t (TUnknown _ u) = solveType u t
-  unifyTypes' (ForAll ann1 ident1 _ ty1 sc1) (ForAll ann2 ident2 _ ty2 sc2) =
+  unifyTypes' (ForAll ann1 _ ident1 mbK1 ty1 sc1) (ForAll ann2 _ ident2 mbK2 ty2 sc2) =
     case (sc1, sc2) of
       (Just sc1', Just sc2') -> do
         sko <- newSkolemConstant
-        let sk1 = skolemize ann1 ident1 sko sc1' ty1
-        let sk2 = skolemize ann2 ident2 sko sc2' ty2
+        let sk1 = skolemize ann1 ident1 mbK1 sko sc1' ty1
+        let sk2 = skolemize ann2 ident2 mbK2 sko sc2' ty2
         sk1 `unifyTypes` sk2
       _ -> internalError "unifyTypes: unspecified skolem scope"
-  unifyTypes' (ForAll ann ident _ ty1 (Just sc)) ty2 = do
+  unifyTypes' (ForAll ann _ ident mbK ty1 (Just sc)) ty2 = do
     sko <- newSkolemConstant
-    let sk = skolemize ann ident sko sc ty1
+    let sk = skolemize ann ident mbK sko sc ty1
     sk `unifyTypes` ty2
   unifyTypes' ForAll{} _ = internalError "unifyTypes: unspecified skolem scope"
   unifyTypes' ty f@ForAll{} = f `unifyTypes` ty
@@ -109,16 +132,20 @@
   unifyTypes' ty1@(TypeConstructor _ c1) ty2@(TypeConstructor _ c2) =
     guardWith (errorMessage (TypesDoNotUnify ty1 ty2)) (c1 == c2)
   unifyTypes' (TypeLevelString _ s1) (TypeLevelString _ s2) | s1 == s2 = return ()
+  unifyTypes' (TypeLevelInt    _ n1) (TypeLevelInt    _ n2) | n1 == n2 = return ()
   unifyTypes' (TypeApp _ t3 t4) (TypeApp _ t5 t6) = do
     t3 `unifyTypes` t5
     t4 `unifyTypes` t6
-  unifyTypes' (Skolem _ _ s1 _) (Skolem _ _ s2 _) | s1 == s2 = return ()
+  unifyTypes' (KindApp _ t3 t4) (KindApp _ t5 t6) = do
+    t3 `unifyKinds'` t5
+    t4 `unifyTypes` t6
+  unifyTypes' (Skolem _ _ _ s1 _) (Skolem _ _ _ s2 _) | s1 == s2 = return ()
   unifyTypes' (KindedType _ ty1 _) ty2 = ty1 `unifyTypes` ty2
   unifyTypes' ty1 (KindedType _ ty2 _) = ty1 `unifyTypes` ty2
   unifyTypes' r1@RCons{} r2 = unifyRows r1 r2
   unifyTypes' r1 r2@RCons{} = unifyRows r1 r2
-  unifyTypes' r1@REmpty{} r2 = unifyRows r1 r2
-  unifyTypes' r1 r2@REmpty{} = unifyRows r1 r2
+  unifyTypes' r1@REmptyKinded{} r2 = unifyRows r1 r2
+  unifyTypes' r1 r2@REmptyKinded{} = unifyRows r1 r2
   unifyTypes' (ConstrainedType _ c1 ty1) (ConstrainedType _ c2 ty2)
     | constraintClass c1 == constraintClass c2 && constraintData c1 == constraintData c2 = do
         traverse_ (uncurry unifyTypes) (constraintArgs c1 `zip` constraintArgs c2)
@@ -129,84 +156,68 @@
   unifyTypes' t3 t4 =
     throwError . errorMessage $ TypesDoNotUnify t3 t4
 
--- | Align two rows of types, splitting them into three parts:
---
--- * Those types which appear in both rows
--- * Those which appear only on the left
--- * Those which appear only on the right
---
--- Note: importantly, we preserve the order of the types with a given label.
-alignRowsWith
-  :: (Type a -> Type a -> r)
-  -> Type a
-  -> Type a
-  -> ([r], (([RowListItem a], Type a), ([RowListItem a], Type a)))
-alignRowsWith f ty1 ty2 = go s1 s2 where
-  (s1, tail1) = rowToSortedList ty1
-  (s2, tail2) = rowToSortedList ty2
-
-  go [] r = ([], (([], tail1), (r, tail2)))
-  go r [] = ([], ((r, tail1), ([], tail2)))
-  go lhs@(RowListItem a1 l1 t1 : r1) rhs@(RowListItem a2 l2 t2 : r2)
-    | l1 < l2 = (second . first . first) (RowListItem a1 l1 t1 :) (go r1 rhs)
-    | l2 < l1 = (second . second . first) (RowListItem a2 l2 t2 :) (go lhs r2)
-    | otherwise = first (f t1 t2 :) (go r1 r2)
-
 -- | Unify two rows, updating the current substitution
 --
 -- Common labels are identified and unified. Remaining labels and types are unified with a
 -- trailing row unification variable, if appropriate.
 unifyRows :: forall m. (MonadError MultipleErrors m, MonadState CheckState m) => SourceType -> SourceType -> m ()
 unifyRows r1 r2 = sequence_ matches *> uncurry unifyTails rest where
-  (matches, rest) = alignRowsWith unifyTypes r1 r2
+  unifyTypesWithLabel l t1 t2 = withErrorMessageHint (ErrorInRowLabel l) $ unifyTypes t1 t2
 
+  (matches, rest) = alignRowsWith unifyTypesWithLabel r1 r2
+
   unifyTails :: ([RowListItem SourceAnn], SourceType) -> ([RowListItem SourceAnn], SourceType) -> m ()
   unifyTails ([], TUnknown _ u)    (sd, r)               = solveType u (rowFromList (sd, r))
   unifyTails (sd, r)               ([], TUnknown _ u)    = solveType u (rowFromList (sd, r))
-  unifyTails ([], REmpty _)        ([], REmpty _)        = return ()
+  unifyTails ([], REmptyKinded _ _) ([], REmptyKinded _ _) = return ()
   unifyTails ([], TypeVar _ v1)    ([], TypeVar _ v2)    | v1 == v2 = return ()
-  unifyTails ([], Skolem _ s1 _ _) ([], Skolem _ s2 _ _) | s1 == s2 = return ()
-  unifyTails (sd1, TUnknown _ u1)  (sd2, TUnknown _ u2)  = do
+  unifyTails ([], Skolem _ _ _ s1 _) ([], Skolem _ _ _ s2 _) | s1 == s2 = return ()
+  unifyTails (sd1, TUnknown a u1)  (sd2, TUnknown _ u2)  | u1 /= u2 = do
     forM_ sd1 $ occursCheck u2 . rowListType
     forM_ sd2 $ occursCheck u1 . rowListType
-    rest' <- freshType
+    rest' <- freshTypeWithKind =<< elaborateKind (TUnknown a u1)
     solveType u1 (rowFromList (sd2, rest'))
     solveType u2 (rowFromList (sd1, rest'))
   unifyTails _ _ =
     throwError . errorMessage $ TypesDoNotUnify r1 r2
 
 -- |
--- Replace a single type variable with a new unification variable
---
-replaceVarWithUnknown :: (MonadState CheckState m) => Text -> SourceType -> m SourceType
-replaceVarWithUnknown ident ty = do
-  tu <- freshType
-  return $ replaceTypeVars ident tu ty
-
--- |
 -- Replace type wildcards with unknowns
 --
 replaceTypeWildcards :: (MonadWriter MultipleErrors m, MonadState CheckState m) => SourceType -> m SourceType
 replaceTypeWildcards = everywhereOnTypesM replace
   where
-  replace (TypeWildcard ann name) = do
+  replace (TypeWildcard ann wdata) = do
     t <- freshType
     ctx <- getLocalContext
-    let err = maybe (WildcardInferredType t ctx) (\n -> HoleInferredType n t ctx Nothing) name
-    warnWithPosition (fst ann) $ tell $ errorMessage err
+    let err = case wdata of
+          HoleWildcard n -> Just $ HoleInferredType n t ctx Nothing
+          UnnamedWildcard -> Just $ WildcardInferredType t ctx
+          IgnoredWildcard -> Nothing
+    forM_ err $ warnWithPosition (fst ann) . tell . errorMessage
     return t
   replace other = return other
 
 -- |
 -- Replace outermost unsolved unification variables with named type variables
 --
-varIfUnknown :: SourceType -> SourceType
-varIfUnknown ty =
-  let unks = nubBy ((==) `on` snd) $ unknownsInType ty
-      toName = T.cons 't' . T.pack .  show
-      addKind a = (a, Nothing)
-      ty' = everywhereOnTypes typeToVar ty
-      typeToVar :: SourceType -> SourceType
-      typeToVar (TUnknown ann u) = TypeVar ann (toName u)
-      typeToVar t = t
-  in mkForAll (fmap (fmap addKind) . sortBy (comparing snd) . fmap (fmap toName) $ unks) ty'
+varIfUnknown :: forall m. (MonadState CheckState m) => [(Unknown, SourceType)] -> SourceType -> m SourceType
+varIfUnknown unks ty = do
+  bn' <- traverse toBinding unks
+  ty' <- go ty
+  pure $ mkForAll bn' ty'
+  where
+  toName :: Unknown -> m T.Text
+  toName u = (<> T.pack (show u)) . fromMaybe "t" <$> lookupUnkName u
+
+  toBinding :: (Unknown, SourceType) -> m (SourceAnn, (T.Text, Maybe SourceType))
+  toBinding (u, k) = do
+    u' <- toName u
+    k' <- go k
+    pure (getAnnForType ty, (u', Just k'))
+
+  go :: SourceType -> m SourceType
+  go = everywhereOnTypesM $ \case
+    (TUnknown ann u) ->
+      TypeVar ann <$> toName u
+    t -> pure t
diff --git a/src/Language/PureScript/TypeClassDictionaries.hs b/src/Language/PureScript/TypeClassDictionaries.hs
--- a/src/Language/PureScript/TypeClassDictionaries.hs
+++ b/src/Language/PureScript/TypeClassDictionaries.hs
@@ -1,24 +1,22 @@
-{-# LANGUAGE DeriveFoldable    #-}
-{-# LANGUAGE DeriveTraversable #-}
-{-# LANGUAGE DeriveGeneric     #-}
 module Language.PureScript.TypeClassDictionaries where
 
-import Prelude.Compat
+import Prelude
 
 import GHC.Generics (Generic)
 import Control.DeepSeq (NFData)
 import Data.Text (Text, pack)
 
-import Language.PureScript.Names
-import Language.PureScript.Types
+import Language.PureScript.AST.Declarations.ChainId (ChainId)
+import Language.PureScript.Names (Ident, ProperName(..), ProperNameType(..), Qualified, disqualify)
+import Language.PureScript.Types (SourceConstraint, SourceType)
 
--- |
+--
 -- Data representing a type class dictionary which is in scope
 --
 data TypeClassDictionaryInScope v
   = TypeClassDictionaryInScope {
     -- | The instance chain
-      tcdChain :: [Qualified Ident]
+      tcdChain :: Maybe ChainId
     -- | Index of the instance chain
     , tcdIndex :: Integer
     -- | The value with which the dictionary can be accessed at runtime
@@ -27,10 +25,17 @@
     , tcdPath :: [(Qualified (ProperName 'ClassName), Integer)]
     -- | The name of the type class to which this type class instance applies
     , tcdClassName :: Qualified (ProperName 'ClassName)
+    -- | Quantification of type variables in the instance head and dependencies
+    , tcdForAll :: [(Text, SourceType)]
+    -- | The kinds to which this type class instance applies
+    , tcdInstanceKinds :: [SourceType]
     -- | The types to which this type class instance applies
     , tcdInstanceTypes :: [SourceType]
     -- | Type class dependencies which must be satisfied to construct this dictionary
     , tcdDependencies :: Maybe [SourceConstraint]
+    -- | If this instance was unnamed, the type to use when describing it in
+    -- error messages
+    , tcdDescription :: Maybe SourceType
     }
     deriving (Show, Functor, Foldable, Traversable, Generic)
 
diff --git a/src/Language/PureScript/Types.hs b/src/Language/PureScript/Types.hs
--- a/src/Language/PureScript/Types.hs
+++ b/src/Language/PureScript/Types.hs
@@ -1,41 +1,34 @@
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE TemplateHaskell #-}
-{-# LANGUAGE DeriveGeneric #-}
-{-# LANGUAGE DeriveFoldable #-}
-{-# LANGUAGE DeriveTraversable #-}
-{-# LANGUAGE FlexibleInstances #-}
-
 -- |
 -- Data types for types
 --
 module Language.PureScript.Types where
 
-import Prelude.Compat
-import Protolude (ordNub)
+import Prelude
+import Protolude (ordNub, fromMaybe)
 
+import Codec.Serialise (Serialise)
 import Control.Applicative ((<|>))
-import Control.Arrow (first)
+import Control.Arrow (first, second)
 import Control.DeepSeq (NFData)
-import Control.Monad ((<=<))
-import Data.Aeson ((.:), (.=))
-import qualified Data.Aeson as A
-import qualified Data.Aeson.Types as A
-import Data.Foldable (fold)
-import Data.List (sortBy)
-import Data.Ord (comparing)
-import Data.Maybe (fromMaybe)
+import Control.Lens (Lens', (^.), set)
+import Control.Monad ((<=<), (>=>))
+import Data.Aeson ((.:), (.:?), (.!=), (.=))
+import Data.Aeson qualified as A
+import Data.Aeson.Types qualified as A
+import Data.Foldable (fold, foldl')
+import Data.IntSet qualified as IS
+import Data.List (sortOn)
+import Data.Maybe (isJust)
 import Data.Text (Text)
-import qualified Data.Text as T
+import Data.Text qualified as T
 import GHC.Generics (Generic)
 
-import Language.PureScript.AST.SourcePos
-import Language.PureScript.Kinds
-import Language.PureScript.Names
+import Language.PureScript.AST.SourcePos (pattern NullSourceAnn, SourceAnn, SourceSpan)
+import Language.PureScript.Constants.Prim qualified as C
+import Language.PureScript.Names (OpName, OpNameType(..), ProperName, ProperNameType(..), Qualified, coerceProperName)
 import Language.PureScript.Label (Label)
 import Language.PureScript.PSString (PSString)
 
-import Lens.Micro.Platform (Lens', (^.), set)
-
 type SourceType = Type SourceAnn
 type SourceConstraint = Constraint SourceAnn
 
@@ -46,8 +39,34 @@
   deriving (Show, Eq, Ord, A.ToJSON, A.FromJSON, Generic)
 
 instance NFData SkolemScope
+instance Serialise SkolemScope
 
 -- |
+-- Describes how a TypeWildcard should be presented to the user during
+-- type checking: holes (?foo) are always emitted as errors, whereas unnamed
+-- wildcards (_) default to warnings, but are ignored entirely if they are
+-- contained by a binding with a complete (wildcard-free) type signature.
+--
+data WildcardData = HoleWildcard Text | UnnamedWildcard | IgnoredWildcard
+  deriving (Show, Eq, Ord, Generic)
+
+instance NFData WildcardData
+instance Serialise WildcardData
+
+data TypeVarVisibility
+  = TypeVarVisible
+  | TypeVarInvisible
+  deriving (Show, Eq, Ord, Generic)
+
+instance NFData TypeVarVisibility
+instance Serialise TypeVarVisibility
+
+typeVarVisibilityPrefix :: TypeVarVisibility -> Text
+typeVarVisibilityPrefix = \case
+  TypeVarVisible -> "@"
+  TypeVarInvisible -> mempty
+
+-- |
 -- The type of types
 --
 data Type a
@@ -57,8 +76,10 @@
   | TypeVar a Text
   -- | A type-level string
   | TypeLevelString a PSString
+  -- | A type-level natural
+  | TypeLevelInt a Integer
   -- | A type wildcard, as would appear in a partial type synonym
-  | TypeWildcard a (Maybe Text)
+  | TypeWildcard a WildcardData
   -- | A type constructor
   | TypeConstructor a (Qualified (ProperName 'TypeName))
   -- | A type operator. This will be desugared into a type constructor during the
@@ -66,18 +87,20 @@
   | TypeOp a (Qualified (OpName 'TypeOpName))
   -- | A type application
   | TypeApp a (Type a) (Type a)
+  -- | Explicit kind application
+  | KindApp a (Type a) (Type a)
   -- | Forall quantifier
-  | ForAll a Text (Maybe (Kind a)) (Type a) (Maybe SkolemScope)
+  | ForAll a TypeVarVisibility Text (Maybe (Type a)) (Type a) (Maybe SkolemScope)
   -- | A type with a set of type class constraints
   | ConstrainedType a (Constraint a) (Type a)
   -- | A skolem constant
-  | Skolem a Text Int SkolemScope
+  | Skolem a Text (Maybe (Type a)) Int SkolemScope
   -- | An empty row
   | REmpty a
   -- | A non-empty row
   | RCons a Label (Type a) (Type a)
   -- | A type with a kind annotation
-  | KindedType a (Type a) (Kind a)
+  | KindedType a (Type a) (Type a)
   -- | Binary operator application. During the rebracketing phase of desugaring,
   -- this data constructor will be removed.
   | BinaryNoParensType a (Type a) (Type a) (Type a)
@@ -90,6 +113,7 @@
   deriving (Show, Generic, Functor, Foldable, Traversable)
 
 instance NFData a => NFData (Type a)
+instance Serialise a => Serialise (Type a)
 
 srcTUnknown :: Int -> SourceType
 srcTUnknown = TUnknown NullSourceAnn
@@ -100,42 +124,47 @@
 srcTypeLevelString :: PSString -> SourceType
 srcTypeLevelString = TypeLevelString NullSourceAnn
 
+srcTypeLevelInt :: Integer -> SourceType
+srcTypeLevelInt = TypeLevelInt NullSourceAnn
+
 srcTypeWildcard :: SourceType
-srcTypeWildcard = TypeWildcard NullSourceAnn Nothing
+srcTypeWildcard = TypeWildcard NullSourceAnn UnnamedWildcard
 
 srcTypeConstructor :: Qualified (ProperName 'TypeName) -> SourceType
 srcTypeConstructor = TypeConstructor NullSourceAnn
 
-srcTypeOp :: Qualified (OpName 'TypeOpName) -> SourceType
-srcTypeOp = TypeOp NullSourceAnn
-
 srcTypeApp :: SourceType -> SourceType -> SourceType
 srcTypeApp = TypeApp NullSourceAnn
 
-srcForAll :: Text -> Maybe SourceKind -> SourceType -> Maybe SkolemScope -> SourceType
+srcKindApp :: SourceType -> SourceType -> SourceType
+srcKindApp = KindApp NullSourceAnn
+
+srcForAll :: TypeVarVisibility -> Text -> Maybe SourceType -> SourceType -> Maybe SkolemScope -> SourceType
 srcForAll = ForAll NullSourceAnn
 
 srcConstrainedType :: SourceConstraint -> SourceType -> SourceType
 srcConstrainedType = ConstrainedType NullSourceAnn
 
-srcSkolem :: Text -> Int -> SkolemScope -> SourceType
-srcSkolem = Skolem NullSourceAnn
-
 srcREmpty :: SourceType
 srcREmpty = REmpty NullSourceAnn
 
 srcRCons :: Label -> SourceType -> SourceType -> SourceType
 srcRCons = RCons NullSourceAnn
 
-srcKindedType :: SourceType -> SourceKind -> SourceType
+srcKindedType :: SourceType -> SourceType -> SourceType
 srcKindedType = KindedType NullSourceAnn
 
-srcBinaryNoParensType :: SourceType -> SourceType -> SourceType -> SourceType
-srcBinaryNoParensType = BinaryNoParensType NullSourceAnn
+pattern REmptyKinded :: forall a. a -> Maybe (Type a) -> Type a
+pattern REmptyKinded ann mbK <- (toREmptyKinded -> Just (ann, mbK))
 
-srcParensInType :: SourceType -> SourceType
-srcParensInType = ParensInType NullSourceAnn
+toREmptyKinded :: forall a. Type a -> Maybe (a, Maybe (Type a))
+toREmptyKinded (REmpty ann) = Just (ann, Nothing)
+toREmptyKinded (KindApp _ (REmpty ann) k) = Just (ann, Just k)
+toREmptyKinded _ = Nothing
 
+isREmpty :: forall a. Type a -> Bool
+isREmpty = isJust . toREmptyKinded
+
 -- | Additional data relevant to type class constraints
 data ConstraintData
   = PartialConstraintData [[Text]] Bool
@@ -147,6 +176,7 @@
   deriving (Show, Eq, Ord, Generic)
 
 instance NFData ConstraintData
+instance Serialise ConstraintData
 
 -- | A typeclass constraint
 data Constraint a = Constraint
@@ -154,6 +184,8 @@
   -- ^ constraint annotation
   , constraintClass :: Qualified (ProperName 'ClassName)
   -- ^ constraint class name
+  , constraintKindArgs :: [Type a]
+  -- ^ kind arguments
   , constraintArgs  :: [Type a]
   -- ^ type arguments
   , constraintData  :: Maybe ConstraintData
@@ -161,8 +193,9 @@
   } deriving (Show, Generic, Functor, Foldable, Traversable)
 
 instance NFData a => NFData (Constraint a)
+instance Serialise a => Serialise (Constraint a)
 
-srcConstraint :: Qualified (ProperName 'ClassName) -> [SourceType] -> Maybe ConstraintData -> SourceConstraint
+srcConstraint :: Qualified (ProperName 'ClassName) -> [SourceType] -> [SourceType] -> Maybe ConstraintData -> SourceConstraint
 srcConstraint = Constraint NullSourceAnn
 
 mapConstraintArgs :: ([Type a] -> [Type a]) -> Constraint a -> Constraint a
@@ -171,6 +204,18 @@
 overConstraintArgs :: Functor f => ([Type a] -> f [Type a]) -> Constraint a -> f (Constraint a)
 overConstraintArgs f c = (\args -> c { constraintArgs = args }) <$> f (constraintArgs c)
 
+mapConstraintArgsAll :: ([Type a] -> [Type a]) -> Constraint a -> Constraint a
+mapConstraintArgsAll f c =
+  c { constraintKindArgs = f (constraintKindArgs c)
+    , constraintArgs = f (constraintArgs c)
+    }
+
+overConstraintArgsAll :: Applicative f => ([Type a] -> f [Type a]) -> Constraint a -> f (Constraint a)
+overConstraintArgsAll f c =
+  (\a b -> c { constraintKindArgs = a, constraintArgs = b })
+    <$> f (constraintKindArgs c)
+    <*> f (constraintArgs c)
+
 constraintDataToJSON :: ConstraintData -> A.Value
 constraintDataToJSON (PartialConstraintData bs trunc) =
   A.object
@@ -178,14 +223,20 @@
     ]
 
 constraintToJSON :: (a -> A.Value) -> Constraint a -> A.Value
-constraintToJSON annToJSON (Constraint {..}) =
+constraintToJSON annToJSON Constraint {..} =
   A.object
     [ "constraintAnn"   .= annToJSON constraintAnn
     , "constraintClass" .= constraintClass
+    , "constraintKindArgs"  .= fmap (typeToJSON annToJSON) constraintKindArgs
     , "constraintArgs"  .= fmap (typeToJSON annToJSON) constraintArgs
     , "constraintData"  .= fmap constraintDataToJSON constraintData
     ]
 
+typeVarVisToJSON :: TypeVarVisibility -> A.Value
+typeVarVisToJSON = \case
+  TypeVarVisible -> A.toJSON ("TypeVarVisible" :: Text)
+  TypeVarInvisible -> A.toJSON ("TypeVarInvisible" :: Text)
+
 typeToJSON :: forall a. (a -> A.Value) -> Type a -> A.Value
 typeToJSON annToJSON ty =
   case ty of
@@ -195,6 +246,8 @@
       variant "TypeVar" a b
     TypeLevelString a b ->
       variant "TypeLevelString" a b
+    TypeLevelInt a b ->
+      variant "TypeLevelInt" a b
     TypeWildcard a b ->
       variant "TypeWildcard" a b
     TypeConstructor a b ->
@@ -203,20 +256,26 @@
       variant "TypeOp" a b
     TypeApp a b c ->
       variant "TypeApp" a (go b, go c)
-    ForAll a b c d e ->
-      case c of
-        Nothing -> variant "ForAll" a (b, go d, e)
-        Just k -> variant "ForAll" a (b, kindToJSON annToJSON k, go d, e)
+    KindApp a b c ->
+      variant "KindApp" a (go b, go c)
+    ForAll a b c d e f ->
+      variant "ForAll" a $ A.object
+        [ "visibility" .= b
+        , "identifier" .= c
+        , "kind" .= fmap go d
+        , "type" .= go e
+        , "skolem" .= f
+        ]
     ConstrainedType a b c ->
       variant "ConstrainedType" a (constraintToJSON annToJSON b, go c)
-    Skolem a b c d ->
-      variant "Skolem" a (b, c, d)
+    Skolem a b c d e ->
+      variant "Skolem" a (b, go <$> c, d, e)
     REmpty a ->
       nullary "REmpty" a
     RCons a b c d ->
       variant "RCons" a (b, go c, go d)
     KindedType a b c ->
-      variant "KindedType" a (go b, kindToJSON annToJSON c)
+      variant "KindedType" a (go b, go c)
     BinaryNoParensType a b c d ->
       variant "BinaryNoParensType" a (go b, go c, go d)
     ParensInType a b ->
@@ -240,6 +299,12 @@
       , "annotation" .= annToJSON ann
       ]
 
+instance A.ToJSON WildcardData where
+  toJSON = \case
+    HoleWildcard name -> A.String name
+    UnnamedWildcard -> A.Null
+    IgnoredWildcard -> A.object [ "ignored" .= True ]
+
 instance A.ToJSON a => A.ToJSON (Type a) where
   toJSON = typeToJSON A.toJSON
 
@@ -249,6 +314,9 @@
 instance A.ToJSON ConstraintData where
   toJSON = constraintDataToJSON
 
+instance A.ToJSON TypeVarVisibility where
+  toJSON = typeVarVisToJSON
+
 constraintDataFromJSON :: A.Value -> A.Parser ConstraintData
 constraintDataFromJSON = A.withObject "PartialConstraintData" $ \o -> do
   (bs, trunc) <- o .: "contents"
@@ -258,10 +326,19 @@
 constraintFromJSON defaultAnn annFromJSON = A.withObject "Constraint" $ \o -> do
   constraintAnn   <- (o .: "constraintAnn" >>= annFromJSON) <|> defaultAnn
   constraintClass <- o .: "constraintClass"
+  constraintKindArgs <- o .:? "constraintKindArgs" .!= [] >>= traverse (typeFromJSON defaultAnn annFromJSON)
   constraintArgs  <- o .: "constraintArgs" >>= traverse (typeFromJSON defaultAnn annFromJSON)
   constraintData  <- o .: "constraintData" >>= traverse constraintDataFromJSON
   pure $ Constraint {..}
 
+typeVarVisFromJSON :: A.Value -> A.Parser TypeVarVisibility
+typeVarVisFromJSON v = do
+  v' <- A.parseJSON v
+  case v' of
+    "TypeVarVisible" -> pure TypeVarVisible
+    "TypeVarInvisible" -> pure TypeVarInvisible
+    _ -> fail $ "Unrecognized TypeVarVisibility: " <> v'
+
 typeFromJSON :: forall a. A.Parser a -> (A.Value -> A.Parser a) -> A.Value -> A.Parser (Type a)
 typeFromJSON defaultAnn annFromJSON = A.withObject "Type" $ \o -> do
   tag <- o .: "tag"
@@ -276,8 +353,10 @@
       TypeVar a <$> contents
     "TypeLevelString" ->
       TypeLevelString a <$> contents
+    "TypeLevelInt" ->
+      TypeLevelInt a <$> contents
     "TypeWildcard" -> do
-      b <- contents <|> pure Nothing
+      b <- contents <|> pure UnnamedWildcard
       pure $ TypeWildcard a b
     "TypeConstructor" ->
       TypeConstructor a <$> contents
@@ -286,21 +365,35 @@
     "TypeApp" -> do
       (b, c) <- contents
       TypeApp a <$> go b <*> go c
+    "KindApp" -> do
+      (b, c) <- contents
+      KindApp a <$> go b <*> go c
     "ForAll" -> do
       let
+        asObject = do
+          f <- contents
+          v <- f .: "visibility"
+          i <- f .: "identifier"
+          k <- f .:? "kind"
+          t <- f .: "type"
+          s <- f .: "skolem"
+          ForAll a v i <$> traverse go k <*> go t <*> pure s
+
         withoutMbKind = do
           (b, c, d) <- contents
-          ForAll a b Nothing <$> go c <*> pure d
+          ForAll a TypeVarInvisible b Nothing <$> go c <*> pure d
+
         withMbKind = do
           (b, c, d, e) <- contents
-          ForAll a b <$> (Just <$> kindFromJSON defaultAnn annFromJSON c) <*> go d <*> pure e
-      withMbKind <|> withoutMbKind
+          ForAll a TypeVarInvisible b <$> (Just <$> go c) <*> go d <*> pure e
+      asObject <|> withMbKind <|> withoutMbKind
     "ConstrainedType" -> do
       (b, c) <- contents
       ConstrainedType a <$> constraintFromJSON defaultAnn annFromJSON b <*> go c
     "Skolem" -> do
-      (b, c, d) <- contents
-      pure $ Skolem a b c d
+      (b, c, d, e) <- contents
+      c' <- traverse go c
+      pure $ Skolem a b c' d e
     "REmpty" ->
       pure $ REmpty a
     "RCons" -> do
@@ -308,20 +401,30 @@
       RCons a b <$> go c <*> go d
     "KindedType" -> do
       (b, c) <- contents
-      KindedType a <$> go b <*> kindFromJSON defaultAnn annFromJSON c
+      KindedType a <$> go b <*> go c
     "BinaryNoParensType" -> do
       (b, c, d) <- contents
       BinaryNoParensType a <$> go b <*> go c <*> go d
     "ParensInType" -> do
       b <- contents
       ParensInType a <$> go b
+    -- Backwards compatibility for kinds
+    "KUnknown" ->
+      TUnknown a <$> contents
+    "Row" ->
+      TypeApp a (TypeConstructor a C.Row) <$> (go =<< contents)
+    "FunKind" -> do
+      (b, c) <- contents
+      TypeApp a . TypeApp a (TypeConstructor a C.Function) <$> go b <*> go c
+    "NamedKind" ->
+      TypeConstructor a <$> contents
     other ->
       fail $ "Unrecognised tag: " ++ other
   where
   go :: A.Value -> A.Parser (Type a)
   go = typeFromJSON defaultAnn annFromJSON
 
--- These overlapping instances exist to preserve compatability for common
+-- These overlapping instances exist to preserve compatibility for common
 -- instances which have a sensible default for missing annotations.
 instance {-# OVERLAPPING #-} A.FromJSON (Type SourceAnn) where
   parseJSON = typeFromJSON (pure NullSourceAnn) A.parseJSON
@@ -344,6 +447,16 @@
 instance A.FromJSON ConstraintData where
   parseJSON = constraintDataFromJSON
 
+instance A.FromJSON WildcardData where
+  parseJSON = \case
+    A.String name -> pure $ HoleWildcard name
+    A.Object _ -> pure IgnoredWildcard
+    A.Null -> pure UnnamedWildcard
+    _ -> fail "Unrecognized WildcardData"
+
+instance A.FromJSON TypeVarVisibility where
+  parseJSON = typeVarVisFromJSON
+
 data RowListItem a = RowListItem
   { rowListAnn :: a
   , rowListLabel :: Label
@@ -362,12 +475,36 @@
 
 -- | Convert a row to a list of pairs of labels and types, sorted by the labels.
 rowToSortedList :: Type a -> ([RowListItem a], Type a)
-rowToSortedList = first (sortBy (comparing rowListLabel)) . rowToList
+rowToSortedList = first (sortOn rowListLabel) . rowToList
 
 -- | Convert a list of labels and types to a row
 rowFromList :: ([RowListItem a], Type a) -> Type a
 rowFromList (xs, r) = foldr (\(RowListItem ann name ty) -> RCons ann name ty) r xs
 
+-- | Align two rows of types, splitting them into three parts:
+--
+-- * Those types which appear in both rows
+-- * Those which appear only on the left
+-- * Those which appear only on the right
+--
+-- Note: importantly, we preserve the order of the types with a given label.
+alignRowsWith
+  :: (Label -> Type a -> Type a -> r)
+  -> Type a
+  -> Type a
+  -> ([r], (([RowListItem a], Type a), ([RowListItem a], Type a)))
+alignRowsWith f ty1 ty2 = go s1 s2 where
+  (s1, tail1) = rowToSortedList ty1
+  (s2, tail2) = rowToSortedList ty2
+
+  go [] r = ([], (([], tail1), (r, tail2)))
+  go r [] = ([], ((r, tail1), ([], tail2)))
+  go lhs@(RowListItem a1 l1 t1 : r1) rhs@(RowListItem a2 l2 t2 : r2) = 
+    case compare l1 l2 of
+      LT -> (second . first . first) (RowListItem a1 l1 t1 :) (go r1 rhs)
+      GT -> (second . second . first) (RowListItem a2 l2 t2 :) (go lhs r2)
+      EQ -> first (f l1 t1 t2 :) (go r1 r2)
+
 -- | Check whether a type is a monotype
 isMonoType :: Type a -> Bool
 isMonoType ForAll{} = False
@@ -376,8 +513,8 @@
 isMonoType _        = True
 
 -- | Universally quantify a type
-mkForAll :: [(a, (Text, Maybe (Kind a)))] -> Type a -> Type a
-mkForAll args ty = foldl (\t (ann, (arg, mbK)) -> ForAll ann arg mbK t Nothing) ty args
+mkForAll :: [(a, (Text, Maybe (Type a)))] -> Type a -> Type a
+mkForAll args ty = foldr (\(ann, (arg, mbK)) t -> ForAll ann TypeVarInvisible arg mbK t Nothing) ty args
 
 -- | Replace a type variable, taking into account variable shadowing
 replaceTypeVars :: Text -> Type a -> Type a -> Type a
@@ -389,28 +526,43 @@
   go :: [Text] -> [(Text, Type a)] -> Type a -> Type a
   go _  m (TypeVar ann v) = fromMaybe (TypeVar ann v) (v `lookup` m)
   go bs m (TypeApp ann t1 t2) = TypeApp ann (go bs m t1) (go bs m t2)
-  go bs m f@(ForAll ann v mbK t sco)
-    | v `elem` keys = go bs (filter ((/= v) . fst) m) f
+  go bs m (KindApp ann t1 t2) = KindApp ann (go bs m t1) (go bs m t2)
+  go bs m (ForAll ann vis v mbK t sco)
+    | v `elem` keys = go bs (filter ((/= v) . fst) m) $ ForAll ann vis v mbK' t sco
     | v `elem` usedVars =
-      let v' = genName v (keys ++ bs ++ usedVars)
+      let v' = genPureName v (keys ++ bs ++ usedVars)
           t' = go bs [(v, TypeVar ann v')] t
-      in ForAll ann v' mbK (go (v' : bs) m t') sco
-    | otherwise = ForAll ann v mbK (go (v : bs) m t) sco
+      in ForAll ann vis v' mbK' (go (v' : bs) m t') sco
+    | otherwise = ForAll ann vis v mbK' (go (v : bs) m t) sco
     where
+      mbK' = go bs m <$> mbK
       keys = map fst m
       usedVars = concatMap (usedTypeVariables . snd) m
-  go bs m (ConstrainedType ann c t) = ConstrainedType ann (mapConstraintArgs (map (go bs m)) c) (go bs m t)
+  go bs m (ConstrainedType ann c t) = ConstrainedType ann (mapConstraintArgsAll (map (go bs m)) c) (go bs m t)
   go bs m (RCons ann name' t r) = RCons ann name' (go bs m t) (go bs m r)
-  go bs m (KindedType ann t k) = KindedType ann (go bs m t) k
+  go bs m (KindedType ann t k) = KindedType ann (go bs m t) (go bs m k)
   go bs m (BinaryNoParensType ann t1 t2 t3) = BinaryNoParensType ann (go bs m t1) (go bs m t2) (go bs m t3)
   go bs m (ParensInType ann t) = ParensInType ann (go bs m t)
   go _  _ ty = ty
 
-  genName orig inUse = try' 0 where
-    try' :: Integer -> Text
-    try' n | (orig <> T.pack (show n)) `elem` inUse = try' (n + 1)
-           | otherwise = orig <> T.pack (show n)
+genPureName :: Text -> [Text] -> Text
+genPureName orig inUse = try' 0
+  where
+  try' :: Integer -> Text
+  try' n | (orig <> T.pack (show n)) `elem` inUse = try' (n + 1)
+         | otherwise = orig <> T.pack (show n)
 
+-- | Add visible type abstractions to top-level foralls.
+addVisibility :: [(Text, TypeVarVisibility)] -> Type a -> Type a
+addVisibility v = go where
+  go (ForAll ann vis arg mbK ty sco) = case lookup arg v of
+    Just vis' ->
+      ForAll ann vis' arg mbK (go ty) sco
+    Nothing ->
+      ForAll ann vis arg mbK (go ty) sco
+  go (ParensInType ann ty) = ParensInType ann (go ty)
+  go ty = ty
+
 -- | Collect all type variables appearing in a type
 usedTypeVariables :: Type a -> [Text]
 usedTypeVariables = ordNub . everythingOnTypes (++) go where
@@ -419,35 +571,52 @@
 
 -- | Collect all free type variables appearing in a type
 freeTypeVariables :: Type a -> [Text]
-freeTypeVariables = ordNub . go [] where
-  go :: [Text] -> Type a -> [Text]
-  go bound (TypeVar _ v) | v `notElem` bound = [v]
-  go bound (TypeApp _ t1 t2) = go bound t1 ++ go bound t2
-  go bound (ForAll _ v _ t _) = go (v : bound) t
-  go bound (ConstrainedType _ c t) = concatMap (go bound) (constraintArgs c) ++ go bound t
-  go bound (RCons _ _ t r) = go bound t ++ go bound r
-  go bound (KindedType _ t _) = go bound t
-  go bound (BinaryNoParensType _ t1 t2 t3) = go bound t1 ++ go bound t2 ++ go bound t3
-  go bound (ParensInType _ t) = go bound t
-  go _ _ = []
+freeTypeVariables = ordNub . fmap snd . sortOn fst . go 0 [] where
+  -- Tracks kind levels so that variables appearing in kind annotations are listed first.
+  go :: Int -> [Text] -> Type a -> [(Int, Text)]
+  go lvl bound (TypeVar _ v) | v `notElem` bound = [(lvl, v)]
+  go lvl bound (TypeApp _ t1 t2) = go lvl bound t1 ++ go lvl bound t2
+  go lvl bound (KindApp _ t1 t2) = go lvl bound t1 ++ go (lvl - 1) bound t2
+  go lvl bound (ForAll _ _ v mbK t _) = foldMap (go (lvl - 1) bound) mbK ++ go lvl (v : bound) t
+  go lvl bound (ConstrainedType _ c t) = foldMap (go (lvl - 1) bound) (constraintKindArgs c) ++ foldMap (go lvl bound) (constraintArgs c) ++ go lvl bound t
+  go lvl bound (RCons _ _ t r) = go lvl bound t ++ go lvl bound r
+  go lvl bound (KindedType _ t k) = go lvl bound t ++ go (lvl - 1) bound k
+  go lvl bound (BinaryNoParensType _ t1 t2 t3) = go lvl bound t1 ++ go lvl bound t2 ++ go lvl bound t3
+  go lvl bound (ParensInType _ t) = go lvl bound t
+  go _ _ _ = []
 
+-- | Collect a complete set of kind-annotated quantifiers at the front of a type.
+completeBinderList :: Type a -> Maybe ([(a, (Text, Type a))], Type a)
+completeBinderList = go []
+  where
+  go acc = \case
+    ForAll _ _ _ Nothing _ _ -> Nothing
+    ForAll ann _ var (Just k) ty _ -> go ((ann, (var, k)) : acc) ty
+    ty -> Just (reverse acc, ty)
+
 -- | Universally quantify over all type variables appearing free in a type
 quantify :: Type a -> Type a
-quantify ty = foldr (\arg t -> ForAll (getAnnForType ty) arg Nothing t Nothing) ty $ freeTypeVariables ty
+quantify ty = foldr (\arg t -> ForAll (getAnnForType ty) TypeVarInvisible arg Nothing t Nothing) ty $ freeTypeVariables ty
 
 -- | Move all universal quantifiers to the front of a type
-moveQuantifiersToFront :: Type a -> Type a
-moveQuantifiersToFront = go [] [] where
-  go qs cs (ForAll ann q mbK ty sco) = go ((ann, q, sco, mbK) : qs) cs ty
-  go qs cs (ConstrainedType ann c ty) = go qs ((ann, c) : cs) ty
-  go qs cs ty = foldl (\ty' (ann, q, sco, mbK) -> ForAll ann q mbK ty' sco) (foldl (\ty' (ann, c) -> ConstrainedType ann c ty') ty cs) qs
-
--- | Check if a type contains wildcards
-containsWildcards :: Type a -> Bool
-containsWildcards = everythingOnTypes (||) go where
-  go :: Type a -> Bool
-  go TypeWildcard{} = True
-  go _ = False
+moveQuantifiersToFront :: a -> Type a -> Type a
+moveQuantifiersToFront syntheticAnn = go [] [] 
+  where
+  go qs cs = \case
+    ForAll ann vis q mbK ty sco -> do
+      let 
+        cArgs :: [Text] = cs >>= constraintArgs . snd >>= freeTypeVariables
+        (q'', ty')
+          | q `elem` cArgs = do
+              let q' = genPureName q $ cArgs <> freeTypeVariables ty
+              (q', replaceTypeVars q (TypeVar syntheticAnn q') ty)
+          | otherwise =
+              (q, ty)
+      go ((ann, q'', sco, mbK, vis) : qs) cs ty'
+    ConstrainedType ann c ty ->
+      go qs ((ann, c) : cs) ty
+    ty -> 
+      foldl (\ty' (ann, q, sco, mbK, vis) -> ForAll ann vis q mbK ty' sco) (foldl (\ty' (ann, c) -> ConstrainedType ann c ty') ty cs) qs
 
 -- | Check if a type contains `forall`
 containsForAll :: Type a -> Bool
@@ -456,35 +625,94 @@
   go ForAll{} = True
   go _ = False
 
+unknowns :: Type a -> IS.IntSet
+unknowns = everythingOnTypes (<>) go where
+  go :: Type a -> IS.IntSet
+  go (TUnknown _ u) = IS.singleton u
+  go _ = mempty
+
+-- | Check if a type contains unknowns in a position that is relevant to
+-- constraint solving. (Kinds are not.)
+containsUnknowns :: Type a -> Bool
+containsUnknowns = everythingOnTypes (||) go . eraseKindApps where
+  go :: Type a -> Bool
+  go TUnknown{} = True
+  go _ = False
+
+eraseKindApps :: Type a -> Type a
+eraseKindApps = everywhereOnTypes $ \case
+  KindApp _ ty _ -> ty
+  ConstrainedType ann con ty ->
+    ConstrainedType ann (con { constraintKindArgs = [] }) ty
+  Skolem ann name _ i sc ->
+    Skolem ann name Nothing i sc
+  other -> other
+
+eraseForAllKindAnnotations :: Type a -> Type a
+eraseForAllKindAnnotations = removeAmbiguousVars . removeForAllKinds
+  where
+  removeForAllKinds = everywhereOnTypes $ \case
+    ForAll ann vis arg _ ty sco ->
+      ForAll ann vis arg Nothing ty sco
+    other -> other
+
+  removeAmbiguousVars = everywhereOnTypes $ \case
+    fa@(ForAll _ _ arg _ ty _)
+      | arg `elem` freeTypeVariables ty -> fa
+      | otherwise -> ty
+    other -> other
+
+unapplyTypes :: Type a -> (Type a, [Type a], [Type a])
+unapplyTypes = goTypes []
+  where
+  goTypes acc (TypeApp _ a b) = goTypes (b : acc) a
+  goTypes acc a = let (ty, kinds) = goKinds [] a in (ty, kinds, acc)
+
+  goKinds acc (KindApp _ a b) = goKinds (b : acc) a
+  goKinds acc a = (a, acc)
+
+unapplyConstraints :: Type a -> ([Constraint a], Type a)
+unapplyConstraints = go []
+  where
+  go acc (ConstrainedType _ con ty) = go (con : acc) ty
+  go acc ty = (reverse acc, ty)
+
+-- | Construct the type of an instance declaration from its parts. Used in
+-- error messages describing unnamed instances.
+srcInstanceType
+  :: SourceSpan
+  -> [(Text, SourceType)]
+  -> Qualified (ProperName 'ClassName)
+  -> [SourceType]
+  -> SourceType
+srcInstanceType ss vars className tys
+  = setAnnForType (ss, [])
+  . flip (foldr $ \(tv, k) ty -> srcForAll TypeVarInvisible tv (Just k) ty Nothing) vars
+  . flip (foldl' srcTypeApp) tys
+  $ srcTypeConstructor $ coerceProperName <$> className
+
 everywhereOnTypes :: (Type a -> Type a) -> Type a -> Type a
 everywhereOnTypes f = go where
   go (TypeApp ann t1 t2) = f (TypeApp ann (go t1) (go t2))
-  go (ForAll ann arg mbK ty sco) = f (ForAll ann arg mbK (go ty) sco)
-  go (ConstrainedType ann c ty) = f (ConstrainedType ann (mapConstraintArgs (map go) c) (go ty))
+  go (KindApp ann t1 t2) = f (KindApp ann (go t1) (go t2))
+  go (ForAll ann vis arg mbK ty sco) = f (ForAll ann vis arg (go <$> mbK) (go ty) sco)
+  go (ConstrainedType ann c ty) = f (ConstrainedType ann (mapConstraintArgsAll (map go) c) (go ty))
+  go (Skolem ann name mbK i sc) = f (Skolem ann name (go <$> mbK) i sc)
   go (RCons ann name ty rest) = f (RCons ann name (go ty) (go rest))
-  go (KindedType ann ty k) = f (KindedType ann (go ty) k)
+  go (KindedType ann ty k) = f (KindedType ann (go ty) (go k))
   go (BinaryNoParensType ann t1 t2 t3) = f (BinaryNoParensType ann (go t1) (go t2) (go t3))
   go (ParensInType ann t) = f (ParensInType ann (go t))
   go other = f other
 
-everywhereOnTypesTopDown :: (Type a -> Type a) -> Type a -> Type a
-everywhereOnTypesTopDown f = go . f where
-  go (TypeApp ann t1 t2) = TypeApp ann (go (f t1)) (go (f t2))
-  go (ForAll ann arg mbK ty sco) = ForAll ann arg mbK (go (f ty)) sco
-  go (ConstrainedType ann c ty) = ConstrainedType ann (mapConstraintArgs (map (go . f)) c) (go (f ty))
-  go (RCons ann name ty rest) = RCons ann name (go (f ty)) (go (f rest))
-  go (KindedType ann ty k) = KindedType ann (go (f ty)) k
-  go (BinaryNoParensType ann t1 t2 t3) = BinaryNoParensType ann (go (f t1)) (go (f t2)) (go (f t3))
-  go (ParensInType ann t) = ParensInType ann (go (f t))
-  go other = f other
-
 everywhereOnTypesM :: Monad m => (Type a -> m (Type a)) -> Type a -> m (Type a)
 everywhereOnTypesM f = go where
   go (TypeApp ann t1 t2) = (TypeApp ann <$> go t1 <*> go t2) >>= f
-  go (ForAll ann arg mbK ty sco) = (ForAll ann arg mbK <$> go ty <*> pure sco) >>= f
-  go (ConstrainedType ann c ty) = (ConstrainedType ann <$> overConstraintArgs (mapM go) c <*> go ty) >>= f
+  go (KindApp ann t1 t2) = (KindApp ann <$> go t1 <*> go t2) >>= f
+  go (ForAll ann vis arg mbK ty sco) = (ForAll ann vis arg <$> traverse go mbK <*> go ty <*> pure sco) >>= f
+  go (ConstrainedType ann c ty) = (ConstrainedType ann <$> overConstraintArgsAll (mapM go) c <*> go ty) >>= f
+  go (Skolem ann name mbK i sc) = (Skolem ann name <$> traverse go mbK <*> pure i <*> pure sc) >>= f
   go (RCons ann name ty rest) = (RCons ann name <$> go ty <*> go rest) >>= f
-  go (KindedType ann ty k) = (KindedType ann <$> go ty <*> pure k) >>= f
+  go (KindedType ann ty k) = (KindedType ann <$> go ty <*> go k) >>= f
   go (BinaryNoParensType ann t1 t2 t3) = (BinaryNoParensType ann <$> go t1 <*> go t2 <*> go t3) >>= f
   go (ParensInType ann t) = (ParensInType ann <$> go t) >>= f
   go other = f other
@@ -492,21 +720,26 @@
 everywhereOnTypesTopDownM :: Monad m => (Type a -> m (Type a)) -> Type a -> m (Type a)
 everywhereOnTypesTopDownM f = go <=< f where
   go (TypeApp ann t1 t2) = TypeApp ann <$> (f t1 >>= go) <*> (f t2 >>= go)
-  go (ForAll ann arg mbK ty sco) = ForAll ann arg mbK <$> (f ty >>= go) <*> pure sco
-  go (ConstrainedType ann c ty) = ConstrainedType ann <$> overConstraintArgs (mapM (go <=< f)) c <*> (f ty >>= go)
+  go (KindApp ann t1 t2) = KindApp ann <$> (f t1 >>= go) <*> (f t2 >>= go)
+  go (ForAll ann vis arg mbK ty sco) = ForAll ann vis arg <$> traverse (f >=> go) mbK <*> (f ty >>= go) <*> pure sco
+  go (ConstrainedType ann c ty) = ConstrainedType ann <$> overConstraintArgsAll (mapM (go <=< f)) c <*> (f ty >>= go)
+  go (Skolem ann name mbK i sc) = Skolem ann name <$> traverse (f >=> go) mbK <*> pure i <*> pure sc
   go (RCons ann name ty rest) = RCons ann name <$> (f ty >>= go) <*> (f rest >>= go)
-  go (KindedType ann ty k) = KindedType ann <$> (f ty >>= go) <*> pure k
+  go (KindedType ann ty k) = KindedType ann <$> (f ty >>= go) <*> (f k >>= go)
   go (BinaryNoParensType ann t1 t2 t3) = BinaryNoParensType ann <$> (f t1 >>= go) <*> (f t2 >>= go) <*> (f t3 >>= go)
   go (ParensInType ann t) = ParensInType ann <$> (f t >>= go)
-  go other = f other
+  go other = pure other
 
 everythingOnTypes :: (r -> r -> r) -> (Type a -> r) -> Type a -> r
 everythingOnTypes (<+>) f = go where
   go t@(TypeApp _ t1 t2) = f t <+> go t1 <+> go t2
-  go t@(ForAll _ _ _ ty _) = f t <+> go ty
-  go t@(ConstrainedType _ c ty) = foldl (<+>) (f t) (map go (constraintArgs c)) <+> go ty
+  go t@(KindApp _ t1 t2) = f t <+> go t1 <+> go t2
+  go t@(ForAll _ _ _ (Just k) ty _) = f t <+> go k <+> go ty
+  go t@(ForAll _ _ _ _ ty _) = f t <+> go ty
+  go t@(ConstrainedType _ c ty) = foldl (<+>) (f t) (map go (constraintKindArgs c) ++ map go (constraintArgs c)) <+> go ty
+  go t@(Skolem _ _ (Just k) _ _) = f t <+> go k
   go t@(RCons _ _ ty rest) = f t <+> go ty <+> go rest
-  go t@(KindedType _ ty _) = f t <+> go ty
+  go t@(KindedType _ ty k) = f t <+> go ty <+> go k
   go t@(BinaryNoParensType _ t1 t2 t3) = f t <+> go t1 <+> go t2 <+> go t3
   go t@(ParensInType _ t1) = f t <+> go t1
   go other = f other
@@ -515,10 +748,13 @@
 everythingWithContextOnTypes s0 r0 (<+>) f = go' s0 where
   go' s t = let (s', r) = f s t in r <+> go s' t
   go s (TypeApp _ t1 t2) = go' s t1 <+> go' s t2
-  go s (ForAll _ _ _ ty _) = go' s ty
-  go s (ConstrainedType _ c ty) = foldl (<+>) r0 (map (go' s) (constraintArgs c)) <+> go' s ty
+  go s (KindApp _ t1 t2) = go' s t1 <+> go' s t2
+  go s (ForAll _ _ _ (Just k) ty _) = go' s k <+> go' s ty
+  go s (ForAll _ _ _ _ ty _) = go' s ty
+  go s (ConstrainedType _ c ty) = foldl (<+>) r0 (map (go' s) (constraintKindArgs c) ++ map (go' s) (constraintArgs c)) <+> go' s ty
+  go s (Skolem _ _ (Just k) _ _) = go' s k
   go s (RCons _ _ ty rest) = go' s ty <+> go' s rest
-  go s (KindedType _ ty _) = go' s ty
+  go s (KindedType _ ty k) = go' s ty <+> go' s k
   go s (BinaryNoParensType _ t1 t2 t3) = go' s t1 <+> go' s t2 <+> go' s t3
   go s (ParensInType _ t1) = go' s t1
   go _ _ = r0
@@ -527,13 +763,15 @@
 annForType k (TUnknown a b) = (\z -> TUnknown z b) <$> k a
 annForType k (TypeVar a b) = (\z -> TypeVar z b) <$> k a
 annForType k (TypeLevelString a b) = (\z -> TypeLevelString z b) <$> k a
+annForType k (TypeLevelInt a b) = (\z -> TypeLevelInt z b) <$> k a
 annForType k (TypeWildcard a b) = (\z -> TypeWildcard z b) <$> k a
 annForType k (TypeConstructor a b) = (\z -> TypeConstructor z b) <$> k a
 annForType k (TypeOp a b) = (\z -> TypeOp z b) <$> k a
 annForType k (TypeApp a b c) = (\z -> TypeApp z b c) <$> k a
-annForType k (ForAll a b c d e) = (\z -> ForAll z b c d e) <$> k a
+annForType k (KindApp a b c) = (\z -> KindApp z b c) <$> k a
+annForType k (ForAll a b c d e f) = (\z -> ForAll z b c d e f) <$> k a
 annForType k (ConstrainedType a b c) = (\z -> ConstrainedType z b c) <$> k a
-annForType k (Skolem a b c d) = (\z -> Skolem z b c d) <$> k a
+annForType k (Skolem a b c d e) = (\z -> Skolem z b c d e) <$> k a
 annForType k (REmpty a) = REmpty <$> k a
 annForType k (RCons a b c d) = (\z -> RCons z b c d) <$> k a
 annForType k (KindedType a b c) = (\z -> KindedType z b c) <$> k a
@@ -556,79 +794,73 @@
 eqType (TUnknown _ a) (TUnknown _ a') = a == a'
 eqType (TypeVar _ a) (TypeVar _ a') = a == a'
 eqType (TypeLevelString _ a) (TypeLevelString _ a') = a == a'
+eqType (TypeLevelInt _ a) (TypeLevelInt _ a') = a == a'
 eqType (TypeWildcard _ a) (TypeWildcard _ a') = a == a'
 eqType (TypeConstructor _ a) (TypeConstructor _ a') = a == a'
 eqType (TypeOp _ a) (TypeOp _ a') = a == a'
 eqType (TypeApp _ a b) (TypeApp _ a' b') = eqType a a' && eqType b b'
-eqType (ForAll _ a b c d) (ForAll _ a' b' c' d') = a == a' && eqMaybeKind b b' && eqType c c' && d == d'
+eqType (KindApp _ a b) (KindApp _ a' b') = eqType a a' && eqType b b'
+eqType (ForAll _ _ a b c d) (ForAll _ _ a' b' c' d') = a == a' && eqMaybeType b b' && eqType c c' && d == d'
 eqType (ConstrainedType _ a b) (ConstrainedType _ a' b') = eqConstraint a a' && eqType b b'
-eqType (Skolem _ a b c) (Skolem _ a' b' c') = a == a' && b == b' && c == c'
+eqType (Skolem _ a b c d) (Skolem _ a' b' c' d') = a == a' && eqMaybeType b b' && c == c' && d == d'
 eqType (REmpty _) (REmpty _) = True
 eqType (RCons _ a b c) (RCons _ a' b' c') = a == a' && eqType b b' && eqType c c'
-eqType (KindedType _ a b) (KindedType _ a' b') = eqType a a' && eqKind b b'
+eqType (KindedType _ a b) (KindedType _ a' b') = eqType a a' && eqType b b'
 eqType (BinaryNoParensType _ a b c) (BinaryNoParensType _ a' b' c') = eqType a a' && eqType b b' && eqType c c'
 eqType (ParensInType _ a) (ParensInType _ a') = eqType a a'
 eqType _ _ = False
 
+eqMaybeType :: Maybe (Type a) -> Maybe (Type b) -> Bool
+eqMaybeType (Just a) (Just b) = eqType a b
+eqMaybeType Nothing Nothing = True
+eqMaybeType _ _ = False
+
 compareType :: Type a -> Type b -> Ordering
 compareType (TUnknown _ a) (TUnknown _ a') = compare a a'
-compareType (TUnknown {}) _ = LT
-
 compareType (TypeVar _ a) (TypeVar _ a') = compare a a'
-compareType (TypeVar {}) _ = LT
-compareType _ (TypeVar {}) = GT
-
 compareType (TypeLevelString _ a) (TypeLevelString _ a') = compare a a'
-compareType (TypeLevelString {}) _ = LT
-compareType _ (TypeLevelString {}) = GT
-
+compareType (TypeLevelInt _ a) (TypeLevelInt _ a') = compare a a'
 compareType (TypeWildcard _ a) (TypeWildcard _ a') = compare a a'
-compareType (TypeWildcard {}) _ = LT
-compareType _ (TypeWildcard {}) = GT
-
 compareType (TypeConstructor _ a) (TypeConstructor _ a') = compare a a'
-compareType (TypeConstructor {}) _ = LT
-compareType _ (TypeConstructor {}) = GT
-
 compareType (TypeOp _ a) (TypeOp _ a') = compare a a'
-compareType (TypeOp {}) _ = LT
-compareType _ (TypeOp {}) = GT
-
 compareType (TypeApp _ a b) (TypeApp _ a' b') = compareType a a' <> compareType b b'
-compareType (TypeApp {}) _ = LT
-compareType _ (TypeApp {}) = GT
-
-compareType (ForAll _ a b c d) (ForAll _ a' b' c' d') = compare a a' <> compareMaybeKind b b' <> compareType c c' <> compare d d'
-compareType (ForAll {}) _ = LT
-compareType _ (ForAll {}) = GT
-
+compareType (KindApp _ a b) (KindApp _ a' b') = compareType a a' <> compareType b b'
+compareType (ForAll _ _ a b c d) (ForAll _ _ a' b' c' d') = compare a a' <> compareMaybeType b b' <> compareType c c' <> compare d d'
 compareType (ConstrainedType _ a b) (ConstrainedType _ a' b') = compareConstraint a a' <> compareType b b'
-compareType (ConstrainedType {}) _ = LT
-compareType _ (ConstrainedType {}) = GT
-
-compareType (Skolem _ a b c) (Skolem _ a' b' c') = compare a a' <> compare b b' <> compare c c'
-compareType (Skolem {}) _ = LT
-compareType _ (Skolem {}) = GT
-
+compareType (Skolem _ a b c d) (Skolem _ a' b' c' d') = compare a a' <> compareMaybeType b b' <> compare c c' <> compare d d'
 compareType (REmpty _) (REmpty _) = EQ
-compareType (REmpty _) _ = LT
-compareType _ (REmpty _) = GT
-
 compareType (RCons _ a b c) (RCons _ a' b' c') = compare a a' <> compareType b b' <> compareType c c'
-compareType (RCons {}) _ = LT
-compareType _ (RCons {}) = GT
-
-compareType (KindedType _ a b) (KindedType _ a' b') = compareType a a' <> compareKind b b'
-compareType (KindedType {}) _ = LT
-compareType _ (KindedType {}) = GT
-
+compareType (KindedType _ a b) (KindedType _ a' b') = compareType a a' <> compareType b b'
 compareType (BinaryNoParensType _ a b c) (BinaryNoParensType _ a' b' c') = compareType a a' <> compareType b b' <> compareType c c'
-compareType (BinaryNoParensType {}) _ = LT
-compareType _ (BinaryNoParensType {}) = GT
-
 compareType (ParensInType _ a) (ParensInType _ a') = compareType a a'
-compareType (ParensInType {}) _ = GT
+compareType typ typ' =
+  compare (orderOf typ) (orderOf typ')
+    where
+      orderOf :: Type a -> Int
+      orderOf TUnknown{} = 0
+      orderOf TypeVar{} = 1
+      orderOf TypeLevelString{} = 2
+      orderOf TypeLevelInt{} = 3
+      orderOf TypeWildcard{} = 4
+      orderOf TypeConstructor{} = 5
+      orderOf TypeOp{} = 6
+      orderOf TypeApp{} = 7
+      orderOf KindApp{} = 8
+      orderOf ForAll{} = 9
+      orderOf ConstrainedType{} = 10
+      orderOf Skolem{} = 11
+      orderOf REmpty{} = 12
+      orderOf RCons{} = 13
+      orderOf KindedType{} = 14
+      orderOf BinaryNoParensType{} = 15
+      orderOf ParensInType{} = 16
 
+compareMaybeType :: Maybe (Type a) -> Maybe (Type b) -> Ordering
+compareMaybeType (Just a) (Just b) = compareType a b
+compareMaybeType Nothing Nothing = EQ
+compareMaybeType Nothing _ = LT
+compareMaybeType _ _ = GT
+
 instance Eq (Constraint a) where
   (==) = eqConstraint
 
@@ -636,7 +868,7 @@
   compare = compareConstraint
 
 eqConstraint :: Constraint a -> Constraint b -> Bool
-eqConstraint (Constraint _ a b c) (Constraint _ a' b' c') = a == a' && and (zipWith eqType b b') && c == c'
+eqConstraint (Constraint _ a b c d) (Constraint _ a' b' c' d') = a == a' && and (zipWith eqType b b') && and (zipWith eqType c c') && d == d'
 
 compareConstraint :: Constraint a -> Constraint b -> Ordering
-compareConstraint (Constraint _ a b c) (Constraint _ a' b' c') = compare a a' <> fold (zipWith compareType b b') <> compare c c'
+compareConstraint (Constraint _ a b c d) (Constraint _ a' b' c' d') = compare a a' <> fold (zipWith compareType b b') <> fold (zipWith compareType c c') <> compare d d'
diff --git a/src/System/IO/UTF8.hs b/src/System/IO/UTF8.hs
--- a/src/System/IO/UTF8.hs
+++ b/src/System/IO/UTF8.hs
@@ -1,19 +1,24 @@
 module System.IO.UTF8 where
 
-import Prelude.Compat
+import Prelude
 
-import qualified Data.ByteString as BS
-import qualified Data.ByteString.Lazy as BSL
-import qualified Data.ByteString.Search as BSS
-import qualified Data.ByteString.UTF8 as UTF8
-import           Data.Text (Text)
-import qualified Data.Text.Encoding as TE
+import Data.ByteString qualified as BS
+import Data.ByteString.Lazy qualified as BSL
+import Data.ByteString.Search qualified as BSS
+import Data.ByteString.UTF8 qualified as UTF8
+import Data.Text (Text)
+import Data.Text.Encoding qualified as TE
+import Protolude (ordNub)
 
 -- | Unfortunately ByteString's readFile does not convert line endings on
 -- Windows, so we have to do it ourselves
 fixCRLF :: BS.ByteString -> BS.ByteString
 fixCRLF = BSL.toStrict . BSS.replace "\r\n" ("\n" :: BS.ByteString)
 
+readUTF8FilesT :: [FilePath] -> IO [(FilePath, Text)]
+readUTF8FilesT =
+  traverse (\inFile -> (inFile, ) <$> readUTF8FileT inFile) . ordNub
+
 readUTF8FileT :: FilePath -> IO Text
 readUTF8FileT inFile =
   fmap (TE.decodeUtf8 . fixCRLF) (BS.readFile inFile)
@@ -25,7 +30,3 @@
 readUTF8File :: FilePath -> IO String
 readUTF8File inFile =
   fmap (UTF8.toString . fixCRLF) (BS.readFile inFile)
-
-writeUTF8File :: FilePath -> String -> IO ()
-writeUTF8File inFile text =
-  BS.writeFile inFile (UTF8.fromString text)
diff --git a/stack.yaml b/stack.yaml
--- a/stack.yaml
+++ b/stack.yaml
@@ -1,13 +1,44 @@
-resolver: lts-13.12
+# Please update Haskell image versions under .github/workflows/ci.yml together to use the same GHC version
+# (or the CI build will fail)
+resolver: lts-20.9
+pvp-bounds: both
 packages:
 - '.'
+ghc-options:
+  # Build with advanced optimizations enabled by default
+  "$locals": -O2 -Werror
 extra-deps:
-- network-3.0.1.1
+# As of 2021-11-08, the latest release of `language-javascript` is 0.7.1.0,
+# but it has a problem with parsing the `async` keyword.  It doesn't allow
+# `async` to be used as an object key:
+# https://github.com/erikd/language-javascript/issues/131
+- language-javascript-0.7.0.0
+# Fix issue with libtinfo.
+# See https://github.com/purescript/purescript/issues/4253
+- process-1.6.13.1
+# The Cabal library is not in Stackage
+- Cabal-3.6.3.0
+# hspec versions 2.9.3 to 2.10.6 depend on ghc
+# ghc depends on terminfo by default, but that can be ignored
+# if one uses the '-terminfo' flag.
+# Unfortunately, hspec doesn't expose a similar flag.
+#
+# Using hspec >= 2.10.7 addresses this.
+- hspec-2.10.9
+- hspec-core-2.10.9
+- hspec-discover-2.10.9
 nix:
-  enable: false
   packages:
   - zlib
   # Test dependencies
   - nodejs
   - nodePackages.npm
   - nodePackages.bower
+flags:
+  aeson-pretty:
+    lib-only: true
+  these:
+    assoc: false
+  haskeline:
+    # Avoids a libtinfo dynamic library dependency
+    terminfo: false
diff --git a/tests/Language/PureScript/Ide/CompletionSpec.hs b/tests/Language/PureScript/Ide/CompletionSpec.hs
--- a/tests/Language/PureScript/Ide/CompletionSpec.hs
+++ b/tests/Language/PureScript/Ide/CompletionSpec.hs
@@ -1,17 +1,14 @@
-{-# LANGUAGE OverloadedStrings #-}
-{-# LANGUAGE NoImplicitPrelude #-}
 module Language.PureScript.Ide.CompletionSpec where
 
 import Protolude
 
-import qualified Data.Set as Set
-import qualified Language.PureScript as P
+import Language.PureScript qualified as P
 import Language.PureScript.Ide.Test as Test
 import Language.PureScript.Ide.Command as Command
-import Language.PureScript.Ide.Completion
-import Language.PureScript.Ide.Types
-import Test.Hspec
-import System.FilePath
+import Language.PureScript.Ide.Completion (CompletionOptions(..), applyCompletionOptions, defaultCompletionOptions)
+import Language.PureScript.Ide.Filter.Declaration qualified as DeclarationType
+import Language.PureScript.Ide.Types (Completion(..), IdeDeclarationAnn, Match(..), Success(..))
+import Test.Hspec (Spec, describe, it, shouldBe, shouldMatchList, shouldSatisfy)
 
 reexportMatches :: [Match IdeDeclarationAnn]
 reexportMatches =
@@ -30,9 +27,6 @@
 load :: [Text] -> Command
 load = LoadSync . map Test.mn
 
-rebuildSync :: FilePath -> Command
-rebuildSync fp = RebuildSync ("src" </> fp) Nothing (Set.singleton P.JS)
-
 spec :: Spec
 spec = describe "Applying completion options" $ do
   it "keeps all matches if maxResults is not specified" $ do
@@ -46,29 +40,106 @@
       reexportMatches `shouldBe` [(Match (mn "A", ideKind "Kind"), [mn "A", mn "B"])]
 
   it "gets simple docs on definition itself" $ do
-    ([_, (Right (CompletionResult [ result ]))], _) <- Test.inProject $
+    ([_, Right (CompletionResult [ result ])], _) <- Test.inProject $
       Test.runIde [ load ["CompletionSpecDocs"]
                   , typ "something"
                   ]
     result `shouldSatisfy` \res -> complDocumentation res == Just "Doc x\n"
 
   it "gets multiline docs" $ do
-    ([_, (Right (CompletionResult [ result ]))], _) <- Test.inProject $
+    ([_, Right (CompletionResult [ result ])], _) <- Test.inProject $
       Test.runIde [ load ["CompletionSpecDocs"]
                   , typ "multiline"
                   ]
     result `shouldSatisfy` \res -> complDocumentation res == Just "This is\na multi-line\ncomment\n"
 
   it "gets simple docs on type annotation" $ do
-    ([_, (Right (CompletionResult [ result ]))], _) <- Test.inProject $
+    ([_, Right (CompletionResult [ result ])], _) <- Test.inProject $
       Test.runIde [ load ["CompletionSpecDocs"]
                   , typ "withType"
                   ]
     result `shouldSatisfy` \res -> complDocumentation res == Just "Doc *123*\n"
 
   it "gets docs on module declaration" $ do
-    ([_, (Right (CompletionResult [ result ]))], _) <- Test.inProject $
+    ([_, Right (CompletionResult [ result ])], _) <- Test.inProject $
       Test.runIde [ load ["CompletionSpecDocs"]
                   , typ "CompletionSpecDocs"
                   ]
     result `shouldSatisfy` \res -> complDocumentation res == Just "Module Documentation\n"
+
+  it "gets docs on type class declaration" $ do
+    ([_, Right (CompletionResult [ result ])], _) <- Test.inProject $
+      Test.runIde [ load ["CompletionSpecDocs"]
+                  , typ "DocClass"
+                  ]
+    result `shouldSatisfy` \res -> complDocumentation res == Just "Doc for class\n"
+
+  it "gets docs on type class members" $ do
+    ([_, Right (CompletionResult [ result ])], _) <- Test.inProject $
+      Test.runIde [ load ["CompletionSpecDocs"]
+                  , typ "member"
+                  ]
+    result `shouldSatisfy` \res -> complDocumentation res == Just "doc for member\n"
+
+  it "includes declarationType in completions for values" $ do
+    ([_, Right (CompletionResult [ result ])], _) <- Test.inProject $
+      Test.runIde [ load ["CompletionSpec"]
+                  , typ "exampleValue"
+                  ]
+    result `shouldSatisfy` \res ->
+      complDeclarationType res == Just DeclarationType.Value
+
+  it "includes declarationType in completions for functions" $ do
+    ([_, Right (CompletionResult [ result ])], _) <- Test.inProject $
+      Test.runIde [ load ["CompletionSpec"]
+                  , typ "exampleFunction"
+                  ]
+    result `shouldSatisfy` \res ->
+      complDeclarationType res == Just DeclarationType.Value
+
+  it "includes declarationType in completions for inferred values" $ do
+    ([_, Right (CompletionResult [ result ])], _) <- Test.inProject $
+      Test.runIde [ load ["CompletionSpec"]
+                  , typ "exampleInferredString"
+                  ]
+    result `shouldSatisfy` \res ->
+      complDeclarationType res == Just DeclarationType.Value
+
+  it "includes declarationType in completions for operators" $ do
+    ([_, Right (CompletionResult results)], _) <- Test.inProject $
+      Test.runIde [ load ["CompletionSpec"]
+                  , typ "\\°/"
+                  ]
+    length results `shouldBe` 2
+    results `shouldSatisfy` any (\res ->
+      complDeclarationType res == Just DeclarationType.ValueOperator)
+    results `shouldSatisfy` any (\res ->
+      complDeclarationType res == Just DeclarationType.TypeOperator)
+
+  it "includes declarationType in completions for type constructors with \
+      \conflicting names" $ do
+    ([_, Right (CompletionResult results)], _) <- Test.inProject $
+      Test.runIde [ load ["CompletionSpec"]
+                  , typ "ExampleTypeConstructor"
+                  ]
+    length results `shouldBe` 2
+    results `shouldSatisfy` any (\res ->
+        complDeclarationType res == Just DeclarationType.DataConstructor)
+    results `shouldSatisfy` any (\res ->
+        complDeclarationType res == Just DeclarationType.Type)
+
+  it "includes declarationType in completions for type classes" $ do
+    ([_, Right (CompletionResult [result])], _) <- Test.inProject $
+      Test.runIde [ load ["CompletionSpec"]
+                  , typ "ExampleClass"
+                  ]
+    result `shouldSatisfy` \res ->
+      complDeclarationType res == Just DeclarationType.TypeClass
+
+  it "includes declarationType in completions for type class members" $ do
+    ([_, Right (CompletionResult [result])], _) <- Test.inProject $
+      Test.runIde [ load ["CompletionSpec"]
+                  , typ "exampleMember"
+                  ]
+    result `shouldSatisfy` \res ->
+      complDeclarationType res == Just DeclarationType.Value
diff --git a/tests/Language/PureScript/Ide/FilterSpec.hs b/tests/Language/PureScript/Ide/FilterSpec.hs
--- a/tests/Language/PureScript/Ide/FilterSpec.hs
+++ b/tests/Language/PureScript/Ide/FilterSpec.hs
@@ -1,33 +1,36 @@
-{-# LANGUAGE OverloadedStrings #-}
-{-# LANGUAGE NoImplicitPrelude #-}
 module Language.PureScript.Ide.FilterSpec where
 
-import           Protolude
-import qualified Data.Map as Map
-import qualified Data.Set as Set
-import           Language.PureScript.Ide.Filter
-import           Language.PureScript.Ide.Filter.Declaration as D
-import           Language.PureScript.Ide.Types
-import           Language.PureScript.Ide.Test as T
-import qualified Language.PureScript as P
-import           Test.Hspec
+import Protolude
+import Data.Map qualified as Map
+import Data.Set qualified as Set
+import Language.PureScript.Ide.Filter (applyFilters, declarationTypeFilter, dependencyFilter, exactFilter, moduleFilter, namespaceFilter, prefixFilter)
+import Language.PureScript.Ide.Filter.Declaration as D
+import Language.PureScript.Ide.Types (IdeDeclarationAnn, IdeNamespace(..), ModuleMap)
+import Language.PureScript.Ide.Imports (Import, sliceImportSection)
+import Language.PureScript.Ide.Test as T
+import Language.PureScript qualified as P
+import Test.Hspec (Spec, describe, it, shouldBe)
 
 type Module = (P.ModuleName, [IdeDeclarationAnn])
 
-moduleA, moduleB, moduleC, moduleD, moduleE, moduleF, moduleG, moduleH, moduleI :: Module
+moduleA, moduleB, moduleC, moduleD, moduleE, moduleF, moduleG, moduleH, moduleI, moduleDCtors :: Module
 moduleA = (P.moduleNameFromString "Module.A", [T.ideValue "function1" Nothing])
 moduleB = (P.moduleNameFromString "Module.B", [T.ideValue "data1" Nothing])
 moduleC = (P.moduleNameFromString "Module.C", [T.ideType "List" Nothing []])
-moduleD = (P.moduleNameFromString "Module.D", [T.ideKind "kind1"])
+moduleD = (P.moduleNameFromString "Module.D", [T.ideType "kind1" Nothing []])
 moduleE = (P.moduleNameFromString "Module.E", [T.ideSynonym "SFType" Nothing Nothing `annLoc` synonymSS])
 moduleF = (P.moduleNameFromString "Module.F", [T.ideDtor "DtorA" "TypeA" Nothing])
 moduleG = (P.moduleNameFromString "Module.G", [T.ideTypeClass "MyClass" P.kindType []])
-moduleH = (P.moduleNameFromString "Module.H", [T.ideValueOp "<$>" (P.Qualified Nothing (Left "")) 0 Nothing Nothing])
-moduleI = (P.moduleNameFromString "Module.I", [T.ideTypeOp "~>" (P.Qualified Nothing "") 0 Nothing Nothing])
+moduleH = (P.moduleNameFromString "Module.H", [T.ideValueOp "<$>" (P.Qualified P.ByNullSourcePos (Left "")) 0 Nothing Nothing])
+moduleI = (P.moduleNameFromString "Module.I", [T.ideTypeOp "~>" (P.Qualified P.ByNullSourcePos "") 0 Nothing Nothing])
+moduleDCtors = (P.moduleNameFromString "Module.WithDC", [T.ideType "Foo" Nothing [(P.ProperName "A", P.tyString), (P.ProperName "B", P.tyString)] ])
 
 modules :: ModuleMap [IdeDeclarationAnn]
 modules = Map.fromList [moduleA, moduleB]
 
+allModules :: ModuleMap [IdeDeclarationAnn]
+allModules = Map.fromList [moduleA, moduleB,moduleC,moduleD,moduleE,moduleF,moduleG,moduleH,moduleI,moduleDCtors]
+
 runEq :: Text -> [Module]
 runEq s = Map.toList (applyFilters [exactFilter s] modules)
 
@@ -43,6 +46,20 @@
 runDeclaration :: [D.DeclarationType] -> [Module] -> [Module]
 runDeclaration decls = Map.toList . applyFilters [declarationTypeFilter (Set.fromList decls)] . Map.fromList
 
+runDependency :: [Text] -> [Module]
+runDependency = runDependency' "Whatever"
+
+runDependency' :: Text -> [Text] -> [Module]
+runDependency' currentModuleName imports = Map.toList $ applyFilters [dependencyFilter Nothing (P.ModuleName currentModuleName) (testParseImports currentModuleName imports)] allModules
+
+runDependencyQualified :: Text -> [Text] -> [Module]
+runDependencyQualified qualifier imports = Map.toList $ applyFilters [dependencyFilter (Just $ P.ModuleName qualifier) (P.ModuleName "Whatever") (testParseImports "Whatever" imports)] allModules
+
+testParseImports :: Text -> [Text] -> [Import]
+testParseImports currentModuleName imports = either (const []) (\(_, _, x, _) -> x) $ sliceImportSection moduleLines
+  where
+  moduleLines = "module " <> currentModuleName <> " where" : (imports <> [ "", "blah = 42" ])
+
 spec :: Spec
 spec = do
   describe "equality Filter" $ do
@@ -79,27 +96,9 @@
     it "extracts no modules by filtering `type` namespaces" $
       runNamespace (Set.fromList [IdeNSType])
         [moduleA, moduleB] `shouldBe` []
-    it "extracts modules by filtering `kind` namespaces" $
-      runNamespace (Set.fromList [IdeNSKind])
-        [moduleA, moduleB, moduleD] `shouldBe` [moduleD]
-    it "extracts no modules by filtering `kind` namespaces" $
-      runNamespace (Set.fromList [IdeNSKind])
-        [moduleA, moduleB] `shouldBe` []
     it "extracts modules by filtering `value` and `type` namespaces" $
       runNamespace (Set.fromList [ IdeNSValue, IdeNSType])
         [moduleA, moduleB, moduleC, moduleD]
-        `shouldBe` [moduleA, moduleB, moduleC]
-    it "extracts modules by filtering `value` and `kind` namespaces" $
-      runNamespace (Set.fromList [ IdeNSValue, IdeNSKind])
-        [moduleA, moduleB, moduleC, moduleD]
-        `shouldBe` [moduleA, moduleB, moduleD]
-    it "extracts modules by filtering `type` and `kind` namespaces" $
-      runNamespace (Set.fromList [ IdeNSType, IdeNSKind])
-        [moduleA, moduleB, moduleC, moduleD]
-        `shouldBe` [moduleC, moduleD]
-    it "extracts modules by filtering `value`, `type` and `kind` namespaces" $
-      runNamespace (Set.fromList [ IdeNSValue, IdeNSType, IdeNSKind])
-        [moduleA, moduleB, moduleC, moduleD]
         `shouldBe` [moduleA, moduleB, moduleC, moduleD]
   describe "declarationTypeFilter" $ do
     it "extracts modules by filtering `value` declarations" $
@@ -110,7 +109,7 @@
         [moduleD, moduleG, moduleE, moduleH] `shouldBe` []
     it "extracts module by filtering `type` declarations" $
       runDeclaration [D.Type]
-        [moduleA, moduleB, moduleC, moduleD, moduleE] `shouldBe` [moduleC]
+        [moduleA, moduleB, moduleC, moduleD, moduleE] `shouldBe` [moduleC, moduleD]
     it "removes everything if a `type` declaration have not been found" $
       runDeclaration [D.Type]
         [moduleA, moduleG, moduleE, moduleH] `shouldBe` []
@@ -144,15 +143,51 @@
     it "removes everything if a `typeoperator` declaration have not been found" $
       runDeclaration [D.TypeOperator]
         [moduleA, moduleD] `shouldBe` []
-    it "extracts module by filtering `kind` declarations" $
-      runDeclaration [D.Kind]
-        [moduleA, moduleD, moduleG, moduleI, moduleF] `shouldBe` [moduleD]
-    it "removes everything if a `kind` declaration have not been found" $
-      runDeclaration [D.Kind]
-        [moduleA, moduleC] `shouldBe` []
     it "extracts modules by filtering `value` and `synonym` declarations" $
       runDeclaration [D.Value, D.Synonym]
         [moduleA, moduleB, moduleD, moduleE] `shouldBe` [moduleA, moduleB, moduleE]
-    it "extracts modules by filtering `value`, `kind`, and `valueoperator` declarations" $
-      runDeclaration [D.Value, D.Kind, D.ValueOperator]
-        [moduleA, moduleB, moduleD, moduleG, moduleE, moduleH] `shouldBe` [moduleA, moduleB, moduleD, moduleH]
+    it "extracts modules by filtering `value`, and `valueoperator` declarations" $
+      runDeclaration [D.Value, D.ValueOperator]
+        [moduleA, moduleB, moduleD, moduleG, moduleE, moduleH] `shouldBe` [moduleA, moduleB, moduleH]
+  describe "dependencyFilter" $ do
+    describe "import types" $ do
+      it "filters by implicit imports" $ do
+        runDependency ["import Module.A", "import Module.C"] `shouldBe` [moduleA, moduleC]
+      it "filters by matching explicit value import" $ do
+        runDependency ["import Module.A (function1)"] `shouldBe` [moduleA]
+      it "filters by matching explicit value import from correct module" $ do
+        runDependency ["import Module.B (function1)"] `shouldBe` []
+      it "filters not matching explicit value import" $ do
+        runDependency ["import Module.A (function2)"] `shouldBe` []
+      it "filters out names in hiding import" $ do
+        runDependency ["import Module.A hiding (function1)"] `shouldBe` []
+      it "doesn't filter out not matching names in hiding import" $ do
+        runDependency ["import Module.A hiding (nonsense)"] `shouldBe` [moduleA]
+      it "filters by containing module" $ do
+        runDependency' "Module.A" ["import Module.Blah"] `shouldBe` [moduleA]
+    describe "declaration types" $ do
+      it "matches type" $ do
+        runDependency ["import Module.C (List)"] `shouldBe` [moduleC]
+      it "includes data constructor with (..)" $ do
+        runDependency ["import Module.F (TypeA(..))"] `shouldBe` [moduleF]
+      it "includes data constructor explicitly listed" $ do
+        runDependency ["import Module.F (TypeA(DtorA))"] `shouldBe` [moduleF]
+      it "does not include data constructor not explicitly listed" $ do
+        runDependency ["import Module.F (TypeA(BogusOtherConstructor))"] `shouldBe` []
+      it "does not include data constructor when only the type is imported" $ do
+        runDependency ["import Module.F (TypeA)"] `shouldBe` []
+      it "includes synonym" $ do
+        runDependency ["import Module.E (SFType)"] `shouldBe` [moduleE]
+      it "includes typeclass" $ do
+        runDependency ["import Module.G (class MyClass)"] `shouldBe` [moduleG]
+      it "includes value op" $ do
+        runDependency ["import Module.H ((<$>))"] `shouldBe` [moduleH]
+      it "includes type op" $ do
+        runDependency ["import Module.I (type (~>))"] `shouldBe` [moduleI]
+    describe "qualifiers" $ do
+      it "includes single qualified import and not unqualified things" $ do
+        runDependencyQualified "AA" [ "import Module.A as AA", "import Module.C"] `shouldBe` [moduleA]
+      it "includes multiple qualified imports" $ do
+        runDependencyQualified "Combined.Thing" [ "import Module.A as Combined.Thing", "import Module.C as Combined.Thing", "import Module.F"] `shouldBe` [moduleA, moduleC]
+      it "doesn't include qualified import when qualifier not specified" $ do
+        runDependency [ "import Module.AA as A"] `shouldBe` []
diff --git a/tests/Language/PureScript/Ide/ImportsSpec.hs b/tests/Language/PureScript/Ide/ImportsSpec.hs
--- a/tests/Language/PureScript/Ide/ImportsSpec.hs
+++ b/tests/Language/PureScript/Ide/ImportsSpec.hs
@@ -1,20 +1,19 @@
-{-# LANGUAGE OverloadedStrings #-}
-{-# LANGUAGE NoImplicitPrelude #-}
 module Language.PureScript.Ide.ImportsSpec where
 
-import           Protolude hiding (moduleName)
-import           Data.Maybe (fromJust)
-import qualified Data.Set as Set
+import Protolude hiding (moduleName)
+import Data.Maybe (fromJust)
+import Data.Set qualified as Set
 
-import qualified Language.PureScript as P
-import           Language.PureScript.Ide.Command as Command
-import           Language.PureScript.Ide.Error
-import           Language.PureScript.Ide.Imports
-import           Language.PureScript.Ide.Filter (moduleFilter)
-import qualified Language.PureScript.Ide.Test as Test
-import           Language.PureScript.Ide.Types
-import           System.FilePath
-import           Test.Hspec
+import Language.PureScript qualified as P
+import Language.PureScript.Ide.Command as Command
+import Language.PureScript.Ide.Error (IdeError)
+import Language.PureScript.Ide.Imports (Import, parseImport, prettyPrintImport', prettyPrintImportSection, sliceImportSection)
+import Language.PureScript.Ide.Imports.Actions (addExplicitImport', addImplicitImport', addQualifiedImport')
+import Language.PureScript.Ide.Filter (moduleFilter)
+import Language.PureScript.Ide.Test qualified as Test
+import Language.PureScript.Ide.Types (IdeDeclarationAnn(..), Success(..))
+import System.FilePath ((</>))
+import Test.Hspec (Expectation, Spec, describe, it, shouldBe, shouldSatisfy)
 
 noImportsFile :: [Text]
 noImportsFile =
@@ -35,7 +34,7 @@
 hidingFile =
   [ "module Main where"
   , "import Prelude"
-  , "import Data.Maybe hiding (maybe)"
+  , "import Data.Maybe hiding (maybe, maybe')"
   , ""
   , "myFunc x y = x + y"
   ]
@@ -115,13 +114,11 @@
         addValueImport i mn q is =
           prettyPrintImportSection (addExplicitImport' (_idaDeclaration (Test.ideValue i Nothing)) mn q is)
         addOpImport op mn q is =
-          prettyPrintImportSection (addExplicitImport' (_idaDeclaration (Test.ideValueOp op (P.Qualified q (Left "")) 2 Nothing Nothing)) mn q is)
+          prettyPrintImportSection (addExplicitImport' (_idaDeclaration (Test.ideValueOp op (P.Qualified (P.byMaybeModuleName q) (Left "")) 2 Nothing Nothing)) mn q is)
         addDtorImport i t mn q is =
           prettyPrintImportSection (addExplicitImport' (_idaDeclaration (Test.ideDtor i t Nothing)) mn q is)
         addTypeImport i mn q is =
           prettyPrintImportSection (addExplicitImport' (_idaDeclaration (Test.ideType i Nothing [])) mn q is)
-        addKindImport i mn q is =
-          prettyPrintImportSection (addExplicitImport' (_idaDeclaration (Test.ideKind i)) mn q is)
         qualify s = Just (Test.mn s)
     it "adds an implicit unqualified import to a file without any imports" $
       shouldBe
@@ -140,10 +137,10 @@
         , ""
         , "import Data.Map as Map"
         ]
-    it "adds a qualified import and maintains proper grouping for implicit hiding imports" $
+    it "adds a qualified import and maintains proper grouping and formatting for implicit hiding imports" $
       shouldBe
         (addQualifiedImport' hidingFileImports (Test.mn "Data.Map") (Test.mn "Map"))
-        [ "import Data.Maybe hiding (maybe)"
+        [ "import Data.Maybe hiding (maybe, maybe')"
         , "import Prelude"
         , ""
         , "import Data.Map as Map"
@@ -197,20 +194,6 @@
         , ""
         , "import Data.Array (head, tail) as Array"
         ]
-    it "adds a kind to an explicit import list" $
-      shouldBe
-        (addKindImport "Effect" (P.moduleNameFromString "Control.Monad.Eff") Nothing simpleFileImports)
-        [ "import Prelude"
-        , ""
-        , "import Control.Monad.Eff (kind Effect)"
-        ]
-    it "adds a kind to an explicit qualified import list" $
-      shouldBe
-        (addKindImport "Effect" (P.moduleNameFromString "Control.Monad.Eff") (qualify "Eff") simpleFileImports)
-        [ "import Prelude"
-        , ""
-        , "import Control.Monad.Eff (kind Effect) as Eff"
-        ]
     it "adds an operator to an explicit import list" $
       shouldBe
         (addOpImport "<~>" (P.moduleNameFromString "Data.Array") Nothing explicitImports)
@@ -304,7 +287,7 @@
   describe "explicit import sorting" $ do
     -- given some basic import skeleton
     let Right (_, _, baseImports, _) = sliceImportSection $ withImports ["import Control.Monad (ap)"]
-        moduleName = (P.moduleNameFromString "Control.Monad")
+        moduleName = P.moduleNameFromString "Control.Monad"
         addImport imports import' = addExplicitImport' import' moduleName Nothing imports
         valueImport ident = _idaDeclaration (Test.ideValue ident Nothing)
         typeImport name = _idaDeclaration (Test.ideType name Nothing [])
@@ -324,11 +307,11 @@
         ["import Prelude", "", "import Control.Monad (ap, unless, where)"]
     it "sorts type, value" $
       expectSorted
-        ((map valueImport ["unless", "where"]) ++ (map typeImport ["Foo", "Bar"]))
+        (map valueImport ["unless", "where"] ++ map typeImport ["Foo", "Bar"])
         ["import Prelude", "", "import Control.Monad (Bar, Foo, ap, unless, where)"]
     it "sorts class, type, value" $
       expectSorted
-        ((map valueImport ["unless", "where"]) ++ (map typeImport ["Foo", "Bar"]) ++ (map classImport ["Applicative", "Bind"]))
+        (map valueImport ["unless", "where"] ++ map typeImport ["Foo", "Bar"] ++ map classImport ["Applicative", "Bind"])
         ["import Prelude", "", "import Control.Monad (class Applicative, class Bind, Bar, Foo, ap, unless, where)"]
     it "sorts types with constructors, using open imports for the constructors" $
       expectSorted
diff --git a/tests/Language/PureScript/Ide/MatcherSpec.hs b/tests/Language/PureScript/Ide/MatcherSpec.hs
--- a/tests/Language/PureScript/Ide/MatcherSpec.hs
+++ b/tests/Language/PureScript/Ide/MatcherSpec.hs
@@ -1,15 +1,12 @@
-{-# LANGUAGE OverloadedStrings #-}
-{-# LANGUAGE NoImplicitPrelude #-}
-
 module Language.PureScript.Ide.MatcherSpec where
 
-import           Protolude
+import Protolude
 
-import qualified Language.PureScript                 as P
-import           Language.PureScript.Ide.Matcher
-import           Language.PureScript.Ide.Types
-import           Language.PureScript.Ide.Util
-import           Test.Hspec
+import Language.PureScript qualified as P
+import Language.PureScript.Ide.Matcher (flexMatcher, runMatcher)
+import Language.PureScript.Ide.Types (IdeDeclaration(..), IdeDeclarationAnn, IdeValue(..), Match(..))
+import Language.PureScript.Ide.Util (withEmptyAnn)
+import Test.Hspec (Spec, describe, it, shouldBe)
 
 value :: Text -> IdeDeclarationAnn
 value s = withEmptyAnn (IdeDeclValue (IdeValue (P.Ident (toS s)) P.srcREmpty))
diff --git a/tests/Language/PureScript/Ide/RebuildSpec.hs b/tests/Language/PureScript/Ide/RebuildSpec.hs
--- a/tests/Language/PureScript/Ide/RebuildSpec.hs
+++ b/tests/Language/PureScript/Ide/RebuildSpec.hs
@@ -1,20 +1,18 @@
-{-# LANGUAGE NoImplicitPrelude #-}
-{-# LANGUAGE OverloadedStrings #-}
 module Language.PureScript.Ide.RebuildSpec where
 
-import           Protolude
+import Protolude
 
-import qualified Data.Set as Set
-import qualified Language.PureScript as P
-import           Language.PureScript.AST.SourcePos (spanName)
-import           Language.PureScript.Ide.Command
-import           Language.PureScript.Ide.Completion
-import           Language.PureScript.Ide.Matcher
-import           Language.PureScript.Ide.Types
-import qualified Language.PureScript.Ide.Test as Test
-import           System.FilePath
-import           System.Directory (doesFileExist, removePathForcibly)
-import           Test.Hspec
+import Data.Set qualified as Set
+import Language.PureScript qualified as P
+import Language.PureScript.AST.SourcePos (spanName)
+import Language.PureScript.Ide.Command (Command(..))
+import Language.PureScript.Ide.Completion (defaultCompletionOptions)
+import Language.PureScript.Ide.Matcher (flexMatcher)
+import Language.PureScript.Ide.Types (Completion(..), Success(..), emptyIdeState)
+import Language.PureScript.Ide.Test qualified as Test
+import System.FilePath ((</>))
+import System.Directory (doesFileExist, removePathForcibly)
+import Test.Hspec (Spec, describe, it, shouldBe, shouldSatisfy)
 
 defaultTarget :: Set P.CodegenTarget
 defaultTarget = Set.singleton P.JS
@@ -63,15 +61,14 @@
         Test.runIde [ rebuild "RebuildSpecWithMissingForeign.fail" ]
       result `shouldSatisfy` isLeft
     it "completes a hidden identifier after rebuilding" $ do
-      ([_, (Right (CompletionResult [ result ]))], _) <- Test.inProject $
+      ([_, Right (CompletionResult [ result ])], _) <- Test.inProject $
         Test.runIde [ rebuildSync "RebuildSpecWithHiddenIdent.purs"
                     , Complete [] (flexMatcher "hid") (Just (Test.mn "RebuildSpecWithHiddenIdent")) defaultCompletionOptions]
       complIdentifier result `shouldBe` "hidden"
-    it "uses the specified `actualFile` for location information (in editor mode)" $ do
-      let editorConfig = Test.defConfig { confEditorMode = True }
-      ([_, (Right (CompletionResult [ result ]))], _) <- Test.inProject $
+    it "uses the specified `actualFile` for location information" $ do
+      ([_, Right (CompletionResult [ result ])], _) <- Test.inProject $
         Test.runIde'
-          editorConfig
+          Test.defConfig
           emptyIdeState
           [ RebuildSync ("src" </> "RebuildSpecWithHiddenIdent.purs") (Just "actualFile") defaultTarget
           , Complete [] (flexMatcher "hid") (Just (Test.mn "RebuildSpecWithHiddenIdent")) defaultCompletionOptions]
diff --git a/tests/Language/PureScript/Ide/ReexportsSpec.hs b/tests/Language/PureScript/Ide/ReexportsSpec.hs
--- a/tests/Language/PureScript/Ide/ReexportsSpec.hs
+++ b/tests/Language/PureScript/Ide/ReexportsSpec.hs
@@ -1,15 +1,13 @@
-{-# LANGUAGE OverloadedStrings #-}
-{-# LANGUAGE NoImplicitPrelude #-}
 module Language.PureScript.Ide.ReexportsSpec where
 
-import           Protolude
+import Protolude
 
-import qualified Data.Map as Map
-import           Language.PureScript.Ide.Reexports
-import           Language.PureScript.Ide.Types
-import           Language.PureScript.Ide.Test
-import qualified Language.PureScript as P
-import           Test.Hspec
+import Data.Map qualified as Map
+import Language.PureScript.Ide.Reexports (ReexportResult(..), reexportHasFailures, resolveReexports')
+import Language.PureScript.Ide.Types (IdeDeclarationAnn, ModuleMap)
+import Language.PureScript.Ide.Test (annExp, ideDtor, ideKind, ideSynonym, ideType, ideTypeClass, ideValue, mn)
+import Language.PureScript qualified as P
+import Test.Hspec (Spec, describe, it, shouldBe, shouldSatisfy)
 
 valueA, typeA, synonymA, classA, dtorA1, dtorA2, kindA :: IdeDeclarationAnn
 valueA = ideValue "valueA" Nothing
@@ -40,7 +38,6 @@
   , ("resolves a synonym reexport"
     , [(mn "A", P.TypeRef testSpan (P.ProperName "SynonymA") Nothing)], [synonymA `annExp` "A"])
   , ("resolves a class reexport", [(mn "A", P.TypeClassRef testSpan (P.ProperName "ClassA"))], [classA `annExp` "A"])
-  , ("resolves a kind reexport", [(mn "A", P.KindRef testSpan (P.ProperName "KindA"))], [kindA `annExp` "A"])
   ]
 
 failTestCases :: [(Text, Refs)]
diff --git a/tests/Language/PureScript/Ide/SourceFileSpec.hs b/tests/Language/PureScript/Ide/SourceFileSpec.hs
--- a/tests/Language/PureScript/Ide/SourceFileSpec.hs
+++ b/tests/Language/PureScript/Ide/SourceFileSpec.hs
@@ -1,49 +1,44 @@
-{-# LANGUAGE NoImplicitPrelude #-}
-{-# LANGUAGE OverloadedStrings #-}
 module Language.PureScript.Ide.SourceFileSpec where
 
-import           Protolude
+import Protolude
 
-import qualified Language.PureScript as P
-import           Language.PureScript.Ide.Command
-import           Language.PureScript.Ide.SourceFile
-import           Language.PureScript.Ide.Types
-import           Language.PureScript.Ide.Test
-import           Test.Hspec
+import Language.PureScript qualified as P
+import Language.PureScript.Ide.Command (Command(..))
+import Language.PureScript.Ide.SourceFile (extractSpans, extractTypeAnnotations)
+import Language.PureScript.Ide.Types (Completion(..), IdeNamespace(..), IdeNamespaced(..), Success(..), emptyIdeState)
+import Language.PureScript.Ide.Test
+import Test.Hspec (Spec, describe, it, shouldBe)
 
-span0, span1, span2 :: P.SourceSpan
-span0 = P.SourceSpan "ModuleLevel" (P.SourcePos 0 0) (P.SourcePos 1 1)
+span1, span2 :: P.SourceSpan
 span1 = P.SourceSpan "" (P.SourcePos 1 1) (P.SourcePos 2 2)
 span2 = P.SourceSpan "" (P.SourcePos 2 2) (P.SourcePos 3 3)
 
-ann0, ann1, ann2 :: P.SourceAnn
-ann0 = (span0, [])
+ann1, ann2 :: P.SourceAnn
 ann1 = (span1, [])
 ann2 = (span2, [])
 
-typeAnnotation1, value1, synonym1, class1, class2, data1, data2, valueFixity, typeFixity, foreign1, foreign2, foreign3, member1 :: P.Declaration
+typeAnnotation1, value1, synonym1, class1, class2, data1, data2, valueFixity, typeFixity, foreign1, foreign2, member1 :: P.Declaration
 typeAnnotation1 = P.TypeDeclaration (P.TypeDeclarationData ann1 (P.Ident "value1") P.srcREmpty)
 value1 = P.ValueDecl ann1 (P.Ident "value1") P.Public [] []
 synonym1 = P.TypeSynonymDeclaration ann1 (P.ProperName "Synonym1") [] P.srcREmpty
 class1 = P.TypeClassDeclaration ann1 (P.ProperName "Class1") [] [] [] []
 class2 = P.TypeClassDeclaration ann1 (P.ProperName "Class2") [] [] [] [member1]
 data1 = P.DataDeclaration ann1 P.Newtype (P.ProperName "Data1") [] []
-data2 = P.DataDeclaration ann1 P.Data (P.ProperName "Data2") [] [(P.ProperName "Cons1", [])]
+data2 = P.DataDeclaration ann1 P.Data (P.ProperName "Data2") [] [P.DataConstructorDeclaration ann2 (P.ProperName "Cons1") []]
 valueFixity =
   P.ValueFixityDeclaration
     ann1
     (P.Fixity P.Infix 0)
-    (P.Qualified Nothing (Left (P.Ident "")))
+    (P.Qualified P.ByNullSourcePos (Left (P.Ident "")))
     (P.OpName "<$>")
 typeFixity =
   P.TypeFixityDeclaration
     ann1
     (P.Fixity P.Infix 0)
-    (P.Qualified Nothing (P.ProperName ""))
+    (P.Qualified P.ByNullSourcePos (P.ProperName ""))
     (P.OpName "~>")
 foreign1 = P.ExternDeclaration ann1 (P.Ident "foreign1") P.srcREmpty
 foreign2 = P.ExternDataDeclaration ann1 (P.ProperName "Foreign2") P.kindType
-foreign3 = P.ExternKindDeclaration ann1 (P.ProperName "Foreign3")
 member1 = P.TypeDeclaration (P.TypeDeclarationData ann2 (P.Ident "member1") P.srcREmpty)
 
 spec :: Spec
@@ -60,7 +55,7 @@
     it "extracts a span for a data declaration" $
       extractSpans data1 `shouldBe` [(IdeNamespaced IdeNSType "Data1", span1)]
     it "extracts spans for a data declaration and its constructors" $
-      extractSpans data2 `shouldBe` [(IdeNamespaced IdeNSType "Data2", span1), (IdeNamespaced IdeNSValue "Cons1", span1)]
+      extractSpans data2 `shouldBe` [(IdeNamespaced IdeNSType "Data2", span1), (IdeNamespaced IdeNSValue "Cons1", span2)]
     it "extracts a span for a value operator fixity declaration" $
       extractSpans valueFixity `shouldBe` [(IdeNamespaced IdeNSValue "<$>", span1)]
     it "extracts a span for a type operator fixity declaration" $
@@ -69,8 +64,6 @@
       extractSpans foreign1 `shouldBe` [(IdeNamespaced IdeNSValue "foreign1", span1)]
     it "extracts a span for a data foreign declaration" $
       extractSpans foreign2 `shouldBe` [(IdeNamespaced IdeNSType "Foreign2", span1)]
-    it "extracts a span for a foreign kind declaration" $
-      extractSpans foreign3 `shouldBe` [(IdeNamespaced IdeNSKind "Foreign3", span1)]
   describe "Type annotations" $ do
     it "extracts a type annotation" $
       extractTypeAnnotations [typeAnnotation1] `shouldBe` [(P.Ident "value1", P.srcREmpty)]
@@ -83,7 +76,7 @@
       r `shouldBe` synonymSS
     it "finds a data declaration and its constructors" $ do
       rs <- traverse getLocation ["SFData", "SFOne", "SFTwo", "SFThree"]
-      traverse_ (`shouldBe` (Just typeSS)) rs
+      traverse_ (`shouldBe` Just typeSS) rs
     it "finds a class declaration" $ do
       Just r <- getLocation "SFClass"
       r `shouldBe` classSS
@@ -113,9 +106,9 @@
          , ideDtor "SFTwo" "SFData" Nothing `annLoc` typeSS
          , ideDtor "SFThree" "SFData" Nothing `annLoc` typeSS
          , ideTypeClass "SFClass" P.kindType [] `annLoc` classSS
-         , ideValueOp "<$>" (P.Qualified Nothing (Left "")) 0 Nothing Nothing
+         , ideValueOp "<$>" (P.Qualified P.ByNullSourcePos (Left "")) 0 Nothing Nothing
            `annLoc` valueOpSS
-         , ideTypeOp "~>" (P.Qualified Nothing "") 0 Nothing Nothing
+         , ideTypeOp "~>" (P.Qualified P.ByNullSourcePos "") 0 Nothing Nothing
            `annLoc` typeOpSS
          ])
       ]
diff --git a/tests/Language/PureScript/Ide/StateSpec.hs b/tests/Language/PureScript/Ide/StateSpec.hs
--- a/tests/Language/PureScript/Ide/StateSpec.hs
+++ b/tests/Language/PureScript/Ide/StateSpec.hs
@@ -1,27 +1,25 @@
-{-# LANGUAGE OverloadedStrings #-}
-{-# LANGUAGE NoImplicitPrelude #-}
 module Language.PureScript.Ide.StateSpec where
 
-import           Protolude
-import           Language.PureScript.Ide.Types
-import           Language.PureScript.Ide.State
-import           Language.PureScript.Ide.Test
-import qualified Language.PureScript as P
-import           Lens.Micro.Platform hiding ((&))
-import           Test.Hspec
-import qualified Data.Map as Map
+import Protolude
+import Control.Lens (Ixed(..), folded)
+import Language.PureScript.Ide.Types (IdeDeclarationAnn, IdeInstance(..), ModuleMap, _IdeDeclTypeClass, anyOf, idaDeclaration, ideTCInstances)
+import Language.PureScript.Ide.State (resolveDataConstructorsForModule, resolveInstances, resolveOperatorsForModule)
+import Language.PureScript.Ide.Test (ideDtor, ideType, ideTypeClass, ideTypeOp, ideValue, ideValueOp, mn)
+import Language.PureScript qualified as P
+import Test.Hspec (Spec, describe, it, shouldSatisfy)
+import Data.Map qualified as Map
 
 valueOperator :: Maybe P.SourceType -> IdeDeclarationAnn
 valueOperator =
-  ideValueOp "<$>" (P.Qualified (Just (mn "Test")) (Left "function")) 2 Nothing
+  ideValueOp "<$>" (P.Qualified (P.ByModuleName (mn "Test")) (Left "function")) 2 Nothing
 
 ctorOperator :: Maybe P.SourceType -> IdeDeclarationAnn
 ctorOperator =
-  ideValueOp ":" (P.Qualified (Just (mn "Test")) (Right "Cons")) 2 Nothing
+  ideValueOp ":" (P.Qualified (P.ByModuleName (mn "Test")) (Right "Cons")) 2 Nothing
 
-typeOperator :: Maybe P.SourceKind -> IdeDeclarationAnn
+typeOperator :: Maybe P.SourceType -> IdeDeclarationAnn
 typeOperator =
-  ideTypeOp ":" (P.Qualified (Just (mn "Test")) "List") 2 Nothing
+  ideTypeOp ":" (P.Qualified (P.ByModuleName (mn "Test")) "List") 2 Nothing
 
 testModule :: (P.ModuleName, [IdeDeclarationAnn])
 testModule =
@@ -55,17 +53,25 @@
   --, efDeclarations =
     [ P.EDInstance
       -- { edInstanceClassName =
-      (P.Qualified (Just (mn "ClassModule")) (P.ProperName "MyClass"))
+      (P.Qualified (P.ByModuleName (mn "ClassModule")) (P.ProperName "MyClass"))
       -- , edInstanceName =
       (P.Ident "myClassInstance")
+      -- . edInstanceForAll =
+      []
+      -- , edInstanceKinds =
+      mempty
       -- , edInstanceTypes =
       mempty
       -- , edInstanceConstraints =
       mempty
       -- , edInstanceChain =
-      mempty
+      Nothing
       -- , edInstanceChainIndex =
       0
+      -- , edInstanceNameSource =
+      P.UserNamed
+      -- , edInstanceSourceSpan =
+      P.NullSourceSpan
  --     }
     ]
   --, efSourceSpan =
diff --git a/tests/Language/PureScript/Ide/Test.hs b/tests/Language/PureScript/Ide/Test.hs
--- a/tests/Language/PureScript/Ide/Test.hs
+++ b/tests/Language/PureScript/Ide/Test.hs
@@ -1,22 +1,20 @@
-{-# LANGUAGE NoImplicitPrelude #-}
-{-# LANGUAGE OverloadedStrings #-}
 {-# LANGUAGE PackageImports    #-}
-{-# LANGUAGE DataKinds         #-}
 module Language.PureScript.Ide.Test where
 
-import           Control.Concurrent.STM
-import           "monad-logger" Control.Monad.Logger
-import qualified Data.Map                        as Map
-import           Language.PureScript.Ide
-import           Language.PureScript.Ide.Command
-import           Language.PureScript.Ide.Error
-import           Language.PureScript.Ide.Types
-import           Protolude
-import           System.Directory
-import           System.FilePath
-import           System.Process
+import Control.Concurrent.STM (newTVarIO, readTVarIO)
+import "monad-logger" Control.Monad.Logger (NoLoggingT(..))
+import Data.IORef (newIORef)
+import Data.Map qualified as Map
+import Language.PureScript.Ide (handleCommand)
+import Language.PureScript.Ide.Command (Command)
+import Language.PureScript.Ide.Error (IdeError)
+import Language.PureScript.Ide.Types
+import Protolude
+import System.Directory (doesDirectoryExist, getCurrentDirectory, makeAbsolute, removeDirectoryRecursive, setCurrentDirectory)
+import System.FilePath ((</>))
+import System.Process (createProcess, getProcessExitCode, shell)
 
-import qualified Language.PureScript             as P
+import Language.PureScript qualified as P
 
 defConfig :: IdeConfiguration
 defConfig =
@@ -24,13 +22,15 @@
     { confLogLevel = LogNone
     , confOutputPath = "output/"
     , confGlobs = ["src/**/*.purs"]
-    , confEditorMode = False
+    , confGlobsFromFile = Nothing
+    , confGlobsExclude = []
     }
 
 runIde' :: IdeConfiguration -> IdeState -> [Command] -> IO ([Either IdeError Success], IdeState)
 runIde' conf s cs = do
   stateVar <- newTVarIO s
-  let env' = IdeEnvironment {ideStateVar = stateVar, ideConfiguration = conf}
+  ts <- newIORef Nothing
+  let env' = IdeEnvironment {ideStateVar = stateVar, ideConfiguration = conf, ideCacheDbTimestamp = ts}
   r <- runNoLoggingT (runReaderT (traverse (runExceptT . handleCommand) cs) env')
   newState <- readTVarIO stateVar
   pure (r, newState)
@@ -45,20 +45,13 @@
     vs = IdeVolatileState (AstData Map.empty) (Map.fromList decls) Nothing
     decls = map (first P.moduleNameFromString) ds
 
--- | Adding Annotations to IdeDeclarations
-ann :: IdeDeclarationAnn -> Annotation -> IdeDeclarationAnn
-ann (IdeDeclarationAnn _ d) a = IdeDeclarationAnn a d
-
 annLoc :: IdeDeclarationAnn -> P.SourceSpan -> IdeDeclarationAnn
 annLoc (IdeDeclarationAnn a d) loc = IdeDeclarationAnn a {_annLocation = Just loc} d
 
 annExp :: IdeDeclarationAnn -> Text -> IdeDeclarationAnn
 annExp (IdeDeclarationAnn a d) e = IdeDeclarationAnn a {_annExportedFrom = Just (mn e)} d
 
-annTyp :: IdeDeclarationAnn -> P.SourceType -> IdeDeclarationAnn
-annTyp (IdeDeclarationAnn a d) ta = IdeDeclarationAnn a {_annTypeAnnotation = Just ta} d
 
-
 ida :: IdeDeclaration -> IdeDeclarationAnn
 ida = IdeDeclarationAnn emptyAnn
 
@@ -66,13 +59,13 @@
 ideValue :: Text -> Maybe P.SourceType -> IdeDeclarationAnn
 ideValue i ty = ida (IdeDeclValue (IdeValue (P.Ident i) (fromMaybe P.tyString ty)))
 
-ideType :: Text -> Maybe P.SourceKind -> [(P.ProperName 'P.ConstructorName, P.SourceType)] -> IdeDeclarationAnn
+ideType :: Text -> Maybe P.SourceType -> [(P.ProperName 'P.ConstructorName, P.SourceType)] -> IdeDeclarationAnn
 ideType pn ki dtors = ida (IdeDeclType (IdeType (P.ProperName pn) (fromMaybe P.kindType ki) dtors))
 
-ideSynonym :: Text -> Maybe P.SourceType -> Maybe P.SourceKind -> IdeDeclarationAnn
+ideSynonym :: Text -> Maybe P.SourceType -> Maybe P.SourceType -> IdeDeclarationAnn
 ideSynonym pn ty kind = ida (IdeDeclTypeSynonym (IdeTypeSynonym (P.ProperName pn) (fromMaybe P.tyString ty) (fromMaybe P.kindType kind)))
 
-ideTypeClass :: Text -> P.SourceKind -> [IdeInstance] -> IdeDeclarationAnn
+ideTypeClass :: Text -> P.SourceType -> [IdeInstance] -> IdeDeclarationAnn
 ideTypeClass pn kind instances = ida (IdeDeclTypeClass (IdeTypeClass (P.ProperName pn) kind instances))
 
 ideDtor :: Text -> Text -> Maybe P.SourceType -> IdeDeclarationAnn
@@ -84,22 +77,22 @@
        (IdeValueOperator
         (P.OpName opName)
         (bimap P.Ident P.ProperName <$> ident)
-        (precedence)
+        precedence
         (fromMaybe P.Infix assoc)
         t))
 
-ideTypeOp :: Text -> P.Qualified Text -> Integer -> Maybe P.Associativity -> Maybe P.SourceKind -> IdeDeclarationAnn
+ideTypeOp :: Text -> P.Qualified Text -> Integer -> Maybe P.Associativity -> Maybe P.SourceType -> IdeDeclarationAnn
 ideTypeOp opName ident precedence assoc k =
   ida (IdeDeclTypeOperator
        (IdeTypeOperator
         (P.OpName opName)
         (P.ProperName <$> ident)
-        (precedence)
+        precedence
         (fromMaybe P.Infix assoc)
         k))
 
 ideKind :: Text -> IdeDeclarationAnn
-ideKind pn = ida (IdeDeclKind (P.ProperName pn))
+ideKind pn = ideType pn (Just P.kindType) []
 
 ideModule :: Text -> IdeDeclarationAnn
 ideModule name = ida (IdeDeclModule (mn name))
@@ -136,9 +129,9 @@
 compileTestProject :: IO Bool
 compileTestProject = inProject $ do
   (_, _, _, procHandle) <-
-    createProcess $ (shell $ "purs compile \"src/**/*.purs\"")
+    createProcess $ shell "purs compile \"src/**/*.purs\""
   r <- tryNTimes 10 (getProcessExitCode procHandle)
-  pure (fromMaybe False (isSuccess <$> r))
+  pure (maybe False isSuccess r)
 
 isSuccess :: ExitCode -> Bool
 isSuccess ExitSuccess = True
diff --git a/tests/Language/PureScript/Ide/UsageSpec.hs b/tests/Language/PureScript/Ide/UsageSpec.hs
--- a/tests/Language/PureScript/Ide/UsageSpec.hs
+++ b/tests/Language/PureScript/Ide/UsageSpec.hs
@@ -1,23 +1,21 @@
-{-# LANGUAGE OverloadedStrings #-}
-{-# LANGUAGE NoImplicitPrelude #-}
 module Language.PureScript.Ide.UsageSpec where
 
-import           Protolude
+import Protolude
 
-import qualified Data.Text as Text
-import           Language.PureScript.Ide.Command
-import           Language.PureScript.Ide.Types
-import qualified Language.PureScript.Ide.Test as Test
-import qualified Language.PureScript as P
-import           Test.Hspec
-import           Data.Text.Read (decimal)
-import           System.FilePath
+import Data.Text qualified as Text
+import Language.PureScript.Ide.Command (Command(..))
+import Language.PureScript.Ide.Types (IdeNamespace(..), Success(..))
+import Language.PureScript.Ide.Test qualified as Test
+import Language.PureScript qualified as P
+import Test.Hspec (Expectation, Spec, describe, it, shouldBe)
+import Data.Text.Read (decimal)
+import System.FilePath ((</>))
 
 load :: [Text] -> Command
 load = LoadSync . map Test.mn
 
 usage :: P.ModuleName -> Text -> IdeNamespace -> Command
-usage mn ident ns = FindUsages mn ident ns
+usage = FindUsages
 
 shouldBeUsage :: P.SourceSpan -> (FilePath, Text) -> Expectation
 shouldBeUsage usage' (fp, range) =
diff --git a/tests/Main.hs b/tests/Main.hs
--- a/tests/Main.hs
+++ b/tests/Main.hs
@@ -1,26 +1,26 @@
-{-# LANGUAGE DataKinds #-}
 {-# LANGUAGE DoAndIfThenElse #-}
-{-# LANGUAGE TupleSections #-}
-{-# LANGUAGE FlexibleInstances #-}
 
 module Main (main) where
 
-import Prelude ()
-import Prelude.Compat
+import Prelude
 
-import Test.Tasty
+import Test.Hspec
 
-import qualified TestCst
-import qualified TestCompiler
-import qualified TestCoreFn
-import qualified TestDocs
-import qualified TestHierarchy
-import qualified TestPrimDocs
-import qualified TestPsci
-import qualified TestIde
-import qualified TestPscPublish
-import qualified TestBundle
-import qualified TestUtils
+import TestAst qualified
+import TestCompiler qualified
+import TestCoreFn qualified
+import TestCst qualified
+import TestDocs qualified
+import TestHierarchy qualified
+import TestPrimDocs qualified
+import TestPsci qualified
+import TestIde qualified
+import TestPscPublish qualified
+import TestSourceMaps qualified
+-- import TestBundle qualified
+import TestMake qualified
+import TestUtils qualified
+import TestGraph qualified
 
 import System.IO (hSetEncoding, stdout, stderr, utf8)
 
@@ -29,39 +29,20 @@
   hSetEncoding stdout utf8
   hSetEncoding stderr utf8
 
-  heading "Updating support code"
   TestUtils.updateSupportCode
 
-  cstTests <- TestCst.main
-  ideTests <- TestIde.main
-  compilerTests <- TestCompiler.main
-  psciTests <- TestPsci.main
-  pscBundleTests <- TestBundle.main
-  coreFnTests <- TestCoreFn.main
-  docsTests <- TestDocs.main
-  primDocsTests <- TestPrimDocs.main
-  publishTests <- TestPscPublish.main
-  hierarchyTests <- TestHierarchy.main
-
-  defaultMain $
-    testGroup
-      "Tests"
-      [ cstTests
-      , compilerTests
-      , psciTests
-      , pscBundleTests
-      , ideTests
-      , coreFnTests
-      , docsTests
-      , primDocsTests
-      , publishTests
-      , hierarchyTests
-      ]
-
-  where
-  heading msg = do
-    putStrLn ""
-    putStrLn $ replicate 79 '#'
-    putStrLn $ "# " ++ msg
-    putStrLn $ replicate 79 '#'
-    putStrLn ""
+  hspec $ do
+    describe "cst" TestCst.spec
+    describe "ast" TestAst.spec
+    describe "ide" TestIde.spec
+    beforeAll TestUtils.setupSupportModules $ do
+      describe "compiler" TestCompiler.spec
+      describe "sourcemaps" TestSourceMaps.spec
+    describe "make" TestMake.spec
+    describe "psci" TestPsci.spec
+    describe "corefn" TestCoreFn.spec
+    describe "docs" TestDocs.spec
+    describe "prim-docs" TestPrimDocs.spec
+    describe "publish" TestPscPublish.spec
+    describe "hierarchy" TestHierarchy.spec
+    describe "graph" TestGraph.spec
diff --git a/tests/TestAst.hs b/tests/TestAst.hs
new file mode 100644
--- /dev/null
+++ b/tests/TestAst.hs
@@ -0,0 +1,98 @@
+{-# LANGUAGE TypeApplications #-}
+module TestAst where
+
+import Protolude hiding (Constraint, Type, (:+))
+
+import Control.Lens ((+~))
+import Control.Newtype (ala')
+import Generic.Random (genericArbitraryRecG, genericArbitraryUG, listOf', uniform, withBaseCase, (:+)(..))
+import Test.Hspec (Spec, describe, it)
+import Test.QuickCheck (Arbitrary(..), Gen, Property, Testable, counterexample, forAllShrink, subterms, (===))
+
+import Language.PureScript.Label (Label(..))
+import Language.PureScript.Names (pattern ByNullSourcePos, OpName(..), OpNameType(..), ProperName(..), ProperNameType(..), Qualified(..))
+import Language.PureScript.PSString (PSString)
+import Language.PureScript.Types (Constraint, ConstraintData, SkolemScope(..), Type(..), TypeVarVisibility(..), WildcardData, annForType, everythingOnTypes, everythingWithContextOnTypes, everywhereOnTypes, everywhereOnTypesM, everywhereOnTypesTopDownM, getAnnForType)
+
+spec :: Spec
+spec = do
+  describe "Language.PureScript.Types" $ do
+    describe "everywhereOnTypes" $ do
+      everywhereOnTypesSpec everywhereOnTypes
+    describe "everywhereOnTypesM" $ do
+      everywhereOnTypesSpec $ ala' Identity everywhereOnTypesM
+    describe "everywhereOnTypesTopDownM" $ do
+      everywhereOnTypesSpec $ ala' Identity everywhereOnTypesTopDownM
+    describe "everythingOnTypes" $ do
+      everythingOnTypesSpec everythingOnTypes
+    describe "everythingWithContextOnTypes" $ do
+      everythingOnTypesSpec $ \f g -> everythingWithContextOnTypes () [] f $ \s -> (s, ) . g
+
+everywhereOnTypesSpec :: ((Type Int -> Type Int) -> Type Int -> Type Int) -> Spec
+everywhereOnTypesSpec everywhereOnTypesUnderTest = do
+  it "should visit each type once" $
+    forAllShrink (genTypeAnnotatedWith (pure 0) (pure 1)) subterms $ \t ->
+      all (== 1) `isSatisfiedBy` everywhereOnTypesUnderTest (annForType +~ 1) t
+
+everythingOnTypesSpec :: (([Int] -> [Int] -> [Int]) -> (Type Int -> [Int]) -> Type Int -> [Int]) -> Spec
+everythingOnTypesSpec everythingOnTypesUnderTest = do
+  it "should visit each type once" $
+    forAllShrink (genTypeAnnotatedWith (pure 1) (pure 0)) subterms $ \t ->
+      everythingOnTypesUnderTest (++) (pure . getAnnForType) t ===
+        filter (== 1) (toList t)
+
+
+infixr 0 `isSatisfiedBy`
+isSatisfiedBy :: forall a p. Show a => Testable p => (a -> p) -> a -> Property
+isSatisfiedBy = liftA2 counterexample show
+
+genTypeAnnotatedWith :: forall a. Gen a -> Gen a -> Gen (Type a)
+genTypeAnnotatedWith genTypeAnn genConstraintAnn = genType where
+  generatorEnvironment
+    =  genConstraint
+    :+ maybeOf genConstraintData
+    :+ Label <$> genPSString
+    :+ genPSString
+    :+ genQualified (OpName @'TypeOpName)
+    :+ genQualified (ProperName @'ClassName)
+    :+ genQualified (ProperName @'TypeName)
+    :+ genSkolemScope
+    :+ maybeOf genSkolemScope
+    :+ genText
+    :+ listOf' (listOf' genText)
+    :+ maybeOf genText
+    :+ genType
+    :+ listOf' genType
+    :+ maybeOf genType
+    :+ genWildcardData
+    :+ genVisibility
+
+  genConstraint :: Gen (Constraint a)
+  genConstraint = genericArbitraryUG (genConstraintAnn :+ generatorEnvironment)
+
+  genConstraintData :: Gen ConstraintData
+  genConstraintData = genericArbitraryUG generatorEnvironment
+
+  genQualified :: forall b. (Text -> b) -> Gen (Qualified b)
+  genQualified ctor = Qualified ByNullSourcePos . ctor <$> genText
+
+  genSkolemScope :: Gen SkolemScope
+  genSkolemScope = SkolemScope <$> arbitrary
+
+  genType :: Gen (Type a)
+  genType = genericArbitraryRecG (genTypeAnn :+ generatorEnvironment) uniform `withBaseCase` (TypeVar <$> genTypeAnn <*> genText)
+
+  genWildcardData :: Gen WildcardData
+  genWildcardData = genericArbitraryUG genText
+
+  maybeOf :: forall b. Gen b -> Gen (Maybe b)
+  maybeOf = genericArbitraryUG
+
+  genText :: Gen Text
+  genText = pure "x" -- Feel free to make this random if it matters at some point.
+
+  genPSString :: Gen PSString
+  genPSString = pure "x" -- Ditto.
+
+  genVisibility :: Gen TypeVarVisibility
+  genVisibility = pure TypeVarInvisible
diff --git a/tests/TestBundle.hs b/tests/TestBundle.hs
deleted file mode 100644
--- a/tests/TestBundle.hs
+++ /dev/null
@@ -1,95 +0,0 @@
-{-# LANGUAGE DataKinds #-}
-{-# LANGUAGE DoAndIfThenElse #-}
-{-# LANGUAGE TupleSections #-}
-{-# LANGUAGE FlexibleInstances #-}
-{-# LANGUAGE OverloadedStrings #-}
-
-module TestBundle where
-
-import Prelude ()
-import Prelude.Compat
-
-import qualified Language.PureScript as P
-import Language.PureScript.Bundle 
-
-import Data.Function (on)
-import Data.List (minimumBy)
-
-import qualified Data.Map as M
-
-import Control.Monad
-import Control.Monad.IO.Class (liftIO)
-import Control.Monad.Trans.Except
-
-import System.Exit
-import System.Process
-import System.FilePath
-import System.IO
-import System.IO.UTF8
-import qualified System.FilePath.Glob as Glob
-
-import TestUtils
-import Test.Tasty
-import Test.Tasty.Hspec
-
-main :: IO TestTree
-main = testSpec "bundle" spec
-
-spec :: Spec
-spec = do
-  (supportModules, supportExterns, supportForeigns) <- runIO $ setupSupportModules
-  bundleTestCases <- runIO $ getTestFiles "bundle"
-  outputFile <- runIO $ createOutputFile logfile 
-
-  context "Bundle examples" $
-    forM_ bundleTestCases $ \testPurs -> do
-      it ("'" <> takeFileName (getTestMain testPurs) <> "' should compile, bundle and run without error") $
-        assertBundles supportModules supportExterns supportForeigns testPurs outputFile
-  where
-  
-  -- Takes the test entry point from a group of purs files - this is determined
-  -- by the file with the shortest path name, as everything but the main file
-  -- will be under a subdirectory.
-  getTestMain :: [FilePath] -> FilePath
-  getTestMain = minimumBy (compare `on` length)
-
-assertBundles
-  :: [P.Module]
-  -> [P.ExternsFile]
-  -> M.Map P.ModuleName FilePath
-  -> [FilePath]
-  -> Handle
-  -> Expectation
-assertBundles supportModules supportExterns supportForeigns inputFiles outputFile =
-  assert supportModules supportExterns supportForeigns inputFiles checkMain $ \e ->
-    case e of
-      Left errs -> return . Just . P.prettyPrintMultipleErrors P.defaultPPEOptions $ errs
-      Right _ -> do
-        process <- findNodeProcess
-        jsFiles <- Glob.globDir1 (Glob.compile "**/*.js") modulesDir
-        let entryPoint = modulesDir </> "index.js"
-        let entryModule = map (`ModuleIdentifier` Regular) ["Main"] 
-        bundled <- runExceptT $ do
-          input <- forM jsFiles $ \filename -> do
-            js <- liftIO $ readUTF8File filename
-            mid <- guessModuleIdentifier filename
-            length js `seq` return (mid, Just filename, js) 
-          bundleSM input entryModule (Just $ "Main") "PS" (Just entryPoint)
-        case bundled of
-            Right (_, js) -> do
-              writeUTF8File entryPoint js
-              result <- traverse (\node -> readProcessWithExitCode node [entryPoint] "") process
-              hPutStrLn outputFile $ "\n" <> takeFileName (last inputFiles) <> ":"
-              case result of
-                Just (ExitSuccess, out, err)
-                 | not (null err) -> return $ Just $ "Test wrote to stderr:\n\n" <> err
-                 | not (null out) && trim (last (lines out)) == "Done" -> do
-                     hPutStr outputFile out
-                     return Nothing
-                 | otherwise -> return $ Just $ "Test did not finish with 'Done':\n\n" <> out
-                Just (ExitFailure _, _, err) -> return $ Just err
-                Nothing -> return $ Just "Couldn't find node.js executable"
-            Left err -> return . Just $ "Coud not bundle: " ++ show err
-
-logfile :: FilePath
-logfile = "bundle-tests.out"
diff --git a/tests/TestCompiler.hs b/tests/TestCompiler.hs
--- a/tests/TestCompiler.hs
+++ b/tests/TestCompiler.hs
@@ -1,8 +1,4 @@
-{-# LANGUAGE DataKinds #-}
 {-# LANGUAGE DoAndIfThenElse #-}
-{-# LANGUAGE TupleSections #-}
-{-# LANGUAGE FlexibleInstances #-}
-{-# LANGUAGE OverloadedStrings #-}
 
 module TestCompiler where
 
@@ -20,111 +16,109 @@
 --   -- @shouldFailWith TypesDoNotUnify
 --   -- @shouldFailWith TypesDoNotUnify
 --   -- @shouldFailWith TransitiveExportError
+--
+-- Warning and failing tests also check their output against the relative
+-- golden files (`.out`). The golden files are generated automatically when
+-- missing, and can be updated by setting the "HSPEC_ACCEPT" environment
+-- variable, e.g. by running `HSPEC_ACCEPT=true stack test`.
 
-import Prelude ()
-import Prelude.Compat
+import Prelude
 
-import qualified Language.PureScript as P
+import Language.PureScript qualified as P
+import Language.PureScript.Interactive.IO (readNodeProcessWithExitCode)
 
 import Control.Arrow ((>>>))
+import Data.ByteString qualified as BS
 import Data.Function (on)
-import Data.List (sort, stripPrefix, intercalate, minimumBy)
+import Data.List (sort, stripPrefix, minimumBy)
 import Data.Maybe (mapMaybe)
-import qualified Data.Text as T
+import Data.Text qualified as T
+import Data.Text.Encoding qualified as T
 
-import qualified Data.Map as M
 
-import Control.Monad
+import Control.Monad (forM_, when)
 
-import System.Exit
-import System.Process
-import System.FilePath
-import System.IO
+import System.Exit (ExitCode(..))
+import System.FilePath (pathSeparator, replaceExtension, takeFileName, (</>))
+import System.IO (Handle, hPutStr, hPutStrLn)
 import System.IO.UTF8 (readUTF8File)
 
-import TestUtils
-import Test.Tasty
-import Test.Tasty.Hspec
+import Text.Regex.Base (RegexContext(..), RegexMaker(..))
+import Text.Regex.TDFA (Regex)
 
-main :: IO TestTree
-main = testSpec "compiler" spec
+import TestUtils (ExpectedModuleName(..), SupportModules, compile, createOutputFile, getTestFiles, goldenVsString, modulesDir, trim)
+import Test.Hspec (Expectation, SpecWith, beforeAllWith, describe, expectationFailure, it, runIO)
 
-spec :: Spec
+spec :: SpecWith SupportModules
 spec = do
-  (supportModules, supportExterns, supportForeigns) <- runIO $ setupSupportModules
+  passingTests
+  warningTests
+  failingTests
+  optimizeTests
 
-  (passingTestCases, warningTestCases, failingTestCases) <- runIO $
-    (,,) <$> getTestFiles "passing"
-         <*> getTestFiles "warning"
-         <*> getTestFiles "failing"
+passingTests :: SpecWith SupportModules
+passingTests = do
+  passingTestCases <- runIO $ getTestFiles "passing"
 
-  outputFile <- runIO $ createOutputFile logfile
+  describe "Passing examples" $
+    beforeAllWith ((<$> createOutputFile logfile) . (,)) $
+      forM_ passingTestCases $ \testPurs ->
+        it ("'" <> takeFileName (getTestMain testPurs) <> "' should compile and run without error") $ \(support, outputFile) ->
+          assertCompiles support testPurs outputFile
 
-  context "Passing examples" $
-    forM_ passingTestCases $ \testPurs ->
-      it ("'" <> takeFileName (getTestMain testPurs) <> "' should compile and run without error") $
-        assertCompiles supportModules supportExterns supportForeigns testPurs outputFile
+warningTests :: SpecWith SupportModules
+warningTests = do
+  warningTestCases <- runIO $ getTestFiles "warning"
 
-  context "Warning examples" $
+  describe "Warning examples" $
     forM_ warningTestCases $ \testPurs -> do
       let mainPath = getTestMain testPurs
-      expectedWarnings <- runIO $ getShouldWarnWith mainPath
-      it ("'" <> takeFileName mainPath <> "' should compile with warning(s) '" <> intercalate "', '" expectedWarnings <> "'") $
-        assertCompilesWithWarnings supportModules supportExterns supportForeigns testPurs expectedWarnings
+      it ("'" <> takeFileName mainPath <> "' should compile with expected warning(s)") $ \support -> do
+        expectedWarnings <- getShouldWarnWith mainPath
+        assertCompilesWithWarnings support testPurs expectedWarnings
 
-  context "Failing examples" $
+failingTests :: SpecWith SupportModules
+failingTests = do
+  failingTestCases <- runIO $ getTestFiles "failing"
+
+  describe "Failing examples" $ do
     forM_ failingTestCases $ \testPurs -> do
       let mainPath = getTestMain testPurs
-      expectedFailures <- runIO $ getShouldFailWith mainPath
-      it ("'" <> takeFileName mainPath <> "' should fail with '" <> intercalate "', '" expectedFailures <> "'") $
-        assertDoesNotCompile supportModules supportExterns supportForeigns testPurs expectedFailures
-
-  where
-
-  -- Takes the test entry point from a group of purs files - this is determined
-  -- by the file with the shortest path name, as everything but the main file
-  -- will be under a subdirectory.
-  getTestMain :: [FilePath] -> FilePath
-  getTestMain = minimumBy (compare `on` length)
-
-  -- Scans a file for @shouldFailWith directives in the comments, used to
-  -- determine expected failures
-  getShouldFailWith :: FilePath -> IO [String]
-  getShouldFailWith = extractPragma "shouldFailWith"
-
-  -- Scans a file for @shouldWarnWith directives in the comments, used to
-  -- determine expected warnings
-  getShouldWarnWith :: FilePath -> IO [String]
-  getShouldWarnWith = extractPragma "shouldWarnWith"
+      it ("'" <> takeFileName mainPath <> "' should fail to compile") $ \support -> do
+        expectedFailures <- getShouldFailWith mainPath
+        assertDoesNotCompile support testPurs expectedFailures
 
-  extractPragma :: String -> FilePath -> IO [String]
-  extractPragma pragma = fmap go . readUTF8File
-    where
-      go = lines >>> mapMaybe (stripPrefix ("-- @" ++ pragma ++ " ")) >>> map trim
+optimizeTests :: SpecWith SupportModules
+optimizeTests = do
+  optimizeTestCases <- runIO $ getTestFiles "optimize"
 
+  describe "Optimization examples" $
+    forM_ optimizeTestCases $ \testPurs ->
+      it ("'" <> takeFileName (getTestMain testPurs) <> "' should compile to expected output") $ \support ->
+        assertCompilesToExpectedOutput support testPurs
 
-checkShouldFailWith :: [String] -> P.MultipleErrors -> Maybe String
-checkShouldFailWith expected errs =
+checkShouldReport :: [String] -> (P.MultipleErrors -> String) -> P.MultipleErrors -> Expectation
+checkShouldReport expected prettyPrintDiagnostics errs =
   let actual = map P.errorCode $ P.runMultipleErrors errs
   in if sort expected == sort (map T.unpack actual)
     then checkPositioned errs
-    else Just $ "Expected these errors: " ++ show expected ++ ", but got these: "
-      ++ show actual ++ ", full error messages: \n"
-      ++ unlines (map (P.renderBox . P.prettyPrintSingleError P.defaultPPEOptions) (P.runMultipleErrors errs))
+    else expectationFailure $ "Expected these diagnostics: " ++ show expected ++ ", but got these: "
+      ++ show actual ++ ", full diagnostic messages: \n"
+      ++ prettyPrintDiagnostics errs
 
-checkPositioned :: P.MultipleErrors -> Maybe String
+checkPositioned :: P.MultipleErrors -> Expectation
 checkPositioned errs =
   case mapMaybe guardSpans (P.runMultipleErrors errs) of
     [] ->
-      Nothing
+      pure ()
     errs' ->
-      Just
-        $ "Found errors with missing source spans:\n"
+      expectationFailure
+        $ "Found diagnostics with missing source spans:\n"
         ++ unlines (map (P.renderBox . P.prettyPrintSingleError P.defaultPPEOptions) errs')
   where
   guardSpans :: P.ErrorMessage -> Maybe P.ErrorMessage
   guardSpans err = case P.errorSpan err of
-    Just ss | any (not . isNonsenseSpan) ss -> Nothing
+    Just ss | not $ all isNonsenseSpan ss -> Nothing
     _ -> Just err
 
   isNonsenseSpan :: P.SourceSpan -> Bool
@@ -135,74 +129,135 @@
   emptyPos = P.SourcePos 0 0
 
 assertCompiles
-  :: [P.Module]
-  -> [P.ExternsFile]
-  -> M.Map P.ModuleName FilePath
+  :: SupportModules
   -> [FilePath]
   -> Handle
   -> Expectation
-assertCompiles supportModules supportExterns supportForeigns inputFiles outputFile =
-  assert supportModules supportExterns supportForeigns inputFiles checkMain $ \e ->
-    case e of
-      Left errs -> return . Just . P.prettyPrintMultipleErrors P.defaultPPEOptions $ errs
-      Right _ -> do
-        process <- findNodeProcess
-        let entryPoint = modulesDir </> "index.js"
-        writeFile entryPoint "require('Main').main()"
-        result <- traverse (\node -> readProcessWithExitCode node [entryPoint] "") process
-        hPutStrLn outputFile $ "\n" <> takeFileName (last inputFiles) <> ":"
-        case result of
-          Just (ExitSuccess, out, err)
-            | not (null err) -> return $ Just $ "Test wrote to stderr:\n\n" <> err
-            | not (null out) && trim (last (lines out)) == "Done" -> do
-                hPutStr outputFile out
-                return Nothing
-            | otherwise -> return $ Just $ "Test did not finish with 'Done':\n\n" <> out
-          Just (ExitFailure _, _, err) -> return $ Just err
-          Nothing -> return $ Just "Couldn't find node.js executable"
+assertCompiles support inputFiles outputFile = do
+  (fileContents, (result, _)) <- compile (Just IsMain) support inputFiles
+  let errorOptions = P.defaultPPEOptions { P.ppeFileContents = fileContents }
+  case result of
+    Left errs -> expectationFailure . P.prettyPrintMultipleErrors errorOptions $ errs
+    Right _ -> do
+      let entryPoint = modulesDir </> "index.js"
+      writeFile entryPoint "import('./Main/index.js').then(({ main }) => main());"
+      nodeResult <- readNodeProcessWithExitCode Nothing [entryPoint] ""
+      hPutStrLn outputFile $ "\n" <> takeFileName (last inputFiles) <> ":"
+      case nodeResult of
+        Right (ExitSuccess, out, err)
+          | not (null err) -> expectationFailure $ "Test wrote to stderr:\n\n" <> err
+          | not (null out) && trim (last (lines out)) == "Done" -> hPutStr outputFile out
+          | otherwise -> expectationFailure $ "Test did not finish with 'Done':\n\n" <> out
+        Right (ExitFailure _, _, err) -> expectationFailure err
+        Left err -> expectationFailure err
 
 assertCompilesWithWarnings
-  :: [P.Module]
-  -> [P.ExternsFile]
-  -> M.Map P.ModuleName FilePath
+  :: SupportModules
   -> [FilePath]
   -> [String]
   -> Expectation
-assertCompilesWithWarnings supportModules supportExterns supportForeigns inputFiles shouldWarnWith =
-  assert supportModules supportExterns supportForeigns inputFiles checkMain $ \e ->
-    case e of
-      Left errs ->
-        return . Just . P.prettyPrintMultipleErrors P.defaultPPEOptions $ errs
-      Right warnings ->
-        return
-          . fmap (printAllWarnings warnings)
-          $ checkShouldFailWith shouldWarnWith warnings
-
-  where
-  printAllWarnings warnings =
-    (<> "\n\n" <> P.prettyPrintMultipleErrors P.defaultPPEOptions warnings)
+assertCompilesWithWarnings support inputFiles shouldWarnWith = do
+  (fileContents, result'@(result, warnings)) <- compile Nothing support inputFiles
+  let errorOptions = P.defaultPPEOptions { P.ppeFileContents = fileContents }
+  case result of
+    Left errs ->
+      expectationFailure . P.prettyPrintMultipleErrors errorOptions $ errs
+    Right _ -> do
+      checkShouldReport shouldWarnWith (P.prettyPrintMultipleWarnings errorOptions) warnings
+      goldenVsString
+        (replaceExtension (getTestMain inputFiles) ".out")
+        (return . T.encodeUtf8 . T.pack $ printDiagnosticsForGoldenTest fileContents result')
 
 assertDoesNotCompile
-  :: [P.Module]
-  -> [P.ExternsFile]
-  -> M.Map P.ModuleName FilePath
+  :: SupportModules
   -> [FilePath]
   -> [String]
   -> Expectation
-assertDoesNotCompile supportModules supportExterns supportForeigns inputFiles shouldFailWith =
-  assert supportModules supportExterns supportForeigns inputFiles noPreCheck $ \e ->
-    case e of
-      Left errs ->
-        return $ if null shouldFailWith
-          then Just $ "shouldFailWith declaration is missing (errors were: "
-                      ++ show (map P.errorCode (P.runMultipleErrors errs))
-                      ++ ")"
-          else checkShouldFailWith shouldFailWith errs
-      Right _ ->
-        return $ Just "Should not have compiled"
+assertDoesNotCompile support inputFiles shouldFailWith = do
+  (fileContents, result) <- compile Nothing support inputFiles
+  let errorOptions = P.defaultPPEOptions { P.ppeFileContents = fileContents }
+  case fst result of
+    Left errs -> do
+      when (null shouldFailWith)
+        (expectationFailure $
+          "shouldFailWith declaration is missing (errors were: "
+          ++ show (map P.errorCode (P.runMultipleErrors errs))
+          ++ ")")
+      checkShouldReport shouldFailWith (P.prettyPrintMultipleErrors errorOptions) errs
+      goldenVsString
+        (replaceExtension (getTestMain inputFiles) ".out")
+        (return . T.encodeUtf8 . T.pack $ printDiagnosticsForGoldenTest fileContents result)
+    Right _ ->
+      expectationFailure "Should not have compiled"
 
+assertCompilesToExpectedOutput
+  :: SupportModules
+  -> [FilePath]
+  -> Expectation
+assertCompilesToExpectedOutput support inputFiles = do
+  (fileContents, (result, _)) <- compile Nothing support inputFiles
+  let errorOptions = P.defaultPPEOptions { P.ppeFileContents = fileContents }
+  case result of
+    Left errs -> expectationFailure . P.prettyPrintMultipleErrors errorOptions $ errs
+    Right _ ->
+      goldenVsString
+        (replaceExtension (getTestMain inputFiles) ".out.js")
+        (BS.readFile $ modulesDir </> "Main/index.js")
+
+-- Prints a set of diagnostics (i.e. errors or warnings) as a string, in order
+-- to compare it to the contents of a golden test file.
+printDiagnosticsForGoldenTest :: [(FilePath, T.Text)] -> (Either P.MultipleErrors a, P.MultipleErrors) -> String
+printDiagnosticsForGoldenTest fileContents (result, warnings) =
+  normalizePaths $ case result of
+    Left errs ->
+      -- TODO: should probably include warnings when failing?
+      P.prettyPrintMultipleErrors errorOptions errs
+    Right _ ->
+      P.prettyPrintMultipleWarnings errorOptions warnings
   where
-  noPreCheck = const (return ())
+  errorOptions = P.defaultPPEOptions { P.ppeFileContents = fileContents }
+
+-- Replaces Windows-style paths in an error or warning with POSIX paths
+normalizePaths :: String -> String
+normalizePaths = if pathSeparator == '\\'
+  then replaceMatches " [0-9A-Za-z_-]+(\\\\[0-9A-Za-z_-]+)+\\.[A-Za-z]+\\>" (map turnSlash)
+  else id
+  where
+    turnSlash '\\' = '/'
+    turnSlash c = c
+
+-- Uses a function to replace all matches of a regular expression in a string
+replaceMatches :: String -> (String -> String) -> String -> String
+replaceMatches reString phi = go
+  where
+    re :: Regex
+    re = makeRegex reString
+    go :: String -> String
+    go haystack =
+      let (prefix, needle, suffix) = match re haystack
+      in prefix ++ (if null needle then "" else phi needle ++ go suffix)
+
+-- Takes the test entry point from a group of purs files - this is determined
+-- by the file with the shortest path name, as everything but the main file
+-- will be under a subdirectory.
+getTestMain :: [FilePath] -> FilePath
+getTestMain = minimumBy (compare `on` length)
+
+-- Scans a file for @shouldFailWith directives in the comments, used to
+-- determine expected failures
+getShouldFailWith :: FilePath -> IO [String]
+getShouldFailWith = extractPragma "shouldFailWith"
+
+-- Scans a file for @shouldWarnWith directives in the comments, used to
+-- determine expected warnings
+getShouldWarnWith :: FilePath -> IO [String]
+getShouldWarnWith = extractPragma "shouldWarnWith"
+
+extractPragma :: String -> FilePath -> IO [String]
+extractPragma pragma = fmap go . readUTF8File
+  where
+    go = lines >>> mapMaybe (stripPrefix ("-- @" ++ pragma ++ " ")) >>> map trim
+
 
 logfile :: FilePath
 logfile = "psc-tests.out"
diff --git a/tests/TestCoreFn.hs b/tests/TestCoreFn.hs
--- a/tests/TestCoreFn.hs
+++ b/tests/TestCoreFn.hs
@@ -1,31 +1,24 @@
-{-# LANGUAGE DataKinds #-}
 {-# LANGUAGE DoAndIfThenElse #-}
-{-# LANGUAGE FlexibleInstances #-}
-{-# LANGUAGE OverloadedStrings #-}
 
-module TestCoreFn (main) where
-
-import Prelude ()
-import Prelude.Compat
+module TestCoreFn (spec) where
 
-import Data.Aeson
-import Data.Aeson.Types as Aeson
-import Data.Version
+import Prelude
 
-import Language.PureScript.AST.Literals
-import Language.PureScript.AST.SourcePos
-import Language.PureScript.Comments
-import Language.PureScript.CoreFn
-import Language.PureScript.CoreFn.FromJSON
-import Language.PureScript.CoreFn.ToJSON
-import Language.PureScript.Names
-import Language.PureScript.PSString
+import Data.Aeson (Result(..), Value)
+import Data.Aeson.Types (parse)
+import Data.Map as M
+import Data.Version (Version(..))
 
-import Test.Tasty
-import Test.Tasty.Hspec
+import Language.PureScript.AST.Literals (Literal(..))
+import Language.PureScript.AST.SourcePos (SourcePos(..), SourceSpan(..))
+import Language.PureScript.Comments (Comment(..))
+import Language.PureScript.CoreFn (Ann, Bind(..), Binder(..), CaseAlternative(..), ConstructorType(..), Expr(..), Meta(..), Module(..), ssAnn)
+import Language.PureScript.CoreFn.FromJSON (moduleFromJSON)
+import Language.PureScript.CoreFn.ToJSON (moduleToJSON)
+import Language.PureScript.Names (pattern ByNullSourcePos, Ident(..), ModuleName(..), ProperName(..), Qualified(..), QualifiedBy(..))
+import Language.PureScript.PSString (mkString)
 
-main :: IO TestTree
-main = testSpec "corefn" spec
+import Test.Hspec (Spec, context, shouldBe, shouldSatisfy, specify)
 
 parseModule :: Value -> Result (Version, Module Ann)
 parseModule = parse moduleFromJSON
@@ -37,61 +30,78 @@
   in snd <$> parseModule (moduleToJSON v m)
 
 isSuccess :: Result a -> Bool
-isSuccess (Aeson.Success _) = True
+isSuccess (Success _) = True
 isSuccess _           = False
 
 spec :: Spec
-spec = context "CoreFnFromJsonTest" $ do
-  let mn = ModuleName [ProperName "Example", ProperName "Main"]
+spec = context "CoreFnFromJson" $ do
+  let mn = ModuleName "Example.Main"
       mp = "src/Example/Main.purs"
       ss = SourceSpan mp (SourcePos 0 0) (SourcePos 0 0)
       ann = ssAnn ss
 
+  specify "should parse version" $ do
+    let v = Version [0, 13, 6] []
+        m = Module ss [] mn mp [] [] M.empty [] []
+        r = fst <$> parseModule (moduleToJSON v m)
+    r `shouldSatisfy` isSuccess
+    case r of
+      Error _   -> return ()
+      Success v' -> v' `shouldBe` v
+
   specify "should parse an empty module" $ do
-    let r = parseMod $ Module ss [] mn mp [] [] [] []
+    let r = parseMod $ Module ss [] mn mp [] [] M.empty [] []
     r `shouldSatisfy` isSuccess
     case r of
       Error _   -> return ()
-      Aeson.Success m -> moduleName m `shouldBe` mn
+      Success m -> moduleName m `shouldBe` mn
 
   specify "should parse source span" $ do
-    let r = parseMod $ Module ss [] mn mp [] [] [] []
+    let r = parseMod $ Module ss [] mn mp [] [] M.empty [] []
     r `shouldSatisfy` isSuccess
     case r of
       Error _   -> return ()
-      Aeson.Success m -> moduleSourceSpan m `shouldBe` ss
+      Success m -> moduleSourceSpan m `shouldBe` ss
 
   specify "should parse module path" $ do
-    let r = parseMod $ Module ss [] mn mp [] [] [] []
+    let r = parseMod $ Module ss [] mn mp [] [] M.empty [] []
     r `shouldSatisfy` isSuccess
     case r of
       Error _   -> return ()
-      Aeson.Success m -> modulePath m `shouldBe` mp
+      Success m -> modulePath m `shouldBe` mp
 
   specify "should parse imports" $ do
-    let r = parseMod $ Module ss [] mn mp [(ann, mn)] [] [] []
+    let r = parseMod $ Module ss [] mn mp [(ann, mn)] [] M.empty [] []
     r `shouldSatisfy` isSuccess
     case r of
       Error _   -> return ()
-      Aeson.Success m -> moduleImports m `shouldBe` [(ann, mn)]
+      Success m -> moduleImports m `shouldBe` [(ann, mn)]
 
   specify "should parse exports" $ do
-    let r = parseMod $ Module ss [] mn mp [] [Ident "exp"] [] []
+    let r = parseMod $ Module ss [] mn mp [] [Ident "exp"] M.empty [] []
     r `shouldSatisfy` isSuccess
     case r of
       Error _   -> return ()
-      Aeson.Success m -> moduleExports m `shouldBe` [Ident "exp"]
+      Success m -> moduleExports m `shouldBe` [Ident "exp"]
 
+  specify "should parse re-exports" $ do
+    let r = parseMod $ Module ss [] mn mp [] [] (M.singleton (ModuleName "Example.A") [Ident "exp"]) [] []
+    r `shouldSatisfy` isSuccess
+    case r of
+      Error _   -> return ()
+      Success m -> moduleReExports m `shouldBe` M.singleton (ModuleName "Example.A") [Ident "exp"]
+
+
   specify "should parse foreign" $ do
-    let r = parseMod $ Module ss [] mn mp [] [] [Ident "exp"] []
+    let r = parseMod $ Module ss [] mn mp [] [] M.empty [Ident "exp"] []
     r `shouldSatisfy` isSuccess
     case r of
       Error _   -> return ()
-      Aeson.Success m -> moduleForeign m `shouldBe` [Ident "exp"]
+      Success m -> moduleForeign m `shouldBe` [Ident "exp"]
 
   context "Expr" $ do
     specify "should parse literals" $ do
-      let m = Module ss [] mn mp [] [] []
+      let m = Module ss [] mn mp [] [] M.empty []
                 [ NonRec ann (Ident "x1") $ Literal ann (NumericLiteral (Left 1))
                 , NonRec ann (Ident "x2") $ Literal ann (NumericLiteral (Right 1.0))
                 , NonRec ann (Ident "x3") $ Literal ann (StringLiteral (mkString "abc"))
@@ -103,45 +113,55 @@
       parseMod m `shouldSatisfy` isSuccess
 
     specify "should parse Constructor" $ do
-      let m = Module ss [] mn mp [] [] []
+      let m = Module ss [] mn mp [] [] M.empty []
                 [ NonRec ann (Ident "constructor") $ Constructor ann (ProperName "Either") (ProperName "Left") [Ident "value0"] ]
       parseMod m `shouldSatisfy` isSuccess
 
     specify "should parse Accessor" $ do
-      let m = Module ss [] mn mp [] [] []
+      let m = Module ss [] mn mp [] [] M.empty []
                 [ NonRec ann (Ident "x") $
                     Accessor ann (mkString "field") (Literal ann $ ObjectLiteral [(mkString "field", Literal ann (NumericLiteral (Left 1)))]) ]
       parseMod m `shouldSatisfy` isSuccess
 
     specify "should parse ObjectUpdate" $ do
-      let m = Module ss [] mn mp [] [] []
+      let m = Module ss [] mn mp [] [] M.empty []
                 [ NonRec ann (Ident "objectUpdate") $
                     ObjectUpdate ann
                       (Literal ann $ ObjectLiteral [(mkString "field", Literal ann (StringLiteral (mkString "abc")))])
+                      (Just [mkString "unchangedField"])
                       [(mkString "field", Literal ann (StringLiteral (mkString "xyz")))]
                 ]
       parseMod m `shouldSatisfy` isSuccess
 
     specify "should parse Abs" $ do
-      let m = Module ss [] mn mp [] [] []
+      let m = Module ss [] mn mp [] [] M.empty []
                 [ NonRec ann (Ident "abs")
-                    $ Abs ann (Ident "x") (Var ann (Qualified (Just mn) (Ident "x")))
+                    $ Abs ann (Ident "x") (Var ann (Qualified (ByModuleName mn) (Ident "x")))
                 ]
       parseMod m `shouldSatisfy` isSuccess
 
     specify "should parse App" $ do
-      let m = Module ss [] mn mp [] [] []
+      let m = Module ss [] mn mp [] [] M.empty []
                 [ NonRec ann (Ident "app")
                     $ App ann
-                        (Abs ann (Ident "x") (Var ann (Qualified Nothing (Ident "x"))))
+                        (Abs ann (Ident "x") (Var ann (Qualified ByNullSourcePos (Ident "x"))))
                         (Literal ann (CharLiteral 'c'))
                 ]
       parseMod m `shouldSatisfy` isSuccess
 
+    specify "should parse UnusedIdent in Abs" $ do
+      let i = NonRec ann (Ident "f") (Abs ann UnusedIdent (Var ann (Qualified ByNullSourcePos (Ident "x"))))
+      let r = parseMod $ Module ss [] mn mp [] [] M.empty [] [i]
+      r `shouldSatisfy` isSuccess
+      case r of
+        Error _ -> pure ()
+        Success Module{..} ->
+          moduleDecls `shouldBe` [i]
+
     specify "should parse Case" $ do
-      let m = Module ss [] mn mp [] [] []
+      let m = Module ss [] mn mp [] [] M.empty []
                 [ NonRec ann (Ident "case") $
-                    Case ann [Var ann (Qualified Nothing (Ident "x"))]
+                    Case ann [Var ann (Qualified ByNullSourcePos (Ident "x"))]
                       [ CaseAlternative
                         [ NullBinder ann ]
                         (Right (Literal ann (CharLiteral 'a')))
@@ -150,9 +170,9 @@
       parseMod m `shouldSatisfy` isSuccess
 
     specify "should parse Case with guards" $ do
-      let m = Module ss [] mn mp [] [] []
+      let m = Module ss [] mn mp [] [] M.empty []
                 [ NonRec ann (Ident "case") $
-                    Case ann [Var ann (Qualified Nothing (Ident "x"))]
+                    Case ann [Var ann (Qualified ByNullSourcePos (Ident "x"))]
                       [ CaseAlternative
                         [ NullBinder ann ]
                         (Left [(Literal ann (BooleanLiteral True), Literal ann (CharLiteral 'a'))])
@@ -161,48 +181,48 @@
       parseMod m `shouldSatisfy` isSuccess
 
     specify "should parse Let" $ do
-      let m = Module ss [] mn mp [] [] []
+      let m = Module ss [] mn mp [] [] M.empty []
                 [ NonRec ann (Ident "case") $
                     Let ann
-                      [ Rec [((ann, Ident "a"), Var ann (Qualified Nothing (Ident "x")))] ]
+                      [ Rec [((ann, Ident "a"), Var ann (Qualified ByNullSourcePos (Ident "x")))] ]
                       (Literal ann (BooleanLiteral True))
                 ]
       parseMod m `shouldSatisfy` isSuccess
 
   context "Meta" $ do
     specify "should parse IsConstructor" $ do
-      let m = Module ss [] mn mp [] [] []
-                [ NonRec (ss, [], Nothing, Just (IsConstructor ProductType [Ident "x"])) (Ident "x") $
-                  Literal (ss, [], Nothing, Just (IsConstructor SumType [])) (CharLiteral 'a')
+      let m = Module ss [] mn mp [] [] M.empty []
+                [ NonRec (ss, [], Just (IsConstructor ProductType [Ident "x"])) (Ident "x") $
+                  Literal (ss, [], Just (IsConstructor SumType [])) (CharLiteral 'a')
                 ]
       parseMod m `shouldSatisfy` isSuccess
 
     specify "should parse IsNewtype" $ do
-      let m = Module ss [] mn mp [] [] []
-                [ NonRec (ss, [], Nothing, Just IsNewtype) (Ident "x") $
+      let m = Module ss [] mn mp [] [] M.empty []
+                [ NonRec (ss, [], Just IsNewtype) (Ident "x") $
                   Literal ann (CharLiteral 'a')
                 ]
       parseMod m `shouldSatisfy` isSuccess
 
     specify "should parse IsTypeClassConstructor" $ do
-      let m = Module ss [] mn mp [] [] []
-                [ NonRec (ss, [], Nothing, Just IsTypeClassConstructor) (Ident "x") $
+      let m = Module ss [] mn mp [] [] M.empty []
+                [ NonRec (ss, [], Just IsTypeClassConstructor) (Ident "x") $
                   Literal ann (CharLiteral 'a')
                 ]
       parseMod m `shouldSatisfy` isSuccess
 
     specify "should parse IsForeign" $ do
-      let m = Module ss [] mn mp [] [] []
-                [ NonRec (ss, [], Nothing, Just IsForeign) (Ident "x") $
+      let m = Module ss [] mn mp [] [] M.empty []
+                [ NonRec (ss, [], Just IsForeign) (Ident "x") $
                   Literal ann (CharLiteral 'a')
                 ]
       parseMod m `shouldSatisfy` isSuccess
 
   context "Binders" $ do
     specify "should parse LiteralBinder" $ do
-      let m = Module ss [] mn mp [] [] []
+      let m = Module ss [] mn mp [] [] M.empty []
                 [ NonRec ann (Ident "case") $
-                    Case ann [Var ann (Qualified Nothing (Ident "x"))]
+                    Case ann [Var ann (Qualified ByNullSourcePos (Ident "x"))]
                       [ CaseAlternative
                         [ LiteralBinder ann (BooleanLiteral True) ]
                         (Right (Literal ann (CharLiteral 'a')))
@@ -211,14 +231,14 @@
       parseMod m `shouldSatisfy` isSuccess
 
     specify "should parse VarBinder" $ do
-      let m = Module ss [] mn mp [] [] []
+      let m = Module ss [] mn mp [] [] M.empty []
                 [ NonRec ann (Ident "case") $
-                    Case ann [Var ann (Qualified Nothing (Ident "x"))]
+                    Case ann [Var ann (Qualified ByNullSourcePos (Ident "x"))]
                       [ CaseAlternative
                         [ ConstructorBinder
                             ann
-                            (Qualified (Just (ModuleName [ProperName "Data", ProperName "Either"])) (ProperName "Either"))
-                            (Qualified Nothing (ProperName "Left"))
+                            (Qualified (ByModuleName (ModuleName "Data.Either")) (ProperName "Either"))
+                            (Qualified ByNullSourcePos (ProperName "Left"))
                             [VarBinder ann (Ident "z")]
                         ]
                         (Right (Literal ann (CharLiteral 'a')))
@@ -227,9 +247,9 @@
       parseMod m `shouldSatisfy` isSuccess
 
     specify "should parse NamedBinder" $ do
-      let m = Module ss [] mn mp [] [] []
+      let m = Module ss [] mn mp [] [] M.empty []
                 [ NonRec ann (Ident "case") $
-                    Case ann [Var ann (Qualified Nothing (Ident "x"))]
+                    Case ann [Var ann (Qualified ByNullSourcePos (Ident "x"))]
                       [ CaseAlternative
                         [ NamedBinder ann (Ident "w") (NamedBinder ann (Ident "w'") (VarBinder ann (Ident "w''"))) ]
                         (Right (Literal ann (CharLiteral 'a')))
@@ -239,9 +259,9 @@
 
   context "Comments" $ do
     specify "should parse LineComment" $ do
-      let m = Module ss [ LineComment "line" ] mn mp [] [] [] []
+      let m = Module ss [ LineComment "line" ] mn mp [] [] M.empty [] []
       parseMod m `shouldSatisfy` isSuccess
 
     specify "should parse BlockComment" $ do
-      let m = Module ss [ BlockComment "block" ] mn mp [] [] [] []
+      let m = Module ss [ BlockComment "block" ] mn mp [] [] M.empty [] []
       parseMod m `shouldSatisfy` isSuccess
diff --git a/tests/TestCst.hs b/tests/TestCst.hs
--- a/tests/TestCst.hs
+++ b/tests/TestCst.hs
@@ -1,43 +1,37 @@
-{-# LANGUAGE LambdaCase #-}
-{-# LANGUAGE OverloadedStrings #-}
 module TestCst where
 
 import Prelude
 
-import Control.Monad (when)
-import qualified Data.ByteString.Lazy as BS
+import Control.Monad (when, forM_)
 import Data.Maybe (fromMaybe)
 import Data.Text (Text)
-import qualified Data.Text as Text
-import qualified Data.Text.Encoding as Text
-import qualified Data.Text.IO as Text
-import Test.Tasty (TestTree, testGroup)
-import Test.Tasty.Golden (goldenVsString, findByExtension)
-import Test.Tasty.QuickCheck
+import Data.Text qualified as Text
+import Data.Text.Encoding qualified as Text
+import Data.Text.IO qualified as Text
+import Test.Hspec (Spec, describe, it, runIO, specify)
+import Test.QuickCheck (Arbitrary(..), Gen, Testable(..), arbitrarySizedNatural, arbitraryUnicodeChar, discard, elements, frequency, listOf, listOf1, oneof, resize)
+import TestUtils (getTestFiles, goldenVsString)
 import Text.Read (readMaybe)
 import Language.PureScript.CST.Errors as CST
 import Language.PureScript.CST.Lexer as CST
 import Language.PureScript.CST.Print as CST
-import Language.PureScript.CST.Types
+import Language.PureScript.CST.Types (SourceToken(..), Token(..))
 import System.FilePath (takeBaseName, replaceExtension)
 
-main :: IO TestTree
-main = do
-  lytTests <- layoutTests
-  pure $ testGroup "cst"
-    [ lytTests
-    , litTests
-    ]
+spec :: Spec
+spec = do
+  layoutSpec
+  literalsSpec
 
-layoutTests :: IO TestTree
-layoutTests = do
-  pursFiles <- findByExtension [".purs"] "./tests/purs/layout"
-  return $ testGroup "Layout golden tests" $ do
-    file <- pursFiles
-    pure $ goldenVsString
-      (takeBaseName file)
-      (replaceExtension file ".out")
-      (BS.fromStrict . Text.encodeUtf8 <$> runLexer file)
+layoutSpec :: Spec
+layoutSpec = do
+  pursFiles <- runIO $ concat <$> getTestFiles "layout"
+  describe "Layout golden tests" $ do
+    forM_ pursFiles $ \file ->
+      it (takeBaseName file) $
+        goldenVsString
+          (replaceExtension file ".out")
+          (Text.encodeUtf8 <$> runLexer file)
   where
   runLexer file = do
     src <- Text.readFile file
@@ -47,35 +41,40 @@
       Right toks -> do
         pure $ CST.printTokens toks
 
-litTests :: TestTree
-litTests = testGroup "Literals"
-  [ testProperty "Integer" $
-      checkTok checkReadNum (\case TokInt _ a -> Just a; _ -> Nothing) . unInt
-  , testProperty "Hex" $
-      checkTok checkReadNum (\case TokInt _ a -> Just a; _ -> Nothing) . unHex
-  , testProperty "Number" $
-      checkTok checkReadNum (\case TokNumber _ a -> Just a; _ -> Nothing) . unFloat
-  , testProperty "Exponent" $
-      checkTok checkReadNum (\case TokNumber _ a -> Just a; _ -> Nothing) . unExponent
+literalsSpec :: Spec
+literalsSpec = describe "Literals" $ do
+  testProperty "Integer" $
+    checkTok checkReadNum (\case TokInt _ a -> Just a; _ -> Nothing) . unInt
+  testProperty "Hex" $
+    checkTok checkReadNum (\case TokInt _ a -> Just a; _ -> Nothing) . unHex
+  testProperty "Number" $
+    checkTok checkReadNum (\case TokNumber _ a -> Just a; _ -> Nothing) . unFloat
+  testProperty "Exponent" $
+    checkTok checkReadNum (\case TokNumber _ a -> Just a; _ -> Nothing) . unExponent
 
-  , testProperty "Integer (round trip)" $ roundTripTok . unInt
-  , testProperty "Hex (round trip)" $ roundTripTok . unHex
-  , testProperty "Number (round trip)" $ roundTripTok . unFloat
-  , testProperty "Exponent (round trip)" $ roundTripTok . unExponent
-  , testProperty "Char (round trip)" $ roundTripTok . unChar
-  , testProperty "String (round trip)" $ roundTripTok . unString
-  , testProperty "Raw String (round trip)" $ roundTripTok . unRawString
-  ]
+  testProperty "Integer (round trip)" $ roundTripTok . unInt
+  testProperty "Hex (round trip)" $ roundTripTok . unHex
+  testProperty "Number (round trip)" $ roundTripTok . unFloat
+  testProperty "Exponent (round trip)" $ roundTripTok . unExponent
+  testProperty "Char (round trip)" $ roundTripTok . unChar
+  testProperty "String (round trip)" $ roundTripTok . unString
+  testProperty "Raw String (round trip)" $ roundTripTok . unRawString
 
-readTok :: Text -> Gen SourceToken
-readTok t = case CST.lex t of
+  where
+  testProperty name test = specify name (property test)
+
+readTok' :: String -> Text -> Gen SourceToken
+readTok' failMsg t = case CST.lex t of
   Right tok : _ ->
     pure tok
   Left (_, err) : _ ->
-    fail $ "Failed to parse: " <> CST.prettyPrintError err
+    error $ failMsg <> ": " <> CST.prettyPrintError err
   [] ->
-    fail "Empty token stream"
+    error "Empty token stream"
 
+readTok :: Text -> Gen SourceToken
+readTok = readTok' "Failed to parse"
+
 checkTok
   :: (Text -> a -> Gen Bool)
   -> (Token -> Maybe a)
@@ -85,13 +84,13 @@
   SourceToken _ tok <- readTok t
   case f tok of
     Just a  -> p t a
-    Nothing -> fail $ "Failed to lex correctly: " <> show tok
+    Nothing -> error $ "Failed to lex correctly: " <> show tok
 
 roundTripTok :: Text -> Gen Bool
 roundTripTok t = do
   tok <- readTok t
   let t' = CST.printTokens [tok]
-  tok' <- readTok t'
+  tok' <- readTok' "Failed to re-parse" t'
   pure $ tok == tok'
 
 checkReadNum :: (Eq a, Read a) => Text -> a -> Gen Bool
@@ -102,7 +101,7 @@
       chs' -> chs'
   case (== a) <$> readMaybe chs of
     Just a' -> pure a'
-    Nothing -> fail "Failed to `read`"
+    Nothing -> error "Failed to `read`"
 
 newtype PSSourceInt = PSSourceInt { unInt :: Text }
   deriving (Show, Eq)
@@ -168,26 +167,26 @@
 
 genChar :: Gen PSSourceChar
 genChar = PSSourceChar <$> do
-  ch  <- (toEnum :: Int -> Char) <$> resize 0xFFFF arbitrarySizedNatural
-  ch' <- case ch of
-    '\'' -> discard
-    '\\' -> genCharEscape
-    c    ->  pure $ Text.singleton c
-  pure $ "'" <> ch' <> "'"
+  ch <- resize 0xFFFF arbitrarySizedNatural >>= (genStringChar '\'' . toEnum)
+  pure $ "'" <> ch <> "'"
 
 genString :: Gen PSSourceString
 genString = PSSourceString <$> do
-  chs <- listOf $ arbitraryUnicodeChar >>= \case
-    '"'  -> discard
-    '\n' -> discard
-    '\r' -> discard
-    '\\' -> genCharEscape
-    c    -> pure $ Text.singleton c
+  chs <- listOf $ arbitraryUnicodeChar >>= genStringChar '"'
   pure $ "\"" <> Text.concat chs <> "\""
 
+genStringChar :: Char -> Char -> Gen Text
+genStringChar delimiter ch = frequency
+  [ (1, genCharEscape)
+  , (10, if ch `elem` [delimiter, '\n', '\r', '\\']
+           then discard
+           else pure $ Text.singleton ch
+    )
+  ]
+
 genRawString :: Gen PSSourceRawString
 genRawString = PSSourceRawString <$> do
-  chs <- listOf $ arbitraryUnicodeChar
+  chs <- listOf arbitraryUnicodeChar
   let
     k1 acc qs cs = do
       let (cs', q) = span (/= '"') cs
diff --git a/tests/TestDocs.hs b/tests/TestDocs.hs
--- a/tests/TestDocs.hs
+++ b/tests/TestDocs.hs
@@ -1,105 +1,61 @@
-{-# LANGUAGE RecordWildCards #-}
-{-# LANGUAGE ViewPatterns #-}
-{-# LANGUAGE LambdaCase #-}
-{-# LANGUAGE DataKinds #-}
-{-# LANGUAGE OverloadedStrings #-}
-
 module TestDocs where
 
-import Prelude ()
-import Prelude.Compat
+import Prelude
 
-import Control.Arrow (first)
+import Data.Bifunctor (first)
 import Data.List (findIndex)
-import Data.Foldable
+import Data.Foldable (find, forM_)
 import Safe (headMay)
-import qualified Data.Map as Map
-import Data.Maybe (fromMaybe, mapMaybe)
-import Data.Monoid
+import Data.Map qualified as Map
+import Data.Maybe (fromMaybe, isNothing, mapMaybe)
+import Data.Monoid (Any(..), First(..))
 import Data.Text (Text)
-import qualified Data.Text as T
-import qualified Text.PrettyPrint.Boxes as Boxes
+import Data.Text qualified as T
+import Text.PrettyPrint.Boxes qualified as Boxes
 
-import qualified Language.PureScript as P
-import qualified Language.PureScript.Docs as Docs
+import Language.PureScript qualified as P
+import Language.PureScript.Docs qualified as Docs
 import Language.PureScript.Docs.AsMarkdown (codeToString)
-import qualified Language.PureScript.Publish.ErrorsWarnings as Publish
+import Language.PureScript.Publish.ErrorsWarnings qualified as Publish
 
 import Web.Bower.PackageMeta (parsePackageName, runPackageName)
 
 import TestPscPublish (preparePackage)
 
-import Test.Tasty
-import Test.Tasty.Hspec (Spec, it, context, expectationFailure, runIO, testSpec)
-
-main :: IO TestTree
-main = testSpec "docs" spec
+import Test.Hspec (Spec, beforeAll, context, expectationFailure, it)
 
 spec :: Spec
-spec = do
-  packageResult <- runIO (preparePackage "tests/purs/docs" "resolutions.json")
-
-  case packageResult of
-    Left e ->
-      it "failed to produce docs" $ do
-        expectationFailure (Boxes.render (Publish.renderError e))
-    Right pkg ->
-      mkSpec pkg
-
-mkSpec :: Docs.Package Docs.NotYetKnown -> Spec
-mkSpec pkg@Docs.Package{..} = do
-  let linksCtx = Docs.getLinksContext pkg
-
+spec = beforeAll (handleDocPrepFailure <$> preparePackage "tests/purs/docs" "purs.json" "resolutions.json") $
   context "Language.PureScript.Docs" $ do
     context "Doc generation tests:" $
-      forM_ testCases $ \(mnString, assertions) -> do
-        let mn = P.moduleNameFromString mnString
-            mdl = find ((==) mn . Docs.modName) pkgModules
-
-        context ("in module " ++ T.unpack mnString) $
-          case mdl of
-            Nothing ->
-              it "exists in docs output" $
-                expectationFailure ("module not found in docs: " ++ T.unpack mnString)
-            Just mdl' ->
-              toHspec linksCtx mdl' assertions
-
-    context "Tag generation tests:" $
-      forM_ testTagsCases $ \(mnString, assertions) -> do
-        let mn = P.moduleNameFromString mnString
-            mdl = find ((==) mn . Docs.modName) pkgModules
-        context ("in module " ++ T.unpack mnString) $
-          case mdl of
-            Nothing ->
-              it "exists in docs output" $
-                expectationFailure ("module not found in docs: " ++ T.unpack mnString)
-            Just mdl' ->
-              tagAssertionsToHspec mdl' assertions
-
-  where
-  toHspec :: Docs.LinksContext -> Docs.Module -> [DocsAssertion] -> Spec
-  toHspec linksCtx mdl assertions =
-    forM_ assertions $ \a ->
-      it (T.unpack (displayAssertion a)) $ do
-        case runAssertion a linksCtx mdl of
+      mkSpec testCases displayAssertion $ \a pkg mdl ->
+        case runAssertion a (Docs.getLinksContext pkg) mdl of
           Pass ->
             pure ()
           Fail reason ->
             expectationFailure (T.unpack (displayAssertionFailure reason))
 
-  tagAssertionsToHspec :: Docs.Module -> [TagsAssertion] -> Spec
-  tagAssertionsToHspec mdl assertions =
-    let tags = Map.fromList $ Docs.tags mdl
-    in forM_ assertions $ \a ->
-      it (T.unpack (displayTagsAssertion a)) $ do
-        case runTagsAssertion a tags of
+    context "Tag generation tests:" $
+      mkSpec testTagsCases displayTagsAssertion $ \a _ mdl ->
+        case runTagsAssertion a (Map.fromList $ Docs.tags mdl) of
           TagsPass ->
             pure ()
           TagsFail reason ->
             expectationFailure (T.unpack (displayTagsAssertionFailure reason))
+  where
+  handleDocPrepFailure = first (expectationFailure . ("failed to produce docs: " <>) . Boxes.render . Publish.renderError)
 
-takeJust :: String -> Maybe a -> a
-takeJust msg = fromMaybe (error msg)
+  mkSpec cases displayAssertion' runner =
+    forM_ cases $ \(mnString, assertions) -> do
+      let mn = P.moduleNameFromString mnString
+      context ("in module " ++ T.unpack mnString) $
+        forM_ assertions $ \a ->
+          it (T.unpack (displayAssertion' a)) . either id $ \pkg@Docs.Package{..} ->
+            case find ((==) mn . Docs.modName) pkgModules of
+              Nothing ->
+                expectationFailure ("module not found in docs: " ++ T.unpack mnString)
+              Just mdl ->
+                runner a pkg mdl
 
 data DocsAssertion
   -- | Assert that a particular declaration is documented with the given
@@ -129,6 +85,16 @@
   -- | Assert that a documented declaration includes a documentation comment
   -- containing a particular string
   | ShouldHaveDocComment P.ModuleName Text Text
+  -- | Assert that a documented data declaration includes a documentation comment
+  -- | containing a particular string
+  | ShouldHaveDataConstructorDocComment P.ModuleName Text Text Text
+  -- | Assert that a documented data declaration has no documentation comment
+  | ShouldHaveNoDataConstructorDocComment P.ModuleName Text Text
+  -- | Assert that a documented class method includes a documentation comment
+  -- | containing a particular string
+  | ShouldHaveClassMethodDocComment P.ModuleName Text Text Text
+  -- | Assert that a class method has no documentation comment
+  | ShouldNotHaveClassMethodDocComment P.ModuleName Text Text
   -- | Assert that there should be some declarations re-exported from a
   -- particular module in a particular package.
   | ShouldHaveReExport (Docs.InPackage P.ModuleName)
@@ -139,6 +105,19 @@
   | ShouldHaveLink P.ModuleName Text Text Docs.Namespace Docs.LinkLocation
   -- | Assert that a given declaration comes before another in the output
   | ShouldComeBefore P.ModuleName Text Text
+  -- | Assert that a given declaration has the given kind signature
+  | ShouldHaveKindSignature P.ModuleName Text Text
+  -- | Assert that a given declaration does not have a kind signature
+  | ShouldNotHaveKindSignature P.ModuleName Text
+  -- | Assert that a given declaration with doc-comments on its
+  -- kind signature, type declaration, and role declaration are properly
+  -- merged into one doc-comment.
+  | ShouldMergeDocComments P.ModuleName Text (Maybe Text)
+  -- | Assert that a given declaration's type parameters have the
+  -- given role annotations
+  | ShouldHaveRoleAnnotation P.ModuleName Text [P.Role]
+  -- | Assert that a given module has the expected doc comments
+  | ShouldHaveModuleDocs P.ModuleName (Maybe Text)
 
 data TagsAssertion
   -- | Assert that a particular declaration is tagged
@@ -173,6 +152,18 @@
   ShouldHaveDocComment mn decl excerpt ->
     "the string " <> T.pack (show excerpt) <> " should appear in the" <>
     " doc-comments for " <> showQual mn decl
+  ShouldHaveDataConstructorDocComment mn decl constr excerpt ->
+    "the string " <> T.pack (show excerpt) <> " should appear in the" <>
+    " doc-comments for data constructor " <> T.pack (show constr) <> " for " <> showQual mn decl
+  ShouldHaveNoDataConstructorDocComment mn decl constr ->
+    "Doc-comments for data constructor " <> T.pack (show constr) <> " for " <> showQual mn decl <>
+    " should be empty"
+  ShouldHaveClassMethodDocComment mn decl method excerpt ->
+    "the string " <> T.pack (show excerpt) <> " should appear in the" <>
+    " doc-comment for class method " <> T.pack (show method) <> " for " <> showQual mn decl
+  ShouldNotHaveClassMethodDocComment mn decl method ->
+    "Doc-comments for class method " <> T.pack (show method) <> " for " <> showQual mn decl <>
+    " should be empty"
   ShouldHaveReExport inPkg ->
     "there should be some re-exports from " <>
     showInPkg P.runModuleName inPkg
@@ -182,6 +173,20 @@
   ShouldComeBefore mn declA declB ->
     showQual mn declA <> " should come before " <> showQual mn declB <>
     " in the docs"
+  ShouldHaveKindSignature mn decl expected ->
+    showQual mn decl <> " should have the kind signature `" <> expected <> "`"
+  ShouldNotHaveKindSignature mn decl ->
+    showQual mn decl <> " should not have a kind signature."
+  ShouldMergeDocComments mn decl _ ->
+    showQual mn decl <> " should merge the doc-comments of its kind " <>
+    "declaration (if any), type declaration, and role declaration (if any) " <>
+    "into one doc-comment."
+  ShouldHaveRoleAnnotation mn decl expected ->
+    showQual mn decl <> " should have the expected role annotations: " <>
+    T.intercalate ", " (fmap P.displayRole expected)
+  ShouldHaveModuleDocs mn expected ->
+    "Module doc comments for module `" <> P.runModuleName mn <> "` should be " <>
+      maybe "empty" (\t -> "'" <> t <> "`") expected
 
 displayTagsAssertion :: TagsAssertion -> Text
 displayTagsAssertion = \case
@@ -217,6 +222,9 @@
   -- | A doc comment was not found or did not match what was expected
   -- Fields: module name, declaration, actual comments
   | DocCommentMissing P.ModuleName Text (Maybe Text)
+  -- | A doc comment was found where none was expected
+  -- Fields: module name, declaration, actual comments
+  | DocCommentPresent P.ModuleName Text (Maybe Text)
   -- | A module was missing re-exports from a particular module.
   -- Fields: module name, expected re-export, actual re-exports.
   | ReExportMissing P.ModuleName (Docs.InPackage P.ModuleName) [Docs.InPackage P.ModuleName]
@@ -233,6 +241,32 @@
   | BadLinkLocation P.ModuleName Text Text Docs.LinkLocation Docs.LinkLocation
   -- | Declarations were in the wrong order
   | WrongOrder P.ModuleName Text Text
+  -- | Expected a kind signature for a declaration, but did not find one
+  -- Fields: module name, declaration title.
+  | KindSignatureMissing P.ModuleName Text
+  -- | The rendered kind signature did not match the expected one.
+  -- Fields: module name, declaration title, expected kind signature (text),
+  -- actual kind signature (text), actual kind signature (structure)
+  | KindSignatureMismatch P.ModuleName Text Text Text (P.Type ())
+  -- | A kind signature was found where none was expected.
+  -- Fields: module name, declaration title, actual kind signature (text),
+  -- actual kind signature (structure)
+  | KindSignaturePresent P.ModuleName Text Text (P.Type ())
+  -- | The doc comments for the kind signature (if any), type declaration, and
+  -- role declaration (if any) were not properly merged into the expected one.
+  -- Fields: module name, declaration title, expected doc-comments,
+  -- actual doc-comments
+  | DocCommentMergeFailure P.ModuleName Text Text Text
+  -- | The given declaration cannot have role annotations.
+  -- Fields: module name, declaration title
+  | CannotHaveRoles P.ModuleName Text
+  -- | The list of expected roles did not match the list of actual roles
+  -- fields: module name, declaration title, expected role list,
+  -- actual role list
+  | RoleMismatch P.ModuleName Text [P.Role] [P.Role]
+  -- | The module's doc comments should be the expected
+  -- fields: module name, expected docs, actual docs
+  | WrongModuleDocs P.ModuleName (Maybe Text) (Maybe Text)
 
 data TagsAssertionFailure
   -- | A declaration was not tagged, but should have been
@@ -267,6 +301,8 @@
   DocCommentMissing _ decl actual ->
     "the doc-comment for " <> decl <> " did not contain the expected substring;" <>
     " got " <> T.pack (show actual)
+  DocCommentPresent _ decl actual ->
+    "the doc-comment for " <> decl <> " was not empty. Got " <> T.pack (show actual)
   ReExportMissing _ expected actuals ->
     "expected to see some re-exports from " <>
     showInPkg P.runModuleName expected <>
@@ -279,8 +315,34 @@
     "in rendered code for " <> decl <> ", bad link location for " <> target <>
     ": expected " <> T.pack (show expected) <>
     " got " <> T.pack (show actual)
-  WrongOrder _ before after' ->
-    "expected to see " <> before <> " before " <> after'
+  WrongOrder _ before' after' ->
+    "expected to see " <> before' <> " before " <> after'
+  KindSignatureMissing _ decl ->
+    "the kind signature for " <> decl <> " is missing."
+  KindSignatureMismatch _ decl expected actualTxt actualKind ->
+    "expected the kind signature for " <> decl <> "\n" <>
+    "to be `" <> expected <> "`\n" <>
+    "  got `" <> actualTxt <> "`\n" <>
+    "Structure of kind: " <> T.pack (show actualKind)
+  KindSignaturePresent _ decl actualTxt actualKind ->
+    "the kind signature for " <> decl <> " was not empty.\n" <>
+    "got `" <> actualTxt <> "`\n" <>
+    "Structure of kind: " <> T.pack (show actualKind)
+  DocCommentMergeFailure _ decl expected actual ->
+    "Expected the doc-comment for " <> decl <> " to merge comments and be `" <>
+    expected <> "`; got `" <> actual <> "`"
+  CannotHaveRoles _ decl ->
+    decl <> " is a type of declaration that cannot have roles."
+  RoleMismatch _ decl expected actual ->
+    "Expected the role annotations for " <> decl <> " to be \n" <>
+    "`" <> displayRoleList expected <> "`, but got\n" <>
+    "`" <> displayRoleList actual <> "`"
+    where
+      displayRoleList = T.intercalate ", " . fmap P.displayRole
+  WrongModuleDocs mn expected actual ->
+    "Expected module docs for " <> P.runModuleName mn <> "\n" <>
+    "to be `" <> fromMaybe "<Nothing>" expected <> "`\n" <>
+    "  got `" <> fromMaybe "<Nothing>" actual <> "`"
 
 displayTagsAssertionFailure :: TagsAssertionFailure -> Text
 displayTagsAssertionFailure = \case
@@ -402,6 +464,18 @@
           then Pass
           else Fail (DocCommentMissing mn decl declComments)
 
+    ShouldHaveDataConstructorDocComment mn decl constr expected ->
+      findDeclChildrenComment mn decl constr expected
+
+    ShouldHaveNoDataConstructorDocComment mn decl constr ->
+      findDeclChildrenNoComment mn decl constr
+
+    ShouldHaveClassMethodDocComment mn decl constr expected ->
+      findDeclChildrenComment mn decl constr expected
+
+    ShouldNotHaveClassMethodDocComment mn decl method ->
+      findDeclChildrenNoComment mn decl method
+
     ShouldHaveReExport reExp ->
       let
         reExps = map fst modReExports
@@ -423,23 +497,62 @@
             Nothing ->
               Fail (LinkedDeclarationMissing mn decl destTitle)
 
-    ShouldComeBefore mn before after' ->
+    ShouldComeBefore mn before' after' ->
       let
         decls = declarationsFor mn
 
         indexOf :: Text -> Maybe Int
         indexOf title = findIndex ((==) title . Docs.declTitle) decls
       in
-        case (indexOf before, indexOf after') of
+        case (indexOf before', indexOf after') of
           (Just i, Just j) ->
             if i < j
               then Pass
-              else Fail (WrongOrder mn before after')
+              else Fail (WrongOrder mn before' after')
           (Nothing, _) ->
-            Fail (NotDocumented mn before)
+            Fail (NotDocumented mn before')
           (_, Nothing) ->
             Fail (NotDocumented mn after')
 
+    ShouldHaveKindSignature mn decl expected ->
+      findDeclKinds mn decl $ \case
+        Just Docs.KindInfo{..} ->
+          if expected /= actual
+              then Fail (KindSignatureMismatch mn decl expected actual kiKind)
+              else Pass
+          where
+            actual = codeToString $ Docs.renderKindSig decl $
+              Docs.KindInfo kiKeyword kiKind
+        Nothing -> Fail (KindSignatureMissing mn decl)
+
+    ShouldNotHaveKindSignature mn decl ->
+      findDeclKinds mn decl $ \case
+        Just Docs.KindInfo{..} ->
+          Fail (KindSignaturePresent mn decl actual kiKind)
+          where
+            actual = codeToString $ Docs.renderKindSig decl $
+              Docs.KindInfo kiKeyword kiKind
+        Nothing -> Pass
+
+    ShouldMergeDocComments mn decl expected ->
+      findDecl mn decl $ \Docs.Declaration{..} ->
+        if expected == declComments
+            then Pass
+            else Fail (DocCommentMergeFailure mn decl (display expected) (display declComments))
+        where
+          display = fromMaybe ""
+
+    ShouldHaveRoleAnnotation mn decl expected ->
+      findDeclRoles mn decl $ \actual ->
+        if expected == actual
+          then Pass
+          else Fail (RoleMismatch mn decl expected actual)
+
+    ShouldHaveModuleDocs mn expected ->
+      if expected == modComments then
+        Pass
+      else
+        Fail (WrongModuleDocs mn expected modComments)
   where
   declarationsFor mn =
     if mn == modName
@@ -456,8 +569,51 @@
         Just decl ->
           f decl
 
+  findDeclKinds mn title f =
+      case find ((==) title . Docs.declTitle) (declarationsFor mn) of
+        Nothing ->
+          Fail (NotDocumented mn title)
+        Just Docs.Declaration{..} ->
+          f declKind
+
+  findDeclRoles mn title f =
+      case find ((==) title . Docs.declTitle) (declarationsFor mn) of
+        Nothing ->
+          Fail (NotDocumented mn title)
+        Just Docs.Declaration{..} ->
+          case getRoles declInfo of
+            Nothing ->
+              Fail (CannotHaveRoles mn title)
+            Just roles ->
+              f roles
+
+  findDeclChildren mn title child f =
+    findDecl mn title $ \Docs.Declaration{..} ->
+      case find ((==) child . Docs.cdeclTitle) declChildren of
+        Nothing ->
+          Fail (NotDocumented mn child)
+        Just decl ->
+          f decl
+
+  findDeclChildrenComment mn decl constr expected =
+    findDeclChildren mn decl constr $ \Docs.ChildDeclaration{..} ->
+      if maybe False (expected `T.isInfixOf`) cdeclComments
+        then Pass
+        else Fail (DocCommentMissing mn constr cdeclComments)
+
+  findDeclChildrenNoComment mn decl constr =
+    findDeclChildren mn decl constr $ \Docs.ChildDeclaration{..} ->
+      if isNothing cdeclComments
+      then Pass
+      else Fail (DocCommentPresent mn constr cdeclComments)
+
   childrenTitles = map Docs.cdeclTitle . Docs.declChildren
 
+  getRoles :: Docs.DeclarationInfo -> Maybe [P.Role]
+  getRoles = \case
+    Docs.DataDeclaration _ _ roles -> Just roles
+    _ -> Nothing
+
   extract :: Docs.RenderedCode -> Docs.Namespace -> Text -> Maybe Docs.DocLink
   extract rc ns title = getFirst (Docs.outputWith (First . go) rc) >>= getLink
     where
@@ -491,7 +647,7 @@
     P.ConstrainedType _ c ty'
       | matches tyClass c -> True
       | otherwise -> checkConstrained ty' tyClass
-    P.ForAll _ _ _ ty' _ ->
+    P.ForAll _ _ _ _ ty' _ ->
       checkConstrained ty' tyClass
     _ ->
       False
@@ -549,7 +705,7 @@
 
   , ("Clash",
       [ ShouldBeDocumented (n "Clash1") "value" []
-      , ShouldBeDocumented (n "Clash1") "Type" []
+      , ShouldBeDocumented (n "Clash1") "Type'" []
       , ShouldBeDocumented (n "Clash1") "TypeClass" ["typeClassMember"]
       ])
 
@@ -608,6 +764,19 @@
       [ ShouldHaveDocComment (n "DocComments") "example" "    example == 0"
       ])
 
+  , ("DocCommentsDataConstructor",
+      [ ShouldHaveDataConstructorDocComment (n "DocCommentsDataConstructor") "Foo" "Bar" "data constructor comment"
+      , ShouldHaveNoDataConstructorDocComment (n "DocCommentsDataConstructor") "Foo" "Baz"
+      , ShouldHaveNoDataConstructorDocComment (n "DocCommentsDataConstructor") "ComplexFoo" "ComplexBar"
+      , ShouldHaveDataConstructorDocComment (n "DocCommentsDataConstructor") "ComplexFoo" "ComplexBaz" "another data constructor comment"
+      , ShouldHaveDataConstructorDocComment (n "DocCommentsDataConstructor") "NewtypeFoo" "NewtypeFoo" "newtype data constructor comment"
+      ])
+
+  , ("DocCommentsClassMethod",
+      [ ShouldHaveClassMethodDocComment (n "DocCommentsClassMethod") "Foo" "bar" "class method comment"
+      , ShouldNotHaveClassMethodDocComment (n "DocCommentsClassMethod") "Foo" "baz"
+      ])
+
   , ("TypeLevelString",
       [ ShouldBeDocumented (n "TypeLevelString") "Foo" ["fooBar"]
       ])
@@ -636,6 +805,135 @@
 
   , ("TypeSynonymInstance",
       [ ShouldBeDocumented (n "TypeSynonymInstance") "MyNT" ["MyNT", "ntMyNT"]
+      ]
+    )
+  , ("KindSignatureDocs",
+      -- expected kind signatures
+      [ ShouldHaveKindSignature (n "KindSignatureDocs") "DKindAndType" "data DKindAndType :: forall k. k -> Type"
+      , ShouldHaveKindSignature (n "KindSignatureDocs") "TKindAndType" "type TKindAndType :: forall k. k -> Type"
+      , ShouldHaveKindSignature (n "KindSignatureDocs") "NKindAndType" "newtype NKindAndType :: forall k. k -> Type"
+      , ShouldHaveKindSignature (n "KindSignatureDocs") "CKindAndType" "class CKindAndType :: forall k. (k -> Type) -> k -> Constraint"
+
+      , ShouldHaveKindSignature (n "KindSignatureDocs") "DKindOnly" "data DKindOnly :: forall k. k -> Type"
+      , ShouldHaveKindSignature (n "KindSignatureDocs") "TKindOnly" "type TKindOnly :: forall k. k -> Type"
+      , ShouldHaveKindSignature (n "KindSignatureDocs") "NKindOnly" "newtype NKindOnly :: forall k. k -> Type"
+      , ShouldHaveKindSignature (n "KindSignatureDocs") "CKindOnly" "class CKindOnly :: forall k. (k -> Type) -> k -> Constraint"
+
+      , ShouldHaveKindSignature (n "KindSignatureDocs") "DTypeOnly" "data DTypeOnly :: forall k. k -> Type"
+      , ShouldHaveKindSignature (n "KindSignatureDocs") "TTypeOnly" "type TTypeOnly :: forall k. k -> Type"
+      , ShouldHaveKindSignature (n "KindSignatureDocs") "NTypeOnly" "newtype NTypeOnly :: forall k. k -> Type"
+      , ShouldHaveKindSignature (n "KindSignatureDocs") "CTypeOnly" "class CTypeOnly :: forall k. (k -> Type) -> k -> Constraint"
+
+      -- Declarations with no explicit kind signatures should still have
+      -- their inferred kind signatures displayed as long as at least one
+      -- type parameter does not have kind `Type`.
+      , ShouldHaveKindSignature (n "KindSignatureDocs") "DImplicit" "data DImplicit :: forall k. k -> Type"
+      , ShouldHaveKindSignature (n "KindSignatureDocs") "TImplicit" "type TImplicit :: forall k. k -> Type"
+      , ShouldHaveKindSignature (n "KindSignatureDocs") "NImplicit" "newtype NImplicit :: forall k. k -> Type"
+      , ShouldHaveKindSignature (n "KindSignatureDocs") "CImplicit" "class CImplicit :: forall k1. (k1 -> Type) -> k1 -> Constraint"
+
+      -- Declarations with no explicit kind signatures should not be displayed
+      -- if each type parameter in their inferred kind signature
+      -- has kind `Type`.
+      , ShouldNotHaveKindSignature (n "KindSignatureDocs") "DHidden"
+      , ShouldNotHaveKindSignature (n "KindSignatureDocs") "DNothing"
+      , ShouldNotHaveKindSignature (n "KindSignatureDocs") "THidden"
+      , ShouldNotHaveKindSignature (n "KindSignatureDocs") "NHidden"
+      , ShouldNotHaveKindSignature (n "KindSignatureDocs") "CHidden"
+      , ShouldNotHaveKindSignature (n "KindSignatureDocs") "CNothing"
+
+      -- FFI declarations always have an explicit kind signature
+      -- but only show them if they are "interesting."
+      , ShouldNotHaveKindSignature (n "KindSignatureDocs") "FFI_Hidden"
+      , ShouldHaveKindSignature (n "KindSignatureDocs") "FFI_Shown" "data FFI_Shown :: (Type -> Type) -> Type"
+
+      -- Declarations with an explicit kind signature that is wrapped
+      -- in parenthesis at various points, but which "desugars" so to speak
+      -- to an uninteresting kind signature should not be displayed.
+      , ShouldNotHaveKindSignature (n "KindSignatureDocs") "FFI_RedundantParenthesis"
+      , ShouldNotHaveKindSignature (n "KindSignatureDocs") "DataRedundantParenthesis"
+      , ShouldNotHaveKindSignature (n "KindSignatureDocs") "ClassRedundantParenthesis"
+      , ShouldNotHaveKindSignature (n "KindSignatureDocs") "DataHeadParens"
+      , ShouldNotHaveKindSignature (n "KindSignatureDocs") "DataTailParens"
+      , ShouldNotHaveKindSignature (n "KindSignatureDocs") "DataWholeParens"
+      , ShouldNotHaveKindSignature (n "KindSignatureDocs") "DataSelfParens"
+      , ShouldNotHaveKindSignature (n "KindSignatureDocs") "ClassSelfParens"
+      , ShouldNotHaveKindSignature (n "KindSignatureDocs") "DataKindAnnotation"
+      , ShouldNotHaveKindSignature (n "KindSignatureDocs") "DataKindAnnotationWithParens"
+      , ShouldNotHaveKindSignature (n "KindSignatureDocs") "FunctionParens1"
+      , ShouldNotHaveKindSignature (n "KindSignatureDocs") "FunctionParens2"
+      , ShouldNotHaveKindSignature (n "KindSignatureDocs") "FunctionParens3"
+
+      -- Declarations with no explicit kind signatures should be displayed
+      -- if at least one type parameter has a kind other than `Type`
+      -- despite all others having kind `Type`.
+      , ShouldHaveKindSignature (n "KindSignatureDocs") "DShown" "data DShown :: Type -> Type -> (Type -> Type) -> Type"
+      , ShouldHaveKindSignature (n "KindSignatureDocs") "TShown" "type TShown :: (Type -> Type) -> Type -> Type -> Type"
+      , ShouldHaveKindSignature (n "KindSignatureDocs") "NShown" "newtype NShown :: Type -> (Type -> Type) -> Type -> Type"
+      , ShouldHaveKindSignature (n "KindSignatureDocs") "CShown" "class CShown :: (Type -> Type) -> Type -> Type -> Constraint"
+      ]
+    )
+  , ("RoleAnnotationDocs",
+      [ ShouldHaveRoleAnnotation (n "RoleAnnotationDocs") "D_RNP" [P.Representational, P.Nominal, P.Phantom]
+      , ShouldHaveRoleAnnotation (n "RoleAnnotationDocs") "D_NPR" [P.Nominal, P.Phantom, P.Representational]
+      , ShouldHaveRoleAnnotation (n "RoleAnnotationDocs") "D_PRN" [P.Phantom, P.Representational, P.Nominal]
+      , ShouldHaveRoleAnnotation (n "RoleAnnotationDocs") "FFI_NNN" [P.Nominal, P.Nominal, P.Nominal]
+      , ShouldHaveRoleAnnotation (n "RoleAnnotationDocs") "FFI_RNP" [P.Representational, P.Nominal, P.Phantom]
+
+      , ShouldHaveRoleAnnotation (n "RoleAnnotationDocs") "FFI_Higher1" [P.Representational, P.Nominal, P.Phantom]
+      , ShouldHaveRoleAnnotation (n "RoleAnnotationDocs") "FFI_Higher2" [P.Representational, P.Nominal, P.Phantom]
+      , ShouldHaveRoleAnnotation (n "RoleAnnotationDocs") "FFI_Higher3" [P.Representational, P.Nominal, P.Phantom]
+      , ShouldHaveRoleAnnotation (n "RoleAnnotationDocs") "FFI_Higher4" [P.Representational, P.Nominal, P.Phantom]
+
+      , ShouldHaveRoleAnnotation (n "RoleAnnotationDocs") "FFI_HeadParens" [P.Representational, P.Nominal, P.Phantom]
+      , ShouldHaveRoleAnnotation (n "RoleAnnotationDocs") "FFI_TailParens" [P.Representational, P.Nominal, P.Phantom]
+      , ShouldHaveRoleAnnotation (n "RoleAnnotationDocs") "FFI_WholeParens" [P.Representational, P.Nominal, P.Phantom]
+      ]
+    )
+  , ("DocCommentsMerge",
+      [ ShouldMergeDocComments (n "DocCommentsMerge") "DataOnly" $ Just "decl\n"
+      , ShouldMergeDocComments (n "DocCommentsMerge") "KindOnlyData" $ Just "kind\n"
+      , ShouldMergeDocComments (n "DocCommentsMerge") "KindAndData" $ Just "kind\n\ndecl\n"
+      , ShouldMergeDocComments (n "DocCommentsMerge") "DataRoleOnly" $ Just "role\n"
+      , ShouldMergeDocComments (n "DocCommentsMerge") "DataAndRole" $ Just "decl\n\nrole\n"
+      , ShouldMergeDocComments (n "DocCommentsMerge") "KindOnlyDataRoleOnly" $ Just "kind\n\nrole\n"
+      , ShouldMergeDocComments (n "DocCommentsMerge") "KindDataAndRole" $ Just "kind\n\ndecl\n\nrole\n"
+
+      , ShouldMergeDocComments (n "DocCommentsMerge") "FFIOnly" $ Just "decl\n"
+      , ShouldMergeDocComments (n "DocCommentsMerge") "FFIRoleOnly" $ Just "role\n"
+      , ShouldMergeDocComments (n "DocCommentsMerge") "FFIAndRole" $ Just "decl\n\nrole\n"
+
+      , ShouldMergeDocComments (n "DocCommentsMerge") "NewtypeOnly" $ Just "decl\n"
+      , ShouldMergeDocComments (n "DocCommentsMerge") "KindOnlyNewtype" $ Just "kind\n"
+      , ShouldMergeDocComments (n "DocCommentsMerge") "KindAndNewtype" $ Just "kind\n\ndecl\n"
+      , ShouldMergeDocComments (n "DocCommentsMerge") "NewtypeRoleOnly" $ Just "role\n"
+      , ShouldMergeDocComments (n "DocCommentsMerge") "NewtypeAndRole" $ Just "decl\n\nrole\n"
+      , ShouldMergeDocComments (n "DocCommentsMerge") "KindOnlyNewtypeRoleOnly" $ Just "kind\n\nrole\n"
+      , ShouldMergeDocComments (n "DocCommentsMerge") "KindNewtypeAndRole" $ Just "kind\n\ndecl\n\nrole\n"
+
+      , ShouldMergeDocComments (n "DocCommentsMerge") "TypeOnly" $ Just "decl\n"
+      , ShouldMergeDocComments (n "DocCommentsMerge") "KindOnlyType" $ Just "kind\n"
+      , ShouldMergeDocComments (n "DocCommentsMerge") "KindAndType" $ Just "kind\n\ndecl\n"
+
+      , ShouldMergeDocComments (n "DocCommentsMerge") "ClassOnly" $ Just "decl\n"
+      , ShouldMergeDocComments (n "DocCommentsMerge") "KindOnlyClass" $ Just "kind\n"
+      , ShouldMergeDocComments (n "DocCommentsMerge") "KindAndClass" $ Just "kind\n\ndecl\n"
+      ]
+    )
+  , ("Shebang1Undocumented",
+      [ ShouldHaveModuleDocs (n "Shebang1Undocumented") Nothing
+      ]
+    )
+  , ("Shebang2Undocumented",
+      [ ShouldHaveModuleDocs (n "Shebang2Undocumented") Nothing
+      ]
+    )
+  , ("Shebang3Undocumented",
+      [ ShouldHaveModuleDocs (n "Shebang3Undocumented") $ Just "Normal doc comment\n"
+      ]
+    )
+  , ("Shebang4Undocumented",
+      [ ShouldHaveModuleDocs (n "Shebang4Undocumented") $ Just "Normal doc comment\n"
       ]
     )
   ]
diff --git a/tests/TestGraph.hs b/tests/TestGraph.hs
new file mode 100644
--- /dev/null
+++ b/tests/TestGraph.hs
@@ -0,0 +1,28 @@
+module TestGraph where
+
+import Prelude
+
+import Test.Hspec (Spec, it, shouldBe, shouldSatisfy)
+import Data.Either (isLeft)
+
+import Data.Aeson qualified as Json
+import Language.PureScript qualified as P
+
+spec :: Spec
+spec = do
+  let baseDir = "tests/purs/graph/"
+  let sourcesDir = baseDir <> "src/"
+  it "should match the graph fixture" $ do
+    let modulePaths = (sourcesDir <>) <$> ["Module.purs", "Module2.purs", "Module3.purs"]
+    let graphFixtureName = "graph.json"
+
+    graphFixture <- Json.decodeFileStrict' (baseDir <> graphFixtureName)
+    eitherGraph <- fst <$> P.graph modulePaths
+    case eitherGraph of
+      Left err -> error $ "Graph creation failed. Errors: " <> show err
+      Right res -> graphFixture `shouldBe` Just res
+
+  it "should fail when trying to include non-existing modules in the graph" $ do
+    let modulePath = sourcesDir <> "ModuleFailing.purs"
+    graph <- fst <$> P.graph [modulePath]
+    graph `shouldSatisfy` isLeft
diff --git a/tests/TestHierarchy.hs b/tests/TestHierarchy.hs
--- a/tests/TestHierarchy.hs
+++ b/tests/TestHierarchy.hs
@@ -1,16 +1,14 @@
-{-# LANGUAGE OverloadedStrings #-}
 module TestHierarchy where
 
 import Prelude
 
-import Language.PureScript.Hierarchy
-import qualified Language.PureScript as P
+import Language.PureScript.Hierarchy (Digraph(..), Graph(..), GraphName(..), SuperMap(..), prettyPrint, typeClassGraph)
+import Language.PureScript qualified as P
 
-import Test.Tasty
-import Test.Tasty.Hspec (describe, it, shouldBe, testSpec)
+import Test.Hspec (Spec, describe, it, shouldBe)
 
-main :: IO TestTree
-main = testSpec "hierarchy" $ do
+spec :: Spec
+spec = describe "hierarchy" $ do
   describe "Language.PureScript.Hierarchy" $ do
     describe "prettyPrint" $ do
       it "creates just the node when there is no relation" $ do
@@ -21,7 +19,7 @@
         prettyPrinted `shouldBe` "  A;"
 
       it "creates a relation when there is one" $ do
-        let superMap = SuperMap (Right $ (P.ProperName "A", P.ProperName "B"))
+        let superMap = SuperMap (Right (P.ProperName "A", P.ProperName "B"))
 
         let prettyPrinted = prettyPrint superMap
 
@@ -32,7 +30,7 @@
         let mainModule = P.Module
               (P.internalModuleSourceSpan "<hierarchy>")
               []
-              (P.ModuleName [P.ProperName "Main"])
+              (P.ModuleName "Main")
               []
               Nothing
 
@@ -53,14 +51,14 @@
                  (P.internalModuleSourceSpan "<B>", [])
                  (P.ProperName "B")
                  []
-                 [P.srcConstraint (P.Qualified Nothing $ P.ProperName "A") [] Nothing]
+                 [P.srcConstraint (P.Qualified P.ByNullSourcePos $ P.ProperName "A") [] [] Nothing]
                  []
                  []
               ]
         let mainModule = P.Module
               (P.internalModuleSourceSpan "<hierarchy>")
               []
-              (P.ModuleName [P.ProperName "Main"])
+              (P.ModuleName "Main")
               declarations
               Nothing
 
diff --git a/tests/TestIde.hs b/tests/TestIde.hs
--- a/tests/TestIde.hs
+++ b/tests/TestIde.hs
@@ -1,16 +1,15 @@
 module TestIde where
 
-import           Prelude
+import Prelude
 
-import           Control.Monad (unless)
-import           Language.PureScript.Ide.Test
-import qualified PscIdeSpec
-import           Test.Tasty
-import           Test.Tasty.Hspec
+import Control.Monad (unless)
+import Language.PureScript.Ide.Test
+import PscIdeSpec qualified
+import Test.Hspec
 
-main :: IO TestTree
-main =
-  testSpec "ide" (beforeAll_ setup PscIdeSpec.spec)
+spec :: Spec
+spec =
+  beforeAll_ setup PscIdeSpec.spec
   where
     setup = do
       deleteOutputFolder
diff --git a/tests/TestMake.hs b/tests/TestMake.hs
new file mode 100644
--- /dev/null
+++ b/tests/TestMake.hs
@@ -0,0 +1,276 @@
+-- Tests for the compiler's handling of incremental builds, i.e. the code in
+-- Language.PureScript.Make.
+
+module TestMake where
+
+import Prelude
+
+import Language.PureScript qualified as P
+import Language.PureScript.CST qualified as CST
+
+import Control.Concurrent (threadDelay)
+import Control.Monad (guard, void)
+import Control.Exception (tryJust)
+import Control.Monad.IO.Class (liftIO)
+import Control.Concurrent.MVar (readMVar, newMVar, modifyMVar_)
+import Data.Time.Calendar (fromGregorian)
+import Data.Time.Clock (UTCTime(..), secondsToDiffTime)
+import Data.Text qualified as T
+import Data.Set (Set)
+import Data.Set qualified as Set
+import Data.Map qualified as M
+
+import System.FilePath ((</>))
+import System.Directory (createDirectory, removeDirectoryRecursive, removeFile, setModificationTime)
+import System.IO.Error (isDoesNotExistError)
+import System.IO.UTF8 (readUTF8FilesT, writeUTF8FileT)
+
+import Test.Hspec (Spec, before_, it, shouldReturn)
+
+utcMidnightOnDate :: Integer -> Int -> Int -> UTCTime
+utcMidnightOnDate year month day = UTCTime (fromGregorian year month day) (secondsToDiffTime 0)
+
+timestampA, timestampB, timestampC, timestampD :: UTCTime
+timestampA = utcMidnightOnDate 2019 1 1
+timestampB = utcMidnightOnDate 2019 1 2
+timestampC = utcMidnightOnDate 2019 1 3
+timestampD = utcMidnightOnDate 2019 1 4
+
+spec :: Spec
+spec = do
+  let sourcesDir = "tests/purs/make"
+  let moduleNames = Set.fromList . map P.moduleNameFromString
+  before_ (rimraf modulesDir >> rimraf sourcesDir >> createDirectory sourcesDir) $ do
+    it "does not recompile if there are no changes" $ do
+      let modulePath = sourcesDir </> "Module.purs"
+
+      writeFileWithTimestamp modulePath timestampA "module Module where\nfoo = 0\n"
+      compile [modulePath] `shouldReturn` moduleNames ["Module"]
+      compile [modulePath] `shouldReturn` moduleNames []
+
+    it "recompiles if files have changed" $ do
+      let modulePath = sourcesDir </> "Module.purs"
+
+      writeFileWithTimestamp modulePath timestampA "module Module where\nfoo = 0\n"
+      compile [modulePath] `shouldReturn` moduleNames ["Module"]
+      writeFileWithTimestamp modulePath timestampB "module Module where\nfoo = 1\n"
+      compile [modulePath] `shouldReturn` moduleNames ["Module"]
+
+    it "does not recompile if hashes have not changed" $ do
+      let modulePath = sourcesDir </> "Module.purs"
+          moduleContent = "module Module where\nfoo = 0\n"
+
+      writeFileWithTimestamp modulePath timestampA moduleContent
+      compile [modulePath] `shouldReturn` moduleNames ["Module"]
+      writeFileWithTimestamp modulePath timestampB moduleContent
+      compile [modulePath] `shouldReturn` moduleNames []
+
+    it "recompiles if the file path for a module has changed" $ do
+      let modulePath1 = sourcesDir </> "Module1.purs"
+          modulePath2 = sourcesDir </> "Module2.purs"
+          moduleContent = "module Module where\nfoo = 0\n"
+
+      writeFileWithTimestamp modulePath1 timestampA moduleContent
+      writeFileWithTimestamp modulePath2 timestampA moduleContent
+
+      compile [modulePath1] `shouldReturn` moduleNames ["Module"]
+      compile [modulePath2] `shouldReturn` moduleNames ["Module"]
+
+    it "recompiles if an FFI file was added" $ do
+      let moduleBasePath = sourcesDir </> "Module"
+          modulePath = moduleBasePath ++ ".purs"
+          moduleFFIPath = moduleBasePath ++ ".js"
+          moduleContent = "module Module where\nfoo = 0\n"
+
+      writeFileWithTimestamp modulePath timestampA moduleContent
+      compile [modulePath] `shouldReturn` moduleNames ["Module"]
+
+      writeFileWithTimestamp moduleFFIPath timestampB "export var bar = 1;\n"
+      compile [modulePath] `shouldReturn` moduleNames ["Module"]
+
+    it "recompiles if an FFI file was removed" $ do
+      let moduleBasePath = sourcesDir </> "Module"
+          modulePath = moduleBasePath ++ ".purs"
+          moduleFFIPath = moduleBasePath ++ ".js"
+          moduleContent = "module Module where\nfoo = 0\n"
+
+      writeFileWithTimestamp modulePath timestampA moduleContent
+      writeFileWithTimestamp moduleFFIPath timestampB "export var bar = 1;\n"
+      compile [modulePath] `shouldReturn` moduleNames ["Module"]
+
+      removeFile moduleFFIPath
+      compile [modulePath] `shouldReturn` moduleNames ["Module"]
+
+    it "recompiles downstream modules when a module is rebuilt" $ do
+      let moduleAPath = sourcesDir </> "A.purs"
+          moduleBPath = sourcesDir </> "B.purs"
+          moduleAContent1 = "module A where\nfoo = 0\n"
+          moduleAContent2 = "module A where\nfoo = 1\n"
+          moduleBContent = "module B where\nimport A (foo)\nbar = foo\n"
+
+      writeFileWithTimestamp moduleAPath timestampA moduleAContent1
+      writeFileWithTimestamp moduleBPath timestampB moduleBContent
+      compile [moduleAPath, moduleBPath] `shouldReturn` moduleNames ["A", "B"]
+
+      writeFileWithTimestamp moduleAPath timestampC moduleAContent2
+      compile [moduleAPath, moduleBPath] `shouldReturn` moduleNames ["A", "B"]
+
+    it "only recompiles downstream modules when a module is rebuilt" $ do
+      let moduleAPath = sourcesDir </> "A.purs"
+          moduleBPath = sourcesDir </> "B.purs"
+          moduleCPath = sourcesDir </> "C.purs"
+          modulePaths = [moduleAPath, moduleBPath, moduleCPath]
+          moduleAContent1 = "module A where\nfoo = 0\n"
+          moduleAContent2 = "module A where\nfoo = 1\n"
+          moduleBContent = "module B where\nimport A (foo)\nbar = foo\n"
+          moduleCContent = "module C where\nbaz = 3\n"
+
+      writeFileWithTimestamp moduleAPath timestampA moduleAContent1
+      writeFileWithTimestamp moduleBPath timestampB moduleBContent
+      writeFileWithTimestamp moduleCPath timestampC moduleCContent
+      compile modulePaths `shouldReturn` moduleNames ["A", "B", "C"]
+
+      writeFileWithTimestamp moduleAPath timestampD moduleAContent2
+      compile modulePaths `shouldReturn` moduleNames ["A", "B"]
+
+    it "does not necessarily recompile modules which were not part of the previous batch" $ do
+      let moduleAPath = sourcesDir </> "A.purs"
+          moduleBPath = sourcesDir </> "B.purs"
+          moduleCPath = sourcesDir </> "C.purs"
+          modulePaths = [moduleAPath, moduleBPath, moduleCPath]
+          batch1 = [moduleAPath, moduleBPath]
+          batch2 = [moduleAPath, moduleCPath]
+          moduleAContent = "module A where\nfoo = 0\n"
+          moduleBContent = "module B where\nimport A (foo)\nbar = foo\n"
+          moduleCContent = "module C where\nbaz = 3\n"
+
+      writeFileWithTimestamp moduleAPath timestampA moduleAContent
+      writeFileWithTimestamp moduleBPath timestampB moduleBContent
+      writeFileWithTimestamp moduleCPath timestampC moduleCContent
+      compile modulePaths `shouldReturn` moduleNames ["A", "B", "C"]
+
+      compile batch1 `shouldReturn` moduleNames []
+      compile batch2 `shouldReturn` moduleNames []
+
+    it "recompiles if a module fails to compile" $ do
+      let modulePath = sourcesDir </> "Module.purs"
+          moduleContent = "module Module where\nfoo :: Int\nfoo = \"not an int\"\n"
+
+      writeFileWithTimestamp modulePath timestampA moduleContent
+      compileAllowingFailures [modulePath] `shouldReturn` moduleNames ["Module"]
+      compileAllowingFailures [modulePath] `shouldReturn` moduleNames ["Module"]
+
+    it "recompiles if docs are requested but not up to date" $ do
+      let modulePath = sourcesDir </> "Module.purs"
+          moduleContent1 = "module Module where\nx :: Int\nx = 1"
+          moduleContent2 = moduleContent1 <> "\ny :: Int\ny = 1"
+          optsWithDocs = P.defaultOptions { P.optionsCodegenTargets = Set.fromList [P.JS, P.Docs] }
+          go opts = compileWithOptions opts [modulePath] >>= assertSuccess
+          oneSecond = 10 ^ (6::Int) -- microseconds.
+
+      writeFileWithTimestamp modulePath timestampA moduleContent1
+      go optsWithDocs `shouldReturn` moduleNames ["Module"]
+      writeFileWithTimestamp modulePath timestampB moduleContent2
+      -- See Note [Sleeping to avoid flaky tests]
+      threadDelay oneSecond
+      go P.defaultOptions `shouldReturn` moduleNames ["Module"]
+      -- Since the existing docs.json is now outdated, the module should be
+      -- recompiled.
+      go optsWithDocs `shouldReturn` moduleNames ["Module"]
+
+    it "recompiles if corefn is requested but not up to date" $ do
+      let modulePath = sourcesDir </> "Module.purs"
+          moduleContent1 = "module Module where\nx :: Int\nx = 1"
+          moduleContent2 = moduleContent1 <> "\ny :: Int\ny = 1"
+          optsCorefnOnly = P.defaultOptions { P.optionsCodegenTargets = Set.singleton P.CoreFn }
+          go opts = compileWithOptions opts [modulePath] >>= assertSuccess
+          oneSecond = 10 ^ (6::Int) -- microseconds.
+
+      writeFileWithTimestamp modulePath timestampA moduleContent1
+      go optsCorefnOnly `shouldReturn` moduleNames ["Module"]
+      writeFileWithTimestamp modulePath timestampB moduleContent2
+      -- See Note [Sleeping to avoid flaky tests]
+      threadDelay oneSecond
+      go P.defaultOptions `shouldReturn` moduleNames ["Module"]
+      -- Since the existing corefn.json is now outdated, the module should be
+      -- recompiled.
+      go optsCorefnOnly `shouldReturn` moduleNames ["Module"]
+
+-- Note [Sleeping to avoid flaky tests]
+--
+-- One of the things we want to test here is that all requested output files
+-- (via the --codegen CLI option) must be up to date if we are to skip
+-- recompiling a particular module. Since we check for outdatedness by
+-- comparing the timestamp of the output files (eg. corefn.json, index.js) to
+-- the timestamp of the externs file, this check is susceptible to flakiness
+-- if the timestamp resolution is sufficiently coarse. To get around this, we
+-- delay for one second.
+--
+-- Note that most of the compiler behaviour here doesn't depend on file
+-- timestamps (instead, content hashes are usually more important) and so
+-- sleeping should not be necessary in most of these tests.
+--
+-- See also discussion on https://github.com/purescript/purescript/pull/4053
+
+rimraf :: FilePath -> IO ()
+rimraf =
+  void . tryJust (guard . isDoesNotExistError) . removeDirectoryRecursive
+
+-- | Compile a group of modules, returning a set of the modules for which a
+-- rebuild was attempted, allowing the caller to set the compiler options and
+-- including the make result in the return value.
+compileWithOptions ::
+  P.Options ->
+  [FilePath] ->
+  IO (Either P.MultipleErrors [P.ExternsFile], Set P.ModuleName)
+compileWithOptions opts input = do
+  recompiled <- newMVar Set.empty
+  moduleFiles <- readUTF8FilesT input
+  (makeResult, _) <- P.runMake opts $ do
+    ms <- CST.parseModulesFromFiles id moduleFiles
+    let filePathMap = M.fromList $ map (\(fp, pm) -> (P.getModuleName $ CST.resPartial pm, Right fp)) ms
+    foreigns <- P.inferForeignModules filePathMap
+    let makeActions =
+          (P.buildMakeActions modulesDir filePathMap foreigns True)
+            { P.progress = \(P.CompilingModule mn _) ->
+                liftIO $ modifyMVar_ recompiled (return . Set.insert mn)
+            }
+    P.make makeActions (map snd ms)
+
+  recompiledModules <- readMVar recompiled
+  pure (makeResult, recompiledModules)
+
+-- | Compile a group of modules using the default options, and including the
+-- make result in the return value.
+compileWithResult ::
+  [FilePath] ->
+  IO (Either P.MultipleErrors [P.ExternsFile], Set P.ModuleName)
+compileWithResult = compileWithOptions P.defaultOptions
+
+assertSuccess :: (Either P.MultipleErrors a, Set P.ModuleName) -> IO (Set P.ModuleName)
+assertSuccess (result, recompiled) =
+  case result of
+    Left errs ->
+      fail (P.prettyPrintMultipleErrors P.defaultPPEOptions errs)
+    Right _ ->
+      pure recompiled
+
+-- | Compile, returning the set of modules which were rebuilt, and failing if
+-- any errors occurred.
+compile :: [FilePath] -> IO (Set P.ModuleName)
+compile input =
+  compileWithResult input >>= assertSuccess
+
+compileAllowingFailures :: [FilePath] -> IO (Set P.ModuleName)
+compileAllowingFailures input = fmap snd (compileWithResult input)
+
+writeFileWithTimestamp :: FilePath -> UTCTime -> T.Text -> IO ()
+writeFileWithTimestamp path mtime contents = do
+  writeUTF8FileT path contents
+  setModificationTime path mtime
+
+-- | Use a different output directory to ensure that we don't get interference
+-- from other test results
+modulesDir :: FilePath
+modulesDir = ".test_modules" </> "make"
+
diff --git a/tests/TestPrimDocs.hs b/tests/TestPrimDocs.hs
--- a/tests/TestPrimDocs.hs
+++ b/tests/TestPrimDocs.hs
@@ -5,17 +5,12 @@
 import Data.List (sort)
 import Control.Exception (evaluate)
 import Control.DeepSeq (force)
-import qualified Data.Map as Map
-import qualified Data.Set as Set
-import qualified Language.PureScript as P
-import qualified Language.PureScript.Docs as D
-
-import Test.Tasty
-import Test.Tasty.Hspec (Spec, testSpec, it)
-import Test.Hspec (shouldBe)
+import Data.Map qualified as Map
+import Data.Text qualified as Text
+import Language.PureScript qualified as P
+import Language.PureScript.Docs qualified as D
 
-main :: IO TestTree
-main = testSpec "prim docs" spec
+import Test.Hspec (Spec, it, shouldBe)
 
 spec :: Spec
 spec = do
@@ -26,15 +21,16 @@
   it "all Prim modules are fully documented" $ do
     let actualPrimNames =
           -- note that prim type classes are listed in P.primTypes
-          (map (P.runProperName . P.disqualify . fst) $ Map.toList
+          filter (not . Text.any (== '$')) . map (P.runProperName . P.disqualify . fst) $ Map.toList
             ( P.primTypes <>
               P.primBooleanTypes <>
+              P.primCoerceTypes <>
               P.primOrderingTypes <>
               P.primRowTypes <>
               P.primRowListTypes <>
               P.primTypeErrorTypes <>
-              P.primSymbolTypes )) ++
-          (map (P.runProperName . P.disqualify) $ Set.toList P.allPrimKinds)
+              P.primSymbolTypes <>
+              P.primIntTypes )
     let documentedPrimNames =
           map D.declTitle (concatMap D.modDeclarations D.primModules)
 
diff --git a/tests/TestPscPublish.hs b/tests/TestPscPublish.hs
--- a/tests/TestPscPublish.hs
+++ b/tests/TestPscPublish.hs
@@ -1,7 +1,3 @@
-{-# LANGUAGE ScopedTypeVariables #-}
-{-# LANGUAGE OverloadedStrings #-}
-{-# LANGUAGE LambdaCase #-}
-
 module TestPscPublish where
 
 import Prelude
@@ -11,25 +7,21 @@
 import Control.Monad.IO.Class (liftIO)
 import Data.ByteString.Lazy (ByteString)
 import Data.Time.Clock (getCurrentTime)
-import qualified Data.Aeson as A
-import Data.Version
+import Data.Aeson qualified as A
+import Data.Version (Version(..))
 import Data.Foldable (forM_)
-import qualified Text.PrettyPrint.Boxes as Boxes
+import Text.PrettyPrint.Boxes qualified as Boxes
 import System.Directory (listDirectory, removeDirectoryRecursive)
 import System.FilePath ((</>))
 import System.IO.Error (isDoesNotExistError)
 
-import Language.PureScript.Docs
+import Language.PureScript.Docs (UploadedPackage, VerifiedPackage)
 import Language.PureScript.Publish (PublishOptions(..), defaultPublishOptions)
-import qualified Language.PureScript.Publish as Publish
-import qualified Language.PureScript.Publish.ErrorsWarnings as Publish
-
-import Test.Tasty
-import Test.Tasty.Hspec (Spec, Expectation, runIO, context, it, expectationFailure, testSpec)
-import TestUtils hiding (inferForeignModules, makeActions)
+import Language.PureScript.Publish qualified as Publish
+import Language.PureScript.Publish.ErrorsWarnings qualified as Publish
 
-main :: IO TestTree
-main = testSpec "publish" spec
+import Test.Hspec (Expectation, Spec, context, expectationFailure, it, runIO)
+import TestUtils (pushd)
 
 spec :: Spec
 spec = do
@@ -37,17 +29,20 @@
     it "purescript-prelude" $ do
       testPackage
         "tests/support/bower_components/purescript-prelude"
+        "bower.json"
         "../../prelude-resolutions.json"
 
-    it "basic example" $ do
+    it "basic example (bower.json)" $ do
       testPackage
         "tests/purs/publish/basic-example"
+        "bower.json"
         "resolutions.json"
 
-    it "basic example with legacy resolutions file" $ do
+    it "basic example (purs.json)" $ do
       testPackage
         "tests/purs/publish/basic-example"
-        "resolutions-legacy.json"
+        "purs.json"
+        "resolutions.json"
 
   context "json compatibility" $ do
     let compatDir = "tests" </> "json-compat"
@@ -72,18 +67,19 @@
 
 roundTrip :: UploadedPackage -> TestResult
 roundTrip pkg =
-  let before = A.encode pkg
-  in case A.eitherDecode before of
+  let before' = A.encode pkg
+  in case A.eitherDecode before' of
        Left err -> ParseFailed err
        Right parsed -> do
          let after' = A.encode (parsed :: UploadedPackage)
-         if before == after'
-           then Pass before
-           else Mismatch before after'
+         if before' == after'
+           then Pass before'
+           else Mismatch before' after'
 
-testRunOptions :: FilePath -> PublishOptions
-testRunOptions resolutionsFile = defaultPublishOptions
+testRunOptions :: FilePath -> FilePath -> PublishOptions
+testRunOptions manifestFile resolutionsFile = defaultPublishOptions
   { publishResolutionsFile = resolutionsFile
+  , publishManifestFile = manifestFile
   , publishGetVersion = return testVersion
   , publishGetTagTime = const (liftIO getCurrentTime)
   , publishWorkingTreeDirty = return ()
@@ -92,9 +88,9 @@
 
 -- | Given a directory which contains a package, produce JSON from it, and then
 -- | attempt to parse it again, and ensure that it doesn't change.
-testPackage :: FilePath -> FilePath -> Expectation
-testPackage packageDir resolutionsFile = do
-  res <- preparePackage packageDir resolutionsFile
+testPackage :: FilePath -> FilePath -> FilePath -> Expectation
+testPackage packageDir manifestFile resolutionsFile = do
+  res <- preparePackage packageDir manifestFile resolutionsFile
   case res of
     Left err ->
       expectationFailure $
@@ -113,11 +109,11 @@
 -- output directory each time to ensure that we are actually testing the docs
 -- code in the working tree as it is now (as opposed to how it was at some
 -- point in the past when the tests were previously successfully run).
-preparePackage :: FilePath -> FilePath -> IO (Either Publish.PackageError UploadedPackage)
-preparePackage packageDir resolutionsFile =
+preparePackage :: FilePath -> FilePath -> FilePath -> IO (Either Publish.PackageError UploadedPackage)
+preparePackage packageDir manifestFile resolutionsFile =
   pushd packageDir $ do
     removeDirectoryRecursiveIfPresent "output"
-    Publish.preparePackage (testRunOptions resolutionsFile)
+    Publish.preparePackage (testRunOptions manifestFile resolutionsFile)
 
 removeDirectoryRecursiveIfPresent :: FilePath -> IO ()
 removeDirectoryRecursiveIfPresent =
diff --git a/tests/TestPsci.hs b/tests/TestPsci.hs
--- a/tests/TestPsci.hs
+++ b/tests/TestPsci.hs
@@ -1,17 +1,14 @@
 module TestPsci where
 
-import Prelude ()
-import Prelude.Compat
 
 import TestPsci.CommandTest (commandTests)
 import TestPsci.CompletionTest (completionTests)
 import TestPsci.EvalTest (evalTests)
 
-import Test.Tasty
-import Test.Tasty.Hspec
+import Test.Hspec (Spec)
 
-main :: IO TestTree
-main = testSpec "repl" $ do
+spec :: Spec
+spec = do
   completionTests
   commandTests
   evalTests
diff --git a/tests/TestPsci/CommandTest.hs b/tests/TestPsci/CommandTest.hs
--- a/tests/TestPsci/CommandTest.hs
+++ b/tests/TestPsci/CommandTest.hs
@@ -1,18 +1,15 @@
-{-# LANGUAGE OverloadedStrings #-}
-
 module TestPsci.CommandTest where
 
-import Prelude ()
-import Prelude.Compat
+import Prelude
 
 import Control.Monad.IO.Class (liftIO)
 import Control.Monad.Trans.RWS.Strict (get)
 import Language.PureScript (moduleNameFromString)
-import Language.PureScript.Interactive
+import Language.PureScript.Interactive (psciImportedModules, psciInteractivePrint)
 import System.FilePath ((</>))
 import System.Directory (getCurrentDirectory)
-import Test.Hspec
-import TestPsci.TestEnv
+import Test.Hspec (Spec, context, shouldContain, shouldNotContain, specify)
+import TestPsci.TestEnv (TestPSCi, equalsTo, execTestPSCi, printed, prints, run, simulateModuleEdit)
 
 specPSCi :: String -> TestPSCi () -> Spec
 specPSCi label = specify label . execTestPSCi
@@ -69,7 +66,7 @@
   specPSCi ":print" $ do
     let failMsg = "Unable to set the repl's printing function"
     let interactivePrintModuleShouldBe modName = do
-          modName' <- (fst . psciInteractivePrint) <$> get
+          modName' <- fst . psciInteractivePrint <$> get
           modName' `equalsTo` modName
 
     run "import Prelude"
diff --git a/tests/TestPsci/CompletionTest.hs b/tests/TestPsci/CompletionTest.hs
--- a/tests/TestPsci/CompletionTest.hs
+++ b/tests/TestPsci/CompletionTest.hs
@@ -1,108 +1,106 @@
-{-# LANGUAGE OverloadedStrings #-}
 module TestPsci.CompletionTest where
 
-import Prelude ()
-import Prelude.Compat
+import Prelude
 
-import Test.Hspec
+import Test.Hspec (Spec, SpecWith, beforeAll, context, shouldBe, specify)
 
-import           Control.Monad (mapM_)
-import           Control.Monad.Trans.State.Strict (evalStateT)
-import           Data.List (sort)
-import qualified Data.Text as T
-import qualified Language.PureScript as P
-import           Language.PureScript.Interactive
-import           TestPsci.TestEnv (initTestPSCiEnv)
-import           TestUtils (getSupportModuleNames)
+import Control.Monad.Trans.State.Strict (evalStateT)
+import Data.Functor ((<&>))
+import Data.List (sort)
+import Data.Text qualified as T
+import Language.PureScript qualified as P
+import Language.PureScript.Interactive (CompletionM, PSCiState, completion', formatCompletions, liftCompletionM, updateImportedModules)
+import TestPsci.TestEnv (initTestPSCiEnv)
+import TestUtils (getSupportModuleNames)
 
 completionTests :: Spec
-completionTests = context "completionTests" $ do
-  mns       <- runIO getSupportModuleNames
-  psciState <- runIO getPSCiStateForCompletion
-  mapM_ (assertCompletedOk psciState) (completionTestData mns)
+completionTests = context "completionTests" $
+  beforeAll getPSCiStateForCompletion $
+    mapM_ assertCompletedOk completionTestData
 
 -- If the cursor is at the right end of the line, with the 1st element of the
 -- pair as the text in the line, then pressing tab should offer all the
 -- elements of the list (which is the 2nd element) as completions.
-completionTestData :: [T.Text] -> [(String, [String])]
-completionTestData supportModuleNames =
+completionTestData :: [(String, IO [String])]
+completionTestData =
   -- basic directives
-  [ (":h",  [":help"])
-  , (":r",  [":reload"])
-  , (":c",  [":clear", ":complete"])
-  , (":q",  [":quit"])
-  , (":b",  [":browse"])
+  [ (":h",  pure [":help"])
+  , (":r",  pure [":reload"])
+  , (":c",  pure [":clear", ":complete"])
+  , (":q",  pure [":quit"])
+  , (":b",  pure [":browse"])
 
   -- :browse should complete module names
-  , (":b Eff",    map (":b Effect" ++) ["", ".Unsafe", ".Class", ".Class.Console", ".Console", ".Uncurried", ".Ref"])
-  , (":b Effect.", map (":b Effect" ++) [".Unsafe", ".Class", ".Class.Console", ".Console", ".Uncurried", ".Ref"])
+  , (":b Eff",    pure $ map (":b Effect" ++) ["", ".Unsafe", ".Class", ".Class.Console", ".Console", ".Uncurried", ".Ref"])
+  , (":b Effect.", pure $ map (":b Effect" ++) [".Unsafe", ".Class", ".Class.Console", ".Console", ".Uncurried", ".Ref"])
 
   -- import should complete module names
-  , ("import Eff",    map ("import Effect" ++) ["", ".Unsafe", ".Class", ".Class.Console", ".Console", ".Uncurried", ".Ref"])
-  , ("import Effect.", map ("import Effect" ++) [".Unsafe", ".Class", ".Class.Console", ".Console", ".Uncurried", ".Ref"])
+  , ("import Eff",    pure $ map ("import Effect" ++) ["", ".Unsafe", ".Class", ".Class.Console", ".Console", ".Uncurried", ".Ref"])
+  , ("import Effect.", pure $ map ("import Effect" ++) [".Unsafe", ".Class", ".Class.Console", ".Console", ".Uncurried", ".Ref"])
 
   -- :quit, :help, :reload, :clear should not complete
-  , (":help ", [])
-  , (":quit ", [])
-  , (":reload ", [])
-  , (":clear ", [])
+  , (":help ", pure [])
+  , (":quit ", pure [])
+  , (":reload ", pure [])
+  , (":clear ", pure [])
 
   -- :show should complete its available arguments
-  , (":show ", [":show import", ":show loaded", ":show print"])
-  , (":show a", [])
+  , (":show ", pure [":show import", ":show loaded", ":show print"])
+  , (":show a", pure [])
 
   -- :type should complete next word from values and constructors in scope
-  , (":type uni", [":type unit"])
-  , (":type E", [":type EQ"])
-  , (":type P.", map (":type P." ++) ["EQ", "GT", "LT", "unit"]) -- import Prelude (unit, Ordering(..)) as P
-  , (":type Effect.Console.lo", [])
-  , (":type voi", [])
+  , (":type uni", pure [":type unit"])
+  , (":type E", pure [":type EQ"])
+  , (":type P.", pure $ map (":type P." ++) ["EQ", "GT", "LT", "unit"]) -- import Prelude (unit, Ordering(..)) as P
+  , (":type Effect.Console.lo", pure [])
+  , (":type voi", pure [])
 
   -- :kind should complete next word from types in scope
-  , (":kind Str", [":kind String"])
-  , (":kind ST.", [":kind ST.ST"]) -- import Control.Monad.ST as ST
-  , (":kind STRef.", [":kind STRef.STRef"]) -- import Control.Monad.ST.Ref as STRef
-  , (":kind Effect.", [])
+  , (":kind Str", pure [":kind String"])
+  , (":kind ST.", pure [":kind ST.Region", ":kind ST.ST"]) -- import Control.Monad.ST as ST
+  , (":kind STRef.", pure [":kind STRef.STRef"]) -- import Control.Monad.ST.Ref as STRef
+  , (":kind Effect.", pure [])
 
   -- Only one argument for these directives should be completed
-  , (":show import ", [])
-  , (":browse Data.List ", [])
+  , (":show import ", pure [])
+  , (":browse Data.List ", pure [])
 
   -- These directives take any number of completable terms
-  , (":type const compa", [":type const compare", ":type const comparing"])
-  , (":kind Array In", [":kind Array Int"])
+  , (":type const compa", pure [":type const compare", ":type const comparing"])
+  , (":kind Array In", pure [":kind Array Int"])
 
   -- a few other import tests
-  , ("impor", ["import"])
-  , ("import ", map (T.unpack . mappend "import ") supportModuleNames)
-  , ("import Prelude ", [])
+  , ("impor", pure ["import"])
+  , ("import ", getSupportModuleNames <&> map (T.unpack . mappend "import "))
+  , ("import Prelude ", pure [])
 
   -- String and number literals should not be completed
-  , ("\"hi", [])
-  , ("34", [])
+  , ("\"hi", pure [])
+  , ("34", pure [])
 
   -- Identifiers and data constructors in scope should be completed
-  , ("uni", ["unit"])
-  , ("G", ["GT"])
-  , ("P.G", ["P.GT"])
-  , ("P.uni", ["P.unit"])
-  , ("voi", []) -- import Prelude hiding (void)
-  , ("Effect.Class.", [])
+  , ("uni", pure ["unit"])
+  , ("G", pure ["GT"])
+  , ("P.G", pure ["P.GT"])
+  , ("P.uni", pure ["P.unit"])
+  , ("voi", pure []) -- import Prelude hiding (void)
+  , ("Effect.Class.", pure [])
 
   -- complete first name after type annotation symbol
-  , ("1 :: I", ["1 :: Int"])
-  , ("1 ::I",  ["1 ::Int"])
-  , ("1:: I",  ["1:: Int"])
-  , ("1::I",   ["1::Int"])
-  , ("(1::Int) uni", ["(1::Int) unit"]) -- back to completing values
+  , ("1 :: I", pure ["1 :: Int"])
+  , ("1 ::I",  pure ["1 ::Int"])
+  , ("1:: I",  pure ["1:: Int"])
+  , ("1::I",   pure ["1::Int"])
+  , ("(1::Int) uni", pure ["(1::Int) unit"]) -- back to completing values
 
   -- Parens and brackets aren't considered part of the current identifier
-  , ("map id [uni", ["map id [unit"])
-  , ("map (cons", ["map (const"])
+  , ("map id [uni", pure ["map id [unit"])
+  , ("map (cons", pure ["map (const"])
   ]
 
-assertCompletedOk :: PSCiState -> (String, [String]) -> Spec
-assertCompletedOk psciState (line, expecteds) = specify line $ do
+assertCompletedOk :: (String, IO [String]) -> SpecWith PSCiState
+assertCompletedOk (line, expectedsM) = specify line $ \psciState -> do
+  expecteds <- expectedsM
   results <- runCM psciState (completion' (reverse line, ""))
   let actuals = formatCompletions results
   sort actuals `shouldBe` sort expecteds
diff --git a/tests/TestPsci/EvalTest.hs b/tests/TestPsci/EvalTest.hs
--- a/tests/TestPsci/EvalTest.hs
+++ b/tests/TestPsci/EvalTest.hs
@@ -1,19 +1,18 @@
 module TestPsci.EvalTest where
 
-import Prelude ()
-import Prelude.Compat
+import Prelude
 
-import           Control.Monad (forM_, foldM_)
-import           Control.Monad.IO.Class (liftIO)
-import           Data.List (stripPrefix, intercalate)
-import           Data.List.Split (splitOn)
-import           System.Directory (getCurrentDirectory)
-import           System.Exit (exitFailure)
-import           System.FilePath ((</>), takeFileName)
-import qualified System.FilePath.Glob as Glob
-import           System.IO.UTF8 (readUTF8File)
-import           Test.Hspec
-import           TestPsci.TestEnv
+import Control.Monad (forM_, foldM_)
+import Control.Monad.IO.Class (liftIO)
+import Data.List (stripPrefix, intercalate)
+import Data.List.Split (splitOn)
+import System.Directory (getCurrentDirectory)
+import System.Exit (exitFailure)
+import System.FilePath ((</>), takeFileName)
+import System.FilePath.Glob qualified as Glob
+import System.IO.UTF8 (readUTF8File)
+import Test.Hspec (Spec, context, runIO, specify)
+import TestPsci.TestEnv (TestPSCi, evaluatesTo, execTestPSCi, run)
 
 evalTests :: Spec
 evalTests = context "evalTests" $ do
@@ -46,8 +45,8 @@
   case stripPrefix evalCommentPrefix line of
     Just rest ->
       case splitOn " " rest of
-        "shouldEvaluateTo" : args -> Comment (ShouldEvaluateTo $ intercalate " " args)
-        "paste" : [] -> Comment (Paste [])
+        "shouldEvaluateTo" : args -> Comment (ShouldEvaluateTo $ unwords args)
+        ["paste"] -> Comment (Paste [])
         _ -> Invalid line
     Nothing -> Line line
 
diff --git a/tests/TestPsci/TestEnv.hs b/tests/TestPsci/TestEnv.hs
--- a/tests/TestPsci/TestEnv.hs
+++ b/tests/TestPsci/TestEnv.hs
@@ -1,26 +1,22 @@
-{-# LANGUAGE OverloadedStrings #-}
-
 module TestPsci.TestEnv where
 
-import Prelude ()
-import Prelude.Compat
+import Prelude
 
-import           Control.Exception.Lifted (bracket_)
-import           Control.Monad (void, when)
-import           Control.Monad.IO.Class (liftIO)
-import           Control.Monad.Trans.RWS.Strict (evalRWST, asks, local, RWST)
-import           Data.Foldable (traverse_)
-import           Data.List (isSuffixOf)
-import qualified Data.Text as T
-import qualified Language.PureScript as P
-import qualified Language.PureScript.CST as CST
-import           Language.PureScript.Interactive
-import           System.Directory (getCurrentDirectory, doesPathExist, removeFile)
-import           System.Exit
-import           System.FilePath ((</>), pathSeparator)
-import qualified System.FilePath.Glob as Glob
-import           System.Process (readProcessWithExitCode)
-import           Test.Hspec (shouldBe, Expectation)
+import Control.Exception.Lifted (bracket_)
+import Control.Monad (void, when)
+import Control.Monad.IO.Class (liftIO)
+import Control.Monad.Trans.RWS.Strict (evalRWST, asks, local, RWST)
+import Data.Foldable (traverse_)
+import Data.List (isSuffixOf)
+import Data.Text qualified as T
+import Language.PureScript qualified as P
+import Language.PureScript.CST qualified as CST
+import Language.PureScript.Interactive (Command(..), PSCiConfig(..), PSCiState, handleCommand, indexFile, initialPSCiState, loadAllModules, make, modulesDir, parseCommand, readNodeProcessWithExitCode, runMake, updateLoadedExterns)
+import System.Directory (getCurrentDirectory, doesPathExist, removeFile)
+import System.Exit
+import System.FilePath ((</>), pathSeparator)
+import System.FilePath.Glob qualified as Glob
+import Test.Hspec (shouldBe, Expectation)
 
 -- | A monad transformer for handle PSCi actions in tests
 type TestPSCi a = RWST PSCiConfig () PSCiState IO a
@@ -57,13 +53,12 @@
 -- command evaluation.
 jsEval :: TestPSCi String
 jsEval = liftIO $ do
-  writeFile indexFile "require('$PSCI')['$main']();"
-  process <- findNodeProcess
-  result <- traverse (\node -> readProcessWithExitCode node [indexFile] "") process
+  writeFile indexFile "import('./$PSCI/index.js').then(({ $main }) => $main());"
+  result <- readNodeProcessWithExitCode Nothing [indexFile] ""
   case result of
-    Just (ExitSuccess, out, _)   -> return out
-    Just (ExitFailure _, _, err) -> putStrLn err >> exitFailure
-    Nothing                      -> putStrLn "Couldn't find node.js" >> exitFailure
+    Right (ExitSuccess, out, _)   -> return out
+    Right (ExitFailure _, _, err) -> putStrLn err >> exitFailure
+    Left err                      -> putStrLn err >> exitFailure
 
 -- | Run a PSCi command and evaluate its outputs:
 -- * jsOutputEval is used to evaluate compiled JS output by PSCi
@@ -75,7 +70,7 @@
     Right commands ->
       -- The JS result is ignored, as it's already written in a JS source file.
       -- For the detail, please refer to Interactive.hs
-      traverse_ (handleCommand (\_ -> jsOutputEval) (return ()) textOutputEval) commands
+      traverse_ (handleCommand (const jsOutputEval) (return ()) textOutputEval) commands
 
 -- | Run a PSCi command, evaluate compiled JS, and ignore evaluation output and printed output
 run :: String -> TestPSCi ()
diff --git a/tests/TestSourceMaps.hs b/tests/TestSourceMaps.hs
new file mode 100644
--- /dev/null
+++ b/tests/TestSourceMaps.hs
@@ -0,0 +1,77 @@
+module TestSourceMaps where
+
+import Prelude
+
+import Control.Monad (void, forM_)
+import Data.Aeson as Json
+import Test.Hspec (Expectation, SpecWith, describe, expectationFailure, it, runIO, shouldBe)
+import System.FilePath (replaceExtension, takeFileName, (</>), (<.>))
+import Language.PureScript qualified as P
+import Data.ByteString qualified as BS
+import Data.ByteString.Lazy qualified as LBS
+import Data.Foldable (fold)
+import TestUtils (getTestFiles, SupportModules (..), compile', ExpectedModuleName (IsSourceMap))
+import Data.Set qualified as Set
+import TestCompiler (getTestMain)
+import System.Process.Typed (proc, readProcess_)
+
+spec :: SpecWith SupportModules
+spec =
+  goldenFiles
+
+-- See the CONTRIBUTING.md file for why the below requirements are needed.
+-- Test files and their module names must abide by the following requirements:
+-- - Test files must reside in the @tests/purs/sourcemaps/@ directory
+-- - Module names must be prefixed with "SourceMaps." with the remainder
+--   matching the file name. For example:
+--    - File Name:   @tests/purs/sourcemaps/Test123.purs@
+--    - Module Name: @SourceMaps.Test123@
+--    - File Name:   @tests/purs/sourcemaps/Bug1234.purs@
+--    - Module Name: @SourceMaps.Bug1234@
+goldenFiles :: SpecWith SupportModules
+goldenFiles = do
+  sourceMapsFiles <- runIO $ getTestFiles "sourcemaps"
+
+  describe "golden files" $
+    forM_ sourceMapsFiles $ \inputFiles -> do
+      let
+        testName = fold
+          [ "'"
+          , takeFileName (getTestMain inputFiles)
+          , "' should compile to expected output and produce a valid source map file"
+          ]
+      it testName $ \support -> do
+        assertCompilesToExpectedValidOutput support inputFiles
+
+assertCompilesToExpectedValidOutput
+  :: SupportModules
+  -> [FilePath]
+  -> Expectation
+assertCompilesToExpectedValidOutput support inputFiles = do
+
+  let
+    modulePath = getTestMain inputFiles
+
+  (fileContents, (result, _)) <- compile' compilationOptions (Just (IsSourceMap modulePath)) support inputFiles
+  let errorOptions = P.defaultPPEOptions { P.ppeFileContents = fileContents }
+  case result of
+    Left errs -> expectationFailure . P.prettyPrintMultipleErrors errorOptions $ errs
+    Right actualSourceMapFile -> do
+      let
+        readAndDecode :: FilePath ->  IO (Maybe Json.Value)
+        readAndDecode = fmap (Json.decode . LBS.fromStrict) . BS.readFile
+      goldenFile <- readAndDecode $ replaceExtension modulePath ".out.js.map"
+      actualFile <- readAndDecode actualSourceMapFile
+      goldenFile `shouldBe` actualFile
+      sourceMapIsValid actualSourceMapFile
+
+  where
+    compilationOptions :: P.Options
+    compilationOptions = P.defaultOptions { P.optionsCodegenTargets = Set.fromList [P.JS, P.JSSourceMap] }
+
+-- | Fails the test if the produced source maps are not valid.
+sourceMapIsValid :: FilePath -> Expectation
+sourceMapIsValid sourceMapFilePath = do
+  let
+    scriptPath = "tests" </> "support" </> "checkSourceMapValidity" <.> "js"
+  void $ readProcess_ (proc "node" [scriptPath, sourceMapFilePath])
diff --git a/tests/TestUtils.hs b/tests/TestUtils.hs
--- a/tests/TestUtils.hs
+++ b/tests/TestUtils.hs
@@ -1,43 +1,41 @@
-{-# LANGUAGE ScopedTypeVariables #-}
-{-# LANGUAGE OverloadedStrings #-}
-
-
 module TestUtils where
 
-import Prelude ()
-import Prelude.Compat
+import Prelude
 
-import qualified Language.PureScript as P
-import qualified Language.PureScript.CST as CST
+import Language.PureScript qualified as P
+import Language.PureScript.CST qualified as CST
+import Language.PureScript.AST qualified as AST
+import Language.PureScript.Names qualified as N
+import Language.PureScript.Interactive.IO (findNodeProcess)
 
 import Control.Arrow ((***), (>>>))
-import Control.Monad
-import Control.Monad.Reader
-import Control.Monad.Trans.Except
-import Control.Monad.Trans.Maybe
-import Control.Exception
+import Control.Monad (forM, guard, unless)
+import Control.Monad.Reader (MonadIO(..), MonadTrans(..))
+import Control.Monad.Trans.Except (ExceptT(..), runExceptT)
+import Control.Monad.Trans.Maybe (MaybeT(..))
+import Control.Monad.Writer.Class (tell)
+import Control.Exception (IOException, catch, throw, throwIO, try, tryJust)
+import Data.ByteString (ByteString)
+import Data.ByteString qualified as BS
 import Data.Char (isSpace)
 import Data.Function (on)
-import Data.List (sort, sortBy, stripPrefix, groupBy)
-import qualified Data.Map as M
-import qualified Data.Text as T
-import Data.Time.Clock (UTCTime())
+import Data.List (sort, sortBy, stripPrefix, groupBy, find)
+import Data.Map qualified as M
+import Data.Maybe (isJust)
+import Data.Text qualified as T
+import Data.Text.Encoding qualified as T
+import Data.Time.Clock (UTCTime(), diffUTCTime, getCurrentTime, nominalDay)
 import Data.Tuple (swap)
-import System.Process hiding (cwd)
-import System.Directory
-import System.Info
-import System.IO.UTF8 (readUTF8FileT)
+import System.Directory (createDirectoryIfMissing, doesDirectoryExist, getCurrentDirectory, getModificationTime, getTemporaryDirectory, listDirectory, setCurrentDirectory, withCurrentDirectory)
 import System.Exit (exitFailure)
-import System.FilePath
-import qualified System.FilePath.Glob as Glob
-import System.IO
-import Test.Tasty.Hspec
-
-
-findNodeProcess :: IO (Maybe String)
-findNodeProcess = runMaybeT . msum $ map (MaybeT . findExecutable) names
-  where
-  names = ["nodejs", "node"]
+import System.Environment (lookupEnv)
+import System.FilePath (dropExtensions, makeRelative, takeDirectory, takeExtensions, takeFileName, (</>))
+import System.IO.Error (isDoesNotExistError)
+import System.IO.UTF8 (readUTF8FileT)
+import System.Process (callCommand, callProcess)
+import System.FilePath.Glob qualified as Glob
+import System.IO (Handle, IOMode(..), hPutStrLn, openFile, stderr)
+import Test.Hspec (Expectation, HasCallStack, expectationFailure, pendingWith)
 
 -- |
 -- Fetches code necessary to run the tests with. The resulting support code
@@ -48,24 +46,55 @@
 -- updating.
 --
 updateSupportCode :: IO ()
-updateSupportCode = do
-  setCurrentDirectory "tests/support"
-  if System.Info.os == "mingw32"
-    then callProcess "setup-win.cmd" []
-    else do
-      callProcess "npm" ["install"]
-      -- bower uses shebang "/usr/bin/env node", but we might have nodejs
-      node <- maybe cannotFindNode pure =<< findNodeProcess
-      -- Sometimes we run as a root (e.g. in simple docker containers)
-      -- And we are non-interactive: https://github.com/bower/bower/issues/1162
-      callProcess node ["node_modules/.bin/bower", "--allow-root", "install", "--config.interactive=false"]
-  setCurrentDirectory "../.."
+updateSupportCode = withCurrentDirectory "tests/support" $ do
+  let lastUpdatedFile = ".last_updated"
+  skipUpdate <- fmap isJust . runMaybeT $ do
+    -- We skip the update if: `.last_updated` exists,
+    lastUpdated <- MaybeT $ getModificationTimeMaybe lastUpdatedFile
+
+    -- ... and it was modified less than a day ago (no particular reason why
+    -- "one day" specifically),
+    now <- lift getCurrentTime
+    guard $ now `diffUTCTime` lastUpdated < nominalDay
+
+    -- ... and the needed directories exist,
+    contents <- lift $ listDirectory "."
+    guard $ "node_modules" `elem` contents && "bower_components" `elem` contents
+
+    -- ... and everything else in `tests/support` is at least as old as
+    -- `.last_updated`.
+    modTimes <- lift $ traverse getModificationTime . filter (/= lastUpdatedFile) $ contents
+    guard $ all (<= lastUpdated) modTimes
+
+    pure ()
+
+  unless skipUpdate $ do
+    heading "Updating support code"
+    callCommand "npm install"
+    -- bower uses shebang "/usr/bin/env node", but we might have nodejs
+    node <- either cannotFindNode pure =<< findNodeProcess
+    -- Sometimes we run as a root (e.g. in simple docker containers)
+    -- And we are non-interactive: https://github.com/bower/bower/issues/1162
+    callProcess node ["node_modules/bower/bin/bower", "--allow-root", "install", "--config.interactive=false"]
+    writeFile lastUpdatedFile ""
   where
-  cannotFindNode :: IO a
-  cannotFindNode = do
-    hPutStrLn stderr "Cannot find node (or nodejs) executable"
+  cannotFindNode :: String -> IO a
+  cannotFindNode message = do
+    hPutStrLn stderr message
     exitFailure
 
+  getModificationTimeMaybe :: FilePath -> IO (Maybe UTCTime)
+  getModificationTimeMaybe f = catch (Just <$> getModificationTime f) $ \case
+    e | isDoesNotExistError e -> pure Nothing
+      | otherwise             -> throw e
+
+  heading msg = do
+    putStrLn ""
+    putStrLn $ replicate 79 '#'
+    putStrLn $ "# " ++ msg
+    putStrLn $ replicate 79 '#'
+    putStrLn ""
+
 readInput :: [FilePath] -> IO [(FilePath, T.Text)]
 readInput inputFiles = forM inputFiles $ \inputFile -> do
   text <- readUTF8FileT inputFile
@@ -85,7 +114,7 @@
   fileContents <- readInput pursFiles
   modules <- runExceptT $ ExceptT . return $ CST.parseFromFiles id fileContents
   case modules of
-    Right ms -> return ms
+    Right ms -> return (fmap (fmap snd) ms)
     Left errs -> fail (P.prettyPrintMultipleErrors P.defaultPPEOptions errs)
 
 getSupportModuleNames :: IO [T.Text]
@@ -106,7 +135,13 @@
   createDirectoryIfMissing False (tmp </> logpath)
   openFile (tmp </> logpath </> logfileName) WriteMode
 
-setupSupportModules :: IO ([P.Module], [P.ExternsFile], M.Map P.ModuleName FilePath)
+data SupportModules = SupportModules
+  { supportModules :: [P.Module]
+  , supportExterns :: [P.ExternsFile]
+  , supportForeigns :: M.Map P.ModuleName FilePath
+  }
+
+setupSupportModules :: IO SupportModules
 setupSupportModules = do
   ms <- getSupportModuleTuples
   let modules = map snd ms
@@ -116,27 +151,12 @@
     return (externs, foreigns)
   case supportExterns of
     Left errs -> fail (P.prettyPrintMultipleErrors P.defaultPPEOptions errs)
-    Right (externs, foreigns) -> return (modules, externs, foreigns)
+    Right (externs, foreigns) -> return $ SupportModules modules externs foreigns
 
 getTestFiles :: FilePath -> IO [[FilePath]]
 getTestFiles testDir = do
-  cwd <- getCurrentDirectory
-  let dir = cwd </> "tests" </> "purs" </> testDir
-  testsInPath <- getFiles dir <$> testGlob dir
-  let rerunPath = dir </> "RerunCompilerTests.txt"
-  hasRerunFile <- doesFileExist rerunPath
-  rerunTests <-
-    if hasRerunFile
-    then let compilerTestDir = cwd </> "tests" </> "purs" </> "passing"
-             textToTestFiles
-               = mapM (\path -> ((path ++ ".purs") :) <$> testGlob path)
-               . map ((compilerTestDir </>) . T.unpack)
-               . filter (not . T.null)
-               . map (T.strip . fst . T.breakOn "--")
-               . T.lines
-         in readUTF8FileT rerunPath >>= textToTestFiles
-    else return []
-  return $ testsInPath ++ rerunTests
+  let dir = "tests" </> "purs" </> testDir
+  getFiles dir <$> testGlob dir
   where
   -- A glob for all purs and js files within a test directory
   testGlob :: FilePath -> IO [FilePath]
@@ -160,51 +180,72 @@
        then maybe fp reverse $ stripPrefix ext $ reverse fp
        else dir
 
+data ExpectedModuleName
+  = IsMain
+  | IsSourceMap FilePath
+
 compile
-  :: [P.Module]
-  -> [P.ExternsFile]
-  -> M.Map P.ModuleName FilePath
+  :: Maybe ExpectedModuleName
+  -> SupportModules
   -> [FilePath]
-  -> ([P.Module] -> IO ())
-  -> IO (Either P.MultipleErrors [P.ExternsFile], P.MultipleErrors)
-compile supportModules supportExterns supportForeigns inputFiles check = runTest $ do
-  fs <- liftIO $ readInput inputFiles
-  ms <- CST.parseFromFiles id fs
-  foreigns <- inferForeignModules ms
-  liftIO (check (map snd ms))
-  let actions = makeActions supportModules (foreigns `M.union` supportForeigns)
-  case ms of
-    [singleModule] -> pure <$> P.rebuildModule actions supportExterns (snd singleModule)
-    _ -> P.make actions (CST.pureResult <$> supportModules ++ map snd ms)
+  -> IO ([(FilePath, T.Text)], (Either P.MultipleErrors FilePath, P.MultipleErrors))
+compile = compile' P.defaultOptions
 
-assert
-  :: [P.Module]
-  -> [P.ExternsFile]
-  -> M.Map P.ModuleName FilePath
+compile'
+  :: P.Options
+  -> Maybe ExpectedModuleName
+  -> SupportModules
   -> [FilePath]
-  -> ([P.Module] -> IO ())
-  -> (Either P.MultipleErrors P.MultipleErrors -> IO (Maybe String))
-  -> Expectation
-assert supportModules supportExterns supportForeigns inputFiles check f = do
-  (e, w) <- compile supportModules supportExterns supportForeigns inputFiles check
-  maybeErr <- f (const w <$> e)
-  maybe (return ()) expectationFailure maybeErr
+  -> IO ([(FilePath, T.Text)], (Either P.MultipleErrors FilePath, P.MultipleErrors))
+compile' options expectedModule SupportModules{..} inputFiles = do
+  -- Sorting the input files makes some messages (e.g., duplicate module) deterministic
+  fs <- readInput (sort inputFiles)
+  fmap (fs, ) . P.runMake options $ do
+    msWithWarnings <- CST.parseFromFiles id fs
+    tell $ foldMap (\(fp, (ws, _)) -> CST.toMultipleWarnings fp ws) msWithWarnings
+    let ms = fmap snd <$> msWithWarnings
+    foreigns <- inferForeignModules ms
+    let
+      actions = makeActions supportModules (foreigns `M.union` supportForeigns)
+      (hasExpectedModuleName, expectedModuleName, compiledModulePath) = case expectedModule of
+        -- Check if there is one (and only one) module called "Main"
+        Just IsMain ->
+          let
+            moduleName = "Main"
+            compiledPath = modulesDir </> moduleName </> "index.js"
+          in ((==) 1 $ length $ filter (== moduleName) $ fmap (T.unpack . getPsModuleName) ms, moduleName, compiledPath)
+        -- Check if main sourcemap module starts with "SourceMaps." and matches its file name
+        Just (IsSourceMap modulePath) ->
+          let
+            moduleName = "SourceMaps." <> (dropExtensions . takeFileName $ modulePath)
+            compiledPath = modulesDir </> moduleName </> "index.js.map"
+          in (maybe False ((==) moduleName . T.unpack . getPsModuleName) (find ((==) modulePath . fst) ms), moduleName, compiledPath)
+        Nothing -> (True, mempty, mempty)
 
-checkMain :: [P.Module] -> IO ()
-checkMain ms =
-  unless (any ((== P.moduleNameFromString "Main") . P.getModuleName) ms)
-    (fail "Main module missing")
+    case ms of
+      [singleModule] -> do
+        unless hasExpectedModuleName $
+          error ("While testing a single PureScript file, the expected module name was '" <> expectedModuleName <>
+            "' but got '" <> T.unpack (getPsModuleName singleModule) <> "'.")
+        compiledModulePath <$ P.rebuildModule actions supportExterns (snd singleModule)
+      _ -> do
+        unless hasExpectedModuleName $
+          error $ "While testing multiple PureScript files, the expected main module was not found: '" <> expectedModuleName <> "'."
+        compiledModulePath <$ P.make actions (CST.pureResult <$> supportModules ++ map snd ms)
 
+getPsModuleName :: (a, AST.Module) -> T.Text
+getPsModuleName psModule = case snd psModule of
+  AST.Module _ _ (N.ModuleName t) _ _ -> t
 
 makeActions :: [P.Module] -> M.Map P.ModuleName FilePath -> P.MakeActions P.Make
 makeActions modules foreigns = (P.buildMakeActions modulesDir (P.internalError "makeActions: input file map was read.") foreigns False)
-                               { P.getInputTimestamp = getInputTimestamp
+                               { P.getInputTimestampsAndHashes = getInputTimestampsAndHashes
                                , P.getOutputTimestamp = getOutputTimestamp
                                , P.progress = const (pure ())
                                }
   where
-  getInputTimestamp :: P.ModuleName -> P.Make (Either P.RebuildPolicy (Maybe UTCTime))
-  getInputTimestamp mn
+  getInputTimestampsAndHashes :: P.ModuleName -> P.Make (Either P.RebuildPolicy a)
+  getInputTimestampsAndHashes mn
     | isSupportModule (P.runModuleName mn) = return (Left P.RebuildNever)
     | otherwise = return (Left P.RebuildAlways)
     where
@@ -233,7 +274,45 @@
 trim = dropWhile isSpace >>> reverse >>> dropWhile isSpace >>> reverse
 
 modulesDir :: FilePath
-modulesDir = ".test_modules" </> "node_modules"
+modulesDir = ".test_modules"
 
 logpath :: FilePath
 logpath = "purescript-output"
+
+-- | Assert that the contents of the provided file path match the result of the
+-- provided action. If the "HSPEC_ACCEPT" environment variable is set, or if the
+-- file does not already exist, we write the resulting ByteString out to the
+-- provided file path instead. However, if the "CI" environment variable is
+-- set, "HSPEC_ACCEPT" is ignored and we require that the file does exist with
+-- the correct contents (see #3808). Based (very loosely) on the tasty-golden
+-- package.
+goldenVsString
+  :: HasCallStack -- For expectationFailure; use the call site for better failure locations
+  => FilePath
+  -> IO ByteString
+  -> Expectation
+goldenVsString goldenFile testAction = do
+  accept <- isJust <$> lookupEnv "HSPEC_ACCEPT"
+  ci <- isJust <$> lookupEnv "CI"
+  goldenContents <- tryJust (guard . isDoesNotExistError) (BS.readFile goldenFile)
+  case goldenContents of
+    Left () ->
+      -- The golden file does not exist
+      if ci
+        then expectationFailure $ "Missing golden file: " ++ goldenFile
+        else createOrReplaceGoldenFile
+
+    Right _ | not ci && accept ->
+      createOrReplaceGoldenFile
+
+    Right expected -> do
+      actual <- testAction
+      if expected == actual
+        then pure ()
+        else expectationFailure $
+          "Test output differed from '" ++ goldenFile ++ "'; got:\n" ++
+          T.unpack (T.decodeUtf8With (\_ _ -> Just '\xFFFD') actual)
+  where
+  createOrReplaceGoldenFile = do
+    testAction >>= BS.writeFile goldenFile
+    pendingWith "Accepting new output"
diff --git a/tests/json-compat/v0.14.0/prelude-5.0.1.json b/tests/json-compat/v0.14.0/prelude-5.0.1.json
new file mode 100644
--- /dev/null
+++ b/tests/json-compat/v0.14.0/prelude-5.0.1.json
@@ -0,0 +1,1 @@
+{"uploader":"thomashoneyman","packageMeta":{"homepage":"https://github.com/purescript/purescript-prelude","repository":{"url":"https://github.com/purescript/purescript-prelude.git","type":"git"},"ignore":["**/.*","bower_components","node_modules","output","test","bower.json","package.json"],"name":"purescript-prelude","license":["BSD-3-Clause"],"description":"The PureScript Prelude"},"tagTime":"2021-05-11T21:10:31+0000","modules":[{"reExports":[{"moduleName":{"package":null,"item":["Control","Apply"]},"declarations":[{"children":[{"comments":null,"title":"apply","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}]},null]},null]}},"sourceSpan":{"start":[46,3],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Apply.purs","end":[46,48]}},{"comments":null,"title":"applyFn","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Apply"],"Apply"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}]}},"sourceSpan":{"start":[50,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Apply.purs","end":[51,26]}},{"comments":null,"title":"applyArray","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Apply"],"Apply"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]}]}},"sourceSpan":{"start":[53,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Apply.purs","end":[54,21]}},{"comments":null,"title":"applyProxy","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Apply"],"Apply"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy"]}]}},"sourceSpan":{"start":[58,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Apply.purs","end":[59,20]}}],"comments":"The `Apply` class provides the `(<*>)` which is used to apply a function\nto an argument under a type constructor.\n\n`Apply` can be used to lift functions of two or more arguments to work on\nvalues wrapped with the type constructor `f`. It might also be understood\nin terms of the `lift2` function:\n\n```purescript\nlift2 :: forall f a b c. Apply f => (a -> b -> c) -> f a -> f b -> f c\nlift2 f a b = f <$> a <*> b\n```\n\n`(<*>)` is recovered from `lift2` as `lift2 ($)`. That is, `(<*>)` lifts\nthe function application operator `($)` to arguments wrapped with the\ntype constructor `f`.\n\nPut differently...\n```\nfoo =\n  functionTakingNArguments <$> computationProducingArg1\n                           <*> computationProducingArg2\n                           <*> ...\n                           <*> computationProducingArgN\n```\n\nInstances must satisfy the following law in addition to the `Functor`\nlaws:\n\n- Associative composition: `(<<<) <$> f <*> g <*> h = f <*> (g <*> h)`\n\nFormally, `Apply` represents a strong lax semi-monoidal endofunctor.\n","title":"Apply","info":{"fundeps":[],"arguments":[["f",null]],"declType":"typeClass","superclasses":[{"constraintAnn":[],"constraintClass":[["Data","Functor"],"Functor"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintKindArgs":[],"constraintData":null}]},"sourceSpan":{"start":[45,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Apply.purs","end":[46,48]}},{"children":[],"comments":null,"title":"(<*>)","info":{"declType":"alias","alias":[["Control","Apply"],{"Right":{"Left":{"Ident":"apply"}}}],"fixity":{"associativity":"infixl","precedence":4}},"sourceSpan":{"start":[48,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Apply.purs","end":[48,22]}},{"children":[],"comments":null,"title":"(<*)","info":{"declType":"alias","alias":[["Control","Apply"],{"Right":{"Left":{"Ident":"applyFirst"}}}],"fixity":{"associativity":"infixl","precedence":4}},"sourceSpan":{"start":[65,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Apply.purs","end":[65,26]}},{"children":[],"comments":null,"title":"(*>)","info":{"declType":"alias","alias":[["Control","Apply"],{"Right":{"Left":{"Ident":"applySecond"}}}],"fixity":{"associativity":"infixl","precedence":4}},"sourceSpan":{"start":[71,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Apply.purs","end":[71,27]}}]},{"moduleName":{"package":null,"item":["Data","Functor"]},"declarations":[{"children":[{"comments":null,"title":"map","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}]},null]},null]}},"sourceSpan":{"start":[26,3],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Functor.purs","end":[26,44]}},{"comments":null,"title":"functorFn","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Functor"],"Functor"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}]}},"sourceSpan":{"start":[40,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Functor.purs","end":[41,16]}},{"comments":null,"title":"functorArray","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Functor"],"Functor"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]}]}},"sourceSpan":{"start":[43,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Functor.purs","end":[44,17]}},{"comments":null,"title":"functorProxy","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Functor"],"Functor"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy"]}]}},"sourceSpan":{"start":[46,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Functor.purs","end":[47,18]}}],"comments":"A `Functor` is a type constructor which supports a mapping operation\n`map`.\n\n`map` can be used to turn functions `a -> b` into functions\n`f a -> f b` whose argument and return types use the type constructor `f`\nto represent some computational context.\n\nInstances must satisfy the following laws:\n\n- Identity: `map identity = identity`\n- Composition: `map (f <<< g) = map f <<< map g`\n","title":"Functor","info":{"fundeps":[],"arguments":[["f",null]],"declType":"typeClass","superclasses":[]},"sourceSpan":{"start":[25,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Functor.purs","end":[26,44]}},{"children":[],"comments":"The `void` function is used to ignore the type wrapped by a\n[`Functor`](#functor), replacing it with `Unit` and keeping only the type\ninformation provided by the type constructor itself.\n\n`void` is often useful when using `do` notation to change the return type\nof a monadic computation:\n\n```purescript\nmain = forE 1 10 \\n -> void do\n  print n\n  print (n * n)\n```\n","title":"void","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Functor"],"Functor"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintKindArgs":[],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}]},null]},null]}},"sourceSpan":{"start":[63,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Functor.purs","end":[63,47]}},{"children":[],"comments":null,"title":"(<$>)","info":{"declType":"alias","alias":[["Data","Functor"],{"Right":{"Left":{"Ident":"map"}}}],"fixity":{"associativity":"infixl","precedence":4}},"sourceSpan":{"start":[28,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Functor.purs","end":[28,20]}},{"children":[],"comments":null,"title":"(<$)","info":{"declType":"alias","alias":[["Data","Functor"],{"Right":{"Left":{"Ident":"voidRight"}}}],"fixity":{"associativity":"infixl","precedence":4}},"sourceSpan":{"start":[71,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Functor.purs","end":[71,25]}},{"children":[],"comments":null,"title":"(<#>)","info":{"declType":"alias","alias":[["Data","Functor"],{"Right":{"Left":{"Ident":"mapFlipped"}}}],"fixity":{"associativity":"infixl","precedence":1}},"sourceSpan":{"start":[38,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Functor.purs","end":[38,27]}},{"children":[],"comments":null,"title":"($>)","info":{"declType":"alias","alias":[["Data","Functor"],{"Right":{"Left":{"Ident":"voidLeft"}}}],"fixity":{"associativity":"infixl","precedence":4}},"sourceSpan":{"start":[77,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Functor.purs","end":[77,24]}}]}],"name":"Control.Applicative","comments":null,"declarations":[{"children":[{"comments":null,"title":"pure","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},null]}},"sourceSpan":{"start":[34,3],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Applicative.purs","end":[34,29]}},{"comments":null,"title":"applicativeFn","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Applicative"],"Applicative"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}]}},"sourceSpan":{"start":[36,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Applicative.purs","end":[37,15]}},{"comments":null,"title":"applicativeArray","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Applicative"],"Applicative"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]}]}},"sourceSpan":{"start":[39,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Applicative.purs","end":[40,15]}},{"comments":null,"title":"applicativeProxy","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Applicative"],"Applicative"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy"]}]}},"sourceSpan":{"start":[42,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Applicative.purs","end":[43,17]}}],"comments":"The `Applicative` type class extends the [`Apply`](#apply) type class\nwith a `pure` function, which can be used to create values of type `f a`\nfrom values of type `a`.\n\nWhere [`Apply`](#apply) provides the ability to lift functions of two or\nmore arguments to functions whose arguments are wrapped using `f`, and\n[`Functor`](#functor) provides the ability to lift functions of one\nargument, `pure` can be seen as the function which lifts functions of\n_zero_ arguments. That is, `Applicative` functors support a lifting\noperation for any number of function arguments.\n\nInstances must satisfy the following laws in addition to the `Apply`\nlaws:\n\n- Identity: `(pure identity) <*> v = v`\n- Composition: `pure (<<<) <*> f <*> g <*> h = f <*> (g <*> h)`\n- Homomorphism: `(pure f) <*> (pure x) = pure (f x)`\n- Interchange: `u <*> (pure y) = (pure (_ $ y)) <*> u`\n","title":"Applicative","info":{"fundeps":[],"arguments":[["f",null]],"declType":"typeClass","superclasses":[{"constraintAnn":[],"constraintClass":[["Control","Apply"],"Apply"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintKindArgs":[],"constraintData":null}]},"sourceSpan":{"start":[33,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Applicative.purs","end":[34,29]}},{"children":[],"comments":"`liftA1` provides a default implementation of `(<$>)` for any\n[`Applicative`](#applicative) functor, without using `(<$>)` as provided\nby the [`Functor`](#functor)-[`Applicative`](#applicative) superclass\nrelationship.\n\n`liftA1` can therefore be used to write [`Functor`](#functor) instances\nas follows:\n\n```purescript\ninstance functorF :: Functor F where\n  map = liftA1\n```\n","title":"liftA1","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Applicative"],"Applicative"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintKindArgs":[],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}]}]},null]},null]},null]}},"sourceSpan":{"start":[57,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Applicative.purs","end":[57,64]}},{"children":[],"comments":"Perform an applicative action unless a condition is true.\n","title":"unless","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Applicative"],"Applicative"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintKindArgs":[],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}]}]},null]}},"sourceSpan":{"start":[66,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Applicative.purs","end":[66,65]}},{"children":[],"comments":"Perform an applicative action when a condition is true.\n","title":"when","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Applicative"],"Applicative"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintKindArgs":[],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}]}]},null]}},"sourceSpan":{"start":[61,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Applicative.purs","end":[61,63]}}]},{"reExports":[{"moduleName":{"package":null,"item":["Data","Functor"]},"declarations":[{"children":[{"comments":null,"title":"map","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}]},null]},null]}},"sourceSpan":{"start":[26,3],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Functor.purs","end":[26,44]}},{"comments":null,"title":"functorFn","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Functor"],"Functor"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}]}},"sourceSpan":{"start":[40,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Functor.purs","end":[41,16]}},{"comments":null,"title":"functorArray","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Functor"],"Functor"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]}]}},"sourceSpan":{"start":[43,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Functor.purs","end":[44,17]}},{"comments":null,"title":"functorProxy","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Functor"],"Functor"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy"]}]}},"sourceSpan":{"start":[46,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Functor.purs","end":[47,18]}}],"comments":"A `Functor` is a type constructor which supports a mapping operation\n`map`.\n\n`map` can be used to turn functions `a -> b` into functions\n`f a -> f b` whose argument and return types use the type constructor `f`\nto represent some computational context.\n\nInstances must satisfy the following laws:\n\n- Identity: `map identity = identity`\n- Composition: `map (f <<< g) = map f <<< map g`\n","title":"Functor","info":{"fundeps":[],"arguments":[["f",null]],"declType":"typeClass","superclasses":[]},"sourceSpan":{"start":[25,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Functor.purs","end":[26,44]}},{"children":[],"comments":"The `void` function is used to ignore the type wrapped by a\n[`Functor`](#functor), replacing it with `Unit` and keeping only the type\ninformation provided by the type constructor itself.\n\n`void` is often useful when using `do` notation to change the return type\nof a monadic computation:\n\n```purescript\nmain = forE 1 10 \\n -> void do\n  print n\n  print (n * n)\n```\n","title":"void","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Functor"],"Functor"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintKindArgs":[],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}]},null]},null]}},"sourceSpan":{"start":[63,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Functor.purs","end":[63,47]}},{"children":[],"comments":null,"title":"(<$>)","info":{"declType":"alias","alias":[["Data","Functor"],{"Right":{"Left":{"Ident":"map"}}}],"fixity":{"associativity":"infixl","precedence":4}},"sourceSpan":{"start":[28,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Functor.purs","end":[28,20]}},{"children":[],"comments":null,"title":"(<$)","info":{"declType":"alias","alias":[["Data","Functor"],{"Right":{"Left":{"Ident":"voidRight"}}}],"fixity":{"associativity":"infixl","precedence":4}},"sourceSpan":{"start":[71,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Functor.purs","end":[71,25]}},{"children":[],"comments":null,"title":"(<#>)","info":{"declType":"alias","alias":[["Data","Functor"],{"Right":{"Left":{"Ident":"mapFlipped"}}}],"fixity":{"associativity":"infixl","precedence":1}},"sourceSpan":{"start":[38,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Functor.purs","end":[38,27]}},{"children":[],"comments":null,"title":"($>)","info":{"declType":"alias","alias":[["Data","Functor"],{"Right":{"Left":{"Ident":"voidLeft"}}}],"fixity":{"associativity":"infixl","precedence":4}},"sourceSpan":{"start":[77,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Functor.purs","end":[77,24]}}]}],"name":"Control.Apply","comments":null,"declarations":[{"children":[{"comments":null,"title":"apply","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}]},null]},null]}},"sourceSpan":{"start":[46,3],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Apply.purs","end":[46,48]}},{"comments":null,"title":"applyFn","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Apply"],"Apply"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}]}},"sourceSpan":{"start":[50,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Apply.purs","end":[51,26]}},{"comments":null,"title":"applyArray","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Apply"],"Apply"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]}]}},"sourceSpan":{"start":[53,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Apply.purs","end":[54,21]}},{"comments":null,"title":"applyProxy","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Apply"],"Apply"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy"]}]}},"sourceSpan":{"start":[58,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Apply.purs","end":[59,20]}}],"comments":"The `Apply` class provides the `(<*>)` which is used to apply a function\nto an argument under a type constructor.\n\n`Apply` can be used to lift functions of two or more arguments to work on\nvalues wrapped with the type constructor `f`. It might also be understood\nin terms of the `lift2` function:\n\n```purescript\nlift2 :: forall f a b c. Apply f => (a -> b -> c) -> f a -> f b -> f c\nlift2 f a b = f <$> a <*> b\n```\n\n`(<*>)` is recovered from `lift2` as `lift2 ($)`. That is, `(<*>)` lifts\nthe function application operator `($)` to arguments wrapped with the\ntype constructor `f`.\n\nPut differently...\n```\nfoo =\n  functionTakingNArguments <$> computationProducingArg1\n                           <*> computationProducingArg2\n                           <*> ...\n                           <*> computationProducingArgN\n```\n\nInstances must satisfy the following law in addition to the `Functor`\nlaws:\n\n- Associative composition: `(<<<) <$> f <*> g <*> h = f <*> (g <*> h)`\n\nFormally, `Apply` represents a strong lax semi-monoidal endofunctor.\n","title":"Apply","info":{"fundeps":[],"arguments":[["f",null]],"declType":"typeClass","superclasses":[{"constraintAnn":[],"constraintClass":[["Data","Functor"],"Functor"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintKindArgs":[],"constraintData":null}]},"sourceSpan":{"start":[45,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Apply.purs","end":[46,48]}},{"children":[],"comments":null,"title":"(<*>)","info":{"declType":"alias","alias":[["Control","Apply"],{"Right":{"Left":{"Ident":"apply"}}}],"fixity":{"associativity":"infixl","precedence":4}},"sourceSpan":{"start":[48,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Apply.purs","end":[48,22]}},{"children":[],"comments":"Combine two effectful actions, keeping only the result of the first.\n","title":"applyFirst","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Apply"],"Apply"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintKindArgs":[],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]}]},null]},null]},null]}},"sourceSpan":{"start":[62,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Apply.purs","end":[62,57]}},{"children":[],"comments":null,"title":"(<*)","info":{"declType":"alias","alias":[["Control","Apply"],{"Right":{"Left":{"Ident":"applyFirst"}}}],"fixity":{"associativity":"infixl","precedence":4}},"sourceSpan":{"start":[65,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Apply.purs","end":[65,26]}},{"children":[],"comments":"Combine two effectful actions, keeping only the result of the second.\n","title":"applySecond","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Apply"],"Apply"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintKindArgs":[],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}]}]},null]},null]},null]}},"sourceSpan":{"start":[68,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Apply.purs","end":[68,58]}},{"children":[],"comments":null,"title":"(*>)","info":{"declType":"alias","alias":[["Control","Apply"],{"Right":{"Left":{"Ident":"applySecond"}}}],"fixity":{"associativity":"infixl","precedence":4}},"sourceSpan":{"start":[71,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Apply.purs","end":[71,27]}},{"children":[],"comments":"Lift a function of two arguments to a function which accepts and returns\nvalues wrapped with the type constructor `f`.\n\n```purescript\nlift2 add (Just 1) (Just 2) == Just 3\nlift2 add Nothing (Just 2) == Nothing\n```\n\n","title":"lift2","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Apply"],"Apply"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintKindArgs":[],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"c"}]}]}]}]}]},null]},null]},null]},null]}},"sourceSpan":{"start":[81,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Apply.purs","end":[81,71]}},{"children":[],"comments":"Lift a function of three arguments to a function which accepts and returns\nvalues wrapped with the type constructor `f`.\n","title":"lift3","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["d",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Apply"],"Apply"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintKindArgs":[],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"d"}]}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"c"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"d"}]}]}]}]}]}]},null]},null]},null]},null]},null]}},"sourceSpan":{"start":[86,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Apply.purs","end":[86,85]}},{"children":[],"comments":"Lift a function of four arguments to a function which accepts and returns\nvalues wrapped with the type constructor `f`.\n","title":"lift4","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["d",{"annotation":[],"tag":"ForAll","contents":["e",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Apply"],"Apply"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintKindArgs":[],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeVar","contents":"e"}]}]}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"c"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"d"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"e"}]}]}]}]}]}]}]},null]},null]},null]},null]},null]},null]}},"sourceSpan":{"start":[91,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Apply.purs","end":[91,99]}},{"children":[],"comments":"Lift a function of five arguments to a function which accepts and returns\nvalues wrapped with the type constructor `f`.\n","title":"lift5","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["d",{"annotation":[],"tag":"ForAll","contents":["e",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["g",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Apply"],"Apply"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintKindArgs":[],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"e"}]},{"annotation":[],"tag":"TypeVar","contents":"g"}]}]}]}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"c"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"d"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"e"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"g"}]}]}]}]}]}]}]}]},null]},null]},null]},null]},null]},null]},null]}},"sourceSpan":{"start":[96,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Apply.purs","end":[96,113]}}]},{"reExports":[{"moduleName":{"package":null,"item":["Control","Applicative"]},"declarations":[{"children":[{"comments":null,"title":"pure","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},null]}},"sourceSpan":{"start":[34,3],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Applicative.purs","end":[34,29]}},{"comments":null,"title":"applicativeFn","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Applicative"],"Applicative"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}]}},"sourceSpan":{"start":[36,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Applicative.purs","end":[37,15]}},{"comments":null,"title":"applicativeArray","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Applicative"],"Applicative"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]}]}},"sourceSpan":{"start":[39,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Applicative.purs","end":[40,15]}},{"comments":null,"title":"applicativeProxy","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Applicative"],"Applicative"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy"]}]}},"sourceSpan":{"start":[42,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Applicative.purs","end":[43,17]}}],"comments":"The `Applicative` type class extends the [`Apply`](#apply) type class\nwith a `pure` function, which can be used to create values of type `f a`\nfrom values of type `a`.\n\nWhere [`Apply`](#apply) provides the ability to lift functions of two or\nmore arguments to functions whose arguments are wrapped using `f`, and\n[`Functor`](#functor) provides the ability to lift functions of one\nargument, `pure` can be seen as the function which lifts functions of\n_zero_ arguments. That is, `Applicative` functors support a lifting\noperation for any number of function arguments.\n\nInstances must satisfy the following laws in addition to the `Apply`\nlaws:\n\n- Identity: `(pure identity) <*> v = v`\n- Composition: `pure (<<<) <*> f <*> g <*> h = f <*> (g <*> h)`\n- Homomorphism: `(pure f) <*> (pure x) = pure (f x)`\n- Interchange: `u <*> (pure y) = (pure (_ $ y)) <*> u`\n","title":"Applicative","info":{"fundeps":[],"arguments":[["f",null]],"declType":"typeClass","superclasses":[{"constraintAnn":[],"constraintClass":[["Control","Apply"],"Apply"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintKindArgs":[],"constraintData":null}]},"sourceSpan":{"start":[33,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Applicative.purs","end":[34,29]}},{"children":[],"comments":"Perform an applicative action when a condition is true.\n","title":"when","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Applicative"],"Applicative"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintKindArgs":[],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}]}]},null]}},"sourceSpan":{"start":[61,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Applicative.purs","end":[61,63]}},{"children":[],"comments":"Perform an applicative action unless a condition is true.\n","title":"unless","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Applicative"],"Applicative"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintKindArgs":[],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}]}]},null]}},"sourceSpan":{"start":[66,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Applicative.purs","end":[66,65]}},{"children":[],"comments":"`liftA1` provides a default implementation of `(<$>)` for any\n[`Applicative`](#applicative) functor, without using `(<$>)` as provided\nby the [`Functor`](#functor)-[`Applicative`](#applicative) superclass\nrelationship.\n\n`liftA1` can therefore be used to write [`Functor`](#functor) instances\nas follows:\n\n```purescript\ninstance functorF :: Functor F where\n  map = liftA1\n```\n","title":"liftA1","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Applicative"],"Applicative"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintKindArgs":[],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}]}]},null]},null]},null]}},"sourceSpan":{"start":[57,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Applicative.purs","end":[57,64]}}]},{"moduleName":{"package":null,"item":["Control","Apply"]},"declarations":[{"children":[{"comments":null,"title":"apply","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}]},null]},null]}},"sourceSpan":{"start":[46,3],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Apply.purs","end":[46,48]}},{"comments":null,"title":"applyFn","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Apply"],"Apply"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}]}},"sourceSpan":{"start":[50,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Apply.purs","end":[51,26]}},{"comments":null,"title":"applyArray","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Apply"],"Apply"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]}]}},"sourceSpan":{"start":[53,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Apply.purs","end":[54,21]}},{"comments":null,"title":"applyProxy","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Apply"],"Apply"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy"]}]}},"sourceSpan":{"start":[58,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Apply.purs","end":[59,20]}}],"comments":"The `Apply` class provides the `(<*>)` which is used to apply a function\nto an argument under a type constructor.\n\n`Apply` can be used to lift functions of two or more arguments to work on\nvalues wrapped with the type constructor `f`. It might also be understood\nin terms of the `lift2` function:\n\n```purescript\nlift2 :: forall f a b c. Apply f => (a -> b -> c) -> f a -> f b -> f c\nlift2 f a b = f <$> a <*> b\n```\n\n`(<*>)` is recovered from `lift2` as `lift2 ($)`. That is, `(<*>)` lifts\nthe function application operator `($)` to arguments wrapped with the\ntype constructor `f`.\n\nPut differently...\n```\nfoo =\n  functionTakingNArguments <$> computationProducingArg1\n                           <*> computationProducingArg2\n                           <*> ...\n                           <*> computationProducingArgN\n```\n\nInstances must satisfy the following law in addition to the `Functor`\nlaws:\n\n- Associative composition: `(<<<) <$> f <*> g <*> h = f <*> (g <*> h)`\n\nFormally, `Apply` represents a strong lax semi-monoidal endofunctor.\n","title":"Apply","info":{"fundeps":[],"arguments":[["f",null]],"declType":"typeClass","superclasses":[{"constraintAnn":[],"constraintClass":[["Data","Functor"],"Functor"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintKindArgs":[],"constraintData":null}]},"sourceSpan":{"start":[45,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Apply.purs","end":[46,48]}},{"children":[],"comments":null,"title":"(<*>)","info":{"declType":"alias","alias":[["Control","Apply"],{"Right":{"Left":{"Ident":"apply"}}}],"fixity":{"associativity":"infixl","precedence":4}},"sourceSpan":{"start":[48,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Apply.purs","end":[48,22]}},{"children":[],"comments":null,"title":"(<*)","info":{"declType":"alias","alias":[["Control","Apply"],{"Right":{"Left":{"Ident":"applyFirst"}}}],"fixity":{"associativity":"infixl","precedence":4}},"sourceSpan":{"start":[65,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Apply.purs","end":[65,26]}},{"children":[],"comments":null,"title":"(*>)","info":{"declType":"alias","alias":[["Control","Apply"],{"Right":{"Left":{"Ident":"applySecond"}}}],"fixity":{"associativity":"infixl","precedence":4}},"sourceSpan":{"start":[71,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Apply.purs","end":[71,27]}}]},{"moduleName":{"package":null,"item":["Data","Functor"]},"declarations":[{"children":[{"comments":null,"title":"map","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}]},null]},null]}},"sourceSpan":{"start":[26,3],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Functor.purs","end":[26,44]}},{"comments":null,"title":"functorFn","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Functor"],"Functor"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}]}},"sourceSpan":{"start":[40,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Functor.purs","end":[41,16]}},{"comments":null,"title":"functorArray","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Functor"],"Functor"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]}]}},"sourceSpan":{"start":[43,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Functor.purs","end":[44,17]}},{"comments":null,"title":"functorProxy","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Functor"],"Functor"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy"]}]}},"sourceSpan":{"start":[46,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Functor.purs","end":[47,18]}}],"comments":"A `Functor` is a type constructor which supports a mapping operation\n`map`.\n\n`map` can be used to turn functions `a -> b` into functions\n`f a -> f b` whose argument and return types use the type constructor `f`\nto represent some computational context.\n\nInstances must satisfy the following laws:\n\n- Identity: `map identity = identity`\n- Composition: `map (f <<< g) = map f <<< map g`\n","title":"Functor","info":{"fundeps":[],"arguments":[["f",null]],"declType":"typeClass","superclasses":[]},"sourceSpan":{"start":[25,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Functor.purs","end":[26,44]}},{"children":[],"comments":"The `void` function is used to ignore the type wrapped by a\n[`Functor`](#functor), replacing it with `Unit` and keeping only the type\ninformation provided by the type constructor itself.\n\n`void` is often useful when using `do` notation to change the return type\nof a monadic computation:\n\n```purescript\nmain = forE 1 10 \\n -> void do\n  print n\n  print (n * n)\n```\n","title":"void","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Functor"],"Functor"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintKindArgs":[],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}]},null]},null]}},"sourceSpan":{"start":[63,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Functor.purs","end":[63,47]}},{"children":[],"comments":null,"title":"(<$>)","info":{"declType":"alias","alias":[["Data","Functor"],{"Right":{"Left":{"Ident":"map"}}}],"fixity":{"associativity":"infixl","precedence":4}},"sourceSpan":{"start":[28,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Functor.purs","end":[28,20]}},{"children":[],"comments":null,"title":"(<$)","info":{"declType":"alias","alias":[["Data","Functor"],{"Right":{"Left":{"Ident":"voidRight"}}}],"fixity":{"associativity":"infixl","precedence":4}},"sourceSpan":{"start":[71,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Functor.purs","end":[71,25]}},{"children":[],"comments":null,"title":"(<#>)","info":{"declType":"alias","alias":[["Data","Functor"],{"Right":{"Left":{"Ident":"mapFlipped"}}}],"fixity":{"associativity":"infixl","precedence":1}},"sourceSpan":{"start":[38,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Functor.purs","end":[38,27]}},{"children":[],"comments":null,"title":"($>)","info":{"declType":"alias","alias":[["Data","Functor"],{"Right":{"Left":{"Ident":"voidLeft"}}}],"fixity":{"associativity":"infixl","precedence":4}},"sourceSpan":{"start":[77,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Functor.purs","end":[77,24]}}]}],"name":"Control.Bind","comments":null,"declarations":[{"children":[{"comments":null,"title":"bind","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}]},null]},null]}},"sourceSpan":{"start":[51,3],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Bind.purs","end":[51,47]}},{"comments":null,"title":"bindFn","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Bind"],"Bind"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}]}},"sourceSpan":{"start":[65,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Bind.purs","end":[66,25]}},{"comments":"The `bind`/`>>=` function for `Array` works by applying a function to\neach element in the array, and flattening the results into a single,\nnew array.\n\nArray's `bind`/`>>=` works like a nested for loop. Each `bind` adds\nanother level of nesting in the loop. For example:\n```\nfoo :: Array String\nfoo =\n  [\"a\", \"b\"] >>= \\eachElementInArray1 ->\n    [\"c\", \"d\"] >>= \\eachElementInArray2\n      pure (eachElementInArray1 <> eachElementInArray2)\n\n-- In other words...\nfoo\n-- ... is the same as...\n[ (\"a\" <> \"c\"), (\"a\" <> \"d\"), (\"b\" <> \"c\"), (\"b\" <> \"d\") ]\n-- which simplifies to...\n[ \"ac\", \"ad\", \"bc\", \"bd\" ]\n```\n","title":"bindArray","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Bind"],"Bind"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]}]}},"sourceSpan":{"start":[88,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Bind.purs","end":[89,19]}},{"comments":null,"title":"bindProxy","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Bind"],"Bind"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy"]}]}},"sourceSpan":{"start":[93,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Bind.purs","end":[94,19]}}],"comments":"The `Bind` type class extends the [`Apply`](#apply) type class with a\n\"bind\" operation `(>>=)` which composes computations in sequence, using\nthe return value of one computation to determine the next computation.\n\nThe `>>=` operator can also be expressed using `do` notation, as follows:\n\n```purescript\nx >>= f = do y <- x\n             f y\n```\n\nwhere the function argument of `f` is given the name `y`.\n\nInstances must satisfy the following laws in addition to the `Apply`\nlaws:\n\n- Associativity: `(x >>= f) >>= g = x >>= (\\k -> f k >>= g)`\n- Apply Superclass: `apply f x = f >>= \\f’ -> map f’ x`\n\nAssociativity tells us that we can regroup operations which use `do`\nnotation so that we can unambiguously write, for example:\n\n```purescript\ndo x <- m1\n   y <- m2 x\n   m3 x y\n```\n","title":"Bind","info":{"fundeps":[],"arguments":[["m",null]],"declType":"typeClass","superclasses":[{"constraintAnn":[],"constraintClass":[["Control","Apply"],"Apply"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintKindArgs":[],"constraintData":null}]},"sourceSpan":{"start":[50,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Bind.purs","end":[51,47]}},{"children":[],"comments":null,"title":"(>>=)","info":{"declType":"alias","alias":[["Control","Bind"],{"Right":{"Left":{"Ident":"bind"}}}],"fixity":{"associativity":"infixl","precedence":1}},"sourceSpan":{"start":[53,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Bind.purs","end":[53,21]}},{"children":[],"comments":"`bindFlipped` is `bind` with its arguments reversed. For example:\n\n```purescript\nprint =<< random\n```\n","title":"bindFlipped","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Bind"],"Bind"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintKindArgs":[],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}]}]},null]},null]},null]}},"sourceSpan":{"start":[60,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Bind.purs","end":[60,64]}},{"children":[],"comments":null,"title":"(=<<)","info":{"declType":"alias","alias":[["Control","Bind"],{"Right":{"Left":{"Ident":"bindFlipped"}}}],"fixity":{"associativity":"infixr","precedence":1}},"sourceSpan":{"start":[63,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Bind.purs","end":[63,28]}},{"children":[{"comments":null,"title":"discard","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Bind"],"Bind"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintKindArgs":[],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}]}]},null]},null]}},"sourceSpan":{"start":[102,3],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Bind.purs","end":[102,60]}},{"comments":null,"title":"discardUnit","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Bind"],"Discard"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}},"sourceSpan":{"start":[104,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Bind.purs","end":[105,17]}},{"comments":null,"title":"discardProxy","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Bind"],"Discard"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[107,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Bind.purs","end":[108,17]}},{"comments":null,"title":"discardProxy2","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Bind"],"Discard"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy2"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[110,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Bind.purs","end":[111,17]}},{"comments":null,"title":"discardProxy3","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Bind"],"Discard"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy3"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[113,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Bind.purs","end":[114,17]}}],"comments":"A class for types whose values can safely be discarded\nin a `do` notation block.\n\nAn example is the `Unit` type, since there is only one\npossible value which can be returned.\n","title":"Discard","info":{"fundeps":[],"arguments":[["a",null]],"declType":"typeClass","superclasses":[]},"sourceSpan":{"start":[101,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Bind.purs","end":[102,60]}},{"children":[],"comments":"Collapse two applications of a monadic type constructor into one.\n","title":"join","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Bind"],"Bind"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintKindArgs":[],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]},null]},null]}},"sourceSpan":{"start":[117,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Bind.purs","end":[117,45]}},{"children":[],"comments":"Forwards Kleisli composition.\n\nFor example:\n\n```purescript\nimport Data.Array (head, tail)\n\nthird = tail >=> tail >=> head\n```\n","title":"composeKleisli","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Bind"],"Bind"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintKindArgs":[],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"c"}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"c"}]}]}]}]}]},null]},null]},null]},null]}},"sourceSpan":{"start":[129,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Bind.purs","end":[129,81]}},{"children":[],"comments":null,"title":"(>=>)","info":{"declType":"alias","alias":[["Control","Bind"],{"Right":{"Left":{"Ident":"composeKleisli"}}}],"fixity":{"associativity":"infixr","precedence":1}},"sourceSpan":{"start":[132,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Bind.purs","end":[132,31]}},{"children":[],"comments":"Backwards Kleisli composition.\n","title":"composeKleisliFlipped","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Bind"],"Bind"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintKindArgs":[],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"c"}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"c"}]}]}]}]}]},null]},null]},null]},null]}},"sourceSpan":{"start":[135,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Bind.purs","end":[135,88]}},{"children":[],"comments":null,"title":"(<=<)","info":{"declType":"alias","alias":[["Control","Bind"],{"Right":{"Left":{"Ident":"composeKleisliFlipped"}}}],"fixity":{"associativity":"infixr","precedence":1}},"sourceSpan":{"start":[138,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Bind.purs","end":[138,38]}},{"children":[],"comments":"Execute a monadic action if a condition holds.\n\nFor example:\n\n```purescript\nmain = ifM ((< 0.5) <$> random)\n         (trace \"Heads\")\n         (trace \"Tails\")\n```\n","title":"ifM","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Bind"],"Bind"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintKindArgs":[],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]}]}]},null]},null]}},"sourceSpan":{"start":[149,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Bind.purs","end":[149,60]}}]},{"reExports":[{"moduleName":{"package":null,"item":["Control","Semigroupoid"]},"declarations":[{"children":[{"comments":null,"title":"compose","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["d",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"a"},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"d"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"a"},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"a"},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"d"}]}]}]},null]},null]},null]}},"sourceSpan":{"start":[14,3],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Semigroupoid.purs","end":[14,51]}},{"comments":null,"title":"semigroupoidFn","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Semigroupoid"],"Semigroupoid"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]}]}},"sourceSpan":{"start":[16,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Semigroupoid.purs","end":[17,26]}}],"comments":null,"title":"Semigroupoid","info":{"fundeps":[],"arguments":[["a",null]],"declType":"typeClass","superclasses":[]},"sourceSpan":{"start":[13,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Semigroupoid.purs","end":[14,51]}},{"children":[],"comments":null,"title":"(>>>)","info":{"declType":"alias","alias":[["Control","Semigroupoid"],{"Right":{"Left":{"Ident":"composeFlipped"}}}],"fixity":{"associativity":"infixr","precedence":9}},"sourceSpan":{"start":[25,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Semigroupoid.purs","end":[25,31]}},{"children":[],"comments":null,"title":"(<<<)","info":{"declType":"alias","alias":[["Control","Semigroupoid"],{"Right":{"Left":{"Ident":"compose"}}}],"fixity":{"associativity":"infixr","precedence":9}},"sourceSpan":{"start":[19,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Semigroupoid.purs","end":[19,24]}}]}],"name":"Control.Category","comments":null,"declarations":[{"children":[{"comments":null,"title":"identity","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"ForAll","contents":["t",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"a"},{"annotation":[],"tag":"TypeVar","contents":"t"}]},{"annotation":[],"tag":"TypeVar","contents":"t"}]},null]}},"sourceSpan":{"start":[18,3],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Category.purs","end":[18,30]}},{"comments":null,"title":"categoryFn","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Category"],"Category"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]}]}},"sourceSpan":{"start":[20,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Category.purs","end":[21,17]}}],"comments":null,"title":"Category","info":{"fundeps":[],"arguments":[["a",null]],"declType":"typeClass","superclasses":[{"constraintAnn":[],"constraintClass":[["Control","Semigroupoid"],"Semigroupoid"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null}]},"sourceSpan":{"start":[17,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Category.purs","end":[18,30]}}]},{"reExports":[{"moduleName":{"package":null,"item":["Control","Applicative"]},"declarations":[{"children":[{"comments":null,"title":"pure","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},null]}},"sourceSpan":{"start":[34,3],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Applicative.purs","end":[34,29]}},{"comments":null,"title":"applicativeFn","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Applicative"],"Applicative"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}]}},"sourceSpan":{"start":[36,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Applicative.purs","end":[37,15]}},{"comments":null,"title":"applicativeArray","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Applicative"],"Applicative"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]}]}},"sourceSpan":{"start":[39,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Applicative.purs","end":[40,15]}},{"comments":null,"title":"applicativeProxy","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Applicative"],"Applicative"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy"]}]}},"sourceSpan":{"start":[42,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Applicative.purs","end":[43,17]}}],"comments":"The `Applicative` type class extends the [`Apply`](#apply) type class\nwith a `pure` function, which can be used to create values of type `f a`\nfrom values of type `a`.\n\nWhere [`Apply`](#apply) provides the ability to lift functions of two or\nmore arguments to functions whose arguments are wrapped using `f`, and\n[`Functor`](#functor) provides the ability to lift functions of one\nargument, `pure` can be seen as the function which lifts functions of\n_zero_ arguments. That is, `Applicative` functors support a lifting\noperation for any number of function arguments.\n\nInstances must satisfy the following laws in addition to the `Apply`\nlaws:\n\n- Identity: `(pure identity) <*> v = v`\n- Composition: `pure (<<<) <*> f <*> g <*> h = f <*> (g <*> h)`\n- Homomorphism: `(pure f) <*> (pure x) = pure (f x)`\n- Interchange: `u <*> (pure y) = (pure (_ $ y)) <*> u`\n","title":"Applicative","info":{"fundeps":[],"arguments":[["f",null]],"declType":"typeClass","superclasses":[{"constraintAnn":[],"constraintClass":[["Control","Apply"],"Apply"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintKindArgs":[],"constraintData":null}]},"sourceSpan":{"start":[33,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Applicative.purs","end":[34,29]}},{"children":[],"comments":"Perform an applicative action when a condition is true.\n","title":"when","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Applicative"],"Applicative"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintKindArgs":[],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}]}]},null]}},"sourceSpan":{"start":[61,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Applicative.purs","end":[61,63]}},{"children":[],"comments":"Perform an applicative action unless a condition is true.\n","title":"unless","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Applicative"],"Applicative"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintKindArgs":[],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}]}]},null]}},"sourceSpan":{"start":[66,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Applicative.purs","end":[66,65]}},{"children":[],"comments":"`liftA1` provides a default implementation of `(<$>)` for any\n[`Applicative`](#applicative) functor, without using `(<$>)` as provided\nby the [`Functor`](#functor)-[`Applicative`](#applicative) superclass\nrelationship.\n\n`liftA1` can therefore be used to write [`Functor`](#functor) instances\nas follows:\n\n```purescript\ninstance functorF :: Functor F where\n  map = liftA1\n```\n","title":"liftA1","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Applicative"],"Applicative"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintKindArgs":[],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}]}]},null]},null]},null]}},"sourceSpan":{"start":[57,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Applicative.purs","end":[57,64]}}]},{"moduleName":{"package":null,"item":["Control","Apply"]},"declarations":[{"children":[{"comments":null,"title":"apply","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}]},null]},null]}},"sourceSpan":{"start":[46,3],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Apply.purs","end":[46,48]}},{"comments":null,"title":"applyFn","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Apply"],"Apply"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}]}},"sourceSpan":{"start":[50,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Apply.purs","end":[51,26]}},{"comments":null,"title":"applyArray","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Apply"],"Apply"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]}]}},"sourceSpan":{"start":[53,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Apply.purs","end":[54,21]}},{"comments":null,"title":"applyProxy","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Apply"],"Apply"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy"]}]}},"sourceSpan":{"start":[58,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Apply.purs","end":[59,20]}}],"comments":"The `Apply` class provides the `(<*>)` which is used to apply a function\nto an argument under a type constructor.\n\n`Apply` can be used to lift functions of two or more arguments to work on\nvalues wrapped with the type constructor `f`. It might also be understood\nin terms of the `lift2` function:\n\n```purescript\nlift2 :: forall f a b c. Apply f => (a -> b -> c) -> f a -> f b -> f c\nlift2 f a b = f <$> a <*> b\n```\n\n`(<*>)` is recovered from `lift2` as `lift2 ($)`. That is, `(<*>)` lifts\nthe function application operator `($)` to arguments wrapped with the\ntype constructor `f`.\n\nPut differently...\n```\nfoo =\n  functionTakingNArguments <$> computationProducingArg1\n                           <*> computationProducingArg2\n                           <*> ...\n                           <*> computationProducingArgN\n```\n\nInstances must satisfy the following law in addition to the `Functor`\nlaws:\n\n- Associative composition: `(<<<) <$> f <*> g <*> h = f <*> (g <*> h)`\n\nFormally, `Apply` represents a strong lax semi-monoidal endofunctor.\n","title":"Apply","info":{"fundeps":[],"arguments":[["f",null]],"declType":"typeClass","superclasses":[{"constraintAnn":[],"constraintClass":[["Data","Functor"],"Functor"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintKindArgs":[],"constraintData":null}]},"sourceSpan":{"start":[45,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Apply.purs","end":[46,48]}},{"children":[],"comments":null,"title":"(<*>)","info":{"declType":"alias","alias":[["Control","Apply"],{"Right":{"Left":{"Ident":"apply"}}}],"fixity":{"associativity":"infixl","precedence":4}},"sourceSpan":{"start":[48,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Apply.purs","end":[48,22]}},{"children":[],"comments":null,"title":"(<*)","info":{"declType":"alias","alias":[["Control","Apply"],{"Right":{"Left":{"Ident":"applyFirst"}}}],"fixity":{"associativity":"infixl","precedence":4}},"sourceSpan":{"start":[65,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Apply.purs","end":[65,26]}},{"children":[],"comments":null,"title":"(*>)","info":{"declType":"alias","alias":[["Control","Apply"],{"Right":{"Left":{"Ident":"applySecond"}}}],"fixity":{"associativity":"infixl","precedence":4}},"sourceSpan":{"start":[71,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Apply.purs","end":[71,27]}}]},{"moduleName":{"package":null,"item":["Control","Bind"]},"declarations":[{"children":[{"comments":null,"title":"bind","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}]},null]},null]}},"sourceSpan":{"start":[51,3],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Bind.purs","end":[51,47]}},{"comments":null,"title":"bindFn","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Bind"],"Bind"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}]}},"sourceSpan":{"start":[65,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Bind.purs","end":[66,25]}},{"comments":"The `bind`/`>>=` function for `Array` works by applying a function to\neach element in the array, and flattening the results into a single,\nnew array.\n\nArray's `bind`/`>>=` works like a nested for loop. Each `bind` adds\nanother level of nesting in the loop. For example:\n```\nfoo :: Array String\nfoo =\n  [\"a\", \"b\"] >>= \\eachElementInArray1 ->\n    [\"c\", \"d\"] >>= \\eachElementInArray2\n      pure (eachElementInArray1 <> eachElementInArray2)\n\n-- In other words...\nfoo\n-- ... is the same as...\n[ (\"a\" <> \"c\"), (\"a\" <> \"d\"), (\"b\" <> \"c\"), (\"b\" <> \"d\") ]\n-- which simplifies to...\n[ \"ac\", \"ad\", \"bc\", \"bd\" ]\n```\n","title":"bindArray","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Bind"],"Bind"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]}]}},"sourceSpan":{"start":[88,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Bind.purs","end":[89,19]}},{"comments":null,"title":"bindProxy","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Bind"],"Bind"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy"]}]}},"sourceSpan":{"start":[93,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Bind.purs","end":[94,19]}}],"comments":"The `Bind` type class extends the [`Apply`](#apply) type class with a\n\"bind\" operation `(>>=)` which composes computations in sequence, using\nthe return value of one computation to determine the next computation.\n\nThe `>>=` operator can also be expressed using `do` notation, as follows:\n\n```purescript\nx >>= f = do y <- x\n             f y\n```\n\nwhere the function argument of `f` is given the name `y`.\n\nInstances must satisfy the following laws in addition to the `Apply`\nlaws:\n\n- Associativity: `(x >>= f) >>= g = x >>= (\\k -> f k >>= g)`\n- Apply Superclass: `apply f x = f >>= \\f’ -> map f’ x`\n\nAssociativity tells us that we can regroup operations which use `do`\nnotation so that we can unambiguously write, for example:\n\n```purescript\ndo x <- m1\n   y <- m2 x\n   m3 x y\n```\n","title":"Bind","info":{"fundeps":[],"arguments":[["m",null]],"declType":"typeClass","superclasses":[{"constraintAnn":[],"constraintClass":[["Control","Apply"],"Apply"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintKindArgs":[],"constraintData":null}]},"sourceSpan":{"start":[50,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Bind.purs","end":[51,47]}},{"children":[],"comments":"Collapse two applications of a monadic type constructor into one.\n","title":"join","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Bind"],"Bind"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintKindArgs":[],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]},null]},null]}},"sourceSpan":{"start":[117,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Bind.purs","end":[117,45]}},{"children":[],"comments":"Execute a monadic action if a condition holds.\n\nFor example:\n\n```purescript\nmain = ifM ((< 0.5) <$> random)\n         (trace \"Heads\")\n         (trace \"Tails\")\n```\n","title":"ifM","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Bind"],"Bind"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintKindArgs":[],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]}]}]},null]},null]}},"sourceSpan":{"start":[149,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Bind.purs","end":[149,60]}},{"children":[],"comments":null,"title":"(>>=)","info":{"declType":"alias","alias":[["Control","Bind"],{"Right":{"Left":{"Ident":"bind"}}}],"fixity":{"associativity":"infixl","precedence":1}},"sourceSpan":{"start":[53,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Bind.purs","end":[53,21]}},{"children":[],"comments":null,"title":"(>=>)","info":{"declType":"alias","alias":[["Control","Bind"],{"Right":{"Left":{"Ident":"composeKleisli"}}}],"fixity":{"associativity":"infixr","precedence":1}},"sourceSpan":{"start":[132,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Bind.purs","end":[132,31]}},{"children":[],"comments":null,"title":"(=<<)","info":{"declType":"alias","alias":[["Control","Bind"],{"Right":{"Left":{"Ident":"bindFlipped"}}}],"fixity":{"associativity":"infixr","precedence":1}},"sourceSpan":{"start":[63,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Bind.purs","end":[63,28]}},{"children":[],"comments":null,"title":"(<=<)","info":{"declType":"alias","alias":[["Control","Bind"],{"Right":{"Left":{"Ident":"composeKleisliFlipped"}}}],"fixity":{"associativity":"infixr","precedence":1}},"sourceSpan":{"start":[138,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Bind.purs","end":[138,38]}}]},{"moduleName":{"package":null,"item":["Data","Functor"]},"declarations":[{"children":[{"comments":null,"title":"map","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}]},null]},null]}},"sourceSpan":{"start":[26,3],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Functor.purs","end":[26,44]}},{"comments":null,"title":"functorFn","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Functor"],"Functor"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}]}},"sourceSpan":{"start":[40,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Functor.purs","end":[41,16]}},{"comments":null,"title":"functorArray","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Functor"],"Functor"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]}]}},"sourceSpan":{"start":[43,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Functor.purs","end":[44,17]}},{"comments":null,"title":"functorProxy","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Functor"],"Functor"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy"]}]}},"sourceSpan":{"start":[46,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Functor.purs","end":[47,18]}}],"comments":"A `Functor` is a type constructor which supports a mapping operation\n`map`.\n\n`map` can be used to turn functions `a -> b` into functions\n`f a -> f b` whose argument and return types use the type constructor `f`\nto represent some computational context.\n\nInstances must satisfy the following laws:\n\n- Identity: `map identity = identity`\n- Composition: `map (f <<< g) = map f <<< map g`\n","title":"Functor","info":{"fundeps":[],"arguments":[["f",null]],"declType":"typeClass","superclasses":[]},"sourceSpan":{"start":[25,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Functor.purs","end":[26,44]}},{"children":[],"comments":"The `void` function is used to ignore the type wrapped by a\n[`Functor`](#functor), replacing it with `Unit` and keeping only the type\ninformation provided by the type constructor itself.\n\n`void` is often useful when using `do` notation to change the return type\nof a monadic computation:\n\n```purescript\nmain = forE 1 10 \\n -> void do\n  print n\n  print (n * n)\n```\n","title":"void","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Functor"],"Functor"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintKindArgs":[],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}]},null]},null]}},"sourceSpan":{"start":[63,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Functor.purs","end":[63,47]}},{"children":[],"comments":null,"title":"(<$>)","info":{"declType":"alias","alias":[["Data","Functor"],{"Right":{"Left":{"Ident":"map"}}}],"fixity":{"associativity":"infixl","precedence":4}},"sourceSpan":{"start":[28,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Functor.purs","end":[28,20]}},{"children":[],"comments":null,"title":"(<$)","info":{"declType":"alias","alias":[["Data","Functor"],{"Right":{"Left":{"Ident":"voidRight"}}}],"fixity":{"associativity":"infixl","precedence":4}},"sourceSpan":{"start":[71,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Functor.purs","end":[71,25]}},{"children":[],"comments":null,"title":"(<#>)","info":{"declType":"alias","alias":[["Data","Functor"],{"Right":{"Left":{"Ident":"mapFlipped"}}}],"fixity":{"associativity":"infixl","precedence":1}},"sourceSpan":{"start":[38,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Functor.purs","end":[38,27]}},{"children":[],"comments":null,"title":"($>)","info":{"declType":"alias","alias":[["Data","Functor"],{"Right":{"Left":{"Ident":"voidLeft"}}}],"fixity":{"associativity":"infixl","precedence":4}},"sourceSpan":{"start":[77,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Functor.purs","end":[77,24]}}]}],"name":"Control.Monad","comments":null,"declarations":[{"children":[{"comments":null,"title":"monadFn","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Monad"],"Monad"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}]}},"sourceSpan":{"start":[33,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Monad.purs","end":[33,35]}},{"comments":null,"title":"monadArray","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Monad"],"Monad"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]}]}},"sourceSpan":{"start":[35,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Monad.purs","end":[35,35]}},{"comments":null,"title":"monadProxy","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Monad"],"Monad"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy"]}]}},"sourceSpan":{"start":[37,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Monad.purs","end":[37,35]}}],"comments":"The `Monad` type class combines the operations of the `Bind` and\n`Applicative` type classes. Therefore, `Monad` instances represent type\nconstructors which support sequential composition, and also lifting of\nfunctions of arbitrary arity.\n\nInstances must satisfy the following laws in addition to the\n`Applicative` and `Bind` laws:\n\n- Left Identity: `pure x >>= f = f x`\n- Right Identity: `x >>= pure = x`\n","title":"Monad","info":{"fundeps":[],"arguments":[["m",null]],"declType":"typeClass","superclasses":[{"constraintAnn":[],"constraintClass":[["Control","Applicative"],"Applicative"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintKindArgs":[],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Control","Bind"],"Bind"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintKindArgs":[],"constraintData":null}]},"sourceSpan":{"start":[31,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Monad.purs","end":[31,41]}},{"children":[],"comments":"`liftM1` provides a default implementation of `(<$>)` for any\n[`Monad`](#monad), without using `(<$>)` as provided by the\n[`Functor`](#functor)-[`Monad`](#monad) superclass relationship.\n\n`liftM1` can therefore be used to write [`Functor`](#functor) instances\nas follows:\n\n```purescript\ninstance functorF :: Functor F where\n  map = liftM1\n```\n","title":"liftM1","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Monad"],"Monad"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintKindArgs":[],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}]}]},null]},null]},null]}},"sourceSpan":{"start":[50,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Monad.purs","end":[50,58]}},{"children":[],"comments":"Perform a monadic action when a condition is true, where the conditional\nvalue is also in a monadic context.\n","title":"whenM","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Monad"],"Monad"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintKindArgs":[],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}]}]},null]}},"sourceSpan":{"start":[57,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Monad.purs","end":[57,60]}},{"children":[],"comments":"Perform a monadic action unless a condition is true, where the conditional\nvalue is also in a monadic context.\n","title":"unlessM","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Monad"],"Monad"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintKindArgs":[],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}]}]},null]}},"sourceSpan":{"start":[64,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Monad.purs","end":[64,62]}},{"children":[],"comments":"`ap` provides a default implementation of `(<*>)` for any `Monad`, without\nusing `(<*>)` as provided by the `Apply`-`Monad` superclass relationship.\n\n`ap` can therefore be used to write `Apply` instances as follows:\n\n```purescript\ninstance applyF :: Apply F where\n  apply = ap\n```\n","title":"ap","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Monad"],"Monad"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintKindArgs":[],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}]}]},null]},null]},null]}},"sourceSpan":{"start":[82,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Monad.purs","end":[82,56]}}]},{"reExports":[],"name":"Control.Semigroupoid","comments":null,"declarations":[{"children":[{"comments":null,"title":"compose","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["d",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"a"},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"d"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"a"},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"a"},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"d"}]}]}]},null]},null]},null]}},"sourceSpan":{"start":[14,3],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Semigroupoid.purs","end":[14,51]}},{"comments":null,"title":"semigroupoidFn","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Semigroupoid"],"Semigroupoid"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]}]}},"sourceSpan":{"start":[16,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Semigroupoid.purs","end":[17,26]}}],"comments":null,"title":"Semigroupoid","info":{"fundeps":[],"arguments":[["a",null]],"declType":"typeClass","superclasses":[]},"sourceSpan":{"start":[13,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Semigroupoid.purs","end":[14,51]}},{"children":[],"comments":null,"title":"(<<<)","info":{"declType":"alias","alias":[["Control","Semigroupoid"],{"Right":{"Left":{"Ident":"compose"}}}],"fixity":{"associativity":"infixr","precedence":9}},"sourceSpan":{"start":[19,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Semigroupoid.purs","end":[19,24]}},{"children":[],"comments":"Forwards composition, or `compose` with its arguments reversed.\n","title":"composeFlipped","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["d",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Semigroupoid"],"Semigroupoid"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"a"},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"a"},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"d"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"a"},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"d"}]}]}]}]},null]},null]},null]},null]}},"sourceSpan":{"start":[22,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Semigroupoid.purs","end":[22,76]}},{"children":[],"comments":null,"title":"(>>>)","info":{"declType":"alias","alias":[["Control","Semigroupoid"],{"Right":{"Left":{"Ident":"composeFlipped"}}}],"fixity":{"associativity":"infixr","precedence":9}},"sourceSpan":{"start":[25,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Semigroupoid.purs","end":[25,31]}}]},{"reExports":[],"name":"Data.Boolean","comments":null,"declarations":[{"children":[],"comments":"An alias for `true`, which can be useful in guard clauses:\n\n```purescript\nmax x y | x >= y    = x\n        | otherwise = y\n```\n","title":"otherwise","info":{"declType":"value","type":{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}},"sourceSpan":{"start":[9,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Boolean.purs","end":[9,21]}}]},{"reExports":[{"moduleName":{"package":null,"item":["Data","HeytingAlgebra"]},"declarations":[{"children":[{"comments":null,"title":"ff","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeVar","contents":"a"}},"sourceSpan":{"start":[39,3],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[39,10]}},{"comments":null,"title":"tt","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeVar","contents":"a"}},"sourceSpan":{"start":[40,3],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[40,10]}},{"comments":null,"title":"implies","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[41,3],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[41,25]}},{"comments":null,"title":"conj","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[42,3],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[42,22]}},{"comments":null,"title":"disj","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[43,3],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[43,22]}},{"comments":null,"title":"not","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}},"sourceSpan":{"start":[44,3],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[44,16]}},{"comments":null,"title":"heytingAlgebraBoolean","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","HeytingAlgebra"],"HeytingAlgebra"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}},"sourceSpan":{"start":[49,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[55,16]}},{"comments":null,"title":"heytingAlgebraUnit","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","HeytingAlgebra"],"HeytingAlgebra"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}},"sourceSpan":{"start":[57,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[63,15]}},{"comments":null,"title":"heytingAlgebraFunction","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","HeytingAlgebra"],"HeytingAlgebra"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"b"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","HeytingAlgebra"],"HeytingAlgebra"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}},"sourceSpan":{"start":[65,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[71,22]}},{"comments":null,"title":"heytingAlgebraProxy","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","HeytingAlgebra"],"HeytingAlgebra"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[73,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[79,13]}},{"comments":null,"title":"heytingAlgebraProxy2","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","HeytingAlgebra"],"HeytingAlgebra"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy2"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[81,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[87,14]}},{"comments":null,"title":"heytingAlgebraProxy3","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","HeytingAlgebra"],"HeytingAlgebra"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy3"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[89,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[95,14]}},{"comments":null,"title":"heytingAlgebraRecord","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Prim","RowList"],"RowToList"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"row"},{"annotation":[],"tag":"TypeVar","contents":"list"}],"constraintKindArgs":[],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","HeytingAlgebra"],"HeytingAlgebraRecord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"list"},{"annotation":[],"tag":"TypeVar","contents":"row"},{"annotation":[],"tag":"TypeVar","contents":"row"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","HeytingAlgebra"],"HeytingAlgebra"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"TypeVar","contents":"row"}]}]}},"sourceSpan":{"start":[97,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[103,41]}}],"comments":"The `HeytingAlgebra` type class represents types that are bounded lattices with\nan implication operator such that the following laws hold:\n\n- Associativity:\n  - `a || (b || c) = (a || b) || c`\n  - `a && (b && c) = (a && b) && c`\n- Commutativity:\n  - `a || b = b || a`\n  - `a && b = b && a`\n- Absorption:\n  - `a || (a && b) = a`\n  - `a && (a || b) = a`\n- Idempotent:\n  - `a || a = a`\n  - `a && a = a`\n- Identity:\n  - `a || ff = a`\n  - `a && tt = a`\n- Implication:\n  - ``a `implies` a = tt``\n  - ``a && (a `implies` b) = a && b``\n  - ``b && (a `implies` b) = b``\n  - ``a `implies` (b && c) = (a `implies` b) && (a `implies` c)``\n- Complemented:\n  - ``not a = a `implies` ff``\n","title":"HeytingAlgebra","info":{"fundeps":[],"arguments":[["a",null]],"declType":"typeClass","superclasses":[]},"sourceSpan":{"start":[38,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[44,16]}},{"children":[{"comments":null,"title":"heytingAlgebraRecordNil","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","HeytingAlgebra"],"HeytingAlgebraRecord"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim","RowList"],"Nil"]}]},{"annotation":[],"tag":"TypeVar","contents":"row"}]},{"annotation":[],"tag":"REmpty"}]}},"sourceSpan":{"start":[120,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[126,20]}},{"comments":null,"title":"heytingAlgebraRecordCons","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Symbol"],"IsSymbol"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"key"}],"constraintKindArgs":[],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Prim","Row"],"Cons"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"key"},{"annotation":[],"tag":"TypeVar","contents":"focus"},{"annotation":[],"tag":"TypeVar","contents":"subrowTail"},{"annotation":[],"tag":"TypeVar","contents":"subrow"}],"constraintKindArgs":[],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","HeytingAlgebra"],"HeytingAlgebraRecord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"rowlistTail"},{"annotation":[],"tag":"TypeVar","contents":"row"},{"annotation":[],"tag":"TypeVar","contents":"subrowTail"}],"constraintKindArgs":[],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","HeytingAlgebra"],"HeytingAlgebra"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"focus"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","HeytingAlgebra"],"HeytingAlgebraRecord"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim","RowList"],"Cons"]},{"annotation":[],"tag":"TypeVar","contents":"key"}]},{"annotation":[],"tag":"TypeVar","contents":"focus"}]},{"annotation":[],"tag":"TypeVar","contents":"rowlistTail"}]}]},{"annotation":[],"tag":"TypeVar","contents":"row"}]},{"annotation":[],"tag":"TypeVar","contents":"subrow"}]}},"sourceSpan":{"start":[128,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[174,55]}}],"comments":null,"title":"HeytingAlgebraRecord","info":{"fundeps":[[["rowlist"],["subrow"]]],"arguments":[["rowlist",null],["row",null],["subrow",null]],"declType":"typeClass","superclasses":[]},"sourceSpan":{"start":[112,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[118,78]}},{"children":[],"comments":null,"title":"(||)","info":{"declType":"alias","alias":[["Data","HeytingAlgebra"],{"Right":{"Left":{"Ident":"disj"}}}],"fixity":{"associativity":"infixr","precedence":2}},"sourceSpan":{"start":[47,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[47,20]}},{"children":[],"comments":null,"title":"(&&)","info":{"declType":"alias","alias":[["Data","HeytingAlgebra"],{"Right":{"Left":{"Ident":"conj"}}}],"fixity":{"associativity":"infixr","precedence":3}},"sourceSpan":{"start":[46,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[46,20]}}]}],"name":"Data.BooleanAlgebra","comments":null,"declarations":[{"children":[{"comments":null,"title":"booleanAlgebraBoolean","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","BooleanAlgebra"],"BooleanAlgebra"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}},"sourceSpan":{"start":[24,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/BooleanAlgebra.purs","end":[24,57]}},{"comments":null,"title":"booleanAlgebraUnit","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","BooleanAlgebra"],"BooleanAlgebra"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}},"sourceSpan":{"start":[25,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/BooleanAlgebra.purs","end":[25,51]}},{"comments":null,"title":"booleanAlgebraFn","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","BooleanAlgebra"],"BooleanAlgebra"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"b"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","BooleanAlgebra"],"BooleanAlgebra"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}},"sourceSpan":{"start":[26,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/BooleanAlgebra.purs","end":[26,73]}},{"comments":null,"title":"booleanAlgebraRecord","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Prim","RowList"],"RowToList"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"row"},{"annotation":[],"tag":"TypeVar","contents":"list"}],"constraintKindArgs":[],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","BooleanAlgebra"],"BooleanAlgebraRecord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"list"},{"annotation":[],"tag":"TypeVar","contents":"row"},{"annotation":[],"tag":"TypeVar","contents":"row"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","BooleanAlgebra"],"BooleanAlgebra"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"TypeVar","contents":"row"}]}]}},"sourceSpan":{"start":[27,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/BooleanAlgebra.purs","end":[27,123]}},{"comments":null,"title":"booleanAlgebraProxy","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","BooleanAlgebra"],"BooleanAlgebra"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[28,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/BooleanAlgebra.purs","end":[28,57]}},{"comments":null,"title":"booleanAlgebraProxy2","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","BooleanAlgebra"],"BooleanAlgebra"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy2"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[29,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/BooleanAlgebra.purs","end":[29,59]}},{"comments":null,"title":"booleanAlgebraProxy3","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","BooleanAlgebra"],"BooleanAlgebra"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy3"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[30,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/BooleanAlgebra.purs","end":[30,59]}}],"comments":"The `BooleanAlgebra` type class represents types that behave like boolean\nvalues.\n\nInstances should satisfy the following laws in addition to the\n`HeytingAlgebra` law:\n\n- Excluded middle:\n  - `a || not a = tt`\n","title":"BooleanAlgebra","info":{"fundeps":[],"arguments":[["a",null]],"declType":"typeClass","superclasses":[{"constraintAnn":[],"constraintClass":[["Data","HeytingAlgebra"],"HeytingAlgebra"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null}]},"sourceSpan":{"start":[22,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/BooleanAlgebra.purs","end":[22,43]}},{"children":[{"comments":null,"title":"booleanAlgebraRecordNil","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","BooleanAlgebra"],"BooleanAlgebraRecord"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim","RowList"],"Nil"]}]},{"annotation":[],"tag":"TypeVar","contents":"row"}]},{"annotation":[],"tag":"REmpty"}]}},"sourceSpan":{"start":[37,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/BooleanAlgebra.purs","end":[37,71]}},{"comments":null,"title":"booleanAlgebraRecordCons","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Symbol"],"IsSymbol"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"key"}],"constraintKindArgs":[],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Prim","Row"],"Cons"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"key"},{"annotation":[],"tag":"TypeVar","contents":"focus"},{"annotation":[],"tag":"TypeVar","contents":"subrowTail"},{"annotation":[],"tag":"TypeVar","contents":"subrow"}],"constraintKindArgs":[],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","BooleanAlgebra"],"BooleanAlgebraRecord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"rowlistTail"},{"annotation":[],"tag":"TypeVar","contents":"row"},{"annotation":[],"tag":"TypeVar","contents":"subrowTail"}],"constraintKindArgs":[],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","BooleanAlgebra"],"BooleanAlgebra"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"focus"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","BooleanAlgebra"],"BooleanAlgebraRecord"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim","RowList"],"Cons"]},{"annotation":[],"tag":"TypeVar","contents":"key"}]},{"annotation":[],"tag":"TypeVar","contents":"focus"}]},{"annotation":[],"tag":"TypeVar","contents":"rowlistTail"}]}]},{"annotation":[],"tag":"TypeVar","contents":"row"}]},{"annotation":[],"tag":"TypeVar","contents":"subrow"}]}},"sourceSpan":{"start":[39,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/BooleanAlgebra.purs","end":[45,71]}}],"comments":null,"title":"BooleanAlgebraRecord","info":{"fundeps":[[["rowlist"],["subrow"]]],"arguments":[["rowlist",null],["row",null],["subrow",null]],"declType":"typeClass","superclasses":[{"constraintAnn":[],"constraintClass":[["Data","HeytingAlgebra"],"HeytingAlgebraRecord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"rowlist"},{"annotation":[],"tag":"TypeVar","contents":"row"},{"annotation":[],"tag":"TypeVar","contents":"subrow"}],"constraintKindArgs":[],"constraintData":null}]},"sourceSpan":{"start":[35,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/BooleanAlgebra.purs","end":[35,109]}}]},{"reExports":[{"moduleName":{"package":null,"item":["Data","Ord"]},"declarations":[{"children":[{"comments":null,"title":"LT","info":{"arguments":[],"declType":"dataConstructor"},"sourceSpan":null},{"comments":null,"title":"GT","info":{"arguments":[],"declType":"dataConstructor"},"sourceSpan":null},{"comments":null,"title":"EQ","info":{"arguments":[],"declType":"dataConstructor"},"sourceSpan":null},{"comments":null,"title":"eqOrdering","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Eq"],"Eq"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ordering"],"Ordering"]}]}},"sourceSpan":{"start":[15,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ordering.purs","end":[19,19]}},{"comments":null,"title":"semigroupOrdering","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup"],"Semigroup"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ordering"],"Ordering"]}]}},"sourceSpan":{"start":[21,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ordering.purs","end":[24,18]}},{"comments":null,"title":"showOrdering","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Show"],"Show"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ordering"],"Ordering"]}]}},"sourceSpan":{"start":[26,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ordering.purs","end":[29,17]}}],"comments":"The `Ordering` data type represents the three possible outcomes of\ncomparing two values:\n\n`LT` - The first value is _less than_ the second.\n`GT` - The first value is _greater than_ the second.\n`EQ` - The first value is _equal to_ the second.\n","title":"Ordering","info":{"declType":"data","dataDeclType":"data","typeArguments":[]},"sourceSpan":{"start":[13,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ordering.purs","end":[13,29]}},{"children":[{"comments":null,"title":"compare","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ordering"],"Ordering"]}]}]}},"sourceSpan":{"start":[38,3],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ord.purs","end":[38,32]}},{"comments":null,"title":"ordBoolean","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord"],"Ord"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}},"sourceSpan":{"start":[40,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ord.purs","end":[41,36]}},{"comments":null,"title":"ordInt","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord"],"Ord"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}},"sourceSpan":{"start":[43,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ord.purs","end":[44,32]}},{"comments":null,"title":"ordNumber","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord"],"Ord"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]}},"sourceSpan":{"start":[46,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ord.purs","end":[47,35]}},{"comments":null,"title":"ordString","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord"],"Ord"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}},"sourceSpan":{"start":[49,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ord.purs","end":[50,35]}},{"comments":null,"title":"ordChar","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord"],"Ord"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Char"]}]}},"sourceSpan":{"start":[52,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ord.purs","end":[53,33]}},{"comments":null,"title":"ordUnit","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord"],"Ord"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}},"sourceSpan":{"start":[55,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ord.purs","end":[56,19]}},{"comments":null,"title":"ordVoid","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord"],"Ord"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Void"],"Void"]}]}},"sourceSpan":{"start":[58,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ord.purs","end":[59,19]}},{"comments":null,"title":"ordProxy","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord"],"Ord"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[61,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ord.purs","end":[62,19]}},{"comments":null,"title":"ordProxy2","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord"],"Ord"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy2"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[64,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ord.purs","end":[65,19]}},{"comments":null,"title":"ordProxy3","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord"],"Ord"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy3"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[67,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ord.purs","end":[68,19]}},{"comments":null,"title":"ordArray","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord"],"Ord"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[70,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ord.purs","end":[77,17]}},{"comments":null,"title":"ordOrdering","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord"],"Ord"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ordering"],"Ordering"]}]}},"sourceSpan":{"start":[121,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ord.purs","end":[128,21]}},{"comments":null,"title":"ordRecord","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Prim","RowList"],"RowToList"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"row"},{"annotation":[],"tag":"TypeVar","contents":"list"}],"constraintKindArgs":[],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","Ord"],"OrdRecord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"list"},{"annotation":[],"tag":"TypeVar","contents":"row"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord"],"Ord"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"TypeVar","contents":"row"}]}]}},"sourceSpan":{"start":[249,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ord.purs","end":[254,48]}}],"comments":"The `Ord` type class represents types which support comparisons with a\n_total order_.\n\n`Ord` instances should satisfy the laws of total orderings:\n\n- Reflexivity: `a <= a`\n- Antisymmetry: if `a <= b` and `b <= a` then `a = b`\n- Transitivity: if `a <= b` and `b <= c` then `a <= c`\n","title":"Ord","info":{"fundeps":[],"arguments":[["a",null]],"declType":"typeClass","superclasses":[{"constraintAnn":[],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null}]},"sourceSpan":{"start":[37,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ord.purs","end":[38,32]}},{"children":[{"comments":null,"title":"ordRecordNil","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord"],"OrdRecord"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim","RowList"],"Nil"]}]},{"annotation":[],"tag":"TypeVar","contents":"row"}]}},"sourceSpan":{"start":[230,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ord.purs","end":[231,27]}},{"comments":null,"title":"ordRecordCons","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Ord"],"OrdRecord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"rowlistTail"},{"annotation":[],"tag":"TypeVar","contents":"row"}],"constraintKindArgs":[],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Prim","Row"],"Cons"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"key"},{"annotation":[],"tag":"TypeVar","contents":"focus"},{"annotation":[],"tag":"TypeVar","contents":"rowTail"},{"annotation":[],"tag":"TypeVar","contents":"row"}],"constraintKindArgs":[],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","Symbol"],"IsSymbol"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"key"}],"constraintKindArgs":[],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"focus"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord"],"OrdRecord"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim","RowList"],"Cons"]},{"annotation":[],"tag":"TypeVar","contents":"key"}]},{"annotation":[],"tag":"TypeVar","contents":"focus"}]},{"annotation":[],"tag":"TypeVar","contents":"rowlistTail"}]}]},{"annotation":[],"tag":"TypeVar","contents":"row"}]}},"sourceSpan":{"start":[233,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ord.purs","end":[247,59]}}],"comments":null,"title":"OrdRecord","info":{"fundeps":[],"arguments":[["rowlist",null],["row",null]],"declType":"typeClass","superclasses":[{"constraintAnn":[],"constraintClass":[["Data","Eq"],"EqRecord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"rowlist"},{"annotation":[],"tag":"TypeVar","contents":"row"}],"constraintKindArgs":[],"constraintData":null}]},"sourceSpan":{"start":[227,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ord.purs","end":[228,91]}},{"children":[],"comments":null,"title":"(>=)","info":{"declType":"alias","alias":[["Data","Ord"],{"Right":{"Left":{"Ident":"greaterThanOrEq"}}}],"fixity":{"associativity":"infixl","precedence":4}},"sourceSpan":{"start":[157,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ord.purs","end":[157,31]}},{"children":[],"comments":null,"title":"(>)","info":{"declType":"alias","alias":[["Data","Ord"],{"Right":{"Left":{"Ident":"greaterThan"}}}],"fixity":{"associativity":"infixl","precedence":4}},"sourceSpan":{"start":[156,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ord.purs","end":[156,26]}},{"children":[],"comments":null,"title":"(<=)","info":{"declType":"alias","alias":[["Data","Ord"],{"Right":{"Left":{"Ident":"lessThanOrEq"}}}],"fixity":{"associativity":"infixl","precedence":4}},"sourceSpan":{"start":[155,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ord.purs","end":[155,28]}},{"children":[],"comments":null,"title":"(<)","info":{"declType":"alias","alias":[["Data","Ord"],{"Right":{"Left":{"Ident":"lessThan"}}}],"fixity":{"associativity":"infixl","precedence":4}},"sourceSpan":{"start":[154,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ord.purs","end":[154,23]}}]}],"name":"Data.Bounded","comments":null,"declarations":[{"children":[{"comments":null,"title":"top","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeVar","contents":"a"}},"sourceSpan":{"start":[24,3],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Bounded.purs","end":[24,11]}},{"comments":null,"title":"bottom","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeVar","contents":"a"}},"sourceSpan":{"start":[25,3],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Bounded.purs","end":[25,14]}},{"comments":null,"title":"boundedBoolean","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Bounded"],"Bounded"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}},"sourceSpan":{"start":[27,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Bounded.purs","end":[29,17]}},{"comments":"The `Bounded` `Int` instance has `top :: Int` equal to 2^31 - 1,\nand `bottom :: Int` equal to -2^31, since these are the largest and smallest\nintegers representable by twos-complement 32-bit integers, respectively.\n","title":"boundedInt","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Bounded"],"Bounded"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}},"sourceSpan":{"start":[34,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Bounded.purs","end":[36,21]}},{"comments":"Characters fall within the Unicode range.\n","title":"boundedChar","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Bounded"],"Bounded"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Char"]}]}},"sourceSpan":{"start":[42,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Bounded.purs","end":[44,22]}},{"comments":null,"title":"boundedOrdering","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Bounded"],"Bounded"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ordering"],"Ordering"]}]}},"sourceSpan":{"start":[49,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Bounded.purs","end":[51,14]}},{"comments":null,"title":"boundedUnit","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Bounded"],"Bounded"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}},"sourceSpan":{"start":[53,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Bounded.purs","end":[55,16]}},{"comments":null,"title":"boundedNumber","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Bounded"],"Bounded"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]}},"sourceSpan":{"start":[60,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Bounded.purs","end":[62,24]}},{"comments":null,"title":"boundedProxy","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Bounded"],"Bounded"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[64,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Bounded.purs","end":[66,14]}},{"comments":null,"title":"boundedProxy2","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Bounded"],"Bounded"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy2"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[68,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Bounded.purs","end":[70,15]}},{"comments":null,"title":"boundedProxy3","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Bounded"],"Bounded"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy3"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[72,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Bounded.purs","end":[74,15]}},{"comments":null,"title":"boundedRecord","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Prim","RowList"],"RowToList"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"row"},{"annotation":[],"tag":"TypeVar","contents":"list"}],"constraintKindArgs":[],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","Bounded"],"BoundedRecord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"list"},{"annotation":[],"tag":"TypeVar","contents":"row"},{"annotation":[],"tag":"TypeVar","contents":"row"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Bounded"],"Bounded"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"TypeVar","contents":"row"}]}]}},"sourceSpan":{"start":[107,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Bounded.purs","end":[113,67]}}],"comments":"The `Bounded` type class represents totally ordered types that have an\nupper and lower boundary.\n\nInstances should satisfy the following law in addition to the `Ord` laws:\n\n- Bounded: `bottom <= a <= top`\n","title":"Bounded","info":{"fundeps":[],"arguments":[["a",null]],"declType":"typeClass","superclasses":[{"constraintAnn":[],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null}]},"sourceSpan":{"start":[23,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Bounded.purs","end":[25,14]}},{"children":[{"comments":null,"title":"topRecord","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"ForAll","contents":["rlproxy",{"annotation":[],"tag":"ForAll","contents":["rproxy",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"rlproxy"},{"annotation":[],"tag":"TypeVar","contents":"rowlist"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"rproxy"},{"annotation":[],"tag":"TypeVar","contents":"row"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"TypeVar","contents":"subrow"}]}]}]},null]},null]}},"sourceSpan":{"start":[78,3],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Bounded.purs","end":[78,85]}},{"comments":null,"title":"bottomRecord","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"ForAll","contents":["rlproxy",{"annotation":[],"tag":"ForAll","contents":["rproxy",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"rlproxy"},{"annotation":[],"tag":"TypeVar","contents":"rowlist"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"rproxy"},{"annotation":[],"tag":"TypeVar","contents":"row"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"TypeVar","contents":"subrow"}]}]}]},null]},null]}},"sourceSpan":{"start":[79,3],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Bounded.purs","end":[79,88]}},{"comments":null,"title":"boundedRecordNil","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Bounded"],"BoundedRecord"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim","RowList"],"Nil"]}]},{"annotation":[],"tag":"TypeVar","contents":"row"}]},{"annotation":[],"tag":"REmpty"}]}},"sourceSpan":{"start":[81,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Bounded.purs","end":[83,24]}},{"comments":null,"title":"boundedRecordCons","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Symbol"],"IsSymbol"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"key"}],"constraintKindArgs":[],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","Bounded"],"Bounded"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"focus"}],"constraintKindArgs":[],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Prim","Row"],"Cons"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"key"},{"annotation":[],"tag":"TypeVar","contents":"focus"},{"annotation":[],"tag":"TypeVar","contents":"rowTail"},{"annotation":[],"tag":"TypeVar","contents":"row"}],"constraintKindArgs":[],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Prim","Row"],"Cons"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"key"},{"annotation":[],"tag":"TypeVar","contents":"focus"},{"annotation":[],"tag":"TypeVar","contents":"subrowTail"},{"annotation":[],"tag":"TypeVar","contents":"subrow"}],"constraintKindArgs":[],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","Bounded"],"BoundedRecord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"rowlistTail"},{"annotation":[],"tag":"TypeVar","contents":"row"},{"annotation":[],"tag":"TypeVar","contents":"subrowTail"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Bounded"],"BoundedRecord"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim","RowList"],"Cons"]},{"annotation":[],"tag":"TypeVar","contents":"key"}]},{"annotation":[],"tag":"TypeVar","contents":"focus"}]},{"annotation":[],"tag":"TypeVar","contents":"rowlistTail"}]}]},{"annotation":[],"tag":"TypeVar","contents":"row"}]},{"annotation":[],"tag":"TypeVar","contents":"subrow"}]}},"sourceSpan":{"start":[85,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Bounded.purs","end":[105,64]}}],"comments":null,"title":"BoundedRecord","info":{"fundeps":[[["rowlist"],["subrow"]]],"arguments":[["rowlist",null],["row",null],["subrow",null]],"declType":"typeClass","superclasses":[{"constraintAnn":[],"constraintClass":[["Data","Ord"],"OrdRecord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"rowlist"},{"annotation":[],"tag":"TypeVar","contents":"row"}],"constraintKindArgs":[],"constraintData":null}]},"sourceSpan":{"start":[77,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Bounded.purs","end":[79,88]}}]},{"reExports":[],"name":"Data.Bounded.Generic","comments":null,"declarations":[{"children":[{"comments":null,"title":"genericBottom'","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeVar","contents":"a"}},"sourceSpan":{"start":[15,3],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Bounded/Generic.purs","end":[15,22]}},{"comments":null,"title":"genericBottomNoArguments","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Bounded","Generic"],"GenericBottom"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"NoArguments"]}]}},"sourceSpan":{"start":[17,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Bounded/Generic.purs","end":[18,31]}},{"comments":null,"title":"genericBottomArgument","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Bounded"],"Bounded"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Bounded","Generic"],"GenericBottom"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"Argument"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[20,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Bounded/Generic.purs","end":[21,35]}},{"comments":null,"title":"genericBottomSum","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Bounded","Generic"],"GenericBottom"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Bounded","Generic"],"GenericBottom"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"Sum"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}},"sourceSpan":{"start":[23,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Bounded/Generic.purs","end":[24,38]}},{"comments":null,"title":"genericBottomProduct","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Bounded","Generic"],"GenericBottom"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","Bounded","Generic"],"GenericBottom"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"b"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Bounded","Generic"],"GenericBottom"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"Product"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}},"sourceSpan":{"start":[26,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Bounded/Generic.purs","end":[27,57]}},{"comments":null,"title":"genericBottomConstructor","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Bounded","Generic"],"GenericBottom"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Bounded","Generic"],"GenericBottom"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"Constructor"]},{"annotation":[],"tag":"TypeVar","contents":"name"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[29,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Bounded/Generic.purs","end":[30,46]}}],"comments":null,"title":"GenericBottom","info":{"fundeps":[],"arguments":[["a",null]],"declType":"typeClass","superclasses":[]},"sourceSpan":{"start":[14,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Bounded/Generic.purs","end":[15,22]}},{"children":[],"comments":"A `Generic` implementation of the `bottom` member from the `Bounded` type class.\n","title":"genericBottom","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["rep",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Generic","Rep"],"Generic"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"},{"annotation":[],"tag":"TypeVar","contents":"rep"}],"constraintKindArgs":[],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Bounded","Generic"],"GenericBottom"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"rep"}],"constraintKindArgs":[],"constraintData":null},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},null]},null]}},"sourceSpan":{"start":[51,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Bounded/Generic.purs","end":[51,71]}},{"children":[{"comments":null,"title":"genericTop'","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeVar","contents":"a"}},"sourceSpan":{"start":[33,3],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Bounded/Generic.purs","end":[33,19]}},{"comments":null,"title":"genericTopNoArguments","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Bounded","Generic"],"GenericTop"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"NoArguments"]}]}},"sourceSpan":{"start":[35,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Bounded/Generic.purs","end":[36,28]}},{"comments":null,"title":"genericTopArgument","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Bounded"],"Bounded"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Bounded","Generic"],"GenericTop"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"Argument"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[38,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Bounded/Generic.purs","end":[39,29]}},{"comments":null,"title":"genericTopSum","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Bounded","Generic"],"GenericTop"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"b"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Bounded","Generic"],"GenericTop"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"Sum"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}},"sourceSpan":{"start":[41,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Bounded/Generic.purs","end":[42,32]}},{"comments":null,"title":"genericTopProduct","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Bounded","Generic"],"GenericTop"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","Bounded","Generic"],"GenericTop"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"b"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Bounded","Generic"],"GenericTop"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"Product"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}},"sourceSpan":{"start":[44,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Bounded/Generic.purs","end":[45,48]}},{"comments":null,"title":"genericTopConstructor","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Bounded","Generic"],"GenericTop"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Bounded","Generic"],"GenericTop"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"Constructor"]},{"annotation":[],"tag":"TypeVar","contents":"name"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[47,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Bounded/Generic.purs","end":[48,40]}}],"comments":null,"title":"GenericTop","info":{"fundeps":[],"arguments":[["a",null]],"declType":"typeClass","superclasses":[]},"sourceSpan":{"start":[32,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Bounded/Generic.purs","end":[33,19]}},{"children":[],"comments":"A `Generic` implementation of the `top` member from the `Bounded` type class.\n","title":"genericTop","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["rep",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Generic","Rep"],"Generic"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"},{"annotation":[],"tag":"TypeVar","contents":"rep"}],"constraintKindArgs":[],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Bounded","Generic"],"GenericTop"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"rep"}],"constraintKindArgs":[],"constraintData":null},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},null]},null]}},"sourceSpan":{"start":[55,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Bounded/Generic.purs","end":[55,65]}}]},{"reExports":[{"moduleName":{"package":null,"item":["Data","Ring"]},"declarations":[{"children":[{"comments":null,"title":"ringInt","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ring"],"Ring"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}},"sourceSpan":{"start":[28,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ring.purs","end":[29,15]}},{"comments":null,"title":"ringNumber","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ring"],"Ring"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]}},"sourceSpan":{"start":[31,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ring.purs","end":[32,15]}},{"comments":null,"title":"ringUnit","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ring"],"Ring"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}},"sourceSpan":{"start":[34,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ring.purs","end":[35,17]}},{"comments":null,"title":"ringFn","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Ring"],"Ring"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"b"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ring"],"Ring"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}},"sourceSpan":{"start":[37,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ring.purs","end":[38,24]}},{"comments":null,"title":"ringProxy","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ring"],"Ring"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[40,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ring.purs","end":[41,18]}},{"comments":null,"title":"ringProxy2","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ring"],"Ring"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy2"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[43,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ring.purs","end":[44,19]}},{"comments":null,"title":"ringProxy3","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ring"],"Ring"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy3"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[46,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ring.purs","end":[47,19]}},{"comments":null,"title":"ringRecord","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Prim","RowList"],"RowToList"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"row"},{"annotation":[],"tag":"TypeVar","contents":"list"}],"constraintKindArgs":[],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","Ring"],"RingRecord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"list"},{"annotation":[],"tag":"TypeVar","contents":"row"},{"annotation":[],"tag":"TypeVar","contents":"row"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ring"],"Ring"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"TypeVar","contents":"row"}]}]}},"sourceSpan":{"start":[49,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ring.purs","end":[50,40]}}],"comments":"The `Ring` class is for types that support addition, multiplication,\nand subtraction operations.\n\nInstances must satisfy the following laws in addition to the `Semiring`\nlaws:\n\n- Additive inverse: `a - a = zero`\n- Compatibility of `sub` and `negate`: `a - b = a + (zero - b)`\n","title":"Ring","info":{"fundeps":[],"arguments":[["a",null]],"declType":"typeClass","superclasses":[{"constraintAnn":[],"constraintClass":[["Data","Semiring"],"Semiring"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null}]},"sourceSpan":{"start":[23,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ring.purs","end":[24,21]}},{"children":[{"comments":null,"title":"ringRecordNil","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ring"],"RingRecord"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim","RowList"],"Nil"]}]},{"annotation":[],"tag":"TypeVar","contents":"row"}]},{"annotation":[],"tag":"REmpty"}]}},"sourceSpan":{"start":[65,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ring.purs","end":[66,23]}},{"comments":null,"title":"ringRecordCons","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Symbol"],"IsSymbol"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"key"}],"constraintKindArgs":[],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Prim","Row"],"Cons"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"key"},{"annotation":[],"tag":"TypeVar","contents":"focus"},{"annotation":[],"tag":"TypeVar","contents":"subrowTail"},{"annotation":[],"tag":"TypeVar","contents":"subrow"}],"constraintKindArgs":[],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","Ring"],"RingRecord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"rowlistTail"},{"annotation":[],"tag":"TypeVar","contents":"row"},{"annotation":[],"tag":"TypeVar","contents":"subrowTail"}],"constraintKindArgs":[],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","Ring"],"Ring"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"focus"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ring"],"RingRecord"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim","RowList"],"Cons"]},{"annotation":[],"tag":"TypeVar","contents":"key"}]},{"annotation":[],"tag":"TypeVar","contents":"focus"}]},{"annotation":[],"tag":"TypeVar","contents":"rowlistTail"}]}]},{"annotation":[],"tag":"TypeVar","contents":"row"}]},{"annotation":[],"tag":"TypeVar","contents":"subrow"}]}},"sourceSpan":{"start":[68,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ring.purs","end":[80,58]}}],"comments":null,"title":"RingRecord","info":{"fundeps":[[["rowlist"],["subrow"]]],"arguments":[["rowlist",null],["row",null],["subrow",null]],"declType":"typeClass","superclasses":[{"constraintAnn":[],"constraintClass":[["Data","Semiring"],"SemiringRecord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"rowlist"},{"annotation":[],"tag":"TypeVar","contents":"row"},{"annotation":[],"tag":"TypeVar","contents":"subrow"}],"constraintKindArgs":[],"constraintData":null}]},"sourceSpan":{"start":[62,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ring.purs","end":[63,92]}}]},{"moduleName":{"package":null,"item":["Data","Semiring"]},"declarations":[{"children":[{"comments":null,"title":"add","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[35,3],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semiring.purs","end":[35,22]}},{"comments":null,"title":"zero","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeVar","contents":"a"}},"sourceSpan":{"start":[36,3],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semiring.purs","end":[36,12]}},{"comments":null,"title":"mul","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[37,3],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semiring.purs","end":[37,22]}},{"comments":null,"title":"one","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeVar","contents":"a"}},"sourceSpan":{"start":[38,3],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semiring.purs","end":[38,12]}},{"comments":null,"title":"semiringInt","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semiring"],"Semiring"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}},"sourceSpan":{"start":[43,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semiring.purs","end":[47,10]}},{"comments":null,"title":"semiringNumber","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semiring"],"Semiring"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]}},"sourceSpan":{"start":[49,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semiring.purs","end":[53,12]}},{"comments":null,"title":"semiringFn","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Semiring"],"Semiring"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"b"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semiring"],"Semiring"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}},"sourceSpan":{"start":[55,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semiring.purs","end":[59,18]}},{"comments":null,"title":"semiringUnit","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semiring"],"Semiring"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}},"sourceSpan":{"start":[61,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semiring.purs","end":[65,13]}},{"comments":null,"title":"semiringProxy","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semiring"],"Semiring"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[67,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semiring.purs","end":[71,15]}},{"comments":null,"title":"semiringProxy2","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semiring"],"Semiring"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy2"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[73,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semiring.purs","end":[77,16]}},{"comments":null,"title":"semiringProxy3","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semiring"],"Semiring"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy3"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[79,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semiring.purs","end":[83,16]}},{"comments":null,"title":"semiringRecord","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Prim","RowList"],"RowToList"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"row"},{"annotation":[],"tag":"TypeVar","contents":"list"}],"constraintKindArgs":[],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","Semiring"],"SemiringRecord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"list"},{"annotation":[],"tag":"TypeVar","contents":"row"},{"annotation":[],"tag":"TypeVar","contents":"row"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semiring"],"Semiring"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"TypeVar","contents":"row"}]}]}},"sourceSpan":{"start":[85,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semiring.purs","end":[89,63]}}],"comments":"The `Semiring` class is for types that support an addition and\nmultiplication operation.\n\nInstances must satisfy the following laws:\n\n- Commutative monoid under addition:\n  - Associativity: `(a + b) + c = a + (b + c)`\n  - Identity: `zero + a = a + zero = a`\n  - Commutative: `a + b = b + a`\n- Monoid under multiplication:\n  - Associativity: `(a * b) * c = a * (b * c)`\n  - Identity: `one * a = a * one = a`\n- Multiplication distributes over addition:\n  - Left distributivity: `a * (b + c) = (a * b) + (a * c)`\n  - Right distributivity: `(a + b) * c = (a * c) + (b * c)`\n- Annihilation: `zero * a = a * zero = zero`\n\n**Note:** The `Number` and `Int` types are not fully law abiding\nmembers of this class hierarchy due to the potential for arithmetic\noverflows, and in the case of `Number`, the presence of `NaN` and\n`Infinity` values. The behaviour is unspecified in these cases.\n","title":"Semiring","info":{"fundeps":[],"arguments":[["a",null]],"declType":"typeClass","superclasses":[]},"sourceSpan":{"start":[34,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semiring.purs","end":[38,12]}},{"children":[],"comments":null,"title":"(+)","info":{"declType":"alias","alias":[["Data","Semiring"],{"Right":{"Left":{"Ident":"add"}}}],"fixity":{"associativity":"infixl","precedence":6}},"sourceSpan":{"start":[40,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semiring.purs","end":[40,18]}},{"children":[],"comments":null,"title":"(*)","info":{"declType":"alias","alias":[["Data","Semiring"],{"Right":{"Left":{"Ident":"mul"}}}],"fixity":{"associativity":"infixl","precedence":7}},"sourceSpan":{"start":[41,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semiring.purs","end":[41,18]}}]}],"name":"Data.CommutativeRing","comments":null,"declarations":[{"children":[{"comments":null,"title":"commutativeRingInt","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","CommutativeRing"],"CommutativeRing"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}},"sourceSpan":{"start":[25,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/CommutativeRing.purs","end":[25,51]}},{"comments":null,"title":"commutativeRingNumber","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","CommutativeRing"],"CommutativeRing"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]}},"sourceSpan":{"start":[26,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/CommutativeRing.purs","end":[26,57]}},{"comments":null,"title":"commutativeRingUnit","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","CommutativeRing"],"CommutativeRing"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}},"sourceSpan":{"start":[27,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/CommutativeRing.purs","end":[27,53]}},{"comments":null,"title":"commutativeRingFn","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","CommutativeRing"],"CommutativeRing"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"b"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","CommutativeRing"],"CommutativeRing"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}},"sourceSpan":{"start":[28,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/CommutativeRing.purs","end":[28,76]}},{"comments":null,"title":"commutativeRingRecord","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Prim","RowList"],"RowToList"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"row"},{"annotation":[],"tag":"TypeVar","contents":"list"}],"constraintKindArgs":[],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","CommutativeRing"],"CommutativeRingRecord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"list"},{"annotation":[],"tag":"TypeVar","contents":"row"},{"annotation":[],"tag":"TypeVar","contents":"row"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","CommutativeRing"],"CommutativeRing"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"TypeVar","contents":"row"}]}]}},"sourceSpan":{"start":[29,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/CommutativeRing.purs","end":[29,126]}},{"comments":null,"title":"commutativeRingProxy","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","CommutativeRing"],"CommutativeRing"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[30,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/CommutativeRing.purs","end":[30,59]}},{"comments":null,"title":"commutativeRingProxy2","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","CommutativeRing"],"CommutativeRing"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy2"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[31,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/CommutativeRing.purs","end":[31,61]}},{"comments":null,"title":"commutativeRingProxy3","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","CommutativeRing"],"CommutativeRing"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy3"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[32,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/CommutativeRing.purs","end":[32,61]}}],"comments":"The `CommutativeRing` class is for rings where multiplication is\ncommutative.\n\nInstances must satisfy the following law in addition to the `Ring`\nlaws:\n\n- Commutative multiplication: `a * b = b * a`\n","title":"CommutativeRing","info":{"fundeps":[],"arguments":[["a",null]],"declType":"typeClass","superclasses":[{"constraintAnn":[],"constraintClass":[["Data","Ring"],"Ring"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null}]},"sourceSpan":{"start":[23,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/CommutativeRing.purs","end":[23,34]}},{"children":[{"comments":null,"title":"commutativeRingRecordNil","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","CommutativeRing"],"CommutativeRingRecord"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim","RowList"],"Nil"]}]},{"annotation":[],"tag":"TypeVar","contents":"row"}]},{"annotation":[],"tag":"REmpty"}]}},"sourceSpan":{"start":[38,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/CommutativeRing.purs","end":[38,73]}},{"comments":null,"title":"commutativeRingRecordCons","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Symbol"],"IsSymbol"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"key"}],"constraintKindArgs":[],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Prim","Row"],"Cons"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"key"},{"annotation":[],"tag":"TypeVar","contents":"focus"},{"annotation":[],"tag":"TypeVar","contents":"subrowTail"},{"annotation":[],"tag":"TypeVar","contents":"subrow"}],"constraintKindArgs":[],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","CommutativeRing"],"CommutativeRingRecord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"rowlistTail"},{"annotation":[],"tag":"TypeVar","contents":"row"},{"annotation":[],"tag":"TypeVar","contents":"subrowTail"}],"constraintKindArgs":[],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","CommutativeRing"],"CommutativeRing"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"focus"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","CommutativeRing"],"CommutativeRingRecord"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim","RowList"],"Cons"]},{"annotation":[],"tag":"TypeVar","contents":"key"}]},{"annotation":[],"tag":"TypeVar","contents":"focus"}]},{"annotation":[],"tag":"TypeVar","contents":"rowlistTail"}]}]},{"annotation":[],"tag":"TypeVar","contents":"row"}]},{"annotation":[],"tag":"TypeVar","contents":"subrow"}]}},"sourceSpan":{"start":[40,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/CommutativeRing.purs","end":[46,72]}}],"comments":"A class for records where all fields have `CommutativeRing` instances, used\nto implement the `CommutativeRing` instance for records.\n","title":"CommutativeRingRecord","info":{"fundeps":[[["rowlist"],["subrow"]]],"arguments":[["rowlist",null],["row",null],["subrow",null]],"declType":"typeClass","superclasses":[{"constraintAnn":[],"constraintClass":[["Data","Ring"],"RingRecord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"rowlist"},{"annotation":[],"tag":"TypeVar","contents":"row"},{"annotation":[],"tag":"TypeVar","contents":"subrow"}],"constraintKindArgs":[],"constraintData":null}]},"sourceSpan":{"start":[36,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/CommutativeRing.purs","end":[36,100]}}]},{"reExports":[{"moduleName":{"package":null,"item":["Data","Ring"]},"declarations":[{"children":[{"comments":null,"title":"sub","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[24,3],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ring.purs","end":[24,21]}},{"comments":null,"title":"ringInt","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ring"],"Ring"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}},"sourceSpan":{"start":[28,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ring.purs","end":[29,15]}},{"comments":null,"title":"ringNumber","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ring"],"Ring"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]}},"sourceSpan":{"start":[31,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ring.purs","end":[32,15]}},{"comments":null,"title":"ringUnit","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ring"],"Ring"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}},"sourceSpan":{"start":[34,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ring.purs","end":[35,17]}},{"comments":null,"title":"ringFn","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Ring"],"Ring"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"b"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ring"],"Ring"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}},"sourceSpan":{"start":[37,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ring.purs","end":[38,24]}},{"comments":null,"title":"ringProxy","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ring"],"Ring"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[40,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ring.purs","end":[41,18]}},{"comments":null,"title":"ringProxy2","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ring"],"Ring"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy2"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[43,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ring.purs","end":[44,19]}},{"comments":null,"title":"ringProxy3","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ring"],"Ring"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy3"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[46,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ring.purs","end":[47,19]}},{"comments":null,"title":"ringRecord","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Prim","RowList"],"RowToList"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"row"},{"annotation":[],"tag":"TypeVar","contents":"list"}],"constraintKindArgs":[],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","Ring"],"RingRecord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"list"},{"annotation":[],"tag":"TypeVar","contents":"row"},{"annotation":[],"tag":"TypeVar","contents":"row"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ring"],"Ring"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"TypeVar","contents":"row"}]}]}},"sourceSpan":{"start":[49,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ring.purs","end":[50,40]}}],"comments":"The `Ring` class is for types that support addition, multiplication,\nand subtraction operations.\n\nInstances must satisfy the following laws in addition to the `Semiring`\nlaws:\n\n- Additive inverse: `a - a = zero`\n- Compatibility of `sub` and `negate`: `a - b = a + (zero - b)`\n","title":"Ring","info":{"fundeps":[],"arguments":[["a",null]],"declType":"typeClass","superclasses":[{"constraintAnn":[],"constraintClass":[["Data","Semiring"],"Semiring"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null}]},"sourceSpan":{"start":[23,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ring.purs","end":[24,21]}},{"children":[],"comments":"`negate x` can be used as a shorthand for `zero - x`.\n","title":"negate","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Ring"],"Ring"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},null]}},"sourceSpan":{"start":[53,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ring.purs","end":[53,37]}}]},{"moduleName":{"package":null,"item":["Data","Semiring"]},"declarations":[{"children":[{"comments":null,"title":"add","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[35,3],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semiring.purs","end":[35,22]}},{"comments":null,"title":"zero","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeVar","contents":"a"}},"sourceSpan":{"start":[36,3],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semiring.purs","end":[36,12]}},{"comments":null,"title":"mul","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[37,3],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semiring.purs","end":[37,22]}},{"comments":null,"title":"one","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeVar","contents":"a"}},"sourceSpan":{"start":[38,3],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semiring.purs","end":[38,12]}},{"comments":null,"title":"semiringInt","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semiring"],"Semiring"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}},"sourceSpan":{"start":[43,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semiring.purs","end":[47,10]}},{"comments":null,"title":"semiringNumber","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semiring"],"Semiring"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]}},"sourceSpan":{"start":[49,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semiring.purs","end":[53,12]}},{"comments":null,"title":"semiringFn","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Semiring"],"Semiring"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"b"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semiring"],"Semiring"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}},"sourceSpan":{"start":[55,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semiring.purs","end":[59,18]}},{"comments":null,"title":"semiringUnit","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semiring"],"Semiring"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}},"sourceSpan":{"start":[61,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semiring.purs","end":[65,13]}},{"comments":null,"title":"semiringProxy","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semiring"],"Semiring"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[67,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semiring.purs","end":[71,15]}},{"comments":null,"title":"semiringProxy2","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semiring"],"Semiring"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy2"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[73,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semiring.purs","end":[77,16]}},{"comments":null,"title":"semiringProxy3","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semiring"],"Semiring"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy3"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[79,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semiring.purs","end":[83,16]}},{"comments":null,"title":"semiringRecord","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Prim","RowList"],"RowToList"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"row"},{"annotation":[],"tag":"TypeVar","contents":"list"}],"constraintKindArgs":[],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","Semiring"],"SemiringRecord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"list"},{"annotation":[],"tag":"TypeVar","contents":"row"},{"annotation":[],"tag":"TypeVar","contents":"row"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semiring"],"Semiring"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"TypeVar","contents":"row"}]}]}},"sourceSpan":{"start":[85,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semiring.purs","end":[89,63]}}],"comments":"The `Semiring` class is for types that support an addition and\nmultiplication operation.\n\nInstances must satisfy the following laws:\n\n- Commutative monoid under addition:\n  - Associativity: `(a + b) + c = a + (b + c)`\n  - Identity: `zero + a = a + zero = a`\n  - Commutative: `a + b = b + a`\n- Monoid under multiplication:\n  - Associativity: `(a * b) * c = a * (b * c)`\n  - Identity: `one * a = a * one = a`\n- Multiplication distributes over addition:\n  - Left distributivity: `a * (b + c) = (a * b) + (a * c)`\n  - Right distributivity: `(a + b) * c = (a * c) + (b * c)`\n- Annihilation: `zero * a = a * zero = zero`\n\n**Note:** The `Number` and `Int` types are not fully law abiding\nmembers of this class hierarchy due to the potential for arithmetic\noverflows, and in the case of `Number`, the presence of `NaN` and\n`Infinity` values. The behaviour is unspecified in these cases.\n","title":"Semiring","info":{"fundeps":[],"arguments":[["a",null]],"declType":"typeClass","superclasses":[]},"sourceSpan":{"start":[34,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semiring.purs","end":[38,12]}},{"children":[],"comments":null,"title":"(+)","info":{"declType":"alias","alias":[["Data","Semiring"],{"Right":{"Left":{"Ident":"add"}}}],"fixity":{"associativity":"infixl","precedence":6}},"sourceSpan":{"start":[40,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semiring.purs","end":[40,18]}},{"children":[],"comments":null,"title":"(*)","info":{"declType":"alias","alias":[["Data","Semiring"],{"Right":{"Left":{"Ident":"mul"}}}],"fixity":{"associativity":"infixl","precedence":7}},"sourceSpan":{"start":[41,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semiring.purs","end":[41,18]}}]}],"name":"Data.DivisionRing","comments":null,"declarations":[{"children":[{"comments":null,"title":"recip","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}},"sourceSpan":{"start":[30,3],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/DivisionRing.purs","end":[30,18]}},{"comments":null,"title":"divisionringNumber","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","DivisionRing"],"DivisionRing"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]}},"sourceSpan":{"start":[54,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/DivisionRing.purs","end":[55,20]}}],"comments":"The `DivisionRing` class is for non-zero rings in which every non-zero\nelement has a multiplicative inverse. Division rings are sometimes also\ncalled *skew fields*.\n\nInstances must satisfy the following laws in addition to the `Ring` laws:\n\n- Non-zero ring: `one /= zero`\n- Non-zero multiplicative inverse: `recip a * a = a * recip a = one` for\n  all non-zero `a`\n\nThe result of `recip zero` is left undefined; individual instances may\nchoose how to handle this case.\n\nIf a type has both `DivisionRing` and `CommutativeRing` instances, then\nit is a field and should have a `Field` instance.\n","title":"DivisionRing","info":{"fundeps":[],"arguments":[["a",null]],"declType":"typeClass","superclasses":[{"constraintAnn":[],"constraintClass":[["Data","Ring"],"Ring"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null}]},"sourceSpan":{"start":[29,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/DivisionRing.purs","end":[30,18]}},{"children":[],"comments":"Left division, defined as `leftDiv a b = recip b * a`. Left and right\ndivision are distinct in this module because a `DivisionRing` is not\nnecessarily commutative.\n\nIf the type `a` is also a `EuclideanRing`, then this function is\nequivalent to `div` from the `EuclideanRing` class. When working\nabstractly, `div` should generally be preferred, unless you know that you\nneed your code to work with noncommutative rings.\n","title":"leftDiv","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","DivisionRing"],"DivisionRing"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]},null]}},"sourceSpan":{"start":[40,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/DivisionRing.purs","end":[40,51]}},{"children":[],"comments":"Right division, defined as `rightDiv a b = a * recip b`. Left and right\ndivision are distinct in this module because a `DivisionRing` is not\nnecessarily commutative.\n\nIf the type `a` is also a `EuclideanRing`, then this function is\nequivalent to `div` from the `EuclideanRing` class. When working\nabstractly, `div` should generally be preferred, unless you know that you\nneed your code to work with noncommutative rings.\n","title":"rightDiv","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","DivisionRing"],"DivisionRing"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]},null]}},"sourceSpan":{"start":[51,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/DivisionRing.purs","end":[51,52]}}]},{"reExports":[],"name":"Data.Eq","comments":null,"declarations":[{"children":[{"comments":null,"title":"eq","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]}},"sourceSpan":{"start":[29,3],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Eq.purs","end":[29,26]}},{"comments":null,"title":"eqBoolean","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Eq"],"Eq"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}},"sourceSpan":{"start":[40,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Eq.purs","end":[41,21]}},{"comments":null,"title":"eqInt","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Eq"],"Eq"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}},"sourceSpan":{"start":[43,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Eq.purs","end":[44,17]}},{"comments":null,"title":"eqNumber","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Eq"],"Eq"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]}},"sourceSpan":{"start":[46,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Eq.purs","end":[47,20]}},{"comments":null,"title":"eqChar","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Eq"],"Eq"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Char"]}]}},"sourceSpan":{"start":[49,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Eq.purs","end":[50,18]}},{"comments":null,"title":"eqString","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Eq"],"Eq"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}},"sourceSpan":{"start":[52,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Eq.purs","end":[53,20]}},{"comments":null,"title":"eqUnit","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Eq"],"Eq"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}},"sourceSpan":{"start":[55,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Eq.purs","end":[56,16]}},{"comments":null,"title":"eqVoid","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Eq"],"Eq"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Void"],"Void"]}]}},"sourceSpan":{"start":[58,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Eq.purs","end":[59,16]}},{"comments":null,"title":"eqArray","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Eq"],"Eq"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[61,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Eq.purs","end":[62,22]}},{"comments":null,"title":"eqRec","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Prim","RowList"],"RowToList"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"row"},{"annotation":[],"tag":"TypeVar","contents":"list"}],"constraintKindArgs":[],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","Eq"],"EqRecord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"list"},{"annotation":[],"tag":"TypeVar","contents":"row"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Eq"],"Eq"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"TypeVar","contents":"row"}]}]}},"sourceSpan":{"start":[64,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Eq.purs","end":[65,38]}},{"comments":null,"title":"eqProxy","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Eq"],"Eq"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[67,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Eq.purs","end":[68,16]}},{"comments":null,"title":"eqProxy2","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Eq"],"Eq"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy2"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[70,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Eq.purs","end":[71,16]}},{"comments":null,"title":"eqProxy3","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Eq"],"Eq"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy3"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[73,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Eq.purs","end":[74,16]}}],"comments":"The `Eq` type class represents types which support decidable equality.\n\n`Eq` instances should satisfy the following laws:\n\n- Reflexivity: `x == x = true`\n- Symmetry: `x == y = y == x`\n- Transitivity: if `x == y` and `y == z` then `x == z`\n\n**Note:** The `Number` type is not an entirely law abiding member of this\nclass due to the presence of `NaN`, since `NaN /= NaN`. Additionally,\ncomputing with `Number` can result in a loss of precision, so sometimes\nvalues that should be equivalent are not.\n","title":"Eq","info":{"fundeps":[],"arguments":[["a",null]],"declType":"typeClass","superclasses":[]},"sourceSpan":{"start":[28,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Eq.purs","end":[29,26]}},{"children":[],"comments":null,"title":"(==)","info":{"declType":"alias","alias":[["Data","Eq"],{"Right":{"Left":{"Ident":"eq"}}}],"fixity":{"associativity":"infix","precedence":4}},"sourceSpan":{"start":[31,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Eq.purs","end":[31,17]}},{"children":[],"comments":"`notEq` tests whether one value is _not equal_ to another. Shorthand for\n`not (eq x y)`.\n","title":"notEq","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]}]},null]}},"sourceSpan":{"start":[35,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Eq.purs","end":[35,45]}},{"children":[],"comments":null,"title":"(/=)","info":{"declType":"alias","alias":[["Data","Eq"],{"Right":{"Left":{"Ident":"notEq"}}}],"fixity":{"associativity":"infix","precedence":4}},"sourceSpan":{"start":[38,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Eq.purs","end":[38,20]}},{"children":[{"comments":null,"title":"eq1","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]}]},null]}},"sourceSpan":{"start":[86,3],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Eq.purs","end":[86,49]}},{"comments":null,"title":"eq1Array","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Eq"],"Eq1"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]}]}},"sourceSpan":{"start":[88,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Eq.purs","end":[89,11]}}],"comments":"The `Eq1` type class represents type constructors with decidable equality.\n","title":"Eq1","info":{"fundeps":[],"arguments":[["f",null]],"declType":"typeClass","superclasses":[]},"sourceSpan":{"start":[85,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Eq.purs","end":[86,49]}},{"children":[],"comments":null,"title":"notEq1","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Eq"],"Eq1"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintKindArgs":[],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]}]}]},null]},null]}},"sourceSpan":{"start":[91,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Eq.purs","end":[91,61]}},{"children":[{"comments":null,"title":"eqRecord","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"ForAll","contents":["rlproxy",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"rlproxy"},{"annotation":[],"tag":"TypeVar","contents":"rowlist"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"TypeVar","contents":"row"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"TypeVar","contents":"row"}]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]}]},null]}},"sourceSpan":{"start":[98,3],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Eq.purs","end":[98,85]}},{"comments":null,"title":"eqRowNil","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Eq"],"EqRecord"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim","RowList"],"Nil"]}]},{"annotation":[],"tag":"TypeVar","contents":"row"}]}},"sourceSpan":{"start":[100,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Eq.purs","end":[101,24]}},{"comments":null,"title":"eqRowCons","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Eq"],"EqRecord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"rowlistTail"},{"annotation":[],"tag":"TypeVar","contents":"row"}],"constraintKindArgs":[],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Prim","Row"],"Cons"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"key"},{"annotation":[],"tag":"TypeVar","contents":"focus"},{"annotation":[],"tag":"TypeVar","contents":"rowTail"},{"annotation":[],"tag":"TypeVar","contents":"row"}],"constraintKindArgs":[],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","Symbol"],"IsSymbol"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"key"}],"constraintKindArgs":[],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"focus"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Eq"],"EqRecord"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim","RowList"],"Cons"]},{"annotation":[],"tag":"TypeVar","contents":"key"}]},{"annotation":[],"tag":"TypeVar","contents":"focus"}]},{"annotation":[],"tag":"TypeVar","contents":"rowlistTail"}]}]},{"annotation":[],"tag":"TypeVar","contents":"row"}]}},"sourceSpan":{"start":[103,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Eq.purs","end":[114,57]}}],"comments":null,"title":"EqRecord","info":{"fundeps":[],"arguments":[["rowlist",null],["row",null]],"declType":"typeClass","superclasses":[]},"sourceSpan":{"start":[97,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Eq.purs","end":[98,85]}}]},{"reExports":[],"name":"Data.Eq.Generic","comments":null,"declarations":[{"children":[{"comments":null,"title":"genericEq'","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]}},"sourceSpan":{"start":[11,3],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Eq/Generic.purs","end":[11,34]}},{"comments":null,"title":"genericEqNoConstructors","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Eq","Generic"],"GenericEq"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"NoConstructors"]}]}},"sourceSpan":{"start":[13,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Eq/Generic.purs","end":[14,24]}},{"comments":null,"title":"genericEqNoArguments","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Eq","Generic"],"GenericEq"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"NoArguments"]}]}},"sourceSpan":{"start":[16,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Eq/Generic.purs","end":[17,24]}},{"comments":null,"title":"genericEqSum","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Eq","Generic"],"GenericEq"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","Eq","Generic"],"GenericEq"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"b"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Eq","Generic"],"GenericEq"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"Sum"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}},"sourceSpan":{"start":[19,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Eq/Generic.purs","end":[22,25]}},{"comments":null,"title":"genericEqProduct","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Eq","Generic"],"GenericEq"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","Eq","Generic"],"GenericEq"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"b"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Eq","Generic"],"GenericEq"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"Product"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}},"sourceSpan":{"start":[24,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Eq/Generic.purs","end":[25,84]}},{"comments":null,"title":"genericEqConstructor","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Eq","Generic"],"GenericEq"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Eq","Generic"],"GenericEq"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"Constructor"]},{"annotation":[],"tag":"TypeVar","contents":"name"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[27,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Eq/Generic.purs","end":[28,66]}},{"comments":null,"title":"genericEqArgument","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Eq","Generic"],"GenericEq"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"Argument"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[30,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Eq/Generic.purs","end":[31,52]}}],"comments":null,"title":"GenericEq","info":{"fundeps":[],"arguments":[["a",null]],"declType":"typeClass","superclasses":[]},"sourceSpan":{"start":[10,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Eq/Generic.purs","end":[11,34]}},{"children":[],"comments":"A `Generic` implementation of the `eq` member from the `Eq` type class.\n","title":"genericEq","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["rep",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Generic","Rep"],"Generic"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"},{"annotation":[],"tag":"TypeVar","contents":"rep"}],"constraintKindArgs":[],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Eq","Generic"],"GenericEq"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"rep"}],"constraintKindArgs":[],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]}]}]},null]},null]}},"sourceSpan":{"start":[34,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Eq/Generic.purs","end":[34,79]}}]},{"reExports":[{"moduleName":{"package":null,"item":["Data","CommutativeRing"]},"declarations":[{"children":[{"comments":null,"title":"commutativeRingInt","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","CommutativeRing"],"CommutativeRing"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}},"sourceSpan":{"start":[25,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/CommutativeRing.purs","end":[25,51]}},{"comments":null,"title":"commutativeRingNumber","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","CommutativeRing"],"CommutativeRing"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]}},"sourceSpan":{"start":[26,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/CommutativeRing.purs","end":[26,57]}},{"comments":null,"title":"commutativeRingUnit","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","CommutativeRing"],"CommutativeRing"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}},"sourceSpan":{"start":[27,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/CommutativeRing.purs","end":[27,53]}},{"comments":null,"title":"commutativeRingFn","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","CommutativeRing"],"CommutativeRing"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"b"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","CommutativeRing"],"CommutativeRing"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}},"sourceSpan":{"start":[28,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/CommutativeRing.purs","end":[28,76]}},{"comments":null,"title":"commutativeRingRecord","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Prim","RowList"],"RowToList"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"row"},{"annotation":[],"tag":"TypeVar","contents":"list"}],"constraintKindArgs":[],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","CommutativeRing"],"CommutativeRingRecord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"list"},{"annotation":[],"tag":"TypeVar","contents":"row"},{"annotation":[],"tag":"TypeVar","contents":"row"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","CommutativeRing"],"CommutativeRing"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"TypeVar","contents":"row"}]}]}},"sourceSpan":{"start":[29,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/CommutativeRing.purs","end":[29,126]}},{"comments":null,"title":"commutativeRingProxy","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","CommutativeRing"],"CommutativeRing"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[30,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/CommutativeRing.purs","end":[30,59]}},{"comments":null,"title":"commutativeRingProxy2","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","CommutativeRing"],"CommutativeRing"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy2"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[31,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/CommutativeRing.purs","end":[31,61]}},{"comments":null,"title":"commutativeRingProxy3","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","CommutativeRing"],"CommutativeRing"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy3"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[32,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/CommutativeRing.purs","end":[32,61]}}],"comments":"The `CommutativeRing` class is for rings where multiplication is\ncommutative.\n\nInstances must satisfy the following law in addition to the `Ring`\nlaws:\n\n- Commutative multiplication: `a * b = b * a`\n","title":"CommutativeRing","info":{"fundeps":[],"arguments":[["a",null]],"declType":"typeClass","superclasses":[{"constraintAnn":[],"constraintClass":[["Data","Ring"],"Ring"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null}]},"sourceSpan":{"start":[23,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/CommutativeRing.purs","end":[23,34]}}]},{"moduleName":{"package":null,"item":["Data","Ring"]},"declarations":[{"children":[{"comments":null,"title":"sub","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[24,3],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ring.purs","end":[24,21]}},{"comments":null,"title":"ringInt","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ring"],"Ring"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}},"sourceSpan":{"start":[28,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ring.purs","end":[29,15]}},{"comments":null,"title":"ringNumber","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ring"],"Ring"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]}},"sourceSpan":{"start":[31,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ring.purs","end":[32,15]}},{"comments":null,"title":"ringUnit","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ring"],"Ring"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}},"sourceSpan":{"start":[34,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ring.purs","end":[35,17]}},{"comments":null,"title":"ringFn","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Ring"],"Ring"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"b"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ring"],"Ring"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}},"sourceSpan":{"start":[37,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ring.purs","end":[38,24]}},{"comments":null,"title":"ringProxy","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ring"],"Ring"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[40,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ring.purs","end":[41,18]}},{"comments":null,"title":"ringProxy2","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ring"],"Ring"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy2"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[43,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ring.purs","end":[44,19]}},{"comments":null,"title":"ringProxy3","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ring"],"Ring"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy3"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[46,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ring.purs","end":[47,19]}},{"comments":null,"title":"ringRecord","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Prim","RowList"],"RowToList"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"row"},{"annotation":[],"tag":"TypeVar","contents":"list"}],"constraintKindArgs":[],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","Ring"],"RingRecord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"list"},{"annotation":[],"tag":"TypeVar","contents":"row"},{"annotation":[],"tag":"TypeVar","contents":"row"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ring"],"Ring"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"TypeVar","contents":"row"}]}]}},"sourceSpan":{"start":[49,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ring.purs","end":[50,40]}}],"comments":"The `Ring` class is for types that support addition, multiplication,\nand subtraction operations.\n\nInstances must satisfy the following laws in addition to the `Semiring`\nlaws:\n\n- Additive inverse: `a - a = zero`\n- Compatibility of `sub` and `negate`: `a - b = a + (zero - b)`\n","title":"Ring","info":{"fundeps":[],"arguments":[["a",null]],"declType":"typeClass","superclasses":[{"constraintAnn":[],"constraintClass":[["Data","Semiring"],"Semiring"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null}]},"sourceSpan":{"start":[23,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ring.purs","end":[24,21]}},{"children":[],"comments":null,"title":"(-)","info":{"declType":"alias","alias":[["Data","Ring"],{"Right":{"Left":{"Ident":"sub"}}}],"fixity":{"associativity":"infixl","precedence":6}},"sourceSpan":{"start":[26,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ring.purs","end":[26,18]}}]},{"moduleName":{"package":null,"item":["Data","Semiring"]},"declarations":[{"children":[{"comments":null,"title":"add","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[35,3],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semiring.purs","end":[35,22]}},{"comments":null,"title":"zero","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeVar","contents":"a"}},"sourceSpan":{"start":[36,3],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semiring.purs","end":[36,12]}},{"comments":null,"title":"mul","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[37,3],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semiring.purs","end":[37,22]}},{"comments":null,"title":"one","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeVar","contents":"a"}},"sourceSpan":{"start":[38,3],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semiring.purs","end":[38,12]}},{"comments":null,"title":"semiringInt","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semiring"],"Semiring"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}},"sourceSpan":{"start":[43,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semiring.purs","end":[47,10]}},{"comments":null,"title":"semiringNumber","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semiring"],"Semiring"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]}},"sourceSpan":{"start":[49,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semiring.purs","end":[53,12]}},{"comments":null,"title":"semiringFn","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Semiring"],"Semiring"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"b"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semiring"],"Semiring"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}},"sourceSpan":{"start":[55,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semiring.purs","end":[59,18]}},{"comments":null,"title":"semiringUnit","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semiring"],"Semiring"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}},"sourceSpan":{"start":[61,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semiring.purs","end":[65,13]}},{"comments":null,"title":"semiringProxy","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semiring"],"Semiring"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[67,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semiring.purs","end":[71,15]}},{"comments":null,"title":"semiringProxy2","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semiring"],"Semiring"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy2"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[73,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semiring.purs","end":[77,16]}},{"comments":null,"title":"semiringProxy3","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semiring"],"Semiring"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy3"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[79,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semiring.purs","end":[83,16]}},{"comments":null,"title":"semiringRecord","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Prim","RowList"],"RowToList"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"row"},{"annotation":[],"tag":"TypeVar","contents":"list"}],"constraintKindArgs":[],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","Semiring"],"SemiringRecord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"list"},{"annotation":[],"tag":"TypeVar","contents":"row"},{"annotation":[],"tag":"TypeVar","contents":"row"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semiring"],"Semiring"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"TypeVar","contents":"row"}]}]}},"sourceSpan":{"start":[85,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semiring.purs","end":[89,63]}}],"comments":"The `Semiring` class is for types that support an addition and\nmultiplication operation.\n\nInstances must satisfy the following laws:\n\n- Commutative monoid under addition:\n  - Associativity: `(a + b) + c = a + (b + c)`\n  - Identity: `zero + a = a + zero = a`\n  - Commutative: `a + b = b + a`\n- Monoid under multiplication:\n  - Associativity: `(a * b) * c = a * (b * c)`\n  - Identity: `one * a = a * one = a`\n- Multiplication distributes over addition:\n  - Left distributivity: `a * (b + c) = (a * b) + (a * c)`\n  - Right distributivity: `(a + b) * c = (a * c) + (b * c)`\n- Annihilation: `zero * a = a * zero = zero`\n\n**Note:** The `Number` and `Int` types are not fully law abiding\nmembers of this class hierarchy due to the potential for arithmetic\noverflows, and in the case of `Number`, the presence of `NaN` and\n`Infinity` values. The behaviour is unspecified in these cases.\n","title":"Semiring","info":{"fundeps":[],"arguments":[["a",null]],"declType":"typeClass","superclasses":[]},"sourceSpan":{"start":[34,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semiring.purs","end":[38,12]}},{"children":[],"comments":null,"title":"(+)","info":{"declType":"alias","alias":[["Data","Semiring"],{"Right":{"Left":{"Ident":"add"}}}],"fixity":{"associativity":"infixl","precedence":6}},"sourceSpan":{"start":[40,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semiring.purs","end":[40,18]}},{"children":[],"comments":null,"title":"(*)","info":{"declType":"alias","alias":[["Data","Semiring"],{"Right":{"Left":{"Ident":"mul"}}}],"fixity":{"associativity":"infixl","precedence":7}},"sourceSpan":{"start":[41,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semiring.purs","end":[41,18]}}]}],"name":"Data.EuclideanRing","comments":null,"declarations":[{"children":[{"comments":null,"title":"degree","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}},"sourceSpan":{"start":[64,3],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/EuclideanRing.purs","end":[64,21]}},{"comments":null,"title":"div","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[65,3],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/EuclideanRing.purs","end":[65,21]}},{"comments":null,"title":"mod","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[66,3],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/EuclideanRing.purs","end":[66,21]}},{"comments":null,"title":"euclideanRingInt","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","EuclideanRing"],"EuclideanRing"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}},"sourceSpan":{"start":[70,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/EuclideanRing.purs","end":[73,15]}},{"comments":null,"title":"euclideanRingNumber","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","EuclideanRing"],"EuclideanRing"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]}},"sourceSpan":{"start":[75,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/EuclideanRing.purs","end":[78,16]}}],"comments":"The `EuclideanRing` class is for commutative rings that support division.\nThe mathematical structure this class is based on is sometimes also called\na *Euclidean domain*.\n\nInstances must satisfy the following laws in addition to the `Ring`\nlaws:\n\n- Integral domain: `one /= zero`, and if `a` and `b` are both nonzero then\n  so is their product `a * b`\n- Euclidean function `degree`:\n  - Nonnegativity: For all nonzero `a`, `degree a >= 0`\n  - Quotient/remainder: For all `a` and `b`, where `b` is nonzero,\n    let `q = a / b` and ``r = a `mod` b``; then `a = q*b + r`, and also\n    either `r = zero` or `degree r < degree b`\n- Submultiplicative euclidean function:\n  - For all nonzero `a` and `b`, `degree a <= degree (a * b)`\n\nThe behaviour of division by `zero` is unconstrained by these laws,\nmeaning that individual instances are free to choose how to behave in this\ncase. Similarly, there are no restrictions on what the result of\n`degree zero` is; it doesn't make sense to ask for `degree zero` in the\nsame way that it doesn't make sense to divide by `zero`, so again,\nindividual instances may choose how to handle this case.\n\nFor any `EuclideanRing` which is also a `Field`, one valid choice\nfor `degree` is simply `const 1`. In fact, unless there's a specific\nreason not to, `Field` types should normally use this definition of\n`degree`.\n\nThe `EuclideanRing Int` instance is one of the most commonly used\n`EuclideanRing` instances and deserves a little more discussion. In\nparticular, there are a few different sensible law-abiding implementations\nto choose from, with slightly different behaviour in the presence of\nnegative dividends or divisors. The most common definitions are \"truncating\"\ndivision, where the result of `a / b` is rounded towards 0, and \"Knuthian\"\nor \"flooring\" division, where the result of `a / b` is rounded towards\nnegative infinity. A slightly less common, but arguably more useful, option\nis \"Euclidean\" division, which is defined so as to ensure that ``a `mod` b``\nis always nonnegative. With Euclidean division, `a / b` rounds towards\nnegative infinity if the divisor is positive, and towards positive infinity\nif the divisor is negative. Note that all three definitions are identical if\nwe restrict our attention to nonnegative dividends and divisors.\n\nIn versions 1.x, 2.x, and 3.x of the Prelude, the `EuclideanRing Int`\ninstance used truncating division. As of 4.x, the `EuclideanRing Int`\ninstance uses Euclidean division. Additional functions `quot` and `rem` are\nsupplied if truncating division is desired.\n","title":"EuclideanRing","info":{"fundeps":[],"arguments":[["a",null]],"declType":"typeClass","superclasses":[{"constraintAnn":[],"constraintClass":[["Data","CommutativeRing"],"CommutativeRing"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null}]},"sourceSpan":{"start":[63,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/EuclideanRing.purs","end":[66,21]}},{"children":[],"comments":null,"title":"(/)","info":{"declType":"alias","alias":[["Data","EuclideanRing"],{"Right":{"Left":{"Ident":"div"}}}],"fixity":{"associativity":"infixl","precedence":7}},"sourceSpan":{"start":[68,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/EuclideanRing.purs","end":[68,18]}},{"children":[],"comments":"The *greatest common divisor* of two values.\n","title":"gcd","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","EuclideanRing"],"EuclideanRing"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]}]},null]}},"sourceSpan":{"start":[87,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/EuclideanRing.purs","end":[87,56]}},{"children":[],"comments":"The *least common multiple* of two values.\n","title":"lcm","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","EuclideanRing"],"EuclideanRing"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]}]},null]}},"sourceSpan":{"start":[94,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/EuclideanRing.purs","end":[94,56]}}]},{"reExports":[{"moduleName":{"package":null,"item":["Data","CommutativeRing"]},"declarations":[{"children":[{"comments":null,"title":"commutativeRingInt","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","CommutativeRing"],"CommutativeRing"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}},"sourceSpan":{"start":[25,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/CommutativeRing.purs","end":[25,51]}},{"comments":null,"title":"commutativeRingNumber","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","CommutativeRing"],"CommutativeRing"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]}},"sourceSpan":{"start":[26,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/CommutativeRing.purs","end":[26,57]}},{"comments":null,"title":"commutativeRingUnit","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","CommutativeRing"],"CommutativeRing"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}},"sourceSpan":{"start":[27,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/CommutativeRing.purs","end":[27,53]}},{"comments":null,"title":"commutativeRingFn","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","CommutativeRing"],"CommutativeRing"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"b"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","CommutativeRing"],"CommutativeRing"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}},"sourceSpan":{"start":[28,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/CommutativeRing.purs","end":[28,76]}},{"comments":null,"title":"commutativeRingRecord","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Prim","RowList"],"RowToList"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"row"},{"annotation":[],"tag":"TypeVar","contents":"list"}],"constraintKindArgs":[],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","CommutativeRing"],"CommutativeRingRecord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"list"},{"annotation":[],"tag":"TypeVar","contents":"row"},{"annotation":[],"tag":"TypeVar","contents":"row"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","CommutativeRing"],"CommutativeRing"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"TypeVar","contents":"row"}]}]}},"sourceSpan":{"start":[29,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/CommutativeRing.purs","end":[29,126]}},{"comments":null,"title":"commutativeRingProxy","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","CommutativeRing"],"CommutativeRing"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[30,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/CommutativeRing.purs","end":[30,59]}},{"comments":null,"title":"commutativeRingProxy2","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","CommutativeRing"],"CommutativeRing"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy2"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[31,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/CommutativeRing.purs","end":[31,61]}},{"comments":null,"title":"commutativeRingProxy3","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","CommutativeRing"],"CommutativeRing"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy3"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[32,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/CommutativeRing.purs","end":[32,61]}}],"comments":"The `CommutativeRing` class is for rings where multiplication is\ncommutative.\n\nInstances must satisfy the following law in addition to the `Ring`\nlaws:\n\n- Commutative multiplication: `a * b = b * a`\n","title":"CommutativeRing","info":{"fundeps":[],"arguments":[["a",null]],"declType":"typeClass","superclasses":[{"constraintAnn":[],"constraintClass":[["Data","Ring"],"Ring"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null}]},"sourceSpan":{"start":[23,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/CommutativeRing.purs","end":[23,34]}}]},{"moduleName":{"package":null,"item":["Data","DivisionRing"]},"declarations":[{"children":[{"comments":null,"title":"recip","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}},"sourceSpan":{"start":[30,3],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/DivisionRing.purs","end":[30,18]}},{"comments":null,"title":"divisionringNumber","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","DivisionRing"],"DivisionRing"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]}},"sourceSpan":{"start":[54,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/DivisionRing.purs","end":[55,20]}}],"comments":"The `DivisionRing` class is for non-zero rings in which every non-zero\nelement has a multiplicative inverse. Division rings are sometimes also\ncalled *skew fields*.\n\nInstances must satisfy the following laws in addition to the `Ring` laws:\n\n- Non-zero ring: `one /= zero`\n- Non-zero multiplicative inverse: `recip a * a = a * recip a = one` for\n  all non-zero `a`\n\nThe result of `recip zero` is left undefined; individual instances may\nchoose how to handle this case.\n\nIf a type has both `DivisionRing` and `CommutativeRing` instances, then\nit is a field and should have a `Field` instance.\n","title":"DivisionRing","info":{"fundeps":[],"arguments":[["a",null]],"declType":"typeClass","superclasses":[{"constraintAnn":[],"constraintClass":[["Data","Ring"],"Ring"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null}]},"sourceSpan":{"start":[29,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/DivisionRing.purs","end":[30,18]}}]},{"moduleName":{"package":null,"item":["Data","EuclideanRing"]},"declarations":[{"children":[{"comments":null,"title":"degree","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}},"sourceSpan":{"start":[64,3],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/EuclideanRing.purs","end":[64,21]}},{"comments":null,"title":"div","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[65,3],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/EuclideanRing.purs","end":[65,21]}},{"comments":null,"title":"mod","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[66,3],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/EuclideanRing.purs","end":[66,21]}},{"comments":null,"title":"euclideanRingInt","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","EuclideanRing"],"EuclideanRing"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}},"sourceSpan":{"start":[70,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/EuclideanRing.purs","end":[73,15]}},{"comments":null,"title":"euclideanRingNumber","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","EuclideanRing"],"EuclideanRing"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]}},"sourceSpan":{"start":[75,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/EuclideanRing.purs","end":[78,16]}}],"comments":"The `EuclideanRing` class is for commutative rings that support division.\nThe mathematical structure this class is based on is sometimes also called\na *Euclidean domain*.\n\nInstances must satisfy the following laws in addition to the `Ring`\nlaws:\n\n- Integral domain: `one /= zero`, and if `a` and `b` are both nonzero then\n  so is their product `a * b`\n- Euclidean function `degree`:\n  - Nonnegativity: For all nonzero `a`, `degree a >= 0`\n  - Quotient/remainder: For all `a` and `b`, where `b` is nonzero,\n    let `q = a / b` and ``r = a `mod` b``; then `a = q*b + r`, and also\n    either `r = zero` or `degree r < degree b`\n- Submultiplicative euclidean function:\n  - For all nonzero `a` and `b`, `degree a <= degree (a * b)`\n\nThe behaviour of division by `zero` is unconstrained by these laws,\nmeaning that individual instances are free to choose how to behave in this\ncase. Similarly, there are no restrictions on what the result of\n`degree zero` is; it doesn't make sense to ask for `degree zero` in the\nsame way that it doesn't make sense to divide by `zero`, so again,\nindividual instances may choose how to handle this case.\n\nFor any `EuclideanRing` which is also a `Field`, one valid choice\nfor `degree` is simply `const 1`. In fact, unless there's a specific\nreason not to, `Field` types should normally use this definition of\n`degree`.\n\nThe `EuclideanRing Int` instance is one of the most commonly used\n`EuclideanRing` instances and deserves a little more discussion. In\nparticular, there are a few different sensible law-abiding implementations\nto choose from, with slightly different behaviour in the presence of\nnegative dividends or divisors. The most common definitions are \"truncating\"\ndivision, where the result of `a / b` is rounded towards 0, and \"Knuthian\"\nor \"flooring\" division, where the result of `a / b` is rounded towards\nnegative infinity. A slightly less common, but arguably more useful, option\nis \"Euclidean\" division, which is defined so as to ensure that ``a `mod` b``\nis always nonnegative. With Euclidean division, `a / b` rounds towards\nnegative infinity if the divisor is positive, and towards positive infinity\nif the divisor is negative. Note that all three definitions are identical if\nwe restrict our attention to nonnegative dividends and divisors.\n\nIn versions 1.x, 2.x, and 3.x of the Prelude, the `EuclideanRing Int`\ninstance used truncating division. As of 4.x, the `EuclideanRing Int`\ninstance uses Euclidean division. Additional functions `quot` and `rem` are\nsupplied if truncating division is desired.\n","title":"EuclideanRing","info":{"fundeps":[],"arguments":[["a",null]],"declType":"typeClass","superclasses":[{"constraintAnn":[],"constraintClass":[["Data","CommutativeRing"],"CommutativeRing"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null}]},"sourceSpan":{"start":[63,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/EuclideanRing.purs","end":[66,21]}},{"children":[],"comments":"The *least common multiple* of two values.\n","title":"lcm","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","EuclideanRing"],"EuclideanRing"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]}]},null]}},"sourceSpan":{"start":[94,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/EuclideanRing.purs","end":[94,56]}},{"children":[],"comments":"The *greatest common divisor* of two values.\n","title":"gcd","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","EuclideanRing"],"EuclideanRing"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]}]},null]}},"sourceSpan":{"start":[87,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/EuclideanRing.purs","end":[87,56]}},{"children":[],"comments":null,"title":"(/)","info":{"declType":"alias","alias":[["Data","EuclideanRing"],{"Right":{"Left":{"Ident":"div"}}}],"fixity":{"associativity":"infixl","precedence":7}},"sourceSpan":{"start":[68,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/EuclideanRing.purs","end":[68,18]}}]},{"moduleName":{"package":null,"item":["Data","Ring"]},"declarations":[{"children":[{"comments":null,"title":"sub","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[24,3],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ring.purs","end":[24,21]}},{"comments":null,"title":"ringInt","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ring"],"Ring"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}},"sourceSpan":{"start":[28,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ring.purs","end":[29,15]}},{"comments":null,"title":"ringNumber","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ring"],"Ring"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]}},"sourceSpan":{"start":[31,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ring.purs","end":[32,15]}},{"comments":null,"title":"ringUnit","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ring"],"Ring"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}},"sourceSpan":{"start":[34,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ring.purs","end":[35,17]}},{"comments":null,"title":"ringFn","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Ring"],"Ring"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"b"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ring"],"Ring"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}},"sourceSpan":{"start":[37,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ring.purs","end":[38,24]}},{"comments":null,"title":"ringProxy","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ring"],"Ring"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[40,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ring.purs","end":[41,18]}},{"comments":null,"title":"ringProxy2","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ring"],"Ring"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy2"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[43,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ring.purs","end":[44,19]}},{"comments":null,"title":"ringProxy3","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ring"],"Ring"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy3"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[46,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ring.purs","end":[47,19]}},{"comments":null,"title":"ringRecord","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Prim","RowList"],"RowToList"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"row"},{"annotation":[],"tag":"TypeVar","contents":"list"}],"constraintKindArgs":[],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","Ring"],"RingRecord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"list"},{"annotation":[],"tag":"TypeVar","contents":"row"},{"annotation":[],"tag":"TypeVar","contents":"row"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ring"],"Ring"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"TypeVar","contents":"row"}]}]}},"sourceSpan":{"start":[49,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ring.purs","end":[50,40]}}],"comments":"The `Ring` class is for types that support addition, multiplication,\nand subtraction operations.\n\nInstances must satisfy the following laws in addition to the `Semiring`\nlaws:\n\n- Additive inverse: `a - a = zero`\n- Compatibility of `sub` and `negate`: `a - b = a + (zero - b)`\n","title":"Ring","info":{"fundeps":[],"arguments":[["a",null]],"declType":"typeClass","superclasses":[{"constraintAnn":[],"constraintClass":[["Data","Semiring"],"Semiring"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null}]},"sourceSpan":{"start":[23,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ring.purs","end":[24,21]}},{"children":[],"comments":"`negate x` can be used as a shorthand for `zero - x`.\n","title":"negate","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Ring"],"Ring"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},null]}},"sourceSpan":{"start":[53,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ring.purs","end":[53,37]}}]},{"moduleName":{"package":null,"item":["Data","Semiring"]},"declarations":[{"children":[{"comments":null,"title":"add","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[35,3],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semiring.purs","end":[35,22]}},{"comments":null,"title":"zero","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeVar","contents":"a"}},"sourceSpan":{"start":[36,3],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semiring.purs","end":[36,12]}},{"comments":null,"title":"mul","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[37,3],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semiring.purs","end":[37,22]}},{"comments":null,"title":"one","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeVar","contents":"a"}},"sourceSpan":{"start":[38,3],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semiring.purs","end":[38,12]}},{"comments":null,"title":"semiringInt","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semiring"],"Semiring"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}},"sourceSpan":{"start":[43,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semiring.purs","end":[47,10]}},{"comments":null,"title":"semiringNumber","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semiring"],"Semiring"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]}},"sourceSpan":{"start":[49,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semiring.purs","end":[53,12]}},{"comments":null,"title":"semiringFn","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Semiring"],"Semiring"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"b"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semiring"],"Semiring"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}},"sourceSpan":{"start":[55,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semiring.purs","end":[59,18]}},{"comments":null,"title":"semiringUnit","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semiring"],"Semiring"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}},"sourceSpan":{"start":[61,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semiring.purs","end":[65,13]}},{"comments":null,"title":"semiringProxy","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semiring"],"Semiring"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[67,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semiring.purs","end":[71,15]}},{"comments":null,"title":"semiringProxy2","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semiring"],"Semiring"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy2"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[73,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semiring.purs","end":[77,16]}},{"comments":null,"title":"semiringProxy3","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semiring"],"Semiring"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy3"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[79,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semiring.purs","end":[83,16]}},{"comments":null,"title":"semiringRecord","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Prim","RowList"],"RowToList"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"row"},{"annotation":[],"tag":"TypeVar","contents":"list"}],"constraintKindArgs":[],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","Semiring"],"SemiringRecord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"list"},{"annotation":[],"tag":"TypeVar","contents":"row"},{"annotation":[],"tag":"TypeVar","contents":"row"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semiring"],"Semiring"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"TypeVar","contents":"row"}]}]}},"sourceSpan":{"start":[85,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semiring.purs","end":[89,63]}}],"comments":"The `Semiring` class is for types that support an addition and\nmultiplication operation.\n\nInstances must satisfy the following laws:\n\n- Commutative monoid under addition:\n  - Associativity: `(a + b) + c = a + (b + c)`\n  - Identity: `zero + a = a + zero = a`\n  - Commutative: `a + b = b + a`\n- Monoid under multiplication:\n  - Associativity: `(a * b) * c = a * (b * c)`\n  - Identity: `one * a = a * one = a`\n- Multiplication distributes over addition:\n  - Left distributivity: `a * (b + c) = (a * b) + (a * c)`\n  - Right distributivity: `(a + b) * c = (a * c) + (b * c)`\n- Annihilation: `zero * a = a * zero = zero`\n\n**Note:** The `Number` and `Int` types are not fully law abiding\nmembers of this class hierarchy due to the potential for arithmetic\noverflows, and in the case of `Number`, the presence of `NaN` and\n`Infinity` values. The behaviour is unspecified in these cases.\n","title":"Semiring","info":{"fundeps":[],"arguments":[["a",null]],"declType":"typeClass","superclasses":[]},"sourceSpan":{"start":[34,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semiring.purs","end":[38,12]}},{"children":[],"comments":null,"title":"(+)","info":{"declType":"alias","alias":[["Data","Semiring"],{"Right":{"Left":{"Ident":"add"}}}],"fixity":{"associativity":"infixl","precedence":6}},"sourceSpan":{"start":[40,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semiring.purs","end":[40,18]}},{"children":[],"comments":null,"title":"(*)","info":{"declType":"alias","alias":[["Data","Semiring"],{"Right":{"Left":{"Ident":"mul"}}}],"fixity":{"associativity":"infixl","precedence":7}},"sourceSpan":{"start":[41,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semiring.purs","end":[41,18]}}]}],"name":"Data.Field","comments":null,"declarations":[{"children":[{"comments":null,"title":"field","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","EuclideanRing"],"EuclideanRing"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","DivisionRing"],"DivisionRing"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Field"],"Field"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}},"sourceSpan":{"start":[41,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Field.purs","end":[41,63]}}],"comments":"The `Field` class is for types that are (commutative) fields.\n\nMathematically, a field is a ring which is commutative and in which every\nnonzero element has a multiplicative inverse; these conditions correspond\nto the `CommutativeRing` and `DivisionRing` classes in PureScript\nrespectively. However, the `Field` class has `EuclideanRing` and\n`DivisionRing` as superclasses, which seems like a stronger requirement\n(since `CommutativeRing` is a superclass of `EuclideanRing`). In fact, it\nis not stronger, since any type which has law-abiding `CommutativeRing`\nand `DivisionRing` instances permits exactly one law-abiding\n`EuclideanRing` instance. We use a `EuclideanRing` superclass here in\norder to ensure that a `Field` constraint on a function permits you to use\n`div` on that type, since `div` is a member of `EuclideanRing`.\n\nThis class has no laws or members of its own; it exists as a convenience,\nso a single constraint can be used when field-like behaviour is expected.\n\nThis module also defines a single `Field` instance for any type which has\nboth `EuclideanRing` and `DivisionRing` instances. Any other instance\nwould overlap with this instance, so no other `Field` instances should be\ndefined in libraries. Instead, simply define `EuclideanRing` and\n`DivisionRing` instances, and this will permit your type to be used with a\n`Field` constraint.\n","title":"Field","info":{"fundeps":[],"arguments":[["a",null]],"declType":"typeClass","superclasses":[{"constraintAnn":[],"constraintClass":[["Data","EuclideanRing"],"EuclideanRing"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","DivisionRing"],"DivisionRing"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null}]},"sourceSpan":{"start":[39,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Field.purs","end":[39,51]}}]},{"reExports":[{"moduleName":{"package":null,"item":["Control","Category"]},"declarations":[{"children":[],"comments":null,"title":"compose","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["d",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[null,"Semigroupoid"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"a"},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"d"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"a"},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"a"},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"d"}]}]}]}]},null]},null]},null]},null]}},"sourceSpan":{"start":[14,3],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Semigroupoid.purs","end":[14,51]}},{"children":[],"comments":null,"title":"identity","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["t",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[null,"Category"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"a"},{"annotation":[],"tag":"TypeVar","contents":"t"}]},{"annotation":[],"tag":"TypeVar","contents":"t"}]}]},null]},null]}},"sourceSpan":{"start":[18,3],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Category.purs","end":[18,30]}},{"children":[],"comments":null,"title":"(>>>)","info":{"declType":"alias","alias":[["Control","Semigroupoid"],{"Right":{"Left":{"Ident":"composeFlipped"}}}],"fixity":{"associativity":"infixr","precedence":9}},"sourceSpan":{"start":[25,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Semigroupoid.purs","end":[25,31]}},{"children":[],"comments":null,"title":"(<<<)","info":{"declType":"alias","alias":[["Control","Semigroupoid"],{"Right":{"Left":{"Ident":"compose"}}}],"fixity":{"associativity":"infixr","precedence":9}},"sourceSpan":{"start":[19,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Semigroupoid.purs","end":[19,24]}}]}],"name":"Data.Function","comments":null,"declarations":[{"children":[],"comments":"Flips the order of the arguments to a function of two arguments.\n\n```purescript\nflip const 1 2 = const 2 1 = 2\n```\n","title":"flip","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]}]}]},null]},null]},null]}},"sourceSpan":{"start":[21,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Function.purs","end":[21,51]}},{"children":[],"comments":"Returns its first argument and ignores its second.\n\n```purescript\nconst 1 \"hello\" = 1\n```\n\nIt can also be thought of as creating a function that ignores its argument:\n\n```purescript\nconst 1 = \\_ -> 1\n```\n","title":"const","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},null]},null]}},"sourceSpan":{"start":[35,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Function.purs","end":[35,33]}},{"children":[],"comments":"Applies a function to an argument. This is primarily used as the operator\n`($)` which allows parentheses to be omitted in some cases, or as a\nnatural way to apply a chain of composed functions to a value.\n","title":"apply","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]},null]},null]}},"sourceSpan":{"start":[41,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Function.purs","end":[41,40]}},{"children":[],"comments":"Applies a function to an argument: the reverse of `(#)`.\n\n```purescript\nlength $ groupBy productCategory $ filter isInStock $ products\n```\n\nis equivalent to:\n\n```purescript\nlength (groupBy productCategory (filter isInStock products))\n```\n\nOr another alternative equivalent, applying chain of composed functions to\na value:\n\n```purescript\nlength <<< groupBy productCategory <<< filter isInStock $ products\n```\n","title":"($)","info":{"declType":"alias","alias":[["Data","Function"],{"Right":{"Left":{"Ident":"apply"}}}],"fixity":{"associativity":"infixr","precedence":0}},"sourceSpan":{"start":[62,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Function.purs","end":[62,20]}},{"children":[],"comments":"Applies an argument to a function. This is primarily used as the `(#)`\noperator, which allows parentheses to be omitted in some cases, or as a\nnatural way to apply a value to a chain of composed functions.\n","title":"applyFlipped","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]},null]},null]}},"sourceSpan":{"start":[67,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Function.purs","end":[67,47]}},{"children":[],"comments":"Applies an argument to a function: the reverse of `($)`.\n\n```purescript\nproducts # filter isInStock # groupBy productCategory # length\n```\n\nis equivalent to:\n\n```purescript\nlength (groupBy productCategory (filter isInStock products))\n```\n\nOr another alternative equivalent, applying a value to a chain of composed\nfunctions:\n\n```purescript\nproducts # filter isInStock >>> groupBy productCategory >>> length\n```\n","title":"(#)","info":{"declType":"alias","alias":[["Data","Function"],{"Right":{"Left":{"Ident":"applyFlipped"}}}],"fixity":{"associativity":"infixl","precedence":1}},"sourceSpan":{"start":[88,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Function.purs","end":[88,27]}},{"children":[],"comments":"`applyN f n` applies the function `f` to its argument `n` times.\n\nIf n is less than or equal to 0, the function is not applied.\n\n```purescript\napplyN (_ + 1) 10 0 == 10\n```\n","title":"applyN","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]},null]}},"sourceSpan":{"start":[97,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Function.purs","end":[97,46]}},{"children":[],"comments":"The `on` function is used to change the domain of a binary operator.\n\nFor example, we can create a function which compares two records based on the values of their `x` properties:\n\n```purescript\ncompareX :: forall r. { x :: Number | r } -> { x :: Number | r } -> Ordering\ncompareX = compare `on` _.x\n```\n","title":"on","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]}]}]}]},null]},null]},null]}},"sourceSpan":{"start":[112,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Function.purs","end":[112,61]}}]},{"reExports":[],"name":"Data.Functor","comments":null,"declarations":[{"children":[{"comments":null,"title":"map","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}]},null]},null]}},"sourceSpan":{"start":[26,3],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Functor.purs","end":[26,44]}},{"comments":null,"title":"functorFn","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Functor"],"Functor"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}]}},"sourceSpan":{"start":[40,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Functor.purs","end":[41,16]}},{"comments":null,"title":"functorArray","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Functor"],"Functor"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]}]}},"sourceSpan":{"start":[43,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Functor.purs","end":[44,17]}},{"comments":null,"title":"functorProxy","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Functor"],"Functor"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy"]}]}},"sourceSpan":{"start":[46,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Functor.purs","end":[47,18]}}],"comments":"A `Functor` is a type constructor which supports a mapping operation\n`map`.\n\n`map` can be used to turn functions `a -> b` into functions\n`f a -> f b` whose argument and return types use the type constructor `f`\nto represent some computational context.\n\nInstances must satisfy the following laws:\n\n- Identity: `map identity = identity`\n- Composition: `map (f <<< g) = map f <<< map g`\n","title":"Functor","info":{"fundeps":[],"arguments":[["f",null]],"declType":"typeClass","superclasses":[]},"sourceSpan":{"start":[25,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Functor.purs","end":[26,44]}},{"children":[],"comments":null,"title":"(<$>)","info":{"declType":"alias","alias":[["Data","Functor"],{"Right":{"Left":{"Ident":"map"}}}],"fixity":{"associativity":"infixl","precedence":4}},"sourceSpan":{"start":[28,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Functor.purs","end":[28,20]}},{"children":[],"comments":"`mapFlipped` is `map` with its arguments reversed. For example:\n\n```purescript\n[1, 2, 3] <#> \\n -> n * n\n```\n","title":"mapFlipped","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Functor"],"Functor"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintKindArgs":[],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}]}]},null]},null]},null]}},"sourceSpan":{"start":[35,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Functor.purs","end":[35,64]}},{"children":[],"comments":null,"title":"(<#>)","info":{"declType":"alias","alias":[["Data","Functor"],{"Right":{"Left":{"Ident":"mapFlipped"}}}],"fixity":{"associativity":"infixl","precedence":1}},"sourceSpan":{"start":[38,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Functor.purs","end":[38,27]}},{"children":[],"comments":"The `void` function is used to ignore the type wrapped by a\n[`Functor`](#functor), replacing it with `Unit` and keeping only the type\ninformation provided by the type constructor itself.\n\n`void` is often useful when using `do` notation to change the return type\nof a monadic computation:\n\n```purescript\nmain = forE 1 10 \\n -> void do\n  print n\n  print (n * n)\n```\n","title":"void","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Functor"],"Functor"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintKindArgs":[],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}]},null]},null]}},"sourceSpan":{"start":[63,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Functor.purs","end":[63,47]}},{"children":[],"comments":"Ignore the return value of a computation, using the specified return value\ninstead.\n","title":"voidRight","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Functor"],"Functor"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintKindArgs":[],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]}]},null]},null]},null]}},"sourceSpan":{"start":[68,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Functor.purs","end":[68,56]}},{"children":[],"comments":null,"title":"(<$)","info":{"declType":"alias","alias":[["Data","Functor"],{"Right":{"Left":{"Ident":"voidRight"}}}],"fixity":{"associativity":"infixl","precedence":4}},"sourceSpan":{"start":[71,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Functor.purs","end":[71,25]}},{"children":[],"comments":"A version of `voidRight` with its arguments flipped.\n","title":"voidLeft","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Functor"],"Functor"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintKindArgs":[],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}]}]},null]},null]},null]}},"sourceSpan":{"start":[74,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Functor.purs","end":[74,55]}},{"children":[],"comments":null,"title":"($>)","info":{"declType":"alias","alias":[["Data","Functor"],{"Right":{"Left":{"Ident":"voidLeft"}}}],"fixity":{"associativity":"infixl","precedence":4}},"sourceSpan":{"start":[77,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Functor.purs","end":[77,24]}},{"children":[],"comments":"Apply a value in a computational context to a value in no context.\n\nGeneralizes `flip`.\n\n```purescript\nlongEnough :: String -> Bool\nhasSymbol :: String -> Bool\nhasDigit :: String -> Bool\npassword :: String\n\nvalidate :: String -> Array Bool\nvalidate = flap [longEnough, hasSymbol, hasDigit]\n```\n\n```purescript\nflap (-) 3 4 == 1\nthreeve <$> Just 1 <@> 'a' <*> Just true == Just (threeve 1 'a' true)\n```\n","title":"flap","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Functor"],"Functor"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintKindArgs":[],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}]}]},null]},null]},null]}},"sourceSpan":{"start":[97,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Functor.purs","end":[97,58]}},{"children":[],"comments":null,"title":"(<@>)","info":{"declType":"alias","alias":[["Data","Functor"],{"Right":{"Left":{"Ident":"flap"}}}],"fixity":{"associativity":"infixl","precedence":4}},"sourceSpan":{"start":[100,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Functor.purs","end":[100,21]}}]},{"reExports":[],"name":"Data.Generic.Rep","comments":null,"declarations":[{"children":[{"comments":null,"title":"to","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"rep"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}},"sourceSpan":{"start":[57,3],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Generic/Rep.purs","end":[57,17]}},{"comments":null,"title":"from","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"rep"}]}},"sourceSpan":{"start":[58,3],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Generic/Rep.purs","end":[58,19]}}],"comments":"The `Generic` class asserts the existence of a type function from types\nto their representations using the type constructors defined in this module.\n","title":"Generic","info":{"fundeps":[[["a"],["rep"]]],"arguments":[["a",null],["rep",null]],"declType":"typeClass","superclasses":[]},"sourceSpan":{"start":[56,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Generic/Rep.purs","end":[58,19]}},{"children":[],"comments":null,"title":"repOf","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["rep",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Generic","Rep"],"Generic"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"},{"annotation":[],"tag":"TypeVar","contents":"rep"}],"constraintKindArgs":[],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy"]},{"annotation":[],"tag":"TypeVar","contents":"rep"}]}]}]},null]},null]}},"sourceSpan":{"start":[60,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Generic/Rep.purs","end":[60,61]}},{"children":[],"comments":"A representation for types with no constructors.\n","title":"NoConstructors","info":{"declType":"data","dataDeclType":"data","typeArguments":[]},"sourceSpan":{"start":[20,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Generic/Rep.purs","end":[20,20]}},{"children":[{"comments":null,"title":"NoArguments","info":{"arguments":[],"declType":"dataConstructor"},"sourceSpan":null},{"comments":null,"title":"showNoArguments","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Show"],"Show"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"NoArguments"]}]}},"sourceSpan":{"start":[25,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Generic/Rep.purs","end":[26,25]}}],"comments":"A representation for constructors with no arguments.\n","title":"NoArguments","info":{"declType":"data","dataDeclType":"data","typeArguments":[]},"sourceSpan":{"start":[23,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Generic/Rep.purs","end":[23,31]}},{"children":[{"comments":null,"title":"Inl","info":{"arguments":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"declType":"dataConstructor"},"sourceSpan":null},{"comments":null,"title":"Inr","info":{"arguments":[{"annotation":[],"tag":"TypeVar","contents":"b"}],"declType":"dataConstructor"},"sourceSpan":null},{"comments":null,"title":"showSum","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Show"],"Show"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","Show"],"Show"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"b"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Show"],"Show"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"Sum"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}},"sourceSpan":{"start":[31,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Generic/Rep.purs","end":[33,42]}}],"comments":"A representation for types with multiple constructors.\n","title":"Sum","info":{"declType":"data","dataDeclType":"data","typeArguments":[["a",null],["b",null]]},"sourceSpan":{"start":[29,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Generic/Rep.purs","end":[29,29]}},{"children":[{"comments":null,"title":"Product","info":{"arguments":[{"annotation":[],"tag":"TypeVar","contents":"a"},{"annotation":[],"tag":"TypeVar","contents":"b"}],"declType":"dataConstructor"},"sourceSpan":null},{"comments":null,"title":"showProduct","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Show"],"Show"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","Show"],"Show"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"b"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Show"],"Show"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"Product"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}},"sourceSpan":{"start":[38,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Generic/Rep.purs","end":[39,69]}}],"comments":"A representation for constructors with multiple fields.\n","title":"Product","info":{"declType":"data","dataDeclType":"data","typeArguments":[["a",null],["b",null]]},"sourceSpan":{"start":[36,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Generic/Rep.purs","end":[36,31]}},{"children":[{"comments":null,"title":"Constructor","info":{"arguments":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"declType":"dataConstructor"},"sourceSpan":null},{"comments":null,"title":"showConstructor","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Symbol"],"IsSymbol"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"name"}],"constraintKindArgs":[],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","Show"],"Show"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Show"],"Show"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"Constructor"]},{"annotation":[],"tag":"TypeVar","contents":"name"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[45,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Generic/Rep.purs","end":[46,112]}}],"comments":"A representation for constructors which includes the data constructor name\nas a type-level string.\n","title":"Constructor","info":{"declType":"data","dataDeclType":"newtype","typeArguments":[["name",{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Symbol"]}],["a",null]]},"sourceSpan":{"start":[43,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Generic/Rep.purs","end":[43,55]}},{"children":[{"comments":null,"title":"Argument","info":{"arguments":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"declType":"dataConstructor"},"sourceSpan":null},{"comments":null,"title":"showArgument","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Show"],"Show"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Show"],"Show"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"Argument"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[51,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Generic/Rep.purs","end":[52,52]}}],"comments":"A representation for an argument in a data constructor.\n","title":"Argument","info":{"declType":"data","dataDeclType":"newtype","typeArguments":[["a",null]]},"sourceSpan":{"start":[49,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Generic/Rep.purs","end":[49,32]}}]},{"reExports":[],"name":"Data.HeytingAlgebra","comments":null,"declarations":[{"children":[{"comments":null,"title":"ff","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeVar","contents":"a"}},"sourceSpan":{"start":[39,3],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[39,10]}},{"comments":null,"title":"tt","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeVar","contents":"a"}},"sourceSpan":{"start":[40,3],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[40,10]}},{"comments":null,"title":"implies","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[41,3],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[41,25]}},{"comments":null,"title":"conj","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[42,3],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[42,22]}},{"comments":null,"title":"disj","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[43,3],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[43,22]}},{"comments":null,"title":"not","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}},"sourceSpan":{"start":[44,3],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[44,16]}},{"comments":null,"title":"heytingAlgebraBoolean","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","HeytingAlgebra"],"HeytingAlgebra"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}},"sourceSpan":{"start":[49,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[55,16]}},{"comments":null,"title":"heytingAlgebraUnit","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","HeytingAlgebra"],"HeytingAlgebra"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}},"sourceSpan":{"start":[57,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[63,15]}},{"comments":null,"title":"heytingAlgebraFunction","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","HeytingAlgebra"],"HeytingAlgebra"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"b"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","HeytingAlgebra"],"HeytingAlgebra"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}},"sourceSpan":{"start":[65,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[71,22]}},{"comments":null,"title":"heytingAlgebraProxy","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","HeytingAlgebra"],"HeytingAlgebra"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[73,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[79,13]}},{"comments":null,"title":"heytingAlgebraProxy2","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","HeytingAlgebra"],"HeytingAlgebra"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy2"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[81,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[87,14]}},{"comments":null,"title":"heytingAlgebraProxy3","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","HeytingAlgebra"],"HeytingAlgebra"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy3"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[89,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[95,14]}},{"comments":null,"title":"heytingAlgebraRecord","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Prim","RowList"],"RowToList"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"row"},{"annotation":[],"tag":"TypeVar","contents":"list"}],"constraintKindArgs":[],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","HeytingAlgebra"],"HeytingAlgebraRecord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"list"},{"annotation":[],"tag":"TypeVar","contents":"row"},{"annotation":[],"tag":"TypeVar","contents":"row"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","HeytingAlgebra"],"HeytingAlgebra"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"TypeVar","contents":"row"}]}]}},"sourceSpan":{"start":[97,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[103,41]}}],"comments":"The `HeytingAlgebra` type class represents types that are bounded lattices with\nan implication operator such that the following laws hold:\n\n- Associativity:\n  - `a || (b || c) = (a || b) || c`\n  - `a && (b && c) = (a && b) && c`\n- Commutativity:\n  - `a || b = b || a`\n  - `a && b = b && a`\n- Absorption:\n  - `a || (a && b) = a`\n  - `a && (a || b) = a`\n- Idempotent:\n  - `a || a = a`\n  - `a && a = a`\n- Identity:\n  - `a || ff = a`\n  - `a && tt = a`\n- Implication:\n  - ``a `implies` a = tt``\n  - ``a && (a `implies` b) = a && b``\n  - ``b && (a `implies` b) = b``\n  - ``a `implies` (b && c) = (a `implies` b) && (a `implies` c)``\n- Complemented:\n  - ``not a = a `implies` ff``\n","title":"HeytingAlgebra","info":{"fundeps":[],"arguments":[["a",null]],"declType":"typeClass","superclasses":[]},"sourceSpan":{"start":[38,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[44,16]}},{"children":[],"comments":null,"title":"(&&)","info":{"declType":"alias","alias":[["Data","HeytingAlgebra"],{"Right":{"Left":{"Ident":"conj"}}}],"fixity":{"associativity":"infixr","precedence":3}},"sourceSpan":{"start":[46,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[46,20]}},{"children":[],"comments":null,"title":"(||)","info":{"declType":"alias","alias":[["Data","HeytingAlgebra"],{"Right":{"Left":{"Ident":"disj"}}}],"fixity":{"associativity":"infixr","precedence":2}},"sourceSpan":{"start":[47,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[47,20]}},{"children":[{"comments":null,"title":"ffRecord","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"ForAll","contents":["rlproxy",{"annotation":[],"tag":"ForAll","contents":["rproxy",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"rlproxy"},{"annotation":[],"tag":"TypeVar","contents":"rowlist"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"rproxy"},{"annotation":[],"tag":"TypeVar","contents":"row"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"TypeVar","contents":"subrow"}]}]}]},null]},null]}},"sourceSpan":{"start":[113,3],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[113,84]}},{"comments":null,"title":"ttRecord","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"ForAll","contents":["rlproxy",{"annotation":[],"tag":"ForAll","contents":["rproxy",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"rlproxy"},{"annotation":[],"tag":"TypeVar","contents":"rowlist"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"rproxy"},{"annotation":[],"tag":"TypeVar","contents":"row"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"TypeVar","contents":"subrow"}]}]}]},null]},null]}},"sourceSpan":{"start":[114,3],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[114,84]}},{"comments":null,"title":"impliesRecord","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"ForAll","contents":["rlproxy",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"rlproxy"},{"annotation":[],"tag":"TypeVar","contents":"rowlist"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"TypeVar","contents":"row"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"TypeVar","contents":"row"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"TypeVar","contents":"subrow"}]}]}]}]},null]}},"sourceSpan":{"start":[115,3],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[115,96]}},{"comments":null,"title":"disjRecord","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"ForAll","contents":["rlproxy",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"rlproxy"},{"annotation":[],"tag":"TypeVar","contents":"rowlist"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"TypeVar","contents":"row"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"TypeVar","contents":"row"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"TypeVar","contents":"subrow"}]}]}]}]},null]}},"sourceSpan":{"start":[116,3],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[116,93]}},{"comments":null,"title":"conjRecord","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"ForAll","contents":["rlproxy",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"rlproxy"},{"annotation":[],"tag":"TypeVar","contents":"rowlist"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"TypeVar","contents":"row"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"TypeVar","contents":"row"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"TypeVar","contents":"subrow"}]}]}]}]},null]}},"sourceSpan":{"start":[117,3],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[117,93]}},{"comments":null,"title":"notRecord","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"ForAll","contents":["rlproxy",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"rlproxy"},{"annotation":[],"tag":"TypeVar","contents":"rowlist"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"TypeVar","contents":"row"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"TypeVar","contents":"subrow"}]}]}]},null]}},"sourceSpan":{"start":[118,3],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[118,78]}},{"comments":null,"title":"heytingAlgebraRecordNil","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","HeytingAlgebra"],"HeytingAlgebraRecord"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim","RowList"],"Nil"]}]},{"annotation":[],"tag":"TypeVar","contents":"row"}]},{"annotation":[],"tag":"REmpty"}]}},"sourceSpan":{"start":[120,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[126,20]}},{"comments":null,"title":"heytingAlgebraRecordCons","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Symbol"],"IsSymbol"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"key"}],"constraintKindArgs":[],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Prim","Row"],"Cons"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"key"},{"annotation":[],"tag":"TypeVar","contents":"focus"},{"annotation":[],"tag":"TypeVar","contents":"subrowTail"},{"annotation":[],"tag":"TypeVar","contents":"subrow"}],"constraintKindArgs":[],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","HeytingAlgebra"],"HeytingAlgebraRecord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"rowlistTail"},{"annotation":[],"tag":"TypeVar","contents":"row"},{"annotation":[],"tag":"TypeVar","contents":"subrowTail"}],"constraintKindArgs":[],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","HeytingAlgebra"],"HeytingAlgebra"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"focus"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","HeytingAlgebra"],"HeytingAlgebraRecord"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim","RowList"],"Cons"]},{"annotation":[],"tag":"TypeVar","contents":"key"}]},{"annotation":[],"tag":"TypeVar","contents":"focus"}]},{"annotation":[],"tag":"TypeVar","contents":"rowlistTail"}]}]},{"annotation":[],"tag":"TypeVar","contents":"row"}]},{"annotation":[],"tag":"TypeVar","contents":"subrow"}]}},"sourceSpan":{"start":[128,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[174,55]}}],"comments":null,"title":"HeytingAlgebraRecord","info":{"fundeps":[[["rowlist"],["subrow"]]],"arguments":[["rowlist",null],["row",null],["subrow",null]],"declType":"typeClass","superclasses":[]},"sourceSpan":{"start":[112,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[118,78]}}]},{"reExports":[],"name":"Data.HeytingAlgebra.Generic","comments":null,"declarations":[{"children":[{"comments":null,"title":"genericFF'","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeVar","contents":"a"}},"sourceSpan":{"start":[9,3],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/HeytingAlgebra/Generic.purs","end":[9,18]}},{"comments":null,"title":"genericTT'","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeVar","contents":"a"}},"sourceSpan":{"start":[10,3],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/HeytingAlgebra/Generic.purs","end":[10,18]}},{"comments":null,"title":"genericImplies'","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[11,3],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/HeytingAlgebra/Generic.purs","end":[11,33]}},{"comments":null,"title":"genericConj'","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[12,3],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/HeytingAlgebra/Generic.purs","end":[12,30]}},{"comments":null,"title":"genericDisj'","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[13,3],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/HeytingAlgebra/Generic.purs","end":[13,30]}},{"comments":null,"title":"genericNot'","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}},"sourceSpan":{"start":[14,3],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/HeytingAlgebra/Generic.purs","end":[14,24]}},{"comments":null,"title":"genericHeytingAlgebraNoArguments","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","HeytingAlgebra","Generic"],"GenericHeytingAlgebra"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"NoArguments"]}]}},"sourceSpan":{"start":[16,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/HeytingAlgebra/Generic.purs","end":[22,30]}},{"comments":null,"title":"genericHeytingAlgebraArgument","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","HeytingAlgebra"],"HeytingAlgebra"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","HeytingAlgebra","Generic"],"GenericHeytingAlgebra"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"Argument"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[24,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/HeytingAlgebra/Generic.purs","end":[30,46]}},{"comments":null,"title":"genericHeytingAlgebraProduct","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","HeytingAlgebra","Generic"],"GenericHeytingAlgebra"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","HeytingAlgebra","Generic"],"GenericHeytingAlgebra"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"b"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","HeytingAlgebra","Generic"],"GenericHeytingAlgebra"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"Product"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}},"sourceSpan":{"start":[32,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/HeytingAlgebra/Generic.purs","end":[38,70]}},{"comments":null,"title":"genericHeytingAlgebraConstructor","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","HeytingAlgebra","Generic"],"GenericHeytingAlgebra"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","HeytingAlgebra","Generic"],"GenericHeytingAlgebra"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"Constructor"]},{"annotation":[],"tag":"TypeVar","contents":"name"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[40,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/HeytingAlgebra/Generic.purs","end":[46,60]}}],"comments":null,"title":"GenericHeytingAlgebra","info":{"fundeps":[],"arguments":[["a",null]],"declType":"typeClass","superclasses":[]},"sourceSpan":{"start":[8,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/HeytingAlgebra/Generic.purs","end":[14,24]}},{"children":[],"comments":"A `Generic` implementation of the `ff` member from the `HeytingAlgebra` type class.\n","title":"genericFF","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["rep",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Generic","Rep"],"Generic"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"},{"annotation":[],"tag":"TypeVar","contents":"rep"}],"constraintKindArgs":[],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","HeytingAlgebra","Generic"],"GenericHeytingAlgebra"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"rep"}],"constraintKindArgs":[],"constraintData":null},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},null]},null]}},"sourceSpan":{"start":[49,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/HeytingAlgebra/Generic.purs","end":[49,75]}},{"children":[],"comments":"A `Generic` implementation of the `tt` member from the `HeytingAlgebra` type class.\n","title":"genericTT","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["rep",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Generic","Rep"],"Generic"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"},{"annotation":[],"tag":"TypeVar","contents":"rep"}],"constraintKindArgs":[],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","HeytingAlgebra","Generic"],"GenericHeytingAlgebra"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"rep"}],"constraintKindArgs":[],"constraintData":null},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},null]},null]}},"sourceSpan":{"start":[53,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/HeytingAlgebra/Generic.purs","end":[53,75]}},{"children":[],"comments":"A `Generic` implementation of the `implies` member from the `HeytingAlgebra` type class.\n","title":"genericImplies","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["rep",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Generic","Rep"],"Generic"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"},{"annotation":[],"tag":"TypeVar","contents":"rep"}],"constraintKindArgs":[],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","HeytingAlgebra","Generic"],"GenericHeytingAlgebra"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"rep"}],"constraintKindArgs":[],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]}]},null]},null]}},"sourceSpan":{"start":[57,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/HeytingAlgebra/Generic.purs","end":[57,90]}},{"children":[],"comments":"A `Generic` implementation of the `conj` member from the `HeytingAlgebra` type class.\n","title":"genericConj","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["rep",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Generic","Rep"],"Generic"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"},{"annotation":[],"tag":"TypeVar","contents":"rep"}],"constraintKindArgs":[],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","HeytingAlgebra","Generic"],"GenericHeytingAlgebra"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"rep"}],"constraintKindArgs":[],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]}]},null]},null]}},"sourceSpan":{"start":[61,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/HeytingAlgebra/Generic.purs","end":[61,87]}},{"children":[],"comments":"A `Generic` implementation of the `disj` member from the `HeytingAlgebra` type class.\n","title":"genericDisj","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["rep",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Generic","Rep"],"Generic"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"},{"annotation":[],"tag":"TypeVar","contents":"rep"}],"constraintKindArgs":[],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","HeytingAlgebra","Generic"],"GenericHeytingAlgebra"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"rep"}],"constraintKindArgs":[],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]}]},null]},null]}},"sourceSpan":{"start":[65,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/HeytingAlgebra/Generic.purs","end":[65,87]}},{"children":[],"comments":"A `Generic` implementation of the `not` member from the `HeytingAlgebra` type class.\n","title":"genericNot","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["rep",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Generic","Rep"],"Generic"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"},{"annotation":[],"tag":"TypeVar","contents":"rep"}],"constraintKindArgs":[],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","HeytingAlgebra","Generic"],"GenericHeytingAlgebra"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"rep"}],"constraintKindArgs":[],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]},null]},null]}},"sourceSpan":{"start":[69,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/HeytingAlgebra/Generic.purs","end":[69,81]}}]},{"reExports":[{"moduleName":{"package":null,"item":["Data","Semigroup"]},"declarations":[{"children":[{"comments":null,"title":"semigroupString","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup"],"Semigroup"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}},"sourceSpan":{"start":[36,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semigroup.purs","end":[37,24]}},{"comments":null,"title":"semigroupUnit","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup"],"Semigroup"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}},"sourceSpan":{"start":[39,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semigroup.purs","end":[40,20]}},{"comments":null,"title":"semigroupVoid","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup"],"Semigroup"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Void"],"Void"]}]}},"sourceSpan":{"start":[42,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semigroup.purs","end":[43,20]}},{"comments":null,"title":"semigroupFn","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Semigroup"],"Semigroup"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"s'"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup"],"Semigroup"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"s"}]},{"annotation":[],"tag":"TypeVar","contents":"s'"}]}]}},"sourceSpan":{"start":[45,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semigroup.purs","end":[46,28]}},{"comments":null,"title":"semigroupArray","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup"],"Semigroup"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[48,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semigroup.purs","end":[49,23]}},{"comments":null,"title":"semigroupProxy","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup"],"Semigroup"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[51,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semigroup.purs","end":[52,21]}},{"comments":null,"title":"semigroupProxy2","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup"],"Semigroup"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy2"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[54,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semigroup.purs","end":[55,22]}},{"comments":null,"title":"semigroupProxy3","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup"],"Semigroup"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy3"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[57,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semigroup.purs","end":[58,22]}},{"comments":null,"title":"semigroupRecord","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Prim","RowList"],"RowToList"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"row"},{"annotation":[],"tag":"TypeVar","contents":"list"}],"constraintKindArgs":[],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","Semigroup"],"SemigroupRecord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"list"},{"annotation":[],"tag":"TypeVar","contents":"row"},{"annotation":[],"tag":"TypeVar","contents":"row"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup"],"Semigroup"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"TypeVar","contents":"row"}]}]}},"sourceSpan":{"start":[60,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semigroup.purs","end":[61,46]}}],"comments":"The `Semigroup` type class identifies an associative operation on a type.\n\nInstances are required to satisfy the following law:\n\n- Associativity: `(x <> y) <> z = x <> (y <> z)`\n\nOne example of a `Semigroup` is `String`, with `(<>)` defined as string\nconcatenation. Another example is `List a`, with `(<>)` defined as\nlist concatenation.\n\n### Newtypes for Semigroup\n\nThere are two other ways to implement an instance for this type class\nregardless of which type is used. These instances can be used by\nwrapping the values in one of the two newtypes below:\n1. `First` - Use the first argument every time: `append first _ = first`.\n2. `Last` - Use the last argument every time: `append _ last = last`.\n","title":"Semigroup","info":{"fundeps":[],"arguments":[["a",null]],"declType":"typeClass","superclasses":[]},"sourceSpan":{"start":[31,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semigroup.purs","end":[32,24]}},{"children":[{"comments":null,"title":"semigroupRecordNil","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup"],"SemigroupRecord"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim","RowList"],"Nil"]}]},{"annotation":[],"tag":"TypeVar","contents":"row"}]},{"annotation":[],"tag":"REmpty"}]}},"sourceSpan":{"start":[72,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semigroup.purs","end":[73,26]}},{"comments":null,"title":"semigroupRecordCons","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Symbol"],"IsSymbol"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"key"}],"constraintKindArgs":[],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Prim","Row"],"Cons"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"key"},{"annotation":[],"tag":"TypeVar","contents":"focus"},{"annotation":[],"tag":"TypeVar","contents":"subrowTail"},{"annotation":[],"tag":"TypeVar","contents":"subrow"}],"constraintKindArgs":[],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","Semigroup"],"SemigroupRecord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"rowlistTail"},{"annotation":[],"tag":"TypeVar","contents":"row"},{"annotation":[],"tag":"TypeVar","contents":"subrowTail"}],"constraintKindArgs":[],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","Semigroup"],"Semigroup"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"focus"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup"],"SemigroupRecord"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim","RowList"],"Cons"]},{"annotation":[],"tag":"TypeVar","contents":"key"}]},{"annotation":[],"tag":"TypeVar","contents":"focus"}]},{"annotation":[],"tag":"TypeVar","contents":"rowlistTail"}]}]},{"annotation":[],"tag":"TypeVar","contents":"row"}]},{"annotation":[],"tag":"TypeVar","contents":"subrow"}]}},"sourceSpan":{"start":[75,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semigroup.purs","end":[87,61]}}],"comments":null,"title":"SemigroupRecord","info":{"fundeps":[[["rowlist"],["subrow"]]],"arguments":[["rowlist",null],["row",null],["subrow",null]],"declType":"typeClass","superclasses":[]},"sourceSpan":{"start":[69,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semigroup.purs","end":[70,95]}},{"children":[],"comments":null,"title":"(<>)","info":{"declType":"alias","alias":[["Data","Semigroup"],{"Right":{"Left":{"Ident":"append"}}}],"fixity":{"associativity":"infixr","precedence":5}},"sourceSpan":{"start":[34,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semigroup.purs","end":[34,22]}}]}],"name":"Data.Monoid","comments":null,"declarations":[{"children":[{"comments":null,"title":"mempty","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeVar","contents":"m"}},"sourceSpan":{"start":[45,3],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Monoid.purs","end":[45,14]}},{"comments":null,"title":"monoidUnit","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid"],"Monoid"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}},"sourceSpan":{"start":[47,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Monoid.purs","end":[48,16]}},{"comments":null,"title":"monoidOrdering","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid"],"Monoid"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ordering"],"Ordering"]}]}},"sourceSpan":{"start":[50,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Monoid.purs","end":[51,14]}},{"comments":null,"title":"monoidFn","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Monoid"],"Monoid"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"b"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid"],"Monoid"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}},"sourceSpan":{"start":[53,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Monoid.purs","end":[54,20]}},{"comments":null,"title":"monoidString","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid"],"Monoid"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}},"sourceSpan":{"start":[56,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Monoid.purs","end":[57,14]}},{"comments":null,"title":"monoidArray","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid"],"Monoid"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[59,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Monoid.purs","end":[60,14]}},{"comments":null,"title":"monoidRecord","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Prim","RowList"],"RowToList"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"row"},{"annotation":[],"tag":"TypeVar","contents":"list"}],"constraintKindArgs":[],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","Monoid"],"MonoidRecord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"list"},{"annotation":[],"tag":"TypeVar","contents":"row"},{"annotation":[],"tag":"TypeVar","contents":"row"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid"],"Monoid"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"TypeVar","contents":"row"}]}]}},"sourceSpan":{"start":[62,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Monoid.purs","end":[63,46]}}],"comments":"A `Monoid` is a `Semigroup` with a value `mempty`, which is both a\nleft and right unit for the associative operation `<>`:\n\n- Left unit: `(mempty <> x) = x`\n- Right unit: `(x <> mempty) = x`\n\n`Monoid`s are commonly used as the result of fold operations, where\n`<>` is used to combine individual results, and `mempty` gives the result\nof folding an empty collection of elements.\n\n### Newtypes for Monoid\n\nSome types (e.g. `Int`, `Boolean`) can implement multiple law-abiding\ninstances for `Monoid`. Let's use `Int` as an example\n1. `<>` could be `+` and `mempty` could be `0`\n2. `<>` could be `*` and `mempty` could be `1`.\n\nTo clarify these ambiguous situations, one should use the newtypes\ndefined in `Data.Monoid.<NewtypeName>` modules.\n\nIn the above ambiguous situation, we could use `Additive`\nfor the first situation or `Multiplicative` for the second one.\n","title":"Monoid","info":{"fundeps":[],"arguments":[["m",null]],"declType":"typeClass","superclasses":[{"constraintAnn":[],"constraintClass":[["Data","Semigroup"],"Semigroup"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintKindArgs":[],"constraintData":null}]},"sourceSpan":{"start":[44,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Monoid.purs","end":[45,14]}},{"children":[],"comments":"Append a value to itself a certain number of times. For the\n`Multiplicative` type, and for a non-negative power, this is the same as\nnormal number exponentiation.\n\nIf the second argument is negative this function will return `mempty`\n(*unlike* normal number exponentiation). The `Monoid` constraint alone\nis not enough to write a `power` function with the property that `power x\nn` cancels with `power x (-n)`, i.e. `power x n <> power x (-n) = mempty`.\nFor that, we would additionally need the ability to invert elements, i.e.\na Group.\n\n```purescript\npower [1,2] 3    == [1,2,1,2,1,2]\npower [1,2] 1    == [1,2]\npower [1,2] 0    == []\npower [1,2] (-3) == []\n```\n\n","title":"power","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Monoid"],"Monoid"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintKindArgs":[],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"m"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeVar","contents":"m"}]}]}]},null]}},"sourceSpan":{"start":[83,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Monoid.purs","end":[83,45]}},{"children":[],"comments":"Allow or \"truncate\" a Monoid to its `mempty` value based on a condition.\n","title":"guard","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Monoid"],"Monoid"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintKindArgs":[],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"m"}]},{"annotation":[],"tag":"TypeVar","contents":"m"}]}]}]},null]}},"sourceSpan":{"start":[94,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Monoid.purs","end":[94,49]}},{"children":[{"comments":null,"title":"memptyRecord","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"ForAll","contents":["rlproxy",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"rlproxy"},{"annotation":[],"tag":"TypeVar","contents":"rowlist"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"TypeVar","contents":"subrow"}]}]},null]}},"sourceSpan":{"start":[102,3],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Monoid.purs","end":[102,67]}},{"comments":null,"title":"monoidRecordNil","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid"],"MonoidRecord"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim","RowList"],"Nil"]}]},{"annotation":[],"tag":"TypeVar","contents":"row"}]},{"annotation":[],"tag":"REmpty"}]}},"sourceSpan":{"start":[104,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Monoid.purs","end":[105,22]}},{"comments":null,"title":"monoidRecordCons","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Symbol"],"IsSymbol"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"key"}],"constraintKindArgs":[],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","Monoid"],"Monoid"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"focus"}],"constraintKindArgs":[],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Prim","Row"],"Cons"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"key"},{"annotation":[],"tag":"TypeVar","contents":"focus"},{"annotation":[],"tag":"TypeVar","contents":"subrowTail"},{"annotation":[],"tag":"TypeVar","contents":"subrow"}],"constraintKindArgs":[],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","Monoid"],"MonoidRecord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"rowlistTail"},{"annotation":[],"tag":"TypeVar","contents":"row"},{"annotation":[],"tag":"TypeVar","contents":"subrowTail"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid"],"MonoidRecord"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim","RowList"],"Cons"]},{"annotation":[],"tag":"TypeVar","contents":"key"}]},{"annotation":[],"tag":"TypeVar","contents":"focus"}]},{"annotation":[],"tag":"TypeVar","contents":"rowlistTail"}]}]},{"annotation":[],"tag":"TypeVar","contents":"row"}]},{"annotation":[],"tag":"TypeVar","contents":"subrow"}]}},"sourceSpan":{"start":[107,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Monoid.purs","end":[119,55]}}],"comments":null,"title":"MonoidRecord","info":{"fundeps":[[["rowlist"],["row","subrow"]]],"arguments":[["rowlist",null],["row",null],["subrow",null]],"declType":"typeClass","superclasses":[{"constraintAnn":[],"constraintClass":[["Data","Semigroup"],"SemigroupRecord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"rowlist"},{"annotation":[],"tag":"TypeVar","contents":"row"},{"annotation":[],"tag":"TypeVar","contents":"subrow"}],"constraintKindArgs":[],"constraintData":null}]},"sourceSpan":{"start":[101,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Monoid.purs","end":[102,67]}}]},{"reExports":[],"name":"Data.Monoid.Additive","comments":null,"declarations":[{"children":[{"comments":null,"title":"Additive","info":{"arguments":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"declType":"dataConstructor"},"sourceSpan":null},{"comments":null,"title":"eqAdditive","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Eq"],"Eq"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Additive"],"Additive"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[16,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Monoid/Additive.purs","end":[16,62]}},{"comments":null,"title":"eq1Additive","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Eq"],"Eq1"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Additive"],"Additive"]}]}},"sourceSpan":{"start":[17,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Monoid/Additive.purs","end":[17,44]}},{"comments":null,"title":"ordAdditive","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord"],"Ord"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Additive"],"Additive"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[19,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Monoid/Additive.purs","end":[19,65]}},{"comments":null,"title":"ord1Additive","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord"],"Ord1"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Additive"],"Additive"]}]}},"sourceSpan":{"start":[20,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Monoid/Additive.purs","end":[20,46]}},{"comments":null,"title":"boundedAdditive","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Bounded"],"Bounded"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Bounded"],"Bounded"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Additive"],"Additive"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[22,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Monoid/Additive.purs","end":[22,77]}},{"comments":null,"title":"showAdditive","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Show"],"Show"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Show"],"Show"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Additive"],"Additive"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[24,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Monoid/Additive.purs","end":[25,52]}},{"comments":null,"title":"functorAdditive","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Functor"],"Functor"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Additive"],"Additive"]}]}},"sourceSpan":{"start":[27,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Monoid/Additive.purs","end":[27,52]}},{"comments":null,"title":"applyAdditive","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Apply"],"Apply"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Additive"],"Additive"]}]}},"sourceSpan":{"start":[29,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Monoid/Additive.purs","end":[30,51]}},{"comments":null,"title":"applicativeAdditive","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Applicative"],"Applicative"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Additive"],"Additive"]}]}},"sourceSpan":{"start":[32,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Monoid/Additive.purs","end":[33,18]}},{"comments":null,"title":"bindAdditive","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Bind"],"Bind"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Additive"],"Additive"]}]}},"sourceSpan":{"start":[35,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Monoid/Additive.purs","end":[36,28]}},{"comments":null,"title":"monadAdditive","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Monad"],"Monad"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Additive"],"Additive"]}]}},"sourceSpan":{"start":[38,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Monoid/Additive.purs","end":[38,41]}},{"comments":null,"title":"semigroupAdditive","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Semiring"],"Semiring"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup"],"Semigroup"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Additive"],"Additive"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[40,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Monoid/Additive.purs","end":[41,54]}},{"comments":null,"title":"monoidAdditive","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Semiring"],"Semiring"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid"],"Monoid"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Additive"],"Additive"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[43,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Monoid/Additive.purs","end":[44,25]}}],"comments":"Monoid and semigroup for semirings under addition.\n\n``` purescript\nAdditive x <> Additive y == Additive (x + y)\n(mempty :: Additive _) == Additive zero\n```\n","title":"Additive","info":{"declType":"data","dataDeclType":"newtype","typeArguments":[["a",null]]},"sourceSpan":{"start":[14,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Monoid/Additive.purs","end":[14,32]}}]},{"reExports":[],"name":"Data.Monoid.Conj","comments":null,"declarations":[{"children":[{"comments":null,"title":"Conj","info":{"arguments":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"declType":"dataConstructor"},"sourceSpan":null},{"comments":null,"title":"eqConj","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Eq"],"Eq"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Conj"],"Conj"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[17,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Monoid/Conj.purs","end":[17,54]}},{"comments":null,"title":"eq1Conj","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Eq"],"Eq1"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Conj"],"Conj"]}]}},"sourceSpan":{"start":[18,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Monoid/Conj.purs","end":[18,36]}},{"comments":null,"title":"ordConj","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord"],"Ord"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Conj"],"Conj"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[20,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Monoid/Conj.purs","end":[20,57]}},{"comments":null,"title":"ord1Conj","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord"],"Ord1"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Conj"],"Conj"]}]}},"sourceSpan":{"start":[21,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Monoid/Conj.purs","end":[21,38]}},{"comments":null,"title":"boundedConj","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Bounded"],"Bounded"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Bounded"],"Bounded"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Conj"],"Conj"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[23,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Monoid/Conj.purs","end":[23,69]}},{"comments":null,"title":"showConj","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Show"],"Show"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Show"],"Show"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Conj"],"Conj"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[25,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Monoid/Conj.purs","end":[26,44]}},{"comments":null,"title":"functorConj","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Functor"],"Functor"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Conj"],"Conj"]}]}},"sourceSpan":{"start":[28,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Monoid/Conj.purs","end":[28,44]}},{"comments":null,"title":"applyConj","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Apply"],"Apply"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Conj"],"Conj"]}]}},"sourceSpan":{"start":[30,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Monoid/Conj.purs","end":[31,39]}},{"comments":null,"title":"applicativeConj","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Applicative"],"Applicative"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Conj"],"Conj"]}]}},"sourceSpan":{"start":[33,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Monoid/Conj.purs","end":[34,14]}},{"comments":null,"title":"bindConj","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Bind"],"Bind"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Conj"],"Conj"]}]}},"sourceSpan":{"start":[36,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Monoid/Conj.purs","end":[37,24]}},{"comments":null,"title":"monadConj","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Monad"],"Monad"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Conj"],"Conj"]}]}},"sourceSpan":{"start":[39,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Monoid/Conj.purs","end":[39,33]}},{"comments":null,"title":"semigroupConj","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","HeytingAlgebra"],"HeytingAlgebra"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup"],"Semigroup"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Conj"],"Conj"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[41,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Monoid/Conj.purs","end":[42,45]}},{"comments":null,"title":"monoidConj","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","HeytingAlgebra"],"HeytingAlgebra"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid"],"Monoid"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Conj"],"Conj"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[44,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Monoid/Conj.purs","end":[45,19]}},{"comments":null,"title":"semiringConj","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","HeytingAlgebra"],"HeytingAlgebra"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semiring"],"Semiring"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Conj"],"Conj"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[47,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Monoid/Conj.purs","end":[51,42]}}],"comments":"Monoid and semigroup for conjunction.\n\n``` purescript\nConj x <> Conj y == Conj (x && y)\n(mempty :: Conj _) == Conj tt\n```\n","title":"Conj","info":{"declType":"data","dataDeclType":"newtype","typeArguments":[["a",null]]},"sourceSpan":{"start":[15,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Monoid/Conj.purs","end":[15,24]}}]},{"reExports":[],"name":"Data.Monoid.Disj","comments":null,"declarations":[{"children":[{"comments":null,"title":"Disj","info":{"arguments":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"declType":"dataConstructor"},"sourceSpan":null},{"comments":null,"title":"eqDisj","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Eq"],"Eq"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Disj"],"Disj"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[17,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Monoid/Disj.purs","end":[17,54]}},{"comments":null,"title":"eq1Disj","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Eq"],"Eq1"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Disj"],"Disj"]}]}},"sourceSpan":{"start":[18,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Monoid/Disj.purs","end":[18,36]}},{"comments":null,"title":"ordDisj","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord"],"Ord"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Disj"],"Disj"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[20,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Monoid/Disj.purs","end":[20,57]}},{"comments":null,"title":"ord1Disj","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord"],"Ord1"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Disj"],"Disj"]}]}},"sourceSpan":{"start":[21,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Monoid/Disj.purs","end":[21,38]}},{"comments":null,"title":"boundedDisj","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Bounded"],"Bounded"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Bounded"],"Bounded"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Disj"],"Disj"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[23,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Monoid/Disj.purs","end":[23,69]}},{"comments":null,"title":"showDisj","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Show"],"Show"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Show"],"Show"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Disj"],"Disj"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[25,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Monoid/Disj.purs","end":[26,44]}},{"comments":null,"title":"functorDisj","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Functor"],"Functor"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Disj"],"Disj"]}]}},"sourceSpan":{"start":[28,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Monoid/Disj.purs","end":[28,44]}},{"comments":null,"title":"applyDisj","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Apply"],"Apply"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Disj"],"Disj"]}]}},"sourceSpan":{"start":[30,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Monoid/Disj.purs","end":[31,39]}},{"comments":null,"title":"applicativeDisj","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Applicative"],"Applicative"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Disj"],"Disj"]}]}},"sourceSpan":{"start":[33,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Monoid/Disj.purs","end":[34,14]}},{"comments":null,"title":"bindDisj","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Bind"],"Bind"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Disj"],"Disj"]}]}},"sourceSpan":{"start":[36,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Monoid/Disj.purs","end":[37,24]}},{"comments":null,"title":"monadDisj","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Monad"],"Monad"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Disj"],"Disj"]}]}},"sourceSpan":{"start":[39,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Monoid/Disj.purs","end":[39,33]}},{"comments":null,"title":"semigroupDisj","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","HeytingAlgebra"],"HeytingAlgebra"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup"],"Semigroup"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Disj"],"Disj"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[41,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Monoid/Disj.purs","end":[42,45]}},{"comments":null,"title":"monoidDisj","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","HeytingAlgebra"],"HeytingAlgebra"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid"],"Monoid"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Disj"],"Disj"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[44,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Monoid/Disj.purs","end":[45,19]}},{"comments":null,"title":"semiringDisj","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","HeytingAlgebra"],"HeytingAlgebra"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semiring"],"Semiring"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Disj"],"Disj"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[47,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Monoid/Disj.purs","end":[51,42]}}],"comments":"Monoid and semigroup for disjunction.\n\n``` purescript\nDisj x <> Disj y == Disj (x || y)\n(mempty :: Disj _) == Disj bottom\n```\n","title":"Disj","info":{"declType":"data","dataDeclType":"newtype","typeArguments":[["a",null]]},"sourceSpan":{"start":[15,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Monoid/Disj.purs","end":[15,24]}}]},{"reExports":[],"name":"Data.Monoid.Dual","comments":null,"declarations":[{"children":[{"comments":null,"title":"Dual","info":{"arguments":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"declType":"dataConstructor"},"sourceSpan":null},{"comments":null,"title":"eqDual","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Eq"],"Eq"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Dual"],"Dual"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[16,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Monoid/Dual.purs","end":[16,54]}},{"comments":null,"title":"eq1Dual","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Eq"],"Eq1"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Dual"],"Dual"]}]}},"sourceSpan":{"start":[17,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Monoid/Dual.purs","end":[17,36]}},{"comments":null,"title":"ordDual","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord"],"Ord"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Dual"],"Dual"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[19,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Monoid/Dual.purs","end":[19,57]}},{"comments":null,"title":"ord1Dual","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord"],"Ord1"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Dual"],"Dual"]}]}},"sourceSpan":{"start":[20,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Monoid/Dual.purs","end":[20,38]}},{"comments":null,"title":"boundedDual","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Bounded"],"Bounded"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Bounded"],"Bounded"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Dual"],"Dual"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[22,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Monoid/Dual.purs","end":[22,69]}},{"comments":null,"title":"showDual","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Show"],"Show"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Show"],"Show"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Dual"],"Dual"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[24,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Monoid/Dual.purs","end":[25,44]}},{"comments":null,"title":"functorDual","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Functor"],"Functor"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Dual"],"Dual"]}]}},"sourceSpan":{"start":[27,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Monoid/Dual.purs","end":[27,44]}},{"comments":null,"title":"applyDual","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Apply"],"Apply"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Dual"],"Dual"]}]}},"sourceSpan":{"start":[29,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Monoid/Dual.purs","end":[30,39]}},{"comments":null,"title":"applicativeDual","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Applicative"],"Applicative"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Dual"],"Dual"]}]}},"sourceSpan":{"start":[32,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Monoid/Dual.purs","end":[33,14]}},{"comments":null,"title":"bindDual","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Bind"],"Bind"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Dual"],"Dual"]}]}},"sourceSpan":{"start":[35,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Monoid/Dual.purs","end":[36,24]}},{"comments":null,"title":"monadDual","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Monad"],"Monad"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Dual"],"Dual"]}]}},"sourceSpan":{"start":[38,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Monoid/Dual.purs","end":[38,33]}},{"comments":null,"title":"semigroupDual","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Semigroup"],"Semigroup"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup"],"Semigroup"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Dual"],"Dual"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[40,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Monoid/Dual.purs","end":[41,43]}},{"comments":null,"title":"monoidDual","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Monoid"],"Monoid"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid"],"Monoid"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Dual"],"Dual"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[43,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Monoid/Dual.purs","end":[44,23]}}],"comments":"The dual of a monoid.\n\n``` purescript\nDual x <> Dual y == Dual (y <> x)\n(mempty :: Dual _) == Dual mempty\n```\n","title":"Dual","info":{"declType":"data","dataDeclType":"newtype","typeArguments":[["a",null]]},"sourceSpan":{"start":[14,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Monoid/Dual.purs","end":[14,24]}}]},{"reExports":[],"name":"Data.Monoid.Endo","comments":null,"declarations":[{"children":[{"comments":null,"title":"Endo","info":{"arguments":[{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"c"},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}],"declType":"dataConstructor"},"sourceSpan":null},{"comments":null,"title":"eqEndo","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"c"},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Eq"],"Eq"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Endo"],"Endo"]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[17,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Monoid/Endo.purs","end":[17,62]}},{"comments":null,"title":"ordEndo","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"c"},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord"],"Ord"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Endo"],"Endo"]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[19,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Monoid/Endo.purs","end":[19,65]}},{"comments":null,"title":"boundedEndo","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Bounded"],"Bounded"],"constraintArgs":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"c"},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Bounded"],"Bounded"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Endo"],"Endo"]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[21,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Monoid/Endo.purs","end":[21,77]}},{"comments":null,"title":"showEndo","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Show"],"Show"],"constraintArgs":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"c"},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Show"],"Show"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Endo"],"Endo"]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[23,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Monoid/Endo.purs","end":[24,44]}},{"comments":null,"title":"semigroupEndo","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Control","Semigroupoid"],"Semigroupoid"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"c"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup"],"Semigroup"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Endo"],"Endo"]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[26,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Monoid/Endo.purs","end":[27,44]}},{"comments":null,"title":"monoidEndo","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Control","Category"],"Category"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"c"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid"],"Monoid"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Endo"],"Endo"]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[29,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Monoid/Endo.purs","end":[30,25]}}],"comments":null,"title":"Endo","info":{"declType":"data","dataDeclType":"newtype","typeArguments":[["c",null],["a",null]]},"sourceSpan":{"start":[15,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Monoid/Endo.purs","end":[15,32]}}]},{"reExports":[],"name":"Data.Monoid.Generic","comments":null,"declarations":[{"children":[{"comments":null,"title":"genericMempty'","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeVar","contents":"a"}},"sourceSpan":{"start":[11,3],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Monoid/Generic.purs","end":[11,22]}},{"comments":null,"title":"genericMonoidNoArguments","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Generic"],"GenericMonoid"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"NoArguments"]}]}},"sourceSpan":{"start":[13,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Monoid/Generic.purs","end":[14,31]}},{"comments":null,"title":"genericMonoidProduct","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Monoid","Generic"],"GenericMonoid"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","Monoid","Generic"],"GenericMonoid"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"b"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Generic"],"GenericMonoid"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"Product"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}},"sourceSpan":{"start":[16,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Monoid/Generic.purs","end":[17,57]}},{"comments":null,"title":"genericMonoidConstructor","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Monoid","Generic"],"GenericMonoid"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Generic"],"GenericMonoid"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"Constructor"]},{"annotation":[],"tag":"TypeVar","contents":"name"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[19,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Monoid/Generic.purs","end":[20,46]}},{"comments":null,"title":"genericMonoidArgument","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Monoid"],"Monoid"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Generic"],"GenericMonoid"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"Argument"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[22,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Monoid/Generic.purs","end":[23,35]}}],"comments":null,"title":"GenericMonoid","info":{"fundeps":[],"arguments":[["a",null]],"declType":"typeClass","superclasses":[]},"sourceSpan":{"start":[10,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Monoid/Generic.purs","end":[11,22]}},{"children":[],"comments":"A `Generic` implementation of the `mempty` member from the `Monoid` type class.\n","title":"genericMempty","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["rep",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Generic","Rep"],"Generic"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"},{"annotation":[],"tag":"TypeVar","contents":"rep"}],"constraintKindArgs":[],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Monoid","Generic"],"GenericMonoid"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"rep"}],"constraintKindArgs":[],"constraintData":null},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},null]},null]}},"sourceSpan":{"start":[26,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Monoid/Generic.purs","end":[26,71]}}]},{"reExports":[],"name":"Data.Monoid.Multiplicative","comments":null,"declarations":[{"children":[{"comments":null,"title":"Multiplicative","info":{"arguments":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"declType":"dataConstructor"},"sourceSpan":null},{"comments":null,"title":"eqMultiplicative","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Eq"],"Eq"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Multiplicative"],"Multiplicative"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[16,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Monoid/Multiplicative.purs","end":[16,74]}},{"comments":null,"title":"eq1Multiplicative","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Eq"],"Eq1"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Multiplicative"],"Multiplicative"]}]}},"sourceSpan":{"start":[17,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Monoid/Multiplicative.purs","end":[17,56]}},{"comments":null,"title":"ordMultiplicative","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord"],"Ord"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Multiplicative"],"Multiplicative"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[19,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Monoid/Multiplicative.purs","end":[19,77]}},{"comments":null,"title":"ord1Multiplicative","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord"],"Ord1"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Multiplicative"],"Multiplicative"]}]}},"sourceSpan":{"start":[20,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Monoid/Multiplicative.purs","end":[20,58]}},{"comments":null,"title":"boundedMultiplicative","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Bounded"],"Bounded"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Bounded"],"Bounded"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Multiplicative"],"Multiplicative"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[22,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Monoid/Multiplicative.purs","end":[22,89]}},{"comments":null,"title":"showMultiplicative","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Show"],"Show"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Show"],"Show"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Multiplicative"],"Multiplicative"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[24,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Monoid/Multiplicative.purs","end":[25,64]}},{"comments":null,"title":"functorMultiplicative","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Functor"],"Functor"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Multiplicative"],"Multiplicative"]}]}},"sourceSpan":{"start":[27,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Monoid/Multiplicative.purs","end":[27,64]}},{"comments":null,"title":"applyMultiplicative","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Apply"],"Apply"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Multiplicative"],"Multiplicative"]}]}},"sourceSpan":{"start":[29,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Monoid/Multiplicative.purs","end":[30,69]}},{"comments":null,"title":"applicativeMultiplicative","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Applicative"],"Applicative"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Multiplicative"],"Multiplicative"]}]}},"sourceSpan":{"start":[32,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Monoid/Multiplicative.purs","end":[33,24]}},{"comments":null,"title":"bindMultiplicative","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Bind"],"Bind"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Multiplicative"],"Multiplicative"]}]}},"sourceSpan":{"start":[35,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Monoid/Multiplicative.purs","end":[36,34]}},{"comments":null,"title":"monadMultiplicative","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Monad"],"Monad"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Multiplicative"],"Multiplicative"]}]}},"sourceSpan":{"start":[38,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Monoid/Multiplicative.purs","end":[38,53]}},{"comments":null,"title":"semigroupMultiplicative","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Semiring"],"Semiring"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup"],"Semigroup"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Multiplicative"],"Multiplicative"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[40,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Monoid/Multiplicative.purs","end":[41,72]}},{"comments":null,"title":"monoidMultiplicative","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Semiring"],"Semiring"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid"],"Monoid"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Multiplicative"],"Multiplicative"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[43,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Monoid/Multiplicative.purs","end":[44,30]}}],"comments":"Monoid and semigroup for semirings under multiplication.\n\n``` purescript\nMultiplicative x <> Multiplicative y == Multiplicative (x * y)\n(mempty :: Multiplicative _) == Multiplicative one\n```\n","title":"Multiplicative","info":{"declType":"data","dataDeclType":"newtype","typeArguments":[["a",null]]},"sourceSpan":{"start":[14,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Monoid/Multiplicative.purs","end":[14,44]}}]},{"reExports":[],"name":"Data.NaturalTransformation","comments":null,"declarations":[{"children":[],"comments":null,"title":"NaturalTransformation","info":{"arguments":[["f",null],["g",null]],"declType":"typeSynonym","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"g"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},null]}},"sourceSpan":{"start":[18,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/NaturalTransformation.purs","end":[18,54]}},{"children":[],"comments":null,"title":"type (~>)","info":{"declType":"alias","alias":[["Data","NaturalTransformation"],{"Left":"NaturalTransformation"}],"fixity":{"associativity":"infixr","precedence":4}},"sourceSpan":{"start":[20,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/NaturalTransformation.purs","end":[20,42]}}]},{"reExports":[{"moduleName":{"package":null,"item":["Data","Ordering"]},"declarations":[{"children":[{"comments":null,"title":"LT","info":{"arguments":[],"declType":"dataConstructor"},"sourceSpan":null},{"comments":null,"title":"GT","info":{"arguments":[],"declType":"dataConstructor"},"sourceSpan":null},{"comments":null,"title":"EQ","info":{"arguments":[],"declType":"dataConstructor"},"sourceSpan":null},{"comments":null,"title":"eqOrdering","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Eq"],"Eq"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ordering"],"Ordering"]}]}},"sourceSpan":{"start":[15,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ordering.purs","end":[19,19]}},{"comments":null,"title":"semigroupOrdering","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup"],"Semigroup"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ordering"],"Ordering"]}]}},"sourceSpan":{"start":[21,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ordering.purs","end":[24,18]}},{"comments":null,"title":"showOrdering","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Show"],"Show"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ordering"],"Ordering"]}]}},"sourceSpan":{"start":[26,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ordering.purs","end":[29,17]}}],"comments":"The `Ordering` data type represents the three possible outcomes of\ncomparing two values:\n\n`LT` - The first value is _less than_ the second.\n`GT` - The first value is _greater than_ the second.\n`EQ` - The first value is _equal to_ the second.\n","title":"Ordering","info":{"declType":"data","dataDeclType":"data","typeArguments":[]},"sourceSpan":{"start":[13,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ordering.purs","end":[13,29]}}]}],"name":"Data.Ord","comments":null,"declarations":[{"children":[{"comments":null,"title":"compare","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ordering"],"Ordering"]}]}]}},"sourceSpan":{"start":[38,3],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ord.purs","end":[38,32]}},{"comments":null,"title":"ordBoolean","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord"],"Ord"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}},"sourceSpan":{"start":[40,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ord.purs","end":[41,36]}},{"comments":null,"title":"ordInt","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord"],"Ord"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}},"sourceSpan":{"start":[43,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ord.purs","end":[44,32]}},{"comments":null,"title":"ordNumber","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord"],"Ord"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]}},"sourceSpan":{"start":[46,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ord.purs","end":[47,35]}},{"comments":null,"title":"ordString","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord"],"Ord"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}},"sourceSpan":{"start":[49,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ord.purs","end":[50,35]}},{"comments":null,"title":"ordChar","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord"],"Ord"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Char"]}]}},"sourceSpan":{"start":[52,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ord.purs","end":[53,33]}},{"comments":null,"title":"ordUnit","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord"],"Ord"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}},"sourceSpan":{"start":[55,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ord.purs","end":[56,19]}},{"comments":null,"title":"ordVoid","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord"],"Ord"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Void"],"Void"]}]}},"sourceSpan":{"start":[58,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ord.purs","end":[59,19]}},{"comments":null,"title":"ordProxy","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord"],"Ord"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[61,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ord.purs","end":[62,19]}},{"comments":null,"title":"ordProxy2","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord"],"Ord"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy2"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[64,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ord.purs","end":[65,19]}},{"comments":null,"title":"ordProxy3","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord"],"Ord"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy3"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[67,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ord.purs","end":[68,19]}},{"comments":null,"title":"ordArray","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord"],"Ord"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[70,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ord.purs","end":[77,17]}},{"comments":null,"title":"ordOrdering","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord"],"Ord"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ordering"],"Ordering"]}]}},"sourceSpan":{"start":[121,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ord.purs","end":[128,21]}},{"comments":null,"title":"ordRecord","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Prim","RowList"],"RowToList"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"row"},{"annotation":[],"tag":"TypeVar","contents":"list"}],"constraintKindArgs":[],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","Ord"],"OrdRecord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"list"},{"annotation":[],"tag":"TypeVar","contents":"row"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord"],"Ord"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"TypeVar","contents":"row"}]}]}},"sourceSpan":{"start":[249,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ord.purs","end":[254,48]}}],"comments":"The `Ord` type class represents types which support comparisons with a\n_total order_.\n\n`Ord` instances should satisfy the laws of total orderings:\n\n- Reflexivity: `a <= a`\n- Antisymmetry: if `a <= b` and `b <= a` then `a = b`\n- Transitivity: if `a <= b` and `b <= c` then `a <= c`\n","title":"Ord","info":{"fundeps":[],"arguments":[["a",null]],"declType":"typeClass","superclasses":[{"constraintAnn":[],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null}]},"sourceSpan":{"start":[37,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ord.purs","end":[38,32]}},{"children":[{"comments":null,"title":"compare1","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ordering"],"Ordering"]}]}]}]},null]}},"sourceSpan":{"start":[221,3],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ord.purs","end":[221,56]}},{"comments":null,"title":"ord1Array","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord"],"Ord1"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]}]}},"sourceSpan":{"start":[223,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ord.purs","end":[224,21]}}],"comments":"The `Ord1` type class represents totally ordered type constructors.\n","title":"Ord1","info":{"fundeps":[],"arguments":[["f",null]],"declType":"typeClass","superclasses":[{"constraintAnn":[],"constraintClass":[["Data","Eq"],"Eq1"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintKindArgs":[],"constraintData":null}]},"sourceSpan":{"start":[220,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ord.purs","end":[221,56]}},{"children":[],"comments":"Test whether one value is _strictly less than_ another.\n","title":"lessThan","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]}]},null]}},"sourceSpan":{"start":[131,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ord.purs","end":[131,49]}},{"children":[],"comments":null,"title":"(<)","info":{"declType":"alias","alias":[["Data","Ord"],{"Right":{"Left":{"Ident":"lessThan"}}}],"fixity":{"associativity":"infixl","precedence":4}},"sourceSpan":{"start":[154,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ord.purs","end":[154,23]}},{"children":[],"comments":"Test whether one value is _non-strictly less than_ another.\n","title":"lessThanOrEq","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]}]},null]}},"sourceSpan":{"start":[143,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ord.purs","end":[143,53]}},{"children":[],"comments":null,"title":"(<=)","info":{"declType":"alias","alias":[["Data","Ord"],{"Right":{"Left":{"Ident":"lessThanOrEq"}}}],"fixity":{"associativity":"infixl","precedence":4}},"sourceSpan":{"start":[155,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ord.purs","end":[155,28]}},{"children":[],"comments":"Test whether one value is _strictly greater than_ another.\n","title":"greaterThan","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]}]},null]}},"sourceSpan":{"start":[137,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ord.purs","end":[137,52]}},{"children":[],"comments":null,"title":"(>)","info":{"declType":"alias","alias":[["Data","Ord"],{"Right":{"Left":{"Ident":"greaterThan"}}}],"fixity":{"associativity":"infixl","precedence":4}},"sourceSpan":{"start":[156,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ord.purs","end":[156,26]}},{"children":[],"comments":"Test whether one value is _non-strictly greater than_ another.\n","title":"greaterThanOrEq","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]}]},null]}},"sourceSpan":{"start":[149,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ord.purs","end":[149,56]}},{"children":[],"comments":null,"title":"(>=)","info":{"declType":"alias","alias":[["Data","Ord"],{"Right":{"Left":{"Ident":"greaterThanOrEq"}}}],"fixity":{"associativity":"infixl","precedence":4}},"sourceSpan":{"start":[157,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ord.purs","end":[157,31]}},{"children":[],"comments":"Compares two values by mapping them to a type with an `Ord` instance.\n","title":"comparing","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"b"}],"constraintKindArgs":[],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}}]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ordering"],"Ordering"]}]}]}}]}]},null]},null]}},"sourceSpan":{"start":[160,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ord.purs","end":[160,67]}},{"children":[],"comments":"Take the minimum of two values. If they are considered equal, the first\nargument is chosen.\n","title":"min","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]},null]}},"sourceSpan":{"start":[165,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ord.purs","end":[165,38]}},{"children":[],"comments":"Take the maximum of two values. If they are considered equal, the first\nargument is chosen.\n","title":"max","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]},null]}},"sourceSpan":{"start":[174,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ord.purs","end":[174,38]}},{"children":[],"comments":"Clamp a value between a minimum and a maximum. For example:\n\n``` purescript\nlet f = clamp 0 10\nf (-5) == 0\nf 5    == 5\nf 15   == 10\n```\n","title":"clamp","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]}]},null]}},"sourceSpan":{"start":[189,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ord.purs","end":[189,45]}},{"children":[],"comments":"Test whether a value is between a minimum and a maximum (inclusive).\nFor example:\n\n``` purescript\nlet f = between 0 10\nf 0    == true\nf (-5) == false\nf 5    == true\nf 10   == true\nf 15   == false\n```\n","title":"between","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]}]}]},null]}},"sourceSpan":{"start":[203,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ord.purs","end":[203,53]}},{"children":[],"comments":"The absolute value function. `abs x` is defined as `if x >= zero then x\nelse negate x`.\n","title":"abs","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Ring"],"Ring"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]},null]}},"sourceSpan":{"start":[211,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ord.purs","end":[211,43]}},{"children":[],"comments":"The sign function; always evaluates to either `one` or `negate one`. For\nany `x`, we should have `signum x * abs x == x`.\n","title":"signum","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Ring"],"Ring"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]},null]}},"sourceSpan":{"start":[216,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ord.purs","end":[216,46]}},{"children":[{"comments":null,"title":"compareRecord","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"ForAll","contents":["rlproxy",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"rlproxy"},{"annotation":[],"tag":"TypeVar","contents":"rowlist"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"TypeVar","contents":"row"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"TypeVar","contents":"row"}]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ordering"],"Ordering"]}]}]}]},null]}},"sourceSpan":{"start":[228,3],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ord.purs","end":[228,91]}},{"comments":null,"title":"ordRecordNil","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord"],"OrdRecord"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim","RowList"],"Nil"]}]},{"annotation":[],"tag":"TypeVar","contents":"row"}]}},"sourceSpan":{"start":[230,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ord.purs","end":[231,27]}},{"comments":null,"title":"ordRecordCons","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Ord"],"OrdRecord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"rowlistTail"},{"annotation":[],"tag":"TypeVar","contents":"row"}],"constraintKindArgs":[],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Prim","Row"],"Cons"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"key"},{"annotation":[],"tag":"TypeVar","contents":"focus"},{"annotation":[],"tag":"TypeVar","contents":"rowTail"},{"annotation":[],"tag":"TypeVar","contents":"row"}],"constraintKindArgs":[],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","Symbol"],"IsSymbol"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"key"}],"constraintKindArgs":[],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"focus"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord"],"OrdRecord"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim","RowList"],"Cons"]},{"annotation":[],"tag":"TypeVar","contents":"key"}]},{"annotation":[],"tag":"TypeVar","contents":"focus"}]},{"annotation":[],"tag":"TypeVar","contents":"rowlistTail"}]}]},{"annotation":[],"tag":"TypeVar","contents":"row"}]}},"sourceSpan":{"start":[233,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ord.purs","end":[247,59]}}],"comments":null,"title":"OrdRecord","info":{"fundeps":[],"arguments":[["rowlist",null],["row",null]],"declType":"typeClass","superclasses":[{"constraintAnn":[],"constraintClass":[["Data","Eq"],"EqRecord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"rowlist"},{"annotation":[],"tag":"TypeVar","contents":"row"}],"constraintKindArgs":[],"constraintData":null}]},"sourceSpan":{"start":[227,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ord.purs","end":[228,91]}}]},{"reExports":[],"name":"Data.Ord.Generic","comments":null,"declarations":[{"children":[{"comments":null,"title":"genericCompare'","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ordering"],"Ordering"]}]}]}},"sourceSpan":{"start":[11,3],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ord/Generic.purs","end":[11,40]}},{"comments":null,"title":"genericOrdNoConstructors","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord","Generic"],"GenericOrd"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"NoConstructors"]}]}},"sourceSpan":{"start":[13,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ord/Generic.purs","end":[14,27]}},{"comments":null,"title":"genericOrdNoArguments","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord","Generic"],"GenericOrd"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"NoArguments"]}]}},"sourceSpan":{"start":[16,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ord/Generic.purs","end":[17,27]}},{"comments":null,"title":"genericOrdSum","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Ord","Generic"],"GenericOrd"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","Ord","Generic"],"GenericOrd"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"b"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord","Generic"],"GenericOrd"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"Sum"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}},"sourceSpan":{"start":[19,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ord/Generic.purs","end":[23,39]}},{"comments":null,"title":"genericOrdProduct","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Ord","Generic"],"GenericOrd"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","Ord","Generic"],"GenericOrd"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"b"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord","Generic"],"GenericOrd"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"Product"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}},"sourceSpan":{"start":[25,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ord/Generic.purs","end":[29,21]}},{"comments":null,"title":"genericOrdConstructor","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Ord","Generic"],"GenericOrd"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord","Generic"],"GenericOrd"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"Constructor"]},{"annotation":[],"tag":"TypeVar","contents":"name"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[31,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ord/Generic.purs","end":[32,76]}},{"comments":null,"title":"genericOrdArgument","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord","Generic"],"GenericOrd"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"Argument"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[34,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ord/Generic.purs","end":[35,62]}}],"comments":null,"title":"GenericOrd","info":{"fundeps":[],"arguments":[["a",null]],"declType":"typeClass","superclasses":[]},"sourceSpan":{"start":[10,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ord/Generic.purs","end":[11,40]}},{"children":[],"comments":"A `Generic` implementation of the `compare` member from the `Ord` type class.\n","title":"genericCompare","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["rep",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Generic","Rep"],"Generic"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"},{"annotation":[],"tag":"TypeVar","contents":"rep"}],"constraintKindArgs":[],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Ord","Generic"],"GenericOrd"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"rep"}],"constraintKindArgs":[],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ordering"],"Ordering"]}]}]}]}]},null]},null]}},"sourceSpan":{"start":[38,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ord/Generic.purs","end":[38,86]}}]},{"reExports":[],"name":"Data.Ordering","comments":null,"declarations":[{"children":[{"comments":null,"title":"LT","info":{"arguments":[],"declType":"dataConstructor"},"sourceSpan":null},{"comments":null,"title":"GT","info":{"arguments":[],"declType":"dataConstructor"},"sourceSpan":null},{"comments":null,"title":"EQ","info":{"arguments":[],"declType":"dataConstructor"},"sourceSpan":null},{"comments":null,"title":"eqOrdering","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Eq"],"Eq"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ordering"],"Ordering"]}]}},"sourceSpan":{"start":[15,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ordering.purs","end":[19,19]}},{"comments":null,"title":"semigroupOrdering","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup"],"Semigroup"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ordering"],"Ordering"]}]}},"sourceSpan":{"start":[21,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ordering.purs","end":[24,18]}},{"comments":null,"title":"showOrdering","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Show"],"Show"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ordering"],"Ordering"]}]}},"sourceSpan":{"start":[26,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ordering.purs","end":[29,17]}}],"comments":"The `Ordering` data type represents the three possible outcomes of\ncomparing two values:\n\n`LT` - The first value is _less than_ the second.\n`GT` - The first value is _greater than_ the second.\n`EQ` - The first value is _equal to_ the second.\n","title":"Ordering","info":{"declType":"data","dataDeclType":"data","typeArguments":[]},"sourceSpan":{"start":[13,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ordering.purs","end":[13,29]}},{"children":[],"comments":"Reverses an `Ordering` value, flipping greater than for less than while\npreserving equality.\n","title":"invert","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ordering"],"Ordering"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ordering"],"Ordering"]}]}},"sourceSpan":{"start":[33,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ordering.purs","end":[33,31]}}]},{"reExports":[{"moduleName":{"package":null,"item":["Data","Semiring"]},"declarations":[{"children":[{"comments":null,"title":"add","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[35,3],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semiring.purs","end":[35,22]}},{"comments":null,"title":"zero","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeVar","contents":"a"}},"sourceSpan":{"start":[36,3],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semiring.purs","end":[36,12]}},{"comments":null,"title":"mul","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[37,3],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semiring.purs","end":[37,22]}},{"comments":null,"title":"one","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeVar","contents":"a"}},"sourceSpan":{"start":[38,3],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semiring.purs","end":[38,12]}},{"comments":null,"title":"semiringInt","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semiring"],"Semiring"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}},"sourceSpan":{"start":[43,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semiring.purs","end":[47,10]}},{"comments":null,"title":"semiringNumber","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semiring"],"Semiring"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]}},"sourceSpan":{"start":[49,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semiring.purs","end":[53,12]}},{"comments":null,"title":"semiringFn","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Semiring"],"Semiring"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"b"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semiring"],"Semiring"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}},"sourceSpan":{"start":[55,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semiring.purs","end":[59,18]}},{"comments":null,"title":"semiringUnit","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semiring"],"Semiring"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}},"sourceSpan":{"start":[61,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semiring.purs","end":[65,13]}},{"comments":null,"title":"semiringProxy","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semiring"],"Semiring"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[67,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semiring.purs","end":[71,15]}},{"comments":null,"title":"semiringProxy2","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semiring"],"Semiring"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy2"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[73,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semiring.purs","end":[77,16]}},{"comments":null,"title":"semiringProxy3","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semiring"],"Semiring"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy3"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[79,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semiring.purs","end":[83,16]}},{"comments":null,"title":"semiringRecord","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Prim","RowList"],"RowToList"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"row"},{"annotation":[],"tag":"TypeVar","contents":"list"}],"constraintKindArgs":[],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","Semiring"],"SemiringRecord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"list"},{"annotation":[],"tag":"TypeVar","contents":"row"},{"annotation":[],"tag":"TypeVar","contents":"row"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semiring"],"Semiring"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"TypeVar","contents":"row"}]}]}},"sourceSpan":{"start":[85,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semiring.purs","end":[89,63]}}],"comments":"The `Semiring` class is for types that support an addition and\nmultiplication operation.\n\nInstances must satisfy the following laws:\n\n- Commutative monoid under addition:\n  - Associativity: `(a + b) + c = a + (b + c)`\n  - Identity: `zero + a = a + zero = a`\n  - Commutative: `a + b = b + a`\n- Monoid under multiplication:\n  - Associativity: `(a * b) * c = a * (b * c)`\n  - Identity: `one * a = a * one = a`\n- Multiplication distributes over addition:\n  - Left distributivity: `a * (b + c) = (a * b) + (a * c)`\n  - Right distributivity: `(a + b) * c = (a * c) + (b * c)`\n- Annihilation: `zero * a = a * zero = zero`\n\n**Note:** The `Number` and `Int` types are not fully law abiding\nmembers of this class hierarchy due to the potential for arithmetic\noverflows, and in the case of `Number`, the presence of `NaN` and\n`Infinity` values. The behaviour is unspecified in these cases.\n","title":"Semiring","info":{"fundeps":[],"arguments":[["a",null]],"declType":"typeClass","superclasses":[]},"sourceSpan":{"start":[34,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semiring.purs","end":[38,12]}},{"children":[{"comments":null,"title":"semiringRecordNil","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semiring"],"SemiringRecord"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim","RowList"],"Nil"]}]},{"annotation":[],"tag":"TypeVar","contents":"row"}]},{"annotation":[],"tag":"REmpty"}]}},"sourceSpan":{"start":[105,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semiring.purs","end":[109,22]}},{"comments":null,"title":"semiringRecordCons","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Symbol"],"IsSymbol"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"key"}],"constraintKindArgs":[],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Prim","Row"],"Cons"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"key"},{"annotation":[],"tag":"TypeVar","contents":"focus"},{"annotation":[],"tag":"TypeVar","contents":"subrowTail"},{"annotation":[],"tag":"TypeVar","contents":"subrow"}],"constraintKindArgs":[],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","Semiring"],"SemiringRecord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"rowlistTail"},{"annotation":[],"tag":"TypeVar","contents":"row"},{"annotation":[],"tag":"TypeVar","contents":"subrowTail"}],"constraintKindArgs":[],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","Semiring"],"Semiring"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"focus"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semiring"],"SemiringRecord"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim","RowList"],"Cons"]},{"annotation":[],"tag":"TypeVar","contents":"key"}]},{"annotation":[],"tag":"TypeVar","contents":"focus"}]},{"annotation":[],"tag":"TypeVar","contents":"rowlistTail"}]}]},{"annotation":[],"tag":"TypeVar","contents":"row"}]},{"annotation":[],"tag":"TypeVar","contents":"subrow"}]}},"sourceSpan":{"start":[111,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semiring.purs","end":[142,76]}}],"comments":null,"title":"SemiringRecord","info":{"fundeps":[[["rowlist"],["subrow"]]],"arguments":[["rowlist",null],["row",null],["subrow",null]],"declType":"typeClass","superclasses":[]},"sourceSpan":{"start":[99,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semiring.purs","end":[103,86]}},{"children":[],"comments":null,"title":"(+)","info":{"declType":"alias","alias":[["Data","Semiring"],{"Right":{"Left":{"Ident":"add"}}}],"fixity":{"associativity":"infixl","precedence":6}},"sourceSpan":{"start":[40,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semiring.purs","end":[40,18]}},{"children":[],"comments":null,"title":"(*)","info":{"declType":"alias","alias":[["Data","Semiring"],{"Right":{"Left":{"Ident":"mul"}}}],"fixity":{"associativity":"infixl","precedence":7}},"sourceSpan":{"start":[41,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semiring.purs","end":[41,18]}}]}],"name":"Data.Ring","comments":null,"declarations":[{"children":[{"comments":null,"title":"sub","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[24,3],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ring.purs","end":[24,21]}},{"comments":null,"title":"ringInt","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ring"],"Ring"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}},"sourceSpan":{"start":[28,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ring.purs","end":[29,15]}},{"comments":null,"title":"ringNumber","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ring"],"Ring"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]}},"sourceSpan":{"start":[31,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ring.purs","end":[32,15]}},{"comments":null,"title":"ringUnit","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ring"],"Ring"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}},"sourceSpan":{"start":[34,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ring.purs","end":[35,17]}},{"comments":null,"title":"ringFn","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Ring"],"Ring"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"b"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ring"],"Ring"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}},"sourceSpan":{"start":[37,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ring.purs","end":[38,24]}},{"comments":null,"title":"ringProxy","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ring"],"Ring"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[40,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ring.purs","end":[41,18]}},{"comments":null,"title":"ringProxy2","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ring"],"Ring"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy2"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[43,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ring.purs","end":[44,19]}},{"comments":null,"title":"ringProxy3","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ring"],"Ring"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy3"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[46,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ring.purs","end":[47,19]}},{"comments":null,"title":"ringRecord","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Prim","RowList"],"RowToList"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"row"},{"annotation":[],"tag":"TypeVar","contents":"list"}],"constraintKindArgs":[],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","Ring"],"RingRecord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"list"},{"annotation":[],"tag":"TypeVar","contents":"row"},{"annotation":[],"tag":"TypeVar","contents":"row"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ring"],"Ring"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"TypeVar","contents":"row"}]}]}},"sourceSpan":{"start":[49,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ring.purs","end":[50,40]}}],"comments":"The `Ring` class is for types that support addition, multiplication,\nand subtraction operations.\n\nInstances must satisfy the following laws in addition to the `Semiring`\nlaws:\n\n- Additive inverse: `a - a = zero`\n- Compatibility of `sub` and `negate`: `a - b = a + (zero - b)`\n","title":"Ring","info":{"fundeps":[],"arguments":[["a",null]],"declType":"typeClass","superclasses":[{"constraintAnn":[],"constraintClass":[["Data","Semiring"],"Semiring"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null}]},"sourceSpan":{"start":[23,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ring.purs","end":[24,21]}},{"children":[],"comments":"`negate x` can be used as a shorthand for `zero - x`.\n","title":"negate","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Ring"],"Ring"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},null]}},"sourceSpan":{"start":[53,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ring.purs","end":[53,37]}},{"children":[],"comments":null,"title":"(-)","info":{"declType":"alias","alias":[["Data","Ring"],{"Right":{"Left":{"Ident":"sub"}}}],"fixity":{"associativity":"infixl","precedence":6}},"sourceSpan":{"start":[26,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ring.purs","end":[26,18]}},{"children":[{"comments":null,"title":"subRecord","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"ForAll","contents":["rlproxy",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"rlproxy"},{"annotation":[],"tag":"TypeVar","contents":"rowlist"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"TypeVar","contents":"row"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"TypeVar","contents":"row"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"TypeVar","contents":"subrow"}]}]}]}]},null]}},"sourceSpan":{"start":[63,3],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ring.purs","end":[63,92]}},{"comments":null,"title":"ringRecordNil","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ring"],"RingRecord"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim","RowList"],"Nil"]}]},{"annotation":[],"tag":"TypeVar","contents":"row"}]},{"annotation":[],"tag":"REmpty"}]}},"sourceSpan":{"start":[65,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ring.purs","end":[66,23]}},{"comments":null,"title":"ringRecordCons","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Symbol"],"IsSymbol"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"key"}],"constraintKindArgs":[],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Prim","Row"],"Cons"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"key"},{"annotation":[],"tag":"TypeVar","contents":"focus"},{"annotation":[],"tag":"TypeVar","contents":"subrowTail"},{"annotation":[],"tag":"TypeVar","contents":"subrow"}],"constraintKindArgs":[],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","Ring"],"RingRecord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"rowlistTail"},{"annotation":[],"tag":"TypeVar","contents":"row"},{"annotation":[],"tag":"TypeVar","contents":"subrowTail"}],"constraintKindArgs":[],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","Ring"],"Ring"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"focus"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ring"],"RingRecord"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim","RowList"],"Cons"]},{"annotation":[],"tag":"TypeVar","contents":"key"}]},{"annotation":[],"tag":"TypeVar","contents":"focus"}]},{"annotation":[],"tag":"TypeVar","contents":"rowlistTail"}]}]},{"annotation":[],"tag":"TypeVar","contents":"row"}]},{"annotation":[],"tag":"TypeVar","contents":"subrow"}]}},"sourceSpan":{"start":[68,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ring.purs","end":[80,58]}}],"comments":null,"title":"RingRecord","info":{"fundeps":[[["rowlist"],["subrow"]]],"arguments":[["rowlist",null],["row",null],["subrow",null]],"declType":"typeClass","superclasses":[{"constraintAnn":[],"constraintClass":[["Data","Semiring"],"SemiringRecord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"rowlist"},{"annotation":[],"tag":"TypeVar","contents":"row"},{"annotation":[],"tag":"TypeVar","contents":"subrow"}],"constraintKindArgs":[],"constraintData":null}]},"sourceSpan":{"start":[62,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ring.purs","end":[63,92]}}]},{"reExports":[],"name":"Data.Ring.Generic","comments":null,"declarations":[{"children":[{"comments":null,"title":"genericSub'","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[8,3],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ring/Generic.purs","end":[8,29]}},{"comments":null,"title":"genericRingNoArguments","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ring","Generic"],"GenericRing"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"NoArguments"]}]}},"sourceSpan":{"start":[10,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ring/Generic.purs","end":[11,32]}},{"comments":null,"title":"genericRingArgument","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Ring"],"Ring"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ring","Generic"],"GenericRing"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"Argument"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[13,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ring/Generic.purs","end":[14,61]}},{"comments":null,"title":"genericRingProduct","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Ring","Generic"],"GenericRing"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","Ring","Generic"],"GenericRing"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"b"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ring","Generic"],"GenericRing"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"Product"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}},"sourceSpan":{"start":[16,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ring/Generic.purs","end":[17,96]}},{"comments":null,"title":"genericRingConstructor","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Ring","Generic"],"GenericRing"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ring","Generic"],"GenericRing"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"Constructor"]},{"annotation":[],"tag":"TypeVar","contents":"name"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[19,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ring/Generic.purs","end":[20,82]}}],"comments":null,"title":"GenericRing","info":{"fundeps":[],"arguments":[["a",null]],"declType":"typeClass","superclasses":[]},"sourceSpan":{"start":[7,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ring/Generic.purs","end":[8,29]}},{"children":[],"comments":"A `Generic` implementation of the `sub` member from the `Ring` type class.\n","title":"genericSub","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["rep",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Generic","Rep"],"Generic"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"},{"annotation":[],"tag":"TypeVar","contents":"rep"}],"constraintKindArgs":[],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Ring","Generic"],"GenericRing"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"rep"}],"constraintKindArgs":[],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]}]},null]},null]}},"sourceSpan":{"start":[23,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ring/Generic.purs","end":[23,76]}}]},{"reExports":[],"name":"Data.Semigroup","comments":null,"declarations":[{"children":[{"comments":null,"title":"append","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[32,3],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semigroup.purs","end":[32,24]}},{"comments":null,"title":"semigroupString","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup"],"Semigroup"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}},"sourceSpan":{"start":[36,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semigroup.purs","end":[37,24]}},{"comments":null,"title":"semigroupUnit","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup"],"Semigroup"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}},"sourceSpan":{"start":[39,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semigroup.purs","end":[40,20]}},{"comments":null,"title":"semigroupVoid","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup"],"Semigroup"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Void"],"Void"]}]}},"sourceSpan":{"start":[42,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semigroup.purs","end":[43,20]}},{"comments":null,"title":"semigroupFn","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Semigroup"],"Semigroup"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"s'"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup"],"Semigroup"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"s"}]},{"annotation":[],"tag":"TypeVar","contents":"s'"}]}]}},"sourceSpan":{"start":[45,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semigroup.purs","end":[46,28]}},{"comments":null,"title":"semigroupArray","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup"],"Semigroup"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[48,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semigroup.purs","end":[49,23]}},{"comments":null,"title":"semigroupProxy","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup"],"Semigroup"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[51,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semigroup.purs","end":[52,21]}},{"comments":null,"title":"semigroupProxy2","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup"],"Semigroup"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy2"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[54,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semigroup.purs","end":[55,22]}},{"comments":null,"title":"semigroupProxy3","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup"],"Semigroup"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy3"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[57,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semigroup.purs","end":[58,22]}},{"comments":null,"title":"semigroupRecord","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Prim","RowList"],"RowToList"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"row"},{"annotation":[],"tag":"TypeVar","contents":"list"}],"constraintKindArgs":[],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","Semigroup"],"SemigroupRecord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"list"},{"annotation":[],"tag":"TypeVar","contents":"row"},{"annotation":[],"tag":"TypeVar","contents":"row"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup"],"Semigroup"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"TypeVar","contents":"row"}]}]}},"sourceSpan":{"start":[60,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semigroup.purs","end":[61,46]}}],"comments":"The `Semigroup` type class identifies an associative operation on a type.\n\nInstances are required to satisfy the following law:\n\n- Associativity: `(x <> y) <> z = x <> (y <> z)`\n\nOne example of a `Semigroup` is `String`, with `(<>)` defined as string\nconcatenation. Another example is `List a`, with `(<>)` defined as\nlist concatenation.\n\n### Newtypes for Semigroup\n\nThere are two other ways to implement an instance for this type class\nregardless of which type is used. These instances can be used by\nwrapping the values in one of the two newtypes below:\n1. `First` - Use the first argument every time: `append first _ = first`.\n2. `Last` - Use the last argument every time: `append _ last = last`.\n","title":"Semigroup","info":{"fundeps":[],"arguments":[["a",null]],"declType":"typeClass","superclasses":[]},"sourceSpan":{"start":[31,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semigroup.purs","end":[32,24]}},{"children":[],"comments":null,"title":"(<>)","info":{"declType":"alias","alias":[["Data","Semigroup"],{"Right":{"Left":{"Ident":"append"}}}],"fixity":{"associativity":"infixr","precedence":5}},"sourceSpan":{"start":[34,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semigroup.purs","end":[34,22]}},{"children":[{"comments":null,"title":"appendRecord","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"ForAll","contents":["rlproxy",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"rlproxy"},{"annotation":[],"tag":"TypeVar","contents":"rowlist"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"TypeVar","contents":"row"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"TypeVar","contents":"row"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"TypeVar","contents":"subrow"}]}]}]}]},null]}},"sourceSpan":{"start":[70,3],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semigroup.purs","end":[70,95]}},{"comments":null,"title":"semigroupRecordNil","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup"],"SemigroupRecord"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim","RowList"],"Nil"]}]},{"annotation":[],"tag":"TypeVar","contents":"row"}]},{"annotation":[],"tag":"REmpty"}]}},"sourceSpan":{"start":[72,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semigroup.purs","end":[73,26]}},{"comments":null,"title":"semigroupRecordCons","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Symbol"],"IsSymbol"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"key"}],"constraintKindArgs":[],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Prim","Row"],"Cons"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"key"},{"annotation":[],"tag":"TypeVar","contents":"focus"},{"annotation":[],"tag":"TypeVar","contents":"subrowTail"},{"annotation":[],"tag":"TypeVar","contents":"subrow"}],"constraintKindArgs":[],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","Semigroup"],"SemigroupRecord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"rowlistTail"},{"annotation":[],"tag":"TypeVar","contents":"row"},{"annotation":[],"tag":"TypeVar","contents":"subrowTail"}],"constraintKindArgs":[],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","Semigroup"],"Semigroup"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"focus"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup"],"SemigroupRecord"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim","RowList"],"Cons"]},{"annotation":[],"tag":"TypeVar","contents":"key"}]},{"annotation":[],"tag":"TypeVar","contents":"focus"}]},{"annotation":[],"tag":"TypeVar","contents":"rowlistTail"}]}]},{"annotation":[],"tag":"TypeVar","contents":"row"}]},{"annotation":[],"tag":"TypeVar","contents":"subrow"}]}},"sourceSpan":{"start":[75,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semigroup.purs","end":[87,61]}}],"comments":null,"title":"SemigroupRecord","info":{"fundeps":[[["rowlist"],["subrow"]]],"arguments":[["rowlist",null],["row",null],["subrow",null]],"declType":"typeClass","superclasses":[]},"sourceSpan":{"start":[69,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semigroup.purs","end":[70,95]}}]},{"reExports":[],"name":"Data.Semigroup.First","comments":null,"declarations":[{"children":[{"comments":null,"title":"First","info":{"arguments":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"declType":"dataConstructor"},"sourceSpan":null},{"comments":null,"title":"eqFirst","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Eq"],"Eq"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup","First"],"First"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[15,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semigroup/First.purs","end":[15,56]}},{"comments":null,"title":"eq1First","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Eq"],"Eq1"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup","First"],"First"]}]}},"sourceSpan":{"start":[16,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semigroup/First.purs","end":[16,38]}},{"comments":null,"title":"ordFirst","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord"],"Ord"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup","First"],"First"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[18,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semigroup/First.purs","end":[18,59]}},{"comments":null,"title":"ord1First","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord"],"Ord1"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup","First"],"First"]}]}},"sourceSpan":{"start":[19,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semigroup/First.purs","end":[19,40]}},{"comments":null,"title":"boundedFirst","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Bounded"],"Bounded"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Bounded"],"Bounded"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup","First"],"First"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[21,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semigroup/First.purs","end":[21,71]}},{"comments":null,"title":"showFirst","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Show"],"Show"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Show"],"Show"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup","First"],"First"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[23,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semigroup/First.purs","end":[24,46]}},{"comments":null,"title":"functorFirst","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Functor"],"Functor"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup","First"],"First"]}]}},"sourceSpan":{"start":[26,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semigroup/First.purs","end":[26,46]}},{"comments":null,"title":"applyFirst","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Apply"],"Apply"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup","First"],"First"]}]}},"sourceSpan":{"start":[28,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semigroup/First.purs","end":[29,42]}},{"comments":null,"title":"applicativeFirst","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Applicative"],"Applicative"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup","First"],"First"]}]}},"sourceSpan":{"start":[31,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semigroup/First.purs","end":[32,15]}},{"comments":null,"title":"bindFirst","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Bind"],"Bind"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup","First"],"First"]}]}},"sourceSpan":{"start":[34,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semigroup/First.purs","end":[35,25]}},{"comments":null,"title":"monadFirst","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Monad"],"Monad"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup","First"],"First"]}]}},"sourceSpan":{"start":[37,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semigroup/First.purs","end":[37,35]}},{"comments":null,"title":"semigroupFirst","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup"],"Semigroup"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup","First"],"First"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[39,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semigroup/First.purs","end":[40,17]}}],"comments":"Semigroup where `append` always takes the first option.\n\n``` purescript\nFirst x <> First y == First x\n```\n","title":"First","info":{"declType":"data","dataDeclType":"newtype","typeArguments":[["a",null]]},"sourceSpan":{"start":[13,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semigroup/First.purs","end":[13,26]}}]},{"reExports":[],"name":"Data.Semigroup.Generic","comments":null,"declarations":[{"children":[{"comments":null,"title":"genericAppend'","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[11,3],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semigroup/Generic.purs","end":[11,32]}},{"comments":null,"title":"genericSemigroupNoConstructors","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup","Generic"],"GenericSemigroup"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"NoConstructors"]}]}},"sourceSpan":{"start":[13,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semigroup/Generic.purs","end":[14,25]}},{"comments":null,"title":"genericSemigroupNoArguments","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup","Generic"],"GenericSemigroup"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"NoArguments"]}]}},"sourceSpan":{"start":[16,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semigroup/Generic.purs","end":[17,25]}},{"comments":null,"title":"genericSemigroupProduct","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Semigroup","Generic"],"GenericSemigroup"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","Semigroup","Generic"],"GenericSemigroup"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"b"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup","Generic"],"GenericSemigroup"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"Product"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}},"sourceSpan":{"start":[19,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semigroup/Generic.purs","end":[21,58]}},{"comments":null,"title":"genericSemigroupConstructor","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Semigroup","Generic"],"GenericSemigroup"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup","Generic"],"GenericSemigroup"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"Constructor"]},{"annotation":[],"tag":"TypeVar","contents":"name"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[23,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semigroup/Generic.purs","end":[24,88]}},{"comments":null,"title":"genericSemigroupArgument","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Semigroup"],"Semigroup"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup","Generic"],"GenericSemigroup"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"Argument"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[26,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semigroup/Generic.purs","end":[27,71]}}],"comments":null,"title":"GenericSemigroup","info":{"fundeps":[],"arguments":[["a",null]],"declType":"typeClass","superclasses":[]},"sourceSpan":{"start":[10,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semigroup/Generic.purs","end":[11,32]}},{"children":[],"comments":"A `Generic` implementation of the `append` member from the `Semigroup` type class.\n","title":"genericAppend","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["rep",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Generic","Rep"],"Generic"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"},{"annotation":[],"tag":"TypeVar","contents":"rep"}],"constraintKindArgs":[],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Semigroup","Generic"],"GenericSemigroup"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"rep"}],"constraintKindArgs":[],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]}]},null]},null]}},"sourceSpan":{"start":[30,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semigroup/Generic.purs","end":[30,84]}}]},{"reExports":[],"name":"Data.Semigroup.Last","comments":null,"declarations":[{"children":[{"comments":null,"title":"Last","info":{"arguments":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"declType":"dataConstructor"},"sourceSpan":null},{"comments":null,"title":"eqLast","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Eq"],"Eq"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup","Last"],"Last"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[15,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semigroup/Last.purs","end":[15,54]}},{"comments":null,"title":"eq1Last","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Eq"],"Eq1"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup","Last"],"Last"]}]}},"sourceSpan":{"start":[16,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semigroup/Last.purs","end":[16,36]}},{"comments":null,"title":"ordLast","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord"],"Ord"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup","Last"],"Last"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[18,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semigroup/Last.purs","end":[18,57]}},{"comments":null,"title":"ord1Last","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord"],"Ord1"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup","Last"],"Last"]}]}},"sourceSpan":{"start":[19,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semigroup/Last.purs","end":[19,38]}},{"comments":null,"title":"boundedLast","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Bounded"],"Bounded"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Bounded"],"Bounded"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup","Last"],"Last"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[21,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semigroup/Last.purs","end":[21,69]}},{"comments":null,"title":"showLast","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Show"],"Show"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Show"],"Show"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup","Last"],"Last"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[23,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semigroup/Last.purs","end":[24,44]}},{"comments":null,"title":"functorLast","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Functor"],"Functor"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup","Last"],"Last"]}]}},"sourceSpan":{"start":[26,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semigroup/Last.purs","end":[26,44]}},{"comments":null,"title":"applyLast","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Apply"],"Apply"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup","Last"],"Last"]}]}},"sourceSpan":{"start":[28,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semigroup/Last.purs","end":[29,39]}},{"comments":null,"title":"applicativeLast","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Applicative"],"Applicative"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup","Last"],"Last"]}]}},"sourceSpan":{"start":[31,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semigroup/Last.purs","end":[32,14]}},{"comments":null,"title":"bindLast","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Bind"],"Bind"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup","Last"],"Last"]}]}},"sourceSpan":{"start":[34,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semigroup/Last.purs","end":[35,24]}},{"comments":null,"title":"monadLast","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Monad"],"Monad"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup","Last"],"Last"]}]}},"sourceSpan":{"start":[37,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semigroup/Last.purs","end":[37,33]}},{"comments":null,"title":"semigroupLast","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup"],"Semigroup"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup","Last"],"Last"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[39,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semigroup/Last.purs","end":[40,17]}}],"comments":"Semigroup where `append` always takes the second option.\n\n``` purescript\nLast x <> Last y == Last y\n```\n","title":"Last","info":{"declType":"data","dataDeclType":"newtype","typeArguments":[["a",null]]},"sourceSpan":{"start":[13,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semigroup/Last.purs","end":[13,24]}}]},{"reExports":[],"name":"Data.Semiring","comments":null,"declarations":[{"children":[{"comments":null,"title":"add","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[35,3],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semiring.purs","end":[35,22]}},{"comments":null,"title":"zero","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeVar","contents":"a"}},"sourceSpan":{"start":[36,3],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semiring.purs","end":[36,12]}},{"comments":null,"title":"mul","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[37,3],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semiring.purs","end":[37,22]}},{"comments":null,"title":"one","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeVar","contents":"a"}},"sourceSpan":{"start":[38,3],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semiring.purs","end":[38,12]}},{"comments":null,"title":"semiringInt","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semiring"],"Semiring"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}},"sourceSpan":{"start":[43,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semiring.purs","end":[47,10]}},{"comments":null,"title":"semiringNumber","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semiring"],"Semiring"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]}},"sourceSpan":{"start":[49,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semiring.purs","end":[53,12]}},{"comments":null,"title":"semiringFn","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Semiring"],"Semiring"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"b"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semiring"],"Semiring"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}},"sourceSpan":{"start":[55,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semiring.purs","end":[59,18]}},{"comments":null,"title":"semiringUnit","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semiring"],"Semiring"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}},"sourceSpan":{"start":[61,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semiring.purs","end":[65,13]}},{"comments":null,"title":"semiringProxy","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semiring"],"Semiring"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[67,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semiring.purs","end":[71,15]}},{"comments":null,"title":"semiringProxy2","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semiring"],"Semiring"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy2"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[73,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semiring.purs","end":[77,16]}},{"comments":null,"title":"semiringProxy3","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semiring"],"Semiring"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy3"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[79,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semiring.purs","end":[83,16]}},{"comments":null,"title":"semiringRecord","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Prim","RowList"],"RowToList"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"row"},{"annotation":[],"tag":"TypeVar","contents":"list"}],"constraintKindArgs":[],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","Semiring"],"SemiringRecord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"list"},{"annotation":[],"tag":"TypeVar","contents":"row"},{"annotation":[],"tag":"TypeVar","contents":"row"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semiring"],"Semiring"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"TypeVar","contents":"row"}]}]}},"sourceSpan":{"start":[85,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semiring.purs","end":[89,63]}}],"comments":"The `Semiring` class is for types that support an addition and\nmultiplication operation.\n\nInstances must satisfy the following laws:\n\n- Commutative monoid under addition:\n  - Associativity: `(a + b) + c = a + (b + c)`\n  - Identity: `zero + a = a + zero = a`\n  - Commutative: `a + b = b + a`\n- Monoid under multiplication:\n  - Associativity: `(a * b) * c = a * (b * c)`\n  - Identity: `one * a = a * one = a`\n- Multiplication distributes over addition:\n  - Left distributivity: `a * (b + c) = (a * b) + (a * c)`\n  - Right distributivity: `(a + b) * c = (a * c) + (b * c)`\n- Annihilation: `zero * a = a * zero = zero`\n\n**Note:** The `Number` and `Int` types are not fully law abiding\nmembers of this class hierarchy due to the potential for arithmetic\noverflows, and in the case of `Number`, the presence of `NaN` and\n`Infinity` values. The behaviour is unspecified in these cases.\n","title":"Semiring","info":{"fundeps":[],"arguments":[["a",null]],"declType":"typeClass","superclasses":[]},"sourceSpan":{"start":[34,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semiring.purs","end":[38,12]}},{"children":[],"comments":null,"title":"(+)","info":{"declType":"alias","alias":[["Data","Semiring"],{"Right":{"Left":{"Ident":"add"}}}],"fixity":{"associativity":"infixl","precedence":6}},"sourceSpan":{"start":[40,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semiring.purs","end":[40,18]}},{"children":[],"comments":null,"title":"(*)","info":{"declType":"alias","alias":[["Data","Semiring"],{"Right":{"Left":{"Ident":"mul"}}}],"fixity":{"associativity":"infixl","precedence":7}},"sourceSpan":{"start":[41,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semiring.purs","end":[41,18]}},{"children":[{"comments":null,"title":"addRecord","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"ForAll","contents":["rlproxy",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"rlproxy"},{"annotation":[],"tag":"TypeVar","contents":"rowlist"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"TypeVar","contents":"row"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"TypeVar","contents":"row"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"TypeVar","contents":"subrow"}]}]}]}]},null]}},"sourceSpan":{"start":[100,3],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semiring.purs","end":[100,92]}},{"comments":null,"title":"mulRecord","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"ForAll","contents":["rlproxy",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"rlproxy"},{"annotation":[],"tag":"TypeVar","contents":"rowlist"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"TypeVar","contents":"row"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"TypeVar","contents":"row"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"TypeVar","contents":"subrow"}]}]}]}]},null]}},"sourceSpan":{"start":[101,3],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semiring.purs","end":[101,92]}},{"comments":null,"title":"oneRecord","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"ForAll","contents":["rlproxy",{"annotation":[],"tag":"ForAll","contents":["rproxy",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"rlproxy"},{"annotation":[],"tag":"TypeVar","contents":"rowlist"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"rproxy"},{"annotation":[],"tag":"TypeVar","contents":"row"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"TypeVar","contents":"subrow"}]}]}]},null]},null]}},"sourceSpan":{"start":[102,3],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semiring.purs","end":[102,85]}},{"comments":null,"title":"zeroRecord","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"ForAll","contents":["rlproxy",{"annotation":[],"tag":"ForAll","contents":["rproxy",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"rlproxy"},{"annotation":[],"tag":"TypeVar","contents":"rowlist"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"rproxy"},{"annotation":[],"tag":"TypeVar","contents":"row"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"TypeVar","contents":"subrow"}]}]}]},null]},null]}},"sourceSpan":{"start":[103,3],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semiring.purs","end":[103,86]}},{"comments":null,"title":"semiringRecordNil","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semiring"],"SemiringRecord"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim","RowList"],"Nil"]}]},{"annotation":[],"tag":"TypeVar","contents":"row"}]},{"annotation":[],"tag":"REmpty"}]}},"sourceSpan":{"start":[105,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semiring.purs","end":[109,22]}},{"comments":null,"title":"semiringRecordCons","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Symbol"],"IsSymbol"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"key"}],"constraintKindArgs":[],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Prim","Row"],"Cons"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"key"},{"annotation":[],"tag":"TypeVar","contents":"focus"},{"annotation":[],"tag":"TypeVar","contents":"subrowTail"},{"annotation":[],"tag":"TypeVar","contents":"subrow"}],"constraintKindArgs":[],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","Semiring"],"SemiringRecord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"rowlistTail"},{"annotation":[],"tag":"TypeVar","contents":"row"},{"annotation":[],"tag":"TypeVar","contents":"subrowTail"}],"constraintKindArgs":[],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","Semiring"],"Semiring"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"focus"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semiring"],"SemiringRecord"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim","RowList"],"Cons"]},{"annotation":[],"tag":"TypeVar","contents":"key"}]},{"annotation":[],"tag":"TypeVar","contents":"focus"}]},{"annotation":[],"tag":"TypeVar","contents":"rowlistTail"}]}]},{"annotation":[],"tag":"TypeVar","contents":"row"}]},{"annotation":[],"tag":"TypeVar","contents":"subrow"}]}},"sourceSpan":{"start":[111,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semiring.purs","end":[142,76]}}],"comments":null,"title":"SemiringRecord","info":{"fundeps":[[["rowlist"],["subrow"]]],"arguments":[["rowlist",null],["row",null],["subrow",null]],"declType":"typeClass","superclasses":[]},"sourceSpan":{"start":[99,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semiring.purs","end":[103,86]}}]},{"reExports":[],"name":"Data.Semiring.Generic","comments":null,"declarations":[{"children":[{"comments":null,"title":"genericAdd'","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[8,3],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semiring/Generic.purs","end":[8,30]}},{"comments":null,"title":"genericZero'","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeVar","contents":"a"}},"sourceSpan":{"start":[9,3],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semiring/Generic.purs","end":[9,20]}},{"comments":null,"title":"genericMul'","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[10,3],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semiring/Generic.purs","end":[10,30]}},{"comments":null,"title":"genericOne'","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeVar","contents":"a"}},"sourceSpan":{"start":[11,3],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semiring/Generic.purs","end":[11,20]}},{"comments":null,"title":"genericSemiringNoArguments","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semiring","Generic"],"GenericSemiring"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"NoArguments"]}]}},"sourceSpan":{"start":[13,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semiring/Generic.purs","end":[17,28]}},{"comments":null,"title":"genericSemiringArgument","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Semiring"],"Semiring"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semiring","Generic"],"GenericSemiring"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"Argument"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[19,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semiring/Generic.purs","end":[23,29]}},{"comments":null,"title":"genericSemiringProduct","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Semiring","Generic"],"GenericSemiring"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","Semiring","Generic"],"GenericSemiring"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"b"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semiring","Generic"],"GenericSemiring"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"Product"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}},"sourceSpan":{"start":[25,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semiring/Generic.purs","end":[29,48]}},{"comments":null,"title":"genericSemiringConstructor","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Semiring","Generic"],"GenericSemiring"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semiring","Generic"],"GenericSemiring"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"Constructor"]},{"annotation":[],"tag":"TypeVar","contents":"name"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[31,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semiring/Generic.purs","end":[35,40]}}],"comments":null,"title":"GenericSemiring","info":{"fundeps":[],"arguments":[["a",null]],"declType":"typeClass","superclasses":[]},"sourceSpan":{"start":[7,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semiring/Generic.purs","end":[11,20]}},{"children":[],"comments":"A `Generic` implementation of the `zero` member from the `Semiring` type class.\n","title":"genericZero","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["rep",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Generic","Rep"],"Generic"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"},{"annotation":[],"tag":"TypeVar","contents":"rep"}],"constraintKindArgs":[],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Semiring","Generic"],"GenericSemiring"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"rep"}],"constraintKindArgs":[],"constraintData":null},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},null]},null]}},"sourceSpan":{"start":[38,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semiring/Generic.purs","end":[38,71]}},{"children":[],"comments":"A `Generic` implementation of the `one` member from the `Semiring` type class.\n","title":"genericOne","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["rep",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Generic","Rep"],"Generic"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"},{"annotation":[],"tag":"TypeVar","contents":"rep"}],"constraintKindArgs":[],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Semiring","Generic"],"GenericSemiring"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"rep"}],"constraintKindArgs":[],"constraintData":null},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},null]},null]}},"sourceSpan":{"start":[42,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semiring/Generic.purs","end":[42,70]}},{"children":[],"comments":"A `Generic` implementation of the `add` member from the `Semiring` type class.\n","title":"genericAdd","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["rep",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Generic","Rep"],"Generic"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"},{"annotation":[],"tag":"TypeVar","contents":"rep"}],"constraintKindArgs":[],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Semiring","Generic"],"GenericSemiring"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"rep"}],"constraintKindArgs":[],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]}]},null]},null]}},"sourceSpan":{"start":[46,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semiring/Generic.purs","end":[46,80]}},{"children":[],"comments":"A `Generic` implementation of the `mul` member from the `Semiring` type class.\n","title":"genericMul","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["rep",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Generic","Rep"],"Generic"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"},{"annotation":[],"tag":"TypeVar","contents":"rep"}],"constraintKindArgs":[],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Semiring","Generic"],"GenericSemiring"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"rep"}],"constraintKindArgs":[],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]}]},null]},null]}},"sourceSpan":{"start":[50,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semiring/Generic.purs","end":[50,80]}}]},{"reExports":[],"name":"Data.Show","comments":null,"declarations":[{"children":[{"comments":null,"title":"show","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}},"sourceSpan":{"start":[18,3],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Show.purs","end":[18,22]}},{"comments":null,"title":"showBoolean","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Show"],"Show"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}},"sourceSpan":{"start":[20,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Show.purs","end":[22,23]}},{"comments":null,"title":"showInt","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Show"],"Show"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}},"sourceSpan":{"start":[24,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Show.purs","end":[25,21]}},{"comments":null,"title":"showNumber","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Show"],"Show"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]}},"sourceSpan":{"start":[27,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Show.purs","end":[28,24]}},{"comments":null,"title":"showChar","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Show"],"Show"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Char"]}]}},"sourceSpan":{"start":[30,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Show.purs","end":[31,22]}},{"comments":null,"title":"showString","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Show"],"Show"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}},"sourceSpan":{"start":[33,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Show.purs","end":[34,24]}},{"comments":null,"title":"showArray","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Show"],"Show"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Show"],"Show"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[36,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Show.purs","end":[37,28]}},{"comments":null,"title":"showProxy","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Show"],"Show"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[39,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Show.purs","end":[40,19]}},{"comments":null,"title":"showProxy2","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Show"],"Show"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy2"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[42,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Show.purs","end":[43,20]}},{"comments":null,"title":"showProxy3","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Show"],"Show"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy3"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[45,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Show.purs","end":[46,20]}},{"comments":null,"title":"showRecord","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Prim","RowList"],"RowToList"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"rs"},{"annotation":[],"tag":"TypeVar","contents":"ls"}],"constraintKindArgs":[],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","Show"],"ShowRecordFields"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"ls"},{"annotation":[],"tag":"TypeVar","contents":"rs"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Show"],"Show"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"TypeVar","contents":"rs"}]}]}},"sourceSpan":{"start":[48,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Show.purs","end":[51,52]}}],"comments":"The `Show` type class represents those types which can be converted into\na human-readable `String` representation.\n\nWhile not required, it is recommended that for any expression `x`, the\nstring `show x` be executable PureScript code which evaluates to the same\nvalue as the expression `x`.\n","title":"Show","info":{"fundeps":[],"arguments":[["a",null]],"declType":"typeClass","superclasses":[]},"sourceSpan":{"start":[17,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Show.purs","end":[18,22]}},{"children":[{"comments":null,"title":"showRecordFields","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"ForAll","contents":["rlproxy",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"rlproxy"},{"annotation":[],"tag":"TypeVar","contents":"rowlist"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"TypeVar","contents":"row"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}]}]},null]}},"sourceSpan":{"start":[57,3],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Show.purs","end":[57,84]}},{"comments":null,"title":"showRecordFieldsNil","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Show"],"ShowRecordFields"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim","RowList"],"Nil"]}]},{"annotation":[],"tag":"TypeVar","contents":"row"}]}},"sourceSpan":{"start":[59,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Show.purs","end":[60,28]}},{"comments":null,"title":"showRecordFieldsCons","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Symbol"],"IsSymbol"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"key"}],"constraintKindArgs":[],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","Show"],"ShowRecordFields"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"rowlistTail"},{"annotation":[],"tag":"TypeVar","contents":"row"}],"constraintKindArgs":[],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","Show"],"Show"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"focus"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Show"],"ShowRecordFields"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim","RowList"],"Cons"]},{"annotation":[],"tag":"TypeVar","contents":"key"}]},{"annotation":[],"tag":"TypeVar","contents":"focus"}]},{"annotation":[],"tag":"TypeVar","contents":"rowlistTail"}]}]},{"annotation":[],"tag":"TypeVar","contents":"row"}]}},"sourceSpan":{"start":[62,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Show.purs","end":[73,66]}}],"comments":null,"title":"ShowRecordFields","info":{"fundeps":[],"arguments":[["rowlist",null],["row",null]],"declType":"typeClass","superclasses":[]},"sourceSpan":{"start":[56,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Show.purs","end":[57,84]}}]},{"reExports":[],"name":"Data.Show.Generic","comments":null,"declarations":[{"children":[{"comments":null,"title":"genericShow'","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}},"sourceSpan":{"start":[15,3],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Show/Generic.purs","end":[15,30]}},{"comments":null,"title":"genericShowNoConstructors","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Show","Generic"],"GenericShow"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"NoConstructors"]}]}},"sourceSpan":{"start":[20,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Show/Generic.purs","end":[21,34]}},{"comments":null,"title":"genericShowSum","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Show","Generic"],"GenericShow"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","Show","Generic"],"GenericShow"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"b"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Show","Generic"],"GenericShow"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"Sum"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}},"sourceSpan":{"start":[26,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Show/Generic.purs","end":[28,40]}},{"comments":null,"title":"genericShowConstructor","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Show","Generic"],"GenericShowArgs"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","Symbol"],"IsSymbol"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"name"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Show","Generic"],"GenericShow"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"Constructor"]},{"annotation":[],"tag":"TypeVar","contents":"name"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[35,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Show/Generic.purs","end":[44,49]}}],"comments":null,"title":"GenericShow","info":{"fundeps":[],"arguments":[["a",null]],"declType":"typeClass","superclasses":[]},"sourceSpan":{"start":[14,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Show/Generic.purs","end":[15,30]}},{"children":[],"comments":"A `Generic` implementation of the `show` member from the `Show` type class.\n","title":"genericShow","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["rep",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Generic","Rep"],"Generic"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"},{"annotation":[],"tag":"TypeVar","contents":"rep"}],"constraintKindArgs":[],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Show","Generic"],"GenericShow"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"rep"}],"constraintKindArgs":[],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}]}]},null]},null]}},"sourceSpan":{"start":[50,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Show/Generic.purs","end":[50,77]}},{"children":[{"comments":null,"title":"genericShowArgs","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}]}},"sourceSpan":{"start":[18,3],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Show/Generic.purs","end":[18,39]}},{"comments":null,"title":"genericShowArgsNoArguments","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Show","Generic"],"GenericShowArgs"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"NoArguments"]}]}},"sourceSpan":{"start":[23,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Show/Generic.purs","end":[24,25]}},{"comments":null,"title":"genericShowArgsProduct","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Show","Generic"],"GenericShowArgs"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","Show","Generic"],"GenericShowArgs"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"b"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Show","Generic"],"GenericShowArgs"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"Product"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}},"sourceSpan":{"start":[30,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Show/Generic.purs","end":[33,73]}},{"comments":null,"title":"genericShowArgsArgument","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Show"],"Show"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Show","Generic"],"GenericShowArgs"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"Argument"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[46,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Show/Generic.purs","end":[47,42]}}],"comments":null,"title":"GenericShowArgs","info":{"fundeps":[],"arguments":[["a",null]],"declType":"typeClass","superclasses":[]},"sourceSpan":{"start":[17,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Show/Generic.purs","end":[18,39]}}]},{"reExports":[],"name":"Data.Symbol","comments":null,"declarations":[{"children":[{"comments":null,"title":"reflectSymbol","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"ForAll","contents":["proxy",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"proxy"},{"annotation":[],"tag":"TypeVar","contents":"sym"}]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},null]}},"sourceSpan":{"start":[24,3],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Symbol.purs","end":[24,53]}}],"comments":"A class for known symbols\n","title":"IsSymbol","info":{"fundeps":[],"arguments":[["sym",{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Symbol"]}]],"declType":"typeClass","superclasses":[]},"sourceSpan":{"start":[16,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Symbol.purs","end":[24,53]}},{"children":[],"comments":null,"title":"reifySymbol","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["proxy",{"annotation":[],"tag":"ForAll","contents":["r",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"ForAll","contents":["sym",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Symbol"],"IsSymbol"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"sym"}],"constraintKindArgs":[],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"proxy"},{"annotation":[],"tag":"TypeVar","contents":"sym"}]}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}]},null]}}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}]},null]},null]}},"sourceSpan":{"start":[29,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Symbol.purs","end":[29,91]}},{"children":[{"comments":null,"title":"SProxy","info":{"arguments":[],"declType":"dataConstructor"},"sourceSpan":null}],"comments":null,"title":"SProxy","info":{"declType":"data","dataDeclType":"data","typeArguments":[["sym",null]]},"sourceSpan":{"start":[13,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Symbol.purs","end":[13,25]}}]},{"reExports":[],"name":"Data.Unit","comments":null,"declarations":[{"children":[{"comments":null,"title":"showUnit","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Show"],"Show"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}},"sourceSpan":{"start":[18,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Unit.purs","end":[19,18]}}],"comments":"The `Unit` type has a single inhabitant, called `unit`. It represents\nvalues with no computational content.\n\n`Unit` is often used, wrapped in a monadic type constructor, as the\nreturn type of a computation where only the _effects_ are important.\n\nWhen returning a value of type `Unit` from an FFI function, it is\nrecommended to use `undefined`, or not return a value at all.\n","title":"Unit","info":{"kind":{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Type"]},"declType":"externData"},"sourceSpan":{"start":[13,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Unit.purs","end":[13,33]}},{"children":[],"comments":"`unit` is the sole inhabitant of the `Unit` type.\n","title":"unit","info":{"declType":"value","type":{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}},"sourceSpan":{"start":[16,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Unit.purs","end":[16,28]}}]},{"reExports":[],"name":"Data.Void","comments":null,"declarations":[{"children":[{"comments":null,"title":"showVoid","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Show"],"Show"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Void"],"Void"]}]}},"sourceSpan":{"start":[24,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Void.purs","end":[25,16]}}],"comments":"An uninhabited data type. In other words, one can never create\na runtime value of type `Void` becaue no such value exists.\n\n`Void` is useful to eliminate the possibility of a value being created.\nFor example, a value of type `Either Void Boolean` can never have\na Left value created in PureScript.\n\nThis should not be confused with the keyword `void` that commonly appears in\nC-family languages, such as Java:\n```\npublic class Foo {\n  void doSomething() { System.out.println(\"hello world!\"); }\n}\n```\n\nIn PureScript, one often uses `Unit` to achieve similar effects as\nthe `void` of C-family languages above.\n","title":"Void","info":{"declType":"data","dataDeclType":"newtype","typeArguments":[]},"sourceSpan":{"start":[22,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Void.purs","end":[22,25]}},{"children":[],"comments":"Eliminator for the `Void` type.\nUseful for stating that some code branch is impossible because you've\n\"acquired\" a value of type `Void` (which you can't).\n\n```purescript\nrightOnly :: forall t . Either Void t -> t\nrightOnly (Left v) = absurd v\nrightOnly (Right t) = t\n```\n","title":"absurd","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Void"],"Void"]}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},null]}},"sourceSpan":{"start":[36,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Void.purs","end":[36,30]}}]},{"reExports":[{"moduleName":{"package":null,"item":["Control","Applicative"]},"declarations":[{"children":[{"comments":null,"title":"pure","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},null]}},"sourceSpan":{"start":[34,3],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Applicative.purs","end":[34,29]}},{"comments":null,"title":"applicativeFn","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Applicative"],"Applicative"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}]}},"sourceSpan":{"start":[36,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Applicative.purs","end":[37,15]}},{"comments":null,"title":"applicativeArray","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Applicative"],"Applicative"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]}]}},"sourceSpan":{"start":[39,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Applicative.purs","end":[40,15]}},{"comments":null,"title":"applicativeProxy","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Applicative"],"Applicative"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy"]}]}},"sourceSpan":{"start":[42,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Applicative.purs","end":[43,17]}}],"comments":"The `Applicative` type class extends the [`Apply`](#apply) type class\nwith a `pure` function, which can be used to create values of type `f a`\nfrom values of type `a`.\n\nWhere [`Apply`](#apply) provides the ability to lift functions of two or\nmore arguments to functions whose arguments are wrapped using `f`, and\n[`Functor`](#functor) provides the ability to lift functions of one\nargument, `pure` can be seen as the function which lifts functions of\n_zero_ arguments. That is, `Applicative` functors support a lifting\noperation for any number of function arguments.\n\nInstances must satisfy the following laws in addition to the `Apply`\nlaws:\n\n- Identity: `(pure identity) <*> v = v`\n- Composition: `pure (<<<) <*> f <*> g <*> h = f <*> (g <*> h)`\n- Homomorphism: `(pure f) <*> (pure x) = pure (f x)`\n- Interchange: `u <*> (pure y) = (pure (_ $ y)) <*> u`\n","title":"Applicative","info":{"fundeps":[],"arguments":[["f",null]],"declType":"typeClass","superclasses":[{"constraintAnn":[],"constraintClass":[["Control","Apply"],"Apply"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintKindArgs":[],"constraintData":null}]},"sourceSpan":{"start":[33,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Applicative.purs","end":[34,29]}},{"children":[],"comments":"Perform an applicative action when a condition is true.\n","title":"when","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Applicative"],"Applicative"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintKindArgs":[],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}]}]},null]}},"sourceSpan":{"start":[61,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Applicative.purs","end":[61,63]}},{"children":[],"comments":"Perform an applicative action unless a condition is true.\n","title":"unless","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Applicative"],"Applicative"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintKindArgs":[],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}]}]},null]}},"sourceSpan":{"start":[66,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Applicative.purs","end":[66,65]}},{"children":[],"comments":"`liftA1` provides a default implementation of `(<$>)` for any\n[`Applicative`](#applicative) functor, without using `(<$>)` as provided\nby the [`Functor`](#functor)-[`Applicative`](#applicative) superclass\nrelationship.\n\n`liftA1` can therefore be used to write [`Functor`](#functor) instances\nas follows:\n\n```purescript\ninstance functorF :: Functor F where\n  map = liftA1\n```\n","title":"liftA1","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Applicative"],"Applicative"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintKindArgs":[],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}]}]},null]},null]},null]}},"sourceSpan":{"start":[57,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Applicative.purs","end":[57,64]}}]},{"moduleName":{"package":null,"item":["Control","Apply"]},"declarations":[{"children":[{"comments":null,"title":"apply","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}]},null]},null]}},"sourceSpan":{"start":[46,3],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Apply.purs","end":[46,48]}},{"comments":null,"title":"applyFn","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Apply"],"Apply"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}]}},"sourceSpan":{"start":[50,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Apply.purs","end":[51,26]}},{"comments":null,"title":"applyArray","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Apply"],"Apply"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]}]}},"sourceSpan":{"start":[53,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Apply.purs","end":[54,21]}},{"comments":null,"title":"applyProxy","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Apply"],"Apply"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy"]}]}},"sourceSpan":{"start":[58,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Apply.purs","end":[59,20]}}],"comments":"The `Apply` class provides the `(<*>)` which is used to apply a function\nto an argument under a type constructor.\n\n`Apply` can be used to lift functions of two or more arguments to work on\nvalues wrapped with the type constructor `f`. It might also be understood\nin terms of the `lift2` function:\n\n```purescript\nlift2 :: forall f a b c. Apply f => (a -> b -> c) -> f a -> f b -> f c\nlift2 f a b = f <$> a <*> b\n```\n\n`(<*>)` is recovered from `lift2` as `lift2 ($)`. That is, `(<*>)` lifts\nthe function application operator `($)` to arguments wrapped with the\ntype constructor `f`.\n\nPut differently...\n```\nfoo =\n  functionTakingNArguments <$> computationProducingArg1\n                           <*> computationProducingArg2\n                           <*> ...\n                           <*> computationProducingArgN\n```\n\nInstances must satisfy the following law in addition to the `Functor`\nlaws:\n\n- Associative composition: `(<<<) <$> f <*> g <*> h = f <*> (g <*> h)`\n\nFormally, `Apply` represents a strong lax semi-monoidal endofunctor.\n","title":"Apply","info":{"fundeps":[],"arguments":[["f",null]],"declType":"typeClass","superclasses":[{"constraintAnn":[],"constraintClass":[["Data","Functor"],"Functor"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintKindArgs":[],"constraintData":null}]},"sourceSpan":{"start":[45,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Apply.purs","end":[46,48]}},{"children":[],"comments":null,"title":"(<*>)","info":{"declType":"alias","alias":[["Control","Apply"],{"Right":{"Left":{"Ident":"apply"}}}],"fixity":{"associativity":"infixl","precedence":4}},"sourceSpan":{"start":[48,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Apply.purs","end":[48,22]}},{"children":[],"comments":null,"title":"(<*)","info":{"declType":"alias","alias":[["Control","Apply"],{"Right":{"Left":{"Ident":"applyFirst"}}}],"fixity":{"associativity":"infixl","precedence":4}},"sourceSpan":{"start":[65,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Apply.purs","end":[65,26]}},{"children":[],"comments":null,"title":"(*>)","info":{"declType":"alias","alias":[["Control","Apply"],{"Right":{"Left":{"Ident":"applySecond"}}}],"fixity":{"associativity":"infixl","precedence":4}},"sourceSpan":{"start":[71,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Apply.purs","end":[71,27]}}]},{"moduleName":{"package":null,"item":["Control","Bind"]},"declarations":[{"children":[{"comments":null,"title":"bind","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}]},null]},null]}},"sourceSpan":{"start":[51,3],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Bind.purs","end":[51,47]}},{"comments":null,"title":"bindFn","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Bind"],"Bind"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}]}},"sourceSpan":{"start":[65,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Bind.purs","end":[66,25]}},{"comments":"The `bind`/`>>=` function for `Array` works by applying a function to\neach element in the array, and flattening the results into a single,\nnew array.\n\nArray's `bind`/`>>=` works like a nested for loop. Each `bind` adds\nanother level of nesting in the loop. For example:\n```\nfoo :: Array String\nfoo =\n  [\"a\", \"b\"] >>= \\eachElementInArray1 ->\n    [\"c\", \"d\"] >>= \\eachElementInArray2\n      pure (eachElementInArray1 <> eachElementInArray2)\n\n-- In other words...\nfoo\n-- ... is the same as...\n[ (\"a\" <> \"c\"), (\"a\" <> \"d\"), (\"b\" <> \"c\"), (\"b\" <> \"d\") ]\n-- which simplifies to...\n[ \"ac\", \"ad\", \"bc\", \"bd\" ]\n```\n","title":"bindArray","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Bind"],"Bind"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]}]}},"sourceSpan":{"start":[88,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Bind.purs","end":[89,19]}},{"comments":null,"title":"bindProxy","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Bind"],"Bind"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy"]}]}},"sourceSpan":{"start":[93,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Bind.purs","end":[94,19]}}],"comments":"The `Bind` type class extends the [`Apply`](#apply) type class with a\n\"bind\" operation `(>>=)` which composes computations in sequence, using\nthe return value of one computation to determine the next computation.\n\nThe `>>=` operator can also be expressed using `do` notation, as follows:\n\n```purescript\nx >>= f = do y <- x\n             f y\n```\n\nwhere the function argument of `f` is given the name `y`.\n\nInstances must satisfy the following laws in addition to the `Apply`\nlaws:\n\n- Associativity: `(x >>= f) >>= g = x >>= (\\k -> f k >>= g)`\n- Apply Superclass: `apply f x = f >>= \\f’ -> map f’ x`\n\nAssociativity tells us that we can regroup operations which use `do`\nnotation so that we can unambiguously write, for example:\n\n```purescript\ndo x <- m1\n   y <- m2 x\n   m3 x y\n```\n","title":"Bind","info":{"fundeps":[],"arguments":[["m",null]],"declType":"typeClass","superclasses":[{"constraintAnn":[],"constraintClass":[["Control","Apply"],"Apply"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintKindArgs":[],"constraintData":null}]},"sourceSpan":{"start":[50,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Bind.purs","end":[51,47]}},{"children":[{"comments":null,"title":"discard","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Bind"],"Bind"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintKindArgs":[],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}]}]},null]},null]}},"sourceSpan":{"start":[102,3],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Bind.purs","end":[102,60]}},{"comments":null,"title":"discardUnit","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Bind"],"Discard"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}},"sourceSpan":{"start":[104,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Bind.purs","end":[105,17]}},{"comments":null,"title":"discardProxy","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Bind"],"Discard"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[107,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Bind.purs","end":[108,17]}},{"comments":null,"title":"discardProxy2","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Bind"],"Discard"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy2"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[110,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Bind.purs","end":[111,17]}},{"comments":null,"title":"discardProxy3","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Bind"],"Discard"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy3"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[113,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Bind.purs","end":[114,17]}}],"comments":"A class for types whose values can safely be discarded\nin a `do` notation block.\n\nAn example is the `Unit` type, since there is only one\npossible value which can be returned.\n","title":"Discard","info":{"fundeps":[],"arguments":[["a",null]],"declType":"typeClass","superclasses":[]},"sourceSpan":{"start":[101,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Bind.purs","end":[102,60]}},{"children":[],"comments":"Collapse two applications of a monadic type constructor into one.\n","title":"join","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Bind"],"Bind"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintKindArgs":[],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]},null]},null]}},"sourceSpan":{"start":[117,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Bind.purs","end":[117,45]}},{"children":[],"comments":"Execute a monadic action if a condition holds.\n\nFor example:\n\n```purescript\nmain = ifM ((< 0.5) <$> random)\n         (trace \"Heads\")\n         (trace \"Tails\")\n```\n","title":"ifM","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Bind"],"Bind"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintKindArgs":[],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]}]}]},null]},null]}},"sourceSpan":{"start":[149,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Bind.purs","end":[149,60]}},{"children":[],"comments":null,"title":"(>>=)","info":{"declType":"alias","alias":[["Control","Bind"],{"Right":{"Left":{"Ident":"bind"}}}],"fixity":{"associativity":"infixl","precedence":1}},"sourceSpan":{"start":[53,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Bind.purs","end":[53,21]}},{"children":[],"comments":null,"title":"(>=>)","info":{"declType":"alias","alias":[["Control","Bind"],{"Right":{"Left":{"Ident":"composeKleisli"}}}],"fixity":{"associativity":"infixr","precedence":1}},"sourceSpan":{"start":[132,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Bind.purs","end":[132,31]}},{"children":[],"comments":null,"title":"(=<<)","info":{"declType":"alias","alias":[["Control","Bind"],{"Right":{"Left":{"Ident":"bindFlipped"}}}],"fixity":{"associativity":"infixr","precedence":1}},"sourceSpan":{"start":[63,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Bind.purs","end":[63,28]}},{"children":[],"comments":null,"title":"(<=<)","info":{"declType":"alias","alias":[["Control","Bind"],{"Right":{"Left":{"Ident":"composeKleisliFlipped"}}}],"fixity":{"associativity":"infixr","precedence":1}},"sourceSpan":{"start":[138,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Bind.purs","end":[138,38]}}]},{"moduleName":{"package":null,"item":["Control","Category"]},"declarations":[{"children":[{"comments":null,"title":"identity","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"ForAll","contents":["t",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"a"},{"annotation":[],"tag":"TypeVar","contents":"t"}]},{"annotation":[],"tag":"TypeVar","contents":"t"}]},null]}},"sourceSpan":{"start":[18,3],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Category.purs","end":[18,30]}},{"comments":null,"title":"categoryFn","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Category"],"Category"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]}]}},"sourceSpan":{"start":[20,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Category.purs","end":[21,17]}}],"comments":null,"title":"Category","info":{"fundeps":[],"arguments":[["a",null]],"declType":"typeClass","superclasses":[{"constraintAnn":[],"constraintClass":[["Control","Semigroupoid"],"Semigroupoid"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null}]},"sourceSpan":{"start":[17,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Category.purs","end":[18,30]}}]},{"moduleName":{"package":null,"item":["Control","Monad"]},"declarations":[{"children":[{"comments":null,"title":"monadFn","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Monad"],"Monad"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}]}},"sourceSpan":{"start":[33,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Monad.purs","end":[33,35]}},{"comments":null,"title":"monadArray","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Monad"],"Monad"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]}]}},"sourceSpan":{"start":[35,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Monad.purs","end":[35,35]}},{"comments":null,"title":"monadProxy","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Monad"],"Monad"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy"]}]}},"sourceSpan":{"start":[37,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Monad.purs","end":[37,35]}}],"comments":"The `Monad` type class combines the operations of the `Bind` and\n`Applicative` type classes. Therefore, `Monad` instances represent type\nconstructors which support sequential composition, and also lifting of\nfunctions of arbitrary arity.\n\nInstances must satisfy the following laws in addition to the\n`Applicative` and `Bind` laws:\n\n- Left Identity: `pure x >>= f = f x`\n- Right Identity: `x >>= pure = x`\n","title":"Monad","info":{"fundeps":[],"arguments":[["m",null]],"declType":"typeClass","superclasses":[{"constraintAnn":[],"constraintClass":[["Control","Applicative"],"Applicative"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintKindArgs":[],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Control","Bind"],"Bind"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintKindArgs":[],"constraintData":null}]},"sourceSpan":{"start":[31,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Monad.purs","end":[31,41]}},{"children":[],"comments":"Perform a monadic action when a condition is true, where the conditional\nvalue is also in a monadic context.\n","title":"whenM","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Monad"],"Monad"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintKindArgs":[],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}]}]},null]}},"sourceSpan":{"start":[57,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Monad.purs","end":[57,60]}},{"children":[],"comments":"Perform a monadic action unless a condition is true, where the conditional\nvalue is also in a monadic context.\n","title":"unlessM","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Monad"],"Monad"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintKindArgs":[],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}]}]},null]}},"sourceSpan":{"start":[64,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Monad.purs","end":[64,62]}},{"children":[],"comments":"`liftM1` provides a default implementation of `(<$>)` for any\n[`Monad`](#monad), without using `(<$>)` as provided by the\n[`Functor`](#functor)-[`Monad`](#monad) superclass relationship.\n\n`liftM1` can therefore be used to write [`Functor`](#functor) instances\nas follows:\n\n```purescript\ninstance functorF :: Functor F where\n  map = liftM1\n```\n","title":"liftM1","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Monad"],"Monad"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintKindArgs":[],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}]}]},null]},null]},null]}},"sourceSpan":{"start":[50,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Monad.purs","end":[50,58]}},{"children":[],"comments":"`ap` provides a default implementation of `(<*>)` for any `Monad`, without\nusing `(<*>)` as provided by the `Apply`-`Monad` superclass relationship.\n\n`ap` can therefore be used to write `Apply` instances as follows:\n\n```purescript\ninstance applyF :: Apply F where\n  apply = ap\n```\n","title":"ap","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Monad"],"Monad"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintKindArgs":[],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}]}]},null]},null]},null]}},"sourceSpan":{"start":[82,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Monad.purs","end":[82,56]}}]},{"moduleName":{"package":null,"item":["Control","Semigroupoid"]},"declarations":[{"children":[{"comments":null,"title":"compose","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["d",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"a"},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"d"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"a"},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"a"},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"d"}]}]}]},null]},null]},null]}},"sourceSpan":{"start":[14,3],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Semigroupoid.purs","end":[14,51]}},{"comments":null,"title":"semigroupoidFn","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Semigroupoid"],"Semigroupoid"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]}]}},"sourceSpan":{"start":[16,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Semigroupoid.purs","end":[17,26]}}],"comments":null,"title":"Semigroupoid","info":{"fundeps":[],"arguments":[["a",null]],"declType":"typeClass","superclasses":[]},"sourceSpan":{"start":[13,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Semigroupoid.purs","end":[14,51]}},{"children":[],"comments":null,"title":"(>>>)","info":{"declType":"alias","alias":[["Control","Semigroupoid"],{"Right":{"Left":{"Ident":"composeFlipped"}}}],"fixity":{"associativity":"infixr","precedence":9}},"sourceSpan":{"start":[25,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Semigroupoid.purs","end":[25,31]}},{"children":[],"comments":null,"title":"(<<<)","info":{"declType":"alias","alias":[["Control","Semigroupoid"],{"Right":{"Left":{"Ident":"compose"}}}],"fixity":{"associativity":"infixr","precedence":9}},"sourceSpan":{"start":[19,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Control/Semigroupoid.purs","end":[19,24]}}]},{"moduleName":{"package":null,"item":["Data","Boolean"]},"declarations":[{"children":[],"comments":"An alias for `true`, which can be useful in guard clauses:\n\n```purescript\nmax x y | x >= y    = x\n        | otherwise = y\n```\n","title":"otherwise","info":{"declType":"value","type":{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}},"sourceSpan":{"start":[9,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Boolean.purs","end":[9,21]}}]},{"moduleName":{"package":null,"item":["Data","BooleanAlgebra"]},"declarations":[{"children":[{"comments":null,"title":"booleanAlgebraBoolean","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","BooleanAlgebra"],"BooleanAlgebra"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}},"sourceSpan":{"start":[24,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/BooleanAlgebra.purs","end":[24,57]}},{"comments":null,"title":"booleanAlgebraUnit","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","BooleanAlgebra"],"BooleanAlgebra"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}},"sourceSpan":{"start":[25,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/BooleanAlgebra.purs","end":[25,51]}},{"comments":null,"title":"booleanAlgebraFn","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","BooleanAlgebra"],"BooleanAlgebra"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"b"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","BooleanAlgebra"],"BooleanAlgebra"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}},"sourceSpan":{"start":[26,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/BooleanAlgebra.purs","end":[26,73]}},{"comments":null,"title":"booleanAlgebraRecord","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Prim","RowList"],"RowToList"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"row"},{"annotation":[],"tag":"TypeVar","contents":"list"}],"constraintKindArgs":[],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","BooleanAlgebra"],"BooleanAlgebraRecord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"list"},{"annotation":[],"tag":"TypeVar","contents":"row"},{"annotation":[],"tag":"TypeVar","contents":"row"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","BooleanAlgebra"],"BooleanAlgebra"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"TypeVar","contents":"row"}]}]}},"sourceSpan":{"start":[27,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/BooleanAlgebra.purs","end":[27,123]}},{"comments":null,"title":"booleanAlgebraProxy","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","BooleanAlgebra"],"BooleanAlgebra"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[28,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/BooleanAlgebra.purs","end":[28,57]}},{"comments":null,"title":"booleanAlgebraProxy2","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","BooleanAlgebra"],"BooleanAlgebra"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy2"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[29,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/BooleanAlgebra.purs","end":[29,59]}},{"comments":null,"title":"booleanAlgebraProxy3","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","BooleanAlgebra"],"BooleanAlgebra"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy3"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[30,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/BooleanAlgebra.purs","end":[30,59]}}],"comments":"The `BooleanAlgebra` type class represents types that behave like boolean\nvalues.\n\nInstances should satisfy the following laws in addition to the\n`HeytingAlgebra` law:\n\n- Excluded middle:\n  - `a || not a = tt`\n","title":"BooleanAlgebra","info":{"fundeps":[],"arguments":[["a",null]],"declType":"typeClass","superclasses":[{"constraintAnn":[],"constraintClass":[["Data","HeytingAlgebra"],"HeytingAlgebra"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null}]},"sourceSpan":{"start":[22,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/BooleanAlgebra.purs","end":[22,43]}}]},{"moduleName":{"package":null,"item":["Data","Bounded"]},"declarations":[{"children":[{"comments":null,"title":"top","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeVar","contents":"a"}},"sourceSpan":{"start":[24,3],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Bounded.purs","end":[24,11]}},{"comments":null,"title":"bottom","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeVar","contents":"a"}},"sourceSpan":{"start":[25,3],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Bounded.purs","end":[25,14]}},{"comments":null,"title":"boundedBoolean","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Bounded"],"Bounded"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}},"sourceSpan":{"start":[27,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Bounded.purs","end":[29,17]}},{"comments":"The `Bounded` `Int` instance has `top :: Int` equal to 2^31 - 1,\nand `bottom :: Int` equal to -2^31, since these are the largest and smallest\nintegers representable by twos-complement 32-bit integers, respectively.\n","title":"boundedInt","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Bounded"],"Bounded"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}},"sourceSpan":{"start":[34,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Bounded.purs","end":[36,21]}},{"comments":"Characters fall within the Unicode range.\n","title":"boundedChar","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Bounded"],"Bounded"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Char"]}]}},"sourceSpan":{"start":[42,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Bounded.purs","end":[44,22]}},{"comments":null,"title":"boundedOrdering","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Bounded"],"Bounded"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ordering"],"Ordering"]}]}},"sourceSpan":{"start":[49,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Bounded.purs","end":[51,14]}},{"comments":null,"title":"boundedUnit","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Bounded"],"Bounded"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}},"sourceSpan":{"start":[53,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Bounded.purs","end":[55,16]}},{"comments":null,"title":"boundedNumber","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Bounded"],"Bounded"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]}},"sourceSpan":{"start":[60,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Bounded.purs","end":[62,24]}},{"comments":null,"title":"boundedProxy","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Bounded"],"Bounded"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[64,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Bounded.purs","end":[66,14]}},{"comments":null,"title":"boundedProxy2","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Bounded"],"Bounded"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy2"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[68,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Bounded.purs","end":[70,15]}},{"comments":null,"title":"boundedProxy3","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Bounded"],"Bounded"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy3"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[72,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Bounded.purs","end":[74,15]}},{"comments":null,"title":"boundedRecord","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Prim","RowList"],"RowToList"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"row"},{"annotation":[],"tag":"TypeVar","contents":"list"}],"constraintKindArgs":[],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","Bounded"],"BoundedRecord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"list"},{"annotation":[],"tag":"TypeVar","contents":"row"},{"annotation":[],"tag":"TypeVar","contents":"row"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Bounded"],"Bounded"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"TypeVar","contents":"row"}]}]}},"sourceSpan":{"start":[107,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Bounded.purs","end":[113,67]}}],"comments":"The `Bounded` type class represents totally ordered types that have an\nupper and lower boundary.\n\nInstances should satisfy the following law in addition to the `Ord` laws:\n\n- Bounded: `bottom <= a <= top`\n","title":"Bounded","info":{"fundeps":[],"arguments":[["a",null]],"declType":"typeClass","superclasses":[{"constraintAnn":[],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null}]},"sourceSpan":{"start":[23,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Bounded.purs","end":[25,14]}}]},{"moduleName":{"package":null,"item":["Data","CommutativeRing"]},"declarations":[{"children":[{"comments":null,"title":"commutativeRingInt","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","CommutativeRing"],"CommutativeRing"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}},"sourceSpan":{"start":[25,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/CommutativeRing.purs","end":[25,51]}},{"comments":null,"title":"commutativeRingNumber","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","CommutativeRing"],"CommutativeRing"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]}},"sourceSpan":{"start":[26,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/CommutativeRing.purs","end":[26,57]}},{"comments":null,"title":"commutativeRingUnit","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","CommutativeRing"],"CommutativeRing"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}},"sourceSpan":{"start":[27,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/CommutativeRing.purs","end":[27,53]}},{"comments":null,"title":"commutativeRingFn","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","CommutativeRing"],"CommutativeRing"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"b"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","CommutativeRing"],"CommutativeRing"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}},"sourceSpan":{"start":[28,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/CommutativeRing.purs","end":[28,76]}},{"comments":null,"title":"commutativeRingRecord","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Prim","RowList"],"RowToList"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"row"},{"annotation":[],"tag":"TypeVar","contents":"list"}],"constraintKindArgs":[],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","CommutativeRing"],"CommutativeRingRecord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"list"},{"annotation":[],"tag":"TypeVar","contents":"row"},{"annotation":[],"tag":"TypeVar","contents":"row"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","CommutativeRing"],"CommutativeRing"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"TypeVar","contents":"row"}]}]}},"sourceSpan":{"start":[29,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/CommutativeRing.purs","end":[29,126]}},{"comments":null,"title":"commutativeRingProxy","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","CommutativeRing"],"CommutativeRing"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[30,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/CommutativeRing.purs","end":[30,59]}},{"comments":null,"title":"commutativeRingProxy2","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","CommutativeRing"],"CommutativeRing"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy2"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[31,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/CommutativeRing.purs","end":[31,61]}},{"comments":null,"title":"commutativeRingProxy3","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","CommutativeRing"],"CommutativeRing"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy3"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[32,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/CommutativeRing.purs","end":[32,61]}}],"comments":"The `CommutativeRing` class is for rings where multiplication is\ncommutative.\n\nInstances must satisfy the following law in addition to the `Ring`\nlaws:\n\n- Commutative multiplication: `a * b = b * a`\n","title":"CommutativeRing","info":{"fundeps":[],"arguments":[["a",null]],"declType":"typeClass","superclasses":[{"constraintAnn":[],"constraintClass":[["Data","Ring"],"Ring"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null}]},"sourceSpan":{"start":[23,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/CommutativeRing.purs","end":[23,34]}}]},{"moduleName":{"package":null,"item":["Data","DivisionRing"]},"declarations":[{"children":[{"comments":null,"title":"recip","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}},"sourceSpan":{"start":[30,3],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/DivisionRing.purs","end":[30,18]}},{"comments":null,"title":"divisionringNumber","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","DivisionRing"],"DivisionRing"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]}},"sourceSpan":{"start":[54,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/DivisionRing.purs","end":[55,20]}}],"comments":"The `DivisionRing` class is for non-zero rings in which every non-zero\nelement has a multiplicative inverse. Division rings are sometimes also\ncalled *skew fields*.\n\nInstances must satisfy the following laws in addition to the `Ring` laws:\n\n- Non-zero ring: `one /= zero`\n- Non-zero multiplicative inverse: `recip a * a = a * recip a = one` for\n  all non-zero `a`\n\nThe result of `recip zero` is left undefined; individual instances may\nchoose how to handle this case.\n\nIf a type has both `DivisionRing` and `CommutativeRing` instances, then\nit is a field and should have a `Field` instance.\n","title":"DivisionRing","info":{"fundeps":[],"arguments":[["a",null]],"declType":"typeClass","superclasses":[{"constraintAnn":[],"constraintClass":[["Data","Ring"],"Ring"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null}]},"sourceSpan":{"start":[29,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/DivisionRing.purs","end":[30,18]}}]},{"moduleName":{"package":null,"item":["Data","Eq"]},"declarations":[{"children":[{"comments":null,"title":"eq","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]}},"sourceSpan":{"start":[29,3],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Eq.purs","end":[29,26]}},{"comments":null,"title":"eqBoolean","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Eq"],"Eq"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}},"sourceSpan":{"start":[40,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Eq.purs","end":[41,21]}},{"comments":null,"title":"eqInt","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Eq"],"Eq"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}},"sourceSpan":{"start":[43,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Eq.purs","end":[44,17]}},{"comments":null,"title":"eqNumber","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Eq"],"Eq"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]}},"sourceSpan":{"start":[46,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Eq.purs","end":[47,20]}},{"comments":null,"title":"eqChar","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Eq"],"Eq"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Char"]}]}},"sourceSpan":{"start":[49,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Eq.purs","end":[50,18]}},{"comments":null,"title":"eqString","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Eq"],"Eq"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}},"sourceSpan":{"start":[52,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Eq.purs","end":[53,20]}},{"comments":null,"title":"eqUnit","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Eq"],"Eq"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}},"sourceSpan":{"start":[55,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Eq.purs","end":[56,16]}},{"comments":null,"title":"eqVoid","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Eq"],"Eq"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Void"],"Void"]}]}},"sourceSpan":{"start":[58,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Eq.purs","end":[59,16]}},{"comments":null,"title":"eqArray","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Eq"],"Eq"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[61,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Eq.purs","end":[62,22]}},{"comments":null,"title":"eqRec","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Prim","RowList"],"RowToList"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"row"},{"annotation":[],"tag":"TypeVar","contents":"list"}],"constraintKindArgs":[],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","Eq"],"EqRecord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"list"},{"annotation":[],"tag":"TypeVar","contents":"row"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Eq"],"Eq"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"TypeVar","contents":"row"}]}]}},"sourceSpan":{"start":[64,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Eq.purs","end":[65,38]}},{"comments":null,"title":"eqProxy","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Eq"],"Eq"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[67,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Eq.purs","end":[68,16]}},{"comments":null,"title":"eqProxy2","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Eq"],"Eq"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy2"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[70,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Eq.purs","end":[71,16]}},{"comments":null,"title":"eqProxy3","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Eq"],"Eq"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy3"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[73,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Eq.purs","end":[74,16]}}],"comments":"The `Eq` type class represents types which support decidable equality.\n\n`Eq` instances should satisfy the following laws:\n\n- Reflexivity: `x == x = true`\n- Symmetry: `x == y = y == x`\n- Transitivity: if `x == y` and `y == z` then `x == z`\n\n**Note:** The `Number` type is not an entirely law abiding member of this\nclass due to the presence of `NaN`, since `NaN /= NaN`. Additionally,\ncomputing with `Number` can result in a loss of precision, so sometimes\nvalues that should be equivalent are not.\n","title":"Eq","info":{"fundeps":[],"arguments":[["a",null]],"declType":"typeClass","superclasses":[]},"sourceSpan":{"start":[28,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Eq.purs","end":[29,26]}},{"children":[],"comments":"`notEq` tests whether one value is _not equal_ to another. Shorthand for\n`not (eq x y)`.\n","title":"notEq","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]}]},null]}},"sourceSpan":{"start":[35,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Eq.purs","end":[35,45]}},{"children":[],"comments":null,"title":"(==)","info":{"declType":"alias","alias":[["Data","Eq"],{"Right":{"Left":{"Ident":"eq"}}}],"fixity":{"associativity":"infix","precedence":4}},"sourceSpan":{"start":[31,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Eq.purs","end":[31,17]}},{"children":[],"comments":null,"title":"(/=)","info":{"declType":"alias","alias":[["Data","Eq"],{"Right":{"Left":{"Ident":"notEq"}}}],"fixity":{"associativity":"infix","precedence":4}},"sourceSpan":{"start":[38,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Eq.purs","end":[38,20]}}]},{"moduleName":{"package":null,"item":["Data","EuclideanRing"]},"declarations":[{"children":[{"comments":null,"title":"degree","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}},"sourceSpan":{"start":[64,3],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/EuclideanRing.purs","end":[64,21]}},{"comments":null,"title":"div","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[65,3],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/EuclideanRing.purs","end":[65,21]}},{"comments":null,"title":"mod","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[66,3],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/EuclideanRing.purs","end":[66,21]}},{"comments":null,"title":"euclideanRingInt","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","EuclideanRing"],"EuclideanRing"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}},"sourceSpan":{"start":[70,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/EuclideanRing.purs","end":[73,15]}},{"comments":null,"title":"euclideanRingNumber","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","EuclideanRing"],"EuclideanRing"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]}},"sourceSpan":{"start":[75,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/EuclideanRing.purs","end":[78,16]}}],"comments":"The `EuclideanRing` class is for commutative rings that support division.\nThe mathematical structure this class is based on is sometimes also called\na *Euclidean domain*.\n\nInstances must satisfy the following laws in addition to the `Ring`\nlaws:\n\n- Integral domain: `one /= zero`, and if `a` and `b` are both nonzero then\n  so is their product `a * b`\n- Euclidean function `degree`:\n  - Nonnegativity: For all nonzero `a`, `degree a >= 0`\n  - Quotient/remainder: For all `a` and `b`, where `b` is nonzero,\n    let `q = a / b` and ``r = a `mod` b``; then `a = q*b + r`, and also\n    either `r = zero` or `degree r < degree b`\n- Submultiplicative euclidean function:\n  - For all nonzero `a` and `b`, `degree a <= degree (a * b)`\n\nThe behaviour of division by `zero` is unconstrained by these laws,\nmeaning that individual instances are free to choose how to behave in this\ncase. Similarly, there are no restrictions on what the result of\n`degree zero` is; it doesn't make sense to ask for `degree zero` in the\nsame way that it doesn't make sense to divide by `zero`, so again,\nindividual instances may choose how to handle this case.\n\nFor any `EuclideanRing` which is also a `Field`, one valid choice\nfor `degree` is simply `const 1`. In fact, unless there's a specific\nreason not to, `Field` types should normally use this definition of\n`degree`.\n\nThe `EuclideanRing Int` instance is one of the most commonly used\n`EuclideanRing` instances and deserves a little more discussion. In\nparticular, there are a few different sensible law-abiding implementations\nto choose from, with slightly different behaviour in the presence of\nnegative dividends or divisors. The most common definitions are \"truncating\"\ndivision, where the result of `a / b` is rounded towards 0, and \"Knuthian\"\nor \"flooring\" division, where the result of `a / b` is rounded towards\nnegative infinity. A slightly less common, but arguably more useful, option\nis \"Euclidean\" division, which is defined so as to ensure that ``a `mod` b``\nis always nonnegative. With Euclidean division, `a / b` rounds towards\nnegative infinity if the divisor is positive, and towards positive infinity\nif the divisor is negative. Note that all three definitions are identical if\nwe restrict our attention to nonnegative dividends and divisors.\n\nIn versions 1.x, 2.x, and 3.x of the Prelude, the `EuclideanRing Int`\ninstance used truncating division. As of 4.x, the `EuclideanRing Int`\ninstance uses Euclidean division. Additional functions `quot` and `rem` are\nsupplied if truncating division is desired.\n","title":"EuclideanRing","info":{"fundeps":[],"arguments":[["a",null]],"declType":"typeClass","superclasses":[{"constraintAnn":[],"constraintClass":[["Data","CommutativeRing"],"CommutativeRing"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null}]},"sourceSpan":{"start":[63,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/EuclideanRing.purs","end":[66,21]}},{"children":[],"comments":"The *least common multiple* of two values.\n","title":"lcm","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","EuclideanRing"],"EuclideanRing"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]}]},null]}},"sourceSpan":{"start":[94,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/EuclideanRing.purs","end":[94,56]}},{"children":[],"comments":"The *greatest common divisor* of two values.\n","title":"gcd","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","EuclideanRing"],"EuclideanRing"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]}]},null]}},"sourceSpan":{"start":[87,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/EuclideanRing.purs","end":[87,56]}},{"children":[],"comments":null,"title":"(/)","info":{"declType":"alias","alias":[["Data","EuclideanRing"],{"Right":{"Left":{"Ident":"div"}}}],"fixity":{"associativity":"infixl","precedence":7}},"sourceSpan":{"start":[68,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/EuclideanRing.purs","end":[68,18]}}]},{"moduleName":{"package":null,"item":["Data","Field"]},"declarations":[{"children":[{"comments":null,"title":"field","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","EuclideanRing"],"EuclideanRing"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","DivisionRing"],"DivisionRing"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Field"],"Field"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}},"sourceSpan":{"start":[41,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Field.purs","end":[41,63]}}],"comments":"The `Field` class is for types that are (commutative) fields.\n\nMathematically, a field is a ring which is commutative and in which every\nnonzero element has a multiplicative inverse; these conditions correspond\nto the `CommutativeRing` and `DivisionRing` classes in PureScript\nrespectively. However, the `Field` class has `EuclideanRing` and\n`DivisionRing` as superclasses, which seems like a stronger requirement\n(since `CommutativeRing` is a superclass of `EuclideanRing`). In fact, it\nis not stronger, since any type which has law-abiding `CommutativeRing`\nand `DivisionRing` instances permits exactly one law-abiding\n`EuclideanRing` instance. We use a `EuclideanRing` superclass here in\norder to ensure that a `Field` constraint on a function permits you to use\n`div` on that type, since `div` is a member of `EuclideanRing`.\n\nThis class has no laws or members of its own; it exists as a convenience,\nso a single constraint can be used when field-like behaviour is expected.\n\nThis module also defines a single `Field` instance for any type which has\nboth `EuclideanRing` and `DivisionRing` instances. Any other instance\nwould overlap with this instance, so no other `Field` instances should be\ndefined in libraries. Instead, simply define `EuclideanRing` and\n`DivisionRing` instances, and this will permit your type to be used with a\n`Field` constraint.\n","title":"Field","info":{"fundeps":[],"arguments":[["a",null]],"declType":"typeClass","superclasses":[{"constraintAnn":[],"constraintClass":[["Data","EuclideanRing"],"EuclideanRing"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","DivisionRing"],"DivisionRing"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null}]},"sourceSpan":{"start":[39,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Field.purs","end":[39,51]}}]},{"moduleName":{"package":null,"item":["Data","Function"]},"declarations":[{"children":[],"comments":"Flips the order of the arguments to a function of two arguments.\n\n```purescript\nflip const 1 2 = const 2 1 = 2\n```\n","title":"flip","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]}]}]},null]},null]},null]}},"sourceSpan":{"start":[21,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Function.purs","end":[21,51]}},{"children":[],"comments":"Returns its first argument and ignores its second.\n\n```purescript\nconst 1 \"hello\" = 1\n```\n\nIt can also be thought of as creating a function that ignores its argument:\n\n```purescript\nconst 1 = \\_ -> 1\n```\n","title":"const","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},null]},null]}},"sourceSpan":{"start":[35,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Function.purs","end":[35,33]}},{"children":[],"comments":"Applies a function to an argument: the reverse of `(#)`.\n\n```purescript\nlength $ groupBy productCategory $ filter isInStock $ products\n```\n\nis equivalent to:\n\n```purescript\nlength (groupBy productCategory (filter isInStock products))\n```\n\nOr another alternative equivalent, applying chain of composed functions to\na value:\n\n```purescript\nlength <<< groupBy productCategory <<< filter isInStock $ products\n```\n","title":"($)","info":{"declType":"alias","alias":[["Data","Function"],{"Right":{"Left":{"Ident":"apply"}}}],"fixity":{"associativity":"infixr","precedence":0}},"sourceSpan":{"start":[62,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Function.purs","end":[62,20]}},{"children":[],"comments":"Applies an argument to a function: the reverse of `($)`.\n\n```purescript\nproducts # filter isInStock # groupBy productCategory # length\n```\n\nis equivalent to:\n\n```purescript\nlength (groupBy productCategory (filter isInStock products))\n```\n\nOr another alternative equivalent, applying a value to a chain of composed\nfunctions:\n\n```purescript\nproducts # filter isInStock >>> groupBy productCategory >>> length\n```\n","title":"(#)","info":{"declType":"alias","alias":[["Data","Function"],{"Right":{"Left":{"Ident":"applyFlipped"}}}],"fixity":{"associativity":"infixl","precedence":1}},"sourceSpan":{"start":[88,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Function.purs","end":[88,27]}}]},{"moduleName":{"package":null,"item":["Data","Functor"]},"declarations":[{"children":[{"comments":null,"title":"map","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}]},null]},null]}},"sourceSpan":{"start":[26,3],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Functor.purs","end":[26,44]}},{"comments":null,"title":"functorFn","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Functor"],"Functor"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}]}},"sourceSpan":{"start":[40,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Functor.purs","end":[41,16]}},{"comments":null,"title":"functorArray","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Functor"],"Functor"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]}]}},"sourceSpan":{"start":[43,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Functor.purs","end":[44,17]}},{"comments":null,"title":"functorProxy","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Functor"],"Functor"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy"]}]}},"sourceSpan":{"start":[46,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Functor.purs","end":[47,18]}}],"comments":"A `Functor` is a type constructor which supports a mapping operation\n`map`.\n\n`map` can be used to turn functions `a -> b` into functions\n`f a -> f b` whose argument and return types use the type constructor `f`\nto represent some computational context.\n\nInstances must satisfy the following laws:\n\n- Identity: `map identity = identity`\n- Composition: `map (f <<< g) = map f <<< map g`\n","title":"Functor","info":{"fundeps":[],"arguments":[["f",null]],"declType":"typeClass","superclasses":[]},"sourceSpan":{"start":[25,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Functor.purs","end":[26,44]}},{"children":[],"comments":"The `void` function is used to ignore the type wrapped by a\n[`Functor`](#functor), replacing it with `Unit` and keeping only the type\ninformation provided by the type constructor itself.\n\n`void` is often useful when using `do` notation to change the return type\nof a monadic computation:\n\n```purescript\nmain = forE 1 10 \\n -> void do\n  print n\n  print (n * n)\n```\n","title":"void","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Functor"],"Functor"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintKindArgs":[],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}]},null]},null]}},"sourceSpan":{"start":[63,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Functor.purs","end":[63,47]}},{"children":[],"comments":"Apply a value in a computational context to a value in no context.\n\nGeneralizes `flip`.\n\n```purescript\nlongEnough :: String -> Bool\nhasSymbol :: String -> Bool\nhasDigit :: String -> Bool\npassword :: String\n\nvalidate :: String -> Array Bool\nvalidate = flap [longEnough, hasSymbol, hasDigit]\n```\n\n```purescript\nflap (-) 3 4 == 1\nthreeve <$> Just 1 <@> 'a' <*> Just true == Just (threeve 1 'a' true)\n```\n","title":"flap","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Functor"],"Functor"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintKindArgs":[],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}]}]},null]},null]},null]}},"sourceSpan":{"start":[97,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Functor.purs","end":[97,58]}},{"children":[],"comments":null,"title":"(<@>)","info":{"declType":"alias","alias":[["Data","Functor"],{"Right":{"Left":{"Ident":"flap"}}}],"fixity":{"associativity":"infixl","precedence":4}},"sourceSpan":{"start":[100,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Functor.purs","end":[100,21]}},{"children":[],"comments":null,"title":"(<$>)","info":{"declType":"alias","alias":[["Data","Functor"],{"Right":{"Left":{"Ident":"map"}}}],"fixity":{"associativity":"infixl","precedence":4}},"sourceSpan":{"start":[28,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Functor.purs","end":[28,20]}},{"children":[],"comments":null,"title":"(<$)","info":{"declType":"alias","alias":[["Data","Functor"],{"Right":{"Left":{"Ident":"voidRight"}}}],"fixity":{"associativity":"infixl","precedence":4}},"sourceSpan":{"start":[71,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Functor.purs","end":[71,25]}},{"children":[],"comments":null,"title":"(<#>)","info":{"declType":"alias","alias":[["Data","Functor"],{"Right":{"Left":{"Ident":"mapFlipped"}}}],"fixity":{"associativity":"infixl","precedence":1}},"sourceSpan":{"start":[38,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Functor.purs","end":[38,27]}},{"children":[],"comments":null,"title":"($>)","info":{"declType":"alias","alias":[["Data","Functor"],{"Right":{"Left":{"Ident":"voidLeft"}}}],"fixity":{"associativity":"infixl","precedence":4}},"sourceSpan":{"start":[77,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Functor.purs","end":[77,24]}}]},{"moduleName":{"package":null,"item":["Data","HeytingAlgebra"]},"declarations":[{"children":[{"comments":null,"title":"conj","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[42,3],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[42,22]}},{"comments":null,"title":"disj","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[43,3],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[43,22]}},{"comments":null,"title":"not","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}},"sourceSpan":{"start":[44,3],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[44,16]}},{"comments":null,"title":"heytingAlgebraBoolean","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","HeytingAlgebra"],"HeytingAlgebra"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}},"sourceSpan":{"start":[49,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[55,16]}},{"comments":null,"title":"heytingAlgebraUnit","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","HeytingAlgebra"],"HeytingAlgebra"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}},"sourceSpan":{"start":[57,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[63,15]}},{"comments":null,"title":"heytingAlgebraFunction","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","HeytingAlgebra"],"HeytingAlgebra"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"b"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","HeytingAlgebra"],"HeytingAlgebra"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}},"sourceSpan":{"start":[65,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[71,22]}},{"comments":null,"title":"heytingAlgebraProxy","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","HeytingAlgebra"],"HeytingAlgebra"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[73,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[79,13]}},{"comments":null,"title":"heytingAlgebraProxy2","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","HeytingAlgebra"],"HeytingAlgebra"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy2"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[81,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[87,14]}},{"comments":null,"title":"heytingAlgebraProxy3","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","HeytingAlgebra"],"HeytingAlgebra"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy3"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[89,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[95,14]}},{"comments":null,"title":"heytingAlgebraRecord","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Prim","RowList"],"RowToList"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"row"},{"annotation":[],"tag":"TypeVar","contents":"list"}],"constraintKindArgs":[],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","HeytingAlgebra"],"HeytingAlgebraRecord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"list"},{"annotation":[],"tag":"TypeVar","contents":"row"},{"annotation":[],"tag":"TypeVar","contents":"row"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","HeytingAlgebra"],"HeytingAlgebra"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"TypeVar","contents":"row"}]}]}},"sourceSpan":{"start":[97,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[103,41]}}],"comments":"The `HeytingAlgebra` type class represents types that are bounded lattices with\nan implication operator such that the following laws hold:\n\n- Associativity:\n  - `a || (b || c) = (a || b) || c`\n  - `a && (b && c) = (a && b) && c`\n- Commutativity:\n  - `a || b = b || a`\n  - `a && b = b && a`\n- Absorption:\n  - `a || (a && b) = a`\n  - `a && (a || b) = a`\n- Idempotent:\n  - `a || a = a`\n  - `a && a = a`\n- Identity:\n  - `a || ff = a`\n  - `a && tt = a`\n- Implication:\n  - ``a `implies` a = tt``\n  - ``a && (a `implies` b) = a && b``\n  - ``b && (a `implies` b) = b``\n  - ``a `implies` (b && c) = (a `implies` b) && (a `implies` c)``\n- Complemented:\n  - ``not a = a `implies` ff``\n","title":"HeytingAlgebra","info":{"fundeps":[],"arguments":[["a",null]],"declType":"typeClass","superclasses":[]},"sourceSpan":{"start":[38,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[44,16]}},{"children":[],"comments":null,"title":"(||)","info":{"declType":"alias","alias":[["Data","HeytingAlgebra"],{"Right":{"Left":{"Ident":"disj"}}}],"fixity":{"associativity":"infixr","precedence":2}},"sourceSpan":{"start":[47,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[47,20]}},{"children":[],"comments":null,"title":"(&&)","info":{"declType":"alias","alias":[["Data","HeytingAlgebra"],{"Right":{"Left":{"Ident":"conj"}}}],"fixity":{"associativity":"infixr","precedence":3}},"sourceSpan":{"start":[46,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[46,20]}}]},{"moduleName":{"package":null,"item":["Data","Monoid"]},"declarations":[{"children":[{"comments":null,"title":"mempty","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeVar","contents":"m"}},"sourceSpan":{"start":[45,3],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Monoid.purs","end":[45,14]}},{"comments":null,"title":"monoidUnit","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid"],"Monoid"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}},"sourceSpan":{"start":[47,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Monoid.purs","end":[48,16]}},{"comments":null,"title":"monoidOrdering","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid"],"Monoid"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ordering"],"Ordering"]}]}},"sourceSpan":{"start":[50,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Monoid.purs","end":[51,14]}},{"comments":null,"title":"monoidFn","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Monoid"],"Monoid"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"b"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid"],"Monoid"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}},"sourceSpan":{"start":[53,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Monoid.purs","end":[54,20]}},{"comments":null,"title":"monoidString","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid"],"Monoid"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}},"sourceSpan":{"start":[56,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Monoid.purs","end":[57,14]}},{"comments":null,"title":"monoidArray","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid"],"Monoid"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[59,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Monoid.purs","end":[60,14]}},{"comments":null,"title":"monoidRecord","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Prim","RowList"],"RowToList"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"row"},{"annotation":[],"tag":"TypeVar","contents":"list"}],"constraintKindArgs":[],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","Monoid"],"MonoidRecord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"list"},{"annotation":[],"tag":"TypeVar","contents":"row"},{"annotation":[],"tag":"TypeVar","contents":"row"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid"],"Monoid"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"TypeVar","contents":"row"}]}]}},"sourceSpan":{"start":[62,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Monoid.purs","end":[63,46]}}],"comments":"A `Monoid` is a `Semigroup` with a value `mempty`, which is both a\nleft and right unit for the associative operation `<>`:\n\n- Left unit: `(mempty <> x) = x`\n- Right unit: `(x <> mempty) = x`\n\n`Monoid`s are commonly used as the result of fold operations, where\n`<>` is used to combine individual results, and `mempty` gives the result\nof folding an empty collection of elements.\n\n### Newtypes for Monoid\n\nSome types (e.g. `Int`, `Boolean`) can implement multiple law-abiding\ninstances for `Monoid`. Let's use `Int` as an example\n1. `<>` could be `+` and `mempty` could be `0`\n2. `<>` could be `*` and `mempty` could be `1`.\n\nTo clarify these ambiguous situations, one should use the newtypes\ndefined in `Data.Monoid.<NewtypeName>` modules.\n\nIn the above ambiguous situation, we could use `Additive`\nfor the first situation or `Multiplicative` for the second one.\n","title":"Monoid","info":{"fundeps":[],"arguments":[["m",null]],"declType":"typeClass","superclasses":[{"constraintAnn":[],"constraintClass":[["Data","Semigroup"],"Semigroup"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintKindArgs":[],"constraintData":null}]},"sourceSpan":{"start":[44,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Monoid.purs","end":[45,14]}}]},{"moduleName":{"package":null,"item":["Data","NaturalTransformation"]},"declarations":[{"children":[],"comments":null,"title":"type (~>)","info":{"declType":"alias","alias":[["Data","NaturalTransformation"],{"Left":"NaturalTransformation"}],"fixity":{"associativity":"infixr","precedence":4}},"sourceSpan":{"start":[20,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/NaturalTransformation.purs","end":[20,42]}}]},{"moduleName":{"package":null,"item":["Data","Ord"]},"declarations":[{"children":[{"comments":null,"title":"compare","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ordering"],"Ordering"]}]}]}},"sourceSpan":{"start":[38,3],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ord.purs","end":[38,32]}},{"comments":null,"title":"ordBoolean","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord"],"Ord"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}},"sourceSpan":{"start":[40,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ord.purs","end":[41,36]}},{"comments":null,"title":"ordInt","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord"],"Ord"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}},"sourceSpan":{"start":[43,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ord.purs","end":[44,32]}},{"comments":null,"title":"ordNumber","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord"],"Ord"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]}},"sourceSpan":{"start":[46,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ord.purs","end":[47,35]}},{"comments":null,"title":"ordString","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord"],"Ord"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}},"sourceSpan":{"start":[49,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ord.purs","end":[50,35]}},{"comments":null,"title":"ordChar","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord"],"Ord"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Char"]}]}},"sourceSpan":{"start":[52,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ord.purs","end":[53,33]}},{"comments":null,"title":"ordUnit","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord"],"Ord"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}},"sourceSpan":{"start":[55,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ord.purs","end":[56,19]}},{"comments":null,"title":"ordVoid","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord"],"Ord"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Void"],"Void"]}]}},"sourceSpan":{"start":[58,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ord.purs","end":[59,19]}},{"comments":null,"title":"ordProxy","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord"],"Ord"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[61,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ord.purs","end":[62,19]}},{"comments":null,"title":"ordProxy2","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord"],"Ord"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy2"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[64,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ord.purs","end":[65,19]}},{"comments":null,"title":"ordProxy3","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord"],"Ord"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy3"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[67,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ord.purs","end":[68,19]}},{"comments":null,"title":"ordArray","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord"],"Ord"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[70,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ord.purs","end":[77,17]}},{"comments":null,"title":"ordOrdering","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord"],"Ord"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ordering"],"Ordering"]}]}},"sourceSpan":{"start":[121,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ord.purs","end":[128,21]}},{"comments":null,"title":"ordRecord","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Prim","RowList"],"RowToList"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"row"},{"annotation":[],"tag":"TypeVar","contents":"list"}],"constraintKindArgs":[],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","Ord"],"OrdRecord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"list"},{"annotation":[],"tag":"TypeVar","contents":"row"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord"],"Ord"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"TypeVar","contents":"row"}]}]}},"sourceSpan":{"start":[249,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ord.purs","end":[254,48]}}],"comments":"The `Ord` type class represents types which support comparisons with a\n_total order_.\n\n`Ord` instances should satisfy the laws of total orderings:\n\n- Reflexivity: `a <= a`\n- Antisymmetry: if `a <= b` and `b <= a` then `a = b`\n- Transitivity: if `a <= b` and `b <= c` then `a <= c`\n","title":"Ord","info":{"fundeps":[],"arguments":[["a",null]],"declType":"typeClass","superclasses":[{"constraintAnn":[],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null}]},"sourceSpan":{"start":[37,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ord.purs","end":[38,32]}},{"children":[],"comments":"Take the minimum of two values. If they are considered equal, the first\nargument is chosen.\n","title":"min","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]},null]}},"sourceSpan":{"start":[165,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ord.purs","end":[165,38]}},{"children":[],"comments":"Take the maximum of two values. If they are considered equal, the first\nargument is chosen.\n","title":"max","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]},null]}},"sourceSpan":{"start":[174,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ord.purs","end":[174,38]}},{"children":[],"comments":"Compares two values by mapping them to a type with an `Ord` instance.\n","title":"comparing","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"b"}],"constraintKindArgs":[],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}}]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ordering"],"Ordering"]}]}]}}]}]},null]},null]}},"sourceSpan":{"start":[160,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ord.purs","end":[160,67]}},{"children":[],"comments":"Clamp a value between a minimum and a maximum. For example:\n\n``` purescript\nlet f = clamp 0 10\nf (-5) == 0\nf 5    == 5\nf 15   == 10\n```\n","title":"clamp","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]}]},null]}},"sourceSpan":{"start":[189,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ord.purs","end":[189,45]}},{"children":[],"comments":"Test whether a value is between a minimum and a maximum (inclusive).\nFor example:\n\n``` purescript\nlet f = between 0 10\nf 0    == true\nf (-5) == false\nf 5    == true\nf 10   == true\nf 15   == false\n```\n","title":"between","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]}]}]},null]}},"sourceSpan":{"start":[203,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ord.purs","end":[203,53]}},{"children":[],"comments":null,"title":"(>=)","info":{"declType":"alias","alias":[["Data","Ord"],{"Right":{"Left":{"Ident":"greaterThanOrEq"}}}],"fixity":{"associativity":"infixl","precedence":4}},"sourceSpan":{"start":[157,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ord.purs","end":[157,31]}},{"children":[],"comments":null,"title":"(>)","info":{"declType":"alias","alias":[["Data","Ord"],{"Right":{"Left":{"Ident":"greaterThan"}}}],"fixity":{"associativity":"infixl","precedence":4}},"sourceSpan":{"start":[156,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ord.purs","end":[156,26]}},{"children":[],"comments":null,"title":"(<=)","info":{"declType":"alias","alias":[["Data","Ord"],{"Right":{"Left":{"Ident":"lessThanOrEq"}}}],"fixity":{"associativity":"infixl","precedence":4}},"sourceSpan":{"start":[155,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ord.purs","end":[155,28]}},{"children":[],"comments":null,"title":"(<)","info":{"declType":"alias","alias":[["Data","Ord"],{"Right":{"Left":{"Ident":"lessThan"}}}],"fixity":{"associativity":"infixl","precedence":4}},"sourceSpan":{"start":[154,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ord.purs","end":[154,23]}}]},{"moduleName":{"package":null,"item":["Data","Ordering"]},"declarations":[{"children":[{"comments":null,"title":"LT","info":{"arguments":[],"declType":"dataConstructor"},"sourceSpan":null},{"comments":null,"title":"GT","info":{"arguments":[],"declType":"dataConstructor"},"sourceSpan":null},{"comments":null,"title":"EQ","info":{"arguments":[],"declType":"dataConstructor"},"sourceSpan":null},{"comments":null,"title":"eqOrdering","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Eq"],"Eq"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ordering"],"Ordering"]}]}},"sourceSpan":{"start":[15,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ordering.purs","end":[19,19]}},{"comments":null,"title":"semigroupOrdering","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup"],"Semigroup"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ordering"],"Ordering"]}]}},"sourceSpan":{"start":[21,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ordering.purs","end":[24,18]}},{"comments":null,"title":"showOrdering","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Show"],"Show"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ordering"],"Ordering"]}]}},"sourceSpan":{"start":[26,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ordering.purs","end":[29,17]}}],"comments":"The `Ordering` data type represents the three possible outcomes of\ncomparing two values:\n\n`LT` - The first value is _less than_ the second.\n`GT` - The first value is _greater than_ the second.\n`EQ` - The first value is _equal to_ the second.\n","title":"Ordering","info":{"declType":"data","dataDeclType":"data","typeArguments":[]},"sourceSpan":{"start":[13,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ordering.purs","end":[13,29]}}]},{"moduleName":{"package":null,"item":["Data","Ring"]},"declarations":[{"children":[{"comments":null,"title":"sub","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[24,3],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ring.purs","end":[24,21]}},{"comments":null,"title":"ringInt","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ring"],"Ring"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}},"sourceSpan":{"start":[28,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ring.purs","end":[29,15]}},{"comments":null,"title":"ringNumber","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ring"],"Ring"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]}},"sourceSpan":{"start":[31,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ring.purs","end":[32,15]}},{"comments":null,"title":"ringUnit","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ring"],"Ring"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}},"sourceSpan":{"start":[34,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ring.purs","end":[35,17]}},{"comments":null,"title":"ringFn","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Ring"],"Ring"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"b"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ring"],"Ring"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}},"sourceSpan":{"start":[37,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ring.purs","end":[38,24]}},{"comments":null,"title":"ringProxy","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ring"],"Ring"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[40,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ring.purs","end":[41,18]}},{"comments":null,"title":"ringProxy2","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ring"],"Ring"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy2"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[43,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ring.purs","end":[44,19]}},{"comments":null,"title":"ringProxy3","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ring"],"Ring"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy3"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[46,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ring.purs","end":[47,19]}},{"comments":null,"title":"ringRecord","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Prim","RowList"],"RowToList"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"row"},{"annotation":[],"tag":"TypeVar","contents":"list"}],"constraintKindArgs":[],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","Ring"],"RingRecord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"list"},{"annotation":[],"tag":"TypeVar","contents":"row"},{"annotation":[],"tag":"TypeVar","contents":"row"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ring"],"Ring"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"TypeVar","contents":"row"}]}]}},"sourceSpan":{"start":[49,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ring.purs","end":[50,40]}}],"comments":"The `Ring` class is for types that support addition, multiplication,\nand subtraction operations.\n\nInstances must satisfy the following laws in addition to the `Semiring`\nlaws:\n\n- Additive inverse: `a - a = zero`\n- Compatibility of `sub` and `negate`: `a - b = a + (zero - b)`\n","title":"Ring","info":{"fundeps":[],"arguments":[["a",null]],"declType":"typeClass","superclasses":[{"constraintAnn":[],"constraintClass":[["Data","Semiring"],"Semiring"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null}]},"sourceSpan":{"start":[23,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ring.purs","end":[24,21]}},{"children":[],"comments":"`negate x` can be used as a shorthand for `zero - x`.\n","title":"negate","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Ring"],"Ring"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},null]}},"sourceSpan":{"start":[53,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ring.purs","end":[53,37]}},{"children":[],"comments":null,"title":"(-)","info":{"declType":"alias","alias":[["Data","Ring"],{"Right":{"Left":{"Ident":"sub"}}}],"fixity":{"associativity":"infixl","precedence":6}},"sourceSpan":{"start":[26,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Ring.purs","end":[26,18]}}]},{"moduleName":{"package":null,"item":["Data","Semigroup"]},"declarations":[{"children":[{"comments":null,"title":"append","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[32,3],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semigroup.purs","end":[32,24]}},{"comments":null,"title":"semigroupString","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup"],"Semigroup"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}},"sourceSpan":{"start":[36,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semigroup.purs","end":[37,24]}},{"comments":null,"title":"semigroupUnit","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup"],"Semigroup"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}},"sourceSpan":{"start":[39,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semigroup.purs","end":[40,20]}},{"comments":null,"title":"semigroupVoid","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup"],"Semigroup"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Void"],"Void"]}]}},"sourceSpan":{"start":[42,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semigroup.purs","end":[43,20]}},{"comments":null,"title":"semigroupFn","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Semigroup"],"Semigroup"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"s'"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup"],"Semigroup"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"s"}]},{"annotation":[],"tag":"TypeVar","contents":"s'"}]}]}},"sourceSpan":{"start":[45,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semigroup.purs","end":[46,28]}},{"comments":null,"title":"semigroupArray","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup"],"Semigroup"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[48,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semigroup.purs","end":[49,23]}},{"comments":null,"title":"semigroupProxy","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup"],"Semigroup"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[51,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semigroup.purs","end":[52,21]}},{"comments":null,"title":"semigroupProxy2","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup"],"Semigroup"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy2"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[54,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semigroup.purs","end":[55,22]}},{"comments":null,"title":"semigroupProxy3","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup"],"Semigroup"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy3"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[57,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semigroup.purs","end":[58,22]}},{"comments":null,"title":"semigroupRecord","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Prim","RowList"],"RowToList"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"row"},{"annotation":[],"tag":"TypeVar","contents":"list"}],"constraintKindArgs":[],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","Semigroup"],"SemigroupRecord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"list"},{"annotation":[],"tag":"TypeVar","contents":"row"},{"annotation":[],"tag":"TypeVar","contents":"row"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup"],"Semigroup"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"TypeVar","contents":"row"}]}]}},"sourceSpan":{"start":[60,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semigroup.purs","end":[61,46]}}],"comments":"The `Semigroup` type class identifies an associative operation on a type.\n\nInstances are required to satisfy the following law:\n\n- Associativity: `(x <> y) <> z = x <> (y <> z)`\n\nOne example of a `Semigroup` is `String`, with `(<>)` defined as string\nconcatenation. Another example is `List a`, with `(<>)` defined as\nlist concatenation.\n\n### Newtypes for Semigroup\n\nThere are two other ways to implement an instance for this type class\nregardless of which type is used. These instances can be used by\nwrapping the values in one of the two newtypes below:\n1. `First` - Use the first argument every time: `append first _ = first`.\n2. `Last` - Use the last argument every time: `append _ last = last`.\n","title":"Semigroup","info":{"fundeps":[],"arguments":[["a",null]],"declType":"typeClass","superclasses":[]},"sourceSpan":{"start":[31,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semigroup.purs","end":[32,24]}},{"children":[],"comments":null,"title":"(<>)","info":{"declType":"alias","alias":[["Data","Semigroup"],{"Right":{"Left":{"Ident":"append"}}}],"fixity":{"associativity":"infixr","precedence":5}},"sourceSpan":{"start":[34,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semigroup.purs","end":[34,22]}}]},{"moduleName":{"package":null,"item":["Data","Semiring"]},"declarations":[{"children":[{"comments":null,"title":"add","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[35,3],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semiring.purs","end":[35,22]}},{"comments":null,"title":"zero","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeVar","contents":"a"}},"sourceSpan":{"start":[36,3],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semiring.purs","end":[36,12]}},{"comments":null,"title":"mul","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[37,3],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semiring.purs","end":[37,22]}},{"comments":null,"title":"one","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeVar","contents":"a"}},"sourceSpan":{"start":[38,3],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semiring.purs","end":[38,12]}},{"comments":null,"title":"semiringInt","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semiring"],"Semiring"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}},"sourceSpan":{"start":[43,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semiring.purs","end":[47,10]}},{"comments":null,"title":"semiringNumber","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semiring"],"Semiring"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]}},"sourceSpan":{"start":[49,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semiring.purs","end":[53,12]}},{"comments":null,"title":"semiringFn","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Semiring"],"Semiring"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"b"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semiring"],"Semiring"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}},"sourceSpan":{"start":[55,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semiring.purs","end":[59,18]}},{"comments":null,"title":"semiringUnit","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semiring"],"Semiring"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}},"sourceSpan":{"start":[61,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semiring.purs","end":[65,13]}},{"comments":null,"title":"semiringProxy","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semiring"],"Semiring"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[67,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semiring.purs","end":[71,15]}},{"comments":null,"title":"semiringProxy2","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semiring"],"Semiring"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy2"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[73,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semiring.purs","end":[77,16]}},{"comments":null,"title":"semiringProxy3","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semiring"],"Semiring"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy3"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[79,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semiring.purs","end":[83,16]}},{"comments":null,"title":"semiringRecord","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Prim","RowList"],"RowToList"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"row"},{"annotation":[],"tag":"TypeVar","contents":"list"}],"constraintKindArgs":[],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","Semiring"],"SemiringRecord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"list"},{"annotation":[],"tag":"TypeVar","contents":"row"},{"annotation":[],"tag":"TypeVar","contents":"row"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semiring"],"Semiring"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"TypeVar","contents":"row"}]}]}},"sourceSpan":{"start":[85,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semiring.purs","end":[89,63]}}],"comments":"The `Semiring` class is for types that support an addition and\nmultiplication operation.\n\nInstances must satisfy the following laws:\n\n- Commutative monoid under addition:\n  - Associativity: `(a + b) + c = a + (b + c)`\n  - Identity: `zero + a = a + zero = a`\n  - Commutative: `a + b = b + a`\n- Monoid under multiplication:\n  - Associativity: `(a * b) * c = a * (b * c)`\n  - Identity: `one * a = a * one = a`\n- Multiplication distributes over addition:\n  - Left distributivity: `a * (b + c) = (a * b) + (a * c)`\n  - Right distributivity: `(a + b) * c = (a * c) + (b * c)`\n- Annihilation: `zero * a = a * zero = zero`\n\n**Note:** The `Number` and `Int` types are not fully law abiding\nmembers of this class hierarchy due to the potential for arithmetic\noverflows, and in the case of `Number`, the presence of `NaN` and\n`Infinity` values. The behaviour is unspecified in these cases.\n","title":"Semiring","info":{"fundeps":[],"arguments":[["a",null]],"declType":"typeClass","superclasses":[]},"sourceSpan":{"start":[34,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semiring.purs","end":[38,12]}},{"children":[],"comments":null,"title":"(+)","info":{"declType":"alias","alias":[["Data","Semiring"],{"Right":{"Left":{"Ident":"add"}}}],"fixity":{"associativity":"infixl","precedence":6}},"sourceSpan":{"start":[40,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semiring.purs","end":[40,18]}},{"children":[],"comments":null,"title":"(*)","info":{"declType":"alias","alias":[["Data","Semiring"],{"Right":{"Left":{"Ident":"mul"}}}],"fixity":{"associativity":"infixl","precedence":7}},"sourceSpan":{"start":[41,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Semiring.purs","end":[41,18]}}]},{"moduleName":{"package":null,"item":["Data","Show"]},"declarations":[{"children":[{"comments":null,"title":"show","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}},"sourceSpan":{"start":[18,3],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Show.purs","end":[18,22]}},{"comments":null,"title":"showBoolean","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Show"],"Show"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}},"sourceSpan":{"start":[20,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Show.purs","end":[22,23]}},{"comments":null,"title":"showInt","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Show"],"Show"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}},"sourceSpan":{"start":[24,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Show.purs","end":[25,21]}},{"comments":null,"title":"showNumber","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Show"],"Show"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]}},"sourceSpan":{"start":[27,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Show.purs","end":[28,24]}},{"comments":null,"title":"showChar","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Show"],"Show"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Char"]}]}},"sourceSpan":{"start":[30,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Show.purs","end":[31,22]}},{"comments":null,"title":"showString","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Show"],"Show"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}},"sourceSpan":{"start":[33,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Show.purs","end":[34,24]}},{"comments":null,"title":"showArray","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Show"],"Show"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Show"],"Show"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[36,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Show.purs","end":[37,28]}},{"comments":null,"title":"showProxy","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Show"],"Show"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[39,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Show.purs","end":[40,19]}},{"comments":null,"title":"showProxy2","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Show"],"Show"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy2"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[42,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Show.purs","end":[43,20]}},{"comments":null,"title":"showProxy3","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Show"],"Show"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy3"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[45,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Show.purs","end":[46,20]}},{"comments":null,"title":"showRecord","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Prim","RowList"],"RowToList"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"rs"},{"annotation":[],"tag":"TypeVar","contents":"ls"}],"constraintKindArgs":[],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","Show"],"ShowRecordFields"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"ls"},{"annotation":[],"tag":"TypeVar","contents":"rs"}],"constraintKindArgs":[],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Show"],"Show"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"TypeVar","contents":"rs"}]}]}},"sourceSpan":{"start":[48,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Show.purs","end":[51,52]}}],"comments":"The `Show` type class represents those types which can be converted into\na human-readable `String` representation.\n\nWhile not required, it is recommended that for any expression `x`, the\nstring `show x` be executable PureScript code which evaluates to the same\nvalue as the expression `x`.\n","title":"Show","info":{"fundeps":[],"arguments":[["a",null]],"declType":"typeClass","superclasses":[]},"sourceSpan":{"start":[17,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Show.purs","end":[18,22]}}]},{"moduleName":{"package":null,"item":["Data","Unit"]},"declarations":[{"children":[{"comments":null,"title":"showUnit","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Show"],"Show"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}},"sourceSpan":{"start":[18,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Unit.purs","end":[19,18]}}],"comments":"The `Unit` type has a single inhabitant, called `unit`. It represents\nvalues with no computational content.\n\n`Unit` is often used, wrapped in a monadic type constructor, as the\nreturn type of a computation where only the _effects_ are important.\n\nWhen returning a value of type `Unit` from an FFI function, it is\nrecommended to use `undefined`, or not return a value at all.\n","title":"Unit","info":{"kind":{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Type"]},"declType":"externData"},"sourceSpan":{"start":[13,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Unit.purs","end":[13,33]}},{"children":[],"comments":"`unit` is the sole inhabitant of the `Unit` type.\n","title":"unit","info":{"declType":"value","type":{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}},"sourceSpan":{"start":[16,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Unit.purs","end":[16,28]}}]},{"moduleName":{"package":null,"item":["Data","Void"]},"declarations":[{"children":[{"comments":null,"title":"showVoid","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Show"],"Show"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Void"],"Void"]}]}},"sourceSpan":{"start":[24,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Void.purs","end":[25,16]}}],"comments":"An uninhabited data type. In other words, one can never create\na runtime value of type `Void` becaue no such value exists.\n\n`Void` is useful to eliminate the possibility of a value being created.\nFor example, a value of type `Either Void Boolean` can never have\na Left value created in PureScript.\n\nThis should not be confused with the keyword `void` that commonly appears in\nC-family languages, such as Java:\n```\npublic class Foo {\n  void doSomething() { System.out.println(\"hello world!\"); }\n}\n```\n\nIn PureScript, one often uses `Unit` to achieve similar effects as\nthe `void` of C-family languages above.\n","title":"Void","info":{"declType":"data","dataDeclType":"newtype","typeArguments":[]},"sourceSpan":{"start":[22,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Void.purs","end":[22,25]}},{"children":[],"comments":"Eliminator for the `Void` type.\nUseful for stating that some code branch is impossible because you've\n\"acquired\" a value of type `Void` (which you can't).\n\n```purescript\nrightOnly :: forall t . Either Void t -> t\nrightOnly (Left v) = absurd v\nrightOnly (Right t) = t\n```\n","title":"absurd","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Void"],"Void"]}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},null]}},"sourceSpan":{"start":[36,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Data/Void.purs","end":[36,30]}}]}],"name":"Prelude","comments":null,"declarations":[]},{"reExports":[],"name":"Record.Unsafe","comments":"The functions in this module are highly unsafe as they treat records like\nstringly-keyed maps and can coerce the row of labels that a record has.\n\nThese function are intended for situations where there is some other way of\nproving things about the structure of the record - for example, when using\n`RowToList`. **They should never be used for general record manipulation.**\n","declarations":[{"children":[],"comments":"Checks if a record has a key, using a string for the key.\n","title":"unsafeHas","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["r1",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"TypeVar","contents":"r1"}]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]},null]}},"sourceSpan":{"start":[10,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Record/Unsafe.purs","end":[10,70]}},{"children":[],"comments":"Unsafely gets a value from a record, using a string for the key.\n\nIf the key does not exist this will cause a runtime error elsewhere.\n","title":"unsafeGet","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["r",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},null]},null]}},"sourceSpan":{"start":[15,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Record/Unsafe.purs","end":[15,64]}},{"children":[],"comments":"Unsafely sets a value on a record, using a string for the key.\n\nThe output record's row is unspecified so can be coerced to any row. If the\noutput type is incorrect it will cause a runtime error elsewhere.\n","title":"unsafeSet","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["r1",{"annotation":[],"tag":"ForAll","contents":["r2",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"TypeVar","contents":"r1"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"TypeVar","contents":"r2"}]}]}]}]},null]},null]},null]}},"sourceSpan":{"start":[21,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Record/Unsafe.purs","end":[21,82]}},{"children":[],"comments":"Unsafely removes a value on a record, using a string for the key.\n\nThe output record's row is unspecified so can be coerced to any row. If the\noutput type is incorrect it will cause a runtime error elsewhere.\n","title":"unsafeDelete","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["r1",{"annotation":[],"tag":"ForAll","contents":["r2",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"TypeVar","contents":"r1"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"TypeVar","contents":"r2"}]}]}]},null]},null]}},"sourceSpan":{"start":[27,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Record/Unsafe.purs","end":[27,78]}}]},{"reExports":[],"name":"Type.Data.Row","comments":null,"declarations":[{"children":[{"comments":null,"title":"RProxy","info":{"arguments":[],"declType":"dataConstructor"},"sourceSpan":null}],"comments":null,"title":"RProxy","info":{"declType":"data","dataDeclType":"data","typeArguments":[["row",null]]},"sourceSpan":{"start":[22,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Type/Data/Row.purs","end":[22,25]}}]},{"reExports":[],"name":"Type.Data.RowList","comments":null,"declarations":[{"children":[{"comments":null,"title":"RLProxy","info":{"arguments":[],"declType":"dataConstructor"},"sourceSpan":null}],"comments":null,"title":"RLProxy","info":{"declType":"data","dataDeclType":"data","typeArguments":[["rowlist",null]]},"sourceSpan":{"start":[8,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Type/Data/RowList.purs","end":[8,31]}}]},{"reExports":[],"name":"Type.Proxy","comments":"The `Proxy` type and values are for situations where type information is\nrequired for an input to determine the type of an output, but where it is\nnot possible or convenient to provide a _value_ for the input.\n\nA hypothetical example: if you have a class that is used to handle the\nresult of an AJAX request, you may want to use this information to set the\nexpected content type of the request, so you might have a class something\nlike this:\n\n``` purescript\nclass AjaxResponse a where\n  responseType :: a -> ResponseType\n  fromResponse :: Foreign -> a\n```\n\nThe problem here is `responseType` requires a value of type `a`, but we\nwon't have a value of that type until the request has been completed. The\nsolution is to use a `Proxy` type instead:\n\n``` purescript\nclass AjaxResponse a where\n  responseType :: Proxy a -> ResponseType\n  fromResponse :: Foreign -> a\n```\n\nWe can now call `responseType (Proxy :: Proxy SomeContentType)` to produce\na `ResponseType` for `SomeContentType` without having to construct some\nempty version of `SomeContentType` first. In situations like this where\nthe `Proxy` type can be statically determined, it is recommended to pull\nout the definition to the top level and make a declaration like:\n\n``` purescript\n_SomeContentType :: Proxy SomeContentType\n_SomeContentType = Proxy\n```\n\nThat way the proxy value can be used as `responseType _SomeContentType`\nfor improved readability. However, this is not always possible, sometimes\nthe type required will be determined by a type variable. As PureScript has\nscoped type variables, we can do things like this:\n\n``` purescript\nmakeRequest :: URL -> ResponseType -> Aff _ Foreign\nmakeRequest = ...\n\nfetchData :: forall a. (AjaxResponse a) => URL -> Aff _ a\nfetchData url = fromResponse <$> makeRequest url (responseType (Proxy :: Proxy a))\n```\n","declarations":[{"children":[{"comments":null,"title":"Proxy","info":{"arguments":[],"declType":"dataConstructor"},"sourceSpan":null}],"comments":null,"title":"Proxy","info":{"declType":"data","dataDeclType":"data","typeArguments":[["a",null]]},"sourceSpan":{"start":[53,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Type/Proxy.purs","end":[53,21]}},{"children":[{"comments":null,"title":"Proxy2","info":{"arguments":[],"declType":"dataConstructor"},"sourceSpan":null}],"comments":null,"title":"Proxy2","info":{"declType":"data","dataDeclType":"data","typeArguments":[["f",null]]},"sourceSpan":{"start":[58,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Type/Proxy.purs","end":[58,23]}},{"children":[{"comments":null,"title":"Proxy3","info":{"arguments":[],"declType":"dataConstructor"},"sourceSpan":null}],"comments":"Value proxy for kind `Type -> Type -> Type` types.\n**Deprecated as of v0.14.0 PureScript release**: use `Proxy` instead.\n","title":"Proxy3","info":{"declType":"data","dataDeclType":"data","typeArguments":[["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Type"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Type"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Type"]}]}]}]]},"sourceSpan":{"start":[62,1],"name":"/Users/trh/Desktop/release/purescript-prelude/src/Type/Proxy.purs","end":[62,49]}}]}],"resolvedDependencies":{},"version":"5.0.1","github":["purescript","purescript-prelude"],"versionTag":"v5.0.1","moduleMap":{},"compilerVersion":"0.14.0"}
diff --git a/tests/purs/bundle/PSasConstructor.purs b/tests/purs/bundle/PSasConstructor.purs
deleted file mode 100644
--- a/tests/purs/bundle/PSasConstructor.purs
+++ /dev/null
@@ -1,11 +0,0 @@
-module Main where
-
-import Prelude
-import Effect (Effect)
-import Effect.Console (log)
-
-data P = PS 
-
-main :: Effect Unit
-main = do
-  log "Done"
diff --git a/tests/purs/docs/bower_components/purescript-newtype/src/Data/Newtype.purs b/tests/purs/docs/bower_components/purescript-newtype/src/Data/Newtype.purs
--- a/tests/purs/docs/bower_components/purescript-newtype/src/Data/Newtype.purs
+++ b/tests/purs/docs/bower_components/purescript-newtype/src/Data/Newtype.purs
@@ -1,5 +1,6 @@
 module Data.Newtype where
 
-class Newtype t a | t -> a where
-  wrap :: a -> t
-  unwrap :: t -> a
+import Prim.Coerce (class Coercible)
+
+class Newtype :: Type -> Type -> Constraint
+class Coercible t a <= Newtype t a | t -> a
diff --git a/tests/purs/docs/output/Ado/docs.json b/tests/purs/docs/output/Ado/docs.json
--- a/tests/purs/docs/output/Ado/docs.json
+++ b/tests/purs/docs/output/Ado/docs.json
@@ -1,1 +1,1 @@
-{"reExports":[],"name":"Ado","comments":null,"declarations":[{"children":[],"comments":null,"title":"test","info":{"declType":"value","type":{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}},"sourceSpan":{"start":[4,1],"name":"src/Ado.purs","end":[9,16]}}]}
+{"comments":null,"declarations":[{"children":[],"comments":null,"info":{"declType":"value","type":{"annotation":[],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}},"kind":null,"sourceSpan":{"end":[9,16],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/Ado.purs","start":[4,1]},"title":"test"}],"name":"Ado","reExports":[]}
diff --git a/tests/purs/docs/output/Ado/externs.json b/tests/purs/docs/output/Ado/externs.json
deleted file mode 100644
--- a/tests/purs/docs/output/Ado/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Ado"],"efExports":[{"ValueRef":[{"start":[2,1],"name":"src/Ado.purs","end":[9,16]},{"Ident":"test"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDValue":{"edValueName":{"Ident":"test"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}}}],"efSourceSpan":{"start":[2,1],"name":"src/Ado.purs","end":[9,16]}}
diff --git a/tests/purs/docs/output/ChildDeclOrder/docs.json b/tests/purs/docs/output/ChildDeclOrder/docs.json
--- a/tests/purs/docs/output/ChildDeclOrder/docs.json
+++ b/tests/purs/docs/output/ChildDeclOrder/docs.json
@@ -1,1 +1,1 @@
-{"reExports":[],"name":"ChildDeclOrder","comments":null,"declarations":[{"children":[{"comments":null,"title":"First","info":{"arguments":[],"declType":"dataConstructor"},"sourceSpan":null},{"comments":null,"title":"Second","info":{"arguments":[],"declType":"dataConstructor"},"sourceSpan":null},{"comments":null,"title":"showTwo","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["ChildDeclOrder"],"Show"]},{"annotation":[],"tag":"TypeConstructor","contents":[["ChildDeclOrder"],"Two"]}]}},"sourceSpan":{"start":[18,1],"name":"src/ChildDeclOrder.purs","end":[19,15]}},{"comments":null,"title":"fooTwo","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["ChildDeclOrder"],"Foo"]},{"annotation":[],"tag":"TypeConstructor","contents":[["ChildDeclOrder"],"Two"]}]}},"sourceSpan":{"start":[21,1],"name":"src/ChildDeclOrder.purs","end":[23,16]}}],"comments":null,"title":"Two","info":{"declType":"data","dataDeclType":"data","typeArguments":[]},"sourceSpan":{"start":[7,1],"name":"src/ChildDeclOrder.purs","end":[9,11]}},{"children":[{"comments":null,"title":"show","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}},"sourceSpan":{"start":[12,3],"name":"src/ChildDeclOrder.purs","end":[12,22]}},{"comments":null,"title":"showTwo","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["ChildDeclOrder"],"Show"]},{"annotation":[],"tag":"TypeConstructor","contents":[["ChildDeclOrder"],"Two"]}]}},"sourceSpan":{"start":[18,1],"name":"src/ChildDeclOrder.purs","end":[19,15]}}],"comments":null,"title":"Show","info":{"fundeps":[],"arguments":[["a",null]],"declType":"typeClass","superclasses":[]},"sourceSpan":{"start":[11,1],"name":"src/ChildDeclOrder.purs","end":[12,22]}},{"children":[{"comments":null,"title":"foo1","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeVar","contents":"a"}},"sourceSpan":{"start":[15,3],"name":"src/ChildDeclOrder.purs","end":[15,12]}},{"comments":null,"title":"foo2","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeVar","contents":"a"}},"sourceSpan":{"start":[16,3],"name":"src/ChildDeclOrder.purs","end":[16,12]}},{"comments":null,"title":"fooTwo","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["ChildDeclOrder"],"Foo"]},{"annotation":[],"tag":"TypeConstructor","contents":[["ChildDeclOrder"],"Two"]}]}},"sourceSpan":{"start":[21,1],"name":"src/ChildDeclOrder.purs","end":[23,16]}},{"comments":null,"title":"fooInt","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["ChildDeclOrder"],"Foo"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}},"sourceSpan":{"start":[25,1],"name":"src/ChildDeclOrder.purs","end":[27,11]}}],"comments":null,"title":"Foo","info":{"fundeps":[],"arguments":[["a",null]],"declType":"typeClass","superclasses":[]},"sourceSpan":{"start":[14,1],"name":"src/ChildDeclOrder.purs","end":[16,12]}}]}
+{"comments":null,"declarations":[{"children":[{"comments":null,"info":{"arguments":[],"declType":"dataConstructor"},"sourceSpan":{"end":[8,10],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/ChildDeclOrder.purs","start":[8,3]},"title":"First"},{"comments":null,"info":{"arguments":[],"declType":"dataConstructor"},"sourceSpan":{"end":[9,11],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/ChildDeclOrder.purs","start":[9,3]},"title":"Second"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["ChildDeclOrder"],"Show"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["ChildDeclOrder"],"Two"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[19,15],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/ChildDeclOrder.purs","start":[18,1]},"title":"showTwo"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["ChildDeclOrder"],"Foo"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["ChildDeclOrder"],"Two"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[23,16],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/ChildDeclOrder.purs","start":[21,1]},"title":"fooTwo"}],"comments":null,"info":{"dataDeclType":"data","declType":"data","roles":[],"typeArguments":[]},"kind":null,"sourceSpan":{"end":[9,11],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/ChildDeclOrder.purs","start":[7,1]},"title":"Two"},{"children":[{"comments":null,"info":{"declType":"typeClassMember","type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim"],"String"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[12,22],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/ChildDeclOrder.purs","start":[12,3]},"title":"show"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["ChildDeclOrder"],"Show"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["ChildDeclOrder"],"Two"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[19,15],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/ChildDeclOrder.purs","start":[18,1]},"title":"showTwo"}],"comments":null,"info":{"arguments":[["a",null]],"declType":"typeClass","fundeps":[],"superclasses":[]},"kind":null,"sourceSpan":{"end":[12,22],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/ChildDeclOrder.purs","start":[11,1]},"title":"Show"},{"children":[{"comments":null,"info":{"declType":"typeClassMember","type":{"annotation":[],"contents":"a","tag":"TypeVar"}},"sourceSpan":{"end":[15,12],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/ChildDeclOrder.purs","start":[15,3]},"title":"foo1"},{"comments":null,"info":{"declType":"typeClassMember","type":{"annotation":[],"contents":"a","tag":"TypeVar"}},"sourceSpan":{"end":[16,12],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/ChildDeclOrder.purs","start":[16,3]},"title":"foo2"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["ChildDeclOrder"],"Foo"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["ChildDeclOrder"],"Two"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[23,16],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/ChildDeclOrder.purs","start":[21,1]},"title":"fooTwo"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["ChildDeclOrder"],"Foo"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[27,11],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/ChildDeclOrder.purs","start":[25,1]},"title":"fooInt"}],"comments":null,"info":{"arguments":[["a",null]],"declType":"typeClass","fundeps":[],"superclasses":[]},"kind":null,"sourceSpan":{"end":[16,12],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/ChildDeclOrder.purs","start":[14,1]},"title":"Foo"}],"name":"ChildDeclOrder","reExports":[]}
diff --git a/tests/purs/docs/output/ChildDeclOrder/externs.json b/tests/purs/docs/output/ChildDeclOrder/externs.json
deleted file mode 100644
--- a/tests/purs/docs/output/ChildDeclOrder/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["ChildDeclOrder"],"efExports":[{"ValueRef":[{"start":[5,1],"name":"src/ChildDeclOrder.purs","end":[27,11]},{"Ident":"foo1"}]},{"ValueRef":[{"start":[5,1],"name":"src/ChildDeclOrder.purs","end":[27,11]},{"Ident":"foo2"}]},{"ValueRef":[{"start":[5,1],"name":"src/ChildDeclOrder.purs","end":[27,11]},{"Ident":"show"}]},{"TypeRef":[{"start":[5,1],"name":"src/ChildDeclOrder.purs","end":[27,11]},"Two",["First","Second"]]},{"TypeClassRef":[{"start":[5,1],"name":"src/ChildDeclOrder.purs","end":[27,11]},"Show"]},{"TypeClassRef":[{"start":[5,1],"name":"src/ChildDeclOrder.purs","end":[27,11]},"Foo"]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"showTwo"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"fooTwo"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"fooInt"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDValue":{"edValueName":{"Ident":"foo1"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["ChildDeclOrder"],"Foo"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[15,11],"name":"src/ChildDeclOrder.purs","end":[15,12]},[]],"tag":"TypeVar","contents":"a"}]},2]}}},{"EDValue":{"edValueName":{"Ident":"foo2"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["ChildDeclOrder"],"Foo"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[16,11],"name":"src/ChildDeclOrder.purs","end":[16,12]},[]],"tag":"TypeVar","contents":"a"}]},1]}}},{"EDValue":{"edValueName":{"Ident":"show"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["ChildDeclOrder"],"Show"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[12,11],"name":"src/ChildDeclOrder.purs","end":[12,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[12,11],"name":"src/ChildDeclOrder.purs","end":[12,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[12,13],"name":"src/ChildDeclOrder.purs","end":[12,15]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[12,11],"name":"src/ChildDeclOrder.purs","end":[12,12]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[12,16],"name":"src/ChildDeclOrder.purs","end":[12,22]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}]},0]}}},{"EDType":{"edTypeName":"Two","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},"edTypeDeclarationKind":{"DataType":{"args":[],"ctors":[["First",[]],["Second",[]]]}}}},{"EDDataConstructor":{"edDataCtorName":"First","edDataCtorOrigin":"data","edDataCtorTypeCtor":"Two","edDataCtorType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["ChildDeclOrder"],"Two"]},"edDataCtorFields":[]}},{"EDDataConstructor":{"edDataCtorName":"Second","edDataCtorOrigin":"data","edDataCtorTypeCtor":"Two","edDataCtorType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["ChildDeclOrder"],"Two"]},"edDataCtorFields":[]}},{"EDType":{"edTypeName":"Show","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[12,13],"name":"src/ChildDeclOrder.purs","end":[12,15]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"Show","edTypeSynonymArguments":[["a",null]],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["show",{"annotation":[{"start":[12,11],"name":"src/ChildDeclOrder.purs","end":[12,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[12,11],"name":"src/ChildDeclOrder.purs","end":[12,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[12,13],"name":"src/ChildDeclOrder.purs","end":[12,15]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[12,11],"name":"src/ChildDeclOrder.purs","end":[12,12]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[12,16],"name":"src/ChildDeclOrder.purs","end":[12,22]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]}}},{"EDClass":{"edClassName":"Show","edClassTypeArguments":[["a",null]],"edClassMembers":[[{"Ident":"show"},{"annotation":[{"start":[12,11],"name":"src/ChildDeclOrder.purs","end":[12,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[12,11],"name":"src/ChildDeclOrder.purs","end":[12,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[12,13],"name":"src/ChildDeclOrder.purs","end":[12,15]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[12,11],"name":"src/ChildDeclOrder.purs","end":[12,12]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[12,16],"name":"src/ChildDeclOrder.purs","end":[12,22]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}]],"edClassConstraints":[],"edFunctionalDependencies":[]}},{"EDType":{"edTypeName":"Foo","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"Foo","edTypeSynonymArguments":[["a",null]],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["foo1",{"annotation":[{"start":[15,11],"name":"src/ChildDeclOrder.purs","end":[15,12]},[]],"tag":"TypeVar","contents":"a"},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["foo2",{"annotation":[{"start":[16,11],"name":"src/ChildDeclOrder.purs","end":[16,12]},[]],"tag":"TypeVar","contents":"a"},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]}]}}},{"EDClass":{"edClassName":"Foo","edClassTypeArguments":[["a",null]],"edClassMembers":[[{"Ident":"foo1"},{"annotation":[{"start":[15,11],"name":"src/ChildDeclOrder.purs","end":[15,12]},[]],"tag":"TypeVar","contents":"a"}],[{"Ident":"foo2"},{"annotation":[{"start":[16,11],"name":"src/ChildDeclOrder.purs","end":[16,12]},[]],"tag":"TypeVar","contents":"a"}]],"edClassConstraints":[],"edFunctionalDependencies":[]}},{"EDInstance":{"edInstanceClassName":[["ChildDeclOrder"],"Show"],"edInstanceName":{"Ident":"showTwo"},"edInstanceTypes":[{"annotation":[{"start":[18,26],"name":"src/ChildDeclOrder.purs","end":[18,29]},[]],"tag":"TypeConstructor","contents":[["ChildDeclOrder"],"Two"]}],"edInstanceConstraints":[],"edInstanceChain":[[["ChildDeclOrder"],{"Ident":"showTwo"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["ChildDeclOrder"],"Foo"],"edInstanceName":{"Ident":"fooTwo"},"edInstanceTypes":[{"annotation":[{"start":[21,24],"name":"src/ChildDeclOrder.purs","end":[21,27]},[]],"tag":"TypeConstructor","contents":[["ChildDeclOrder"],"Two"]}],"edInstanceConstraints":[],"edInstanceChain":[[["ChildDeclOrder"],{"Ident":"fooTwo"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["ChildDeclOrder"],"Foo"],"edInstanceName":{"Ident":"fooInt"},"edInstanceTypes":[{"annotation":[{"start":[25,24],"name":"src/ChildDeclOrder.purs","end":[25,27]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}],"edInstanceConstraints":[],"edInstanceChain":[[["ChildDeclOrder"],{"Ident":"fooInt"}]],"edInstanceChainIndex":0}}],"efSourceSpan":{"start":[5,1],"name":"src/ChildDeclOrder.purs","end":[27,11]}}
diff --git a/tests/purs/docs/output/Clash/docs.json b/tests/purs/docs/output/Clash/docs.json
--- a/tests/purs/docs/output/Clash/docs.json
+++ b/tests/purs/docs/output/Clash/docs.json
@@ -1,1 +1,1 @@
-{"reExports":[],"name":"Clash","comments":null,"declarations":[]}
+{"comments":null,"declarations":[],"name":"Clash","reExports":[]}
diff --git a/tests/purs/docs/output/Clash/externs.json b/tests/purs/docs/output/Clash/externs.json
deleted file mode 100644
--- a/tests/purs/docs/output/Clash/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Clash"],"efExports":[{"ReExportRef":[{"start":[1,1],"name":"src/Clash.purs","end":[4,24]},{"exportSourceImportedFrom":["Clash1"],"exportSourceDefinedIn":["Clash1a"]},{"TypeRef":[{"start":[1,1],"name":"src/Clash.purs","end":[4,24]},"Type",[]]}]},{"ReExportRef":[{"start":[1,1],"name":"src/Clash.purs","end":[4,24]},{"exportSourceImportedFrom":["Clash1"],"exportSourceDefinedIn":["Clash1a"]},{"TypeClassRef":[{"start":[1,1],"name":"src/Clash.purs","end":[4,24]},"TypeClass"]}]},{"ReExportRef":[{"start":[1,1],"name":"src/Clash.purs","end":[4,24]},{"exportSourceImportedFrom":["Clash1"],"exportSourceDefinedIn":["Clash1a"]},{"ValueRef":[{"start":[1,1],"name":"src/Clash.purs","end":[4,24]},{"Ident":"typeClassMember"}]}]},{"ReExportRef":[{"start":[1,1],"name":"src/Clash.purs","end":[4,24]},{"exportSourceImportedFrom":["Clash1"],"exportSourceDefinedIn":["Clash1a"]},{"ValueRef":[{"start":[1,1],"name":"src/Clash.purs","end":[4,24]},{"Ident":"value"}]}]},{"ModuleRef":[{"start":[1,15],"name":"src/Clash.purs","end":[1,28]},["Clash1"]]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Clash1"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Clash1"]},{"eiModule":["Clash2"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Clash2"]}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[],"efSourceSpan":{"start":[1,1],"name":"src/Clash.purs","end":[4,24]}}
diff --git a/tests/purs/docs/output/Clash1/docs.json b/tests/purs/docs/output/Clash1/docs.json
--- a/tests/purs/docs/output/Clash1/docs.json
+++ b/tests/purs/docs/output/Clash1/docs.json
@@ -1,1 +1,1 @@
-{"reExports":[],"name":"Clash1","comments":null,"declarations":[]}
+{"comments":null,"declarations":[],"name":"Clash1","reExports":[]}
diff --git a/tests/purs/docs/output/Clash1/externs.json b/tests/purs/docs/output/Clash1/externs.json
deleted file mode 100644
--- a/tests/purs/docs/output/Clash1/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Clash1"],"efExports":[{"ReExportRef":[{"start":[1,1],"name":"src/Clash1.purs","end":[3,15]},{"exportSourceImportedFrom":["Clash1a"],"exportSourceDefinedIn":["Clash1a"]},{"TypeRef":[{"start":[1,1],"name":"src/Clash1.purs","end":[3,15]},"Type",[]]}]},{"ReExportRef":[{"start":[1,1],"name":"src/Clash1.purs","end":[3,15]},{"exportSourceImportedFrom":["Clash1a"],"exportSourceDefinedIn":["Clash1a"]},{"TypeClassRef":[{"start":[1,1],"name":"src/Clash1.purs","end":[3,15]},"TypeClass"]}]},{"ReExportRef":[{"start":[1,1],"name":"src/Clash1.purs","end":[3,15]},{"exportSourceImportedFrom":["Clash1a"],"exportSourceDefinedIn":["Clash1a"]},{"ValueRef":[{"start":[1,1],"name":"src/Clash1.purs","end":[3,15]},{"Ident":"typeClassMember"}]}]},{"ReExportRef":[{"start":[1,1],"name":"src/Clash1.purs","end":[3,15]},{"exportSourceImportedFrom":["Clash1a"],"exportSourceDefinedIn":["Clash1a"]},{"ValueRef":[{"start":[1,1],"name":"src/Clash1.purs","end":[3,15]},{"Ident":"value"}]}]},{"ModuleRef":[{"start":[1,16],"name":"src/Clash1.purs","end":[1,30]},["Clash1a"]]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Clash1a"],"eiImportType":{"Implicit":[]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[],"efSourceSpan":{"start":[1,1],"name":"src/Clash1.purs","end":[3,15]}}
diff --git a/tests/purs/docs/output/Clash1a/docs.json b/tests/purs/docs/output/Clash1a/docs.json
--- a/tests/purs/docs/output/Clash1a/docs.json
+++ b/tests/purs/docs/output/Clash1a/docs.json
@@ -1,1 +1,1 @@
-{"reExports":[],"name":"Clash1a","comments":null,"declarations":[{"children":[],"comments":null,"title":"value","info":{"declType":"value","type":{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}},"sourceSpan":{"start":[3,1],"name":"src/Clash1a.purs","end":[3,13]}},{"children":[],"comments":null,"title":"Type","info":{"arguments":[],"declType":"typeSynonym","type":{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}},"sourceSpan":{"start":[6,1],"name":"src/Clash1a.purs","end":[6,16]}},{"children":[{"comments":null,"title":"typeClassMember","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeVar","contents":"a"}},"sourceSpan":{"start":[9,3],"name":"src/Clash1a.purs","end":[9,23]}}],"comments":null,"title":"TypeClass","info":{"fundeps":[],"arguments":[["a",null]],"declType":"typeClass","superclasses":[]},"sourceSpan":{"start":[8,1],"name":"src/Clash1a.purs","end":[9,23]}}]}
+{"comments":null,"declarations":[{"children":[],"comments":null,"info":{"declType":"value","type":{"annotation":[],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}},"kind":null,"sourceSpan":{"end":[3,13],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/Clash1a.purs","start":[3,1]},"title":"value"},{"children":[],"comments":null,"info":{"arguments":[],"declType":"typeSynonym","type":{"annotation":[],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}},"kind":null,"sourceSpan":{"end":[6,17],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/Clash1a.purs","start":[6,1]},"title":"Type'"},{"children":[{"comments":null,"info":{"declType":"typeClassMember","type":{"annotation":[],"contents":"a","tag":"TypeVar"}},"sourceSpan":{"end":[9,23],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/Clash1a.purs","start":[9,3]},"title":"typeClassMember"}],"comments":null,"info":{"arguments":[["a",null]],"declType":"typeClass","fundeps":[],"superclasses":[]},"kind":null,"sourceSpan":{"end":[9,23],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/Clash1a.purs","start":[8,1]},"title":"TypeClass"}],"name":"Clash1a","reExports":[]}
diff --git a/tests/purs/docs/output/Clash1a/externs.json b/tests/purs/docs/output/Clash1a/externs.json
deleted file mode 100644
--- a/tests/purs/docs/output/Clash1a/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Clash1a"],"efExports":[{"ValueRef":[{"start":[1,1],"name":"src/Clash1a.purs","end":[9,23]},{"Ident":"typeClassMember"}]},{"ValueRef":[{"start":[1,1],"name":"src/Clash1a.purs","end":[9,23]},{"Ident":"value"}]},{"TypeRef":[{"start":[1,1],"name":"src/Clash1a.purs","end":[9,23]},"Type",[]]},{"TypeClassRef":[{"start":[1,1],"name":"src/Clash1a.purs","end":[9,23]},"TypeClass"]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDValue":{"edValueName":{"Ident":"typeClassMember"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["Clash1a"],"TypeClass"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[9,22],"name":"src/Clash1a.purs","end":[9,23]},[]],"tag":"TypeVar","contents":"a"}]},0]}}},{"EDValue":{"edValueName":{"Ident":"value"},"edValueType":{"annotation":[{"start":[3,10],"name":"src/Clash1a.purs","end":[3,13]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}}},{"EDType":{"edTypeName":"Type","edTypeKind":{"annotation":[{"start":[6,13],"name":"src/Clash1a.purs","end":[6,16]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"Type","edTypeSynonymArguments":[],"edTypeSynonymType":{"annotation":[{"start":[6,13],"name":"src/Clash1a.purs","end":[6,16]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}}},{"EDType":{"edTypeName":"TypeClass","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"TypeClass","edTypeSynonymArguments":[["a",null]],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["typeClassMember",{"annotation":[{"start":[9,22],"name":"src/Clash1a.purs","end":[9,23]},[]],"tag":"TypeVar","contents":"a"},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]}}},{"EDClass":{"edClassName":"TypeClass","edClassTypeArguments":[["a",null]],"edClassMembers":[[{"Ident":"typeClassMember"},{"annotation":[{"start":[9,22],"name":"src/Clash1a.purs","end":[9,23]},[]],"tag":"TypeVar","contents":"a"}]],"edClassConstraints":[],"edFunctionalDependencies":[]}}],"efSourceSpan":{"start":[1,1],"name":"src/Clash1a.purs","end":[9,23]}}
diff --git a/tests/purs/docs/output/Clash2/docs.json b/tests/purs/docs/output/Clash2/docs.json
--- a/tests/purs/docs/output/Clash2/docs.json
+++ b/tests/purs/docs/output/Clash2/docs.json
@@ -1,1 +1,1 @@
-{"reExports":[],"name":"Clash2","comments":null,"declarations":[]}
+{"comments":null,"declarations":[],"name":"Clash2","reExports":[]}
diff --git a/tests/purs/docs/output/Clash2/externs.json b/tests/purs/docs/output/Clash2/externs.json
deleted file mode 100644
--- a/tests/purs/docs/output/Clash2/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Clash2"],"efExports":[{"ReExportRef":[{"start":[1,1],"name":"src/Clash2.purs","end":[3,15]},{"exportSourceImportedFrom":["Clash2a"],"exportSourceDefinedIn":["Clash2a"]},{"TypeRef":[{"start":[1,1],"name":"src/Clash2.purs","end":[3,15]},"Type",[]]}]},{"ReExportRef":[{"start":[1,1],"name":"src/Clash2.purs","end":[3,15]},{"exportSourceImportedFrom":["Clash2a"],"exportSourceDefinedIn":["Clash2a"]},{"TypeClassRef":[{"start":[1,1],"name":"src/Clash2.purs","end":[3,15]},"TypeClass"]}]},{"ReExportRef":[{"start":[1,1],"name":"src/Clash2.purs","end":[3,15]},{"exportSourceImportedFrom":["Clash2a"],"exportSourceDefinedIn":["Clash2a"]},{"ValueRef":[{"start":[1,1],"name":"src/Clash2.purs","end":[3,15]},{"Ident":"typeClassMember"}]}]},{"ReExportRef":[{"start":[1,1],"name":"src/Clash2.purs","end":[3,15]},{"exportSourceImportedFrom":["Clash2a"],"exportSourceDefinedIn":["Clash2a"]},{"ValueRef":[{"start":[1,1],"name":"src/Clash2.purs","end":[3,15]},{"Ident":"value"}]}]},{"ModuleRef":[{"start":[1,16],"name":"src/Clash2.purs","end":[1,30]},["Clash2a"]]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Clash2a"],"eiImportType":{"Implicit":[]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[],"efSourceSpan":{"start":[1,1],"name":"src/Clash2.purs","end":[3,15]}}
diff --git a/tests/purs/docs/output/Clash2a/docs.json b/tests/purs/docs/output/Clash2a/docs.json
--- a/tests/purs/docs/output/Clash2a/docs.json
+++ b/tests/purs/docs/output/Clash2a/docs.json
@@ -1,1 +1,1 @@
-{"reExports":[],"name":"Clash2a","comments":null,"declarations":[{"children":[],"comments":null,"title":"value","info":{"declType":"value","type":{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}},"sourceSpan":{"start":[3,1],"name":"src/Clash2a.purs","end":[3,16]}},{"children":[],"comments":null,"title":"Type","info":{"arguments":[],"declType":"typeSynonym","type":{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}},"sourceSpan":{"start":[6,1],"name":"src/Clash2a.purs","end":[6,19]}},{"children":[{"comments":null,"title":"typeClassMember","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}},"sourceSpan":{"start":[9,3],"name":"src/Clash2a.purs","end":[9,28]}}],"comments":null,"title":"TypeClass","info":{"fundeps":[],"arguments":[["a",null],["b",null]],"declType":"typeClass","superclasses":[]},"sourceSpan":{"start":[8,1],"name":"src/Clash2a.purs","end":[9,28]}}]}
+{"comments":null,"declarations":[{"children":[],"comments":null,"info":{"declType":"value","type":{"annotation":[],"contents":[["Prim"],"String"],"tag":"TypeConstructor"}},"kind":null,"sourceSpan":{"end":[3,16],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/Clash2a.purs","start":[3,1]},"title":"value"},{"children":[],"comments":null,"info":{"arguments":[],"declType":"typeSynonym","type":{"annotation":[],"contents":[["Prim"],"String"],"tag":"TypeConstructor"}},"kind":null,"sourceSpan":{"end":[6,20],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/Clash2a.purs","start":[6,1]},"title":"Type'"},{"children":[{"comments":null,"info":{"declType":"typeClassMember","type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"}},"sourceSpan":{"end":[9,28],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/Clash2a.purs","start":[9,3]},"title":"typeClassMember"}],"comments":null,"info":{"arguments":[["a",null],["b",null]],"declType":"typeClass","fundeps":[],"superclasses":[]},"kind":null,"sourceSpan":{"end":[9,28],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/Clash2a.purs","start":[8,1]},"title":"TypeClass"}],"name":"Clash2a","reExports":[]}
diff --git a/tests/purs/docs/output/Clash2a/externs.json b/tests/purs/docs/output/Clash2a/externs.json
deleted file mode 100644
--- a/tests/purs/docs/output/Clash2a/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Clash2a"],"efExports":[{"ValueRef":[{"start":[1,1],"name":"src/Clash2a.purs","end":[9,28]},{"Ident":"typeClassMember"}]},{"ValueRef":[{"start":[1,1],"name":"src/Clash2a.purs","end":[9,28]},{"Ident":"value"}]},{"TypeRef":[{"start":[1,1],"name":"src/Clash2a.purs","end":[9,28]},"Type",[]]},{"TypeClassRef":[{"start":[1,1],"name":"src/Clash2a.purs","end":[9,28]},"TypeClass"]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDValue":{"edValueName":{"Ident":"typeClassMember"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["Clash2a"],"TypeClass"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"a"},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"b"}],"constraintData":null},{"annotation":[{"start":[9,22],"name":"src/Clash2a.purs","end":[9,28]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[9,22],"name":"src/Clash2a.purs","end":[9,28]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[9,24],"name":"src/Clash2a.purs","end":[9,26]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[9,22],"name":"src/Clash2a.purs","end":[9,23]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[9,27],"name":"src/Clash2a.purs","end":[9,28]},[]],"tag":"TypeVar","contents":"b"}]}]},0]},1]}}},{"EDValue":{"edValueName":{"Ident":"value"},"edValueType":{"annotation":[{"start":[3,10],"name":"src/Clash2a.purs","end":[3,16]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}}},{"EDType":{"edTypeName":"Type","edTypeKind":{"annotation":[{"start":[6,13],"name":"src/Clash2a.purs","end":[6,19]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"Type","edTypeSynonymArguments":[],"edTypeSynonymType":{"annotation":[{"start":[6,13],"name":"src/Clash2a.purs","end":[6,19]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}}},{"EDType":{"edTypeName":"TypeClass","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[9,24],"name":"src/Clash2a.purs","end":[9,26]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[9,24],"name":"src/Clash2a.purs","end":[9,26]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"TypeClass","edTypeSynonymArguments":[["a",null],["b",null]],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["typeClassMember",{"annotation":[{"start":[9,22],"name":"src/Clash2a.purs","end":[9,28]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[9,22],"name":"src/Clash2a.purs","end":[9,28]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[9,24],"name":"src/Clash2a.purs","end":[9,26]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[9,22],"name":"src/Clash2a.purs","end":[9,23]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[9,27],"name":"src/Clash2a.purs","end":[9,28]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]}}},{"EDClass":{"edClassName":"TypeClass","edClassTypeArguments":[["a",null],["b",null]],"edClassMembers":[[{"Ident":"typeClassMember"},{"annotation":[{"start":[9,22],"name":"src/Clash2a.purs","end":[9,28]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[9,22],"name":"src/Clash2a.purs","end":[9,28]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[9,24],"name":"src/Clash2a.purs","end":[9,26]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[9,22],"name":"src/Clash2a.purs","end":[9,23]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[9,27],"name":"src/Clash2a.purs","end":[9,28]},[]],"tag":"TypeVar","contents":"b"}]}]],"edClassConstraints":[],"edFunctionalDependencies":[]}}],"efSourceSpan":{"start":[1,1],"name":"src/Clash2a.purs","end":[9,28]}}
diff --git a/tests/purs/docs/output/ConstrainedArgument/docs.json b/tests/purs/docs/output/ConstrainedArgument/docs.json
--- a/tests/purs/docs/output/ConstrainedArgument/docs.json
+++ b/tests/purs/docs/output/ConstrainedArgument/docs.json
@@ -1,1 +1,1 @@
-{"reExports":[],"name":"ConstrainedArgument","comments":null,"declarations":[{"children":[],"comments":null,"title":"Foo","info":{"fundeps":[],"arguments":[["t",null]],"declType":"typeClass","superclasses":[]},"sourceSpan":{"start":[3,1],"name":"src/ConstrainedArgument.purs","end":[3,12]}},{"children":[],"comments":null,"title":"WithoutArgs","info":{"arguments":[],"declType":"typeSynonym","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Prim"],"Partial"],"constraintArgs":[],"constraintData":null},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},null]}},"sourceSpan":{"start":[5,1],"name":"src/ConstrainedArgument.purs","end":[5,54]}},{"children":[],"comments":null,"title":"WithArgs","info":{"arguments":[],"declType":"typeSynonym","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["ConstrainedArgument"],"Foo"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},null]}},"sourceSpan":{"start":[6,1],"name":"src/ConstrainedArgument.purs","end":[6,52]}},{"children":[],"comments":null,"title":"MultiWithoutArgs","info":{"arguments":[],"declType":"typeSynonym","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Prim"],"Partial"],"constraintArgs":[],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Prim"],"Partial"],"constraintArgs":[],"constraintData":null},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},null]}},"sourceSpan":{"start":[7,1],"name":"src/ConstrainedArgument.purs","end":[7,65]}},{"children":[],"comments":null,"title":"MultiWithArgs","info":{"arguments":[],"declType":"typeSynonym","type":{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["ConstrainedArgument"],"Foo"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["ConstrainedArgument"],"Foo"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"b"}],"constraintData":null},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},null]},null]}},"sourceSpan":{"start":[8,1],"name":"src/ConstrainedArgument.purs","end":[8,63]}}]}
+{"comments":null,"declarations":[{"children":[],"comments":null,"info":{"arguments":[["t",{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}]],"declType":"typeClass","fundeps":[],"superclasses":[]},"kind":null,"sourceSpan":{"end":[3,22],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/ConstrainedArgument.purs","start":[3,1]},"title":"Foo"},{"children":[],"comments":null,"info":{"arguments":[],"declType":"typeSynonym","type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[],"constraintClass":[["Prim"],"Partial"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"ConstrainedType"},"tag":"ParensInType"}],"tag":"TypeApp"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[5,54],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/ConstrainedArgument.purs","start":[5,1]},"title":"WithoutArgs"},{"children":[],"comments":null,"info":{"arguments":[],"declType":"typeSynonym","type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["ConstrainedArgument"],"Foo"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"ConstrainedType"},"tag":"ParensInType"}],"tag":"TypeApp"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[6,52],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/ConstrainedArgument.purs","start":[6,1]},"title":"WithArgs"},{"children":[],"comments":null,"info":{"arguments":[],"declType":"typeSynonym","type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[],"constraintClass":[["Prim"],"Partial"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[],"constraintClass":[["Prim"],"Partial"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"ConstrainedType"}],"tag":"ConstrainedType"},"tag":"ParensInType"}],"tag":"TypeApp"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[7,65],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/ConstrainedArgument.purs","start":[7,1]},"title":"MultiWithoutArgs"},{"children":[],"comments":null,"info":{"arguments":[],"declType":"typeSynonym","type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"b","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["ConstrainedArgument"],"Foo"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"b","tag":"TypeVar"}],"constraintClass":[["ConstrainedArgument"],"Foo"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"ConstrainedType"}],"tag":"ConstrainedType"},"tag":"ParensInType"}],"tag":"TypeApp"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[8,63],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/ConstrainedArgument.purs","start":[8,1]},"title":"MultiWithArgs"}],"name":"ConstrainedArgument","reExports":[]}
diff --git a/tests/purs/docs/output/ConstrainedArgument/externs.json b/tests/purs/docs/output/ConstrainedArgument/externs.json
deleted file mode 100644
--- a/tests/purs/docs/output/ConstrainedArgument/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["ConstrainedArgument"],"efExports":[{"TypeClassRef":[{"start":[1,1],"name":"src/ConstrainedArgument.purs","end":[8,63]},"Foo"]},{"TypeRef":[{"start":[1,1],"name":"src/ConstrainedArgument.purs","end":[8,63]},"WithoutArgs",[]]},{"TypeRef":[{"start":[1,1],"name":"src/ConstrainedArgument.purs","end":[8,63]},"WithArgs",[]]},{"TypeRef":[{"start":[1,1],"name":"src/ConstrainedArgument.purs","end":[8,63]},"MultiWithoutArgs",[]]},{"TypeRef":[{"start":[1,1],"name":"src/ConstrainedArgument.purs","end":[8,63]},"MultiWithArgs",[]]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDType":{"edTypeName":"Foo","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"Foo","edTypeSynonymArguments":[["t",null]],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}}},{"EDClass":{"edClassName":"Foo","edClassTypeArguments":[["t",null]],"edClassMembers":[],"edClassConstraints":[],"edFunctionalDependencies":[]}},{"EDType":{"edTypeName":"WithoutArgs","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"WithoutArgs","edTypeSynonymArguments":[],"edTypeSynonymType":{"annotation":[{"start":[5,25],"name":"src/ConstrainedArgument.purs","end":[5,54]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[5,35],"name":"src/ConstrainedArgument.purs","end":[5,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[5,35],"name":"src/ConstrainedArgument.purs","end":[5,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[5,50],"name":"src/ConstrainedArgument.purs","end":[5,52]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[5,36],"name":"src/ConstrainedArgument.purs","end":[5,48]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[5,36],"name":"src/ConstrainedArgument.purs","end":[5,43]},[]],"constraintClass":[["Prim"],"Partial"],"constraintArgs":[],"constraintData":null},{"annotation":[{"start":[5,47],"name":"src/ConstrainedArgument.purs","end":[5,48]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[5,53],"name":"src/ConstrainedArgument.purs","end":[5,54]},[]],"tag":"TypeVar","contents":"a"}]},null]}}},{"EDType":{"edTypeName":"WithArgs","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"WithArgs","edTypeSynonymArguments":[],"edTypeSynonymType":{"annotation":[{"start":[6,25],"name":"src/ConstrainedArgument.purs","end":[6,52]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[6,35],"name":"src/ConstrainedArgument.purs","end":[6,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[6,35],"name":"src/ConstrainedArgument.purs","end":[6,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[6,48],"name":"src/ConstrainedArgument.purs","end":[6,50]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[6,36],"name":"src/ConstrainedArgument.purs","end":[6,46]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[6,36],"name":"src/ConstrainedArgument.purs","end":[6,41]},[]],"constraintClass":[["ConstrainedArgument"],"Foo"],"constraintArgs":[{"annotation":[{"start":[6,40],"name":"src/ConstrainedArgument.purs","end":[6,41]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[6,45],"name":"src/ConstrainedArgument.purs","end":[6,46]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[6,51],"name":"src/ConstrainedArgument.purs","end":[6,52]},[]],"tag":"TypeVar","contents":"a"}]},null]}}},{"EDType":{"edTypeName":"MultiWithoutArgs","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"MultiWithoutArgs","edTypeSynonymArguments":[],"edTypeSynonymType":{"annotation":[{"start":[7,25],"name":"src/ConstrainedArgument.purs","end":[7,65]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[7,35],"name":"src/ConstrainedArgument.purs","end":[7,65]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[7,35],"name":"src/ConstrainedArgument.purs","end":[7,65]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[7,61],"name":"src/ConstrainedArgument.purs","end":[7,63]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[7,36],"name":"src/ConstrainedArgument.purs","end":[7,59]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[7,36],"name":"src/ConstrainedArgument.purs","end":[7,43]},[]],"constraintClass":[["Prim"],"Partial"],"constraintArgs":[],"constraintData":null},{"annotation":[{"start":[7,47],"name":"src/ConstrainedArgument.purs","end":[7,59]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[7,47],"name":"src/ConstrainedArgument.purs","end":[7,54]},[]],"constraintClass":[["Prim"],"Partial"],"constraintArgs":[],"constraintData":null},{"annotation":[{"start":[7,58],"name":"src/ConstrainedArgument.purs","end":[7,59]},[]],"tag":"TypeVar","contents":"a"}]}]}]},{"annotation":[{"start":[7,64],"name":"src/ConstrainedArgument.purs","end":[7,65]},[]],"tag":"TypeVar","contents":"a"}]},null]}}},{"EDType":{"edTypeName":"MultiWithArgs","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"MultiWithArgs","edTypeSynonymArguments":[],"edTypeSynonymType":{"annotation":[{"start":[8,25],"name":"src/ConstrainedArgument.purs","end":[8,63]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[8,32],"name":"src/ConstrainedArgument.purs","end":[8,63]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[8,37],"name":"src/ConstrainedArgument.purs","end":[8,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[8,37],"name":"src/ConstrainedArgument.purs","end":[8,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[8,59],"name":"src/ConstrainedArgument.purs","end":[8,61]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[8,38],"name":"src/ConstrainedArgument.purs","end":[8,57]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[8,38],"name":"src/ConstrainedArgument.purs","end":[8,43]},[]],"constraintClass":[["ConstrainedArgument"],"Foo"],"constraintArgs":[{"annotation":[{"start":[8,42],"name":"src/ConstrainedArgument.purs","end":[8,43]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[8,47],"name":"src/ConstrainedArgument.purs","end":[8,57]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[8,47],"name":"src/ConstrainedArgument.purs","end":[8,52]},[]],"constraintClass":[["ConstrainedArgument"],"Foo"],"constraintArgs":[{"annotation":[{"start":[8,51],"name":"src/ConstrainedArgument.purs","end":[8,52]},[]],"tag":"TypeVar","contents":"b"}],"constraintData":null},{"annotation":[{"start":[8,56],"name":"src/ConstrainedArgument.purs","end":[8,57]},[]],"tag":"TypeVar","contents":"a"}]}]}]},{"annotation":[{"start":[8,62],"name":"src/ConstrainedArgument.purs","end":[8,63]},[]],"tag":"TypeVar","contents":"a"}]},null]},null]}}}],"efSourceSpan":{"start":[1,1],"name":"src/ConstrainedArgument.purs","end":[8,63]}}
diff --git a/tests/purs/docs/output/Data.Newtype/docs.json b/tests/purs/docs/output/Data.Newtype/docs.json
--- a/tests/purs/docs/output/Data.Newtype/docs.json
+++ b/tests/purs/docs/output/Data.Newtype/docs.json
@@ -1,1 +1,1 @@
-{"reExports":[],"name":"Data.Newtype","comments":null,"declarations":[{"children":[{"comments":null,"title":"wrap","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"t"}]}},"sourceSpan":{"start":[4,3],"name":"bower_components/purescript-newtype/src/Data/Newtype.purs","end":[4,17]}},{"comments":null,"title":"unwrap","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"t"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}},"sourceSpan":{"start":[5,3],"name":"bower_components/purescript-newtype/src/Data/Newtype.purs","end":[5,19]}}],"comments":null,"title":"Newtype","info":{"fundeps":[[["t"],["a"]]],"arguments":[["t",null],["a",null]],"declType":"typeClass","superclasses":[]},"sourceSpan":{"start":[3,1],"name":"bower_components/purescript-newtype/src/Data/Newtype.purs","end":[5,19]}}]}
+{"comments":null,"declarations":[{"children":[],"comments":null,"info":{"arguments":[["t",null],["a",null]],"declType":"typeClass","fundeps":[[["t"],["a"]]],"superclasses":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"t","tag":"TypeVar"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Prim","Coerce"],"Coercible"],"constraintData":null,"constraintKindArgs":[]}]},"kind":null,"sourceSpan":{"end":[6,44],"name":"bower_components/purescript-newtype/src/Data/Newtype.purs","start":[6,1]},"title":"Newtype"}],"name":"Data.Newtype","reExports":[]}
diff --git a/tests/purs/docs/output/Data.Newtype/externs.json b/tests/purs/docs/output/Data.Newtype/externs.json
deleted file mode 100644
--- a/tests/purs/docs/output/Data.Newtype/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Data","Newtype"],"efExports":[{"ValueRef":[{"start":[1,1],"name":"bower_components/purescript-newtype/src/Data/Newtype.purs","end":[5,19]},{"Ident":"unwrap"}]},{"ValueRef":[{"start":[1,1],"name":"bower_components/purescript-newtype/src/Data/Newtype.purs","end":[5,19]},{"Ident":"wrap"}]},{"TypeClassRef":[{"start":[1,1],"name":"bower_components/purescript-newtype/src/Data/Newtype.purs","end":[5,19]},"Newtype"]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDValue":{"edValueName":{"Ident":"unwrap"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["t",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["Data","Newtype"],"Newtype"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"t"},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[5,13],"name":"bower_components/purescript-newtype/src/Data/Newtype.purs","end":[5,19]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[5,13],"name":"bower_components/purescript-newtype/src/Data/Newtype.purs","end":[5,19]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[5,15],"name":"bower_components/purescript-newtype/src/Data/Newtype.purs","end":[5,17]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[5,13],"name":"bower_components/purescript-newtype/src/Data/Newtype.purs","end":[5,14]},[]],"tag":"TypeVar","contents":"t"}]},{"annotation":[{"start":[5,18],"name":"bower_components/purescript-newtype/src/Data/Newtype.purs","end":[5,19]},[]],"tag":"TypeVar","contents":"a"}]}]},2]},3]}}},{"EDValue":{"edValueName":{"Ident":"wrap"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["t",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["Data","Newtype"],"Newtype"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"t"},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[4,11],"name":"bower_components/purescript-newtype/src/Data/Newtype.purs","end":[4,17]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[4,11],"name":"bower_components/purescript-newtype/src/Data/Newtype.purs","end":[4,17]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[4,13],"name":"bower_components/purescript-newtype/src/Data/Newtype.purs","end":[4,15]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[4,11],"name":"bower_components/purescript-newtype/src/Data/Newtype.purs","end":[4,12]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[4,16],"name":"bower_components/purescript-newtype/src/Data/Newtype.purs","end":[4,17]},[]],"tag":"TypeVar","contents":"t"}]}]},0]},1]}}},{"EDType":{"edTypeName":"Newtype","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[4,13],"name":"bower_components/purescript-newtype/src/Data/Newtype.purs","end":[4,15]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[4,13],"name":"bower_components/purescript-newtype/src/Data/Newtype.purs","end":[4,15]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"Newtype","edTypeSynonymArguments":[["t",null],["a",null]],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["wrap",{"annotation":[{"start":[4,11],"name":"bower_components/purescript-newtype/src/Data/Newtype.purs","end":[4,17]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[4,11],"name":"bower_components/purescript-newtype/src/Data/Newtype.purs","end":[4,17]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[4,13],"name":"bower_components/purescript-newtype/src/Data/Newtype.purs","end":[4,15]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[4,11],"name":"bower_components/purescript-newtype/src/Data/Newtype.purs","end":[4,12]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[4,16],"name":"bower_components/purescript-newtype/src/Data/Newtype.purs","end":[4,17]},[]],"tag":"TypeVar","contents":"t"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["unwrap",{"annotation":[{"start":[5,13],"name":"bower_components/purescript-newtype/src/Data/Newtype.purs","end":[5,19]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[5,13],"name":"bower_components/purescript-newtype/src/Data/Newtype.purs","end":[5,19]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[5,15],"name":"bower_components/purescript-newtype/src/Data/Newtype.purs","end":[5,17]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[5,13],"name":"bower_components/purescript-newtype/src/Data/Newtype.purs","end":[5,14]},[]],"tag":"TypeVar","contents":"t"}]},{"annotation":[{"start":[5,18],"name":"bower_components/purescript-newtype/src/Data/Newtype.purs","end":[5,19]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]}]}}},{"EDClass":{"edClassName":"Newtype","edClassTypeArguments":[["t",null],["a",null]],"edClassMembers":[[{"Ident":"wrap"},{"annotation":[{"start":[4,11],"name":"bower_components/purescript-newtype/src/Data/Newtype.purs","end":[4,17]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[4,11],"name":"bower_components/purescript-newtype/src/Data/Newtype.purs","end":[4,17]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[4,13],"name":"bower_components/purescript-newtype/src/Data/Newtype.purs","end":[4,15]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[4,11],"name":"bower_components/purescript-newtype/src/Data/Newtype.purs","end":[4,12]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[4,16],"name":"bower_components/purescript-newtype/src/Data/Newtype.purs","end":[4,17]},[]],"tag":"TypeVar","contents":"t"}]}],[{"Ident":"unwrap"},{"annotation":[{"start":[5,13],"name":"bower_components/purescript-newtype/src/Data/Newtype.purs","end":[5,19]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[5,13],"name":"bower_components/purescript-newtype/src/Data/Newtype.purs","end":[5,19]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[5,15],"name":"bower_components/purescript-newtype/src/Data/Newtype.purs","end":[5,17]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[5,13],"name":"bower_components/purescript-newtype/src/Data/Newtype.purs","end":[5,14]},[]],"tag":"TypeVar","contents":"t"}]},{"annotation":[{"start":[5,18],"name":"bower_components/purescript-newtype/src/Data/Newtype.purs","end":[5,19]},[]],"tag":"TypeVar","contents":"a"}]}]],"edClassConstraints":[],"edFunctionalDependencies":[{"determiners":[0],"determined":[1]}]}}],"efSourceSpan":{"start":[1,1],"name":"bower_components/purescript-newtype/src/Data/Newtype.purs","end":[5,19]}}
diff --git a/tests/purs/docs/output/DeclOrder/docs.json b/tests/purs/docs/output/DeclOrder/docs.json
--- a/tests/purs/docs/output/DeclOrder/docs.json
+++ b/tests/purs/docs/output/DeclOrder/docs.json
@@ -1,1 +1,1 @@
-{"reExports":[],"name":"DeclOrder","comments":null,"declarations":[{"children":[],"comments":null,"title":"A","info":{"fundeps":[],"arguments":[],"declType":"typeClass","superclasses":[]},"sourceSpan":{"start":[16,1],"name":"src/DeclOrder.purs","end":[16,8]}},{"children":[],"comments":null,"title":"x1","info":{"declType":"value","type":{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}},"sourceSpan":{"start":[10,1],"name":"src/DeclOrder.purs","end":[10,7]}},{"children":[],"comments":null,"title":"X2","info":{"declType":"data","dataDeclType":"data","typeArguments":[]},"sourceSpan":{"start":[13,1],"name":"src/DeclOrder.purs","end":[13,8]}},{"children":[],"comments":null,"title":"x3","info":{"declType":"value","type":{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}},"sourceSpan":{"start":[11,1],"name":"src/DeclOrder.purs","end":[11,7]}},{"children":[],"comments":null,"title":"X4","info":{"declType":"data","dataDeclType":"data","typeArguments":[]},"sourceSpan":{"start":[14,1],"name":"src/DeclOrder.purs","end":[14,8]}},{"children":[],"comments":null,"title":"B","info":{"fundeps":[],"arguments":[],"declType":"typeClass","superclasses":[]},"sourceSpan":{"start":[17,1],"name":"src/DeclOrder.purs","end":[17,8]}}]}
+{"comments":null,"declarations":[{"children":[],"comments":null,"info":{"arguments":[],"declType":"typeClass","fundeps":[],"superclasses":[]},"kind":null,"sourceSpan":{"end":[16,8],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/DeclOrder.purs","start":[16,1]},"title":"A"},{"children":[],"comments":null,"info":{"declType":"value","type":{"annotation":[],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}},"kind":null,"sourceSpan":{"end":[10,7],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/DeclOrder.purs","start":[10,1]},"title":"x1"},{"children":[],"comments":null,"info":{"dataDeclType":"data","declType":"data","roles":[],"typeArguments":[]},"kind":null,"sourceSpan":{"end":[13,8],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/DeclOrder.purs","start":[13,1]},"title":"X2"},{"children":[],"comments":null,"info":{"declType":"value","type":{"annotation":[],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}},"kind":null,"sourceSpan":{"end":[11,7],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/DeclOrder.purs","start":[11,1]},"title":"x3"},{"children":[],"comments":null,"info":{"dataDeclType":"data","declType":"data","roles":[],"typeArguments":[]},"kind":null,"sourceSpan":{"end":[14,8],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/DeclOrder.purs","start":[14,1]},"title":"X4"},{"children":[],"comments":null,"info":{"arguments":[],"declType":"typeClass","fundeps":[],"superclasses":[]},"kind":null,"sourceSpan":{"end":[17,8],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/DeclOrder.purs","start":[17,1]},"title":"B"}],"name":"DeclOrder","reExports":[]}
diff --git a/tests/purs/docs/output/DeclOrder/externs.json b/tests/purs/docs/output/DeclOrder/externs.json
deleted file mode 100644
--- a/tests/purs/docs/output/DeclOrder/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["DeclOrder"],"efExports":[{"TypeClassRef":[{"start":[1,1],"name":"src/DeclOrder.purs","end":[17,8]},"A"]},{"ValueRef":[{"start":[1,1],"name":"src/DeclOrder.purs","end":[17,8]},{"Ident":"x1"}]},{"TypeRef":[{"start":[1,1],"name":"src/DeclOrder.purs","end":[17,8]},"X2",[]]},{"ValueRef":[{"start":[1,1],"name":"src/DeclOrder.purs","end":[17,8]},{"Ident":"x3"}]},{"TypeRef":[{"start":[1,1],"name":"src/DeclOrder.purs","end":[17,8]},"X4",[]]},{"TypeClassRef":[{"start":[1,1],"name":"src/DeclOrder.purs","end":[17,8]},"B"]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDType":{"edTypeName":"A","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"A","edTypeSynonymArguments":[],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}}},{"EDClass":{"edClassName":"A","edClassTypeArguments":[],"edClassMembers":[],"edClassConstraints":[],"edFunctionalDependencies":[]}},{"EDValue":{"edValueName":{"Ident":"x1"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}}},{"EDType":{"edTypeName":"X2","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},"edTypeDeclarationKind":{"DataType":{"args":[],"ctors":[]}}}},{"EDValue":{"edValueName":{"Ident":"x3"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}}},{"EDType":{"edTypeName":"X4","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},"edTypeDeclarationKind":{"DataType":{"args":[],"ctors":[]}}}},{"EDType":{"edTypeName":"B","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"B","edTypeSynonymArguments":[],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}}},{"EDClass":{"edClassName":"B","edClassTypeArguments":[],"edClassMembers":[],"edClassConstraints":[],"edFunctionalDependencies":[]}}],"efSourceSpan":{"start":[1,1],"name":"src/DeclOrder.purs","end":[17,8]}}
diff --git a/tests/purs/docs/output/DeclOrderNoExportList/docs.json b/tests/purs/docs/output/DeclOrderNoExportList/docs.json
--- a/tests/purs/docs/output/DeclOrderNoExportList/docs.json
+++ b/tests/purs/docs/output/DeclOrderNoExportList/docs.json
@@ -1,1 +1,1 @@
-{"reExports":[],"name":"DeclOrderNoExportList","comments":null,"declarations":[{"children":[],"comments":null,"title":"x1","info":{"declType":"value","type":{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}},"sourceSpan":{"start":[3,1],"name":"src/DeclOrderNoExportList.purs","end":[3,7]}},{"children":[],"comments":null,"title":"x3","info":{"declType":"value","type":{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}},"sourceSpan":{"start":[4,1],"name":"src/DeclOrderNoExportList.purs","end":[4,7]}},{"children":[],"comments":null,"title":"X2","info":{"declType":"data","dataDeclType":"data","typeArguments":[]},"sourceSpan":{"start":[6,1],"name":"src/DeclOrderNoExportList.purs","end":[6,8]}},{"children":[],"comments":null,"title":"X4","info":{"declType":"data","dataDeclType":"data","typeArguments":[]},"sourceSpan":{"start":[7,1],"name":"src/DeclOrderNoExportList.purs","end":[7,8]}},{"children":[],"comments":null,"title":"A","info":{"fundeps":[],"arguments":[],"declType":"typeClass","superclasses":[]},"sourceSpan":{"start":[9,1],"name":"src/DeclOrderNoExportList.purs","end":[9,8]}},{"children":[],"comments":null,"title":"B","info":{"fundeps":[],"arguments":[],"declType":"typeClass","superclasses":[]},"sourceSpan":{"start":[10,1],"name":"src/DeclOrderNoExportList.purs","end":[10,8]}}]}
+{"comments":null,"declarations":[{"children":[],"comments":null,"info":{"declType":"value","type":{"annotation":[],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}},"kind":null,"sourceSpan":{"end":[3,7],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/DeclOrderNoExportList.purs","start":[3,1]},"title":"x1"},{"children":[],"comments":null,"info":{"declType":"value","type":{"annotation":[],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}},"kind":null,"sourceSpan":{"end":[4,7],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/DeclOrderNoExportList.purs","start":[4,1]},"title":"x3"},{"children":[],"comments":null,"info":{"dataDeclType":"data","declType":"data","roles":[],"typeArguments":[]},"kind":null,"sourceSpan":{"end":[6,8],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/DeclOrderNoExportList.purs","start":[6,1]},"title":"X2"},{"children":[],"comments":null,"info":{"dataDeclType":"data","declType":"data","roles":[],"typeArguments":[]},"kind":null,"sourceSpan":{"end":[7,8],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/DeclOrderNoExportList.purs","start":[7,1]},"title":"X4"},{"children":[],"comments":null,"info":{"arguments":[],"declType":"typeClass","fundeps":[],"superclasses":[]},"kind":null,"sourceSpan":{"end":[9,8],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/DeclOrderNoExportList.purs","start":[9,1]},"title":"A"},{"children":[],"comments":null,"info":{"arguments":[],"declType":"typeClass","fundeps":[],"superclasses":[]},"kind":null,"sourceSpan":{"end":[10,8],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/DeclOrderNoExportList.purs","start":[10,1]},"title":"B"}],"name":"DeclOrderNoExportList","reExports":[]}
diff --git a/tests/purs/docs/output/DeclOrderNoExportList/externs.json b/tests/purs/docs/output/DeclOrderNoExportList/externs.json
deleted file mode 100644
--- a/tests/purs/docs/output/DeclOrderNoExportList/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["DeclOrderNoExportList"],"efExports":[{"ValueRef":[{"start":[1,1],"name":"src/DeclOrderNoExportList.purs","end":[10,8]},{"Ident":"x1"}]},{"ValueRef":[{"start":[1,1],"name":"src/DeclOrderNoExportList.purs","end":[10,8]},{"Ident":"x3"}]},{"TypeRef":[{"start":[1,1],"name":"src/DeclOrderNoExportList.purs","end":[10,8]},"X2",[]]},{"TypeRef":[{"start":[1,1],"name":"src/DeclOrderNoExportList.purs","end":[10,8]},"X4",[]]},{"TypeClassRef":[{"start":[1,1],"name":"src/DeclOrderNoExportList.purs","end":[10,8]},"A"]},{"TypeClassRef":[{"start":[1,1],"name":"src/DeclOrderNoExportList.purs","end":[10,8]},"B"]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDValue":{"edValueName":{"Ident":"x1"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}}},{"EDValue":{"edValueName":{"Ident":"x3"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}}},{"EDType":{"edTypeName":"X2","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},"edTypeDeclarationKind":{"DataType":{"args":[],"ctors":[]}}}},{"EDType":{"edTypeName":"X4","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},"edTypeDeclarationKind":{"DataType":{"args":[],"ctors":[]}}}},{"EDType":{"edTypeName":"A","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"A","edTypeSynonymArguments":[],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}}},{"EDClass":{"edClassName":"A","edClassTypeArguments":[],"edClassMembers":[],"edClassConstraints":[],"edFunctionalDependencies":[]}},{"EDType":{"edTypeName":"B","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"B","edTypeSynonymArguments":[],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}}},{"EDClass":{"edClassName":"B","edClassTypeArguments":[],"edClassMembers":[],"edClassConstraints":[],"edFunctionalDependencies":[]}}],"efSourceSpan":{"start":[1,1],"name":"src/DeclOrderNoExportList.purs","end":[10,8]}}
diff --git a/tests/purs/docs/output/Desugar/docs.json b/tests/purs/docs/output/Desugar/docs.json
--- a/tests/purs/docs/output/Desugar/docs.json
+++ b/tests/purs/docs/output/Desugar/docs.json
@@ -1,1 +1,1 @@
-{"reExports":[],"name":"Desugar","comments":null,"declarations":[{"children":[{"comments":null,"title":"X","info":{"arguments":[{"annotation":[],"tag":"TypeVar","contents":"a"},{"annotation":[],"tag":"TypeVar","contents":"b"}],"declType":"dataConstructor"},"sourceSpan":null}],"comments":null,"title":"X","info":{"declType":"data","dataDeclType":"data","typeArguments":[["a",null],["b",null]]},"sourceSpan":{"start":[3,1],"name":"src/Desugar.purs","end":[3,19]}},{"children":[],"comments":null,"title":"test","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Desugar"],"X"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},null]},null]}},"sourceSpan":{"start":[5,1],"name":"src/Desugar.purs","end":[5,38]}}]}
+{"comments":null,"declarations":[{"children":[{"comments":null,"info":{"arguments":[{"annotation":[],"contents":"a","tag":"TypeVar"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"declType":"dataConstructor"},"sourceSpan":{"end":[3,15],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/Desugar.purs","start":[3,12]},"title":"X"}],"comments":null,"info":{"dataDeclType":"data","declType":"data","roles":["Representational","Representational"],"typeArguments":[["a",null],["b",null]]},"kind":null,"sourceSpan":{"end":[3,19],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/Desugar.purs","start":[3,1]},"title":"X"},{"children":[],"comments":null,"info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"b","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Desugar"],"X"],"tag":"TypeConstructor"},{"annotation":[],"contents":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"},"tag":"ParensInType"}],"tag":"TypeApp"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[5,38],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/Desugar.purs","start":[5,1]},"title":"test"}],"name":"Desugar","reExports":[]}
diff --git a/tests/purs/docs/output/Desugar/externs.json b/tests/purs/docs/output/Desugar/externs.json
deleted file mode 100644
--- a/tests/purs/docs/output/Desugar/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Desugar"],"efExports":[{"TypeRef":[{"start":[1,1],"name":"src/Desugar.purs","end":[8,9]},"X",["X"]]},{"ValueRef":[{"start":[1,1],"name":"src/Desugar.purs","end":[8,9]},{"Ident":"test"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDType":{"edTypeName":"X","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[3,16],"name":"src/Desugar.purs","end":[3,17]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[3,18],"name":"src/Desugar.purs","end":[3,19]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]},"edTypeDeclarationKind":{"DataType":{"args":[["a",{"annotation":[{"start":[3,16],"name":"src/Desugar.purs","end":[3,17]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["b",{"annotation":[{"start":[3,18],"name":"src/Desugar.purs","end":[3,19]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]],"ctors":[["X",[{"annotation":[{"start":[3,16],"name":"src/Desugar.purs","end":[3,17]},[]],"tag":"TypeVar","contents":"a"},{"annotation":[{"start":[3,18],"name":"src/Desugar.purs","end":[3,19]},[]],"tag":"TypeVar","contents":"b"}]]]}}}},{"EDDataConstructor":{"edDataCtorName":"X","edDataCtorOrigin":"data","edDataCtorTypeCtor":"X","edDataCtorType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[3,16],"name":"src/Desugar.purs","end":[3,17]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[3,18],"name":"src/Desugar.purs","end":[3,19]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Desugar"],"X"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"b"}]}]}]},null]},null]},"edDataCtorFields":[{"Ident":"value0"},{"Ident":"value1"}]}},{"EDValue":{"edValueName":{"Ident":"test"},"edValueType":{"annotation":[{"start":[5,9],"name":"src/Desugar.purs","end":[5,38]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[5,16],"name":"src/Desugar.purs","end":[5,38]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[5,21],"name":"src/Desugar.purs","end":[5,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[5,21],"name":"src/Desugar.purs","end":[5,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[5,34],"name":"src/Desugar.purs","end":[5,36]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[5,21],"name":"src/Desugar.purs","end":[5,33]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[5,21],"name":"src/Desugar.purs","end":[5,31]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[5,21],"name":"src/Desugar.purs","end":[5,22]},[]],"tag":"TypeConstructor","contents":[["Desugar"],"X"]},{"annotation":[{"start":[5,24],"name":"src/Desugar.purs","end":[5,30]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[5,24],"name":"src/Desugar.purs","end":[5,30]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[5,26],"name":"src/Desugar.purs","end":[5,28]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[5,24],"name":"src/Desugar.purs","end":[5,25]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[5,29],"name":"src/Desugar.purs","end":[5,30]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[5,32],"name":"src/Desugar.purs","end":[5,33]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[5,37],"name":"src/Desugar.purs","end":[5,38]},[]],"tag":"TypeVar","contents":"b"}]},0]},1]}}}],"efSourceSpan":{"start":[1,1],"name":"src/Desugar.purs","end":[8,9]}}
diff --git a/tests/purs/docs/output/DocComments/docs.json b/tests/purs/docs/output/DocComments/docs.json
--- a/tests/purs/docs/output/DocComments/docs.json
+++ b/tests/purs/docs/output/DocComments/docs.json
@@ -1,1 +1,1 @@
-{"reExports":[],"name":"DocComments","comments":null,"declarations":[{"children":[],"comments":"This declaration has a code block:\n\n    example == 0\n\nHere we are really testing that the leading whitespace is not stripped, as\nthis ensures that we don't accidentally change code blocks into normal\nparagraphs.\n","title":"example","info":{"declType":"value","type":{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}},"sourceSpan":{"start":[10,1],"name":"src/DocComments.purs","end":[10,15]}}]}
+{"comments":null,"declarations":[{"children":[],"comments":"This declaration has a code block:\n\n    example == 0\n\nHere we are really testing that the leading whitespace is not stripped, as\nthis ensures that we don't accidentally change code blocks into normal\nparagraphs.\n","info":{"declType":"value","type":{"annotation":[],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}},"kind":null,"sourceSpan":{"end":[10,15],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/DocComments.purs","start":[10,1]},"title":"example"}],"name":"DocComments","reExports":[]}
diff --git a/tests/purs/docs/output/DocComments/externs.json b/tests/purs/docs/output/DocComments/externs.json
deleted file mode 100644
--- a/tests/purs/docs/output/DocComments/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["DocComments"],"efExports":[{"ValueRef":[{"start":[1,1],"name":"src/DocComments.purs","end":[11,12]},{"Ident":"example"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDValue":{"edValueName":{"Ident":"example"},"edValueType":{"annotation":[{"start":[10,12],"name":"src/DocComments.purs","end":[10,15]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}}}],"efSourceSpan":{"start":[1,1],"name":"src/DocComments.purs","end":[11,12]}}
diff --git a/tests/purs/docs/output/DocCommentsClassMethod/docs.json b/tests/purs/docs/output/DocCommentsClassMethod/docs.json
new file mode 100644
--- /dev/null
+++ b/tests/purs/docs/output/DocCommentsClassMethod/docs.json
@@ -0,0 +1,1 @@
+{"comments":null,"declarations":[{"children":[{"comments":"class method comment\n","info":{"declType":"typeClassMember","type":{"annotation":[],"contents":"a","tag":"TypeVar"}},"sourceSpan":{"end":[5,11],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/DocCommentsClassMethod.purs","start":[5,3]},"title":"bar"},{"comments":null,"info":{"declType":"typeClassMember","type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"String"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}},"sourceSpan":{"end":[6,21],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/DocCommentsClassMethod.purs","start":[6,3]},"title":"baz"}],"comments":null,"info":{"arguments":[["a",null]],"declType":"typeClass","fundeps":[],"superclasses":[]},"kind":null,"sourceSpan":{"end":[6,21],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/DocCommentsClassMethod.purs","start":[3,1]},"title":"Foo"}],"name":"DocCommentsClassMethod","reExports":[]}
diff --git a/tests/purs/docs/output/DocCommentsDataConstructor/docs.json b/tests/purs/docs/output/DocCommentsDataConstructor/docs.json
new file mode 100644
--- /dev/null
+++ b/tests/purs/docs/output/DocCommentsDataConstructor/docs.json
@@ -0,0 +1,1 @@
+{"comments":null,"declarations":[{"children":[{"comments":"data constructor comment\n","info":{"arguments":[],"declType":"dataConstructor"},"sourceSpan":{"end":[5,8],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/DocCommentsDataConstructor.purs","start":[5,3]},"title":"Bar"},{"comments":null,"info":{"arguments":[],"declType":"dataConstructor"},"sourceSpan":{"end":[6,8],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/DocCommentsDataConstructor.purs","start":[6,3]},"title":"Baz"}],"comments":null,"info":{"dataDeclType":"data","declType":"data","roles":[],"typeArguments":[]},"kind":null,"sourceSpan":{"end":[6,8],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/DocCommentsDataConstructor.purs","start":[3,1]},"title":"Foo"},{"children":[{"comments":null,"info":{"arguments":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"declType":"dataConstructor"},"sourceSpan":{"end":[9,15],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/DocCommentsDataConstructor.purs","start":[9,3]},"title":"ComplexBar"},{"comments":"another data constructor comment\n","info":{"arguments":[{"annotation":[],"contents":"a","tag":"TypeVar"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"declType":"dataConstructor"},"sourceSpan":{"end":[11,15],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/DocCommentsDataConstructor.purs","start":[11,3]},"title":"ComplexBaz"}],"comments":null,"info":{"dataDeclType":"data","declType":"data","roles":["Representational","Representational"],"typeArguments":[["a",null],["b",null]]},"kind":null,"sourceSpan":{"end":[11,19],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/DocCommentsDataConstructor.purs","start":[8,1]},"title":"ComplexFoo"},{"children":[{"comments":"newtype data constructor comment\n","info":{"arguments":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Record"],"tag":"TypeConstructor"},{"annotation":[],"contents":["newtypeBar",{"annotation":[],"contents":[["Prim"],"String"],"tag":"TypeConstructor"},{"annotation":[],"tag":"REmpty"}],"tag":"RCons"}],"tag":"TypeApp"}],"declType":"dataConstructor"},"sourceSpan":{"end":[15,40],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/DocCommentsDataConstructor.purs","start":[15,3]},"title":"NewtypeFoo"}],"comments":null,"info":{"dataDeclType":"newtype","declType":"data","roles":[],"typeArguments":[]},"kind":null,"sourceSpan":{"end":[15,40],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/DocCommentsDataConstructor.purs","start":[13,1]},"title":"NewtypeFoo"}],"name":"DocCommentsDataConstructor","reExports":[]}
diff --git a/tests/purs/docs/output/DocCommentsMerge/docs.json b/tests/purs/docs/output/DocCommentsMerge/docs.json
new file mode 100644
--- /dev/null
+++ b/tests/purs/docs/output/DocCommentsMerge/docs.json
@@ -0,0 +1,1 @@
+{"comments":null,"declarations":[{"children":[{"comments":null,"info":{"arguments":[],"declType":"dataConstructor"},"sourceSpan":{"end":[4,25],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/DocCommentsMerge.purs","start":[4,15]},"title":"DataOnly"}],"comments":"decl\n","info":{"dataDeclType":"data","declType":"data","roles":[],"typeArguments":[]},"kind":null,"sourceSpan":{"end":[4,25],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/DocCommentsMerge.purs","start":[4,1]},"title":"DataOnly"},{"children":[{"comments":null,"info":{"arguments":[],"declType":"dataConstructor"},"sourceSpan":{"end":[8,33],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/DocCommentsMerge.purs","start":[8,19]},"title":"KindOnlyData"}],"comments":"kind\n","info":{"dataDeclType":"data","declType":"data","roles":[],"typeArguments":[]},"kind":null,"sourceSpan":{"end":[8,33],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/DocCommentsMerge.purs","start":[8,1]},"title":"KindOnlyData"},{"children":[{"comments":null,"info":{"arguments":[],"declType":"dataConstructor"},"sourceSpan":{"end":[13,31],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/DocCommentsMerge.purs","start":[13,18]},"title":"KindAndData"}],"comments":"kind\n\ndecl\n","info":{"dataDeclType":"data","declType":"data","roles":[],"typeArguments":[]},"kind":null,"sourceSpan":{"end":[13,31],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/DocCommentsMerge.purs","start":[13,1]},"title":"KindAndData"},{"children":[{"comments":null,"info":{"arguments":[{"annotation":[],"contents":"a","tag":"TypeVar"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"declType":"dataConstructor"},"sourceSpan":{"end":[15,37],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/DocCommentsMerge.purs","start":[15,23]},"title":"DataRoleOnly"}],"comments":"role\n","info":{"dataDeclType":"data","declType":"data","roles":["Representational","Representational"],"typeArguments":[["a",null],["b",null]]},"kind":null,"sourceSpan":{"end":[15,41],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/DocCommentsMerge.purs","start":[15,1]},"title":"DataRoleOnly"},{"children":[{"comments":null,"info":{"arguments":[{"annotation":[],"contents":"a","tag":"TypeVar"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"declType":"dataConstructor"},"sourceSpan":{"end":[20,35],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/DocCommentsMerge.purs","start":[20,22]},"title":"DataAndRole"}],"comments":"decl\n\nrole\n","info":{"dataDeclType":"data","declType":"data","roles":["Representational","Representational"],"typeArguments":[["a",null],["b",null]]},"kind":null,"sourceSpan":{"end":[20,39],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/DocCommentsMerge.purs","start":[20,1]},"title":"DataAndRole"},{"children":[{"comments":null,"info":{"arguments":[],"declType":"dataConstructor"},"sourceSpan":{"end":[26,51],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/DocCommentsMerge.purs","start":[26,29]},"title":"KindOnlyDataRoleOnly"}],"comments":"kind\n\nrole\n","info":{"dataDeclType":"data","declType":"data","roles":["Representational"],"typeArguments":[["a",null]]},"kind":null,"sourceSpan":{"end":[26,51],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/DocCommentsMerge.purs","start":[26,1]},"title":"KindOnlyDataRoleOnly"},{"children":[{"comments":null,"info":{"arguments":[],"declType":"dataConstructor"},"sourceSpan":{"end":[33,41],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/DocCommentsMerge.purs","start":[33,24]},"title":"KindDataAndRole"}],"comments":"kind\n\ndecl\n\nrole\n","info":{"dataDeclType":"data","declType":"data","roles":["Representational"],"typeArguments":[["a",null]]},"kind":null,"sourceSpan":{"end":[33,41],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/DocCommentsMerge.purs","start":[33,1]},"title":"KindDataAndRole"},{"children":[],"comments":"decl\n","info":{"dataDeclType":"data","declType":"data","roles":[],"typeArguments":[]},"kind":null,"sourceSpan":{"end":[40,36],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/DocCommentsMerge.purs","start":[40,1]},"title":"FFIOnly"},{"children":[],"comments":"role\n","info":{"dataDeclType":"data","declType":"data","roles":["Representational"],"typeArguments":[["t0",null]]},"kind":null,"sourceSpan":{"end":[42,48],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/DocCommentsMerge.purs","start":[42,1]},"title":"FFIRoleOnly"},{"children":[],"comments":"decl\n\nrole\n","info":{"dataDeclType":"data","declType":"data","roles":["Representational"],"typeArguments":[["t0",null]]},"kind":null,"sourceSpan":{"end":[47,47],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/DocCommentsMerge.purs","start":[47,1]},"title":"FFIAndRole"},{"children":[{"comments":null,"info":{"arguments":[{"annotation":[],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"declType":"dataConstructor"},"sourceSpan":{"end":[54,38],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/DocCommentsMerge.purs","start":[54,21]},"title":"NewtypeOnly"}],"comments":"decl\n","info":{"dataDeclType":"newtype","declType":"data","roles":[],"typeArguments":[]},"kind":null,"sourceSpan":{"end":[54,38],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/DocCommentsMerge.purs","start":[54,1]},"title":"NewtypeOnly"},{"children":[{"comments":null,"info":{"arguments":[{"annotation":[],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"declType":"dataConstructor"},"sourceSpan":{"end":[58,46],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/DocCommentsMerge.purs","start":[58,25]},"title":"KindOnlyNewtype"}],"comments":"kind\n","info":{"dataDeclType":"newtype","declType":"data","roles":[],"typeArguments":[]},"kind":null,"sourceSpan":{"end":[58,46],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/DocCommentsMerge.purs","start":[58,1]},"title":"KindOnlyNewtype"},{"children":[{"comments":null,"info":{"arguments":[{"annotation":[],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"declType":"dataConstructor"},"sourceSpan":{"end":[63,48],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/DocCommentsMerge.purs","start":[63,28]},"title":"KindAndNewtype"}],"comments":"kind\n\ndecl\n","info":{"dataDeclType":"newtype","declType":"data","roles":["Phantom","Phantom"],"typeArguments":[["a",null],["b",null]]},"kind":null,"sourceSpan":{"end":[63,48],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/DocCommentsMerge.purs","start":[63,1]},"title":"KindAndNewtype"},{"children":[{"comments":null,"info":{"arguments":[{"annotation":[],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"declType":"dataConstructor"},"sourceSpan":{"end":[65,50],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/DocCommentsMerge.purs","start":[65,29]},"title":"NewtypeRoleOnly"}],"comments":"role\n","info":{"dataDeclType":"newtype","declType":"data","roles":["Representational","Representational"],"typeArguments":[["a",null],["b",null]]},"kind":{"keyword":"newtype","kind":{"annotation":[],"contents":{"identifier":"k1","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"k2","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"k1","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"k2","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"sourceSpan":{"end":[65,50],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/DocCommentsMerge.purs","start":[65,1]},"title":"NewtypeRoleOnly"},{"children":[{"comments":null,"info":{"arguments":[{"annotation":[],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"declType":"dataConstructor"},"sourceSpan":{"end":[70,48],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/DocCommentsMerge.purs","start":[70,28]},"title":"NewtypeAndRole"}],"comments":"decl\n\nrole\n","info":{"dataDeclType":"newtype","declType":"data","roles":["Representational","Representational"],"typeArguments":[["a",null],["b",null]]},"kind":{"keyword":"newtype","kind":{"annotation":[],"contents":{"identifier":"k1","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"k2","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"k1","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"k2","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"sourceSpan":{"end":[70,48],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/DocCommentsMerge.purs","start":[70,1]},"title":"NewtypeAndRole"},{"children":[{"comments":null,"info":{"arguments":[{"annotation":[],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"declType":"dataConstructor"},"sourceSpan":{"end":[76,66],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/DocCommentsMerge.purs","start":[76,37]},"title":"KindOnlyNewtypeRoleOnly"}],"comments":"kind\n\nrole\n","info":{"dataDeclType":"newtype","declType":"data","roles":["Representational","Representational"],"typeArguments":[["a",null],["b",null]]},"kind":null,"sourceSpan":{"end":[76,66],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/DocCommentsMerge.purs","start":[76,1]},"title":"KindOnlyNewtypeRoleOnly"},{"children":[{"comments":null,"info":{"arguments":[{"annotation":[],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"declType":"dataConstructor"},"sourceSpan":{"end":[83,56],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/DocCommentsMerge.purs","start":[83,32]},"title":"KindNewtypeAndRole"}],"comments":"kind\n\ndecl\n\nrole\n","info":{"dataDeclType":"newtype","declType":"data","roles":["Representational","Representational"],"typeArguments":[["a",null],["b",null]]},"kind":null,"sourceSpan":{"end":[83,56],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/DocCommentsMerge.purs","start":[83,1]},"title":"KindNewtypeAndRole"},{"children":[],"comments":"decl\n","info":{"arguments":[],"declType":"typeSynonym","type":{"annotation":[],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}},"kind":null,"sourceSpan":{"end":[90,20],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/DocCommentsMerge.purs","start":[90,1]},"title":"TypeOnly"},{"children":[],"comments":"kind\n","info":{"arguments":[["a",null],["b",null]],"declType":"typeSynonym","type":{"annotation":[],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}},"kind":null,"sourceSpan":{"end":[94,28],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/DocCommentsMerge.purs","start":[94,1]},"title":"KindOnlyType"},{"children":[],"comments":"kind\n\ndecl\n","info":{"arguments":[["a",null],["b",null]],"declType":"typeSynonym","type":{"annotation":[],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}},"kind":null,"sourceSpan":{"end":[99,27],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/DocCommentsMerge.purs","start":[99,1]},"title":"KindAndType"},{"children":[],"comments":"decl\n","info":{"arguments":[],"declType":"typeClass","fundeps":[],"superclasses":[]},"kind":null,"sourceSpan":{"end":[106,16],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/DocCommentsMerge.purs","start":[106,1]},"title":"ClassOnly"},{"children":[],"comments":"kind\n","info":{"arguments":[],"declType":"typeClass","fundeps":[],"superclasses":[]},"kind":null,"sourceSpan":{"end":[110,20],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/DocCommentsMerge.purs","start":[110,1]},"title":"KindOnlyClass"},{"children":[{"comments":null,"info":{"declType":"typeClassMember","type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim"],"String"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[116,33],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/DocCommentsMerge.purs","start":[116,3]},"title":"fooKindAndClass"}],"comments":"kind\n\ndecl\n","info":{"arguments":[["a",null]],"declType":"typeClass","fundeps":[],"superclasses":[]},"kind":null,"sourceSpan":{"end":[116,33],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/DocCommentsMerge.purs","start":[115,1]},"title":"KindAndClass"}],"name":"DocCommentsMerge","reExports":[]}
diff --git a/tests/purs/docs/output/DuplicateNames/docs.json b/tests/purs/docs/output/DuplicateNames/docs.json
--- a/tests/purs/docs/output/DuplicateNames/docs.json
+++ b/tests/purs/docs/output/DuplicateNames/docs.json
@@ -1,1 +1,1 @@
-{"reExports":[],"name":"DuplicateNames","comments":null,"declarations":[{"children":[],"comments":null,"title":"unit","info":{"declType":"value","type":{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}},"sourceSpan":{"start":[8,1],"name":"src/DuplicateNames.purs","end":[8,12]}}]}
+{"comments":null,"declarations":[{"children":[],"comments":null,"info":{"declType":"value","type":{"annotation":[],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}},"kind":null,"sourceSpan":{"end":[8,12],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/DuplicateNames.purs","start":[8,1]},"title":"unit"}],"name":"DuplicateNames","reExports":[]}
diff --git a/tests/purs/docs/output/DuplicateNames/externs.json b/tests/purs/docs/output/DuplicateNames/externs.json
deleted file mode 100644
--- a/tests/purs/docs/output/DuplicateNames/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["DuplicateNames"],"efExports":[{"ReExportRef":[{"start":[1,1],"name":"src/DuplicateNames.purs","end":[9,9]},{"exportSourceImportedFrom":["Prelude"],"exportSourceDefinedIn":["Prelude"]},{"TypeRef":[{"start":[1,1],"name":"src/DuplicateNames.purs","end":[9,9]},"Unit",[]]}]},{"ValueRef":[{"start":[1,1],"name":"src/DuplicateNames.purs","end":[9,9]},{"Ident":"unit"}]},{"ModuleRef":[{"start":[2,5],"name":"src/DuplicateNames.purs","end":[2,26]},["DuplicateNames"]]},{"ModuleRef":[{"start":[3,5],"name":"src/DuplicateNames.purs","end":[3,19]},["Prelude"]]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Prelude"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[6,17],"name":"src/DuplicateNames.purs","end":[6,21]},"Unit",[]]}]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDValue":{"edValueName":{"Ident":"unit"},"edValueType":{"annotation":[{"start":[8,9],"name":"src/DuplicateNames.purs","end":[8,12]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}}}],"efSourceSpan":{"start":[1,1],"name":"src/DuplicateNames.purs","end":[9,9]}}
diff --git a/tests/purs/docs/output/Example/docs.json b/tests/purs/docs/output/Example/docs.json
--- a/tests/purs/docs/output/Example/docs.json
+++ b/tests/purs/docs/output/Example/docs.json
@@ -1,1 +1,1 @@
-{"reExports":[],"name":"Example","comments":null,"declarations":[]}
+{"comments":null,"declarations":[],"name":"Example","reExports":[]}
diff --git a/tests/purs/docs/output/Example/externs.json b/tests/purs/docs/output/Example/externs.json
deleted file mode 100644
--- a/tests/purs/docs/output/Example/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Example"],"efExports":[{"ReExportRef":[{"start":[1,1],"name":"src/Example.purs","end":[7,22]},{"exportSourceImportedFrom":["Prelude"],"exportSourceDefinedIn":["Prelude"]},{"TypeRef":[{"start":[1,1],"name":"src/Example.purs","end":[7,22]},"Unit",[]]}]},{"ReExportRef":[{"start":[1,1],"name":"src/Example.purs","end":[7,22]},{"exportSourceImportedFrom":["Example2"],"exportSourceDefinedIn":["Example2"]},{"ValueRef":[{"start":[1,1],"name":"src/Example.purs","end":[7,22]},{"Ident":"one"}]}]},{"ModuleRef":[{"start":[2,5],"name":"src/Example.purs","end":[2,19]},["Prelude"]]},{"ModuleRef":[{"start":[3,5],"name":"src/Example.purs","end":[3,20]},["Example2"]]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Prelude"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[6,17],"name":"src/Example.purs","end":[6,23]},"Unit",[]]}]},"eiImportedAs":null},{"eiModule":["Example2"],"eiImportType":{"Explicit":[{"ValueRef":[{"start":[7,18],"name":"src/Example.purs","end":[7,21]},{"Ident":"one"}]}]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[],"efSourceSpan":{"start":[1,1],"name":"src/Example.purs","end":[7,22]}}
diff --git a/tests/purs/docs/output/Example2/docs.json b/tests/purs/docs/output/Example2/docs.json
--- a/tests/purs/docs/output/Example2/docs.json
+++ b/tests/purs/docs/output/Example2/docs.json
@@ -1,1 +1,1 @@
-{"reExports":[],"name":"Example2","comments":null,"declarations":[{"children":[],"comments":null,"title":"one","info":{"declType":"value","type":{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}},"sourceSpan":{"start":[3,1],"name":"src/Example2.purs","end":[3,11]}},{"children":[],"comments":null,"title":"two","info":{"declType":"value","type":{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}},"sourceSpan":{"start":[6,1],"name":"src/Example2.purs","end":[6,11]}}]}
+{"comments":null,"declarations":[{"children":[],"comments":null,"info":{"declType":"value","type":{"annotation":[],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}},"kind":null,"sourceSpan":{"end":[3,11],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/Example2.purs","start":[3,1]},"title":"one"},{"children":[],"comments":null,"info":{"declType":"value","type":{"annotation":[],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}},"kind":null,"sourceSpan":{"end":[6,11],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/Example2.purs","start":[6,1]},"title":"two"}],"name":"Example2","reExports":[]}
diff --git a/tests/purs/docs/output/Example2/externs.json b/tests/purs/docs/output/Example2/externs.json
deleted file mode 100644
--- a/tests/purs/docs/output/Example2/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Example2"],"efExports":[{"ValueRef":[{"start":[1,1],"name":"src/Example2.purs","end":[7,8]},{"Ident":"one"}]},{"ValueRef":[{"start":[1,1],"name":"src/Example2.purs","end":[7,8]},{"Ident":"two"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDValue":{"edValueName":{"Ident":"one"},"edValueType":{"annotation":[{"start":[3,8],"name":"src/Example2.purs","end":[3,11]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}}},{"EDValue":{"edValueName":{"Ident":"two"},"edValueType":{"annotation":[{"start":[6,8],"name":"src/Example2.purs","end":[6,11]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}}}],"efSourceSpan":{"start":[1,1],"name":"src/Example2.purs","end":[7,8]}}
diff --git a/tests/purs/docs/output/ExplicitExport/docs.json b/tests/purs/docs/output/ExplicitExport/docs.json
--- a/tests/purs/docs/output/ExplicitExport/docs.json
+++ b/tests/purs/docs/output/ExplicitExport/docs.json
@@ -1,1 +1,1 @@
-{"reExports":[],"name":"ExplicitExport","comments":null,"declarations":[{"children":[],"comments":null,"title":"one","info":{"declType":"value","type":{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}},"sourceSpan":{"start":[3,1],"name":"src/ExplicitExport.purs","end":[3,11]}}]}
+{"comments":null,"declarations":[{"children":[],"comments":null,"info":{"declType":"value","type":{"annotation":[],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}},"kind":null,"sourceSpan":{"end":[3,11],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/ExplicitExport.purs","start":[3,1]},"title":"one"}],"name":"ExplicitExport","reExports":[]}
diff --git a/tests/purs/docs/output/ExplicitExport/externs.json b/tests/purs/docs/output/ExplicitExport/externs.json
deleted file mode 100644
--- a/tests/purs/docs/output/ExplicitExport/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["ExplicitExport"],"efExports":[{"ValueRef":[{"start":[1,1],"name":"src/ExplicitExport.purs","end":[7,8]},{"Ident":"one"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDValue":{"edValueName":{"Ident":"one"},"edValueType":{"annotation":[{"start":[3,8],"name":"src/ExplicitExport.purs","end":[3,11]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}}}],"efSourceSpan":{"start":[1,1],"name":"src/ExplicitExport.purs","end":[7,8]}}
diff --git a/tests/purs/docs/output/ExplicitTypeSignatures/docs.json b/tests/purs/docs/output/ExplicitTypeSignatures/docs.json
--- a/tests/purs/docs/output/ExplicitTypeSignatures/docs.json
+++ b/tests/purs/docs/output/ExplicitTypeSignatures/docs.json
@@ -1,1 +1,1 @@
-{"reExports":[],"name":"ExplicitTypeSignatures","comments":null,"declarations":[{"children":[],"comments":null,"title":"explicit","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["something",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"something"}]},{"annotation":[],"tag":"TypeVar","contents":"something"}]},null]}},"sourceSpan":{"start":[6,1],"name":"src/ExplicitTypeSignatures.purs","end":[6,53]}},{"children":[],"comments":null,"title":"anInt","info":{"declType":"value","type":{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}},"sourceSpan":{"start":[12,1],"name":"src/ExplicitTypeSignatures.purs","end":[12,11]}},{"children":[],"comments":null,"title":"aNumber","info":{"declType":"value","type":{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}},"sourceSpan":{"start":[16,1],"name":"src/ExplicitTypeSignatures.purs","end":[16,14]}}]}
+{"comments":null,"declarations":[{"children":[],"comments":null,"info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"something","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"something","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"something","tag":"TypeVar"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[6,53],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/ExplicitTypeSignatures.purs","start":[6,1]},"title":"explicit"},{"children":[],"comments":null,"info":{"declType":"value","type":{"annotation":[],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}},"kind":null,"sourceSpan":{"end":[12,11],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/ExplicitTypeSignatures.purs","start":[12,1]},"title":"anInt"},{"children":[],"comments":null,"info":{"declType":"value","type":{"annotation":[],"contents":[["Prim"],"Number"],"tag":"TypeConstructor"}},"kind":null,"sourceSpan":{"end":[16,14],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/ExplicitTypeSignatures.purs","start":[16,1]},"title":"aNumber"}],"name":"ExplicitTypeSignatures","reExports":[]}
diff --git a/tests/purs/docs/output/ExplicitTypeSignatures/externs.json b/tests/purs/docs/output/ExplicitTypeSignatures/externs.json
deleted file mode 100644
--- a/tests/purs/docs/output/ExplicitTypeSignatures/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["ExplicitTypeSignatures"],"efExports":[{"ValueRef":[{"start":[2,1],"name":"src/ExplicitTypeSignatures.purs","end":[16,14]},{"Ident":"explicit"}]},{"ValueRef":[{"start":[2,1],"name":"src/ExplicitTypeSignatures.purs","end":[16,14]},{"Ident":"anInt"}]},{"ValueRef":[{"start":[2,1],"name":"src/ExplicitTypeSignatures.purs","end":[16,14]},{"Ident":"aNumber"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDValue":{"edValueName":{"Ident":"explicit"},"edValueType":{"annotation":[{"start":[6,13],"name":"src/ExplicitTypeSignatures.purs","end":[6,53]},[]],"tag":"ForAll","contents":["something",{"annotation":[{"start":[6,31],"name":"src/ExplicitTypeSignatures.purs","end":[6,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[6,31],"name":"src/ExplicitTypeSignatures.purs","end":[6,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[6,41],"name":"src/ExplicitTypeSignatures.purs","end":[6,43]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[6,31],"name":"src/ExplicitTypeSignatures.purs","end":[6,40]},[]],"tag":"TypeVar","contents":"something"}]},{"annotation":[{"start":[6,44],"name":"src/ExplicitTypeSignatures.purs","end":[6,53]},[]],"tag":"TypeVar","contents":"something"}]},0]}}},{"EDValue":{"edValueName":{"Ident":"anInt"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}}},{"EDValue":{"edValueName":{"Ident":"aNumber"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}}}],"efSourceSpan":{"start":[2,1],"name":"src/ExplicitTypeSignatures.purs","end":[16,14]}}
diff --git a/tests/purs/docs/output/ImportedTwice/docs.json b/tests/purs/docs/output/ImportedTwice/docs.json
--- a/tests/purs/docs/output/ImportedTwice/docs.json
+++ b/tests/purs/docs/output/ImportedTwice/docs.json
@@ -1,1 +1,1 @@
-{"reExports":[],"name":"ImportedTwice","comments":null,"declarations":[]}
+{"comments":null,"declarations":[],"name":"ImportedTwice","reExports":[]}
diff --git a/tests/purs/docs/output/ImportedTwice/externs.json b/tests/purs/docs/output/ImportedTwice/externs.json
deleted file mode 100644
--- a/tests/purs/docs/output/ImportedTwice/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["ImportedTwice"],"efExports":[{"ReExportRef":[{"start":[6,1],"name":"src/ImportedTwice.purs","end":[13,22]},{"exportSourceImportedFrom":["ImportedTwiceB"],"exportSourceDefinedIn":["ImportedTwiceB"]},{"ValueRef":[{"start":[6,1],"name":"src/ImportedTwice.purs","end":[13,22]},{"Ident":"foo"}]}]},{"ModuleRef":[{"start":[7,5],"name":"src/ImportedTwice.purs","end":[7,26]},["ImportedTwiceA"]]},{"ModuleRef":[{"start":[8,5],"name":"src/ImportedTwice.purs","end":[8,26]},["ImportedTwiceB"]]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["ImportedTwiceA"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["ImportedTwiceB"],"eiImportType":{"Implicit":[]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[],"efSourceSpan":{"start":[6,1],"name":"src/ImportedTwice.purs","end":[13,22]}}
diff --git a/tests/purs/docs/output/ImportedTwiceA/docs.json b/tests/purs/docs/output/ImportedTwiceA/docs.json
--- a/tests/purs/docs/output/ImportedTwiceA/docs.json
+++ b/tests/purs/docs/output/ImportedTwiceA/docs.json
@@ -1,1 +1,1 @@
-{"reExports":[],"name":"ImportedTwiceA","comments":null,"declarations":[]}
+{"comments":null,"declarations":[],"name":"ImportedTwiceA","reExports":[]}
diff --git a/tests/purs/docs/output/ImportedTwiceA/externs.json b/tests/purs/docs/output/ImportedTwiceA/externs.json
deleted file mode 100644
--- a/tests/purs/docs/output/ImportedTwiceA/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["ImportedTwiceA"],"efExports":[{"ReExportRef":[{"start":[1,1],"name":"src/ImportedTwiceA.purs","end":[8,8]},{"exportSourceImportedFrom":["ImportedTwiceB"],"exportSourceDefinedIn":["ImportedTwiceB"]},{"ValueRef":[{"start":[1,1],"name":"src/ImportedTwiceA.purs","end":[8,8]},{"Ident":"foo"}]}]},{"ModuleRef":[{"start":[2,5],"name":"src/ImportedTwiceA.purs","end":[2,26]},["ImportedTwiceB"]]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["ImportedTwiceB"],"eiImportType":{"Implicit":[]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[],"efSourceSpan":{"start":[1,1],"name":"src/ImportedTwiceA.purs","end":[8,8]}}
diff --git a/tests/purs/docs/output/ImportedTwiceB/docs.json b/tests/purs/docs/output/ImportedTwiceB/docs.json
--- a/tests/purs/docs/output/ImportedTwiceB/docs.json
+++ b/tests/purs/docs/output/ImportedTwiceB/docs.json
@@ -1,1 +1,1 @@
-{"reExports":[],"name":"ImportedTwiceB","comments":null,"declarations":[{"children":[],"comments":null,"title":"foo","info":{"declType":"value","type":{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}},"sourceSpan":{"start":[3,1],"name":"src/ImportedTwiceB.purs","end":[3,11]}}]}
+{"comments":null,"declarations":[{"children":[],"comments":null,"info":{"declType":"value","type":{"annotation":[],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}},"kind":null,"sourceSpan":{"end":[3,11],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/ImportedTwiceB.purs","start":[3,1]},"title":"foo"}],"name":"ImportedTwiceB","reExports":[]}
diff --git a/tests/purs/docs/output/ImportedTwiceB/externs.json b/tests/purs/docs/output/ImportedTwiceB/externs.json
deleted file mode 100644
--- a/tests/purs/docs/output/ImportedTwiceB/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["ImportedTwiceB"],"efExports":[{"ValueRef":[{"start":[1,1],"name":"src/ImportedTwiceB.purs","end":[4,8]},{"Ident":"foo"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDValue":{"edValueName":{"Ident":"foo"},"edValueType":{"annotation":[{"start":[3,8],"name":"src/ImportedTwiceB.purs","end":[3,11]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}}}],"efSourceSpan":{"start":[1,1],"name":"src/ImportedTwiceB.purs","end":[4,8]}}
diff --git a/tests/purs/docs/output/KindSignatureDocs/docs.json b/tests/purs/docs/output/KindSignatureDocs/docs.json
new file mode 100644
--- /dev/null
+++ b/tests/purs/docs/output/KindSignatureDocs/docs.json
@@ -0,0 +1,1 @@
+{"comments":null,"declarations":[{"children":[{"comments":null,"info":{"arguments":[],"declType":"dataConstructor"},"sourceSpan":{"end":[4,35],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/KindSignatureDocs.purs","start":[4,21]},"title":"DKindAndType"}],"comments":null,"info":{"dataDeclType":"data","declType":"data","roles":["Phantom"],"typeArguments":[["a",null]]},"kind":{"keyword":"data","kind":{"annotation":[],"contents":{"identifier":"k","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"k","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"sourceSpan":{"end":[4,35],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/KindSignatureDocs.purs","start":[4,1]},"title":"DKindAndType"},{"children":[],"comments":null,"info":{"arguments":[["a",null]],"declType":"typeSynonym","type":{"annotation":[],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}},"kind":{"keyword":"type","kind":{"annotation":[],"contents":{"identifier":"k","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"k","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"sourceSpan":{"end":[7,26],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/KindSignatureDocs.purs","start":[7,1]},"title":"TKindAndType"},{"children":[{"comments":null,"info":{"arguments":[{"annotation":[],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"declType":"dataConstructor"},"sourceSpan":{"end":[10,42],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/KindSignatureDocs.purs","start":[10,24]},"title":"NKindAndType"}],"comments":null,"info":{"dataDeclType":"newtype","declType":"data","roles":["Phantom"],"typeArguments":[["a",null]]},"kind":{"keyword":"newtype","kind":{"annotation":[],"contents":{"identifier":"k","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"k","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"sourceSpan":{"end":[10,42],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/KindSignatureDocs.purs","start":[10,1]},"title":"NKindAndType"},{"children":[{"comments":null,"info":{"declType":"typeClassMember","type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":"a","tag":"TypeVar"},{"annotation":[],"contents":"k","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim"],"String"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[14,34],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/KindSignatureDocs.purs","start":[14,3]},"title":"fooKindAndType"}],"comments":null,"info":{"arguments":[["a",null],["k",null]],"declType":"typeClass","fundeps":[],"superclasses":[]},"kind":{"keyword":"class","kind":{"annotation":[],"contents":{"identifier":"k","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"k","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"},"tag":"ParensInType"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"k","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim"],"Constraint"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"sourceSpan":{"end":[14,34],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/KindSignatureDocs.purs","start":[13,1]},"title":"CKindAndType"},{"children":[{"comments":null,"info":{"arguments":[],"declType":"dataConstructor"},"sourceSpan":{"end":[19,29],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/KindSignatureDocs.purs","start":[19,18]},"title":"DKindOnly"}],"comments":null,"info":{"dataDeclType":"data","declType":"data","roles":["Phantom"],"typeArguments":[["a",null]]},"kind":{"keyword":"data","kind":{"annotation":[],"contents":{"identifier":"k","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"k","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"sourceSpan":{"end":[19,29],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/KindSignatureDocs.purs","start":[19,1]},"title":"DKindOnly"},{"children":[],"comments":null,"info":{"arguments":[["a",null]],"declType":"typeSynonym","type":{"annotation":[],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}},"kind":{"keyword":"type","kind":{"annotation":[],"contents":{"identifier":"k","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"k","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"sourceSpan":{"end":[22,23],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/KindSignatureDocs.purs","start":[22,1]},"title":"TKindOnly"},{"children":[{"comments":null,"info":{"arguments":[{"annotation":[],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"declType":"dataConstructor"},"sourceSpan":{"end":[25,36],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/KindSignatureDocs.purs","start":[25,21]},"title":"NKindOnly"}],"comments":null,"info":{"dataDeclType":"newtype","declType":"data","roles":["Phantom"],"typeArguments":[["a",null]]},"kind":{"keyword":"newtype","kind":{"annotation":[],"contents":{"identifier":"k","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"k","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"sourceSpan":{"end":[25,36],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/KindSignatureDocs.purs","start":[25,1]},"title":"NKindOnly"},{"children":[{"comments":null,"info":{"declType":"typeClassMember","type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":"a","tag":"TypeVar"},{"annotation":[],"contents":"k","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim"],"String"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[29,31],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/KindSignatureDocs.purs","start":[29,3]},"title":"fooKindOnly"}],"comments":null,"info":{"arguments":[["a",null],["k",null]],"declType":"typeClass","fundeps":[],"superclasses":[]},"kind":{"keyword":"class","kind":{"annotation":[],"contents":{"identifier":"k","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"k","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"},"tag":"ParensInType"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"k","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim"],"Constraint"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"sourceSpan":{"end":[29,31],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/KindSignatureDocs.purs","start":[28,1]},"title":"CKindOnly"},{"children":[{"comments":null,"info":{"arguments":[],"declType":"dataConstructor"},"sourceSpan":{"end":[34,29],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/KindSignatureDocs.purs","start":[34,18]},"title":"DTypeOnly"}],"comments":null,"info":{"dataDeclType":"data","declType":"data","roles":["Phantom"],"typeArguments":[["a",null]]},"kind":{"keyword":"data","kind":{"annotation":[],"contents":{"identifier":"k","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"k","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"sourceSpan":{"end":[34,29],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/KindSignatureDocs.purs","start":[34,1]},"title":"DTypeOnly"},{"children":[],"comments":null,"info":{"arguments":[["a",null]],"declType":"typeSynonym","type":{"annotation":[],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}},"kind":{"keyword":"type","kind":{"annotation":[],"contents":{"identifier":"k","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"k","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"sourceSpan":{"end":[37,23],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/KindSignatureDocs.purs","start":[37,1]},"title":"TTypeOnly"},{"children":[{"comments":null,"info":{"arguments":[{"annotation":[],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"declType":"dataConstructor"},"sourceSpan":{"end":[40,36],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/KindSignatureDocs.purs","start":[40,21]},"title":"NTypeOnly"}],"comments":null,"info":{"dataDeclType":"newtype","declType":"data","roles":["Phantom"],"typeArguments":[["a",null]]},"kind":{"keyword":"newtype","kind":{"annotation":[],"contents":{"identifier":"k","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"k","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"sourceSpan":{"end":[40,36],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/KindSignatureDocs.purs","start":[40,1]},"title":"NTypeOnly"},{"children":[{"comments":null,"info":{"declType":"typeClassMember","type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":"a","tag":"TypeVar"},{"annotation":[],"contents":"k","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim"],"String"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[44,31],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/KindSignatureDocs.purs","start":[44,3]},"title":"fooTypeOnly"}],"comments":null,"info":{"arguments":[["a",null],["k",null]],"declType":"typeClass","fundeps":[],"superclasses":[]},"kind":{"keyword":"class","kind":{"annotation":[],"contents":{"identifier":"k","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"k","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"},"tag":"ParensInType"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"k","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim"],"Constraint"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"sourceSpan":{"end":[44,31],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/KindSignatureDocs.purs","start":[43,1]},"title":"CTypeOnly"},{"children":[{"comments":null,"info":{"arguments":[],"declType":"dataConstructor"},"sourceSpan":{"end":[48,29],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/KindSignatureDocs.purs","start":[48,18]},"title":"DImplicit"}],"comments":null,"info":{"dataDeclType":"data","declType":"data","roles":["Phantom"],"typeArguments":[["a",null]]},"kind":{"keyword":"data","kind":{"annotation":[],"contents":{"identifier":"k","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"k","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"sourceSpan":{"end":[48,29],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/KindSignatureDocs.purs","start":[48,1]},"title":"DImplicit"},{"children":[],"comments":null,"info":{"arguments":[["a",null]],"declType":"typeSynonym","type":{"annotation":[],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}},"kind":{"keyword":"type","kind":{"annotation":[],"contents":{"identifier":"k","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"k","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"sourceSpan":{"end":[50,23],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/KindSignatureDocs.purs","start":[50,1]},"title":"TImplicit"},{"children":[{"comments":null,"info":{"arguments":[{"annotation":[],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"declType":"dataConstructor"},"sourceSpan":{"end":[52,36],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/KindSignatureDocs.purs","start":[52,21]},"title":"NImplicit"}],"comments":null,"info":{"dataDeclType":"newtype","declType":"data","roles":["Phantom"],"typeArguments":[["a",null]]},"kind":{"keyword":"newtype","kind":{"annotation":[],"contents":{"identifier":"k","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"k","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"sourceSpan":{"end":[52,36],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/KindSignatureDocs.purs","start":[52,1]},"title":"NImplicit"},{"children":[{"comments":null,"info":{"declType":"typeClassMember","type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":"a","tag":"TypeVar"},{"annotation":[],"contents":"k","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim"],"String"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[55,31],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/KindSignatureDocs.purs","start":[55,3]},"title":"fooImplicit"}],"comments":null,"info":{"arguments":[["a",null],["k",null]],"declType":"typeClass","fundeps":[],"superclasses":[]},"kind":{"keyword":"class","kind":{"annotation":[],"contents":{"identifier":"k1","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"k1","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"k1","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim"],"Constraint"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"sourceSpan":{"end":[55,31],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/KindSignatureDocs.purs","start":[54,1]},"title":"CImplicit"},{"children":[{"comments":null,"info":{"arguments":[{"annotation":[],"contents":"a","tag":"TypeVar"},{"annotation":[],"contents":"b","tag":"TypeVar"},{"annotation":[],"contents":"c","tag":"TypeVar"}],"declType":"dataConstructor"},"sourceSpan":{"end":[59,29],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/KindSignatureDocs.purs","start":[59,20]},"title":"DHidden"}],"comments":null,"info":{"dataDeclType":"data","declType":"data","roles":["Representational","Representational","Representational"],"typeArguments":[["a",null],["b",null],["c",null]]},"kind":null,"sourceSpan":{"end":[59,35],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/KindSignatureDocs.purs","start":[59,1]},"title":"DHidden"},{"children":[],"comments":null,"info":{"dataDeclType":"data","declType":"data","roles":[],"typeArguments":[]},"kind":null,"sourceSpan":{"end":[61,14],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/KindSignatureDocs.purs","start":[61,1]},"title":"DNothing"},{"children":[],"comments":null,"info":{"arguments":[["a",null],["b",null],["c",null]],"declType":"typeSynonym","type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["KindSignatureDocs"],"DHidden"],"tag":"TypeConstructor"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"c","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}},"kind":null,"sourceSpan":{"end":[63,35],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/KindSignatureDocs.purs","start":[63,1]},"title":"THidden"},{"children":[{"comments":null,"info":{"arguments":[{"annotation":[],"contents":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["KindSignatureDocs"],"DHidden"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"c","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"},"tag":"ParensInType"}],"declType":"dataConstructor"},"sourceSpan":{"end":[65,48],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/KindSignatureDocs.purs","start":[65,23]},"title":"NHidden"}],"comments":null,"info":{"dataDeclType":"newtype","declType":"data","roles":["Representational","Representational","Representational"],"typeArguments":[["a",null],["b",null],["c",null]]},"kind":null,"sourceSpan":{"end":[65,48],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/KindSignatureDocs.purs","start":[65,1]},"title":"NHidden"},{"children":[{"comments":null,"info":{"declType":"typeClassMember","type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"c","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim"],"String"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[68,37],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/KindSignatureDocs.purs","start":[68,3]},"title":"fooHidden"}],"comments":null,"info":{"arguments":[["a",null],["b",null],["c",null]],"declType":"typeClass","fundeps":[],"superclasses":[]},"kind":null,"sourceSpan":{"end":[68,37],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/KindSignatureDocs.purs","start":[67,1]},"title":"CHidden"},{"children":[],"comments":null,"info":{"arguments":[],"declType":"typeClass","fundeps":[],"superclasses":[]},"kind":null,"sourceSpan":{"end":[70,15],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/KindSignatureDocs.purs","start":[70,1]},"title":"CNothing"},{"children":[],"comments":null,"info":{"dataDeclType":"data","declType":"data","roles":["Nominal","Nominal"],"typeArguments":[["t0",null],["t1",null]]},"kind":null,"sourceSpan":{"end":[74,55],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/KindSignatureDocs.purs","start":[74,1]},"title":"FFI_Hidden"},{"children":[],"comments":null,"info":{"dataDeclType":"data","declType":"data","roles":["Nominal"],"typeArguments":[["t0",null]]},"kind":{"keyword":"data","kind":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"},"tag":"ParensInType"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[75,56],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/KindSignatureDocs.purs","start":[75,1]},"title":"FFI_Shown"},{"children":[],"comments":null,"info":{"dataDeclType":"data","declType":"data","roles":["Nominal"],"typeArguments":[["t0",null]]},"kind":null,"sourceSpan":{"end":[79,63],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/KindSignatureDocs.purs","start":[79,1]},"title":"FFI_RedundantParenthesis"},{"children":[{"comments":null,"info":{"arguments":[],"declType":"dataConstructor"},"sourceSpan":{"end":[82,59],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/KindSignatureDocs.purs","start":[82,33]},"title":"DataRedundantParenthesis"}],"comments":null,"info":{"dataDeclType":"data","declType":"data","roles":["Phantom"],"typeArguments":[["a",null]]},"kind":null,"sourceSpan":{"end":[82,59],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/KindSignatureDocs.purs","start":[82,1]},"title":"DataRedundantParenthesis"},{"children":[],"comments":null,"info":{"arguments":[["a",null]],"declType":"typeClass","fundeps":[],"superclasses":[]},"kind":null,"sourceSpan":{"end":[85,34],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/KindSignatureDocs.purs","start":[85,1]},"title":"ClassRedundantParenthesis"},{"children":[{"comments":null,"info":{"arguments":[],"declType":"dataConstructor"},"sourceSpan":{"end":[88,41],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/KindSignatureDocs.purs","start":[88,25]},"title":"DataHeadParens"}],"comments":null,"info":{"dataDeclType":"data","declType":"data","roles":["Phantom","Phantom"],"typeArguments":[["a",null],["b",null]]},"kind":null,"sourceSpan":{"end":[88,41],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/KindSignatureDocs.purs","start":[88,1]},"title":"DataHeadParens"},{"children":[{"comments":null,"info":{"arguments":[],"declType":"dataConstructor"},"sourceSpan":{"end":[91,41],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/KindSignatureDocs.purs","start":[91,25]},"title":"DataTailParens"}],"comments":null,"info":{"dataDeclType":"data","declType":"data","roles":["Phantom","Phantom"],"typeArguments":[["a",null],["b",null]]},"kind":null,"sourceSpan":{"end":[91,41],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/KindSignatureDocs.purs","start":[91,1]},"title":"DataTailParens"},{"children":[{"comments":null,"info":{"arguments":[],"declType":"dataConstructor"},"sourceSpan":{"end":[94,43],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/KindSignatureDocs.purs","start":[94,26]},"title":"DataWholeParens"}],"comments":null,"info":{"dataDeclType":"data","declType":"data","roles":["Phantom","Phantom"],"typeArguments":[["a",null],["b",null]]},"kind":null,"sourceSpan":{"end":[94,43],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/KindSignatureDocs.purs","start":[94,1]},"title":"DataWholeParens"},{"children":[{"comments":null,"info":{"arguments":[],"declType":"dataConstructor"},"sourceSpan":{"end":[97,37],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/KindSignatureDocs.purs","start":[97,21]},"title":"DataSelfParens"}],"comments":null,"info":{"dataDeclType":"data","declType":"data","roles":[],"typeArguments":[]},"kind":null,"sourceSpan":{"end":[97,37],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/KindSignatureDocs.purs","start":[97,1]},"title":"DataSelfParens"},{"children":[],"comments":null,"info":{"arguments":[],"declType":"typeClass","fundeps":[],"superclasses":[]},"kind":null,"sourceSpan":{"end":[100,22],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/KindSignatureDocs.purs","start":[100,1]},"title":"ClassSelfParens"},{"children":[{"comments":null,"info":{"arguments":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"declType":"dataConstructor"},"sourceSpan":{"end":[102,57],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/KindSignatureDocs.purs","start":[102,37]},"title":"DataKindAnnotation"}],"comments":null,"info":{"dataDeclType":"data","declType":"data","roles":["Representational"],"typeArguments":[["a",{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}]]},"kind":null,"sourceSpan":{"end":[102,59],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/KindSignatureDocs.purs","start":[102,1]},"title":"DataKindAnnotation"},{"children":[{"comments":null,"info":{"arguments":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"declType":"dataConstructor"},"sourceSpan":{"end":[104,79],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/KindSignatureDocs.purs","start":[104,49]},"title":"DataKindAnnotationWithParens"}],"comments":null,"info":{"dataDeclType":"data","declType":"data","roles":["Representational"],"typeArguments":[["a",{"annotation":[],"contents":{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"tag":"ParensInType"}]]},"kind":null,"sourceSpan":{"end":[104,81],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/KindSignatureDocs.purs","start":[104,1]},"title":"DataKindAnnotationWithParens"},{"children":[{"comments":null,"info":{"arguments":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"declType":"dataConstructor"},"sourceSpan":{"end":[107,41],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/KindSignatureDocs.purs","start":[107,24]},"title":"FunctionParens1"}],"comments":null,"info":{"dataDeclType":"data","declType":"data","roles":["Representational"],"typeArguments":[["a",null]]},"kind":null,"sourceSpan":{"end":[107,43],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/KindSignatureDocs.purs","start":[107,1]},"title":"FunctionParens1"},{"children":[{"comments":null,"info":{"arguments":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"declType":"dataConstructor"},"sourceSpan":{"end":[110,41],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/KindSignatureDocs.purs","start":[110,24]},"title":"FunctionParens2"}],"comments":null,"info":{"dataDeclType":"data","declType":"data","roles":["Representational"],"typeArguments":[["a",null]]},"kind":null,"sourceSpan":{"end":[110,43],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/KindSignatureDocs.purs","start":[110,1]},"title":"FunctionParens2"},{"children":[{"comments":null,"info":{"arguments":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"declType":"dataConstructor"},"sourceSpan":{"end":[113,41],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/KindSignatureDocs.purs","start":[113,24]},"title":"FunctionParens3"}],"comments":null,"info":{"dataDeclType":"data","declType":"data","roles":["Representational"],"typeArguments":[["a",null]]},"kind":null,"sourceSpan":{"end":[113,43],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/KindSignatureDocs.purs","start":[113,1]},"title":"FunctionParens3"},{"children":[{"comments":null,"info":{"arguments":[{"annotation":[],"contents":{"annotation":[],"contents":[{"annotation":[],"contents":"f","tag":"TypeVar"},{"annotation":[],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"},"tag":"ParensInType"},{"annotation":[],"contents":"a","tag":"TypeVar"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"declType":"dataConstructor"},"sourceSpan":{"end":[116,27],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/KindSignatureDocs.purs","start":[116,19]},"title":"DShown"}],"comments":null,"info":{"dataDeclType":"data","declType":"data","roles":["Representational","Representational","Representational"],"typeArguments":[["a",null],["b",null],["f",null]]},"kind":{"keyword":"data","kind":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[116,39],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/KindSignatureDocs.purs","start":[116,1]},"title":"DShown"},{"children":[],"comments":null,"info":{"arguments":[["f",null],["b",null],["c",null]],"declType":"typeSynonym","type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["KindSignatureDocs"],"DShown"],"tag":"TypeConstructor"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"c","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"f","tag":"TypeVar"}],"tag":"TypeApp"}},"kind":{"keyword":"type","kind":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[118,33],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/KindSignatureDocs.purs","start":[118,1]},"title":"TShown"},{"children":[{"comments":null,"info":{"arguments":[{"annotation":[],"contents":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["KindSignatureDocs"],"DShown"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"c","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"f","tag":"TypeVar"}],"tag":"TypeApp"},"tag":"ParensInType"}],"declType":"dataConstructor"},"sourceSpan":{"end":[120,45],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/KindSignatureDocs.purs","start":[120,22]},"title":"NShown"}],"comments":null,"info":{"dataDeclType":"newtype","declType":"data","roles":["Representational","Representational","Representational"],"typeArguments":[["a",null],["f",null],["c",null]]},"kind":{"keyword":"newtype","kind":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[120,45],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/KindSignatureDocs.purs","start":[120,1]},"title":"NShown"},{"children":[{"comments":null,"info":{"declType":"typeClassMember","type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":"f","tag":"TypeVar"},{"annotation":[],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim"],"String"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[123,40],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/KindSignatureDocs.purs","start":[123,3]},"title":"fooShown"}],"comments":null,"info":{"arguments":[["f",null],["a",null],["b",null]],"declType":"typeClass","fundeps":[],"superclasses":[]},"kind":{"keyword":"class","kind":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim"],"Constraint"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[123,40],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/KindSignatureDocs.purs","start":[122,1]},"title":"CShown"}],"name":"KindSignatureDocs","reExports":[]}
diff --git a/tests/purs/docs/output/MultiVirtual/docs.json b/tests/purs/docs/output/MultiVirtual/docs.json
--- a/tests/purs/docs/output/MultiVirtual/docs.json
+++ b/tests/purs/docs/output/MultiVirtual/docs.json
@@ -1,1 +1,1 @@
-{"reExports":[],"name":"MultiVirtual","comments":null,"declarations":[]}
+{"comments":null,"declarations":[],"name":"MultiVirtual","reExports":[]}
diff --git a/tests/purs/docs/output/MultiVirtual/externs.json b/tests/purs/docs/output/MultiVirtual/externs.json
deleted file mode 100644
--- a/tests/purs/docs/output/MultiVirtual/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["MultiVirtual"],"efExports":[{"ReExportRef":[{"start":[1,1],"name":"src/MultiVirtual.purs","end":[6,26]},{"exportSourceImportedFrom":["MultiVirtual2"],"exportSourceDefinedIn":["MultiVirtual2"]},{"ValueRef":[{"start":[1,1],"name":"src/MultiVirtual.purs","end":[6,26]},{"Ident":"bar"}]}]},{"ReExportRef":[{"start":[1,1],"name":"src/MultiVirtual.purs","end":[6,26]},{"exportSourceImportedFrom":["MultiVirtual2"],"exportSourceDefinedIn":["MultiVirtual3"]},{"ValueRef":[{"start":[1,1],"name":"src/MultiVirtual.purs","end":[6,26]},{"Ident":"baz"}]}]},{"ReExportRef":[{"start":[1,1],"name":"src/MultiVirtual.purs","end":[6,26]},{"exportSourceImportedFrom":["MultiVirtual1"],"exportSourceDefinedIn":["MultiVirtual1"]},{"ValueRef":[{"start":[1,1],"name":"src/MultiVirtual.purs","end":[6,26]},{"Ident":"foo"}]}]},{"ModuleRef":[{"start":[2,5],"name":"src/MultiVirtual.purs","end":[2,13]},["X"]]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["MultiVirtual1"],"eiImportType":{"Implicit":[]},"eiImportedAs":["X"]},{"eiModule":["MultiVirtual2"],"eiImportType":{"Implicit":[]},"eiImportedAs":["X"]}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[],"efSourceSpan":{"start":[1,1],"name":"src/MultiVirtual.purs","end":[6,26]}}
diff --git a/tests/purs/docs/output/MultiVirtual1/docs.json b/tests/purs/docs/output/MultiVirtual1/docs.json
--- a/tests/purs/docs/output/MultiVirtual1/docs.json
+++ b/tests/purs/docs/output/MultiVirtual1/docs.json
@@ -1,1 +1,1 @@
-{"reExports":[],"name":"MultiVirtual1","comments":null,"declarations":[{"children":[],"comments":null,"title":"foo","info":{"declType":"value","type":{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}},"sourceSpan":{"start":[3,1],"name":"src/MultiVirtual1.purs","end":[3,11]}}]}
+{"comments":null,"declarations":[{"children":[],"comments":null,"info":{"declType":"value","type":{"annotation":[],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}},"kind":null,"sourceSpan":{"end":[3,11],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/MultiVirtual1.purs","start":[3,1]},"title":"foo"}],"name":"MultiVirtual1","reExports":[]}
diff --git a/tests/purs/docs/output/MultiVirtual1/externs.json b/tests/purs/docs/output/MultiVirtual1/externs.json
deleted file mode 100644
--- a/tests/purs/docs/output/MultiVirtual1/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["MultiVirtual1"],"efExports":[{"ValueRef":[{"start":[1,1],"name":"src/MultiVirtual1.purs","end":[4,8]},{"Ident":"foo"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDValue":{"edValueName":{"Ident":"foo"},"edValueType":{"annotation":[{"start":[3,8],"name":"src/MultiVirtual1.purs","end":[3,11]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}}}],"efSourceSpan":{"start":[1,1],"name":"src/MultiVirtual1.purs","end":[4,8]}}
diff --git a/tests/purs/docs/output/MultiVirtual2/docs.json b/tests/purs/docs/output/MultiVirtual2/docs.json
--- a/tests/purs/docs/output/MultiVirtual2/docs.json
+++ b/tests/purs/docs/output/MultiVirtual2/docs.json
@@ -1,1 +1,1 @@
-{"reExports":[],"name":"MultiVirtual2","comments":null,"declarations":[{"children":[],"comments":null,"title":"bar","info":{"declType":"value","type":{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}},"sourceSpan":{"start":[8,1],"name":"src/MultiVirtual2.purs","end":[8,11]}}]}
+{"comments":null,"declarations":[{"children":[],"comments":null,"info":{"declType":"value","type":{"annotation":[],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}},"kind":null,"sourceSpan":{"end":[8,11],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/MultiVirtual2.purs","start":[8,1]},"title":"bar"}],"name":"MultiVirtual2","reExports":[]}
diff --git a/tests/purs/docs/output/MultiVirtual2/externs.json b/tests/purs/docs/output/MultiVirtual2/externs.json
deleted file mode 100644
--- a/tests/purs/docs/output/MultiVirtual2/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["MultiVirtual2"],"efExports":[{"ValueRef":[{"start":[1,1],"name":"src/MultiVirtual2.purs","end":[9,8]},{"Ident":"bar"}]},{"ReExportRef":[{"start":[1,1],"name":"src/MultiVirtual2.purs","end":[9,8]},{"exportSourceImportedFrom":["MultiVirtual3"],"exportSourceDefinedIn":["MultiVirtual3"]},{"ValueRef":[{"start":[1,1],"name":"src/MultiVirtual2.purs","end":[9,8]},{"Ident":"baz"}]}]},{"ModuleRef":[{"start":[2,5],"name":"src/MultiVirtual2.purs","end":[2,25]},["MultiVirtual2"]]},{"ModuleRef":[{"start":[3,5],"name":"src/MultiVirtual2.purs","end":[3,25]},["MultiVirtual3"]]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["MultiVirtual3"],"eiImportType":{"Implicit":[]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDValue":{"edValueName":{"Ident":"bar"},"edValueType":{"annotation":[{"start":[8,8],"name":"src/MultiVirtual2.purs","end":[8,11]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}}}],"efSourceSpan":{"start":[1,1],"name":"src/MultiVirtual2.purs","end":[9,8]}}
diff --git a/tests/purs/docs/output/MultiVirtual3/docs.json b/tests/purs/docs/output/MultiVirtual3/docs.json
--- a/tests/purs/docs/output/MultiVirtual3/docs.json
+++ b/tests/purs/docs/output/MultiVirtual3/docs.json
@@ -1,1 +1,1 @@
-{"reExports":[],"name":"MultiVirtual3","comments":null,"declarations":[{"children":[],"comments":null,"title":"baz","info":{"declType":"value","type":{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}},"sourceSpan":{"start":[3,1],"name":"src/MultiVirtual3.purs","end":[3,11]}}]}
+{"comments":null,"declarations":[{"children":[],"comments":null,"info":{"declType":"value","type":{"annotation":[],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}},"kind":null,"sourceSpan":{"end":[3,11],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/MultiVirtual3.purs","start":[3,1]},"title":"baz"}],"name":"MultiVirtual3","reExports":[]}
diff --git a/tests/purs/docs/output/MultiVirtual3/externs.json b/tests/purs/docs/output/MultiVirtual3/externs.json
deleted file mode 100644
--- a/tests/purs/docs/output/MultiVirtual3/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["MultiVirtual3"],"efExports":[{"ValueRef":[{"start":[1,1],"name":"src/MultiVirtual3.purs","end":[4,8]},{"Ident":"baz"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDValue":{"edValueName":{"Ident":"baz"},"edValueType":{"annotation":[{"start":[3,8],"name":"src/MultiVirtual3.purs","end":[3,11]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}}}],"efSourceSpan":{"start":[1,1],"name":"src/MultiVirtual3.purs","end":[4,8]}}
diff --git a/tests/purs/docs/output/NewOperators/docs.json b/tests/purs/docs/output/NewOperators/docs.json
--- a/tests/purs/docs/output/NewOperators/docs.json
+++ b/tests/purs/docs/output/NewOperators/docs.json
@@ -1,1 +1,1 @@
-{"reExports":[],"name":"NewOperators","comments":null,"declarations":[]}
+{"comments":null,"declarations":[],"name":"NewOperators","reExports":[]}
diff --git a/tests/purs/docs/output/NewOperators/externs.json b/tests/purs/docs/output/NewOperators/externs.json
deleted file mode 100644
--- a/tests/purs/docs/output/NewOperators/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["NewOperators"],"efExports":[{"ReExportRef":[{"start":[1,1],"name":"src/NewOperators.purs","end":[5,21]},{"exportSourceImportedFrom":["NewOperators2"],"exportSourceDefinedIn":["NewOperators2"]},{"ValueRef":[{"start":[1,1],"name":"src/NewOperators.purs","end":[5,21]},{"Ident":"_compose"}]}]},{"ReExportRef":[{"start":[1,1],"name":"src/NewOperators.purs","end":[5,21]},{"exportSourceImportedFrom":["NewOperators2"],"exportSourceDefinedIn":["NewOperators2"]},{"ValueOpRef":[{"start":[1,1],"name":"src/NewOperators.purs","end":[5,21]},">>>"]}]},{"ModuleRef":[{"start":[2,5],"name":"src/NewOperators.purs","end":[2,25]},["NewOperators2"]]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["NewOperators2"],"eiImportType":{"Implicit":[]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[],"efSourceSpan":{"start":[1,1],"name":"src/NewOperators.purs","end":[5,21]}}
diff --git a/tests/purs/docs/output/NewOperators2/docs.json b/tests/purs/docs/output/NewOperators2/docs.json
--- a/tests/purs/docs/output/NewOperators2/docs.json
+++ b/tests/purs/docs/output/NewOperators2/docs.json
@@ -1,1 +1,1 @@
-{"reExports":[],"name":"NewOperators2","comments":null,"declarations":[{"children":[],"comments":null,"title":"(>>>)","info":{"declType":"alias","alias":[["NewOperators2"],{"Right":{"Left":{"Ident":"_compose"}}}],"fixity":{"associativity":"infixl","precedence":8}},"sourceSpan":{"start":[3,1],"name":"src/NewOperators2.purs","end":[3,25]}},{"children":[],"comments":null,"title":"_compose","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}}]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]}}]}]},null]},null]},null]}},"sourceSpan":{"start":[5,1],"name":"src/NewOperators2.purs","end":[5,59]}}]}
+{"comments":null,"declarations":[{"children":[],"comments":null,"info":{"alias":[["NewOperators2"],{"Right":{"Left":{"Ident":"_compose"}}}],"declType":"alias","fixity":{"associativity":"infixl","precedence":8}},"kind":null,"sourceSpan":{"end":[3,25],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/NewOperators2.purs","start":[3,1]},"title":"(>>>)"},{"children":[],"comments":null,"info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"b","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"c","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"c","tag":"TypeVar"}],"tag":"TypeApp"},"tag":"ParensInType"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"},"tag":"ParensInType"}],"tag":"TypeApp"},{"annotation":[],"contents":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"c","tag":"TypeVar"}],"tag":"TypeApp"},"tag":"ParensInType"}],"tag":"TypeApp"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[5,59],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/NewOperators2.purs","start":[5,1]},"title":"_compose"}],"name":"NewOperators2","reExports":[]}
diff --git a/tests/purs/docs/output/NewOperators2/externs.json b/tests/purs/docs/output/NewOperators2/externs.json
deleted file mode 100644
--- a/tests/purs/docs/output/NewOperators2/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["NewOperators2"],"efExports":[{"ValueOpRef":[{"start":[1,1],"name":"src/NewOperators2.purs","end":[6,25]},">>>"]},{"ValueRef":[{"start":[1,1],"name":"src/NewOperators2.purs","end":[6,25]},{"Ident":"_compose"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null}],"efFixities":[{"efAssociativity":"infixl","efPrecedence":8,"efOperator":">>>","efAlias":[["NewOperators2"],{"Left":{"Ident":"_compose"}}]}],"efTypeFixities":[],"efDeclarations":[{"EDValue":{"edValueName":{"Ident":"_compose"},"edValueType":{"annotation":[{"start":[5,13],"name":"src/NewOperators2.purs","end":[5,59]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[5,20],"name":"src/NewOperators2.purs","end":[5,59]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[5,20],"name":"src/NewOperators2.purs","end":[5,59]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[5,27],"name":"src/NewOperators2.purs","end":[5,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[5,27],"name":"src/NewOperators2.purs","end":[5,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[5,36],"name":"src/NewOperators2.purs","end":[5,38]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[5,28],"name":"src/NewOperators2.purs","end":[5,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[5,28],"name":"src/NewOperators2.purs","end":[5,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[5,30],"name":"src/NewOperators2.purs","end":[5,32]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[5,28],"name":"src/NewOperators2.purs","end":[5,29]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[5,33],"name":"src/NewOperators2.purs","end":[5,34]},[]],"tag":"TypeVar","contents":"c"}]}]},{"annotation":[{"start":[5,39],"name":"src/NewOperators2.purs","end":[5,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[5,39],"name":"src/NewOperators2.purs","end":[5,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[5,48],"name":"src/NewOperators2.purs","end":[5,50]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[5,40],"name":"src/NewOperators2.purs","end":[5,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[5,40],"name":"src/NewOperators2.purs","end":[5,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[5,42],"name":"src/NewOperators2.purs","end":[5,44]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[5,40],"name":"src/NewOperators2.purs","end":[5,41]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[5,45],"name":"src/NewOperators2.purs","end":[5,46]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[5,52],"name":"src/NewOperators2.purs","end":[5,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[5,52],"name":"src/NewOperators2.purs","end":[5,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[5,54],"name":"src/NewOperators2.purs","end":[5,56]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[5,52],"name":"src/NewOperators2.purs","end":[5,53]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[5,57],"name":"src/NewOperators2.purs","end":[5,58]},[]],"tag":"TypeVar","contents":"c"}]}]}]},0]},1]},2]}}}],"efSourceSpan":{"start":[1,1],"name":"src/NewOperators2.purs","end":[6,25]}}
diff --git a/tests/purs/docs/output/NotAllCtors/docs.json b/tests/purs/docs/output/NotAllCtors/docs.json
--- a/tests/purs/docs/output/NotAllCtors/docs.json
+++ b/tests/purs/docs/output/NotAllCtors/docs.json
@@ -1,1 +1,1 @@
-{"reExports":[],"name":"NotAllCtors","comments":null,"declarations":[]}
+{"comments":null,"declarations":[],"name":"NotAllCtors","reExports":[]}
diff --git a/tests/purs/docs/output/NotAllCtors/externs.json b/tests/purs/docs/output/NotAllCtors/externs.json
deleted file mode 100644
--- a/tests/purs/docs/output/NotAllCtors/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["NotAllCtors"],"efExports":[{"ReExportRef":[{"start":[1,1],"name":"src/NotAllCtors.purs","end":[5,32]},{"exportSourceImportedFrom":["Prelude"],"exportSourceDefinedIn":["Prelude"]},{"TypeRef":[{"start":[1,1],"name":"src/NotAllCtors.purs","end":[5,32]},"Boolean2",["True"]]}]},{"ModuleRef":[{"start":[2,5],"name":"src/NotAllCtors.purs","end":[2,19]},["Prelude"]]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Prelude"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[5,17],"name":"src/NotAllCtors.purs","end":[5,31]},"Boolean2",["True"]]}]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[],"efSourceSpan":{"start":[1,1],"name":"src/NotAllCtors.purs","end":[5,32]}}
diff --git a/tests/purs/docs/output/OperatorSection/docs.json b/tests/purs/docs/output/OperatorSection/docs.json
new file mode 100644
--- /dev/null
+++ b/tests/purs/docs/output/OperatorSection/docs.json
@@ -0,0 +1,1 @@
+{"comments":null,"declarations":[{"children":[{"comments":null,"info":{"arguments":[],"declType":"dataConstructor"},"sourceSpan":{"end":[3,18],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/OperatorSection.purs","start":[3,13]},"title":"Nil"},{"comments":null,"info":{"arguments":[{"annotation":[],"contents":"a","tag":"TypeVar"},{"annotation":[],"contents":{"annotation":[],"contents":[{"annotation":[],"contents":[["OperatorSection"],"List"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},"tag":"ParensInType"}],"declType":"dataConstructor"},"sourceSpan":{"end":[3,25],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/OperatorSection.purs","start":[3,19]},"title":"Cons"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["OperatorSection"],"Foldable"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["OperatorSection"],"List"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[16,21],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/OperatorSection.purs","start":[10,1]},"title":"<anonymous>"}],"comments":null,"info":{"dataDeclType":"data","declType":"data","roles":["Representational"],"typeArguments":[["a",null]]},"kind":null,"sourceSpan":{"end":[3,36],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/OperatorSection.purs","start":[3,1]},"title":"List"},{"children":[],"comments":null,"info":{"alias":[["OperatorSection"],{"Right":{"Right":"Cons"}}],"declType":"alias","fixity":{"associativity":"infixr","precedence":6}},"kind":null,"sourceSpan":{"end":[5,19],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/OperatorSection.purs","start":[5,1]},"title":"(:)"},{"children":[{"comments":null,"info":{"declType":"typeClassMember","type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"b","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},"tag":"ParensInType"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":"f","tag":"TypeVar"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"sourceSpan":{"end":[8,54],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/OperatorSection.purs","start":[8,3]},"title":"foldl"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["OperatorSection"],"Foldable"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["OperatorSection"],"List"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[16,21],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/OperatorSection.purs","start":[10,1]},"title":"<anonymous>"}],"comments":null,"info":{"arguments":[["f",null]],"declType":"typeClass","fundeps":[],"superclasses":[]},"kind":{"keyword":"class","kind":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim"],"Constraint"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[8,54],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/OperatorSection.purs","start":[7,1]},"title":"Foldable"}],"name":"OperatorSection","reExports":[]}
diff --git a/tests/purs/docs/output/Prelude/docs.json b/tests/purs/docs/output/Prelude/docs.json
--- a/tests/purs/docs/output/Prelude/docs.json
+++ b/tests/purs/docs/output/Prelude/docs.json
@@ -1,1 +1,1 @@
-{"reExports":[],"name":"Prelude","comments":null,"declarations":[{"children":[{"comments":null,"title":"Unit","info":{"arguments":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"REmpty"}]}],"declType":"dataConstructor"},"sourceSpan":null}],"comments":null,"title":"Unit","info":{"declType":"data","dataDeclType":"newtype","typeArguments":[]},"sourceSpan":{"start":[3,1],"name":"bower_components/purescript-prelude/src/Prelude.purs","end":[3,23]}},{"children":[],"comments":null,"title":"unit","info":{"declType":"value","type":{"annotation":[],"tag":"TypeConstructor","contents":[["Prelude"],"Unit"]}},"sourceSpan":{"start":[5,1],"name":"bower_components/purescript-prelude/src/Prelude.purs","end":[5,13]}},{"children":[{"comments":null,"title":"True","info":{"arguments":[],"declType":"dataConstructor"},"sourceSpan":null},{"comments":null,"title":"False","info":{"arguments":[],"declType":"dataConstructor"},"sourceSpan":null}],"comments":null,"title":"Boolean2","info":{"declType":"data","dataDeclType":"data","typeArguments":[]},"sourceSpan":{"start":[8,1],"name":"bower_components/purescript-prelude/src/Prelude.purs","end":[8,29]}}]}
+{"comments":null,"declarations":[{"children":[{"comments":null,"info":{"arguments":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Record"],"tag":"TypeConstructor"},{"annotation":[],"tag":"REmpty"}],"tag":"TypeApp"}],"declType":"dataConstructor"},"sourceSpan":{"end":[3,23],"name":"bower_components/purescript-prelude/src/Prelude.purs","start":[3,14]},"title":"Unit"}],"comments":null,"info":{"dataDeclType":"newtype","declType":"data","roles":[],"typeArguments":[]},"kind":null,"sourceSpan":{"end":[3,23],"name":"bower_components/purescript-prelude/src/Prelude.purs","start":[3,1]},"title":"Unit"},{"children":[],"comments":null,"info":{"declType":"value","type":{"annotation":[],"contents":[["Prelude"],"Unit"],"tag":"TypeConstructor"}},"kind":null,"sourceSpan":{"end":[5,13],"name":"bower_components/purescript-prelude/src/Prelude.purs","start":[5,1]},"title":"unit"},{"children":[{"comments":null,"info":{"arguments":[],"declType":"dataConstructor"},"sourceSpan":{"end":[8,21],"name":"bower_components/purescript-prelude/src/Prelude.purs","start":[8,15]},"title":"True"},{"comments":null,"info":{"arguments":[],"declType":"dataConstructor"},"sourceSpan":{"end":[8,29],"name":"bower_components/purescript-prelude/src/Prelude.purs","start":[8,22]},"title":"False"}],"comments":null,"info":{"dataDeclType":"data","declType":"data","roles":[],"typeArguments":[]},"kind":null,"sourceSpan":{"end":[8,29],"name":"bower_components/purescript-prelude/src/Prelude.purs","start":[8,1]},"title":"Boolean2"}],"name":"Prelude","reExports":[]}
diff --git a/tests/purs/docs/output/Prelude/externs.json b/tests/purs/docs/output/Prelude/externs.json
deleted file mode 100644
--- a/tests/purs/docs/output/Prelude/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Prelude"],"efExports":[{"TypeRef":[{"start":[1,1],"name":"bower_components/purescript-prelude/src/Prelude.purs","end":[8,29]},"Unit",["Unit"]]},{"ValueRef":[{"start":[1,1],"name":"bower_components/purescript-prelude/src/Prelude.purs","end":[8,29]},{"Ident":"unit"}]},{"TypeRef":[{"start":[1,1],"name":"bower_components/purescript-prelude/src/Prelude.purs","end":[8,29]},"Boolean2",["True","False"]]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDType":{"edTypeName":"Unit","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},"edTypeDeclarationKind":{"DataType":{"args":[],"ctors":[["Unit",[{"annotation":[{"start":[3,21],"name":"bower_components/purescript-prelude/src/Prelude.purs","end":[3,23]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[3,21],"name":"bower_components/purescript-prelude/src/Prelude.purs","end":[3,22]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[3,22],"name":"bower_components/purescript-prelude/src/Prelude.purs","end":[3,23]},[]],"tag":"REmpty"}]}]]]}}}},{"EDDataConstructor":{"edDataCtorName":"Unit","edDataCtorOrigin":"newtype","edDataCtorTypeCtor":"Unit","edDataCtorType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[3,21],"name":"bower_components/purescript-prelude/src/Prelude.purs","end":[3,23]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[3,21],"name":"bower_components/purescript-prelude/src/Prelude.purs","end":[3,22]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[3,22],"name":"bower_components/purescript-prelude/src/Prelude.purs","end":[3,23]},[]],"tag":"REmpty"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prelude"],"Unit"]}]},"edDataCtorFields":[{"Ident":"value0"}]}},{"EDValue":{"edValueName":{"Ident":"unit"},"edValueType":{"annotation":[{"start":[5,9],"name":"bower_components/purescript-prelude/src/Prelude.purs","end":[5,13]},[]],"tag":"TypeConstructor","contents":[["Prelude"],"Unit"]}}},{"EDType":{"edTypeName":"Boolean2","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},"edTypeDeclarationKind":{"DataType":{"args":[],"ctors":[["True",[]],["False",[]]]}}}},{"EDDataConstructor":{"edDataCtorName":"True","edDataCtorOrigin":"data","edDataCtorTypeCtor":"Boolean2","edDataCtorType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prelude"],"Boolean2"]},"edDataCtorFields":[]}},{"EDDataConstructor":{"edDataCtorName":"False","edDataCtorOrigin":"data","edDataCtorTypeCtor":"Boolean2","edDataCtorType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prelude"],"Boolean2"]},"edDataCtorFields":[]}}],"efSourceSpan":{"start":[1,1],"name":"bower_components/purescript-prelude/src/Prelude.purs","end":[8,29]}}
diff --git a/tests/purs/docs/output/Prim.Boolean/docs.json b/tests/purs/docs/output/Prim.Boolean/docs.json
new file mode 100644
--- /dev/null
+++ b/tests/purs/docs/output/Prim.Boolean/docs.json
@@ -0,0 +1,1 @@
+{"comments":"The Prim.Boolean module is embedded in the PureScript compiler. Unlike `Prim`, it is not imported implicitly. It contains a type level `Boolean` data structure.","declarations":[{"children":[],"comments":"The 'True' boolean type.\n","info":{"declType":"externData","kind":{"annotation":[],"contents":[["Prim"],"Boolean"],"tag":"TypeConstructor"},"roles":[]},"kind":null,"sourceSpan":null,"title":"True"},{"children":[],"comments":"The 'False' boolean type.\n","info":{"declType":"externData","kind":{"annotation":[],"contents":[["Prim"],"Boolean"],"tag":"TypeConstructor"},"roles":[]},"kind":null,"sourceSpan":null,"title":"False"}],"name":"Prim.Boolean","reExports":[]}
diff --git a/tests/purs/docs/output/Prim.Coerce/docs.json b/tests/purs/docs/output/Prim.Coerce/docs.json
new file mode 100644
--- /dev/null
+++ b/tests/purs/docs/output/Prim.Coerce/docs.json
@@ -0,0 +1,1 @@
+{"comments":"The Prim.Coerce module is embedded in the PureScript compiler. Unlike `Prim`, it is not imported implicitly. It contains an automatically solved type class for coercing types that have provably-identical runtime representations with [purescript-safe-coerce](https://pursuit.purescript.org/packages/purescript-safe-coerce).","declarations":[{"children":[],"comments":"Coercible is a two-parameter type class that has instances for types `a`\nand `b` if the compiler can infer that they have the same representation.\nCoercible constraints are solved according to the following rules:\n\n* _reflexivity_, any type has the same representation as itself:\n`Coercible a a` holds.\n\n* _symmetry_, if a type `a` can be coerced to some other type `b`, then `b`\ncan also be coerced back to `a`: `Coercible a b` implies `Coercible b a`.\n\n* _transitivity_, if a type `a` can be coerced to some other type `b` which\ncan be coerced to some other type `c`, then `a` can also be coerced to `c`:\n`Coercible a b` and `Coercible b c` imply `Coercible a c`.\n\n* Newtypes can be freely wrapped and unwrapped when their constructor is\nin scope:\n\n      newtype Age = Age Int\n\n`Coercible Int Age` and `Coercible Age Int` hold since `Age` has the same\nruntime representation than `Int`.\n\nNewtype constructors have to be in scope to preserve abstraction. It's\ncommon to declare a newtype to encode some invariants (non emptiness of\narrays with `Data.Array.NonEmpty.NonEmptyArray` for example), hide its\nconstructor and export smart constructors instead. Without this restriction,\nthe guarantees provided by such newtypes would be void.\n\n* If none of the above are applicable, two types of kind `Type` may be\ncoercible, but only if their heads are the same. For example,\n`Coercible (Maybe a) (Either a b)` does not hold because `Maybe` and\n`Either` are different. Those types don't share a common runtime\nrepresentation so coercing between them would be unsafe. In addition their\narguments may need to be identical or coercible, depending on the _roles_\nof the head's type parameters. Roles are documented in [the PureScript\nlanguage reference](https://github.com/purescript/documentation/blob/master/language/Roles.md).\n\nCoercible being polykinded, we can also coerce more than types of kind `Type`:\n\n* Rows are coercible when they have the same labels, when the corresponding\npairs of types are coercible and when their tails are coercible:\n`Coercible ( label :: a | r ) ( label :: b | s )` holds when\n`Coercible a b` and `Coercible r s` do. Closed rows cannot be coerced to\nopen rows.\n\n* Higher kinded types are coercible if they are coercible when fully\nsaturated: `Coercible (f :: _ -> Type) (g :: _ -> Type)` holds when\n`Coercible (f a) (g a)` does.\n\nThis rule may seem puzzling since there is no term of type `_ -> Type` to\napply `coerce` to, but it is necessary when coercing types with higher\nkinded parameters.\n","info":{"arguments":[["a",{"annotation":[],"contents":"k","tag":"TypeVar"}],["b",{"annotation":[],"contents":"k","tag":"TypeVar"}]],"declType":"typeClass","fundeps":[],"superclasses":[]},"kind":null,"sourceSpan":null,"title":"Coercible"}],"name":"Prim.Coerce","reExports":[]}
diff --git a/tests/purs/docs/output/Prim.Int/docs.json b/tests/purs/docs/output/Prim.Int/docs.json
new file mode 100644
--- /dev/null
+++ b/tests/purs/docs/output/Prim.Int/docs.json
@@ -0,0 +1,1 @@
+{"comments":"The Prim.Int module is embedded in the PureScript compiler. Unlike `Prim`, it is not imported implicitly. It contains automatically solved type classes for working with type-level intural numbers.","declarations":[{"children":[],"comments":"Compiler solved type class for adding type-level `Int`s.\n","info":{"arguments":[["left",{"annotation":[],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],["right",{"annotation":[],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],["sum",{"annotation":[],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}]],"declType":"typeClass","fundeps":[[["left","right"],["sum"]],[["left","sum"],["right"]],[["right","sum"],["left"]]],"superclasses":[]},"kind":null,"sourceSpan":null,"title":"Add"},{"children":[],"comments":"Compiler solved type class for comparing two type-level `Int`s.\nProduces an `Ordering`.\n","info":{"arguments":[["left",{"annotation":[],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],["right",{"annotation":[],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],["ordering",{"annotation":[],"contents":[["Prim","Ordering"],"Ordering"],"tag":"TypeConstructor"}]],"declType":"typeClass","fundeps":[[["left","right"],["ordering"]]],"superclasses":[]},"kind":null,"sourceSpan":null,"title":"Compare"},{"children":[],"comments":"Compiler solved type class for multiplying type-level `Int`s.\n","info":{"arguments":[["left",{"annotation":[],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],["right",{"annotation":[],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],["product",{"annotation":[],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}]],"declType":"typeClass","fundeps":[[["left","right"],["product"]]],"superclasses":[]},"kind":null,"sourceSpan":null,"title":"Mul"},{"children":[],"comments":"Compiler solved type class for converting a type-level `Int` into a type-level `String` (i.e. `Symbol`).\n","info":{"arguments":[["int",{"annotation":[],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],["string",{"annotation":[],"contents":[["Prim"],"Symbol"],"tag":"TypeConstructor"}]],"declType":"typeClass","fundeps":[[["int"],["string"]]],"superclasses":[]},"kind":null,"sourceSpan":null,"title":"ToString"}],"name":"Prim.Int","reExports":[]}
diff --git a/tests/purs/docs/output/Prim.Ordering/docs.json b/tests/purs/docs/output/Prim.Ordering/docs.json
new file mode 100644
--- /dev/null
+++ b/tests/purs/docs/output/Prim.Ordering/docs.json
@@ -0,0 +1,1 @@
+{"comments":"The Prim.Ordering module is embedded in the PureScript compiler. Unlike `Prim`, it is not imported implicitly. It contains a type level `Ordering` data structure.","declarations":[{"children":[],"comments":"The `Ordering` kind represents the three possibilities of comparing two\ntypes of the same kind: `LT` (less than), `EQ` (equal to), and\n`GT` (greater than).\n","info":{"declType":"externData","kind":{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"roles":[]},"kind":null,"sourceSpan":null,"title":"Ordering"},{"children":[],"comments":"The 'less than' ordering type.\n","info":{"declType":"externData","kind":{"annotation":[],"contents":[["Prim","Ordering"],"Ordering"],"tag":"TypeConstructor"},"roles":[]},"kind":null,"sourceSpan":null,"title":"LT"},{"children":[],"comments":"The 'equal to' ordering type.\n","info":{"declType":"externData","kind":{"annotation":[],"contents":[["Prim","Ordering"],"Ordering"],"tag":"TypeConstructor"},"roles":[]},"kind":null,"sourceSpan":null,"title":"EQ"},{"children":[],"comments":"The 'greater than' ordering type.\n","info":{"declType":"externData","kind":{"annotation":[],"contents":[["Prim","Ordering"],"Ordering"],"tag":"TypeConstructor"},"roles":[]},"kind":null,"sourceSpan":null,"title":"GT"}],"name":"Prim.Ordering","reExports":[]}
diff --git a/tests/purs/docs/output/Prim.Row/docs.json b/tests/purs/docs/output/Prim.Row/docs.json
new file mode 100644
--- /dev/null
+++ b/tests/purs/docs/output/Prim.Row/docs.json
@@ -0,0 +1,1 @@
+{"comments":"The Prim.Row module is embedded in the PureScript compiler. Unlike `Prim`, it is not imported implicitly. It contains automatically solved type classes for working with row types.","declarations":[{"children":[],"comments":"The Union type class is used to compute the union of two rows of types\n(left-biased, including duplicates).\n\nThe third type argument represents the union of the first two.\n","info":{"arguments":[["left",{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Row"],"tag":"TypeConstructor"},{"annotation":[],"contents":"k","tag":"TypeVar"}],"tag":"TypeApp"}],["right",{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Row"],"tag":"TypeConstructor"},{"annotation":[],"contents":"k","tag":"TypeVar"}],"tag":"TypeApp"}],["union",{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Row"],"tag":"TypeConstructor"},{"annotation":[],"contents":"k","tag":"TypeVar"}],"tag":"TypeApp"}]],"declType":"typeClass","fundeps":[[["left","right"],["union"]],[["right","union"],["left"]],[["union","left"],["right"]]],"superclasses":[]},"kind":null,"sourceSpan":null,"title":"Union"},{"children":[],"comments":"The Nub type class is used to remove duplicate labels from rows.\n","info":{"arguments":[["original",{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Row"],"tag":"TypeConstructor"},{"annotation":[],"contents":"k","tag":"TypeVar"}],"tag":"TypeApp"}],["nubbed",{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Row"],"tag":"TypeConstructor"},{"annotation":[],"contents":"k","tag":"TypeVar"}],"tag":"TypeApp"}]],"declType":"typeClass","fundeps":[[["original"],["nubbed"]]],"superclasses":[]},"kind":null,"sourceSpan":null,"title":"Nub"},{"children":[],"comments":"The Lacks type class asserts that a label does not occur in a given row.\n","info":{"arguments":[["label",{"annotation":[],"contents":[["Prim"],"Symbol"],"tag":"TypeConstructor"}],["row",{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Row"],"tag":"TypeConstructor"},{"annotation":[],"contents":"k","tag":"TypeVar"}],"tag":"TypeApp"}]],"declType":"typeClass","fundeps":[],"superclasses":[]},"kind":null,"sourceSpan":null,"title":"Lacks"},{"children":[],"comments":"The Cons type class is a 4-way relation which asserts that one row of\ntypes can be obtained from another by inserting a new label/type pair on\nthe left.\n","info":{"arguments":[["label",{"annotation":[],"contents":[["Prim"],"Symbol"],"tag":"TypeConstructor"}],["a",{"annotation":[],"contents":"k","tag":"TypeVar"}],["tail",{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Row"],"tag":"TypeConstructor"},{"annotation":[],"contents":"k","tag":"TypeVar"}],"tag":"TypeApp"}],["row",{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Row"],"tag":"TypeConstructor"},{"annotation":[],"contents":"k","tag":"TypeVar"}],"tag":"TypeApp"}]],"declType":"typeClass","fundeps":[[["label","a","tail"],["row"]],[["label","row"],["a","tail"]]],"superclasses":[]},"kind":null,"sourceSpan":null,"title":"Cons"}],"name":"Prim.Row","reExports":[]}
diff --git a/tests/purs/docs/output/Prim.RowList/docs.json b/tests/purs/docs/output/Prim.RowList/docs.json
new file mode 100644
--- /dev/null
+++ b/tests/purs/docs/output/Prim.RowList/docs.json
@@ -0,0 +1,1 @@
+{"comments":"The Prim.RowList module is embedded in the PureScript compiler. Unlike `Prim`, it is not imported implicitly. It contains a type level list (`RowList`) that represents an ordered view of a row of types.","declarations":[{"children":[],"comments":"A type level list representation of a row of types.\n","info":{"declType":"externData","kind":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"},"roles":[]},"kind":null,"sourceSpan":null,"title":"RowList"},{"children":[],"comments":"Constructs a new `RowList` from a label, a type, and an existing tail\n`RowList`.  E.g: `Cons \"x\" Int (Cons \"y\" Int Nil)`.\n","info":{"declType":"externData","kind":{"annotation":[],"contents":{"identifier":"k","kind":{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"skolem":null,"type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Symbol"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"k","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim","RowList"],"RowList"],"tag":"TypeConstructor"},{"annotation":[],"contents":"k","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim","RowList"],"RowList"],"tag":"TypeConstructor"},{"annotation":[],"contents":"k","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"roles":[]},"kind":null,"sourceSpan":null,"title":"Cons"},{"children":[],"comments":"The empty `RowList`.\n","info":{"declType":"externData","kind":{"annotation":[],"contents":{"identifier":"k","kind":{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"skolem":null,"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim","RowList"],"RowList"],"tag":"TypeConstructor"},{"annotation":[],"contents":"k","tag":"TypeVar"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"roles":[]},"kind":null,"sourceSpan":null,"title":"Nil"},{"children":[],"comments":"Compiler solved type class for generating a `RowList` from a closed row\nof types.  Entries are sorted by label and duplicates are preserved in\nthe order they appeared in the row.\n","info":{"arguments":[["row",{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Row"],"tag":"TypeConstructor"},{"annotation":[],"contents":"k","tag":"TypeVar"}],"tag":"TypeApp"}],["list",{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim","RowList"],"RowList"],"tag":"TypeConstructor"},{"annotation":[],"contents":"k","tag":"TypeVar"}],"tag":"TypeApp"}]],"declType":"typeClass","fundeps":[[["row"],["list"]]],"superclasses":[]},"kind":null,"sourceSpan":null,"title":"RowToList"}],"name":"Prim.RowList","reExports":[]}
diff --git a/tests/purs/docs/output/Prim.Symbol/docs.json b/tests/purs/docs/output/Prim.Symbol/docs.json
new file mode 100644
--- /dev/null
+++ b/tests/purs/docs/output/Prim.Symbol/docs.json
@@ -0,0 +1,1 @@
+{"comments":"The Prim.Symbol module is embedded in the PureScript compiler. Unlike `Prim`, it is not imported implicitly. It contains automatically solved type classes for working with `Symbols`.","declarations":[{"children":[],"comments":"Compiler solved type class for appending `Symbol`s together.\n","info":{"arguments":[["left",{"annotation":[],"contents":[["Prim"],"Symbol"],"tag":"TypeConstructor"}],["right",{"annotation":[],"contents":[["Prim"],"Symbol"],"tag":"TypeConstructor"}],["appended",{"annotation":[],"contents":[["Prim"],"Symbol"],"tag":"TypeConstructor"}]],"declType":"typeClass","fundeps":[[["left","right"],["appended"]],[["right","appended"],["left"]],[["appended","left"],["right"]]],"superclasses":[]},"kind":null,"sourceSpan":null,"title":"Append"},{"children":[],"comments":"Compiler solved type class for comparing two `Symbol`s.\nProduces an `Ordering`.\n","info":{"arguments":[["left",{"annotation":[],"contents":[["Prim"],"Symbol"],"tag":"TypeConstructor"}],["right",{"annotation":[],"contents":[["Prim"],"Symbol"],"tag":"TypeConstructor"}],["ordering",{"annotation":[],"contents":[["Prim","Ordering"],"Ordering"],"tag":"TypeConstructor"}]],"declType":"typeClass","fundeps":[[["left","right"],["ordering"]]],"superclasses":[]},"kind":null,"sourceSpan":null,"title":"Compare"},{"children":[],"comments":"Compiler solved type class for either splitting up a symbol into its\nhead and tail or for combining a head and tail into a new symbol.\nRequires the head to be a single character and the combined string\ncannot be empty.\n","info":{"arguments":[["head",{"annotation":[],"contents":[["Prim"],"Symbol"],"tag":"TypeConstructor"}],["tail",{"annotation":[],"contents":[["Prim"],"Symbol"],"tag":"TypeConstructor"}],["symbol",{"annotation":[],"contents":[["Prim"],"Symbol"],"tag":"TypeConstructor"}]],"declType":"typeClass","fundeps":[[["head","tail"],["symbol"]],[["symbol"],["head","tail"]]],"superclasses":[]},"kind":null,"sourceSpan":null,"title":"Cons"}],"name":"Prim.Symbol","reExports":[]}
diff --git a/tests/purs/docs/output/Prim.TypeError/docs.json b/tests/purs/docs/output/Prim.TypeError/docs.json
new file mode 100644
--- /dev/null
+++ b/tests/purs/docs/output/Prim.TypeError/docs.json
@@ -0,0 +1,1 @@
+{"comments":"The Prim.TypeError module is embedded in the PureScript compiler. Unlike `Prim`, it is not imported implicitly. It contains type classes that provide custom type error and warning functionality.","declarations":[{"children":[],"comments":"The Warn type class allows a custom compiler warning to be displayed.\n\nFor more information, see\n[the Custom Type Errors guide](https://github.com/purescript/documentation/blob/master/guides/Custom-Type-Errors.md).\n","info":{"arguments":[["message",{"annotation":[],"contents":[["Prim","TypeError"],"Doc"],"tag":"TypeConstructor"}]],"declType":"typeClass","fundeps":[],"superclasses":[]},"kind":null,"sourceSpan":null,"title":"Warn"},{"children":[],"comments":"The Fail type class is part of the custom type errors feature. To provide\na custom type error when someone tries to use a particular instance,\nwrite that instance out with a Fail constraint.\n\nFor more information, see\n[the Custom Type Errors guide](https://github.com/purescript/documentation/blob/master/guides/Custom-Type-Errors.md).\n","info":{"arguments":[["message",{"annotation":[],"contents":[["Prim","TypeError"],"Doc"],"tag":"TypeConstructor"}]],"declType":"typeClass","fundeps":[],"superclasses":[]},"kind":null,"sourceSpan":null,"title":"Fail"},{"children":[],"comments":"`Doc` is the kind of type-level documents.\n\nThis kind is used with the `Fail` and `Warn` type classes.\nBuild up a `Doc` with `Text`, `Quote`, `QuoteLabel`, `Beside`, and `Above`.\n","info":{"declType":"externData","kind":{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"roles":[]},"kind":null,"sourceSpan":null,"title":"Doc"},{"children":[],"comments":"The Text type constructor makes a Doc from a Symbol\nto be used in a custom type error.\n\nFor more information, see\n[the Custom Type Errors guide](https://github.com/purescript/documentation/blob/master/guides/Custom-Type-Errors.md).\n","info":{"declType":"externData","kind":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Symbol"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim","TypeError"],"Doc"],"tag":"TypeConstructor"}],"tag":"TypeApp"},"roles":[]},"kind":null,"sourceSpan":null,"title":"Text"},{"children":[],"comments":"The Quote type constructor renders any concrete type as a Doc\nto be used in a custom type error.\n\nFor more information, see\n[the Custom Type Errors guide](https://github.com/purescript/documentation/blob/master/guides/Custom-Type-Errors.md).\n","info":{"declType":"externData","kind":{"annotation":[],"contents":{"identifier":"k","kind":{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"skolem":null,"type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"k","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim","TypeError"],"Doc"],"tag":"TypeConstructor"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"roles":[]},"kind":null,"sourceSpan":null,"title":"Quote"},{"children":[],"comments":"The `QuoteLabel` type constructor will produce a `Doc` when given a `Symbol`. When the resulting `Doc` is rendered\nfor a `Warn` or `Fail` constraint, a syntactically valid label will be produced, escaping with quotes as needed.\n\nFor more information, see\n[the Custom Type Errors guide](https://github.com/purescript/documentation/blob/master/guides/Custom-Type-Errors.md).\n","info":{"declType":"externData","kind":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Symbol"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim","TypeError"],"Doc"],"tag":"TypeConstructor"}],"tag":"TypeApp"},"roles":[]},"kind":null,"sourceSpan":null,"title":"QuoteLabel"},{"children":[],"comments":"The Beside type constructor combines two Docs horizontally\nto be used in a custom type error.\n\nFor more information, see\n[the Custom Type Errors guide](https://github.com/purescript/documentation/blob/master/guides/Custom-Type-Errors.md).\n","info":{"declType":"externData","kind":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim","TypeError"],"Doc"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim","TypeError"],"Doc"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim","TypeError"],"Doc"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"},"roles":[]},"kind":null,"sourceSpan":null,"title":"Beside"},{"children":[],"comments":"The Above type constructor combines two Docs vertically\nin a custom type error.\n\nFor more information, see\n[the Custom Type Errors guide](https://github.com/purescript/documentation/blob/master/guides/Custom-Type-Errors.md).\n","info":{"declType":"externData","kind":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim","TypeError"],"Doc"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim","TypeError"],"Doc"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim","TypeError"],"Doc"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"},"roles":[]},"kind":null,"sourceSpan":null,"title":"Above"}],"name":"Prim.TypeError","reExports":[]}
diff --git a/tests/purs/docs/output/Prim/docs.json b/tests/purs/docs/output/Prim/docs.json
new file mode 100644
--- /dev/null
+++ b/tests/purs/docs/output/Prim/docs.json
@@ -0,0 +1,1 @@
+{"comments":"The `Prim` module is embedded in the PureScript compiler in order to provide compiler support for certain types &mdash; for example, value literals, or syntax sugar. It is implicitly imported unqualified in every module except those that list it as a qualified import.\n\n`Prim` does not include additional built-in types and kinds that are defined deeper in the compiler such as Type wildcards (e.g. `f :: _ -> Int`) and Quantified Types. Rather, these are documented in [the PureScript language reference](https://github.com/purescript/documentation/blob/master/language/Types.md).\n","declarations":[{"children":[],"comments":"A function, which takes values of the type specified by the first type\nparameter, and returns values of the type specified by the second.\nIn the JavaScript backend, this is a standard JavaScript Function.\n\nThe type constructor `(->)` is syntactic sugar for this type constructor.\nIt is recommended to use `(->)` rather than `Function`, where possible.\n\nThat is, prefer this:\n\n    f :: Number -> Number\n\nto either of these:\n\n    f :: Function Number Number\n    f :: (->) Number Number\n","info":{"declType":"externData","kind":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"},"roles":[]},"kind":null,"sourceSpan":null,"title":"Function"},{"children":[],"comments":"An Array: a data structure supporting efficient random access. In\nthe JavaScript backend, values of this type are represented as JavaScript\nArrays at runtime.\n\nConstruct values using literals:\n\n    x = [1,2,3,4,5] :: Array Int\n","info":{"declType":"externData","kind":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"},"roles":[]},"kind":null,"sourceSpan":null,"title":"Array"},{"children":[],"comments":"The type of records whose fields are known at compile time. In the\nJavaScript backend, values of this type are represented as JavaScript\nObjects at runtime.\n\nThe type signature here means that the `Record` type constructor takes\na row of concrete types. For example:\n\n    type Person = Record (name :: String, age :: Number)\n\nThe syntactic sugar with curly braces `{ }` is generally preferred, though:\n\n    type Person = { name :: String, age :: Number }\n\nThe row associates a type to each label which appears in the record.\n\n_Technical note_: PureScript allows duplicate labels in rows, and the\nmeaning of `Record r` is based on the _first_ occurrence of each label in\nthe row `r`.\n","info":{"declType":"externData","kind":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Row"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"},"roles":[]},"kind":null,"sourceSpan":null,"title":"Record"},{"children":[],"comments":"A double precision floating point number (IEEE 754).\n\nConstruct values of this type with literals.\nNegative literals must be wrapped in parentheses if the negation sign could be mistaken\nfor an infix operator:\n\n    x = 35.23 :: Number\n    y = -1.224e6 :: Number\n    z = exp (-1.0) :: Number\n","info":{"declType":"externData","kind":{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"roles":[]},"kind":null,"sourceSpan":null,"title":"Number"},{"children":[],"comments":"A 32-bit signed integer. See the `purescript-integers` package for details\nof how this is accomplished when compiling to JavaScript.\n\nConstruct values of this type with literals. Hexadecimal syntax is supported.\nNegative literals must be wrapped in parentheses if the negation sign could be mistaken\nfor an infix operator:\n\n    x = -23 :: Int\n    y = 0x17 :: Int\n    z = complement (-24) :: Int\n\nIntegers used as types are considered to have kind `Int`.\nUnlike value-level `Int`s, which must be representable as a 32-bit signed integer,\ntype-level `Int`s are unbounded. Hexadecimal support is also supported at the type level.\n\n    type One :: Int\n    type One = 1\n    \n    type Beyond32BitSignedInt :: Int\n    type Beyond32BitSignedInt = 2147483648\n    \n    type HexInt :: Int\n    type HexInt = 0x17\n\nNegative integer literals at the type level must be\nwrapped in parentheses if the negation sign could be mistaken for an infix operator.\n\n    type NegativeOne = -1\n    foo :: Proxy (-1) -> ...\n","info":{"declType":"externData","kind":{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"roles":[]},"kind":null,"sourceSpan":null,"title":"Int"},{"children":[],"comments":"A String. As in JavaScript, String values represent sequences of UTF-16\ncode units, which are not required to form a valid encoding of Unicode\ntext (for example, lone surrogates are permitted).\n\nConstruct values of this type with literals, using double quotes `\"`:\n\n    x = \"hello, world\" :: String\n\nMulti-line string literals are also supported with triple quotes (`\"\"\"`):\n\n    x = \"\"\"multi\n       line\"\"\"\n\nAt the type level, string literals represent types with kind `Symbol`.\nThese types will have kind `String` in a future release:\n\n    type Hello :: Symbol\n    type Hello = \"Hello, world\"\n","info":{"declType":"externData","kind":{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"roles":[]},"kind":null,"sourceSpan":null,"title":"String"},{"children":[],"comments":"A single character (UTF-16 code unit). The JavaScript representation is a\nnormal `String`, which is guaranteed to contain one code unit. This means\nthat astral plane characters (i.e. those with code point values greater\nthan `0xFFFF`) cannot be represented as `Char` values.\n\nConstruct values of this type with literals, using single quotes `'`:\n\n    x = 'a' :: Char\n","info":{"declType":"externData","kind":{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"roles":[]},"kind":null,"sourceSpan":null,"title":"Char"},{"children":[],"comments":"A JavaScript Boolean value.\n\nConstruct values of this type with the literals `true` and `false`.\n\nThe `True` and `False` types defined in `Prim.Boolean` have this type as their kind.\n","info":{"declType":"externData","kind":{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"roles":[]},"kind":null,"sourceSpan":null,"title":"Boolean"},{"children":[],"comments":"The Partial type class is used to indicate that a function is *partial,*\nthat is, it is not defined for all inputs. In practice, attempting to use\na partial function with a bad input will usually cause an error to be\nthrown, although it is not safe to assume that this will happen in all\ncases. For more information, see\n[purescript-partial](https://pursuit.purescript.org/packages/purescript-partial/).\n","info":{"arguments":[],"declType":"typeClass","fundeps":[],"superclasses":[]},"kind":null,"sourceSpan":null,"title":"Partial"},{"children":[],"comments":"`Type` is the kind of all proper types: those that classify value-level terms.\nFor example the type `Boolean` has kind `Type`; denoted by `Boolean :: Type`.\n","info":{"declType":"externData","kind":{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"roles":[]},"kind":null,"sourceSpan":null,"title":"Type"},{"children":[],"comments":"`Constraint` is the kind of type class constraints.\nFor example, a type class declaration like this:\n\n    class Semigroup a where\n      append :: a -> a -> a\n\nhas the kind signature:\n\n    class Semigroup :: Type -> Constraint\n","info":{"declType":"externData","kind":{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"roles":[]},"kind":null,"sourceSpan":null,"title":"Constraint"},{"children":[],"comments":"`Symbol` is the kind of type-level strings.\n\nConstruct types of this kind using the same literal syntax as documented\nfor strings.\n\n    type Hello :: Symbol\n    type Hello = \"Hello, world\"\n\n","info":{"declType":"externData","kind":{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"roles":[]},"kind":null,"sourceSpan":null,"title":"Symbol"},{"children":[],"comments":"`Row` is the kind constructor of label-indexed types which map type-level strings to other types.\nThe most common use of `Row` is `Row Type`, a row mapping labels to basic (of kind `Type`) types:\n\n    type ExampleRow :: Row Type\n    type ExampleRow = ( name :: String, values :: Array Int )\n\nThis is the kind of `Row` expected by the `Record` type constructor.\nMore advanced row kinds like `Row (Type -> Type)` are used much less frequently.\n","info":{"declType":"externData","kind":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"},"roles":[]},"kind":null,"sourceSpan":null,"title":"Row"}],"name":"Prim","reExports":[]}
diff --git a/tests/purs/docs/output/PrimSubmodules/docs.json b/tests/purs/docs/output/PrimSubmodules/docs.json
--- a/tests/purs/docs/output/PrimSubmodules/docs.json
+++ b/tests/purs/docs/output/PrimSubmodules/docs.json
@@ -1,1 +1,1 @@
-{"reExports":[],"name":"PrimSubmodules","comments":null,"declarations":[{"children":[{"comments":null,"title":"Lol","info":{"arguments":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}],"declType":"dataConstructor"},"sourceSpan":null}],"comments":null,"title":"Lol","info":{"declType":"data","dataDeclType":"data","typeArguments":[["a",{"annotation":[],"tag":"NamedKind","contents":[["Prim","Ordering"],"Ordering"]}]]},"sourceSpan":{"start":[5,1],"name":"src/PrimSubmodules.purs","end":[5,37]}},{"children":[],"comments":null,"title":"x","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["PrimSubmodules"],"Lol"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim","Ordering"],"LT"]}]}},"sourceSpan":{"start":[7,1],"name":"src/PrimSubmodules.purs","end":[7,14]}},{"children":[],"comments":null,"title":"y","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["PrimSubmodules"],"Lol"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim","Ordering"],"EQ"]}]}},"sourceSpan":{"start":[10,1],"name":"src/PrimSubmodules.purs","end":[10,14]}}]}
+{"comments":null,"declarations":[{"children":[{"comments":null,"info":{"arguments":[{"annotation":[],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"declType":"dataConstructor"},"sourceSpan":{"end":[5,33],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/PrimSubmodules.purs","start":[5,28]},"title":"Lol"}],"comments":null,"info":{"dataDeclType":"data","declType":"data","roles":["Phantom"],"typeArguments":[["a",{"annotation":[],"contents":[["Prim","Ordering"],"Ordering"],"tag":"TypeConstructor"}]]},"kind":{"keyword":"data","kind":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim","Ordering"],"Ordering"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[5,37],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/PrimSubmodules.purs","start":[5,1]},"title":"Lol"},{"children":[],"comments":null,"info":{"declType":"value","type":{"annotation":[],"contents":[{"annotation":[],"contents":[["PrimSubmodules"],"Lol"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim","Ordering"],"LT"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"kind":null,"sourceSpan":{"end":[7,14],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/PrimSubmodules.purs","start":[7,1]},"title":"x"},{"children":[],"comments":null,"info":{"declType":"value","type":{"annotation":[],"contents":[{"annotation":[],"contents":[["PrimSubmodules"],"Lol"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim","Ordering"],"EQ"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"kind":null,"sourceSpan":{"end":[10,14],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/PrimSubmodules.purs","start":[10,1]},"title":"y"}],"name":"PrimSubmodules","reExports":[]}
diff --git a/tests/purs/docs/output/PrimSubmodules/externs.json b/tests/purs/docs/output/PrimSubmodules/externs.json
deleted file mode 100644
--- a/tests/purs/docs/output/PrimSubmodules/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["PrimSubmodules"],"efExports":[{"ReExportRef":[{"start":[1,1],"name":"src/PrimSubmodules.purs","end":[11,10]},{"exportSourceImportedFrom":["Prim","Ordering"],"exportSourceDefinedIn":["Prim","Ordering"]},{"TypeRef":[{"start":[1,1],"name":"src/PrimSubmodules.purs","end":[11,10]},"EQ",[]]}]},{"ReExportRef":[{"start":[1,1],"name":"src/PrimSubmodules.purs","end":[11,10]},{"exportSourceImportedFrom":["Prim","Ordering"],"exportSourceDefinedIn":["Prim","Ordering"]},{"TypeRef":[{"start":[1,1],"name":"src/PrimSubmodules.purs","end":[11,10]},"GT",[]]}]},{"ReExportRef":[{"start":[1,1],"name":"src/PrimSubmodules.purs","end":[11,10]},{"exportSourceImportedFrom":["Prim","Ordering"],"exportSourceDefinedIn":["Prim","Ordering"]},{"TypeRef":[{"start":[1,1],"name":"src/PrimSubmodules.purs","end":[11,10]},"LT",[]]}]},{"ReExportRef":[{"start":[1,1],"name":"src/PrimSubmodules.purs","end":[11,10]},{"exportSourceImportedFrom":["Prim","Ordering"],"exportSourceDefinedIn":["Prim","Ordering"]},{"KindRef":[{"start":[1,1],"name":"src/PrimSubmodules.purs","end":[11,10]},"Ordering"]}]},{"TypeRef":[{"start":[1,1],"name":"src/PrimSubmodules.purs","end":[11,10]},"Lol",["Lol"]]},{"ValueRef":[{"start":[1,1],"name":"src/PrimSubmodules.purs","end":[11,10]},{"Ident":"x"}]},{"ValueRef":[{"start":[1,1],"name":"src/PrimSubmodules.purs","end":[11,10]},{"Ident":"y"}]},{"ModuleRef":[{"start":[1,39],"name":"src/PrimSubmodules.purs","end":[1,47]},["O"]]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Prim","Ordering"],"eiImportType":{"Explicit":[{"KindRef":[{"start":[3,23],"name":"src/PrimSubmodules.purs","end":[3,36]},"Ordering"]},{"TypeRef":[{"start":[3,38],"name":"src/PrimSubmodules.purs","end":[3,40]},"LT",[]]},{"TypeRef":[{"start":[3,42],"name":"src/PrimSubmodules.purs","end":[3,44]},"EQ",[]]},{"TypeRef":[{"start":[3,46],"name":"src/PrimSubmodules.purs","end":[3,48]},"GT",[]]}]},"eiImportedAs":["O"]}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDType":{"edTypeName":"Lol","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[5,16],"name":"src/PrimSubmodules.purs","end":[5,26]},[]],"tag":"NamedKind","contents":[["Prim","Ordering"],"Ordering"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},"edTypeDeclarationKind":{"DataType":{"args":[["a",{"annotation":[{"start":[5,16],"name":"src/PrimSubmodules.purs","end":[5,26]},[]],"tag":"NamedKind","contents":[["Prim","Ordering"],"Ordering"]}]],"ctors":[["Lol",[{"annotation":[{"start":[5,34],"name":"src/PrimSubmodules.purs","end":[5,37]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]]]}}}},{"EDDataConstructor":{"edDataCtorName":"Lol","edDataCtorOrigin":"data","edDataCtorTypeCtor":"Lol","edDataCtorType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[5,34],"name":"src/PrimSubmodules.purs","end":[5,37]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["PrimSubmodules"],"Lol"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"a"}]}]},null]},"edDataCtorFields":[{"Ident":"value0"}]}},{"EDValue":{"edValueName":{"Ident":"x"},"edValueType":{"annotation":[{"start":[7,6],"name":"src/PrimSubmodules.purs","end":[7,14]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[7,6],"name":"src/PrimSubmodules.purs","end":[7,9]},[]],"tag":"TypeConstructor","contents":[["PrimSubmodules"],"Lol"]},{"annotation":[{"start":[7,10],"name":"src/PrimSubmodules.purs","end":[7,14]},[]],"tag":"TypeConstructor","contents":[["Prim","Ordering"],"LT"]}]}}},{"EDValue":{"edValueName":{"Ident":"y"},"edValueType":{"annotation":[{"start":[10,6],"name":"src/PrimSubmodules.purs","end":[10,14]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[10,6],"name":"src/PrimSubmodules.purs","end":[10,9]},[]],"tag":"TypeConstructor","contents":[["PrimSubmodules"],"Lol"]},{"annotation":[{"start":[10,10],"name":"src/PrimSubmodules.purs","end":[10,14]},[]],"tag":"TypeConstructor","contents":[["Prim","Ordering"],"EQ"]}]}}}],"efSourceSpan":{"start":[1,1],"name":"src/PrimSubmodules.purs","end":[11,10]}}
diff --git a/tests/purs/docs/output/ReExportedTypeClass/docs.json b/tests/purs/docs/output/ReExportedTypeClass/docs.json
--- a/tests/purs/docs/output/ReExportedTypeClass/docs.json
+++ b/tests/purs/docs/output/ReExportedTypeClass/docs.json
@@ -1,1 +1,1 @@
-{"reExports":[],"name":"ReExportedTypeClass","comments":null,"declarations":[]}
+{"comments":null,"declarations":[],"name":"ReExportedTypeClass","reExports":[]}
diff --git a/tests/purs/docs/output/ReExportedTypeClass/externs.json b/tests/purs/docs/output/ReExportedTypeClass/externs.json
deleted file mode 100644
--- a/tests/purs/docs/output/ReExportedTypeClass/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["ReExportedTypeClass"],"efExports":[{"ReExportRef":[{"start":[1,1],"name":"src/ReExportedTypeClass.purs","end":[5,21]},{"exportSourceImportedFrom":["SomeTypeClass"],"exportSourceDefinedIn":["SomeTypeClass"]},{"TypeClassRef":[{"start":[1,1],"name":"src/ReExportedTypeClass.purs","end":[5,21]},"SomeClass"]}]},{"ReExportRef":[{"start":[1,1],"name":"src/ReExportedTypeClass.purs","end":[5,21]},{"exportSourceImportedFrom":["SomeTypeClass"],"exportSourceDefinedIn":["SomeTypeClass"]},{"ValueRef":[{"start":[1,1],"name":"src/ReExportedTypeClass.purs","end":[5,21]},{"Ident":"member"}]}]},{"ModuleRef":[{"start":[2,5],"name":"src/ReExportedTypeClass.purs","end":[2,25]},["SomeTypeClass"]]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["SomeTypeClass"],"eiImportType":{"Implicit":[]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[],"efSourceSpan":{"start":[1,1],"name":"src/ReExportedTypeClass.purs","end":[5,21]}}
diff --git a/tests/purs/docs/output/RoleAnnotationDocs/docs.json b/tests/purs/docs/output/RoleAnnotationDocs/docs.json
new file mode 100644
--- /dev/null
+++ b/tests/purs/docs/output/RoleAnnotationDocs/docs.json
@@ -0,0 +1,1 @@
+{"comments":null,"declarations":[{"children":[{"comments":null,"info":{"arguments":[],"declType":"dataConstructor"},"sourceSpan":{"end":[3,25],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/RoleAnnotationDocs.purs","start":[3,18]},"title":"D_RNP"}],"comments":null,"info":{"dataDeclType":"data","declType":"data","roles":["Representational","Nominal","Phantom"],"typeArguments":[["a",null],["b",null],["c",null]]},"kind":{"keyword":"data","kind":{"annotation":[],"contents":{"identifier":"k1","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"k2","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"k3","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"k1","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"k2","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"k3","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"sourceSpan":{"end":[3,25],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/RoleAnnotationDocs.purs","start":[3,1]},"title":"D_RNP"},{"children":[{"comments":null,"info":{"arguments":[],"declType":"dataConstructor"},"sourceSpan":{"end":[6,25],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/RoleAnnotationDocs.purs","start":[6,18]},"title":"D_NPR"}],"comments":null,"info":{"dataDeclType":"data","declType":"data","roles":["Nominal","Phantom","Representational"],"typeArguments":[["a",null],["b",null],["c",null]]},"kind":{"keyword":"data","kind":{"annotation":[],"contents":{"identifier":"k1","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"k2","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"k3","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"k1","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"k2","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"k3","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"sourceSpan":{"end":[6,25],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/RoleAnnotationDocs.purs","start":[6,1]},"title":"D_NPR"},{"children":[{"comments":null,"info":{"arguments":[],"declType":"dataConstructor"},"sourceSpan":{"end":[9,25],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/RoleAnnotationDocs.purs","start":[9,18]},"title":"D_PRN"}],"comments":null,"info":{"dataDeclType":"data","declType":"data","roles":["Phantom","Representational","Nominal"],"typeArguments":[["a",null],["b",null],["c",null]]},"kind":{"keyword":"data","kind":{"annotation":[],"contents":{"identifier":"k1","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"k2","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"k3","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"k1","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"k2","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"k3","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"sourceSpan":{"end":[9,25],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/RoleAnnotationDocs.purs","start":[9,1]},"title":"D_PRN"},{"children":[],"comments":null,"info":{"dataDeclType":"data","declType":"data","roles":["Nominal","Nominal","Nominal"],"typeArguments":[["t0",null],["t1",null],["t2",null]]},"kind":null,"sourceSpan":{"end":[12,60],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/RoleAnnotationDocs.purs","start":[12,1]},"title":"FFI_NNN"},{"children":[],"comments":null,"info":{"dataDeclType":"data","declType":"data","roles":["Representational","Nominal","Phantom"],"typeArguments":[["t0",null],["t1",null],["t2",null]]},"kind":null,"sourceSpan":{"end":[14,60],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/RoleAnnotationDocs.purs","start":[14,1]},"title":"FFI_RNP"},{"children":[],"comments":null,"info":{"dataDeclType":"data","declType":"data","roles":["Representational","Nominal","Phantom"],"typeArguments":[["t0",null],["t1",null],["t2",null]]},"kind":{"keyword":"data","kind":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"},"tag":"ParensInType"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[17,74],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/RoleAnnotationDocs.purs","start":[17,1]},"title":"FFI_Higher1"},{"children":[],"comments":null,"info":{"dataDeclType":"data","declType":"data","roles":["Representational","Nominal","Phantom"],"typeArguments":[["t0",null],["t1",null],["t2",null]]},"kind":{"keyword":"data","kind":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"},"tag":"ParensInType"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[20,74],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/RoleAnnotationDocs.purs","start":[20,1]},"title":"FFI_Higher2"},{"children":[],"comments":null,"info":{"dataDeclType":"data","declType":"data","roles":["Representational","Nominal","Phantom"],"typeArguments":[["t0",null],["t1",null],["t2",null]]},"kind":{"keyword":"data","kind":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"},"tag":"ParensInType"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[23,74],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/RoleAnnotationDocs.purs","start":[23,1]},"title":"FFI_Higher3"},{"children":[],"comments":null,"info":{"dataDeclType":"data","declType":"data","roles":["Representational","Nominal","Phantom"],"typeArguments":[["t0",null],["t1",null],["t2",null]]},"kind":{"keyword":"data","kind":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"},"tag":"ParensInType"}],"tag":"TypeApp"},"tag":"ParensInType"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[26,84],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/RoleAnnotationDocs.purs","start":[26,1]},"title":"FFI_Higher4"},{"children":[],"comments":null,"info":{"dataDeclType":"data","declType":"data","roles":["Representational","Nominal","Phantom"],"typeArguments":[["t0",null],["t1",null],["t2",null]]},"kind":null,"sourceSpan":{"end":[29,69],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/RoleAnnotationDocs.purs","start":[29,1]},"title":"FFI_HeadParens"},{"children":[],"comments":null,"info":{"dataDeclType":"data","declType":"data","roles":["Representational","Nominal","Phantom"],"typeArguments":[["t0",null],["t1",null],["t2",null]]},"kind":null,"sourceSpan":{"end":[32,69],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/RoleAnnotationDocs.purs","start":[32,1]},"title":"FFI_TailParens"},{"children":[],"comments":null,"info":{"dataDeclType":"data","declType":"data","roles":["Representational","Nominal","Phantom"],"typeArguments":[["t0",null],["t1",null],["t2",null]]},"kind":null,"sourceSpan":{"end":[35,70],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/RoleAnnotationDocs.purs","start":[35,1]},"title":"FFI_WholeParens"}],"name":"RoleAnnotationDocs","reExports":[]}
diff --git a/tests/purs/docs/output/Shebang1Undocumented/docs.json b/tests/purs/docs/output/Shebang1Undocumented/docs.json
new file mode 100644
--- /dev/null
+++ b/tests/purs/docs/output/Shebang1Undocumented/docs.json
@@ -0,0 +1,1 @@
+{"comments":null,"declarations":[],"name":"Shebang1Undocumented","reExports":[]}
diff --git a/tests/purs/docs/output/Shebang2Undocumented/docs.json b/tests/purs/docs/output/Shebang2Undocumented/docs.json
new file mode 100644
--- /dev/null
+++ b/tests/purs/docs/output/Shebang2Undocumented/docs.json
@@ -0,0 +1,1 @@
+{"comments":null,"declarations":[],"name":"Shebang2Undocumented","reExports":[]}
diff --git a/tests/purs/docs/output/Shebang3Undocumented/docs.json b/tests/purs/docs/output/Shebang3Undocumented/docs.json
new file mode 100644
--- /dev/null
+++ b/tests/purs/docs/output/Shebang3Undocumented/docs.json
@@ -0,0 +1,1 @@
+{"comments":"Normal doc comment\n","declarations":[],"name":"Shebang3Undocumented","reExports":[]}
diff --git a/tests/purs/docs/output/Shebang4Undocumented/docs.json b/tests/purs/docs/output/Shebang4Undocumented/docs.json
new file mode 100644
--- /dev/null
+++ b/tests/purs/docs/output/Shebang4Undocumented/docs.json
@@ -0,0 +1,1 @@
+{"comments":"Normal doc comment\n","declarations":[],"name":"Shebang4Undocumented","reExports":[]}
diff --git a/tests/purs/docs/output/SolitaryTypeClassMember/docs.json b/tests/purs/docs/output/SolitaryTypeClassMember/docs.json
--- a/tests/purs/docs/output/SolitaryTypeClassMember/docs.json
+++ b/tests/purs/docs/output/SolitaryTypeClassMember/docs.json
@@ -1,1 +1,1 @@
-{"reExports":[],"name":"SolitaryTypeClassMember","comments":null,"declarations":[]}
+{"comments":null,"declarations":[],"name":"SolitaryTypeClassMember","reExports":[]}
diff --git a/tests/purs/docs/output/SolitaryTypeClassMember/externs.json b/tests/purs/docs/output/SolitaryTypeClassMember/externs.json
deleted file mode 100644
--- a/tests/purs/docs/output/SolitaryTypeClassMember/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["SolitaryTypeClassMember"],"efExports":[{"ReExportRef":[{"start":[1,1],"name":"src/SolitaryTypeClassMember.purs","end":[5,30]},{"exportSourceImportedFrom":["SomeTypeClass"],"exportSourceDefinedIn":["SomeTypeClass"]},{"ValueRef":[{"start":[1,1],"name":"src/SolitaryTypeClassMember.purs","end":[5,30]},{"Ident":"member"}]}]},{"ModuleRef":[{"start":[2,5],"name":"src/SolitaryTypeClassMember.purs","end":[2,25]},["SomeTypeClass"]]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["SomeTypeClass"],"eiImportType":{"Explicit":[{"ValueRef":[{"start":[5,23],"name":"src/SolitaryTypeClassMember.purs","end":[5,29]},{"Ident":"member"}]}]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[],"efSourceSpan":{"start":[1,1],"name":"src/SolitaryTypeClassMember.purs","end":[5,30]}}
diff --git a/tests/purs/docs/output/SomeTypeClass/docs.json b/tests/purs/docs/output/SomeTypeClass/docs.json
--- a/tests/purs/docs/output/SomeTypeClass/docs.json
+++ b/tests/purs/docs/output/SomeTypeClass/docs.json
@@ -1,1 +1,1 @@
-{"reExports":[],"name":"SomeTypeClass","comments":null,"declarations":[{"children":[{"comments":null,"title":"member","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeVar","contents":"a"}},"sourceSpan":{"start":[5,3],"name":"src/SomeTypeClass.purs","end":[5,14]}}],"comments":null,"title":"SomeClass","info":{"fundeps":[],"arguments":[["a",null]],"declType":"typeClass","superclasses":[]},"sourceSpan":{"start":[4,1],"name":"src/SomeTypeClass.purs","end":[5,14]}}]}
+{"comments":null,"declarations":[{"children":[{"comments":null,"info":{"declType":"typeClassMember","type":{"annotation":[],"contents":"a","tag":"TypeVar"}},"sourceSpan":{"end":[5,14],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/SomeTypeClass.purs","start":[5,3]},"title":"member"}],"comments":null,"info":{"arguments":[["a",null]],"declType":"typeClass","fundeps":[],"superclasses":[]},"kind":null,"sourceSpan":{"end":[5,14],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/SomeTypeClass.purs","start":[4,1]},"title":"SomeClass"}],"name":"SomeTypeClass","reExports":[]}
diff --git a/tests/purs/docs/output/SomeTypeClass/externs.json b/tests/purs/docs/output/SomeTypeClass/externs.json
deleted file mode 100644
--- a/tests/purs/docs/output/SomeTypeClass/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["SomeTypeClass"],"efExports":[{"ValueRef":[{"start":[2,1],"name":"src/SomeTypeClass.purs","end":[5,14]},{"Ident":"member"}]},{"TypeClassRef":[{"start":[2,1],"name":"src/SomeTypeClass.purs","end":[5,14]},"SomeClass"]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDValue":{"edValueName":{"Ident":"member"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["SomeTypeClass"],"SomeClass"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[5,13],"name":"src/SomeTypeClass.purs","end":[5,14]},[]],"tag":"TypeVar","contents":"a"}]},0]}}},{"EDType":{"edTypeName":"SomeClass","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"SomeClass","edTypeSynonymArguments":[["a",null]],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["member",{"annotation":[{"start":[5,13],"name":"src/SomeTypeClass.purs","end":[5,14]},[]],"tag":"TypeVar","contents":"a"},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]}}},{"EDClass":{"edClassName":"SomeClass","edClassTypeArguments":[["a",null]],"edClassMembers":[[{"Ident":"member"},{"annotation":[{"start":[5,13],"name":"src/SomeTypeClass.purs","end":[5,14]},[]],"tag":"TypeVar","contents":"a"}]],"edClassConstraints":[],"edFunctionalDependencies":[]}}],"efSourceSpan":{"start":[2,1],"name":"src/SomeTypeClass.purs","end":[5,14]}}
diff --git a/tests/purs/docs/output/Transitive1/docs.json b/tests/purs/docs/output/Transitive1/docs.json
--- a/tests/purs/docs/output/Transitive1/docs.json
+++ b/tests/purs/docs/output/Transitive1/docs.json
@@ -1,1 +1,1 @@
-{"reExports":[],"name":"Transitive1","comments":null,"declarations":[]}
+{"comments":null,"declarations":[],"name":"Transitive1","reExports":[]}
diff --git a/tests/purs/docs/output/Transitive1/externs.json b/tests/purs/docs/output/Transitive1/externs.json
deleted file mode 100644
--- a/tests/purs/docs/output/Transitive1/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Transitive1"],"efExports":[{"ReExportRef":[{"start":[1,1],"name":"src/Transitive1.purs","end":[5,19]},{"exportSourceImportedFrom":["Transitive2"],"exportSourceDefinedIn":["Transitive3"]},{"ValueRef":[{"start":[1,1],"name":"src/Transitive1.purs","end":[5,19]},{"Ident":"transitive3"}]}]},{"ModuleRef":[{"start":[2,5],"name":"src/Transitive1.purs","end":[2,23]},["Transitive2"]]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Transitive2"],"eiImportType":{"Implicit":[]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[],"efSourceSpan":{"start":[1,1],"name":"src/Transitive1.purs","end":[5,19]}}
diff --git a/tests/purs/docs/output/Transitive2/docs.json b/tests/purs/docs/output/Transitive2/docs.json
--- a/tests/purs/docs/output/Transitive2/docs.json
+++ b/tests/purs/docs/output/Transitive2/docs.json
@@ -1,1 +1,1 @@
-{"reExports":[],"name":"Transitive2","comments":null,"declarations":[]}
+{"comments":null,"declarations":[],"name":"Transitive2","reExports":[]}
diff --git a/tests/purs/docs/output/Transitive2/externs.json b/tests/purs/docs/output/Transitive2/externs.json
deleted file mode 100644
--- a/tests/purs/docs/output/Transitive2/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Transitive2"],"efExports":[{"ReExportRef":[{"start":[1,1],"name":"src/Transitive2.purs","end":[5,19]},{"exportSourceImportedFrom":["Transitive3"],"exportSourceDefinedIn":["Transitive3"]},{"ValueRef":[{"start":[1,1],"name":"src/Transitive2.purs","end":[5,19]},{"Ident":"transitive3"}]}]},{"ModuleRef":[{"start":[2,5],"name":"src/Transitive2.purs","end":[2,23]},["Transitive3"]]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Transitive3"],"eiImportType":{"Implicit":[]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[],"efSourceSpan":{"start":[1,1],"name":"src/Transitive2.purs","end":[5,19]}}
diff --git a/tests/purs/docs/output/Transitive3/docs.json b/tests/purs/docs/output/Transitive3/docs.json
--- a/tests/purs/docs/output/Transitive3/docs.json
+++ b/tests/purs/docs/output/Transitive3/docs.json
@@ -1,1 +1,1 @@
-{"reExports":[],"name":"Transitive3","comments":null,"declarations":[{"children":[],"comments":null,"title":"transitive3","info":{"declType":"value","type":{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}},"sourceSpan":{"start":[3,1],"name":"src/Transitive3.purs","end":[3,19]}}]}
+{"comments":null,"declarations":[{"children":[],"comments":null,"info":{"declType":"value","type":{"annotation":[],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}},"kind":null,"sourceSpan":{"end":[3,19],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/Transitive3.purs","start":[3,1]},"title":"transitive3"}],"name":"Transitive3","reExports":[]}
diff --git a/tests/purs/docs/output/Transitive3/externs.json b/tests/purs/docs/output/Transitive3/externs.json
deleted file mode 100644
--- a/tests/purs/docs/output/Transitive3/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Transitive3"],"efExports":[{"ValueRef":[{"start":[1,1],"name":"src/Transitive3.purs","end":[4,16]},{"Ident":"transitive3"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDValue":{"edValueName":{"Ident":"transitive3"},"edValueType":{"annotation":[{"start":[3,16],"name":"src/Transitive3.purs","end":[3,19]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}}}],"efSourceSpan":{"start":[1,1],"name":"src/Transitive3.purs","end":[4,16]}}
diff --git a/tests/purs/docs/output/TypeClassWithFunDeps/docs.json b/tests/purs/docs/output/TypeClassWithFunDeps/docs.json
--- a/tests/purs/docs/output/TypeClassWithFunDeps/docs.json
+++ b/tests/purs/docs/output/TypeClassWithFunDeps/docs.json
@@ -1,1 +1,1 @@
-{"reExports":[],"name":"TypeClassWithFunDeps","comments":null,"declarations":[{"children":[{"comments":null,"title":"aMember","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}},"sourceSpan":{"start":[5,3],"name":"src/TypeClassWithFunDeps.purs","end":[5,20]}}],"comments":null,"title":"TypeClassWithFunDeps","info":{"fundeps":[[["a","b"],["c"]],[["c"],["d","e"]]],"arguments":[["a",null],["b",null],["c",null],["d",null],["e",null]],"declType":"typeClass","superclasses":[]},"sourceSpan":{"start":[4,1],"name":"src/TypeClassWithFunDeps.purs","end":[5,20]}}]}
+{"comments":null,"declarations":[{"children":[{"comments":null,"info":{"declType":"typeClassMember","type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"}},"sourceSpan":{"end":[5,20],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/TypeClassWithFunDeps.purs","start":[5,3]},"title":"aMember"}],"comments":null,"info":{"arguments":[["a",null],["b",null],["c",null],["d",null],["e",null]],"declType":"typeClass","fundeps":[[["a","b"],["c"]],[["c"],["d","e"]]],"superclasses":[]},"kind":{"keyword":"class","kind":{"annotation":[],"contents":{"identifier":"k1","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"k2","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"k3","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"k1","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"k2","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"k3","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim"],"Constraint"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"sourceSpan":{"end":[5,20],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/TypeClassWithFunDeps.purs","start":[4,1]},"title":"TypeClassWithFunDeps"}],"name":"TypeClassWithFunDeps","reExports":[]}
diff --git a/tests/purs/docs/output/TypeClassWithFunDeps/externs.json b/tests/purs/docs/output/TypeClassWithFunDeps/externs.json
deleted file mode 100644
--- a/tests/purs/docs/output/TypeClassWithFunDeps/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["TypeClassWithFunDeps"],"efExports":[{"ValueRef":[{"start":[2,1],"name":"src/TypeClassWithFunDeps.purs","end":[5,20]},{"Ident":"aMember"}]},{"TypeClassRef":[{"start":[2,1],"name":"src/TypeClassWithFunDeps.purs","end":[5,20]},"TypeClassWithFunDeps"]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDValue":{"edValueName":{"Ident":"aMember"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["d",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["e",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["TypeClassWithFunDeps"],"TypeClassWithFunDeps"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"a"},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"b"},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"c"},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"d"},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"e"}],"constraintData":null},{"annotation":[{"start":[5,14],"name":"src/TypeClassWithFunDeps.purs","end":[5,20]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[5,14],"name":"src/TypeClassWithFunDeps.purs","end":[5,20]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[5,16],"name":"src/TypeClassWithFunDeps.purs","end":[5,18]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[5,14],"name":"src/TypeClassWithFunDeps.purs","end":[5,15]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[5,19],"name":"src/TypeClassWithFunDeps.purs","end":[5,20]},[]],"tag":"TypeVar","contents":"b"}]}]},0]},1]},2]},3]},4]}}},{"EDType":{"edTypeName":"TypeClassWithFunDeps","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[5,16],"name":"src/TypeClassWithFunDeps.purs","end":[5,18]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[5,16],"name":"src/TypeClassWithFunDeps.purs","end":[5,18]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]}]}]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"TypeClassWithFunDeps","edTypeSynonymArguments":[["a",null],["b",null],["c",null],["d",null],["e",null]],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["aMember",{"annotation":[{"start":[5,14],"name":"src/TypeClassWithFunDeps.purs","end":[5,20]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[5,14],"name":"src/TypeClassWithFunDeps.purs","end":[5,20]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[5,16],"name":"src/TypeClassWithFunDeps.purs","end":[5,18]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[5,14],"name":"src/TypeClassWithFunDeps.purs","end":[5,15]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[5,19],"name":"src/TypeClassWithFunDeps.purs","end":[5,20]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]}}},{"EDClass":{"edClassName":"TypeClassWithFunDeps","edClassTypeArguments":[["a",null],["b",null],["c",null],["d",null],["e",null]],"edClassMembers":[[{"Ident":"aMember"},{"annotation":[{"start":[5,14],"name":"src/TypeClassWithFunDeps.purs","end":[5,20]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[5,14],"name":"src/TypeClassWithFunDeps.purs","end":[5,20]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[5,16],"name":"src/TypeClassWithFunDeps.purs","end":[5,18]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[5,14],"name":"src/TypeClassWithFunDeps.purs","end":[5,15]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[5,19],"name":"src/TypeClassWithFunDeps.purs","end":[5,20]},[]],"tag":"TypeVar","contents":"b"}]}]],"edClassConstraints":[],"edFunctionalDependencies":[{"determiners":[0,1],"determined":[2]},{"determiners":[2],"determined":[3,4]}]}}],"efSourceSpan":{"start":[2,1],"name":"src/TypeClassWithFunDeps.purs","end":[5,20]}}
diff --git a/tests/purs/docs/output/TypeClassWithoutMembers/docs.json b/tests/purs/docs/output/TypeClassWithoutMembers/docs.json
--- a/tests/purs/docs/output/TypeClassWithoutMembers/docs.json
+++ b/tests/purs/docs/output/TypeClassWithoutMembers/docs.json
@@ -1,1 +1,1 @@
-{"reExports":[],"name":"TypeClassWithoutMembers","comments":null,"declarations":[]}
+{"comments":null,"declarations":[],"name":"TypeClassWithoutMembers","reExports":[]}
diff --git a/tests/purs/docs/output/TypeClassWithoutMembers/externs.json b/tests/purs/docs/output/TypeClassWithoutMembers/externs.json
deleted file mode 100644
--- a/tests/purs/docs/output/TypeClassWithoutMembers/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["TypeClassWithoutMembers"],"efExports":[{"ReExportRef":[{"start":[1,1],"name":"src/TypeClassWithoutMembers.purs","end":[5,43]},{"exportSourceImportedFrom":["TypeClassWithoutMembersIntermediate"],"exportSourceDefinedIn":["SomeTypeClass"]},{"TypeClassRef":[{"start":[1,1],"name":"src/TypeClassWithoutMembers.purs","end":[5,43]},"SomeClass"]}]},{"ModuleRef":[{"start":[2,5],"name":"src/TypeClassWithoutMembers.purs","end":[2,47]},["TypeClassWithoutMembersIntermediate"]]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["TypeClassWithoutMembersIntermediate"],"eiImportType":{"Implicit":[]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[],"efSourceSpan":{"start":[1,1],"name":"src/TypeClassWithoutMembers.purs","end":[5,43]}}
diff --git a/tests/purs/docs/output/TypeClassWithoutMembersIntermediate/docs.json b/tests/purs/docs/output/TypeClassWithoutMembersIntermediate/docs.json
--- a/tests/purs/docs/output/TypeClassWithoutMembersIntermediate/docs.json
+++ b/tests/purs/docs/output/TypeClassWithoutMembersIntermediate/docs.json
@@ -1,1 +1,1 @@
-{"reExports":[],"name":"TypeClassWithoutMembersIntermediate","comments":null,"declarations":[]}
+{"comments":null,"declarations":[],"name":"TypeClassWithoutMembersIntermediate","reExports":[]}
diff --git a/tests/purs/docs/output/TypeClassWithoutMembersIntermediate/externs.json b/tests/purs/docs/output/TypeClassWithoutMembersIntermediate/externs.json
deleted file mode 100644
--- a/tests/purs/docs/output/TypeClassWithoutMembersIntermediate/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["TypeClassWithoutMembersIntermediate"],"efExports":[{"ReExportRef":[{"start":[1,1],"name":"src/TypeClassWithoutMembersIntermediate.purs","end":[5,39]},{"exportSourceImportedFrom":["SomeTypeClass"],"exportSourceDefinedIn":["SomeTypeClass"]},{"TypeClassRef":[{"start":[1,1],"name":"src/TypeClassWithoutMembersIntermediate.purs","end":[5,39]},"SomeClass"]}]},{"ModuleRef":[{"start":[2,5],"name":"src/TypeClassWithoutMembersIntermediate.purs","end":[2,25]},["SomeTypeClass"]]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["SomeTypeClass"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[5,23],"name":"src/TypeClassWithoutMembersIntermediate.purs","end":[5,38]},"SomeClass"]}]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[],"efSourceSpan":{"start":[1,1],"name":"src/TypeClassWithoutMembersIntermediate.purs","end":[5,39]}}
diff --git a/tests/purs/docs/output/TypeLevelString/docs.json b/tests/purs/docs/output/TypeLevelString/docs.json
--- a/tests/purs/docs/output/TypeLevelString/docs.json
+++ b/tests/purs/docs/output/TypeLevelString/docs.json
@@ -1,1 +1,1 @@
-{"reExports":[],"name":"TypeLevelString","comments":null,"declarations":[{"children":[{"comments":null,"title":"fooBar","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Prim","TypeError"],"Fail"],"constraintArgs":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim","TypeError"],"Text"]},{"annotation":[],"tag":"TypeLevelString","contents":"oops"}]}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["TypeLevelString"],"Bar"]},{"annotation":[],"tag":"TypeConstructor","contents":[["TypeLevelString"],"Foo"]}]}},"sourceSpan":{"start":[9,1],"name":"src/TypeLevelString.purs","end":[9,49]}}],"comments":null,"title":"Foo","info":{"declType":"data","dataDeclType":"data","typeArguments":[]},"sourceSpan":{"start":[5,1],"name":"src/TypeLevelString.purs","end":[5,9]}},{"children":[{"comments":null,"title":"fooBar","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Prim","TypeError"],"Fail"],"constraintArgs":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim","TypeError"],"Text"]},{"annotation":[],"tag":"TypeLevelString","contents":"oops"}]}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["TypeLevelString"],"Bar"]},{"annotation":[],"tag":"TypeConstructor","contents":[["TypeLevelString"],"Foo"]}]}},"sourceSpan":{"start":[9,1],"name":"src/TypeLevelString.purs","end":[9,49]}}],"comments":null,"title":"Bar","info":{"fundeps":[],"arguments":[["a",null]],"declType":"typeClass","superclasses":[]},"sourceSpan":{"start":[7,1],"name":"src/TypeLevelString.purs","end":[7,12]}}]}
+{"comments":null,"declarations":[{"children":[{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim","TypeError"],"Text"],"tag":"TypeConstructor"},{"annotation":[],"contents":"oops","tag":"TypeLevelString"}],"tag":"TypeApp"}],"constraintClass":[["Prim","TypeError"],"Fail"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["TypeLevelString"],"Bar"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["TypeLevelString"],"Foo"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[9,49],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/TypeLevelString.purs","start":[9,1]},"title":"fooBar"}],"comments":null,"info":{"dataDeclType":"data","declType":"data","roles":[],"typeArguments":[]},"kind":null,"sourceSpan":{"end":[5,9],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/TypeLevelString.purs","start":[5,1]},"title":"Foo"},{"children":[{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim","TypeError"],"Text"],"tag":"TypeConstructor"},{"annotation":[],"contents":"oops","tag":"TypeLevelString"}],"tag":"TypeApp"}],"constraintClass":[["Prim","TypeError"],"Fail"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["TypeLevelString"],"Bar"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["TypeLevelString"],"Foo"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[9,49],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/TypeLevelString.purs","start":[9,1]},"title":"fooBar"}],"comments":null,"info":{"arguments":[["a",null]],"declType":"typeClass","fundeps":[],"superclasses":[]},"kind":{"keyword":"class","kind":{"annotation":[],"contents":{"identifier":"k","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"k","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim"],"Constraint"],"tag":"TypeConstructor"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"sourceSpan":{"end":[7,12],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/TypeLevelString.purs","start":[7,1]},"title":"Bar"}],"name":"TypeLevelString","reExports":[]}
diff --git a/tests/purs/docs/output/TypeLevelString/externs.json b/tests/purs/docs/output/TypeLevelString/externs.json
deleted file mode 100644
--- a/tests/purs/docs/output/TypeLevelString/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["TypeLevelString"],"efExports":[{"TypeRef":[{"start":[1,1],"name":"src/TypeLevelString.purs","end":[9,49]},"Foo",[]]},{"TypeClassRef":[{"start":[1,1],"name":"src/TypeLevelString.purs","end":[9,49]},"Bar"]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"fooBar"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Prim","TypeError"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[3,24],"name":"src/TypeLevelString.purs","end":[3,34]},"Fail"]},{"TypeRef":[{"start":[3,36],"name":"src/TypeLevelString.purs","end":[3,40]},"Text",[]]}]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDType":{"edTypeName":"Foo","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},"edTypeDeclarationKind":{"DataType":{"args":[],"ctors":[]}}}},{"EDType":{"edTypeName":"Bar","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"Bar","edTypeSynonymArguments":[["a",null]],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}}},{"EDClass":{"edClassName":"Bar","edClassTypeArguments":[["a",null]],"edClassMembers":[],"edClassConstraints":[],"edFunctionalDependencies":[]}},{"EDInstance":{"edInstanceClassName":[["TypeLevelString"],"Bar"],"edInstanceName":{"Ident":"fooBar"},"edInstanceTypes":[{"annotation":[{"start":[9,46],"name":"src/TypeLevelString.purs","end":[9,49]},[]],"tag":"TypeConstructor","contents":[["TypeLevelString"],"Foo"]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[9,20],"name":"src/TypeLevelString.purs","end":[9,38]},[]],"constraintClass":[["Prim","TypeError"],"Fail"],"constraintArgs":[{"annotation":[{"start":[9,26],"name":"src/TypeLevelString.purs","end":[9,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[9,26],"name":"src/TypeLevelString.purs","end":[9,30]},[]],"tag":"TypeConstructor","contents":[["Prim","TypeError"],"Text"]},{"annotation":[{"start":[9,31],"name":"src/TypeLevelString.purs","end":[9,37]},[]],"tag":"TypeLevelString","contents":"oops"}]}],"constraintData":null}],"edInstanceChain":[[["TypeLevelString"],{"Ident":"fooBar"}]],"edInstanceChainIndex":0}}],"efSourceSpan":{"start":[1,1],"name":"src/TypeLevelString.purs","end":[9,49]}}
diff --git a/tests/purs/docs/output/TypeOpAliases/docs.json b/tests/purs/docs/output/TypeOpAliases/docs.json
--- a/tests/purs/docs/output/TypeOpAliases/docs.json
+++ b/tests/purs/docs/output/TypeOpAliases/docs.json
@@ -1,1 +1,1 @@
-{"reExports":[],"name":"TypeOpAliases","comments":null,"declarations":[{"children":[],"comments":null,"title":"AltFn","info":{"arguments":[["a",null],["b",null]],"declType":"typeSynonym","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}},"sourceSpan":{"start":[3,1],"name":"src/TypeOpAliases.purs","end":[3,24]}},{"children":[],"comments":null,"title":"type (~>)","info":{"declType":"alias","alias":[["TypeOpAliases"],{"Left":"AltFn"}],"fixity":{"associativity":"infixr","precedence":6}},"sourceSpan":{"start":[5,1],"name":"src/TypeOpAliases.purs","end":[5,26]}},{"children":[],"comments":null,"title":"test1","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["TypeOpAliases"],"~>"]},{"annotation":[],"tag":"TypeVar","contents":"a"},{"annotation":[],"tag":"TypeVar","contents":"b"}]},null]},null]}},"sourceSpan":{"start":[7,1],"name":"src/TypeOpAliases.purs","end":[7,43]}},{"children":[],"comments":null,"title":"test2","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["TypeOpAliases"],"~>"]},{"annotation":[],"tag":"TypeVar","contents":"a"},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["TypeOpAliases"],"~>"]},{"annotation":[],"tag":"TypeVar","contents":"b"},{"annotation":[],"tag":"TypeVar","contents":"c"}]}]},null]},null]},null]}},"sourceSpan":{"start":[8,1],"name":"src/TypeOpAliases.purs","end":[8,50]}},{"children":[],"comments":null,"title":"test3","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["d",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["TypeOpAliases"],"~>"]},{"annotation":[],"tag":"TypeVar","contents":"a"},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["TypeOpAliases"],"~>"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["TypeOpAliases"],"~>"]},{"annotation":[],"tag":"TypeVar","contents":"b"},{"annotation":[],"tag":"TypeVar","contents":"c"}]}},{"annotation":[],"tag":"TypeVar","contents":"d"}]}]},null]},null]},null]},null]}},"sourceSpan":{"start":[9,1],"name":"src/TypeOpAliases.purs","end":[9,59]}},{"children":[],"comments":null,"title":"test4","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["d",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["TypeOpAliases"],"~>"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["TypeOpAliases"],"~>"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["TypeOpAliases"],"~>"]},{"annotation":[],"tag":"TypeVar","contents":"a"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}},{"annotation":[],"tag":"TypeVar","contents":"c"}]}},{"annotation":[],"tag":"TypeVar","contents":"d"}]},null]},null]},null]},null]}},"sourceSpan":{"start":[10,1],"name":"src/TypeOpAliases.purs","end":[10,61]}},{"children":[{"comments":null,"title":"Tuple","info":{"arguments":[{"annotation":[],"tag":"TypeVar","contents":"a"},{"annotation":[],"tag":"TypeVar","contents":"b"}],"declType":"dataConstructor"},"sourceSpan":null},{"comments":null,"title":"showTuple","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["TypeOpAliases"],"Show"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["TypeOpAliases"],"Show"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["TypeOpAliases"],"Tuple"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}},"sourceSpan":{"start":[27,1],"name":"src/TypeOpAliases.purs","end":[28,24]}},{"comments":null,"title":"testLEither","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["TypeOpAliases"],"TestL"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["TypeOpAliases"],"Either"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["TypeOpAliases"],"Tuple"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}]}]}},"sourceSpan":{"start":[39,1],"name":"src/TypeOpAliases.purs","end":[40,27]}},{"comments":null,"title":"testREither","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["TypeOpAliases"],"TestR"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["TypeOpAliases"],"Either"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["TypeOpAliases"],"Tuple"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}]}},"sourceSpan":{"start":[43,1],"name":"src/TypeOpAliases.purs","end":[44,23]}}],"comments":null,"title":"Tuple","info":{"declType":"data","dataDeclType":"data","typeArguments":[["a",null],["b",null]]},"sourceSpan":{"start":[12,1],"name":"src/TypeOpAliases.purs","end":[12,27]}},{"children":[],"comments":null,"title":"(×)","info":{"declType":"alias","alias":[["TypeOpAliases"],{"Right":{"Right":"Tuple"}}],"fixity":{"associativity":"infixl","precedence":6}},"sourceSpan":{"start":[14,1],"name":"src/TypeOpAliases.purs","end":[14,20]}},{"children":[],"comments":null,"title":"type (×)","info":{"declType":"alias","alias":[["TypeOpAliases"],{"Left":"Tuple"}],"fixity":{"associativity":"infixl","precedence":6}},"sourceSpan":{"start":[15,1],"name":"src/TypeOpAliases.purs","end":[15,25]}},{"children":[{"comments":null,"title":"Left","info":{"arguments":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"declType":"dataConstructor"},"sourceSpan":null},{"comments":null,"title":"Right","info":{"arguments":[{"annotation":[],"tag":"TypeVar","contents":"b"}],"declType":"dataConstructor"},"sourceSpan":null},{"comments":null,"title":"testLEither","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["TypeOpAliases"],"TestL"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["TypeOpAliases"],"Either"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["TypeOpAliases"],"Tuple"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}]}]}},"sourceSpan":{"start":[39,1],"name":"src/TypeOpAliases.purs","end":[40,27]}},{"comments":null,"title":"testREither","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["TypeOpAliases"],"TestR"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["TypeOpAliases"],"Either"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["TypeOpAliases"],"Tuple"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}]}},"sourceSpan":{"start":[43,1],"name":"src/TypeOpAliases.purs","end":[44,23]}}],"comments":null,"title":"Either","info":{"declType":"data","dataDeclType":"data","typeArguments":[["a",null],["b",null]]},"sourceSpan":{"start":[17,1],"name":"src/TypeOpAliases.purs","end":[17,35]}},{"children":[],"comments":null,"title":"type (⊕)","info":{"declType":"alias","alias":[["TypeOpAliases"],{"Left":"Either"}],"fixity":{"associativity":"infixl","precedence":5}},"sourceSpan":{"start":[19,1],"name":"src/TypeOpAliases.purs","end":[19,26]}},{"children":[],"comments":null,"title":"third","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["TypeOpAliases"],"×"]},{"annotation":[],"tag":"TypeVar","contents":"a"},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["TypeOpAliases"],"×"]},{"annotation":[],"tag":"TypeVar","contents":"b"},{"annotation":[],"tag":"TypeVar","contents":"c"}]}]}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},null]},null]},null]}},"sourceSpan":{"start":[21,1],"name":"src/TypeOpAliases.purs","end":[21,31]}},{"children":[{"comments":null,"title":"show","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}},"sourceSpan":{"start":[25,3],"name":"src/TypeOpAliases.purs","end":[25,22]}},{"comments":null,"title":"showTuple","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["TypeOpAliases"],"Show"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["TypeOpAliases"],"Show"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["TypeOpAliases"],"Tuple"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}},"sourceSpan":{"start":[27,1],"name":"src/TypeOpAliases.purs","end":[28,24]}}],"comments":null,"title":"Show","info":{"fundeps":[],"arguments":[["a",null]],"declType":"typeClass","superclasses":[]},"sourceSpan":{"start":[24,1],"name":"src/TypeOpAliases.purs","end":[25,22]}},{"children":[{"comments":null,"title":"testL","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeVar","contents":"a"}},"sourceSpan":{"start":[33,3],"name":"src/TypeOpAliases.purs","end":[33,13]}},{"comments":null,"title":"testLEither","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["TypeOpAliases"],"TestL"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["TypeOpAliases"],"Either"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["TypeOpAliases"],"Tuple"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}]}]}},"sourceSpan":{"start":[39,1],"name":"src/TypeOpAliases.purs","end":[40,27]}}],"comments":null,"title":"TestL","info":{"fundeps":[],"arguments":[["a",null]],"declType":"typeClass","superclasses":[]},"sourceSpan":{"start":[32,1],"name":"src/TypeOpAliases.purs","end":[33,13]}},{"children":[{"comments":null,"title":"testR","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeVar","contents":"a"}},"sourceSpan":{"start":[36,3],"name":"src/TypeOpAliases.purs","end":[36,13]}},{"comments":null,"title":"testREither","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["TypeOpAliases"],"TestR"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["TypeOpAliases"],"Either"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["TypeOpAliases"],"Tuple"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}]}},"sourceSpan":{"start":[43,1],"name":"src/TypeOpAliases.purs","end":[44,23]}}],"comments":null,"title":"TestR","info":{"fundeps":[],"arguments":[["a",null]],"declType":"typeClass","superclasses":[]},"sourceSpan":{"start":[35,1],"name":"src/TypeOpAliases.purs","end":[36,13]}}]}
+{"comments":null,"declarations":[{"children":[],"comments":null,"info":{"arguments":[["a",null],["b",null]],"declType":"typeSynonym","type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"}},"kind":null,"sourceSpan":{"end":[3,24],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/TypeOpAliases.purs","start":[3,1]},"title":"AltFn"},{"children":[],"comments":null,"info":{"alias":[["TypeOpAliases"],{"Left":"AltFn"}],"declType":"alias","fixity":{"associativity":"infixr","precedence":6}},"kind":null,"sourceSpan":{"end":[5,26],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/TypeOpAliases.purs","start":[5,1]},"title":"type (~>)"},{"children":[],"comments":null,"info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"b","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["TypeOpAliases"],"~>"],"tag":"TypeOp"},{"annotation":[],"contents":"a","tag":"TypeVar"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"BinaryNoParensType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[7,43],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/TypeOpAliases.purs","start":[7,1]},"title":"test1"},{"children":[],"comments":null,"info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"b","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"c","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["TypeOpAliases"],"~>"],"tag":"TypeOp"},{"annotation":[],"contents":"a","tag":"TypeVar"},{"annotation":[],"contents":[{"annotation":[],"contents":[["TypeOpAliases"],"~>"],"tag":"TypeOp"},{"annotation":[],"contents":"b","tag":"TypeVar"},{"annotation":[],"contents":"c","tag":"TypeVar"}],"tag":"BinaryNoParensType"}],"tag":"BinaryNoParensType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[8,50],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/TypeOpAliases.purs","start":[8,1]},"title":"test2"},{"children":[],"comments":null,"info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"b","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"c","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"d","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["TypeOpAliases"],"~>"],"tag":"TypeOp"},{"annotation":[],"contents":"a","tag":"TypeVar"},{"annotation":[],"contents":[{"annotation":[],"contents":[["TypeOpAliases"],"~>"],"tag":"TypeOp"},{"annotation":[],"contents":{"annotation":[],"contents":[{"annotation":[],"contents":[["TypeOpAliases"],"~>"],"tag":"TypeOp"},{"annotation":[],"contents":"b","tag":"TypeVar"},{"annotation":[],"contents":"c","tag":"TypeVar"}],"tag":"BinaryNoParensType"},"tag":"ParensInType"},{"annotation":[],"contents":"d","tag":"TypeVar"}],"tag":"BinaryNoParensType"}],"tag":"BinaryNoParensType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[9,59],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/TypeOpAliases.purs","start":[9,1]},"title":"test3"},{"children":[],"comments":null,"info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"b","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"c","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"d","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["TypeOpAliases"],"~>"],"tag":"TypeOp"},{"annotation":[],"contents":{"annotation":[],"contents":[{"annotation":[],"contents":[["TypeOpAliases"],"~>"],"tag":"TypeOp"},{"annotation":[],"contents":{"annotation":[],"contents":[{"annotation":[],"contents":[["TypeOpAliases"],"~>"],"tag":"TypeOp"},{"annotation":[],"contents":"a","tag":"TypeVar"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"BinaryNoParensType"},"tag":"ParensInType"},{"annotation":[],"contents":"c","tag":"TypeVar"}],"tag":"BinaryNoParensType"},"tag":"ParensInType"},{"annotation":[],"contents":"d","tag":"TypeVar"}],"tag":"BinaryNoParensType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[10,61],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/TypeOpAliases.purs","start":[10,1]},"title":"test4"},{"children":[{"comments":null,"info":{"arguments":[{"annotation":[],"contents":"a","tag":"TypeVar"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"declType":"dataConstructor"},"sourceSpan":{"end":[12,23],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/TypeOpAliases.purs","start":[12,16]},"title":"Tuple"},{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["TypeOpAliases"],"Show"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["TypeOpAliases"],"Show"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["TypeOpAliases"],"Tuple"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[28,24],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/TypeOpAliases.purs","start":[27,1]},"title":"showTuple"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["TypeOpAliases"],"TestL"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["TypeOpAliases"],"Either"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["TypeOpAliases"],"Tuple"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim"],"String"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[40,27],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/TypeOpAliases.purs","start":[39,1]},"title":"testLEither"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["TypeOpAliases"],"TestR"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["TypeOpAliases"],"Either"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["TypeOpAliases"],"Tuple"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim"],"String"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[44,23],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/TypeOpAliases.purs","start":[43,1]},"title":"testREither"}],"comments":null,"info":{"dataDeclType":"data","declType":"data","roles":["Representational","Representational"],"typeArguments":[["a",null],["b",null]]},"kind":null,"sourceSpan":{"end":[12,27],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/TypeOpAliases.purs","start":[12,1]},"title":"Tuple"},{"children":[],"comments":null,"info":{"alias":[["TypeOpAliases"],{"Right":{"Right":"Tuple"}}],"declType":"alias","fixity":{"associativity":"infixl","precedence":6}},"kind":null,"sourceSpan":{"end":[14,20],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/TypeOpAliases.purs","start":[14,1]},"title":"(×)"},{"children":[],"comments":null,"info":{"alias":[["TypeOpAliases"],{"Left":"Tuple"}],"declType":"alias","fixity":{"associativity":"infixl","precedence":6}},"kind":null,"sourceSpan":{"end":[15,25],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/TypeOpAliases.purs","start":[15,1]},"title":"type (×)"},{"children":[{"comments":null,"info":{"arguments":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"declType":"dataConstructor"},"sourceSpan":{"end":[17,23],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/TypeOpAliases.purs","start":[17,17]},"title":"Left"},{"comments":null,"info":{"arguments":[{"annotation":[],"contents":"b","tag":"TypeVar"}],"declType":"dataConstructor"},"sourceSpan":{"end":[17,33],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/TypeOpAliases.purs","start":[17,26]},"title":"Right"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["TypeOpAliases"],"TestL"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["TypeOpAliases"],"Either"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["TypeOpAliases"],"Tuple"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim"],"String"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[40,27],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/TypeOpAliases.purs","start":[39,1]},"title":"testLEither"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["TypeOpAliases"],"TestR"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["TypeOpAliases"],"Either"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["TypeOpAliases"],"Tuple"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim"],"String"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[44,23],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/TypeOpAliases.purs","start":[43,1]},"title":"testREither"}],"comments":null,"info":{"dataDeclType":"data","declType":"data","roles":["Representational","Representational"],"typeArguments":[["a",null],["b",null]]},"kind":null,"sourceSpan":{"end":[17,35],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/TypeOpAliases.purs","start":[17,1]},"title":"Either"},{"children":[],"comments":null,"info":{"alias":[["TypeOpAliases"],{"Left":"Either"}],"declType":"alias","fixity":{"associativity":"infixl","precedence":5}},"kind":null,"sourceSpan":{"end":[19,26],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/TypeOpAliases.purs","start":[19,1]},"title":"type (⊕)"},{"children":[],"comments":null,"info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"b","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"c","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["TypeOpAliases"],"×"],"tag":"TypeOp"},{"annotation":[],"contents":"a","tag":"TypeVar"},{"annotation":[],"contents":[{"annotation":[],"contents":[["TypeOpAliases"],"×"],"tag":"TypeOp"},{"annotation":[],"contents":"b","tag":"TypeVar"},{"annotation":[],"contents":"c","tag":"TypeVar"}],"tag":"BinaryNoParensType"}],"tag":"BinaryNoParensType"}],"tag":"TypeApp"},{"annotation":[],"contents":"c","tag":"TypeVar"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[21,31],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/TypeOpAliases.purs","start":[21,1]},"title":"third"},{"children":[{"comments":null,"info":{"declType":"typeClassMember","type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim"],"String"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[25,22],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/TypeOpAliases.purs","start":[25,3]},"title":"show"},{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["TypeOpAliases"],"Show"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["TypeOpAliases"],"Show"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["TypeOpAliases"],"Tuple"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[28,24],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/TypeOpAliases.purs","start":[27,1]},"title":"showTuple"}],"comments":null,"info":{"arguments":[["a",null]],"declType":"typeClass","fundeps":[],"superclasses":[]},"kind":null,"sourceSpan":{"end":[25,22],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/TypeOpAliases.purs","start":[24,1]},"title":"Show"},{"children":[{"comments":null,"info":{"declType":"typeClassMember","type":{"annotation":[],"contents":"a","tag":"TypeVar"}},"sourceSpan":{"end":[33,13],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/TypeOpAliases.purs","start":[33,3]},"title":"testL"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["TypeOpAliases"],"TestL"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["TypeOpAliases"],"Either"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["TypeOpAliases"],"Tuple"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim"],"String"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[40,27],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/TypeOpAliases.purs","start":[39,1]},"title":"testLEither"}],"comments":null,"info":{"arguments":[["a",null]],"declType":"typeClass","fundeps":[],"superclasses":[]},"kind":null,"sourceSpan":{"end":[33,13],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/TypeOpAliases.purs","start":[32,1]},"title":"TestL"},{"children":[{"comments":null,"info":{"declType":"typeClassMember","type":{"annotation":[],"contents":"a","tag":"TypeVar"}},"sourceSpan":{"end":[36,13],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/TypeOpAliases.purs","start":[36,3]},"title":"testR"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["TypeOpAliases"],"TestR"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["TypeOpAliases"],"Either"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["TypeOpAliases"],"Tuple"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim"],"String"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[44,23],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/TypeOpAliases.purs","start":[43,1]},"title":"testREither"}],"comments":null,"info":{"arguments":[["a",null]],"declType":"typeClass","fundeps":[],"superclasses":[]},"kind":null,"sourceSpan":{"end":[36,13],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/TypeOpAliases.purs","start":[35,1]},"title":"TestR"}],"name":"TypeOpAliases","reExports":[]}
diff --git a/tests/purs/docs/output/TypeOpAliases/externs.json b/tests/purs/docs/output/TypeOpAliases/externs.json
deleted file mode 100644
--- a/tests/purs/docs/output/TypeOpAliases/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["TypeOpAliases"],"efExports":[{"ValueRef":[{"start":[1,1],"name":"src/TypeOpAliases.purs","end":[44,23]},{"Ident":"show"}]},{"ValueRef":[{"start":[1,1],"name":"src/TypeOpAliases.purs","end":[44,23]},{"Ident":"testL"}]},{"ValueRef":[{"start":[1,1],"name":"src/TypeOpAliases.purs","end":[44,23]},{"Ident":"testR"}]},{"TypeRef":[{"start":[1,1],"name":"src/TypeOpAliases.purs","end":[44,23]},"AltFn",[]]},{"TypeOpRef":[{"start":[1,1],"name":"src/TypeOpAliases.purs","end":[44,23]},"~>"]},{"ValueRef":[{"start":[1,1],"name":"src/TypeOpAliases.purs","end":[44,23]},{"Ident":"test1"}]},{"ValueRef":[{"start":[1,1],"name":"src/TypeOpAliases.purs","end":[44,23]},{"Ident":"test2"}]},{"ValueRef":[{"start":[1,1],"name":"src/TypeOpAliases.purs","end":[44,23]},{"Ident":"test3"}]},{"ValueRef":[{"start":[1,1],"name":"src/TypeOpAliases.purs","end":[44,23]},{"Ident":"test4"}]},{"TypeRef":[{"start":[1,1],"name":"src/TypeOpAliases.purs","end":[44,23]},"Tuple",["Tuple"]]},{"ValueOpRef":[{"start":[1,1],"name":"src/TypeOpAliases.purs","end":[44,23]},"×"]},{"TypeOpRef":[{"start":[1,1],"name":"src/TypeOpAliases.purs","end":[44,23]},"×"]},{"TypeRef":[{"start":[1,1],"name":"src/TypeOpAliases.purs","end":[44,23]},"Either",["Left","Right"]]},{"TypeOpRef":[{"start":[1,1],"name":"src/TypeOpAliases.purs","end":[44,23]},"⊕"]},{"ValueRef":[{"start":[1,1],"name":"src/TypeOpAliases.purs","end":[44,23]},{"Ident":"third"}]},{"TypeClassRef":[{"start":[1,1],"name":"src/TypeOpAliases.purs","end":[44,23]},"Show"]},{"TypeClassRef":[{"start":[1,1],"name":"src/TypeOpAliases.purs","end":[44,23]},"TestL"]},{"TypeClassRef":[{"start":[1,1],"name":"src/TypeOpAliases.purs","end":[44,23]},"TestR"]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"showTuple"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"testLEither"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"testREither"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null}],"efFixities":[{"efAssociativity":"infixl","efPrecedence":6,"efOperator":"×","efAlias":[["TypeOpAliases"],{"Right":"Tuple"}]}],"efTypeFixities":[{"efTypeAssociativity":"infixr","efTypePrecedence":6,"efTypeOperator":"~>","efTypeAlias":[["TypeOpAliases"],"AltFn"]},{"efTypeAssociativity":"infixl","efTypePrecedence":6,"efTypeOperator":"×","efTypeAlias":[["TypeOpAliases"],"Tuple"]},{"efTypeAssociativity":"infixl","efTypePrecedence":5,"efTypeOperator":"⊕","efTypeAlias":[["TypeOpAliases"],"Either"]}],"efDeclarations":[{"EDValue":{"edValueName":{"Ident":"show"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["TypeOpAliases"],"Show"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[25,11],"name":"src/TypeOpAliases.purs","end":[25,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[25,11],"name":"src/TypeOpAliases.purs","end":[25,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[25,13],"name":"src/TypeOpAliases.purs","end":[25,15]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[25,11],"name":"src/TypeOpAliases.purs","end":[25,12]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[25,16],"name":"src/TypeOpAliases.purs","end":[25,22]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}]},8]}}},{"EDValue":{"edValueName":{"Ident":"testL"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["TypeOpAliases"],"TestL"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[33,12],"name":"src/TypeOpAliases.purs","end":[33,13]},[]],"tag":"TypeVar","contents":"a"}]},7]}}},{"EDValue":{"edValueName":{"Ident":"testR"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["TypeOpAliases"],"TestR"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[36,12],"name":"src/TypeOpAliases.purs","end":[36,13]},[]],"tag":"TypeVar","contents":"a"}]},6]}}},{"EDType":{"edTypeName":"AltFn","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[3,20],"name":"src/TypeOpAliases.purs","end":[3,22]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[3,20],"name":"src/TypeOpAliases.purs","end":[3,22]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[3,20],"name":"src/TypeOpAliases.purs","end":[3,22]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"AltFn","edTypeSynonymArguments":[["a",{"annotation":[{"start":[3,20],"name":"src/TypeOpAliases.purs","end":[3,22]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["b",{"annotation":[{"start":[3,20],"name":"src/TypeOpAliases.purs","end":[3,22]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]],"edTypeSynonymType":{"annotation":[{"start":[3,18],"name":"src/TypeOpAliases.purs","end":[3,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[3,18],"name":"src/TypeOpAliases.purs","end":[3,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[3,20],"name":"src/TypeOpAliases.purs","end":[3,22]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[3,18],"name":"src/TypeOpAliases.purs","end":[3,19]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[3,23],"name":"src/TypeOpAliases.purs","end":[3,24]},[]],"tag":"TypeVar","contents":"b"}]}}},{"EDValue":{"edValueName":{"Ident":"test1"},"edValueType":{"annotation":[{"start":[7,25],"name":"src/TypeOpAliases.purs","end":[7,43]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[7,32],"name":"src/TypeOpAliases.purs","end":[7,43]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["TypeOpAliases"],"AltFn"]},{"annotation":[{"start":[7,37],"name":"src/TypeOpAliases.purs","end":[7,38]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[7,42],"name":"src/TypeOpAliases.purs","end":[7,43]},[]],"tag":"TypeVar","contents":"b"}]},null]},null]}}},{"EDValue":{"edValueName":{"Ident":"test2"},"edValueType":{"annotation":[{"start":[8,25],"name":"src/TypeOpAliases.purs","end":[8,50]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[8,32],"name":"src/TypeOpAliases.purs","end":[8,50]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[8,32],"name":"src/TypeOpAliases.purs","end":[8,50]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["TypeOpAliases"],"AltFn"]},{"annotation":[{"start":[8,39],"name":"src/TypeOpAliases.purs","end":[8,40]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["TypeOpAliases"],"AltFn"]},{"annotation":[{"start":[8,44],"name":"src/TypeOpAliases.purs","end":[8,45]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[8,49],"name":"src/TypeOpAliases.purs","end":[8,50]},[]],"tag":"TypeVar","contents":"c"}]}]},null]},null]},null]}}},{"EDValue":{"edValueName":{"Ident":"test3"},"edValueType":{"annotation":[{"start":[9,25],"name":"src/TypeOpAliases.purs","end":[9,59]},[]],"tag":"ForAll","contents":["d",{"annotation":[{"start":[9,32],"name":"src/TypeOpAliases.purs","end":[9,59]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[9,32],"name":"src/TypeOpAliases.purs","end":[9,59]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[9,32],"name":"src/TypeOpAliases.purs","end":[9,59]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["TypeOpAliases"],"AltFn"]},{"annotation":[{"start":[9,41],"name":"src/TypeOpAliases.purs","end":[9,42]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["TypeOpAliases"],"AltFn"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["TypeOpAliases"],"AltFn"]},{"annotation":[{"start":[9,47],"name":"src/TypeOpAliases.purs","end":[9,48]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[9,52],"name":"src/TypeOpAliases.purs","end":[9,53]},[]],"tag":"TypeVar","contents":"c"}]}]},{"annotation":[{"start":[9,58],"name":"src/TypeOpAliases.purs","end":[9,59]},[]],"tag":"TypeVar","contents":"d"}]}]},null]},null]},null]},null]}}},{"EDValue":{"edValueName":{"Ident":"test4"},"edValueType":{"annotation":[{"start":[10,25],"name":"src/TypeOpAliases.purs","end":[10,61]},[]],"tag":"ForAll","contents":["d",{"annotation":[{"start":[10,32],"name":"src/TypeOpAliases.purs","end":[10,61]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[10,32],"name":"src/TypeOpAliases.purs","end":[10,61]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[10,32],"name":"src/TypeOpAliases.purs","end":[10,61]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["TypeOpAliases"],"AltFn"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["TypeOpAliases"],"AltFn"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["TypeOpAliases"],"AltFn"]},{"annotation":[{"start":[10,43],"name":"src/TypeOpAliases.purs","end":[10,44]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[10,48],"name":"src/TypeOpAliases.purs","end":[10,49]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[10,54],"name":"src/TypeOpAliases.purs","end":[10,55]},[]],"tag":"TypeVar","contents":"c"}]}]},{"annotation":[{"start":[10,60],"name":"src/TypeOpAliases.purs","end":[10,61]},[]],"tag":"TypeVar","contents":"d"}]},null]},null]},null]},null]}}},{"EDType":{"edTypeName":"Tuple","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[12,24],"name":"src/TypeOpAliases.purs","end":[12,25]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[12,26],"name":"src/TypeOpAliases.purs","end":[12,27]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]},"edTypeDeclarationKind":{"DataType":{"args":[["a",{"annotation":[{"start":[12,24],"name":"src/TypeOpAliases.purs","end":[12,25]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["b",{"annotation":[{"start":[12,26],"name":"src/TypeOpAliases.purs","end":[12,27]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]],"ctors":[["Tuple",[{"annotation":[{"start":[12,24],"name":"src/TypeOpAliases.purs","end":[12,25]},[]],"tag":"TypeVar","contents":"a"},{"annotation":[{"start":[12,26],"name":"src/TypeOpAliases.purs","end":[12,27]},[]],"tag":"TypeVar","contents":"b"}]]]}}}},{"EDDataConstructor":{"edDataCtorName":"Tuple","edDataCtorOrigin":"data","edDataCtorTypeCtor":"Tuple","edDataCtorType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[12,24],"name":"src/TypeOpAliases.purs","end":[12,25]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[12,26],"name":"src/TypeOpAliases.purs","end":[12,27]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["TypeOpAliases"],"Tuple"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"b"}]}]}]},null]},null]},"edDataCtorFields":[{"Ident":"value0"},{"Ident":"value1"}]}},{"EDType":{"edTypeName":"Either","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[17,24],"name":"src/TypeOpAliases.purs","end":[17,25]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[17,34],"name":"src/TypeOpAliases.purs","end":[17,35]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]},"edTypeDeclarationKind":{"DataType":{"args":[["a",{"annotation":[{"start":[17,24],"name":"src/TypeOpAliases.purs","end":[17,25]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["b",{"annotation":[{"start":[17,34],"name":"src/TypeOpAliases.purs","end":[17,35]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]],"ctors":[["Left",[{"annotation":[{"start":[17,24],"name":"src/TypeOpAliases.purs","end":[17,25]},[]],"tag":"TypeVar","contents":"a"}]],["Right",[{"annotation":[{"start":[17,34],"name":"src/TypeOpAliases.purs","end":[17,35]},[]],"tag":"TypeVar","contents":"b"}]]]}}}},{"EDDataConstructor":{"edDataCtorName":"Left","edDataCtorOrigin":"data","edDataCtorTypeCtor":"Either","edDataCtorType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[17,24],"name":"src/TypeOpAliases.purs","end":[17,25]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["TypeOpAliases"],"Either"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"b"}]}]},null]},null]},"edDataCtorFields":[{"Ident":"value0"}]}},{"EDDataConstructor":{"edDataCtorName":"Right","edDataCtorOrigin":"data","edDataCtorTypeCtor":"Either","edDataCtorType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[17,34],"name":"src/TypeOpAliases.purs","end":[17,35]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["TypeOpAliases"],"Either"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"b"}]}]},null]},null]},"edDataCtorFields":[{"Ident":"value0"}]}},{"EDValue":{"edValueName":{"Ident":"third"},"edValueType":{"annotation":[{"start":[21,9],"name":"src/TypeOpAliases.purs","end":[21,31]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[21,11],"name":"src/TypeOpAliases.purs","end":[21,31]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[21,11],"name":"src/TypeOpAliases.purs","end":[21,31]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[21,18],"name":"src/TypeOpAliases.purs","end":[21,31]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[21,18],"name":"src/TypeOpAliases.purs","end":[21,31]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[21,28],"name":"src/TypeOpAliases.purs","end":[21,29]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["TypeOpAliases"],"Tuple"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["TypeOpAliases"],"Tuple"]},{"annotation":[{"start":[21,18],"name":"src/TypeOpAliases.purs","end":[21,19]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[21,22],"name":"src/TypeOpAliases.purs","end":[21,23]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[21,26],"name":"src/TypeOpAliases.purs","end":[21,27]},[]],"tag":"TypeVar","contents":"c"}]}]},{"annotation":[{"start":[21,30],"name":"src/TypeOpAliases.purs","end":[21,31]},[]],"tag":"TypeVar","contents":"c"}]},0]},1]},2]}}},{"EDType":{"edTypeName":"Show","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[25,13],"name":"src/TypeOpAliases.purs","end":[25,15]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"Show","edTypeSynonymArguments":[["a",null]],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["show",{"annotation":[{"start":[25,11],"name":"src/TypeOpAliases.purs","end":[25,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[25,11],"name":"src/TypeOpAliases.purs","end":[25,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[25,13],"name":"src/TypeOpAliases.purs","end":[25,15]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[25,11],"name":"src/TypeOpAliases.purs","end":[25,12]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[25,16],"name":"src/TypeOpAliases.purs","end":[25,22]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]}}},{"EDClass":{"edClassName":"Show","edClassTypeArguments":[["a",null]],"edClassMembers":[[{"Ident":"show"},{"annotation":[{"start":[25,11],"name":"src/TypeOpAliases.purs","end":[25,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[25,11],"name":"src/TypeOpAliases.purs","end":[25,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[25,13],"name":"src/TypeOpAliases.purs","end":[25,15]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[25,11],"name":"src/TypeOpAliases.purs","end":[25,12]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[25,16],"name":"src/TypeOpAliases.purs","end":[25,22]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}]],"edClassConstraints":[],"edFunctionalDependencies":[]}},{"EDType":{"edTypeName":"TestL","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"TestL","edTypeSynonymArguments":[["a",null]],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["testL",{"annotation":[{"start":[33,12],"name":"src/TypeOpAliases.purs","end":[33,13]},[]],"tag":"TypeVar","contents":"a"},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]}}},{"EDClass":{"edClassName":"TestL","edClassTypeArguments":[["a",null]],"edClassMembers":[[{"Ident":"testL"},{"annotation":[{"start":[33,12],"name":"src/TypeOpAliases.purs","end":[33,13]},[]],"tag":"TypeVar","contents":"a"}]],"edClassConstraints":[],"edFunctionalDependencies":[]}},{"EDType":{"edTypeName":"TestR","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"TestR","edTypeSynonymArguments":[["a",null]],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["testR",{"annotation":[{"start":[36,12],"name":"src/TypeOpAliases.purs","end":[36,13]},[]],"tag":"TypeVar","contents":"a"},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]}}},{"EDClass":{"edClassName":"TestR","edClassTypeArguments":[["a",null]],"edClassMembers":[[{"Ident":"testR"},{"annotation":[{"start":[36,12],"name":"src/TypeOpAliases.purs","end":[36,13]},[]],"tag":"TypeVar","contents":"a"}]],"edClassConstraints":[],"edFunctionalDependencies":[]}},{"EDInstance":{"edInstanceClassName":[["TypeOpAliases"],"Show"],"edInstanceName":{"Ident":"showTuple"},"edInstanceTypes":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["TypeOpAliases"],"Tuple"]},{"annotation":[{"start":[27,39],"name":"src/TypeOpAliases.purs","end":[27,40]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[27,43],"name":"src/TypeOpAliases.purs","end":[27,44]},[]],"tag":"TypeVar","contents":"b"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[27,23],"name":"src/TypeOpAliases.purs","end":[27,29]},[]],"constraintClass":[["TypeOpAliases"],"Show"],"constraintArgs":[{"annotation":[{"start":[27,28],"name":"src/TypeOpAliases.purs","end":[27,29]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["TypeOpAliases"],{"Ident":"showTuple"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["TypeOpAliases"],"TestL"],"edInstanceName":{"Ident":"testLEither"},"edInstanceTypes":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["TypeOpAliases"],"Either"]},{"annotation":[{"start":[39,32],"name":"src/TypeOpAliases.purs","end":[39,35]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["TypeOpAliases"],"Tuple"]},{"annotation":[{"start":[39,38],"name":"src/TypeOpAliases.purs","end":[39,41]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[39,44],"name":"src/TypeOpAliases.purs","end":[39,50]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}]}],"edInstanceConstraints":[],"edInstanceChain":[[["TypeOpAliases"],{"Ident":"testLEither"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["TypeOpAliases"],"TestR"],"edInstanceName":{"Ident":"testREither"},"edInstanceTypes":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["TypeOpAliases"],"Either"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["TypeOpAliases"],"Tuple"]},{"annotation":[{"start":[43,32],"name":"src/TypeOpAliases.purs","end":[43,35]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[43,38],"name":"src/TypeOpAliases.purs","end":[43,41]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]},{"annotation":[{"start":[43,44],"name":"src/TypeOpAliases.purs","end":[43,50]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}],"edInstanceConstraints":[],"edInstanceChain":[[["TypeOpAliases"],{"Ident":"testREither"}]],"edInstanceChainIndex":0}}],"efSourceSpan":{"start":[1,1],"name":"src/TypeOpAliases.purs","end":[44,23]}}
diff --git a/tests/purs/docs/output/TypeSynonym/docs.json b/tests/purs/docs/output/TypeSynonym/docs.json
--- a/tests/purs/docs/output/TypeSynonym/docs.json
+++ b/tests/purs/docs/output/TypeSynonym/docs.json
@@ -1,1 +1,1 @@
-{"reExports":[],"name":"TypeSynonym","comments":null,"declarations":[{"children":[],"comments":null,"title":"MyInt","info":{"arguments":[],"declType":"typeSynonym","type":{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}},"sourceSpan":{"start":[3,1],"name":"src/TypeSynonym.purs","end":[3,17]}}]}
+{"comments":null,"declarations":[{"children":[],"comments":null,"info":{"arguments":[],"declType":"typeSynonym","type":{"annotation":[],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}},"kind":null,"sourceSpan":{"end":[3,17],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/TypeSynonym.purs","start":[3,1]},"title":"MyInt"}],"name":"TypeSynonym","reExports":[]}
diff --git a/tests/purs/docs/output/TypeSynonym/externs.json b/tests/purs/docs/output/TypeSynonym/externs.json
deleted file mode 100644
--- a/tests/purs/docs/output/TypeSynonym/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["TypeSynonym"],"efExports":[{"TypeRef":[{"start":[1,1],"name":"src/TypeSynonym.purs","end":[3,17]},"MyInt",[]]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDType":{"edTypeName":"MyInt","edTypeKind":{"annotation":[{"start":[3,14],"name":"src/TypeSynonym.purs","end":[3,17]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"MyInt","edTypeSynonymArguments":[],"edTypeSynonymType":{"annotation":[{"start":[3,14],"name":"src/TypeSynonym.purs","end":[3,17]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}}}],"efSourceSpan":{"start":[1,1],"name":"src/TypeSynonym.purs","end":[3,17]}}
diff --git a/tests/purs/docs/output/TypeSynonymInstance/docs.json b/tests/purs/docs/output/TypeSynonymInstance/docs.json
--- a/tests/purs/docs/output/TypeSynonymInstance/docs.json
+++ b/tests/purs/docs/output/TypeSynonymInstance/docs.json
@@ -1,1 +1,1 @@
-{"reExports":[],"name":"TypeSynonymInstance","comments":null,"declarations":[{"children":[{"comments":null,"title":"MyNT","info":{"arguments":[{"annotation":[],"tag":"TypeConstructor","contents":[["TypeSynonym"],"MyInt"]}],"declType":"dataConstructor"},"sourceSpan":null},{"comments":null,"title":"ntMyNT","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Newtype"],"Newtype"]},{"annotation":[],"tag":"TypeConstructor","contents":[["TypeSynonymInstance"],"MyNT"]}]},{"annotation":[],"tag":"TypeWildcard","contents":null}]}},"sourceSpan":{"start":[9,1],"name":"src/TypeSynonymInstance.purs","end":[9,41]}}],"comments":null,"title":"MyNT","info":{"declType":"data","dataDeclType":"newtype","typeArguments":[]},"sourceSpan":{"start":[7,1],"name":"src/TypeSynonymInstance.purs","end":[7,26]}},{"children":[],"comments":null,"title":"foo","info":{"declType":"value","type":{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}},"sourceSpan":{"start":[11,1],"name":"src/TypeSynonymInstance.purs","end":[11,8]}}]}
+{"comments":null,"declarations":[{"children":[{"comments":null,"info":{"arguments":[{"annotation":[],"contents":[["TypeSynonym"],"MyInt"],"tag":"TypeConstructor"}],"declType":"dataConstructor"},"sourceSpan":{"end":[7,26],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/TypeSynonymInstance.purs","start":[7,14]},"title":"MyNT"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Newtype"],"Newtype"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["TypeSynonymInstance"],"MyNT"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":null,"tag":"TypeWildcard"}],"tag":"TypeApp"}},"sourceSpan":{"end":[9,41],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/TypeSynonymInstance.purs","start":[9,1]},"title":"ntMyNT"}],"comments":null,"info":{"dataDeclType":"newtype","declType":"data","roles":[],"typeArguments":[]},"kind":null,"sourceSpan":{"end":[7,26],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/TypeSynonymInstance.purs","start":[7,1]},"title":"MyNT"},{"children":[],"comments":null,"info":{"declType":"value","type":{"annotation":[],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}},"kind":null,"sourceSpan":{"end":[11,8],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/TypeSynonymInstance.purs","start":[11,1]},"title":"foo"}],"name":"TypeSynonymInstance","reExports":[]}
diff --git a/tests/purs/docs/output/TypeSynonymInstance/externs.json b/tests/purs/docs/output/TypeSynonymInstance/externs.json
deleted file mode 100644
--- a/tests/purs/docs/output/TypeSynonymInstance/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["TypeSynonymInstance"],"efExports":[{"TypeRef":[{"start":[2,1],"name":"src/TypeSynonymInstance.purs","end":[11,8]},"MyNT",["MyNT"]]},{"ValueRef":[{"start":[2,1],"name":"src/TypeSynonymInstance.purs","end":[11,8]},{"Ident":"foo"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"ntMyNT"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Data","Newtype"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[4,22],"name":"src/TypeSynonymInstance.purs","end":[4,35]},"Newtype"]}]},"eiImportedAs":null},{"eiModule":["TypeSynonym"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[5,21],"name":"src/TypeSynonymInstance.purs","end":[5,26]},"MyInt",[]]}]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDType":{"edTypeName":"MyNT","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},"edTypeDeclarationKind":{"DataType":{"args":[],"ctors":[["MyNT",[{"annotation":[{"start":[7,21],"name":"src/TypeSynonymInstance.purs","end":[7,26]},[]],"tag":"TypeConstructor","contents":[["TypeSynonym"],"MyInt"]}]]]}}}},{"EDDataConstructor":{"edDataCtorName":"MyNT","edDataCtorOrigin":"newtype","edDataCtorTypeCtor":"MyNT","edDataCtorType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[7,21],"name":"src/TypeSynonymInstance.purs","end":[7,26]},[]],"tag":"TypeConstructor","contents":[["TypeSynonym"],"MyInt"]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["TypeSynonymInstance"],"MyNT"]}]},"edDataCtorFields":[{"Ident":"value0"}]}},{"EDValue":{"edValueName":{"Ident":"foo"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}}},{"EDInstance":{"edInstanceClassName":[["Data","Newtype"],"Newtype"],"edInstanceName":{"Ident":"ntMyNT"},"edInstanceTypes":[{"annotation":[{"start":[9,35],"name":"src/TypeSynonymInstance.purs","end":[9,39]},[]],"tag":"TypeConstructor","contents":[["TypeSynonymInstance"],"MyNT"]},{"annotation":[{"start":[3,14],"name":"src/TypeSynonym.purs","end":[3,17]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}],"edInstanceConstraints":[],"edInstanceChain":[[["TypeSynonymInstance"],{"Ident":"ntMyNT"}]],"edInstanceChainIndex":0}}],"efSourceSpan":{"start":[2,1],"name":"src/TypeSynonymInstance.purs","end":[11,8]}}
diff --git a/tests/purs/docs/output/TypeSynonymInstance/index.js b/tests/purs/docs/output/TypeSynonymInstance/index.js
deleted file mode 100644
--- a/tests/purs/docs/output/TypeSynonymInstance/index.js
+++ /dev/null
@@ -1,16 +0,0 @@
-
-// see #3624
-"use strict";
-var Data_Newtype = require("../Data.Newtype/index.js");
-var MyNT = function (x) {
-    return x;
-};
-var ntMyNT = new Data_Newtype.Newtype(function (n) {
-    return n;
-}, MyNT);
-var foo = 0;
-module.exports = {
-    MyNT: MyNT,
-    foo: foo,
-    ntMyNT: ntMyNT
-};
diff --git a/tests/purs/docs/output/UTF8/docs.json b/tests/purs/docs/output/UTF8/docs.json
--- a/tests/purs/docs/output/UTF8/docs.json
+++ b/tests/purs/docs/output/UTF8/docs.json
@@ -1,1 +1,1 @@
-{"reExports":[],"name":"UTF8","comments":null,"declarations":[{"children":[],"comments":"üÜäÄ 😰\n","title":"thing","info":{"declType":"value","type":{"annotation":[],"tag":"TypeConstructor","contents":[["Prelude"],"Unit"]}},"sourceSpan":{"start":[6,1],"name":"src/UTF8.purs","end":[6,14]}}]}
+{"comments":null,"declarations":[{"children":[],"comments":"üÜäÄ 😰\n","info":{"declType":"value","type":{"annotation":[],"contents":[["Prelude"],"Unit"],"tag":"TypeConstructor"}},"kind":null,"sourceSpan":{"end":[6,14],"name":"/home/jordan/programming/purescript/tests/purs/docs/src/UTF8.purs","start":[6,1]},"title":"thing"}],"name":"UTF8","reExports":[]}
diff --git a/tests/purs/docs/output/UTF8/externs.json b/tests/purs/docs/output/UTF8/externs.json
deleted file mode 100644
--- a/tests/purs/docs/output/UTF8/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["UTF8"],"efExports":[{"ValueRef":[{"start":[1,1],"name":"src/UTF8.purs","end":[7,13]},{"Ident":"thing"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Prelude"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[3,17],"name":"src/UTF8.purs","end":[3,21]},"Unit",[]]},{"ValueRef":[{"start":[3,23],"name":"src/UTF8.purs","end":[3,27]},{"Ident":"unit"}]}]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDValue":{"edValueName":{"Ident":"thing"},"edValueType":{"annotation":[{"start":[6,10],"name":"src/UTF8.purs","end":[6,14]},[]],"tag":"TypeConstructor","contents":[["Prelude"],"Unit"]}}}],"efSourceSpan":{"start":[1,1],"name":"src/UTF8.purs","end":[7,13]}}
diff --git a/tests/purs/docs/output/Virtual/docs.json b/tests/purs/docs/output/Virtual/docs.json
--- a/tests/purs/docs/output/Virtual/docs.json
+++ b/tests/purs/docs/output/Virtual/docs.json
@@ -1,1 +1,1 @@
-{"reExports":[],"name":"Virtual","comments":null,"declarations":[]}
+{"comments":null,"declarations":[],"name":"Virtual","reExports":[]}
diff --git a/tests/purs/docs/output/Virtual/externs.json b/tests/purs/docs/output/Virtual/externs.json
deleted file mode 100644
--- a/tests/purs/docs/output/Virtual/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Virtual"],"efExports":[{"ReExportRef":[{"start":[1,1],"name":"src/Virtual.purs","end":[5,33]},{"exportSourceImportedFrom":["Prelude"],"exportSourceDefinedIn":["Prelude"]},{"TypeRef":[{"start":[1,1],"name":"src/Virtual.purs","end":[5,33]},"Boolean2",["False","True"]]}]},{"ReExportRef":[{"start":[1,1],"name":"src/Virtual.purs","end":[5,33]},{"exportSourceImportedFrom":["Prelude"],"exportSourceDefinedIn":["Prelude"]},{"TypeRef":[{"start":[1,1],"name":"src/Virtual.purs","end":[5,33]},"Unit",["Unit"]]}]},{"ReExportRef":[{"start":[1,1],"name":"src/Virtual.purs","end":[5,33]},{"exportSourceImportedFrom":["Prelude"],"exportSourceDefinedIn":["Prelude"]},{"ValueRef":[{"start":[1,1],"name":"src/Virtual.purs","end":[5,33]},{"Ident":"unit"}]}]},{"ModuleRef":[{"start":[2,5],"name":"src/Virtual.purs","end":[2,26]},["VirtualPrelude"]]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Prelude"],"eiImportType":{"Implicit":[]},"eiImportedAs":["VirtualPrelude"]}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[],"efSourceSpan":{"start":[1,1],"name":"src/Virtual.purs","end":[5,33]}}
diff --git a/tests/purs/docs/output/cache-db.json b/tests/purs/docs/output/cache-db.json
new file mode 100644
--- /dev/null
+++ b/tests/purs/docs/output/cache-db.json
@@ -0,0 +1,1 @@
+{"Ado":{"src/Ado.purs":["2022-04-04T14:32:49Z","bd980ae20d61e0e34d23507b1d25598f27407a78cf70084327506f21cc02d85df1bd1b6937459665a8dd9df5bb43ec5947b6e94c16c852aba233747e05a9d58f"]},"ChildDeclOrder":{"src/ChildDeclOrder.purs":["2022-04-04T14:32:49Z","41a7be97fffe1bbbf925ccb56b68246abb8684b23529fc25e07827b57b32b60ccd82d5c9a2279dc23be1f8803cff8267fa296509b873ec337ffa15ee0e32e2c9"]},"Clash":{"src/Clash.purs":["2022-04-04T14:32:49Z","7b70d019ea46b72149e185d82bc1345113e8a3977a886aa31ac8a268c6c63c7b93553e1586c45e023e49e485d3f6523a4a11efc8dc70dd8bac5d8b9cac4e4c2d"]},"Clash1":{"src/Clash1.purs":["2022-04-04T14:32:49Z","bd09c1fd0308ce61d83bef03d3b2366601df559ef8cc9c09f17d963a1bfb2b2e373dcbf5729a3e465c635fbf0035ae09ea3ba58b7844b56586dc3baf9d857bb5"]},"Clash1a":{"src/Clash1a.purs":["2022-04-04T14:32:49Z","b5c374c74a46d3f633c948de256e299dc2713857ce09441b5ae2f03afdd0468610088f39854f69848c1c9aecf3441b1b39e0919e499280a19d69b83de07d5d0b"]},"Clash2":{"src/Clash2.purs":["2022-04-04T14:32:49Z","10c61c6600084fdcc0ee93608a354fd7efa7edab67ac8cce131e522b597080b2927dc7bb1a6c98765dfc9a30583dc5bea2514d2932554ab1657c664a81a0a81b"]},"Clash2a":{"src/Clash2a.purs":["2022-04-04T14:32:49Z","b002aac5be65ac1cb55d10518840293780ea6d4a42b045172544ab3478ea83252f0672f0e1d4ad1599db3955f55202738ba1ee254b8ad94e914fc43fc1f6750f"]},"ConstrainedArgument":{"src/ConstrainedArgument.purs":["2022-04-04T14:32:49Z","6caa6cc505c6574957afe8e703f6e9869211e9c0a0676ba36a79d2a8b7e3c2c1570aae714cd6acc37e5b206745941460c1cf370a3bbd783c79b89351681ec890"]},"Data.Newtype":{"bower_components/purescript-newtype/src/Data/Newtype.purs":["2022-08-10T02:48:53.297467233Z","408eb6f95efb52faff05d73c757d21cebdd3b58dce3f5b8cfb5f0772224ca7e6ff9b5df0ab9ea40ce0f8448664fe56028af844b2c5dc32e5712b7d9d1541f2b7"]},"DeclOrder":{"src/DeclOrder.purs":["2022-04-04T14:32:49Z","a8c6ab9c335037c255ae6e0124a107f2e2462c2eebc2ff3637273ba436f2f3589ae203919ff5c8c61106b0542114ba3eba66426d8b5e316089bc1f4efb72643a"]},"DeclOrderNoExportList":{"src/DeclOrderNoExportList.purs":["2022-04-04T14:32:49Z","379def50dfd7a01dd2b057c707ea8ee53147d41c7dc28083c3827ccc213816840fd26d784a78bd1eabd105231e5479c7bfeebfcb03d1e2f3e8174ab173d740c4"]},"Desugar":{"src/Desugar.purs":["2022-04-04T14:32:49Z","50ceefe5cbac286908cc7070f4e94f57c62b5c91245d5a8c66d7f4565e3d037e4cf11524c4c790664588a0a5c4216390b5138be9ec93e14d0f82a2c59c8f561a"]},"DocComments":{"src/DocComments.purs":["2022-04-04T14:32:49Z","220498626601722feb58dd23dd80ac970f6ba7df8e8c2ad604ed833933f6b36219fb5f1d0b9963ffc7e9314043760055ab547fac5784a28416a4851f257a635b"]},"DocCommentsClassMethod":{"src/DocCommentsClassMethod.purs":["2022-04-04T14:32:49Z","f55a03f2b2624a9ca01adc8372bad4b7e46e8ef1a52ec41c5992767146c9a2354320a3a38587cbf2e78fec118430f193fdcb1cdd9600cd9f755dbbc2e36e46b7"]},"DocCommentsDataConstructor":{"src/DocCommentsDataConstructor.purs":["2022-04-04T14:32:49Z","68d644ce63642bd55d8338e78e0070c409d3c970a2967338cf612d7a3217813fd98a08e1905776572819cadbc08cdd4bec4a7c1473974a9f3f5d5b1149d33257"]},"DocCommentsMerge":{"src/DocCommentsMerge.purs":["2022-04-04T14:32:49Z","08e74333f59b1991e5c044debca1b8d2be7193898cc501c6c422b2f3e4c6e6aba8562cfa7b38dac2363e567357722e79d0fcc4757ee91ed067e7179a3615bdbd"]},"DuplicateNames":{"src/DuplicateNames.purs":["2022-04-04T14:32:49Z","5652f5da0ae79185fb27bce13793bd7752779364e0d1c7c56be2d213853c26ad0abff8536a0d34090a079980e498c837026521efe4a8cfc1b1a16ec70c724eed"]},"Example":{"src/Example.purs":["2022-04-04T14:32:49Z","3b700a99cc5ee257009553d27a2d25f71f68f006e9deec2b3578f01c7fe4e77de1e929dc110dfcd51d68685ad3ab6b09b0147fe63719861e8a9e480a64e286d9"]},"Example2":{"src/Example2.purs":["2022-04-04T14:32:49Z","6a479db4e40f66b1e29889516a55cfb22b15b2b8c4531b9cf20307a965af3dc0a6dab4eccc31cca4eacaaa158a01c58ff995ac6f01b2e1ed5571c44fa3bf2536"]},"ExplicitExport":{"src/ExplicitExport.purs":["2022-04-04T14:32:49Z","fe733409eb325c971f84b6414a1fc9e08793d2271eebcd670ceefd5c5aef837ee76ec5cb5bed96d87ea791a7521c76668a71be5cd8fb14209414893dc20d3d47"]},"ExplicitTypeSignatures":{"src/ExplicitTypeSignatures.purs":["2022-04-04T14:32:49Z","78a70441c9966f04c6c32a74cbba299f0f8ea870c664e738eb0d8f8cc5929edb7bb697170fc306c9ee69fa4e2f0112af15c8bdb29d63645cdf6f2916a122a0bd"]},"ImportedTwice":{"src/ImportedTwice.purs":["2022-04-04T14:32:49Z","be9a0cb1e75c689c3af6817a5750862915e70a0017476cce4c539a3c7ce5b33554aa14d2668bd131b89bb28d65b5ddaa79abfb2a538d606f1b11b5ef0ec79067"]},"ImportedTwiceA":{"src/ImportedTwiceA.purs":["2022-04-04T14:32:49Z","883c8abaefe0dbacbcdea4c53eab41da26687680274419720b1e5d6510bf5127b7ba06df23515ad34f7ffc4626f0064d7867e2b4a5f255a6b573d219926364de"]},"ImportedTwiceB":{"src/ImportedTwiceB.purs":["2022-04-04T14:32:49Z","48cc2ac8ce40b1d0e3782fcb8ec798cf9c4838a595148055f1bb830d9b07d58780170ad3f8a90f43ac561aff2c52a5d8793480526a4768ebf1c8af1ff1b68751"]},"KindSignatureDocs":{"src/KindSignatureDocs.purs":["2022-04-04T14:32:49Z","c2a224affb04b4c5db4712d15bfa830999c634c135bf1595f4930dd682258f5a278477ffeba297c42af5d74878e73694180a932ee2ebf7ad8a2ff66c4df2135d"]},"MultiVirtual":{"src/MultiVirtual.purs":["2022-04-04T14:32:49Z","31bc7e2c2ebee39dbc89536db51493a2cb1843a9e1aed8b288ef16660877fd1abd5f4224d3325a415aabcf79bd5fe76ebb9257738b0193a50c79a20d48b5ab29"]},"MultiVirtual1":{"src/MultiVirtual1.purs":["2022-04-04T14:32:49Z","23f7975f7494bb84f9fc6fde9071ce04e86df774d81e2b027a85ab46c8237f9921ee926f4a4ad3e03c7799e485ce39e542d1dd94953c50c0d58ea0003cfc3842"]},"MultiVirtual2":{"src/MultiVirtual2.purs":["2022-04-04T14:32:49Z","f424ed7c0db709b6bb1e57f87069f484fd0db9dddd0475cd15d36bd58743e98729c42efd2df6ee8fbd18609c36c2247cf3428a5a7f1f5ed11e233a2b134990ba"]},"MultiVirtual3":{"src/MultiVirtual3.purs":["2022-04-04T14:32:49Z","a42415e3b8309bfa81ef127c61dba6f4001188dcee160a8e2f73399179a11262f12daf0205d6bec38fc605b637550f16b62e84a0f2a0f6999355d56ff2540405"]},"NewOperators":{"src/NewOperators.purs":["2022-04-04T14:32:49Z","f74cae05c73db1f629e199692c517866fb1683caab3c4509657a371733f30319f0c505ed57208757b3e43795aab5191000c834a501d9bd2bf0e58875873c5c40"]},"NewOperators2":{"src/NewOperators2.purs":["2022-04-04T14:32:49Z","c551a91aa792fb9ee4b5758c010761a53d4a14b8fbaa6b76b6bd9a318a28f245c9b090bdc4f77b904c873d9b71d59fbad3ccd9ad7c8773f5c1e57a22a0204844"]},"NotAllCtors":{"src/NotAllCtors.purs":["2022-04-04T14:32:49Z","6e0af26cf897b5dd6e8dd4d75988e5607118f6fdd5219aa192f477cc4d760d504bdec930d46af82a44950e3de4fe6c37664a4560a523a45097503b85c161bd96"]},"OperatorSection":{"src/OperatorSection.purs":["2022-05-27T04:56:24Z","64a9d1bdc2b7df3fe4124651fee37440b9c53b61d25fba7e9a1974c713c12679f227fdc700a6d97218c3628dce4ea9c8c3c5b4e30b5b8f8ecf6a5f6781599c7b"]},"Prelude":{"bower_components/purescript-prelude/src/Prelude.purs":["2022-08-10T02:48:53.301467266Z","7eb0b2f9b7aec29693f79be4642ccea792b1f54c7022a4f1395fb8f3a9b1ad6cbfb2e7685940b89ab21890c02949ec90d4823bd5c36a6b566ca9cb8ec561958f"]},"PrimSubmodules":{"src/PrimSubmodules.purs":["2022-05-27T04:56:24Z","6b03520e209171032fd18661077ef49b0547b488667b8316e8ec6104a49914fe58929d1dea64fde39ed5a88d814304d0db1d5cd56a3a4b2b5a625585666e42c6"]},"ReExportedTypeClass":{"src/ReExportedTypeClass.purs":["2022-04-04T14:32:49Z","1cc581d68e1ce113162ab851872e73645807f0deb1d2b970ebc04b314184fe30c3431212ffcf9eec09a56a2291e0050750ac6905f1884bc74d406d0323c4f804"]},"RoleAnnotationDocs":{"src/RoleAnnotationDocs.purs":["2022-04-04T14:32:49Z","87b1012eaa7e6312ca43aa23efa0ec76eefd72d9e306233a35d4ab9dd3d74ad2051ab11555a5d1136ea2c1800bbfadfa0b52bad30a5a4b9ef3a9aa6498474506"]},"Shebang1Undocumented":{"src/Shebang1Undocumented.purs":["2022-06-08T12:25:40Z","55cff97ade15395974b1d714467dd824c260851b08a4aa365abf1980e5e746b378379d6b62ac4f1174f20c56600df82b05ca17f21643d529d8f21cb54069d5dc"]},"Shebang2Undocumented":{"src/Shebang2Undocumented.purs":["2022-06-08T12:25:40Z","d64e34906077c41cc542cbd50a604fb5c311526805a8f62be192cd05c1f6c68b03b728cb9cb90ff005d99f6e60a2384b584800fc23cd0064104d077aa3e22108"]},"Shebang3Undocumented":{"src/Shebang3Undocumented.purs":["2022-06-08T12:25:40Z","b3f811c431e42fef7eb9682fd1312e49d60b0394df825dcc34c083b191ca0361250ad503d9e4bcb5e7da6c715dab6ad51e47f936a595a0e77b771d5b547a1e3d"]},"Shebang4Undocumented":{"src/Shebang4Undocumented.purs":["2022-06-08T12:25:40Z","96139bf4debfdfa7f7b250aec10644f819a017f87127acd0cac613da51402f88664f7aea99767cfdfc6658efbe7eba5fba57b127ea5a8d15ba70057f7b6ee0a6"]},"SolitaryTypeClassMember":{"src/SolitaryTypeClassMember.purs":["2022-04-04T14:32:49Z","f627c589b0a8f58d7bfdf28ecf87891a74e64e8399ce0ab645b7c58049fddc1ea3cbb3c34b862bec8576108d5258d9548ecfbbab98598671cc645a3f358ac852"]},"SomeTypeClass":{"src/SomeTypeClass.purs":["2022-04-04T14:32:49Z","d09fc77e6c6350e7e4941e2911e012271a49db4a75c57cf738d5865ca622d60b69337f969aa02b13fc869484cba00479212e4b8dbcb458c5723e7a5d73888368"]},"Transitive1":{"src/Transitive1.purs":["2022-04-04T14:32:49Z","42681f3d0fa143d36474d1cb2f464820bdb907bbc432cd91349f6acdd82657ecb4d9ad1d075c96c551bed37dada4615dd3ff64f912f2cc8a6d99b5e02ee51979"]},"Transitive2":{"src/Transitive2.purs":["2022-04-04T14:32:49Z","110a1bae420e0f0c05e9846fad483a1d035dfc3ba82c2cd81e44f548fd97965055b1a687ab86256f8cb6a3d79b4c4abe6f45d4728bbc04a7a1b0fedbca115b1e"]},"Transitive3":{"src/Transitive3.purs":["2022-04-04T14:32:49Z","65f7bb366ac8fab63084ff0229c9d55293db8126b539ff2cb53e511505995f426d50f4cca7d1f61fc53aaaaeed9d72791f9d9f12cc569d92e7bbe1d1908b093c"]},"TypeClassWithFunDeps":{"src/TypeClassWithFunDeps.purs":["2022-04-04T14:32:49Z","c828f194c8c679d97425ed7e04eb3c9bb04bc4c32542d7d6d7e4a36c6c734eb8ba1ef472ad2b0085d9a042a0724648b85a4605d8fe4995e1a32839b1fb1f0f23"]},"TypeClassWithoutMembers":{"src/TypeClassWithoutMembers.purs":["2022-04-04T14:32:49Z","3eac42652ce295ee47c340c4b86c91d0f6a8ad1f81824475fa4fc4ae8fd8bb77ceee6a46e31bebe9d2e8a980a7923432b41b0eff5cbf75580ee149e7d997e098"]},"TypeClassWithoutMembersIntermediate":{"src/TypeClassWithoutMembersIntermediate.purs":["2022-04-04T14:32:49Z","76d65083da1f6240b4c3b6c910af1326b9b9a538f4eb278b00ddf0bf67d9547c1cab0fae7661bbe4af6e7ecdea9fd26cc9ff9ea5b289d3c3994b3ccb3d099ba8"]},"TypeLevelString":{"src/TypeLevelString.purs":["2022-04-04T14:32:49Z","361dc3825ebd3efcd9a53dd900cc623f5eca14df82afc93f4d485d8b38e51eb0a72929b6cfb783b3d5c9bef46e6fd18c139fdbd10de484beb335e09ecee79388"]},"TypeOpAliases":{"src/TypeOpAliases.purs":["2022-04-04T14:32:49Z","5f1279d355f0e8f8c7d063950007ba060f0afdb83524fa10361f389d25fdacdf149c907cbdd94cf3d1a77751903701f22ba377203cd3b5d0c40e504699f94249"]},"TypeSynonym":{"src/TypeSynonym.purs":["2022-04-04T14:32:49Z","d1a0af1c2592e7f150bb0bf1dca4fc82ffe95b4f96be611408828d105d28bb6a4243a4c2799b1c35875a352e51a19464e4507b9c81d9cd34f0f55f8c94898ed9"]},"TypeSynonymInstance":{"src/TypeSynonymInstance.purs":["2022-04-04T14:32:49Z","336ba7262428a526f3824306f4ac472aebf637181b8aa23d823e6e70641539a14d57b52272d844af3e3a7fa85cdf4094042e464b61622a5a1c290ee8a6684733"]},"UTF8":{"src/UTF8.purs":["2022-04-04T14:32:49Z","60771c6d4974ef36414775e5a2511e99d08d5ba3945b010d7a399b77b88b310e10ad7d0016f7946ca3f524e7bbd1dce3575f7b2d81f8154bde197a3da411a624"]},"Virtual":{"src/Virtual.purs":["2022-04-04T14:32:49Z","a1e01c8b1a7c86c86942611649702ebf6689cf7559ce9ca0ba66052eafe64826b0770b33089e72cc26a3c90d75bcf62e0b75a6a90e085e70a6ec946b16456de2"]}}
diff --git a/tests/purs/docs/output/package.json b/tests/purs/docs/output/package.json
new file mode 100644
--- /dev/null
+++ b/tests/purs/docs/output/package.json
@@ -0,0 +1,1 @@
+{"type":"module"}
diff --git a/tests/purs/docs/purs.json b/tests/purs/docs/purs.json
new file mode 100644
--- /dev/null
+++ b/tests/purs/docs/purs.json
@@ -0,0 +1,11 @@
+{
+  "name": "docs-test-package",
+  "license": "MIT",
+  "version": "1.0.0",
+  "location": {
+    "gitUrl": "https://github.com/not-real/not-a-real-repo.git"
+  },
+  "dependencies": {
+    "prelude": ">=1.0.0 <2.0.0"
+  }
+}
diff --git a/tests/purs/docs/src/Clash1a.purs b/tests/purs/docs/src/Clash1a.purs
--- a/tests/purs/docs/src/Clash1a.purs
+++ b/tests/purs/docs/src/Clash1a.purs
@@ -3,7 +3,7 @@
 value :: Int
 value = 0
 
-type Type = Int
+type Type' = Int
 
 class TypeClass a where
   typeClassMember :: a
diff --git a/tests/purs/docs/src/Clash2a.purs b/tests/purs/docs/src/Clash2a.purs
--- a/tests/purs/docs/src/Clash2a.purs
+++ b/tests/purs/docs/src/Clash2a.purs
@@ -3,7 +3,7 @@
 value :: String
 value = "hello"
 
-type Type = String
+type Type' = String
 
 class TypeClass a b where
   typeClassMember :: a -> b
diff --git a/tests/purs/docs/src/ConstrainedArgument.purs b/tests/purs/docs/src/ConstrainedArgument.purs
--- a/tests/purs/docs/src/ConstrainedArgument.purs
+++ b/tests/purs/docs/src/ConstrainedArgument.purs
@@ -1,6 +1,6 @@
 module ConstrainedArgument where
 
-class Foo t
+class Foo (t :: Type)
 
 type WithoutArgs      = forall a. (Partial => a) -> a
 type WithArgs         = forall a. (Foo a => a) -> a
diff --git a/tests/purs/docs/src/DocCommentsClassMethod.purs b/tests/purs/docs/src/DocCommentsClassMethod.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/docs/src/DocCommentsClassMethod.purs
@@ -0,0 +1,6 @@
+module DocCommentsClassMethod where
+
+class Foo a where
+  -- | class method comment
+  bar :: a
+  baz :: String -> a
diff --git a/tests/purs/docs/src/DocCommentsDataConstructor.purs b/tests/purs/docs/src/DocCommentsDataConstructor.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/docs/src/DocCommentsDataConstructor.purs
@@ -0,0 +1,15 @@
+module DocCommentsDataConstructor where
+
+data Foo
+  -- | data constructor comment
+  = Bar
+  | Baz
+
+data ComplexFoo a b
+  = ComplexBar a
+  -- | another data constructor comment
+  | ComplexBaz a b
+
+newtype NewtypeFoo
+  -- | newtype data constructor comment
+  = NewtypeFoo { newtypeBar :: String }
diff --git a/tests/purs/docs/src/DocCommentsMerge.purs b/tests/purs/docs/src/DocCommentsMerge.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/docs/src/DocCommentsMerge.purs
@@ -0,0 +1,118 @@
+module DocCommentsMerge where
+
+-- | decl
+data DataOnly = DataOnly
+
+-- | kind
+data KindOnlyData :: Type
+data KindOnlyData = KindOnlyData
+
+-- | kind
+data KindAndData :: Type
+-- | decl
+data KindAndData = KindAndData
+
+data DataRoleOnly a b = DataRoleOnly a b
+-- | role
+type role DataRoleOnly representational representational
+
+-- | decl
+data DataAndRole a b = DataAndRole a b
+-- | role
+type role DataAndRole representational representational
+
+-- | kind
+data KindOnlyDataRoleOnly :: Type -> Type
+data KindOnlyDataRoleOnly a = KindOnlyDataRoleOnly
+-- | role
+type role KindOnlyDataRoleOnly representational
+
+-- | kind
+data KindDataAndRole :: Type -> Type
+-- | decl
+data KindDataAndRole a = KindDataAndRole
+-- | role
+type role KindDataAndRole representational
+
+---
+
+-- | decl
+foreign import data FFIOnly :: Type
+
+foreign import data FFIRoleOnly :: Type -> Type
+-- | role
+type role FFIRoleOnly representational
+
+-- | decl
+foreign import data FFIAndRole :: Type -> Type
+-- | role
+type role FFIAndRole representational
+
+---
+
+-- | decl
+newtype NewtypeOnly = NewtypeOnly Int
+
+-- | kind
+newtype KindOnlyNewtype :: Type
+newtype KindOnlyNewtype = KindOnlyNewtype Int
+
+-- | kind
+newtype KindAndNewtype :: Type -> Type -> Type
+-- | decl
+newtype KindAndNewtype a b = KindAndNewtype Int
+
+newtype NewtypeRoleOnly a b = NewtypeRoleOnly Int
+-- | role
+type role NewtypeRoleOnly representational representational
+
+-- | decl
+newtype NewtypeAndRole a b = NewtypeAndRole Int
+-- | role
+type role NewtypeAndRole representational representational
+
+-- | kind
+newtype KindOnlyNewtypeRoleOnly :: Type -> Type -> Type
+newtype KindOnlyNewtypeRoleOnly a b = KindOnlyNewtypeRoleOnly Int
+-- | role
+type role KindOnlyNewtypeRoleOnly representational representational
+
+-- | kind
+newtype KindNewtypeAndRole :: Type -> Type -> Type
+-- | decl
+newtype KindNewtypeAndRole a b = KindNewtypeAndRole Int
+-- | role
+type role KindNewtypeAndRole representational representational
+
+---
+
+-- | decl
+type TypeOnly = Int
+
+-- | kind
+type KindOnlyType :: Type -> Type -> Type
+type KindOnlyType a b = Int
+
+-- | kind
+type KindAndType :: Type -> Type -> Type
+-- | decl
+type KindAndType a b = Int
+
+-- type can't have role annotations
+
+---
+
+-- | decl
+class ClassOnly
+
+-- | kind
+class KindOnlyClass :: Constraint
+class KindOnlyClass
+
+-- | kind
+class KindAndClass :: Type -> Constraint
+-- | decl
+class KindAndClass a where
+  fooKindAndClass :: a -> String
+
+-- class can't have role declarations
diff --git a/tests/purs/docs/src/KindSignatureDocs.purs b/tests/purs/docs/src/KindSignatureDocs.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/docs/src/KindSignatureDocs.purs
@@ -0,0 +1,123 @@
+module KindSignatureDocs where
+
+data DKindAndType :: forall k. k -> Type
+data DKindAndType a = DKindAndType
+
+type TKindAndType :: forall k. k -> Type
+type TKindAndType a = Int
+
+newtype NKindAndType :: forall k. k -> Type
+newtype NKindAndType a = NKindAndType Int
+
+class CKindAndType :: forall k. (k -> Type) -> k -> Constraint
+class CKindAndType a k where
+  fooKindAndType :: a k -> String
+
+----------
+
+data DKindOnly :: forall k. k -> Type
+data DKindOnly a = DKindOnly
+
+type TKindOnly :: forall k. k -> Type
+type TKindOnly a = Int
+
+newtype NKindOnly :: forall k. k -> Type
+newtype NKindOnly a = NKindOnly Int
+
+class CKindOnly :: forall k. (k -> Type) -> k -> Constraint
+class CKindOnly a k where
+  fooKindOnly :: a k -> String
+
+----------
+
+data DTypeOnly :: forall k. k -> Type
+data DTypeOnly a = DTypeOnly
+
+type TTypeOnly :: forall k. k -> Type
+type TTypeOnly a = Int
+
+newtype NTypeOnly :: forall k. k -> Type
+newtype NTypeOnly a = NTypeOnly Int
+
+class CTypeOnly :: forall k. (k -> Type) -> k -> Constraint
+class CTypeOnly a k where
+  fooTypeOnly :: a k -> String
+
+----------
+
+data DImplicit a = DImplicit
+
+type TImplicit a = Int
+
+newtype NImplicit a = NImplicit Int
+
+class CImplicit a k where
+  fooImplicit :: a k -> String
+
+----------
+
+data DHidden a b c = DHidden a b c
+
+data DNothing
+
+type THidden a b c = DHidden b c a
+
+newtype NHidden a b c = NHidden (DHidden a c b)
+
+class CHidden a b c where
+  fooHidden :: a -> b -> c -> String
+
+class CNothing
+
+----------
+
+foreign import data FFI_Hidden :: Type -> Type -> Type
+foreign import data FFI_Shown :: (Type -> Type) -> Type
+
+----------
+
+foreign import data FFI_RedundantParenthesis :: (Type) -> Type
+
+data DataRedundantParenthesis :: (Type) -> (Type)
+data DataRedundantParenthesis a = DataRedundantParenthesis
+
+class ClassRedundantParenthesis :: (Type) -> (Constraint)
+class ClassRedundantParenthesis a
+
+data DataHeadParens :: (Type) -> Type -> Type
+data DataHeadParens a b = DataHeadParens
+
+data DataTailParens :: Type -> (Type -> Type)
+data DataTailParens a b = DataTailParens
+
+data DataWholeParens :: (Type -> Type -> Type)
+data DataWholeParens a b = DataWholeParens
+
+data DataSelfParens :: (Type)
+data DataSelfParens = DataSelfParens
+
+class ClassSelfParens :: (Constraint)
+class ClassSelfParens
+
+data DataKindAnnotation (a :: Type) = DataKindAnnotation a
+
+data DataKindAnnotationWithParens (a :: (Type)) = DataKindAnnotationWithParens a
+
+data FunctionParens1 :: (->) Type Type
+data FunctionParens1 a = FunctionParens1 a
+
+data FunctionParens2 :: ((->) Type) Type
+data FunctionParens2 a = FunctionParens2 a
+
+data FunctionParens3 :: (((->) Type)) Type
+data FunctionParens3 a = FunctionParens3 a
+----------
+
+data DShown a b f = DShown (f Int) a b
+
+type TShown f b c = DShown b c f
+
+newtype NShown a f c = NShown (DShown a c f)
+
+class CShown f a b where
+  fooShown :: f Int -> a -> b -> String
diff --git a/tests/purs/docs/src/OperatorSection.purs b/tests/purs/docs/src/OperatorSection.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/docs/src/OperatorSection.purs
@@ -0,0 +1,16 @@
+module OperatorSection where
+
+data List a = Nil | Cons a (List a)
+
+infixr 6 Cons as :
+
+class Foldable f where
+  foldl :: forall a b. (b -> a -> b) -> b -> f a -> b
+
+instance Foldable List where
+  -- Note: this is not a valid `Foldable` instance,
+  -- but it verifies that producing docs for
+  -- this file still works. See #4274 for more details.
+  foldl f b = case _ of
+    Nil -> b
+    a : _as -> f b a
diff --git a/tests/purs/docs/src/PrimSubmodules.purs b/tests/purs/docs/src/PrimSubmodules.purs
--- a/tests/purs/docs/src/PrimSubmodules.purs
+++ b/tests/purs/docs/src/PrimSubmodules.purs
@@ -1,6 +1,6 @@
 module PrimSubmodules (Lol(..), x, y, module O) where
 
-import Prim.Ordering (kind Ordering, LT, EQ, GT) as O
+import Prim.Ordering (Ordering, LT, EQ, GT) as O
 
 data Lol (a :: O.Ordering) = Lol Int
 
diff --git a/tests/purs/docs/src/RoleAnnotationDocs.purs b/tests/purs/docs/src/RoleAnnotationDocs.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/docs/src/RoleAnnotationDocs.purs
@@ -0,0 +1,36 @@
+module RoleAnnotationDocs where
+
+data D_RNP a b c = D_RNP
+type role D_RNP representational nominal phantom
+
+data D_NPR a b c = D_NPR
+type role D_NPR nominal phantom representational
+
+data D_PRN a b c = D_PRN
+type role D_PRN phantom representational nominal
+
+foreign import data FFI_NNN :: Type -> Type -> Type -> Type
+
+foreign import data FFI_RNP :: Type -> Type -> Type -> Type
+type role FFI_RNP representational nominal phantom
+
+foreign import data FFI_Higher1 :: (Type -> Type) -> Type -> Type -> Type
+type role FFI_Higher1 representational nominal phantom
+
+foreign import data FFI_Higher2 :: Type -> (Type -> Type) -> Type -> Type
+type role FFI_Higher2 representational nominal phantom
+
+foreign import data FFI_Higher3 :: Type -> Type -> (Type -> Type) -> Type
+type role FFI_Higher3 representational nominal phantom
+
+foreign import data FFI_Higher4 :: Type -> (Type -> (Type -> Type)) -> Type -> Type
+type role FFI_Higher4 representational nominal phantom
+
+foreign import data FFI_HeadParens :: (Type) -> Type -> Type -> Type
+type role FFI_HeadParens representational nominal phantom
+
+foreign import data FFI_TailParens :: Type -> (Type -> Type -> Type)
+type role FFI_TailParens representational nominal phantom
+
+foreign import data FFI_WholeParens :: (Type -> Type -> Type -> Type)
+type role FFI_WholeParens representational nominal phantom
diff --git a/tests/purs/docs/src/Shebang1Undocumented.purs b/tests/purs/docs/src/Shebang1Undocumented.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/docs/src/Shebang1Undocumented.purs
@@ -0,0 +1,4 @@
+#! a single shebang comment
+module Shebang1Undocumented where
+
+import Prelude
diff --git a/tests/purs/docs/src/Shebang2Undocumented.purs b/tests/purs/docs/src/Shebang2Undocumented.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/docs/src/Shebang2Undocumented.purs
@@ -0,0 +1,8 @@
+#! a
+#! multi
+#! line
+#! shebang
+#! comment
+module Shebang2Undocumented where
+
+import Prelude
diff --git a/tests/purs/docs/src/Shebang3Undocumented.purs b/tests/purs/docs/src/Shebang3Undocumented.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/docs/src/Shebang3Undocumented.purs
@@ -0,0 +1,9 @@
+#! a
+#! multi
+#! line
+#! shebang
+#! comment
+-- | Normal doc comment
+module Shebang3Undocumented where
+
+import Prelude
diff --git a/tests/purs/docs/src/Shebang4Undocumented.purs b/tests/purs/docs/src/Shebang4Undocumented.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/docs/src/Shebang4Undocumented.purs
@@ -0,0 +1,10 @@
+#! a
+#! multi
+#! line
+#! shebang
+#! comment
+-- Normal comment
+-- | Normal doc comment
+module Shebang4Undocumented where
+
+import Prelude
diff --git a/tests/purs/failing/1071.out b/tests/purs/failing/1071.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/1071.out
@@ -0,0 +1,22 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/1071.purs:7:18 - 7:23 (line 7, column 18 - line 7, column 23)
+
+  Could not match kind
+  [33m                    [0m
+  [33m  Type -> Constraint[0m
+  [33m                    [0m
+  with kind
+  [33m            [0m
+  [33m  Constraint[0m
+  [33m            [0m
+
+while checking that type [33mFoo a[0m
+  has kind [33mConstraint[0m
+while inferring the kind of [33mFoo a => a -> a[0m
+while inferring the kind of [33mforall a. Foo a => a -> a[0m
+in value declaration [33mbar[0m
+
+See https://github.com/purescript/documentation/blob/master/errors/KindsDoNotUnify.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/1169.out b/tests/purs/failing/1169.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/1169.out
@@ -0,0 +1,15 @@
+Error found:
+in module [33mTest[0m
+at tests/purs/failing/1169.purs:12:8 - 12:15 (line 12, column 8 - line 12, column 15)
+
+  Data constructor [33mTest.Inner[0m was given 1 arguments in a case expression, but expected 2 arguments.
+  This problem can be fixed by giving [33mTest.Inner[0m 2 arguments.
+
+while checking that expression [33mcase $1 of         [0m
+                               [33m  (Inner _) -> true[0m
+  has type [33mBoolean[0m
+in value declaration [33mtest2[0m
+
+See https://github.com/purescript/documentation/blob/master/errors/IncorrectConstructorArity.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/1175.out b/tests/purs/failing/1175.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/1175.out
@@ -0,0 +1,22 @@
+Error found:
+in module [33mX[0m
+at tests/purs/failing/1175.purs:11:11 - 11:12 (line 11, column 11 - line 11, column 12)
+
+  Could not match type
+  [33m     [0m
+  [33m  Int[0m
+  [33m     [0m
+  with type
+  [33m        [0m
+  [33m  String[0m
+  [33m        [0m
+
+while checking that type [33mInt[0m
+  is at least as general as type [33mString[0m
+while checking that expression [33m1[0m
+  has type [33mString[0m
+in value declaration [33mf[0m
+
+See https://github.com/purescript/documentation/blob/master/errors/TypesDoNotUnify.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/1310.out b/tests/purs/failing/1310.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/1310.out
@@ -0,0 +1,25 @@
+Error found:
+in module [33mIssue1310[0m
+at tests/purs/failing/1310.purs:18:8 - 18:31 (line 18, column 8 - line 18, column 31)
+
+  No type class instance was found for
+  [33m                         [0m
+  [33m  Issue1310.Inject Oops  [0m
+  [33m                   Effect[0m
+  [33m                         [0m
+
+while applying a function [33minj[0m
+  of type [33mInject @t0 t1 t2 => t1 t3 -> t2 t3[0m
+  to argument [33mOops (log "Oops")[0m
+while checking that expression [33minj (Oops (log "Oops"))[0m
+  has type [33mEffect Unit[0m
+in value declaration [33mmain[0m
+
+where [33mt0[0m is an unknown type
+      [33mt1[0m is an unknown type
+      [33mt2[0m is an unknown type
+      [33mt3[0m is an unknown type
+
+See https://github.com/purescript/documentation/blob/master/errors/NoInstanceFound.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/1570.out b/tests/purs/failing/1570.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/1570.out
@@ -0,0 +1,23 @@
+Error found:
+in module [33mM[0m
+at tests/purs/failing/1570.purs:6:10 - 6:16 (line 6, column 10 - line 6, column 16)
+
+  In a type-annotated expression [33mx :: t[0m, the type [33mt[0m must have kind [33mType[0m.
+  The error arises from the type
+  [33m   [0m
+  [33m  F[0m
+  [33m   [0m
+  having the kind
+  [33m              [0m
+  [33m  Type -> Type[0m
+  [33m              [0m
+  instead.
+
+while inferring the type of [33m\$0 ->      [0m
+                            [33m  case $0 of[0m
+                            [33m    x -> x  [0m
+in value declaration [33mtest[0m
+
+See https://github.com/purescript/documentation/blob/master/errors/ExpectedType.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/1733.out b/tests/purs/failing/1733.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/1733.out
@@ -0,0 +1,10 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/1733.purs:6:8 - 6:25 (line 6, column 8 - line 6, column 25)
+
+  Unknown value [33mThing.doesntExist[0m
+
+
+See https://github.com/purescript/documentation/blob/master/errors/UnknownName.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/1825.out b/tests/purs/failing/1825.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/1825.out
@@ -0,0 +1,10 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/1825.purs:8:11 - 8:12 (line 8, column 11 - line 8, column 12)
+
+  Unknown value [33ma[0m
+
+
+See https://github.com/purescript/documentation/blob/master/errors/UnknownName.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/1881.out b/tests/purs/failing/1881.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/1881.out
@@ -0,0 +1,10 @@
+Error found:
+at tests/purs/failing/1881.purs:5:1 - 5:1 (line 5, column 1 - line 5, column 1)
+
+  Unable to parse module:
+  Unexpected or mismatched indentation
+
+
+See https://github.com/purescript/documentation/blob/master/errors/ErrorParsingModule.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/2109-bind.out b/tests/purs/failing/2109-bind.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/2109-bind.out
@@ -0,0 +1,10 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/2109-bind.purs:8:3 - 8:14 (line 8, column 3 - line 8, column 14)
+
+  Unknown value [33mbind[0m. You're probably using do-notation, which the compiler replaces with calls to the [33mbind[0m and [33mdiscard[0m functions. Please import [33mbind[0m from module [33mPrelude[0m
+
+
+See https://github.com/purescript/documentation/blob/master/errors/UnknownName.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/2109-bind.purs b/tests/purs/failing/2109-bind.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/2109-bind.purs
@@ -0,0 +1,9 @@
+-- @shouldFailWith UnknownName
+module Main where
+
+import Data.Maybe (Maybe(..))
+import Prelude (pure)
+
+x = do
+  x <- Just 1
+  pure x
diff --git a/tests/purs/failing/2109-discard.out b/tests/purs/failing/2109-discard.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/2109-discard.out
@@ -0,0 +1,10 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/2109-discard.purs:7:3 - 7:12 (line 7, column 3 - line 7, column 12)
+
+  Unknown value [33mdiscard[0m. You're probably using do-notation, which the compiler replaces with calls to the [33mbind[0m and [33mdiscard[0m functions. Please import [33mdiscard[0m from module [33mPrelude[0m
+
+
+See https://github.com/purescript/documentation/blob/master/errors/UnknownName.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/2109-discard.purs b/tests/purs/failing/2109-discard.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/2109-discard.purs
@@ -0,0 +1,8 @@
+-- @shouldFailWith UnknownName
+module Main where
+
+import Prelude (unit, pure)
+
+main = do
+  pure unit
+  pure unit
diff --git a/tests/purs/failing/2109-negate.out b/tests/purs/failing/2109-negate.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/2109-negate.out
@@ -0,0 +1,10 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/2109-negate.purs:4:5 - 4:7 (line 4, column 5 - line 4, column 7)
+
+  Unknown value [33mnegate[0m. You're probably using numeric negation (the unary [33m-[0m operator), which the compiler replaces with calls to the [33mnegate[0m function. Please import [33mnegate[0m from module [33mPrelude[0m
+
+
+See https://github.com/purescript/documentation/blob/master/errors/UnknownName.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/2109-negate.purs b/tests/purs/failing/2109-negate.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/2109-negate.purs
@@ -0,0 +1,4 @@
+-- @shouldFailWith UnknownName
+module Main where
+
+x = -5
diff --git a/tests/purs/failing/2128-class.out b/tests/purs/failing/2128-class.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/2128-class.out
@@ -0,0 +1,10 @@
+Error found:
+at tests/purs/failing/2128-class.purs:5:15 - 5:18 (line 5, column 15 - line 5, column 18)
+
+  Unable to parse module:
+  Unexpected token '!!!'
+
+
+See https://github.com/purescript/documentation/blob/master/errors/ErrorParsingModule.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/2128-instance.out b/tests/purs/failing/2128-instance.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/2128-instance.out
@@ -0,0 +1,10 @@
+Error found:
+at tests/purs/failing/2128-instance.purs:8:9 - 8:12 (line 8, column 9 - line 8, column 12)
+
+  Unable to parse module:
+  Unexpected token '!!!'
+
+
+See https://github.com/purescript/documentation/blob/master/errors/ErrorParsingModule.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/2197-shouldFail.out b/tests/purs/failing/2197-shouldFail.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/2197-shouldFail.out
@@ -0,0 +1,14 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/2197-shouldFail.purs:9:6 - 9:12 (line 9, column 6 - line 9, column 12)
+
+  Conflicting definitions are in scope for type [33mNumber[0m from the following modules:
+
+    [33mMain[0m
+    [33mPrim[0m
+
+
+
+See https://github.com/purescript/documentation/blob/master/errors/ScopeConflict.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/2197-shouldFail2.out b/tests/purs/failing/2197-shouldFail2.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/2197-shouldFail2.out
@@ -0,0 +1,10 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/2197-shouldFail2.purs:6:6 - 6:12 (line 6, column 6 - line 6, column 12)
+
+  Unknown type [33mNumber[0m
+
+
+See https://github.com/purescript/documentation/blob/master/errors/UnknownName.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/2378.out b/tests/purs/failing/2378.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/2378.out
@@ -0,0 +1,18 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/2378.purs:6:1 - 6:25 (line 6, column 1 - line 6, column 25)
+
+  Orphan instance [33mfooX[0m found for
+  [33m             [0m
+  [33m  Lib.Foo "x"[0m
+  [33m             [0m
+  This problem can be resolved by declaring the instance in [33mLib[0m, or by defining the instance on a newtype wrapper.
+
+in type class instance
+[33m             [0m
+[33m  Lib.Foo "x"[0m
+[33m             [0m
+
+See https://github.com/purescript/documentation/blob/master/errors/OrphanInstance.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/2379.out b/tests/purs/failing/2379.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/2379.out
@@ -0,0 +1,31 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/2379.purs:6:8 - 6:19 (line 6, column 8 - line 6, column 19)
+
+  No type class instance was found for class
+  [33m       [0m
+  [33m  Lib.Y[0m
+  [33m       [0m
+  because the class was not in scope. Perhaps it was not exported.
+
+while solving type class constraint
+[33m           [0m
+[33m  Lib.Y Int[0m
+[33m           [0m
+while applying a function [33mx[0m
+  of type [33mX t0 => t0 -> String[0m
+  to argument [33m[ 1[0m
+              [33m, 2[0m
+              [33m, 3[0m
+              [33m]  [0m
+while inferring the type of [33mx [ 1[0m
+                            [33m  , 2[0m
+                            [33m  , 3[0m
+                            [33m  ]  [0m
+in value declaration [33mtest[0m
+
+where [33mt0[0m is an unknown type
+
+See https://github.com/purescript/documentation/blob/master/errors/UnknownClass.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/2434.out b/tests/purs/failing/2434.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/2434.out
@@ -0,0 +1,10 @@
+Error found:
+at tests/purs/failing/2434.purs:5:13 - 5:14 (line 5, column 13 - line 5, column 14)
+
+  Unable to parse module:
+  Illegal astral code point in character literal
+
+
+See https://github.com/purescript/documentation/blob/master/errors/ErrorParsingModule.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/2534.out b/tests/purs/failing/2534.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/2534.out
@@ -0,0 +1,21 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/2534.purs:8:14 - 8:18 (line 8, column 14 - line 8, column 18)
+
+  An infinite type was inferred for an expression:
+  [33m          [0m
+  [33m  Array t0[0m
+  [33m          [0m
+
+while trying to match type [33mArray t1[0m
+  with type [33mt0[0m
+while checking that expression [33mxs[0m
+  has type [33mt0[0m
+in value declaration [33mfoo[0m
+
+where [33mt1[0m is an unknown type
+      [33mt0[0m is an unknown type
+
+See https://github.com/purescript/documentation/blob/master/errors/InfiniteType.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/2542.out b/tests/purs/failing/2542.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/2542.out
@@ -0,0 +1,22 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/2542.purs:8:16 - 8:17 (line 8, column 16 - line 8, column 17)
+
+  Type variable [33ma[0m is undefined.
+
+while inferring the kind of [33ma[0m
+while checking that type [33ma[0m
+  has kind [33mType[0m
+while inferring the kind of [33mArray a[0m
+while checking that expression [33mbar       [0m
+                               [33m  where   [0m
+                               [33m  bar = [][0m
+  has type [33mArray a0[0m
+in value declaration [33mfoo[0m
+
+where [33ma0[0m is a rigid type variable
+        bound at (line 7, column 7 - line 7, column 10)
+
+See https://github.com/purescript/documentation/blob/master/errors/UndefinedTypeVariable.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/2567.out b/tests/purs/failing/2567.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/2567.out
@@ -0,0 +1,18 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/2567.purs:7:8 - 7:67 (line 7, column 8 - line 7, column 67)
+
+  Custom error:
+
+    This constraint should be checked
+
+
+while checking that type [33mFail (Text "This constraint should be checked") => Int[0m
+  is at least as general as type [33mInt[0m
+while checking that expression [33m0[0m
+  has type [33mInt[0m
+in value declaration [33mfoo[0m
+
+See https://github.com/purescript/documentation/blob/master/errors/NoInstanceFound.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/2601.out b/tests/purs/failing/2601.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/2601.out
@@ -0,0 +1,21 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/2601.purs:6:12 - 6:15 (line 6, column 12 - line 6, column 15)
+
+  Could not match kind
+  [33m      [0m
+  [33m  Type[0m
+  [33m      [0m
+  with kind
+  [33m              [0m
+  [33m  Type -> Type[0m
+  [33m              [0m
+
+while checking that type [33mInt[0m
+  has kind [33mType -> Type[0m
+while inferring the kind of [33mSyn Int[0m
+in value declaration [33mval[0m
+
+See https://github.com/purescript/documentation/blob/master/errors/KindsDoNotUnify.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/2616.out b/tests/purs/failing/2616.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/2616.out
@@ -0,0 +1,28 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/2616.purs:9:1 - 9:38 (line 9, column 1 - line 9, column 38)
+
+  No type class instance was found for
+  [33m                           [0m
+  [33m  Prim.RowList.RowToList r1[0m
+  [33m                         t2[0m
+  [33m                           [0m
+
+while solving type class constraint
+[33m                          [0m
+[33m  Data.Ord.Ord (Record r1)[0m
+[33m                          [0m
+while applying a function [33mcompare[0m
+  of type [33mOrd t0 => t0 -> t0 -> Ordering[0m
+  to argument [33m$l2[0m
+while inferring the type of [33mcompare $l2[0m
+in value declaration [33mordFoo[0m
+
+where [33mr1[0m is a rigid type variable
+        bound at (line 0, column 0 - line 0, column 0)
+      [33mt0[0m is an unknown type
+      [33mt2[0m is an unknown type
+
+See https://github.com/purescript/documentation/blob/master/errors/NoInstanceFound.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/2806.out b/tests/purs/failing/2806.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/2806.out
@@ -0,0 +1,25 @@
+Error found:
+in module [33mX[0m
+at tests/purs/failing/2806.purs:6:1 - 6:29 (line 6, column 1 - line 6, column 29)
+
+  A case expression could not be determined to cover all inputs.
+  The following additional cases are required to cover all inputs:
+
+    [33m_[0m
+
+  Alternatively, add a Partial constraint to the type of the enclosing value.
+
+while checking that type [33mPartial => t1[0m
+  is at least as general as type [33ma0[0m
+while checking that expression [33mcase e of          [0m
+                               [33m  e | L x <- e -> x[0m
+  has type [33ma0[0m
+in value declaration [33mg[0m
+
+where [33ma0[0m is a rigid type variable
+        bound at (line 0, column 0 - line 0, column 0)
+      [33mt1[0m is an unknown type
+
+See https://github.com/purescript/documentation/blob/master/errors/NoInstanceFound.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/2874-forall.out b/tests/purs/failing/2874-forall.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/2874-forall.out
@@ -0,0 +1,10 @@
+Error found:
+at tests/purs/failing/2874-forall.purs:5:24 - 5:30 (line 5, column 24 - line 5, column 30)
+
+  Unable to parse module:
+  Unexpected token 'forall'
+
+
+See https://github.com/purescript/documentation/blob/master/errors/ErrorParsingModule.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/2874-forall2.out b/tests/purs/failing/2874-forall2.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/2874-forall2.out
@@ -0,0 +1,10 @@
+Error found:
+at tests/purs/failing/2874-forall2.purs:5:12 - 5:18 (line 5, column 12 - line 5, column 18)
+
+  Unable to parse module:
+  Unexpected token 'forall'
+
+
+See https://github.com/purescript/documentation/blob/master/errors/ErrorParsingModule.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/2874-wildcard.out b/tests/purs/failing/2874-wildcard.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/2874-wildcard.out
@@ -0,0 +1,10 @@
+Error found:
+at tests/purs/failing/2874-wildcard.purs:10:25 - 10:26 (line 10, column 25 - line 10, column 26)
+
+  Unable to parse module:
+  Unexpected wildcard in type; type wildcards are only allowed in value annotations
+
+
+See https://github.com/purescript/documentation/blob/master/errors/ErrorParsingModule.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/2947.out b/tests/purs/failing/2947.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/2947.out
@@ -0,0 +1,10 @@
+Error found:
+at tests/purs/failing/2947.purs:10:1 - 10:1 (line 10, column 1 - line 10, column 1)
+
+  Unable to parse module:
+  Unexpected or mismatched indentation
+
+
+See https://github.com/purescript/documentation/blob/master/errors/ErrorParsingModule.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/3077.out b/tests/purs/failing/3077.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/3077.out
@@ -0,0 +1,25 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/3077.purs:11:14 - 11:38 (line 11, column 14 - line 11, column 38)
+
+  Could not match kind
+  [33m      [0m
+  [33m  Type[0m
+  [33m      [0m
+  with kind
+  [33m        [0m
+  [33m  Symbol[0m
+  [33m        [0m
+
+while trying to match type [33mSProxy[0m
+  with type [33mt0[0m
+while checking that expression [33mSProxy[0m
+  has type [33mt0 t1[0m
+in value declaration [33mwrong[0m
+
+where [33mt0[0m is an unknown type
+      [33mt1[0m is an unknown type
+
+See https://github.com/purescript/documentation/blob/master/errors/KindsDoNotUnify.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/3077.purs b/tests/purs/failing/3077.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/3077.purs
@@ -0,0 +1,11 @@
+-- @shouldFailWith KindsDoNotUnify
+module Main where
+
+data TProxy (t :: Type) = TProxy
+data SProxy (s :: Symbol) = SProxy
+
+put :: forall proxy a. proxy a -> TProxy a
+put _ = TProxy
+
+--wrong :: TProxy "apple"
+wrong = put (SProxy :: SProxy "apple")
diff --git a/tests/purs/failing/3132.out b/tests/purs/failing/3132.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/3132.out
@@ -0,0 +1,14 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/3132.purs:2:1 - 18:13 (line 2, column 1 - line 18, column 13)
+
+  An export for [33mclass C3[0m requires the following to also be exported:
+
+    [33mclass C1[0m
+    [33mclass C2[0m
+
+
+
+See https://github.com/purescript/documentation/blob/master/errors/TransitiveExportError.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/3275-BindingGroupErrorPos.out b/tests/purs/failing/3275-BindingGroupErrorPos.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/3275-BindingGroupErrorPos.out
@@ -0,0 +1,24 @@
+Error found:
+in module [33mBindingGroupErrorPos[0m
+at tests/purs/failing/3275-BindingGroupErrorPos.purs:11:17 - 11:23 (line 11, column 17 - line 11, column 23)
+
+  Could not match kind
+  [33m      [0m
+  [33m  Type[0m
+  [33m      [0m
+  with kind
+  [33m            [0m
+  [33m  Type -> t3[0m
+  [33m            [0m
+
+while checking that type [33mResult[0m
+  has kind [33mType -> t0[0m
+while inferring the kind of [33mResult String[0m
+while inferring the kind of [33mInt -> Result String[0m
+in binding group wrong
+
+where [33mt0[0m is an unknown type
+
+See https://github.com/purescript/documentation/blob/master/errors/KindsDoNotUnify.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/3275-DataBindingGroupErrorPos.out b/tests/purs/failing/3275-DataBindingGroupErrorPos.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/3275-DataBindingGroupErrorPos.out
@@ -0,0 +1,24 @@
+Error found:
+in module [33mDataBindingGroupErrorPos[0m
+at tests/purs/failing/3275-DataBindingGroupErrorPos.purs:7:19 - 7:22 (line 7, column 19 - line 7, column 22)
+
+  Could not match kind
+  [33m      [0m
+  [33m  Type[0m
+  [33m      [0m
+  with kind
+  [33m            [0m
+  [33m  t10 -> t11[0m
+  [33m            [0m
+
+while checking that type [33mBar a[0m
+  has kind [33mt0 -> t1[0m
+while inferring the kind of [33mBar a a[0m
+in data binding group Bar, Foo
+
+where [33mt0[0m is an unknown type
+      [33mt1[0m is an unknown type
+
+See https://github.com/purescript/documentation/blob/master/errors/KindsDoNotUnify.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/3329.out b/tests/purs/failing/3329.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/3329.out
@@ -0,0 +1,28 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/3329.purs:24:8 - 24:11 (line 24, column 8 - line 24, column 11)
+
+  No type class instance was found for
+  [33m                            [0m
+  [33m  Main.Inject g0            [0m
+  [33m              (Either f1 g0)[0m
+  [33m                            [0m
+  The following instance partially overlaps the above constraint, which means the rest of its instance chain will not be considered:
+
+    [33mMain.injectLeft[0m
+
+
+while checking that type [33mforall (@f :: Type) (@g :: Type). Inject f g => f -> g[0m
+  is at least as general as type [33mg0 -> Either f1 g0[0m
+while checking that expression [33minj[0m
+  has type [33mg0 -> Either f1 g0[0m
+in value declaration [33minjR[0m
+
+where [33mf1[0m is a rigid type variable
+        bound at (line 24, column 8 - line 24, column 11)
+      [33mg0[0m is a rigid type variable
+        bound at (line 24, column 8 - line 24, column 11)
+
+See https://github.com/purescript/documentation/blob/master/errors/NoInstanceFound.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/3329.purs b/tests/purs/failing/3329.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/3329.purs
@@ -0,0 +1,24 @@
+-- @shouldFailWith NoInstanceFound
+module Main where
+
+import Data.Either (Either(..))
+import Data.Maybe (Maybe(..))
+
+class Inject f g where
+  inj :: f -> g
+  prj :: g -> Maybe f
+
+instance injectRefl :: Inject x x where
+  inj x = x
+  prj x = Just x
+else instance injectLeft :: Inject l (Either l r) where
+  inj x = Left x
+  prj (Left x) = Just x
+  prj _ = Nothing
+else instance injectRight :: Inject x r => Inject x (Either l r) where
+  inj x = Right (inj x)
+  prj (Right x) = prj x
+  prj _ = Nothing
+
+injR :: forall f g. g -> Either f g
+injR = inj
diff --git a/tests/purs/failing/3335-TypeOpAssociativityError.out b/tests/purs/failing/3335-TypeOpAssociativityError.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/3335-TypeOpAssociativityError.out
@@ -0,0 +1,10 @@
+Error found:
+at tests/purs/failing/3335-TypeOpAssociativityError.purs:6:1 - 6:33 (line 6, column 1 - line 6, column 33)
+
+  Cannot parse an expression that uses multiple instances of the non-associative operator [33mMain.(>>)[0m.
+  Use parentheses to resolve this ambiguity.
+
+
+See https://github.com/purescript/documentation/blob/master/errors/NonAssociativeError.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/3405.out b/tests/purs/failing/3405.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/3405.out
@@ -0,0 +1,18 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/3405.purs:8:1 - 8:43 (line 8, column 1 - line 8, column 43)
+
+  Orphan instance [33meqSomething[0m found for
+  [33m                [0m
+  [33m  Data.Eq.Eq Int[0m
+  [33m                [0m
+  This problem can be resolved by declaring the instance in [33mData.Eq[0m, or by defining the instance on a newtype wrapper.
+
+in type class instance
+[33m                      [0m
+[33m  Data.Eq.Eq Something[0m
+[33m                      [0m
+
+See https://github.com/purescript/documentation/blob/master/errors/OrphanInstance.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/3405.purs b/tests/purs/failing/3405.purs
--- a/tests/purs/failing/3405.purs
+++ b/tests/purs/failing/3405.purs
@@ -1,4 +1,4 @@
--- @shouldFailWith CannotFindDerivingType
+-- @shouldFailWith OrphanInstance
 module Main where
 
 import Prelude
diff --git a/tests/purs/failing/3453.out b/tests/purs/failing/3453.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/3453.out
@@ -0,0 +1,11 @@
+Error found:
+at tests/purs/failing/3453.purs:6:1 - 6:11 (line 6, column 1 - line 6, column 11)
+
+  A cycle appears in the definition of type synonym [33mS[0m
+  Cycles are disallowed because they can lead to loops in the type checker.
+  Consider using a 'newtype' instead.
+
+
+See https://github.com/purescript/documentation/blob/master/errors/CycleInTypeSynonym.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/3453.purs b/tests/purs/failing/3453.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/3453.purs
@@ -0,0 +1,8 @@
+-- @shouldFailWith CycleInTypeSynonym
+module Main where
+
+import Data.Newtype (class Newtype)
+
+type S = S
+newtype Z = Z S
+derive instance newtypeZ :: Newtype Z _
diff --git a/tests/purs/failing/3510.out b/tests/purs/failing/3510.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/3510.out
@@ -0,0 +1,18 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/3510.purs:7:1 - 7:28 (line 7, column 1 - line 7, column 28)
+
+  Type class instance head is invalid due to use of type
+  [33m    [0m
+  [33m  ()[0m
+  [33m    [0m
+  All types appearing in instance declarations must be of the form T a_1 .. a_n, where each type a_i is of the same form, unless the type is fully determined by other type class arguments via functional dependencies.
+
+in type class instance
+[33m              [0m
+[33m  Data.Eq.Eq T[0m
+[33m              [0m
+
+See https://github.com/purescript/documentation/blob/master/errors/InvalidInstanceHead.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/3510.purs b/tests/purs/failing/3510.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/3510.purs
@@ -0,0 +1,7 @@
+-- @shouldFailWith InvalidInstanceHead
+module Main where
+
+import Prelude (class Eq)
+
+type T = {}
+derive instance eqT :: Eq T
diff --git a/tests/purs/failing/3531-2.out b/tests/purs/failing/3531-2.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/3531-2.out
@@ -0,0 +1,27 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/3531-2.purs:22:11 - 22:22 (line 22, column 11 - line 22, column 22)
+
+  No type class instance was found for
+  [33m                   [0m
+  [33m  Main.C (X t2 Int)[0m
+  [33m                   [0m
+  The following instance partially overlaps the above constraint, which means the rest of its instance chain will not be considered:
+
+    [33mMain.cx[0m
+
+  The instance head contains unknown type variables. Consider adding a type annotation.
+
+while applying a function [33mthing[0m
+  of type [33mC t0 => t0 -> t0[0m
+  to argument [33mtest1[0m
+while inferring the type of [33mthing test1[0m
+in value declaration [33mtest2[0m
+
+where [33mt0[0m is an unknown type
+      [33mt1[0m is an unknown type
+      [33mt2[0m is an unknown type
+
+See https://github.com/purescript/documentation/blob/master/errors/NoInstanceFound.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/3531-2.purs b/tests/purs/failing/3531-2.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/3531-2.purs
@@ -0,0 +1,23 @@
+-- @shouldFailWith NoInstanceFound
+module Main where
+
+import Prim.TypeError (class Fail, Text)
+
+class C x where
+  thing :: x -> x
+
+data X a b = X
+
+test1 :: forall a. X a Int
+test1 = X
+
+instance cx :: C (X x x) where
+  thing x = x
+
+else instance cxFail :: Fail (Text "Fell through") => C (X x y) where
+  thing x = x
+
+test2 :: Boolean
+test2 = do
+  let X = thing test1
+  true
diff --git a/tests/purs/failing/3531-3.out b/tests/purs/failing/3531-3.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/3531-3.out
@@ -0,0 +1,32 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/3531-3.purs:22:11 - 22:22 (line 22, column 11 - line 22, column 22)
+
+  No type class instance was found for
+  [33m                        [0m
+  [33m  Main.C (X             [0m
+  [33m            { foo :: Int[0m
+  [33m            | t1        [0m
+  [33m            }           [0m
+  [33m            { foo :: Int[0m
+  [33m            }           [0m
+  [33m         )              [0m
+  [33m                        [0m
+  The following instance partially overlaps the above constraint, which means the rest of its instance chain will not be considered:
+
+    [33mMain.cx[0m
+
+  The instance head contains unknown type variables. Consider adding a type annotation.
+
+while applying a function [33mthing[0m
+  of type [33mC t0 => t0 -> t0[0m
+  to argument [33mtest1[0m
+while inferring the type of [33mthing test1[0m
+in value declaration [33mtest2[0m
+
+where [33mt0[0m is an unknown type
+      [33mt1[0m is an unknown type
+
+See https://github.com/purescript/documentation/blob/master/errors/NoInstanceFound.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/3531-3.purs b/tests/purs/failing/3531-3.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/3531-3.purs
@@ -0,0 +1,23 @@
+-- @shouldFailWith NoInstanceFound
+module Main where
+
+import Prim.TypeError (class Fail, Text)
+
+class C x where
+  thing :: x -> x
+
+data X a b = X
+
+test1 :: forall r. X { foo :: Int | r } { foo :: Int }
+test1 = X
+
+instance cx :: C (X x x) where
+  thing x = x
+
+else instance cxFail :: Fail (Text "Fell through") => C (X x y) where
+  thing x = x
+
+test2 :: Boolean
+test2 = do
+  let X = thing test1
+  true
diff --git a/tests/purs/failing/3531-4.out b/tests/purs/failing/3531-4.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/3531-4.out
@@ -0,0 +1,33 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/3531-4.purs:21:7 - 21:27 (line 21, column 7 - line 21, column 27)
+
+  No type class instance was found for
+  [33m           [0m
+  [33m  Main.C a4[0m
+  [33m         b5[0m
+  [33m           [0m
+  The following instances partially overlap the above constraint, which means the rest of their instance chains will not be considered:
+
+    [33mMain.c1[0m
+    [33mMain.c3[0m
+
+
+while applying a function [33mc[0m
+  of type [33mC @t0 @t1 t2 t3 => Proxy @t0 t2 -> Proxy @t1 t3 -> Boolean[0m
+  to argument [33mProxy[0m
+while inferring the type of [33mc Proxy[0m
+in value declaration [33mfn[0m
+
+where [33ma4[0m is a rigid type variable
+        bound at (line 0, column 0 - line 0, column 0)
+      [33mb5[0m is a rigid type variable
+        bound at (line 0, column 0 - line 0, column 0)
+      [33mt0[0m is an unknown type
+      [33mt1[0m is an unknown type
+      [33mt2[0m is an unknown type
+      [33mt3[0m is an unknown type
+
+See https://github.com/purescript/documentation/blob/master/errors/NoInstanceFound.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/3531-4.purs b/tests/purs/failing/3531-4.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/3531-4.purs
@@ -0,0 +1,21 @@
+-- @shouldFailWith NoInstanceFound
+module Main where
+
+data Proxy a = Proxy
+
+class C a b where
+  c :: Proxy a -> Proxy b -> Boolean
+
+instance c1 :: C String String where
+  c _ _ = true
+else instance c2 :: C String a where
+  c _ _ = false
+
+instance c3 :: C Int Int where
+  c _ _ = true
+else instance c4 :: C Int a where
+  c _ _ = false
+
+fn :: forall a b. Proxy a -> Proxy b -> Int
+fn _ _ = 42 where
+  x = c (Proxy :: Proxy a) (Proxy :: Proxy b)
diff --git a/tests/purs/failing/3531-5.out b/tests/purs/failing/3531-5.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/3531-5.out
@@ -0,0 +1,32 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/3531-5.purs:16:7 - 16:27 (line 16, column 7 - line 16, column 27)
+
+  No type class instance was found for
+  [33m           [0m
+  [33m  Main.C a4[0m
+  [33m         b5[0m
+  [33m           [0m
+  The following instance partially overlaps the above constraint, which means the rest of its instance chain will not be considered:
+
+    instance in module [33mMain[0m with type [33mforall a. C String (Array a)[0m (line 9, column 1 - line 10, column 15)
+
+
+while applying a function [33mc[0m
+  of type [33mC @t0 @t1 t2 t3 => Proxy @t0 t2 -> Proxy @t1 t3 -> Boolean[0m
+  to argument [33mProxy[0m
+while inferring the type of [33mc Proxy[0m
+in value declaration [33mfn[0m
+
+where [33ma4[0m is a rigid type variable
+        bound at (line 0, column 0 - line 0, column 0)
+      [33mb5[0m is a rigid type variable
+        bound at (line 0, column 0 - line 0, column 0)
+      [33mt0[0m is an unknown type
+      [33mt1[0m is an unknown type
+      [33mt2[0m is an unknown type
+      [33mt3[0m is an unknown type
+
+See https://github.com/purescript/documentation/blob/master/errors/NoInstanceFound.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/3531-5.purs b/tests/purs/failing/3531-5.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/3531-5.purs
@@ -0,0 +1,16 @@
+-- @shouldFailWith NoInstanceFound
+module Main where
+
+data Proxy a = Proxy
+
+class C a b where
+  c :: Proxy a -> Proxy b -> Boolean
+
+instance C String (Array a) where
+  c _ _ = true
+else instance c2 :: C String a where
+  c _ _ = false
+
+fn :: forall a b. Proxy a -> Proxy b -> Int
+fn _ _ = 42 where
+  x = c (Proxy :: Proxy a) (Proxy :: Proxy b)
diff --git a/tests/purs/failing/3531-6.out b/tests/purs/failing/3531-6.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/3531-6.out
@@ -0,0 +1,33 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/3531-6.purs:21:7 - 21:27 (line 21, column 7 - line 21, column 27)
+
+  No type class instance was found for
+  [33m           [0m
+  [33m  Main.C a4[0m
+  [33m         b5[0m
+  [33m           [0m
+  The following instances partially overlap the above constraint, which means the rest of their instance chains will not be considered:
+
+    instance in module [33mMain[0m with type [33mforall a. C String (Array a)[0m (line 9, column 1 - line 10, column 15)
+    instance in module [33mMain[0m with type [33mC Int Int[0m (line 14, column 1 - line 15, column 15)
+
+
+while applying a function [33mc[0m
+  of type [33mC @t0 @t1 t2 t3 => Proxy @t0 t2 -> Proxy @t1 t3 -> Boolean[0m
+  to argument [33mProxy[0m
+while inferring the type of [33mc Proxy[0m
+in value declaration [33mfn[0m
+
+where [33ma4[0m is a rigid type variable
+        bound at (line 0, column 0 - line 0, column 0)
+      [33mb5[0m is a rigid type variable
+        bound at (line 0, column 0 - line 0, column 0)
+      [33mt0[0m is an unknown type
+      [33mt1[0m is an unknown type
+      [33mt2[0m is an unknown type
+      [33mt3[0m is an unknown type
+
+See https://github.com/purescript/documentation/blob/master/errors/NoInstanceFound.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/3531-6.purs b/tests/purs/failing/3531-6.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/3531-6.purs
@@ -0,0 +1,21 @@
+-- @shouldFailWith NoInstanceFound
+module Main where
+
+data Proxy a = Proxy
+
+class C a b where
+  c :: Proxy a -> Proxy b -> Boolean
+
+instance C String (Array a) where
+  c _ _ = true
+else instance c2 :: C String a where
+  c _ _ = false
+
+instance C Int Int where
+  c _ _ = true
+else instance c4 :: C Int a where
+  c _ _ = false
+
+fn :: forall a b. Proxy a -> Proxy b -> Int
+fn _ _ = 42 where
+  x = c (Proxy :: Proxy a) (Proxy :: Proxy b)
diff --git a/tests/purs/failing/3531.out b/tests/purs/failing/3531.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/3531.out
@@ -0,0 +1,27 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/3531.purs:16:7 - 16:27 (line 16, column 7 - line 16, column 27)
+
+  No type class instance was found for
+  [33m           [0m
+  [33m  Main.C a2[0m
+  [33m           [0m
+  The following instance partially overlaps the above constraint, which means the rest of its instance chain will not be considered:
+
+    [33mMain.c1[0m
+
+
+while applying a function [33mc[0m
+  of type [33mC @t0 t1 => Proxy @t0 t1 -> Boolean[0m
+  to argument [33mProxy[0m
+while inferring the type of [33mc Proxy[0m
+in value declaration [33mfn[0m
+
+where [33ma2[0m is a rigid type variable
+        bound at (line 0, column 0 - line 0, column 0)
+      [33mt0[0m is an unknown type
+      [33mt1[0m is an unknown type
+
+See https://github.com/purescript/documentation/blob/master/errors/NoInstanceFound.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/3531.purs b/tests/purs/failing/3531.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/3531.purs
@@ -0,0 +1,16 @@
+-- @shouldFailWith NoInstanceFound
+module Main where
+
+data Proxy a = Proxy
+
+class C a where
+  c :: Proxy a -> Boolean
+
+instance c1 :: C String where
+  c _ = true
+else instance c2 :: C a where
+  c _ = false
+
+fn :: forall a. Proxy a -> Int
+fn _ = 42 where
+  x = c (Proxy :: Proxy a)
diff --git a/tests/purs/failing/3549-a.out b/tests/purs/failing/3549-a.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/3549-a.out
@@ -0,0 +1,10 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/3549-a.purs:6:26 - 6:29 (line 6, column 26 - line 6, column 29)
+
+  Unknown type [33mTyp[0m
+
+
+See https://github.com/purescript/documentation/blob/master/errors/UnknownName.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/3549.out b/tests/purs/failing/3549.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/3549.out
@@ -0,0 +1,25 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/3549.purs:8:78 - 8:79 (line 8, column 78 - line 8, column 79)
+
+  Could not match kind
+  [33m              [0m
+  [33m  Type -> Type[0m
+  [33m              [0m
+  with kind
+  [33m      [0m
+  [33m  Type[0m
+  [33m      [0m
+
+while checking that type [33mf[0m
+  has kind [33mType -> Type[0m
+while inferring the kind of [33mFunctor f[0m
+while inferring the kind of [33mFunctor f => (a -> b) -> f a -> f b[0m
+while inferring the kind of [33mforall (b :: Type). Functor f => (a -> b) -> f a -> f b[0m
+while inferring the kind of [33mforall (a :: Type) (b :: Type). Functor f => (a -> b) -> f a -> f b[0m
+while inferring the kind of [33mforall (f :: Type -> Type -> Type) (a :: Type) (b :: Type). Functor f => (a -> b) -> f a -> f b[0m
+in value declaration [33mmap'[0m
+
+See https://github.com/purescript/documentation/blob/master/errors/KindsDoNotUnify.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/365.out b/tests/purs/failing/365.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/365.out
@@ -0,0 +1,9 @@
+Error found:
+at tests/purs/failing/365.purs:10:1 - 12:8 (line 10, column 1 - line 12, column 8)
+
+  The value of [33mcS[0m is undefined here, so this reference is not allowed.
+
+
+See https://github.com/purescript/documentation/blob/master/errors/CycleInDeclaration.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/3689.out b/tests/purs/failing/3689.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/3689.out
@@ -0,0 +1,10 @@
+Error found:
+at tests/purs/failing/3689.purs:5:5 - 5:10 (line 5, column 5 - line 5, column 10)
+
+  Unable to parse module:
+  Unexpected quoted label in record pun, perhaps due to a missing ':'
+
+
+See https://github.com/purescript/documentation/blob/master/errors/ErrorParsingModule.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/3689.purs b/tests/purs/failing/3689.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/3689.purs
@@ -0,0 +1,6 @@
+-- @shouldFailWith ErrorParsingModule
+module Main where
+
+test =
+  { "bad"
+  }
diff --git a/tests/purs/failing/3701.out b/tests/purs/failing/3701.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/3701.out
@@ -0,0 +1,64 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/3701.purs:39:8 - 39:34 (line 39, column 8 - line 39, column 34)
+
+  Could not match type
+  [33m         [0m
+  [33m  ( ... )[0m
+  [33m         [0m
+  with type
+  [33m                    [0m
+  [33m  ( thing1 :: String[0m
+  [33m  ...               [0m
+  [33m  )                 [0m
+  [33m                    [0m
+
+while solving type class constraint
+[33m                                 [0m
+[33m  Prim.Row.Nub ( thing1 :: String[0m
+[33m               , thing1 :: String[0m
+[33m               , thing2 :: Int   [0m
+[33m               )                 [0m
+[33m               ( thing1 :: String[0m
+[33m               , thing1 :: String[0m
+[33m               , thing2 :: Int   [0m
+[33m               )                 [0m
+[33m                                 [0m
+while applying a function [33mfooMerge[0m
+  of type [33mUnion @Type t0               [0m
+          [33m  ( thing1 :: String         [0m
+          [33m  , thing2 :: Int            [0m
+          [33m  )                          [0m
+          [33m  ( thing1 :: String         [0m
+          [33m  , thing2 :: Int            [0m
+          [33m  | t0                       [0m
+          [33m  )                          [0m
+          [33m => Nub @Type                [0m
+          [33m      ( thing1 :: String     [0m
+          [33m      , thing2 :: Int        [0m
+          [33m      | t0                   [0m
+          [33m      )                      [0m
+          [33m      ( thing1 :: String     [0m
+          [33m      , thing2 :: Int        [0m
+          [33m      | t0                   [0m
+          [33m      )                      [0m
+          [33m     => Record t0            [0m
+          [33m        -> { thing1 :: String[0m
+          [33m           , thing2 :: Int   [0m
+          [33m           | t0              [0m
+          [33m           }                 [0m
+  to argument [33m{ thing1: "foo"[0m
+              [33m}              [0m
+while checking that expression [33mfooMerge { thing1: "foo"[0m
+                               [33m         }              [0m
+  has type [33m{ thing1 :: String[0m
+           [33m, thing1 :: String[0m
+           [33m, thing2 :: Int   [0m
+           [33m}                 [0m
+in value declaration [33mfoo2[0m
+
+where [33mt0[0m is an unknown type
+
+See https://github.com/purescript/documentation/blob/master/errors/TypesDoNotUnify.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/3701.purs b/tests/purs/failing/3701.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/3701.purs
@@ -0,0 +1,39 @@
+-- @shouldFailWith TypesDoNotUnify
+module Main where
+
+import Prim.Row as Row
+
+merge
+  :: forall r1 r2 r3 r4
+   . Row.Union r1 r2 r3
+  => Row.Nub r3 r4
+  => Record r1
+  -> Record r2
+  -> Record r4
+merge r = merge r
+
+
+type FooRow r =
+  ( thing1 :: String
+  , thing2 :: Int
+  | r
+  )
+
+type AddedRow =
+  ( thing3 :: String )
+
+type AddedRow2 =
+  ( thing1 :: String )
+
+fooMerge :: forall addedRow.
+  Row.Union addedRow (FooRow ()) (FooRow addedRow) =>
+  Row.Nub (FooRow addedRow) (FooRow addedRow) =>
+  Record addedRow ->
+  Record (FooRow addedRow)
+fooMerge addedRow = merge addedRow {thing1: "foo", thing2: 1}
+
+foo1 :: Record (FooRow (AddedRow))
+foo1 = fooMerge { thing3: "foo" }
+
+foo2 :: Record (FooRow (AddedRow2))
+foo2 = fooMerge { thing1: "foo" }
diff --git a/tests/purs/failing/3765-kinds.out b/tests/purs/failing/3765-kinds.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/3765-kinds.out
@@ -0,0 +1,29 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/3765-kinds.purs:7:28 - 7:29 (line 7, column 28 - line 7, column 29)
+
+  Could not match kind
+  [33m            [0m
+  [33m  ( a :: Int[0m
+  [33m  | t11     [0m
+  [33m  )         [0m
+  [33m            [0m
+  with kind
+  [33m            [0m
+  [33m  ( b :: Int[0m
+  [33m  | t11     [0m
+  [33m  )         [0m
+  [33m            [0m
+
+while checking that type [33mx[0m
+  has kind [33m{ b :: Int[0m
+           [33m| t0      [0m
+           [33m}         [0m
+while inferring the kind of [33mTricky x x[0m
+in type synonym [33mMkTricky[0m
+
+where [33mt0[0m is an unknown type
+
+See https://github.com/purescript/documentation/blob/master/errors/KindsDoNotUnify.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/3765-kinds.purs b/tests/purs/failing/3765-kinds.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/3765-kinds.purs
@@ -0,0 +1,7 @@
+-- @shouldFailWith KindsDoNotUnify
+module Main where
+
+data Tricky :: forall r. {a :: Int | r} -> {b :: Int | r} -> Type
+data Tricky x y = Tricky
+
+type MkTricky x = Tricky x x
diff --git a/tests/purs/failing/3765.out b/tests/purs/failing/3765.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/3765.out
@@ -0,0 +1,35 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/3765.purs:6:23 - 6:24 (line 6, column 23 - line 6, column 24)
+
+  Could not match type
+  [33m            [0m
+  [33m  ( b :: Int[0m
+  [33m  ...       [0m
+  [33m  | t0      [0m
+  [33m  )         [0m
+  [33m            [0m
+  with type
+  [33m            [0m
+  [33m  ( a :: Int[0m
+  [33m  ...       [0m
+  [33m  | t0      [0m
+  [33m  )         [0m
+  [33m            [0m
+
+while trying to match type [33m{ b :: Int[0m
+                           [33m| t0      [0m
+                           [33m}         [0m
+  with type [33mt1[0m
+while checking that expression [33mx[0m
+  has type [33m{ b :: Int[0m
+           [33m| t0      [0m
+           [33m}         [0m
+in value declaration [33mmkTricky[0m
+
+where [33mt1[0m is an unknown type
+      [33mt0[0m is an unknown type
+
+See https://github.com/purescript/documentation/blob/master/errors/TypesDoNotUnify.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/3765.purs b/tests/purs/failing/3765.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/3765.purs
@@ -0,0 +1,6 @@
+-- @shouldFailWith TypesDoNotUnify
+module Main where
+
+data Tricky r = Tricky {a :: Int | r} {b :: Int | r}
+
+mkTricky x = Tricky x x
diff --git a/tests/purs/failing/3891.out b/tests/purs/failing/3891.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/3891.out
@@ -0,0 +1,24 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/3891.purs:4:8 - 4:15 (line 4, column 8 - line 4, column 15)
+
+  Could not match type
+  [33m        [0m
+  [33m  String[0m
+  [33m        [0m
+  with type
+  [33m              [0m
+  [33m  String -> t0[0m
+  [33m              [0m
+
+while applying a function [33m"("[0m
+  of type [33mString[0m
+  to argument [33m")"[0m
+while inferring the type of [33m"(" ")"[0m
+in value declaration [33moops[0m
+
+where [33mt0[0m is an unknown type
+
+See https://github.com/purescript/documentation/blob/master/errors/TypesDoNotUnify.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/3891.purs b/tests/purs/failing/3891.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/3891.purs
@@ -0,0 +1,4 @@
+-- @shouldFailWith TypesDoNotUnify
+module Main where
+
+oops = "(" ")"
diff --git a/tests/purs/failing/4019-1.out b/tests/purs/failing/4019-1.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/4019-1.out
@@ -0,0 +1,27 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/4019-1.purs:26:21 - 26:24 (line 26, column 21 - line 26, column 24)
+
+  Could not match kind
+  [33m    [0m
+  [33m  K1[0m
+  [33m    [0m
+  with kind
+  [33m    [0m
+  [33m  K2[0m
+  [33m    [0m
+
+while trying to match type [33mIndexed @Type @K1 @K2 Array[0m
+  with type [33mt0[0m
+while checking that expression [33mfoo[0m
+  has type [33mt0 t1 t2 t3[0m
+in value declaration [33mbar[0m
+
+where [33mt0[0m is an unknown type
+      [33mt3[0m is an unknown type
+      [33mt1[0m is an unknown type
+      [33mt2[0m is an unknown type
+
+See https://github.com/purescript/documentation/blob/master/errors/KindsDoNotUnify.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/4019-1.purs b/tests/purs/failing/4019-1.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/4019-1.purs
@@ -0,0 +1,26 @@
+-- @shouldFailWith KindsDoNotUnify
+module Main where
+
+import Prelude
+
+newtype Indexed ∷ forall k1 k2 k3. (k1 → Type) → k2 → k3 → k1 → Type
+newtype Indexed m x y a = Indexed (m a)
+
+class IxFunctor ∷ ∀ ix. (ix → ix → Type → Type) → Constraint
+class IxFunctor f where
+  imap ∷ ∀ a b x y. (a → b) → f x y a → f x y b
+
+instance ixFunctorIndexed ∷ Functor m ⇒ IxFunctor (Indexed m) where
+  imap f (Indexed ma) = Indexed (map f ma)
+
+foreign import data K1 :: Type
+foreign import data K2 :: Type
+
+foreign import data D1 :: K1
+foreign import data D2 :: K2
+
+foo :: Indexed Array D1 D2 Int
+foo = Indexed [1]
+
+bar :: Indexed Array D1 D2 Int
+bar = imap identity foo
diff --git a/tests/purs/failing/4019-2.out b/tests/purs/failing/4019-2.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/4019-2.out
@@ -0,0 +1,28 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/4019-2.purs:26:22 - 26:60 (line 26, column 22 - line 26, column 60)
+
+  Could not match kind
+  [33m    [0m
+  [33m  K1[0m
+  [33m    [0m
+  with kind
+  [33m    [0m
+  [33m  K2[0m
+  [33m    [0m
+
+while trying to match type [33mIndexed @Type @K1 @K2 Array[0m
+  with type [33mt0[0m
+while checking that expression [33mIndexed [ 1[0m
+                               [33m        ]  [0m
+  has type [33mt0 t1 t2 t3[0m
+in value declaration [33mbar[0m
+
+where [33mt0[0m is an unknown type
+      [33mt3[0m is an unknown type
+      [33mt1[0m is an unknown type
+      [33mt2[0m is an unknown type
+
+See https://github.com/purescript/documentation/blob/master/errors/KindsDoNotUnify.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/4019-2.purs b/tests/purs/failing/4019-2.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/4019-2.purs
@@ -0,0 +1,26 @@
+-- @shouldFailWith KindsDoNotUnify
+module Main where
+
+import Prelude
+
+newtype Indexed ∷ forall k1 k2 k3. (k1 → Type) → k2 → k3 → k1 → Type
+newtype Indexed m x y a = Indexed (m a)
+
+class IxFunctor ∷ ∀ ix. (ix → ix → Type → Type) → Constraint
+class IxFunctor f where
+  imap ∷ ∀ a b x y. (a → b) → f x y a → f x y b
+
+instance ixFunctorIndexed ∷ Functor m ⇒ IxFunctor (Indexed m) where
+  imap f (Indexed ma) = Indexed (map f ma)
+
+foreign import data K1 :: Type
+foreign import data K2 :: Type
+
+foreign import data D1 :: K1
+foreign import data D2 :: K2
+
+foo :: Indexed Array D1 D2 Int
+foo = Indexed [1]
+
+bar :: Indexed Array D1 D2 Int
+bar = imap identity (Indexed [1] :: Indexed Array D1 D2 Int)
diff --git a/tests/purs/failing/4024-2.out b/tests/purs/failing/4024-2.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/4024-2.out
@@ -0,0 +1,27 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/4024-2.purs:10:8 - 10:13 (line 10, column 8 - line 10, column 13)
+
+  No type class instance was found for
+  [33m                 [0m
+  [33m  Main.Foo t2    [0m
+  [33m           t3    [0m
+  [33m           String[0m
+  [33m                 [0m
+  The instance head contains unknown type variables. Consider adding a type annotation.
+
+while applying a function [33mbar[0m
+  of type [33mFoo @t0 @t1 @Type t2 t3 String => Int -> String[0m
+  to argument [33m0[0m
+while checking that expression [33mbar 0[0m
+  has type [33mString[0m
+in value declaration [33mtest[0m
+
+where [33mt0[0m is an unknown type
+      [33mt1[0m is an unknown type
+      [33mt2[0m is an unknown type
+      [33mt3[0m is an unknown type
+
+See https://github.com/purescript/documentation/blob/master/errors/NoInstanceFound.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/4024-2.purs b/tests/purs/failing/4024-2.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/4024-2.purs
@@ -0,0 +1,11 @@
+-- @shouldFailWith NoInstanceFound
+module Main where
+
+class Foo a b c | a -> b c, b -> a c
+
+bar :: forall a b. Foo a b String => Int -> String
+bar _ = ""
+
+test :: String
+test = bar 0
+
diff --git a/tests/purs/failing/4024.out b/tests/purs/failing/4024.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/4024.out
@@ -0,0 +1,26 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/4024.purs:10:8 - 10:13 (line 10, column 8 - line 10, column 13)
+
+  No type class instance was found for
+  [33m                 [0m
+  [33m  Main.Foo String[0m
+  [33m           t2    [0m
+  [33m           t3    [0m
+  [33m                 [0m
+
+while applying a function [33mbar[0m
+  of type [33mFoo @Type @t0 @t1 String t2 t3 => Int -> String[0m
+  to argument [33m0[0m
+while checking that expression [33mbar 0[0m
+  has type [33mString[0m
+in value declaration [33mtest[0m
+
+where [33mt0[0m is an unknown type
+      [33mt1[0m is an unknown type
+      [33mt2[0m is an unknown type
+      [33mt3[0m is an unknown type
+
+See https://github.com/purescript/documentation/blob/master/errors/NoInstanceFound.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/4024.purs b/tests/purs/failing/4024.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/4024.purs
@@ -0,0 +1,10 @@
+-- @shouldFailWith NoInstanceFound
+module Main where
+
+class Foo a b c | a -> b c, b -> a c
+
+bar :: forall a b. Foo String a b => Int -> String
+bar _ = ""
+
+test :: String
+test = bar 0
diff --git a/tests/purs/failing/4028.out b/tests/purs/failing/4028.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/4028.out
@@ -0,0 +1,27 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/4028.purs:29:12 - 29:37 (line 29, column 12 - line 29, column 37)
+
+  No type class instance was found for
+  [33m                    [0m
+  [33m  Main.TLShow (S i2)[0m
+  [33m                    [0m
+  The following instance partially overlaps the above constraint, which means the rest of its instance chain will not be considered:
+
+    [33mMain.tlShow2[0m
+
+
+while applying a function [33mgo[0m
+  of type [33mTLShow @t0 t1 => Proxy @t0 t1 -> Int -> String[0m
+  to argument [33mProxy[0m
+while inferring the type of [33mgo Proxy[0m
+in value declaration [33mpeano[0m
+
+where [33mi2[0m is a rigid type variable
+        bound at (line 0, column 0 - line 0, column 0)
+      [33mt0[0m is an unknown type
+      [33mt1[0m is an unknown type
+
+See https://github.com/purescript/documentation/blob/master/errors/NoInstanceFound.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/4028.purs b/tests/purs/failing/4028.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/4028.purs
@@ -0,0 +1,29 @@
+-- @shouldFailWith NoInstanceFound
+module Main where
+
+import Prelude
+
+import Type.Proxy (Proxy(..))
+
+foreign import data Peano :: Type
+
+foreign import data Z :: Peano
+foreign import data S :: Peano -> Peano
+
+class TLShow :: forall k. k -> Constraint
+class TLShow i where
+  tlShow :: Proxy i -> String
+
+instance tlShow2 :: TLShow (S (S Z)) where
+  tlShow _ = "2"
+else instance tlShow0 :: TLShow Z where
+  tlShow _ = "0"
+else instance tlShowS :: TLShow x => TLShow (S x) where
+  tlShow _ = "S" <> tlShow (Proxy :: Proxy x)
+
+peano :: Int -> String
+peano = go (Proxy :: Proxy Z)
+  where
+  go :: forall i. TLShow i => Proxy i -> Int -> String
+  go p 0 = tlShow p
+  go _ n = go (Proxy :: Proxy (S i)) (n - 1)
diff --git a/tests/purs/failing/4158.out b/tests/purs/failing/4158.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/4158.out
@@ -0,0 +1,34 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/4158.purs:9:10 - 9:11 (line 9, column 10 - line 9, column 11)
+
+  Could not match type
+  [33m    [0m
+  [33m  a1[0m
+  [33m    [0m
+  with type
+  [33m    [0m
+  [33m  b0[0m
+  [33m    [0m
+
+while trying to match type [33m{ foo :: Int[0m
+                           [33m| a1        [0m
+                           [33m}           [0m
+  with type [33m{ foo :: Int[0m
+            [33m| b0        [0m
+            [33m}           [0m
+while checking that expression [33mr[0m
+  has type [33mMaybe         [0m
+           [33m  { foo :: Int[0m
+           [33m  | b0        [0m
+           [33m  }           [0m
+in value declaration [33mevil[0m
+
+where [33ma1[0m is a rigid type variable
+        bound at (line 0, column 0 - line 0, column 0)
+      [33mb0[0m is a rigid type variable
+        bound at (line 0, column 0 - line 0, column 0)
+
+See https://github.com/purescript/documentation/blob/master/errors/TypesDoNotUnify.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/4158.purs b/tests/purs/failing/4158.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/4158.purs
@@ -0,0 +1,9 @@
+-- @shouldFailWith TypesDoNotUnify
+module Main where
+
+import Prelude
+
+data Maybe a = Just a | Nothing
+
+evil :: forall a b. Maybe (Record (foo :: Int | a)) -> Maybe (Record (foo :: Int | b))
+evil r = r
diff --git a/tests/purs/failing/438.out b/tests/purs/failing/438.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/438.out
@@ -0,0 +1,25 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/438.purs:15:11 - 15:25 (line 15, column 11 - line 15, column 25)
+
+  Type class instance for
+  [33m                                [0m
+  [33m  Data.Eq.Eq (Array (Fix Array))[0m
+  [33m                                [0m
+  is possibly infinite.
+
+while solving type class constraint
+[33m                        [0m
+[33m  Data.Eq.Eq (Fix Array)[0m
+[33m                        [0m
+while applying a function [33meq[0m
+  of type [33mEq t0 => t0 -> t0 -> Boolean[0m
+  to argument [33mIn [][0m
+while inferring the type of [33meq (In [])[0m
+in value declaration [33mexample[0m
+
+where [33mt0[0m is an unknown type
+
+See https://github.com/purescript/documentation/blob/master/errors/PossiblyInfiniteInstance.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/4382.out b/tests/purs/failing/4382.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/4382.out
@@ -0,0 +1,55 @@
+Error 1 of 5:
+
+  in module [33mMain[0m
+  at tests/purs/failing/4382.purs:10:7 - 10:14 (line 10, column 7 - line 10, column 14)
+
+    Unknown type class [33mRinku[0m
+
+
+  See https://github.com/purescript/documentation/blob/master/errors/UnknownName.md for more information,
+  or to contribute content related to this error.
+
+Error 2 of 5:
+
+  in module [33mMain[0m
+  at tests/purs/failing/4382.purs:13:10 - 13:17 (line 13, column 10 - line 13, column 17)
+
+    Unknown type class [33mRinku[0m
+
+
+  See https://github.com/purescript/documentation/blob/master/errors/UnknownName.md for more information,
+  or to contribute content related to this error.
+
+Error 3 of 5:
+
+  in module [33mMain[0m
+  at tests/purs/failing/4382.purs:16:10 - 16:17 (line 16, column 10 - line 16, column 17)
+
+    Unknown type class [33mRinku[0m
+
+
+  See https://github.com/purescript/documentation/blob/master/errors/UnknownName.md for more information,
+  or to contribute content related to this error.
+
+Error 4 of 5:
+
+  in module [33mMain[0m
+  at tests/purs/failing/4382.purs:18:17 - 18:28 (line 18, column 17 - line 18, column 28)
+
+    Unknown type class [33mRinku[0m
+
+
+  See https://github.com/purescript/documentation/blob/master/errors/UnknownName.md for more information,
+  or to contribute content related to this error.
+
+Error 5 of 5:
+
+  in module [33mMain[0m
+  at tests/purs/failing/4382.purs:20:25 - 20:36 (line 20, column 25 - line 20, column 36)
+
+    Unknown type class [33mRinku[0m
+
+
+  See https://github.com/purescript/documentation/blob/master/errors/UnknownName.md for more information,
+  or to contribute content related to this error.
+
diff --git a/tests/purs/failing/4382.purs b/tests/purs/failing/4382.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/4382.purs
@@ -0,0 +1,20 @@
+-- @shouldFailWith UnknownName
+-- @shouldFailWith UnknownName
+-- @shouldFailWith UnknownName
+-- @shouldFailWith UnknownName
+-- @shouldFailWith UnknownName
+module Main where
+
+newtype T a = T a
+
+class Rinku a <= Maho a where
+  tPose :: a -> a
+
+instance Rinku a => Maho a where
+  tPose = \a -> a
+
+instance Rinku a
+
+derive instance Rinku (T a)
+
+derive newtype instance Rinku (T a)
diff --git a/tests/purs/failing/4408Acyclic.out b/tests/purs/failing/4408Acyclic.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/4408Acyclic.out
@@ -0,0 +1,22 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/4408Acyclic.purs:16:9 - 16:14 (line 16, column 9 - line 16, column 14)
+
+  Hole '[33mhelp[0m' has the inferred type
+  [33m          [0m
+  [33m  Int -> K[0m
+  [33m          [0m
+  You could substitute the hole with one of these values:
+  [33m                                                                    [0m
+  [33m  Main.aRinku                 :: Int -> K                           [0m
+  [33m  Main.cMuni                  :: Int -> K                           [0m
+  [33m  Safe.Coerce.coerce          :: forall a b. Coercible a b => a -> b[0m
+  [33m  Unsafe.Coerce.unsafeCoerce  :: forall a b. a -> b                 [0m
+  [33m  Main.K                      :: Int -> K                           [0m
+  [33m                                                                    [0m
+
+in value declaration [33mbMaho[0m
+
+See https://github.com/purescript/documentation/blob/master/errors/HoleInferredType.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/4408Acyclic.purs b/tests/purs/failing/4408Acyclic.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/4408Acyclic.purs
@@ -0,0 +1,22 @@
+-- @shouldFailWith HoleInferredType
+module Main where
+
+-- Expected:
+--
+-- aRinku+cMuni -> bMaho -> dRei
+--
+-- Both aRinku and cMuni is suggested
+
+newtype K = K Int
+
+aRinku :: Int -> K
+aRinku = K
+
+bMaho :: K
+bMaho = ?help 0
+
+cMuni :: Int -> K
+cMuni = K
+
+dRei :: Int -> K
+dRei _ = bMaho
diff --git a/tests/purs/failing/4408AcyclicRecursive.out b/tests/purs/failing/4408AcyclicRecursive.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/4408AcyclicRecursive.out
@@ -0,0 +1,23 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/4408AcyclicRecursive.purs:17:11 - 17:16 (line 17, column 11 - line 17, column 16)
+
+  Hole '[33mhelp[0m' has the inferred type
+  [33m          [0m
+  [33m  Int -> K[0m
+  [33m          [0m
+  You could substitute the hole with one of these values:
+  [33m                                                                    [0m
+  [33m  Main.aRinku                 :: Int -> K                           [0m
+  [33m  Main.bMaho                  :: Int -> K                           [0m
+  [33m  Main.cMuni                  :: Int -> K                           [0m
+  [33m  Safe.Coerce.coerce          :: forall a b. Coercible a b => a -> b[0m
+  [33m  Unsafe.Coerce.unsafeCoerce  :: forall a b. a -> b                 [0m
+  [33m  Main.K                      :: Int -> K                           [0m
+  [33m                                                                    [0m
+
+in value declaration [33mbMaho[0m
+
+See https://github.com/purescript/documentation/blob/master/errors/HoleInferredType.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/4408AcyclicRecursive.purs b/tests/purs/failing/4408AcyclicRecursive.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/4408AcyclicRecursive.purs
@@ -0,0 +1,23 @@
+-- @shouldFailWith HoleInferredType
+module Main where
+
+-- Expected:
+--
+-- aRinku+cMuni -> bMaho -> dRei
+--
+-- aRinku, cMuni, and bMaho are all suggested.
+-- bMaho can be aware of itself during checking.
+
+newtype K = K Int
+
+aRinku :: Int -> K
+aRinku = K
+
+bMaho :: Int -> K
+bMaho _ = ?help 0
+
+cMuni :: Int -> K
+cMuni = K
+
+dRei :: Int -> K
+dRei _ = bMaho
diff --git a/tests/purs/failing/4408Cyclic.out b/tests/purs/failing/4408Cyclic.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/4408Cyclic.out
@@ -0,0 +1,31 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/4408Cyclic.purs:23:29 - 23:34 (line 23, column 29 - line 23, column 34)
+
+  Hole '[33mhelp[0m' has the inferred type
+  [33m          [0m
+  [33m  Int -> K[0m
+  [33m          [0m
+  You could substitute the hole with one of these values:
+  [33m                                                                    [0m
+  [33m  Main.aSaki                  :: Int -> K                           [0m
+  [33m  Main.bNoa                   :: forall a. a -> K                   [0m
+  [33m  Main.cTowa                  :: forall a. a -> K                   [0m
+  [33m  Main.eSaki                  :: Int -> K                           [0m
+  [33m  Safe.Coerce.coerce          :: forall a b. Coercible a b => a -> b[0m
+  [33m  Unsafe.Coerce.unsafeCoerce  :: forall a b. a -> b                 [0m
+  [33m  Main.K                      :: Int -> K                           [0m
+  [33m                                                                    [0m
+  in the following context:
+
+    a :: [33ma0[0m
+
+
+in binding group cTowa, bNoa
+
+where [33ma0[0m is a rigid type variable
+        bound at (line 0, column 0 - line 0, column 0)
+
+See https://github.com/purescript/documentation/blob/master/errors/HoleInferredType.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/4408Cyclic.purs b/tests/purs/failing/4408Cyclic.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/4408Cyclic.purs
@@ -0,0 +1,29 @@
+-- @shouldFailWith HoleInferredType
+module Main where
+
+-- Expected:
+--
+-- aSaki/eSaki -> bNoa~cTowa -> dIbuki
+--
+-- Only aSaki/eSaki, bNoa, and cTowa is suggested.
+--
+-- The mutual recursion between bNoa and cTowa
+-- ensures they exist "at the same time". dIbuki
+-- depends on cTowa, so it's checked much later.
+
+newtype K = K Int
+
+aSaki :: Int -> K
+aSaki = K
+
+bNoa :: forall a. a -> K
+bNoa a = let _ = cTowa a in K 0
+
+cTowa :: forall a. a -> K
+cTowa a = let _ = bNoa a in ?help 0
+
+dIbuki :: Int -> K
+dIbuki = bNoa
+
+eSaki :: Int -> K
+eSaki = K
diff --git a/tests/purs/failing/4408CyclicTail.out b/tests/purs/failing/4408CyclicTail.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/4408CyclicTail.out
@@ -0,0 +1,26 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/4408CyclicTail.purs:22:11 - 22:16 (line 22, column 11 - line 22, column 16)
+
+  Hole '[33mhelp[0m' has the inferred type
+  [33m          [0m
+  [33m  Int -> K[0m
+  [33m          [0m
+  You could substitute the hole with one of these values:
+  [33m                                                                    [0m
+  [33m  Main.aKyoko                 :: Int -> K                           [0m
+  [33m  Main.bShinobu               :: forall a. a -> K                   [0m
+  [33m  Main.cEsora                 :: forall a. a -> K                   [0m
+  [33m  Main.dYuka                  :: Int -> K                           [0m
+  [33m  Main.eShinobu               :: forall a. a -> K                   [0m
+  [33m  Main.fEsora                 :: forall a. a -> K                   [0m
+  [33m  Safe.Coerce.coerce          :: forall a b. Coercible a b => a -> b[0m
+  [33m  Unsafe.Coerce.unsafeCoerce  :: forall a b. a -> b                 [0m
+  [33m  Main.K                      :: Int -> K                           [0m
+  [33m                                                                    [0m
+
+in value declaration [33mdYuka[0m
+
+See https://github.com/purescript/documentation/blob/master/errors/HoleInferredType.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/4408CyclicTail.purs b/tests/purs/failing/4408CyclicTail.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/4408CyclicTail.purs
@@ -0,0 +1,28 @@
+-- @shouldFailWith HoleInferredType
+module Main where
+
+-- Expected:
+--
+-- aKyoko -> bShinobu~cEsora/eShinobu~fEsora -> dYuka
+--
+-- All are suggested, as dYuka is also recursive.
+
+newtype K = K Int
+
+aKyoko :: Int -> K
+aKyoko = K
+
+bShinobu :: forall a. a -> K
+bShinobu a = let _ = cEsora a in K 0
+
+cEsora :: forall a. a -> K
+cEsora a = let _ = bShinobu a in K 0
+
+dYuka :: Int -> K
+dYuka _ = ?help 0
+
+eShinobu :: forall a. a -> K
+eShinobu a = let _ = fEsora a in K 0
+
+fEsora :: forall a. a -> K
+fEsora a = let _ = eShinobu a in K 0
diff --git a/tests/purs/failing/4408CyclicTriple.out b/tests/purs/failing/4408CyclicTriple.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/4408CyclicTriple.out
@@ -0,0 +1,32 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/4408CyclicTriple.purs:22:33 - 22:38 (line 22, column 33 - line 22, column 38)
+
+  Hole '[33mhelp[0m' has the inferred type
+  [33m          [0m
+  [33m  Int -> K[0m
+  [33m          [0m
+  You could substitute the hole with one of these values:
+  [33m                                                                    [0m
+  [33m  Main.aHaruna                :: Int -> K                           [0m
+  [33m  Main.bMiyu                  :: forall a. a -> K                   [0m
+  [33m  Main.cKurumi                :: forall a. a -> K                   [0m
+  [33m  Main.dMiiko                 :: forall a. a -> K                   [0m
+  [33m  Main.eHaruna                :: Int -> K                           [0m
+  [33m  Safe.Coerce.coerce          :: forall a b. Coercible a b => a -> b[0m
+  [33m  Unsafe.Coerce.unsafeCoerce  :: forall a b. a -> b                 [0m
+  [33m  Main.K                      :: Int -> K                           [0m
+  [33m                                                                    [0m
+  in the following context:
+
+    a :: [33ma0[0m
+
+
+in binding group dMiiko, cKurumi, bMiyu
+
+where [33ma0[0m is a rigid type variable
+        bound at (line 0, column 0 - line 0, column 0)
+
+See https://github.com/purescript/documentation/blob/master/errors/HoleInferredType.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/4408CyclicTriple.purs b/tests/purs/failing/4408CyclicTriple.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/4408CyclicTriple.purs
@@ -0,0 +1,25 @@
+-- @shouldFailWith HoleInferredType
+module Main where
+
+-- Expected:
+--
+-- aHaruna/eHaruna -> bMiyu~cKurumi~dMiiko
+--
+-- All are suggested.
+
+newtype K = K Int
+
+aHaruna :: Int -> K
+aHaruna = K
+
+bMiyu :: forall a. a -> K
+bMiyu a = let _ = dMiiko a in K 0
+
+cKurumi :: forall a. a -> K
+cKurumi a = let _ = bMiyu a in K 0
+
+dMiiko :: forall a. a -> K
+dMiiko a = let _ = cKurumi a in ?help 0
+
+eHaruna :: Int -> K
+eHaruna = K
diff --git a/tests/purs/failing/4466.out b/tests/purs/failing/4466.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/4466.out
@@ -0,0 +1,24 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/4466.purs:15:44 - 15:67 (line 15, column 44 - line 15, column 67)
+
+  A case expression could not be determined to cover all inputs.
+  The following additional cases are required to cover all inputs:
+
+    [33m{ sound: Quack }[0m
+    [33m{ sound: Bark }[0m
+
+  Alternatively, add a Partial constraint to the type of the enclosing value.
+
+while checking that type [33mPartial => t0[0m
+  is at least as general as type [33mBoolean[0m
+while checking that expression [33mcase $0 of              [0m
+                               [33m  { sound: Moo } -> true[0m
+  has type [33mBoolean[0m
+in value declaration [33manimalFunc[0m
+
+where [33mt0[0m is an unknown type
+
+See https://github.com/purescript/documentation/blob/master/errors/NoInstanceFound.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/4466.purs b/tests/purs/failing/4466.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/4466.purs
@@ -0,0 +1,16 @@
+-- @shouldFailWith NoInstanceFound
+module Main where
+
+import Prelude
+
+import Data.Array as Array
+import Data.Maybe (Maybe(..))
+
+data Sound = Moo | Quack | Bark
+
+type Animal = { sound :: Sound }
+
+animalFunc :: Array Animal -> Unit
+animalFunc animals
+  | Just { sound } <- animals # Array.find \{ sound: Moo } -> true = unit
+  | otherwise = unit
diff --git a/tests/purs/failing/4483.out b/tests/purs/failing/4483.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/4483.out
@@ -0,0 +1,14 @@
+Error found:
+at tests/purs/failing/4483.purs:10:1 - 11:24 (line 10, column 1 - line 11, column 24)
+
+  The following type class members have not been implemented:
+  [33mbar :: Int -> Int[0m
+
+in type class instance
+[33m              [0m
+[33m  Main.Foo Int[0m
+[33m              [0m
+
+See https://github.com/purescript/documentation/blob/master/errors/MissingClassMember.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/4483.purs b/tests/purs/failing/4483.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/4483.purs
@@ -0,0 +1,13 @@
+-- @shouldFailWith MissingClassMember
+module Main where
+
+import Prim.TypeError
+
+class Foo t where
+  foo :: t -> String
+  bar :: Int -> t
+
+instance fooInt :: Fail (Text "can't use this") => Foo Int where
+  foo _ = "unreachable"
+  -- bar is missing; you can get away with an empty instance here but not a
+  -- half-implemented one
diff --git a/tests/purs/failing/4522.out b/tests/purs/failing/4522.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/4522.out
@@ -0,0 +1,10 @@
+Error found:
+at tests/purs/failing/4522.purs:4:11 - 4:12 (line 4, column 11 - line 4, column 12)
+
+  Unable to parse module:
+  Unexpected token '@'
+
+
+See https://github.com/purescript/documentation/blob/master/errors/ErrorParsingModule.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/4522.purs b/tests/purs/failing/4522.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/4522.purs
@@ -0,0 +1,4 @@
+-- @shouldFailWith ErrorParsingModule
+module Main where
+
+class Foo @a
diff --git a/tests/purs/failing/881.out b/tests/purs/failing/881.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/881.out
@@ -0,0 +1,14 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/881.purs:10:1 - 13:12 (line 10, column 1 - line 13, column 12)
+
+  Multiple value declarations exist for [33mfoo[0m.
+
+in type class instance
+[33m            [0m
+[33m  Main.Foo X[0m
+[33m            [0m
+
+See https://github.com/purescript/documentation/blob/master/errors/DuplicateValueDeclaration.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/AnonArgument1.out b/tests/purs/failing/AnonArgument1.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/AnonArgument1.out
@@ -0,0 +1,9 @@
+Error found:
+at tests/purs/failing/AnonArgument1.purs:5:8 - 5:9 (line 5, column 8 - line 5, column 9)
+
+  An anonymous function argument appears in an invalid context.
+
+
+See https://github.com/purescript/documentation/blob/master/errors/IncorrectAnonymousArgument.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/AnonArgument2.out b/tests/purs/failing/AnonArgument2.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/AnonArgument2.out
@@ -0,0 +1,9 @@
+Error found:
+at tests/purs/failing/AnonArgument2.purs:7:16 - 7:17 (line 7, column 16 - line 7, column 17)
+
+  An anonymous function argument appears in an invalid context.
+
+
+See https://github.com/purescript/documentation/blob/master/errors/IncorrectAnonymousArgument.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/AnonArgument3.out b/tests/purs/failing/AnonArgument3.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/AnonArgument3.out
@@ -0,0 +1,9 @@
+Error found:
+at tests/purs/failing/AnonArgument3.purs:7:12 - 7:13 (line 7, column 12 - line 7, column 13)
+
+  An anonymous function argument appears in an invalid context.
+
+
+See https://github.com/purescript/documentation/blob/master/errors/IncorrectAnonymousArgument.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/AnonArgument3.purs b/tests/purs/failing/AnonArgument3.purs
--- a/tests/purs/failing/AnonArgument3.purs
+++ b/tests/purs/failing/AnonArgument3.purs
@@ -1,5 +1,7 @@
 -- @shouldFailWith IncorrectAnonymousArgument
 module Main where
 
+import Prelude
+
 test :: Int -> Int
 test = 1 + _
diff --git a/tests/purs/failing/ApostropheModuleName.out b/tests/purs/failing/ApostropheModuleName.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/ApostropheModuleName.out
@@ -0,0 +1,10 @@
+Error found:
+at tests/purs/failing/ApostropheModuleName.purs:3:8 - 3:18 (line 3, column 8 - line 3, column 18)
+
+  Unable to parse module:
+  Invalid module name; underscores and primes are not allowed in module names
+
+
+See https://github.com/purescript/documentation/blob/master/errors/ErrorParsingModule.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/ArgLengthMismatch.out b/tests/purs/failing/ArgLengthMismatch.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/ArgLengthMismatch.out
@@ -0,0 +1,10 @@
+Error found:
+in module [33mArgLengthMismatch[0m
+at tests/purs/failing/ArgLengthMismatch.purs:6:1 - 6:13 (line 6, column 1 - line 6, column 13)
+
+  Argument list lengths differ in declaration [33mf[0m
+
+
+See https://github.com/purescript/documentation/blob/master/errors/ArgListLengthsDiffer.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/ArrayType.out b/tests/purs/failing/ArrayType.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/ArrayType.out
@@ -0,0 +1,22 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/ArrayType.purs:10:7 - 10:8 (line 10, column 7 - line 10, column 8)
+
+  Could not match type
+  [33m     [0m
+  [33m  Int[0m
+  [33m     [0m
+  with type
+  [33m        [0m
+  [33m  Number[0m
+  [33m        [0m
+
+while checking that type [33mInt[0m
+  is at least as general as type [33mNumber[0m
+while checking that expression [33mx[0m
+  has type [33mNumber[0m
+in value declaration [33mfoo[0m
+
+See https://github.com/purescript/documentation/blob/master/errors/TypesDoNotUnify.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/Arrays.out b/tests/purs/failing/Arrays.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/Arrays.out
@@ -0,0 +1,24 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/Arrays.purs:6:26 - 6:27 (line 6, column 26 - line 6, column 27)
+
+  Could not match type
+  [33m     [0m
+  [33m  Int[0m
+  [33m     [0m
+  with type
+  [33m          [0m
+  [33m  Array t0[0m
+  [33m          [0m
+
+while checking that type [33mInt[0m
+  is at least as general as type [33mArray t0[0m
+while checking that expression [33m0[0m
+  has type [33mArray t0[0m
+in value declaration [33mtest[0m
+
+where [33mt0[0m is an unknown type
+
+See https://github.com/purescript/documentation/blob/master/errors/TypesDoNotUnify.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/AtPatternPrecedence.out b/tests/purs/failing/AtPatternPrecedence.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/AtPatternPrecedence.out
@@ -0,0 +1,10 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/AtPatternPrecedence.purs:11:1 - 11:15 (line 11, column 1 - line 11, column 15)
+
+  Argument list lengths differ in declaration [33moops[0m
+
+
+See https://github.com/purescript/documentation/blob/master/errors/ArgListLengthsDiffer.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/BifunctorInstance1.out b/tests/purs/failing/BifunctorInstance1.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/BifunctorInstance1.out
@@ -0,0 +1,16 @@
+Error found:
+in module [33mBifunctorInstance1[0m
+at tests/purs/failing/BifunctorInstance1.purs:10:1 - 10:31 (line 10, column 1 - line 10, column 31)
+
+  One or more type variables are in positions that prevent [33mBifunctor[0m from being derived.
+  To derive this class, make sure that these variables are only used as the final arguments to type constructors, that their variance matches the variance of [33mBifunctor[0m, and that those type constructors themselves have instances of [33mData.Functor.Functor[0m, [33mData.Bifunctor.Bifunctor[0m, [33mData.Functor.Contravariant.Contravariant[0m, or [33mData.Profunctor.Profunctor[0m.
+
+  tests/purs/failing/BifunctorInstance1.purs:
+  [90m    8[0m [33m[0m
+  [90m    9[0m [33mdata Test a b = Test (Tuple (Predicate [7ma[27m) (Predicate [7mb[27m)) (Tuple a b)[0m
+  [90m   10[0m [33mderive instance Bifunctor Test[0m
+
+
+See https://github.com/purescript/documentation/blob/master/errors/CannotDeriveInvalidConstructorArg.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/BifunctorInstance1.purs b/tests/purs/failing/BifunctorInstance1.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/BifunctorInstance1.purs
@@ -0,0 +1,10 @@
+-- @shouldFailWith CannotDeriveInvalidConstructorArg
+module BifunctorInstance1 where
+
+import Prelude
+import Data.Bifunctor (class Bifunctor)
+import Data.Predicate (Predicate)
+import Data.Tuple (Tuple)
+
+data Test a b = Test (Tuple (Predicate a) (Predicate b)) (Tuple a b)
+derive instance Bifunctor Test
diff --git a/tests/purs/failing/BindInDo-2.out b/tests/purs/failing/BindInDo-2.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/BindInDo-2.out
@@ -0,0 +1,9 @@
+Error found:
+at tests/purs/failing/BindInDo-2.purs:7:7 - 7:16 (line 7, column 7 - line 7, column 16)
+
+  The name [33mbind[0m cannot be brought into scope in a do notation block, since do notation uses the same name.
+
+
+See https://github.com/purescript/documentation/blob/master/errors/CannotUseBindWithDo.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/BindInDo.out b/tests/purs/failing/BindInDo.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/BindInDo.out
@@ -0,0 +1,9 @@
+Error found:
+at tests/purs/failing/BindInDo.purs:7:3 - 7:18 (line 7, column 3 - line 7, column 18)
+
+  The name [33mbind[0m cannot be brought into scope in a do notation block, since do notation uses the same name.
+
+
+See https://github.com/purescript/documentation/blob/master/errors/CannotUseBindWithDo.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/CannotDeriveNewtypeForData.out b/tests/purs/failing/CannotDeriveNewtypeForData.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/CannotDeriveNewtypeForData.out
@@ -0,0 +1,9 @@
+Error found:
+at tests/purs/failing/CannotDeriveNewtypeForData.purs:6:1 - 6:24 (line 6, column 1 - line 6, column 24)
+
+  Cannot derive an instance of the [33mNewtype[0m class for non-newtype [33mTest[0m.
+
+
+See https://github.com/purescript/documentation/blob/master/errors/CannotDeriveNewtypeForData.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/CaseBinderLengthsDiffer.out b/tests/purs/failing/CaseBinderLengthsDiffer.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/CaseBinderLengthsDiffer.out
@@ -0,0 +1,14 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/CaseBinderLengthsDiffer.purs:5:3 - 5:10 (line 5, column 3 - line 5, column 10)
+
+  Binder list length differs in case alternative:
+
+    1, 2, 3
+
+  Expecting 2 binders.
+
+
+See https://github.com/purescript/documentation/blob/master/errors/CaseBinderLengthDiffers.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/CaseDoesNotMatchAllConstructorArgs.out b/tests/purs/failing/CaseDoesNotMatchAllConstructorArgs.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/CaseDoesNotMatchAllConstructorArgs.out
@@ -0,0 +1,16 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/CaseDoesNotMatchAllConstructorArgs.purs:11:9 - 11:17 (line 11, column 9 - line 11, column 17)
+
+  Data constructor [33mMain.Person[0m was given 1 arguments in a case expression, but expected 2 arguments.
+  This problem can be fixed by giving [33mMain.Person[0m 2 arguments.
+
+while inferring the type of [33m\p ->                                   [0m
+                            [33m  case p of                             [0m
+                            [33m    (Two (Person n) (Person n2 a2)) -> n[0m
+                            [33m    _ -> "Unknown"                      [0m
+in value declaration [33mgetName[0m
+
+See https://github.com/purescript/documentation/blob/master/errors/IncorrectConstructorArity.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/ClassHeadNoVTA1.out b/tests/purs/failing/ClassHeadNoVTA1.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/ClassHeadNoVTA1.out
@@ -0,0 +1,25 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/ClassHeadNoVTA1.purs:8:10 - 8:19 (line 8, column 10 - line 8, column 19)
+
+  No type class instance was found for
+  [33m                [0m
+  [33m  Main.Single t0[0m
+  [33m                [0m
+  The instance head contains unknown type variables.
+
+  Note: The following type class members found in the expression require visible type applications to be unambiguous (e.g. [33mtyClassMember @Int[0m).
+    [33mMain.useSingle[0m
+      tyNotAppearInBody
+
+while checking that type [33mforall (t12 :: Type) (@tyNotAppearInBody :: t12). Single @t12 tyNotAppearInBody => Int[0m
+  is at least as general as type [33mInt[0m
+while checking that expression [33museSingle[0m
+  has type [33mInt[0m
+in value declaration [33msingle[0m
+
+where [33mt0[0m is an unknown type
+
+See https://github.com/purescript/documentation/blob/master/errors/NoInstanceFound.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/ClassHeadNoVTA1.purs b/tests/purs/failing/ClassHeadNoVTA1.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/ClassHeadNoVTA1.purs
@@ -0,0 +1,8 @@
+-- @shouldFailWith NoInstanceFound
+module Main where
+
+class Single tyNotAppearInBody where
+  useSingle :: Int
+
+single :: Int
+single = useSingle
diff --git a/tests/purs/failing/ClassHeadNoVTA2.out b/tests/purs/failing/ClassHeadNoVTA2.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/ClassHeadNoVTA2.out
@@ -0,0 +1,27 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/ClassHeadNoVTA2.purs:10:9 - 10:17 (line 10, column 9 - line 10, column 17)
+
+  No type class instance was found for
+  [33m               [0m
+  [33m  Main.Multi t0[0m
+  [33m             t1[0m
+  [33m               [0m
+  The instance head contains unknown type variables.
+
+  Note: The following type class members found in the expression require visible type applications to be unambiguous (e.g. [33mtyClassMember @Int[0m).
+    [33mMain.useMulti[0m
+      tyNotAppearInBody, norThisOne
+
+while checking that type [33mforall (t20 :: Type) (t21 :: Type) (@tyNotAppearInBody :: t20) (@norThisOne :: t21). Multi @t20 @t21 tyNotAppearInBody norThisOne => Int[0m
+  is at least as general as type [33mInt[0m
+while checking that expression [33museMulti[0m
+  has type [33mInt[0m
+in value declaration [33mmulti[0m
+
+where [33mt0[0m is an unknown type
+      [33mt1[0m is an unknown type
+
+See https://github.com/purescript/documentation/blob/master/errors/NoInstanceFound.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/ClassHeadNoVTA2.purs b/tests/purs/failing/ClassHeadNoVTA2.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/ClassHeadNoVTA2.purs
@@ -0,0 +1,11 @@
+-- @shouldFailWith NoInstanceFound
+module Main where
+
+import Prelude
+
+class Multi tyNotAppearInBody norThisOne where
+  useMulti :: Int
+
+multi :: Int
+multi = useMulti
+
diff --git a/tests/purs/failing/ClassHeadNoVTA3.out b/tests/purs/failing/ClassHeadNoVTA3.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/ClassHeadNoVTA3.out
@@ -0,0 +1,28 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/ClassHeadNoVTA3.purs:8:16 - 8:36 (line 8, column 16 - line 8, column 36)
+
+  No type class instance was found for
+  [33m                       [0m
+  [33m  Main.MultiMissing Int[0m
+  [33m                    t2 [0m
+  [33m                       [0m
+  The instance head contains unknown type variables.
+
+  Note: The following type class members found in the expression require visible type applications to be unambiguous (e.g. [33mtyClassMember @Int[0m).
+    [33mMain.useMultiMissing[0m
+      tyNotAppearInBody, norThisOne
+
+while checking that type [33mforall (@norThisOne :: t0). MultiMissing @t1 @t0 Int norThisOne => Int[0m
+  is at least as general as type [33mInt[0m
+while checking that expression [33museMultiMissing[0m
+  has type [33mInt[0m
+in value declaration [33mmultiMissing[0m
+
+where [33mt1[0m is an unknown type
+      [33mt0[0m is an unknown type
+      [33mt2[0m is an unknown type
+
+See https://github.com/purescript/documentation/blob/master/errors/NoInstanceFound.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/ClassHeadNoVTA3.purs b/tests/purs/failing/ClassHeadNoVTA3.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/ClassHeadNoVTA3.purs
@@ -0,0 +1,9 @@
+-- @shouldFailWith NoInstanceFound
+module Main where
+
+class MultiMissing tyNotAppearInBody norThisOne where
+  useMultiMissing :: Int
+
+multiMissing :: Int
+multiMissing = useMultiMissing @Int
+
diff --git a/tests/purs/failing/ClassHeadNoVTA4.out b/tests/purs/failing/ClassHeadNoVTA4.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/ClassHeadNoVTA4.out
@@ -0,0 +1,27 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/ClassHeadNoVTA4.purs:8:11 - 8:21 (line 8, column 11 - line 8, column 21)
+
+  No type class instance was found for
+  [33m                 [0m
+  [33m  Main.MultiFd t0[0m
+  [33m               t1[0m
+  [33m                 [0m
+  The instance head contains unknown type variables.
+
+  Note: The following type class members found in the expression require visible type applications to be unambiguous (e.g. [33mtyClassMember @Int[0m).
+    [33mMain.useMultiFd[0m
+      tyNotAppearInBody
+
+while checking that type [33mforall (t20 :: Type) (t21 :: Type) (@tyNotAppearInBody :: t20) (@norThisOne :: t21). MultiFd @t20 @t21 tyNotAppearInBody norThisOne => Int[0m
+  is at least as general as type [33mInt[0m
+while checking that expression [33museMultiFd[0m
+  has type [33mInt[0m
+in value declaration [33mmultiFd[0m
+
+where [33mt0[0m is an unknown type
+      [33mt1[0m is an unknown type
+
+See https://github.com/purescript/documentation/blob/master/errors/NoInstanceFound.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/ClassHeadNoVTA4.purs b/tests/purs/failing/ClassHeadNoVTA4.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/ClassHeadNoVTA4.purs
@@ -0,0 +1,8 @@
+-- @shouldFailWith NoInstanceFound
+module Main where
+
+class MultiFd tyNotAppearInBody norThisOne | tyNotAppearInBody -> norThisOne where
+  useMultiFd :: Int
+
+multiFd :: Int
+multiFd = useMultiFd
diff --git a/tests/purs/failing/ClassHeadNoVTA5.out b/tests/purs/failing/ClassHeadNoVTA5.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/ClassHeadNoVTA5.out
@@ -0,0 +1,29 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/ClassHeadNoVTA5.purs:10:15 - 10:29 (line 10, column 15 - line 10, column 29)
+
+  No type class instance was found for
+  [33m                     [0m
+  [33m  Main.MultiFdBidi t0[0m
+  [33m                   t1[0m
+  [33m                     [0m
+  The instance head contains unknown type variables.
+
+  Note: The following type class members found in the expression require visible type applications to be unambiguous (e.g. [33mtyClassMember @Int[0m).
+    [33mMain.useMultiFdBidi[0m
+      One of the following sets of type variables:
+        tyNotAppearInBody
+        norThisOne
+
+while checking that type [33mforall (t20 :: Type) (t21 :: Type) (@tyNotAppearInBody :: t20) (@norThisOne :: t21). MultiFdBidi @t20 @t21 tyNotAppearInBody norThisOne => Int[0m
+  is at least as general as type [33mInt[0m
+while checking that expression [33museMultiFdBidi[0m
+  has type [33mInt[0m
+in value declaration [33mmultiFdBidi[0m
+
+where [33mt0[0m is an unknown type
+      [33mt1[0m is an unknown type
+
+See https://github.com/purescript/documentation/blob/master/errors/NoInstanceFound.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/ClassHeadNoVTA5.purs b/tests/purs/failing/ClassHeadNoVTA5.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/ClassHeadNoVTA5.purs
@@ -0,0 +1,10 @@
+-- @shouldFailWith NoInstanceFound
+module Main where
+
+-- Verify that args in output match order defined here:
+-- `tyNotAppearInBody` appears before `norThisOne`
+class MultiFdBidi tyNotAppearInBody norThisOne | tyNotAppearInBody -> norThisOne, norThisOne -> tyNotAppearInBody where
+  useMultiFdBidi :: Int
+
+multiFdBidi :: Int
+multiFdBidi = useMultiFdBidi
diff --git a/tests/purs/failing/ClassHeadNoVTA6a.out b/tests/purs/failing/ClassHeadNoVTA6a.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/ClassHeadNoVTA6a.out
@@ -0,0 +1,37 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/ClassHeadNoVTA6a.purs:12:15 - 12:25 (line 12, column 15 - line 12, column 25)
+
+  No type class instance was found for
+  [33m                           [0m
+  [33m  Main.MultiCoveringSets t0[0m
+  [33m                         t1[0m
+  [33m                         t2[0m
+  [33m                         t3[0m
+  [33m                         t4[0m
+  [33m                         t5[0m
+  [33m                           [0m
+  The instance head contains unknown type variables.
+
+  Note: The following type class members found in the expression require visible type applications to be unambiguous (e.g. [33mtyClassMember @Int[0m).
+    [33mMain.noneOfSets[0m
+      One of the following sets of type variables:
+        a, b
+        e, f
+
+while checking that type [33mforall (t82 :: Type) (t83 :: Type) (@a :: Type) (@b :: t82) (@c :: Type) (@d :: Type) (@e :: t83) (@f :: Type). MultiCoveringSets @t82 @t83 a b c d e f => Int[0m
+  is at least as general as type [33mInt[0m
+while checking that expression [33mnoneOfSets[0m
+  has type [33mInt[0m
+in value declaration [33mnoneOfSets'[0m
+
+where [33mt0[0m is an unknown type
+      [33mt1[0m is an unknown type
+      [33mt2[0m is an unknown type
+      [33mt3[0m is an unknown type
+      [33mt4[0m is an unknown type
+      [33mt5[0m is an unknown type
+
+See https://github.com/purescript/documentation/blob/master/errors/NoInstanceFound.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/ClassHeadNoVTA6a.purs b/tests/purs/failing/ClassHeadNoVTA6a.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/ClassHeadNoVTA6a.purs
@@ -0,0 +1,12 @@
+-- @shouldFailWith NoInstanceFound
+module Main where
+
+class MultiCoveringSets a b c d e f | a b -> c d e f, f e -> a b c d where
+  noneOfSets :: Int
+
+  partialOfABSet :: a -> { c :: c, d :: d }
+
+  partialOfFESet :: f -> { c :: c, d :: d }
+
+noneOfSets' :: Int
+noneOfSets' = noneOfSets
diff --git a/tests/purs/failing/ClassHeadNoVTA6b.out b/tests/purs/failing/ClassHeadNoVTA6b.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/ClassHeadNoVTA6b.out
@@ -0,0 +1,50 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/ClassHeadNoVTA6b.purs:16:19 - 16:33 (line 16, column 19 - line 16, column 33)
+
+  No type class instance was found for
+  [33m                           [0m
+  [33m  Main.MultiCoveringSets a0[0m
+  [33m                         t3[0m
+  [33m                         c1[0m
+  [33m                         d2[0m
+  [33m                         t4[0m
+  [33m                         t5[0m
+  [33m                           [0m
+  The instance head contains unknown type variables.
+
+  Note: The following type class members found in the expression require visible type applications to be unambiguous (e.g. [33mtyClassMember @Int[0m).
+    [33mMain.partialOfABSet[0m
+      One of the following sets of type variables:
+        b
+        e, f
+
+while checking that type [33mforall (t70 :: Type) (t71 :: Type) (@a :: Type) (@b :: t70) (@c :: Type) (@d :: Type) (@e :: t71) (@f :: Type).[0m
+                         [33m  MultiCoveringSets @t70 @t71 a b c d e f => a                                                                 [0m
+                         [33m                                             -> { c :: c                                                       [0m
+                         [33m                                                , d :: d                                                       [0m
+                         [33m                                                }                                                              [0m
+  is at least as general as type [33ma0          [0m
+                                 [33m-> { c :: c1[0m
+                                 [33m   , d :: d2[0m
+                                 [33m   }        [0m
+while checking that expression [33mpartialOfABSet[0m
+  has type [33ma0          [0m
+           [33m-> { c :: c1[0m
+           [33m   , d :: d2[0m
+           [33m   }        [0m
+in value declaration [33mpartialOfABSet'[0m
+
+where [33ma0[0m is a rigid type variable
+        bound at (line 16, column 19 - line 16, column 33)
+      [33mc1[0m is a rigid type variable
+        bound at (line 16, column 19 - line 16, column 33)
+      [33md2[0m is a rigid type variable
+        bound at (line 16, column 19 - line 16, column 33)
+      [33mt3[0m is an unknown type
+      [33mt4[0m is an unknown type
+      [33mt5[0m is an unknown type
+
+See https://github.com/purescript/documentation/blob/master/errors/NoInstanceFound.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/ClassHeadNoVTA6b.purs b/tests/purs/failing/ClassHeadNoVTA6b.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/ClassHeadNoVTA6b.purs
@@ -0,0 +1,16 @@
+-- @shouldFailWith NoInstanceFound
+module Main where
+
+class MultiCoveringSets a b c d e f | a b -> c d e f, f e -> a b c d where
+  noneOfSets :: Int
+
+  partialOfABSet :: a -> { c :: c, d :: d }
+
+  partialOfFESet :: f -> { c :: c, d :: d }
+
+partialOfABSet' 
+  :: forall a b c d e f
+   . MultiCoveringSets a b c d e f
+  => a
+  -> { c :: c, d :: d }
+partialOfABSet' = partialOfABSet
diff --git a/tests/purs/failing/ClassHeadNoVTA6c.out b/tests/purs/failing/ClassHeadNoVTA6c.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/ClassHeadNoVTA6c.out
@@ -0,0 +1,50 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/ClassHeadNoVTA6c.purs:16:19 - 16:33 (line 16, column 19 - line 16, column 33)
+
+  No type class instance was found for
+  [33m                           [0m
+  [33m  Main.MultiCoveringSets t3[0m
+  [33m                         t4[0m
+  [33m                         c1[0m
+  [33m                         d2[0m
+  [33m                         t5[0m
+  [33m                         f0[0m
+  [33m                           [0m
+  The instance head contains unknown type variables.
+
+  Note: The following type class members found in the expression require visible type applications to be unambiguous (e.g. [33mtyClassMember @Int[0m).
+    [33mMain.partialOfFESet[0m
+      One of the following sets of type variables:
+        a, b
+        e
+
+while checking that type [33mforall (t58 :: Type) (t59 :: Type) (@a :: Type) (@b :: t58) (@c :: Type) (@d :: Type) (@e :: t59) (@f :: Type).[0m
+                         [33m  MultiCoveringSets @t58 @t59 a b c d e f => f                                                                 [0m
+                         [33m                                             -> { c :: c                                                       [0m
+                         [33m                                                , d :: d                                                       [0m
+                         [33m                                                }                                                              [0m
+  is at least as general as type [33mf0          [0m
+                                 [33m-> { c :: c1[0m
+                                 [33m   , d :: d2[0m
+                                 [33m   }        [0m
+while checking that expression [33mpartialOfFESet[0m
+  has type [33mf0          [0m
+           [33m-> { c :: c1[0m
+           [33m   , d :: d2[0m
+           [33m   }        [0m
+in value declaration [33mpartialOfFESet'[0m
+
+where [33mc1[0m is a rigid type variable
+        bound at (line 16, column 19 - line 16, column 33)
+      [33md2[0m is a rigid type variable
+        bound at (line 16, column 19 - line 16, column 33)
+      [33mf0[0m is a rigid type variable
+        bound at (line 16, column 19 - line 16, column 33)
+      [33mt3[0m is an unknown type
+      [33mt4[0m is an unknown type
+      [33mt5[0m is an unknown type
+
+See https://github.com/purescript/documentation/blob/master/errors/NoInstanceFound.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/ClassHeadNoVTA6c.purs b/tests/purs/failing/ClassHeadNoVTA6c.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/ClassHeadNoVTA6c.purs
@@ -0,0 +1,16 @@
+-- @shouldFailWith NoInstanceFound
+module Main where
+
+class MultiCoveringSets a b c d e f | a b -> c d e f, f e -> a b c d where
+  noneOfSets :: Int
+
+  partialOfABSet :: a -> { c :: c, d :: d }
+
+  partialOfFESet :: f -> { c :: c, d :: d }
+
+partialOfFESet'
+  :: forall a b c d e f
+   . MultiCoveringSets a b c d e f
+  => f
+  -> { c :: c, d :: d }
+partialOfFESet' = partialOfFESet
diff --git a/tests/purs/failing/ClassHeadNoVTA7.out b/tests/purs/failing/ClassHeadNoVTA7.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/ClassHeadNoVTA7.out
@@ -0,0 +1,25 @@
+Error found:
+in module [33mClassHeadNoVTA7[0m
+at tests/purs/failing/ClassHeadNoVTA7.purs:12:8 - 12:26 (line 12, column 8 - line 12, column 26)
+
+  No type class instance was found for
+  [33m                              [0m
+  [33m  ClassHeadNoVTA7.TestClass t1[0m
+  [33m                            t2[0m
+  [33m                              [0m
+  The instance head contains unknown type variables. Consider adding a type annotation.
+
+while applying a function [33mtestMethod[0m
+  of type [33mTestClass @t0 t1 t2 => Maybe t1 -> Int[0m
+  to argument [33mNothing[0m
+while checking that expression [33mtestMethod Nothing[0m
+  has type [33mInt[0m
+in value declaration [33mtest[0m
+
+where [33mt0[0m is an unknown type
+      [33mt1[0m is an unknown type
+      [33mt2[0m is an unknown type
+
+See https://github.com/purescript/documentation/blob/master/errors/NoInstanceFound.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/ClassHeadNoVTA7.purs b/tests/purs/failing/ClassHeadNoVTA7.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/ClassHeadNoVTA7.purs
@@ -0,0 +1,12 @@
+-- @shouldFailWith NoInstanceFound
+module ClassHeadNoVTA7 where
+
+import Prelude
+
+import Data.Maybe (Maybe(..))
+
+class TestClass a b | a -> b, b -> a where
+  testMethod :: Maybe a -> Int
+
+test :: Int
+test = testMethod Nothing
diff --git a/tests/purs/failing/CoercibleClosedRowsDoNotUnify.out b/tests/purs/failing/CoercibleClosedRowsDoNotUnify.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/CoercibleClosedRowsDoNotUnify.out
@@ -0,0 +1,39 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/CoercibleClosedRowsDoNotUnify.purs:7:12 - 7:18 (line 7, column 12 - line 7, column 18)
+
+  Could not match type
+  [33m            [0m
+  [33m  ( x :: Int[0m
+  [33m  ...       [0m
+  [33m  )         [0m
+  [33m            [0m
+  with type
+  [33m               [0m
+  [33m  ( y :: String[0m
+  [33m  ...          [0m
+  [33m  )            [0m
+  [33m               [0m
+
+while solving type class constraint
+[33m                                     [0m
+[33m  Prim.Coerce.Coercible { x :: Int   [0m
+[33m                        }            [0m
+[33m                        { y :: String[0m
+[33m                        }            [0m
+[33m                                     [0m
+while checking that type [33mforall (a :: Type) (b :: Type). Coercible @Type a b => a -> b[0m
+  is at least as general as type [33m{ x :: Int      [0m
+                                 [33m}               [0m
+                                 [33m-> { y :: String[0m
+                                 [33m   }            [0m
+while checking that expression [33mcoerce[0m
+  has type [33m{ x :: Int      [0m
+           [33m}               [0m
+           [33m-> { y :: String[0m
+           [33m   }            [0m
+in value declaration [33mrecToRec[0m
+
+See https://github.com/purescript/documentation/blob/master/errors/TypesDoNotUnify.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/CoercibleClosedRowsDoNotUnify.purs b/tests/purs/failing/CoercibleClosedRowsDoNotUnify.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/CoercibleClosedRowsDoNotUnify.purs
@@ -0,0 +1,7 @@
+-- @shouldFailWith TypesDoNotUnify
+module Main where
+
+import Safe.Coerce (coerce)
+
+recToRec :: { x :: Int } -> { y :: String }
+recToRec = coerce
diff --git a/tests/purs/failing/CoercibleConstrained1.out b/tests/purs/failing/CoercibleConstrained1.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/CoercibleConstrained1.out
@@ -0,0 +1,29 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/CoercibleConstrained1.purs:11:28 - 11:34 (line 11, column 28 - line 11, column 34)
+
+  No type class instance was found for
+  [33m                          [0m
+  [33m  Prim.Coerce.Coercible a0[0m
+  [33m                        b1[0m
+  [33m                          [0m
+
+while solving type class constraint
+[33m                                        [0m
+[33m  Prim.Coerce.Coercible (Constrained a0)[0m
+[33m                        (Constrained b1)[0m
+[33m                                        [0m
+while checking that type [33mforall (a :: Type) (b :: Type). Coercible @Type a b => a -> b[0m
+  is at least as general as type [33mConstrained a0 -> Constrained b1[0m
+while checking that expression [33mcoerce[0m
+  has type [33mConstrained a0 -> Constrained b1[0m
+in value declaration [33mconstrainedToConstrained[0m
+
+where [33ma0[0m is a rigid type variable
+        bound at (line 11, column 28 - line 11, column 34)
+      [33mb1[0m is a rigid type variable
+        bound at (line 11, column 28 - line 11, column 34)
+
+See https://github.com/purescript/documentation/blob/master/errors/NoInstanceFound.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/CoercibleConstrained1.purs b/tests/purs/failing/CoercibleConstrained1.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/CoercibleConstrained1.purs
@@ -0,0 +1,11 @@
+-- @shouldFailWith NoInstanceFound
+module Main where
+
+import Safe.Coerce (coerce)
+
+class Nullary
+
+data Constrained a = Constrained (Nullary => a)
+
+constrainedToConstrained :: forall a b. Constrained a -> Constrained b
+constrainedToConstrained = coerce
diff --git a/tests/purs/failing/CoercibleConstrained2.out b/tests/purs/failing/CoercibleConstrained2.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/CoercibleConstrained2.out
@@ -0,0 +1,32 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/CoercibleConstrained2.purs:11:28 - 11:34 (line 11, column 28 - line 11, column 34)
+
+  Could not match type
+  [33m    [0m
+  [33m  a0[0m
+  [33m    [0m
+  with type
+  [33m    [0m
+  [33m  b1[0m
+  [33m    [0m
+
+while solving type class constraint
+[33m                                        [0m
+[33m  Prim.Coerce.Coercible (Constrained a0)[0m
+[33m                        (Constrained b1)[0m
+[33m                                        [0m
+while checking that type [33mforall (a :: Type) (b :: Type). Coercible @Type a b => a -> b[0m
+  is at least as general as type [33mConstrained a0 -> Constrained b1[0m
+while checking that expression [33mcoerce[0m
+  has type [33mConstrained a0 -> Constrained b1[0m
+in value declaration [33mconstrainedToConstrained[0m
+
+where [33ma0[0m is a rigid type variable
+        bound at (line 11, column 28 - line 11, column 34)
+      [33mb1[0m is a rigid type variable
+        bound at (line 11, column 28 - line 11, column 34)
+
+See https://github.com/purescript/documentation/blob/master/errors/TypesDoNotUnify.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/CoercibleConstrained2.purs b/tests/purs/failing/CoercibleConstrained2.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/CoercibleConstrained2.purs
@@ -0,0 +1,11 @@
+-- @shouldFailWith TypesDoNotUnify
+module Main where
+
+import Safe.Coerce (coerce)
+
+class Unary a
+
+data Constrained a = Constrained (Unary a => a)
+
+constrainedToConstrained :: forall a b. Constrained a -> Constrained b
+constrainedToConstrained = coerce
diff --git a/tests/purs/failing/CoercibleConstrained3.out b/tests/purs/failing/CoercibleConstrained3.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/CoercibleConstrained3.out
@@ -0,0 +1,30 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/CoercibleConstrained3.purs:13:28 - 13:34 (line 13, column 28 - line 13, column 34)
+
+  Could not match type
+  [33m    [0m
+  [33m  a0[0m
+  [33m    [0m
+  with type
+  [33m      [0m
+  [33m  N a0[0m
+  [33m      [0m
+
+while solving type class constraint
+[33m                                            [0m
+[33m  Prim.Coerce.Coercible (Constrained a0)    [0m
+[33m                        (Constrained (N a0))[0m
+[33m                                            [0m
+while checking that type [33mforall (a :: Type) (b :: Type). Coercible @Type a b => a -> b[0m
+  is at least as general as type [33mConstrained a0 -> Constrained (N a0)[0m
+while checking that expression [33mcoerce[0m
+  has type [33mConstrained a0 -> Constrained (N a0)[0m
+in value declaration [33mconstrainedToConstrained[0m
+
+where [33ma0[0m is a rigid type variable
+        bound at (line 13, column 28 - line 13, column 34)
+
+See https://github.com/purescript/documentation/blob/master/errors/TypesDoNotUnify.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/CoercibleConstrained3.purs b/tests/purs/failing/CoercibleConstrained3.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/CoercibleConstrained3.purs
@@ -0,0 +1,13 @@
+-- @shouldFailWith TypesDoNotUnify
+module Main where
+
+import Safe.Coerce (coerce)
+
+class Unary a
+
+data Constrained a = Constrained (Unary a => a)
+
+newtype N a = N a
+
+constrainedToConstrained :: forall a. Constrained a -> Constrained (N a)
+constrainedToConstrained = coerce
diff --git a/tests/purs/failing/CoercibleForeign.out b/tests/purs/failing/CoercibleForeign.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/CoercibleForeign.out
@@ -0,0 +1,32 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/CoercibleForeign.purs:11:20 - 11:26 (line 11, column 20 - line 11, column 26)
+
+  Could not match type
+  [33m    [0m
+  [33m  a0[0m
+  [33m    [0m
+  with type
+  [33m       [0m
+  [33m  Id a0[0m
+  [33m       [0m
+
+while solving type class constraint
+[33m                                                 [0m
+[33m  Prim.Coerce.Coercible (Foreign a0 b1)          [0m
+[33m                        (Foreign (Id a0) (Id b1))[0m
+[33m                                                 [0m
+while checking that type [33mforall (a :: Type) (b :: Type). Coercible @Type a b => a -> b[0m
+  is at least as general as type [33mForeign a0 b1 -> Foreign (Id a0) (Id b1)[0m
+while checking that expression [33mcoerce[0m
+  has type [33mForeign a0 b1 -> Foreign (Id a0) (Id b1)[0m
+in value declaration [33mforeignToForeign[0m
+
+where [33ma0[0m is a rigid type variable
+        bound at (line 11, column 20 - line 11, column 26)
+      [33mb1[0m is a rigid type variable
+        bound at (line 11, column 20 - line 11, column 26)
+
+See https://github.com/purescript/documentation/blob/master/errors/TypesDoNotUnify.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/CoercibleForeign.purs b/tests/purs/failing/CoercibleForeign.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/CoercibleForeign.purs
@@ -0,0 +1,11 @@
+-- @shouldFailWith TypesDoNotUnify
+module Main where
+
+import Safe.Coerce (coerce)
+
+foreign import data Foreign :: Type -> Type -> Type
+
+newtype Id a = Id a
+
+foreignToForeign :: forall a b. Foreign a b -> Foreign (Id a) (Id b)
+foreignToForeign = coerce
diff --git a/tests/purs/failing/CoercibleForeign2.out b/tests/purs/failing/CoercibleForeign2.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/CoercibleForeign2.out
@@ -0,0 +1,36 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/CoercibleForeign2.purs:9:20 - 9:26 (line 9, column 20 - line 9, column 26)
+
+  Could not match type
+  [33m    [0m
+  [33m  c2[0m
+  [33m    [0m
+  with type
+  [33m    [0m
+  [33m  d3[0m
+  [33m    [0m
+
+while solving type class constraint
+[33m                                          [0m
+[33m  Prim.Coerce.Coercible (Foreign a0 b1 c2)[0m
+[33m                        (Foreign a0 b1 d3)[0m
+[33m                                          [0m
+while checking that type [33mforall (a :: Type) (b :: Type). Coercible @Type a b => a -> b[0m
+  is at least as general as type [33mForeign a0 b1 c2 -> Foreign a0 b1 d3[0m
+while checking that expression [33mcoerce[0m
+  has type [33mForeign a0 b1 c2 -> Foreign a0 b1 d3[0m
+in value declaration [33mforeignToForeign[0m
+
+where [33ma0[0m is a rigid type variable
+        bound at (line 9, column 20 - line 9, column 26)
+      [33mb1[0m is a rigid type variable
+        bound at (line 9, column 20 - line 9, column 26)
+      [33mc2[0m is a rigid type variable
+        bound at (line 9, column 20 - line 9, column 26)
+      [33md3[0m is a rigid type variable
+        bound at (line 9, column 20 - line 9, column 26)
+
+See https://github.com/purescript/documentation/blob/master/errors/TypesDoNotUnify.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/CoercibleForeign2.purs b/tests/purs/failing/CoercibleForeign2.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/CoercibleForeign2.purs
@@ -0,0 +1,9 @@
+-- @shouldFailWith TypesDoNotUnify
+module Main where
+
+import Safe.Coerce (coerce)
+
+foreign import data Foreign :: Type -> Type -> Type -> Type
+
+foreignToForeign :: forall a b c d. Foreign a b c -> Foreign a b d
+foreignToForeign = coerce
diff --git a/tests/purs/failing/CoercibleForeign3.out b/tests/purs/failing/CoercibleForeign3.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/CoercibleForeign3.out
@@ -0,0 +1,36 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/CoercibleForeign3.purs:9:20 - 9:26 (line 9, column 20 - line 9, column 26)
+
+  Could not match type
+  [33m    [0m
+  [33m  b2[0m
+  [33m    [0m
+  with type
+  [33m    [0m
+  [33m  c3[0m
+  [33m    [0m
+
+while solving type class constraint
+[33m                                           [0m
+[33m  Prim.Coerce.Coercible (Foreign @k0 a1 b2)[0m
+[33m                        (Foreign @k0 a1 c3)[0m
+[33m                                           [0m
+while checking that type [33mforall (a :: Type) (b :: Type). Coercible @Type a b => a -> b[0m
+  is at least as general as type [33mForeign @k0 a1 b2 -> Foreign @k0 a1 c3[0m
+while checking that expression [33mcoerce[0m
+  has type [33mForeign @k0 a1 b2 -> Foreign @k0 a1 c3[0m
+in value declaration [33mforeignToForeign[0m
+
+where [33mk0[0m is a rigid type variable
+        bound at (line 9, column 20 - line 9, column 26)
+      [33ma1[0m is a rigid type variable
+        bound at (line 9, column 20 - line 9, column 26)
+      [33mb2[0m is a rigid type variable
+        bound at (line 9, column 20 - line 9, column 26)
+      [33mc3[0m is a rigid type variable
+        bound at (line 9, column 20 - line 9, column 26)
+
+See https://github.com/purescript/documentation/blob/master/errors/TypesDoNotUnify.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/CoercibleForeign3.purs b/tests/purs/failing/CoercibleForeign3.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/CoercibleForeign3.purs
@@ -0,0 +1,9 @@
+-- @shouldFailWith TypesDoNotUnify
+module Main where
+
+import Safe.Coerce (coerce)
+
+foreign import data Foreign :: ∀ k. k -> k -> Type
+
+foreignToForeign :: ∀ k (a :: k) (b :: k) (c :: k). Foreign a b -> Foreign a c
+foreignToForeign = coerce
diff --git a/tests/purs/failing/CoercibleHigherKindedData.out b/tests/purs/failing/CoercibleHigherKindedData.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/CoercibleHigherKindedData.out
@@ -0,0 +1,33 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/CoercibleHigherKindedData.purs:13:17 - 13:23 (line 13, column 17 - line 13, column 23)
+
+  No type class instance was found for
+  [33m                                      [0m
+  [33m  Prim.Coerce.Coercible (Unary t5)    [0m
+  [33m                        (Binary a3 t5)[0m
+  [33m                                      [0m
+  The instance head contains unknown type variables. Consider adding a type annotation.
+
+while solving type class constraint
+[33m                                                                 [0m
+[33m  Prim.Coerce.Coercible (Proxy @(t0 -> Type) (Unary @t0))        [0m
+[33m                        (Proxy @(t1 -> Type) (Binary @t2 @t1 a3))[0m
+[33m                                                                 [0m
+while checking that type [33mforall (a :: Type) (b :: Type). Coercible @Type a b => a -> b[0m
+  is at least as general as type [33mProxy @(t0 -> Type) (Unary @t0) -> Proxy @(t1 -> Type) (... @t1 a3)[0m
+while checking that expression [33mcoerce[0m
+  has type [33mProxy @(t0 -> Type) (Unary @t0) -> Proxy @(t1 -> Type) (... @t1 a3)[0m
+in value declaration [33munaryToBinary[0m
+
+where [33ma3[0m is a rigid type variable
+        bound at (line 13, column 17 - line 13, column 23)
+      [33mt0[0m is an unknown type
+      [33mt2[0m is an unknown type
+      [33mt1[0m is an unknown type
+      [33mt4[0m is an unknown type
+      [33mt5[0m is an unknown type
+
+See https://github.com/purescript/documentation/blob/master/errors/NoInstanceFound.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/CoercibleHigherKindedData.purs b/tests/purs/failing/CoercibleHigherKindedData.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/CoercibleHigherKindedData.purs
@@ -0,0 +1,13 @@
+-- @shouldFailWith NoInstanceFound
+module Main where
+
+import Safe.Coerce (coerce)
+
+data Unary a
+data Binary a b
+
+data Proxy a = Proxy
+type role Proxy representational
+
+unaryToBinary :: forall a. Proxy Unary -> Proxy (Binary a)
+unaryToBinary = coerce
diff --git a/tests/purs/failing/CoercibleHigherKindedNewtypes.out b/tests/purs/failing/CoercibleHigherKindedNewtypes.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/CoercibleHigherKindedNewtypes.out
@@ -0,0 +1,24 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/CoercibleHigherKindedNewtypes.purs:13:8 - 13:14 (line 13, column 8 - line 13, column 14)
+
+  No type class instance was found for
+  [33m                              [0m
+  [33m  Prim.Coerce.Coercible Int   [0m
+  [33m                        String[0m
+  [33m                              [0m
+
+while solving type class constraint
+[33m                                                      [0m
+[33m  Prim.Coerce.Coercible (Ap @Type @Type N1 Int String)[0m
+[33m                        (Ap @Type @Type N2 Int String)[0m
+[33m                                                      [0m
+while checking that type [33mforall (a :: Type) (b :: Type). Coercible @Type a b => a -> b[0m
+  is at least as general as type [33mAp @Type @Type N1 Int String -> Ap @Type @Type N2 Int String[0m
+while checking that expression [33mcoerce[0m
+  has type [33mAp @Type @Type N1 Int String -> Ap @Type @Type N2 Int String[0m
+in value declaration [33mswap[0m
+
+See https://github.com/purescript/documentation/blob/master/errors/NoInstanceFound.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/CoercibleHigherKindedNewtypes.purs b/tests/purs/failing/CoercibleHigherKindedNewtypes.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/CoercibleHigherKindedNewtypes.purs
@@ -0,0 +1,13 @@
+-- @shouldFailWith NoInstanceFound
+module Main where
+
+import Safe.Coerce (coerce)
+
+newtype Ap f a b = Ap (f a b)
+
+data Tuple a b = Tuple a b
+newtype N1 a b = N1 (Tuple a b)
+newtype N2 b a = N2 (Tuple a b)
+
+swap :: Ap N1 Int String -> Ap N2 Int String
+swap = coerce
diff --git a/tests/purs/failing/CoercibleKindMismatch.out b/tests/purs/failing/CoercibleKindMismatch.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/CoercibleKindMismatch.out
@@ -0,0 +1,31 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/CoercibleKindMismatch.purs:15:17 - 15:23 (line 15, column 17 - line 15, column 23)
+
+  Could not match kind
+  [33m      [0m
+  [33m  Type[0m
+  [33m      [0m
+  with kind
+  [33m             [0m
+  [33m  t29 -> Type[0m
+  [33m             [0m
+
+while solving type class constraint
+[33m                                                                    [0m
+[33m  Prim.Coerce.Coercible (Proxy @(t0 -> Type) (Unary @t0))           [0m
+[33m                        (Proxy @(t1 -> t2 -> Type) (Binary @t1 @t2))[0m
+[33m                                                                    [0m
+while checking that type [33mforall (a :: Type) (b :: Type). Coercible @Type a b => a -> b[0m
+  is at least as general as type [33mProxy @(t0 -> Type) (Unary @t0) -> Proxy @(t1 -> ...) (Binary @t1 @t2)[0m
+while checking that expression [33mcoerce[0m
+  has type [33mProxy @(t0 -> Type) (Unary @t0) -> Proxy @(t1 -> ...) (Binary @t1 @t2)[0m
+in value declaration [33munaryToBinary[0m
+
+where [33mt0[0m is an unknown type
+      [33mt1[0m is an unknown type
+      [33mt2[0m is an unknown type
+
+See https://github.com/purescript/documentation/blob/master/errors/KindsDoNotUnify.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/CoercibleKindMismatch.purs b/tests/purs/failing/CoercibleKindMismatch.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/CoercibleKindMismatch.purs
@@ -0,0 +1,15 @@
+-- @shouldFailWith KindsDoNotUnify
+module Main where
+
+import Safe.Coerce (coerce)
+
+data Unary a
+data Binary a b
+
+data Proxy :: forall k. k -> Type
+data Proxy a = Proxy
+
+type role Proxy representational
+
+unaryToBinary :: Proxy Unary -> Proxy Binary
+unaryToBinary = coerce
diff --git a/tests/purs/failing/CoercibleNominal.out b/tests/purs/failing/CoercibleNominal.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/CoercibleNominal.out
@@ -0,0 +1,34 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/CoercibleNominal.purs:11:20 - 11:26 (line 11, column 20 - line 11, column 26)
+
+  Could not match type
+  [33m    [0m
+  [33m  a0[0m
+  [33m    [0m
+  with type
+  [33m    [0m
+  [33m  b2[0m
+  [33m    [0m
+
+while solving type class constraint
+[33m                                       [0m
+[33m  Prim.Coerce.Coercible (Nominal a0 c1)[0m
+[33m                        (Nominal b2 c1)[0m
+[33m                                       [0m
+while checking that type [33mforall (a :: Type) (b :: Type). Coercible @Type a b => a -> b[0m
+  is at least as general as type [33mNominal a0 c1 -> Nominal b2 c1[0m
+while checking that expression [33mcoerce[0m
+  has type [33mNominal a0 c1 -> Nominal b2 c1[0m
+in value declaration [33mnominalToNominal[0m
+
+where [33ma0[0m is a rigid type variable
+        bound at (line 11, column 20 - line 11, column 26)
+      [33mb2[0m is a rigid type variable
+        bound at (line 11, column 20 - line 11, column 26)
+      [33mc1[0m is a rigid type variable
+        bound at (line 11, column 20 - line 11, column 26)
+
+See https://github.com/purescript/documentation/blob/master/errors/TypesDoNotUnify.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/CoercibleNominal.purs b/tests/purs/failing/CoercibleNominal.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/CoercibleNominal.purs
@@ -0,0 +1,11 @@
+-- @shouldFailWith TypesDoNotUnify
+module Main where
+
+import Safe.Coerce (coerce)
+
+data Nominal a (b :: Type) = Nominal a
+
+type role Nominal nominal phantom
+
+nominalToNominal :: forall a b c. Nominal a c -> Nominal b c
+nominalToNominal = coerce
diff --git a/tests/purs/failing/CoercibleNominalTypeApp.out b/tests/purs/failing/CoercibleNominalTypeApp.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/CoercibleNominalTypeApp.out
@@ -0,0 +1,27 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/CoercibleNominalTypeApp.purs:13:8 - 13:14 (line 13, column 8 - line 13, column 14)
+
+  Could not match type
+  [33m     [0m
+  [33m  Int[0m
+  [33m     [0m
+  with type
+  [33m        [0m
+  [33m  String[0m
+  [33m        [0m
+
+while solving type class constraint
+[33m                                              [0m
+[33m  Prim.Coerce.Coercible (G @Type Maybe Int)   [0m
+[33m                        (G @Type Maybe String)[0m
+[33m                                              [0m
+while checking that type [33mforall (a :: Type) (b :: Type). Coercible @Type a b => a -> b[0m
+  is at least as general as type [33mG @Type Maybe Int -> G @Type Maybe String[0m
+while checking that expression [33mcoerce[0m
+  has type [33mG @Type Maybe Int -> G @Type Maybe String[0m
+in value declaration [33mgToG[0m
+
+See https://github.com/purescript/documentation/blob/master/errors/TypesDoNotUnify.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/CoercibleNominalTypeApp.purs b/tests/purs/failing/CoercibleNominalTypeApp.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/CoercibleNominalTypeApp.purs
@@ -0,0 +1,13 @@
+-- @shouldFailWith TypesDoNotUnify
+module Main where
+
+import Safe.Coerce (coerce)
+
+data Phantom a = Phantom
+
+data Maybe a = Nothing | Just a
+
+data G a b = G (a (Phantom b))
+
+gToG :: G Maybe Int -> G Maybe String
+gToG = coerce
diff --git a/tests/purs/failing/CoercibleNominalWrapped.out b/tests/purs/failing/CoercibleNominalWrapped.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/CoercibleNominalWrapped.out
@@ -0,0 +1,32 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/CoercibleNominalWrapped.purs:15:14 - 15:20 (line 15, column 14 - line 15, column 20)
+
+  Could not match type
+  [33m    [0m
+  [33m  a0[0m
+  [33m    [0m
+  with type
+  [33m       [0m
+  [33m  Id a0[0m
+  [33m       [0m
+
+while solving type class constraint
+[33m                                         [0m
+[33m  Prim.Coerce.Coercible (Wrap a0 b1)     [0m
+[33m                        (Wrap (Id a0) b1)[0m
+[33m                                         [0m
+while checking that type [33mforall (a :: Type) (b :: Type). Coercible @Type a b => a -> b[0m
+  is at least as general as type [33mWrap a0 b1 -> Wrap (Id a0) b1[0m
+while checking that expression [33mcoerce[0m
+  has type [33mWrap a0 b1 -> Wrap (Id a0) b1[0m
+in value declaration [33mwrapToWrap[0m
+
+where [33ma0[0m is a rigid type variable
+        bound at (line 15, column 14 - line 15, column 20)
+      [33mb1[0m is a rigid type variable
+        bound at (line 15, column 14 - line 15, column 20)
+
+See https://github.com/purescript/documentation/blob/master/errors/TypesDoNotUnify.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/CoercibleNominalWrapped.purs b/tests/purs/failing/CoercibleNominalWrapped.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/CoercibleNominalWrapped.purs
@@ -0,0 +1,15 @@
+-- @shouldFailWith TypesDoNotUnify
+module Main where
+
+import Safe.Coerce (coerce)
+
+data Nominal a (b :: Type) = Nominal a
+
+type role Nominal nominal phantom
+
+newtype Id a = Id a
+
+data Wrap a b = Wrap (Nominal a b)
+
+wrapToWrap :: forall a b. Wrap a b -> Wrap (Id a) b
+wrapToWrap = coerce
diff --git a/tests/purs/failing/CoercibleNonCanonical1.out b/tests/purs/failing/CoercibleNonCanonical1.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/CoercibleNonCanonical1.out
@@ -0,0 +1,27 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/CoercibleNonCanonical1.purs:11:27 - 11:33 (line 11, column 27 - line 11, column 33)
+
+  No type class instance was found for
+  [33m                                  [0m
+  [33m  Prim.Coerce.Coercible a0        [0m
+  [33m                        (D (N a0))[0m
+  [33m                                  [0m
+
+while solving type class constraint
+[33m                                    [0m
+[33m  Prim.Coerce.Coercible a0          [0m
+[33m                        (N @Type a0)[0m
+[33m                                    [0m
+while checking that type [33mforall (a :: Type) (b :: Type). Coercible @Type a b => a -> b[0m
+  is at least as general as type [33ma0 -> N @Type a0[0m
+while checking that expression [33mcoerce[0m
+  has type [33ma0 -> N @Type a0[0m
+in value declaration [33mnonCanonicalSameTyVarEq[0m
+
+where [33ma0[0m is a rigid type variable
+        bound at (line 11, column 27 - line 11, column 33)
+
+See https://github.com/purescript/documentation/blob/master/errors/NoInstanceFound.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/CoercibleNonCanonical1.purs b/tests/purs/failing/CoercibleNonCanonical1.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/CoercibleNonCanonical1.purs
@@ -0,0 +1,11 @@
+-- @shouldFailWith NoInstanceFound
+module Main where
+
+import Prim.Coerce (class Coercible)
+import Safe.Coerce (coerce)
+
+data D a = D a
+newtype N a = N (D (N a))
+
+nonCanonicalSameTyVarEq :: forall a. Coercible a (D a) => a -> N a
+nonCanonicalSameTyVarEq = coerce
diff --git a/tests/purs/failing/CoercibleNonCanonical2.out b/tests/purs/failing/CoercibleNonCanonical2.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/CoercibleNonCanonical2.out
@@ -0,0 +1,24 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/CoercibleNonCanonical2.purs:10:27 - 10:33 (line 10, column 27 - line 10, column 33)
+
+  No type class instance was found for
+  [33m                          [0m
+  [33m  Prim.Coerce.Coercible a0[0m
+  [33m                        b1[0m
+  [33m                          [0m
+
+while checking that type [33mforall (a :: Type) (b :: Type). Coercible @Type a b => a -> b[0m
+  is at least as general as type [33ma0 -> b1[0m
+while checking that expression [33mcoerce[0m
+  has type [33ma0 -> b1[0m
+in value declaration [33mnonCanonicalDiffTyVarEq[0m
+
+where [33ma0[0m is a rigid type variable
+        bound at (line 10, column 27 - line 10, column 33)
+      [33mb1[0m is a rigid type variable
+        bound at (line 10, column 27 - line 10, column 33)
+
+See https://github.com/purescript/documentation/blob/master/errors/NoInstanceFound.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/CoercibleNonCanonical2.purs b/tests/purs/failing/CoercibleNonCanonical2.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/CoercibleNonCanonical2.purs
@@ -0,0 +1,10 @@
+-- @shouldFailWith NoInstanceFound
+module Main where
+
+import Prim.Coerce (class Coercible)
+import Safe.Coerce (coerce)
+
+data D a = D a
+
+nonCanonicalDiffTyVarEq :: forall a b. Coercible b (D b) => a -> b
+nonCanonicalDiffTyVarEq = coerce
diff --git a/tests/purs/failing/CoercibleOpenRowsDoNotUnify.out b/tests/purs/failing/CoercibleOpenRowsDoNotUnify.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/CoercibleOpenRowsDoNotUnify.out
@@ -0,0 +1,43 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/CoercibleOpenRowsDoNotUnify.purs:7:12 - 7:18 (line 7, column 12 - line 7, column 18)
+
+  No type class instance was found for
+  [33m                          [0m
+  [33m  Prim.Coerce.Coercible r0[0m
+  [33m                        s1[0m
+  [33m                          [0m
+
+while solving type class constraint
+[33m                                  [0m
+[33m  Prim.Coerce.Coercible { x :: Int[0m
+[33m                        | r0      [0m
+[33m                        }         [0m
+[33m                        { x :: Int[0m
+[33m                        | s1      [0m
+[33m                        }         [0m
+[33m                                  [0m
+while checking that type [33mforall (a :: Type) (b :: Type). Coercible @Type a b => a -> b[0m
+  is at least as general as type [33m{ x :: Int   [0m
+                                 [33m| r0         [0m
+                                 [33m}            [0m
+                                 [33m-> { x :: Int[0m
+                                 [33m   | s1      [0m
+                                 [33m   }         [0m
+while checking that expression [33mcoerce[0m
+  has type [33m{ x :: Int   [0m
+           [33m| r0         [0m
+           [33m}            [0m
+           [33m-> { x :: Int[0m
+           [33m   | s1      [0m
+           [33m   }         [0m
+in value declaration [33mrecToRec[0m
+
+where [33mr0[0m is a rigid type variable
+        bound at (line 7, column 12 - line 7, column 18)
+      [33ms1[0m is a rigid type variable
+        bound at (line 7, column 12 - line 7, column 18)
+
+See https://github.com/purescript/documentation/blob/master/errors/NoInstanceFound.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/CoercibleOpenRowsDoNotUnify.purs b/tests/purs/failing/CoercibleOpenRowsDoNotUnify.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/CoercibleOpenRowsDoNotUnify.purs
@@ -0,0 +1,7 @@
+-- @shouldFailWith NoInstanceFound
+module Main where
+
+import Safe.Coerce (coerce)
+
+recToRec :: forall r s. { x :: Int | r } -> { x :: Int | s }
+recToRec = coerce
diff --git a/tests/purs/failing/CoercibleRepresentational.out b/tests/purs/failing/CoercibleRepresentational.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/CoercibleRepresentational.out
@@ -0,0 +1,31 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/CoercibleRepresentational.purs:11:20 - 11:26 (line 11, column 20 - line 11, column 26)
+
+  No type class instance was found for
+  [33m                          [0m
+  [33m  Prim.Coerce.Coercible a1[0m
+  [33m                        b3[0m
+  [33m                          [0m
+
+while solving type class constraint
+[33m                                        [0m
+[33m  Prim.Coerce.Coercible (Phantom @t0 a1)[0m
+[33m                        (Phantom @t2 b3)[0m
+[33m                                        [0m
+while checking that type [33mforall (a :: Type) (b :: Type). Coercible @Type a b => a -> b[0m
+  is at least as general as type [33mPhantom @t0 a1 -> Phantom @t2 b3[0m
+while checking that expression [33mcoerce[0m
+  has type [33mPhantom @t0 a1 -> Phantom @t2 b3[0m
+in value declaration [33mphantomToPhantom[0m
+
+where [33ma1[0m is a rigid type variable
+        bound at (line 11, column 20 - line 11, column 26)
+      [33mb3[0m is a rigid type variable
+        bound at (line 11, column 20 - line 11, column 26)
+      [33mt0[0m is an unknown type
+      [33mt2[0m is an unknown type
+
+See https://github.com/purescript/documentation/blob/master/errors/NoInstanceFound.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/CoercibleRepresentational.purs b/tests/purs/failing/CoercibleRepresentational.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/CoercibleRepresentational.purs
@@ -0,0 +1,11 @@
+-- @shouldFailWith NoInstanceFound
+module Main where
+
+import Safe.Coerce (coerce)
+
+data Phantom a = Phantom
+
+type role Phantom representational
+
+phantomToPhantom :: forall a b. Phantom a -> Phantom b
+phantomToPhantom = coerce
diff --git a/tests/purs/failing/CoercibleRepresentational2.out b/tests/purs/failing/CoercibleRepresentational2.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/CoercibleRepresentational2.out
@@ -0,0 +1,24 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/CoercibleRepresentational2.purs:9:14 - 9:20 (line 9, column 14 - line 9, column 20)
+
+  No type class instance was found for
+  [33m                              [0m
+  [33m  Prim.Coerce.Coercible Int   [0m
+  [33m                        String[0m
+  [33m                              [0m
+
+while solving type class constraint
+[33m                                     [0m
+[33m  Prim.Coerce.Coercible (Arr1 Int)   [0m
+[33m                        (Arr1 String)[0m
+[33m                                     [0m
+while checking that type [33mforall (a :: Type) (b :: Type). Coercible @Type a b => a -> b[0m
+  is at least as general as type [33mArr1 Int -> Arr1 String[0m
+while checking that expression [33mcoerce[0m
+  has type [33mArr1 Int -> Arr1 String[0m
+in value declaration [33marr1ToArr1[0m
+
+See https://github.com/purescript/documentation/blob/master/errors/NoInstanceFound.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/CoercibleRepresentational2.purs b/tests/purs/failing/CoercibleRepresentational2.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/CoercibleRepresentational2.purs
@@ -0,0 +1,9 @@
+-- @shouldFailWith NoInstanceFound
+module Main where
+
+import Safe.Coerce (coerce)
+
+data Arr1 a = Arr1 (Array a)
+
+arr1ToArr1 :: Arr1 Int -> Arr1 String
+arr1ToArr1 = coerce
diff --git a/tests/purs/failing/CoercibleRepresentational3.out b/tests/purs/failing/CoercibleRepresentational3.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/CoercibleRepresentational3.out
@@ -0,0 +1,24 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/CoercibleRepresentational3.purs:9:14 - 9:20 (line 9, column 14 - line 9, column 20)
+
+  No type class instance was found for
+  [33m                              [0m
+  [33m  Prim.Coerce.Coercible Int   [0m
+  [33m                        String[0m
+  [33m                              [0m
+
+while solving type class constraint
+[33m                                     [0m
+[33m  Prim.Coerce.Coercible (Rec1 Int)   [0m
+[33m                        (Rec1 String)[0m
+[33m                                     [0m
+while checking that type [33mforall (a :: Type) (b :: Type). Coercible @Type a b => a -> b[0m
+  is at least as general as type [33mRec1 Int -> Rec1 String[0m
+while checking that expression [33mcoerce[0m
+  has type [33mRec1 Int -> Rec1 String[0m
+in value declaration [33marr1ToArr1[0m
+
+See https://github.com/purescript/documentation/blob/master/errors/NoInstanceFound.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/CoercibleRepresentational3.purs b/tests/purs/failing/CoercibleRepresentational3.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/CoercibleRepresentational3.purs
@@ -0,0 +1,9 @@
+-- @shouldFailWith NoInstanceFound
+module Main where
+
+import Safe.Coerce (coerce)
+
+data Rec1 a = Rec1 { f :: a }
+
+arr1ToArr1 :: Rec1 Int -> Rec1 String
+arr1ToArr1 = coerce
diff --git a/tests/purs/failing/CoercibleRepresentational4.out b/tests/purs/failing/CoercibleRepresentational4.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/CoercibleRepresentational4.out
@@ -0,0 +1,24 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/CoercibleRepresentational4.purs:11:38 - 11:44 (line 11, column 38 - line 11, column 44)
+
+  No type class instance was found for
+  [33m                              [0m
+  [33m  Prim.Coerce.Coercible Int   [0m
+  [33m                        String[0m
+  [33m                              [0m
+
+while solving type class constraint
+[33m                                                 [0m
+[33m  Prim.Coerce.Coercible (Representational Int)   [0m
+[33m                        (Representational String)[0m
+[33m                                                 [0m
+while checking that type [33mforall (a :: Type) (b :: Type). Coercible @Type a b => a -> b[0m
+  is at least as general as type [33mRepresentational Int -> Representational String[0m
+while checking that expression [33mcoerce[0m
+  has type [33mRepresentational Int -> Representational String[0m
+in value declaration [33mrepresentationalToRepresentational[0m
+
+See https://github.com/purescript/documentation/blob/master/errors/NoInstanceFound.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/CoercibleRepresentational4.purs b/tests/purs/failing/CoercibleRepresentational4.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/CoercibleRepresentational4.purs
@@ -0,0 +1,11 @@
+-- @shouldFailWith NoInstanceFound
+module Main where
+
+import Safe.Coerce (coerce)
+
+data F a = F a
+type Synonym a = F a
+data Representational a = Representational (Synonym a)
+
+representationalToRepresentational :: Representational Int -> Representational String
+representationalToRepresentational = coerce
diff --git a/tests/purs/failing/CoercibleRepresentational5.out b/tests/purs/failing/CoercibleRepresentational5.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/CoercibleRepresentational5.out
@@ -0,0 +1,24 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/CoercibleRepresentational5.purs:15:38 - 15:44 (line 15, column 38 - line 15, column 44)
+
+  No type class instance was found for
+  [33m                              [0m
+  [33m  Prim.Coerce.Coercible Int   [0m
+  [33m                        String[0m
+  [33m                              [0m
+
+while solving type class constraint
+[33m                                                                   [0m
+[33m  Prim.Coerce.Coercible (MutuallyRecursiveRepresentational2 Int)   [0m
+[33m                        (MutuallyRecursiveRepresentational2 String)[0m
+[33m                                                                   [0m
+while checking that type [33mforall (a :: Type) (b :: Type). Coercible @Type a b => a -> b[0m
+  is at least as general as type [33mMutuallyRecursiveRepresentational2 Int -> MutuallyRecursiveRepresentational2 String[0m
+while checking that expression [33mcoerce[0m
+  has type [33mMutuallyRecursiveRepresentational2 Int -> MutuallyRecursiveRepresentational2 String[0m
+in value declaration [33mrepresentationalToRepresentational[0m
+
+See https://github.com/purescript/documentation/blob/master/errors/NoInstanceFound.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/CoercibleRepresentational5.purs b/tests/purs/failing/CoercibleRepresentational5.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/CoercibleRepresentational5.purs
@@ -0,0 +1,15 @@
+-- @shouldFailWith NoInstanceFound
+module Main where
+
+import Safe.Coerce (coerce)
+
+data MutuallyRecursiveRepresentational1 a
+  = MutuallyRecursiveRepresentational1 a (MutuallyRecursiveRepresentational2 a)
+
+type MutuallyRecursiveRepresentational1Synonym a = MutuallyRecursiveRepresentational1 a
+
+data MutuallyRecursiveRepresentational2 a
+  = MutuallyRecursiveRepresentational2 (MutuallyRecursiveRepresentational1Synonym a)
+
+representationalToRepresentational :: MutuallyRecursiveRepresentational2 Int -> MutuallyRecursiveRepresentational2 String
+representationalToRepresentational = coerce
diff --git a/tests/purs/failing/CoercibleRepresentational6.out b/tests/purs/failing/CoercibleRepresentational6.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/CoercibleRepresentational6.out
@@ -0,0 +1,24 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/CoercibleRepresentational6.purs:8:10 - 8:16 (line 8, column 10 - line 8, column 16)
+
+  No type class instance was found for
+  [33m                              [0m
+  [33m  Prim.Coerce.Coercible (N a0)[0m
+  [33m                        a0    [0m
+  [33m                              [0m
+
+  Solving this instance requires the newtype constructor [33mN[0m to be in scope.
+
+while checking that type [33mforall (a :: Type) (b :: Type). Coercible @Type a b => a -> b[0m
+  is at least as general as type [33mN a0 -> a0[0m
+while checking that expression [33mcoerce[0m
+  has type [33mN a0 -> a0[0m
+in value declaration [33munwrap[0m
+
+where [33ma0[0m is a rigid type variable
+        bound at (line 8, column 10 - line 8, column 16)
+
+See https://github.com/purescript/documentation/blob/master/errors/NoInstanceFound.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/CoercibleRepresentational6.purs b/tests/purs/failing/CoercibleRepresentational6.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/CoercibleRepresentational6.purs
@@ -0,0 +1,8 @@
+-- @shouldFailWith NoInstanceFound
+module Main where
+
+import Safe.Coerce (coerce)
+import N (N(..))
+
+unwrap :: forall a. N a -> a
+unwrap = coerce
diff --git a/tests/purs/failing/CoercibleRepresentational6/N.purs b/tests/purs/failing/CoercibleRepresentational6/N.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/CoercibleRepresentational6/N.purs
@@ -0,0 +1,3 @@
+module N (N) where
+
+newtype N a = N a
diff --git a/tests/purs/failing/CoercibleRepresentational7.out b/tests/purs/failing/CoercibleRepresentational7.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/CoercibleRepresentational7.out
@@ -0,0 +1,24 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/CoercibleRepresentational7.purs:8:10 - 8:16 (line 8, column 10 - line 8, column 16)
+
+  No type class instance was found for
+  [33m                              [0m
+  [33m  Prim.Coerce.Coercible (N a0)[0m
+  [33m                        a0    [0m
+  [33m                              [0m
+
+  Solving this instance requires the newtype constructor [33mN[0m to be in scope.
+
+while checking that type [33mforall (a :: Type) (b :: Type). Coercible @Type a b => a -> b[0m
+  is at least as general as type [33mN a0 -> a0[0m
+while checking that expression [33mcoerce[0m
+  has type [33mN a0 -> a0[0m
+in value declaration [33munwrap[0m
+
+where [33ma0[0m is a rigid type variable
+        bound at (line 8, column 10 - line 8, column 16)
+
+See https://github.com/purescript/documentation/blob/master/errors/NoInstanceFound.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/CoercibleRepresentational7.purs b/tests/purs/failing/CoercibleRepresentational7.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/CoercibleRepresentational7.purs
@@ -0,0 +1,8 @@
+-- @shouldFailWith NoInstanceFound
+module Main where
+
+import Safe.Coerce (coerce)
+import N (N)
+
+unwrap :: forall a. N a -> a
+unwrap = coerce
diff --git a/tests/purs/failing/CoercibleRepresentational7/N.purs b/tests/purs/failing/CoercibleRepresentational7/N.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/CoercibleRepresentational7/N.purs
@@ -0,0 +1,3 @@
+module N (N(..)) where
+
+newtype N a = N a
diff --git a/tests/purs/failing/CoercibleRepresentational8.out b/tests/purs/failing/CoercibleRepresentational8.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/CoercibleRepresentational8.out
@@ -0,0 +1,24 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/CoercibleRepresentational8.purs:9:16 - 9:22 (line 9, column 16 - line 9, column 22)
+
+  No type class instance was found for
+  [33m                          [0m
+  [33m  Prim.Coerce.Coercible a0[0m
+  [33m                        b1[0m
+  [33m                          [0m
+
+while checking that type [33mforall (a :: Type) (b :: Type). Coercible @Type a b => a -> b[0m
+  is at least as general as type [33ma0 -> b1[0m
+while checking that expression [33mcoerce[0m
+  has type [33ma0 -> b1[0m
+in value declaration [33munsafeCoerce[0m
+
+where [33ma0[0m is a rigid type variable
+        bound at (line 9, column 16 - line 9, column 22)
+      [33mb1[0m is a rigid type variable
+        bound at (line 9, column 16 - line 9, column 22)
+
+See https://github.com/purescript/documentation/blob/master/errors/NoInstanceFound.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/CoercibleRepresentational8.purs b/tests/purs/failing/CoercibleRepresentational8.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/CoercibleRepresentational8.purs
@@ -0,0 +1,9 @@
+-- @shouldFailWith NoInstanceFound
+module Main where
+
+import UnsafeCoerce (UnsafeCoerce)
+import Prim.Coerce (class Coercible)
+import Safe.Coerce (coerce)
+
+unsafeCoerce :: forall a b. Coercible (UnsafeCoerce a) (UnsafeCoerce b) => a -> b
+unsafeCoerce = coerce
diff --git a/tests/purs/failing/CoercibleRepresentational8/UnsafeCoerce.purs b/tests/purs/failing/CoercibleRepresentational8/UnsafeCoerce.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/CoercibleRepresentational8/UnsafeCoerce.purs
@@ -0,0 +1,7 @@
+module UnsafeCoerce where
+
+import Data.Unit (Unit)
+
+newtype UnsafeCoerce a = UnsafeCoerce Unit
+
+type role UnsafeCoerce representational
diff --git a/tests/purs/failing/CoercibleRoleMismatch1.out b/tests/purs/failing/CoercibleRoleMismatch1.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/CoercibleRoleMismatch1.out
@@ -0,0 +1,14 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/CoercibleRoleMismatch1.purs:6:1 - 6:27 (line 6, column 1 - line 6, column 27)
+
+  Role mismatch for the type parameter [33ma[0m:
+
+    The annotation says [33mphantom[0m but the role [33mrepresentational[0m is required.
+
+
+in role declaration for [33mIdentity[0m
+
+See https://github.com/purescript/documentation/blob/master/errors/RoleMismatch.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/CoercibleRoleMismatch1.purs b/tests/purs/failing/CoercibleRoleMismatch1.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/CoercibleRoleMismatch1.purs
@@ -0,0 +1,6 @@
+-- @shouldFailWith RoleMismatch
+module Main where
+
+data Identity a = Identity a
+
+type role Identity phantom
diff --git a/tests/purs/failing/CoercibleRoleMismatch2.out b/tests/purs/failing/CoercibleRoleMismatch2.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/CoercibleRoleMismatch2.out
@@ -0,0 +1,14 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/CoercibleRoleMismatch2.purs:10:1 - 10:20 (line 10, column 1 - line 10, column 20)
+
+  Role mismatch for the type parameter [33ma[0m:
+
+    The annotation says [33mphantom[0m but the role [33mnominal[0m is required.
+
+
+in role declaration for [33mV[0m
+
+See https://github.com/purescript/documentation/blob/master/errors/RoleMismatch.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/CoercibleRoleMismatch2.purs b/tests/purs/failing/CoercibleRoleMismatch2.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/CoercibleRoleMismatch2.purs
@@ -0,0 +1,10 @@
+-- @shouldFailWith RoleMismatch
+module Main where
+
+data T r (p :: Type) n = T r n
+
+type role T representational phantom nominal
+
+data V a = V (T a a a)
+
+type role V phantom
diff --git a/tests/purs/failing/CoercibleRoleMismatch3.out b/tests/purs/failing/CoercibleRoleMismatch3.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/CoercibleRoleMismatch3.out
@@ -0,0 +1,14 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/CoercibleRoleMismatch3.purs:10:1 - 10:29 (line 10, column 1 - line 10, column 29)
+
+  Role mismatch for the type parameter [33ma[0m:
+
+    The annotation says [33mrepresentational[0m but the role [33mnominal[0m is required.
+
+
+in role declaration for [33mU[0m
+
+See https://github.com/purescript/documentation/blob/master/errors/RoleMismatch.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/CoercibleRoleMismatch3.purs b/tests/purs/failing/CoercibleRoleMismatch3.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/CoercibleRoleMismatch3.purs
@@ -0,0 +1,10 @@
+-- @shouldFailWith RoleMismatch
+module Main where
+
+data T r (p :: Type) n = T r n
+
+type role T representational phantom nominal
+
+data U a = U (T a a a)
+
+type role U representational
diff --git a/tests/purs/failing/CoercibleRoleMismatch4.out b/tests/purs/failing/CoercibleRoleMismatch4.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/CoercibleRoleMismatch4.out
@@ -0,0 +1,14 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/CoercibleRoleMismatch4.purs:5:1 - 5:29 (line 5, column 1 - line 5, column 29)
+
+  Role mismatch for the type parameter [33ma[0m:
+
+    The annotation says [33mrepresentational[0m but the role [33mnominal[0m is required.
+
+
+in role declaration for [33mF[0m
+
+See https://github.com/purescript/documentation/blob/master/errors/RoleMismatch.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/CoercibleRoleMismatch4.purs b/tests/purs/failing/CoercibleRoleMismatch4.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/CoercibleRoleMismatch4.purs
@@ -0,0 +1,8 @@
+-- @shouldFailWith RoleMismatch
+module Main where
+
+data F a = F (G a)
+type role F representational
+
+data G a = G (F a)
+type role G nominal
diff --git a/tests/purs/failing/CoercibleRoleMismatch5.out b/tests/purs/failing/CoercibleRoleMismatch5.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/CoercibleRoleMismatch5.out
@@ -0,0 +1,14 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/CoercibleRoleMismatch5.purs:5:1 - 5:20 (line 5, column 1 - line 5, column 20)
+
+  Role mismatch for the type parameter [33ma[0m:
+
+    The annotation says [33mphantom[0m but the role [33mrepresentational[0m is required.
+
+
+in role declaration for [33mF[0m
+
+See https://github.com/purescript/documentation/blob/master/errors/RoleMismatch.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/CoercibleRoleMismatch5.purs b/tests/purs/failing/CoercibleRoleMismatch5.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/CoercibleRoleMismatch5.purs
@@ -0,0 +1,7 @@
+-- @shouldFailWith RoleMismatch
+module Main where
+
+data F a = F a (G a)
+type role F phantom
+
+data G a = G (F a)
diff --git a/tests/purs/failing/CoercibleUnknownRowTail1.out b/tests/purs/failing/CoercibleUnknownRowTail1.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/CoercibleUnknownRowTail1.out
@@ -0,0 +1,41 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/CoercibleUnknownRowTail1.purs:7:9 - 7:24 (line 7, column 9 - line 7, column 24)
+
+  No type class instance was found for
+  [33m                          [0m
+  [33m  Prim.Coerce.Coercible ()[0m
+  [33m                        t0[0m
+  [33m                          [0m
+  The instance head contains unknown type variables. Consider adding a type annotation.
+
+while solving type class constraint
+[33m                                  [0m
+[33m  Prim.Coerce.Coercible { a :: Int[0m
+[33m                        }         [0m
+[33m                        { a :: Int[0m
+[33m                        | t0      [0m
+[33m                        }         [0m
+[33m                                  [0m
+while applying a function [33mcoerce[0m
+  of type [33mCoercible @Type t1 t2 => t1 -> t2[0m
+  to argument [33m{ a: 0[0m
+              [33m}     [0m
+while checking that expression [33mcoerce { a: 0[0m
+                               [33m       }     [0m
+  has type [33m{ a :: Int[0m
+           [33m| t0      [0m
+           [33m}         [0m
+while checking type of property accessor [33m(coerce { a: ...[0m
+                                         [33m        }       [0m
+                                         [33m)               [0m
+                                         [33m.a              [0m
+in value declaration [33mzero[0m
+
+where [33mt0[0m is an unknown type
+      [33mt1[0m is an unknown type
+      [33mt2[0m is an unknown type
+
+See https://github.com/purescript/documentation/blob/master/errors/NoInstanceFound.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/CoercibleUnknownRowTail1.purs b/tests/purs/failing/CoercibleUnknownRowTail1.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/CoercibleUnknownRowTail1.purs
@@ -0,0 +1,7 @@
+-- @shouldFailWith NoInstanceFound
+module Main where
+
+import Safe.Coerce (coerce)
+
+zero :: Int
+zero = (coerce { a: 0 }).a
diff --git a/tests/purs/failing/CoercibleUnknownRowTail2.out b/tests/purs/failing/CoercibleUnknownRowTail2.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/CoercibleUnknownRowTail2.out
@@ -0,0 +1,46 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/CoercibleUnknownRowTail2.purs:7:9 - 7:30 (line 7, column 9 - line 7, column 30)
+
+  No type class instance was found for
+  [33m                                  [0m
+  [33m  Prim.Coerce.Coercible ( b :: Int[0m
+  [33m                        )         [0m
+  [33m                        t0        [0m
+  [33m                                  [0m
+  The instance head contains unknown type variables. Consider adding a type annotation.
+
+while solving type class constraint
+[33m                                  [0m
+[33m  Prim.Coerce.Coercible { a :: Int[0m
+[33m                        , b :: Int[0m
+[33m                        }         [0m
+[33m                        { a :: Int[0m
+[33m                        | t0      [0m
+[33m                        }         [0m
+[33m                                  [0m
+while applying a function [33mcoerce[0m
+  of type [33mCoercible @Type t1 t2 => t1 -> t2[0m
+  to argument [33m{ a: 0[0m
+              [33m, b: 1[0m
+              [33m}     [0m
+while checking that expression [33mcoerce { a: 0[0m
+                               [33m       , b: 1[0m
+                               [33m       }     [0m
+  has type [33m{ a :: Int[0m
+           [33m| t0      [0m
+           [33m}         [0m
+while checking type of property accessor [33m(coerce { a: ...[0m
+                                         [33m        , b: ...[0m
+                                         [33m        }       [0m
+                                         [33m)               [0m
+                                         [33m.a              [0m
+in value declaration [33mzero[0m
+
+where [33mt0[0m is an unknown type
+      [33mt1[0m is an unknown type
+      [33mt2[0m is an unknown type
+
+See https://github.com/purescript/documentation/blob/master/errors/NoInstanceFound.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/CoercibleUnknownRowTail2.purs b/tests/purs/failing/CoercibleUnknownRowTail2.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/CoercibleUnknownRowTail2.purs
@@ -0,0 +1,7 @@
+-- @shouldFailWith NoInstanceFound
+module Main where
+
+import Safe.Coerce (coerce)
+
+zero :: Int
+zero = (coerce { a: 0, b: 1 }).a
diff --git a/tests/purs/failing/CompareInt1.out b/tests/purs/failing/CompareInt1.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/CompareInt1.out
@@ -0,0 +1,43 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/CompareInt1.purs:14:16 - 14:29 (line 14, column 16 - line 14, column 29)
+
+  Could not match type
+  [33m    [0m
+  [33m  EQ[0m
+  [33m    [0m
+  with type
+  [33m    [0m
+  [33m  GT[0m
+  [33m    [0m
+
+while solving type class constraint
+[33m                     [0m
+[33m  Prim.Int.Compare a0[0m
+[33m                   b1[0m
+[33m                   GT[0m
+[33m                     [0m
+while checking that type [33mforall (l :: Int) (r :: Int).       [0m
+                         [33m  Compare l r GT => Proxy @(Row Int)[0m
+                         [33m                      ( left :: l   [0m
+                         [33m                      , right :: r  [0m
+                         [33m                      )             [0m
+  is at least as general as type [33mProxy @(Row Int)[0m
+                                 [33m  ( left :: a0  [0m
+                                 [33m  , right :: b1 [0m
+                                 [33m  )             [0m
+while checking that expression [33massertGreater[0m
+  has type [33mProxy @(Row Int)[0m
+           [33m  ( left :: a0  [0m
+           [33m  , right :: b1 [0m
+           [33m  )             [0m
+in value declaration [33mimpossible[0m
+
+where [33ma0[0m is a rigid type variable
+        bound at (line 0, column 0 - line 0, column 0)
+      [33mb1[0m is a rigid type variable
+        bound at (line 0, column 0 - line 0, column 0)
+
+See https://github.com/purescript/documentation/blob/master/errors/TypesDoNotUnify.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/CompareInt1.purs b/tests/purs/failing/CompareInt1.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/CompareInt1.purs
@@ -0,0 +1,14 @@
+-- @shouldFailWith TypesDoNotUnify
+module Main where
+
+import Prim.Int (class Compare)
+import Prim.Ordering (EQ, GT, LT)
+
+data Proxy :: forall k. k -> Type
+data Proxy n = Proxy
+
+assertGreater :: forall l r. Compare l r GT => Proxy ( left :: l, right :: r )
+assertGreater = Proxy
+
+impossible :: forall a b c. Compare a b EQ => Compare b c GT => Proxy c -> Proxy ( left :: a, right :: b )
+impossible _ = assertGreater
diff --git a/tests/purs/failing/CompareInt10.out b/tests/purs/failing/CompareInt10.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/CompareInt10.out
@@ -0,0 +1,43 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/CompareInt10.purs:14:16 - 14:27 (line 14, column 16 - line 14, column 27)
+
+  Could not match type
+  [33m    [0m
+  [33m  LT[0m
+  [33m    [0m
+  with type
+  [33m    [0m
+  [33m  EQ[0m
+  [33m    [0m
+
+while solving type class constraint
+[33m                     [0m
+[33m  Prim.Int.Compare c0[0m
+[33m                   a1[0m
+[33m                   EQ[0m
+[33m                     [0m
+while checking that type [33mforall (l :: Int) (r :: Int).       [0m
+                         [33m  Compare l r EQ => Proxy @(Row Int)[0m
+                         [33m                      ( left :: l   [0m
+                         [33m                      , right :: r  [0m
+                         [33m                      )             [0m
+  is at least as general as type [33mProxy @(Row Int)[0m
+                                 [33m  ( left :: c0  [0m
+                                 [33m  , right :: a1 [0m
+                                 [33m  )             [0m
+while checking that expression [33massertEqual[0m
+  has type [33mProxy @(Row Int)[0m
+           [33m  ( left :: c0  [0m
+           [33m  , right :: a1 [0m
+           [33m  )             [0m
+in value declaration [33mimpossible[0m
+
+where [33ma1[0m is a rigid type variable
+        bound at (line 0, column 0 - line 0, column 0)
+      [33mc0[0m is a rigid type variable
+        bound at (line 0, column 0 - line 0, column 0)
+
+See https://github.com/purescript/documentation/blob/master/errors/TypesDoNotUnify.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/CompareInt10.purs b/tests/purs/failing/CompareInt10.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/CompareInt10.purs
@@ -0,0 +1,14 @@
+-- @shouldFailWith TypesDoNotUnify
+module Main where
+
+import Prim.Int (class Compare)
+import Prim.Ordering (EQ, GT, LT)
+
+data Proxy :: forall k. k -> Type
+data Proxy n = Proxy
+
+assertEqual :: forall l r. Compare l r EQ => Proxy ( left :: l, right :: r )
+assertEqual = Proxy
+
+impossible :: forall a b c. Compare a b GT => Compare b c GT => Proxy c -> Proxy ( left :: c, right :: a )
+impossible _ = assertEqual
diff --git a/tests/purs/failing/CompareInt11.out b/tests/purs/failing/CompareInt11.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/CompareInt11.out
@@ -0,0 +1,33 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/CompareInt11.purs:14:14 - 14:26 (line 14, column 14 - line 14, column 26)
+
+  No type class instance was found for
+  [33m                     [0m
+  [33m  Prim.Int.Compare a0[0m
+  [33m                   5 [0m
+  [33m                   LT[0m
+  [33m                     [0m
+
+while checking that type [33mforall (l :: Int) (r :: Int).       [0m
+                         [33m  Compare l r LT => Proxy @(Row Int)[0m
+                         [33m                      ( left :: l   [0m
+                         [33m                      , right :: r  [0m
+                         [33m                      )             [0m
+  is at least as general as type [33mProxy @(Row Int)[0m
+                                 [33m  ( left :: a0  [0m
+                                 [33m  , right :: 5  [0m
+                                 [33m  )             [0m
+while checking that expression [33massertLesser[0m
+  has type [33mProxy @(Row Int)[0m
+           [33m  ( left :: a0  [0m
+           [33m  , right :: 5  [0m
+           [33m  )             [0m
+in value declaration [33mimpossible[0m
+
+where [33ma0[0m is a rigid type variable
+        bound at (line 14, column 14 - line 14, column 26)
+
+See https://github.com/purescript/documentation/blob/master/errors/NoInstanceFound.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/CompareInt11.purs b/tests/purs/failing/CompareInt11.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/CompareInt11.purs
@@ -0,0 +1,14 @@
+-- @shouldFailWith NoInstanceFound
+module Main where
+
+import Prim.Int (class Compare)
+import Prim.Ordering (EQ, GT, LT)
+
+data Proxy :: forall k. k -> Type
+data Proxy n = Proxy
+
+assertLesser :: forall l r. Compare l r LT => Proxy ( left :: l, right :: r )
+assertLesser = Proxy
+
+impossible :: forall a. Compare a 10 LT => Proxy ( left :: a, right :: 5 )
+impossible = assertLesser
diff --git a/tests/purs/failing/CompareInt12.out b/tests/purs/failing/CompareInt12.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/CompareInt12.out
@@ -0,0 +1,33 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/CompareInt12.purs:14:14 - 14:27 (line 14, column 14 - line 14, column 27)
+
+  No type class instance was found for
+  [33m                     [0m
+  [33m  Prim.Int.Compare a0[0m
+  [33m                   20[0m
+  [33m                   GT[0m
+  [33m                     [0m
+
+while checking that type [33mforall (l :: Int) (r :: Int).       [0m
+                         [33m  Compare l r GT => Proxy @(Row Int)[0m
+                         [33m                      ( left :: l   [0m
+                         [33m                      , right :: r  [0m
+                         [33m                      )             [0m
+  is at least as general as type [33mProxy @(Row Int)[0m
+                                 [33m  ( left :: a0  [0m
+                                 [33m  , right :: 20 [0m
+                                 [33m  )             [0m
+while checking that expression [33massertGreater[0m
+  has type [33mProxy @(Row Int)[0m
+           [33m  ( left :: a0  [0m
+           [33m  , right :: 20 [0m
+           [33m  )             [0m
+in value declaration [33mimpossible[0m
+
+where [33ma0[0m is a rigid type variable
+        bound at (line 14, column 14 - line 14, column 27)
+
+See https://github.com/purescript/documentation/blob/master/errors/NoInstanceFound.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/CompareInt12.purs b/tests/purs/failing/CompareInt12.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/CompareInt12.purs
@@ -0,0 +1,14 @@
+-- @shouldFailWith NoInstanceFound
+module Main where
+
+import Prim.Int (class Compare)
+import Prim.Ordering (EQ, GT, LT)
+
+data Proxy :: forall k. k -> Type
+data Proxy n = Proxy
+
+assertGreater :: forall l r. Compare l r GT => Proxy ( left :: l, right :: r )
+assertGreater = Proxy
+
+impossible :: forall a. Compare a 10 GT => Proxy ( left :: a, right :: 20 )
+impossible = assertGreater
diff --git a/tests/purs/failing/CompareInt2.out b/tests/purs/failing/CompareInt2.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/CompareInt2.out
@@ -0,0 +1,43 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/CompareInt2.purs:14:14 - 14:27 (line 14, column 14 - line 14, column 27)
+
+  Could not match type
+  [33m    [0m
+  [33m  LT[0m
+  [33m    [0m
+  with type
+  [33m    [0m
+  [33m  GT[0m
+  [33m    [0m
+
+while solving type class constraint
+[33m                     [0m
+[33m  Prim.Int.Compare b0[0m
+[33m                   a1[0m
+[33m                   GT[0m
+[33m                     [0m
+while checking that type [33mforall (l :: Int) (r :: Int).       [0m
+                         [33m  Compare l r GT => Proxy @(Row Int)[0m
+                         [33m                      ( left :: l   [0m
+                         [33m                      , right :: r  [0m
+                         [33m                      )             [0m
+  is at least as general as type [33mProxy @(Row Int)[0m
+                                 [33m  ( left :: b0  [0m
+                                 [33m  , right :: a1 [0m
+                                 [33m  )             [0m
+while checking that expression [33massertGreater[0m
+  has type [33mProxy @(Row Int)[0m
+           [33m  ( left :: b0  [0m
+           [33m  , right :: a1 [0m
+           [33m  )             [0m
+in value declaration [33mimpossible[0m
+
+where [33ma1[0m is a rigid type variable
+        bound at (line 14, column 14 - line 14, column 27)
+      [33mb0[0m is a rigid type variable
+        bound at (line 14, column 14 - line 14, column 27)
+
+See https://github.com/purescript/documentation/blob/master/errors/TypesDoNotUnify.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/CompareInt2.purs b/tests/purs/failing/CompareInt2.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/CompareInt2.purs
@@ -0,0 +1,14 @@
+-- @shouldFailWith TypesDoNotUnify
+module Main where
+
+import Prim.Int (class Compare)
+import Prim.Ordering (EQ, GT, LT)
+
+data Proxy :: forall k. k -> Type
+data Proxy n = Proxy
+
+assertGreater :: forall l r. Compare l r GT => Proxy ( left :: l, right :: r )
+assertGreater = Proxy
+
+impossible :: forall a b. Compare a b GT => Proxy ( left :: b, right :: a )
+impossible = assertGreater
diff --git a/tests/purs/failing/CompareInt3.out b/tests/purs/failing/CompareInt3.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/CompareInt3.out
@@ -0,0 +1,43 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/CompareInt3.purs:14:16 - 14:28 (line 14, column 16 - line 14, column 28)
+
+  Could not match type
+  [33m    [0m
+  [33m  EQ[0m
+  [33m    [0m
+  with type
+  [33m    [0m
+  [33m  LT[0m
+  [33m    [0m
+
+while solving type class constraint
+[33m                     [0m
+[33m  Prim.Int.Compare a0[0m
+[33m                   b1[0m
+[33m                   LT[0m
+[33m                     [0m
+while checking that type [33mforall (l :: Int) (r :: Int).       [0m
+                         [33m  Compare l r LT => Proxy @(Row Int)[0m
+                         [33m                      ( left :: l   [0m
+                         [33m                      , right :: r  [0m
+                         [33m                      )             [0m
+  is at least as general as type [33mProxy @(Row Int)[0m
+                                 [33m  ( left :: a0  [0m
+                                 [33m  , right :: b1 [0m
+                                 [33m  )             [0m
+while checking that expression [33massertLesser[0m
+  has type [33mProxy @(Row Int)[0m
+           [33m  ( left :: a0  [0m
+           [33m  , right :: b1 [0m
+           [33m  )             [0m
+in value declaration [33mimpossible[0m
+
+where [33ma0[0m is a rigid type variable
+        bound at (line 0, column 0 - line 0, column 0)
+      [33mb1[0m is a rigid type variable
+        bound at (line 0, column 0 - line 0, column 0)
+
+See https://github.com/purescript/documentation/blob/master/errors/TypesDoNotUnify.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/CompareInt3.purs b/tests/purs/failing/CompareInt3.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/CompareInt3.purs
@@ -0,0 +1,14 @@
+-- @shouldFailWith TypesDoNotUnify
+module Main where
+
+import Prim.Int (class Compare)
+import Prim.Ordering (EQ, GT, LT)
+
+data Proxy :: forall k. k -> Type
+data Proxy n = Proxy
+
+assertLesser :: forall l r. Compare l r LT => Proxy ( left :: l, right :: r )
+assertLesser = Proxy
+
+impossible :: forall a b c. Compare a b EQ => Compare b c LT => Proxy c -> Proxy ( left :: a, right :: b )
+impossible _ = assertLesser
diff --git a/tests/purs/failing/CompareInt4.out b/tests/purs/failing/CompareInt4.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/CompareInt4.out
@@ -0,0 +1,43 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/CompareInt4.purs:14:14 - 14:26 (line 14, column 14 - line 14, column 26)
+
+  Could not match type
+  [33m    [0m
+  [33m  GT[0m
+  [33m    [0m
+  with type
+  [33m    [0m
+  [33m  LT[0m
+  [33m    [0m
+
+while solving type class constraint
+[33m                     [0m
+[33m  Prim.Int.Compare b0[0m
+[33m                   a1[0m
+[33m                   LT[0m
+[33m                     [0m
+while checking that type [33mforall (l :: Int) (r :: Int).       [0m
+                         [33m  Compare l r LT => Proxy @(Row Int)[0m
+                         [33m                      ( left :: l   [0m
+                         [33m                      , right :: r  [0m
+                         [33m                      )             [0m
+  is at least as general as type [33mProxy @(Row Int)[0m
+                                 [33m  ( left :: b0  [0m
+                                 [33m  , right :: a1 [0m
+                                 [33m  )             [0m
+while checking that expression [33massertLesser[0m
+  has type [33mProxy @(Row Int)[0m
+           [33m  ( left :: b0  [0m
+           [33m  , right :: a1 [0m
+           [33m  )             [0m
+in value declaration [33mimpossible[0m
+
+where [33ma1[0m is a rigid type variable
+        bound at (line 14, column 14 - line 14, column 26)
+      [33mb0[0m is a rigid type variable
+        bound at (line 14, column 14 - line 14, column 26)
+
+See https://github.com/purescript/documentation/blob/master/errors/TypesDoNotUnify.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/CompareInt4.purs b/tests/purs/failing/CompareInt4.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/CompareInt4.purs
@@ -0,0 +1,14 @@
+-- @shouldFailWith TypesDoNotUnify
+module Main where
+
+import Prim.Int (class Compare)
+import Prim.Ordering (EQ, GT, LT)
+
+data Proxy :: forall k. k -> Type
+data Proxy n = Proxy
+
+assertLesser :: forall l r. Compare l r LT => Proxy ( left :: l, right :: r )
+assertLesser = Proxy
+
+impossible :: forall a b. Compare a b LT => Proxy ( left :: b, right :: a )
+impossible = assertLesser
diff --git a/tests/purs/failing/CompareInt5.out b/tests/purs/failing/CompareInt5.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/CompareInt5.out
@@ -0,0 +1,43 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/CompareInt5.purs:14:16 - 14:29 (line 14, column 16 - line 14, column 29)
+
+  Could not match type
+  [33m    [0m
+  [33m  LT[0m
+  [33m    [0m
+  with type
+  [33m    [0m
+  [33m  GT[0m
+  [33m    [0m
+
+while solving type class constraint
+[33m                     [0m
+[33m  Prim.Int.Compare c0[0m
+[33m                   a1[0m
+[33m                   GT[0m
+[33m                     [0m
+while checking that type [33mforall (l :: Int) (r :: Int).       [0m
+                         [33m  Compare l r GT => Proxy @(Row Int)[0m
+                         [33m                      ( left :: l   [0m
+                         [33m                      , right :: r  [0m
+                         [33m                      )             [0m
+  is at least as general as type [33mProxy @(Row Int)[0m
+                                 [33m  ( left :: c0  [0m
+                                 [33m  , right :: a1 [0m
+                                 [33m  )             [0m
+while checking that expression [33massertGreater[0m
+  has type [33mProxy @(Row Int)[0m
+           [33m  ( left :: c0  [0m
+           [33m  , right :: a1 [0m
+           [33m  )             [0m
+in value declaration [33mimpossible[0m
+
+where [33ma1[0m is a rigid type variable
+        bound at (line 0, column 0 - line 0, column 0)
+      [33mc0[0m is a rigid type variable
+        bound at (line 0, column 0 - line 0, column 0)
+
+See https://github.com/purescript/documentation/blob/master/errors/TypesDoNotUnify.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/CompareInt5.purs b/tests/purs/failing/CompareInt5.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/CompareInt5.purs
@@ -0,0 +1,14 @@
+-- @shouldFailWith TypesDoNotUnify
+module Main where
+
+import Prim.Int (class Compare)
+import Prim.Ordering (EQ, GT, LT)
+
+data Proxy :: forall k. k -> Type
+data Proxy n = Proxy
+
+assertGreater :: forall l r. Compare l r GT => Proxy ( left :: l, right :: r )
+assertGreater = Proxy
+
+impossible :: forall a b c. Compare a b GT => Compare b c GT => Proxy c -> Proxy ( left :: c, right :: a )
+impossible _ = assertGreater
diff --git a/tests/purs/failing/CompareInt6.out b/tests/purs/failing/CompareInt6.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/CompareInt6.out
@@ -0,0 +1,43 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/CompareInt6.purs:14:16 - 14:28 (line 14, column 16 - line 14, column 28)
+
+  Could not match type
+  [33m    [0m
+  [33m  GT[0m
+  [33m    [0m
+  with type
+  [33m    [0m
+  [33m  LT[0m
+  [33m    [0m
+
+while solving type class constraint
+[33m                     [0m
+[33m  Prim.Int.Compare c0[0m
+[33m                   a1[0m
+[33m                   LT[0m
+[33m                     [0m
+while checking that type [33mforall (l :: Int) (r :: Int).       [0m
+                         [33m  Compare l r LT => Proxy @(Row Int)[0m
+                         [33m                      ( left :: l   [0m
+                         [33m                      , right :: r  [0m
+                         [33m                      )             [0m
+  is at least as general as type [33mProxy @(Row Int)[0m
+                                 [33m  ( left :: c0  [0m
+                                 [33m  , right :: a1 [0m
+                                 [33m  )             [0m
+while checking that expression [33massertLesser[0m
+  has type [33mProxy @(Row Int)[0m
+           [33m  ( left :: c0  [0m
+           [33m  , right :: a1 [0m
+           [33m  )             [0m
+in value declaration [33mimpossible[0m
+
+where [33ma1[0m is a rigid type variable
+        bound at (line 0, column 0 - line 0, column 0)
+      [33mc0[0m is a rigid type variable
+        bound at (line 0, column 0 - line 0, column 0)
+
+See https://github.com/purescript/documentation/blob/master/errors/TypesDoNotUnify.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/CompareInt6.purs b/tests/purs/failing/CompareInt6.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/CompareInt6.purs
@@ -0,0 +1,14 @@
+-- @shouldFailWith TypesDoNotUnify
+module Main where
+
+import Prim.Int (class Compare)
+import Prim.Ordering (EQ, GT, LT)
+
+data Proxy :: forall k. k -> Type
+data Proxy n = Proxy
+
+assertLesser :: forall l r. Compare l r LT => Proxy ( left :: l, right :: r )
+assertLesser = Proxy
+
+impossible :: forall a b c. Compare a b LT => Compare b c LT => Proxy c -> Proxy ( left :: c, right :: a )
+impossible _ = assertLesser
diff --git a/tests/purs/failing/CompareInt7.out b/tests/purs/failing/CompareInt7.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/CompareInt7.out
@@ -0,0 +1,43 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/CompareInt7.purs:14:16 - 14:27 (line 14, column 16 - line 14, column 27)
+
+  Could not match type
+  [33m    [0m
+  [33m  LT[0m
+  [33m    [0m
+  with type
+  [33m    [0m
+  [33m  EQ[0m
+  [33m    [0m
+
+while solving type class constraint
+[33m                     [0m
+[33m  Prim.Int.Compare a0[0m
+[33m                   c1[0m
+[33m                   EQ[0m
+[33m                     [0m
+while checking that type [33mforall (l :: Int) (r :: Int).       [0m
+                         [33m  Compare l r EQ => Proxy @(Row Int)[0m
+                         [33m                      ( left :: l   [0m
+                         [33m                      , right :: r  [0m
+                         [33m                      )             [0m
+  is at least as general as type [33mProxy @(Row Int)[0m
+                                 [33m  ( left :: a0  [0m
+                                 [33m  , right :: c1 [0m
+                                 [33m  )             [0m
+while checking that expression [33massertEqual[0m
+  has type [33mProxy @(Row Int)[0m
+           [33m  ( left :: a0  [0m
+           [33m  , right :: c1 [0m
+           [33m  )             [0m
+in value declaration [33mimpossible[0m
+
+where [33ma0[0m is a rigid type variable
+        bound at (line 0, column 0 - line 0, column 0)
+      [33mc1[0m is a rigid type variable
+        bound at (line 0, column 0 - line 0, column 0)
+
+See https://github.com/purescript/documentation/blob/master/errors/TypesDoNotUnify.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/CompareInt7.purs b/tests/purs/failing/CompareInt7.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/CompareInt7.purs
@@ -0,0 +1,14 @@
+-- @shouldFailWith TypesDoNotUnify
+module Main where
+
+import Prim.Int (class Compare)
+import Prim.Ordering (EQ, GT, LT)
+
+data Proxy :: forall k. k -> Type
+data Proxy n = Proxy
+
+assertEqual :: forall l r. Compare l r EQ => Proxy ( left :: l, right :: r )
+assertEqual = Proxy
+
+impossible :: forall a b c. Compare a b LT => Compare b c LT => Proxy c -> Proxy ( left :: a, right :: c )
+impossible _ = assertEqual
diff --git a/tests/purs/failing/CompareInt8.out b/tests/purs/failing/CompareInt8.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/CompareInt8.out
@@ -0,0 +1,43 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/CompareInt8.purs:14:16 - 14:27 (line 14, column 16 - line 14, column 27)
+
+  Could not match type
+  [33m    [0m
+  [33m  GT[0m
+  [33m    [0m
+  with type
+  [33m    [0m
+  [33m  EQ[0m
+  [33m    [0m
+
+while solving type class constraint
+[33m                     [0m
+[33m  Prim.Int.Compare a0[0m
+[33m                   c1[0m
+[33m                   EQ[0m
+[33m                     [0m
+while checking that type [33mforall (l :: Int) (r :: Int).       [0m
+                         [33m  Compare l r EQ => Proxy @(Row Int)[0m
+                         [33m                      ( left :: l   [0m
+                         [33m                      , right :: r  [0m
+                         [33m                      )             [0m
+  is at least as general as type [33mProxy @(Row Int)[0m
+                                 [33m  ( left :: a0  [0m
+                                 [33m  , right :: c1 [0m
+                                 [33m  )             [0m
+while checking that expression [33massertEqual[0m
+  has type [33mProxy @(Row Int)[0m
+           [33m  ( left :: a0  [0m
+           [33m  , right :: c1 [0m
+           [33m  )             [0m
+in value declaration [33mimpossible[0m
+
+where [33ma0[0m is a rigid type variable
+        bound at (line 0, column 0 - line 0, column 0)
+      [33mc1[0m is a rigid type variable
+        bound at (line 0, column 0 - line 0, column 0)
+
+See https://github.com/purescript/documentation/blob/master/errors/TypesDoNotUnify.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/CompareInt8.purs b/tests/purs/failing/CompareInt8.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/CompareInt8.purs
@@ -0,0 +1,14 @@
+-- @shouldFailWith TypesDoNotUnify
+module Main where
+
+import Prim.Int (class Compare)
+import Prim.Ordering (EQ, GT, LT)
+
+data Proxy :: forall k. k -> Type
+data Proxy n = Proxy
+
+assertEqual :: forall l r. Compare l r EQ => Proxy ( left :: l, right :: r )
+assertEqual = Proxy
+
+impossible :: forall a b c. Compare a b GT => Compare b c GT => Proxy c -> Proxy ( left :: a, right :: c )
+impossible _ = assertEqual
diff --git a/tests/purs/failing/CompareInt9.out b/tests/purs/failing/CompareInt9.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/CompareInt9.out
@@ -0,0 +1,43 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/CompareInt9.purs:14:16 - 14:27 (line 14, column 16 - line 14, column 27)
+
+  Could not match type
+  [33m    [0m
+  [33m  GT[0m
+  [33m    [0m
+  with type
+  [33m    [0m
+  [33m  EQ[0m
+  [33m    [0m
+
+while solving type class constraint
+[33m                     [0m
+[33m  Prim.Int.Compare c0[0m
+[33m                   a1[0m
+[33m                   EQ[0m
+[33m                     [0m
+while checking that type [33mforall (l :: Int) (r :: Int).       [0m
+                         [33m  Compare l r EQ => Proxy @(Row Int)[0m
+                         [33m                      ( left :: l   [0m
+                         [33m                      , right :: r  [0m
+                         [33m                      )             [0m
+  is at least as general as type [33mProxy @(Row Int)[0m
+                                 [33m  ( left :: c0  [0m
+                                 [33m  , right :: a1 [0m
+                                 [33m  )             [0m
+while checking that expression [33massertEqual[0m
+  has type [33mProxy @(Row Int)[0m
+           [33m  ( left :: c0  [0m
+           [33m  , right :: a1 [0m
+           [33m  )             [0m
+in value declaration [33mimpossible[0m
+
+where [33ma1[0m is a rigid type variable
+        bound at (line 0, column 0 - line 0, column 0)
+      [33mc0[0m is a rigid type variable
+        bound at (line 0, column 0 - line 0, column 0)
+
+See https://github.com/purescript/documentation/blob/master/errors/TypesDoNotUnify.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/CompareInt9.purs b/tests/purs/failing/CompareInt9.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/CompareInt9.purs
@@ -0,0 +1,14 @@
+-- @shouldFailWith TypesDoNotUnify
+module Main where
+
+import Prim.Int (class Compare)
+import Prim.Ordering (EQ, GT, LT)
+
+data Proxy :: forall k. k -> Type
+data Proxy n = Proxy
+
+assertEqual :: forall l r. Compare l r EQ => Proxy ( left :: l, right :: r )
+assertEqual = Proxy
+
+impossible :: forall a b c. Compare a b LT => Compare b c LT => Proxy c -> Proxy ( left :: c, right :: a )
+impossible _ = assertEqual
diff --git a/tests/purs/failing/ConflictingExports.out b/tests/purs/failing/ConflictingExports.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/ConflictingExports.out
@@ -0,0 +1,14 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/ConflictingExports.purs:3:14 - 3:22 (line 3, column 14 - line 3, column 22)
+
+  Conflicting definitions are in scope for value [33mthing[0m from the following modules:
+
+    [33mA[0m
+    [33mB[0m
+
+
+
+See https://github.com/purescript/documentation/blob/master/errors/ScopeConflict.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/ConflictingImports.out b/tests/purs/failing/ConflictingImports.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/ConflictingImports.out
@@ -0,0 +1,14 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/ConflictingImports.purs:9:8 - 9:13 (line 9, column 8 - line 9, column 13)
+
+  Conflicting definitions are in scope for value [33mthing[0m from the following modules:
+
+    [33mA[0m
+    [33mB[0m
+
+
+
+See https://github.com/purescript/documentation/blob/master/errors/ScopeConflict.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/ConflictingImports/B.out b/tests/purs/failing/ConflictingImports/B.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/ConflictingImports/B.out
@@ -0,0 +1,14 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/ConflictingImports.purs:9:8 - 9:13 (line 9, column 8 - line 9, column 13)
+
+  Conflicting definitions are in scope for value [33mthing[0m from the following modules:
+
+    [33mA[0m
+    [33mB[0m
+
+
+
+See https://github.com/purescript/documentation/blob/master/errors/ScopeConflict.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/ConflictingImports2.out b/tests/purs/failing/ConflictingImports2.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/ConflictingImports2.out
@@ -0,0 +1,14 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/ConflictingImports2.purs:10:8 - 10:13 (line 10, column 8 - line 10, column 13)
+
+  Conflicting definitions are in scope for value [33mthing[0m from the following modules:
+
+    [33mA[0m
+    [33mB[0m
+
+
+
+See https://github.com/purescript/documentation/blob/master/errors/ScopeConflict.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/ConflictingImports2/B.out b/tests/purs/failing/ConflictingImports2/B.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/ConflictingImports2/B.out
@@ -0,0 +1,14 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/ConflictingImports2.purs:10:8 - 10:13 (line 10, column 8 - line 10, column 13)
+
+  Conflicting definitions are in scope for value [33mthing[0m from the following modules:
+
+    [33mA[0m
+    [33mB[0m
+
+
+
+See https://github.com/purescript/documentation/blob/master/errors/ScopeConflict.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/ConflictingQualifiedImports.out b/tests/purs/failing/ConflictingQualifiedImports.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/ConflictingQualifiedImports.out
@@ -0,0 +1,14 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/ConflictingQualifiedImports.purs:7:7 - 7:14 (line 7, column 7 - line 7, column 14)
+
+  Conflicting definitions are in scope for value [33mthing[0m from the following modules:
+
+    [33mA[0m
+    [33mB[0m
+
+
+
+See https://github.com/purescript/documentation/blob/master/errors/ScopeConflict.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/ConflictingQualifiedImports2.out b/tests/purs/failing/ConflictingQualifiedImports2.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/ConflictingQualifiedImports2.out
@@ -0,0 +1,14 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/ConflictingQualifiedImports2.purs:2:14 - 2:22 (line 2, column 14 - line 2, column 22)
+
+  Conflicting definitions are in scope for value [33mthing[0m from the following modules:
+
+    [33mA[0m
+    [33mB[0m
+
+
+
+See https://github.com/purescript/documentation/blob/master/errors/ScopeConflict.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/ConflictingQualifiedImports2/B.out b/tests/purs/failing/ConflictingQualifiedImports2/B.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/ConflictingQualifiedImports2/B.out
@@ -0,0 +1,14 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/ConflictingQualifiedImports2.purs:2:14 - 2:22 (line 2, column 14 - line 2, column 22)
+
+  Conflicting definitions are in scope for value [33mthing[0m from the following modules:
+
+    [33mA[0m
+    [33mB[0m
+
+
+
+See https://github.com/purescript/documentation/blob/master/errors/ScopeConflict.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/ConstraintFailure.out b/tests/purs/failing/ConstraintFailure.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/ConstraintFailure.out
@@ -0,0 +1,22 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/ConstraintFailure.purs:12:8 - 12:12 (line 12, column 8 - line 12, column 12)
+
+  No type class instance was found for
+  [33m                    [0m
+  [33m  Data.Show.Show Foo[0m
+  [33m                    [0m
+
+while checking that type [33mforall (@a :: Type). Show a => a -> String[0m
+  is at least as general as type [33mt0 t1 t2[0m
+while checking that expression [33mshow[0m
+  has type [33mt0 t1 t2[0m
+in value declaration [33mmain[0m
+
+where [33mt0[0m is an unknown type
+      [33mt1[0m is an unknown type
+      [33mt2[0m is an unknown type
+
+See https://github.com/purescript/documentation/blob/master/errors/NoInstanceFound.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/ConstraintInForeignImport.js b/tests/purs/failing/ConstraintInForeignImport.js
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/ConstraintInForeignImport.js
@@ -0,0 +1,5 @@
+export var show = function (showDict) {
+  return function (a) {
+    return showDict.show(a);
+  };
+};
diff --git a/tests/purs/failing/ConstraintInForeignImport.out b/tests/purs/failing/ConstraintInForeignImport.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/ConstraintInForeignImport.out
@@ -0,0 +1,10 @@
+Error found:
+at tests/purs/failing/ConstraintInForeignImport.purs:6:1 - 6:50 (line 6, column 1 - line 6, column 50)
+
+  Unable to parse module:
+  Constraints are not allowed in foreign imports. Omit the constraint instead and update the foreign module accordingly.
+
+
+See https://github.com/purescript/documentation/blob/master/errors/ErrorParsingModule.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/ConstraintInForeignImport.purs b/tests/purs/failing/ConstraintInForeignImport.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/ConstraintInForeignImport.purs
@@ -0,0 +1,6 @@
+-- @shouldFailWith ErrorParsingModule
+module Main where
+
+import Data.Show (class Show)
+
+foreign import show :: ∀ a. Show a => a -> String
diff --git a/tests/purs/failing/ConstraintInference.out b/tests/purs/failing/ConstraintInference.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/ConstraintInference.out
@@ -0,0 +1,19 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/ConstraintInference.purs:10:1 - 10:21 (line 10, column 1 - line 10, column 21)
+
+  The inferred type
+  [33m                                         [0m
+  [33m  forall c8 t11. Show c8 => t11 -> String[0m
+  [33m                                         [0m
+  has type variables which are not determined by those mentioned in the body of the type:
+
+    [33mc8[0m could not be determined
+
+  Consider adding a type annotation.
+
+in value declaration [33mtest[0m
+
+See https://github.com/purescript/documentation/blob/master/errors/AmbiguousTypeVariables.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/ContravariantInstance1.out b/tests/purs/failing/ContravariantInstance1.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/ContravariantInstance1.out
@@ -0,0 +1,16 @@
+Error found:
+in module [33mContravariantInstance1[0m
+at tests/purs/failing/ContravariantInstance1.purs:9:1 - 9:35 (line 9, column 1 - line 9, column 35)
+
+  One or more type variables are in positions that prevent [33mContravariant[0m from being derived.
+  To derive this class, make sure that these variables are only used as the final arguments to type constructors, that their variance matches the variance of [33mContravariant[0m, and that those type constructors themselves have instances of [33mData.Functor.Functor[0m, [33mData.Bifunctor.Bifunctor[0m, [33mData.Functor.Contravariant.Contravariant[0m, or [33mData.Profunctor.Profunctor[0m.
+
+  tests/purs/failing/ContravariantInstance1.purs:
+  [90m    6[0m [33m[0m
+  [90m    7[0m [33mnewtype Test a = Test (Predicate (Predicate [7ma[27m))[0m
+  [90m    8[0m [33m[0m
+
+
+See https://github.com/purescript/documentation/blob/master/errors/CannotDeriveInvalidConstructorArg.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/ContravariantInstance1.purs b/tests/purs/failing/ContravariantInstance1.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/ContravariantInstance1.purs
@@ -0,0 +1,9 @@
+-- @shouldFailWith CannotDeriveInvalidConstructorArg
+module ContravariantInstance1 where
+
+import Data.Functor.Contravariant (class Contravariant)
+import Data.Predicate (Predicate)
+
+newtype Test a = Test (Predicate (Predicate a))
+
+derive instance Contravariant Test
diff --git a/tests/purs/failing/CycleInForeignDataKinds.out b/tests/purs/failing/CycleInForeignDataKinds.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/CycleInForeignDataKinds.out
@@ -0,0 +1,13 @@
+Error found:
+at tests/purs/failing/CycleInForeignDataKinds.purs:5:1 - 5:31 (line 5, column 1 - line 5, column 31)
+
+  A cycle appears in a set of kind declarations:
+
+    {[33mBar[0m, [33mFoo[0m}
+
+  Kind declarations may not refer to themselves in their own signatures.
+
+
+See https://github.com/purescript/documentation/blob/master/errors/CycleInKindDeclaration.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/CycleInForeignDataKinds.purs b/tests/purs/failing/CycleInForeignDataKinds.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/CycleInForeignDataKinds.purs
@@ -0,0 +1,5 @@
+-- @shouldFailWith CycleInKindDeclaration
+module Main where
+
+foreign import data Foo :: Bar
+foreign import data Bar :: Foo
diff --git a/tests/purs/failing/CycleInKindDeclaration.out b/tests/purs/failing/CycleInKindDeclaration.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/CycleInKindDeclaration.out
@@ -0,0 +1,13 @@
+Error found:
+at tests/purs/failing/CycleInKindDeclaration.purs:7:1 - 7:24 (line 7, column 1 - line 7, column 24)
+
+  A cycle appears in a set of kind declarations:
+
+    {[33mBar[0m, [33mFoo[0m}
+
+  Kind declarations may not refer to themselves in their own signatures.
+
+
+See https://github.com/purescript/documentation/blob/master/errors/CycleInKindDeclaration.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/CycleInKindDeclaration.purs b/tests/purs/failing/CycleInKindDeclaration.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/CycleInKindDeclaration.purs
@@ -0,0 +1,8 @@
+-- @shouldFailWith CycleInKindDeclaration
+module Main where
+
+data Foo :: Bar -> Type
+data Foo a = Foo
+
+data Bar :: Foo -> Type
+data Bar a = Bar
diff --git a/tests/purs/failing/DctorOperatorAliasExport.out b/tests/purs/failing/DctorOperatorAliasExport.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/DctorOperatorAliasExport.out
@@ -0,0 +1,13 @@
+Error found:
+in module [33mData.List[0m
+at tests/purs/failing/DctorOperatorAliasExport.purs:2:1 - 6:21 (line 2, column 1 - line 6, column 21)
+
+  An export for [33m(:)[0m requires the following data constructor to also be exported:
+
+    [33mCons[0m
+
+
+
+See https://github.com/purescript/documentation/blob/master/errors/TransitiveDctorExportError.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/DeclConflictClassCtor.out b/tests/purs/failing/DeclConflictClassCtor.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/DeclConflictClassCtor.out
@@ -0,0 +1,10 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/DeclConflictClassCtor.purs:6:1 - 6:11 (line 6, column 1 - line 6, column 11)
+
+  Declaration for type class [33mFail[0m conflicts with an existing data constructor of the same name.
+
+
+See https://github.com/purescript/documentation/blob/master/errors/DeclConflict.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/DeclConflictClassSynonym.out b/tests/purs/failing/DeclConflictClassSynonym.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/DeclConflictClassSynonym.out
@@ -0,0 +1,10 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/DeclConflictClassSynonym.purs:8:1 - 8:11 (line 8, column 1 - line 8, column 11)
+
+  Declaration for type class [33mFail[0m conflicts with an existing type of the same name.
+
+
+See https://github.com/purescript/documentation/blob/master/errors/DeclConflict.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/DeclConflictClassType.out b/tests/purs/failing/DeclConflictClassType.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/DeclConflictClassType.out
@@ -0,0 +1,10 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/DeclConflictClassType.purs:6:1 - 6:10 (line 6, column 1 - line 6, column 10)
+
+  Declaration for type [33mFail[0m conflicts with an existing type class of the same name.
+
+
+See https://github.com/purescript/documentation/blob/master/errors/DeclConflict.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/DeclConflictCtorClass.out b/tests/purs/failing/DeclConflictCtorClass.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/DeclConflictCtorClass.out
@@ -0,0 +1,10 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/DeclConflictCtorClass.purs:6:1 - 6:14 (line 6, column 1 - line 6, column 14)
+
+  Declaration for data constructor [33mFail[0m conflicts with an existing type class of the same name.
+
+
+See https://github.com/purescript/documentation/blob/master/errors/DeclConflict.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/DeclConflictCtorCtor.out b/tests/purs/failing/DeclConflictCtorCtor.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/DeclConflictCtorCtor.out
@@ -0,0 +1,10 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/DeclConflictCtorCtor.purs:6:1 - 6:15 (line 6, column 1 - line 6, column 15)
+
+  Declaration for data constructor [33mFail[0m conflicts with an existing data constructor of the same name.
+
+
+See https://github.com/purescript/documentation/blob/master/errors/DeclConflict.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/DeclConflictDuplicateCtor.out b/tests/purs/failing/DeclConflictDuplicateCtor.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/DeclConflictDuplicateCtor.out
@@ -0,0 +1,10 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/DeclConflictDuplicateCtor.purs:4:1 - 4:21 (line 4, column 1 - line 4, column 21)
+
+  Declaration for data constructor [33mFail[0m conflicts with an existing data constructor of the same name.
+
+
+See https://github.com/purescript/documentation/blob/master/errors/DeclConflict.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/DeclConflictSynonymClass.out b/tests/purs/failing/DeclConflictSynonymClass.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/DeclConflictSynonymClass.out
@@ -0,0 +1,10 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/DeclConflictSynonymClass.purs:8:1 - 8:17 (line 8, column 1 - line 8, column 17)
+
+  Declaration for type [33mFail[0m conflicts with an existing type class of the same name.
+
+
+See https://github.com/purescript/documentation/blob/master/errors/DeclConflict.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/DeclConflictSynonymType.out b/tests/purs/failing/DeclConflictSynonymType.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/DeclConflictSynonymType.out
@@ -0,0 +1,10 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/DeclConflictSynonymType.purs:8:1 - 8:17 (line 8, column 1 - line 8, column 17)
+
+  Declaration for type [33mFail[0m conflicts with an existing type of the same name.
+
+
+See https://github.com/purescript/documentation/blob/master/errors/DeclConflict.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/DeclConflictTypeClass.out b/tests/purs/failing/DeclConflictTypeClass.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/DeclConflictTypeClass.out
@@ -0,0 +1,10 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/DeclConflictTypeClass.purs:6:1 - 6:10 (line 6, column 1 - line 6, column 10)
+
+  Declaration for type [33mFail[0m conflicts with an existing type class of the same name.
+
+
+See https://github.com/purescript/documentation/blob/master/errors/DeclConflict.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/DeclConflictTypeSynonym.out b/tests/purs/failing/DeclConflictTypeSynonym.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/DeclConflictTypeSynonym.out
@@ -0,0 +1,10 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/DeclConflictTypeSynonym.purs:8:1 - 8:10 (line 8, column 1 - line 8, column 10)
+
+  Declaration for type [33mFail[0m conflicts with an existing type of the same name.
+
+
+See https://github.com/purescript/documentation/blob/master/errors/DeclConflict.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/DeclConflictTypeType.out b/tests/purs/failing/DeclConflictTypeType.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/DeclConflictTypeType.out
@@ -0,0 +1,10 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/DeclConflictTypeType.purs:6:1 - 6:10 (line 6, column 1 - line 6, column 10)
+
+  Declaration for type [33mFail[0m conflicts with an existing type of the same name.
+
+
+See https://github.com/purescript/documentation/blob/master/errors/DeclConflict.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/DeprecatedFFICommonJSModule.js b/tests/purs/failing/DeprecatedFFICommonJSModule.js
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/DeprecatedFFICommonJSModule.js
@@ -0,0 +1,4 @@
+"use strict";
+
+exports.yes = true;
+exports.no = true;
diff --git a/tests/purs/failing/DeprecatedFFICommonJSModule.out b/tests/purs/failing/DeprecatedFFICommonJSModule.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/DeprecatedFFICommonJSModule.out
@@ -0,0 +1,13 @@
+Error found:
+at tests/purs/failing/DeprecatedFFICommonJSModule.purs:2:1 - 5:29 (line 2, column 1 - line 5, column 29)
+
+  A CommonJS foreign module implementation was provided for module [33mMain[0m:
+
+    tests/purs/failing/DeprecatedFFICommonJSModule.js
+
+  CommonJS foreign modules are no longer supported. Use native JavaScript/ECMAScript module syntax instead.
+
+
+See https://github.com/purescript/documentation/blob/master/errors/DeprecatedFFICommonJSModule.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/DeprecatedFFICommonJSModule.purs b/tests/purs/failing/DeprecatedFFICommonJSModule.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/DeprecatedFFICommonJSModule.purs
@@ -0,0 +1,5 @@
+-- @shouldFailWith DeprecatedFFICommonJSModule
+module Main where
+
+foreign import yes :: Boolean
+foreign import no :: Boolean
diff --git a/tests/purs/failing/DeprecatedFFIPrime.js b/tests/purs/failing/DeprecatedFFIPrime.js
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/DeprecatedFFIPrime.js
@@ -0,0 +1,5 @@
+exports['a\''] = 0;
+exports["\x62\x27"] = 1;
+// NOTE: I wanted to use "\c'" here, but langauge-javascript doesn't support it...
+exports["c'"] = 2;
+exports["\u0064\u0027"] = 3;
diff --git a/tests/purs/failing/DeprecatedFFIPrime.out b/tests/purs/failing/DeprecatedFFIPrime.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/DeprecatedFFIPrime.out
@@ -0,0 +1,56 @@
+Error 1 of 4:
+
+  at tests/purs/failing/DeprecatedFFIPrime.purs:5:1 - 10:28 (line 5, column 1 - line 10, column 28)
+
+    In the FFI module for [33mMain[0m:
+
+      The identifier [33ma'[0m contains a prime ([33m'[0m).
+      Primes are not allowed in identifiers exported from FFI modules.
+
+
+
+  See https://github.com/purescript/documentation/blob/master/errors/DeprecatedFFIPrime.md for more information,
+  or to contribute content related to this error.
+
+Error 2 of 4:
+
+  at tests/purs/failing/DeprecatedFFIPrime.purs:5:1 - 10:28 (line 5, column 1 - line 10, column 28)
+
+    In the FFI module for [33mMain[0m:
+
+      The identifier [33mb'[0m contains a prime ([33m'[0m).
+      Primes are not allowed in identifiers exported from FFI modules.
+
+
+
+  See https://github.com/purescript/documentation/blob/master/errors/DeprecatedFFIPrime.md for more information,
+  or to contribute content related to this error.
+
+Error 3 of 4:
+
+  at tests/purs/failing/DeprecatedFFIPrime.purs:5:1 - 10:28 (line 5, column 1 - line 10, column 28)
+
+    In the FFI module for [33mMain[0m:
+
+      The identifier [33mc'[0m contains a prime ([33m'[0m).
+      Primes are not allowed in identifiers exported from FFI modules.
+
+
+
+  See https://github.com/purescript/documentation/blob/master/errors/DeprecatedFFIPrime.md for more information,
+  or to contribute content related to this error.
+
+Error 4 of 4:
+
+  at tests/purs/failing/DeprecatedFFIPrime.purs:5:1 - 10:28 (line 5, column 1 - line 10, column 28)
+
+    In the FFI module for [33mMain[0m:
+
+      The identifier [33md'[0m contains a prime ([33m'[0m).
+      Primes are not allowed in identifiers exported from FFI modules.
+
+
+
+  See https://github.com/purescript/documentation/blob/master/errors/DeprecatedFFIPrime.md for more information,
+  or to contribute content related to this error.
+
diff --git a/tests/purs/failing/DeprecatedFFIPrime.purs b/tests/purs/failing/DeprecatedFFIPrime.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/DeprecatedFFIPrime.purs
@@ -0,0 +1,10 @@
+-- @shouldFailWith DeprecatedFFIPrime
+-- @shouldFailWith DeprecatedFFIPrime
+-- @shouldFailWith DeprecatedFFIPrime
+-- @shouldFailWith DeprecatedFFIPrime
+module Main where
+
+foreign import a' :: Number
+foreign import b' :: Number
+foreign import c' :: Number
+foreign import d' :: Number
diff --git a/tests/purs/failing/DiffKindsSameName.out b/tests/purs/failing/DiffKindsSameName.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/DiffKindsSameName.out
@@ -0,0 +1,21 @@
+Error found:
+in module [33mDiffKindsSameName[0m
+at tests/purs/failing/DiffKindsSameName.purs:13:18 - 13:31 (line 13, column 18 - line 13, column 31)
+
+  Could not match kind
+  [33m          [0m
+  [33m  DemoKind[0m
+  [33m          [0m
+  with kind
+  [33m          [0m
+  [33m  DemoKind[0m
+  [33m          [0m
+
+while checking that type [33mDemoData[0m
+  has kind [33mDemoKind[0m
+while inferring the kind of [33mAProxy DemoData[0m
+in value declaration [33mbProxy[0m
+
+See https://github.com/purescript/documentation/blob/master/errors/KindsDoNotUnify.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/DiffKindsSameName/LibA.out b/tests/purs/failing/DiffKindsSameName/LibA.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/DiffKindsSameName/LibA.out
@@ -0,0 +1,19 @@
+Error found:
+in module [33mDiffKindsSameName[0m
+at tests/purs/failing/DiffKindsSameName.purs:13:18 - 13:31 (line 13, column 18 - line 13, column 31)
+
+  Could not match kind
+
+    [33mDiffKindsSameName.LibA.DemoKind[0m
+
+  with kind
+
+    [33mDiffKindsSameName.LibB.DemoKind[0m
+
+
+while checking the kind of [33mAProxy DemoData[0m
+in value declaration [33mbProxy[0m
+
+See https://github.com/purescript/documentation/blob/master/errors/KindsDoNotUnify.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/DiffKindsSameName/LibA.purs b/tests/purs/failing/DiffKindsSameName/LibA.purs
--- a/tests/purs/failing/DiffKindsSameName/LibA.purs
+++ b/tests/purs/failing/DiffKindsSameName/LibA.purs
@@ -1,4 +1,4 @@
 module DiffKindsSameName.LibA where
 
-foreign import kind DemoKind
+data DemoKind
 
diff --git a/tests/purs/failing/DiffKindsSameName/LibB.purs b/tests/purs/failing/DiffKindsSameName/LibB.purs
--- a/tests/purs/failing/DiffKindsSameName/LibB.purs
+++ b/tests/purs/failing/DiffKindsSameName/LibB.purs
@@ -1,6 +1,6 @@
 module DiffKindsSameName.LibB where
 
-foreign import kind DemoKind
+data DemoKind
 
 foreign import data DemoData :: DemoKind
 
diff --git a/tests/purs/failing/Do.out b/tests/purs/failing/Do.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/Do.out
@@ -0,0 +1,20 @@
+Error 1 of 2:
+
+  at tests/purs/failing/Do.purs:7:12 - 7:21 (line 7, column 12 - line 7, column 21)
+
+    The last statement in a 'do' block must be an expression, but this block ends with a let binding.
+
+
+  See https://github.com/purescript/documentation/blob/master/errors/InvalidDoLet.md for more information,
+  or to contribute content related to this error.
+
+Error 2 of 2:
+
+  at tests/purs/failing/Do.purs:9:14 - 9:20 (line 9, column 14 - line 9, column 20)
+
+    The last statement in a 'do' block must be an expression, but this block ends with a binder.
+
+
+  See https://github.com/purescript/documentation/blob/master/errors/InvalidDoBind.md for more information,
+  or to contribute content related to this error.
+
diff --git a/tests/purs/failing/DoNotSuggestComposition.out b/tests/purs/failing/DoNotSuggestComposition.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/DoNotSuggestComposition.out
@@ -0,0 +1,24 @@
+Error found:
+in module [33mDoNotSuggestComposition[0m
+at tests/purs/failing/DoNotSuggestComposition.purs:13:11 - 13:12 (line 13, column 11 - line 13, column 12)
+
+  Could not match type
+  [33m            [0m
+  [33m  { y :: Int[0m
+  [33m  }         [0m
+  [33m            [0m
+  with type
+  [33m        [0m
+  [33m  String[0m
+  [33m        [0m
+
+while checking that type [33m{ y :: Int[0m
+                         [33m}         [0m
+  is at least as general as type [33mString[0m
+while checking that expression [33mx[0m
+  has type [33mString[0m
+in value declaration [33mbar[0m
+
+See https://github.com/purescript/documentation/blob/master/errors/TypesDoNotUnify.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/DoNotSuggestComposition2.out b/tests/purs/failing/DoNotSuggestComposition2.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/DoNotSuggestComposition2.out
@@ -0,0 +1,24 @@
+Error found:
+in module [33mDoNotSuggestComposition2[0m
+at tests/purs/failing/DoNotSuggestComposition2.purs:7:27 - 7:30 (line 7, column 27 - line 7, column 30)
+
+  Could not match type
+  [33m        [0m
+  [33m  Record[0m
+  [33m        [0m
+  with type
+  [33m              [0m
+  [33m  Function Int[0m
+  [33m              [0m
+
+while trying to match type [33m{ y :: Int[0m
+                           [33m}         [0m
+  with type [33mInt -> t0[0m
+while inferring the type of [33mx 2[0m
+in value declaration [33mfoo[0m
+
+where [33mt0[0m is an unknown type
+
+See https://github.com/purescript/documentation/blob/master/errors/TypesDoNotUnify.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/DuplicateDeclarationsInLet.out b/tests/purs/failing/DuplicateDeclarationsInLet.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/DuplicateDeclarationsInLet.out
@@ -0,0 +1,10 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/DuplicateDeclarationsInLet.purs:9:3 - 9:14 (line 9, column 3 - line 9, column 14)
+
+  The name [33ma[0m was defined multiple times in a binding group
+
+
+See https://github.com/purescript/documentation/blob/master/errors/OverlappingNamesInLet.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/DuplicateDeclarationsInLet.purs b/tests/purs/failing/DuplicateDeclarationsInLet.purs
--- a/tests/purs/failing/DuplicateDeclarationsInLet.purs
+++ b/tests/purs/failing/DuplicateDeclarationsInLet.purs
@@ -1,8 +1,6 @@
 -- @shouldFailWith OverlappingNamesInLet
 module Main where
 
-import Prelude
-
 foo = a
   where
   a :: Number
diff --git a/tests/purs/failing/DuplicateDeclarationsInLet2.out b/tests/purs/failing/DuplicateDeclarationsInLet2.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/DuplicateDeclarationsInLet2.out
@@ -0,0 +1,10 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/DuplicateDeclarationsInLet2.purs:10:3 - 10:24 (line 10, column 3 - line 10, column 24)
+
+  The name [33minterrupted[0m was defined multiple times in a binding group
+
+
+See https://github.com/purescript/documentation/blob/master/errors/OverlappingNamesInLet.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/DuplicateDeclarationsInLet2.purs b/tests/purs/failing/DuplicateDeclarationsInLet2.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/DuplicateDeclarationsInLet2.purs
@@ -0,0 +1,10 @@
+-- @shouldFailWith OverlappingNamesInLet
+module Main where
+
+foo = interrupted
+  where
+  interrupted true = 1
+
+  interrupter = 2
+
+  interrupted false = 3
diff --git a/tests/purs/failing/DuplicateDeclarationsInLet3.out b/tests/purs/failing/DuplicateDeclarationsInLet3.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/DuplicateDeclarationsInLet3.out
@@ -0,0 +1,22 @@
+Error 1 of 2:
+
+  in module [33mMain[0m
+  at tests/purs/failing/DuplicateDeclarationsInLet3.purs:9:3 - 9:11 (line 9, column 3 - line 9, column 11)
+
+    The name [33ma[0m was defined multiple times in a binding group
+
+
+  See https://github.com/purescript/documentation/blob/master/errors/OverlappingNamesInLet.md for more information,
+  or to contribute content related to this error.
+
+Error 2 of 2:
+
+  in module [33mMain[0m
+  at tests/purs/failing/DuplicateDeclarationsInLet3.purs:16:3 - 16:24 (line 16, column 3 - line 16, column 24)
+
+    The name [33minterrupted[0m was defined multiple times in a binding group
+
+
+  See https://github.com/purescript/documentation/blob/master/errors/OverlappingNamesInLet.md for more information,
+  or to contribute content related to this error.
+
diff --git a/tests/purs/failing/DuplicateDeclarationsInLet3.purs b/tests/purs/failing/DuplicateDeclarationsInLet3.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/DuplicateDeclarationsInLet3.purs
@@ -0,0 +1,16 @@
+-- @shouldFailWith OverlappingNamesInLet
+-- @shouldFailWith OverlappingNamesInLet
+module Main where
+
+-- Should see separate errors for `a` and `interrupted`
+foo = interrupter + a
+  where
+  a = 0
+  a :: Int
+  a = 0
+
+  interrupted true = 1
+
+  interrupter = 2
+
+  interrupted false = 3
diff --git a/tests/purs/failing/DuplicateInstance.out b/tests/purs/failing/DuplicateInstance.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/DuplicateInstance.out
@@ -0,0 +1,17 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/DuplicateInstance.purs:6:1 - 6:16 (line 6, column 1 - line 6, column 16)
+
+  Instance [33mi[0m has been defined multiple times:
+
+    tests/purs/failing/DuplicateInstance.purs:6:1 - 6:16 (line 6, column 1 - line 6, column 16)
+
+
+in type class instance
+[33m         [0m
+[33m  Main.Y [0m
+[33m         [0m
+
+See https://github.com/purescript/documentation/blob/master/errors/DuplicateInstance.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/DuplicateModule.out b/tests/purs/failing/DuplicateModule.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/DuplicateModule.out
@@ -0,0 +1,9 @@
+Error found:
+at tests/purs/failing/DuplicateModule.purs:2:1 - 2:16 (line 2, column 1 - line 2, column 16)
+
+  Module [33mM1[0m has been defined multiple times
+
+
+See https://github.com/purescript/documentation/blob/master/errors/DuplicateModule.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/DuplicateProperties.out b/tests/purs/failing/DuplicateProperties.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/DuplicateProperties.out
@@ -0,0 +1,36 @@
+Error found:
+in module [33mDuplicateProperties[0m
+at tests/purs/failing/DuplicateProperties.purs:12:18 - 12:32 (line 12, column 18 - line 12, column 32)
+
+  Could not match type
+  [33m             [0m
+  [33m  ( y :: Unit[0m
+  [33m  ...        [0m
+  [33m  )          [0m
+  [33m             [0m
+  with type
+  [33m             [0m
+  [33m  ( x :: Unit[0m
+  [33m  ...        [0m
+  [33m  | t0       [0m
+  [33m  )          [0m
+  [33m             [0m
+
+while trying to match type [33mTest t1[0m
+  with type [33mTest         [0m
+            [33m  ( x :: Unit[0m
+            [33m  | t0       [0m
+            [33m  )          [0m
+while checking that expression [33msubtractX hasX[0m
+  has type [33mTest         [0m
+           [33m  ( x :: Unit[0m
+           [33m  | t0       [0m
+           [33m  )          [0m
+in value declaration [33mbaz[0m
+
+where [33mt0[0m is an unknown type
+      [33mt1[0m is an unknown type
+
+See https://github.com/purescript/documentation/blob/master/errors/TypesDoNotUnify.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/DuplicateProperties.purs b/tests/purs/failing/DuplicateProperties.purs
--- a/tests/purs/failing/DuplicateProperties.purs
+++ b/tests/purs/failing/DuplicateProperties.purs
@@ -3,7 +3,7 @@
 
 import Prelude
 
-foreign import data Test :: # Type -> Type
+foreign import data Test :: Row Type -> Type
 
 foreign import subtractX :: forall r. Test (x :: Unit | r) -> Test r
 
diff --git a/tests/purs/failing/DuplicateRoleDeclaration.out b/tests/purs/failing/DuplicateRoleDeclaration.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/DuplicateRoleDeclaration.out
@@ -0,0 +1,10 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/DuplicateRoleDeclaration.purs:6:1 - 6:20 (line 6, column 1 - line 6, column 20)
+
+  Duplicate role declaration for [33mA[0m.
+
+
+See https://github.com/purescript/documentation/blob/master/errors/DuplicateRoleDeclaration.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/DuplicateRoleDeclaration.purs b/tests/purs/failing/DuplicateRoleDeclaration.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/DuplicateRoleDeclaration.purs
@@ -0,0 +1,6 @@
+-- @shouldFailWith DuplicateRoleDeclaration
+module Main where
+
+data A a = A
+type role A nominal
+type role A phantom
diff --git a/tests/purs/failing/DuplicateTypeClass.out b/tests/purs/failing/DuplicateTypeClass.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/DuplicateTypeClass.out
@@ -0,0 +1,14 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/DuplicateTypeClass.purs:4:1 - 4:8 (line 4, column 1 - line 4, column 8)
+
+  Type class [33mC[0m has been defined multiple times:
+
+    tests/purs/failing/DuplicateTypeClass.purs:4:1 - 4:8 (line 4, column 1 - line 4, column 8)
+
+
+in type class declaration for [33mC[0m
+
+See https://github.com/purescript/documentation/blob/master/errors/DuplicateTypeClass.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/DuplicateTypeVars.out b/tests/purs/failing/DuplicateTypeVars.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/DuplicateTypeVars.out
@@ -0,0 +1,11 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/DuplicateTypeVars.purs:6:1 - 6:17 (line 6, column 1 - line 6, column 17)
+
+  Type argument [33ma[0m appears more than once.
+
+in type synonym [33mFoo[0m
+
+See https://github.com/purescript/documentation/blob/master/errors/DuplicateTypeArgument.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/EmptyCase.out b/tests/purs/failing/EmptyCase.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/EmptyCase.out
@@ -0,0 +1,10 @@
+Error found:
+at tests/purs/failing/EmptyCase.purs:4:25 - 4:26 (line 4, column 25 - line 4, column 26)
+
+  Unable to parse module:
+  Unexpected token '\'
+
+
+See https://github.com/purescript/documentation/blob/master/errors/ErrorParsingModule.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/EmptyClass.out b/tests/purs/failing/EmptyClass.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/EmptyClass.out
@@ -0,0 +1,10 @@
+Error found:
+at tests/purs/failing/EmptyClass.purs:6:1 - 6:1 (line 6, column 1 - line 6, column 1)
+
+  Unable to parse module:
+  Unexpected or mismatched indentation
+
+
+See https://github.com/purescript/documentation/blob/master/errors/ErrorParsingModule.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/EmptyDo.out b/tests/purs/failing/EmptyDo.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/EmptyDo.out
@@ -0,0 +1,10 @@
+Error found:
+at tests/purs/failing/EmptyDo.purs:7:1 - 7:1 (line 7, column 1 - line 7, column 1)
+
+  Unable to parse module:
+  Unexpected or mismatched indentation
+
+
+See https://github.com/purescript/documentation/blob/master/errors/ErrorParsingModule.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/ExpectedWildcard.out b/tests/purs/failing/ExpectedWildcard.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/ExpectedWildcard.out
@@ -0,0 +1,9 @@
+Error found:
+at tests/purs/failing/ExpectedWildcard.purs:8:1 - 8:51 (line 8, column 1 - line 8, column 51)
+
+  Expected a type wildcard (_) when deriving an instance for [33mTest[0m.
+
+
+See https://github.com/purescript/documentation/blob/master/errors/ExpectedWildcard.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/ExportConflictClass.out b/tests/purs/failing/ExportConflictClass.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/ExportConflictClass.out
@@ -0,0 +1,10 @@
+Error found:
+in module [33mC[0m
+at tests/purs/failing/ExportConflictClass.purs:2:21 - 2:29 (line 2, column 21 - line 2, column 29)
+
+  Export for type class [33mB.X[0m conflicts with type class [33mA.X[0m
+
+
+See https://github.com/purescript/documentation/blob/master/errors/ExportConflict.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/ExportConflictClass/B.out b/tests/purs/failing/ExportConflictClass/B.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/ExportConflictClass/B.out
@@ -0,0 +1,10 @@
+Error found:
+in module [33mC[0m
+at tests/purs/failing/ExportConflictClass.purs:2:21 - 2:29 (line 2, column 21 - line 2, column 29)
+
+  Export for type class [33mB.X[0m conflicts with type class [33mA.X[0m
+
+
+See https://github.com/purescript/documentation/blob/master/errors/ExportConflict.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/ExportConflictClassAndType.out b/tests/purs/failing/ExportConflictClassAndType.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/ExportConflictClassAndType.out
@@ -0,0 +1,10 @@
+Error found:
+in module [33mC[0m
+at tests/purs/failing/ExportConflictClassAndType.purs:2:21 - 2:29 (line 2, column 21 - line 2, column 29)
+
+  Export for type [33mB.X[0m conflicts with type class [33mA.X[0m
+
+
+See https://github.com/purescript/documentation/blob/master/errors/ExportConflict.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/ExportConflictClassAndType/B.out b/tests/purs/failing/ExportConflictClassAndType/B.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/ExportConflictClassAndType/B.out
@@ -0,0 +1,10 @@
+Error found:
+in module [33mC[0m
+at tests/purs/failing/ExportConflictClassAndType.purs:2:21 - 2:29 (line 2, column 21 - line 2, column 29)
+
+  Export for type [33mB.X[0m conflicts with type class [33mA.X[0m
+
+
+See https://github.com/purescript/documentation/blob/master/errors/ExportConflict.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/ExportConflictCtor.out b/tests/purs/failing/ExportConflictCtor.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/ExportConflictCtor.out
@@ -0,0 +1,10 @@
+Error found:
+in module [33mC[0m
+at tests/purs/failing/ExportConflictCtor.purs:2:21 - 2:29 (line 2, column 21 - line 2, column 29)
+
+  Export for data constructor [33mB.X[0m conflicts with data constructor [33mA.X[0m
+
+
+See https://github.com/purescript/documentation/blob/master/errors/ExportConflict.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/ExportConflictType.out b/tests/purs/failing/ExportConflictType.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/ExportConflictType.out
@@ -0,0 +1,10 @@
+Error found:
+in module [33mC[0m
+at tests/purs/failing/ExportConflictType.purs:2:21 - 2:29 (line 2, column 21 - line 2, column 29)
+
+  Export for type [33mB.T[0m conflicts with type [33mA.T[0m
+
+
+See https://github.com/purescript/documentation/blob/master/errors/ExportConflict.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/ExportConflictType/B.out b/tests/purs/failing/ExportConflictType/B.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/ExportConflictType/B.out
@@ -0,0 +1,10 @@
+Error found:
+in module [33mC[0m
+at tests/purs/failing/ExportConflictType.purs:2:21 - 2:29 (line 2, column 21 - line 2, column 29)
+
+  Export for type [33mB.T[0m conflicts with type [33mA.T[0m
+
+
+See https://github.com/purescript/documentation/blob/master/errors/ExportConflict.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/ExportConflictTypeOp.out b/tests/purs/failing/ExportConflictTypeOp.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/ExportConflictTypeOp.out
@@ -0,0 +1,10 @@
+Error found:
+in module [33mC[0m
+at tests/purs/failing/ExportConflictTypeOp.purs:2:21 - 2:29 (line 2, column 21 - line 2, column 29)
+
+  Export for type operator [33mB.(??)[0m conflicts with type operator [33mA.(??)[0m
+
+
+See https://github.com/purescript/documentation/blob/master/errors/ExportConflict.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/ExportConflictValue.out b/tests/purs/failing/ExportConflictValue.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/ExportConflictValue.out
@@ -0,0 +1,10 @@
+Error found:
+in module [33mC[0m
+at tests/purs/failing/ExportConflictValue.purs:2:21 - 2:29 (line 2, column 21 - line 2, column 29)
+
+  Export for value [33mB.x[0m conflicts with value [33mA.x[0m
+
+
+See https://github.com/purescript/documentation/blob/master/errors/ExportConflict.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/ExportConflictValueOp.out b/tests/purs/failing/ExportConflictValueOp.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/ExportConflictValueOp.out
@@ -0,0 +1,10 @@
+Error found:
+in module [33mC[0m
+at tests/purs/failing/ExportConflictValueOp.purs:2:21 - 2:29 (line 2, column 21 - line 2, column 29)
+
+  Export for operator [33mB.(!!)[0m conflicts with operator [33mA.(!!)[0m
+
+
+See https://github.com/purescript/documentation/blob/master/errors/ExportConflict.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/ExportConflictValueOp/B.out b/tests/purs/failing/ExportConflictValueOp/B.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/ExportConflictValueOp/B.out
@@ -0,0 +1,10 @@
+Error found:
+in module [33mC[0m
+at tests/purs/failing/ExportConflictValueOp.purs:2:21 - 2:29 (line 2, column 21 - line 2, column 29)
+
+  Export for operator [33mB.(!!)[0m conflicts with operator [33mA.(!!)[0m
+
+
+See https://github.com/purescript/documentation/blob/master/errors/ExportConflict.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/ExportExplicit.out b/tests/purs/failing/ExportExplicit.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/ExportExplicit.out
@@ -0,0 +1,10 @@
+Error found:
+in module [33mM1[0m
+at tests/purs/failing/ExportExplicit.purs:3:18 - 3:19 (line 3, column 18 - line 3, column 19)
+
+  Cannot export unknown value [33mz[0m
+
+
+See https://github.com/purescript/documentation/blob/master/errors/UnknownExport.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/ExportExplicit1.out b/tests/purs/failing/ExportExplicit1.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/ExportExplicit1.out
@@ -0,0 +1,22 @@
+Error 1 of 2:
+
+  in module [33mMain[0m
+  at tests/purs/failing/ExportExplicit1.purs:9:9 - 9:10 (line 9, column 9 - line 9, column 10)
+
+    Unknown data constructor [33mX[0m
+
+
+  See https://github.com/purescript/documentation/blob/master/errors/UnknownName.md for more information,
+  or to contribute content related to this error.
+
+Error 2 of 2:
+
+  in module [33mMain[0m
+  at tests/purs/failing/ExportExplicit1.purs:10:9 - 10:10 (line 10, column 9 - line 10, column 10)
+
+    Unknown data constructor [33mY[0m
+
+
+  See https://github.com/purescript/documentation/blob/master/errors/UnknownName.md for more information,
+  or to contribute content related to this error.
+
diff --git a/tests/purs/failing/ExportExplicit1.purs b/tests/purs/failing/ExportExplicit1.purs
--- a/tests/purs/failing/ExportExplicit1.purs
+++ b/tests/purs/failing/ExportExplicit1.purs
@@ -1,12 +1,12 @@
 -- @shouldFailWith UnknownName
+-- @shouldFailWith UnknownName
+-- should fail as X and Y constructors are not exported from M1
 module Main where
 
 import M1
 import Effect.Console (log)
 
 testX = X
-
--- should fail as Y constructor is not exported from M1
 testY = Y
 
 main = log "Done"
diff --git a/tests/purs/failing/ExportExplicit1/M1.purs b/tests/purs/failing/ExportExplicit1/M1.purs
--- a/tests/purs/failing/ExportExplicit1/M1.purs
+++ b/tests/purs/failing/ExportExplicit1/M1.purs
@@ -1,3 +1,3 @@
-module M1 (X(X)) where
+module M1 (X) where
 
 data X = X | Y
diff --git a/tests/purs/failing/ExportExplicit2.out b/tests/purs/failing/ExportExplicit2.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/ExportExplicit2.out
@@ -0,0 +1,10 @@
+Error found:
+in module [33mM1[0m
+at tests/purs/failing/ExportExplicit2.purs:3:12 - 3:16 (line 3, column 12 - line 3, column 16)
+
+  Cannot export data constructor [33mY[0m for type [33mX[0m, as it has not been declared.
+
+
+See https://github.com/purescript/documentation/blob/master/errors/UnknownExportDataConstructor.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/ExportExplicit3.out b/tests/purs/failing/ExportExplicit3.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/ExportExplicit3.out
@@ -0,0 +1,10 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/ExportExplicit3.purs:8:9 - 8:12 (line 8, column 9 - line 8, column 12)
+
+  Unknown data constructor [33mM.Z[0m
+
+
+See https://github.com/purescript/documentation/blob/master/errors/UnknownName.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/ExtraRecordField.out b/tests/purs/failing/ExtraRecordField.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/ExtraRecordField.out
@@ -0,0 +1,27 @@
+Error found:
+in module [33mExtraRecordField[0m
+at tests/purs/failing/ExtraRecordField.purs:9:13 - 9:54 (line 9, column 13 - line 9, column 54)
+
+  Type of expression contains additional label [33mage[0m.
+
+while checking that expression [33m{ first: "Jane"[0m
+                               [33m, last: "Smith"[0m
+                               [33m, age: 29      [0m
+                               [33m}              [0m
+  has type [33m{ first :: String[0m
+           [33m, last :: String [0m
+           [33m}                [0m
+while applying a function [33mfull[0m
+  of type [33m{ first :: String[0m
+          [33m, last :: String [0m
+          [33m}                [0m
+          [33m-> String        [0m
+  to argument [33m{ first: "Jane"[0m
+              [33m, last: "Smith"[0m
+              [33m, age: 29      [0m
+              [33m}              [0m
+in value declaration [33moops[0m
+
+See https://github.com/purescript/documentation/blob/master/errors/AdditionalProperty.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/ExtraneousClassMember.out b/tests/purs/failing/ExtraneousClassMember.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/ExtraneousClassMember.out
@@ -0,0 +1,13 @@
+Error found:
+at tests/purs/failing/ExtraneousClassMember.purs:11:3 - 11:10 (line 11, column 3 - line 11, column 10)
+
+  [33mb[0m is not a member of type class [33mMain.A[0m
+
+in type class instance
+[33m               [0m
+[33m  Main.A String[0m
+[33m               [0m
+
+See https://github.com/purescript/documentation/blob/master/errors/ExtraneousClassMember.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/FFIDefaultCJSExport.js b/tests/purs/failing/FFIDefaultCJSExport.js
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/FFIDefaultCJSExport.js
@@ -0,0 +1,1 @@
+exports.default = "Done";
diff --git a/tests/purs/failing/FFIDefaultCJSExport.out b/tests/purs/failing/FFIDefaultCJSExport.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/FFIDefaultCJSExport.out
@@ -0,0 +1,13 @@
+Error found:
+at tests/purs/failing/FFIDefaultCJSExport.purs:2:1 - 8:19 (line 2, column 1 - line 8, column 19)
+
+  A CommonJS foreign module implementation was provided for module [33mMain[0m:
+
+    tests/purs/failing/FFIDefaultCJSExport.js
+
+  CommonJS foreign modules are no longer supported. Use native JavaScript/ECMAScript module syntax instead.
+
+
+See https://github.com/purescript/documentation/blob/master/errors/DeprecatedFFICommonJSModule.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/FFIDefaultCJSExport.purs b/tests/purs/failing/FFIDefaultCJSExport.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/FFIDefaultCJSExport.purs
@@ -0,0 +1,8 @@
+-- @shouldFailWith DeprecatedFFICommonJSModule
+module Main where
+
+import Effect.Console (log)
+
+foreign import default :: String
+
+main = log default
diff --git a/tests/purs/failing/Foldable.out b/tests/purs/failing/Foldable.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/Foldable.out
@@ -0,0 +1,9 @@
+Error found:
+at tests/purs/failing/Foldable.purs:12:1 - 15:36 (line 12, column 1 - line 15, column 36)
+
+  The value of [33mfoldableL[0m is undefined here, so this reference is not allowed.
+
+
+See https://github.com/purescript/documentation/blob/master/errors/CycleInDeclaration.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/FoldableInstance1.out b/tests/purs/failing/FoldableInstance1.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/FoldableInstance1.out
@@ -0,0 +1,24 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/FoldableInstance1.purs:9:26 - 9:29 (line 9, column 26 - line 9, column 29)
+
+  Could not match kind
+  [33m      [0m
+  [33m  Type[0m
+  [33m      [0m
+  with kind
+  [33m              [0m
+  [33m  Type -> Type[0m
+  [33m              [0m
+
+while checking that type [33mFoo[0m
+  has kind [33mType -> Type[0m
+while inferring the kind of [33mFoldable Foo[0m
+in type class instance
+[33m                            [0m
+[33m  Data.Foldable.Foldable Foo[0m
+[33m                            [0m
+
+See https://github.com/purescript/documentation/blob/master/errors/KindsDoNotUnify.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/FoldableInstance1.purs b/tests/purs/failing/FoldableInstance1.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/FoldableInstance1.purs
@@ -0,0 +1,9 @@
+-- @shouldFailWith KindsDoNotUnify
+module Main where
+
+import Prelude
+import Data.Foldable (class Foldable)
+
+data Foo = Bar
+
+derive instance Foldable Foo
diff --git a/tests/purs/failing/FoldableInstance10.out b/tests/purs/failing/FoldableInstance10.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/FoldableInstance10.out
@@ -0,0 +1,16 @@
+Error found:
+in module [33mFoldableInstance10[0m
+at tests/purs/failing/FoldableInstance10.purs:11:1 - 11:30 (line 11, column 1 - line 11, column 30)
+
+  One or more type variables are in positions that prevent [33mFoldable[0m from being derived.
+  To derive this class, make sure that these variables are only used as the final arguments to type constructors, and that those type constructors themselves have instances of [33mData.Foldable.Foldable[0m or [33mData.Bifoldable.Bifoldable[0m.
+
+  tests/purs/failing/FoldableInstance10.purs:
+  [90m    9[0m [33m[0m
+  [90m   10[0m [33mdata Test a = Test (Variant (left :: [7ma[27m, right :: Array [7ma[27m))[0m
+  [90m   11[0m [33mderive instance Foldable Test[0m
+
+
+See https://github.com/purescript/documentation/blob/master/errors/CannotDeriveInvalidConstructorArg.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/FoldableInstance10.purs b/tests/purs/failing/FoldableInstance10.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/FoldableInstance10.purs
@@ -0,0 +1,11 @@
+-- @shouldFailWith CannotDeriveInvalidConstructorArg
+module FoldableInstance10 where
+
+import Prelude
+import Data.Tuple (Tuple)
+import Data.Foldable (class Foldable)
+
+foreign import data Variant :: Row Type -> Type
+
+data Test a = Test (Variant (left :: a, right :: Array a))
+derive instance Foldable Test
diff --git a/tests/purs/failing/FoldableInstance2.out b/tests/purs/failing/FoldableInstance2.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/FoldableInstance2.out
@@ -0,0 +1,24 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/FoldableInstance2.purs:10:26 - 10:29 (line 10, column 26 - line 10, column 29)
+
+  Could not match kind
+  [33m      [0m
+  [33m  Type[0m
+  [33m      [0m
+  with kind
+  [33m              [0m
+  [33m  Type -> Type[0m
+  [33m              [0m
+
+while checking that type [33mFoo[0m
+  has kind [33mType -> Type[0m
+while inferring the kind of [33mFoldable Foo[0m
+in type class instance
+[33m                            [0m
+[33m  Data.Foldable.Foldable Foo[0m
+[33m                            [0m
+
+See https://github.com/purescript/documentation/blob/master/errors/KindsDoNotUnify.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/FoldableInstance2.purs b/tests/purs/failing/FoldableInstance2.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/FoldableInstance2.purs
@@ -0,0 +1,10 @@
+-- @shouldFailWith KindsDoNotUnify
+module Main where
+
+import Prelude
+import Data.Foldable (class Foldable)
+
+data Foo :: (Type -> Type) -> Type
+data Foo a = Bar
+
+derive instance Foldable Foo
diff --git a/tests/purs/failing/FoldableInstance3.out b/tests/purs/failing/FoldableInstance3.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/FoldableInstance3.out
@@ -0,0 +1,24 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/FoldableInstance3.purs:9:26 - 9:29 (line 9, column 26 - line 9, column 29)
+
+  Could not match kind
+  [33m      [0m
+  [33m  Type[0m
+  [33m      [0m
+  with kind
+  [33m              [0m
+  [33m  Type -> Type[0m
+  [33m              [0m
+
+while checking that type [33mFoo[0m
+  has kind [33mType -> Type[0m
+while inferring the kind of [33mFoldable Foo[0m
+in type class instance
+[33m                            [0m
+[33m  Data.Foldable.Foldable Foo[0m
+[33m                            [0m
+
+See https://github.com/purescript/documentation/blob/master/errors/KindsDoNotUnify.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/FoldableInstance3.purs b/tests/purs/failing/FoldableInstance3.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/FoldableInstance3.purs
@@ -0,0 +1,9 @@
+-- @shouldFailWith KindsDoNotUnify
+module Main where
+
+import Prelude
+import Data.Foldable (class Foldable)
+
+data Foo f = Bar (f Int)
+
+derive instance Foldable Foo
diff --git a/tests/purs/failing/FoldableInstance4.out b/tests/purs/failing/FoldableInstance4.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/FoldableInstance4.out
@@ -0,0 +1,16 @@
+Error found:
+in module [33mFoldableInstance4[0m
+at tests/purs/failing/FoldableInstance4.purs:8:1 - 8:27 (line 8, column 1 - line 8, column 27)
+
+  One or more type variables are in positions that prevent [33mFoldable[0m from being derived.
+  To derive this class, make sure that these variables are only used as the final arguments to type constructors, and that those type constructors themselves have instances of [33mData.Foldable.Foldable[0m or [33mData.Bifoldable.Bifoldable[0m.
+
+  tests/purs/failing/FoldableInstance4.purs:
+  [90m    6[0m [33m[0m
+  [90m    7[0m [33mdata T a = T (forall t. Show t => t -> [7ma[27m)[0m
+  [90m    8[0m [33mderive instance Foldable T[0m
+
+
+See https://github.com/purescript/documentation/blob/master/errors/CannotDeriveInvalidConstructorArg.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/FoldableInstance4.purs b/tests/purs/failing/FoldableInstance4.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/FoldableInstance4.purs
@@ -0,0 +1,8 @@
+-- @shouldFailWith CannotDeriveInvalidConstructorArg
+module FoldableInstance4 where
+
+import Prelude
+import Data.Foldable (class Foldable)
+
+data T a = T (forall t. Show t => t -> a)
+derive instance Foldable T
diff --git a/tests/purs/failing/FoldableInstance6.out b/tests/purs/failing/FoldableInstance6.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/FoldableInstance6.out
@@ -0,0 +1,16 @@
+Error found:
+in module [33mFoldableInstance6[0m
+at tests/purs/failing/FoldableInstance6.purs:8:1 - 8:30 (line 8, column 1 - line 8, column 30)
+
+  One or more type variables are in positions that prevent [33mFoldable[0m from being derived.
+  To derive this class, make sure that these variables are only used as the final arguments to type constructors, and that those type constructors themselves have instances of [33mData.Foldable.Foldable[0m or [33mData.Bifoldable.Bifoldable[0m.
+
+  tests/purs/failing/FoldableInstance6.purs:
+  [90m    6[0m [33m[0m
+  [90m    7[0m [33mdata Test a = Test ([7ma[27m -> Int)[0m
+  [90m    8[0m [33mderive instance Foldable Test[0m
+
+
+See https://github.com/purescript/documentation/blob/master/errors/CannotDeriveInvalidConstructorArg.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/FoldableInstance6.purs b/tests/purs/failing/FoldableInstance6.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/FoldableInstance6.purs
@@ -0,0 +1,8 @@
+-- @shouldFailWith CannotDeriveInvalidConstructorArg
+module FoldableInstance6 where
+
+import Prelude
+import Data.Foldable (class Foldable)
+
+data Test a = Test (a -> Int)
+derive instance Foldable Test
diff --git a/tests/purs/failing/FoldableInstance8.out b/tests/purs/failing/FoldableInstance8.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/FoldableInstance8.out
@@ -0,0 +1,16 @@
+Error found:
+in module [33mFoldableInstance6[0m
+at tests/purs/failing/FoldableInstance8.purs:8:1 - 8:34 (line 8, column 1 - line 8, column 34)
+
+  One or more type variables are in positions that prevent [33mFoldable[0m from being derived.
+  To derive this class, make sure that these variables are only used as the final arguments to type constructors, and that those type constructors themselves have instances of [33mData.Foldable.Foldable[0m or [33mData.Bifoldable.Bifoldable[0m.
+
+  tests/purs/failing/FoldableInstance8.purs:
+  [90m    6[0m [33m[0m
+  [90m    7[0m [33mdata Test f a = Test (f [7ma[27m [7ma[27m)[0m
+  [90m    8[0m [33mderive instance Foldable (Test f)[0m
+
+
+See https://github.com/purescript/documentation/blob/master/errors/CannotDeriveInvalidConstructorArg.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/FoldableInstance8.purs b/tests/purs/failing/FoldableInstance8.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/FoldableInstance8.purs
@@ -0,0 +1,8 @@
+-- @shouldFailWith CannotDeriveInvalidConstructorArg
+module FoldableInstance6 where
+
+import Prelude
+import Data.Foldable (class Foldable)
+
+data Test f a = Test (f a a)
+derive instance Foldable (Test f)
diff --git a/tests/purs/failing/FoldableInstance9.out b/tests/purs/failing/FoldableInstance9.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/FoldableInstance9.out
@@ -0,0 +1,51 @@
+Error found:
+in module [33mFoldableInstance9[0m
+at tests/purs/failing/FoldableInstance9.purs:53:1 - 53:38 (line 53, column 1 - line 53, column 38)
+
+  One or more type variables are in positions that prevent [33mFoldable[0m from being derived.
+  To derive this class, make sure that these variables are only used as the final arguments to type constructors, and that those type constructors themselves have instances of [33mData.Foldable.Foldable[0m or [33mData.Bifoldable.Bifoldable[0m.
+
+  tests/purs/failing/FoldableInstance9.purs:
+  [90m   15[0m [33mdata Test f g h a[0m
+  [90m   16[0m [33m  = Test1 (f [7ma[27m [7ma[27m [7ma[27m) (f Int [7ma[27m [7ma[27m) (f [7ma[27m [7ma[27m Int) (f Int [7ma[27m Int) (f Int Int Int)[0m
+  [90m   17[0m [33m  | Test2 { all :: f [7ma[27m [7ma[27m [7ma[27m[0m
+  [90m   18[0m [33m          , rights :: f Int [7ma[27m [7ma[27m[0m
+  [90m   19[0m [33m          , lefts :: f [7ma[27m [7ma[27m Int[0m
+  [90m   20[0m [33m          , middle :: f Int [7ma[27m Int[0m
+  [90m   21[0m [33m          , none :: f Int Int Int[0m
+  [90m   22[0m [33m          }[0m
+  [90m   23[0m [33m  | Test3 (g[0m
+  [90m   24[0m [33m            { all :: f [7ma[27m [7ma[27m [7ma[27m[0m
+  [90m   25[0m [33m            , rights :: f Int [7ma[27m [7ma[27m[0m
+  [90m   26[0m [33m            , lefts :: f [7ma[27m [7ma[27m Int[0m
+  [90m   27[0m [33m            , middle :: f Int [7ma[27m Int[0m
+  [90m   28[0m [33m            , none :: f Int Int Int[0m
+  [90m   29[0m [33m            }[0m
+  [90m   30[0m [33m            [7ma[27m)[0m
+  [90m   31[0m [33m  | Test4 (h[0m
+  [90m   32[0m [33m            { nested1 ::[0m
+  [90m   33[0m [33m                { all :: f [7ma[27m [7ma[27m [7ma[27m[0m
+  [90m   34[0m [33m                , rights :: f Int [7ma[27m [7ma[27m[0m
+  [90m   35[0m [33m                , lefts :: f [7ma[27m [7ma[27m Int[0m
+  [90m   36[0m [33m                , middle :: f Int [7ma[27m Int[0m
+  [90m   37[0m [33m                , none :: f Int Int Int[0m
+  [90m  ...[0m
+  [90m   40[0m [33m                g[0m
+  [90m   41[0m [33m                  { all :: f [7ma[27m [7ma[27m [7ma[27m[0m
+  [90m   42[0m [33m                  , rights :: f Int [7ma[27m [7ma[27m[0m
+  [90m   43[0m [33m                  , lefts :: f [7ma[27m [7ma[27m Int[0m
+  [90m   44[0m [33m                  , middle :: f Int [7ma[27m Int[0m
+  [90m   45[0m [33m                  , none :: f Int Int Int[0m
+  [90m   46[0m [33m                  }[0m
+  [90m   47[0m [33m                  [7ma[27m[0m
+  [90m   48[0m [33m            }[0m
+  [90m   49[0m [33m            [7ma[27m)[0m
+  [90m   50[0m [33m  | Test5 (Rec f [7ma[27m)[0m
+  [90m   51[0m [33m  | Test6 (g (Rec f [7ma[27m) [7ma[27m)[0m
+  [90m   52[0m [33m  | Test7 (h { nested1 :: Rec f [7ma[27m, nested2 :: g (Rec f [7ma[27m) [7ma[27m } [7ma[27m)[0m
+  [90m   53[0m [33mderive instance Foldable (Test f g h)[0m
+
+
+See https://github.com/purescript/documentation/blob/master/errors/CannotDeriveInvalidConstructorArg.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/FoldableInstance9.purs b/tests/purs/failing/FoldableInstance9.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/FoldableInstance9.purs
@@ -0,0 +1,53 @@
+-- @shouldFailWith CannotDeriveInvalidConstructorArg
+module FoldableInstance9 where
+
+import Prelude
+import Data.Tuple (Tuple)
+import Data.Foldable (class Foldable)
+
+type Rec f a =
+  { all :: f a a a
+  , rights :: f Int a a
+  , lefts :: f a a Int
+  , middle :: f Int a Int
+  , none :: f Int Int Int
+  }
+data Test f g h a
+  = Test1 (f a a a) (f Int a a) (f a a Int) (f Int a Int) (f Int Int Int)
+  | Test2 { all :: f a a a
+          , rights :: f Int a a
+          , lefts :: f a a Int
+          , middle :: f Int a Int
+          , none :: f Int Int Int
+          }
+  | Test3 (g
+            { all :: f a a a
+            , rights :: f Int a a
+            , lefts :: f a a Int
+            , middle :: f Int a Int
+            , none :: f Int Int Int
+            }
+            a)
+  | Test4 (h
+            { nested1 ::
+                { all :: f a a a
+                , rights :: f Int a a
+                , lefts :: f a a Int
+                , middle :: f Int a Int
+                , none :: f Int Int Int
+                }
+            , nested2 ::
+                g
+                  { all :: f a a a
+                  , rights :: f Int a a
+                  , lefts :: f a a Int
+                  , middle :: f Int a Int
+                  , none :: f Int Int Int
+                  }
+                  a
+            }
+            a)
+  | Test5 (Rec f a)
+  | Test6 (g (Rec f a) a)
+  | Test7 (h { nested1 :: Rec f a, nested2 :: g (Rec f a) a } a)
+derive instance Foldable (Test f g h)
diff --git a/tests/purs/failing/FunctorInstance1.out b/tests/purs/failing/FunctorInstance1.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/FunctorInstance1.out
@@ -0,0 +1,16 @@
+Error found:
+in module [33mFunctorInstance1[0m
+at tests/purs/failing/FunctorInstance1.purs:8:1 - 8:29 (line 8, column 1 - line 8, column 29)
+
+  One or more type variables are in positions that prevent [33mFunctor[0m from being derived.
+  To derive this class, make sure that these variables are only used as the final arguments to type constructors, that their variance matches the variance of [33mFunctor[0m, and that those type constructors themselves have instances of [33mData.Functor.Functor[0m, [33mData.Bifunctor.Bifunctor[0m, [33mData.Functor.Contravariant.Contravariant[0m, or [33mData.Profunctor.Profunctor[0m.
+
+  tests/purs/failing/FunctorInstance1.purs:
+  [90m    6[0m [33m[0m
+  [90m    7[0m [33mdata Test a = Test (Predicate [7ma[27m)[0m
+  [90m    8[0m [33mderive instance Functor Test[0m
+
+
+See https://github.com/purescript/documentation/blob/master/errors/CannotDeriveInvalidConstructorArg.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/FunctorInstance1.purs b/tests/purs/failing/FunctorInstance1.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/FunctorInstance1.purs
@@ -0,0 +1,8 @@
+-- @shouldFailWith CannotDeriveInvalidConstructorArg
+module FunctorInstance1 where
+
+import Prelude
+import Data.Predicate (Predicate)
+
+data Test a = Test (Predicate a)
+derive instance Functor Test
diff --git a/tests/purs/failing/Generalization1.out b/tests/purs/failing/Generalization1.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/Generalization1.out
@@ -0,0 +1,16 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/Generalization1.purs:6:1 - 6:14 (line 6, column 1 - line 6, column 14)
+
+  Unable to generalize the type of the recursive function [33mfoo[0m.
+  The inferred type of [33mfoo[0m was:
+  [33m                                                  [0m
+  [33m  forall t4. Semigroup t4 => Int -> t4 -> t4 -> t4[0m
+  [33m                                                  [0m
+  Try adding a type signature.
+
+in binding group foo, bar
+
+See https://github.com/purescript/documentation/blob/master/errors/CannotGeneralizeRecursiveFunction.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/Generalization2.out b/tests/purs/failing/Generalization2.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/Generalization2.out
@@ -0,0 +1,16 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/Generalization2.purs:6:1 - 7:45 (line 6, column 1 - line 7, column 45)
+
+  Unable to generalize the type of the recursive function [33mtest[0m.
+  The inferred type of [33mtest[0m was:
+  [33m                                            [0m
+  [33m  forall a7. Semigroup a7 => Int -> a7 -> a7[0m
+  [33m                                            [0m
+  Try adding a type signature.
+
+in binding group test
+
+See https://github.com/purescript/documentation/blob/master/errors/CannotGeneralizeRecursiveFunction.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/ImportExplicit.out b/tests/purs/failing/ImportExplicit.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/ImportExplicit.out
@@ -0,0 +1,11 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/ImportExplicit.purs:4:12 - 4:17 (line 4, column 12 - line 4, column 17)
+
+  Cannot import type [33mX[0m from module [33mM1[0m
+  It either does not exist or the module does not export it.
+
+
+See https://github.com/purescript/documentation/blob/master/errors/UnknownImport.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/ImportExplicit/M1.out b/tests/purs/failing/ImportExplicit/M1.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/ImportExplicit/M1.out
@@ -0,0 +1,11 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/ImportExplicit.purs:4:12 - 4:17 (line 4, column 12 - line 4, column 17)
+
+  Cannot import type [33mX[0m from module [33mM1[0m
+  It either does not exist or the module does not export it.
+
+
+See https://github.com/purescript/documentation/blob/master/errors/UnknownImport.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/ImportExplicit2.out b/tests/purs/failing/ImportExplicit2.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/ImportExplicit2.out
@@ -0,0 +1,10 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/ImportExplicit2.purs:4:12 - 4:19 (line 4, column 12 - line 4, column 19)
+
+  Module M1 does not export data constructor [33mZ[0m for type [33mX[0m
+
+
+See https://github.com/purescript/documentation/blob/master/errors/UnknownImportDataConstructor.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/ImportHidingModule.out b/tests/purs/failing/ImportHidingModule.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/ImportHidingModule.out
@@ -0,0 +1,10 @@
+Error found:
+at tests/purs/failing/ImportHidingModule.purs:4:18 - 4:24 (line 4, column 18 - line 4, column 24)
+
+  Unable to parse module:
+  Unexpected token 'module'
+
+
+See https://github.com/purescript/documentation/blob/master/errors/ErrorParsingModule.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/ImportModule.out b/tests/purs/failing/ImportModule.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/ImportModule.out
@@ -0,0 +1,11 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/ImportModule.purs:4:1 - 4:10 (line 4, column 1 - line 4, column 10)
+
+  Module [33mM1[0m was not found.
+  Make sure the source file exists, and that it has been provided as an input to the compiler.
+
+
+See https://github.com/purescript/documentation/blob/master/errors/ModuleNotFound.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/InfiniteKind.out b/tests/purs/failing/InfiniteKind.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/InfiniteKind.out
@@ -0,0 +1,19 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/InfiniteKind.purs:5:17 - 5:18 (line 5, column 17 - line 5, column 18)
+
+  An infinite kind was inferred for a type:
+  [33m          [0m
+  [33m  t5 -> t6[0m
+  [33m          [0m
+
+while checking that type [33ma[0m
+  has kind [33mt0[0m
+while inferring the kind of [33ma a[0m
+in type constructor [33mF[0m
+
+where [33mt0[0m is an unknown type
+
+See https://github.com/purescript/documentation/blob/master/errors/InfiniteKind.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/InfiniteKind2.out b/tests/purs/failing/InfiniteKind2.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/InfiniteKind2.out
@@ -0,0 +1,19 @@
+Error found:
+in module [33mInfiniteKind2[0m
+at tests/purs/failing/InfiniteKind2.purs:5:23 - 5:27 (line 5, column 23 - line 5, column 27)
+
+  An infinite kind was inferred for a type:
+  [33m                    [0m
+  [33m  (t5 -> t6) -> Type[0m
+  [33m                    [0m
+
+while checking that type [33mTree[0m
+  has kind [33mt0[0m
+while inferring the kind of [33mm Tree[0m
+in data binding group Tree
+
+where [33mt0[0m is an unknown type
+
+See https://github.com/purescript/documentation/blob/master/errors/InfiniteKind.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/InfiniteKind2.purs b/tests/purs/failing/InfiniteKind2.purs
--- a/tests/purs/failing/InfiniteKind2.purs
+++ b/tests/purs/failing/InfiniteKind2.purs
@@ -2,4 +2,4 @@
 
 module InfiniteKind2 where
 
-data Tree m a = Tree a (m (Tree a))
+data Tree m = Tree (m Tree)
diff --git a/tests/purs/failing/InfiniteType.out b/tests/purs/failing/InfiniteType.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/InfiniteType.out
@@ -0,0 +1,21 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/InfiniteType.purs:5:7 - 5:10 (line 5, column 7 - line 5, column 10)
+
+  An infinite type was inferred for an expression:
+  [33m          [0m
+  [33m  t0 -> t1[0m
+  [33m          [0m
+
+while trying to match type [33mt0[0m
+  with type [33mt0 -> t1[0m
+while inferring the type of [33m\a -> [0m
+                            [33m  a a [0m
+in value declaration [33mf[0m
+
+where [33mt0[0m is an unknown type
+      [33mt1[0m is an unknown type
+
+See https://github.com/purescript/documentation/blob/master/errors/InfiniteType.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/InstanceChainBothUnknownAndMatch.out b/tests/purs/failing/InstanceChainBothUnknownAndMatch.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/InstanceChainBothUnknownAndMatch.out
@@ -0,0 +1,39 @@
+Error found:
+in module [33mInstanceChains.BothUnknownAndMatch[0m
+at tests/purs/failing/InstanceChainBothUnknownAndMatch.purs:15:13 - 15:53 (line 15, column 13 - line 15, column 53)
+
+  No type class instance was found for
+  [33m                                                       [0m
+  [33m  InstanceChains.BothUnknownAndMatch.Same (Proxy       [0m
+  [33m                                             ( m :: Int[0m
+  [33m                                             , u :: t3 [0m
+  [33m                                             )         [0m
+  [33m                                          )            [0m
+  [33m                                          (Proxy       [0m
+  [33m                                             ( m :: Int[0m
+  [33m                                             , u :: Int[0m
+  [33m                                             )         [0m
+  [33m                                          )            [0m
+  [33m                                          t4           [0m
+  [33m                                                       [0m
+  The following instance partially overlaps the above constraint, which means the rest of its instance chain will not be considered:
+
+    [33mInstanceChains.BothUnknownAndMatch.sameY[0m
+
+
+while applying a function [33msame[0m
+  of type [33mSame @Type @Type t0 t1 t2 => t0 -> t1 -> Proxy @Symbol t2[0m
+  to argument [33mProxy[0m
+while inferring the type of [33msame Proxy[0m
+in value declaration [33mexample[0m
+
+where [33mt3[0m is a rigid type variable
+        bound at (line 0, column 0 - line 0, column 0)
+      [33mt4[0m is an unknown type
+      [33mt0[0m is an unknown type
+      [33mt1[0m is an unknown type
+      [33mt2[0m is an unknown type
+
+See https://github.com/purescript/documentation/blob/master/errors/NoInstanceFound.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/InstanceChainBothUnknownAndMatch.purs b/tests/purs/failing/InstanceChainBothUnknownAndMatch.purs
--- a/tests/purs/failing/InstanceChainBothUnknownAndMatch.purs
+++ b/tests/purs/failing/InstanceChainBothUnknownAndMatch.purs
@@ -1,18 +1,16 @@
 -- @shouldFailWith NoInstanceFound
 module InstanceChains.BothUnknownAndMatch where
 
-import Type.Proxy (Proxy)
-import Type.Row (RProxy(..))
-import Data.Symbol (SProxy(..))
+import Type.Proxy (Proxy(..))
 
 class Same l r (o :: Symbol) | l r -> o
 instance sameY :: Same t t "Y" else instance sameN :: Same l r "N"
-same :: forall l r o. Same l r o => l -> r -> SProxy o
-same _ _ = SProxy
+same :: forall l r o. Same l r o => l -> r -> Proxy o
+same _ _ = Proxy
 
 -- for label `u`, `t ~ Int` should be Unknown
 -- for label `m`, `Int ~ Int` should be a match
 -- together they should be Unknown
-example :: forall t. Proxy t -> SProxy _
-example _ = same (RProxy :: RProxy (u :: t, m :: Int))
-                 (RProxy :: RProxy (u :: Int, m :: Int))
+example :: forall t. Proxy t -> Proxy _
+example _ = same (Proxy :: Proxy (u :: t, m :: Int))
+                 (Proxy :: Proxy (u :: Int, m :: Int))
diff --git a/tests/purs/failing/InstanceChainSkolemUnknownMatch.out b/tests/purs/failing/InstanceChainSkolemUnknownMatch.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/InstanceChainSkolemUnknownMatch.out
@@ -0,0 +1,31 @@
+Error found:
+in module [33mInstanceChainSkolemUnknownMatch[0m
+at tests/purs/failing/InstanceChainSkolemUnknownMatch.purs:13:13 - 13:36 (line 13, column 13 - line 13, column 36)
+
+  No type class instance was found for
+  [33m                                                  [0m
+  [33m  InstanceChainSkolemUnknownMatch.Same (Proxy t3) [0m
+  [33m                                       (Proxy Int)[0m
+  [33m                                       t4         [0m
+  [33m                                                  [0m
+  The following instance partially overlaps the above constraint, which means the rest of its instance chain will not be considered:
+
+    [33mInstanceChainSkolemUnknownMatch.sameY[0m
+
+
+while applying a function [33msame[0m
+  of type [33mSame @Type @Type t0 t1 t2 => t0 -> t1 -> Proxy @Symbol t2[0m
+  to argument [33mProxy[0m
+while inferring the type of [33msame Proxy[0m
+in value declaration [33mexample[0m
+
+where [33mt3[0m is a rigid type variable
+        bound at (line 0, column 0 - line 0, column 0)
+      [33mt4[0m is an unknown type
+      [33mt0[0m is an unknown type
+      [33mt1[0m is an unknown type
+      [33mt2[0m is an unknown type
+
+See https://github.com/purescript/documentation/blob/master/errors/NoInstanceFound.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/InstanceChainSkolemUnknownMatch.purs b/tests/purs/failing/InstanceChainSkolemUnknownMatch.purs
--- a/tests/purs/failing/InstanceChainSkolemUnknownMatch.purs
+++ b/tests/purs/failing/InstanceChainSkolemUnknownMatch.purs
@@ -2,14 +2,13 @@
 module InstanceChainSkolemUnknownMatch where
 
 import Type.Proxy (Proxy(..))
-import Data.Symbol (SProxy(..))
 
 class Same l r (o :: Symbol) | l r -> o
 instance sameY :: Same t t "Y" else instance sameN :: Same l r "N"
-same :: forall l r o. Same l r o => l -> r -> SProxy o
-same _ _ = SProxy
+same :: forall l r o. Same l r o => l -> r -> Proxy o
+same _ _ = Proxy
 
 -- shouldn't discard sameY as Apart
-example :: forall t. Proxy t -> SProxy _
+example :: forall (t :: Type). Proxy t -> Proxy _
 example _ = same (Proxy :: Proxy t) (Proxy :: Proxy Int)
 
diff --git a/tests/purs/failing/InstanceExport.out b/tests/purs/failing/InstanceExport.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/InstanceExport.out
@@ -0,0 +1,13 @@
+Error found:
+in module [33mInstanceExport[0m
+at tests/purs/failing/InstanceExport/InstanceExport.purs:1:1 - 11:14 (line 1, column 1 - line 11, column 14)
+
+  An export for [33mf[0m requires the following to also be exported:
+
+    [33mclass F[0m
+
+
+
+See https://github.com/purescript/documentation/blob/master/errors/TransitiveExportError.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/InstanceNamedWithoutSeparator.out b/tests/purs/failing/InstanceNamedWithoutSeparator.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/InstanceNamedWithoutSeparator.out
@@ -0,0 +1,10 @@
+Error found:
+at tests/purs/failing/InstanceNamedWithoutSeparator.purs:9:23 - 9:26 (line 9, column 23 - line 9, column 26)
+
+  Unable to parse module:
+  Unexpected token 'Foo'
+
+
+See https://github.com/purescript/documentation/blob/master/errors/ErrorParsingModule.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/InstanceNamedWithoutSeparator.purs b/tests/purs/failing/InstanceNamedWithoutSeparator.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/InstanceNamedWithoutSeparator.purs
@@ -0,0 +1,12 @@
+-- @shouldFailWith ErrorParsingModule
+module Main where
+
+import Effect.Console (log)
+
+class Foo a
+-- the "::" separator between the name and class name
+-- needs to be added.
+instance instanceName Foo x
+-- else instance Foo x
+
+main = log "Done"
diff --git a/tests/purs/failing/InstanceSigsBodyIncorrect.out b/tests/purs/failing/InstanceSigsBodyIncorrect.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/InstanceSigsBodyIncorrect.out
@@ -0,0 +1,22 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/InstanceSigsBodyIncorrect.purs:10:9 - 10:13 (line 10, column 9 - line 10, column 13)
+
+  Could not match type
+  [33m         [0m
+  [33m  Boolean[0m
+  [33m         [0m
+  with type
+  [33m        [0m
+  [33m  Number[0m
+  [33m        [0m
+
+while checking that type [33mBoolean[0m
+  is at least as general as type [33mNumber[0m
+while checking that expression [33mtrue[0m
+  has type [33mNumber[0m
+in value declaration [33mfooNumber[0m
+
+See https://github.com/purescript/documentation/blob/master/errors/TypesDoNotUnify.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/InstanceSigsDifferentTypes.out b/tests/purs/failing/InstanceSigsDifferentTypes.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/InstanceSigsDifferentTypes.out
@@ -0,0 +1,22 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/InstanceSigsDifferentTypes.purs:10:9 - 10:12 (line 10, column 9 - line 10, column 12)
+
+  Could not match type
+  [33m        [0m
+  [33m  Number[0m
+  [33m        [0m
+  with type
+  [33m     [0m
+  [33m  Int[0m
+  [33m     [0m
+
+while checking that type [33mNumber[0m
+  is at least as general as type [33mInt[0m
+while checking that expression [33m0.0[0m
+  has type [33mInt[0m
+in value declaration [33mfooNumber[0m
+
+See https://github.com/purescript/documentation/blob/master/errors/TypesDoNotUnify.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/InstanceSigsIncorrectType.out b/tests/purs/failing/InstanceSigsIncorrectType.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/InstanceSigsIncorrectType.out
@@ -0,0 +1,25 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/InstanceSigsIncorrectType.purs:8:1 - 10:13 (line 8, column 1 - line 10, column 13)
+
+  Could not match type
+  [33m         [0m
+  [33m  Boolean[0m
+  [33m         [0m
+  with type
+  [33m        [0m
+  [33m  Number[0m
+  [33m        [0m
+
+while trying to match type [33mFoo$Dict t0[0m
+  with type [33mFoo$Dict Number[0m
+while checking that expression [33mFoo$Dict { foo: true[0m
+                               [33m         }          [0m
+  has type [33mFoo$Dict Number[0m
+in value declaration [33mfooNumber[0m
+
+where [33mt0[0m is an unknown type
+
+See https://github.com/purescript/documentation/blob/master/errors/TypesDoNotUnify.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/InstanceSigsOrphanTypeDeclaration.out b/tests/purs/failing/InstanceSigsOrphanTypeDeclaration.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/InstanceSigsOrphanTypeDeclaration.out
@@ -0,0 +1,10 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/InstanceSigsOrphanTypeDeclaration.purs:10:3 - 10:12 (line 10, column 3 - line 10, column 12)
+
+  The type declaration for [33mbar[0m should be followed by its definition.
+
+
+See https://github.com/purescript/documentation/blob/master/errors/OrphanTypeDeclaration.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/IntAsRecordLabel.out b/tests/purs/failing/IntAsRecordLabel.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/IntAsRecordLabel.out
@@ -0,0 +1,10 @@
+Error found:
+at tests/purs/failing/IntAsRecordLabel.purs:4:27 - 4:29 (line 4, column 27 - line 4, column 29)
+
+  Unable to parse module:
+  Unexpected token '42'
+
+
+See https://github.com/purescript/documentation/blob/master/errors/ErrorParsingModule.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/IntAsRecordLabel.purs b/tests/purs/failing/IntAsRecordLabel.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/IntAsRecordLabel.purs
@@ -0,0 +1,4 @@
+-- @shouldFailWith ErrorParsingModule
+module Main where
+
+type IntAsRecordLabel = { 42 :: Int }
diff --git a/tests/purs/failing/IntOutOfRange.out b/tests/purs/failing/IntOutOfRange.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/IntOutOfRange.out
@@ -0,0 +1,11 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/IntOutOfRange.purs:6:5 - 6:15 (line 6, column 5 - line 6, column 15)
+
+  Integer value [33m2147483648[0m is out of range for the JavaScript backend.
+  Acceptable values fall within the range [33m-2147483648[0m to [33m2147483647[0m (inclusive).
+
+
+See https://github.com/purescript/documentation/blob/master/errors/IntOutOfRange.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/IntToString1.out b/tests/purs/failing/IntToString1.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/IntToString1.out
@@ -0,0 +1,31 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/IntToString1.purs:14:15 - 14:46 (line 14, column 15 - line 14, column 46)
+
+  Could not match type
+  [33m     [0m
+  [33m  "1"[0m
+  [33m     [0m
+  with type
+  [33m     [0m
+  [33m  "a"[0m
+  [33m     [0m
+
+while solving type class constraint
+[33m                       [0m
+[33m  Prim.Int.ToString 1  [0m
+[33m                    "a"[0m
+[33m                       [0m
+while applying a function [33mtestToString[0m
+  of type [33mToString t0 t1 => Proxy @Int t0 -> Proxy @Symbol t1[0m
+  to argument [33mProxy[0m
+while checking that expression [33mtestToString Proxy[0m
+  has type [33mProxy @Symbol "a"[0m
+in value declaration [33mposToString[0m
+
+where [33mt0[0m is an unknown type
+      [33mt1[0m is an unknown type
+
+See https://github.com/purescript/documentation/blob/master/errors/TypesDoNotUnify.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/IntToString1.purs b/tests/purs/failing/IntToString1.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/IntToString1.purs
@@ -0,0 +1,14 @@
+-- @shouldFailWith TypesDoNotUnify
+module Main where
+
+import Prelude
+import Prim.Int (class ToString)
+
+data Proxy :: forall k. k -> Type
+data Proxy a = Proxy
+
+testToString :: forall i s. ToString i s => Proxy i -> Proxy s
+testToString _ = Proxy
+
+posToString :: Proxy "a"
+posToString = testToString (Proxy :: Proxy 1)
diff --git a/tests/purs/failing/IntToString2.out b/tests/purs/failing/IntToString2.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/IntToString2.out
@@ -0,0 +1,31 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/IntToString2.purs:14:15 - 14:49 (line 14, column 15 - line 14, column 49)
+
+  Could not match type
+  [33m      [0m
+  [33m  "-1"[0m
+  [33m      [0m
+  with type
+  [33m     [0m
+  [33m  "a"[0m
+  [33m     [0m
+
+while solving type class constraint
+[33m                       [0m
+[33m  Prim.Int.ToString -1 [0m
+[33m                    "a"[0m
+[33m                       [0m
+while applying a function [33mtestToString[0m
+  of type [33mToString t0 t1 => Proxy @Int t0 -> Proxy @Symbol t1[0m
+  to argument [33mProxy[0m
+while checking that expression [33mtestToString Proxy[0m
+  has type [33mProxy @Symbol "a"[0m
+in value declaration [33mnegToString[0m
+
+where [33mt0[0m is an unknown type
+      [33mt1[0m is an unknown type
+
+See https://github.com/purescript/documentation/blob/master/errors/TypesDoNotUnify.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/IntToString2.purs b/tests/purs/failing/IntToString2.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/IntToString2.purs
@@ -0,0 +1,14 @@
+-- @shouldFailWith TypesDoNotUnify
+module Main where
+
+import Prelude
+import Prim.Int (class ToString)
+
+data Proxy :: forall k. k -> Type
+data Proxy a = Proxy
+
+testToString :: forall i s. ToString i s => Proxy i -> Proxy s
+testToString _ = Proxy
+
+negToString :: Proxy "a"
+negToString = testToString (Proxy :: Proxy (-1))
diff --git a/tests/purs/failing/IntToString3.out b/tests/purs/failing/IntToString3.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/IntToString3.out
@@ -0,0 +1,31 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/IntToString3.purs:14:16 - 14:47 (line 14, column 16 - line 14, column 47)
+
+  Could not match type
+  [33m     [0m
+  [33m  "0"[0m
+  [33m     [0m
+  with type
+  [33m     [0m
+  [33m  "a"[0m
+  [33m     [0m
+
+while solving type class constraint
+[33m                       [0m
+[33m  Prim.Int.ToString 0  [0m
+[33m                    "a"[0m
+[33m                       [0m
+while applying a function [33mtestToString[0m
+  of type [33mToString t0 t1 => Proxy @Int t0 -> Proxy @Symbol t1[0m
+  to argument [33mProxy[0m
+while checking that expression [33mtestToString Proxy[0m
+  has type [33mProxy @Symbol "a"[0m
+in value declaration [33mzeroToString[0m
+
+where [33mt0[0m is an unknown type
+      [33mt1[0m is an unknown type
+
+See https://github.com/purescript/documentation/blob/master/errors/TypesDoNotUnify.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/IntToString3.purs b/tests/purs/failing/IntToString3.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/IntToString3.purs
@@ -0,0 +1,14 @@
+-- @shouldFailWith TypesDoNotUnify
+module Main where
+
+import Prelude
+import Prim.Int (class ToString)
+
+data Proxy :: forall k. k -> Type
+data Proxy a = Proxy
+
+testToString :: forall i s. ToString i s => Proxy i -> Proxy s
+testToString _ = Proxy
+
+zeroToString :: Proxy "a"
+zeroToString = testToString (Proxy :: Proxy 0)
diff --git a/tests/purs/failing/InvalidCoercibleInstanceDeclaration.out b/tests/purs/failing/InvalidCoercibleInstanceDeclaration.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/InvalidCoercibleInstanceDeclaration.out
@@ -0,0 +1,14 @@
+Error found:
+at tests/purs/failing/InvalidCoercibleInstanceDeclaration.purs:8:1 - 8:36 (line 8, column 1 - line 8, column 36)
+
+  Invalid type class instance declaration for
+  [33m                         [0m
+  [33m  Prim.Coerce.Coercible D[0m
+  [33m                        D[0m
+  [33m                         [0m
+  Instance declarations of this type class are disallowed.
+
+
+See https://github.com/purescript/documentation/blob/master/errors/InvalidCoercibleInstanceDeclaration.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/InvalidCoercibleInstanceDeclaration.purs b/tests/purs/failing/InvalidCoercibleInstanceDeclaration.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/InvalidCoercibleInstanceDeclaration.purs
@@ -0,0 +1,8 @@
+-- @shouldFailWith InvalidCoercibleInstanceDeclaration
+module Main where
+
+import Prim.Coerce (class Coercible)
+
+data D
+
+instance coercible :: Coercible D D
diff --git a/tests/purs/failing/InvalidDerivedInstance.out b/tests/purs/failing/InvalidDerivedInstance.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/InvalidDerivedInstance.out
@@ -0,0 +1,16 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/InvalidDerivedInstance.purs:8:1 - 8:30 (line 8, column 1 - line 8, column 30)
+
+  The type class [33mData.Eq.Eq[0m expects 1 argument.
+  But the instance [33meqX[0m provided 2.
+
+in type class instance
+[33m              [0m
+[33m  Data.Eq.Eq X[0m
+[33m             X[0m
+[33m              [0m
+
+See https://github.com/purescript/documentation/blob/master/errors/ClassInstanceArityMismatch.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/InvalidDerivedInstance.purs b/tests/purs/failing/InvalidDerivedInstance.purs
--- a/tests/purs/failing/InvalidDerivedInstance.purs
+++ b/tests/purs/failing/InvalidDerivedInstance.purs
@@ -1,4 +1,4 @@
--- @shouldFailWith InvalidDerivedInstance
+-- @shouldFailWith ClassInstanceArityMismatch
 module Main where
 
 import Prelude
diff --git a/tests/purs/failing/InvalidDerivedInstance2.out b/tests/purs/failing/InvalidDerivedInstance2.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/InvalidDerivedInstance2.out
@@ -0,0 +1,18 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/InvalidDerivedInstance2.purs:6:1 - 6:34 (line 6, column 1 - line 6, column 34)
+
+  Type class instance head is invalid due to use of type
+  [33m    [0m
+  [33m  ()[0m
+  [33m    [0m
+  All types appearing in instance declarations must be of the form T a_1 .. a_n, where each type a_i is of the same form, unless the type is fully determined by other type class arguments via functional dependencies.
+
+in type class instance
+[33m                        [0m
+[33m  Data.Eq.Eq (Record ())[0m
+[33m                        [0m
+
+See https://github.com/purescript/documentation/blob/master/errors/InvalidInstanceHead.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/InvalidDerivedInstance2.purs b/tests/purs/failing/InvalidDerivedInstance2.purs
--- a/tests/purs/failing/InvalidDerivedInstance2.purs
+++ b/tests/purs/failing/InvalidDerivedInstance2.purs
@@ -1,4 +1,4 @@
--- @shouldFailWith ExpectedTypeConstructor
+-- @shouldFailWith InvalidInstanceHead
 module Main where
 
 import Prelude
diff --git a/tests/purs/failing/InvalidDerivedInstance3.out b/tests/purs/failing/InvalidDerivedInstance3.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/InvalidDerivedInstance3.out
@@ -0,0 +1,14 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/InvalidDerivedInstance3.purs:8:15 - 8:16 (line 8, column 15 - line 8, column 16)
+
+  Type synonym [33mMain.S[0m is partially applied.
+  Type synonyms must be applied to all of their type arguments.
+
+while checking that type [33mS[0m
+  has kind [33mType[0m
+in type constructor [33mN[0m
+
+See https://github.com/purescript/documentation/blob/master/errors/PartiallyAppliedSynonym.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/InvalidDerivedInstance3.purs b/tests/purs/failing/InvalidDerivedInstance3.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/InvalidDerivedInstance3.purs
@@ -0,0 +1,10 @@
+-- @shouldFailWith PartiallyAppliedSynonym
+module Main where
+
+import Data.Newtype (class Newtype)
+
+data D a
+type S a = D a
+newtype N = N S
+
+derive instance newtypeN :: Newtype N _
diff --git a/tests/purs/failing/InvalidOperatorInBinder.out b/tests/purs/failing/InvalidOperatorInBinder.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/InvalidOperatorInBinder.out
@@ -0,0 +1,10 @@
+Error found:
+at tests/purs/failing/InvalidOperatorInBinder.purs:12:12 - 12:13 (line 12, column 12 - line 12, column 13)
+
+  Operator [33mMain.(:)[0m cannot be used in a pattern as it is an alias for function Main.cons.
+  Only aliases for data constructors may be used in patterns.
+
+
+See https://github.com/purescript/documentation/blob/master/errors/InvalidOperatorInBinder.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/KindError.out b/tests/purs/failing/KindError.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/KindError.out
@@ -0,0 +1,24 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/KindError.purs:6:35 - 6:36 (line 6, column 35 - line 6, column 36)
+
+  Could not match kind
+  [33m      [0m
+  [33m  Type[0m
+  [33m      [0m
+  with kind
+  [33m          [0m
+  [33m  t8 -> t9[0m
+  [33m          [0m
+
+while checking that type [33mf[0m
+  has kind [33mt0 -> t1[0m
+while inferring the kind of [33mf a[0m
+in type constructor [33mKindError[0m
+
+where [33mt0[0m is an unknown type
+      [33mt1[0m is an unknown type
+
+See https://github.com/purescript/documentation/blob/master/errors/KindsDoNotUnify.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/KindStar.out b/tests/purs/failing/KindStar.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/KindStar.out
@@ -0,0 +1,20 @@
+Error found:
+in module [33mX[0m
+at tests/purs/failing/KindStar.purs:7:1 - 7:13 (line 7, column 1 - line 7, column 13)
+
+  In a type-annotated expression [33mx :: t[0m, the type [33mt[0m must have kind [33mType[0m.
+  The error arises from the type
+  [33m      [0m
+  [33m  List[0m
+  [33m      [0m
+  having the kind
+  [33m              [0m
+  [33m  Type -> Type[0m
+  [33m              [0m
+  instead.
+
+in value declaration [33mtest[0m
+
+See https://github.com/purescript/documentation/blob/master/errors/ExpectedType.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/LacksWithSubGoal.out b/tests/purs/failing/LacksWithSubGoal.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/LacksWithSubGoal.out
@@ -0,0 +1,35 @@
+Error found:
+in module [33mLacksWithSubGoal[0m
+at tests/purs/failing/LacksWithSubGoal.purs:14:11 - 14:33 (line 14, column 11 - line 14, column 33)
+
+  No type class instance was found for
+  [33m                        [0m
+  [33m  Prim.Row.Lacks "hello"[0m
+  [33m                 r0     [0m
+  [33m                        [0m
+
+while solving type class constraint
+[33m                           [0m
+[33m  Prim.Row.Lacks "hello"   [0m
+[33m                 ( k :: Int[0m
+[33m                 | r0      [0m
+[33m                 )         [0m
+[33m                           [0m
+while applying a function [33munion[0m
+  of type [33mLacks @Type t1 t2 => S t1 -> R t2[0m
+  to argument [33mS[0m
+while checking that expression [33munion S[0m
+  has type [33mR           [0m
+           [33m  ( k :: Int[0m
+           [33m  | r0      [0m
+           [33m  )         [0m
+in value declaration [33mexample[0m
+
+where [33mr0[0m is a rigid type variable
+        bound at (line 14, column 11 - line 14, column 33)
+      [33mt1[0m is an unknown type
+      [33mt2[0m is an unknown type
+
+See https://github.com/purescript/documentation/blob/master/errors/NoInstanceFound.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/LacksWithSubGoal.purs b/tests/purs/failing/LacksWithSubGoal.purs
--- a/tests/purs/failing/LacksWithSubGoal.purs
+++ b/tests/purs/failing/LacksWithSubGoal.purs
@@ -5,7 +5,7 @@
 
 data S (r :: Symbol) = S
 
-data R (r :: # Type) = R
+data R (r :: Row Type) = R
 
 union :: forall s r. Lacks s r => S s -> R r
 union S = R
diff --git a/tests/purs/failing/LeadingZeros1.out b/tests/purs/failing/LeadingZeros1.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/LeadingZeros1.out
@@ -0,0 +1,10 @@
+Error found:
+at tests/purs/failing/LeadingZeros1.purs:6:6 - 6:7 (line 6, column 6 - line 6, column 7)
+
+  Unable to parse module:
+  Unexpected leading zeros
+
+
+See https://github.com/purescript/documentation/blob/master/errors/ErrorParsingModule.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/LeadingZeros2.out b/tests/purs/failing/LeadingZeros2.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/LeadingZeros2.out
@@ -0,0 +1,10 @@
+Error found:
+at tests/purs/failing/LeadingZeros2.purs:6:6 - 6:7 (line 6, column 6 - line 6, column 7)
+
+  Unable to parse module:
+  Unexpected leading zeros
+
+
+See https://github.com/purescript/documentation/blob/master/errors/ErrorParsingModule.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/Let.out b/tests/purs/failing/Let.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/Let.out
@@ -0,0 +1,9 @@
+Error found:
+at tests/purs/failing/Let.purs:6:12 - 6:17 (line 6, column 12 - line 6, column 17)
+
+  The value of [33mx[0m is undefined here, so this reference is not allowed.
+
+
+See https://github.com/purescript/documentation/blob/master/errors/CycleInDeclaration.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/LetPatterns1.out b/tests/purs/failing/LetPatterns1.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/LetPatterns1.out
@@ -0,0 +1,10 @@
+Error found:
+at tests/purs/failing/LetPatterns1.purs:8:7 - 8:14 (line 8, column 7 - line 8, column 14)
+
+  Unable to parse module:
+  Expected pattern, saw expression
+
+
+See https://github.com/purescript/documentation/blob/master/errors/ErrorParsingModule.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/LetPatterns2.out b/tests/purs/failing/LetPatterns2.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/LetPatterns2.out
@@ -0,0 +1,10 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/LetPatterns2.purs:11:9 - 11:10 (line 11, column 9 - line 11, column 10)
+
+  Unknown value [33ma[0m
+
+
+See https://github.com/purescript/documentation/blob/master/errors/UnknownName.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/LetPatterns3.out b/tests/purs/failing/LetPatterns3.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/LetPatterns3.out
@@ -0,0 +1,16 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/LetPatterns3.purs:11:7 - 11:8 (line 11, column 7 - line 11, column 8)
+
+  Data constructor [33mMain.X[0m was given 0 arguments in a case expression, but expected 1 arguments.
+  This problem can be fixed by giving [33mMain.X[0m 1 arguments.
+
+while inferring the type of [33m\$0 ->          [0m
+                            [33m  \b ->         [0m
+                            [33m    case $0 b of[0m
+                            [33m      X b -> ...[0m
+in value declaration [33mx[0m
+
+See https://github.com/purescript/documentation/blob/master/errors/IncorrectConstructorArity.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/LetPatterns4.out b/tests/purs/failing/LetPatterns4.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/LetPatterns4.out
@@ -0,0 +1,10 @@
+Error found:
+at tests/purs/failing/LetPatterns4.purs:6:1 - 6:2 (line 6, column 1 - line 6, column 2)
+
+  Unable to parse module:
+  Unexpected token 'X'
+
+
+See https://github.com/purescript/documentation/blob/master/errors/ErrorParsingModule.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/MPTCs.out b/tests/purs/failing/MPTCs.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/MPTCs.out
@@ -0,0 +1,16 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/MPTCs.purs:9:1 - 10:10 (line 9, column 1 - line 10, column 10)
+
+  The type class [33mMain.Foo[0m expects 1 argument.
+  But the instance [33mfooStringString[0m provided 2.
+
+in type class instance
+[33m                 [0m
+[33m  Main.Foo String[0m
+[33m           String[0m
+[33m                 [0m
+
+See https://github.com/purescript/documentation/blob/master/errors/ClassInstanceArityMismatch.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/MissingClassExport.out b/tests/purs/failing/MissingClassExport.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/MissingClassExport.out
@@ -0,0 +1,13 @@
+Error found:
+in module [33mTest[0m
+at tests/purs/failing/MissingClassExport.purs:2:1 - 7:16 (line 2, column 1 - line 7, column 16)
+
+  An export for [33mbar[0m requires the following to also be exported:
+
+    [33mclass Foo[0m
+
+
+
+See https://github.com/purescript/documentation/blob/master/errors/TransitiveExportError.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/MissingClassMember.out b/tests/purs/failing/MissingClassMember.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/MissingClassMember.out
@@ -0,0 +1,15 @@
+Error found:
+at tests/purs/failing/MissingClassMember.purs:9:1 - 10:10 (line 9, column 1 - line 10, column 10)
+
+  The following type class members have not been implemented:
+  [33mb :: String -> Number[0m
+  [33mc :: forall f. String -> f String[0m
+
+in type class instance
+[33m               [0m
+[33m  Main.A String[0m
+[33m               [0m
+
+See https://github.com/purescript/documentation/blob/master/errors/MissingClassMember.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/MissingClassMemberExport.out b/tests/purs/failing/MissingClassMemberExport.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/MissingClassMemberExport.out
@@ -0,0 +1,13 @@
+Error found:
+in module [33mTest[0m
+at tests/purs/failing/MissingClassMemberExport.purs:2:1 - 7:16 (line 2, column 1 - line 7, column 16)
+
+  An export for [33mclass Foo[0m requires the following to also be exported:
+
+    [33mbar[0m
+
+
+
+See https://github.com/purescript/documentation/blob/master/errors/TransitiveExportError.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/MissingFFIImplementations.js b/tests/purs/failing/MissingFFIImplementations.js
--- a/tests/purs/failing/MissingFFIImplementations.js
+++ b/tests/purs/failing/MissingFFIImplementations.js
@@ -1,1 +1,1 @@
-exports.yes = true;
+export var yes = true;
diff --git a/tests/purs/failing/MissingFFIImplementations.out b/tests/purs/failing/MissingFFIImplementations.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/MissingFFIImplementations.out
@@ -0,0 +1,12 @@
+Error found:
+at tests/purs/failing/MissingFFIImplementations.purs:2:1 - 5:29 (line 2, column 1 - line 5, column 29)
+
+  The following values are not defined in the foreign module for module [33mMain[0m:
+
+    no
+
+
+
+See https://github.com/purescript/documentation/blob/master/errors/MissingFFIImplementations.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/MissingRecordField.out b/tests/purs/failing/MissingRecordField.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/MissingRecordField.out
@@ -0,0 +1,23 @@
+Error found:
+in module [33mMissingRecordField[0m
+at tests/purs/failing/MissingRecordField.purs:10:19 - 10:23 (line 10, column 19 - line 10, column 23)
+
+  Type of expression lacks required label [33mage[0m.
+
+while checking that type [33m{ first :: String[0m
+                         [33m, last :: String [0m
+                         [33m}                [0m
+  is at least as general as type [33m{ age :: Number[0m
+                                 [33m| t0           [0m
+                                 [33m}              [0m
+while checking that expression [33mjohn[0m
+  has type [33m{ age :: Number[0m
+           [33m| t0           [0m
+           [33m}              [0m
+in value declaration [33mresult[0m
+
+where [33mt0[0m is an unknown type
+
+See https://github.com/purescript/documentation/blob/master/errors/PropertyIsMissing.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/MixedAssociativityError.out b/tests/purs/failing/MixedAssociativityError.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/MixedAssociativityError.out
@@ -0,0 +1,14 @@
+Error found:
+at tests/purs/failing/MixedAssociativityError.purs:6:15 - 6:18 (line 6, column 15 - line 6, column 18)
+
+  Cannot parse an expression that uses operators of the same precedence but mixed associativity:
+
+    [33mData.Functor.(<$>)[0m is [33minfixl[0m
+    [33mData.Eq.(==)[0m is [33minfix[0m
+
+  Use parentheses to resolve this ambiguity.
+
+
+See https://github.com/purescript/documentation/blob/master/errors/MixedAssociativityError.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/MonoKindDataBindingGroup.out b/tests/purs/failing/MonoKindDataBindingGroup.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/MonoKindDataBindingGroup.out
@@ -0,0 +1,21 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/MonoKindDataBindingGroup.purs:8:12 - 8:17 (line 8, column 12 - line 8, column 17)
+
+  Could not match kind
+  [33m        [0m
+  [33m  Symbol[0m
+  [33m        [0m
+  with kind
+  [33m      [0m
+  [33m  Type[0m
+  [33m      [0m
+
+while checking that type [33m"bad"[0m
+  has kind [33mType[0m
+while inferring the kind of [33mA "bad"[0m
+in type synonym [33mX[0m
+
+See https://github.com/purescript/documentation/blob/master/errors/KindsDoNotUnify.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/MonoKindDataBindingGroup.purs b/tests/purs/failing/MonoKindDataBindingGroup.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/MonoKindDataBindingGroup.purs
@@ -0,0 +1,8 @@
+-- @shouldFailWith KindsDoNotUnify
+module Main where
+
+data F (a :: Type -> Type) = F
+data A a = A (B a)
+type B a = F A
+
+type X = A "bad"
diff --git a/tests/purs/failing/MultipleErrors.out b/tests/purs/failing/MultipleErrors.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/MultipleErrors.out
@@ -0,0 +1,46 @@
+Error 1 of 2:
+
+  in module [33mMultipleErrors[0m
+  at tests/purs/failing/MultipleErrors.purs:8:9 - 8:15 (line 8, column 9 - line 8, column 15)
+
+    Could not match type
+    [33m        [0m
+    [33m  String[0m
+    [33m        [0m
+    with type
+    [33m     [0m
+    [33m  Int[0m
+    [33m     [0m
+
+  while checking that type [33mString[0m
+    is at least as general as type [33mInt[0m
+  while checking that expression [33m"Test"[0m
+    has type [33mInt[0m
+  in binding group foo, bar
+
+  See https://github.com/purescript/documentation/blob/master/errors/TypesDoNotUnify.md for more information,
+  or to contribute content related to this error.
+
+Error 2 of 2:
+
+  in module [33mMultipleErrors[0m
+  at tests/purs/failing/MultipleErrors.purs:12:9 - 12:15 (line 12, column 9 - line 12, column 15)
+
+    Could not match type
+    [33m        [0m
+    [33m  String[0m
+    [33m        [0m
+    with type
+    [33m     [0m
+    [33m  Int[0m
+    [33m     [0m
+
+  while checking that type [33mString[0m
+    is at least as general as type [33mInt[0m
+  while checking that expression [33m"Test"[0m
+    has type [33mInt[0m
+  in binding group foo, bar
+
+  See https://github.com/purescript/documentation/blob/master/errors/TypesDoNotUnify.md for more information,
+  or to contribute content related to this error.
+
diff --git a/tests/purs/failing/MultipleErrors2.out b/tests/purs/failing/MultipleErrors2.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/MultipleErrors2.out
@@ -0,0 +1,22 @@
+Error 1 of 2:
+
+  in module [33mMultipleErrors2[0m
+  at tests/purs/failing/MultipleErrors2.purs:7:7 - 7:20 (line 7, column 7 - line 7, column 20)
+
+    Unknown value [33mitDoesntExist[0m
+
+
+  See https://github.com/purescript/documentation/blob/master/errors/UnknownName.md for more information,
+  or to contribute content related to this error.
+
+Error 2 of 2:
+
+  in module [33mMultipleErrors2[0m
+  at tests/purs/failing/MultipleErrors2.purs:9:7 - 9:22 (line 9, column 7 - line 9, column 22)
+
+    Unknown value [33mneitherDoesThis[0m
+
+
+  See https://github.com/purescript/documentation/blob/master/errors/UnknownName.md for more information,
+  or to contribute content related to this error.
+
diff --git a/tests/purs/failing/MultipleTypeOpFixities.out b/tests/purs/failing/MultipleTypeOpFixities.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/MultipleTypeOpFixities.out
@@ -0,0 +1,10 @@
+Error found:
+in module [33mMultipleTypeOpFixities[0m
+at tests/purs/failing/MultipleTypeOpFixities.purs:9:1 - 9:22 (line 9, column 1 - line 9, column 22)
+
+  There are multiple fixity/precedence declarations for type operator [33m(!?)[0m
+
+
+See https://github.com/purescript/documentation/blob/master/errors/MultipleTypeOpFixities.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/MultipleValueOpFixities.out b/tests/purs/failing/MultipleValueOpFixities.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/MultipleValueOpFixities.out
@@ -0,0 +1,10 @@
+Error found:
+in module [33mMultipleValueOpFixities[0m
+at tests/purs/failing/MultipleValueOpFixities.purs:9:1 - 9:18 (line 9, column 1 - line 9, column 18)
+
+  There are multiple fixity/precedence declarations for operator [33m(!?)[0m
+
+
+See https://github.com/purescript/documentation/blob/master/errors/MultipleValueOpFixities.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/MutRec.out b/tests/purs/failing/MutRec.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/MutRec.out
@@ -0,0 +1,20 @@
+Error 1 of 2:
+
+  at tests/purs/failing/MutRec.purs:7:1 - 7:6 (line 7, column 1 - line 7, column 6)
+
+    The value of [33mx[0m is undefined here, so this reference is not allowed.
+
+
+  See https://github.com/purescript/documentation/blob/master/errors/CycleInDeclaration.md for more information,
+  or to contribute content related to this error.
+
+Error 2 of 2:
+
+  at tests/purs/failing/MutRec.purs:9:1 - 9:6 (line 9, column 1 - line 9, column 6)
+
+    The value of [33my[0m is undefined here, so this reference is not allowed.
+
+
+  See https://github.com/purescript/documentation/blob/master/errors/CycleInDeclaration.md for more information,
+  or to contribute content related to this error.
+
diff --git a/tests/purs/failing/MutRec2.out b/tests/purs/failing/MutRec2.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/MutRec2.out
@@ -0,0 +1,9 @@
+Error found:
+at tests/purs/failing/MutRec2.purs:6:1 - 6:6 (line 6, column 1 - line 6, column 6)
+
+  The value of [33mx[0m is undefined here, so this reference is not allowed.
+
+
+See https://github.com/purescript/documentation/blob/master/errors/CycleInDeclaration.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/NestedRecordLabelOnTypeError.out b/tests/purs/failing/NestedRecordLabelOnTypeError.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/NestedRecordLabelOnTypeError.out
@@ -0,0 +1,34 @@
+Error found:
+in module [33mNestedRecordLabelOnTypeError[0m
+at tests/purs/failing/NestedRecordLabelOnTypeError.purs:8:9 - 8:15 (line 8, column 9 - line 8, column 15)
+
+  Could not match type
+  [33m     [0m
+  [33m  Int[0m
+  [33m     [0m
+  with type
+  [33m        [0m
+  [33m  String[0m
+  [33m        [0m
+
+while matching label [33mc[0m
+while matching label [33mb[0m
+while matching label [33ma[0m
+while checking that type [33m{ a :: { b :: { c :: Int[0m
+                         [33m              }         [0m
+                         [33m       }                [0m
+                         [33m}                       [0m
+  is at least as general as type [33m{ a :: { b :: { c :: String[0m
+                                 [33m              }            [0m
+                                 [33m       }                   [0m
+                                 [33m}                          [0m
+while checking that expression [33mrecord[0m
+  has type [33m{ a :: { b :: { c :: String[0m
+           [33m              }            [0m
+           [33m       }                   [0m
+           [33m}                          [0m
+in value declaration [33merror[0m
+
+See https://github.com/purescript/documentation/blob/master/errors/TypesDoNotUnify.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/NestedRecordLabelOnTypeError.purs b/tests/purs/failing/NestedRecordLabelOnTypeError.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/NestedRecordLabelOnTypeError.purs
@@ -0,0 +1,8 @@
+-- @shouldFailWith TypesDoNotUnify
+module NestedRecordLabelOnTypeError where
+
+record :: { a :: { b :: { c :: Int } } }
+record = { a: { b: { c: 1 } } }
+
+error :: { a :: { b :: { c :: String } } }
+error = record -- this should trigger an error, telling us there's a mismatch in the field `a > b > c`
diff --git a/tests/purs/failing/NewtypeInstance.out b/tests/purs/failing/NewtypeInstance.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/NewtypeInstance.out
@@ -0,0 +1,15 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/NewtypeInstance.purs:8:1 - 8:40 (line 8, column 1 - line 8, column 40)
+
+  Cannot derive newtype instance for
+  [33m                  [0m
+  [33m  Data.Show.Show X[0m
+  [33m                  [0m
+  Make sure this is a newtype.
+
+in value declaration [33mshowX[0m
+
+See https://github.com/purescript/documentation/blob/master/errors/InvalidNewtypeInstance.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/NewtypeInstance2.out b/tests/purs/failing/NewtypeInstance2.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/NewtypeInstance2.out
@@ -0,0 +1,18 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/NewtypeInstance2.purs:8:1 - 8:54 (line 8, column 1 - line 8, column 54)
+
+  Cannot derive newtype instance for
+  [33m                       [0m
+  [33m  Data.Show.Show (X a0)[0m
+  [33m                       [0m
+  Make sure this is a newtype.
+
+in value declaration [33mshowX[0m
+
+where [33ma0[0m is a rigid type variable
+        bound at (line 0, column 0 - line 0, column 0)
+
+See https://github.com/purescript/documentation/blob/master/errors/InvalidNewtypeInstance.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/NewtypeInstance3.out b/tests/purs/failing/NewtypeInstance3.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/NewtypeInstance3.out
@@ -0,0 +1,15 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/NewtypeInstance3.purs:8:1 - 8:43 (line 8, column 1 - line 8, column 43)
+
+  Cannot derive newtype instance for
+  [33m               [0m
+  [33m  Main.Nullary [0m
+  [33m               [0m
+  Make sure this is a newtype.
+
+in value declaration [33mnullary[0m
+
+See https://github.com/purescript/documentation/blob/master/errors/InvalidNewtypeInstance.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/NewtypeInstance4.out b/tests/purs/failing/NewtypeInstance4.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/NewtypeInstance4.out
@@ -0,0 +1,15 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/NewtypeInstance4.purs:8:1 - 8:40 (line 8, column 1 - line 8, column 40)
+
+  Cannot derive newtype instance for
+  [33m                  [0m
+  [33m  Data.Show.Show X[0m
+  [33m                  [0m
+  Make sure this is a newtype.
+
+in value declaration [33mshowX[0m
+
+See https://github.com/purescript/documentation/blob/master/errors/InvalidNewtypeInstance.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/NewtypeInstance5.out b/tests/purs/failing/NewtypeInstance5.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/NewtypeInstance5.out
@@ -0,0 +1,15 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/NewtypeInstance5.purs:8:1 - 8:46 (line 8, column 1 - line 8, column 46)
+
+  Cannot derive newtype instance for
+  [33m                        [0m
+  [33m  Data.Functor.Functor X[0m
+  [33m                        [0m
+  Make sure this is a newtype.
+
+in value declaration [33mfunctorX[0m
+
+See https://github.com/purescript/documentation/blob/master/errors/InvalidNewtypeInstance.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/NewtypeInstance6.out b/tests/purs/failing/NewtypeInstance6.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/NewtypeInstance6.out
@@ -0,0 +1,24 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/NewtypeInstance6.purs:8:45 - 8:46 (line 8, column 45 - line 8, column 46)
+
+  Could not match kind
+  [33m              [0m
+  [33m  Type -> Type[0m
+  [33m              [0m
+  with kind
+  [33m      [0m
+  [33m  Type[0m
+  [33m      [0m
+
+while checking that type [33mX[0m
+  has kind [33mType -> Type[0m
+while inferring the kind of [33mFunctor X[0m
+in type class instance
+[33m                        [0m
+[33m  Data.Functor.Functor X[0m
+[33m                        [0m
+
+See https://github.com/purescript/documentation/blob/master/errors/KindsDoNotUnify.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/NewtypeInstance6.purs b/tests/purs/failing/NewtypeInstance6.purs
--- a/tests/purs/failing/NewtypeInstance6.purs
+++ b/tests/purs/failing/NewtypeInstance6.purs
@@ -1,4 +1,4 @@
--- @shouldFailWith InvalidNewtypeInstance
+-- @shouldFailWith KindsDoNotUnify
 module Main where
 
 import Prelude
diff --git a/tests/purs/failing/NewtypeMultiArgs.out b/tests/purs/failing/NewtypeMultiArgs.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/NewtypeMultiArgs.out
@@ -0,0 +1,10 @@
+Error found:
+at tests/purs/failing/NewtypeMultiArgs.purs:6:30 - 6:37 (line 6, column 30 - line 6, column 37)
+
+  Unable to parse module:
+  Unexpected token 'Boolean'
+
+
+See https://github.com/purescript/documentation/blob/master/errors/ErrorParsingModule.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/NewtypeMultiCtor.out b/tests/purs/failing/NewtypeMultiCtor.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/NewtypeMultiCtor.out
@@ -0,0 +1,10 @@
+Error found:
+at tests/purs/failing/NewtypeMultiCtor.purs:6:30 - 6:31 (line 6, column 30 - line 6, column 31)
+
+  Unable to parse module:
+  Unexpected token '|'
+
+
+See https://github.com/purescript/documentation/blob/master/errors/ErrorParsingModule.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/NewtypeUnnamedInstance.out b/tests/purs/failing/NewtypeUnnamedInstance.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/NewtypeUnnamedInstance.out
@@ -0,0 +1,14 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/NewtypeUnnamedInstance.purs:8:1 - 8:31 (line 8, column 1 - line 8, column 31)
+
+  Cannot derive newtype instance for
+  [33m                  [0m
+  [33m  Data.Show.Show X[0m
+  [33m                  [0m
+  Make sure this is a newtype.
+
+
+See https://github.com/purescript/documentation/blob/master/errors/InvalidNewtypeInstance.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/NewtypeUnnamedInstance.purs b/tests/purs/failing/NewtypeUnnamedInstance.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/NewtypeUnnamedInstance.purs
@@ -0,0 +1,8 @@
+-- @shouldFailWith InvalidNewtypeInstance
+module Main where
+
+import Prelude
+
+data X = X
+
+derive newtype instance Show X
diff --git a/tests/purs/failing/NonAssociativeError.out b/tests/purs/failing/NonAssociativeError.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/NonAssociativeError.out
@@ -0,0 +1,26 @@
+Error 1 of 2:
+
+  at tests/purs/failing/NonAssociativeError.purs:7:10 - 7:12 (line 7, column 10 - line 7, column 12)
+
+    Cannot parse an expression that uses multiple instances of the non-associative operator [33mData.Eq.(==)[0m.
+    Use parentheses to resolve this ambiguity.
+
+
+  See https://github.com/purescript/documentation/blob/master/errors/NonAssociativeError.md for more information,
+  or to contribute content related to this error.
+
+Error 2 of 2:
+
+  at tests/purs/failing/NonAssociativeError.purs:8:19 - 8:21 (line 8, column 19 - line 8, column 21)
+
+    Cannot parse an expression that uses multiple non-associative operators of the same precedence:
+
+      [33mData.Eq.(/=)[0m
+      [33mData.Eq.(==)[0m
+
+    Use parentheses to resolve this ambiguity.
+
+
+  See https://github.com/purescript/documentation/blob/master/errors/NonAssociativeError.md for more information,
+  or to contribute content related to this error.
+
diff --git a/tests/purs/failing/NonExhaustivePatGuard.out b/tests/purs/failing/NonExhaustivePatGuard.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/NonExhaustivePatGuard.out
@@ -0,0 +1,23 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/NonExhaustivePatGuard.purs:4:1 - 4:16 (line 4, column 1 - line 4, column 16)
+
+  A case expression could not be determined to cover all inputs.
+  The following additional cases are required to cover all inputs:
+
+    [33m_[0m
+
+  Alternatively, add a Partial constraint to the type of the enclosing value.
+
+while checking that type [33mPartial => t0[0m
+  is at least as general as type [33mInt[0m
+while checking that expression [33mcase x of        [0m
+                               [33m  x | 1 <- x -> x[0m
+  has type [33mInt[0m
+in value declaration [33mf[0m
+
+where [33mt0[0m is an unknown type
+
+See https://github.com/purescript/documentation/blob/master/errors/NoInstanceFound.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/NullaryAbs.out b/tests/purs/failing/NullaryAbs.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/NullaryAbs.out
@@ -0,0 +1,10 @@
+Error found:
+at tests/purs/failing/NullaryAbs.purs:6:10 - 6:12 (line 6, column 10 - line 6, column 12)
+
+  Unable to parse module:
+  Unexpected token '->'
+
+
+See https://github.com/purescript/documentation/blob/master/errors/ErrorParsingModule.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/Object.out b/tests/purs/failing/Object.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/Object.out
@@ -0,0 +1,24 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/Object.purs:8:14 - 8:16 (line 8, column 14 - line 8, column 16)
+
+  Type of expression lacks required label [33mfoo[0m.
+
+while checking that expression [33m{}[0m
+  has type [33m{ foo :: t0[0m
+           [33m| t1       [0m
+           [33m}          [0m
+while applying a function [33mtest[0m
+  of type [33m{ foo :: t0[0m
+          [33m| t1       [0m
+          [33m}          [0m
+          [33m-> t0      [0m
+  to argument [33m{}[0m
+in value declaration [33mtest1[0m
+
+where [33mt0[0m is an unknown type
+      [33mt1[0m is an unknown type
+
+See https://github.com/purescript/documentation/blob/master/errors/PropertyIsMissing.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/OperatorAliasNoExport.out b/tests/purs/failing/OperatorAliasNoExport.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/OperatorAliasNoExport.out
@@ -0,0 +1,13 @@
+Error found:
+in module [33mTest[0m
+at tests/purs/failing/OperatorAliasNoExport.purs:2:1 - 7:13 (line 2, column 1 - line 7, column 13)
+
+  An export for [33m(?!)[0m requires the following to also be exported:
+
+    [33mwhat[0m
+
+
+
+See https://github.com/purescript/documentation/blob/master/errors/TransitiveExportError.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/OperatorAt.out b/tests/purs/failing/OperatorAt.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/OperatorAt.out
@@ -0,0 +1,10 @@
+Error found:
+at tests/purs/failing/OperatorAt.purs:6:18 - 6:19 (line 6, column 18 - line 6, column 19)
+
+  Unable to parse module:
+  Unexpected token '@'
+
+
+See https://github.com/purescript/documentation/blob/master/errors/ErrorParsingModule.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/OperatorBackslash.out b/tests/purs/failing/OperatorBackslash.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/OperatorBackslash.out
@@ -0,0 +1,10 @@
+Error found:
+at tests/purs/failing/OperatorBackslash.purs:6:18 - 6:19 (line 6, column 18 - line 6, column 19)
+
+  Unable to parse module:
+  Unexpected token '\'
+
+
+See https://github.com/purescript/documentation/blob/master/errors/ErrorParsingModule.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/OperatorSections.out b/tests/purs/failing/OperatorSections.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/OperatorSections.out
@@ -0,0 +1,27 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/OperatorSections.purs:7:3 - 7:17 (line 7, column 3 - line 7, column 17)
+
+  Could not match type
+  [33m         [0m
+  [33m  Boolean[0m
+  [33m         [0m
+  with type
+  [33m          [0m
+  [33m  t1 -> t2[0m
+  [33m          [0m
+
+while applying a function [33m(not (#dict HeytingAlgebra t2)) true[0m
+  of type [33mt0[0m
+  to argument [33m$0[0m
+while inferring the type of [33m\$0 ->         [0m
+                            [33m  (not true) $0[0m
+in value declaration [33mmain[0m
+
+where [33mt1[0m is an unknown type
+      [33mt0[0m is an unknown type
+      [33mt2[0m is an unknown type
+
+See https://github.com/purescript/documentation/blob/master/errors/TypesDoNotUnify.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/OperatorSections2.out b/tests/purs/failing/OperatorSections2.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/OperatorSections2.out
@@ -0,0 +1,9 @@
+Error found:
+at tests/purs/failing/OperatorSections2.purs:6:10 - 6:11 (line 6, column 10 - line 6, column 11)
+
+  An anonymous function argument appears in an invalid context.
+
+
+See https://github.com/purescript/documentation/blob/master/errors/IncorrectAnonymousArgument.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/OperatorSections2.purs b/tests/purs/failing/OperatorSections2.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/OperatorSections2.purs
@@ -0,0 +1,6 @@
+-- @shouldFailWith IncorrectAnonymousArgument
+module Main where
+
+import Prelude
+
+test = ( _ * 4 + 1 ) 50
diff --git a/tests/purs/failing/OrphanInstance.out b/tests/purs/failing/OrphanInstance.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/OrphanInstance.out
@@ -0,0 +1,18 @@
+Error found:
+in module [33mTest[0m
+at tests/purs/failing/OrphanInstance.purs:6:1 - 7:11 (line 6, column 1 - line 7, column 11)
+
+  Orphan instance [33mcBoolean[0m found for
+  [33m                 [0m
+  [33m  Class.C Boolean[0m
+  [33m                 [0m
+  This problem can be resolved by declaring the instance in [33mClass[0m, or by defining the instance on a newtype wrapper.
+
+in type class instance
+[33m                 [0m
+[33m  Class.C Boolean[0m
+[33m                 [0m
+
+See https://github.com/purescript/documentation/blob/master/errors/OrphanInstance.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/OrphanInstanceFunDepCycle.out b/tests/purs/failing/OrphanInstanceFunDepCycle.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/OrphanInstanceFunDepCycle.out
@@ -0,0 +1,20 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/OrphanInstanceFunDepCycle.purs:5:1 - 5:22 (line 5, column 1 - line 5, column 22)
+
+  Orphan instance [33mclr[0m found for
+  [33m         [0m
+  [33m  Lib.C L[0m
+  [33m        R[0m
+  [33m         [0m
+  This problem can be resolved by declaring the instance in [33mLib[0m, or by defining the instance on a newtype wrapper.
+
+in type class instance
+[33m         [0m
+[33m  Lib.C L[0m
+[33m        R[0m
+[33m         [0m
+
+See https://github.com/purescript/documentation/blob/master/errors/OrphanInstance.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/OrphanInstanceFunDepCycle/Lib.out b/tests/purs/failing/OrphanInstanceFunDepCycle/Lib.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/OrphanInstanceFunDepCycle/Lib.out
@@ -0,0 +1,20 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/OrphanInstanceFunDepCycle.purs:5:1 - 5:22 (line 5, column 1 - line 5, column 22)
+
+  Orphan instance [33mclr[0m found for
+  [33m         [0m
+  [33m  Lib.C L[0m
+  [33m        R[0m
+  [33m         [0m
+  This problem can be resolved by declaring the instance in [33mLib[0m, or by defining the instance on a newtype wrapper.
+
+in type class instance
+[33m         [0m
+[33m  Lib.C L[0m
+[33m        R[0m
+[33m         [0m
+
+See https://github.com/purescript/documentation/blob/master/errors/OrphanInstance.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/OrphanInstanceNullary.out b/tests/purs/failing/OrphanInstanceNullary.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/OrphanInstanceNullary.out
@@ -0,0 +1,18 @@
+Error found:
+in module [33mTest[0m
+at tests/purs/failing/OrphanInstanceNullary.purs:4:1 - 4:16 (line 4, column 1 - line 4, column 16)
+
+  Orphan instance [33mc[0m found for
+  [33m        [0m
+  [33m  Lib.C [0m
+  [33m        [0m
+  This problem can be resolved by declaring the instance in [33mLib[0m, or by defining the instance on a newtype wrapper.
+
+in type class instance
+[33m        [0m
+[33m  Lib.C [0m
+[33m        [0m
+
+See https://github.com/purescript/documentation/blob/master/errors/OrphanInstance.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/OrphanInstanceNullary/Lib.out b/tests/purs/failing/OrphanInstanceNullary/Lib.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/OrphanInstanceNullary/Lib.out
@@ -0,0 +1,18 @@
+Error found:
+in module [33mTest[0m
+at tests/purs/failing/OrphanInstanceNullary.purs:4:1 - 4:16 (line 4, column 1 - line 4, column 16)
+
+  Orphan instance [33mc[0m found for
+  [33m        [0m
+  [33m  Lib.C [0m
+  [33m        [0m
+  This problem can be resolved by declaring the instance in [33mLib[0m, or by defining the instance on a newtype wrapper.
+
+in type class instance
+[33m        [0m
+[33m  Lib.C [0m
+[33m        [0m
+
+See https://github.com/purescript/documentation/blob/master/errors/OrphanInstance.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/OrphanInstanceWithDetermined.out b/tests/purs/failing/OrphanInstanceWithDetermined.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/OrphanInstanceWithDetermined.out
@@ -0,0 +1,22 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/OrphanInstanceWithDetermined.purs:5:1 - 5:25 (line 5, column 1 - line 5, column 25)
+
+  Orphan instance [33mcflr[0m found for
+  [33m         [0m
+  [33m  Lib.C F[0m
+  [33m        L[0m
+  [33m        R[0m
+  [33m         [0m
+  This problem can be resolved by declaring the instance in [33mLib[0m, or by defining the instance on a newtype wrapper.
+
+in type class instance
+[33m         [0m
+[33m  Lib.C F[0m
+[33m        L[0m
+[33m        R[0m
+[33m         [0m
+
+See https://github.com/purescript/documentation/blob/master/errors/OrphanInstance.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/OrphanInstanceWithDetermined/Lib.out b/tests/purs/failing/OrphanInstanceWithDetermined/Lib.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/OrphanInstanceWithDetermined/Lib.out
@@ -0,0 +1,22 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/OrphanInstanceWithDetermined.purs:5:1 - 5:25 (line 5, column 1 - line 5, column 25)
+
+  Orphan instance [33mcflr[0m found for
+  [33m         [0m
+  [33m  Lib.C F[0m
+  [33m        L[0m
+  [33m        R[0m
+  [33m         [0m
+  This problem can be resolved by declaring the instance in [33mLib[0m, or by defining the instance on a newtype wrapper.
+
+in type class instance
+[33m         [0m
+[33m  Lib.C F[0m
+[33m        L[0m
+[33m        R[0m
+[33m         [0m
+
+See https://github.com/purescript/documentation/blob/master/errors/OrphanInstance.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/OrphanKindDeclaration1.out b/tests/purs/failing/OrphanKindDeclaration1.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/OrphanKindDeclaration1.out
@@ -0,0 +1,10 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/OrphanKindDeclaration1.purs:4:1 - 4:17 (line 4, column 1 - line 4, column 17)
+
+  The kind declaration for [33mFoo[0m should be followed by its definition.
+
+
+See https://github.com/purescript/documentation/blob/master/errors/OrphanKindDeclaration.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/OrphanKindDeclaration1.purs b/tests/purs/failing/OrphanKindDeclaration1.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/OrphanKindDeclaration1.purs
@@ -0,0 +1,4 @@
+-- @shouldFailWith OrphanKindDeclaration
+module Main where
+
+type Foo :: Type
diff --git a/tests/purs/failing/OrphanKindDeclaration2.out b/tests/purs/failing/OrphanKindDeclaration2.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/OrphanKindDeclaration2.out
@@ -0,0 +1,10 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/OrphanKindDeclaration2.purs:4:1 - 4:17 (line 4, column 1 - line 4, column 17)
+
+  The kind declaration for [33mFoo[0m should be followed by its definition.
+
+
+See https://github.com/purescript/documentation/blob/master/errors/OrphanKindDeclaration.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/OrphanKindDeclaration2.purs b/tests/purs/failing/OrphanKindDeclaration2.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/OrphanKindDeclaration2.purs
@@ -0,0 +1,5 @@
+-- @shouldFailWith OrphanKindDeclaration
+module Main where
+
+type Foo :: Type
+data Foo = Foo Int
diff --git a/tests/purs/failing/OrphanRoleDeclaration1.out b/tests/purs/failing/OrphanRoleDeclaration1.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/OrphanRoleDeclaration1.out
@@ -0,0 +1,10 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/OrphanRoleDeclaration1.purs:4:1 - 4:20 (line 4, column 1 - line 4, column 20)
+
+  The role declaration for [33mD[0m should follow its definition.
+
+
+See https://github.com/purescript/documentation/blob/master/errors/OrphanRoleDeclaration.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/OrphanRoleDeclaration1.purs b/tests/purs/failing/OrphanRoleDeclaration1.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/OrphanRoleDeclaration1.purs
@@ -0,0 +1,4 @@
+-- @shouldFailWith OrphanRoleDeclaration
+module Main where
+
+type role D nominal
diff --git a/tests/purs/failing/OrphanRoleDeclaration2.out b/tests/purs/failing/OrphanRoleDeclaration2.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/OrphanRoleDeclaration2.out
@@ -0,0 +1,10 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/OrphanRoleDeclaration2.purs:4:1 - 4:20 (line 4, column 1 - line 4, column 20)
+
+  The role declaration for [33mD[0m should follow its definition.
+
+
+See https://github.com/purescript/documentation/blob/master/errors/OrphanRoleDeclaration.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/OrphanRoleDeclaration2.purs b/tests/purs/failing/OrphanRoleDeclaration2.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/OrphanRoleDeclaration2.purs
@@ -0,0 +1,5 @@
+-- @shouldFailWith OrphanRoleDeclaration
+module Main where
+
+type role D nominal
+data D a = D a
diff --git a/tests/purs/failing/OrphanRoleDeclaration3.out b/tests/purs/failing/OrphanRoleDeclaration3.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/OrphanRoleDeclaration3.out
@@ -0,0 +1,10 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/OrphanRoleDeclaration3.purs:8:1 - 8:21 (line 8, column 1 - line 8, column 21)
+
+  The role declaration for [33mD1[0m should follow its definition.
+
+
+See https://github.com/purescript/documentation/blob/master/errors/OrphanRoleDeclaration.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/OrphanRoleDeclaration3.purs b/tests/purs/failing/OrphanRoleDeclaration3.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/OrphanRoleDeclaration3.purs
@@ -0,0 +1,8 @@
+-- @shouldFailWith OrphanRoleDeclaration
+module Main where
+
+data D1 a = D1 a
+
+data D2 a = D2 a
+
+type role D1 nominal
diff --git a/tests/purs/failing/OrphanTypeDecl.out b/tests/purs/failing/OrphanTypeDecl.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/OrphanTypeDecl.out
@@ -0,0 +1,10 @@
+Error found:
+in module [33mOrphanTypeDecl[0m
+at tests/purs/failing/OrphanTypeDecl.purs:4:1 - 4:24 (line 4, column 1 - line 4, column 24)
+
+  The type declaration for [33mfn[0m should be followed by its definition.
+
+
+See https://github.com/purescript/documentation/blob/master/errors/OrphanTypeDeclaration.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/OrphanUnnamedInstance.out b/tests/purs/failing/OrphanUnnamedInstance.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/OrphanUnnamedInstance.out
@@ -0,0 +1,18 @@
+Error found:
+in module [33mTest[0m
+at tests/purs/failing/OrphanUnnamedInstance.purs:6:1 - 7:11 (line 6, column 1 - line 7, column 11)
+
+  Orphan instance found for
+  [33m                 [0m
+  [33m  Class.C Boolean[0m
+  [33m                 [0m
+  This problem can be resolved by declaring the instance in [33mClass[0m, or by defining the instance on a newtype wrapper.
+
+in type class instance
+[33m                 [0m
+[33m  Class.C Boolean[0m
+[33m                 [0m
+
+See https://github.com/purescript/documentation/blob/master/errors/OrphanInstance.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/OrphanUnnamedInstance.purs b/tests/purs/failing/OrphanUnnamedInstance.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/OrphanUnnamedInstance.purs
@@ -0,0 +1,7 @@
+-- @shouldFailWith OrphanInstance
+module Test where
+
+import Class
+
+instance C Boolean where
+  op a = a
diff --git a/tests/purs/failing/OrphanUnnamedInstance/Class.purs b/tests/purs/failing/OrphanUnnamedInstance/Class.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/OrphanUnnamedInstance/Class.purs
@@ -0,0 +1,4 @@
+module Class where
+
+class C a where
+  op :: a -> a
diff --git a/tests/purs/failing/OverlapAcrossModules.out b/tests/purs/failing/OverlapAcrossModules.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/OverlapAcrossModules.out
@@ -0,0 +1,24 @@
+Error found:
+in module [33mOverlapAcrossModules[0m
+at tests/purs/failing/OverlapAcrossModules.purs:6:1 - 6:22 (line 6, column 1 - line 6, column 22)
+
+  Overlapping type class instances found for
+  [33m                                [0m
+  [33m  OverlapAcrossModules.Class.C X[0m
+  [33m                               Y[0m
+  [33m                                [0m
+  The following instances were found:
+
+    [33mOverlapAcrossModules.X.cxy[0m
+    [33mOverlapAcrossModules.cxy[0m
+
+
+in type class instance
+[33m                                [0m
+[33m  OverlapAcrossModules.Class.C X[0m
+[33m                               Y[0m
+[33m                                [0m
+
+See https://github.com/purescript/documentation/blob/master/errors/OverlappingInstances.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/OverlapAcrossModules/Class.out b/tests/purs/failing/OverlapAcrossModules/Class.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/OverlapAcrossModules/Class.out
@@ -0,0 +1,24 @@
+Error found:
+in module [33mOverlapAcrossModules[0m
+at tests/purs/failing/OverlapAcrossModules.purs:6:1 - 6:22 (line 6, column 1 - line 6, column 22)
+
+  Overlapping type class instances found for
+  [33m                                [0m
+  [33m  OverlapAcrossModules.Class.C X[0m
+  [33m                               Y[0m
+  [33m                                [0m
+  The following instances were found:
+
+    OverlapAcrossModules.X.cxy
+    OverlapAcrossModules.cxy
+
+
+in type class instance
+[33m                                [0m
+[33m  OverlapAcrossModules.Class.C X[0m
+[33m                               Y[0m
+[33m                                [0m
+
+See https://github.com/purescript/documentation/blob/master/errors/OverlappingInstances.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/OverlapAcrossModulesUnnamedInstance.out b/tests/purs/failing/OverlapAcrossModulesUnnamedInstance.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/OverlapAcrossModulesUnnamedInstance.out
@@ -0,0 +1,24 @@
+Error found:
+in module [33mOverlapAcrossModules[0m
+at tests/purs/failing/OverlapAcrossModulesUnnamedInstance.purs:6:1 - 6:15 (line 6, column 1 - line 6, column 15)
+
+  Overlapping type class instances found for
+  [33m                                [0m
+  [33m  OverlapAcrossModules.Class.C X[0m
+  [33m                               Y[0m
+  [33m                                [0m
+  The following instances were found:
+
+    [33mOverlapAcrossModules.X.cX[0m
+    instance in module [33mOverlapAcrossModules[0m with type [33mC X Y[0m (line 6, column 1 - line 6, column 15)
+
+
+in type class instance
+[33m                                [0m
+[33m  OverlapAcrossModules.Class.C X[0m
+[33m                               Y[0m
+[33m                                [0m
+
+See https://github.com/purescript/documentation/blob/master/errors/OverlappingInstances.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/OverlapAcrossModulesUnnamedInstance.purs b/tests/purs/failing/OverlapAcrossModulesUnnamedInstance.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/OverlapAcrossModulesUnnamedInstance.purs
@@ -0,0 +1,7 @@
+-- @shouldFailWith OverlappingInstances
+module OverlapAcrossModules where
+import OverlapAcrossModules.Class
+import OverlapAcrossModules.X
+data Y
+instance C X Y
+
diff --git a/tests/purs/failing/OverlapAcrossModulesUnnamedInstance/Class.out b/tests/purs/failing/OverlapAcrossModulesUnnamedInstance/Class.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/OverlapAcrossModulesUnnamedInstance/Class.out
@@ -0,0 +1,24 @@
+Error found:
+in module [33mOverlapAcrossModules[0m
+at tests/purs/failing/OverlapAcrossModules.purs:6:1 - 6:22 (line 6, column 1 - line 6, column 22)
+
+  Overlapping type class instances found for
+  [33m                                [0m
+  [33m  OverlapAcrossModules.Class.C X[0m
+  [33m                               Y[0m
+  [33m                                [0m
+  The following instances were found:
+
+    OverlapAcrossModules.X.cxy
+    OverlapAcrossModules.cxy
+
+
+in type class instance
+[33m                                [0m
+[33m  OverlapAcrossModules.Class.C X[0m
+[33m                               Y[0m
+[33m                                [0m
+
+See https://github.com/purescript/documentation/blob/master/errors/OverlappingInstances.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/OverlapAcrossModulesUnnamedInstance/Class.purs b/tests/purs/failing/OverlapAcrossModulesUnnamedInstance/Class.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/OverlapAcrossModulesUnnamedInstance/Class.purs
@@ -0,0 +1,2 @@
+module OverlapAcrossModules.Class where
+class C x y
diff --git a/tests/purs/failing/OverlapAcrossModulesUnnamedInstance/X.purs b/tests/purs/failing/OverlapAcrossModulesUnnamedInstance/X.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/OverlapAcrossModulesUnnamedInstance/X.purs
@@ -0,0 +1,4 @@
+module OverlapAcrossModules.X where
+import OverlapAcrossModules.Class
+data X
+instance C X y
diff --git a/tests/purs/failing/OverlappingArguments.out b/tests/purs/failing/OverlappingArguments.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/OverlappingArguments.out
@@ -0,0 +1,10 @@
+Error found:
+in module [33mOverlappingArguments[0m
+at tests/purs/failing/OverlappingArguments.purs:6:1 - 6:10 (line 6, column 1 - line 6, column 10)
+
+  Overlapping names in function/binder in declaration f
+
+
+See https://github.com/purescript/documentation/blob/master/errors/OverlappingArgNames.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/OverlappingBinders.out b/tests/purs/failing/OverlappingBinders.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/OverlappingBinders.out
@@ -0,0 +1,14 @@
+Error found:
+in module [33mOverlappingBinders[0m
+at tests/purs/failing/OverlappingBinders.purs:8:7 - 9:28 (line 8, column 7 - line 9, column 28)
+
+  Overlapping names in function/binder
+
+while inferring the type of [33m\x ->                      [0m
+                            [33m  case x of                [0m
+                            [33m    (S y (S y@S z zs)) -> y[0m
+in value declaration [33mf[0m
+
+See https://github.com/purescript/documentation/blob/master/errors/OverlappingArgNames.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/OverlappingInstances.out b/tests/purs/failing/OverlappingInstances.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/OverlappingInstances.out
@@ -0,0 +1,22 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/OverlappingInstances.purs:10:1 - 11:13 (line 10, column 1 - line 11, column 13)
+
+  Overlapping type class instances found for
+  [33m               [0m
+  [33m  Main.Test Int[0m
+  [33m               [0m
+  The following instances were found:
+
+    [33mMain.testRefl[0m
+    [33mMain.testInt[0m
+
+
+in type class instance
+[33m               [0m
+[33m  Main.Test Int[0m
+[33m               [0m
+
+See https://github.com/purescript/documentation/blob/master/errors/OverlappingInstances.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/OverlappingInstances.purs b/tests/purs/failing/OverlappingInstances.purs
--- a/tests/purs/failing/OverlappingInstances.purs
+++ b/tests/purs/failing/OverlappingInstances.purs
@@ -12,6 +12,6 @@
 
 -- The OverlappingInstances instances error only arises when there are two
 -- choices for a dictionary, not when the instances are defined. So without
--- `value` this module would not raise a warning.
+-- `value` this module would not raise an error.
 value :: Int
 value = test 1
diff --git a/tests/purs/failing/OverlappingUnnamedInstances.out b/tests/purs/failing/OverlappingUnnamedInstances.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/OverlappingUnnamedInstances.out
@@ -0,0 +1,22 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/OverlappingUnnamedInstances.purs:10:1 - 11:13 (line 10, column 1 - line 11, column 13)
+
+  Overlapping type class instances found for
+  [33m               [0m
+  [33m  Main.Test Int[0m
+  [33m               [0m
+  The following instances were found:
+
+    instance in module [33mMain[0m with type [33mforall a. Test a[0m (line 7, column 1 - line 8, column 13)
+    instance in module [33mMain[0m with type [33mTest Int[0m (line 10, column 1 - line 11, column 13)
+
+
+in type class instance
+[33m               [0m
+[33m  Main.Test Int[0m
+[33m               [0m
+
+See https://github.com/purescript/documentation/blob/master/errors/OverlappingInstances.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/OverlappingUnnamedInstances.purs b/tests/purs/failing/OverlappingUnnamedInstances.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/OverlappingUnnamedInstances.purs
@@ -0,0 +1,17 @@
+-- @shouldFailWith OverlappingInstances
+module Main where
+
+class Test a where
+  test :: a -> a
+
+instance Test a where
+  test x = x
+
+instance Test Int where
+  test _ = 0
+
+-- The OverlappingInstances instances error only arises when there are two
+-- choices for a dictionary, not when the instances are defined. So without
+-- `value` this module would not raise an error.
+value :: Int
+value = test 1
diff --git a/tests/purs/failing/OverlappingVars.out b/tests/purs/failing/OverlappingVars.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/OverlappingVars.out
@@ -0,0 +1,20 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/OverlappingVars.purs:14:8 - 14:20 (line 14, column 8 - line 14, column 20)
+
+  No type class instance was found for
+  [33m                                       [0m
+  [33m  Main.OverlappingVars (Foo String Int)[0m
+  [33m                                       [0m
+
+while applying a function [33mf[0m
+  of type [33mOverlappingVars t0 => t0 -> t0[0m
+  to argument [33m(Foo "") 0[0m
+while inferring the type of [33mf ((Foo "") 0)[0m
+in value declaration [33mtest[0m
+
+where [33mt0[0m is an unknown type
+
+See https://github.com/purescript/documentation/blob/master/errors/NoInstanceFound.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/PASTrumpsKDNU1.out b/tests/purs/failing/PASTrumpsKDNU1.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/PASTrumpsKDNU1.out
@@ -0,0 +1,17 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/PASTrumpsKDNU1.purs:14:33 - 14:43 (line 14, column 33 - line 14, column 43)
+
+  Type synonym [33mData.NaturalTransformation.NaturalTransformation[0m is partially applied.
+  Type synonyms must be applied to all of their type arguments.
+
+while checking that type [33mNaturalTransformation Array[0m
+  has kind [33mType[0m
+while inferring the kind of [33mShow a => NaturalTransformation Array[0m
+while inferring the kind of [33mProxy (Show a => NaturalTransformation Array)[0m
+while inferring the kind of [33mforall a. Proxy (Show a => NaturalTransformation Array)[0m
+in value declaration [33mf[0m
+
+See https://github.com/purescript/documentation/blob/master/errors/PartiallyAppliedSynonym.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/PASTrumpsKDNU1.purs b/tests/purs/failing/PASTrumpsKDNU1.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/PASTrumpsKDNU1.purs
@@ -0,0 +1,15 @@
+-- @shouldFailWith PartiallyAppliedSynonym
+module Main where
+
+import Prelude
+
+-- The PASTrumpsKDNU series of tests check a number of situations in which
+-- both PartiallyAppliedSynonym and KindsDoNotUnify would be reasonable
+-- errors to show; in these situtations, PartiallyAppliedSynonym is likely to
+-- be the more useful error.
+
+data Proxy :: forall k. k -> Type
+data Proxy a = Proxy
+
+f :: forall a. Proxy (Show a => (~>) Array)
+f = Proxy
diff --git a/tests/purs/failing/PASTrumpsKDNU2.out b/tests/purs/failing/PASTrumpsKDNU2.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/PASTrumpsKDNU2.out
@@ -0,0 +1,15 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/PASTrumpsKDNU2.purs:9:19 - 9:29 (line 9, column 19 - line 9, column 29)
+
+  Type synonym [33mData.NaturalTransformation.NaturalTransformation[0m is partially applied.
+  Type synonyms must be applied to all of their type arguments.
+
+while checking that type [33mNaturalTransformation Array[0m
+  has kind [33mType[0m
+while inferring the kind of [33mforall (a :: NaturalTransformation Array). Proxy a -> Proxy a[0m
+in value declaration [33mf[0m
+
+See https://github.com/purescript/documentation/blob/master/errors/PartiallyAppliedSynonym.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/PASTrumpsKDNU2.purs b/tests/purs/failing/PASTrumpsKDNU2.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/PASTrumpsKDNU2.purs
@@ -0,0 +1,10 @@
+-- @shouldFailWith PartiallyAppliedSynonym
+module Main where
+
+import Prelude
+
+data Proxy :: forall k. k -> Type
+data Proxy a = Proxy
+
+f :: forall (a :: (~>) Array). Proxy a -> Proxy a
+f x = x
diff --git a/tests/purs/failing/PASTrumpsKDNU3.out b/tests/purs/failing/PASTrumpsKDNU3.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/PASTrumpsKDNU3.out
@@ -0,0 +1,16 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/PASTrumpsKDNU3.purs:9:23 - 9:33 (line 9, column 23 - line 9, column 33)
+
+  Type synonym [33mData.NaturalTransformation.NaturalTransformation[0m is partially applied.
+  Type synonyms must be applied to all of their type arguments.
+
+while checking that type [33mNaturalTransformation Array[0m
+  has kind [33mType[0m
+while inferring the kind of [33mforall a. NaturalTransformation Array[0m
+while inferring the kind of [33mProxy (forall a. NaturalTransformation Array)[0m
+in value declaration [33mp[0m
+
+See https://github.com/purescript/documentation/blob/master/errors/PartiallyAppliedSynonym.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/PASTrumpsKDNU3.purs b/tests/purs/failing/PASTrumpsKDNU3.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/PASTrumpsKDNU3.purs
@@ -0,0 +1,10 @@
+-- @shouldFailWith PartiallyAppliedSynonym
+module Main where
+
+import Prelude
+
+data Proxy :: forall k. k -> Type
+data Proxy a = Proxy
+
+p :: Proxy (forall a. (~>) Array)
+p = Proxy
diff --git a/tests/purs/failing/PASTrumpsKDNU4.out b/tests/purs/failing/PASTrumpsKDNU4.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/PASTrumpsKDNU4.out
@@ -0,0 +1,14 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/PASTrumpsKDNU4.purs:6:14 - 6:24 (line 6, column 14 - line 6, column 24)
+
+  Type synonym [33mData.NaturalTransformation.NaturalTransformation[0m is partially applied.
+  Type synonyms must be applied to all of their type arguments.
+
+while checking that type [33mNaturalTransformation Array[0m
+  has kind [33mType[0m
+in type constructor [33mD[0m
+
+See https://github.com/purescript/documentation/blob/master/errors/PartiallyAppliedSynonym.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/PASTrumpsKDNU4.purs b/tests/purs/failing/PASTrumpsKDNU4.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/PASTrumpsKDNU4.purs
@@ -0,0 +1,6 @@
+-- @shouldFailWith PartiallyAppliedSynonym
+module Main where
+
+import Prelude
+
+data D (a :: (~>) Array) = D
diff --git a/tests/purs/failing/PASTrumpsKDNU5.out b/tests/purs/failing/PASTrumpsKDNU5.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/PASTrumpsKDNU5.out
@@ -0,0 +1,14 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/PASTrumpsKDNU5.purs:6:16 - 6:26 (line 6, column 16 - line 6, column 26)
+
+  Type synonym [33mData.NaturalTransformation.NaturalTransformation[0m is partially applied.
+  Type synonyms must be applied to all of their type arguments.
+
+while checking that type [33mNaturalTransformation Array[0m
+  has kind [33mType[0m
+in type constructor [33mN[0m
+
+See https://github.com/purescript/documentation/blob/master/errors/PartiallyAppliedSynonym.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/PASTrumpsKDNU5.purs b/tests/purs/failing/PASTrumpsKDNU5.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/PASTrumpsKDNU5.purs
@@ -0,0 +1,6 @@
+-- @shouldFailWith PartiallyAppliedSynonym
+module Main where
+
+import Prelude
+
+newtype N = N ((~>) Array)
diff --git a/tests/purs/failing/PASTrumpsKDNU6.out b/tests/purs/failing/PASTrumpsKDNU6.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/PASTrumpsKDNU6.out
@@ -0,0 +1,14 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/PASTrumpsKDNU6.purs:6:14 - 6:24 (line 6, column 14 - line 6, column 24)
+
+  Type synonym [33mData.NaturalTransformation.NaturalTransformation[0m is partially applied.
+  Type synonyms must be applied to all of their type arguments.
+
+while checking that type [33mNaturalTransformation Array[0m
+  has kind [33mType[0m
+in type synonym [33mT[0m
+
+See https://github.com/purescript/documentation/blob/master/errors/PartiallyAppliedSynonym.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/PASTrumpsKDNU6.purs b/tests/purs/failing/PASTrumpsKDNU6.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/PASTrumpsKDNU6.purs
@@ -0,0 +1,6 @@
+-- @shouldFailWith PartiallyAppliedSynonym
+module Main where
+
+import Prelude
+
+type T (a :: (~>) Array) = Int
diff --git a/tests/purs/failing/PASTrumpsKDNU7.out b/tests/purs/failing/PASTrumpsKDNU7.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/PASTrumpsKDNU7.out
@@ -0,0 +1,14 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/PASTrumpsKDNU7.purs:6:15 - 6:25 (line 6, column 15 - line 6, column 25)
+
+  Type synonym [33mData.NaturalTransformation.NaturalTransformation[0m is partially applied.
+  Type synonyms must be applied to all of their type arguments.
+
+while checking that type [33mNaturalTransformation Array[0m
+  has kind [33mType[0m
+in type constructor [33mC$Dict[0m
+
+See https://github.com/purescript/documentation/blob/master/errors/PartiallyAppliedSynonym.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/PASTrumpsKDNU7.purs b/tests/purs/failing/PASTrumpsKDNU7.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/PASTrumpsKDNU7.purs
@@ -0,0 +1,6 @@
+-- @shouldFailWith PartiallyAppliedSynonym
+module Main where
+
+import Prelude
+
+class C (a :: (~>) Array)
diff --git a/tests/purs/failing/PolykindGeneralizationLet.out b/tests/purs/failing/PolykindGeneralizationLet.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/PolykindGeneralizationLet.out
@@ -0,0 +1,24 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/PolykindGeneralizationLet.purs:14:10 - 14:26 (line 14, column 10 - line 14, column 26)
+
+  Could not match type
+  [33m       [0m
+  [33m  "foo"[0m
+  [33m       [0m
+  with type
+  [33m     [0m
+  [33m  Int[0m
+  [33m     [0m
+
+while trying to match type [33mt0 "foo"[0m
+  with type [33mProxy @Type Int[0m
+while checking that expression [33mProxy[0m
+  has type [33mProxy @Type Int[0m
+in value declaration [33mtest[0m
+
+where [33mt0[0m is an unknown type
+
+See https://github.com/purescript/documentation/blob/master/errors/TypesDoNotUnify.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/PolykindGeneralizationLet.purs b/tests/purs/failing/PolykindGeneralizationLet.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/PolykindGeneralizationLet.purs
@@ -0,0 +1,14 @@
+-- @shouldFailWith TypesDoNotUnify
+module Main where
+
+data Proxy a = Proxy
+data F f a = F (f a)
+
+fproxy :: forall f a. Proxy f -> Proxy a -> Proxy (F f a)
+fproxy _ _ = Proxy
+
+test = c
+  where
+  a = fproxy (Proxy :: _ Proxy)
+  b = a (Proxy :: _ Int)
+  c = a (Proxy :: _ "foo")
diff --git a/tests/purs/failing/PolykindInstanceOverlapping.out b/tests/purs/failing/PolykindInstanceOverlapping.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/PolykindInstanceOverlapping.out
@@ -0,0 +1,22 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/PolykindInstanceOverlapping.purs:12:1 - 13:19 (line 12, column 1 - line 13, column 19)
+
+  Overlapping type class instances found for
+  [33m                      [0m
+  [33m  Main.ShowP (Proxy a)[0m
+  [33m                      [0m
+  The following instances were found:
+
+    [33mMain.test1[0m
+    [33mMain.test2[0m
+
+
+in type class instance
+[33m                             [0m
+[33m  Main.ShowP (Proxy (a :: k))[0m
+[33m                             [0m
+
+See https://github.com/purescript/documentation/blob/master/errors/OverlappingInstances.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/PolykindInstanceOverlapping.purs b/tests/purs/failing/PolykindInstanceOverlapping.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/PolykindInstanceOverlapping.purs
@@ -0,0 +1,13 @@
+-- @shouldFailWith OverlappingInstances
+module Main where
+
+data Proxy a = Proxy
+
+class ShowP a where
+  showP :: a -> String
+
+instance test1 :: ShowP (Proxy ((a) :: k)) where
+  showP _ = "Type"
+
+instance test2 :: ShowP (Proxy ((a) :: k)) where
+  showP _ = "Type"
diff --git a/tests/purs/failing/PolykindInstantiatedInstance.out b/tests/purs/failing/PolykindInstantiatedInstance.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/PolykindInstantiatedInstance.out
@@ -0,0 +1,25 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/PolykindInstantiatedInstance.purs:12:26 - 12:42 (line 12, column 26 - line 12, column 42)
+
+  Could not match kind
+  [33m        [0m
+  [33m  Symbol[0m
+  [33m        [0m
+  with kind
+  [33m      [0m
+  [33m  Type[0m
+  [33m      [0m
+
+while trying to match type [33m"foo"[0m
+  with type [33mt1[0m
+while checking that expression [33mProxy[0m
+  has type [33mt0 t1[0m
+in value declaration [33mtest1[0m
+
+where [33mt0[0m is an unknown type
+      [33mt1[0m is an unknown type
+
+See https://github.com/purescript/documentation/blob/master/errors/KindsDoNotUnify.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/PolykindInstantiatedInstance.purs b/tests/purs/failing/PolykindInstantiatedInstance.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/PolykindInstantiatedInstance.purs
@@ -0,0 +1,12 @@
+-- @shouldFailWith KindsDoNotUnify
+module Main where
+
+data Proxy a = Proxy
+
+class F f where
+  f :: forall a b. (a -> b) -> f a -> f b
+
+instance fProxy :: F Proxy where
+  f _ _ = Proxy
+
+test1 = f (\a -> "foo") (Proxy :: _ "foo")
diff --git a/tests/purs/failing/PolykindInstantiation.out b/tests/purs/failing/PolykindInstantiation.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/PolykindInstantiation.out
@@ -0,0 +1,22 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/PolykindInstantiation.purs:8:33 - 8:38 (line 8, column 33 - line 8, column 38)
+
+  Could not match kind
+  [33m        [0m
+  [33m  Symbol[0m
+  [33m        [0m
+  with kind
+  [33m      [0m
+  [33m  Type[0m
+  [33m      [0m
+
+while checking that type [33m"foo"[0m
+  has kind [33mType[0m
+while inferring the kind of [33mF Proxy "foo"[0m
+while inferring the kind of [33mProxy (F Proxy "foo")[0m
+in value declaration [33mtest2[0m
+
+See https://github.com/purescript/documentation/blob/master/errors/KindsDoNotUnify.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/PolykindInstantiation.purs b/tests/purs/failing/PolykindInstantiation.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/PolykindInstantiation.purs
@@ -0,0 +1,8 @@
+-- @shouldFailWith KindsDoNotUnify
+module Main where
+
+data Proxy a = Proxy
+data F f (a :: Type) = F (f a)
+
+test1 = Proxy :: Proxy (F Proxy Int)
+test2 = Proxy :: Proxy (F Proxy "foo")
diff --git a/tests/purs/failing/PolykindUnnamedInstanceOverlapping.out b/tests/purs/failing/PolykindUnnamedInstanceOverlapping.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/PolykindUnnamedInstanceOverlapping.out
@@ -0,0 +1,22 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/PolykindUnnamedInstanceOverlapping.purs:12:1 - 13:19 (line 12, column 1 - line 13, column 19)
+
+  Overlapping type class instances found for
+  [33m                      [0m
+  [33m  Main.ShowP (Proxy a)[0m
+  [33m                      [0m
+  The following instances were found:
+
+    instance in module [33mMain[0m with type [33mforall a. ShowP (Proxy a)[0m (line 9, column 1 - line 10, column 19)
+    instance in module [33mMain[0m with type [33mforall a. ShowP (Proxy a)[0m (line 12, column 1 - line 13, column 19)
+
+
+in type class instance
+[33m                             [0m
+[33m  Main.ShowP (Proxy (a :: k))[0m
+[33m                             [0m
+
+See https://github.com/purescript/documentation/blob/master/errors/OverlappingInstances.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/PolykindUnnamedInstanceOverlapping.purs b/tests/purs/failing/PolykindUnnamedInstanceOverlapping.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/PolykindUnnamedInstanceOverlapping.purs
@@ -0,0 +1,13 @@
+-- @shouldFailWith OverlappingInstances
+module Main where
+
+data Proxy a = Proxy
+
+class ShowP a where
+  showP :: a -> String
+
+instance ShowP (Proxy ((a) :: k)) where
+  showP _ = "Type"
+
+instance ShowP (Proxy ((a) :: k)) where
+  showP _ = "Type"
diff --git a/tests/purs/failing/PossiblyInfiniteCoercibleInstance.out b/tests/purs/failing/PossiblyInfiniteCoercibleInstance.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/PossiblyInfiniteCoercibleInstance.out
@@ -0,0 +1,25 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/PossiblyInfiniteCoercibleInstance.purs:9:12 - 9:18 (line 9, column 12 - line 9, column 18)
+
+  A [33mCoercible[0m instance is possibly infinite.
+
+while solving type class constraint
+[33m                              [0m
+[33m  Prim.Coerce.Coercible (N a0)[0m
+[33m                        (N b1)[0m
+[33m                              [0m
+while checking that type [33mforall (a :: Type) (b :: Type). Coercible @Type a b => a -> b[0m
+  is at least as general as type [33mN a0 -> N b1[0m
+while checking that expression [33mcoerce[0m
+  has type [33mN a0 -> N b1[0m
+in value declaration [33minfinite[0m
+
+where [33ma0[0m is a rigid type variable
+        bound at (line 9, column 12 - line 9, column 18)
+      [33mb1[0m is a rigid type variable
+        bound at (line 9, column 12 - line 9, column 18)
+
+See https://github.com/purescript/documentation/blob/master/errors/PossiblyInfiniteCoercibleInstance.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/PossiblyInfiniteCoercibleInstance.purs b/tests/purs/failing/PossiblyInfiniteCoercibleInstance.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/PossiblyInfiniteCoercibleInstance.purs
@@ -0,0 +1,9 @@
+-- @shouldFailWith PossiblyInfiniteCoercibleInstance
+module Main where
+
+import Safe.Coerce (coerce)
+
+newtype N a = N (a -> N a)
+
+infinite :: forall a b. N a -> N b
+infinite = coerce
diff --git a/tests/purs/failing/PrimModuleReserved.out b/tests/purs/failing/PrimModuleReserved.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/PrimModuleReserved.out
@@ -0,0 +1,10 @@
+Error found:
+at tests/purs/failing/PrimModuleReserved/Prim.purs:1:1 - 1:18 (line 1, column 1 - line 1, column 18)
+
+  The module name [33mPrim[0m is in the Prim namespace.
+  The Prim namespace is reserved for compiler-defined terms.
+
+
+See https://github.com/purescript/documentation/blob/master/errors/CannotDefinePrimModules.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/PrimRow.out b/tests/purs/failing/PrimRow.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/PrimRow.out
@@ -0,0 +1,10 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/PrimRow.purs:8:6 - 8:42 (line 8, column 6 - line 8, column 42)
+
+  Unknown type class [33mCons[0m
+
+
+See https://github.com/purescript/documentation/blob/master/errors/UnknownName.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/PrimSubModuleReserved.out b/tests/purs/failing/PrimSubModuleReserved.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/PrimSubModuleReserved.out
@@ -0,0 +1,10 @@
+Error found:
+at tests/purs/failing/PrimSubModuleReserved/Prim_Foobar.purs:1:1 - 1:25 (line 1, column 1 - line 1, column 25)
+
+  The module name [33mPrim.Foobar[0m is in the Prim namespace.
+  The Prim namespace is reserved for compiler-defined terms.
+
+
+See https://github.com/purescript/documentation/blob/master/errors/CannotDefinePrimModules.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/PrimSubModuleReserved/Prim_Foobar.out b/tests/purs/failing/PrimSubModuleReserved/Prim_Foobar.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/PrimSubModuleReserved/Prim_Foobar.out
@@ -0,0 +1,10 @@
+Error found:
+at tests/purs/failing/PrimSubModuleReserved/Prim_Foobar.purs:1:1 - 1:25 (line 1, column 1 - line 1, column 25)
+
+  The module name [33mPrim.Foobar[0m is in the Prim namespace.
+  The Prim namespace is reserved for compiler-defined terms.
+
+
+See https://github.com/purescript/documentation/blob/master/errors/CannotDefinePrimModules.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/ProgrammablePolykindedTypeErrorsTypeString.out b/tests/purs/failing/ProgrammablePolykindedTypeErrorsTypeString.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/ProgrammablePolykindedTypeErrorsTypeString.out
@@ -0,0 +1,18 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/ProgrammablePolykindedTypeErrorsTypeString.purs:23:7 - 23:17 (line 23, column 7 - line 23, column 17)
+
+  Custom error:
+
+    Don't want to show Just @Type String because.
+
+
+while checking that type [33mFail (Beside (Beside (Text "Don\'t want to show ") (... ...)) (Text " because.")) => String[0m
+  is at least as general as type [33mString[0m
+while checking that expression [33msomeString[0m
+  has type [33mString[0m
+in value declaration [33mmain[0m
+
+See https://github.com/purescript/documentation/blob/master/errors/NoInstanceFound.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/ProgrammablePolykindedTypeErrorsTypeString.purs b/tests/purs/failing/ProgrammablePolykindedTypeErrorsTypeString.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/ProgrammablePolykindedTypeErrorsTypeString.purs
@@ -0,0 +1,23 @@
+-- @shouldFailWith NoInstanceFound
+
+module Main where
+
+import Prelude
+import Prim.TypeError
+import Effect (Effect)
+import Effect.Console (log)
+
+data Maybe :: forall k. k -> Type
+data Maybe a
+
+foreign import data Nothing :: forall k. Maybe k
+foreign import data Just :: forall k. k -> Maybe k
+
+someString :: Fail (Text "Don't want to show " <> Quote (Just String) <> Text " because.") => String
+someString = "someString"
+
+infixl 6 type Beside as <>
+
+main :: Effect Unit
+main = do
+  log someString
diff --git a/tests/purs/failing/ProgrammableTypeErrors.out b/tests/purs/failing/ProgrammableTypeErrors.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/ProgrammableTypeErrors.out
@@ -0,0 +1,28 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/ProgrammableTypeErrors.purs:17:13 - 17:27 (line 17, column 13 - line 17, column 27)
+
+  Custom error:
+
+    Cannot show functions
+
+
+while solving type class constraint
+[33m                          [0m
+[33m  Main.MyShow (Int -> Int)[0m
+[33m                          [0m
+while applying a function [33mmyShow[0m
+  of type [33mMyShow t0 => t0 -> String[0m
+  to argument [33m\$1 ->      [0m
+              [33m  (add $1) 1[0m
+while checking that expression [33mmyShow (\$1 ->      [0m
+                               [33m          (add $1) 1[0m
+                               [33m       )            [0m
+  has type [33mString[0m
+in value declaration [33mmain[0m
+
+where [33mt0[0m is an unknown type
+
+See https://github.com/purescript/documentation/blob/master/errors/NoInstanceFound.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/ProgrammableTypeErrorsTypeString.out b/tests/purs/failing/ProgrammableTypeErrorsTypeString.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/ProgrammableTypeErrorsTypeString.out
@@ -0,0 +1,25 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/ProgrammableTypeErrorsTypeString.purs:24:9 - 24:24 (line 24, column 9 - line 24, column 24)
+
+  Custom error:
+
+    Don't want to show MyType Int because.
+
+
+while solving type class constraint
+[33m                             [0m
+[33m  Data.Show.Show (MyType Int)[0m
+[33m                             [0m
+while applying a function [33mshow[0m
+  of type [33mShow t0 => t0 -> String[0m
+  to argument [33mMyType 2[0m
+while checking that expression [33mshow (MyType 2)[0m
+  has type [33mString[0m
+in value declaration [33mmain[0m
+
+where [33mt0[0m is an unknown type
+
+See https://github.com/purescript/documentation/blob/master/errors/NoInstanceFound.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/QualifiedOperators.out b/tests/purs/failing/QualifiedOperators.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/QualifiedOperators.out
@@ -0,0 +1,10 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/QualifiedOperators.purs:4:10 - 4:21 (line 4, column 10 - line 4, column 21)
+
+  Unknown module [33mFoo.Bar[0m
+
+
+See https://github.com/purescript/documentation/blob/master/errors/UnknownName.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/QualifiedOperators.purs b/tests/purs/failing/QualifiedOperators.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/QualifiedOperators.purs
@@ -0,0 +1,4 @@
+-- @shouldFailWith UnknownName
+module Main where
+
+test = 4 Foo.Bar.-#- 10
diff --git a/tests/purs/failing/QualifiedOperators2.out b/tests/purs/failing/QualifiedOperators2.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/QualifiedOperators2.out
@@ -0,0 +1,10 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/QualifiedOperators2.purs:4:8 - 4:21 (line 4, column 8 - line 4, column 21)
+
+  Unknown module [33mFoo.Bar[0m
+
+
+See https://github.com/purescript/documentation/blob/master/errors/UnknownName.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/QualifiedOperators2.purs b/tests/purs/failing/QualifiedOperators2.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/QualifiedOperators2.purs
@@ -0,0 +1,4 @@
+-- @shouldFailWith UnknownName
+module Main where
+
+test = Foo.Bar.(-#-) 4 10
diff --git a/tests/purs/failing/QuantificationCheckFailure.out b/tests/purs/failing/QuantificationCheckFailure.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/QuantificationCheckFailure.out
@@ -0,0 +1,12 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/QuantificationCheckFailure.purs:13:48 - 13:69 (line 13, column 48 - line 13, column 69)
+
+  Cannot generalize the kind of type variable [33md[0m since it would not be well-scoped.
+  Try adding a kind annotation.
+
+in kind declaration for [33mT[0m
+
+See https://github.com/purescript/documentation/blob/master/errors/QuantificationCheckFailureInKind.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/QuantificationCheckFailure.purs b/tests/purs/failing/QuantificationCheckFailure.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/QuantificationCheckFailure.purs
@@ -0,0 +1,14 @@
+-- @shouldFailWith QuantificationCheckFailureInKind
+module Main where
+
+data Proxy :: forall k. k -> Type
+data Proxy a = Proxy
+
+data Relate :: forall a (b :: a). a -> Proxy b -> Type
+data Relate x y = Relate
+
+-- Inferring and generalizing the kind of `d` such that implicitly generalized
+-- variables appear first would result in a reference to `a` before `a` is
+-- declared. See "Kind Inference for Datatypes" Section 7.2
+data T :: forall (a :: Type) (b :: a) (c :: a) d. Relate b d -> Type
+data T a = T
diff --git a/tests/purs/failing/QuantificationCheckFailure2.out b/tests/purs/failing/QuantificationCheckFailure2.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/QuantificationCheckFailure2.out
@@ -0,0 +1,16 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/QuantificationCheckFailure2.purs:6:13 - 6:30 (line 6, column 13 - line 6, column 30)
+
+  Cannot unambiguously generalize kinds appearing in the elaborated type:
+
+    [33mforall (a :: t8). Proxy @t8 a[0m
+
+  where [33mt8[0m is an unknown kind.
+  Try adding additional kind signatures or polymorphic kind variables.
+
+in type constructor [33mP[0m
+
+See https://github.com/purescript/documentation/blob/master/errors/QuantificationCheckFailureInType.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/QuantificationCheckFailure2.purs b/tests/purs/failing/QuantificationCheckFailure2.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/QuantificationCheckFailure2.purs
@@ -0,0 +1,6 @@
+-- @shouldFailWith QuantificationCheckFailureInType
+module Main where
+
+data Proxy a = Proxy
+
+data P = P (forall a. Proxy a)
diff --git a/tests/purs/failing/QuantificationCheckFailure3.out b/tests/purs/failing/QuantificationCheckFailure3.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/QuantificationCheckFailure3.out
@@ -0,0 +1,12 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/QuantificationCheckFailure3.purs:7:1 - 7:34 (line 7, column 1 - line 7, column 34)
+
+  Visible dependent quantification of type variable [33mk[0m is not supported.
+  If you would like this feature supported, please bother Liam Goodacre (@LiamGoodacre).
+
+in type synonym [33mHmm[0m
+
+See https://github.com/purescript/documentation/blob/master/errors/VisibleQuantificationCheckFailureInType.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/QuantificationCheckFailure3.purs b/tests/purs/failing/QuantificationCheckFailure3.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/QuantificationCheckFailure3.purs
@@ -0,0 +1,7 @@
+-- @shouldFailWith VisibleQuantificationCheckFailureInType
+module Main where
+
+foreign import data KProxy :: forall (k :: Type) . k -> Type
+foreign import data TProxy :: forall (k :: Type) (t :: k) . KProxy t
+
+type Hmm k = (TProxy :: KProxy k)
diff --git a/tests/purs/failing/QuantifiedKind.out b/tests/purs/failing/QuantifiedKind.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/QuantifiedKind.out
@@ -0,0 +1,15 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/QuantifiedKind.purs:6:22 - 6:23 (line 6, column 22 - line 6, column 23)
+
+  Type variable [33mk[0m is undefined.
+
+while inferring the kind of [33mk[0m
+while checking that type [33mk[0m
+  has kind [33mType[0m
+while inferring the kind of [33mforall (a :: k) k. Proxy a[0m
+in value declaration [33mtest[0m
+
+See https://github.com/purescript/documentation/blob/master/errors/UndefinedTypeVariable.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/QuantifiedKind.purs b/tests/purs/failing/QuantifiedKind.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/QuantifiedKind.purs
@@ -0,0 +1,7 @@
+-- @shouldFailWith UndefinedTypeVariable
+module Main where
+
+data Proxy a = Proxy
+
+test :: forall (a :: k) k. Proxy a
+test = Proxy
diff --git a/tests/purs/failing/Rank2Types.out b/tests/purs/failing/Rank2Types.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/Rank2Types.out
@@ -0,0 +1,25 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/Rank2Types.purs:8:25 - 8:26 (line 8, column 25 - line 8, column 26)
+
+  Could not match type
+  [33m     [0m
+  [33m  Int[0m
+  [33m     [0m
+  with type
+  [33m    [0m
+  [33m  a0[0m
+  [33m    [0m
+
+while checking that type [33mInt[0m
+  is at least as general as type [33ma0[0m
+while checking that expression [33m1[0m
+  has type [33ma0[0m
+in value declaration [33mtest1[0m
+
+where [33ma0[0m is a rigid type variable
+        bound at (line 8, column 14 - line 8, column 27)
+
+See https://github.com/purescript/documentation/blob/master/errors/TypesDoNotUnify.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/RecordLabelOnTypeError.out b/tests/purs/failing/RecordLabelOnTypeError.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/RecordLabelOnTypeError.out
@@ -0,0 +1,26 @@
+Error found:
+in module [33mRecordLabelOnTypeError[0m
+at tests/purs/failing/RecordLabelOnTypeError.purs:8:5 - 8:6 (line 8, column 5 - line 8, column 6)
+
+  Could not match type
+  [33m     [0m
+  [33m  Int[0m
+  [33m     [0m
+  with type
+  [33m        [0m
+  [33m  String[0m
+  [33m        [0m
+
+while matching label [33mfield[0m
+while checking that type [33m{ field :: Int[0m
+                         [33m}             [0m
+  is at least as general as type [33m{ field :: String[0m
+                                 [33m}                [0m
+while checking that expression [33ma[0m
+  has type [33m{ field :: String[0m
+           [33m}                [0m
+in value declaration [33mb[0m
+
+See https://github.com/purescript/documentation/blob/master/errors/TypesDoNotUnify.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/RecordLabelOnTypeError.purs b/tests/purs/failing/RecordLabelOnTypeError.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/RecordLabelOnTypeError.purs
@@ -0,0 +1,8 @@
+-- @shouldFailWith TypesDoNotUnify
+module RecordLabelOnTypeError where
+
+a :: { field :: Int }
+a = { field: 1 }
+
+b :: { field :: String }
+b = a -- this should trigger an error, telling us the `field` tag where the type discrepancy happened
diff --git a/tests/purs/failing/RecordLabelOnTypeErrorImmediate.out b/tests/purs/failing/RecordLabelOnTypeErrorImmediate.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/RecordLabelOnTypeErrorImmediate.out
@@ -0,0 +1,22 @@
+Error found:
+in module [33mNestedRecordLabelOnTypeError[0m
+at tests/purs/failing/RecordLabelOnTypeErrorImmediate.purs:5:15 - 5:18 (line 5, column 15 - line 5, column 18)
+
+  Could not match type
+  [33m        [0m
+  [33m  String[0m
+  [33m        [0m
+  with type
+  [33m     [0m
+  [33m  Int[0m
+  [33m     [0m
+
+while checking that type [33mString[0m
+  is at least as general as type [33mInt[0m
+while checking that expression [33m"a"[0m
+  has type [33mInt[0m
+in value declaration [33mrecord[0m
+
+See https://github.com/purescript/documentation/blob/master/errors/TypesDoNotUnify.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/RecordLabelOnTypeErrorImmediate.purs b/tests/purs/failing/RecordLabelOnTypeErrorImmediate.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/RecordLabelOnTypeErrorImmediate.purs
@@ -0,0 +1,5 @@
+-- @shouldFailWith TypesDoNotUnify
+module NestedRecordLabelOnTypeError where
+
+record :: { a :: Int }
+record = { a: "a" } -- Triggers an error, but the label is explicitly not added since it caused other errors to be worse. See https://github.com/purescript/purescript/pull/4411 for more information.
diff --git a/tests/purs/failing/RequiredHiddenType.out b/tests/purs/failing/RequiredHiddenType.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/RequiredHiddenType.out
@@ -0,0 +1,13 @@
+Error found:
+in module [33mFoo[0m
+at tests/purs/failing/RequiredHiddenType.purs:3:1 - 9:6 (line 3, column 1 - line 9, column 6)
+
+  An export for [33ma[0m requires the following to also be exported:
+
+    [33mA[0m
+
+
+
+See https://github.com/purescript/documentation/blob/master/errors/TransitiveExportError.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/Reserved.out b/tests/purs/failing/Reserved.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/Reserved.out
@@ -0,0 +1,10 @@
+Error found:
+at tests/purs/failing/Reserved.purs:6:1 - 6:4 (line 6, column 1 - line 6, column 4)
+
+  Unable to parse module:
+  Unexpected token '(<)'
+
+
+See https://github.com/purescript/documentation/blob/master/errors/ErrorParsingModule.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/RoleDeclarationArityMismatch.out b/tests/purs/failing/RoleDeclarationArityMismatch.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/RoleDeclarationArityMismatch.out
@@ -0,0 +1,11 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/RoleDeclarationArityMismatch.purs:5:1 - 5:20 (line 5, column 1 - line 5, column 20)
+
+  The type [33mA[0m expects 0 arguments but its role declaration lists 1 role.
+
+in role declaration for [33mA[0m
+
+See https://github.com/purescript/documentation/blob/master/errors/RoleDeclarationArityMismatch.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/RoleDeclarationArityMismatch.purs b/tests/purs/failing/RoleDeclarationArityMismatch.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/RoleDeclarationArityMismatch.purs
@@ -0,0 +1,5 @@
+-- @shouldFailWith RoleDeclarationArityMismatch
+module Main where
+
+data A = A
+type role A nominal
diff --git a/tests/purs/failing/RoleDeclarationArityMismatchForeign.out b/tests/purs/failing/RoleDeclarationArityMismatchForeign.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/RoleDeclarationArityMismatchForeign.out
@@ -0,0 +1,11 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/RoleDeclarationArityMismatchForeign.purs:5:1 - 5:20 (line 5, column 1 - line 5, column 20)
+
+  The type [33mA[0m expects 0 arguments but its role declaration lists 1 role.
+
+in role declaration for [33mA[0m
+
+See https://github.com/purescript/documentation/blob/master/errors/RoleDeclarationArityMismatch.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/RoleDeclarationArityMismatchForeign.purs b/tests/purs/failing/RoleDeclarationArityMismatchForeign.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/RoleDeclarationArityMismatchForeign.purs
@@ -0,0 +1,5 @@
+-- @shouldFailWith RoleDeclarationArityMismatch
+module Main where
+
+foreign import data A :: Type
+type role A nominal
diff --git a/tests/purs/failing/RoleDeclarationArityMismatchForeign2.out b/tests/purs/failing/RoleDeclarationArityMismatchForeign2.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/RoleDeclarationArityMismatchForeign2.out
@@ -0,0 +1,11 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/RoleDeclarationArityMismatchForeign2.purs:5:1 - 5:20 (line 5, column 1 - line 5, column 20)
+
+  The type [33mA[0m expects 2 arguments but its role declaration lists only 1 role.
+
+in role declaration for [33mA[0m
+
+See https://github.com/purescript/documentation/blob/master/errors/RoleDeclarationArityMismatch.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/RoleDeclarationArityMismatchForeign2.purs b/tests/purs/failing/RoleDeclarationArityMismatchForeign2.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/RoleDeclarationArityMismatchForeign2.purs
@@ -0,0 +1,5 @@
+-- @shouldFailWith RoleDeclarationArityMismatch
+module Main where
+
+foreign import data A :: Type -> (Type -> Type)
+type role A nominal
diff --git a/tests/purs/failing/RoleDeclarationArityMismatchForeign3.out b/tests/purs/failing/RoleDeclarationArityMismatchForeign3.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/RoleDeclarationArityMismatchForeign3.out
@@ -0,0 +1,11 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/RoleDeclarationArityMismatchForeign3.purs:5:1 - 5:20 (line 5, column 1 - line 5, column 20)
+
+  The type [33mA[0m expects 2 arguments but its role declaration lists only 1 role.
+
+in role declaration for [33mA[0m
+
+See https://github.com/purescript/documentation/blob/master/errors/RoleDeclarationArityMismatch.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/RoleDeclarationArityMismatchForeign3.purs b/tests/purs/failing/RoleDeclarationArityMismatchForeign3.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/RoleDeclarationArityMismatchForeign3.purs
@@ -0,0 +1,5 @@
+-- @shouldFailWith RoleDeclarationArityMismatch
+module Main where
+
+foreign import data A :: (Type -> Type -> Type)
+type role A nominal
diff --git a/tests/purs/failing/RoleDeclarationArityMismatchForeign4.out b/tests/purs/failing/RoleDeclarationArityMismatchForeign4.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/RoleDeclarationArityMismatchForeign4.out
@@ -0,0 +1,11 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/RoleDeclarationArityMismatchForeign4.purs:7:1 - 7:20 (line 7, column 1 - line 7, column 20)
+
+  The type [33mA[0m expects 2 arguments but its role declaration lists only 1 role.
+
+in role declaration for [33mA[0m
+
+See https://github.com/purescript/documentation/blob/master/errors/RoleDeclarationArityMismatch.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/RoleDeclarationArityMismatchForeign4.purs b/tests/purs/failing/RoleDeclarationArityMismatchForeign4.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/RoleDeclarationArityMismatchForeign4.purs
@@ -0,0 +1,7 @@
+-- @shouldFailWith RoleDeclarationArityMismatch
+module Main where
+
+type To = Function
+
+foreign import data A :: To Type (To Type Type)
+type role A nominal
diff --git a/tests/purs/failing/RowConstructors1.out b/tests/purs/failing/RowConstructors1.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/RowConstructors1.out
@@ -0,0 +1,21 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/RowConstructors1.purs:7:16 - 7:19 (line 7, column 16 - line 7, column 19)
+
+  Could not match kind
+  [33m      [0m
+  [33m  Type[0m
+  [33m      [0m
+  with kind
+  [33m          [0m
+  [33m  Row Type[0m
+  [33m          [0m
+
+while checking that type [33mFoo[0m
+  has kind [33mRow Type[0m
+while inferring the kind of [33mRecord Foo[0m
+in type synonym [33mBaz[0m
+
+See https://github.com/purescript/documentation/blob/master/errors/KindsDoNotUnify.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/RowConstructors2.out b/tests/purs/failing/RowConstructors2.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/RowConstructors2.out
@@ -0,0 +1,15 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/RowConstructors2.purs:7:16 - 7:19 (line 7, column 16 - line 7, column 19)
+
+  Type synonym [33mMain.Foo[0m is partially applied.
+  Type synonyms must be applied to all of their type arguments.
+
+while checking that type [33mFoo[0m
+  has kind [33mRow Type[0m
+while inferring the kind of [33mRecord Foo[0m
+in type synonym [33mBar[0m
+
+See https://github.com/purescript/documentation/blob/master/errors/PartiallyAppliedSynonym.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/RowConstructors2.purs b/tests/purs/failing/RowConstructors2.purs
--- a/tests/purs/failing/RowConstructors2.purs
+++ b/tests/purs/failing/RowConstructors2.purs
@@ -1,4 +1,4 @@
--- @shouldFailWith KindsDoNotUnify
+-- @shouldFailWith PartiallyAppliedSynonym
 module Main where
 
 import Effect.Console (log)
diff --git a/tests/purs/failing/RowConstructors3.out b/tests/purs/failing/RowConstructors3.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/RowConstructors3.out
@@ -0,0 +1,21 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/RowConstructors3.purs:7:16 - 7:19 (line 7, column 16 - line 7, column 19)
+
+  Could not match kind
+  [33m      [0m
+  [33m  Type[0m
+  [33m      [0m
+  with kind
+  [33m          [0m
+  [33m  Row Type[0m
+  [33m          [0m
+
+while checking that type [33mFoo[0m
+  has kind [33mRow Type[0m
+while inferring the kind of [33mRecord Foo[0m
+in type synonym [33mBar[0m
+
+See https://github.com/purescript/documentation/blob/master/errors/KindsDoNotUnify.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/RowInInstanceNotDetermined0.out b/tests/purs/failing/RowInInstanceNotDetermined0.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/RowInInstanceNotDetermined0.out
@@ -0,0 +1,19 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/RowInInstanceNotDetermined0.purs:8:1 - 8:24 (line 8, column 1 - line 8, column 24)
+
+  Type class instance head is invalid due to use of type
+  [33m    [0m
+  [33m  ()[0m
+  [33m    [0m
+  All types appearing in instance declarations must be of the form T a_1 .. a_n, where each type a_i is of the same form, unless the type is fully determined by other type class arguments via functional dependencies.
+
+in type class instance
+[33m                    [0m
+[33m  Main.C Unit       [0m
+[33m         (Record ())[0m
+[33m                    [0m
+
+See https://github.com/purescript/documentation/blob/master/errors/InvalidInstanceHead.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/RowInInstanceNotDetermined1.out b/tests/purs/failing/RowInInstanceNotDetermined1.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/RowInInstanceNotDetermined1.out
@@ -0,0 +1,20 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/RowInInstanceNotDetermined1.purs:8:1 - 8:29 (line 8, column 1 - line 8, column 29)
+
+  Type class instance head is invalid due to use of type
+  [33m    [0m
+  [33m  ()[0m
+  [33m    [0m
+  All types appearing in instance declarations must be of the form T a_1 .. a_n, where each type a_i is of the same form, unless the type is fully determined by other type class arguments via functional dependencies.
+
+in type class instance
+[33m                    [0m
+[33m  Main.C Unit       [0m
+[33m         Unit       [0m
+[33m         (Record ())[0m
+[33m                    [0m
+
+See https://github.com/purescript/documentation/blob/master/errors/InvalidInstanceHead.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/RowInInstanceNotDetermined2.out b/tests/purs/failing/RowInInstanceNotDetermined2.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/RowInInstanceNotDetermined2.out
@@ -0,0 +1,19 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/RowInInstanceNotDetermined2.purs:8:1 - 8:24 (line 8, column 1 - line 8, column 24)
+
+  Type class instance head is invalid due to use of type
+  [33m    [0m
+  [33m  ()[0m
+  [33m    [0m
+  All types appearing in instance declarations must be of the form T a_1 .. a_n, where each type a_i is of the same form, unless the type is fully determined by other type class arguments via functional dependencies.
+
+in type class instance
+[33m                    [0m
+[33m  Main.C Unit       [0m
+[33m         (Record ())[0m
+[33m                    [0m
+
+See https://github.com/purescript/documentation/blob/master/errors/InvalidInstanceHead.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/RowLacks.out b/tests/purs/failing/RowLacks.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/RowLacks.out
@@ -0,0 +1,28 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/RowLacks.purs:16:9 - 16:66 (line 16, column 9 - line 16, column 66)
+
+  No type class instance was found for
+  [33m                              [0m
+  [33m  Prim.Row.Lacks "x"          [0m
+  [33m                 ( x :: Int   [0m
+  [33m                 , y :: Int   [0m
+  [33m                 , z :: String[0m
+  [33m                 )            [0m
+  [33m                              [0m
+
+while applying a function [33mlacksX[0m
+  of type [33mLacks @t1 "x" t2 => Proxy @(Row t1) t2 -> Proxy @(Row t3) (() @t3)[0m
+  to argument [33mProxy[0m
+while checking that expression [33mlacksX Proxy[0m
+  has type [33mProxy @(Row t0) (() @t0)[0m
+in value declaration [33mtest1[0m
+
+where [33mt0[0m is an unknown type
+      [33mt1[0m is an unknown type
+      [33mt3[0m is an unknown type
+      [33mt2[0m is an unknown type
+
+See https://github.com/purescript/documentation/blob/master/errors/NoInstanceFound.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/RowLacks.purs b/tests/purs/failing/RowLacks.purs
--- a/tests/purs/failing/RowLacks.purs
+++ b/tests/purs/failing/RowLacks.purs
@@ -3,16 +3,16 @@
 
 import Effect.Console (log)
 import Prim.Row (class Lacks)
-import Type.Row (RProxy(..))
+import Type.Proxy (Proxy(..))
 
 lacksX
   :: forall r
    . Lacks "x" r
-  => RProxy r
-  -> RProxy ()
-lacksX _ = RProxy
+  => Proxy r
+  -> Proxy ()
+lacksX _ = Proxy
 
-test1 :: RProxy ()
-test1 = lacksX (RProxy :: RProxy (x :: Int, y :: Int, z :: String))
+test1 :: Proxy ()
+test1 = lacksX (Proxy :: Proxy (x :: Int, y :: Int, z :: String))
 
 main = log "Done"
diff --git a/tests/purs/failing/RowsInKinds.out b/tests/purs/failing/RowsInKinds.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/RowsInKinds.out
@@ -0,0 +1,28 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/RowsInKinds.purs:14:16 - 14:17 (line 14, column 16 - line 14, column 17)
+
+  Could not match kind
+  [33m             [0m
+  [33m  ( z :: Type[0m
+  [33m  | t25      [0m
+  [33m  )          [0m
+  [33m             [0m
+  with kind
+  [33m             [0m
+  [33m  ( x :: Type[0m
+  [33m  , y :: Type[0m
+  [33m  )          [0m
+  [33m             [0m
+
+while checking that type [33mZ[0m
+  has kind [33mR @Type      [0m
+           [33m  ( x :: Type[0m
+           [33m  , y :: Type[0m
+           [33m  )          [0m
+while inferring the kind of [33mP Z[0m
+in type synonym [33mTest3[0m
+
+See https://github.com/purescript/documentation/blob/master/errors/KindsDoNotUnify.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/RowsInKinds.purs b/tests/purs/failing/RowsInKinds.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/RowsInKinds.purs
@@ -0,0 +1,15 @@
+-- @shouldFailWith KindsDoNotUnify
+module Main where
+
+foreign import data R :: forall k. Row k -> Type
+foreign import data X :: forall r. R (x :: Type | r)
+foreign import data Y :: forall r. R (y :: Type | r)
+foreign import data Z :: forall r. R (z :: Type | r)
+
+data P :: R (x :: Type, y :: Type) -> Type
+data P a = P
+
+type Test1 = P X
+type Test2 = P Y
+type Test3 = P Z
+
diff --git a/tests/purs/failing/ScopedKindVariableSynonym.out b/tests/purs/failing/ScopedKindVariableSynonym.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/ScopedKindVariableSynonym.out
@@ -0,0 +1,12 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/ScopedKindVariableSynonym.purs:7:14 - 7:15 (line 7, column 14 - line 7, column 15)
+
+  Type variable [33ma[0m is undefined.
+
+while inferring the kind of [33ma[0m
+in type synonym [33mB[0m
+
+See https://github.com/purescript/documentation/blob/master/errors/UndefinedTypeVariable.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/ScopedKindVariableSynonym.purs b/tests/purs/failing/ScopedKindVariableSynonym.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/ScopedKindVariableSynonym.purs
@@ -0,0 +1,7 @@
+-- @shouldFailWith UndefinedTypeVariable
+module Main where
+
+type A x = forall a. a -> x -> Type
+
+type B :: forall x. A x
+type B y z = a
diff --git a/tests/purs/failing/SelfCycleInForeignDataKinds.out b/tests/purs/failing/SelfCycleInForeignDataKinds.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/SelfCycleInForeignDataKinds.out
@@ -0,0 +1,9 @@
+Error found:
+at tests/purs/failing/SelfCycleInForeignDataKinds.purs:4:1 - 4:31 (line 4, column 1 - line 4, column 31)
+
+  A kind declaration '[33mFoo[0m' may not refer to itself in its own signature.
+
+
+See https://github.com/purescript/documentation/blob/master/errors/CycleInKindDeclaration.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/SelfCycleInForeignDataKinds.purs b/tests/purs/failing/SelfCycleInForeignDataKinds.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/SelfCycleInForeignDataKinds.purs
@@ -0,0 +1,4 @@
+-- @shouldFailWith CycleInKindDeclaration
+module Main where
+
+foreign import data Foo :: Foo
diff --git a/tests/purs/failing/SelfCycleInKindDeclaration.out b/tests/purs/failing/SelfCycleInKindDeclaration.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/SelfCycleInKindDeclaration.out
@@ -0,0 +1,9 @@
+Error found:
+at tests/purs/failing/SelfCycleInKindDeclaration.purs:4:1 - 4:24 (line 4, column 1 - line 4, column 24)
+
+  A kind declaration '[33mFoo[0m' may not refer to itself in its own signature.
+
+
+See https://github.com/purescript/documentation/blob/master/errors/CycleInKindDeclaration.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/SelfCycleInKindDeclaration.purs b/tests/purs/failing/SelfCycleInKindDeclaration.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/SelfCycleInKindDeclaration.purs
@@ -0,0 +1,5 @@
+-- @shouldFailWith CycleInKindDeclaration
+module Main where
+
+data Foo :: Foo -> Type
+data Foo a = Foo
diff --git a/tests/purs/failing/SelfCycleInTypeClassDeclaration.out b/tests/purs/failing/SelfCycleInTypeClassDeclaration.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/SelfCycleInTypeClassDeclaration.out
@@ -0,0 +1,9 @@
+Error found:
+at tests/purs/failing/SelfCycleInTypeClassDeclaration.purs:4:1 - 4:23 (line 4, column 1 - line 4, column 23)
+
+  A type class '[33mFoo[0m' may not have itself as a superclass.
+
+
+See https://github.com/purescript/documentation/blob/master/errors/CycleInTypeClassDeclaration.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/SelfCycleInTypeClassDeclaration.purs b/tests/purs/failing/SelfCycleInTypeClassDeclaration.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/SelfCycleInTypeClassDeclaration.purs
@@ -0,0 +1,4 @@
+-- @shouldFailWith CycleInTypeClassDeclaration
+module Main where
+
+class (Foo a) <= Foo a
diff --git a/tests/purs/failing/SelfImport.out b/tests/purs/failing/SelfImport.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/SelfImport.out
@@ -0,0 +1,9 @@
+Error found:
+at tests/purs/failing/SelfImport.purs:3:1 - 9:12 (line 3, column 1 - line 9, column 12)
+
+  Module [33mMain[0m imports itself.
+
+
+See https://github.com/purescript/documentation/blob/master/errors/CycleInModules.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/SelfImport/Dummy.out b/tests/purs/failing/SelfImport/Dummy.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/SelfImport/Dummy.out
@@ -0,0 +1,9 @@
+Error found:
+at tests/purs/failing/SelfImport.purs:3:1 - 9:12 (line 3, column 1 - line 9, column 12)
+
+  Module [33mMain[0m imports itself.
+
+
+See https://github.com/purescript/documentation/blob/master/errors/CycleInModules.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/SkolemEscape.out b/tests/purs/failing/SkolemEscape.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/SkolemEscape.out
@@ -0,0 +1,20 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/SkolemEscape.purs:8:1 - 8:19 (line 8, column 1 - line 8, column 19)
+
+  The type variable [33ma[0m, bound at
+
+    tests/purs/failing/SkolemEscape.purs:8:18 - 8:19 (line 8, column 18 - line 8, column 19)
+
+  has escaped its scope, appearing in the type
+  [33m                      [0m
+  [33m  (a0 -> a0) -> Number[0m
+  [33m                      [0m
+
+in the expression [33m[33m\x ->  [0m[0m
+                  [33m[33m  foo x[0m[0m
+in value declaration [33mtest[0m
+
+See https://github.com/purescript/documentation/blob/master/errors/EscapedSkolem.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/SkolemEscape2.out b/tests/purs/failing/SkolemEscape2.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/SkolemEscape2.out
@@ -0,0 +1,22 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/SkolemEscape2.purs:9:1 - 11:9 (line 9, column 1 - line 11, column 9)
+
+  The type variable [33mr[0m, bound at
+
+    tests/purs/failing/SkolemEscape2.purs:10:21 - 10:34 (line 10, column 21 - line 10, column 34)
+
+  has escaped its scope, appearing in the type
+  [33m                         [0m
+  [33m  t1 -> t2 (STRef r0 Int)[0m
+  [33m                         [0m
+
+in the expression [33m[33m\$0 ->                                        [0m[0m
+                  [33m[33m  ((bind $dictBind1) ((...) (...))) (\r ->    [0m[0m
+                  [33m[33m                                       (...) r[0m[0m
+                  [33m[33m                                    )         [0m[0m
+in value declaration [33mtest[0m
+
+See https://github.com/purescript/documentation/blob/master/errors/EscapedSkolem.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/SkolemEscapeKinds.out b/tests/purs/failing/SkolemEscapeKinds.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/SkolemEscapeKinds.out
@@ -0,0 +1,18 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/SkolemEscapeKinds.purs:8:10 - 8:17 (line 8, column 10 - line 8, column 17)
+
+  The type variable [33mk[0m, bound at
+
+    tests/purs/failing/SkolemEscapeKinds.purs:8:16 - 8:17 (line 8, column 16 - line 8, column 17)
+
+  has escaped its scope, appearing in the type
+  [33m       [0m
+  [33m  Proxy[0m
+  [33m       [0m
+
+in type synonym [33mB[0m
+
+See https://github.com/purescript/documentation/blob/master/errors/EscapedSkolem.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/SkolemEscapeKinds.purs b/tests/purs/failing/SkolemEscapeKinds.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/SkolemEscapeKinds.purs
@@ -0,0 +1,8 @@
+-- @shouldFailWith EscapedSkolem
+module Main where
+
+data Proxy a = Proxy
+
+data A (a :: forall k. k -> Type) = A
+
+type B = Proxy A
diff --git a/tests/purs/failing/StandaloneKindSignatures1.out b/tests/purs/failing/StandaloneKindSignatures1.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/StandaloneKindSignatures1.out
@@ -0,0 +1,21 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/StandaloneKindSignatures1.purs:7:25 - 7:30 (line 7, column 25 - line 7, column 30)
+
+  Could not match kind
+  [33m        [0m
+  [33m  Symbol[0m
+  [33m        [0m
+  with kind
+  [33m      [0m
+  [33m  Type[0m
+  [33m      [0m
+
+while checking that type [33m"foo"[0m
+  has kind [33mType[0m
+while inferring the kind of [33mPair Int "foo"[0m
+in value declaration [33mtest[0m
+
+See https://github.com/purescript/documentation/blob/master/errors/KindsDoNotUnify.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/StandaloneKindSignatures1.purs b/tests/purs/failing/StandaloneKindSignatures1.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/StandaloneKindSignatures1.purs
@@ -0,0 +1,7 @@
+-- @shouldFailWith KindsDoNotUnify
+module Main where
+
+data Pair :: forall k. k -> k -> Type
+data Pair a b = Pair
+
+test = Pair :: Pair Int "foo"
diff --git a/tests/purs/failing/StandaloneKindSignatures2.out b/tests/purs/failing/StandaloneKindSignatures2.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/StandaloneKindSignatures2.out
@@ -0,0 +1,21 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/StandaloneKindSignatures2.purs:8:35 - 8:36 (line 8, column 35 - line 8, column 36)
+
+  Could not match kind
+  [33m    [0m
+  [33m  k2[0m
+  [33m    [0m
+  with kind
+  [33m    [0m
+  [33m  k1[0m
+  [33m    [0m
+
+while checking that type [33mb[0m
+  has kind [33mk1[0m
+while inferring the kind of [33mPair a b[0m
+in type constructor [33mPair'[0m
+
+See https://github.com/purescript/documentation/blob/master/errors/KindsDoNotUnify.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/StandaloneKindSignatures2.purs b/tests/purs/failing/StandaloneKindSignatures2.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/StandaloneKindSignatures2.purs
@@ -0,0 +1,8 @@
+-- @shouldFailWith KindsDoNotUnify
+module Main where
+
+data Pair :: forall k. k -> k -> Type
+data Pair a b = Pair
+
+newtype Pair' :: forall k1 k2. k1 -> k2 -> Type
+newtype Pair' a b = Pair' (Pair a b)
diff --git a/tests/purs/failing/StandaloneKindSignatures3.out b/tests/purs/failing/StandaloneKindSignatures3.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/StandaloneKindSignatures3.out
@@ -0,0 +1,21 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/StandaloneKindSignatures3.purs:7:18 - 7:23 (line 7, column 18 - line 7, column 23)
+
+  Could not match kind
+  [33m        [0m
+  [33m  Symbol[0m
+  [33m        [0m
+  with kind
+  [33m      [0m
+  [33m  Type[0m
+  [33m      [0m
+
+while checking that type [33m"foo"[0m
+  has kind [33mType[0m
+while inferring the kind of [33mFst Int "foo"[0m
+in type synonym [33mF[0m
+
+See https://github.com/purescript/documentation/blob/master/errors/KindsDoNotUnify.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/StandaloneKindSignatures3.purs b/tests/purs/failing/StandaloneKindSignatures3.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/StandaloneKindSignatures3.purs
@@ -0,0 +1,7 @@
+-- @shouldFailWith KindsDoNotUnify
+module Main where
+
+type Fst :: forall k. k -> k -> k
+type Fst a b = a
+
+type F = Fst Int "foo"
diff --git a/tests/purs/failing/StandaloneKindSignatures4.out b/tests/purs/failing/StandaloneKindSignatures4.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/StandaloneKindSignatures4.out
@@ -0,0 +1,25 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/StandaloneKindSignatures4.purs:7:24 - 7:29 (line 7, column 24 - line 7, column 29)
+
+  Could not match kind
+  [33m        [0m
+  [33m  Symbol[0m
+  [33m        [0m
+  with kind
+  [33m      [0m
+  [33m  Type[0m
+  [33m      [0m
+
+while checking that type [33m"foo"[0m
+  has kind [33mType[0m
+while inferring the kind of [33mTo Int "foo"[0m
+in type class instance
+[33m               [0m
+[33m  Main.To Int  [0m
+[33m          "foo"[0m
+[33m               [0m
+
+See https://github.com/purescript/documentation/blob/master/errors/KindsDoNotUnify.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/StandaloneKindSignatures4.purs b/tests/purs/failing/StandaloneKindSignatures4.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/StandaloneKindSignatures4.purs
@@ -0,0 +1,7 @@
+-- @shouldFailWith KindsDoNotUnify
+module Main where
+
+class To :: forall k. k -> k -> Constraint
+class To a b | a -> b
+
+instance to1 :: To Int "foo"
diff --git a/tests/purs/failing/SuggestComposition.out b/tests/purs/failing/SuggestComposition.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/SuggestComposition.out
@@ -0,0 +1,32 @@
+Error found:
+in module [33mSuggestComposition[0m
+at tests/purs/failing/SuggestComposition.purs:7:5 - 7:6 (line 7, column 5 - line 7, column 6)
+
+  Could not match type
+  [33m        [0m
+  [33m  Record[0m
+  [33m        [0m
+  with type
+  [33m              [0m
+  [33m  Function Int[0m
+  [33m              [0m
+
+while trying to match type [33m{ g :: t0[0m
+                           [33m| t1     [0m
+                           [33m}        [0m
+  with type [33mt2 -> t3[0m
+while checking that expression [33mg[0m
+  has type [33m{ g :: t0[0m
+           [33m| t1     [0m
+           [33m}        [0m
+while checking type of property accessor [33mg.g[0m
+in value declaration [33mf[0m
+
+where [33mt2[0m is an unknown type
+      [33mt3[0m is an unknown type
+      [33mt0[0m is an unknown type
+      [33mt1[0m is an unknown type
+
+See https://github.com/purescript/documentation/blob/master/errors/TypesDoNotUnify.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/Superclasses1.out b/tests/purs/failing/Superclasses1.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/Superclasses1.out
@@ -0,0 +1,18 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/Superclasses1.purs:12:1 - 13:17 (line 12, column 1 - line 13, column 17)
+
+  No type class instance was found for
+  [33m                [0m
+  [33m  Main.Su Number[0m
+  [33m                [0m
+
+while checking that expression [33m#dict Su[0m
+  has type [33mSu$Dict t0[0m
+in value declaration [33mclNumber[0m
+
+where [33mt0[0m is an unknown type
+
+See https://github.com/purescript/documentation/blob/master/errors/NoInstanceFound.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/Superclasses2.out b/tests/purs/failing/Superclasses2.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/Superclasses2.out
@@ -0,0 +1,13 @@
+Error found:
+at tests/purs/failing/Superclasses2.purs:6:1 - 6:23 (line 6, column 1 - line 6, column 23)
+
+  A cycle appears in a set of type class definitions:
+
+    {[33mBar[0m, [33mFoo[0m}
+
+  Cycles are disallowed because they can lead to loops in the type checker.
+
+
+See https://github.com/purescript/documentation/blob/master/errors/CycleInTypeClassDeclaration.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/Superclasses3.out b/tests/purs/failing/Superclasses3.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/Superclasses3.out
@@ -0,0 +1,22 @@
+Error found:
+in module [33mUnknownSuperclassTypeVar[0m
+at tests/purs/failing/Superclasses3.purs:8:12 - 8:13 (line 8, column 12 - line 8, column 13)
+
+  Type variable [33mb[0m is undefined.
+
+while inferring the kind of [33mb[0m
+while checking that type [33mb[0m
+  has kind [33mt0[0m
+while inferring the kind of [33mFoo$Dict b[0m
+while inferring the kind of [33mRecord () -> Foo$Dict b[0m
+while inferring the kind of [33m( "Foo0" :: Record () -> Foo$Dict b[0m
+                            [33m)                                  [0m
+while inferring the kind of [33m{ "Foo0" :: Record () -> Foo$Dict b[0m
+                            [33m}                                  [0m
+in type constructor [33mBar$Dict[0m
+
+where [33mt0[0m is an unknown type
+
+See https://github.com/purescript/documentation/blob/master/errors/UndefinedTypeVariable.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/Superclasses5.out b/tests/purs/failing/Superclasses5.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/Superclasses5.out
@@ -0,0 +1,22 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/Superclasses5.purs:17:1 - 18:18 (line 17, column 1 - line 18, column 18)
+
+  A case expression could not be determined to cover all inputs.
+  The following additional cases are required to cover all inputs:
+
+    [33m_[0m
+
+  Alternatively, add a Partial constraint to the type of the enclosing value.
+
+while checking that expression [33mcase $0 of       [0m
+                               [33m  [ x ] -> [ su x[0m
+                               [33m           ]     [0m
+  has type [33mt0[0m
+in value declaration [33msuArray[0m
+
+where [33mt0[0m is an unknown type
+
+See https://github.com/purescript/documentation/blob/master/errors/NoInstanceFound.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/TooFewClassInstanceArgs.out b/tests/purs/failing/TooFewClassInstanceArgs.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/TooFewClassInstanceArgs.out
@@ -0,0 +1,15 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/TooFewClassInstanceArgs.purs:8:1 - 8:33 (line 8, column 1 - line 8, column 33)
+
+  The type class [33mMain.Foo[0m expects 2 arguments.
+  But the instance [33mfooString[0m only provided 1.
+
+in type class instance
+[33m                 [0m
+[33m  Main.Foo String[0m
+[33m                 [0m
+
+See https://github.com/purescript/documentation/blob/master/errors/ClassInstanceArityMismatch.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/TooFewUnnamedClassInstanceArgs.out b/tests/purs/failing/TooFewUnnamedClassInstanceArgs.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/TooFewUnnamedClassInstanceArgs.out
@@ -0,0 +1,15 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/TooFewUnnamedClassInstanceArgs.purs:8:1 - 8:20 (line 8, column 1 - line 8, column 20)
+
+  The type class [33mMain.Foo[0m expects 2 arguments.
+  But the instance only provided 1.
+
+in type class instance
+[33m                 [0m
+[33m  Main.Foo String[0m
+[33m                 [0m
+
+See https://github.com/purescript/documentation/blob/master/errors/ClassInstanceArityMismatch.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/TooFewUnnamedClassInstanceArgs.purs b/tests/purs/failing/TooFewUnnamedClassInstanceArgs.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/TooFewUnnamedClassInstanceArgs.purs
@@ -0,0 +1,8 @@
+-- @shouldFailWith ClassInstanceArityMismatch
+module Main where
+
+import Prelude
+
+class Foo a b
+
+instance Foo String
diff --git a/tests/purs/failing/TopLevelCaseNoArgs.out b/tests/purs/failing/TopLevelCaseNoArgs.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/TopLevelCaseNoArgs.out
@@ -0,0 +1,10 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/TopLevelCaseNoArgs.purs:7:1 - 7:8 (line 7, column 1 - line 7, column 8)
+
+  Multiple value declarations exist for [33mfoo[0m.
+
+
+See https://github.com/purescript/documentation/blob/master/errors/DuplicateValueDeclaration.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/TransitiveDctorExport.out b/tests/purs/failing/TransitiveDctorExport.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/TransitiveDctorExport.out
@@ -0,0 +1,13 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/TransitiveDctorExport.purs:2:1 - 5:13 (line 2, column 1 - line 5, column 13)
+
+  An export for [33mY[0m requires the following to also be exported:
+
+    [33mX[0m
+
+
+
+See https://github.com/purescript/documentation/blob/master/errors/TransitiveExportError.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/TransitiveDctorExportError.out b/tests/purs/failing/TransitiveDctorExportError.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/TransitiveDctorExportError.out
@@ -0,0 +1,13 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/TransitiveDctorExportError.purs:2:1 - 4:15 (line 2, column 1 - line 4, column 15)
+
+  An export for [33mT[0m requires the following data constructor to also be exported:
+
+    [33mB[0m
+
+
+
+See https://github.com/purescript/documentation/blob/master/errors/TransitiveDctorExportError.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/TransitiveDctorExportError.purs b/tests/purs/failing/TransitiveDctorExportError.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/TransitiveDctorExportError.purs
@@ -0,0 +1,4 @@
+-- @shouldFailWith TransitiveDctorExportError
+module Main (T(A)) where
+
+data T = A | B
diff --git a/tests/purs/failing/TransitiveKindExport.out b/tests/purs/failing/TransitiveKindExport.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/TransitiveKindExport.out
@@ -0,0 +1,13 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/TransitiveKindExport.purs:2:1 - 6:39 (line 2, column 1 - line 6, column 39)
+
+  An export for [33mTestProxy[0m requires the following to also be exported:
+
+    [33mTest[0m
+
+
+
+See https://github.com/purescript/documentation/blob/master/errors/TransitiveExportError.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/TransitiveKindExport.purs b/tests/purs/failing/TransitiveKindExport.purs
--- a/tests/purs/failing/TransitiveKindExport.purs
+++ b/tests/purs/failing/TransitiveKindExport.purs
@@ -1,6 +1,6 @@
 -- @shouldFailWith TransitiveExportError
 module Main (TestProxy(..)) where
 
-foreign import kind Test
+data Test
 
 data TestProxy (p :: Test) = TestProxy
diff --git a/tests/purs/failing/TransitiveSynonymExport.out b/tests/purs/failing/TransitiveSynonymExport.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/TransitiveSynonymExport.out
@@ -0,0 +1,13 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/TransitiveSynonymExport.purs:2:1 - 5:11 (line 2, column 1 - line 5, column 11)
+
+  An export for [33mY[0m requires the following to also be exported:
+
+    [33mX[0m
+
+
+
+See https://github.com/purescript/documentation/blob/master/errors/TransitiveExportError.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/TypeClasses2.out b/tests/purs/failing/TypeClasses2.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/TypeClasses2.out
@@ -0,0 +1,20 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/TypeClasses2.purs:7:8 - 7:22 (line 7, column 8 - line 7, column 22)
+
+  No type class instance was found for
+  [33m                  [0m
+  [33m  Main.Show String[0m
+  [33m                  [0m
+
+while applying a function [33mshow[0m
+  of type [33mShow t0 => t0 -> String[0m
+  to argument [33m"testing"[0m
+while inferring the type of [33mshow "testing"[0m
+in value declaration [33mtest[0m
+
+where [33mt0[0m is an unknown type
+
+See https://github.com/purescript/documentation/blob/master/errors/NoInstanceFound.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/TypeError.out b/tests/purs/failing/TypeError.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/TypeError.out
@@ -0,0 +1,22 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/TypeError.purs:6:13 - 6:16 (line 6, column 13 - line 6, column 16)
+
+  Could not match type
+  [33m        [0m
+  [33m  String[0m
+  [33m        [0m
+  with type
+  [33m     [0m
+  [33m  Int[0m
+  [33m     [0m
+
+while checking that type [33mString[0m
+  is at least as general as type [33mInt[0m
+while checking that expression [33m"A"[0m
+  has type [33mInt[0m
+in value declaration [33mtest[0m
+
+See https://github.com/purescript/documentation/blob/master/errors/TypesDoNotUnify.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/TypeOperatorAliasNoExport.out b/tests/purs/failing/TypeOperatorAliasNoExport.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/TypeOperatorAliasNoExport.out
@@ -0,0 +1,13 @@
+Error found:
+in module [33mTest[0m
+at tests/purs/failing/TypeOperatorAliasNoExport.purs:2:1 - 6:25 (line 2, column 1 - line 6, column 25)
+
+  An export for [33mtype (×)[0m requires the following to also be exported:
+
+    [33mTuple[0m
+
+
+
+See https://github.com/purescript/documentation/blob/master/errors/TransitiveExportError.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/TypeSynonymCycle.out b/tests/purs/failing/TypeSynonymCycle.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/TypeSynonymCycle.out
@@ -0,0 +1,14 @@
+Error found:
+at tests/purs/failing/TypeSynonymCycle.purs:4:1 - 4:11 (line 4, column 1 - line 4, column 11)
+
+   A cycle appears in a set of type synonym definitions:
+
+    {[33mA[0m, [33mB[0m}
+
+  Cycles are disallowed because they can lead to loops in the type checker.
+  Consider using a 'newtype' instead.
+
+
+See https://github.com/purescript/documentation/blob/master/errors/CycleInTypeSynonym.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/TypeSynonymCycle.purs b/tests/purs/failing/TypeSynonymCycle.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/TypeSynonymCycle.purs
@@ -0,0 +1,6 @@
+-- @shouldFailWith CycleInTypeSynonym
+module Main where
+
+type A = B
+type B = { a :: A, b :: Loop }
+data Loop = Loop B
diff --git a/tests/purs/failing/TypeSynonyms.out b/tests/purs/failing/TypeSynonyms.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/TypeSynonyms.out
@@ -0,0 +1,14 @@
+Error found:
+at tests/purs/failing/TypeSynonyms.purs:6:1 - 6:19 (line 6, column 1 - line 6, column 19)
+
+   A cycle appears in a set of type synonym definitions:
+
+    {[33mT1[0m, [33mT2[0m}
+
+  Cycles are disallowed because they can lead to loops in the type checker.
+  Consider using a 'newtype' instead.
+
+
+See https://github.com/purescript/documentation/blob/master/errors/CycleInTypeSynonym.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/TypeSynonyms10.out b/tests/purs/failing/TypeSynonyms10.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/TypeSynonyms10.out
@@ -0,0 +1,21 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/TypeSynonyms10.purs:8:19 - 8:23 (line 8, column 19 - line 8, column 23)
+
+  Could not match kind
+  [33m                        [0m
+  [33m  (Type -> Type) -> Type[0m
+  [33m                        [0m
+  with kind
+  [33m      [0m
+  [33m  Type[0m
+  [33m      [0m
+
+while checking that type [33mNaturalTransformation Array[0m
+  has kind [33mType[0m
+while inferring the kind of [33mF (NaturalTransformation Array)[0m
+in type constructor [33mN[0m
+
+See https://github.com/purescript/documentation/blob/master/errors/KindsDoNotUnify.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/TypeSynonyms10.purs b/tests/purs/failing/TypeSynonyms10.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/TypeSynonyms10.purs
@@ -0,0 +1,8 @@
+-- @shouldFailWith KindsDoNotUnify
+module Main where
+
+import Prelude
+
+type F (a :: Type) = a
+
+newtype N = N (F ((~>) Array))
diff --git a/tests/purs/failing/TypeSynonyms2.purs b/tests/purs/failing/TypeSynonyms2.purs
deleted file mode 100644
--- a/tests/purs/failing/TypeSynonyms2.purs
+++ /dev/null
@@ -1,12 +0,0 @@
--- @shouldFailWith TypeSynonymInstance
-module Main where
-
-import Prelude
-
-class Foo a where
-  foo :: a -> String
-
-type Bar = String
-
-instance fooBar :: Foo Bar where
-  foo s = s
diff --git a/tests/purs/failing/TypeSynonyms3.purs b/tests/purs/failing/TypeSynonyms3.purs
deleted file mode 100644
--- a/tests/purs/failing/TypeSynonyms3.purs
+++ /dev/null
@@ -1,12 +0,0 @@
--- @shouldFailWith TypeSynonymInstance
-module Main where
-
-import Prelude
-
-class Foo a where
-  foo :: a -> String
-
-type Bar = String
-
-instance fooBar :: Foo Bar where
-  foo s = s
diff --git a/tests/purs/failing/TypeSynonyms4.out b/tests/purs/failing/TypeSynonyms4.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/TypeSynonyms4.out
@@ -0,0 +1,12 @@
+Error found:
+in module [33mTypeSynonyms4[0m
+at tests/purs/failing/TypeSynonyms4.purs:8:12 - 8:15 (line 8, column 12 - line 8, column 15)
+
+  Type synonym [33mTypeSynonyms4.F[0m is partially applied.
+  Type synonyms must be applied to all of their type arguments.
+
+in type synonym [33mG[0m
+
+See https://github.com/purescript/documentation/blob/master/errors/PartiallyAppliedSynonym.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/TypeSynonyms5.out b/tests/purs/failing/TypeSynonyms5.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/TypeSynonyms5.out
@@ -0,0 +1,11 @@
+Error found:
+at tests/purs/failing/TypeSynonyms5.purs:6:1 - 6:11 (line 6, column 1 - line 6, column 11)
+
+  A cycle appears in the definition of type synonym [33mT[0m
+  Cycles are disallowed because they can lead to loops in the type checker.
+  Consider using a 'newtype' instead.
+
+
+See https://github.com/purescript/documentation/blob/master/errors/CycleInTypeSynonym.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/TypeSynonyms7.out b/tests/purs/failing/TypeSynonyms7.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/TypeSynonyms7.out
@@ -0,0 +1,20 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/TypeSynonyms7.purs:8:1 - 9:14 (line 8, column 1 - line 9, column 14)
+
+  Type class instance head is invalid due to use of type
+  [33m            [0m
+  [33m  ( x :: Int[0m
+  [33m  | r       [0m
+  [33m  )         [0m
+  [33m            [0m
+  All types appearing in instance declarations must be of the form T a_1 .. a_n, where each type a_i is of the same form, unless the type is fully determined by other type class arguments via functional dependencies.
+
+in type class instance
+[33m                      [0m
+[33m  Data.Show.Show (X r)[0m
+[33m                      [0m
+
+See https://github.com/purescript/documentation/blob/master/errors/InvalidInstanceHead.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/TypeSynonyms7.purs b/tests/purs/failing/TypeSynonyms7.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/TypeSynonyms7.purs
@@ -0,0 +1,9 @@
+-- @shouldFailWith InvalidInstanceHead
+module Main where
+
+import Prelude
+
+type X r = {x :: Int | r}
+
+instance showX :: Show (X r) where
+  show _ = ""
diff --git a/tests/purs/failing/TypeSynonyms8.out b/tests/purs/failing/TypeSynonyms8.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/TypeSynonyms8.out
@@ -0,0 +1,14 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/TypeSynonyms8.purs:6:15 - 6:16 (line 6, column 15 - line 6, column 16)
+
+  Type synonym [33mMain.S[0m is partially applied.
+  Type synonyms must be applied to all of their type arguments.
+
+while checking that type [33mS[0m
+  has kind [33mType[0m
+in type constructor [33mN[0m
+
+See https://github.com/purescript/documentation/blob/master/errors/PartiallyAppliedSynonym.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/TypeSynonyms8.purs b/tests/purs/failing/TypeSynonyms8.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/TypeSynonyms8.purs
@@ -0,0 +1,6 @@
+-- @shouldFailWith PartiallyAppliedSynonym
+module Main where
+
+data D a
+type S a = D a
+newtype N = N S
diff --git a/tests/purs/failing/TypeSynonyms9.out b/tests/purs/failing/TypeSynonyms9.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/TypeSynonyms9.out
@@ -0,0 +1,15 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/TypeSynonyms9.purs:7:19 - 7:29 (line 7, column 19 - line 7, column 29)
+
+  Type synonym [33mData.NaturalTransformation.NaturalTransformation[0m is partially applied.
+  Type synonyms must be applied to all of their type arguments.
+
+while checking that type [33mNaturalTransformation Array[0m
+  has kind [33m(Type -> Type) -> Type -> Type[0m
+while inferring the kind of [33mA (NaturalTransformation Array)[0m
+in type constructor [33mB[0m
+
+See https://github.com/purescript/documentation/blob/master/errors/PartiallyAppliedSynonym.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/TypeSynonyms9.purs b/tests/purs/failing/TypeSynonyms9.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/TypeSynonyms9.purs
@@ -0,0 +1,7 @@
+-- @shouldFailWith PartiallyAppliedSynonym
+module Main where
+
+import Prelude
+
+newtype A (a :: (Type -> Type) -> Type -> Type) = A String
+newtype B = B (A ((~>) Array))
diff --git a/tests/purs/failing/TypeSynonymsOverlappingInstance.out b/tests/purs/failing/TypeSynonymsOverlappingInstance.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/TypeSynonymsOverlappingInstance.out
@@ -0,0 +1,24 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/TypeSynonymsOverlappingInstance.purs:14:1 - 15:16 (line 14, column 1 - line 15, column 16)
+
+  Overlapping type class instances found for
+  [33m                     [0m
+  [33m  Main.Convert String[0m
+  [33m               String[0m
+  [33m                     [0m
+  The following instances were found:
+
+    [33mMain.convertSB[0m
+    [33mMain.convertSS[0m
+
+
+in type class instance
+[33m                     [0m
+[33m  Main.Convert String[0m
+[33m               String[0m
+[33m                     [0m
+
+See https://github.com/purescript/documentation/blob/master/errors/OverlappingInstances.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/TypeSynonymsOverlappingInstance.purs b/tests/purs/failing/TypeSynonymsOverlappingInstance.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/TypeSynonymsOverlappingInstance.purs
@@ -0,0 +1,15 @@
+-- @shouldFailWith OverlappingInstances
+module Main where
+
+import Prelude
+
+class Convert a b | a -> b where
+  convert :: a -> b
+
+type Bar = String
+
+instance convertSB :: Convert String Bar where
+  convert s = s
+
+instance convertSS :: Convert String String where
+  convert s = s
diff --git a/tests/purs/failing/TypeSynonymsOverlappingUnnamedInstance.out b/tests/purs/failing/TypeSynonymsOverlappingUnnamedInstance.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/TypeSynonymsOverlappingUnnamedInstance.out
@@ -0,0 +1,24 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/TypeSynonymsOverlappingUnnamedInstance.purs:14:1 - 15:16 (line 14, column 1 - line 15, column 16)
+
+  Overlapping type class instances found for
+  [33m                     [0m
+  [33m  Main.Convert String[0m
+  [33m               String[0m
+  [33m                     [0m
+  The following instances were found:
+
+    instance in module [33mMain[0m with type [33mConvert String String[0m (line 11, column 1 - line 12, column 16)
+    instance in module [33mMain[0m with type [33mConvert String String[0m (line 14, column 1 - line 15, column 16)
+
+
+in type class instance
+[33m                     [0m
+[33m  Main.Convert String[0m
+[33m               String[0m
+[33m                     [0m
+
+See https://github.com/purescript/documentation/blob/master/errors/OverlappingInstances.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/TypeSynonymsOverlappingUnnamedInstance.purs b/tests/purs/failing/TypeSynonymsOverlappingUnnamedInstance.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/TypeSynonymsOverlappingUnnamedInstance.purs
@@ -0,0 +1,15 @@
+-- @shouldFailWith OverlappingInstances
+module Main where
+
+import Prelude
+
+class Convert a b | a -> b where
+  convert :: a -> b
+
+type Bar = String
+
+instance Convert String Bar where
+  convert s = s
+
+instance Convert String String where
+  convert s = s
diff --git a/tests/purs/failing/TypeWildcards1.out b/tests/purs/failing/TypeWildcards1.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/TypeWildcards1.out
@@ -0,0 +1,10 @@
+Error found:
+at tests/purs/failing/TypeWildcards1.purs:6:13 - 6:14 (line 6, column 13 - line 6, column 14)
+
+  Unable to parse module:
+  Unexpected wildcard in type; type wildcards are only allowed in value annotations
+
+
+See https://github.com/purescript/documentation/blob/master/errors/ErrorParsingModule.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/TypeWildcards2.out b/tests/purs/failing/TypeWildcards2.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/TypeWildcards2.out
@@ -0,0 +1,10 @@
+Error found:
+at tests/purs/failing/TypeWildcards2.purs:6:18 - 6:19 (line 6, column 18 - line 6, column 19)
+
+  Unable to parse module:
+  Unexpected wildcard in type; type wildcards are only allowed in value annotations
+
+
+See https://github.com/purescript/documentation/blob/master/errors/ErrorParsingModule.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/TypeWildcards3.out b/tests/purs/failing/TypeWildcards3.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/TypeWildcards3.out
@@ -0,0 +1,18 @@
+Error found:
+in module [33mTypeWildcards[0m
+at tests/purs/failing/TypeWildcards3.purs:8:1 - 9:19 (line 8, column 1 - line 9, column 19)
+
+  Type class instance head is invalid due to use of type
+  [33m   [0m
+  [33m  _[0m
+  [33m   [0m
+  All types appearing in instance declarations must be of the form T a_1 .. a_n, where each type a_i is of the same form, unless the type is fully determined by other type class arguments via functional dependencies.
+
+in type class instance
+[33m                        [0m
+[33m  Data.Show.Show (Foo _)[0m
+[33m                        [0m
+
+See https://github.com/purescript/documentation/blob/master/errors/InvalidInstanceHead.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/TypeWildcards4.out b/tests/purs/failing/TypeWildcards4.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/TypeWildcards4.out
@@ -0,0 +1,10 @@
+Error found:
+at tests/purs/failing/TypeWildcards4.purs:4:23 - 4:24 (line 4, column 23 - line 4, column 24)
+
+  Unable to parse module:
+  Unexpected wildcard in type; type wildcards are only allowed in value annotations
+
+
+See https://github.com/purescript/documentation/blob/master/errors/ErrorParsingModule.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/TypeWildcards4.purs b/tests/purs/failing/TypeWildcards4.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/TypeWildcards4.purs
@@ -0,0 +1,4 @@
+-- @shouldFailWith ErrorParsingModule
+module Main where
+
+type OhNo = ((Int) :: _)
diff --git a/tests/purs/failing/TypedBinders.out b/tests/purs/failing/TypedBinders.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/TypedBinders.out
@@ -0,0 +1,10 @@
+Error found:
+at tests/purs/failing/TypedBinders.purs:6:12 - 6:14 (line 6, column 12 - line 6, column 14)
+
+  Unable to parse module:
+  Unexpected token '::'
+
+
+See https://github.com/purescript/documentation/blob/master/errors/ErrorParsingModule.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/TypedBinders2.out b/tests/purs/failing/TypedBinders2.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/TypedBinders2.out
@@ -0,0 +1,30 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/TypedBinders2.purs:8:3 - 8:14 (line 8, column 3 - line 8, column 14)
+
+  Could not match type
+  [33m      [0m
+  [33m  Unit[0m
+  [33m      [0m
+  with type
+  [33m        [0m
+  [33m  String[0m
+  [33m        [0m
+
+while checking that expression [33mcase $0 of       [0m
+                               [33m  s -> log "Done"[0m
+  has type [33mEffect t2[0m
+while applying a function [33m(bind (#dict Bind t1)) (log "Foo")[0m
+  of type [33m(t0 -> t1 t2) -> t1 t2[0m
+  to argument [33m\$0 ->             [0m
+              [33m  case $0 of       [0m
+              [33m    s -> log "Done"[0m
+in value declaration [33mmain[0m
+
+where [33mt1[0m is an unknown type
+      [33mt0[0m is an unknown type
+      [33mt2[0m is an unknown type
+
+See https://github.com/purescript/documentation/blob/master/errors/TypesDoNotUnify.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/TypedBinders3.out b/tests/purs/failing/TypedBinders3.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/TypedBinders3.out
@@ -0,0 +1,21 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/TypedBinders3.purs:8:4 - 8:15 (line 8, column 4 - line 8, column 15)
+
+  Could not match type
+  [33m     [0m
+  [33m  Int[0m
+  [33m     [0m
+  with type
+  [33m        [0m
+  [33m  String[0m
+  [33m        [0m
+
+while inferring the type of [33mcase 1 of   [0m
+                            [33m  0 -> true [0m
+                            [33m  _ -> false[0m
+in value declaration [33mtest[0m
+
+See https://github.com/purescript/documentation/blob/master/errors/TypesDoNotUnify.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/TypedHole.out b/tests/purs/failing/TypedHole.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/TypedHole.out
@@ -0,0 +1,23 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/TypedHole.purs:8:8 - 8:13 (line 8, column 8 - line 8, column 13)
+
+  Hole '[33mummm[0m' has the inferred type
+  [33m             [0m
+  [33m  Effect Unit[0m
+  [33m             [0m
+  You could substitute the hole with one of these values:
+  [33m                                                                     [0m
+  [33m  Data.Monoid.mempty             :: forall @m. Monoid m => m         [0m
+  [33m  Effect.Class.Console.clear     :: forall m. MonadEffect m => m Unit[0m
+  [33m  Effect.Class.Console.groupEnd  :: forall m. MonadEffect m => m Unit[0m
+  [33m  Effect.Console.clear           :: Effect Unit                      [0m
+  [33m  Effect.Console.groupEnd        :: Effect Unit                      [0m
+  [33m  Main.main                      :: Effect Unit                      [0m
+  [33m                                                                     [0m
+
+in value declaration [33mmain[0m
+
+See https://github.com/purescript/documentation/blob/master/errors/HoleInferredType.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/TypedHole2.out b/tests/purs/failing/TypedHole2.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/TypedHole2.out
@@ -0,0 +1,14 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/TypedHole2.purs:7:16 - 7:21 (line 7, column 16 - line 7, column 21)
+
+  Hole '[33mummm[0m' has the inferred type
+  [33m      [0m
+  [33m  Unit[0m
+  [33m      [0m
+
+in value declaration [33mmain[0m
+
+See https://github.com/purescript/documentation/blob/master/errors/HoleInferredType.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/TypedHole3.out b/tests/purs/failing/TypedHole3.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/TypedHole3.out
@@ -0,0 +1,34 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/TypedHole3.purs:4:10 - 4:15 (line 4, column 10 - line 4, column 15)
+
+  Hole '[33mhelp[0m' has the inferred type
+  [33m    [0m
+  [33m  t0[0m
+  [33m    [0m
+  You could substitute the hole with one of these values:
+  [33m                                                                                                        [0m
+  [33m  Control.Alt.alt               :: forall @f a. Alt f => f a -> f a -> f a                              [0m
+  [33m  Control.Alternative.guard     :: forall m. Alternative m => Boolean -> m Unit                         [0m
+  [33m  Control.Applicative.liftA1    :: forall f a b. Applicative f => (a -> b) -> f a -> f b                [0m
+  [33m  Control.Applicative.pure      :: forall @f a. Applicative f => a -> f a                               [0m
+  [33m  Control.Applicative.unless    :: forall m. Applicative m => Boolean -> m Unit -> m Unit               [0m
+  [33m  Control.Applicative.when      :: forall m. Applicative m => Boolean -> m Unit -> m Unit               [0m
+  [33m  Control.Apply.apply           :: forall @f a b. Apply f => f (a -> b) -> f a -> f b                   [0m
+  [33m  Control.Apply.applyFirst      :: forall a b f. Apply f => f a -> f b -> f a                           [0m
+  [33m  Control.Apply.applySecond     :: forall a b f. Apply f => f a -> f b -> f b                           [0m
+  [33m  Control.Apply.lift2           :: forall a b c f. Apply f => (a -> b -> c) -> f a -> ... -> ...        [0m
+  [33m  Control.Apply.lift3           :: forall a b c d f. Apply f => (a -> b -> ...) -> f a -> ... -> ...    [0m
+  [33m  Control.Apply.lift4           :: forall a b c d e f. Apply f => (a -> b -> ...) -> f a -> ... -> ...  [0m
+  [33m  Control.Apply.lift5           :: forall a b c d e f g. Apply f => (a -> b -> ...) -> f a -> ... -> ...[0m
+  [33m  Control.Biapplicative.bipure  :: forall @w a b. Biapplicative w => a -> b -> w a b                    [0m
+  [33m  Control.Biapply.biapply       :: forall @w a b c d. Biapply w => w (a -> b) (c -> d) -> w a c -> w b d[0m
+  [33m                                                                                                        [0m
+
+in value declaration [33mfn[0m
+
+where [33mt0[0m is an unknown type
+
+See https://github.com/purescript/documentation/blob/master/errors/HoleInferredType.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/TypedHole3.purs b/tests/purs/failing/TypedHole3.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/TypedHole3.purs
@@ -0,0 +1,4 @@
+-- @shouldFailWith HoleInferredType
+module Main where
+
+fn _ _ = ?help
diff --git a/tests/purs/failing/TypedHole4.out b/tests/purs/failing/TypedHole4.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/TypedHole4.out
@@ -0,0 +1,52 @@
+Error 1 of 2:
+
+  in module [33mMain[0m
+  at tests/purs/failing/TypedHole4.purs:8:9 - 8:14 (line 8, column 9 - line 8, column 14)
+
+    Hole '[33mhelp[0m' has the inferred type
+    [33m    [0m
+    [33m  a0[0m
+    [33m    [0m
+    You could substitute the hole with one of these values:
+    [33m          [0m
+    [33m  b  :: a0[0m
+    [33m          [0m
+    in the following context:
+
+      b :: [33ma0[0m
+
+
+  in value declaration [33mf[0m
+
+  where [33ma0[0m is a rigid type variable
+          bound at (line 0, column 0 - line 0, column 0)
+
+  See https://github.com/purescript/documentation/blob/master/errors/HoleInferredType.md for more information,
+  or to contribute content related to this error.
+
+Error 2 of 2:
+
+  in module [33mMain[0m
+  at tests/purs/failing/TypedHole4.purs:9:9 - 9:14 (line 9, column 9 - line 9, column 14)
+
+    Hole '[33mhelp[0m' has the inferred type
+    [33m    [0m
+    [33m  a0[0m
+    [33m    [0m
+    You could substitute the hole with one of these values:
+    [33m          [0m
+    [33m  b  :: a0[0m
+    [33m          [0m
+    in the following context:
+
+      b :: [33ma0[0m
+
+
+  in value declaration [33mf[0m
+
+  where [33ma0[0m is a rigid type variable
+          bound at (line 0, column 0 - line 0, column 0)
+
+  See https://github.com/purescript/documentation/blob/master/errors/HoleInferredType.md for more information,
+  or to contribute content related to this error.
+
diff --git a/tests/purs/failing/TypedHole4.purs b/tests/purs/failing/TypedHole4.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/TypedHole4.purs
@@ -0,0 +1,9 @@
+-- @shouldFailWith HoleInferredType
+-- @shouldFailWith HoleInferredType
+module Main where
+
+data F = X | Y
+
+f :: forall a. F -> a -> a
+f X b = ?help
+f Y b = ?help
diff --git a/tests/purs/failing/UnderscoreModuleName.out b/tests/purs/failing/UnderscoreModuleName.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/UnderscoreModuleName.out
@@ -0,0 +1,10 @@
+Error found:
+at tests/purs/failing/UnderscoreModuleName.purs:2:8 - 2:18 (line 2, column 8 - line 2, column 18)
+
+  Unable to parse module:
+  Invalid module name; underscores and primes are not allowed in module names
+
+
+See https://github.com/purescript/documentation/blob/master/errors/ErrorParsingModule.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/UnknownType.out b/tests/purs/failing/UnknownType.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/UnknownType.out
@@ -0,0 +1,10 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/UnknownType.purs:6:19 - 6:28 (line 6, column 19 - line 6, column 28)
+
+  Unknown type [33mSomething[0m
+
+
+See https://github.com/purescript/documentation/blob/master/errors/UnknownName.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/UnsupportedFFICommonJSExports1.js b/tests/purs/failing/UnsupportedFFICommonJSExports1.js
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/UnsupportedFFICommonJSExports1.js
@@ -0,0 +1,2 @@
+export var yes = true;
+exports.no = false;
diff --git a/tests/purs/failing/UnsupportedFFICommonJSExports1.out b/tests/purs/failing/UnsupportedFFICommonJSExports1.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/UnsupportedFFICommonJSExports1.out
@@ -0,0 +1,12 @@
+Error found:
+at tests/purs/failing/UnsupportedFFICommonJSExports1.purs:2:1 - 5:29 (line 2, column 1 - line 5, column 29)
+
+  The following CommonJS exports are not supported in the ES foreign module for module [33mMain[0m:
+
+    no
+
+
+
+See https://github.com/purescript/documentation/blob/master/errors/UnsupportedFFICommonJSExports.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/UnsupportedFFICommonJSExports1.purs b/tests/purs/failing/UnsupportedFFICommonJSExports1.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/UnsupportedFFICommonJSExports1.purs
@@ -0,0 +1,5 @@
+-- @shouldFailWith UnsupportedFFICommonJSExports
+module Main where
+
+foreign import yes :: Boolean
+foreign import no :: Boolean
diff --git a/tests/purs/failing/UnsupportedFFICommonJSExports2.js b/tests/purs/failing/UnsupportedFFICommonJSExports2.js
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/UnsupportedFFICommonJSExports2.js
@@ -0,0 +1,4 @@
+import { yes, no } from "some ES module";
+
+exports.yes = yes;
+exports.no = no;
diff --git a/tests/purs/failing/UnsupportedFFICommonJSExports2.out b/tests/purs/failing/UnsupportedFFICommonJSExports2.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/UnsupportedFFICommonJSExports2.out
@@ -0,0 +1,13 @@
+Error found:
+at tests/purs/failing/UnsupportedFFICommonJSExports2.purs:2:1 - 5:29 (line 2, column 1 - line 5, column 29)
+
+  The following CommonJS exports are not supported in the ES foreign module for module [33mMain[0m:
+
+    yes
+    no
+
+
+
+See https://github.com/purescript/documentation/blob/master/errors/UnsupportedFFICommonJSExports.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/UnsupportedFFICommonJSExports2.purs b/tests/purs/failing/UnsupportedFFICommonJSExports2.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/UnsupportedFFICommonJSExports2.purs
@@ -0,0 +1,5 @@
+-- @shouldFailWith UnsupportedFFICommonJSExports
+module Main where
+
+foreign import yes :: Boolean
+foreign import no :: Boolean
diff --git a/tests/purs/failing/UnsupportedFFICommonJSImports1.js b/tests/purs/failing/UnsupportedFFICommonJSImports1.js
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/UnsupportedFFICommonJSImports1.js
@@ -0,0 +1,4 @@
+var cjsImports = require("some CJS module");
+
+export var yes = cjsImports.yes;
+export var no = cjsImports.no;
diff --git a/tests/purs/failing/UnsupportedFFICommonJSImports1.out b/tests/purs/failing/UnsupportedFFICommonJSImports1.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/UnsupportedFFICommonJSImports1.out
@@ -0,0 +1,12 @@
+Error found:
+at tests/purs/failing/UnsupportedFFICommonJSImports1.purs:2:1 - 5:29 (line 2, column 1 - line 5, column 29)
+
+  The following CommonJS imports are not supported in the ES foreign module for module [33mMain[0m:
+
+    some CJS module
+
+
+
+See https://github.com/purescript/documentation/blob/master/errors/UnsupportedFFICommonJSImports.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/UnsupportedFFICommonJSImports1.purs b/tests/purs/failing/UnsupportedFFICommonJSImports1.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/UnsupportedFFICommonJSImports1.purs
@@ -0,0 +1,5 @@
+-- @shouldFailWith UnsupportedFFICommonJSImports
+module Main where
+
+foreign import yes :: Boolean
+foreign import no :: Boolean
diff --git a/tests/purs/failing/UnsupportedFFICommonJSImports2.js b/tests/purs/failing/UnsupportedFFICommonJSImports2.js
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/UnsupportedFFICommonJSImports2.js
@@ -0,0 +1,5 @@
+import { yes } from "some ES module";
+var cjsImports = require("some CJS module");
+
+exports.yes = yes;
+exports.no = cjsImports.no;
diff --git a/tests/purs/failing/UnsupportedFFICommonJSImports2.out b/tests/purs/failing/UnsupportedFFICommonJSImports2.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/UnsupportedFFICommonJSImports2.out
@@ -0,0 +1,12 @@
+Error found:
+at tests/purs/failing/UnsupportedFFICommonJSImports2.purs:2:1 - 5:29 (line 2, column 1 - line 5, column 29)
+
+  The following CommonJS imports are not supported in the ES foreign module for module [33mMain[0m:
+
+    some CJS module
+
+
+
+See https://github.com/purescript/documentation/blob/master/errors/UnsupportedFFICommonJSImports.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/UnsupportedFFICommonJSImports2.purs b/tests/purs/failing/UnsupportedFFICommonJSImports2.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/UnsupportedFFICommonJSImports2.purs
@@ -0,0 +1,5 @@
+-- @shouldFailWith UnsupportedFFICommonJSImports
+module Main where
+
+foreign import yes :: Boolean
+foreign import no :: Boolean
diff --git a/tests/purs/failing/UnsupportedRoleDeclarationTypeClass.out b/tests/purs/failing/UnsupportedRoleDeclarationTypeClass.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/UnsupportedRoleDeclarationTypeClass.out
@@ -0,0 +1,10 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/UnsupportedRoleDeclarationTypeClass.purs:5:1 - 5:29 (line 5, column 1 - line 5, column 29)
+
+  Role declarations are only supported for data types, not for type synonyms nor type classes.
+
+
+See https://github.com/purescript/documentation/blob/master/errors/UnsupportedRoleDeclaration.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/UnsupportedRoleDeclarationTypeClass.purs b/tests/purs/failing/UnsupportedRoleDeclarationTypeClass.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/UnsupportedRoleDeclarationTypeClass.purs
@@ -0,0 +1,5 @@
+-- @shouldFailWith UnsupportedRoleDeclaration
+module Main where
+
+class C a
+type role C representational
diff --git a/tests/purs/failing/UnsupportedRoleDeclarationTypeSynonym.out b/tests/purs/failing/UnsupportedRoleDeclarationTypeSynonym.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/UnsupportedRoleDeclarationTypeSynonym.out
@@ -0,0 +1,10 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/UnsupportedRoleDeclarationTypeSynonym.purs:7:1 - 7:20 (line 7, column 1 - line 7, column 20)
+
+  Role declarations are only supported for data types, not for type synonyms nor type classes.
+
+
+See https://github.com/purescript/documentation/blob/master/errors/UnsupportedRoleDeclaration.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/UnsupportedRoleDeclarationTypeSynonym.purs b/tests/purs/failing/UnsupportedRoleDeclarationTypeSynonym.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/UnsupportedRoleDeclarationTypeSynonym.purs
@@ -0,0 +1,7 @@
+-- @shouldFailWith UnsupportedRoleDeclaration
+module Main where
+
+data A a = A
+
+type B a = A a
+type role B nominal
diff --git a/tests/purs/failing/UnsupportedTypeInKind.out b/tests/purs/failing/UnsupportedTypeInKind.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/UnsupportedTypeInKind.out
@@ -0,0 +1,15 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/UnsupportedTypeInKind.purs:7:28 - 7:38 (line 7, column 28 - line 7, column 38)
+
+  The type:
+
+    [33mOk => Type[0m
+
+  is not supported in kinds.
+
+in foreign data type declaration for [33mBad[0m
+
+See https://github.com/purescript/documentation/blob/master/errors/UnsupportedTypeInKind.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/UnsupportedTypeInKind.purs b/tests/purs/failing/UnsupportedTypeInKind.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/UnsupportedTypeInKind.purs
@@ -0,0 +1,7 @@
+-- @shouldFailWith UnsupportedTypeInKind
+module Main where
+
+class Ok
+instance ok :: Ok
+
+foreign import data Bad :: Ok => Type
diff --git a/tests/purs/failing/UnusableTypeClassMethod.purs b/tests/purs/failing/UnusableTypeClassMethod.purs
deleted file mode 100644
--- a/tests/purs/failing/UnusableTypeClassMethod.purs
+++ /dev/null
@@ -1,7 +0,0 @@
--- @shouldFailWith UnusableDeclaration
-module Main where
-
-class C a b where
-  -- type doesn't contain `a`, which is also required to determine an instance
-  c :: b
-
diff --git a/tests/purs/failing/UnusableTypeClassMethodConflictingIdent.purs b/tests/purs/failing/UnusableTypeClassMethodConflictingIdent.purs
deleted file mode 100644
--- a/tests/purs/failing/UnusableTypeClassMethodConflictingIdent.purs
+++ /dev/null
@@ -1,7 +0,0 @@
--- @shouldFailWith UnusableDeclaration
-module Main where
-
-class C a where
-  -- type doesn't contain the type class var `a`
-  c :: forall a. a
-
diff --git a/tests/purs/failing/UnusableTypeClassMethodSynonym.purs b/tests/purs/failing/UnusableTypeClassMethodSynonym.purs
deleted file mode 100644
--- a/tests/purs/failing/UnusableTypeClassMethodSynonym.purs
+++ /dev/null
@@ -1,9 +0,0 @@
--- @shouldFailWith UnusableDeclaration
-module Main where
-
-type M x = forall a. a
-
-class C a where
-  -- after synonym expansion, the type doesn't actually contain an `a`
-  c :: M a
-
diff --git a/tests/purs/failing/VisibleTypeApplications1.out b/tests/purs/failing/VisibleTypeApplications1.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/VisibleTypeApplications1.out
@@ -0,0 +1,20 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/VisibleTypeApplications1.purs:7:11 - 7:18 (line 7, column 11 - line 7, column 18)
+
+  An expression of polymorphic type
+  with the invisible type variable [33ma[0m:
+  [33m                  [0m
+  [33m  forall a. a -> a[0m
+  [33m                  [0m
+  cannot be applied to:
+  [33m     [0m
+  [33m  Int[0m
+  [33m     [0m
+
+while inferring the type of [33mid[0m
+in value declaration [33mfailOne[0m
+
+See https://github.com/purescript/documentation/blob/master/errors/CannotApplyExpressionOfTypeOnType.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/VisibleTypeApplications1.purs b/tests/purs/failing/VisibleTypeApplications1.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/VisibleTypeApplications1.purs
@@ -0,0 +1,7 @@
+-- @shouldFailWith CannotApplyExpressionOfTypeOnType
+module Main where
+
+id :: forall a. a -> a
+id a = a
+
+failOne = id @Int
diff --git a/tests/purs/failing/VisibleTypeApplications2.out b/tests/purs/failing/VisibleTypeApplications2.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/VisibleTypeApplications2.out
@@ -0,0 +1,19 @@
+Error found:
+in module [33mMain[0m
+at tests/purs/failing/VisibleTypeApplications2.purs:7:11 - 7:18 (line 7, column 11 - line 7, column 18)
+
+  An expression of monomorphic type:
+  [33m            [0m
+  [33m  Int -> Int[0m
+  [33m            [0m
+  cannot be applied to:
+  [33m     [0m
+  [33m  Int[0m
+  [33m     [0m
+
+while inferring the type of [33mid[0m
+in value declaration [33mfailTwo[0m
+
+See https://github.com/purescript/documentation/blob/master/errors/CannotApplyExpressionOfTypeOnType.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/failing/VisibleTypeApplications2.purs b/tests/purs/failing/VisibleTypeApplications2.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/VisibleTypeApplications2.purs
@@ -0,0 +1,7 @@
+-- @shouldFailWith CannotApplyExpressionOfTypeOnType
+module Main where
+
+id :: Int -> Int
+id a = a
+
+failTwo = id @Int
diff --git a/tests/purs/failing/Whitespace1.out b/tests/purs/failing/Whitespace1.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/failing/Whitespace1.out
@@ -0,0 +1,10 @@
+Error found:
+at tests/purs/failing/Whitespace1.purs:5:1 - 5:2 (line 5, column 1 - line 5, column 2)
+
+  Unable to parse module:
+  Illegal whitespace character U+0009
+
+
+See https://github.com/purescript/documentation/blob/master/errors/ErrorParsingModule.md for more information,
+or to contribute content related to this error.
+
diff --git a/tests/purs/graph/graph.json b/tests/purs/graph/graph.json
new file mode 100644
--- /dev/null
+++ b/tests/purs/graph/graph.json
@@ -0,0 +1,1 @@
+{"Module2":{"path":"tests/purs/graph/src/Module2.purs","depends":["Module3"]},"Module3":{"path":"tests/purs/graph/src/Module3.purs","depends":[]},"Module":{"path":"tests/purs/graph/src/Module.purs","depends":["Module2"]}}
diff --git a/tests/purs/graph/src/Module.purs b/tests/purs/graph/src/Module.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/graph/src/Module.purs
@@ -0,0 +1,9 @@
+module Module (foo) where
+
+import Module2 (bar)
+
+foo :: Int
+foo = 0
+
+baz :: Int
+baz = foo + bar
diff --git a/tests/purs/graph/src/Module2.purs b/tests/purs/graph/src/Module2.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/graph/src/Module2.purs
@@ -0,0 +1,6 @@
+module Module2 (bar) where
+
+import Module3 (baz)
+
+bar :: Int
+bar = 1
diff --git a/tests/purs/graph/src/Module3.purs b/tests/purs/graph/src/Module3.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/graph/src/Module3.purs
@@ -0,0 +1,4 @@
+module Module3 (baz) where
+
+baz :: Int
+baz = 3
diff --git a/tests/purs/graph/src/ModuleFailing.purs b/tests/purs/graph/src/ModuleFailing.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/graph/src/ModuleFailing.purs
@@ -0,0 +1,5 @@
+module ModuleFailing where
+
+import NonExistent as M
+
+bat = M.nonExistent
diff --git a/tests/purs/layout/AdoIn.out b/tests/purs/layout/AdoIn.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/layout/AdoIn.out
@@ -0,0 +1,20 @@
+module Test where{
+
+test = ado{
+  baz;
+  let {foo = bar}}
+   in bar;
+
+test = ado {}in foo;
+
+test = ado{
+  foo <- bar $ let {a = 42 }in a;
+  baz <- b}
+  in bar;
+
+test = ado{
+  foo;
+  let {bar = let {a = 42 }in a};
+  let {baz = 42}}
+  in bar}
+<eof>
diff --git a/tests/purs/layout/AdoIn.purs b/tests/purs/layout/AdoIn.purs
--- a/tests/purs/layout/AdoIn.purs
+++ b/tests/purs/layout/AdoIn.purs
@@ -11,3 +11,9 @@
   foo <- bar $ let a = 42 in a
   baz <- b
   in bar
+
+test = ado
+  foo
+  let bar = let a = 42 in a
+  let baz = 42
+  in bar
diff --git a/tests/purs/layout/BacktickOperator.out b/tests/purs/layout/BacktickOperator.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/layout/BacktickOperator.out
@@ -0,0 +1,22 @@
+module Test where{
+
+example1 = do{
+  foo bar}
+  <|> baz;
+
+example2 = do{
+  foo bar}
+  `wat` baz;
+
+example3 =
+  case _ of{
+    Foo a -> 1;
+    Bar b -> 2}
+    `append` 3;
+
+example4 =
+  case _ of{
+    Foo a -> 1;
+    Bar b -> 2}
+    + 3}
+<eof>
diff --git a/tests/purs/layout/BacktickOperator.purs b/tests/purs/layout/BacktickOperator.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/layout/BacktickOperator.purs
@@ -0,0 +1,21 @@
+module Test where
+
+example1 = do
+  foo bar
+  <|> baz
+
+example2 = do
+  foo bar
+  `wat` baz
+
+example3 =
+  case _ of
+    Foo a -> 1
+    Bar b -> 2
+    `append` 3
+
+example4 =
+  case _ of
+    Foo a -> 1
+    Bar b -> 2
+    + 3
diff --git a/tests/purs/layout/CaseGuards.out b/tests/purs/layout/CaseGuards.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/layout/CaseGuards.out
@@ -0,0 +1,54 @@
+module Test where{
+
+-- Including data because of `|` masking
+data Foo
+ = Foo
+ | Bar
+ | Baz;
+
+test =
+  case foo of{
+    a | b, c ->
+      d;
+    a | b, c -> d};
+
+test = case a, b of{
+  c, d
+   | e ->
+     case e of{
+       f | true -> bar
+         | false -> baz}
+   | f -> g};
+
+test a
+  | false =
+      case false of{
+        true | a > 12 -> true}
+  | otherwise = true;
+
+test = case a of {foo | foo \a -> a -> true};
+
+test = a `case _ of {x | unit # \_ -> true, true -> const}` b;
+
+test = case a of{
+  12 | do {that;
+          that   }-> this
+     | otherwise -> this};
+
+test a b = [ case _ of{
+  12 | case a, b of{
+         _, 42 -> b;
+         _, 12 -> false}, b -> true
+     | case a, b of{
+         _, 42 -> b;
+         _, 12 -> false}, b -> true}, false ];
+
+test a
+  | case a, b of{
+         _, 42 -> b;
+         _, 12 -> false}, b = true
+  | case a, b of{
+         _, 42 -> b;
+         _, 12 -> false}, b = true}
+
+<eof>
diff --git a/tests/purs/layout/CaseWhere.out b/tests/purs/layout/CaseWhere.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/layout/CaseWhere.out
@@ -0,0 +1,13 @@
+module Test where{
+
+test = case foo of{
+  Nothing -> a
+    where {a = 12};
+  Just a -> do{
+    what}}
+  where{
+    foo = bar};
+
+test = case f of {Foo -> do {that}
+                        where {foo = 12}}}
+<eof>
diff --git a/tests/purs/layout/ClassHead.out b/tests/purs/layout/ClassHead.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/layout/ClassHead.out
@@ -0,0 +1,11 @@
+module Test where{
+
+import Foo (class Foo);
+
+class Foo a b c d | a -> b, c -> d where{
+  foo :: Foo};
+
+class Foo a b c d | a -> b, c -> d;
+
+instance foo :: Foo}
+<eof>
diff --git a/tests/purs/layout/Commas.out b/tests/purs/layout/Commas.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/layout/Commas.out
@@ -0,0 +1,23 @@
+module Test where{
+
+test =
+  [ case do {foo}, bar of{
+      a | b, c -> d}, bar
+    ];
+
+test =
+  [ case do {foo}, bar of {a | b, c -> d}, bar ];
+
+test =
+  [ do {do {do {foo}}}, bar ];
+
+test =
+  [ \foo -> foo, bar ];
+
+test = foo where{
+  bar =
+    case a, b of{
+      c, d | d == [case true, w of {1, a -> true}, false ] -> d;
+      e, d | do {what}, do {that }-> d}}}
+
+<eof>
diff --git a/tests/purs/layout/Delimiter.out b/tests/purs/layout/Delimiter.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/layout/Delimiter.out
@@ -0,0 +1,14 @@
+module Test where{
+
+test1 = a;
+test2 = {
+  b
+};
+test3 = do{
+  foo;
+  bar (
+    baz
+  ) == 12;
+  baz};
+test4 = c}
+<eof>
diff --git a/tests/purs/layout/DoLet.out b/tests/purs/layout/DoLet.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/layout/DoLet.out
@@ -0,0 +1,16 @@
+module Test where{
+
+test = do{
+  let {foo = bar};
+  foo};
+
+test = do{
+  let {foo = bar};
+  in baz;
+  foo};
+
+test = do{
+  let {foo = bar}
+    in baz;
+  foo}}
+<eof>
diff --git a/tests/purs/layout/DoOperator.out b/tests/purs/layout/DoOperator.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/layout/DoOperator.out
@@ -0,0 +1,9 @@
+module Test where{
+
+test = do{
+  foo;
+  foo do{
+    bar}}
+  <|> bar}
+
+<eof>
diff --git a/tests/purs/layout/DoWhere.out b/tests/purs/layout/DoWhere.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/layout/DoWhere.out
@@ -0,0 +1,7 @@
+module Test where{
+
+test =
+  do{
+    do {do{
+        foo }}}where {bar = baz}}
+<eof>
diff --git a/tests/purs/layout/IfThenElseDo.out b/tests/purs/layout/IfThenElseDo.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/layout/IfThenElseDo.out
@@ -0,0 +1,11 @@
+module Test where{
+
+foo = do{
+  if true then
+    false
+  else if false then do{
+    that}
+    else do{
+     what};
+  that}}
+<eof>
diff --git a/tests/purs/layout/InstanceChainElse.out b/tests/purs/layout/InstanceChainElse.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/layout/InstanceChainElse.out
@@ -0,0 +1,5 @@
+module Test where{
+
+instance foo :: Foo Int else bar :: Foo String
+else baz :: Foo Boolean}
+<eof>
diff --git a/tests/purs/layout/IntType.out b/tests/purs/layout/IntType.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/layout/IntType.out
@@ -0,0 +1,8 @@
+module Test where{
+
+type IntType = (-1);
+
+type IntType' = (-
+  -- here's a comment
+  1)}
+<eof>
diff --git a/tests/purs/layout/IntType.purs b/tests/purs/layout/IntType.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/layout/IntType.purs
@@ -0,0 +1,7 @@
+module Test where
+
+type IntType = (-1)
+
+type IntType' = (-
+  -- here's a comment
+  1)
diff --git a/tests/purs/layout/LetGuards.out b/tests/purs/layout/LetGuards.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/layout/LetGuards.out
@@ -0,0 +1,30 @@
+module Test where{
+
+test =
+  let{
+    foo
+      | bar
+      , baz =
+        42
+      | otherwise = 100}
+  in
+    foo;
+
+test = do{
+  let{
+    foo
+      | bar
+      , baz =
+        42
+      | otherwise = 100};
+  foo};
+
+test = ado{
+  let{
+    foo
+      | bar
+      , baz =
+        42
+      | otherwise = 100};
+  foo}}
+<eof>
diff --git a/tests/purs/layout/LetGuards.purs b/tests/purs/layout/LetGuards.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/layout/LetGuards.purs
@@ -0,0 +1,29 @@
+module Test where
+
+test =
+  let
+    foo
+      | bar
+      , baz =
+        42
+      | otherwise = 100
+  in
+    foo
+
+test = do
+  let
+    foo
+      | bar
+      , baz =
+        42
+      | otherwise = 100
+  foo
+
+test = ado
+  let
+    foo
+      | bar
+      , baz =
+        42
+      | otherwise = 100
+  foo
diff --git a/tests/purs/layout/Shebang.out b/tests/purs/layout/Shebang.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/layout/Shebang.out
@@ -0,0 +1,7 @@
+#! shebang line 1
+#! shebang line 2
+
+module Test where{
+
+foo = 42}
+<eof>
diff --git a/tests/purs/layout/Shebang.purs b/tests/purs/layout/Shebang.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/layout/Shebang.purs
@@ -0,0 +1,6 @@
+#! shebang line 1
+#! shebang line 2
+
+module Test where
+
+foo = 42
diff --git a/tests/purs/make/Module.purs b/tests/purs/make/Module.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/make/Module.purs
@@ -0,0 +1,5 @@
+module Module where
+x :: Int
+x = 1
+y :: Int
+y = 1
diff --git a/tests/purs/optimize/2866.out.js b/tests/purs/optimize/2866.out.js
new file mode 100644
--- /dev/null
+++ b/tests/purs/optimize/2866.out.js
@@ -0,0 +1,13 @@
+// Canonical test for #2866. This doesn't need to test whether `apply`s
+// defined from modules other than `Data.Function` are incorrectly
+// optimized since the rest of the test suite seemingly catches it.
+var Area = function (x) {
+    return x;
+};
+var areaFlipped = 42;
+var area = 42;
+export {
+    Area,
+    area,
+    areaFlipped
+};
diff --git a/tests/purs/optimize/2866.purs b/tests/purs/optimize/2866.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/optimize/2866.purs
@@ -0,0 +1,12 @@
+-- Canonical test for #2866. This doesn't need to test whether `apply`s
+-- defined from modules other than `Data.Function` are incorrectly
+-- optimized since the rest of the test suite seemingly catches it.
+module Main where
+
+import Prelude
+
+newtype Area = Area Int
+
+area = Area $ 42
+
+areaFlipped = 42 # Area
diff --git a/tests/purs/optimize/4179.out.js b/tests/purs/optimize/4179.out.js
new file mode 100644
--- /dev/null
+++ b/tests/purs/optimize/4179.out.js
@@ -0,0 +1,101 @@
+var $runtime_lazy = function (name, moduleName, init) {
+    var state = 0;
+    var val;
+    return function (lineNumber) {
+        if (state === 2) return val;
+        if (state === 1) throw new ReferenceError(name + " was needed before it finished initializing (module " + moduleName + ", line " + lineNumber + ")", moduleName, lineNumber);
+        state = 1;
+        val = init();
+        state = 2;
+        return val;
+    };
+};
+
+// This is a test that TCO isn't broken by unsafePartial.
+var tcoable = function ($copy_v) {
+    var $tco_done = false;
+    var $tco_result;
+    function $tco_loop(v) {
+        if (v === 0) {
+            $tco_done = true;
+            return "done";
+        };
+        if (v > 0) {
+            $copy_v = v - 1 | 0;
+            return;
+        };
+        throw new Error("Failed pattern match at Main (line 43, column 25 - line 45, column 31): " + [ v.constructor.name ]);
+    };
+    while (!$tco_done) {
+        $tco_result = $tco_loop($copy_v);
+    };
+    return $tco_result;
+};
+var isOdd = function (n) {
+    return n > 0 && !isEven(n - 1 | 0);
+};
+var isEven = function (n) {
+    return n === 0 || isOdd(n - 1 | 0);
+};
+
+// This is an example of four mutually recursive bindings with a complex
+// run-time dependency structure. The expected result is:
+//   alpha is defined without any laziness
+//   bravo and charlie are lazily initialized in a group
+//   and then delta is lazily initialized
+var alpha = function (v) {
+    if (v === 0) {
+        return $lazy_bravo(18);
+    };
+    if (v === 1) {
+        return $lazy_charlie(19);
+    };
+    if (v === 2) {
+        return function (y) {
+            var $13 = y > 0;
+            if ($13) {
+                return bravo(y);
+            };
+            return charlie(y);
+        };
+    };
+    return function (y) {
+        return $lazy_delta(21)(y)(v);
+    };
+};
+var $lazy_charlie = /* #__PURE__ */ $runtime_lazy("charlie", "Main", function () {
+    return (function (v) {
+        return alpha;
+    })({})(4);
+});
+var $lazy_bravo = /* #__PURE__ */ $runtime_lazy("bravo", "Main", function () {
+    return (function (v) {
+        return alpha;
+    })({})(3);
+});
+var charlie = /* #__PURE__ */ $lazy_charlie(31);
+var bravo = /* #__PURE__ */ $lazy_bravo(28);
+var $lazy_delta = /* #__PURE__ */ $runtime_lazy("delta", "Main", function () {
+    var b = (function (v) {
+        return bravo;
+    })({});
+    return function (x) {
+        return function (y) {
+            var $14 = x === y;
+            if ($14) {
+                return b(0);
+            };
+            return 1.0;
+        };
+    };
+});
+var delta = /* #__PURE__ */ $lazy_delta(34);
+export {
+    isEven,
+    isOdd,
+    alpha,
+    bravo,
+    charlie,
+    delta,
+    tcoable
+};
diff --git a/tests/purs/optimize/4179.purs b/tests/purs/optimize/4179.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/optimize/4179.purs
@@ -0,0 +1,45 @@
+module Main where
+
+import Prelude
+
+import Partial.Unsafe (unsafePartial)
+
+isEven n = n == 0 || isOdd (n - 1)
+isOdd n = n > 0 && not (isEven (n - 1))
+
+-- This is an example of four mutually recursive bindings with a complex
+-- run-time dependency structure. The expected result is:
+--   alpha is defined without any laziness
+--   bravo and charlie are lazily initialized in a group
+--   and then delta is lazily initialized
+
+alpha :: Int -> Int -> Number
+alpha = case _ of
+  0 -> bravo
+  1 -> charlie
+  2 -> \y -> if y > 0 then bravo y else charlie y
+  x -> \y -> delta y x
+
+-- Me: `alpha`
+-- purs: The value of alpha is undefined here, so this reference is not allowed.
+-- Me: `(\_ -> alpha) {}`
+-- purs: LGTM!
+
+bravo :: Int -> Number
+bravo = (\_ -> alpha) {} 3
+
+charlie :: Int -> Number
+charlie = (\_ -> alpha) {} 4
+
+delta :: Int -> Int -> Number
+delta =
+  let b = (\_ -> bravo) {}
+  in \x y -> if x == y then b 0 else 1.0
+
+
+-- This is a test that TCO isn't broken by unsafePartial.
+
+tcoable :: Int -> String
+tcoable = unsafePartial case _ of
+  0 -> "done"
+  n | n > 0 -> tcoable (n - 1)
diff --git a/tests/purs/optimize/4229.out.js b/tests/purs/optimize/4229.out.js
new file mode 100644
--- /dev/null
+++ b/tests/purs/optimize/4229.out.js
@@ -0,0 +1,17 @@
+import * as Data_Unit from "../Data.Unit/index.js";
+import * as Effect_Console from "../Effect.Console/index.js";
+var Control_Bind = /* #__PURE__ */ (function () {
+    function Control_Bind() {
+
+    };
+    Control_Bind.value = new Control_Bind();
+    return Control_Bind;
+})();
+var main = function __do() {
+    Data_Unit.unit;
+    return Effect_Console.log("Done")();
+};
+export {
+    Control_Bind,
+    main
+};
diff --git a/tests/purs/optimize/4229.purs b/tests/purs/optimize/4229.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/optimize/4229.purs
@@ -0,0 +1,13 @@
+module Main where
+
+import Prelude
+
+import Effect (Effect)
+import Effect.Console (log)
+
+data X = Control_Bind
+
+main :: Effect Unit
+main = do
+  pure unit
+  log "Done"
diff --git a/tests/purs/optimize/4386.out.js b/tests/purs/optimize/4386.out.js
new file mode 100644
--- /dev/null
+++ b/tests/purs/optimize/4386.out.js
@@ -0,0 +1,26 @@
+var mySTFn2 = function (a, b) {
+    return a + b | 0;
+};
+var mySTFn1 = function (a) {
+    return a + 1 | 0;
+};
+var myInt2 = function () {
+    return mySTFn2(0, 1);
+};
+var myInt1 = function () {
+    return mySTFn1(0);
+};
+var otherTest = function __do() {
+    var a = mySTFn2(0, 1);
+    var b = mySTFn1(2);
+    var c = myInt1();
+    var d = myInt2();
+    return ((a + b | 0) + c | 0) + d | 0;
+};
+export {
+    mySTFn1,
+    mySTFn2,
+    myInt1,
+    myInt2,
+    otherTest
+};
diff --git a/tests/purs/optimize/4386.purs b/tests/purs/optimize/4386.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/optimize/4386.purs
@@ -0,0 +1,25 @@
+module Main where
+
+import Prelude
+import Control.Monad.ST (ST)
+import Control.Monad.ST.Uncurried (STFn1, STFn2, mkSTFn1, mkSTFn2, runSTFn1, runSTFn2)
+
+mySTFn1 :: forall r. STFn1 Int r Int
+mySTFn1 = mkSTFn1 \a -> pure (a + 1)
+
+mySTFn2 :: forall r. STFn2 Int Int r Int
+mySTFn2 = mkSTFn2 \a b -> pure (a + b)
+
+myInt1 :: forall r. ST r Int
+myInt1 = runSTFn1 mySTFn1 0
+
+myInt2 :: forall r. ST r Int
+myInt2 = runSTFn2 mySTFn2 0 1
+
+otherTest :: forall r. ST r Int
+otherTest = do
+  a <- runSTFn2 mySTFn2 0 1
+  b <- runSTFn1 mySTFn1 2
+  c <- myInt1
+  d <- myInt2
+  pure $ a + b + c + d
diff --git a/tests/purs/optimize/Foreign.js b/tests/purs/optimize/Foreign.js
new file mode 100644
--- /dev/null
+++ b/tests/purs/optimize/Foreign.js
@@ -0,0 +1,1 @@
+export const foo = 42;
diff --git a/tests/purs/optimize/Foreign.out.js b/tests/purs/optimize/Foreign.out.js
new file mode 100644
--- /dev/null
+++ b/tests/purs/optimize/Foreign.out.js
@@ -0,0 +1,5 @@
+import * as $foreign from "./foreign.js";
+var bar = $foreign.foo;
+export {
+    bar
+};
diff --git a/tests/purs/optimize/Foreign.purs b/tests/purs/optimize/Foreign.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/optimize/Foreign.purs
@@ -0,0 +1,5 @@
+module Main (bar) where
+
+foreign import foo :: Int
+
+bar = foo
diff --git a/tests/purs/optimize/Monad.out.js b/tests/purs/optimize/Monad.out.js
new file mode 100644
--- /dev/null
+++ b/tests/purs/optimize/Monad.out.js
@@ -0,0 +1,30 @@
+import * as Control_Applicative from "../Control.Applicative/index.js";
+import * as Control_Bind from "../Control.Bind/index.js";
+var liftM1 = function (dictMonad) {
+    var bind = Control_Bind.bind(dictMonad.Bind1());
+    var pure = Control_Applicative.pure(dictMonad.Applicative0());
+    return function (f) {
+        return function (a) {
+            return bind(a)(function (a$prime) {
+                return pure(f(a$prime));
+            });
+        };
+    };
+};
+var ap = function (dictMonad) {
+    var bind = Control_Bind.bind(dictMonad.Bind1());
+    var pure = Control_Applicative.pure(dictMonad.Applicative0());
+    return function (f) {
+        return function (a) {
+            return bind(f)(function (f$prime) {
+                return bind(a)(function (a$prime) {
+                    return pure(f$prime(a$prime));
+                });
+            });
+        };
+    };
+};
+export {
+    liftM1,
+    ap
+};
diff --git a/tests/purs/optimize/Monad.purs b/tests/purs/optimize/Monad.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/optimize/Monad.purs
@@ -0,0 +1,17 @@
+module Main where
+
+import Control.Applicative (class Applicative, pure)
+import Control.Bind (class Bind, bind)
+
+class (Applicative m, Bind m) <= Monad m
+
+liftM1 :: forall m a b. Monad m => (a -> b) -> m a -> m b
+liftM1 f a = do
+  a' <- a
+  pure (f a')
+
+ap :: forall m a b. Monad m => m (a -> b) -> m a -> m b
+ap f a = do
+  f' <- f
+  a' <- a
+  pure (f' a')
diff --git a/tests/purs/optimize/ObjectUpdate.out.js b/tests/purs/optimize/ObjectUpdate.out.js
new file mode 100644
--- /dev/null
+++ b/tests/purs/optimize/ObjectUpdate.out.js
@@ -0,0 +1,27 @@
+var staticUpdate2 = function (x) {
+    return {
+        alpha: x.alpha,
+        bravo: true
+    };
+};
+var staticUpdate1 = function (x) {
+    return {
+        alpha: x.alpha,
+        bravo: "replaced"
+    };
+};
+var dynamicUpdate1 = function (x) {
+    var $3 = {};
+    for (var $4 in x) {
+        if ({}.hasOwnProperty.call(x, $4)) {
+            $3[$4] = x[$4];
+        };
+    };
+    $3.bravo = true;
+    return $3;
+};
+export {
+    staticUpdate1,
+    staticUpdate2,
+    dynamicUpdate1
+};
diff --git a/tests/purs/optimize/ObjectUpdate.purs b/tests/purs/optimize/ObjectUpdate.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/optimize/ObjectUpdate.purs
@@ -0,0 +1,10 @@
+module Main where
+
+staticUpdate1 :: { alpha :: Int, bravo :: String } -> { alpha :: Int, bravo :: String }
+staticUpdate1 x = x { bravo = "replaced" }
+
+staticUpdate2 :: { alpha :: Int, bravo :: String } -> { alpha :: Int, bravo :: Boolean }
+staticUpdate2 x = x { bravo = true }
+
+dynamicUpdate1 :: forall r. { alpha :: Int, bravo :: String | r } -> { alpha :: Int, bravo :: Boolean | r }
+dynamicUpdate1 x = x { bravo = true }
diff --git a/tests/purs/optimize/Primitives.out.js b/tests/purs/optimize/Primitives.out.js
new file mode 100644
--- /dev/null
+++ b/tests/purs/optimize/Primitives.out.js
@@ -0,0 +1,10 @@
+// This test checks that no unused Semiring abstractions are introduced when
+// the operators are compiled to JS primitives.
+var f = function (x) {
+    return function (y) {
+        return x * (y + 1 | 0) | 0;
+    };
+};
+export {
+    f
+};
diff --git a/tests/purs/optimize/Primitives.purs b/tests/purs/optimize/Primitives.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/optimize/Primitives.purs
@@ -0,0 +1,9 @@
+-- This test checks that no unused Semiring abstractions are introduced when
+-- the operators are compiled to JS primitives.
+
+module Main where
+
+import Prelude
+
+f :: Int -> Int -> Int
+f x y = x * (y + 1)
diff --git a/tests/purs/optimize/RecursiveInstances.out.js b/tests/purs/optimize/RecursiveInstances.out.js
new file mode 100644
--- /dev/null
+++ b/tests/purs/optimize/RecursiveInstances.out.js
@@ -0,0 +1,107 @@
+import * as Data_Semigroup from "../Data.Semigroup/index.js";
+import * as Data_Symbol from "../Data.Symbol/index.js";
+import * as Type_Proxy from "../Type.Proxy/index.js";
+var append = /* #__PURE__ */ Data_Semigroup.append(Data_Semigroup.semigroupArray);
+var findKeysAuxNil = {
+    findKeysAux: function (v) {
+        return [  ];
+    }
+};
+var findKeysAux = function (dict) {
+    return dict.findKeysAux;
+};
+var findKeysAuxCons = function (dictIsSymbol) {
+    var reflectSymbol = Data_Symbol.reflectSymbol(dictIsSymbol);
+    return function (dictFindKeysAux) {
+        var findKeysAux1 = findKeysAux(dictFindKeysAux);
+        return {
+            findKeysAux: function (v) {
+                return append([ reflectSymbol(Type_Proxy["Proxy"].value) ])(findKeysAux1(Type_Proxy["Proxy"].value));
+            }
+        };
+    };
+};
+var findKeysAuxCons1 = /* #__PURE__ */ findKeysAuxCons({
+    reflectSymbol: function () {
+        return "a";
+    }
+});
+var findKeysAuxCons2 = /* #__PURE__ */ findKeysAuxCons({
+    reflectSymbol: function () {
+        return "b";
+    }
+});
+var findKeysAuxCons3 = /* #__PURE__ */ findKeysAuxCons({
+    reflectSymbol: function () {
+        return "c";
+    }
+});
+var findKeysAuxCons4 = /* #__PURE__ */ findKeysAuxCons({
+    reflectSymbol: function () {
+        return "d";
+    }
+});
+var findKeys = function () {
+    return function (dictFindKeysAux) {
+        var findKeysAux1 = findKeysAux(dictFindKeysAux);
+        return function (v) {
+            return findKeysAux1(Type_Proxy["Proxy"].value);
+        };
+    };
+};
+var findKeys11 = /* #__PURE__ */ findKeys();
+var findKeys12 = /* #__PURE__ */ findKeys11(/* #__PURE__ */ findKeysAuxCons1(findKeysAuxNil));
+var findKeys13 = /* #__PURE__ */ findKeys11(/* #__PURE__ */ findKeysAuxCons1(/* #__PURE__ */ findKeysAuxCons2(/* #__PURE__ */ findKeysAuxCons3(/* #__PURE__ */ findKeysAuxCons4(/* #__PURE__ */ findKeysAuxCons({
+    reflectSymbol: function () {
+        return "e";
+    }
+})(findKeysAuxNil))))));
+var findKeys14 = /* #__PURE__ */ findKeys11(/* #__PURE__ */ findKeysAuxCons1(/* #__PURE__ */ findKeysAuxCons2(findKeysAuxNil)));
+var findKeys15 = /* #__PURE__ */ findKeys11(/* #__PURE__ */ findKeysAuxCons1(/* #__PURE__ */ findKeysAuxCons2(/* #__PURE__ */ findKeysAuxCons3(findKeysAuxNil))));
+var findKeys16 = /* #__PURE__ */ findKeys11(/* #__PURE__ */ findKeysAuxCons1(/* #__PURE__ */ findKeysAuxCons2(/* #__PURE__ */ findKeysAuxCons3(/* #__PURE__ */ findKeysAuxCons4(findKeysAuxNil)))));
+var findKeys1 = /* #__PURE__ */ (function () {
+    return findKeys12(Type_Proxy["Proxy"].value);
+})();
+var findKeys10 = /* #__PURE__ */ (function () {
+    return findKeys13(Type_Proxy["Proxy"].value);
+})();
+var findKeys2 = /* #__PURE__ */ (function () {
+    return findKeys14(Type_Proxy["Proxy"].value);
+})();
+var findKeys3 = /* #__PURE__ */ (function () {
+    return findKeys15(Type_Proxy["Proxy"].value);
+})();
+var findKeys4 = /* #__PURE__ */ (function () {
+    return findKeys16(Type_Proxy["Proxy"].value);
+})();
+var findKeys5 = /* #__PURE__ */ (function () {
+    return findKeys13(Type_Proxy["Proxy"].value);
+})();
+var findKeys6 = /* #__PURE__ */ (function () {
+    return findKeys12(Type_Proxy["Proxy"].value);
+})();
+var findKeys7 = /* #__PURE__ */ (function () {
+    return findKeys14(Type_Proxy["Proxy"].value);
+})();
+var findKeys8 = /* #__PURE__ */ (function () {
+    return findKeys15(Type_Proxy["Proxy"].value);
+})();
+var findKeys9 = /* #__PURE__ */ (function () {
+    return findKeys16(Type_Proxy["Proxy"].value);
+})();
+export {
+    findKeysAux,
+    findKeys,
+    findKeys1,
+    findKeys2,
+    findKeys3,
+    findKeys4,
+    findKeys5,
+    findKeys6,
+    findKeys7,
+    findKeys8,
+    findKeys9,
+    findKeys10,
+    findKeysAuxNil,
+    findKeysAuxCons
+};
diff --git a/tests/purs/optimize/RecursiveInstances.purs b/tests/purs/optimize/RecursiveInstances.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/optimize/RecursiveInstances.purs
@@ -0,0 +1,31 @@
+module Main where
+
+import Prelude
+
+import Prim.Row as R
+import Prim.RowList as RL
+import Type.Prelude (class IsSymbol, Proxy(..), reflectSymbol)
+
+class FindKeysAux :: forall k. RL.RowList k -> Constraint
+class FindKeysAux a where
+  findKeysAux :: Proxy a -> Array String
+
+instance FindKeysAux RL.Nil where
+  findKeysAux _ = []
+
+else instance (IsSymbol l, FindKeysAux r) => FindKeysAux (RL.Cons l t r) where
+  findKeysAux _ = [ reflectSymbol (Proxy :: Proxy l) ] <> findKeysAux (Proxy :: Proxy r)
+
+findKeys :: forall r rl. RL.RowToList r rl => FindKeysAux rl => Proxy r -> Array String
+findKeys _ = findKeysAux (Proxy :: Proxy rl)
+
+findKeys1 = findKeys (Proxy :: Proxy (a :: Unit))
+findKeys2 = findKeys (Proxy :: Proxy (a :: Unit, b :: Unit))
+findKeys3 = findKeys (Proxy :: Proxy (a :: Unit, b :: Unit, c :: Unit))
+findKeys4 = findKeys (Proxy :: Proxy (a :: Unit, b :: Unit, c :: Unit, d :: Unit))
+findKeys5 = findKeys (Proxy :: Proxy (a :: Unit, b :: Unit, c :: Unit, d :: Unit, e :: Unit))
+findKeys6 = findKeys (Proxy :: Proxy (a :: Unit))
+findKeys7 = findKeys (Proxy :: Proxy (a :: Unit, b :: Unit))
+findKeys8 = findKeys (Proxy :: Proxy (a :: Unit, b :: Unit, c :: Unit))
+findKeys9 = findKeys (Proxy :: Proxy (a :: Unit, b :: Unit, c :: Unit, d :: Unit))
+findKeys10 = findKeys (Proxy :: Proxy (a :: Unit, b :: Unit, c :: Unit, d :: Unit, e :: Unit))
diff --git a/tests/purs/optimize/Symbols.out.js b/tests/purs/optimize/Symbols.out.js
new file mode 100644
--- /dev/null
+++ b/tests/purs/optimize/Symbols.out.js
@@ -0,0 +1,68 @@
+import * as Data_Symbol from "../Data.Symbol/index.js";
+import * as Record_Unsafe from "../Record.Unsafe/index.js";
+import * as Type_Proxy from "../Type.Proxy/index.js";
+var fooIsSymbol = {
+    reflectSymbol: function () {
+        return "foo";
+    }
+};
+var set = function (dictIsSymbol) {
+    var reflectSymbol = Data_Symbol.reflectSymbol(dictIsSymbol);
+    return function () {
+        return function (l) {
+            return function (a) {
+                return function (r) {
+                    return Record_Unsafe.unsafeSet(reflectSymbol(l))(a)(r);
+                };
+            };
+        };
+    };
+};
+var set1 = /* #__PURE__ */ set(fooIsSymbol)();
+var get = function (dictIsSymbol) {
+    var reflectSymbol = Data_Symbol.reflectSymbol(dictIsSymbol);
+    return function () {
+        return function (l) {
+            return function (r) {
+                return Record_Unsafe.unsafeGet(reflectSymbol(l))(r);
+            };
+        };
+    };
+};
+var get1 = /* #__PURE__ */ get(fooIsSymbol)();
+var get2 = /* #__PURE__ */ get({
+    reflectSymbol: function () {
+        return "bar";
+    }
+})();
+var foo = /* #__PURE__ */ (function () {
+    return Type_Proxy["Proxy"].value;
+})();
+var h = function (n) {
+    return set1(foo)(n)({
+        foo: 0
+    });
+};
+var f = function (n) {
+    return get1(foo)({
+        foo: n
+    });
+};
+var bar = /* #__PURE__ */ (function () {
+    return Type_Proxy["Proxy"].value;
+})();
+var g = function (n) {
+    return get2(bar)({
+        foo: 0,
+        bar: n
+    });
+};
+export {
+    get,
+    set,
+    foo,
+    bar,
+    f,
+    g,
+    h
+};
diff --git a/tests/purs/optimize/Symbols.purs b/tests/purs/optimize/Symbols.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/optimize/Symbols.purs
@@ -0,0 +1,40 @@
+module Main where
+
+import Data.Symbol (class IsSymbol, reflectSymbol)
+import Prim.Row (class Cons)
+import Record.Unsafe (unsafeGet, unsafeSet)
+import Type.Proxy (Proxy(..))
+
+get
+  :: forall r r' l a
+   . IsSymbol l
+  => Cons l a r' r
+  => Proxy l
+  -> Record r
+  -> a
+get l r = unsafeGet (reflectSymbol l) r
+
+set
+  :: forall r r' l a
+   . IsSymbol l
+  => Cons l a r' r
+  => Proxy l
+  -> a
+  -> Record r
+  -> Record r
+set l a r = unsafeSet (reflectSymbol l) a r
+
+foo :: Proxy "foo"
+foo = Proxy
+
+bar :: Proxy "bar"
+bar = Proxy
+
+f :: Int -> Int
+f n = get foo { foo: n }
+
+g :: Int -> Int
+g n = get bar { foo: 0, bar: n }
+
+h :: Int -> { foo :: Int }
+h n = set foo n { foo: 0 }
diff --git a/tests/purs/passing/2172.js b/tests/purs/passing/2172.js
deleted file mode 100644
--- a/tests/purs/passing/2172.js
+++ /dev/null
@@ -1,5 +0,0 @@
-exports['a\''] = 0;
-exports["\x62\x27"] = 1;
-// NOTE: I wanted to use "\c'" here, but langauge-javascript doesn't support it...
-exports["c'"] = 2;
-exports["\u0064\u0027"] = 3;
diff --git a/tests/purs/passing/2172.purs b/tests/purs/passing/2172.purs
deleted file mode 100644
--- a/tests/purs/passing/2172.purs
+++ /dev/null
@@ -1,10 +0,0 @@
-module Main where
-
-import Effect.Console (log)
-
-foreign import a' :: Number
-foreign import b' :: Number
-foreign import c' :: Number
-foreign import d' :: Number
-
-main = log "Done"
diff --git a/tests/purs/passing/2941.purs b/tests/purs/passing/2941.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/passing/2941.purs
@@ -0,0 +1,18 @@
+module Main where
+
+import Effect.Console (log)
+
+test0 = ((((\_ -> 0) :: b -> Int) :: forall b. b -> Int) :: forall a. a -> Int)
+
+test1 :: {attr :: forall a. a -> Int}
+test1 = {attr: ((\_ -> 0) :: b -> Int) :: forall b. b -> Int}
+
+class Test2 where
+  f :: forall a. a -> a
+
+instance test2 :: Test2 where
+  f :: forall a. a -> a
+  f x = (x :: a)
+
+
+main = log "Done"
diff --git a/tests/purs/passing/3114.purs b/tests/purs/passing/3114.purs
--- a/tests/purs/passing/3114.purs
+++ b/tests/purs/passing/3114.purs
@@ -9,17 +9,18 @@
 import Effect.Console (log)
 import VendoredVariant
 import Data.Symbol
+import Type.Proxy (Proxy(..))
 
 type TestVariants =
-  ( foo :: FProxy Maybe
-  , bar :: FProxy (Tuple String)
+  ( foo :: Proxy Maybe
+  , bar :: Proxy (Tuple String)
   )
 
-_foo :: SProxy "foo"
-_foo = SProxy
+_foo :: Proxy "foo"
+_foo = Proxy
 
-_bar :: SProxy "bar"
-_bar = SProxy
+_bar :: Proxy "bar"
+_bar = Proxy
 
 main :: Effect Unit
 main = do
diff --git a/tests/purs/passing/3114/VendoredVariant.purs b/tests/purs/passing/3114/VendoredVariant.purs
--- a/tests/purs/passing/3114/VendoredVariant.purs
+++ b/tests/purs/passing/3114/VendoredVariant.purs
@@ -7,9 +7,9 @@
 import Unsafe.Coerce (unsafeCoerce)
 import Partial.Unsafe (unsafeCrashWith)
 import Data.Symbol
+import Type.Proxy (Proxy(..))
 
-data FProxy (k :: Type -> Type) = FProxy
-data VariantF (f :: # Type) a
+data VariantF (f :: Row Type) a
 
 newtype VariantFRep f a = VariantFRep
   { type :: String
@@ -23,9 +23,9 @@
 
 on
   :: forall sym f a b r1 r2
-  . Row.Cons sym (FProxy f) r1 r2
+  . Row.Cons sym (Proxy f) r1 r2
   => IsSymbol sym
-  => SProxy sym
+  => Proxy sym
   -> (f a -> b)
   -> (VariantF r1 a -> b)
   -> VariantF r2 a
diff --git a/tests/purs/passing/3238.purs b/tests/purs/passing/3238.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/passing/3238.purs
@@ -0,0 +1,14 @@
+module Main where
+
+import Effect.Console (log)
+
+class C a
+
+class FD a b | a -> b
+
+fn1 :: forall a b. FD a b => C b => a -> String
+fn1 _ = ""
+
+fn2 x = fn1 x
+
+main = log "Done"
diff --git a/tests/purs/passing/3329.purs b/tests/purs/passing/3329.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/passing/3329.purs
@@ -0,0 +1,34 @@
+module Main where
+
+import Prelude
+
+import Data.Either (Either(..))
+import Data.Maybe (Maybe(..))
+import Effect (Effect)
+import Effect.Console (log)
+
+class Inject f g where
+  inj :: f -> g
+  prj :: g -> Maybe f
+
+instance injectRefl :: Inject x x where
+  inj x = x
+  prj x = Just x
+else instance injectLeft :: Inject l (Either l r) where
+  inj x = Left x
+  prj (Left x) = Just x
+  prj _ = Nothing
+else instance injectRight :: Inject x r => Inject x (Either l r) where
+  inj x = Right (inj x)
+  prj (Right x) = prj x
+  prj _ = Nothing
+
+injL :: forall f g. f -> Either f g
+injL = inj
+
+main :: Effect Unit
+main = log "Done"
+  where
+  testInjLWithUnknowns a = case inj a of
+    Left a' -> a'
+    Right _ -> a
diff --git a/tests/purs/passing/3510.purs b/tests/purs/passing/3510.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/passing/3510.purs
@@ -0,0 +1,11 @@
+module Main where
+
+import Prelude (class Eq)
+import Effect.Console (log)
+
+data Maybe a = Just a | Nothing
+
+type T = Maybe Int
+derive instance eqT :: Eq T
+
+main = log "Done"
diff --git a/tests/purs/passing/3558-UpToDateDictsForHigherOrderFns.purs b/tests/purs/passing/3558-UpToDateDictsForHigherOrderFns.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/passing/3558-UpToDateDictsForHigherOrderFns.purs
@@ -0,0 +1,34 @@
+module Main where
+
+import Prelude (Unit)
+import Effect (Effect)
+import Effect.Console (log)
+import Record.Unsafe (unsafeGet)
+import Type.Data.Symbol (class IsSymbol, reflectSymbol)
+import Type.Row (class Cons) as Row
+import Type.Proxy (Proxy)
+
+newtype LBox row a = LBox (∀ r. (∀ lbl _1. Row.Cons lbl a _1 row ⇒ IsSymbol lbl ⇒ Proxy lbl → r) → r)
+
+unLBox ∷ ∀ row a r. (∀ lbl _1. Row.Cons lbl a _1 row ⇒ IsSymbol lbl ⇒ Proxy lbl → r) → LBox row a → r
+unLBox g (LBox f) = f g
+
+-- Example 1
+lboxIdentity ∷ ∀ row a. LBox row a → LBox row a
+lboxIdentity = unLBox \lbl → LBox \f → f lbl
+
+-- Example 2
+read ∷ ∀ row a. Record row → LBox row a → a
+read rec = unLBox \lbl → get lbl rec
+
+get
+  :: forall r r' l a
+   . IsSymbol l
+  => Row.Cons l a r' r
+  => Proxy l
+  -> Record r
+  -> a
+get l r = unsafeGet (reflectSymbol l) r
+
+main :: Effect Unit
+main = log "Done"
diff --git a/tests/purs/passing/3830.purs b/tests/purs/passing/3830.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/passing/3830.purs
@@ -0,0 +1,16 @@
+module Main where
+
+import Effect.Console (log)
+
+data Proxy :: forall k. k -> Type
+data Proxy a = Proxy
+
+data PProxy :: forall k1 (k2 :: k1). (Proxy k2 -> Type) -> Type
+data PProxy p = PProxy
+
+type PProxy' = PProxy
+
+test :: PProxy' Proxy
+test = PProxy
+
+main = log "Done"
diff --git a/tests/purs/passing/3941.purs b/tests/purs/passing/3941.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/passing/3941.purs
@@ -0,0 +1,25 @@
+module Main where
+
+import Effect.Console (log)
+import Unsafe.Coerce (unsafeCoerce)
+
+class TwoParams a b where
+  func :: a -> b
+
+instance equals :: TwoParams a a where
+  func a = a
+else
+instance any :: TwoParams a b where
+  func = unsafeCoerce
+
+testEquals :: forall a. a -> a
+testEquals = func -- with instance `equals`
+testAny :: Int -> Boolean
+testAny = func -- with instance `any`
+
+-- `a` and `m a` are never unifiable unless we have infinite types (and of course not)
+-- so expected that the instance `any` is chosen.
+thisShouldBeCompiled :: forall m a. a -> m a
+thisShouldBeCompiled = func
+
+main = log "Done"
diff --git a/tests/purs/passing/3957.purs b/tests/purs/passing/3957.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/passing/3957.purs
@@ -0,0 +1,39 @@
+module Main where
+
+import Prelude
+import Effect.Console (log)
+import Test.Assert (assertEqual)
+
+data Maybe a = Nothing | Just a
+
+f :: Int -> Int
+f x = case x of
+  0 -> 0
+  n | _ <- n -> f (x - 1)
+  _ -> f (x - 2)
+
+g :: Int -> Int
+g x = case x of
+  0 -> 0
+  n | n == n, true -> g (x - 1)
+  _ -> g (x - 2)
+
+weirdsum :: Int -> (Int -> Maybe Int) -> Int -> Int
+weirdsum accum f n = case n of
+  0 -> accum
+  x | Just y <- f x -> weirdsum (accum + y) f (n - 1)
+  _ -> weirdsum accum f (n - 1)
+
+tricksyinners :: Int -> Int -> Int
+tricksyinners accum x = case x of
+  0 -> accum + f' x * f' x
+  n -> tricksyinners (accum + 2) (n - 1)
+  where
+  f' y = y + 3
+
+main = do
+  assertEqual { expected: 0, actual: f 100000 }
+  assertEqual { expected: 0, actual: g 100000 }
+  assertEqual { expected: 20, actual: weirdsum 0 (\x -> if x < 5 then Just (2 * x) else Nothing) 100000 }
+  assertEqual { expected: 200009, actual: tricksyinners 0 100000 }
+  log "Done"
diff --git a/tests/purs/passing/4035.purs b/tests/purs/passing/4035.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/passing/4035.purs
@@ -0,0 +1,14 @@
+module Main where
+
+import Effect.Console (log)
+import Other (Id)
+
+type Alias = Int
+
+type Wrapped :: forall k. (Type -> k) -> Row k -> Row k
+type Wrapped f r = (key :: f Alias | r)
+
+type Unwrapped :: Row Type -> Row Type
+type Unwrapped r = Wrapped Id r
+
+main = log "Done"
diff --git a/tests/purs/passing/4035/Other.purs b/tests/purs/passing/4035/Other.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/passing/4035/Other.purs
@@ -0,0 +1,4 @@
+module Other where
+
+type Id :: forall k. k -> k
+type Id a = a
diff --git a/tests/purs/passing/4038.purs b/tests/purs/passing/4038.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/passing/4038.purs
@@ -0,0 +1,11 @@
+module Main where
+
+import Effect.Console (log)
+
+class A :: Constraint
+class A
+
+class B :: Constraint
+class A <= B
+
+main = log "Done"
diff --git a/tests/purs/passing/4101.purs b/tests/purs/passing/4101.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/passing/4101.purs
@@ -0,0 +1,20 @@
+module Main where
+
+import Effect.Console (log)
+
+import Lib
+
+class ClassA :: Type -> Type -> Constraint
+class ClassA t a
+
+class ClassB :: Type -> Type -> Constraint
+class ClassA t a <= ClassB t a
+
+data VariantF :: (Type -> Type) -> Type
+data VariantF fs
+data Expr
+
+instance a :: ClassA Expr (VariantF UNIT)
+instance b :: ClassB Expr (VariantF UNIT)
+
+main = log "Done"
diff --git a/tests/purs/passing/4101/Lib.purs b/tests/purs/passing/4101/Lib.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/passing/4101/Lib.purs
@@ -0,0 +1,9 @@
+module Lib where
+
+newtype Const :: forall k. Type -> k -> Type
+newtype Const a b = Const a
+
+data Unit = Unit
+
+type CONST = Const
+type UNIT = CONST Unit
diff --git a/tests/purs/passing/4105.purs b/tests/purs/passing/4105.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/passing/4105.purs
@@ -0,0 +1,12 @@
+module Main where
+
+import Prelude
+
+import Effect.Console (log)
+
+import Lib (Patch)
+
+newtype UpdateDto = UpdateDto Patch
+derive instance eqUpdateDto :: Eq UpdateDto
+
+main = log "Done"
diff --git a/tests/purs/passing/4105/Lib.purs b/tests/purs/passing/4105/Lib.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/passing/4105/Lib.purs
@@ -0,0 +1,5 @@
+module Lib where
+
+type Template col = { bio :: col String }
+type Identity a = a
+type Patch = Template Identity
diff --git a/tests/purs/passing/4174.purs b/tests/purs/passing/4174.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/passing/4174.purs
@@ -0,0 +1,16 @@
+module Main where
+
+import Data.Unit (Unit, unit)
+import Effect.Console (log)
+
+data Effect_Console = Effect_Console
+
+d :: Effect_Console
+d = Effect_Console
+
+newtype Data_Unit = Data_Unit Unit
+
+n :: Data_Unit
+n = Data_Unit unit
+
+main = log "Done"
diff --git a/tests/purs/passing/4179.js b/tests/purs/passing/4179.js
new file mode 100644
--- /dev/null
+++ b/tests/purs/passing/4179.js
@@ -0,0 +1,2 @@
+export const runtimeImportImpl = nothing => just => moduleName => body => () =>
+  import(`../${moduleName}/index.js`).then(() => body(nothing)(), err => body(just(err.toString()))());
diff --git a/tests/purs/passing/4179.purs b/tests/purs/passing/4179.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/passing/4179.purs
@@ -0,0 +1,73 @@
+module Main where
+
+import Prelude
+
+import Data.Maybe (Maybe(..))
+import Effect (Effect)
+import Effect.Console (log)
+import Test.Assert (assertEqual)
+import CustomAssert (assertThrows)
+
+force :: forall a b. (Unit -> b) -> b
+force f = f unit
+
+alpha = { backref: \_ -> bravo, x: 1 }
+bravo = force \_ -> alpha.x
+
+
+complicatedIdentity :: forall a. a -> a
+complicatedIdentity = h
+  where
+  -- This highly contrived function tests that escalating force is caught and
+  -- doesn't cause an infinite loop during compilation. ("Escalating force"
+  -- means that invoking `f` with two argument leads to `f` being invoked with
+  -- three arguments, and so on.)
+
+  -- If the escalating loop in `f` isn't taken into account, `h` might be
+  -- initialized before `g`, which will lead to a run-time error. The intended
+  -- behavior is to lazily initialize `g` and `h` together, and let the fact
+  -- that at run time `g` never actually dereferences `h` resolve the
+  -- initialization ordering.
+
+  f :: forall a. Int -> { tick :: a -> a, tock :: a -> a }
+  f n = { tick: if n <= 0 then identity else (f (n - 1)).tock identity, tock: \a -> g n a }
+
+  g :: forall a. Int -> a -> a
+  g = (\bit -> if bit then \n -> (f n).tick else const h) true
+
+  h :: forall a. a -> a
+  h = (\n -> (f n).tick) 10
+
+
+foreign import runtimeImportImpl :: forall a. Maybe String -> (String -> Maybe String) -> String -> (Maybe String -> Effect a) -> Effect a
+
+runtimeImport :: forall a. String -> (Maybe String -> Effect a) -> Effect a
+runtimeImport = runtimeImportImpl Nothing Just
+
+type ID = forall a. a -> a
+
+main = do
+  err <- assertThrows \_ ->
+    let
+      selfOwn = { a: 1, b: force \_ -> selfOwn.a }
+    in selfOwn
+  assertEqual { actual: err, expected: "ReferenceError: selfOwn was needed before it finished initializing (module Main, line 52)" }
+
+  err2 <- assertThrows \_ ->
+    let
+      f = (\_ -> { left: g identity, right: h identity }) unit
+
+      g :: ID -> ID
+      g x = (j x x x).right
+
+      h :: ID -> ID -> { left :: ID, right :: ID }
+      h x = j x x
+
+      j x y z = { left: x y z, right: f.left }
+    in f
+  assertEqual { actual: err2, expected: "ReferenceError: f was needed before it finished initializing (module Main, line 66)" }
+
+  assertEqual { actual: bravo, expected: 1 }
+  runtimeImport "InitializationError" \err3 -> do
+    assertEqual { actual: err3, expected: Just "ReferenceError: alphaArray was needed before it finished initializing (module InitializationError, line 0)" } -- TODO: fix the 0
+    log "Done"
diff --git a/tests/purs/passing/4179/CustomAssert.js b/tests/purs/passing/4179/CustomAssert.js
new file mode 100644
--- /dev/null
+++ b/tests/purs/passing/4179/CustomAssert.js
@@ -0,0 +1,12 @@
+export var assertThrowsImpl = function (arg) {
+  return function (f) {
+    return function () {
+      try {
+        f(arg);
+      } catch (e) {
+        return e.toString();
+      }
+      throw new Error("Assertion failed: An error should have been thrown");
+    };
+  };
+};
diff --git a/tests/purs/passing/4179/CustomAssert.purs b/tests/purs/passing/4179/CustomAssert.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/passing/4179/CustomAssert.purs
@@ -0,0 +1,10 @@
+module CustomAssert (assertThrows) where
+
+import Prelude
+
+import Effect (Effect)
+
+assertThrows :: forall a. (Unit -> a) -> Effect String
+assertThrows = assertThrowsImpl unit
+
+foreign import assertThrowsImpl :: forall a b. a -> (a -> b) -> Effect String
diff --git a/tests/purs/passing/4179/InitializationError.purs b/tests/purs/passing/4179/InitializationError.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/passing/4179/InitializationError.purs
@@ -0,0 +1,14 @@
+module InitializationError where
+
+class Alpha a where
+  alpha :: a Int -> a Int
+class Alpha a <= Bravo a
+class Bravo a <= Charlie a
+
+charlieAlpha :: forall a. Charlie a => a Int -> a Int
+charlieAlpha = alpha
+
+instance alphaArray :: Alpha Array where
+  alpha = charlieAlpha
+instance Bravo Array
+instance Charlie Array
diff --git a/tests/purs/passing/4180.purs b/tests/purs/passing/4180.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/passing/4180.purs
@@ -0,0 +1,14 @@
+module Main where
+
+import Effect.Console (log)
+
+class C (t :: Type)
+instance C (f a)
+
+f :: C (Array String) => Int
+f = 0
+
+v :: Int
+v = f
+
+main = log "Done"
diff --git a/tests/purs/passing/4194.purs b/tests/purs/passing/4194.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/passing/4194.purs
@@ -0,0 +1,14 @@
+module Main where
+
+import Effect.Console (log)
+
+data Identity a
+data Maybe a
+
+class ErrorSemigroup o m w | w -> o m, o m -> w
+
+instance ErrorSemigroup (Identity o) (Identity m) (Identity w)
+
+instance ErrorSemigroup o (Maybe m) (Maybe w)
+
+main = log "Done"
diff --git a/tests/purs/passing/4200.purs b/tests/purs/passing/4200.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/passing/4200.purs
@@ -0,0 +1,11 @@
+module Main where
+
+import Data.Newtype (class Newtype)
+import Effect.Console (log)
+import Lib (TAlias)
+
+newtype NewA a = NewA (TAlias Int)
+
+derive instance Newtype (NewA a) _
+
+main = log "Done"
diff --git a/tests/purs/passing/4200/Lib.purs b/tests/purs/passing/4200/Lib.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/passing/4200/Lib.purs
@@ -0,0 +1,7 @@
+module Lib where
+
+data T :: forall m. m -> Type
+data T msg = E
+
+type TAlias :: forall k. k -> Type
+type TAlias msg = T msg
diff --git a/tests/purs/passing/4229.purs b/tests/purs/passing/4229.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/passing/4229.purs
@@ -0,0 +1,13 @@
+module Main where
+
+import Effect.Console (log)
+import Partial.Unsafe (unsafePartial)
+
+data X = Prim
+
+f :: Partial => Int -> Int
+f 0 = 0
+
+f' = unsafePartial f
+
+main = log "Done"
diff --git a/tests/purs/passing/4310.purs b/tests/purs/passing/4310.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/passing/4310.purs
@@ -0,0 +1,8 @@
+module Main where
+
+import Effect.Console (log)
+import Lib
+
+main = do
+  let q = runTest (4 /\ 4)
+  log "Done"
diff --git a/tests/purs/passing/4310/Lib.purs b/tests/purs/passing/4310/Lib.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/passing/4310/Lib.purs
@@ -0,0 +1,17 @@
+module Lib where
+
+import Prelude
+
+data Tuple a b = Tuple a b
+
+infixr 6 Tuple as /\
+infixr 6 type Tuple as /\
+
+class Test a where
+  runTest :: a -> String
+
+instance Test Int where
+  runTest _ = "4"
+
+instance (Test a, Test b) => Test (a /\ b) where
+  runTest (a /\ b) = runTest a <> runTest b
diff --git a/tests/purs/passing/4357.purs b/tests/purs/passing/4357.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/passing/4357.purs
@@ -0,0 +1,29 @@
+module Main where
+
+import Prelude
+
+import Data.Foldable (fold)
+import Data.Maybe (Maybe(..))
+import Data.Monoid.Additive (Additive(..))
+import Effect.Console (log)
+
+data Foo = Foo Int | Bar Int
+
+g :: Foo -> Int
+g  =
+  case _ of
+    a
+        | Bar z <- a
+        -> z
+        | Foo z <- a
+        -> z
+        | otherwise
+        -> 42
+
+-- solved as a consequence of #4358
+test :: Maybe Int -> Int
+test = case _ of
+  m | Just fold <- m -> fold
+    | otherwise -> case fold [] of Additive x -> x
+
+main = log "Done"
diff --git a/tests/purs/passing/4376.purs b/tests/purs/passing/4376.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/passing/4376.purs
@@ -0,0 +1,29 @@
+module Main where
+
+import Prelude
+import Prim.Row (class Union)
+
+import Data.Maybe (Maybe(..))
+import Data.Monoid (mempty)
+import Effect.Console (log)
+import Type.Proxy (Proxy(..))
+
+-- Make sure that record updates get monomorphized.
+asNothing :: forall a. { a :: Maybe a } -> { a :: Maybe a }
+asNothing = _ { a = Nothing }
+
+union :: forall a b c. Union a b c => Record a -> Record b -> Proxy c
+union _ _ = Proxy
+
+-- This fails to solve if neither is monomorphized.
+shouldSolve :: forall a b. Proxy ( a :: Maybe a, b :: Maybe b )
+shouldSolve = { a: Nothing } `union` { b: Nothing }
+
+-- Removes ConstrainedTypeUnified
+v1 :: { a :: Maybe Unit }
+v1 = { a : Just unit }
+
+v2 :: { a :: Maybe Unit }
+v2 = let v3 = v1 { a = mempty } in v3
+
+main = log "Done"
diff --git a/tests/purs/passing/4431-2.purs b/tests/purs/passing/4431-2.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/passing/4431-2.purs
@@ -0,0 +1,12 @@
+module Main where
+
+import Prelude
+import Data.Const (Const)
+import Effect.Console (log)
+
+data TypedCache :: (Type -> Type) -> Type -> Type
+data TypedCache key a = Get (key a)
+
+derive instance Functor (TypedCache (Const k))
+
+main = log "Done"
diff --git a/tests/purs/passing/4431.purs b/tests/purs/passing/4431.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/passing/4431.purs
@@ -0,0 +1,11 @@
+module Main where
+
+import Prelude
+import Effect.Console (log)
+
+data TypedCache :: (Type -> Type) -> Type -> Type
+data TypedCache key a = Get (key a)
+
+derive instance Functor k => Functor (TypedCache k)
+
+main = log "Done"
diff --git a/tests/purs/passing/4483.purs b/tests/purs/passing/4483.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/passing/4483.purs
@@ -0,0 +1,12 @@
+module Main where
+
+import Effect.Console (log)
+import Prim.TypeError
+
+class Foo t where
+  foo :: t -> String
+  bar :: Int -> t
+
+instance fooInt :: Fail (Text "can't use this") => Foo Int
+
+main = log "Done"
diff --git a/tests/purs/passing/4500.purs b/tests/purs/passing/4500.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/passing/4500.purs
@@ -0,0 +1,15 @@
+module Main where
+
+import Prelude
+
+import Data.Reflectable (class Reflectable, reflectType)
+import Type.Proxy (Proxy(..))
+import Effect.Console (log)
+
+reflect :: forall @t v . Reflectable t v => v
+reflect = reflectType (Proxy @t)
+
+use :: String
+use = show { asdf: reflect @"asdf" }
+
+main = log "Done"
diff --git a/tests/purs/passing/AppendInReverse.purs b/tests/purs/passing/AppendInReverse.purs
--- a/tests/purs/passing/AppendInReverse.purs
+++ b/tests/purs/passing/AppendInReverse.purs
@@ -1,9 +1,9 @@
 module Main where
 
 import Prelude
-import Data.Symbol (SProxy(..))
 import Prim.Symbol (class Append)
 import Effect.Console (log)
+import Type.Proxy (Proxy(..))
 
 class Balanced (sym :: Symbol)
 
@@ -15,20 +15,20 @@
      , Balanced sym2
      ) => Balanced sym
 
-balanced :: forall sym. Balanced sym => SProxy sym -> String
+balanced :: forall sym. Balanced sym => Proxy sym -> String
 balanced _ = "ok"
 
 b0 :: String
-b0 = balanced (SProxy :: SProxy "")
+b0 = balanced (Proxy :: Proxy "")
 
 b1 :: String
-b1 = balanced (SProxy :: SProxy "()")
+b1 = balanced (Proxy :: Proxy "()")
 
 b2 :: String
-b2 = balanced (SProxy :: SProxy "(())")
+b2 = balanced (Proxy :: Proxy "(())")
 
 b3 :: String
-b3 = balanced (SProxy :: SProxy "((()))")
+b3 = balanced (Proxy :: Proxy "((()))")
 
 main = do
   log b0
diff --git a/tests/purs/passing/BigFunction.purs b/tests/purs/passing/BigFunction.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/passing/BigFunction.purs
@@ -0,0 +1,140 @@
+module Main where
+
+import Prelude
+import Data.Maybe
+import Data.Array(index)
+import Effect.Console(log)
+
+main = let x = f [] in log "Done"
+
+lookup :: forall a. Int -> Array a -> Maybe a
+lookup = flip index
+
+f :: Array (Array Int) -> Int
+f [] = 0
+f [m] | Just x <- lookup 1 m = x
+f [m, mm] | Just x <- lookup 1 m, Just xx <- lookup 11 mm = x + xx
+f [m, mm, mmm] | Just x <- lookup 1 m, Just xx <- lookup 11 mm, Just xxx <- lookup 111 mmm = x + xx + xxx
+f [m, mm, mmm, mmmm] | Just x <- lookup 1 m, Just xx <- lookup 11 mm, Just xxx <- lookup 111 mmm, Just xxxx <- lookup 1111 mmmm = x + xx + xxx + xxxx
+f [m, mm, mmm, mmmm, mmmmm] | Just x <- lookup 1 m, Just xx <- lookup 11 mm, Just xxx <- lookup 111 mmm, Just xxxx <- lookup 1111 mmmm, Just xxxxx <- lookup 11111 mmmmm = x + xx + xxx + xxxx + xxxxx
+f [m, mm, mmm, mmmm, mmmmm, mmmmmm] | Just x <- lookup 1 m, Just xx <- lookup 11 mm, Just xxx <- lookup 111 mmm, Just xxxx <- lookup 1111 mmmm, Just xxxxx <- lookup 11111 mmmmm, Just xxxxxx <- lookup 6 mmmmmm = x + xx + xxx + xxxx + xxxxx + xxxxxx
+f [m, mm, mmm, mmmm, mmmmm, mmmmmm, mmmmmmm] | Just x <- lookup 1 m, Just xx <- lookup 11 mm, Just xxx <- lookup 111 mmm, Just xxxx <- lookup 1111 mmmm, Just xxxxx <- lookup 11111 mmmmm, Just xxxxxx <- lookup 6 mmmmmm, Just xxxxxxx <- lookup 5 mmmmmmm = x + xx + xxx + xxxx + xxxxx + xxxxxx + xxxxxxx
+f [m, mm, mmm, mmmm, mmmmm, mmmmmm, mmmmmmm, mmmmmmmm] | Just x <- lookup 1 m, Just xx <- lookup 11 mm, Just xxx <- lookup 111 mmm, Just xxxx <- lookup 1111 mmmm, Just xxxxx <- lookup 11111 mmmmm, Just xxxxxx <- lookup 6 mmmmmm, Just xxxxxxx <- lookup 5 mmmmmmm, Just xxxxxxxx <- lookup 4 mmmmmmmm = x + xx + xxx + xxxx + xxxxx + xxxxxx + xxxxxxx + xxxxxxxx
+f [m, mm, mmm, mmmm, mmmmm, mmmmmm, mmmmmmm, mmmmmmmm, mmmmmmmmm] | Just x <- lookup 1 m, Just xx <- lookup 11 mm, Just xxx <- lookup 111 mmm, Just xxxx <- lookup 1111 mmmm, Just xxxxx <- lookup 11111 mmmmm, Just xxxxxx <- lookup 6 mmmmmm, Just xxxxxxx <- lookup 5 mmmmmmm, Just xxxxxxxx <- lookup 4 mmmmmmmm, Just xxxxxxxxx <- lookup 3 mmmmmmmmm = x + xx + xxx + xxxx + xxxxx + xxxxxx + xxxxxxx + xxxxxxxx + xxxxxxxxx
+f [m, mm, mmm, mmmm, mmmmm, mmmmmm, mmmmmmm, mmmmmmmm, mmmmmmmmm, mmmmmmmmmm] | Just x <- lookup 1 m, Just xx <- lookup 11 mm, Just xxx <- lookup 111 mmm, Just xxxx <- lookup 1111 mmmm, Just xxxxx <- lookup 11111 mmmmm, Just xxxxxx <- lookup 6 mmmmmm, Just xxxxxxx <- lookup 5 mmmmmmm, Just xxxxxxxx <- lookup 4 mmmmmmmm, Just xxxxxxxxx <- lookup 3 mmmmmmmmm, Just xxxxxxxxxx <- lookup 2 mmmmmmmmmm = x + xx + xxx + xxxx + xxxxx + xxxxxx + xxxxxxx + xxxxxxxx + xxxxxxxxx + xxxxxxxxxx
+f [m, mm, mmm, mmmm, mmmmm, mmmmmm, mmmmmmm, mmmmmmmm, mmmmmmmmm, mmmmmmmmmm, mmmmmmmmmmm] | Just x <- lookup 1 m, Just xx <- lookup 11 mm, Just xxx <- lookup 111 mmm, Just xxxx <- lookup 1111 mmmm, Just xxxxx <- lookup 11111 mmmmm, Just xxxxxx <- lookup 6 mmmmmm, Just xxxxxxx <- lookup 5 mmmmmmm, Just xxxxxxxx <- lookup 4 mmmmmmmm, Just xxxxxxxxx <- lookup 3 mmmmmmmmm, Just xxxxxxxxxx <- lookup 2 mmmmmmmmmm, Just xxxxxxxxxxx <- lookup 2 mmmmmmmmmmm = x + xx + xxx + xxxx + xxxxx + xxxxxx + xxxxxxx + xxxxxxxx + xxxxxxxxx + xxxxxxxxxx + xxxxxxxxxxx
+f [m, mm, mmm, mmmm, mmmmm, mmmmmm, mmmmmmm, mmmmmmmm, mmmmmmmmm, mmmmmmmmmm, mmmmmmmmmmm, mmmmmmmmmmmm] | Just x <- lookup 1 m, Just xx <- lookup 11 mm, Just xxx <- lookup 111 mmm, Just xxxx <- lookup 1111 mmmm, Just xxxxx <- lookup 11111 mmmmm, Just xxxxxx <- lookup 6 mmmmmm, Just xxxxxxx <- lookup 5 mmmmmmm, Just xxxxxxxx <- lookup 4 mmmmmmmm, Just xxxxxxxxx <- lookup 3 mmmmmmmmm, Just xxxxxxxxxx <- lookup 2 mmmmmmmmmm, Just xxxxxxxxxxx <- lookup 2 mmmmmmmmmmm, Just xxxxxxxxxxxx <- lookup 21 mmmmmmmmmmmm = x + xx + xxx + xxxx + xxxxx + xxxxxx + xxxxxxx + xxxxxxxx + xxxxxxxxx + xxxxxxxxxx + xxxxxxxxxxx + xxxxxxxxxxxx
+f [m, mm, mmm, mmmm, mmmmm, mmmmmm, mmmmmmm, mmmmmmmm, mmmmmmmmm, mmmmmmmmmm, mmmmmmmmmmm, mmmmmmmmmmmm, mmmmmmmmmmmmm] | Just x <- lookup 1 m, Just xx <- lookup 11 mm, Just xxx <- lookup 111 mmm, Just xxxx <- lookup 1111 mmmm, Just xxxxx <- lookup 11111 mmmmm, Just xxxxxx <- lookup 6 mmmmmm, Just xxxxxxx <- lookup 5 mmmmmmm, Just xxxxxxxx <- lookup 4 mmmmmmmm, Just xxxxxxxxx <- lookup 3 mmmmmmmmm, Just xxxxxxxxxx <- lookup 2 mmmmmmmmmm, Just xxxxxxxxxxx <- lookup 2 mmmmmmmmmmm, Just xxxxxxxxxxxx <- lookup 21 mmmmmmmmmmmm, Just xxxxxxxxxxxxx <- lookup 211 mmmmmmmmmmmmm = x + xx + xxx + xxxx + xxxxx + xxxxxx + xxxxxxx + xxxxxxxx + xxxxxxxxx + xxxxxxxxxx + xxxxxxxxxxx + xxxxxxxxxxxx + xxxxxxxxxxxxx
+f [m, mm, mmm, mmmm, mmmmm, mmmmmm, mmmmmmm, mmmmmmmm, mmmmmmmmm, mmmmmmmmmm, mmmmmmmmmmm, mmmmmmmmmmmm, mmmmmmmmmmmmm, mmmmmmmmmmmmmm] | Just x <- lookup 1 m, Just xx <- lookup 11 mm, Just xxx <- lookup 111 mmm, Just xxxx <- lookup 1111 mmmm, Just xxxxx <- lookup 11111 mmmmm, Just xxxxxx <- lookup 6 mmmmmm, Just xxxxxxx <- lookup 5 mmmmmmm, Just xxxxxxxx <- lookup 4 mmmmmmmm, Just xxxxxxxxx <- lookup 3 mmmmmmmmm, Just xxxxxxxxxx <- lookup 2 mmmmmmmmmm, Just xxxxxxxxxxx <- lookup 2 mmmmmmmmmmm, Just xxxxxxxxxxxx <- lookup 21 mmmmmmmmmmmm, Just xxxxxxxxxxxxx <- lookup 211 mmmmmmmmmmmmm, Just xxxxxxxxxxxxxx <- lookup 2111 mmmmmmmmmmmmmm = x + xx + xxx + xxxx + xxxxx + xxxxxx + xxxxxxx + xxxxxxxx + xxxxxxxxx + xxxxxxxxxx + xxxxxxxxxxx + xxxxxxxxxxxx + xxxxxxxxxxxxx + xxxxxxxxxxxxxx
+f [m, mm, mmm, mmmm, mmmmm, mmmmmm, mmmmmmm, mmmmmmmm, mmmmmmmmm, mmmmmmmmmm, mmmmmmmmmmm, mmmmmmmmmmmm, mmmmmmmmmmmmm, mmmmmmmmmmmmmm, mmmmmmmmmmmmmmm] | Just x <- lookup 1 m, Just xx <- lookup 11 mm, Just xxx <- lookup 111 mmm, Just xxxx <- lookup 1111 mmmm, Just xxxxx <- lookup 11111 mmmmm, Just xxxxxx <- lookup 6 mmmmmm, Just xxxxxxx <- lookup 5 mmmmmmm, Just xxxxxxxx <- lookup 4 mmmmmmmm, Just xxxxxxxxx <- lookup 3 mmmmmmmmm, Just xxxxxxxxxx <- lookup 2 mmmmmmmmmm, Just xxxxxxxxxxx <- lookup 2 mmmmmmmmmmm, Just xxxxxxxxxxxx <- lookup 21 mmmmmmmmmmmm, Just xxxxxxxxxxxxx <- lookup 211 mmmmmmmmmmmmm, Just xxxxxxxxxxxxxx <- lookup 2111 mmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxx <- lookup 21111 mmmmmmmmmmmmmmm = x + xx + xxx + xxxx + xxxxx + xxxxxx + xxxxxxx + xxxxxxxx + xxxxxxxxx + xxxxxxxxxx + xxxxxxxxxxx + xxxxxxxxxxxx + xxxxxxxxxxxxx + xxxxxxxxxxxxxx + xxxxxxxxxxxxxxx
+f [m, mm, mmm, mmmm, mmmmm, mmmmmm, mmmmmmm, mmmmmmmm, mmmmmmmmm, mmmmmmmmmm, mmmmmmmmmmm, mmmmmmmmmmmm, mmmmmmmmmmmmm, mmmmmmmmmmmmmm, mmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmm] | Just x <- lookup 1 m, Just xx <- lookup 11 mm, Just xxx <- lookup 111 mmm, Just xxxx <- lookup 1111 mmmm, Just xxxxx <- lookup 11111 mmmmm, Just xxxxxx <- lookup 6 mmmmmm, Just xxxxxxx <- lookup 5 mmmmmmm, Just xxxxxxxx <- lookup 4 mmmmmmmm, Just xxxxxxxxx <- lookup 3 mmmmmmmmm, Just xxxxxxxxxx <- lookup 2 mmmmmmmmmm, Just xxxxxxxxxxx <- lookup 2 mmmmmmmmmmm, Just xxxxxxxxxxxx <- lookup 21 mmmmmmmmmmmm, Just xxxxxxxxxxxxx <- lookup 211 mmmmmmmmmmmmm, Just xxxxxxxxxxxxxx <- lookup 2111 mmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxx <- lookup 21111 mmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxx <- lookup 211111 mmmmmmmmmmmmmmmm = x + xx + xxx + xxxx + xxxxx + xxxxxx + xxxxxxx + xxxxxxxx + xxxxxxxxx + xxxxxxxxxx + xxxxxxxxxxx + xxxxxxxxxxxx + xxxxxxxxxxxxx + xxxxxxxxxxxxxx + xxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxx
+f [m, mm, mmm, mmmm, mmmmm, mmmmmm, mmmmmmm, mmmmmmmm, mmmmmmmmm, mmmmmmmmmm, mmmmmmmmmmm, mmmmmmmmmmmm, mmmmmmmmmmmmm, mmmmmmmmmmmmmm, mmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmm] | Just x <- lookup 1 m, Just xx <- lookup 11 mm, Just xxx <- lookup 111 mmm, Just xxxx <- lookup 1111 mmmm, Just xxxxx <- lookup 11111 mmmmm, Just xxxxxx <- lookup 6 mmmmmm, Just xxxxxxx <- lookup 5 mmmmmmm, Just xxxxxxxx <- lookup 4 mmmmmmmm, Just xxxxxxxxx <- lookup 3 mmmmmmmmm, Just xxxxxxxxxx <- lookup 2 mmmmmmmmmm, Just xxxxxxxxxxx <- lookup 2 mmmmmmmmmmm, Just xxxxxxxxxxxx <- lookup 21 mmmmmmmmmmmm, Just xxxxxxxxxxxxx <- lookup 211 mmmmmmmmmmmmm, Just xxxxxxxxxxxxxx <- lookup 2111 mmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxx <- lookup 21111 mmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxx <- lookup 211111 mmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxx <- lookup 26 mmmmmmmmmmmmmmmmm = x + xx + xxx + xxxx + xxxxx + xxxxxx + xxxxxxx + xxxxxxxx + xxxxxxxxx + xxxxxxxxxx + xxxxxxxxxxx + xxxxxxxxxxxx + xxxxxxxxxxxxx + xxxxxxxxxxxxxx + xxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxx
+f [m, mm, mmm, mmmm, mmmmm, mmmmmm, mmmmmmm, mmmmmmmm, mmmmmmmmm, mmmmmmmmmm, mmmmmmmmmmm, mmmmmmmmmmmm, mmmmmmmmmmmmm, mmmmmmmmmmmmmm, mmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmm] | Just x <- lookup 1 m, Just xx <- lookup 11 mm, Just xxx <- lookup 111 mmm, Just xxxx <- lookup 1111 mmmm, Just xxxxx <- lookup 11111 mmmmm, Just xxxxxx <- lookup 6 mmmmmm, Just xxxxxxx <- lookup 5 mmmmmmm, Just xxxxxxxx <- lookup 4 mmmmmmmm, Just xxxxxxxxx <- lookup 3 mmmmmmmmm, Just xxxxxxxxxx <- lookup 2 mmmmmmmmmm, Just xxxxxxxxxxx <- lookup 2 mmmmmmmmmmm, Just xxxxxxxxxxxx <- lookup 21 mmmmmmmmmmmm, Just xxxxxxxxxxxxx <- lookup 211 mmmmmmmmmmmmm, Just xxxxxxxxxxxxxx <- lookup 2111 mmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxx <- lookup 21111 mmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxx <- lookup 211111 mmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxx <- lookup 26 mmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxx <- lookup 25 mmmmmmmmmmmmmmmmmm = x + xx + xxx + xxxx + xxxxx + xxxxxx + xxxxxxx + xxxxxxxx + xxxxxxxxx + xxxxxxxxxx + xxxxxxxxxxx + xxxxxxxxxxxx + xxxxxxxxxxxxx + xxxxxxxxxxxxxx + xxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxx
+f [m, mm, mmm, mmmm, mmmmm, mmmmmm, mmmmmmm, mmmmmmmm, mmmmmmmmm, mmmmmmmmmm, mmmmmmmmmmm, mmmmmmmmmmmm, mmmmmmmmmmmmm, mmmmmmmmmmmmmm, mmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmm] | Just x <- lookup 1 m, Just xx <- lookup 11 mm, Just xxx <- lookup 111 mmm, Just xxxx <- lookup 1111 mmmm, Just xxxxx <- lookup 11111 mmmmm, Just xxxxxx <- lookup 6 mmmmmm, Just xxxxxxx <- lookup 5 mmmmmmm, Just xxxxxxxx <- lookup 4 mmmmmmmm, Just xxxxxxxxx <- lookup 3 mmmmmmmmm, Just xxxxxxxxxx <- lookup 2 mmmmmmmmmm, Just xxxxxxxxxxx <- lookup 2 mmmmmmmmmmm, Just xxxxxxxxxxxx <- lookup 21 mmmmmmmmmmmm, Just xxxxxxxxxxxxx <- lookup 211 mmmmmmmmmmmmm, Just xxxxxxxxxxxxxx <- lookup 2111 mmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxx <- lookup 21111 mmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxx <- lookup 211111 mmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxx <- lookup 26 mmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxx <- lookup 25 mmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxx <- lookup 24 mmmmmmmmmmmmmmmmmmm = x + xx + xxx + xxxx + xxxxx + xxxxxx + xxxxxxx + xxxxxxxx + xxxxxxxxx + xxxxxxxxxx + xxxxxxxxxxx + xxxxxxxxxxxx + xxxxxxxxxxxxx + xxxxxxxxxxxxxx + xxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxx
+f [m, mm, mmm, mmmm, mmmmm, mmmmmm, mmmmmmm, mmmmmmmm, mmmmmmmmm, mmmmmmmmmm, mmmmmmmmmmm, mmmmmmmmmmmm, mmmmmmmmmmmmm, mmmmmmmmmmmmmm, mmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmm] | Just x <- lookup 1 m, Just xx <- lookup 11 mm, Just xxx <- lookup 111 mmm, Just xxxx <- lookup 1111 mmmm, Just xxxxx <- lookup 11111 mmmmm, Just xxxxxx <- lookup 6 mmmmmm, Just xxxxxxx <- lookup 5 mmmmmmm, Just xxxxxxxx <- lookup 4 mmmmmmmm, Just xxxxxxxxx <- lookup 3 mmmmmmmmm, Just xxxxxxxxxx <- lookup 2 mmmmmmmmmm, Just xxxxxxxxxxx <- lookup 2 mmmmmmmmmmm, Just xxxxxxxxxxxx <- lookup 21 mmmmmmmmmmmm, Just xxxxxxxxxxxxx <- lookup 211 mmmmmmmmmmmmm, Just xxxxxxxxxxxxxx <- lookup 2111 mmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxx <- lookup 21111 mmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxx <- lookup 211111 mmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxx <- lookup 26 mmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxx <- lookup 25 mmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxx <- lookup 24 mmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxx <- lookup 23 mmmmmmmmmmmmmmmmmmmm = x + xx + xxx + xxxx + xxxxx + xxxxxx + xxxxxxx + xxxxxxxx + xxxxxxxxx + xxxxxxxxxx + xxxxxxxxxxx + xxxxxxxxxxxx + xxxxxxxxxxxxx + xxxxxxxxxxxxxx + xxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxx
+f [m, mm, mmm, mmmm, mmmmm, mmmmmm, mmmmmmm, mmmmmmmm, mmmmmmmmm, mmmmmmmmmm, mmmmmmmmmmm, mmmmmmmmmmmm, mmmmmmmmmmmmm, mmmmmmmmmmmmmm, mmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmm] | Just x <- lookup 1 m, Just xx <- lookup 11 mm, Just xxx <- lookup 111 mmm, Just xxxx <- lookup 1111 mmmm, Just xxxxx <- lookup 11111 mmmmm, Just xxxxxx <- lookup 6 mmmmmm, Just xxxxxxx <- lookup 5 mmmmmmm, Just xxxxxxxx <- lookup 4 mmmmmmmm, Just xxxxxxxxx <- lookup 3 mmmmmmmmm, Just xxxxxxxxxx <- lookup 2 mmmmmmmmmm, Just xxxxxxxxxxx <- lookup 2 mmmmmmmmmmm, Just xxxxxxxxxxxx <- lookup 21 mmmmmmmmmmmm, Just xxxxxxxxxxxxx <- lookup 211 mmmmmmmmmmmmm, Just xxxxxxxxxxxxxx <- lookup 2111 mmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxx <- lookup 21111 mmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxx <- lookup 211111 mmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxx <- lookup 26 mmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxx <- lookup 25 mmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxx <- lookup 24 mmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxx <- lookup 23 mmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmm = x + xx + xxx + xxxx + xxxxx + xxxxxx + xxxxxxx + xxxxxxxx + xxxxxxxxx + xxxxxxxxxx + xxxxxxxxxxx + xxxxxxxxxxxx + xxxxxxxxxxxxx + xxxxxxxxxxxxxx + xxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxx
+f [m, mm, mmm, mmmm, mmmmm, mmmmmm, mmmmmmm, mmmmmmmm, mmmmmmmmm, mmmmmmmmmm, mmmmmmmmmmm, mmmmmmmmmmmm, mmmmmmmmmmmmm, mmmmmmmmmmmmmm, mmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmm] | Just x <- lookup 1 m, Just xx <- lookup 11 mm, Just xxx <- lookup 111 mmm, Just xxxx <- lookup 1111 mmmm, Just xxxxx <- lookup 11111 mmmmm, Just xxxxxx <- lookup 6 mmmmmm, Just xxxxxxx <- lookup 5 mmmmmmm, Just xxxxxxxx <- lookup 4 mmmmmmmm, Just xxxxxxxxx <- lookup 3 mmmmmmmmm, Just xxxxxxxxxx <- lookup 2 mmmmmmmmmm, Just xxxxxxxxxxx <- lookup 2 mmmmmmmmmmm, Just xxxxxxxxxxxx <- lookup 21 mmmmmmmmmmmm, Just xxxxxxxxxxxxx <- lookup 211 mmmmmmmmmmmmm, Just xxxxxxxxxxxxxx <- lookup 2111 mmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxx <- lookup 21111 mmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxx <- lookup 211111 mmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxx <- lookup 26 mmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxx <- lookup 25 mmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxx <- lookup 24 mmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxx <- lookup 23 mmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmmm = x + xx + xxx + xxxx + xxxxx + xxxxxx + xxxxxxx + xxxxxxxx + xxxxxxxxx + xxxxxxxxxx + xxxxxxxxxxx + xxxxxxxxxxxx + xxxxxxxxxxxxx + xxxxxxxxxxxxxx + xxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxx
+f [m, mm, mmm, mmmm, mmmmm, mmmmmm, mmmmmmm, mmmmmmmm, mmmmmmmmm, mmmmmmmmmm, mmmmmmmmmmm, mmmmmmmmmmmm, mmmmmmmmmmmmm, mmmmmmmmmmmmmm, mmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmm] | Just x <- lookup 1 m, Just xx <- lookup 11 mm, Just xxx <- lookup 111 mmm, Just xxxx <- lookup 1111 mmmm, Just xxxxx <- lookup 11111 mmmmm, Just xxxxxx <- lookup 6 mmmmmm, Just xxxxxxx <- lookup 5 mmmmmmm, Just xxxxxxxx <- lookup 4 mmmmmmmm, Just xxxxxxxxx <- lookup 3 mmmmmmmmm, Just xxxxxxxxxx <- lookup 2 mmmmmmmmmm, Just xxxxxxxxxxx <- lookup 2 mmmmmmmmmmm, Just xxxxxxxxxxxx <- lookup 21 mmmmmmmmmmmm, Just xxxxxxxxxxxxx <- lookup 211 mmmmmmmmmmmmm, Just xxxxxxxxxxxxxx <- lookup 2111 mmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxx <- lookup 21111 mmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxx <- lookup 211111 mmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxx <- lookup 26 mmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxx <- lookup 25 mmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxx <- lookup 24 mmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxx <- lookup 23 mmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxx <- lookup 221 mmmmmmmmmmmmmmmmmmmmmmm = x + xx + xxx + xxxx + xxxxx + xxxxxx + xxxxxxx + xxxxxxxx + xxxxxxxxx + xxxxxxxxxx + xxxxxxxxxxx + xxxxxxxxxxxx + xxxxxxxxxxxxx + xxxxxxxxxxxxxx + xxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxx
+f [m, mm, mmm, mmmm, mmmmm, mmmmmm, mmmmmmm, mmmmmmmm, mmmmmmmmm, mmmmmmmmmm, mmmmmmmmmmm, mmmmmmmmmmmm, mmmmmmmmmmmmm, mmmmmmmmmmmmmm, mmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmm] | Just x <- lookup 1 m, Just xx <- lookup 11 mm, Just xxx <- lookup 111 mmm, Just xxxx <- lookup 1111 mmmm, Just xxxxx <- lookup 11111 mmmmm, Just xxxxxx <- lookup 6 mmmmmm, Just xxxxxxx <- lookup 5 mmmmmmm, Just xxxxxxxx <- lookup 4 mmmmmmmm, Just xxxxxxxxx <- lookup 3 mmmmmmmmm, Just xxxxxxxxxx <- lookup 2 mmmmmmmmmm, Just xxxxxxxxxxx <- lookup 2 mmmmmmmmmmm, Just xxxxxxxxxxxx <- lookup 21 mmmmmmmmmmmm, Just xxxxxxxxxxxxx <- lookup 211 mmmmmmmmmmmmm, Just xxxxxxxxxxxxxx <- lookup 2111 mmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxx <- lookup 21111 mmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxx <- lookup 211111 mmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxx <- lookup 26 mmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxx <- lookup 25 mmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxx <- lookup 24 mmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxx <- lookup 23 mmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxx <- lookup 221 mmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211 mmmmmmmmmmmmmmmmmmmmmmmm = x + xx + xxx + xxxx + xxxxx + xxxxxx + xxxxxxx + xxxxxxxx + xxxxxxxxx + xxxxxxxxxx + xxxxxxxxxxx + xxxxxxxxxxxx + xxxxxxxxxxxxx + xxxxxxxxxxxxxx + xxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxx
+f [m, mm, mmm, mmmm, mmmmm, mmmmmm, mmmmmmm, mmmmmmmm, mmmmmmmmm, mmmmmmmmmm, mmmmmmmmmmm, mmmmmmmmmmmm, mmmmmmmmmmmmm, mmmmmmmmmmmmmm, mmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmm] | Just x <- lookup 1 m, Just xx <- lookup 11 mm, Just xxx <- lookup 111 mmm, Just xxxx <- lookup 1111 mmmm, Just xxxxx <- lookup 11111 mmmmm, Just xxxxxx <- lookup 6 mmmmmm, Just xxxxxxx <- lookup 5 mmmmmmm, Just xxxxxxxx <- lookup 4 mmmmmmmm, Just xxxxxxxxx <- lookup 3 mmmmmmmmm, Just xxxxxxxxxx <- lookup 2 mmmmmmmmmm, Just xxxxxxxxxxx <- lookup 2 mmmmmmmmmmm, Just xxxxxxxxxxxx <- lookup 21 mmmmmmmmmmmm, Just xxxxxxxxxxxxx <- lookup 211 mmmmmmmmmmmmm, Just xxxxxxxxxxxxxx <- lookup 2111 mmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxx <- lookup 21111 mmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxx <- lookup 211111 mmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxx <- lookup 26 mmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxx <- lookup 25 mmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxx <- lookup 24 mmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxx <- lookup 23 mmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxx <- lookup 221 mmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211 mmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22111 mmmmmmmmmmmmmmmmmmmmmmmmm = x + xx + xxx + xxxx + xxxxx + xxxxxx + xxxxxxx + xxxxxxxx + xxxxxxxxx + xxxxxxxxxx + xxxxxxxxxxx + xxxxxxxxxxxx + xxxxxxxxxxxxx + xxxxxxxxxxxxxx + xxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxx
+f [m, mm, mmm, mmmm, mmmmm, mmmmmm, mmmmmmm, mmmmmmmm, mmmmmmmmm, mmmmmmmmmm, mmmmmmmmmmm, mmmmmmmmmmmm, mmmmmmmmmmmmm, mmmmmmmmmmmmmm, mmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmm] | Just x <- lookup 1 m, Just xx <- lookup 11 mm, Just xxx <- lookup 111 mmm, Just xxxx <- lookup 1111 mmmm, Just xxxxx <- lookup 11111 mmmmm, Just xxxxxx <- lookup 6 mmmmmm, Just xxxxxxx <- lookup 5 mmmmmmm, Just xxxxxxxx <- lookup 4 mmmmmmmm, Just xxxxxxxxx <- lookup 3 mmmmmmmmm, Just xxxxxxxxxx <- lookup 2 mmmmmmmmmm, Just xxxxxxxxxxx <- lookup 2 mmmmmmmmmmm, Just xxxxxxxxxxxx <- lookup 21 mmmmmmmmmmmm, Just xxxxxxxxxxxxx <- lookup 211 mmmmmmmmmmmmm, Just xxxxxxxxxxxxxx <- lookup 2111 mmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxx <- lookup 21111 mmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxx <- lookup 211111 mmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxx <- lookup 26 mmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxx <- lookup 25 mmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxx <- lookup 24 mmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxx <- lookup 23 mmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxx <- lookup 221 mmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211 mmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22111 mmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 221111 mmmmmmmmmmmmmmmmmmmmmmmmmm = x + xx + xxx + xxxx + xxxxx + xxxxxx + xxxxxxx + xxxxxxxx + xxxxxxxxx + xxxxxxxxxx + xxxxxxxxxxx + xxxxxxxxxxxx + xxxxxxxxxxxxx + xxxxxxxxxxxxxx + xxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxx
+f [m, mm, mmm, mmmm, mmmmm, mmmmmm, mmmmmmm, mmmmmmmm, mmmmmmmmm, mmmmmmmmmm, mmmmmmmmmmm, mmmmmmmmmmmm, mmmmmmmmmmmmm, mmmmmmmmmmmmmm, mmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmm] | Just x <- lookup 1 m, Just xx <- lookup 11 mm, Just xxx <- lookup 111 mmm, Just xxxx <- lookup 1111 mmmm, Just xxxxx <- lookup 11111 mmmmm, Just xxxxxx <- lookup 6 mmmmmm, Just xxxxxxx <- lookup 5 mmmmmmm, Just xxxxxxxx <- lookup 4 mmmmmmmm, Just xxxxxxxxx <- lookup 3 mmmmmmmmm, Just xxxxxxxxxx <- lookup 2 mmmmmmmmmm, Just xxxxxxxxxxx <- lookup 2 mmmmmmmmmmm, Just xxxxxxxxxxxx <- lookup 21 mmmmmmmmmmmm, Just xxxxxxxxxxxxx <- lookup 211 mmmmmmmmmmmmm, Just xxxxxxxxxxxxxx <- lookup 2111 mmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxx <- lookup 21111 mmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxx <- lookup 211111 mmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxx <- lookup 26 mmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxx <- lookup 25 mmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxx <- lookup 24 mmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxx <- lookup 23 mmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxx <- lookup 221 mmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211 mmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22111 mmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 221111 mmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211111 mmmmmmmmmmmmmmmmmmmmmmmmmmm = x + xx + xxx + xxxx + xxxxx + xxxxxx + xxxxxxx + xxxxxxxx + xxxxxxxxx + xxxxxxxxxx + xxxxxxxxxxx + xxxxxxxxxxxx + xxxxxxxxxxxxx + xxxxxxxxxxxxxx + xxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxx
+f [m, mm, mmm, mmmm, mmmmm, mmmmmm, mmmmmmm, mmmmmmmm, mmmmmmmmm, mmmmmmmmmm, mmmmmmmmmmm, mmmmmmmmmmmm, mmmmmmmmmmmmm, mmmmmmmmmmmmmm, mmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmm] | Just x <- lookup 1 m, Just xx <- lookup 11 mm, Just xxx <- lookup 111 mmm, Just xxxx <- lookup 1111 mmmm, Just xxxxx <- lookup 11111 mmmmm, Just xxxxxx <- lookup 6 mmmmmm, Just xxxxxxx <- lookup 5 mmmmmmm, Just xxxxxxxx <- lookup 4 mmmmmmmm, Just xxxxxxxxx <- lookup 3 mmmmmmmmm, Just xxxxxxxxxx <- lookup 2 mmmmmmmmmm, Just xxxxxxxxxxx <- lookup 2 mmmmmmmmmmm, Just xxxxxxxxxxxx <- lookup 21 mmmmmmmmmmmm, Just xxxxxxxxxxxxx <- lookup 211 mmmmmmmmmmmmm, Just xxxxxxxxxxxxxx <- lookup 2111 mmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxx <- lookup 21111 mmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxx <- lookup 211111 mmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxx <- lookup 26 mmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxx <- lookup 25 mmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxx <- lookup 24 mmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxx <- lookup 23 mmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxx <- lookup 221 mmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211 mmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22111 mmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 221111 mmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211111 mmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 226 mmmmmmmmmmmmmmmmmmmmmmmmmmmm = x + xx + xxx + xxxx + xxxxx + xxxxxx + xxxxxxx + xxxxxxxx + xxxxxxxxx + xxxxxxxxxx + xxxxxxxxxxx + xxxxxxxxxxxx + xxxxxxxxxxxxx + xxxxxxxxxxxxxx + xxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxx
+f [m, mm, mmm, mmmm, mmmmm, mmmmmm, mmmmmmm, mmmmmmmm, mmmmmmmmm, mmmmmmmmmm, mmmmmmmmmmm, mmmmmmmmmmmm, mmmmmmmmmmmmm, mmmmmmmmmmmmmm, mmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmm] | Just x <- lookup 1 m, Just xx <- lookup 11 mm, Just xxx <- lookup 111 mmm, Just xxxx <- lookup 1111 mmmm, Just xxxxx <- lookup 11111 mmmmm, Just xxxxxx <- lookup 6 mmmmmm, Just xxxxxxx <- lookup 5 mmmmmmm, Just xxxxxxxx <- lookup 4 mmmmmmmm, Just xxxxxxxxx <- lookup 3 mmmmmmmmm, Just xxxxxxxxxx <- lookup 2 mmmmmmmmmm, Just xxxxxxxxxxx <- lookup 2 mmmmmmmmmmm, Just xxxxxxxxxxxx <- lookup 21 mmmmmmmmmmmm, Just xxxxxxxxxxxxx <- lookup 211 mmmmmmmmmmmmm, Just xxxxxxxxxxxxxx <- lookup 2111 mmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxx <- lookup 21111 mmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxx <- lookup 211111 mmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxx <- lookup 26 mmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxx <- lookup 25 mmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxx <- lookup 24 mmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxx <- lookup 23 mmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxx <- lookup 221 mmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211 mmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22111 mmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 221111 mmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211111 mmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 226 mmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 225 mmmmmmmmmmmmmmmmmmmmmmmmmmmmm = x + xx + xxx + xxxx + xxxxx + xxxxxx + xxxxxxx + xxxxxxxx + xxxxxxxxx + xxxxxxxxxx + xxxxxxxxxxx + xxxxxxxxxxxx + xxxxxxxxxxxxx + xxxxxxxxxxxxxx + xxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+f [m, mm, mmm, mmmm, mmmmm, mmmmmm, mmmmmmm, mmmmmmmm, mmmmmmmmm, mmmmmmmmmm, mmmmmmmmmmm, mmmmmmmmmmmm, mmmmmmmmmmmmm, mmmmmmmmmmmmmm, mmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm] | Just x <- lookup 1 m, Just xx <- lookup 11 mm, Just xxx <- lookup 111 mmm, Just xxxx <- lookup 1111 mmmm, Just xxxxx <- lookup 11111 mmmmm, Just xxxxxx <- lookup 6 mmmmmm, Just xxxxxxx <- lookup 5 mmmmmmm, Just xxxxxxxx <- lookup 4 mmmmmmmm, Just xxxxxxxxx <- lookup 3 mmmmmmmmm, Just xxxxxxxxxx <- lookup 2 mmmmmmmmmm, Just xxxxxxxxxxx <- lookup 2 mmmmmmmmmmm, Just xxxxxxxxxxxx <- lookup 21 mmmmmmmmmmmm, Just xxxxxxxxxxxxx <- lookup 211 mmmmmmmmmmmmm, Just xxxxxxxxxxxxxx <- lookup 2111 mmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxx <- lookup 21111 mmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxx <- lookup 211111 mmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxx <- lookup 26 mmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxx <- lookup 25 mmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxx <- lookup 24 mmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxx <- lookup 23 mmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxx <- lookup 221 mmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211 mmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22111 mmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 221111 mmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211111 mmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 226 mmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 225 mmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 224 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm = x + xx + xxx + xxxx + xxxxx + xxxxxx + xxxxxxx + xxxxxxxx + xxxxxxxxx + xxxxxxxxxx + xxxxxxxxxxx + xxxxxxxxxxxx + xxxxxxxxxxxxx + xxxxxxxxxxxxxx + xxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+f [m, mm, mmm, mmmm, mmmmm, mmmmmm, mmmmmmm, mmmmmmmm, mmmmmmmmm, mmmmmmmmmm, mmmmmmmmmmm, mmmmmmmmmmmm, mmmmmmmmmmmmm, mmmmmmmmmmmmmm, mmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm] | Just x <- lookup 1 m, Just xx <- lookup 11 mm, Just xxx <- lookup 111 mmm, Just xxxx <- lookup 1111 mmmm, Just xxxxx <- lookup 11111 mmmmm, Just xxxxxx <- lookup 6 mmmmmm, Just xxxxxxx <- lookup 5 mmmmmmm, Just xxxxxxxx <- lookup 4 mmmmmmmm, Just xxxxxxxxx <- lookup 3 mmmmmmmmm, Just xxxxxxxxxx <- lookup 2 mmmmmmmmmm, Just xxxxxxxxxxx <- lookup 2 mmmmmmmmmmm, Just xxxxxxxxxxxx <- lookup 21 mmmmmmmmmmmm, Just xxxxxxxxxxxxx <- lookup 211 mmmmmmmmmmmmm, Just xxxxxxxxxxxxxx <- lookup 2111 mmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxx <- lookup 21111 mmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxx <- lookup 211111 mmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxx <- lookup 26 mmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxx <- lookup 25 mmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxx <- lookup 24 mmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxx <- lookup 23 mmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxx <- lookup 221 mmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211 mmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22111 mmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 221111 mmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211111 mmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 226 mmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 225 mmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 224 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 223 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm = x + xx + xxx + xxxx + xxxxx + xxxxxx + xxxxxxx + xxxxxxxx + xxxxxxxxx + xxxxxxxxxx + xxxxxxxxxxx + xxxxxxxxxxxx + xxxxxxxxxxxxx + xxxxxxxxxxxxxx + xxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+f [m, mm, mmm, mmmm, mmmmm, mmmmmm, mmmmmmm, mmmmmmmm, mmmmmmmmm, mmmmmmmmmm, mmmmmmmmmmm, mmmmmmmmmmmm, mmmmmmmmmmmmm, mmmmmmmmmmmmmm, mmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm] | Just x <- lookup 1 m, Just xx <- lookup 11 mm, Just xxx <- lookup 111 mmm, Just xxxx <- lookup 1111 mmmm, Just xxxxx <- lookup 11111 mmmmm, Just xxxxxx <- lookup 6 mmmmmm, Just xxxxxxx <- lookup 5 mmmmmmm, Just xxxxxxxx <- lookup 4 mmmmmmmm, Just xxxxxxxxx <- lookup 3 mmmmmmmmm, Just xxxxxxxxxx <- lookup 2 mmmmmmmmmm, Just xxxxxxxxxxx <- lookup 2 mmmmmmmmmmm, Just xxxxxxxxxxxx <- lookup 21 mmmmmmmmmmmm, Just xxxxxxxxxxxxx <- lookup 211 mmmmmmmmmmmmm, Just xxxxxxxxxxxxxx <- lookup 2111 mmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxx <- lookup 21111 mmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxx <- lookup 211111 mmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxx <- lookup 26 mmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxx <- lookup 25 mmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxx <- lookup 24 mmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxx <- lookup 23 mmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxx <- lookup 221 mmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211 mmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22111 mmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 221111 mmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211111 mmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 226 mmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 225 mmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 224 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 223 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm = x + xx + xxx + xxxx + xxxxx + xxxxxx + xxxxxxx + xxxxxxxx + xxxxxxxxx + xxxxxxxxxx + xxxxxxxxxxx + xxxxxxxxxxxx + xxxxxxxxxxxxx + xxxxxxxxxxxxxx + xxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+f [m, mm, mmm, mmmm, mmmmm, mmmmmm, mmmmmmm, mmmmmmmm, mmmmmmmmm, mmmmmmmmmm, mmmmmmmmmmm, mmmmmmmmmmmm, mmmmmmmmmmmmm, mmmmmmmmmmmmmm, mmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm] | Just x <- lookup 1 m, Just xx <- lookup 11 mm, Just xxx <- lookup 111 mmm, Just xxxx <- lookup 1111 mmmm, Just xxxxx <- lookup 11111 mmmmm, Just xxxxxx <- lookup 6 mmmmmm, Just xxxxxxx <- lookup 5 mmmmmmm, Just xxxxxxxx <- lookup 4 mmmmmmmm, Just xxxxxxxxx <- lookup 3 mmmmmmmmm, Just xxxxxxxxxx <- lookup 2 mmmmmmmmmm, Just xxxxxxxxxxx <- lookup 2 mmmmmmmmmmm, Just xxxxxxxxxxxx <- lookup 21 mmmmmmmmmmmm, Just xxxxxxxxxxxxx <- lookup 211 mmmmmmmmmmmmm, Just xxxxxxxxxxxxxx <- lookup 2111 mmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxx <- lookup 21111 mmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxx <- lookup 211111 mmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxx <- lookup 26 mmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxx <- lookup 25 mmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxx <- lookup 24 mmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxx <- lookup 23 mmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxx <- lookup 221 mmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211 mmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22111 mmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 221111 mmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211111 mmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 226 mmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 225 mmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 224 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 223 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm = x + xx + xxx + xxxx + xxxxx + xxxxxx + xxxxxxx + xxxxxxxx + xxxxxxxxx + xxxxxxxxxx + xxxxxxxxxxx + xxxxxxxxxxxx + xxxxxxxxxxxxx + xxxxxxxxxxxxxx + xxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+f [m, mm, mmm, mmmm, mmmmm, mmmmmm, mmmmmmm, mmmmmmmm, mmmmmmmmm, mmmmmmmmmm, mmmmmmmmmmm, mmmmmmmmmmmm, mmmmmmmmmmmmm, mmmmmmmmmmmmmm, mmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm] | Just x <- lookup 1 m, Just xx <- lookup 11 mm, Just xxx <- lookup 111 mmm, Just xxxx <- lookup 1111 mmmm, Just xxxxx <- lookup 11111 mmmmm, Just xxxxxx <- lookup 6 mmmmmm, Just xxxxxxx <- lookup 5 mmmmmmm, Just xxxxxxxx <- lookup 4 mmmmmmmm, Just xxxxxxxxx <- lookup 3 mmmmmmmmm, Just xxxxxxxxxx <- lookup 2 mmmmmmmmmm, Just xxxxxxxxxxx <- lookup 2 mmmmmmmmmmm, Just xxxxxxxxxxxx <- lookup 21 mmmmmmmmmmmm, Just xxxxxxxxxxxxx <- lookup 211 mmmmmmmmmmmmm, Just xxxxxxxxxxxxxx <- lookup 2111 mmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxx <- lookup 21111 mmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxx <- lookup 211111 mmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxx <- lookup 26 mmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxx <- lookup 25 mmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxx <- lookup 24 mmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxx <- lookup 23 mmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxx <- lookup 221 mmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211 mmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22111 mmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 221111 mmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211111 mmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 226 mmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 225 mmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 224 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 223 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2221 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm = x + xx + xxx + xxxx + xxxxx + xxxxxx + xxxxxxx + xxxxxxxx + xxxxxxxxx + xxxxxxxxxx + xxxxxxxxxxx + xxxxxxxxxxxx + xxxxxxxxxxxxx + xxxxxxxxxxxxxx + xxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+f [m, mm, mmm, mmmm, mmmmm, mmmmmm, mmmmmmm, mmmmmmmm, mmmmmmmmm, mmmmmmmmmm, mmmmmmmmmmm, mmmmmmmmmmmm, mmmmmmmmmmmmm, mmmmmmmmmmmmmm, mmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm] | Just x <- lookup 1 m, Just xx <- lookup 11 mm, Just xxx <- lookup 111 mmm, Just xxxx <- lookup 1111 mmmm, Just xxxxx <- lookup 11111 mmmmm, Just xxxxxx <- lookup 6 mmmmmm, Just xxxxxxx <- lookup 5 mmmmmmm, Just xxxxxxxx <- lookup 4 mmmmmmmm, Just xxxxxxxxx <- lookup 3 mmmmmmmmm, Just xxxxxxxxxx <- lookup 2 mmmmmmmmmm, Just xxxxxxxxxxx <- lookup 2 mmmmmmmmmmm, Just xxxxxxxxxxxx <- lookup 21 mmmmmmmmmmmm, Just xxxxxxxxxxxxx <- lookup 211 mmmmmmmmmmmmm, Just xxxxxxxxxxxxxx <- lookup 2111 mmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxx <- lookup 21111 mmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxx <- lookup 211111 mmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxx <- lookup 26 mmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxx <- lookup 25 mmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxx <- lookup 24 mmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxx <- lookup 23 mmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxx <- lookup 221 mmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211 mmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22111 mmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 221111 mmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211111 mmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 226 mmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 225 mmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 224 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 223 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2221 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22211 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm = x + xx + xxx + xxxx + xxxxx + xxxxxx + xxxxxxx + xxxxxxxx + xxxxxxxxx + xxxxxxxxxx + xxxxxxxxxxx + xxxxxxxxxxxx + xxxxxxxxxxxxx + xxxxxxxxxxxxxx + xxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+f [m, mm, mmm, mmmm, mmmmm, mmmmmm, mmmmmmm, mmmmmmmm, mmmmmmmmm, mmmmmmmmmm, mmmmmmmmmmm, mmmmmmmmmmmm, mmmmmmmmmmmmm, mmmmmmmmmmmmmm, mmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm] | Just x <- lookup 1 m, Just xx <- lookup 11 mm, Just xxx <- lookup 111 mmm, Just xxxx <- lookup 1111 mmmm, Just xxxxx <- lookup 11111 mmmmm, Just xxxxxx <- lookup 6 mmmmmm, Just xxxxxxx <- lookup 5 mmmmmmm, Just xxxxxxxx <- lookup 4 mmmmmmmm, Just xxxxxxxxx <- lookup 3 mmmmmmmmm, Just xxxxxxxxxx <- lookup 2 mmmmmmmmmm, Just xxxxxxxxxxx <- lookup 2 mmmmmmmmmmm, Just xxxxxxxxxxxx <- lookup 21 mmmmmmmmmmmm, Just xxxxxxxxxxxxx <- lookup 211 mmmmmmmmmmmmm, Just xxxxxxxxxxxxxx <- lookup 2111 mmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxx <- lookup 21111 mmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxx <- lookup 211111 mmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxx <- lookup 26 mmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxx <- lookup 25 mmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxx <- lookup 24 mmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxx <- lookup 23 mmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxx <- lookup 221 mmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211 mmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22111 mmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 221111 mmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211111 mmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 226 mmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 225 mmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 224 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 223 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2221 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22211 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm = x + xx + xxx + xxxx + xxxxx + xxxxxx + xxxxxxx + xxxxxxxx + xxxxxxxxx + xxxxxxxxxx + xxxxxxxxxxx + xxxxxxxxxxxx + xxxxxxxxxxxxx + xxxxxxxxxxxxxx + xxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+f [m, mm, mmm, mmmm, mmmmm, mmmmmm, mmmmmmm, mmmmmmmm, mmmmmmmmm, mmmmmmmmmm, mmmmmmmmmmm, mmmmmmmmmmmm, mmmmmmmmmmmmm, mmmmmmmmmmmmmm, mmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm] | Just x <- lookup 1 m, Just xx <- lookup 11 mm, Just xxx <- lookup 111 mmm, Just xxxx <- lookup 1111 mmmm, Just xxxxx <- lookup 11111 mmmmm, Just xxxxxx <- lookup 6 mmmmmm, Just xxxxxxx <- lookup 5 mmmmmmm, Just xxxxxxxx <- lookup 4 mmmmmmmm, Just xxxxxxxxx <- lookup 3 mmmmmmmmm, Just xxxxxxxxxx <- lookup 2 mmmmmmmmmm, Just xxxxxxxxxxx <- lookup 2 mmmmmmmmmmm, Just xxxxxxxxxxxx <- lookup 21 mmmmmmmmmmmm, Just xxxxxxxxxxxxx <- lookup 211 mmmmmmmmmmmmm, Just xxxxxxxxxxxxxx <- lookup 2111 mmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxx <- lookup 21111 mmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxx <- lookup 211111 mmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxx <- lookup 26 mmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxx <- lookup 25 mmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxx <- lookup 24 mmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxx <- lookup 23 mmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxx <- lookup 221 mmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211 mmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22111 mmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 221111 mmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211111 mmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 226 mmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 225 mmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 224 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 223 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2221 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22211 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2221111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm = x + xx + xxx + xxxx + xxxxx + xxxxxx + xxxxxxx + xxxxxxxx + xxxxxxxxx + xxxxxxxxxx + xxxxxxxxxxx + xxxxxxxxxxxx + xxxxxxxxxxxxx + xxxxxxxxxxxxxx + xxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+f [m, mm, mmm, mmmm, mmmmm, mmmmmm, mmmmmmm, mmmmmmmm, mmmmmmmmm, mmmmmmmmmm, mmmmmmmmmmm, mmmmmmmmmmmm, mmmmmmmmmmmmm, mmmmmmmmmmmmmm, mmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm] | Just x <- lookup 1 m, Just xx <- lookup 11 mm, Just xxx <- lookup 111 mmm, Just xxxx <- lookup 1111 mmmm, Just xxxxx <- lookup 11111 mmmmm, Just xxxxxx <- lookup 6 mmmmmm, Just xxxxxxx <- lookup 5 mmmmmmm, Just xxxxxxxx <- lookup 4 mmmmmmmm, Just xxxxxxxxx <- lookup 3 mmmmmmmmm, Just xxxxxxxxxx <- lookup 2 mmmmmmmmmm, Just xxxxxxxxxxx <- lookup 2 mmmmmmmmmmm, Just xxxxxxxxxxxx <- lookup 21 mmmmmmmmmmmm, Just xxxxxxxxxxxxx <- lookup 211 mmmmmmmmmmmmm, Just xxxxxxxxxxxxxx <- lookup 2111 mmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxx <- lookup 21111 mmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxx <- lookup 211111 mmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxx <- lookup 26 mmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxx <- lookup 25 mmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxx <- lookup 24 mmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxx <- lookup 23 mmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxx <- lookup 221 mmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211 mmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22111 mmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 221111 mmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211111 mmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 226 mmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 225 mmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 224 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 223 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2221 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22211 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2221111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22211111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm = x + xx + xxx + xxxx + xxxxx + xxxxxx + xxxxxxx + xxxxxxxx + xxxxxxxxx + xxxxxxxxxx + xxxxxxxxxxx + xxxxxxxxxxxx + xxxxxxxxxxxxx + xxxxxxxxxxxxxx + xxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+f [m, mm, mmm, mmmm, mmmmm, mmmmmm, mmmmmmm, mmmmmmmm, mmmmmmmmm, mmmmmmmmmm, mmmmmmmmmmm, mmmmmmmmmmmm, mmmmmmmmmmmmm, mmmmmmmmmmmmmm, mmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm] | Just x <- lookup 1 m, Just xx <- lookup 11 mm, Just xxx <- lookup 111 mmm, Just xxxx <- lookup 1111 mmmm, Just xxxxx <- lookup 11111 mmmmm, Just xxxxxx <- lookup 6 mmmmmm, Just xxxxxxx <- lookup 5 mmmmmmm, Just xxxxxxxx <- lookup 4 mmmmmmmm, Just xxxxxxxxx <- lookup 3 mmmmmmmmm, Just xxxxxxxxxx <- lookup 2 mmmmmmmmmm, Just xxxxxxxxxxx <- lookup 2 mmmmmmmmmmm, Just xxxxxxxxxxxx <- lookup 21 mmmmmmmmmmmm, Just xxxxxxxxxxxxx <- lookup 211 mmmmmmmmmmmmm, Just xxxxxxxxxxxxxx <- lookup 2111 mmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxx <- lookup 21111 mmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxx <- lookup 211111 mmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxx <- lookup 26 mmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxx <- lookup 25 mmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxx <- lookup 24 mmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxx <- lookup 23 mmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxx <- lookup 221 mmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211 mmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22111 mmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 221111 mmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211111 mmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 226 mmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 225 mmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 224 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 223 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2221 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22211 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2221111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22211111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2226 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm = x + xx + xxx + xxxx + xxxxx + xxxxxx + xxxxxxx + xxxxxxxx + xxxxxxxxx + xxxxxxxxxx + xxxxxxxxxxx + xxxxxxxxxxxx + xxxxxxxxxxxxx + xxxxxxxxxxxxxx + xxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+f [m, mm, mmm, mmmm, mmmmm, mmmmmm, mmmmmmm, mmmmmmmm, mmmmmmmmm, mmmmmmmmmm, mmmmmmmmmmm, mmmmmmmmmmmm, mmmmmmmmmmmmm, mmmmmmmmmmmmmm, mmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm] | Just x <- lookup 1 m, Just xx <- lookup 11 mm, Just xxx <- lookup 111 mmm, Just xxxx <- lookup 1111 mmmm, Just xxxxx <- lookup 11111 mmmmm, Just xxxxxx <- lookup 6 mmmmmm, Just xxxxxxx <- lookup 5 mmmmmmm, Just xxxxxxxx <- lookup 4 mmmmmmmm, Just xxxxxxxxx <- lookup 3 mmmmmmmmm, Just xxxxxxxxxx <- lookup 2 mmmmmmmmmm, Just xxxxxxxxxxx <- lookup 2 mmmmmmmmmmm, Just xxxxxxxxxxxx <- lookup 21 mmmmmmmmmmmm, Just xxxxxxxxxxxxx <- lookup 211 mmmmmmmmmmmmm, Just xxxxxxxxxxxxxx <- lookup 2111 mmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxx <- lookup 21111 mmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxx <- lookup 211111 mmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxx <- lookup 26 mmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxx <- lookup 25 mmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxx <- lookup 24 mmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxx <- lookup 23 mmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxx <- lookup 221 mmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211 mmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22111 mmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 221111 mmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211111 mmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 226 mmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 225 mmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 224 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 223 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2221 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22211 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2221111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22211111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2226 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2225 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm = x + xx + xxx + xxxx + xxxxx + xxxxxx + xxxxxxx + xxxxxxxx + xxxxxxxxx + xxxxxxxxxx + xxxxxxxxxxx + xxxxxxxxxxxx + xxxxxxxxxxxxx + xxxxxxxxxxxxxx + xxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+f [m, mm, mmm, mmmm, mmmmm, mmmmmm, mmmmmmm, mmmmmmmm, mmmmmmmmm, mmmmmmmmmm, mmmmmmmmmmm, mmmmmmmmmmmm, mmmmmmmmmmmmm, mmmmmmmmmmmmmm, mmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm] | Just x <- lookup 1 m, Just xx <- lookup 11 mm, Just xxx <- lookup 111 mmm, Just xxxx <- lookup 1111 mmmm, Just xxxxx <- lookup 11111 mmmmm, Just xxxxxx <- lookup 6 mmmmmm, Just xxxxxxx <- lookup 5 mmmmmmm, Just xxxxxxxx <- lookup 4 mmmmmmmm, Just xxxxxxxxx <- lookup 3 mmmmmmmmm, Just xxxxxxxxxx <- lookup 2 mmmmmmmmmm, Just xxxxxxxxxxx <- lookup 2 mmmmmmmmmmm, Just xxxxxxxxxxxx <- lookup 21 mmmmmmmmmmmm, Just xxxxxxxxxxxxx <- lookup 211 mmmmmmmmmmmmm, Just xxxxxxxxxxxxxx <- lookup 2111 mmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxx <- lookup 21111 mmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxx <- lookup 211111 mmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxx <- lookup 26 mmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxx <- lookup 25 mmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxx <- lookup 24 mmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxx <- lookup 23 mmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxx <- lookup 221 mmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211 mmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22111 mmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 221111 mmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211111 mmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 226 mmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 225 mmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 224 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 223 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2221 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22211 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2221111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22211111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2226 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2225 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2224 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm = x + xx + xxx + xxxx + xxxxx + xxxxxx + xxxxxxx + xxxxxxxx + xxxxxxxxx + xxxxxxxxxx + xxxxxxxxxxx + xxxxxxxxxxxx + xxxxxxxxxxxxx + xxxxxxxxxxxxxx + xxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+f [m, mm, mmm, mmmm, mmmmm, mmmmmm, mmmmmmm, mmmmmmmm, mmmmmmmmm, mmmmmmmmmm, mmmmmmmmmmm, mmmmmmmmmmmm, mmmmmmmmmmmmm, mmmmmmmmmmmmmm, mmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm] | Just x <- lookup 1 m, Just xx <- lookup 11 mm, Just xxx <- lookup 111 mmm, Just xxxx <- lookup 1111 mmmm, Just xxxxx <- lookup 11111 mmmmm, Just xxxxxx <- lookup 6 mmmmmm, Just xxxxxxx <- lookup 5 mmmmmmm, Just xxxxxxxx <- lookup 4 mmmmmmmm, Just xxxxxxxxx <- lookup 3 mmmmmmmmm, Just xxxxxxxxxx <- lookup 2 mmmmmmmmmm, Just xxxxxxxxxxx <- lookup 2 mmmmmmmmmmm, Just xxxxxxxxxxxx <- lookup 21 mmmmmmmmmmmm, Just xxxxxxxxxxxxx <- lookup 211 mmmmmmmmmmmmm, Just xxxxxxxxxxxxxx <- lookup 2111 mmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxx <- lookup 21111 mmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxx <- lookup 211111 mmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxx <- lookup 26 mmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxx <- lookup 25 mmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxx <- lookup 24 mmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxx <- lookup 23 mmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxx <- lookup 221 mmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211 mmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22111 mmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 221111 mmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211111 mmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 226 mmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 225 mmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 224 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 223 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2221 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22211 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2221111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22211111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2226 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2225 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2224 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2223 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm = x + xx + xxx + xxxx + xxxxx + xxxxxx + xxxxxxx + xxxxxxxx + xxxxxxxxx + xxxxxxxxxx + xxxxxxxxxxx + xxxxxxxxxxxx + xxxxxxxxxxxxx + xxxxxxxxxxxxxx + xxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+f [m, mm, mmm, mmmm, mmmmm, mmmmmm, mmmmmmm, mmmmmmmm, mmmmmmmmm, mmmmmmmmmm, mmmmmmmmmmm, mmmmmmmmmmmm, mmmmmmmmmmmmm, mmmmmmmmmmmmmm, mmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm] | Just x <- lookup 1 m, Just xx <- lookup 11 mm, Just xxx <- lookup 111 mmm, Just xxxx <- lookup 1111 mmmm, Just xxxxx <- lookup 11111 mmmmm, Just xxxxxx <- lookup 6 mmmmmm, Just xxxxxxx <- lookup 5 mmmmmmm, Just xxxxxxxx <- lookup 4 mmmmmmmm, Just xxxxxxxxx <- lookup 3 mmmmmmmmm, Just xxxxxxxxxx <- lookup 2 mmmmmmmmmm, Just xxxxxxxxxxx <- lookup 2 mmmmmmmmmmm, Just xxxxxxxxxxxx <- lookup 21 mmmmmmmmmmmm, Just xxxxxxxxxxxxx <- lookup 211 mmmmmmmmmmmmm, Just xxxxxxxxxxxxxx <- lookup 2111 mmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxx <- lookup 21111 mmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxx <- lookup 211111 mmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxx <- lookup 26 mmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxx <- lookup 25 mmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxx <- lookup 24 mmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxx <- lookup 23 mmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxx <- lookup 221 mmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211 mmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22111 mmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 221111 mmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211111 mmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 226 mmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 225 mmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 224 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 223 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2221 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22211 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2221111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22211111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2226 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2225 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2224 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2223 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm = x + xx + xxx + xxxx + xxxxx + xxxxxx + xxxxxxx + xxxxxxxx + xxxxxxxxx + xxxxxxxxxx + xxxxxxxxxxx + xxxxxxxxxxxx + xxxxxxxxxxxxx + xxxxxxxxxxxxxx + xxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+f [m, mm, mmm, mmmm, mmmmm, mmmmmm, mmmmmmm, mmmmmmmm, mmmmmmmmm, mmmmmmmmmm, mmmmmmmmmmm, mmmmmmmmmmmm, mmmmmmmmmmmmm, mmmmmmmmmmmmmm, mmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm] | Just x <- lookup 1 m, Just xx <- lookup 11 mm, Just xxx <- lookup 111 mmm, Just xxxx <- lookup 1111 mmmm, Just xxxxx <- lookup 11111 mmmmm, Just xxxxxx <- lookup 6 mmmmmm, Just xxxxxxx <- lookup 5 mmmmmmm, Just xxxxxxxx <- lookup 4 mmmmmmmm, Just xxxxxxxxx <- lookup 3 mmmmmmmmm, Just xxxxxxxxxx <- lookup 2 mmmmmmmmmm, Just xxxxxxxxxxx <- lookup 2 mmmmmmmmmmm, Just xxxxxxxxxxxx <- lookup 21 mmmmmmmmmmmm, Just xxxxxxxxxxxxx <- lookup 211 mmmmmmmmmmmmm, Just xxxxxxxxxxxxxx <- lookup 2111 mmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxx <- lookup 21111 mmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxx <- lookup 211111 mmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxx <- lookup 26 mmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxx <- lookup 25 mmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxx <- lookup 24 mmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxx <- lookup 23 mmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxx <- lookup 221 mmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211 mmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22111 mmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 221111 mmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211111 mmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 226 mmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 225 mmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 224 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 223 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2221 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22211 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2221111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22211111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2226 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2225 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2224 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2223 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm = x + xx + xxx + xxxx + xxxxx + xxxxxx + xxxxxxx + xxxxxxxx + xxxxxxxxx + xxxxxxxxxx + xxxxxxxxxxx + xxxxxxxxxxxx + xxxxxxxxxxxxx + xxxxxxxxxxxxxx + xxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+f [m, mm, mmm, mmmm, mmmmm, mmmmmm, mmmmmmm, mmmmmmmm, mmmmmmmmm, mmmmmmmmmm, mmmmmmmmmmm, mmmmmmmmmmmm, mmmmmmmmmmmmm, mmmmmmmmmmmmmm, mmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm] | Just x <- lookup 1 m, Just xx <- lookup 11 mm, Just xxx <- lookup 111 mmm, Just xxxx <- lookup 1111 mmmm, Just xxxxx <- lookup 11111 mmmmm, Just xxxxxx <- lookup 6 mmmmmm, Just xxxxxxx <- lookup 5 mmmmmmm, Just xxxxxxxx <- lookup 4 mmmmmmmm, Just xxxxxxxxx <- lookup 3 mmmmmmmmm, Just xxxxxxxxxx <- lookup 2 mmmmmmmmmm, Just xxxxxxxxxxx <- lookup 2 mmmmmmmmmmm, Just xxxxxxxxxxxx <- lookup 21 mmmmmmmmmmmm, Just xxxxxxxxxxxxx <- lookup 211 mmmmmmmmmmmmm, Just xxxxxxxxxxxxxx <- lookup 2111 mmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxx <- lookup 21111 mmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxx <- lookup 211111 mmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxx <- lookup 26 mmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxx <- lookup 25 mmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxx <- lookup 24 mmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxx <- lookup 23 mmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxx <- lookup 221 mmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211 mmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22111 mmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 221111 mmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211111 mmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 226 mmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 225 mmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 224 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 223 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2221 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22211 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2221111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22211111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2226 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2225 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2224 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2223 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22221 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm = x + xx + xxx + xxxx + xxxxx + xxxxxx + xxxxxxx + xxxxxxxx + xxxxxxxxx + xxxxxxxxxx + xxxxxxxxxxx + xxxxxxxxxxxx + xxxxxxxxxxxxx + xxxxxxxxxxxxxx + xxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+f [m, mm, mmm, mmmm, mmmmm, mmmmmm, mmmmmmm, mmmmmmmm, mmmmmmmmm, mmmmmmmmmm, mmmmmmmmmmm, mmmmmmmmmmmm, mmmmmmmmmmmmm, mmmmmmmmmmmmmm, mmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm] | Just x <- lookup 1 m, Just xx <- lookup 11 mm, Just xxx <- lookup 111 mmm, Just xxxx <- lookup 1111 mmmm, Just xxxxx <- lookup 11111 mmmmm, Just xxxxxx <- lookup 6 mmmmmm, Just xxxxxxx <- lookup 5 mmmmmmm, Just xxxxxxxx <- lookup 4 mmmmmmmm, Just xxxxxxxxx <- lookup 3 mmmmmmmmm, Just xxxxxxxxxx <- lookup 2 mmmmmmmmmm, Just xxxxxxxxxxx <- lookup 2 mmmmmmmmmmm, Just xxxxxxxxxxxx <- lookup 21 mmmmmmmmmmmm, Just xxxxxxxxxxxxx <- lookup 211 mmmmmmmmmmmmm, Just xxxxxxxxxxxxxx <- lookup 2111 mmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxx <- lookup 21111 mmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxx <- lookup 211111 mmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxx <- lookup 26 mmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxx <- lookup 25 mmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxx <- lookup 24 mmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxx <- lookup 23 mmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxx <- lookup 221 mmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211 mmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22111 mmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 221111 mmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211111 mmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 226 mmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 225 mmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 224 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 223 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2221 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22211 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2221111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22211111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2226 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2225 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2224 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2223 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22221 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222211 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm = x + xx + xxx + xxxx + xxxxx + xxxxxx + xxxxxxx + xxxxxxxx + xxxxxxxxx + xxxxxxxxxx + xxxxxxxxxxx + xxxxxxxxxxxx + xxxxxxxxxxxxx + xxxxxxxxxxxxxx + xxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+f [m, mm, mmm, mmmm, mmmmm, mmmmmm, mmmmmmm, mmmmmmmm, mmmmmmmmm, mmmmmmmmmm, mmmmmmmmmmm, mmmmmmmmmmmm, mmmmmmmmmmmmm, mmmmmmmmmmmmmm, mmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm] | Just x <- lookup 1 m, Just xx <- lookup 11 mm, Just xxx <- lookup 111 mmm, Just xxxx <- lookup 1111 mmmm, Just xxxxx <- lookup 11111 mmmmm, Just xxxxxx <- lookup 6 mmmmmm, Just xxxxxxx <- lookup 5 mmmmmmm, Just xxxxxxxx <- lookup 4 mmmmmmmm, Just xxxxxxxxx <- lookup 3 mmmmmmmmm, Just xxxxxxxxxx <- lookup 2 mmmmmmmmmm, Just xxxxxxxxxxx <- lookup 2 mmmmmmmmmmm, Just xxxxxxxxxxxx <- lookup 21 mmmmmmmmmmmm, Just xxxxxxxxxxxxx <- lookup 211 mmmmmmmmmmmmm, Just xxxxxxxxxxxxxx <- lookup 2111 mmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxx <- lookup 21111 mmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxx <- lookup 211111 mmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxx <- lookup 26 mmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxx <- lookup 25 mmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxx <- lookup 24 mmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxx <- lookup 23 mmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxx <- lookup 221 mmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211 mmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22111 mmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 221111 mmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211111 mmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 226 mmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 225 mmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 224 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 223 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2221 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22211 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2221111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22211111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2226 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2225 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2224 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2223 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22221 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222211 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2222111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm = x + xx + xxx + xxxx + xxxxx + xxxxxx + xxxxxxx + xxxxxxxx + xxxxxxxxx + xxxxxxxxxx + xxxxxxxxxxx + xxxxxxxxxxxx + xxxxxxxxxxxxx + xxxxxxxxxxxxxx + xxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+f [m, mm, mmm, mmmm, mmmmm, mmmmmm, mmmmmmm, mmmmmmmm, mmmmmmmmm, mmmmmmmmmm, mmmmmmmmmmm, mmmmmmmmmmmm, mmmmmmmmmmmmm, mmmmmmmmmmmmmm, mmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm] | Just x <- lookup 1 m, Just xx <- lookup 11 mm, Just xxx <- lookup 111 mmm, Just xxxx <- lookup 1111 mmmm, Just xxxxx <- lookup 11111 mmmmm, Just xxxxxx <- lookup 6 mmmmmm, Just xxxxxxx <- lookup 5 mmmmmmm, Just xxxxxxxx <- lookup 4 mmmmmmmm, Just xxxxxxxxx <- lookup 3 mmmmmmmmm, Just xxxxxxxxxx <- lookup 2 mmmmmmmmmm, Just xxxxxxxxxxx <- lookup 2 mmmmmmmmmmm, Just xxxxxxxxxxxx <- lookup 21 mmmmmmmmmmmm, Just xxxxxxxxxxxxx <- lookup 211 mmmmmmmmmmmmm, Just xxxxxxxxxxxxxx <- lookup 2111 mmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxx <- lookup 21111 mmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxx <- lookup 211111 mmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxx <- lookup 26 mmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxx <- lookup 25 mmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxx <- lookup 24 mmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxx <- lookup 23 mmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxx <- lookup 221 mmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211 mmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22111 mmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 221111 mmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211111 mmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 226 mmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 225 mmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 224 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 223 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2221 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22211 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2221111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22211111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2226 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2225 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2224 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2223 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22221 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222211 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2222111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22221111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm = x + xx + xxx + xxxx + xxxxx + xxxxxx + xxxxxxx + xxxxxxxx + xxxxxxxxx + xxxxxxxxxx + xxxxxxxxxxx + xxxxxxxxxxxx + xxxxxxxxxxxxx + xxxxxxxxxxxxxx + xxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+f [m, mm, mmm, mmmm, mmmmm, mmmmmm, mmmmmmm, mmmmmmmm, mmmmmmmmm, mmmmmmmmmm, mmmmmmmmmmm, mmmmmmmmmmmm, mmmmmmmmmmmmm, mmmmmmmmmmmmmm, mmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm] | Just x <- lookup 1 m, Just xx <- lookup 11 mm, Just xxx <- lookup 111 mmm, Just xxxx <- lookup 1111 mmmm, Just xxxxx <- lookup 11111 mmmmm, Just xxxxxx <- lookup 6 mmmmmm, Just xxxxxxx <- lookup 5 mmmmmmm, Just xxxxxxxx <- lookup 4 mmmmmmmm, Just xxxxxxxxx <- lookup 3 mmmmmmmmm, Just xxxxxxxxxx <- lookup 2 mmmmmmmmmm, Just xxxxxxxxxxx <- lookup 2 mmmmmmmmmmm, Just xxxxxxxxxxxx <- lookup 21 mmmmmmmmmmmm, Just xxxxxxxxxxxxx <- lookup 211 mmmmmmmmmmmmm, Just xxxxxxxxxxxxxx <- lookup 2111 mmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxx <- lookup 21111 mmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxx <- lookup 211111 mmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxx <- lookup 26 mmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxx <- lookup 25 mmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxx <- lookup 24 mmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxx <- lookup 23 mmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxx <- lookup 221 mmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211 mmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22111 mmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 221111 mmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211111 mmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 226 mmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 225 mmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 224 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 223 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2221 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22211 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2221111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22211111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2226 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2225 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2224 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2223 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22221 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222211 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2222111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22221111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222211111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm = x + xx + xxx + xxxx + xxxxx + xxxxxx + xxxxxxx + xxxxxxxx + xxxxxxxxx + xxxxxxxxxx + xxxxxxxxxxx + xxxxxxxxxxxx + xxxxxxxxxxxxx + xxxxxxxxxxxxxx + xxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+f [m, mm, mmm, mmmm, mmmmm, mmmmmm, mmmmmmm, mmmmmmmm, mmmmmmmmm, mmmmmmmmmm, mmmmmmmmmmm, mmmmmmmmmmmm, mmmmmmmmmmmmm, mmmmmmmmmmmmmm, mmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm] | Just x <- lookup 1 m, Just xx <- lookup 11 mm, Just xxx <- lookup 111 mmm, Just xxxx <- lookup 1111 mmmm, Just xxxxx <- lookup 11111 mmmmm, Just xxxxxx <- lookup 6 mmmmmm, Just xxxxxxx <- lookup 5 mmmmmmm, Just xxxxxxxx <- lookup 4 mmmmmmmm, Just xxxxxxxxx <- lookup 3 mmmmmmmmm, Just xxxxxxxxxx <- lookup 2 mmmmmmmmmm, Just xxxxxxxxxxx <- lookup 2 mmmmmmmmmmm, Just xxxxxxxxxxxx <- lookup 21 mmmmmmmmmmmm, Just xxxxxxxxxxxxx <- lookup 211 mmmmmmmmmmmmm, Just xxxxxxxxxxxxxx <- lookup 2111 mmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxx <- lookup 21111 mmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxx <- lookup 211111 mmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxx <- lookup 26 mmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxx <- lookup 25 mmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxx <- lookup 24 mmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxx <- lookup 23 mmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxx <- lookup 221 mmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211 mmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22111 mmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 221111 mmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211111 mmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 226 mmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 225 mmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 224 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 223 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2221 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22211 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2221111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22211111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2226 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2225 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2224 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2223 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22221 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222211 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2222111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22221111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222211111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22226 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm = x + xx + xxx + xxxx + xxxxx + xxxxxx + xxxxxxx + xxxxxxxx + xxxxxxxxx + xxxxxxxxxx + xxxxxxxxxxx + xxxxxxxxxxxx + xxxxxxxxxxxxx + xxxxxxxxxxxxxx + xxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+f [m, mm, mmm, mmmm, mmmmm, mmmmmm, mmmmmmm, mmmmmmmm, mmmmmmmmm, mmmmmmmmmm, mmmmmmmmmmm, mmmmmmmmmmmm, mmmmmmmmmmmmm, mmmmmmmmmmmmmm, mmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm] | Just x <- lookup 1 m, Just xx <- lookup 11 mm, Just xxx <- lookup 111 mmm, Just xxxx <- lookup 1111 mmmm, Just xxxxx <- lookup 11111 mmmmm, Just xxxxxx <- lookup 6 mmmmmm, Just xxxxxxx <- lookup 5 mmmmmmm, Just xxxxxxxx <- lookup 4 mmmmmmmm, Just xxxxxxxxx <- lookup 3 mmmmmmmmm, Just xxxxxxxxxx <- lookup 2 mmmmmmmmmm, Just xxxxxxxxxxx <- lookup 2 mmmmmmmmmmm, Just xxxxxxxxxxxx <- lookup 21 mmmmmmmmmmmm, Just xxxxxxxxxxxxx <- lookup 211 mmmmmmmmmmmmm, Just xxxxxxxxxxxxxx <- lookup 2111 mmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxx <- lookup 21111 mmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxx <- lookup 211111 mmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxx <- lookup 26 mmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxx <- lookup 25 mmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxx <- lookup 24 mmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxx <- lookup 23 mmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxx <- lookup 221 mmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211 mmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22111 mmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 221111 mmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211111 mmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 226 mmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 225 mmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 224 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 223 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2221 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22211 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2221111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22211111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2226 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2225 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2224 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2223 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22221 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222211 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2222111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22221111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222211111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22226 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22225 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm = x + xx + xxx + xxxx + xxxxx + xxxxxx + xxxxxxx + xxxxxxxx + xxxxxxxxx + xxxxxxxxxx + xxxxxxxxxxx + xxxxxxxxxxxx + xxxxxxxxxxxxx + xxxxxxxxxxxxxx + xxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+f [m, mm, mmm, mmmm, mmmmm, mmmmmm, mmmmmmm, mmmmmmmm, mmmmmmmmm, mmmmmmmmmm, mmmmmmmmmmm, mmmmmmmmmmmm, mmmmmmmmmmmmm, mmmmmmmmmmmmmm, mmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm] | Just x <- lookup 1 m, Just xx <- lookup 11 mm, Just xxx <- lookup 111 mmm, Just xxxx <- lookup 1111 mmmm, Just xxxxx <- lookup 11111 mmmmm, Just xxxxxx <- lookup 6 mmmmmm, Just xxxxxxx <- lookup 5 mmmmmmm, Just xxxxxxxx <- lookup 4 mmmmmmmm, Just xxxxxxxxx <- lookup 3 mmmmmmmmm, Just xxxxxxxxxx <- lookup 2 mmmmmmmmmm, Just xxxxxxxxxxx <- lookup 2 mmmmmmmmmmm, Just xxxxxxxxxxxx <- lookup 21 mmmmmmmmmmmm, Just xxxxxxxxxxxxx <- lookup 211 mmmmmmmmmmmmm, Just xxxxxxxxxxxxxx <- lookup 2111 mmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxx <- lookup 21111 mmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxx <- lookup 211111 mmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxx <- lookup 26 mmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxx <- lookup 25 mmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxx <- lookup 24 mmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxx <- lookup 23 mmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxx <- lookup 221 mmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211 mmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22111 mmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 221111 mmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211111 mmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 226 mmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 225 mmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 224 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 223 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2221 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22211 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2221111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22211111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2226 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2225 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2224 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2223 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22221 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222211 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2222111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22221111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222211111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22226 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22225 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm = x + xx + xxx + xxxx + xxxxx + xxxxxx + xxxxxxx + xxxxxxxx + xxxxxxxxx + xxxxxxxxxx + xxxxxxxxxxx + xxxxxxxxxxxx + xxxxxxxxxxxxx + xxxxxxxxxxxxxx + xxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+f [m, mm, mmm, mmmm, mmmmm, mmmmmm, mmmmmmm, mmmmmmmm, mmmmmmmmm, mmmmmmmmmm, mmmmmmmmmmm, mmmmmmmmmmmm, mmmmmmmmmmmmm, mmmmmmmmmmmmmm, mmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm] | Just x <- lookup 1 m, Just xx <- lookup 11 mm, Just xxx <- lookup 111 mmm, Just xxxx <- lookup 1111 mmmm, Just xxxxx <- lookup 11111 mmmmm, Just xxxxxx <- lookup 6 mmmmmm, Just xxxxxxx <- lookup 5 mmmmmmm, Just xxxxxxxx <- lookup 4 mmmmmmmm, Just xxxxxxxxx <- lookup 3 mmmmmmmmm, Just xxxxxxxxxx <- lookup 2 mmmmmmmmmm, Just xxxxxxxxxxx <- lookup 2 mmmmmmmmmmm, Just xxxxxxxxxxxx <- lookup 21 mmmmmmmmmmmm, Just xxxxxxxxxxxxx <- lookup 211 mmmmmmmmmmmmm, Just xxxxxxxxxxxxxx <- lookup 2111 mmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxx <- lookup 21111 mmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxx <- lookup 211111 mmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxx <- lookup 26 mmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxx <- lookup 25 mmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxx <- lookup 24 mmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxx <- lookup 23 mmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxx <- lookup 221 mmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211 mmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22111 mmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 221111 mmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211111 mmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 226 mmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 225 mmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 224 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 223 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2221 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22211 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2221111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22211111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2226 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2225 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2224 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2223 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22221 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222211 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2222111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22221111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222211111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22226 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22225 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm = x + xx + xxx + xxxx + xxxxx + xxxxxx + xxxxxxx + xxxxxxxx + xxxxxxxxx + xxxxxxxxxx + xxxxxxxxxxx + xxxxxxxxxxxx + xxxxxxxxxxxxx + xxxxxxxxxxxxxx + xxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+f [m, mm, mmm, mmmm, mmmmm, mmmmmm, mmmmmmm, mmmmmmmm, mmmmmmmmm, mmmmmmmmmm, mmmmmmmmmmm, mmmmmmmmmmmm, mmmmmmmmmmmmm, mmmmmmmmmmmmmm, mmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm] | Just x <- lookup 1 m, Just xx <- lookup 11 mm, Just xxx <- lookup 111 mmm, Just xxxx <- lookup 1111 mmmm, Just xxxxx <- lookup 11111 mmmmm, Just xxxxxx <- lookup 6 mmmmmm, Just xxxxxxx <- lookup 5 mmmmmmm, Just xxxxxxxx <- lookup 4 mmmmmmmm, Just xxxxxxxxx <- lookup 3 mmmmmmmmm, Just xxxxxxxxxx <- lookup 2 mmmmmmmmmm, Just xxxxxxxxxxx <- lookup 2 mmmmmmmmmmm, Just xxxxxxxxxxxx <- lookup 21 mmmmmmmmmmmm, Just xxxxxxxxxxxxx <- lookup 211 mmmmmmmmmmmmm, Just xxxxxxxxxxxxxx <- lookup 2111 mmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxx <- lookup 21111 mmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxx <- lookup 211111 mmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxx <- lookup 26 mmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxx <- lookup 25 mmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxx <- lookup 24 mmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxx <- lookup 23 mmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxx <- lookup 221 mmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211 mmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22111 mmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 221111 mmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211111 mmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 226 mmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 225 mmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 224 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 223 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2221 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22211 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2221111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22211111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2226 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2225 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2224 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2223 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22221 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222211 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2222111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22221111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222211111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22226 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22225 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm = x + xx + xxx + xxxx + xxxxx + xxxxxx + xxxxxxx + xxxxxxxx + xxxxxxxxx + xxxxxxxxxx + xxxxxxxxxxx + xxxxxxxxxxxx + xxxxxxxxxxxxx + xxxxxxxxxxxxxx + xxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+f [m, mm, mmm, mmmm, mmmmm, mmmmmm, mmmmmmm, mmmmmmmm, mmmmmmmmm, mmmmmmmmmm, mmmmmmmmmmm, mmmmmmmmmmmm, mmmmmmmmmmmmm, mmmmmmmmmmmmmm, mmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm] | Just x <- lookup 1 m, Just xx <- lookup 11 mm, Just xxx <- lookup 111 mmm, Just xxxx <- lookup 1111 mmmm, Just xxxxx <- lookup 11111 mmmmm, Just xxxxxx <- lookup 6 mmmmmm, Just xxxxxxx <- lookup 5 mmmmmmm, Just xxxxxxxx <- lookup 4 mmmmmmmm, Just xxxxxxxxx <- lookup 3 mmmmmmmmm, Just xxxxxxxxxx <- lookup 2 mmmmmmmmmm, Just xxxxxxxxxxx <- lookup 2 mmmmmmmmmmm, Just xxxxxxxxxxxx <- lookup 21 mmmmmmmmmmmm, Just xxxxxxxxxxxxx <- lookup 211 mmmmmmmmmmmmm, Just xxxxxxxxxxxxxx <- lookup 2111 mmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxx <- lookup 21111 mmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxx <- lookup 211111 mmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxx <- lookup 26 mmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxx <- lookup 25 mmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxx <- lookup 24 mmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxx <- lookup 23 mmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxx <- lookup 221 mmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211 mmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22111 mmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 221111 mmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211111 mmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 226 mmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 225 mmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 224 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 223 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2221 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22211 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2221111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22211111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2226 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2225 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2224 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2223 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22221 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222211 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2222111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22221111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222211111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22226 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22225 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm = x + xx + xxx + xxxx + xxxxx + xxxxxx + xxxxxxx + xxxxxxxx + xxxxxxxxx + xxxxxxxxxx + xxxxxxxxxxx + xxxxxxxxxxxx + xxxxxxxxxxxxx + xxxxxxxxxxxxxx + xxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+f [m, mm, mmm, mmmm, mmmmm, mmmmmm, mmmmmmm, mmmmmmmm, mmmmmmmmm, mmmmmmmmmm, mmmmmmmmmmm, mmmmmmmmmmmm, mmmmmmmmmmmmm, mmmmmmmmmmmmmm, mmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm] | Just x <- lookup 1 m, Just xx <- lookup 11 mm, Just xxx <- lookup 111 mmm, Just xxxx <- lookup 1111 mmmm, Just xxxxx <- lookup 11111 mmmmm, Just xxxxxx <- lookup 6 mmmmmm, Just xxxxxxx <- lookup 5 mmmmmmm, Just xxxxxxxx <- lookup 4 mmmmmmmm, Just xxxxxxxxx <- lookup 3 mmmmmmmmm, Just xxxxxxxxxx <- lookup 2 mmmmmmmmmm, Just xxxxxxxxxxx <- lookup 2 mmmmmmmmmmm, Just xxxxxxxxxxxx <- lookup 21 mmmmmmmmmmmm, Just xxxxxxxxxxxxx <- lookup 211 mmmmmmmmmmmmm, Just xxxxxxxxxxxxxx <- lookup 2111 mmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxx <- lookup 21111 mmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxx <- lookup 211111 mmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxx <- lookup 26 mmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxx <- lookup 25 mmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxx <- lookup 24 mmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxx <- lookup 23 mmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxx <- lookup 221 mmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211 mmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22111 mmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 221111 mmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211111 mmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 226 mmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 225 mmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 224 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 223 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2221 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22211 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2221111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22211111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2226 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2225 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2224 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2223 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22221 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222211 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2222111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22221111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222211111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22226 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22225 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm = x + xx + xxx + xxxx + xxxxx + xxxxxx + xxxxxxx + xxxxxxxx + xxxxxxxxx + xxxxxxxxxx + xxxxxxxxxxx + xxxxxxxxxxxx + xxxxxxxxxxxxx + xxxxxxxxxxxxxx + xxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+f [m, mm, mmm, mmmm, mmmmm, mmmmmm, mmmmmmm, mmmmmmmm, mmmmmmmmm, mmmmmmmmmm, mmmmmmmmmmm, mmmmmmmmmmmm, mmmmmmmmmmmmm, mmmmmmmmmmmmmm, mmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm] | Just x <- lookup 1 m, Just xx <- lookup 11 mm, Just xxx <- lookup 111 mmm, Just xxxx <- lookup 1111 mmmm, Just xxxxx <- lookup 11111 mmmmm, Just xxxxxx <- lookup 6 mmmmmm, Just xxxxxxx <- lookup 5 mmmmmmm, Just xxxxxxxx <- lookup 4 mmmmmmmm, Just xxxxxxxxx <- lookup 3 mmmmmmmmm, Just xxxxxxxxxx <- lookup 2 mmmmmmmmmm, Just xxxxxxxxxxx <- lookup 2 mmmmmmmmmmm, Just xxxxxxxxxxxx <- lookup 21 mmmmmmmmmmmm, Just xxxxxxxxxxxxx <- lookup 211 mmmmmmmmmmmmm, Just xxxxxxxxxxxxxx <- lookup 2111 mmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxx <- lookup 21111 mmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxx <- lookup 211111 mmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxx <- lookup 26 mmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxx <- lookup 25 mmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxx <- lookup 24 mmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxx <- lookup 23 mmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxx <- lookup 221 mmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211 mmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22111 mmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 221111 mmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211111 mmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 226 mmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 225 mmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 224 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 223 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2221 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22211 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2221111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22211111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2226 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2225 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2224 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2223 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22221 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222211 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2222111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22221111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222211111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22226 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22225 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm = x + xx + xxx + xxxx + xxxxx + xxxxxx + xxxxxxx + xxxxxxxx + xxxxxxxxx + xxxxxxxxxx + xxxxxxxxxxx + xxxxxxxxxxxx + xxxxxxxxxxxxx + xxxxxxxxxxxxxx + xxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+f [m, mm, mmm, mmmm, mmmmm, mmmmmm, mmmmmmm, mmmmmmmm, mmmmmmmmm, mmmmmmmmmm, mmmmmmmmmmm, mmmmmmmmmmmm, mmmmmmmmmmmmm, mmmmmmmmmmmmmm, mmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm] | Just x <- lookup 1 m, Just xx <- lookup 11 mm, Just xxx <- lookup 111 mmm, Just xxxx <- lookup 1111 mmmm, Just xxxxx <- lookup 11111 mmmmm, Just xxxxxx <- lookup 6 mmmmmm, Just xxxxxxx <- lookup 5 mmmmmmm, Just xxxxxxxx <- lookup 4 mmmmmmmm, Just xxxxxxxxx <- lookup 3 mmmmmmmmm, Just xxxxxxxxxx <- lookup 2 mmmmmmmmmm, Just xxxxxxxxxxx <- lookup 2 mmmmmmmmmmm, Just xxxxxxxxxxxx <- lookup 21 mmmmmmmmmmmm, Just xxxxxxxxxxxxx <- lookup 211 mmmmmmmmmmmmm, Just xxxxxxxxxxxxxx <- lookup 2111 mmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxx <- lookup 21111 mmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxx <- lookup 211111 mmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxx <- lookup 26 mmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxx <- lookup 25 mmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxx <- lookup 24 mmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxx <- lookup 23 mmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxx <- lookup 221 mmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211 mmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22111 mmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 221111 mmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211111 mmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 226 mmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 225 mmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 224 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 223 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2221 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22211 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2221111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22211111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2226 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2225 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2224 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2223 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22221 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222211 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2222111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22221111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222211111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22226 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22225 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm = x + xx + xxx + xxxx + xxxxx + xxxxxx + xxxxxxx + xxxxxxxx + xxxxxxxxx + xxxxxxxxxx + xxxxxxxxxxx + xxxxxxxxxxxx + xxxxxxxxxxxxx + xxxxxxxxxxxxxx + xxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+f [m, mm, mmm, mmmm, mmmmm, mmmmmm, mmmmmmm, mmmmmmmm, mmmmmmmmm, mmmmmmmmmm, mmmmmmmmmmm, mmmmmmmmmmmm, mmmmmmmmmmmmm, mmmmmmmmmmmmmm, mmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm] | Just x <- lookup 1 m, Just xx <- lookup 11 mm, Just xxx <- lookup 111 mmm, Just xxxx <- lookup 1111 mmmm, Just xxxxx <- lookup 11111 mmmmm, Just xxxxxx <- lookup 6 mmmmmm, Just xxxxxxx <- lookup 5 mmmmmmm, Just xxxxxxxx <- lookup 4 mmmmmmmm, Just xxxxxxxxx <- lookup 3 mmmmmmmmm, Just xxxxxxxxxx <- lookup 2 mmmmmmmmmm, Just xxxxxxxxxxx <- lookup 2 mmmmmmmmmmm, Just xxxxxxxxxxxx <- lookup 21 mmmmmmmmmmmm, Just xxxxxxxxxxxxx <- lookup 211 mmmmmmmmmmmmm, Just xxxxxxxxxxxxxx <- lookup 2111 mmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxx <- lookup 21111 mmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxx <- lookup 211111 mmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxx <- lookup 26 mmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxx <- lookup 25 mmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxx <- lookup 24 mmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxx <- lookup 23 mmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxx <- lookup 221 mmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211 mmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22111 mmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 221111 mmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211111 mmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 226 mmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 225 mmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 224 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 223 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2221 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22211 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2221111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22211111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2226 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2225 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2224 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2223 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22221 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222211 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2222111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22221111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222211111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22226 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22225 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm = x + xx + xxx + xxxx + xxxxx + xxxxxx + xxxxxxx + xxxxxxxx + xxxxxxxxx + xxxxxxxxxx + xxxxxxxxxxx + xxxxxxxxxxxx + xxxxxxxxxxxxx + xxxxxxxxxxxxxx + xxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+f [m, mm, mmm, mmmm, mmmmm, mmmmmm, mmmmmmm, mmmmmmmm, mmmmmmmmm, mmmmmmmmmm, mmmmmmmmmmm, mmmmmmmmmmmm, mmmmmmmmmmmmm, mmmmmmmmmmmmmm, mmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm] | Just x <- lookup 1 m, Just xx <- lookup 11 mm, Just xxx <- lookup 111 mmm, Just xxxx <- lookup 1111 mmmm, Just xxxxx <- lookup 11111 mmmmm, Just xxxxxx <- lookup 6 mmmmmm, Just xxxxxxx <- lookup 5 mmmmmmm, Just xxxxxxxx <- lookup 4 mmmmmmmm, Just xxxxxxxxx <- lookup 3 mmmmmmmmm, Just xxxxxxxxxx <- lookup 2 mmmmmmmmmm, Just xxxxxxxxxxx <- lookup 2 mmmmmmmmmmm, Just xxxxxxxxxxxx <- lookup 21 mmmmmmmmmmmm, Just xxxxxxxxxxxxx <- lookup 211 mmmmmmmmmmmmm, Just xxxxxxxxxxxxxx <- lookup 2111 mmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxx <- lookup 21111 mmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxx <- lookup 211111 mmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxx <- lookup 26 mmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxx <- lookup 25 mmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxx <- lookup 24 mmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxx <- lookup 23 mmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxx <- lookup 221 mmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211 mmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22111 mmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 221111 mmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211111 mmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 226 mmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 225 mmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 224 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 223 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2221 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22211 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2221111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22211111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2226 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2225 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2224 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2223 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22221 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222211 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2222111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22221111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222211111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22226 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22225 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm = x + xx + xxx + xxxx + xxxxx + xxxxxx + xxxxxxx + xxxxxxxx + xxxxxxxxx + xxxxxxxxxx + xxxxxxxxxxx + xxxxxxxxxxxx + xxxxxxxxxxxxx + xxxxxxxxxxxxxx + xxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+f [m, mm, mmm, mmmm, mmmmm, mmmmmm, mmmmmmm, mmmmmmmm, mmmmmmmmm, mmmmmmmmmm, mmmmmmmmmmm, mmmmmmmmmmmm, mmmmmmmmmmmmm, mmmmmmmmmmmmmm, mmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm] | Just x <- lookup 1 m, Just xx <- lookup 11 mm, Just xxx <- lookup 111 mmm, Just xxxx <- lookup 1111 mmmm, Just xxxxx <- lookup 11111 mmmmm, Just xxxxxx <- lookup 6 mmmmmm, Just xxxxxxx <- lookup 5 mmmmmmm, Just xxxxxxxx <- lookup 4 mmmmmmmm, Just xxxxxxxxx <- lookup 3 mmmmmmmmm, Just xxxxxxxxxx <- lookup 2 mmmmmmmmmm, Just xxxxxxxxxxx <- lookup 2 mmmmmmmmmmm, Just xxxxxxxxxxxx <- lookup 21 mmmmmmmmmmmm, Just xxxxxxxxxxxxx <- lookup 211 mmmmmmmmmmmmm, Just xxxxxxxxxxxxxx <- lookup 2111 mmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxx <- lookup 21111 mmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxx <- lookup 211111 mmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxx <- lookup 26 mmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxx <- lookup 25 mmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxx <- lookup 24 mmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxx <- lookup 23 mmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxx <- lookup 221 mmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211 mmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22111 mmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 221111 mmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211111 mmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 226 mmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 225 mmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 224 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 223 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2221 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22211 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2221111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22211111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2226 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2225 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2224 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2223 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22221 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222211 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2222111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22221111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222211111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22226 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22225 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm = x + xx + xxx + xxxx + xxxxx + xxxxxx + xxxxxxx + xxxxxxxx + xxxxxxxxx + xxxxxxxxxx + xxxxxxxxxxx + xxxxxxxxxxxx + xxxxxxxxxxxxx + xxxxxxxxxxxxxx + xxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+f [m, mm, mmm, mmmm, mmmmm, mmmmmm, mmmmmmm, mmmmmmmm, mmmmmmmmm, mmmmmmmmmm, mmmmmmmmmmm, mmmmmmmmmmmm, mmmmmmmmmmmmm, mmmmmmmmmmmmmm, mmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm] | Just x <- lookup 1 m, Just xx <- lookup 11 mm, Just xxx <- lookup 111 mmm, Just xxxx <- lookup 1111 mmmm, Just xxxxx <- lookup 11111 mmmmm, Just xxxxxx <- lookup 6 mmmmmm, Just xxxxxxx <- lookup 5 mmmmmmm, Just xxxxxxxx <- lookup 4 mmmmmmmm, Just xxxxxxxxx <- lookup 3 mmmmmmmmm, Just xxxxxxxxxx <- lookup 2 mmmmmmmmmm, Just xxxxxxxxxxx <- lookup 2 mmmmmmmmmmm, Just xxxxxxxxxxxx <- lookup 21 mmmmmmmmmmmm, Just xxxxxxxxxxxxx <- lookup 211 mmmmmmmmmmmmm, Just xxxxxxxxxxxxxx <- lookup 2111 mmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxx <- lookup 21111 mmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxx <- lookup 211111 mmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxx <- lookup 26 mmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxx <- lookup 25 mmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxx <- lookup 24 mmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxx <- lookup 23 mmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxx <- lookup 221 mmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211 mmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22111 mmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 221111 mmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211111 mmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 226 mmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 225 mmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 224 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 223 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2221 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22211 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2221111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22211111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2226 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2225 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2224 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2223 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22221 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222211 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2222111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22221111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222211111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22226 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22225 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm = x + xx + xxx + xxxx + xxxxx + xxxxxx + xxxxxxx + xxxxxxxx + xxxxxxxxx + xxxxxxxxxx + xxxxxxxxxxx + xxxxxxxxxxxx + xxxxxxxxxxxxx + xxxxxxxxxxxxxx + xxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+f [] = 0
+f [m] | Just x <- lookup 1 m = x
+f [m, mm] | Just x <- lookup 1 m, Just xx <- lookup 11 mm = x + xx
+f [m, mm, mmm] | Just x <- lookup 1 m, Just xx <- lookup 11 mm, Just xxx <- lookup 111 mmm = x + xx + xxx
+f [m, mm, mmm, mmmm] | Just x <- lookup 1 m, Just xx <- lookup 11 mm, Just xxx <- lookup 111 mmm, Just xxxx <- lookup 1111 mmmm = x + xx + xxx + xxxx
+f [m, mm, mmm, mmmm, mmmmm] | Just x <- lookup 1 m, Just xx <- lookup 11 mm, Just xxx <- lookup 111 mmm, Just xxxx <- lookup 1111 mmmm, Just xxxxx <- lookup 11111 mmmmm = x + xx + xxx + xxxx + xxxxx
+f [m, mm, mmm, mmmm, mmmmm, mmmmmm] | Just x <- lookup 1 m, Just xx <- lookup 11 mm, Just xxx <- lookup 111 mmm, Just xxxx <- lookup 1111 mmmm, Just xxxxx <- lookup 11111 mmmmm, Just xxxxxx <- lookup 6 mmmmmm = x + xx + xxx + xxxx + xxxxx + xxxxxx
+f [m, mm, mmm, mmmm, mmmmm, mmmmmm, mmmmmmm] | Just x <- lookup 1 m, Just xx <- lookup 11 mm, Just xxx <- lookup 111 mmm, Just xxxx <- lookup 1111 mmmm, Just xxxxx <- lookup 11111 mmmmm, Just xxxxxx <- lookup 6 mmmmmm, Just xxxxxxx <- lookup 5 mmmmmmm = x + xx + xxx + xxxx + xxxxx + xxxxxx + xxxxxxx
+f [m, mm, mmm, mmmm, mmmmm, mmmmmm, mmmmmmm, mmmmmmmm] | Just x <- lookup 1 m, Just xx <- lookup 11 mm, Just xxx <- lookup 111 mmm, Just xxxx <- lookup 1111 mmmm, Just xxxxx <- lookup 11111 mmmmm, Just xxxxxx <- lookup 6 mmmmmm, Just xxxxxxx <- lookup 5 mmmmmmm, Just xxxxxxxx <- lookup 4 mmmmmmmm = x + xx + xxx + xxxx + xxxxx + xxxxxx + xxxxxxx + xxxxxxxx
+f [m, mm, mmm, mmmm, mmmmm, mmmmmm, mmmmmmm, mmmmmmmm, mmmmmmmmm] | Just x <- lookup 1 m, Just xx <- lookup 11 mm, Just xxx <- lookup 111 mmm, Just xxxx <- lookup 1111 mmmm, Just xxxxx <- lookup 11111 mmmmm, Just xxxxxx <- lookup 6 mmmmmm, Just xxxxxxx <- lookup 5 mmmmmmm, Just xxxxxxxx <- lookup 4 mmmmmmmm, Just xxxxxxxxx <- lookup 3 mmmmmmmmm = x + xx + xxx + xxxx + xxxxx + xxxxxx + xxxxxxx + xxxxxxxx + xxxxxxxxx
+f [m, mm, mmm, mmmm, mmmmm, mmmmmm, mmmmmmm, mmmmmmmm, mmmmmmmmm, mmmmmmmmmm] | Just x <- lookup 1 m, Just xx <- lookup 11 mm, Just xxx <- lookup 111 mmm, Just xxxx <- lookup 1111 mmmm, Just xxxxx <- lookup 11111 mmmmm, Just xxxxxx <- lookup 6 mmmmmm, Just xxxxxxx <- lookup 5 mmmmmmm, Just xxxxxxxx <- lookup 4 mmmmmmmm, Just xxxxxxxxx <- lookup 3 mmmmmmmmm, Just xxxxxxxxxx <- lookup 2 mmmmmmmmmm = x + xx + xxx + xxxx + xxxxx + xxxxxx + xxxxxxx + xxxxxxxx + xxxxxxxxx + xxxxxxxxxx
+f [m, mm, mmm, mmmm, mmmmm, mmmmmm, mmmmmmm, mmmmmmmm, mmmmmmmmm, mmmmmmmmmm, mmmmmmmmmmm] | Just x <- lookup 1 m, Just xx <- lookup 11 mm, Just xxx <- lookup 111 mmm, Just xxxx <- lookup 1111 mmmm, Just xxxxx <- lookup 11111 mmmmm, Just xxxxxx <- lookup 6 mmmmmm, Just xxxxxxx <- lookup 5 mmmmmmm, Just xxxxxxxx <- lookup 4 mmmmmmmm, Just xxxxxxxxx <- lookup 3 mmmmmmmmm, Just xxxxxxxxxx <- lookup 2 mmmmmmmmmm, Just xxxxxxxxxxx <- lookup 2 mmmmmmmmmmm = x + xx + xxx + xxxx + xxxxx + xxxxxx + xxxxxxx + xxxxxxxx + xxxxxxxxx + xxxxxxxxxx + xxxxxxxxxxx
+f [m, mm, mmm, mmmm, mmmmm, mmmmmm, mmmmmmm, mmmmmmmm, mmmmmmmmm, mmmmmmmmmm, mmmmmmmmmmm, mmmmmmmmmmmm] | Just x <- lookup 1 m, Just xx <- lookup 11 mm, Just xxx <- lookup 111 mmm, Just xxxx <- lookup 1111 mmmm, Just xxxxx <- lookup 11111 mmmmm, Just xxxxxx <- lookup 6 mmmmmm, Just xxxxxxx <- lookup 5 mmmmmmm, Just xxxxxxxx <- lookup 4 mmmmmmmm, Just xxxxxxxxx <- lookup 3 mmmmmmmmm, Just xxxxxxxxxx <- lookup 2 mmmmmmmmmm, Just xxxxxxxxxxx <- lookup 2 mmmmmmmmmmm, Just xxxxxxxxxxxx <- lookup 21 mmmmmmmmmmmm = x + xx + xxx + xxxx + xxxxx + xxxxxx + xxxxxxx + xxxxxxxx + xxxxxxxxx + xxxxxxxxxx + xxxxxxxxxxx + xxxxxxxxxxxx
+f [m, mm, mmm, mmmm, mmmmm, mmmmmm, mmmmmmm, mmmmmmmm, mmmmmmmmm, mmmmmmmmmm, mmmmmmmmmmm, mmmmmmmmmmmm, mmmmmmmmmmmmm] | Just x <- lookup 1 m, Just xx <- lookup 11 mm, Just xxx <- lookup 111 mmm, Just xxxx <- lookup 1111 mmmm, Just xxxxx <- lookup 11111 mmmmm, Just xxxxxx <- lookup 6 mmmmmm, Just xxxxxxx <- lookup 5 mmmmmmm, Just xxxxxxxx <- lookup 4 mmmmmmmm, Just xxxxxxxxx <- lookup 3 mmmmmmmmm, Just xxxxxxxxxx <- lookup 2 mmmmmmmmmm, Just xxxxxxxxxxx <- lookup 2 mmmmmmmmmmm, Just xxxxxxxxxxxx <- lookup 21 mmmmmmmmmmmm, Just xxxxxxxxxxxxx <- lookup 211 mmmmmmmmmmmmm = x + xx + xxx + xxxx + xxxxx + xxxxxx + xxxxxxx + xxxxxxxx + xxxxxxxxx + xxxxxxxxxx + xxxxxxxxxxx + xxxxxxxxxxxx + xxxxxxxxxxxxx
+f [m, mm, mmm, mmmm, mmmmm, mmmmmm, mmmmmmm, mmmmmmmm, mmmmmmmmm, mmmmmmmmmm, mmmmmmmmmmm, mmmmmmmmmmmm, mmmmmmmmmmmmm, mmmmmmmmmmmmmm] | Just x <- lookup 1 m, Just xx <- lookup 11 mm, Just xxx <- lookup 111 mmm, Just xxxx <- lookup 1111 mmmm, Just xxxxx <- lookup 11111 mmmmm, Just xxxxxx <- lookup 6 mmmmmm, Just xxxxxxx <- lookup 5 mmmmmmm, Just xxxxxxxx <- lookup 4 mmmmmmmm, Just xxxxxxxxx <- lookup 3 mmmmmmmmm, Just xxxxxxxxxx <- lookup 2 mmmmmmmmmm, Just xxxxxxxxxxx <- lookup 2 mmmmmmmmmmm, Just xxxxxxxxxxxx <- lookup 21 mmmmmmmmmmmm, Just xxxxxxxxxxxxx <- lookup 211 mmmmmmmmmmmmm, Just xxxxxxxxxxxxxx <- lookup 2111 mmmmmmmmmmmmmm = x + xx + xxx + xxxx + xxxxx + xxxxxx + xxxxxxx + xxxxxxxx + xxxxxxxxx + xxxxxxxxxx + xxxxxxxxxxx + xxxxxxxxxxxx + xxxxxxxxxxxxx + xxxxxxxxxxxxxx
+f [m, mm, mmm, mmmm, mmmmm, mmmmmm, mmmmmmm, mmmmmmmm, mmmmmmmmm, mmmmmmmmmm, mmmmmmmmmmm, mmmmmmmmmmmm, mmmmmmmmmmmmm, mmmmmmmmmmmmmm, mmmmmmmmmmmmmmm] | Just x <- lookup 1 m, Just xx <- lookup 11 mm, Just xxx <- lookup 111 mmm, Just xxxx <- lookup 1111 mmmm, Just xxxxx <- lookup 11111 mmmmm, Just xxxxxx <- lookup 6 mmmmmm, Just xxxxxxx <- lookup 5 mmmmmmm, Just xxxxxxxx <- lookup 4 mmmmmmmm, Just xxxxxxxxx <- lookup 3 mmmmmmmmm, Just xxxxxxxxxx <- lookup 2 mmmmmmmmmm, Just xxxxxxxxxxx <- lookup 2 mmmmmmmmmmm, Just xxxxxxxxxxxx <- lookup 21 mmmmmmmmmmmm, Just xxxxxxxxxxxxx <- lookup 211 mmmmmmmmmmmmm, Just xxxxxxxxxxxxxx <- lookup 2111 mmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxx <- lookup 21111 mmmmmmmmmmmmmmm = x + xx + xxx + xxxx + xxxxx + xxxxxx + xxxxxxx + xxxxxxxx + xxxxxxxxx + xxxxxxxxxx + xxxxxxxxxxx + xxxxxxxxxxxx + xxxxxxxxxxxxx + xxxxxxxxxxxxxx + xxxxxxxxxxxxxxx
+f [m, mm, mmm, mmmm, mmmmm, mmmmmm, mmmmmmm, mmmmmmmm, mmmmmmmmm, mmmmmmmmmm, mmmmmmmmmmm, mmmmmmmmmmmm, mmmmmmmmmmmmm, mmmmmmmmmmmmmm, mmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmm] | Just x <- lookup 1 m, Just xx <- lookup 11 mm, Just xxx <- lookup 111 mmm, Just xxxx <- lookup 1111 mmmm, Just xxxxx <- lookup 11111 mmmmm, Just xxxxxx <- lookup 6 mmmmmm, Just xxxxxxx <- lookup 5 mmmmmmm, Just xxxxxxxx <- lookup 4 mmmmmmmm, Just xxxxxxxxx <- lookup 3 mmmmmmmmm, Just xxxxxxxxxx <- lookup 2 mmmmmmmmmm, Just xxxxxxxxxxx <- lookup 2 mmmmmmmmmmm, Just xxxxxxxxxxxx <- lookup 21 mmmmmmmmmmmm, Just xxxxxxxxxxxxx <- lookup 211 mmmmmmmmmmmmm, Just xxxxxxxxxxxxxx <- lookup 2111 mmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxx <- lookup 21111 mmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxx <- lookup 211111 mmmmmmmmmmmmmmmm = x + xx + xxx + xxxx + xxxxx + xxxxxx + xxxxxxx + xxxxxxxx + xxxxxxxxx + xxxxxxxxxx + xxxxxxxxxxx + xxxxxxxxxxxx + xxxxxxxxxxxxx + xxxxxxxxxxxxxx + xxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxx
+f [m, mm, mmm, mmmm, mmmmm, mmmmmm, mmmmmmm, mmmmmmmm, mmmmmmmmm, mmmmmmmmmm, mmmmmmmmmmm, mmmmmmmmmmmm, mmmmmmmmmmmmm, mmmmmmmmmmmmmm, mmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmm] | Just x <- lookup 1 m, Just xx <- lookup 11 mm, Just xxx <- lookup 111 mmm, Just xxxx <- lookup 1111 mmmm, Just xxxxx <- lookup 11111 mmmmm, Just xxxxxx <- lookup 6 mmmmmm, Just xxxxxxx <- lookup 5 mmmmmmm, Just xxxxxxxx <- lookup 4 mmmmmmmm, Just xxxxxxxxx <- lookup 3 mmmmmmmmm, Just xxxxxxxxxx <- lookup 2 mmmmmmmmmm, Just xxxxxxxxxxx <- lookup 2 mmmmmmmmmmm, Just xxxxxxxxxxxx <- lookup 21 mmmmmmmmmmmm, Just xxxxxxxxxxxxx <- lookup 211 mmmmmmmmmmmmm, Just xxxxxxxxxxxxxx <- lookup 2111 mmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxx <- lookup 21111 mmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxx <- lookup 211111 mmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxx <- lookup 26 mmmmmmmmmmmmmmmmm = x + xx + xxx + xxxx + xxxxx + xxxxxx + xxxxxxx + xxxxxxxx + xxxxxxxxx + xxxxxxxxxx + xxxxxxxxxxx + xxxxxxxxxxxx + xxxxxxxxxxxxx + xxxxxxxxxxxxxx + xxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxx
+f [m, mm, mmm, mmmm, mmmmm, mmmmmm, mmmmmmm, mmmmmmmm, mmmmmmmmm, mmmmmmmmmm, mmmmmmmmmmm, mmmmmmmmmmmm, mmmmmmmmmmmmm, mmmmmmmmmmmmmm, mmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmm] | Just x <- lookup 1 m, Just xx <- lookup 11 mm, Just xxx <- lookup 111 mmm, Just xxxx <- lookup 1111 mmmm, Just xxxxx <- lookup 11111 mmmmm, Just xxxxxx <- lookup 6 mmmmmm, Just xxxxxxx <- lookup 5 mmmmmmm, Just xxxxxxxx <- lookup 4 mmmmmmmm, Just xxxxxxxxx <- lookup 3 mmmmmmmmm, Just xxxxxxxxxx <- lookup 2 mmmmmmmmmm, Just xxxxxxxxxxx <- lookup 2 mmmmmmmmmmm, Just xxxxxxxxxxxx <- lookup 21 mmmmmmmmmmmm, Just xxxxxxxxxxxxx <- lookup 211 mmmmmmmmmmmmm, Just xxxxxxxxxxxxxx <- lookup 2111 mmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxx <- lookup 21111 mmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxx <- lookup 211111 mmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxx <- lookup 26 mmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxx <- lookup 25 mmmmmmmmmmmmmmmmmm = x + xx + xxx + xxxx + xxxxx + xxxxxx + xxxxxxx + xxxxxxxx + xxxxxxxxx + xxxxxxxxxx + xxxxxxxxxxx + xxxxxxxxxxxx + xxxxxxxxxxxxx + xxxxxxxxxxxxxx + xxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxx
+f [m, mm, mmm, mmmm, mmmmm, mmmmmm, mmmmmmm, mmmmmmmm, mmmmmmmmm, mmmmmmmmmm, mmmmmmmmmmm, mmmmmmmmmmmm, mmmmmmmmmmmmm, mmmmmmmmmmmmmm, mmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmm] | Just x <- lookup 1 m, Just xx <- lookup 11 mm, Just xxx <- lookup 111 mmm, Just xxxx <- lookup 1111 mmmm, Just xxxxx <- lookup 11111 mmmmm, Just xxxxxx <- lookup 6 mmmmmm, Just xxxxxxx <- lookup 5 mmmmmmm, Just xxxxxxxx <- lookup 4 mmmmmmmm, Just xxxxxxxxx <- lookup 3 mmmmmmmmm, Just xxxxxxxxxx <- lookup 2 mmmmmmmmmm, Just xxxxxxxxxxx <- lookup 2 mmmmmmmmmmm, Just xxxxxxxxxxxx <- lookup 21 mmmmmmmmmmmm, Just xxxxxxxxxxxxx <- lookup 211 mmmmmmmmmmmmm, Just xxxxxxxxxxxxxx <- lookup 2111 mmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxx <- lookup 21111 mmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxx <- lookup 211111 mmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxx <- lookup 26 mmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxx <- lookup 25 mmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxx <- lookup 24 mmmmmmmmmmmmmmmmmmm = x + xx + xxx + xxxx + xxxxx + xxxxxx + xxxxxxx + xxxxxxxx + xxxxxxxxx + xxxxxxxxxx + xxxxxxxxxxx + xxxxxxxxxxxx + xxxxxxxxxxxxx + xxxxxxxxxxxxxx + xxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxx
+f [m, mm, mmm, mmmm, mmmmm, mmmmmm, mmmmmmm, mmmmmmmm, mmmmmmmmm, mmmmmmmmmm, mmmmmmmmmmm, mmmmmmmmmmmm, mmmmmmmmmmmmm, mmmmmmmmmmmmmm, mmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmm] | Just x <- lookup 1 m, Just xx <- lookup 11 mm, Just xxx <- lookup 111 mmm, Just xxxx <- lookup 1111 mmmm, Just xxxxx <- lookup 11111 mmmmm, Just xxxxxx <- lookup 6 mmmmmm, Just xxxxxxx <- lookup 5 mmmmmmm, Just xxxxxxxx <- lookup 4 mmmmmmmm, Just xxxxxxxxx <- lookup 3 mmmmmmmmm, Just xxxxxxxxxx <- lookup 2 mmmmmmmmmm, Just xxxxxxxxxxx <- lookup 2 mmmmmmmmmmm, Just xxxxxxxxxxxx <- lookup 21 mmmmmmmmmmmm, Just xxxxxxxxxxxxx <- lookup 211 mmmmmmmmmmmmm, Just xxxxxxxxxxxxxx <- lookup 2111 mmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxx <- lookup 21111 mmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxx <- lookup 211111 mmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxx <- lookup 26 mmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxx <- lookup 25 mmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxx <- lookup 24 mmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxx <- lookup 23 mmmmmmmmmmmmmmmmmmmm = x + xx + xxx + xxxx + xxxxx + xxxxxx + xxxxxxx + xxxxxxxx + xxxxxxxxx + xxxxxxxxxx + xxxxxxxxxxx + xxxxxxxxxxxx + xxxxxxxxxxxxx + xxxxxxxxxxxxxx + xxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxx
+f [m, mm, mmm, mmmm, mmmmm, mmmmmm, mmmmmmm, mmmmmmmm, mmmmmmmmm, mmmmmmmmmm, mmmmmmmmmmm, mmmmmmmmmmmm, mmmmmmmmmmmmm, mmmmmmmmmmmmmm, mmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmm] | Just x <- lookup 1 m, Just xx <- lookup 11 mm, Just xxx <- lookup 111 mmm, Just xxxx <- lookup 1111 mmmm, Just xxxxx <- lookup 11111 mmmmm, Just xxxxxx <- lookup 6 mmmmmm, Just xxxxxxx <- lookup 5 mmmmmmm, Just xxxxxxxx <- lookup 4 mmmmmmmm, Just xxxxxxxxx <- lookup 3 mmmmmmmmm, Just xxxxxxxxxx <- lookup 2 mmmmmmmmmm, Just xxxxxxxxxxx <- lookup 2 mmmmmmmmmmm, Just xxxxxxxxxxxx <- lookup 21 mmmmmmmmmmmm, Just xxxxxxxxxxxxx <- lookup 211 mmmmmmmmmmmmm, Just xxxxxxxxxxxxxx <- lookup 2111 mmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxx <- lookup 21111 mmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxx <- lookup 211111 mmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxx <- lookup 26 mmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxx <- lookup 25 mmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxx <- lookup 24 mmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxx <- lookup 23 mmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmm = x + xx + xxx + xxxx + xxxxx + xxxxxx + xxxxxxx + xxxxxxxx + xxxxxxxxx + xxxxxxxxxx + xxxxxxxxxxx + xxxxxxxxxxxx + xxxxxxxxxxxxx + xxxxxxxxxxxxxx + xxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxx
+f [m, mm, mmm, mmmm, mmmmm, mmmmmm, mmmmmmm, mmmmmmmm, mmmmmmmmm, mmmmmmmmmm, mmmmmmmmmmm, mmmmmmmmmmmm, mmmmmmmmmmmmm, mmmmmmmmmmmmmm, mmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmm] | Just x <- lookup 1 m, Just xx <- lookup 11 mm, Just xxx <- lookup 111 mmm, Just xxxx <- lookup 1111 mmmm, Just xxxxx <- lookup 11111 mmmmm, Just xxxxxx <- lookup 6 mmmmmm, Just xxxxxxx <- lookup 5 mmmmmmm, Just xxxxxxxx <- lookup 4 mmmmmmmm, Just xxxxxxxxx <- lookup 3 mmmmmmmmm, Just xxxxxxxxxx <- lookup 2 mmmmmmmmmm, Just xxxxxxxxxxx <- lookup 2 mmmmmmmmmmm, Just xxxxxxxxxxxx <- lookup 21 mmmmmmmmmmmm, Just xxxxxxxxxxxxx <- lookup 211 mmmmmmmmmmmmm, Just xxxxxxxxxxxxxx <- lookup 2111 mmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxx <- lookup 21111 mmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxx <- lookup 211111 mmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxx <- lookup 26 mmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxx <- lookup 25 mmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxx <- lookup 24 mmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxx <- lookup 23 mmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmmm = x + xx + xxx + xxxx + xxxxx + xxxxxx + xxxxxxx + xxxxxxxx + xxxxxxxxx + xxxxxxxxxx + xxxxxxxxxxx + xxxxxxxxxxxx + xxxxxxxxxxxxx + xxxxxxxxxxxxxx + xxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxx
+f [m, mm, mmm, mmmm, mmmmm, mmmmmm, mmmmmmm, mmmmmmmm, mmmmmmmmm, mmmmmmmmmm, mmmmmmmmmmm, mmmmmmmmmmmm, mmmmmmmmmmmmm, mmmmmmmmmmmmmm, mmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmm] | Just x <- lookup 1 m, Just xx <- lookup 11 mm, Just xxx <- lookup 111 mmm, Just xxxx <- lookup 1111 mmmm, Just xxxxx <- lookup 11111 mmmmm, Just xxxxxx <- lookup 6 mmmmmm, Just xxxxxxx <- lookup 5 mmmmmmm, Just xxxxxxxx <- lookup 4 mmmmmmmm, Just xxxxxxxxx <- lookup 3 mmmmmmmmm, Just xxxxxxxxxx <- lookup 2 mmmmmmmmmm, Just xxxxxxxxxxx <- lookup 2 mmmmmmmmmmm, Just xxxxxxxxxxxx <- lookup 21 mmmmmmmmmmmm, Just xxxxxxxxxxxxx <- lookup 211 mmmmmmmmmmmmm, Just xxxxxxxxxxxxxx <- lookup 2111 mmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxx <- lookup 21111 mmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxx <- lookup 211111 mmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxx <- lookup 26 mmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxx <- lookup 25 mmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxx <- lookup 24 mmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxx <- lookup 23 mmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxx <- lookup 221 mmmmmmmmmmmmmmmmmmmmmmm = x + xx + xxx + xxxx + xxxxx + xxxxxx + xxxxxxx + xxxxxxxx + xxxxxxxxx + xxxxxxxxxx + xxxxxxxxxxx + xxxxxxxxxxxx + xxxxxxxxxxxxx + xxxxxxxxxxxxxx + xxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxx
+f [m, mm, mmm, mmmm, mmmmm, mmmmmm, mmmmmmm, mmmmmmmm, mmmmmmmmm, mmmmmmmmmm, mmmmmmmmmmm, mmmmmmmmmmmm, mmmmmmmmmmmmm, mmmmmmmmmmmmmm, mmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmm] | Just x <- lookup 1 m, Just xx <- lookup 11 mm, Just xxx <- lookup 111 mmm, Just xxxx <- lookup 1111 mmmm, Just xxxxx <- lookup 11111 mmmmm, Just xxxxxx <- lookup 6 mmmmmm, Just xxxxxxx <- lookup 5 mmmmmmm, Just xxxxxxxx <- lookup 4 mmmmmmmm, Just xxxxxxxxx <- lookup 3 mmmmmmmmm, Just xxxxxxxxxx <- lookup 2 mmmmmmmmmm, Just xxxxxxxxxxx <- lookup 2 mmmmmmmmmmm, Just xxxxxxxxxxxx <- lookup 21 mmmmmmmmmmmm, Just xxxxxxxxxxxxx <- lookup 211 mmmmmmmmmmmmm, Just xxxxxxxxxxxxxx <- lookup 2111 mmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxx <- lookup 21111 mmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxx <- lookup 211111 mmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxx <- lookup 26 mmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxx <- lookup 25 mmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxx <- lookup 24 mmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxx <- lookup 23 mmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxx <- lookup 221 mmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211 mmmmmmmmmmmmmmmmmmmmmmmm = x + xx + xxx + xxxx + xxxxx + xxxxxx + xxxxxxx + xxxxxxxx + xxxxxxxxx + xxxxxxxxxx + xxxxxxxxxxx + xxxxxxxxxxxx + xxxxxxxxxxxxx + xxxxxxxxxxxxxx + xxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxx
+f [m, mm, mmm, mmmm, mmmmm, mmmmmm, mmmmmmm, mmmmmmmm, mmmmmmmmm, mmmmmmmmmm, mmmmmmmmmmm, mmmmmmmmmmmm, mmmmmmmmmmmmm, mmmmmmmmmmmmmm, mmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmm] | Just x <- lookup 1 m, Just xx <- lookup 11 mm, Just xxx <- lookup 111 mmm, Just xxxx <- lookup 1111 mmmm, Just xxxxx <- lookup 11111 mmmmm, Just xxxxxx <- lookup 6 mmmmmm, Just xxxxxxx <- lookup 5 mmmmmmm, Just xxxxxxxx <- lookup 4 mmmmmmmm, Just xxxxxxxxx <- lookup 3 mmmmmmmmm, Just xxxxxxxxxx <- lookup 2 mmmmmmmmmm, Just xxxxxxxxxxx <- lookup 2 mmmmmmmmmmm, Just xxxxxxxxxxxx <- lookup 21 mmmmmmmmmmmm, Just xxxxxxxxxxxxx <- lookup 211 mmmmmmmmmmmmm, Just xxxxxxxxxxxxxx <- lookup 2111 mmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxx <- lookup 21111 mmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxx <- lookup 211111 mmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxx <- lookup 26 mmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxx <- lookup 25 mmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxx <- lookup 24 mmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxx <- lookup 23 mmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxx <- lookup 221 mmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211 mmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22111 mmmmmmmmmmmmmmmmmmmmmmmmm = x + xx + xxx + xxxx + xxxxx + xxxxxx + xxxxxxx + xxxxxxxx + xxxxxxxxx + xxxxxxxxxx + xxxxxxxxxxx + xxxxxxxxxxxx + xxxxxxxxxxxxx + xxxxxxxxxxxxxx + xxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxx
+f [m, mm, mmm, mmmm, mmmmm, mmmmmm, mmmmmmm, mmmmmmmm, mmmmmmmmm, mmmmmmmmmm, mmmmmmmmmmm, mmmmmmmmmmmm, mmmmmmmmmmmmm, mmmmmmmmmmmmmm, mmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmm] | Just x <- lookup 1 m, Just xx <- lookup 11 mm, Just xxx <- lookup 111 mmm, Just xxxx <- lookup 1111 mmmm, Just xxxxx <- lookup 11111 mmmmm, Just xxxxxx <- lookup 6 mmmmmm, Just xxxxxxx <- lookup 5 mmmmmmm, Just xxxxxxxx <- lookup 4 mmmmmmmm, Just xxxxxxxxx <- lookup 3 mmmmmmmmm, Just xxxxxxxxxx <- lookup 2 mmmmmmmmmm, Just xxxxxxxxxxx <- lookup 2 mmmmmmmmmmm, Just xxxxxxxxxxxx <- lookup 21 mmmmmmmmmmmm, Just xxxxxxxxxxxxx <- lookup 211 mmmmmmmmmmmmm, Just xxxxxxxxxxxxxx <- lookup 2111 mmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxx <- lookup 21111 mmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxx <- lookup 211111 mmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxx <- lookup 26 mmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxx <- lookup 25 mmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxx <- lookup 24 mmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxx <- lookup 23 mmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxx <- lookup 221 mmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211 mmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22111 mmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 221111 mmmmmmmmmmmmmmmmmmmmmmmmmm = x + xx + xxx + xxxx + xxxxx + xxxxxx + xxxxxxx + xxxxxxxx + xxxxxxxxx + xxxxxxxxxx + xxxxxxxxxxx + xxxxxxxxxxxx + xxxxxxxxxxxxx + xxxxxxxxxxxxxx + xxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxx
+f [m, mm, mmm, mmmm, mmmmm, mmmmmm, mmmmmmm, mmmmmmmm, mmmmmmmmm, mmmmmmmmmm, mmmmmmmmmmm, mmmmmmmmmmmm, mmmmmmmmmmmmm, mmmmmmmmmmmmmm, mmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmm] | Just x <- lookup 1 m, Just xx <- lookup 11 mm, Just xxx <- lookup 111 mmm, Just xxxx <- lookup 1111 mmmm, Just xxxxx <- lookup 11111 mmmmm, Just xxxxxx <- lookup 6 mmmmmm, Just xxxxxxx <- lookup 5 mmmmmmm, Just xxxxxxxx <- lookup 4 mmmmmmmm, Just xxxxxxxxx <- lookup 3 mmmmmmmmm, Just xxxxxxxxxx <- lookup 2 mmmmmmmmmm, Just xxxxxxxxxxx <- lookup 2 mmmmmmmmmmm, Just xxxxxxxxxxxx <- lookup 21 mmmmmmmmmmmm, Just xxxxxxxxxxxxx <- lookup 211 mmmmmmmmmmmmm, Just xxxxxxxxxxxxxx <- lookup 2111 mmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxx <- lookup 21111 mmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxx <- lookup 211111 mmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxx <- lookup 26 mmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxx <- lookup 25 mmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxx <- lookup 24 mmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxx <- lookup 23 mmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxx <- lookup 221 mmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211 mmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22111 mmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 221111 mmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211111 mmmmmmmmmmmmmmmmmmmmmmmmmmm = x + xx + xxx + xxxx + xxxxx + xxxxxx + xxxxxxx + xxxxxxxx + xxxxxxxxx + xxxxxxxxxx + xxxxxxxxxxx + xxxxxxxxxxxx + xxxxxxxxxxxxx + xxxxxxxxxxxxxx + xxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxx
+f [m, mm, mmm, mmmm, mmmmm, mmmmmm, mmmmmmm, mmmmmmmm, mmmmmmmmm, mmmmmmmmmm, mmmmmmmmmmm, mmmmmmmmmmmm, mmmmmmmmmmmmm, mmmmmmmmmmmmmm, mmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmm] | Just x <- lookup 1 m, Just xx <- lookup 11 mm, Just xxx <- lookup 111 mmm, Just xxxx <- lookup 1111 mmmm, Just xxxxx <- lookup 11111 mmmmm, Just xxxxxx <- lookup 6 mmmmmm, Just xxxxxxx <- lookup 5 mmmmmmm, Just xxxxxxxx <- lookup 4 mmmmmmmm, Just xxxxxxxxx <- lookup 3 mmmmmmmmm, Just xxxxxxxxxx <- lookup 2 mmmmmmmmmm, Just xxxxxxxxxxx <- lookup 2 mmmmmmmmmmm, Just xxxxxxxxxxxx <- lookup 21 mmmmmmmmmmmm, Just xxxxxxxxxxxxx <- lookup 211 mmmmmmmmmmmmm, Just xxxxxxxxxxxxxx <- lookup 2111 mmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxx <- lookup 21111 mmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxx <- lookup 211111 mmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxx <- lookup 26 mmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxx <- lookup 25 mmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxx <- lookup 24 mmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxx <- lookup 23 mmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxx <- lookup 221 mmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211 mmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22111 mmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 221111 mmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211111 mmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 226 mmmmmmmmmmmmmmmmmmmmmmmmmmmm = x + xx + xxx + xxxx + xxxxx + xxxxxx + xxxxxxx + xxxxxxxx + xxxxxxxxx + xxxxxxxxxx + xxxxxxxxxxx + xxxxxxxxxxxx + xxxxxxxxxxxxx + xxxxxxxxxxxxxx + xxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxx
+f [m, mm, mmm, mmmm, mmmmm, mmmmmm, mmmmmmm, mmmmmmmm, mmmmmmmmm, mmmmmmmmmm, mmmmmmmmmmm, mmmmmmmmmmmm, mmmmmmmmmmmmm, mmmmmmmmmmmmmm, mmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmm] | Just x <- lookup 1 m, Just xx <- lookup 11 mm, Just xxx <- lookup 111 mmm, Just xxxx <- lookup 1111 mmmm, Just xxxxx <- lookup 11111 mmmmm, Just xxxxxx <- lookup 6 mmmmmm, Just xxxxxxx <- lookup 5 mmmmmmm, Just xxxxxxxx <- lookup 4 mmmmmmmm, Just xxxxxxxxx <- lookup 3 mmmmmmmmm, Just xxxxxxxxxx <- lookup 2 mmmmmmmmmm, Just xxxxxxxxxxx <- lookup 2 mmmmmmmmmmm, Just xxxxxxxxxxxx <- lookup 21 mmmmmmmmmmmm, Just xxxxxxxxxxxxx <- lookup 211 mmmmmmmmmmmmm, Just xxxxxxxxxxxxxx <- lookup 2111 mmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxx <- lookup 21111 mmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxx <- lookup 211111 mmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxx <- lookup 26 mmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxx <- lookup 25 mmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxx <- lookup 24 mmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxx <- lookup 23 mmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxx <- lookup 221 mmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211 mmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22111 mmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 221111 mmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211111 mmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 226 mmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 225 mmmmmmmmmmmmmmmmmmmmmmmmmmmmm = x + xx + xxx + xxxx + xxxxx + xxxxxx + xxxxxxx + xxxxxxxx + xxxxxxxxx + xxxxxxxxxx + xxxxxxxxxxx + xxxxxxxxxxxx + xxxxxxxxxxxxx + xxxxxxxxxxxxxx + xxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+f [m, mm, mmm, mmmm, mmmmm, mmmmmm, mmmmmmm, mmmmmmmm, mmmmmmmmm, mmmmmmmmmm, mmmmmmmmmmm, mmmmmmmmmmmm, mmmmmmmmmmmmm, mmmmmmmmmmmmmm, mmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm] | Just x <- lookup 1 m, Just xx <- lookup 11 mm, Just xxx <- lookup 111 mmm, Just xxxx <- lookup 1111 mmmm, Just xxxxx <- lookup 11111 mmmmm, Just xxxxxx <- lookup 6 mmmmmm, Just xxxxxxx <- lookup 5 mmmmmmm, Just xxxxxxxx <- lookup 4 mmmmmmmm, Just xxxxxxxxx <- lookup 3 mmmmmmmmm, Just xxxxxxxxxx <- lookup 2 mmmmmmmmmm, Just xxxxxxxxxxx <- lookup 2 mmmmmmmmmmm, Just xxxxxxxxxxxx <- lookup 21 mmmmmmmmmmmm, Just xxxxxxxxxxxxx <- lookup 211 mmmmmmmmmmmmm, Just xxxxxxxxxxxxxx <- lookup 2111 mmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxx <- lookup 21111 mmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxx <- lookup 211111 mmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxx <- lookup 26 mmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxx <- lookup 25 mmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxx <- lookup 24 mmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxx <- lookup 23 mmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxx <- lookup 221 mmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211 mmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22111 mmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 221111 mmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211111 mmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 226 mmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 225 mmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 224 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm = x + xx + xxx + xxxx + xxxxx + xxxxxx + xxxxxxx + xxxxxxxx + xxxxxxxxx + xxxxxxxxxx + xxxxxxxxxxx + xxxxxxxxxxxx + xxxxxxxxxxxxx + xxxxxxxxxxxxxx + xxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+f [m, mm, mmm, mmmm, mmmmm, mmmmmm, mmmmmmm, mmmmmmmm, mmmmmmmmm, mmmmmmmmmm, mmmmmmmmmmm, mmmmmmmmmmmm, mmmmmmmmmmmmm, mmmmmmmmmmmmmm, mmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm] | Just x <- lookup 1 m, Just xx <- lookup 11 mm, Just xxx <- lookup 111 mmm, Just xxxx <- lookup 1111 mmmm, Just xxxxx <- lookup 11111 mmmmm, Just xxxxxx <- lookup 6 mmmmmm, Just xxxxxxx <- lookup 5 mmmmmmm, Just xxxxxxxx <- lookup 4 mmmmmmmm, Just xxxxxxxxx <- lookup 3 mmmmmmmmm, Just xxxxxxxxxx <- lookup 2 mmmmmmmmmm, Just xxxxxxxxxxx <- lookup 2 mmmmmmmmmmm, Just xxxxxxxxxxxx <- lookup 21 mmmmmmmmmmmm, Just xxxxxxxxxxxxx <- lookup 211 mmmmmmmmmmmmm, Just xxxxxxxxxxxxxx <- lookup 2111 mmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxx <- lookup 21111 mmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxx <- lookup 211111 mmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxx <- lookup 26 mmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxx <- lookup 25 mmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxx <- lookup 24 mmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxx <- lookup 23 mmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxx <- lookup 221 mmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211 mmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22111 mmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 221111 mmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211111 mmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 226 mmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 225 mmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 224 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 223 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm = x + xx + xxx + xxxx + xxxxx + xxxxxx + xxxxxxx + xxxxxxxx + xxxxxxxxx + xxxxxxxxxx + xxxxxxxxxxx + xxxxxxxxxxxx + xxxxxxxxxxxxx + xxxxxxxxxxxxxx + xxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+f [m, mm, mmm, mmmm, mmmmm, mmmmmm, mmmmmmm, mmmmmmmm, mmmmmmmmm, mmmmmmmmmm, mmmmmmmmmmm, mmmmmmmmmmmm, mmmmmmmmmmmmm, mmmmmmmmmmmmmm, mmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm] | Just x <- lookup 1 m, Just xx <- lookup 11 mm, Just xxx <- lookup 111 mmm, Just xxxx <- lookup 1111 mmmm, Just xxxxx <- lookup 11111 mmmmm, Just xxxxxx <- lookup 6 mmmmmm, Just xxxxxxx <- lookup 5 mmmmmmm, Just xxxxxxxx <- lookup 4 mmmmmmmm, Just xxxxxxxxx <- lookup 3 mmmmmmmmm, Just xxxxxxxxxx <- lookup 2 mmmmmmmmmm, Just xxxxxxxxxxx <- lookup 2 mmmmmmmmmmm, Just xxxxxxxxxxxx <- lookup 21 mmmmmmmmmmmm, Just xxxxxxxxxxxxx <- lookup 211 mmmmmmmmmmmmm, Just xxxxxxxxxxxxxx <- lookup 2111 mmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxx <- lookup 21111 mmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxx <- lookup 211111 mmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxx <- lookup 26 mmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxx <- lookup 25 mmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxx <- lookup 24 mmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxx <- lookup 23 mmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxx <- lookup 221 mmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211 mmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22111 mmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 221111 mmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211111 mmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 226 mmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 225 mmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 224 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 223 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm = x + xx + xxx + xxxx + xxxxx + xxxxxx + xxxxxxx + xxxxxxxx + xxxxxxxxx + xxxxxxxxxx + xxxxxxxxxxx + xxxxxxxxxxxx + xxxxxxxxxxxxx + xxxxxxxxxxxxxx + xxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+f [m, mm, mmm, mmmm, mmmmm, mmmmmm, mmmmmmm, mmmmmmmm, mmmmmmmmm, mmmmmmmmmm, mmmmmmmmmmm, mmmmmmmmmmmm, mmmmmmmmmmmmm, mmmmmmmmmmmmmm, mmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm] | Just x <- lookup 1 m, Just xx <- lookup 11 mm, Just xxx <- lookup 111 mmm, Just xxxx <- lookup 1111 mmmm, Just xxxxx <- lookup 11111 mmmmm, Just xxxxxx <- lookup 6 mmmmmm, Just xxxxxxx <- lookup 5 mmmmmmm, Just xxxxxxxx <- lookup 4 mmmmmmmm, Just xxxxxxxxx <- lookup 3 mmmmmmmmm, Just xxxxxxxxxx <- lookup 2 mmmmmmmmmm, Just xxxxxxxxxxx <- lookup 2 mmmmmmmmmmm, Just xxxxxxxxxxxx <- lookup 21 mmmmmmmmmmmm, Just xxxxxxxxxxxxx <- lookup 211 mmmmmmmmmmmmm, Just xxxxxxxxxxxxxx <- lookup 2111 mmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxx <- lookup 21111 mmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxx <- lookup 211111 mmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxx <- lookup 26 mmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxx <- lookup 25 mmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxx <- lookup 24 mmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxx <- lookup 23 mmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxx <- lookup 221 mmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211 mmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22111 mmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 221111 mmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211111 mmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 226 mmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 225 mmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 224 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 223 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm = x + xx + xxx + xxxx + xxxxx + xxxxxx + xxxxxxx + xxxxxxxx + xxxxxxxxx + xxxxxxxxxx + xxxxxxxxxxx + xxxxxxxxxxxx + xxxxxxxxxxxxx + xxxxxxxxxxxxxx + xxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+f [m, mm, mmm, mmmm, mmmmm, mmmmmm, mmmmmmm, mmmmmmmm, mmmmmmmmm, mmmmmmmmmm, mmmmmmmmmmm, mmmmmmmmmmmm, mmmmmmmmmmmmm, mmmmmmmmmmmmmm, mmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm] | Just x <- lookup 1 m, Just xx <- lookup 11 mm, Just xxx <- lookup 111 mmm, Just xxxx <- lookup 1111 mmmm, Just xxxxx <- lookup 11111 mmmmm, Just xxxxxx <- lookup 6 mmmmmm, Just xxxxxxx <- lookup 5 mmmmmmm, Just xxxxxxxx <- lookup 4 mmmmmmmm, Just xxxxxxxxx <- lookup 3 mmmmmmmmm, Just xxxxxxxxxx <- lookup 2 mmmmmmmmmm, Just xxxxxxxxxxx <- lookup 2 mmmmmmmmmmm, Just xxxxxxxxxxxx <- lookup 21 mmmmmmmmmmmm, Just xxxxxxxxxxxxx <- lookup 211 mmmmmmmmmmmmm, Just xxxxxxxxxxxxxx <- lookup 2111 mmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxx <- lookup 21111 mmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxx <- lookup 211111 mmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxx <- lookup 26 mmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxx <- lookup 25 mmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxx <- lookup 24 mmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxx <- lookup 23 mmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxx <- lookup 221 mmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211 mmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22111 mmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 221111 mmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211111 mmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 226 mmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 225 mmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 224 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 223 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2221 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm = x + xx + xxx + xxxx + xxxxx + xxxxxx + xxxxxxx + xxxxxxxx + xxxxxxxxx + xxxxxxxxxx + xxxxxxxxxxx + xxxxxxxxxxxx + xxxxxxxxxxxxx + xxxxxxxxxxxxxx + xxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+f [m, mm, mmm, mmmm, mmmmm, mmmmmm, mmmmmmm, mmmmmmmm, mmmmmmmmm, mmmmmmmmmm, mmmmmmmmmmm, mmmmmmmmmmmm, mmmmmmmmmmmmm, mmmmmmmmmmmmmm, mmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm] | Just x <- lookup 1 m, Just xx <- lookup 11 mm, Just xxx <- lookup 111 mmm, Just xxxx <- lookup 1111 mmmm, Just xxxxx <- lookup 11111 mmmmm, Just xxxxxx <- lookup 6 mmmmmm, Just xxxxxxx <- lookup 5 mmmmmmm, Just xxxxxxxx <- lookup 4 mmmmmmmm, Just xxxxxxxxx <- lookup 3 mmmmmmmmm, Just xxxxxxxxxx <- lookup 2 mmmmmmmmmm, Just xxxxxxxxxxx <- lookup 2 mmmmmmmmmmm, Just xxxxxxxxxxxx <- lookup 21 mmmmmmmmmmmm, Just xxxxxxxxxxxxx <- lookup 211 mmmmmmmmmmmmm, Just xxxxxxxxxxxxxx <- lookup 2111 mmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxx <- lookup 21111 mmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxx <- lookup 211111 mmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxx <- lookup 26 mmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxx <- lookup 25 mmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxx <- lookup 24 mmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxx <- lookup 23 mmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxx <- lookup 221 mmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211 mmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22111 mmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 221111 mmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211111 mmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 226 mmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 225 mmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 224 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 223 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2221 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22211 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm = x + xx + xxx + xxxx + xxxxx + xxxxxx + xxxxxxx + xxxxxxxx + xxxxxxxxx + xxxxxxxxxx + xxxxxxxxxxx + xxxxxxxxxxxx + xxxxxxxxxxxxx + xxxxxxxxxxxxxx + xxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+f [m, mm, mmm, mmmm, mmmmm, mmmmmm, mmmmmmm, mmmmmmmm, mmmmmmmmm, mmmmmmmmmm, mmmmmmmmmmm, mmmmmmmmmmmm, mmmmmmmmmmmmm, mmmmmmmmmmmmmm, mmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm] | Just x <- lookup 1 m, Just xx <- lookup 11 mm, Just xxx <- lookup 111 mmm, Just xxxx <- lookup 1111 mmmm, Just xxxxx <- lookup 11111 mmmmm, Just xxxxxx <- lookup 6 mmmmmm, Just xxxxxxx <- lookup 5 mmmmmmm, Just xxxxxxxx <- lookup 4 mmmmmmmm, Just xxxxxxxxx <- lookup 3 mmmmmmmmm, Just xxxxxxxxxx <- lookup 2 mmmmmmmmmm, Just xxxxxxxxxxx <- lookup 2 mmmmmmmmmmm, Just xxxxxxxxxxxx <- lookup 21 mmmmmmmmmmmm, Just xxxxxxxxxxxxx <- lookup 211 mmmmmmmmmmmmm, Just xxxxxxxxxxxxxx <- lookup 2111 mmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxx <- lookup 21111 mmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxx <- lookup 211111 mmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxx <- lookup 26 mmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxx <- lookup 25 mmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxx <- lookup 24 mmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxx <- lookup 23 mmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxx <- lookup 221 mmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211 mmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22111 mmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 221111 mmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211111 mmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 226 mmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 225 mmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 224 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 223 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2221 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22211 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm = x + xx + xxx + xxxx + xxxxx + xxxxxx + xxxxxxx + xxxxxxxx + xxxxxxxxx + xxxxxxxxxx + xxxxxxxxxxx + xxxxxxxxxxxx + xxxxxxxxxxxxx + xxxxxxxxxxxxxx + xxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+f [m, mm, mmm, mmmm, mmmmm, mmmmmm, mmmmmmm, mmmmmmmm, mmmmmmmmm, mmmmmmmmmm, mmmmmmmmmmm, mmmmmmmmmmmm, mmmmmmmmmmmmm, mmmmmmmmmmmmmm, mmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm] | Just x <- lookup 1 m, Just xx <- lookup 11 mm, Just xxx <- lookup 111 mmm, Just xxxx <- lookup 1111 mmmm, Just xxxxx <- lookup 11111 mmmmm, Just xxxxxx <- lookup 6 mmmmmm, Just xxxxxxx <- lookup 5 mmmmmmm, Just xxxxxxxx <- lookup 4 mmmmmmmm, Just xxxxxxxxx <- lookup 3 mmmmmmmmm, Just xxxxxxxxxx <- lookup 2 mmmmmmmmmm, Just xxxxxxxxxxx <- lookup 2 mmmmmmmmmmm, Just xxxxxxxxxxxx <- lookup 21 mmmmmmmmmmmm, Just xxxxxxxxxxxxx <- lookup 211 mmmmmmmmmmmmm, Just xxxxxxxxxxxxxx <- lookup 2111 mmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxx <- lookup 21111 mmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxx <- lookup 211111 mmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxx <- lookup 26 mmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxx <- lookup 25 mmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxx <- lookup 24 mmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxx <- lookup 23 mmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxx <- lookup 221 mmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211 mmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22111 mmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 221111 mmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211111 mmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 226 mmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 225 mmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 224 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 223 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2221 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22211 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2221111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm = x + xx + xxx + xxxx + xxxxx + xxxxxx + xxxxxxx + xxxxxxxx + xxxxxxxxx + xxxxxxxxxx + xxxxxxxxxxx + xxxxxxxxxxxx + xxxxxxxxxxxxx + xxxxxxxxxxxxxx + xxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+f [m, mm, mmm, mmmm, mmmmm, mmmmmm, mmmmmmm, mmmmmmmm, mmmmmmmmm, mmmmmmmmmm, mmmmmmmmmmm, mmmmmmmmmmmm, mmmmmmmmmmmmm, mmmmmmmmmmmmmm, mmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm] | Just x <- lookup 1 m, Just xx <- lookup 11 mm, Just xxx <- lookup 111 mmm, Just xxxx <- lookup 1111 mmmm, Just xxxxx <- lookup 11111 mmmmm, Just xxxxxx <- lookup 6 mmmmmm, Just xxxxxxx <- lookup 5 mmmmmmm, Just xxxxxxxx <- lookup 4 mmmmmmmm, Just xxxxxxxxx <- lookup 3 mmmmmmmmm, Just xxxxxxxxxx <- lookup 2 mmmmmmmmmm, Just xxxxxxxxxxx <- lookup 2 mmmmmmmmmmm, Just xxxxxxxxxxxx <- lookup 21 mmmmmmmmmmmm, Just xxxxxxxxxxxxx <- lookup 211 mmmmmmmmmmmmm, Just xxxxxxxxxxxxxx <- lookup 2111 mmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxx <- lookup 21111 mmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxx <- lookup 211111 mmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxx <- lookup 26 mmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxx <- lookup 25 mmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxx <- lookup 24 mmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxx <- lookup 23 mmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxx <- lookup 221 mmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211 mmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22111 mmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 221111 mmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211111 mmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 226 mmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 225 mmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 224 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 223 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2221 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22211 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2221111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22211111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm = x + xx + xxx + xxxx + xxxxx + xxxxxx + xxxxxxx + xxxxxxxx + xxxxxxxxx + xxxxxxxxxx + xxxxxxxxxxx + xxxxxxxxxxxx + xxxxxxxxxxxxx + xxxxxxxxxxxxxx + xxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+f [m, mm, mmm, mmmm, mmmmm, mmmmmm, mmmmmmm, mmmmmmmm, mmmmmmmmm, mmmmmmmmmm, mmmmmmmmmmm, mmmmmmmmmmmm, mmmmmmmmmmmmm, mmmmmmmmmmmmmm, mmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm] | Just x <- lookup 1 m, Just xx <- lookup 11 mm, Just xxx <- lookup 111 mmm, Just xxxx <- lookup 1111 mmmm, Just xxxxx <- lookup 11111 mmmmm, Just xxxxxx <- lookup 6 mmmmmm, Just xxxxxxx <- lookup 5 mmmmmmm, Just xxxxxxxx <- lookup 4 mmmmmmmm, Just xxxxxxxxx <- lookup 3 mmmmmmmmm, Just xxxxxxxxxx <- lookup 2 mmmmmmmmmm, Just xxxxxxxxxxx <- lookup 2 mmmmmmmmmmm, Just xxxxxxxxxxxx <- lookup 21 mmmmmmmmmmmm, Just xxxxxxxxxxxxx <- lookup 211 mmmmmmmmmmmmm, Just xxxxxxxxxxxxxx <- lookup 2111 mmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxx <- lookup 21111 mmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxx <- lookup 211111 mmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxx <- lookup 26 mmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxx <- lookup 25 mmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxx <- lookup 24 mmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxx <- lookup 23 mmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxx <- lookup 221 mmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211 mmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22111 mmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 221111 mmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211111 mmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 226 mmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 225 mmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 224 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 223 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2221 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22211 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2221111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22211111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2226 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm = x + xx + xxx + xxxx + xxxxx + xxxxxx + xxxxxxx + xxxxxxxx + xxxxxxxxx + xxxxxxxxxx + xxxxxxxxxxx + xxxxxxxxxxxx + xxxxxxxxxxxxx + xxxxxxxxxxxxxx + xxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+f [m, mm, mmm, mmmm, mmmmm, mmmmmm, mmmmmmm, mmmmmmmm, mmmmmmmmm, mmmmmmmmmm, mmmmmmmmmmm, mmmmmmmmmmmm, mmmmmmmmmmmmm, mmmmmmmmmmmmmm, mmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm] | Just x <- lookup 1 m, Just xx <- lookup 11 mm, Just xxx <- lookup 111 mmm, Just xxxx <- lookup 1111 mmmm, Just xxxxx <- lookup 11111 mmmmm, Just xxxxxx <- lookup 6 mmmmmm, Just xxxxxxx <- lookup 5 mmmmmmm, Just xxxxxxxx <- lookup 4 mmmmmmmm, Just xxxxxxxxx <- lookup 3 mmmmmmmmm, Just xxxxxxxxxx <- lookup 2 mmmmmmmmmm, Just xxxxxxxxxxx <- lookup 2 mmmmmmmmmmm, Just xxxxxxxxxxxx <- lookup 21 mmmmmmmmmmmm, Just xxxxxxxxxxxxx <- lookup 211 mmmmmmmmmmmmm, Just xxxxxxxxxxxxxx <- lookup 2111 mmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxx <- lookup 21111 mmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxx <- lookup 211111 mmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxx <- lookup 26 mmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxx <- lookup 25 mmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxx <- lookup 24 mmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxx <- lookup 23 mmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxx <- lookup 221 mmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211 mmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22111 mmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 221111 mmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211111 mmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 226 mmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 225 mmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 224 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 223 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2221 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22211 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2221111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22211111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2226 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2225 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm = x + xx + xxx + xxxx + xxxxx + xxxxxx + xxxxxxx + xxxxxxxx + xxxxxxxxx + xxxxxxxxxx + xxxxxxxxxxx + xxxxxxxxxxxx + xxxxxxxxxxxxx + xxxxxxxxxxxxxx + xxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+f [m, mm, mmm, mmmm, mmmmm, mmmmmm, mmmmmmm, mmmmmmmm, mmmmmmmmm, mmmmmmmmmm, mmmmmmmmmmm, mmmmmmmmmmmm, mmmmmmmmmmmmm, mmmmmmmmmmmmmm, mmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm] | Just x <- lookup 1 m, Just xx <- lookup 11 mm, Just xxx <- lookup 111 mmm, Just xxxx <- lookup 1111 mmmm, Just xxxxx <- lookup 11111 mmmmm, Just xxxxxx <- lookup 6 mmmmmm, Just xxxxxxx <- lookup 5 mmmmmmm, Just xxxxxxxx <- lookup 4 mmmmmmmm, Just xxxxxxxxx <- lookup 3 mmmmmmmmm, Just xxxxxxxxxx <- lookup 2 mmmmmmmmmm, Just xxxxxxxxxxx <- lookup 2 mmmmmmmmmmm, Just xxxxxxxxxxxx <- lookup 21 mmmmmmmmmmmm, Just xxxxxxxxxxxxx <- lookup 211 mmmmmmmmmmmmm, Just xxxxxxxxxxxxxx <- lookup 2111 mmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxx <- lookup 21111 mmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxx <- lookup 211111 mmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxx <- lookup 26 mmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxx <- lookup 25 mmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxx <- lookup 24 mmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxx <- lookup 23 mmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxx <- lookup 221 mmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211 mmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22111 mmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 221111 mmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211111 mmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 226 mmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 225 mmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 224 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 223 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2221 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22211 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2221111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22211111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2226 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2225 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2224 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm = x + xx + xxx + xxxx + xxxxx + xxxxxx + xxxxxxx + xxxxxxxx + xxxxxxxxx + xxxxxxxxxx + xxxxxxxxxxx + xxxxxxxxxxxx + xxxxxxxxxxxxx + xxxxxxxxxxxxxx + xxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+f [m, mm, mmm, mmmm, mmmmm, mmmmmm, mmmmmmm, mmmmmmmm, mmmmmmmmm, mmmmmmmmmm, mmmmmmmmmmm, mmmmmmmmmmmm, mmmmmmmmmmmmm, mmmmmmmmmmmmmm, mmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm] | Just x <- lookup 1 m, Just xx <- lookup 11 mm, Just xxx <- lookup 111 mmm, Just xxxx <- lookup 1111 mmmm, Just xxxxx <- lookup 11111 mmmmm, Just xxxxxx <- lookup 6 mmmmmm, Just xxxxxxx <- lookup 5 mmmmmmm, Just xxxxxxxx <- lookup 4 mmmmmmmm, Just xxxxxxxxx <- lookup 3 mmmmmmmmm, Just xxxxxxxxxx <- lookup 2 mmmmmmmmmm, Just xxxxxxxxxxx <- lookup 2 mmmmmmmmmmm, Just xxxxxxxxxxxx <- lookup 21 mmmmmmmmmmmm, Just xxxxxxxxxxxxx <- lookup 211 mmmmmmmmmmmmm, Just xxxxxxxxxxxxxx <- lookup 2111 mmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxx <- lookup 21111 mmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxx <- lookup 211111 mmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxx <- lookup 26 mmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxx <- lookup 25 mmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxx <- lookup 24 mmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxx <- lookup 23 mmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxx <- lookup 221 mmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211 mmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22111 mmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 221111 mmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211111 mmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 226 mmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 225 mmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 224 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 223 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2221 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22211 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2221111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22211111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2226 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2225 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2224 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2223 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm = x + xx + xxx + xxxx + xxxxx + xxxxxx + xxxxxxx + xxxxxxxx + xxxxxxxxx + xxxxxxxxxx + xxxxxxxxxxx + xxxxxxxxxxxx + xxxxxxxxxxxxx + xxxxxxxxxxxxxx + xxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+f [m, mm, mmm, mmmm, mmmmm, mmmmmm, mmmmmmm, mmmmmmmm, mmmmmmmmm, mmmmmmmmmm, mmmmmmmmmmm, mmmmmmmmmmmm, mmmmmmmmmmmmm, mmmmmmmmmmmmmm, mmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm] | Just x <- lookup 1 m, Just xx <- lookup 11 mm, Just xxx <- lookup 111 mmm, Just xxxx <- lookup 1111 mmmm, Just xxxxx <- lookup 11111 mmmmm, Just xxxxxx <- lookup 6 mmmmmm, Just xxxxxxx <- lookup 5 mmmmmmm, Just xxxxxxxx <- lookup 4 mmmmmmmm, Just xxxxxxxxx <- lookup 3 mmmmmmmmm, Just xxxxxxxxxx <- lookup 2 mmmmmmmmmm, Just xxxxxxxxxxx <- lookup 2 mmmmmmmmmmm, Just xxxxxxxxxxxx <- lookup 21 mmmmmmmmmmmm, Just xxxxxxxxxxxxx <- lookup 211 mmmmmmmmmmmmm, Just xxxxxxxxxxxxxx <- lookup 2111 mmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxx <- lookup 21111 mmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxx <- lookup 211111 mmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxx <- lookup 26 mmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxx <- lookup 25 mmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxx <- lookup 24 mmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxx <- lookup 23 mmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxx <- lookup 221 mmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211 mmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22111 mmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 221111 mmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211111 mmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 226 mmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 225 mmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 224 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 223 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2221 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22211 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2221111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22211111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2226 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2225 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2224 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2223 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm = x + xx + xxx + xxxx + xxxxx + xxxxxx + xxxxxxx + xxxxxxxx + xxxxxxxxx + xxxxxxxxxx + xxxxxxxxxxx + xxxxxxxxxxxx + xxxxxxxxxxxxx + xxxxxxxxxxxxxx + xxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+f [m, mm, mmm, mmmm, mmmmm, mmmmmm, mmmmmmm, mmmmmmmm, mmmmmmmmm, mmmmmmmmmm, mmmmmmmmmmm, mmmmmmmmmmmm, mmmmmmmmmmmmm, mmmmmmmmmmmmmm, mmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm] | Just x <- lookup 1 m, Just xx <- lookup 11 mm, Just xxx <- lookup 111 mmm, Just xxxx <- lookup 1111 mmmm, Just xxxxx <- lookup 11111 mmmmm, Just xxxxxx <- lookup 6 mmmmmm, Just xxxxxxx <- lookup 5 mmmmmmm, Just xxxxxxxx <- lookup 4 mmmmmmmm, Just xxxxxxxxx <- lookup 3 mmmmmmmmm, Just xxxxxxxxxx <- lookup 2 mmmmmmmmmm, Just xxxxxxxxxxx <- lookup 2 mmmmmmmmmmm, Just xxxxxxxxxxxx <- lookup 21 mmmmmmmmmmmm, Just xxxxxxxxxxxxx <- lookup 211 mmmmmmmmmmmmm, Just xxxxxxxxxxxxxx <- lookup 2111 mmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxx <- lookup 21111 mmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxx <- lookup 211111 mmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxx <- lookup 26 mmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxx <- lookup 25 mmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxx <- lookup 24 mmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxx <- lookup 23 mmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxx <- lookup 221 mmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211 mmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22111 mmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 221111 mmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211111 mmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 226 mmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 225 mmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 224 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 223 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2221 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22211 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2221111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22211111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2226 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2225 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2224 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2223 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm = x + xx + xxx + xxxx + xxxxx + xxxxxx + xxxxxxx + xxxxxxxx + xxxxxxxxx + xxxxxxxxxx + xxxxxxxxxxx + xxxxxxxxxxxx + xxxxxxxxxxxxx + xxxxxxxxxxxxxx + xxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+f [m, mm, mmm, mmmm, mmmmm, mmmmmm, mmmmmmm, mmmmmmmm, mmmmmmmmm, mmmmmmmmmm, mmmmmmmmmmm, mmmmmmmmmmmm, mmmmmmmmmmmmm, mmmmmmmmmmmmmm, mmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm] | Just x <- lookup 1 m, Just xx <- lookup 11 mm, Just xxx <- lookup 111 mmm, Just xxxx <- lookup 1111 mmmm, Just xxxxx <- lookup 11111 mmmmm, Just xxxxxx <- lookup 6 mmmmmm, Just xxxxxxx <- lookup 5 mmmmmmm, Just xxxxxxxx <- lookup 4 mmmmmmmm, Just xxxxxxxxx <- lookup 3 mmmmmmmmm, Just xxxxxxxxxx <- lookup 2 mmmmmmmmmm, Just xxxxxxxxxxx <- lookup 2 mmmmmmmmmmm, Just xxxxxxxxxxxx <- lookup 21 mmmmmmmmmmmm, Just xxxxxxxxxxxxx <- lookup 211 mmmmmmmmmmmmm, Just xxxxxxxxxxxxxx <- lookup 2111 mmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxx <- lookup 21111 mmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxx <- lookup 211111 mmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxx <- lookup 26 mmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxx <- lookup 25 mmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxx <- lookup 24 mmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxx <- lookup 23 mmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxx <- lookup 221 mmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211 mmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22111 mmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 221111 mmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211111 mmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 226 mmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 225 mmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 224 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 223 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2221 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22211 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2221111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22211111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2226 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2225 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2224 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2223 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22221 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm = x + xx + xxx + xxxx + xxxxx + xxxxxx + xxxxxxx + xxxxxxxx + xxxxxxxxx + xxxxxxxxxx + xxxxxxxxxxx + xxxxxxxxxxxx + xxxxxxxxxxxxx + xxxxxxxxxxxxxx + xxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+f [m, mm, mmm, mmmm, mmmmm, mmmmmm, mmmmmmm, mmmmmmmm, mmmmmmmmm, mmmmmmmmmm, mmmmmmmmmmm, mmmmmmmmmmmm, mmmmmmmmmmmmm, mmmmmmmmmmmmmm, mmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm] | Just x <- lookup 1 m, Just xx <- lookup 11 mm, Just xxx <- lookup 111 mmm, Just xxxx <- lookup 1111 mmmm, Just xxxxx <- lookup 11111 mmmmm, Just xxxxxx <- lookup 6 mmmmmm, Just xxxxxxx <- lookup 5 mmmmmmm, Just xxxxxxxx <- lookup 4 mmmmmmmm, Just xxxxxxxxx <- lookup 3 mmmmmmmmm, Just xxxxxxxxxx <- lookup 2 mmmmmmmmmm, Just xxxxxxxxxxx <- lookup 2 mmmmmmmmmmm, Just xxxxxxxxxxxx <- lookup 21 mmmmmmmmmmmm, Just xxxxxxxxxxxxx <- lookup 211 mmmmmmmmmmmmm, Just xxxxxxxxxxxxxx <- lookup 2111 mmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxx <- lookup 21111 mmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxx <- lookup 211111 mmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxx <- lookup 26 mmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxx <- lookup 25 mmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxx <- lookup 24 mmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxx <- lookup 23 mmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxx <- lookup 221 mmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211 mmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22111 mmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 221111 mmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211111 mmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 226 mmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 225 mmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 224 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 223 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2221 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22211 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2221111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22211111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2226 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2225 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2224 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2223 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22221 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222211 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm = x + xx + xxx + xxxx + xxxxx + xxxxxx + xxxxxxx + xxxxxxxx + xxxxxxxxx + xxxxxxxxxx + xxxxxxxxxxx + xxxxxxxxxxxx + xxxxxxxxxxxxx + xxxxxxxxxxxxxx + xxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+f [m, mm, mmm, mmmm, mmmmm, mmmmmm, mmmmmmm, mmmmmmmm, mmmmmmmmm, mmmmmmmmmm, mmmmmmmmmmm, mmmmmmmmmmmm, mmmmmmmmmmmmm, mmmmmmmmmmmmmm, mmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm] | Just x <- lookup 1 m, Just xx <- lookup 11 mm, Just xxx <- lookup 111 mmm, Just xxxx <- lookup 1111 mmmm, Just xxxxx <- lookup 11111 mmmmm, Just xxxxxx <- lookup 6 mmmmmm, Just xxxxxxx <- lookup 5 mmmmmmm, Just xxxxxxxx <- lookup 4 mmmmmmmm, Just xxxxxxxxx <- lookup 3 mmmmmmmmm, Just xxxxxxxxxx <- lookup 2 mmmmmmmmmm, Just xxxxxxxxxxx <- lookup 2 mmmmmmmmmmm, Just xxxxxxxxxxxx <- lookup 21 mmmmmmmmmmmm, Just xxxxxxxxxxxxx <- lookup 211 mmmmmmmmmmmmm, Just xxxxxxxxxxxxxx <- lookup 2111 mmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxx <- lookup 21111 mmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxx <- lookup 211111 mmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxx <- lookup 26 mmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxx <- lookup 25 mmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxx <- lookup 24 mmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxx <- lookup 23 mmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxx <- lookup 221 mmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211 mmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22111 mmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 221111 mmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211111 mmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 226 mmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 225 mmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 224 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 223 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2221 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22211 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2221111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22211111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2226 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2225 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2224 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2223 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22221 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222211 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2222111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm = x + xx + xxx + xxxx + xxxxx + xxxxxx + xxxxxxx + xxxxxxxx + xxxxxxxxx + xxxxxxxxxx + xxxxxxxxxxx + xxxxxxxxxxxx + xxxxxxxxxxxxx + xxxxxxxxxxxxxx + xxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+f [m, mm, mmm, mmmm, mmmmm, mmmmmm, mmmmmmm, mmmmmmmm, mmmmmmmmm, mmmmmmmmmm, mmmmmmmmmmm, mmmmmmmmmmmm, mmmmmmmmmmmmm, mmmmmmmmmmmmmm, mmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm] | Just x <- lookup 1 m, Just xx <- lookup 11 mm, Just xxx <- lookup 111 mmm, Just xxxx <- lookup 1111 mmmm, Just xxxxx <- lookup 11111 mmmmm, Just xxxxxx <- lookup 6 mmmmmm, Just xxxxxxx <- lookup 5 mmmmmmm, Just xxxxxxxx <- lookup 4 mmmmmmmm, Just xxxxxxxxx <- lookup 3 mmmmmmmmm, Just xxxxxxxxxx <- lookup 2 mmmmmmmmmm, Just xxxxxxxxxxx <- lookup 2 mmmmmmmmmmm, Just xxxxxxxxxxxx <- lookup 21 mmmmmmmmmmmm, Just xxxxxxxxxxxxx <- lookup 211 mmmmmmmmmmmmm, Just xxxxxxxxxxxxxx <- lookup 2111 mmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxx <- lookup 21111 mmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxx <- lookup 211111 mmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxx <- lookup 26 mmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxx <- lookup 25 mmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxx <- lookup 24 mmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxx <- lookup 23 mmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxx <- lookup 221 mmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211 mmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22111 mmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 221111 mmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211111 mmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 226 mmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 225 mmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 224 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 223 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2221 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22211 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2221111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22211111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2226 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2225 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2224 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2223 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22221 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222211 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2222111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22221111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm = x + xx + xxx + xxxx + xxxxx + xxxxxx + xxxxxxx + xxxxxxxx + xxxxxxxxx + xxxxxxxxxx + xxxxxxxxxxx + xxxxxxxxxxxx + xxxxxxxxxxxxx + xxxxxxxxxxxxxx + xxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+f [m, mm, mmm, mmmm, mmmmm, mmmmmm, mmmmmmm, mmmmmmmm, mmmmmmmmm, mmmmmmmmmm, mmmmmmmmmmm, mmmmmmmmmmmm, mmmmmmmmmmmmm, mmmmmmmmmmmmmm, mmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm] | Just x <- lookup 1 m, Just xx <- lookup 11 mm, Just xxx <- lookup 111 mmm, Just xxxx <- lookup 1111 mmmm, Just xxxxx <- lookup 11111 mmmmm, Just xxxxxx <- lookup 6 mmmmmm, Just xxxxxxx <- lookup 5 mmmmmmm, Just xxxxxxxx <- lookup 4 mmmmmmmm, Just xxxxxxxxx <- lookup 3 mmmmmmmmm, Just xxxxxxxxxx <- lookup 2 mmmmmmmmmm, Just xxxxxxxxxxx <- lookup 2 mmmmmmmmmmm, Just xxxxxxxxxxxx <- lookup 21 mmmmmmmmmmmm, Just xxxxxxxxxxxxx <- lookup 211 mmmmmmmmmmmmm, Just xxxxxxxxxxxxxx <- lookup 2111 mmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxx <- lookup 21111 mmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxx <- lookup 211111 mmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxx <- lookup 26 mmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxx <- lookup 25 mmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxx <- lookup 24 mmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxx <- lookup 23 mmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxx <- lookup 221 mmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211 mmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22111 mmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 221111 mmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211111 mmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 226 mmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 225 mmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 224 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 223 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2221 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22211 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2221111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22211111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2226 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2225 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2224 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2223 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22221 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222211 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2222111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22221111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222211111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm = x + xx + xxx + xxxx + xxxxx + xxxxxx + xxxxxxx + xxxxxxxx + xxxxxxxxx + xxxxxxxxxx + xxxxxxxxxxx + xxxxxxxxxxxx + xxxxxxxxxxxxx + xxxxxxxxxxxxxx + xxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+f [m, mm, mmm, mmmm, mmmmm, mmmmmm, mmmmmmm, mmmmmmmm, mmmmmmmmm, mmmmmmmmmm, mmmmmmmmmmm, mmmmmmmmmmmm, mmmmmmmmmmmmm, mmmmmmmmmmmmmm, mmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm] | Just x <- lookup 1 m, Just xx <- lookup 11 mm, Just xxx <- lookup 111 mmm, Just xxxx <- lookup 1111 mmmm, Just xxxxx <- lookup 11111 mmmmm, Just xxxxxx <- lookup 6 mmmmmm, Just xxxxxxx <- lookup 5 mmmmmmm, Just xxxxxxxx <- lookup 4 mmmmmmmm, Just xxxxxxxxx <- lookup 3 mmmmmmmmm, Just xxxxxxxxxx <- lookup 2 mmmmmmmmmm, Just xxxxxxxxxxx <- lookup 2 mmmmmmmmmmm, Just xxxxxxxxxxxx <- lookup 21 mmmmmmmmmmmm, Just xxxxxxxxxxxxx <- lookup 211 mmmmmmmmmmmmm, Just xxxxxxxxxxxxxx <- lookup 2111 mmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxx <- lookup 21111 mmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxx <- lookup 211111 mmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxx <- lookup 26 mmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxx <- lookup 25 mmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxx <- lookup 24 mmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxx <- lookup 23 mmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxx <- lookup 221 mmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211 mmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22111 mmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 221111 mmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211111 mmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 226 mmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 225 mmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 224 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 223 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2221 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22211 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2221111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22211111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2226 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2225 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2224 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2223 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22221 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222211 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2222111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22221111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222211111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22226 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm = x + xx + xxx + xxxx + xxxxx + xxxxxx + xxxxxxx + xxxxxxxx + xxxxxxxxx + xxxxxxxxxx + xxxxxxxxxxx + xxxxxxxxxxxx + xxxxxxxxxxxxx + xxxxxxxxxxxxxx + xxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+f [m, mm, mmm, mmmm, mmmmm, mmmmmm, mmmmmmm, mmmmmmmm, mmmmmmmmm, mmmmmmmmmm, mmmmmmmmmmm, mmmmmmmmmmmm, mmmmmmmmmmmmm, mmmmmmmmmmmmmm, mmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm] | Just x <- lookup 1 m, Just xx <- lookup 11 mm, Just xxx <- lookup 111 mmm, Just xxxx <- lookup 1111 mmmm, Just xxxxx <- lookup 11111 mmmmm, Just xxxxxx <- lookup 6 mmmmmm, Just xxxxxxx <- lookup 5 mmmmmmm, Just xxxxxxxx <- lookup 4 mmmmmmmm, Just xxxxxxxxx <- lookup 3 mmmmmmmmm, Just xxxxxxxxxx <- lookup 2 mmmmmmmmmm, Just xxxxxxxxxxx <- lookup 2 mmmmmmmmmmm, Just xxxxxxxxxxxx <- lookup 21 mmmmmmmmmmmm, Just xxxxxxxxxxxxx <- lookup 211 mmmmmmmmmmmmm, Just xxxxxxxxxxxxxx <- lookup 2111 mmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxx <- lookup 21111 mmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxx <- lookup 211111 mmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxx <- lookup 26 mmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxx <- lookup 25 mmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxx <- lookup 24 mmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxx <- lookup 23 mmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxx <- lookup 221 mmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211 mmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22111 mmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 221111 mmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211111 mmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 226 mmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 225 mmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 224 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 223 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2221 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22211 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2221111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22211111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2226 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2225 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2224 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2223 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22221 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222211 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2222111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22221111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222211111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22226 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22225 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm = x + xx + xxx + xxxx + xxxxx + xxxxxx + xxxxxxx + xxxxxxxx + xxxxxxxxx + xxxxxxxxxx + xxxxxxxxxxx + xxxxxxxxxxxx + xxxxxxxxxxxxx + xxxxxxxxxxxxxx + xxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+f [m, mm, mmm, mmmm, mmmmm, mmmmmm, mmmmmmm, mmmmmmmm, mmmmmmmmm, mmmmmmmmmm, mmmmmmmmmmm, mmmmmmmmmmmm, mmmmmmmmmmmmm, mmmmmmmmmmmmmm, mmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm] | Just x <- lookup 1 m, Just xx <- lookup 11 mm, Just xxx <- lookup 111 mmm, Just xxxx <- lookup 1111 mmmm, Just xxxxx <- lookup 11111 mmmmm, Just xxxxxx <- lookup 6 mmmmmm, Just xxxxxxx <- lookup 5 mmmmmmm, Just xxxxxxxx <- lookup 4 mmmmmmmm, Just xxxxxxxxx <- lookup 3 mmmmmmmmm, Just xxxxxxxxxx <- lookup 2 mmmmmmmmmm, Just xxxxxxxxxxx <- lookup 2 mmmmmmmmmmm, Just xxxxxxxxxxxx <- lookup 21 mmmmmmmmmmmm, Just xxxxxxxxxxxxx <- lookup 211 mmmmmmmmmmmmm, Just xxxxxxxxxxxxxx <- lookup 2111 mmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxx <- lookup 21111 mmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxx <- lookup 211111 mmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxx <- lookup 26 mmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxx <- lookup 25 mmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxx <- lookup 24 mmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxx <- lookup 23 mmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxx <- lookup 221 mmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211 mmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22111 mmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 221111 mmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211111 mmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 226 mmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 225 mmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 224 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 223 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2221 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22211 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2221111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22211111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2226 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2225 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2224 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2223 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22221 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222211 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2222111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22221111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222211111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22226 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22225 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm = x + xx + xxx + xxxx + xxxxx + xxxxxx + xxxxxxx + xxxxxxxx + xxxxxxxxx + xxxxxxxxxx + xxxxxxxxxxx + xxxxxxxxxxxx + xxxxxxxxxxxxx + xxxxxxxxxxxxxx + xxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+f [m, mm, mmm, mmmm, mmmmm, mmmmmm, mmmmmmm, mmmmmmmm, mmmmmmmmm, mmmmmmmmmm, mmmmmmmmmmm, mmmmmmmmmmmm, mmmmmmmmmmmmm, mmmmmmmmmmmmmm, mmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm] | Just x <- lookup 1 m, Just xx <- lookup 11 mm, Just xxx <- lookup 111 mmm, Just xxxx <- lookup 1111 mmmm, Just xxxxx <- lookup 11111 mmmmm, Just xxxxxx <- lookup 6 mmmmmm, Just xxxxxxx <- lookup 5 mmmmmmm, Just xxxxxxxx <- lookup 4 mmmmmmmm, Just xxxxxxxxx <- lookup 3 mmmmmmmmm, Just xxxxxxxxxx <- lookup 2 mmmmmmmmmm, Just xxxxxxxxxxx <- lookup 2 mmmmmmmmmmm, Just xxxxxxxxxxxx <- lookup 21 mmmmmmmmmmmm, Just xxxxxxxxxxxxx <- lookup 211 mmmmmmmmmmmmm, Just xxxxxxxxxxxxxx <- lookup 2111 mmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxx <- lookup 21111 mmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxx <- lookup 211111 mmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxx <- lookup 26 mmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxx <- lookup 25 mmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxx <- lookup 24 mmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxx <- lookup 23 mmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxx <- lookup 221 mmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211 mmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22111 mmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 221111 mmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211111 mmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 226 mmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 225 mmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 224 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 223 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2221 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22211 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2221111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22211111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2226 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2225 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2224 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2223 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22221 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222211 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2222111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22221111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222211111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22226 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22225 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm = x + xx + xxx + xxxx + xxxxx + xxxxxx + xxxxxxx + xxxxxxxx + xxxxxxxxx + xxxxxxxxxx + xxxxxxxxxxx + xxxxxxxxxxxx + xxxxxxxxxxxxx + xxxxxxxxxxxxxx + xxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+f [m, mm, mmm, mmmm, mmmmm, mmmmmm, mmmmmmm, mmmmmmmm, mmmmmmmmm, mmmmmmmmmm, mmmmmmmmmmm, mmmmmmmmmmmm, mmmmmmmmmmmmm, mmmmmmmmmmmmmm, mmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm] | Just x <- lookup 1 m, Just xx <- lookup 11 mm, Just xxx <- lookup 111 mmm, Just xxxx <- lookup 1111 mmmm, Just xxxxx <- lookup 11111 mmmmm, Just xxxxxx <- lookup 6 mmmmmm, Just xxxxxxx <- lookup 5 mmmmmmm, Just xxxxxxxx <- lookup 4 mmmmmmmm, Just xxxxxxxxx <- lookup 3 mmmmmmmmm, Just xxxxxxxxxx <- lookup 2 mmmmmmmmmm, Just xxxxxxxxxxx <- lookup 2 mmmmmmmmmmm, Just xxxxxxxxxxxx <- lookup 21 mmmmmmmmmmmm, Just xxxxxxxxxxxxx <- lookup 211 mmmmmmmmmmmmm, Just xxxxxxxxxxxxxx <- lookup 2111 mmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxx <- lookup 21111 mmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxx <- lookup 211111 mmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxx <- lookup 26 mmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxx <- lookup 25 mmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxx <- lookup 24 mmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxx <- lookup 23 mmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxx <- lookup 221 mmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211 mmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22111 mmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 221111 mmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211111 mmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 226 mmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 225 mmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 224 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 223 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2221 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22211 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2221111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22211111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2226 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2225 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2224 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2223 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22221 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222211 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2222111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22221111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222211111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22226 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22225 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm = x + xx + xxx + xxxx + xxxxx + xxxxxx + xxxxxxx + xxxxxxxx + xxxxxxxxx + xxxxxxxxxx + xxxxxxxxxxx + xxxxxxxxxxxx + xxxxxxxxxxxxx + xxxxxxxxxxxxxx + xxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+f [m, mm, mmm, mmmm, mmmmm, mmmmmm, mmmmmmm, mmmmmmmm, mmmmmmmmm, mmmmmmmmmm, mmmmmmmmmmm, mmmmmmmmmmmm, mmmmmmmmmmmmm, mmmmmmmmmmmmmm, mmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm] | Just x <- lookup 1 m, Just xx <- lookup 11 mm, Just xxx <- lookup 111 mmm, Just xxxx <- lookup 1111 mmmm, Just xxxxx <- lookup 11111 mmmmm, Just xxxxxx <- lookup 6 mmmmmm, Just xxxxxxx <- lookup 5 mmmmmmm, Just xxxxxxxx <- lookup 4 mmmmmmmm, Just xxxxxxxxx <- lookup 3 mmmmmmmmm, Just xxxxxxxxxx <- lookup 2 mmmmmmmmmm, Just xxxxxxxxxxx <- lookup 2 mmmmmmmmmmm, Just xxxxxxxxxxxx <- lookup 21 mmmmmmmmmmmm, Just xxxxxxxxxxxxx <- lookup 211 mmmmmmmmmmmmm, Just xxxxxxxxxxxxxx <- lookup 2111 mmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxx <- lookup 21111 mmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxx <- lookup 211111 mmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxx <- lookup 26 mmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxx <- lookup 25 mmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxx <- lookup 24 mmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxx <- lookup 23 mmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxx <- lookup 221 mmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211 mmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22111 mmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 221111 mmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211111 mmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 226 mmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 225 mmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 224 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 223 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2221 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22211 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2221111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22211111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2226 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2225 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2224 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2223 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22221 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222211 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2222111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22221111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222211111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22226 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22225 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm = x + xx + xxx + xxxx + xxxxx + xxxxxx + xxxxxxx + xxxxxxxx + xxxxxxxxx + xxxxxxxxxx + xxxxxxxxxxx + xxxxxxxxxxxx + xxxxxxxxxxxxx + xxxxxxxxxxxxxx + xxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+f [m, mm, mmm, mmmm, mmmmm, mmmmmm, mmmmmmm, mmmmmmmm, mmmmmmmmm, mmmmmmmmmm, mmmmmmmmmmm, mmmmmmmmmmmm, mmmmmmmmmmmmm, mmmmmmmmmmmmmm, mmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm] | Just x <- lookup 1 m, Just xx <- lookup 11 mm, Just xxx <- lookup 111 mmm, Just xxxx <- lookup 1111 mmmm, Just xxxxx <- lookup 11111 mmmmm, Just xxxxxx <- lookup 6 mmmmmm, Just xxxxxxx <- lookup 5 mmmmmmm, Just xxxxxxxx <- lookup 4 mmmmmmmm, Just xxxxxxxxx <- lookup 3 mmmmmmmmm, Just xxxxxxxxxx <- lookup 2 mmmmmmmmmm, Just xxxxxxxxxxx <- lookup 2 mmmmmmmmmmm, Just xxxxxxxxxxxx <- lookup 21 mmmmmmmmmmmm, Just xxxxxxxxxxxxx <- lookup 211 mmmmmmmmmmmmm, Just xxxxxxxxxxxxxx <- lookup 2111 mmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxx <- lookup 21111 mmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxx <- lookup 211111 mmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxx <- lookup 26 mmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxx <- lookup 25 mmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxx <- lookup 24 mmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxx <- lookup 23 mmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxx <- lookup 221 mmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211 mmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22111 mmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 221111 mmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211111 mmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 226 mmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 225 mmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 224 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 223 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2221 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22211 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2221111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22211111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2226 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2225 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2224 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2223 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22221 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222211 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2222111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22221111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222211111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22226 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22225 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm = x + xx + xxx + xxxx + xxxxx + xxxxxx + xxxxxxx + xxxxxxxx + xxxxxxxxx + xxxxxxxxxx + xxxxxxxxxxx + xxxxxxxxxxxx + xxxxxxxxxxxxx + xxxxxxxxxxxxxx + xxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+f [m, mm, mmm, mmmm, mmmmm, mmmmmm, mmmmmmm, mmmmmmmm, mmmmmmmmm, mmmmmmmmmm, mmmmmmmmmmm, mmmmmmmmmmmm, mmmmmmmmmmmmm, mmmmmmmmmmmmmm, mmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm] | Just x <- lookup 1 m, Just xx <- lookup 11 mm, Just xxx <- lookup 111 mmm, Just xxxx <- lookup 1111 mmmm, Just xxxxx <- lookup 11111 mmmmm, Just xxxxxx <- lookup 6 mmmmmm, Just xxxxxxx <- lookup 5 mmmmmmm, Just xxxxxxxx <- lookup 4 mmmmmmmm, Just xxxxxxxxx <- lookup 3 mmmmmmmmm, Just xxxxxxxxxx <- lookup 2 mmmmmmmmmm, Just xxxxxxxxxxx <- lookup 2 mmmmmmmmmmm, Just xxxxxxxxxxxx <- lookup 21 mmmmmmmmmmmm, Just xxxxxxxxxxxxx <- lookup 211 mmmmmmmmmmmmm, Just xxxxxxxxxxxxxx <- lookup 2111 mmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxx <- lookup 21111 mmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxx <- lookup 211111 mmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxx <- lookup 26 mmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxx <- lookup 25 mmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxx <- lookup 24 mmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxx <- lookup 23 mmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxx <- lookup 221 mmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211 mmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22111 mmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 221111 mmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211111 mmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 226 mmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 225 mmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 224 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 223 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2221 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22211 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2221111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22211111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2226 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2225 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2224 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2223 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22221 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222211 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2222111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22221111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222211111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22226 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22225 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm = x + xx + xxx + xxxx + xxxxx + xxxxxx + xxxxxxx + xxxxxxxx + xxxxxxxxx + xxxxxxxxxx + xxxxxxxxxxx + xxxxxxxxxxxx + xxxxxxxxxxxxx + xxxxxxxxxxxxxx + xxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+f [m, mm, mmm, mmmm, mmmmm, mmmmmm, mmmmmmm, mmmmmmmm, mmmmmmmmm, mmmmmmmmmm, mmmmmmmmmmm, mmmmmmmmmmmm, mmmmmmmmmmmmm, mmmmmmmmmmmmmm, mmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm] | Just x <- lookup 1 m, Just xx <- lookup 11 mm, Just xxx <- lookup 111 mmm, Just xxxx <- lookup 1111 mmmm, Just xxxxx <- lookup 11111 mmmmm, Just xxxxxx <- lookup 6 mmmmmm, Just xxxxxxx <- lookup 5 mmmmmmm, Just xxxxxxxx <- lookup 4 mmmmmmmm, Just xxxxxxxxx <- lookup 3 mmmmmmmmm, Just xxxxxxxxxx <- lookup 2 mmmmmmmmmm, Just xxxxxxxxxxx <- lookup 2 mmmmmmmmmmm, Just xxxxxxxxxxxx <- lookup 21 mmmmmmmmmmmm, Just xxxxxxxxxxxxx <- lookup 211 mmmmmmmmmmmmm, Just xxxxxxxxxxxxxx <- lookup 2111 mmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxx <- lookup 21111 mmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxx <- lookup 211111 mmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxx <- lookup 26 mmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxx <- lookup 25 mmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxx <- lookup 24 mmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxx <- lookup 23 mmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxx <- lookup 221 mmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211 mmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22111 mmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 221111 mmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211111 mmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 226 mmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 225 mmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 224 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 223 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2221 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22211 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2221111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22211111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2226 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2225 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2224 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2223 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22221 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222211 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2222111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22221111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222211111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22226 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22225 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm = x + xx + xxx + xxxx + xxxxx + xxxxxx + xxxxxxx + xxxxxxxx + xxxxxxxxx + xxxxxxxxxx + xxxxxxxxxxx + xxxxxxxxxxxx + xxxxxxxxxxxxx + xxxxxxxxxxxxxx + xxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+f [m, mm, mmm, mmmm, mmmmm, mmmmmm, mmmmmmm, mmmmmmmm, mmmmmmmmm, mmmmmmmmmm, mmmmmmmmmmm, mmmmmmmmmmmm, mmmmmmmmmmmmm, mmmmmmmmmmmmmm, mmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm] | Just x <- lookup 1 m, Just xx <- lookup 11 mm, Just xxx <- lookup 111 mmm, Just xxxx <- lookup 1111 mmmm, Just xxxxx <- lookup 11111 mmmmm, Just xxxxxx <- lookup 6 mmmmmm, Just xxxxxxx <- lookup 5 mmmmmmm, Just xxxxxxxx <- lookup 4 mmmmmmmm, Just xxxxxxxxx <- lookup 3 mmmmmmmmm, Just xxxxxxxxxx <- lookup 2 mmmmmmmmmm, Just xxxxxxxxxxx <- lookup 2 mmmmmmmmmmm, Just xxxxxxxxxxxx <- lookup 21 mmmmmmmmmmmm, Just xxxxxxxxxxxxx <- lookup 211 mmmmmmmmmmmmm, Just xxxxxxxxxxxxxx <- lookup 2111 mmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxx <- lookup 21111 mmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxx <- lookup 211111 mmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxx <- lookup 26 mmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxx <- lookup 25 mmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxx <- lookup 24 mmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxx <- lookup 23 mmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxx <- lookup 221 mmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211 mmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22111 mmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 221111 mmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211111 mmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 226 mmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 225 mmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 224 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 223 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2221 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22211 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2221111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22211111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2226 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2225 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2224 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2223 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22221 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222211 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2222111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22221111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222211111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22226 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22225 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm = x + xx + xxx + xxxx + xxxxx + xxxxxx + xxxxxxx + xxxxxxxx + xxxxxxxxx + xxxxxxxxxx + xxxxxxxxxxx + xxxxxxxxxxxx + xxxxxxxxxxxxx + xxxxxxxxxxxxxx + xxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+f [m, mm, mmm, mmmm, mmmmm, mmmmmm, mmmmmmm, mmmmmmmm, mmmmmmmmm, mmmmmmmmmm, mmmmmmmmmmm, mmmmmmmmmmmm, mmmmmmmmmmmmm, mmmmmmmmmmmmmm, mmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm] | Just x <- lookup 1 m, Just xx <- lookup 11 mm, Just xxx <- lookup 111 mmm, Just xxxx <- lookup 1111 mmmm, Just xxxxx <- lookup 11111 mmmmm, Just xxxxxx <- lookup 6 mmmmmm, Just xxxxxxx <- lookup 5 mmmmmmm, Just xxxxxxxx <- lookup 4 mmmmmmmm, Just xxxxxxxxx <- lookup 3 mmmmmmmmm, Just xxxxxxxxxx <- lookup 2 mmmmmmmmmm, Just xxxxxxxxxxx <- lookup 2 mmmmmmmmmmm, Just xxxxxxxxxxxx <- lookup 21 mmmmmmmmmmmm, Just xxxxxxxxxxxxx <- lookup 211 mmmmmmmmmmmmm, Just xxxxxxxxxxxxxx <- lookup 2111 mmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxx <- lookup 21111 mmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxx <- lookup 211111 mmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxx <- lookup 26 mmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxx <- lookup 25 mmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxx <- lookup 24 mmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxx <- lookup 23 mmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxx <- lookup 221 mmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211 mmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22111 mmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 221111 mmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211111 mmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 226 mmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 225 mmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 224 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 223 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2221 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22211 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2221111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22211111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2226 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2225 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2224 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2223 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22221 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222211 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2222111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22221111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222211111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22226 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22225 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm = x + xx + xxx + xxxx + xxxxx + xxxxxx + xxxxxxx + xxxxxxxx + xxxxxxxxx + xxxxxxxxxx + xxxxxxxxxxx + xxxxxxxxxxxx + xxxxxxxxxxxxx + xxxxxxxxxxxxxx + xxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+f [m, mm, mmm, mmmm, mmmmm, mmmmmm, mmmmmmm, mmmmmmmm, mmmmmmmmm, mmmmmmmmmm, mmmmmmmmmmm, mmmmmmmmmmmm, mmmmmmmmmmmmm, mmmmmmmmmmmmmm, mmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm] | Just x <- lookup 1 m, Just xx <- lookup 11 mm, Just xxx <- lookup 111 mmm, Just xxxx <- lookup 1111 mmmm, Just xxxxx <- lookup 11111 mmmmm, Just xxxxxx <- lookup 6 mmmmmm, Just xxxxxxx <- lookup 5 mmmmmmm, Just xxxxxxxx <- lookup 4 mmmmmmmm, Just xxxxxxxxx <- lookup 3 mmmmmmmmm, Just xxxxxxxxxx <- lookup 2 mmmmmmmmmm, Just xxxxxxxxxxx <- lookup 2 mmmmmmmmmmm, Just xxxxxxxxxxxx <- lookup 21 mmmmmmmmmmmm, Just xxxxxxxxxxxxx <- lookup 211 mmmmmmmmmmmmm, Just xxxxxxxxxxxxxx <- lookup 2111 mmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxx <- lookup 21111 mmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxx <- lookup 211111 mmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxx <- lookup 26 mmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxx <- lookup 25 mmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxx <- lookup 24 mmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxx <- lookup 23 mmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxx <- lookup 221 mmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211 mmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22111 mmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 221111 mmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211111 mmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 226 mmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 225 mmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 224 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 223 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2221 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22211 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2221111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22211111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2226 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2225 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2224 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2223 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22221 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222211 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2222111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22221111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222211111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22226 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22225 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm = x + xx + xxx + xxxx + xxxxx + xxxxxx + xxxxxxx + xxxxxxxx + xxxxxxxxx + xxxxxxxxxx + xxxxxxxxxxx + xxxxxxxxxxxx + xxxxxxxxxxxxx + xxxxxxxxxxxxxx + xxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+f [m, mm, mmm, mmmm, mmmmm, mmmmmm, mmmmmmm, mmmmmmmm, mmmmmmmmm, mmmmmmmmmm, mmmmmmmmmmm, mmmmmmmmmmmm, mmmmmmmmmmmmm, mmmmmmmmmmmmmm, mmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm] | Just x <- lookup 1 m, Just xx <- lookup 11 mm, Just xxx <- lookup 111 mmm, Just xxxx <- lookup 1111 mmmm, Just xxxxx <- lookup 11111 mmmmm, Just xxxxxx <- lookup 6 mmmmmm, Just xxxxxxx <- lookup 5 mmmmmmm, Just xxxxxxxx <- lookup 4 mmmmmmmm, Just xxxxxxxxx <- lookup 3 mmmmmmmmm, Just xxxxxxxxxx <- lookup 2 mmmmmmmmmm, Just xxxxxxxxxxx <- lookup 2 mmmmmmmmmmm, Just xxxxxxxxxxxx <- lookup 21 mmmmmmmmmmmm, Just xxxxxxxxxxxxx <- lookup 211 mmmmmmmmmmmmm, Just xxxxxxxxxxxxxx <- lookup 2111 mmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxx <- lookup 21111 mmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxx <- lookup 211111 mmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxx <- lookup 26 mmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxx <- lookup 25 mmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxx <- lookup 24 mmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxx <- lookup 23 mmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxx <- lookup 22 mmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxx <- lookup 221 mmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211 mmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22111 mmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 221111 mmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2211111 mmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 226 mmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 225 mmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 224 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 223 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2221 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22211 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2221111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22211111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2226 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2225 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2224 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2223 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2222 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22221 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222211 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 2222111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22221111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 222211111 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22226 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, Just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- lookup 22225 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm = x + xx + xxx + xxxx + xxxxx + xxxxxx + xxxxxxx + xxxxxxxx + xxxxxxxxx + xxxxxxxxxx + xxxxxxxxxxx + xxxxxxxxxxxx + xxxxxxxxxxxxx + xxxxxxxxxxxxxx + xxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+f _ = 2137
diff --git a/tests/purs/passing/BlockStringEdgeCases.purs b/tests/purs/passing/BlockStringEdgeCases.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/passing/BlockStringEdgeCases.purs
@@ -0,0 +1,30 @@
+module Main where
+
+import Prelude
+import Effect.Console (log)
+import Test.Assert (assert')
+
+data Tuple a b = Tuple a b
+derive instance tupleEq :: (Eq a, Eq b) => Eq (Tuple a b)
+
+main = do
+  assert' "empty string" ("""""" == "")
+  assert' "quote" (""""""" == "\"")
+  assert' "starts with quote" (""""x""" == "\"x")
+  assert' "ends with quote" ("""x"""" == "x\"")
+  assert' "two quotes" ("""""""" == "\"\"")
+  assert' "starts with two quotes" ("""""x""" == "\"\"x")
+  assert' "ends with two quotes" ("""x""""" == "x\"\"")
+  assert' "starts and ends with two quotes" ("""""x""""" == "\"\"x\"\"")
+  assert' "mixture 1" ("""""x"y""z"""" == "\"\"x\"y\"\"z\"")
+  assert' "mixture 2" ("""x"y""z""" == "x\"y\"\"z")
+
+  -- These last tests are more about forbidding certain raw string literal
+  -- edge cases than about wanting to support mashing string literals against.
+  -- each other, which is techically legal but generally, if not universally,
+  -- a bad idea.
+  assert' "too many quotes 1" (Tuple """"""""" " == Tuple "\"\"" " ")
+  assert' "too many quotes 2" (Tuple """""""""" == Tuple "\"\"" "")
+  assert' "too many quotes 3" (Tuple """x"""""" " == Tuple "x\"\"" " ")
+  assert' "too many quotes 4" (Tuple """x""""""" == Tuple "x\"\"" "")
+  log "Done"
diff --git a/tests/purs/passing/CSEInitialDigitSymbols.purs b/tests/purs/passing/CSEInitialDigitSymbols.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/passing/CSEInitialDigitSymbols.purs
@@ -0,0 +1,16 @@
+module Main where
+
+import Data.Symbol (class IsSymbol, reflectSymbol)
+import Effect.Console (log)
+import Type.Proxy (Proxy(..))
+
+reflectSymbol' :: forall s. IsSymbol s => Proxy s -> String
+reflectSymbol' = reflectSymbol
+
+two = reflectSymbol (Proxy :: _ "2")
+two2 = reflectSymbol' (Proxy :: _ "2")
+
+twoThirty = reflectSymbol (Proxy :: _ "2:30")
+twoThirty2 = reflectSymbol' (Proxy :: _ "2:30")
+
+main = log "Done"
diff --git a/tests/purs/passing/Coercible.purs b/tests/purs/passing/Coercible.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/passing/Coercible.purs
@@ -0,0 +1,290 @@
+module Main where
+
+import Coercible.Lib (NTLib1(..), NTLib2(..), NTLib3)
+
+import Effect.Console (log)
+import Prim.Coerce (class Coercible)
+import Safe.Coerce (coerce)
+import Type.Proxy (Proxy)
+
+refl :: forall a. a -> a
+refl = coerce
+
+symm :: forall a b. Coercible a b => b -> a
+symm = coerce
+
+trans :: forall a b c. Coercible a b => Coercible b c => Proxy b -> a -> c
+trans _ = coerce
+
+trans' :: forall a b c. Coercible a b => Coercible c b => Proxy b -> a -> c
+trans' _ = coerce
+
+trans'' :: forall a b c d. Coercible a c => Coercible a d => Coercible d b => Proxy c -> Proxy d -> a -> b
+trans'' _ _ = coerce
+
+transSymm :: forall a b c. Coercible a b => Coercible b c => Proxy b -> c -> a
+transSymm _ = coerce
+
+type SynString = String
+
+newtype NTString1 = NTString1 SynString
+
+nt1ToString :: NTString1 -> String
+nt1ToString = coerce
+
+stringToNt1 :: String -> NTString1
+stringToNt1 = coerce
+
+toNT1 :: forall a. Coercible a String => a -> NTString1
+toNT1 = coerce
+
+toNT1Array :: forall a. Coercible a (Array String) => a -> Array NTString1
+toNT1Array = coerce
+
+newtype NTString2 = NTString2 String
+
+nt2ToNT1 :: NTString2 -> NTString1
+nt2ToNT1 = coerce
+
+newtype Id1 a = Id1 a
+newtype Id2 b = Id2 b
+
+id1ToId2 :: forall a. Id1 a -> Id2 a
+id1ToId2 = coerce
+
+id12ToId21 :: forall b. Id1 (Id2 b) -> Id2 (Id1 b)
+id12ToId21 = coerce
+
+newtype Ap f a = Ap (f a)
+
+apId1ToApId1 :: forall a b. Coercible a b => Ap Id1 a -> Ap Id1 b
+apId1ToApId1 = coerce
+
+apId1ToApId2 :: forall a. Ap Id1 a -> Ap Id2 a
+apId1ToApId2 = coerce
+
+newtype ApPolykind f = ApPolykind (f ())
+
+apPolykind :: forall f. ApPolykind f -> f ()
+apPolykind = coerce
+
+newtype Phantom1 a b = Phantom1 a
+
+phantom1TypeToPhantom1Symbol :: forall x (y :: Type) (z :: Symbol). Phantom1 x y -> Phantom1 x z
+phantom1TypeToPhantom1Symbol = coerce
+
+phantom1ToId12 :: forall x y. Phantom1 x y -> Id1 (Id2 x)
+phantom1ToId12 = coerce
+
+nested :: forall x y z. Phantom1 (Id1 (Phantom1 x y)) y -> Id2 (Phantom1 x (Phantom1 z z))
+nested = coerce
+
+id1IntToInt :: Id1 Int -> Int
+id1IntToInt = coerce
+
+id2IntToId1Int :: Id2 Int -> Id1 Int
+id2IntToId1Int = coerce
+
+newtype NTInt1 = NTInt1 Int
+
+id2NTToId1Nt :: Id2 NTInt1 -> Id1 NTInt1
+id2NTToId1Nt = coerce
+
+id2NTToId1Int :: Id2 NTInt1 -> Id1 Int
+id2NTToId1Int = coerce
+
+newtype NTFn1 a b   = NTFn1 (a -> Int -> b)
+newtype NTFn2 x a b = NTFn2 (a -> x -> b)
+
+ntFn1ToNTFn2 :: forall a b. NTFn1 a b -> NTFn2 Int a b
+ntFn1ToNTFn2 = coerce
+
+libExposedCtorToId2 :: forall z. NTLib1 z -> Id2 z
+libExposedCtorToId2 = coerce
+
+libReExportedCtorToId2 :: forall z. NTLib2 z -> Id2 z
+libReExportedCtorToId2 = coerce
+
+libHiddenCtorRepresentational :: forall a b. Coercible (NTLib3 a a) (NTLib3 a b) => NTLib3 a a -> NTLib3 a b
+libHiddenCtorRepresentational = coerce
+
+newtype Roles1 a b c = Roles1 (Phantom1 b c)
+
+roles1ToSecond :: forall r s t. Roles1 r s t -> s
+roles1ToSecond = coerce
+
+data D a b = D a
+
+underD :: D NTString1 Boolean -> D NTString2 Int
+underD = coerce
+
+givenCanonicalSameTyVarEq :: forall a b c d e. Coercible a (D b c) => Coercible a (D d e) => Proxy a -> b -> d
+givenCanonicalSameTyVarEq _ = coerce
+
+givenCanonicalDiffTyVarEq1 :: forall a b c d e. Coercible a (D b c) => Coercible b d => a -> D d e
+givenCanonicalDiffTyVarEq1 = coerce
+
+givenCanonicalDiffTyVarEq2 :: forall f g a b. Coercible a (f b) => Coercible f g => Proxy f -> a -> g b
+givenCanonicalDiffTyVarEq2 _ = coerce
+
+newtype NTD a b c d = NTD (D b d)
+
+dToNTD :: forall i j k l. D j l -> NTD i (Id1 j) k (Phantom1 l k)
+dToNTD = coerce
+
+ntdToNTD :: forall i j k l. NTD i j k l -> NTD (Id1 k) (Phantom1 j k) Int Boolean
+ntdToNTD = coerce
+
+newtype RankN1 a b = RankN1 (forall r. r -> a)
+
+rankN1ToRankN1 :: RankN1 NTString1 Int -> RankN1 String Boolean
+rankN1ToRankN1 = coerce
+
+data RankN2 a = RankN2 (forall a. a -> a)
+
+rankN2ToRankN2 :: forall x y. RankN2 x -> RankN2 y
+rankN2ToRankN2 = coerce
+
+data RankN3 c = RankN3 (forall c. (forall c. c -> c) -> c)
+
+rankN3ToRankN3 :: forall x y. RankN3 x -> RankN3 y
+rankN3ToRankN3 = coerce
+
+data RankN4 z = RankN4 (forall c. (forall z. c -> z) -> c)
+
+rankN4ToRankN4 :: forall x y. RankN4 x -> RankN4 y
+rankN4ToRankN4 = coerce
+
+data Phantom2 a = Phantom
+
+data Rec1 a = Rec1 { f :: a }
+
+rec1ToRec1 :: Rec1 Int -> Rec1 (Id1 Int)
+rec1ToRec1 = coerce
+
+data Rec2 a b = Rec2 { f :: a, g :: Int, h :: b }
+
+rec2ToRec2 :: Rec2 Int (Phantom2 String) -> Rec2 (Id1 Int) (Phantom2 Int)
+rec2ToRec2 = coerce
+
+data Rec3 a = Rec3 {}
+
+rec3ToRec3 :: forall m n. Rec3 m -> Rec3 n
+rec3ToRec3 = coerce
+
+newtype Rec4 f = Rec4 (f {})
+
+unwrapRec4 :: forall f. Rec4 f -> f {}
+unwrapRec4 = coerce
+
+newtype Rec5 a f = Rec5 (f {})
+
+apRec4ToApRec5 :: forall a. Ap Rec4 Id1 -> Ap (Rec5 a) Id1
+apRec4ToApRec5 = coerce
+
+type Rec6 a = { f :: a }
+
+rec6ToRec6 :: Rec6 Int -> Rec6 (Id1 Int)
+rec6ToRec6 = coerce
+
+type Rec7 a b = { f :: a, g :: Int, h :: b }
+
+rec7ToRec7 :: Rec7 Int (Phantom2 String) -> Rec7 (Id1 Int) (Phantom2 Int)
+rec7ToRec7 = coerce
+
+type Rec8 r a = { f :: a | r }
+
+rec8ToRec8 :: forall r. Rec8 r Int -> Rec8 r (Id1 Int)
+rec8ToRec8 = coerce
+
+rec8ToRec8' :: forall r s. Coercible r s => Rec8 r Int -> Rec8 s (Id1 Int)
+rec8ToRec8' = coerce
+
+data Arr1 a b = Arr1 (Array a) (Array b)
+
+arr1ToArr1 :: Arr1 Int String -> Arr1 (Id1 Int) (Id2 String)
+arr1ToArr1 = coerce
+
+arr1ToArr1Phantom :: forall a. Arr1 (Phantom2 Int) String -> Arr1 (Phantom2 a) (Id2 String)
+arr1ToArr1Phantom = coerce
+
+foreign import data Foreign1 :: Type -> Type -> Type
+
+type role Foreign1 representational representational
+
+foreign1ToForeign1 :: Foreign1 NTString1 (Phantom2 Int) -> Foreign1 String (Phantom2 Boolean)
+foreign1ToForeign1 = coerce
+
+foreign import data Foreign2 :: Type -> Type -> Type
+
+type role Foreign2 phantom representational
+
+foreign2ToForeign2 :: Foreign2 NTString2 (Phantom2 Int) -> Foreign2 Int (Phantom2 Boolean)
+foreign2ToForeign2 = coerce
+
+data MyMap k v = MyMap k v
+
+type role MyMap nominal representational
+
+mapToMap :: forall k1 k2 a b. Coercible (MyMap k1 a) (MyMap k2 b) => MyMap k1 a -> MyMap k2 b
+mapToMap = coerce
+
+mapStringToMapString :: MyMap String String -> MyMap String NTString1
+mapStringToMapString = mapToMap
+
+class Unary a
+
+data Constrained1 a b = Constrained1 (Unary a => b)
+
+constrained1ToConstrained1 :: forall a b. Constrained1 a b -> Constrained1 a (Id1 b)
+constrained1ToConstrained1 = coerce
+
+data Constrained2 a = Constrained2 a (forall a. Unary a => a)
+
+type role Constrained2 representational
+
+-- "role" should only be a reserved word after "type"
+testRoleNotReserved :: String -> String
+testRoleNotReserved role = role
+
+-- "nominal", "representational" and "phantom" should only be reserved when in
+-- role signatures
+testRolesNotReserved :: String -> String -> String -> String
+testRolesNotReserved nominal representational phantom = ""
+
+data RoleNotReserved role = RoleNotReserved role
+
+-- Contextual keywords should be allowed unquoted in rows.
+type ContextualKeywords =
+  ( nominal :: String
+  , phantom :: String
+  , representational :: String
+  , role :: String
+  )
+
+newtype RecursiveRepresentational a
+  = RecursiveRepresentational (RecursiveRepresentational a)
+type role RecursiveRepresentational representational
+
+recursiveRepresentational :: forall a b. Coercible a b => RecursiveRepresentational a -> RecursiveRepresentational b
+recursiveRepresentational = coerce
+
+data MutuallyRecursivePhantom1 a
+  = MutuallyRecursivePhantom1 (MutuallyRecursivePhantom2 a)
+
+data MutuallyRecursivePhantom2 a
+  = MutuallyRecursivePhantom2 (MutuallyRecursivePhantom1 a)
+
+mutuallyRecursivePhantom :: forall a b. MutuallyRecursivePhantom1 a -> MutuallyRecursivePhantom1 b
+mutuallyRecursivePhantom = coerce
+
+data MutuallyRecursiveRepresentational1 a
+  = MutuallyRecursiveRepresentational1 a (MutuallyRecursiveRepresentational2 a)
+
+data MutuallyRecursiveRepresentational2 a
+  = MutuallyRecursiveRepresentational2 (MutuallyRecursiveRepresentational1 a)
+
+mutuallyRecursiveRepresentational :: forall a. MutuallyRecursiveRepresentational1 a -> MutuallyRecursiveRepresentational1 (Id1 a)
+mutuallyRecursiveRepresentational = coerce
+
+main = log (coerce (NTString1 "Done") :: String)
diff --git a/tests/purs/passing/Coercible/Lib.purs b/tests/purs/passing/Coercible/Lib.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/passing/Coercible/Lib.purs
@@ -0,0 +1,12 @@
+module Coercible.Lib
+  ( module Coercible.Lib2
+  , NTLib1 (..)
+  , NTLib3 (..)
+  ) where
+
+import Coercible.Lib2
+
+newtype NTLib1 a = NTLib1 a
+
+newtype NTLib3 a b = NTLib3 a
+type role NTLib3 representational representational
diff --git a/tests/purs/passing/Coercible/Lib2.purs b/tests/purs/passing/Coercible/Lib2.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/passing/Coercible/Lib2.purs
@@ -0,0 +1,3 @@
+module Coercible.Lib2 where
+
+newtype NTLib2 a = NTLib2 a
diff --git a/tests/purs/passing/CyclicInstances.purs b/tests/purs/passing/CyclicInstances.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/passing/CyclicInstances.purs
@@ -0,0 +1,29 @@
+module Main where
+
+import Prelude
+
+import Data.Generic.Rep (class Generic)
+import Data.Show.Generic (genericShow)
+import Effect.Console (log)
+
+newtype A = A B
+derive newtype instance Show A
+data B = B C
+       | Z
+derive instance Generic B _
+instance Show B where show x = genericShow x
+newtype C = C A
+derive instance Generic C _
+instance Show C where show = genericShow
+
+newtype A2 = A2 { x :: B2 }
+derive newtype instance Show A2
+data B2 = B2 C2
+        | Z2
+derive instance Generic B2 _
+instance Show B2 where show x = genericShow x
+newtype C2 = C2 A2
+derive instance Generic C2 _
+instance Show C2 where show = genericShow
+
+main = log "Done"
diff --git a/tests/purs/passing/DerivingBifunctor.purs b/tests/purs/passing/DerivingBifunctor.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/passing/DerivingBifunctor.purs
@@ -0,0 +1,26 @@
+module Main where
+
+import Prelude
+
+import Data.Bifoldable (class Bifoldable)
+import Data.Bifunctor (class Bifunctor)
+import Data.Bitraversable (class Bitraversable)
+import Data.Predicate (Predicate)
+import Data.Tuple (Tuple)
+import Effect.Console (log)
+
+data Test f a b
+  = Test0
+  | Test1 (Array a) b
+  | Test2 Int (forall a. Array a -> Array a)
+  | Test3 Int (f a b) (f a Int) (f Int b)
+  | Test4 (Array (Tuple a Int)) (Tuple b Int)
+  | Test5 { nested :: Array { x :: f { a :: a } { b :: b } } }
+derive instance Bifunctor f => Bifunctor (Test f)
+derive instance Bifoldable f => Bifoldable (Test f)
+derive instance Bitraversable f => Bitraversable (Test f)
+
+data FromProAndContra a b = FromProAndContra (Predicate (a -> Int)) (Predicate b -> Int)
+derive instance Bifunctor FromProAndContra
+
+main = log "Done"
diff --git a/tests/purs/passing/DerivingContravariant.purs b/tests/purs/passing/DerivingContravariant.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/passing/DerivingContravariant.purs
@@ -0,0 +1,20 @@
+module Main where
+
+import Prelude
+
+import Data.Functor.Contravariant (class Contravariant)
+import Data.Predicate (Predicate)
+import Data.Tuple (Tuple)
+import Effect.Console (log)
+
+data Test f a
+  = Test0
+  | Test1 (Predicate a)
+  | Test2 (Predicate (Predicate (Predicate a)))
+  | Test3 Int (forall a. Array a -> Array a)
+  | Test4 Int (f a)
+  | Test5 (Array (a -> Int)) (Tuple (Predicate a) Int)
+  | Test6 { nested :: Array { x :: f { a :: a } } }
+derive instance Contravariant f => Contravariant (Test f)
+
+main = log "Done"
diff --git a/tests/purs/passing/DerivingFoldable.purs b/tests/purs/passing/DerivingFoldable.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/passing/DerivingFoldable.purs
@@ -0,0 +1,89 @@
+module Main where
+
+import Prelude
+import Effect.Console (log)
+import Data.Foldable (class Foldable, foldl, foldr, foldMap)
+import Test.Assert
+
+-- Fold is done in alphabetical ordering of labels,
+-- not their order in definition
+type RecordFields f a =
+  { a :: a
+  , zArrayA :: Array a
+  , fa :: f a
+  , ignore :: Int
+  , arrayIgnore :: Array Int
+  , fIgnore :: f Int
+  }
+
+data M f a
+  = M0
+  | M1 a (Array a)
+  | M2 Int (forall a. Array a -> Array a)
+  | M3 (f a)
+  | M4 (RecordFields f a)
+  | M5 { nested :: RecordFields f a }
+  | M6 Int a (Array Int) (Array a) (f a) (f Int) (RecordFields f a) { nested :: RecordFields f a }
+  | M7 (f (f { nested :: RecordFields f a }))
+
+derive instance foldableM :: Foldable f => Foldable (M f)
+
+type MArrStr = M Array String
+
+foldlStr :: forall f. Foldable f => f String -> String
+foldlStr = foldl (\acc next -> acc <> "<" <> next) "Start"
+
+foldrStr :: forall f. Foldable f => f String -> String
+foldrStr = foldr (\next acc -> next <> ">" <> acc) "Start"
+
+foldMapStr :: forall f. Foldable f => f String -> String
+foldMapStr = foldMap identity
+
+m0 = M0 :: MArrStr
+m1 = M1 "a" ["b", "c"] :: MArrStr
+m2 = M2 0 identity :: MArrStr
+m3 = M3 ["a", "b", "c"] :: MArrStr
+m4 = M4 recordValue :: MArrStr
+m5 = M5 { nested: recordValue } :: MArrStr
+m6 = M6 1 "a" [] ["b"] ["c"] [] recordValue { nested: recordValue } :: MArrStr
+m7 = M7 [[{ nested: recordValue }]] :: MArrStr
+
+recordValue :: RecordFields Array String
+recordValue =
+  { a: "a"
+  , zArrayA: ["c"]
+  , fa: ["b"]
+  , ignore: 1
+  , arrayIgnore: [2, 3]
+  , fIgnore: [4]
+  }
+
+main = do
+  assertEqual' "foldl - M0" { expected: "Start", actual: foldlStr m0 }
+  assertEqual' "foldl - M1" { expected: "Start<a<b<c", actual: foldlStr m1 }
+  assertEqual' "foldl - M2" { expected: "Start", actual: foldlStr m2 }
+  assertEqual' "foldl - M3" { expected: "Start<a<b<c", actual: foldlStr m3 }
+  assertEqual' "foldl - M4" { expected: "Start<a<b<c", actual: foldlStr m4 }
+  assertEqual' "foldl - M5" { expected: "Start<a<b<c", actual: foldlStr m5 }
+  assertEqual' "foldl - M6" { expected: "Start<a<b<c<a<b<c<a<b<c", actual: foldlStr m6 }
+  assertEqual' "foldl - M7" { expected: "Start<a<b<c", actual: foldlStr m7 }
+
+  assertEqual' "foldr - M0" { expected: "Start", actual: foldrStr m0 }
+  assertEqual' "foldr - M1" { expected: "a>b>c>Start", actual: foldrStr m1 }
+  assertEqual' "foldr - M2" { expected: "Start", actual: foldrStr m2 }
+  assertEqual' "foldr - M3" { expected: "a>b>c>Start", actual: foldrStr m3 }
+  assertEqual' "foldr - M4" { expected: "a>b>c>Start", actual: foldrStr m4 }
+  assertEqual' "foldr - M5" { expected: "a>b>c>Start", actual: foldrStr m5 }
+  assertEqual' "foldr - M6" { expected: "a>b>c>a>b>c>a>b>c>Start", actual: foldrStr m6 }
+  assertEqual' "foldr - M7" { expected: "a>b>c>Start", actual: foldrStr m7 }
+
+  assertEqual' "foldMap - M0" { expected: "", actual: foldMapStr m0 }
+  assertEqual' "foldMap - M1" { expected: "abc", actual: foldMapStr m1 }
+  assertEqual' "foldMap - M2" { expected: "", actual: foldMapStr m2 }
+  assertEqual' "foldMap - M3" { expected: "abc", actual: foldMapStr m3 }
+  assertEqual' "foldMap - M4" { expected: "abc", actual: foldMapStr m4 }
+  assertEqual' "foldMap - M5" { expected: "abc", actual: foldMapStr m5 }
+  assertEqual' "foldMap - M6" { expected: "abcabcabc", actual: foldMapStr m6 }
+  assertEqual' "foldMap - M7" { expected: "abc", actual: foldMapStr m7 }
+
+  log "Done"
diff --git a/tests/purs/passing/DerivingFunctor.purs b/tests/purs/passing/DerivingFunctor.purs
--- a/tests/purs/passing/DerivingFunctor.purs
+++ b/tests/purs/passing/DerivingFunctor.purs
@@ -3,34 +3,122 @@
 import Prelude
 import Data.Eq (class Eq1)
 import Effect.Console (log)
+import Data.List (List(..), (:))
+import Data.Tuple (Tuple(..))
 import Test.Assert
 
-type MyRecord a = { myField :: a }
+type RecordFields f a =
+  { a :: a
+  , zArrayA :: Array a
+  , fa :: f a
+  , ignore :: Int
+  , recursiveA :: Array (Tuple Int (Array a))
+  , arrayIgnore :: Array Int
+  , fIgnore :: f Int
+  , empty :: {}
+  }
 
 data M f a
   = M0 a (Array a)
   | M1 Int
   | M2 (f a)
-  | M3 { foo :: Int, bar :: a, baz :: f a }
-  | M4 (MyRecord a)
+  | M3 (RecordFields f a)
+  | M4 { nested :: RecordFields f a }
+  | M5 Int a (Array Int) (Array a) (f a) (f Int) (RecordFields f a) { nested :: RecordFields f a }
+  | M6 (Array (Array (Array a)))
 
 derive instance eqM :: (Eq1 f, Eq a) => Eq (M f a)
 derive instance functorM :: Functor f => Functor (M f)
 
+type MA = M Array
+
+m0L = M0 0 [1, 2] :: MA Int
+m0R = M0 "0" ["1", "2"] :: MA String
+
+m1L = M1 0 :: MA Int
+m1R = M1 0 :: MA String
+
+m2L = M2 [0, 1] :: MA Int
+m2R = M2 ["0", "1"] :: MA String
+
+m3L = M3 recordValueL :: MA Int
+m3R = M3 recordValueR :: MA String
+
+m4L = M4 { nested: recordValueL } :: MA Int
+m4R = M4 { nested: recordValueR } :: MA String
+
+m5L = M5 0 1 [2, 3] [3, 4] [5, 6] [7, 8] recordValueL { nested: recordValueL } :: MA Int
+m5R = M5 0 "1" [2, 3] ["3", "4"] ["5", "6"] [7, 8] recordValueR { nested: recordValueR } :: MA String
+
+recordValueL :: RecordFields Array Int
+recordValueL = { a: 71, zArrayA: [72], fa: [73], ignore: 91, recursiveA: [ Tuple 1 [1], Tuple 2 [2] ], arrayIgnore: [92, 93], fIgnore: [94], empty: {} }
+
+recordValueR :: RecordFields Array String
+recordValueR = { a: "71", zArrayA: ["72"], fa: ["73"], ignore: 91, recursiveA: [ Tuple 1 ["1"], Tuple 2 ["2"] ], arrayIgnore: [92, 93], fIgnore: [94], empty: {} }
+
+m6L = M6 [[[1, 2]]] :: MA Int
+m6R = M6 [[["1", "2"]]] :: MA String
+
+maTests = do
+  assert' "map - M0" $ map show m0L == m0R
+  assert' "map - M1" $ map show m1L == m1R
+  assert' "map - M2" $ map show m2L == m2R
+  assert' "map - M3" $ map show m3L == m3R
+  assert' "map - M4" $ map show m4L == m4R
+  assert' "map - M5" $ map show m5L == m5R
+  assert' "map - M6" $ map show m6L == m6R
+
+data Fun1 a = Fun1 (Int -> Int -> a)
+derive instance Functor Fun1
+
+f1Test = do
+  assert' "map - Fun1" do
+    let
+      fn = show
+      left a b = a + b
+      right a b = fn $ left a b
+      Fun1 left' = map fn $ Fun1 left
+    left' 1 2 == right 1 2
+
+data Fun2 a = Fun2 (Int -> Int -> Array (Array a))
+derive instance Functor Fun2
+
+f2Test = do
+  assert' "map - Fun2" do
+    let
+      fn = show
+      left a b = [[a + b]]
+      right a b = map (map fn) $ left a b
+      Fun2 left' = map fn $ Fun2 left
+    left' 1 2 == right 1 2
+
+data Fun3 f a = Fun3 (Unit -> Array (f (Array { nested :: RecordFields f a })))
+derive instance Functor f => Functor (Fun3 f)
+
+f3Test = do
+  assert' "map - Fun3" do
+    let
+      left _ = [[[{ nested: recordValueL }]]]
+      right _ = [[[{ nested: recordValueR }]]]
+      Fun3 left' = map show $ Fun3 left
+    left' unit == right unit
+
 data T a = T (forall t. Show t => t -> a)
 derive instance functorT :: Functor T
 
-type MA = M Array
+taTests = do
+  case map show (T \_ -> 42) of
+    T f -> assert' "map show T" $ f "hello" == "42"
+    _   -> assert' "map show T" false
 
-main = do
-  assert $ map show (M0 0 [1, 2] :: MA Int) == M0 "0" ["1", "2"]
-  assert $ map show (M1 0 :: MA Int) == M1 0
-  assert $ map show (M2 [0, 1] :: MA Int) == M2 ["0", "1"]
-  assert $ map show (M3 {foo: 0, bar: 1, baz: [2, 3]} :: MA Int) == M3 {foo: 0, bar: "1", baz: ["2", "3"]}
-  assert $ map show (M4 { myField: 42 }) == (M4 { myField: "42" } :: MA String)
+funTests = do
+  f1Test
+  f2Test
+  f3Test
+  taTests
 
-  case map show (T \_ -> 42) of
-    T f -> assert $ f "hello" == "42"
-    _   -> assert false
+main = do
+  maTests
+  funTests
 
   log "Done"
diff --git a/tests/purs/passing/DerivingFunctorFromBi.purs b/tests/purs/passing/DerivingFunctorFromBi.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/passing/DerivingFunctorFromBi.purs
@@ -0,0 +1,18 @@
+module Main where
+
+import Prelude
+
+import Data.Foldable (class Foldable)
+import Data.Traversable (class Traversable)
+import Data.Tuple (Tuple)
+import Effect.Console (log)
+
+data Test a
+  = Test1 (Tuple a Int)
+  | Test2 (Tuple (Array a) a)
+  | Test3 { x :: Tuple { a :: a } Int, y :: Tuple { a :: Array a } { a :: a } }
+derive instance Functor Test
+derive instance Foldable Test
+derive instance Traversable Test
+
+main = log "Done"
diff --git a/tests/purs/passing/DerivingFunctorFromContra.purs b/tests/purs/passing/DerivingFunctorFromContra.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/passing/DerivingFunctorFromContra.purs
@@ -0,0 +1,13 @@
+module Main where
+
+import Prelude
+
+import Data.Predicate (Predicate)
+import Effect.Console (log)
+
+data Test a
+  = Test1 (Predicate (Predicate a))
+  | Test2 { x :: Predicate { y :: Predicate a } }
+derive instance Functor Test
+
+main = log "Done"
diff --git a/tests/purs/passing/DerivingFunctorFromPro.purs b/tests/purs/passing/DerivingFunctorFromPro.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/passing/DerivingFunctorFromPro.purs
@@ -0,0 +1,16 @@
+module Main where
+
+-- Note that Data.Profunctor is not in the dependencies of any types imported
+-- here. The package that contains that module must be a dependency of the test
+-- project.
+
+import Prelude
+
+import Effect.Console (log)
+
+data Test a
+  = Test1 ((Array a -> Int) -> Int)
+  | Test2 { f :: ({ a :: a } -> Int) -> Int }
+derive instance Functor Test
+
+main = log "Done"
diff --git a/tests/purs/passing/DerivingFunctorPrefersSimplerClasses.purs b/tests/purs/passing/DerivingFunctorPrefersSimplerClasses.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/passing/DerivingFunctorPrefersSimplerClasses.purs
@@ -0,0 +1,46 @@
+module Main where
+
+import Prelude
+
+import Data.Bifunctor (class Bifunctor)
+import Data.Profunctor (class Profunctor)
+import Effect (Effect)
+import Effect.Console (log)
+import Test.Assert (assert')
+
+newtype MonoAndBi a b = MonoAndBi (Effect Unit)
+derive instance Functor (MonoAndBi a)
+instance Bifunctor MonoAndBi where
+  bimap _ _ _ = MonoAndBi (assert' "Bifunctor instance was used but the Functor instance was expected" false)
+
+newtype Test1 a = Test1 (MonoAndBi Int a)
+derive instance Functor Test1
+
+data ExclusivelyBi a b
+derive instance Bifunctor ExclusivelyBi
+
+newtype Test2 a = Test2 (ExclusivelyBi Int a)
+derive instance Functor Test2
+
+newtype MonoAndPro a b = MonoAndPro (Effect Unit)
+derive instance Functor (MonoAndPro a)
+instance Profunctor MonoAndPro where
+  dimap _ _ _ = MonoAndPro (assert' "Profunctor instance was used but the Functor instance was expected" false)
+
+newtype Test3 a = Test3 (MonoAndPro Int a)
+derive instance Functor Test3
+
+data ExclusivelyPro a b
+derive instance Profunctor ExclusivelyPro
+
+newtype Test4 a = Test4 (ExclusivelyPro Int a)
+derive instance Functor Test4
+
+main = do
+  let t = Test1 (MonoAndBi (pure unit))
+  let Test1 (MonoAndBi result1) = map identity t
+  result1
+  let t = Test3 (MonoAndPro (pure unit))
+  let Test3 (MonoAndPro result3) = map identity t
+  result3
+  log "Done"
diff --git a/tests/purs/passing/DerivingProfunctor.purs b/tests/purs/passing/DerivingProfunctor.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/passing/DerivingProfunctor.purs
@@ -0,0 +1,19 @@
+module Main where
+
+import Prelude
+
+import Data.Predicate (Predicate)
+import Data.Profunctor (class Profunctor)
+import Data.Tuple (Tuple)
+import Effect.Console (log)
+
+data Test f a b
+  = Test0
+  | Test1 (Predicate a) b
+  | Test2 Int (forall a. Array a -> Array a)
+  | Test3 Int (f a b) (f a Int) (f Int b)
+  | Test4 (Array (a -> Int)) (Tuple b Int)
+  | Test5 { nested :: Array { x :: f { a :: a } { b :: b } } }
+derive instance Profunctor f => Profunctor (Test f)
+
+main = log "Done"
diff --git a/tests/purs/passing/DerivingTraversable.purs b/tests/purs/passing/DerivingTraversable.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/passing/DerivingTraversable.purs
@@ -0,0 +1,110 @@
+module Main where
+
+import Prelude
+
+import Effect.Console (log)
+import Data.Eq (class Eq1)
+import Data.Foldable (class Foldable)
+import Data.Traversable (class Traversable, traverse, sequence)
+import Test.Assert
+
+-- Traverse order is done in alphabetical ordering of labels,
+-- not their order in definition
+type RecordFields f a =
+  { a :: a
+  , zArrayA :: Array a
+  , fa :: f a
+  , ignore :: Int
+  , arrayIgnore :: Array Int
+  , fIgnore :: f Int
+  }
+
+data M f a
+  = M0
+  | M1 a (Array a)
+  | M2 Int
+  | M3 (f a)
+  | M4 (RecordFields f a)
+  | M5 { nested :: RecordFields f a }
+  | M6 Int a (Array Int) (Array a) (f a) (f Int) (RecordFields f a) { nested :: RecordFields f a }
+  | M7 (f (f { nested :: RecordFields f a }))
+
+-- Note: all 4 of these constraints are needed to compile this code
+derive instance
+  ( Eq1 f
+  , Eq (f (f { nested :: RecordFields f a }))
+  , Eq (f { nested :: RecordFields f a })
+  , Eq a
+  ) => Eq (M f a)
+derive instance Functor f => Functor (M f)
+derive instance Foldable f => Foldable (M f)
+derive instance Traversable f => Traversable (M f)
+
+type MArrStr = M Array String
+
+traverseStr :: forall f. Traversable f => f String -> Array (f String)
+traverseStr = traverse pure
+
+sequenceStr :: forall f. Traversable f => f (Array String) -> Array (f String)
+sequenceStr = sequence
+
+m0 = M0 :: MArrStr
+m1 = M1 "a" ["b", "c"] :: MArrStr
+m2 = M2 0 :: MArrStr
+m3 = M3 ["a", "b", "c"] :: MArrStr
+m4 = M4 recordValue :: MArrStr
+m5 = M5 { nested: recordValue } :: MArrStr
+m6 = M6 1 "a" [] ["b"] ["c"] [] recordValue { nested: recordValue } :: MArrStr
+m7 = M7 [ [ { nested: recordValue } ] ] :: MArrStr
+
+recordValue :: RecordFields Array String
+recordValue =
+  { a: "a"
+  , zArrayA: ["c"]
+  , fa: ["b"]
+  , ignore: 1
+  , arrayIgnore: [2, 3]
+  , fIgnore: [4]
+  }
+
+type MArrArrStr = M Array (Array String)
+
+m0' = M0 :: MArrArrStr
+m1' = M1 ["a"] [["b"], ["c"]] :: MArrArrStr
+m2' = M2 0 :: MArrArrStr
+m3' = M3 [["a"], ["b"], ["c"]] :: MArrArrStr
+m4' = M4 recordValue' :: MArrArrStr
+m5' = M5 { nested: recordValue' } :: MArrArrStr
+m6' = M6 1 ["a"] [] [["b"]] [["c"]] [] recordValue' { nested: recordValue' } :: MArrArrStr
+m7' = M7 [ [ { nested: recordValue' } ] ] :: MArrArrStr
+
+recordValue' :: RecordFields Array (Array String)
+recordValue' =
+  { a: ["a"]
+  , zArrayA: [["c"]]
+  , fa: [["b"]]
+  , ignore: 1
+  , arrayIgnore: [2, 3]
+  , fIgnore: [4]
+  }
+
+main = do
+  assert' "traverse - m0" $ traverseStr m0 == [m0]
+  assert' "traverse - m1" $ traverseStr m1 == [m1]
+  assert' "traverse - m2" $ traverseStr m2 == [m2]
+  assert' "traverse - m3" $ traverseStr m3 == [m3]
+  assert' "traverse - m4" $ traverseStr m4 == [m4]
+  assert' "traverse - m5" $ traverseStr m5 == [m5]
+  assert' "traverse - m6" $ traverseStr m6 == [m6]
+  assert' "traverse - m7" $ traverseStr m7 == [m7]
+
+  assert' "sequence - m0" $ sequenceStr m0' == [m0]
+  assert' "sequence - m1" $ sequenceStr m1' == [m1]
+  assert' "sequence - m2" $ sequenceStr m2' == [m2]
+  assert' "sequence - m3" $ sequenceStr m3' == [m3]
+  assert' "sequence - m4" $ sequenceStr m4' == [m4]
+  assert' "sequence - m5" $ sequenceStr m5' == [m5]
+  assert' "sequence - m6" $ sequenceStr m6' == [m6]
+  assert' "sequence - m7" $ sequenceStr m7' == [m7]
+
+  log "Done"
diff --git a/tests/purs/passing/DuplicateProperties.purs b/tests/purs/passing/DuplicateProperties.purs
--- a/tests/purs/passing/DuplicateProperties.purs
+++ b/tests/purs/passing/DuplicateProperties.purs
@@ -2,25 +2,22 @@
 
 import Prelude
 import Effect.Console (log)
-
-data RProxy (r :: # Type) = RProxy
-
-data Proxy (a :: Type) = Proxy
+import Type.Proxy (Proxy(..))
 
-subtractX :: forall r a. RProxy (x :: a | r) -> RProxy r
-subtractX RProxy = RProxy
+subtractX :: forall r a. Proxy (x :: a | r) -> Proxy r
+subtractX Proxy = Proxy
 
-extractX :: forall r a. RProxy (x :: a | r) -> Proxy a
-extractX RProxy = Proxy
+extractX :: forall r a. Proxy (x :: a | r) -> Proxy a
+extractX Proxy = Proxy
 
-hasX :: forall r a b. RProxy (x :: a, y :: b | r)
-hasX = RProxy
+hasX :: forall r a b. Proxy (x :: a, y :: b | r)
+hasX = Proxy
 
 test1 = subtractX (subtractX hasX)
 
 test2
   :: forall r a b
-   . RProxy (x :: a, x :: b, x :: Int | r)
+   . Proxy (x :: a, x :: b, x :: Int | r)
   -> Proxy Int
 test2 x = extractX (subtractX (subtractX x))
 
diff --git a/tests/purs/passing/ESFFIFunctionConst.js b/tests/purs/passing/ESFFIFunctionConst.js
new file mode 100644
--- /dev/null
+++ b/tests/purs/passing/ESFFIFunctionConst.js
@@ -0,0 +1,3 @@
+export const functionName = function (a) {
+  return a;
+}
diff --git a/tests/purs/passing/ESFFIFunctionConst.purs b/tests/purs/passing/ESFFIFunctionConst.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/passing/ESFFIFunctionConst.purs
@@ -0,0 +1,8 @@
+module Main where
+
+import Prelude
+import Effect.Console (log)
+
+foreign import functionName :: forall a. a -> a
+
+main = log "Done"
diff --git a/tests/purs/passing/ESFFIFunctionFunction.js b/tests/purs/passing/ESFFIFunctionFunction.js
new file mode 100644
--- /dev/null
+++ b/tests/purs/passing/ESFFIFunctionFunction.js
@@ -0,0 +1,3 @@
+export function functionName(a) {
+  return a;
+}
diff --git a/tests/purs/passing/ESFFIFunctionFunction.purs b/tests/purs/passing/ESFFIFunctionFunction.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/passing/ESFFIFunctionFunction.purs
@@ -0,0 +1,8 @@
+module Main where
+
+import Prelude
+import Effect.Console (log)
+
+foreign import functionName :: forall a. a -> a
+
+main = log "Done"
diff --git a/tests/purs/passing/ESFFIFunctionVar.js b/tests/purs/passing/ESFFIFunctionVar.js
new file mode 100644
--- /dev/null
+++ b/tests/purs/passing/ESFFIFunctionVar.js
@@ -0,0 +1,3 @@
+export var functionName = function (a) {
+  return a;
+}
diff --git a/tests/purs/passing/ESFFIFunctionVar.purs b/tests/purs/passing/ESFFIFunctionVar.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/passing/ESFFIFunctionVar.purs
@@ -0,0 +1,8 @@
+module Main where
+
+import Prelude
+import Effect.Console (log)
+
+foreign import functionName :: forall a. a -> a
+
+main = log "Done"
diff --git a/tests/purs/passing/ESFFIValueConst1.js b/tests/purs/passing/ESFFIValueConst1.js
new file mode 100644
--- /dev/null
+++ b/tests/purs/passing/ESFFIValueConst1.js
@@ -0,0 +1,1 @@
+export const value = 1;
diff --git a/tests/purs/passing/ESFFIValueConst1.purs b/tests/purs/passing/ESFFIValueConst1.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/passing/ESFFIValueConst1.purs
@@ -0,0 +1,8 @@
+module Main where
+
+import Prelude
+import Effect.Console (log)
+
+foreign import value :: Int
+
+main = log "Done"
diff --git a/tests/purs/passing/ESFFIValueVar.js b/tests/purs/passing/ESFFIValueVar.js
new file mode 100644
--- /dev/null
+++ b/tests/purs/passing/ESFFIValueVar.js
@@ -0,0 +1,1 @@
+export var value = 1;
diff --git a/tests/purs/passing/ESFFIValueVar.purs b/tests/purs/passing/ESFFIValueVar.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/passing/ESFFIValueVar.purs
@@ -0,0 +1,8 @@
+module Main where
+
+import Prelude
+import Effect.Console (log)
+
+foreign import value :: Int
+
+main = log "Done"
diff --git a/tests/purs/passing/EffFn.js b/tests/purs/passing/EffFn.js
--- a/tests/purs/passing/EffFn.js
+++ b/tests/purs/passing/EffFn.js
@@ -1,1 +1,1 @@
-exports.add3 = function (a,b,c) { return a + b + c; };
+export var add3 = function (a,b,c) { return a + b + c; };
diff --git a/tests/purs/passing/EmptyDicts.purs b/tests/purs/passing/EmptyDicts.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/passing/EmptyDicts.purs
@@ -0,0 +1,77 @@
+-- |
+-- The purpose of this test is to make sure that the empty type class
+-- dictionary elimination code doesn't change semantics.
+module Main where
+
+import Prelude
+import Effect.Console (log)
+
+-- |
+-- Data type to check that the result of expressions with eliminated
+-- dictionaries are as expected.
+data Check = Check
+derive instance eqCheck :: Eq Check
+
+-- |
+-- This type class has no constraints and no members.
+-- Is is therefore considered empty.
+class EmptyClass
+instance emptyDictInst :: EmptyClass
+
+-- |
+-- This type class is not empty as it has members, but it has an empty super
+-- class.
+class EmptyClass <= HasEmptySuper where
+  hasEmptySuper :: Check
+instance hasEmptySuperInst :: HasEmptySuper where
+  hasEmptySuper = Check
+
+-- |
+-- This type class has no members, but has a non-empty super class.
+-- It is therefore not empty.
+class HasEmptySuper <= HasNonEmptySuper
+instance hasNonEmptySuperInst :: HasEmptySuper => HasNonEmptySuper
+
+-- |
+-- This type class is empty because all it's super classes are empty and it
+-- has no members.
+class EmptyClass <= AliasEmptyClass
+instance aliasEmptyClassInst :: AliasEmptyClass
+
+whenEmpty :: Check
+whenEmpty = Check :: EmptyClass => Check
+
+whenHasEmptySuper :: Check
+whenHasEmptySuper = Check :: HasEmptySuper => Check
+
+whenHasNonEmptySuper :: Check
+whenHasNonEmptySuper = Check :: HasNonEmptySuper => Check
+
+whenAliasEmptyClass :: Check
+whenAliasEmptyClass = Check :: AliasEmptyClass => Check
+
+class WithArgEmpty t
+instance withArgEmptyCheck :: WithArgEmpty Check
+class WithArgEmpty t <= WithArgHasEmptySuper t where
+  withArgHasEmptySuper :: t
+instance withArgHasEmptySuperCheck :: WithArgHasEmptySuper Check where
+  withArgHasEmptySuper = Check
+
+whenAccessingSuperDict :: Check
+whenAccessingSuperDict = foo Check where
+
+  bar :: forall t . WithArgEmpty t => t -> t
+  bar x = x
+
+  foo :: forall t . WithArgHasEmptySuper t => t -> t
+  foo x = bar x
+
+main =
+  if Check == whenEmpty &&
+     Check == whenHasEmptySuper &&
+     Check == whenHasNonEmptySuper &&
+     Check == whenAliasEmptyClass &&
+     Check == whenAccessingSuperDict
+    then log "Done"
+    else pure unit
+
diff --git a/tests/purs/passing/ExportExplicit/M1.purs b/tests/purs/passing/ExportExplicit/M1.purs
--- a/tests/purs/passing/ExportExplicit/M1.purs
+++ b/tests/purs/passing/ExportExplicit/M1.purs
@@ -1,4 +1,4 @@
-module M1 (X(X), Z(..), foo) where
+module M1 (X(X, Y), Z(..), foo) where
 
 data X = X | Y
 data Z = Z
diff --git a/tests/purs/passing/FFIConstraintWorkaround.js b/tests/purs/passing/FFIConstraintWorkaround.js
new file mode 100644
--- /dev/null
+++ b/tests/purs/passing/FFIConstraintWorkaround.js
@@ -0,0 +1,5 @@
+export function showImpl(showFn) {
+  return function (val) {
+    return showFn(val);
+  };
+};
diff --git a/tests/purs/passing/FFIConstraintWorkaround.purs b/tests/purs/passing/FFIConstraintWorkaround.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/passing/FFIConstraintWorkaround.purs
@@ -0,0 +1,22 @@
+module Main where
+
+import Prelude
+import Effect
+import Effect.Console
+import Test.Assert
+
+main :: Effect Unit
+main = do
+  assert' "Showing Int is correct" $ showFFI 4 == "4"
+  assert' "Showing String is correct" $ showFFI "string" == "\"string\""
+  assert' "Showing Record is correct" $
+    showFFI { a: 1, b: true, c: 'd', e: 4.0 } == "{ a: 1, b: true, c: 'd', e: 4.0 }"
+  log "Done"
+
+showFFI :: forall a. Show a => a -> String
+showFFI = showImpl show
+
+-- Since type class constraints are not allowed
+-- in FFI declarations, we have to pass members
+-- we want to use into the function itself.
+foreign import showImpl :: forall a. (a -> String) -> a -> String
diff --git a/tests/purs/passing/FFIDefaultESExport.js b/tests/purs/passing/FFIDefaultESExport.js
new file mode 100644
--- /dev/null
+++ b/tests/purs/passing/FFIDefaultESExport.js
@@ -0,0 +1,3 @@
+var message = "Done";
+
+export { message as default };
diff --git a/tests/purs/passing/FFIDefaultESExport.purs b/tests/purs/passing/FFIDefaultESExport.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/passing/FFIDefaultESExport.purs
@@ -0,0 +1,7 @@
+module Main where
+
+import Effect.Console (log)
+
+foreign import default :: String
+
+main = log default
diff --git a/tests/purs/passing/ForeignDataInKind.purs b/tests/purs/passing/ForeignDataInKind.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/passing/ForeignDataInKind.purs
@@ -0,0 +1,9 @@
+module Main where
+
+import Prelude
+import Effect.Console (log)
+
+foreign import data A :: Type
+data B (x :: A)
+
+main = log "Done"
diff --git a/tests/purs/passing/ForeignKind.purs b/tests/purs/passing/ForeignKind.purs
--- a/tests/purs/passing/ForeignKind.purs
+++ b/tests/purs/passing/ForeignKind.purs
@@ -1,7 +1,7 @@
 module Main where
 
 import Prelude
-import ForeignKinds.Lib (kind Nat, Zero, Succ, N3, NatProxy, class AddNat, addNat, proxy1, proxy2)
+import ForeignKinds.Lib (Nat, Zero, Succ, N3, NatProxy, class AddNat, addNat, proxy1, proxy2)
 import Effect.Console (log)
 
 proxy1Add2Is3 :: NatProxy N3
diff --git a/tests/purs/passing/ForeignKind/Lib.purs b/tests/purs/passing/ForeignKind/Lib.purs
--- a/tests/purs/passing/ForeignKind/Lib.purs
+++ b/tests/purs/passing/ForeignKind/Lib.purs
@@ -1,8 +1,8 @@
-module ForeignKinds.Lib (kind Nat, Kinded, Zero, Succ, N0, N1, N2, N3, NatProxy(..), class AddNat, addNat, proxy1, proxy2) where
+module ForeignKinds.Lib (Nat, Kinded, Zero, Succ, N0, N1, N2, N3, NatProxy(..), class AddNat, addNat, proxy1, proxy2) where
 
 -- declaration
 
-foreign import kind Nat
+data Nat
 
 -- use in foreign data
 
diff --git a/tests/purs/passing/FunWithFunDeps.js b/tests/purs/passing/FunWithFunDeps.js
--- a/tests/purs/passing/FunWithFunDeps.js
+++ b/tests/purs/passing/FunWithFunDeps.js
@@ -1,32 +1,28 @@
 
 //: forall e. FVect Z e
-exports.fnil = [];
+export var fnil = [];
 
 //: forall n e. e -> FVect n e -> FVect (S n) e
-exports.fcons = function (hd) {
+export var fcons = function (hd) {
   return function (tl) {
     return [hd].concat(tl);
   };
 };
 
-exports.fappend = function (dict) {
-  return function (left) {
-    return function (right) {
-      return left.concat(right);
-    };
+export var fappendImpl = function (left) {
+  return function (right) {
+    return left.concat(right);
   };
 };
 
-exports.fflatten = function (dict) {
-  return function (v) {
-    var accRef = [];
-    for (var indexRef = 0; indexRef < v.length; indexRef += 1) {
-      accRef = accRef.concat(v[indexRef]);
-    }
-    return accRef;
-  };
+export var fflattenImpl = function (v) {
+  var accRef = [];
+  for (var indexRef = 0; indexRef < v.length; indexRef += 1) {
+    accRef = accRef.concat(v[indexRef]);
+  }
+  return accRef;
 };
 
-exports.ftoArray = function (vect) {
+export var ftoArray = function (vect) {
   return vect;
 };
diff --git a/tests/purs/passing/FunWithFunDeps.purs b/tests/purs/passing/FunWithFunDeps.purs
--- a/tests/purs/passing/FunWithFunDeps.purs
+++ b/tests/purs/passing/FunWithFunDeps.purs
@@ -26,8 +26,12 @@
 foreign import data FVect :: Type -> Type -> Type
 foreign import fnil :: forall e. FVect Z e
 foreign import fcons :: forall n e. e -> FVect n e -> FVect (S n) e
-foreign import fappend :: forall l r o e. NatPlus l r o => FVect l e -> FVect r e -> FVect o e
-foreign import fflatten :: forall f s t o. NatMult f s o => FVect f (FVect s t) -> FVect o t
+fappend :: forall l r o e. NatPlus l r o => FVect l e -> FVect r e -> FVect o e
+fappend = fappendImpl
+foreign import fappendImpl :: forall l r o e. FVect l e -> FVect r e -> FVect o e
+fflatten :: forall f s t o. NatMult f s o => FVect f (FVect s t) -> FVect o t
+fflatten = fflattenImpl
+foreign import fflattenImpl :: forall f s t o. FVect f (FVect s t) -> FVect o t
 foreign import ftoArray :: forall n e. FVect n e -> Array e
 
 -- should be able to figure these out
diff --git a/tests/purs/passing/GenericsRep.purs b/tests/purs/passing/GenericsRep.purs
--- a/tests/purs/passing/GenericsRep.purs
+++ b/tests/purs/passing/GenericsRep.purs
@@ -4,7 +4,7 @@
 import Effect (Effect)
 import Effect.Console (log, logShow)
 import Data.Generic.Rep (class Generic)
-import Data.Generic.Rep.Eq (genericEq)
+import Data.Eq.Generic (genericEq)
 
 data X a = X a
 
diff --git a/tests/purs/passing/Guards.purs b/tests/purs/passing/Guards.purs
--- a/tests/purs/passing/Guards.purs
+++ b/tests/purs/passing/Guards.purs
@@ -34,6 +34,12 @@
             = x
 clunky1 a _ = a
 
+clunky1_refutable :: Int -> Int -> Int
+clunky1_refutable 0 a | x <- max a a
+                      , x > 5
+                      = x
+clunky1_refutable a _ = a
+
 clunky2 :: Int -> Int -> Int
 clunky2 a b | x <- max a b
             , x > 5
@@ -41,7 +47,7 @@
             | otherwise
             = a + b
 
--- pattern guards on case epxressions
+-- pattern guards on case expressions
 clunky_case1 :: Int -> Int -> Int
 clunky_case1 a b =
   case unit of
diff --git a/tests/purs/passing/InstanceNamesGenerated.purs b/tests/purs/passing/InstanceNamesGenerated.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/passing/InstanceNamesGenerated.purs
@@ -0,0 +1,98 @@
+module Main where
+
+import Prelude
+
+import Effect.Console (log)
+import Data.Generic.Rep (class Generic)
+
+import Lib (namedExportStillWorksUnit)
+
+-- This file verifies that unnamed instances will produce
+-- completely-generated instance names without problems.
+
+class NoTypeParams
+instance NoTypeParams
+
+
+class OneTypeParam a
+instance OneTypeParam Boolean
+
+
+class OneTypeParamChain a
+instance OneTypeParamChain Boolean
+else instance OneTypeParamChain String
+
+
+class MultipleTypeParams :: Type -> Type -> Type -> Type -> Type -> Constraint
+class MultipleTypeParams a b c d e
+
+instance MultipleTypeParams Boolean Int Number Char String
+
+
+class MultipleTypeParamsChain :: Type -> Type -> Type -> Type -> Type -> Constraint
+class MultipleTypeParamsChain a b c d e
+
+instance MultipleTypeParamsChain Boolean Int Number Char Boolean
+else instance MultipleTypeParamsChain Boolean Int Number Char Int
+else instance MultipleTypeParamsChain Boolean Int Number Char Number
+else instance MultipleTypeParamsChain Boolean Int Number Char Char
+else instance MultipleTypeParamsChain Boolean Int Number Char String
+
+
+class HigherKindedTypeParams :: (Type -> Type) -> (Type -> Type) -> Constraint
+class HigherKindedTypeParams f g where
+  hktp :: f Int -> g Int -> Int
+
+instance HigherKindedTypeParams Array (Either Int) where
+  hktp _ _ = 0
+
+
+class HigherKindedTypeParamsChain :: (Type -> Type) -> (Type -> Type) -> Constraint
+class HigherKindedTypeParamsChain f g where
+  hktpChain :: f Int -> g Int -> Int
+
+instance HigherKindedTypeParamsChain Array (Either Int) where
+  hktpChain _ _ = 0
+else instance HigherKindedTypeParamsChain (Either Int) Array where
+  hktpChain _ _ = 0
+
+
+data CustomKind
+foreign import data Constructor1 :: CustomKind
+foreign import data Constructor2 :: CustomKind
+foreign import data Constructor3 :: CustomKind
+
+class MultipleKindParams :: CustomKind -> Constraint
+class MultipleKindParams customKind
+
+instance MultipleKindParams Constructor1
+
+
+class MultipleKindParamsChain :: CustomKind -> Constraint
+class MultipleKindParamsChain customKind
+
+instance MultipleKindParamsChain Constructor1
+else instance MultipleKindParamsChain Constructor2
+else instance MultipleKindParamsChain Constructor3
+
+
+data Arrow a b = Foo a b
+class ReservedWord a
+instance ReservedWord (Arrow a b)
+instance ReservedWord ((->) a b)
+
+
+data GenericFoo = GenericFoo
+derive instance Generic GenericFoo _
+
+
+class OverlappingStillCompiles a
+instance OverlappingStillCompiles x
+else instance OverlappingStillCompiles x
+
+
+main = do
+  namedExportStillWorksUnit 0
+  log "Done"
+
+data Either l r = Left l | Right r
diff --git a/tests/purs/passing/InstanceNamesGenerated/Lib.purs b/tests/purs/passing/InstanceNamesGenerated/Lib.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/passing/InstanceNamesGenerated/Lib.purs
@@ -0,0 +1,20 @@
+module Lib where
+
+import Prelude
+
+import Effect (Effect)
+
+class NamedExportStillWorks a where
+  doTest :: Effect a
+
+-- This test expects the generated name of this instance to be
+-- namedExportStillWorksUnit in the absence of another identifier with that
+-- name (as we have here).
+-- The test ensures that the instance doesn't preempt the named declaration.
+-- (If the naming scheme for unnamed instances ever changes, the name of the
+-- exported declaration in this test should change with it.)
+instance NamedExportStillWorks Unit where
+  doTest = pure unit
+
+namedExportStillWorksUnit :: Int -> Effect Unit
+namedExportStillWorksUnit _ = doTest
diff --git a/tests/purs/passing/InstanceUnnamedSimilarClassName.purs b/tests/purs/passing/InstanceUnnamedSimilarClassName.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/passing/InstanceUnnamedSimilarClassName.purs
@@ -0,0 +1,16 @@
+module Main where
+
+import Effect.Console (log)
+import ImportedClassName as I
+
+data Foo = Foo
+
+class ClassName a where
+  foo :: a -> Int
+
+instance ClassName Foo where
+  foo _ = 0
+instance I.ClassName Foo where
+  foo _ = 0
+
+main = log "Done"
diff --git a/tests/purs/passing/InstanceUnnamedSimilarClassName/ImportedClassName.purs b/tests/purs/passing/InstanceUnnamedSimilarClassName/ImportedClassName.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/passing/InstanceUnnamedSimilarClassName/ImportedClassName.purs
@@ -0,0 +1,4 @@
+module ImportedClassName where
+
+class ClassName a where
+  foo :: a -> Int
diff --git a/tests/purs/passing/IntToString.purs b/tests/purs/passing/IntToString.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/passing/IntToString.purs
@@ -0,0 +1,71 @@
+module Main where
+
+import Prelude
+import Effect.Console (log)
+import Prim.Int (class Add, class Mul, class ToString)
+
+data Proxy :: forall k. k -> Type
+data Proxy a = Proxy
+
+type One = 1
+type NegOne = (-1)
+type Zero = 0
+
+testToString :: forall i s. ToString i s => Proxy i -> Proxy s
+testToString _ = Proxy
+
+posToString :: Proxy "1"
+posToString = testToString (Proxy :: Proxy 1)
+
+negToString :: Proxy "-1"
+negToString = testToString (Proxy :: Proxy (-1))
+
+zeroToString :: Proxy "0"
+zeroToString = testToString (Proxy :: Proxy 0)
+
+posToStringTA :: Proxy "1"
+posToStringTA = testToString (Proxy :: Proxy One)
+
+negToStringTA :: Proxy "-1"
+negToStringTA = testToString (Proxy :: Proxy NegOne)
+
+zeroToStringTA :: Proxy "0"
+zeroToStringTA = testToString (Proxy :: Proxy Zero)
+
+intAdd
+  :: forall i1 i2 i3
+   . Add i1 i2 i3
+  => Proxy i1
+  -> Proxy i2
+  -> Proxy i3
+intAdd _ _ = Proxy
+
+intMul
+  :: forall i1 i2 i3
+   . Mul i1 i2 i3
+  => Proxy i1
+  -> Proxy i2
+  -> Proxy i3
+intMul _ _ = Proxy
+
+testAdd :: Proxy "4"
+testAdd = testToString (intAdd (Proxy :: _ 1) (Proxy :: _ 3))
+
+testMul :: Proxy "6"
+testMul = testToString (intMul (Proxy :: _ 2) (Proxy :: _ 3))
+
+testMulAdd :: Proxy "10"
+testMulAdd = testToString (intAdd (Proxy :: _ 4) (intMul (Proxy :: _ 2) (Proxy :: _ 3)))
+
+testAddMul :: Proxy "20"
+testAddMul = testToString (intMul (Proxy :: _ 4) (intAdd (Proxy :: _ 2) (Proxy :: _ 3)))
+
+_maxInt = Proxy :: _ 2147483647
+
+testMax :: Proxy "2147483647"
+testMax = testToString _maxInt
+
+testBeyondMax :: Proxy "4294967294"
+testBeyondMax = testToString (intMul _maxInt (Proxy :: _ 2))
+
+main = log "Done"
diff --git a/tests/purs/passing/KindUnificationInSolver.purs b/tests/purs/passing/KindUnificationInSolver.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/passing/KindUnificationInSolver.purs
@@ -0,0 +1,21 @@
+module Main where
+
+import Effect.Console (log)
+
+data Proxy a = Proxy
+
+class CtorKind ctor (kind :: Type) | ctor -> kind
+
+instance ctorKind0 :: CtorKind f z => CtorKind (f a) z
+else instance ctorKind1 :: CtorKind ((a) :: t) t
+
+data Test a b
+
+ctorKind :: forall t k. CtorKind t k => Proxy t -> Proxy k
+ctorKind _ = Proxy
+
+testCtor1 = ctorKind (Proxy :: Proxy (Test Int String))
+testCtor2 = ctorKind (Proxy :: Proxy (Test Int "What"))
+testCtor3 = ctorKind (Proxy :: Proxy (Test Int))
+
+main = log "Done"
diff --git a/tests/purs/passing/KindedType.purs b/tests/purs/passing/KindedType.purs
--- a/tests/purs/passing/KindedType.purs
+++ b/tests/purs/passing/KindedType.purs
@@ -31,9 +31,9 @@
 instance clazzString :: Clazz String where
   def = "test"
 
-type Type a = ((a) :: Type)
+type IsType a = ((a) :: Type)
 
-type TestRecord a = Record (a :: Type a)
+type TestRecord a = Record (a :: IsType a)
 
 test5 :: Test TestRecord
 test5 = { a: "test" }
diff --git a/tests/purs/passing/MinusConstructor.purs b/tests/purs/passing/MinusConstructor.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/passing/MinusConstructor.purs
@@ -0,0 +1,38 @@
+module Main where
+
+import Prelude
+
+import Effect.Console (log)
+import Test.Assert (assert)
+
+data Tuple a b = Tuple a b
+
+infixl 6 Tuple as -
+
+test1 =
+  let tuple = "" - ""
+      left - right = tuple
+  in left
+
+test2 = case 3 - 4 of
+  left-4 -> left
+  _ -> 0
+
+test3 (Tuple a b - c) = a
+test3 _ = 0
+
+test4 = case 7 - -3 of
+  left - -3 -> left
+  _ -> 0
+
+test5 = case -7 - 8 of
+  -7-right -> right
+  _ -> 0
+
+main = do
+  assert $ test1 == ""
+  assert $ test2 == 3
+  assert $ test3 (5-10-15) == 5
+  assert $ test4 == 7
+  assert $ test5 == 8
+  log "Done"
diff --git a/tests/purs/passing/NegativeBinder.purs b/tests/purs/passing/NegativeBinder.purs
--- a/tests/purs/passing/NegativeBinder.purs
+++ b/tests/purs/passing/NegativeBinder.purs
@@ -4,7 +4,12 @@
 import Effect.Console (log)
 
 test :: Number -> Boolean
-test -1.0 = false
+test (-1.0) = false
 test _  = true
+
+test2 :: Number -> Number -> Boolean
+test2 x y = case x, y of
+  -1.0, -1.0 -> false
+  _, _ -> true
 
 main = log "Done"
diff --git a/tests/purs/passing/NewtypeClass.purs b/tests/purs/passing/NewtypeClass.purs
--- a/tests/purs/passing/NewtypeClass.purs
+++ b/tests/purs/passing/NewtypeClass.purs
@@ -3,16 +3,20 @@
 import Prelude
 import Effect
 import Effect.Console
+import Safe.Coerce (class Coercible, coerce)
 
-class Newtype t a | t -> a where
-  wrap :: a -> t
-  unwrap :: t -> a
+class Newtype :: Type -> Type -> Constraint
+class Coercible t a <= Newtype t a | t -> a
 
-instance newtypeMultiplicative :: Newtype (Multiplicative a) a where
-  wrap = Multiplicative
-  unwrap (Multiplicative a) = a
+wrap :: forall t a. Newtype t a => a -> t
+wrap = coerce
 
-data Multiplicative a = Multiplicative a
+unwrap :: forall t a. Newtype t a => t -> a
+unwrap = coerce
+
+instance newtypeMultiplicative :: Newtype (Multiplicative a) a
+
+newtype Multiplicative a = Multiplicative a
 
 instance semiringMultiplicative :: Semiring a => Semigroup (Multiplicative a) where
   append (Multiplicative a) (Multiplicative b) = Multiplicative (a * b)
diff --git a/tests/purs/passing/NewtypeInstance.purs b/tests/purs/passing/NewtypeInstance.purs
--- a/tests/purs/passing/NewtypeInstance.purs
+++ b/tests/purs/passing/NewtypeInstance.purs
@@ -54,6 +54,13 @@
 newtype Syn a = Syn (Syn' (MyArray Int) a)
 derive newtype instance functorSyn :: Functor Syn
 
+data Proxy2 a b = Proxy2
+derive instance Functor (Proxy2 x)
+
+newtype Foo :: forall k. k -> Type
+newtype Foo a = Foo (Proxy2 k a)
+derive newtype instance Functor Foo
+
 main = do
   logShow (X "test")
   logShow (singleton "test" :: Y String)
diff --git a/tests/purs/passing/OperatorSections.purs b/tests/purs/passing/OperatorSections.purs
--- a/tests/purs/passing/OperatorSections.purs
+++ b/tests/purs/passing/OperatorSections.purs
@@ -15,4 +15,6 @@
   let div x y = x.x / y.x
   assert $ (_ `div` foo { x = 4.0 }) { x: 4.0 } == 1.0
   assert $ (foo { x = 4.0 } `div` _) { x: 4.0 } == 1.0
+  assert $ (_ + 2 * 3) 1 == 7
+  assert $ (3 * 2 + _) 1 == 7
   log "Done"
diff --git a/tests/purs/passing/ParseTypeInt.purs b/tests/purs/passing/ParseTypeInt.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/passing/ParseTypeInt.purs
@@ -0,0 +1,28 @@
+module Main where
+
+import Effect.Console (log)
+
+data Proxy :: forall k. k -> Type
+data Proxy n = Proxy
+
+a :: Proxy 42
+a = Proxy
+
+b :: Proxy (-42)
+b = Proxy
+
+c :: Proxy (42 :: Int)
+c = Proxy
+
+d :: Proxy ((42) :: Int)
+d = Proxy
+
+e :: Proxy ((-42) :: Int)
+e = Proxy
+
+f :: Proxy (-
+  -- here's a comment
+  1)
+f = Proxy
+
+main = log "Done"
diff --git a/tests/purs/passing/PolyLabels.js b/tests/purs/passing/PolyLabels.js
--- a/tests/purs/passing/PolyLabels.js
+++ b/tests/purs/passing/PolyLabels.js
@@ -1,12 +1,10 @@
-"use strict";
-
-exports.unsafeGet = function (s) {
+export var unsafeGet = function (s) {
   return function (o) {
     return o[s];
   };
 };
 
-exports.unsafeSet = function(s) {
+export var unsafeSet = function (s) {
   return function(a) {
     return function (o) {
       var o1 = {};
diff --git a/tests/purs/passing/PolyLabels.purs b/tests/purs/passing/PolyLabels.purs
--- a/tests/purs/passing/PolyLabels.purs
+++ b/tests/purs/passing/PolyLabels.purs
@@ -4,7 +4,8 @@
 import Prim.Row
 import Effect
 import Effect.Console
-import Data.Symbol (class IsSymbol, SProxy(..), reflectSymbol)
+import Data.Symbol (class IsSymbol, reflectSymbol)
+import Type.Proxy (Proxy(..))
 
 foreign import unsafeGet
   :: forall r a
@@ -23,7 +24,7 @@
   :: forall r r' l a
    . IsSymbol l
   => Cons l a r' r
-  => SProxy l
+  => Proxy l
   -> Record r
   -> a
 get l = unsafeGet (reflectSymbol l)
@@ -33,7 +34,7 @@
    . IsSymbol l
   => Cons l a r r1
   => Cons l b r r2
-  => SProxy l
+  => Proxy l
   -> b
   -> Record r1
   -> Record r2
@@ -45,20 +46,20 @@
   => Cons l a r r1
   => Cons l b r r2
   => Functor f
-  => SProxy l
+  => Proxy l
   -> (a -> f b)
   -> Record r1
   -> f (Record r2)
 lens l f r = flip (set l) r <$> f (get l r)
 
 getFoo :: forall a r. { foo :: a | r } -> a
-getFoo = get (SProxy :: SProxy "foo")
+getFoo = get (Proxy :: Proxy "foo")
 
 setFoo :: forall a b r. b -> { foo :: a | r } -> { foo :: b | r }
-setFoo = set (SProxy :: SProxy "foo")
+setFoo = set (Proxy :: Proxy "foo")
 
 fooLens :: forall f a b r. Functor f => (a -> f b) -> { foo :: a | r } -> f { foo :: b | r } 
-fooLens = lens (SProxy :: SProxy "foo")
+fooLens = lens (Proxy :: Proxy "foo")
 
 main :: Effect Unit
 main = do
diff --git a/tests/purs/passing/PolykindBindingGroup1.purs b/tests/purs/passing/PolykindBindingGroup1.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/passing/PolykindBindingGroup1.purs
@@ -0,0 +1,13 @@
+module Main where
+
+import Effect.Console (log)
+
+data X a = X (Y a) | Z
+data Y a = Y (X a)
+
+test1 = X (Y Z) :: X Int
+test2 = X (Y Z) :: X "foo"
+test3 = Y (X (Y Z)) :: Y Int
+test4 = Y (X (Y Z)) :: Y "foo"
+
+main = log "Done"
diff --git a/tests/purs/passing/PolykindBindingGroup2.purs b/tests/purs/passing/PolykindBindingGroup2.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/passing/PolykindBindingGroup2.purs
@@ -0,0 +1,16 @@
+module Main where
+
+import Effect.Console (log)
+
+data Proxy a = Proxy
+
+data X a = X (Y a => Proxy a)
+
+class Z (X a) <= Y a
+
+class Z a
+
+test1 = X (Proxy :: _ Int)
+test2 = X (Proxy :: _ "foo")
+
+main = log "Done"
diff --git a/tests/purs/passing/PolykindGeneralization.purs b/tests/purs/passing/PolykindGeneralization.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/passing/PolykindGeneralization.purs
@@ -0,0 +1,15 @@
+module Main where
+
+import Effect.Console (log)
+
+data Proxy a = Proxy
+data F f a = F (f a)
+
+fproxy :: forall f a. Proxy f -> Proxy a -> Proxy (F f a)
+fproxy _ _ = Proxy
+
+a = fproxy (Proxy :: _ Proxy)
+b = a (Proxy :: _ Int)
+c = a (Proxy :: _ "foo")
+
+main = log "Done"
diff --git a/tests/purs/passing/PolykindGeneralizationHygiene.purs b/tests/purs/passing/PolykindGeneralizationHygiene.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/passing/PolykindGeneralizationHygiene.purs
@@ -0,0 +1,11 @@
+module Main where
+
+import Effect.Console (log)
+
+-- First argument needs to be `k`.
+type F k t = forall proxy. proxy k -> t
+
+test :: F Symbol Int
+test _ = 42
+
+main = log "Done"
diff --git a/tests/purs/passing/PolykindGeneralizedTypeSynonym.purs b/tests/purs/passing/PolykindGeneralizedTypeSynonym.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/passing/PolykindGeneralizedTypeSynonym.purs
@@ -0,0 +1,12 @@
+module Main where
+
+import Effect.Console (log)
+
+data Proxy a = Proxy
+
+type Prozy = Proxy
+
+test1 = Proxy :: Prozy Int
+test2 = Proxy :: Prozy "foo"
+
+main = log "Done"
diff --git a/tests/purs/passing/PolykindInstanceDispatch.purs b/tests/purs/passing/PolykindInstanceDispatch.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/passing/PolykindInstanceDispatch.purs
@@ -0,0 +1,21 @@
+module Main where
+
+import Prelude
+import Effect.Console (log)
+import Test.Assert
+
+data Proxy a = Proxy
+
+class ShowP a where
+  showP :: a -> String
+
+instance test1 :: ShowP (Proxy ((a) :: Type)) where
+  showP _ = "Type"
+
+instance test2 :: ShowP (Proxy ((a) :: Symbol)) where
+  showP _ = "Symbol"
+
+main = do
+  assert (showP (Proxy :: _ Int) == "Type")
+  assert (showP (Proxy :: _ "foo") == "Symbol")
+  log "Done"
diff --git a/tests/purs/passing/PolykindInstantiatedInstance.purs b/tests/purs/passing/PolykindInstantiatedInstance.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/passing/PolykindInstantiatedInstance.purs
@@ -0,0 +1,22 @@
+module Main where
+
+import Effect.Console (log)
+
+data Proxy a = Proxy
+
+class F f where
+  f :: forall a b. (a -> b) -> f a -> f b
+
+instance fProxy :: F Proxy where
+  f _ _ = Proxy
+
+test1 :: forall a. Proxy a
+test1 = f (\a -> a) Proxy
+
+test2 :: Proxy Int
+test2 = f (\a -> a) (Proxy :: Proxy Int)
+
+test3 :: Proxy String
+test3 = f (\a -> "foo") Proxy
+
+main = log "Done"
diff --git a/tests/purs/passing/PolykindInstantiation.purs b/tests/purs/passing/PolykindInstantiation.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/passing/PolykindInstantiation.purs
@@ -0,0 +1,17 @@
+module Main where
+
+import Effect.Console (log)
+
+data Proxy a = Proxy
+data F f a = F (f a)
+
+test1 = Proxy :: Proxy Int
+test2 = Proxy :: Proxy "foo"
+test3 = Proxy :: Proxy Proxy
+test4 = Proxy :: Proxy F
+test5 = Proxy :: Proxy (F Proxy)
+test6 = Proxy :: Proxy (F (F Proxy))
+test7 = Proxy :: Proxy (F Proxy Int)
+test8 = Proxy :: Proxy (F Proxy "foo")
+
+main = log "Done"
diff --git a/tests/purs/passing/PolykindRowCons.purs b/tests/purs/passing/PolykindRowCons.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/passing/PolykindRowCons.purs
@@ -0,0 +1,51 @@
+module Main where
+
+import Effect.Console (log)
+import Prim.Row
+
+data Proxy a = Proxy
+data Identity a = Identity a
+data App f a = App (f a)
+
+type RowType =
+  ( a :: Int
+  , b :: String
+  , c :: Boolean
+  )
+
+type RowTypeType =
+  ( a :: Proxy
+  , b :: Identity
+  , c :: App Identity
+  )
+
+type RowSymbol =
+  ( a :: "a"
+  , b :: "b"
+  , c :: "c"
+  )
+
+lookup :: forall sym v rx r. Cons sym v rx r => Proxy sym -> Proxy r -> Proxy v
+lookup _ _ = Proxy
+
+lookup1 = lookup (Proxy :: _ "a") (Proxy :: _ RowType)
+lookup2 = lookup (Proxy :: _ "b") (Proxy :: _ RowType)
+lookup3 = lookup (Proxy :: _ "c") (Proxy :: _ RowType)
+lookup4 = lookup (Proxy :: _ "a") (Proxy :: _ RowTypeType)
+lookup5 = lookup (Proxy :: _ "b") (Proxy :: _ RowTypeType)
+lookup6 = lookup (Proxy :: _ "c") (Proxy :: _ RowTypeType)
+lookup7 = lookup (Proxy :: _ "a") (Proxy :: _ RowSymbol)
+lookup8 = lookup (Proxy :: _ "b") (Proxy :: _ RowSymbol)
+lookup9 = lookup (Proxy :: _ "c") (Proxy :: _ RowSymbol)
+
+test1 = lookup1 :: Proxy Int
+test2 = lookup2 :: Proxy String
+test3 = lookup3 :: Proxy Boolean
+test4 = lookup4 :: Proxy Proxy
+test5 = lookup5 :: Proxy Identity
+test6 = lookup6 :: Proxy (App Identity)
+test7 = lookup7 :: Proxy "a"
+test8 = lookup8 :: Proxy "b"
+test9 = lookup9 :: Proxy "c"
+
+main = log "Done"
diff --git a/tests/purs/passing/QualifiedOperators.purs b/tests/purs/passing/QualifiedOperators.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/passing/QualifiedOperators.purs
@@ -0,0 +1,13 @@
+module Main where
+
+import Prelude
+
+import Effect.Console (log)
+import Test.Assert (assert)
+
+import Foo as Foo.Bar
+
+main = do
+  assert $ 4 Foo.Bar.-#- 10 == 33
+  assert $ Foo.Bar.(-#-) 4 10 == 33
+  log "Done"
diff --git a/tests/purs/passing/QualifiedOperators/Foo.purs b/tests/purs/passing/QualifiedOperators/Foo.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/passing/QualifiedOperators/Foo.purs
@@ -0,0 +1,8 @@
+module Foo where
+
+import Prelude
+
+tie :: Int -> Int -> Int
+tie a b = (a - 1) * (b + 1)
+
+infix 5 tie as -#-
diff --git a/tests/purs/passing/QuantifiedKind.purs b/tests/purs/passing/QuantifiedKind.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/passing/QuantifiedKind.purs
@@ -0,0 +1,10 @@
+module Main where
+
+import Effect.Console (log)
+
+data Proxy a = Proxy
+
+test :: forall k (a :: k). Proxy a
+test = Proxy
+
+main = log "Done"
diff --git a/tests/purs/passing/Rank2Kinds.purs b/tests/purs/passing/Rank2Kinds.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/passing/Rank2Kinds.purs
@@ -0,0 +1,21 @@
+module Main where
+
+import Effect.Console (log)
+
+data A (a :: forall k. k -> Type) = A
+
+data B :: (forall k. k -> Type) -> Type
+data B a = B
+
+data Pair a b = Pair
+data Proxy a = Proxy
+
+type Id a = a
+type MkP (f :: forall k. k -> k) =  Pair (f Int) (f "foo")
+
+k :: forall a b. Proxy (Pair Int "foo") -> Int
+k _ = 42
+
+test = k (Proxy :: Proxy (MkP Id))
+
+main = log "Done"
diff --git a/tests/purs/passing/ReExportsExported.js b/tests/purs/passing/ReExportsExported.js
new file mode 100644
--- /dev/null
+++ b/tests/purs/passing/ReExportsExported.js
@@ -0,0 +1,2 @@
+// Import `A.a` which was re-exported from `B` and then again from `C`
+export { a } from '../C/index.js';
diff --git a/tests/purs/passing/ReExportsExported.purs b/tests/purs/passing/ReExportsExported.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/passing/ReExportsExported.purs
@@ -0,0 +1,7 @@
+module Main where
+
+import Effect.Console (log)
+
+foreign import a :: String
+
+main = log a
diff --git a/tests/purs/passing/ReExportsExported/A.purs b/tests/purs/passing/ReExportsExported/A.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/passing/ReExportsExported/A.purs
@@ -0,0 +1,4 @@
+module A (a) where
+
+a :: String
+a = "Done"
diff --git a/tests/purs/passing/ReExportsExported/B.purs b/tests/purs/passing/ReExportsExported/B.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/passing/ReExportsExported/B.purs
@@ -0,0 +1,7 @@
+module B (module A, A(..)) where
+
+import A
+
+-- | Test that there's no name collision between the imported module `A` and the
+-- | data constructor `A`.
+data A = A
diff --git a/tests/purs/passing/ReExportsExported/C.purs b/tests/purs/passing/ReExportsExported/C.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/passing/ReExportsExported/C.purs
@@ -0,0 +1,4 @@
+module C (module B) where
+
+-- | `A.a` was re-exported from `B` and then again from `C`
+import B
diff --git a/tests/purs/passing/RowLacks.purs b/tests/purs/passing/RowLacks.purs
--- a/tests/purs/passing/RowLacks.purs
+++ b/tests/purs/passing/RowLacks.purs
@@ -2,22 +2,32 @@
 
 import Effect.Console (log)
 import Prim.Row (class Lacks)
-import Type.Row (RProxy(..))
+import Type.Proxy (Proxy(..))
 
 lacksX
   :: forall r
    . Lacks "x" r
-  => RProxy r
-  -> RProxy ()
-lacksX _ = RProxy
+  => Proxy r
+  -> Proxy ()
+lacksX _ = Proxy
 
-test1 :: RProxy ()
-test1 = lacksX (RProxy :: RProxy (y :: Int, z :: String))
+lacksSym
+  :: forall sym (to :: Row Type)
+   . Lacks sym to
+  => Proxy sym
+  -> Proxy to
+lacksSym _ = Proxy
 
-test2 :: forall r. Lacks "x" r => RProxy r -> RProxy ()
-test2 _ = lacksX (RProxy :: RProxy (y :: Int, z :: String | r))
+test1 :: Proxy ()
+test1 = lacksX (Proxy :: Proxy (y :: Int, z :: String))
 
-test3 :: RProxy ()
-test3 = test2 (RProxy :: RProxy (a :: String))
+test2 :: forall r. Lacks "x" r => Proxy r -> Proxy ()
+test2 _ = lacksX (Proxy :: Proxy (y :: Int, z :: String | r))
+
+test3 :: Proxy ()
+test3 = test2 (Proxy :: Proxy (a :: String))
+
+test4 :: forall sym. Proxy sym -> Proxy ()
+test4 = lacksSym
 
 main = log "Done"
diff --git a/tests/purs/passing/RowNub.purs b/tests/purs/passing/RowNub.purs
--- a/tests/purs/passing/RowNub.purs
+++ b/tests/purs/passing/RowNub.purs
@@ -2,22 +2,22 @@
 
 import Effect.Console (log)
 import Prim.Row (class Nub, class Union)
-import Type.Row (RProxy(..))
+import Type.Proxy (Proxy(..))
 
 nubUnion
   :: forall r1 r2 r3 r4
    . Union r1 r2 r3
   => Nub r3 r4
-  => RProxy r1
-  -> RProxy r2
-  -> RProxy r4
-nubUnion _ _ = RProxy
+  => Proxy r1
+  -> Proxy r2
+  -> Proxy r4
+nubUnion _ _ = Proxy
 
 type InL = (x :: Int, y :: String)
 type InR = (x :: String, y :: Int, z :: Boolean)
 type Out = (x :: Int, y :: String, z :: Boolean)
 
-test :: RProxy Out
-test = nubUnion (RProxy :: RProxy InL) (RProxy :: RProxy InR)
+test :: Proxy Out
+test = nubUnion (Proxy :: Proxy InL) (Proxy :: Proxy InR)
 
 main = log "Done"
diff --git a/tests/purs/passing/RowUnion.js b/tests/purs/passing/RowUnion.js
--- a/tests/purs/passing/RowUnion.js
+++ b/tests/purs/passing/RowUnion.js
@@ -1,10 +1,6 @@
-"use strict";
-
-exports.merge = function (dict) {
-  return function (l) {
-    return function (r) {
-      var o = {};
-      return Object.assign(o, r, l);
-    };
+export var mergeImpl = function (l) {
+  return function (r) {
+    var o = {};
+    return Object.assign(o, r, l);
   };
 };
diff --git a/tests/purs/passing/RowUnion.purs b/tests/purs/passing/RowUnion.purs
--- a/tests/purs/passing/RowUnion.purs
+++ b/tests/purs/passing/RowUnion.purs
@@ -5,13 +5,34 @@
 import Effect
 import Effect.Console
 
-foreign import merge
+data Proxy a = Proxy
+
+solve :: forall l r u. Union l r u => Proxy r -> Proxy u -> Proxy l
+solve _ _ = Proxy
+
+solveUnionBackwardsNil :: Proxy _
+solveUnionBackwardsNil = solve (Proxy :: Proxy ()) (Proxy :: Proxy ())
+
+solveUnionBackwardsCons :: Proxy _
+solveUnionBackwardsCons = solve (Proxy  :: Proxy ( a :: Int )) (Proxy :: Proxy ( a :: Int, b :: String ))
+
+solveUnionBackwardsDblCons :: Proxy _
+solveUnionBackwardsDblCons = solve (Proxy :: Proxy ( a :: Int, a :: String )) (Proxy :: Proxy ( a :: Boolean, a :: Int, a :: String ))
+
+merge
   :: forall r1 r2 r3
    . Union r1 r2 r3
   => Record r1
   -> Record r2
   -> Record r3
+merge = mergeImpl
 
+foreign import mergeImpl
+  :: forall r1 r2 r3
+   . Record r1
+  -> Record r2
+  -> Record r3
+
 test1 = merge { x: 1 } { y: true }
 
 test2 = merge { x: 1 } { x: true }
@@ -48,7 +69,7 @@
 test4 = withDefaults { x: 1, y: 2 }
 
 -- r is a subrow of s if Union r t s for some t.
-class Subrow (r :: # Type) (s :: # Type)
+class Subrow (r :: Row Type) (s :: Row Type)
 instance subrow :: Union r t s => Subrow r s
 
 main :: Effect Unit
diff --git a/tests/purs/passing/RowsInInstanceContext.purs b/tests/purs/passing/RowsInInstanceContext.purs
--- a/tests/purs/passing/RowsInInstanceContext.purs
+++ b/tests/purs/passing/RowsInInstanceContext.purs
@@ -3,7 +3,6 @@
 import Prelude
 import Effect (Effect)
 import Effect.Console (log)
-import Data.Newtype (class Newtype, unwrap)
 
 class TypeEquals a b | a -> b, b -> a where
   coerce :: a -> b
@@ -15,9 +14,13 @@
 
 newtype RecordNewtype = RecordNewtype { x :: String }
 
+class OldStyleNewtype t a where
+  wrap :: a -> t
+  unwrap :: t -> a
+
 instance newtypeRecordNewtype ::
   TypeEquals inner { x :: String }
-    => Newtype RecordNewtype inner where
+    => OldStyleNewtype RecordNewtype inner where
   wrap = RecordNewtype <<< coerce
   unwrap (RecordNewtype rec) = coerceBack rec
 
diff --git a/tests/purs/passing/RowsInKinds.purs b/tests/purs/passing/RowsInKinds.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/passing/RowsInKinds.purs
@@ -0,0 +1,15 @@
+module Main where
+
+import Effect.Console (log)
+
+foreign import data R :: forall k. Row k -> Type
+foreign import data X :: forall r. R (x :: Type | r)
+foreign import data Y :: forall r. R (y :: Type | r)
+
+data P :: R (x :: Type, y :: Type) -> Type
+data P a = P
+
+type Test1 = P X
+type Test2 = P Y
+
+main = log "Done"
diff --git a/tests/purs/passing/RowsInKinds2.purs b/tests/purs/passing/RowsInKinds2.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/passing/RowsInKinds2.purs
@@ -0,0 +1,11 @@
+module Main where
+
+import Effect.Console (log)
+
+foreign import data R :: forall k. Row k -> Type
+foreign import data X :: R ()
+
+data P :: R () -> Type
+data P a = P
+
+main = log "Done"
diff --git a/tests/purs/passing/SingleInstanceFundep.purs b/tests/purs/passing/SingleInstanceFundep.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/passing/SingleInstanceFundep.purs
@@ -0,0 +1,21 @@
+module Main where
+
+import Prelude
+import Effect.Console (log)
+import Type.Proxy (Proxy(..))
+
+-- This class can only have a single instance due to the functional dependency
+class SingleInstanceFundep (r :: Row Type) | -> r where
+  unified :: Proxy r
+
+-- The row literal is valid in this instance head since it is fully determined
+instance SingleInstanceFundep ( x :: Unit ) where
+  unified = Proxy
+
+-- This should infer `test :: Proxy ( x :: Unit )` by committing to the instance
+test :: Proxy _
+test = unified
+
+main = do
+  let (Proxy :: Proxy ( x :: Unit )) = test
+  log "Done"
diff --git a/tests/purs/passing/SolvingAddInt.purs b/tests/purs/passing/SolvingAddInt.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/passing/SolvingAddInt.purs
@@ -0,0 +1,26 @@
+module Main where
+
+import Effect.Console (log)
+import Prim.Int (class Add)
+
+data Proxy k = Proxy
+
+a :: forall n. Add 21 21 n => Proxy n
+a = Proxy
+
+a' :: Proxy 42
+a' = a
+
+b :: forall n. Add 21 n 42 => Proxy n
+b = Proxy
+
+b' :: Proxy 21
+b' = b
+
+c :: forall n. Add n 21 42 => Proxy n
+c = Proxy
+
+c' :: Proxy 21
+c' = c
+
+main = log "Done"
diff --git a/tests/purs/passing/SolvingAppendSymbol.purs b/tests/purs/passing/SolvingAppendSymbol.purs
--- a/tests/purs/passing/SolvingAppendSymbol.purs
+++ b/tests/purs/passing/SolvingAppendSymbol.purs
@@ -3,31 +3,31 @@
 import Prelude
 import Effect.Console (log)
 import Prim.Symbol (class Append)
-import Type.Data.Symbol (SProxy(..), reflectSymbol)
-import Type.Data.Symbol (append) as Symbol
+import Type.Proxy (Proxy(..))
+import Type.Data.Symbol (append, reflectSymbol) as Symbol
 
-sym :: SProxy ""
-sym = SProxy
+sym :: Proxy ""
+sym = Proxy
 
-symA :: SProxy "A"
-symA = SProxy
+symA :: Proxy "A"
+symA = Proxy
 
-symB :: SProxy "B"
-symB = SProxy
+symB :: Proxy "B"
+symB = Proxy
 
-egAB :: SProxy "AB"
+egAB :: Proxy "AB"
 egAB = Symbol.append symA symB
 
-egBA :: SProxy "BA"
+egBA :: Proxy "BA"
 egBA = Symbol.append symB symA
 
-egA' :: SProxy "A"
+egA' :: Proxy "A"
 egA' = Symbol.append sym (Symbol.append symA sym)
 
 main = do
-  let gotAB = reflectSymbol egAB == "AB"
-      gotBA = reflectSymbol egBA == "BA"
-      gotA' = reflectSymbol egA' == "A"
+  let gotAB = Symbol.reflectSymbol egAB == "AB"
+      gotBA = Symbol.reflectSymbol egBA == "BA"
+      gotA' = Symbol.reflectSymbol egA' == "A"
   when (not gotAB) $ log "Did not get AB"
   when (not gotBA) $ log "Did not get BA"
   when (not gotA') $ log "Did not get A"
diff --git a/tests/purs/passing/SolvingCompareInt.purs b/tests/purs/passing/SolvingCompareInt.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/passing/SolvingCompareInt.purs
@@ -0,0 +1,106 @@
+module Main where
+
+import Effect.Console (log)
+import Prim.Int (class Compare)
+import Prim.Ordering (EQ, GT, LT)
+
+data Proxy :: forall k. k -> Type
+data Proxy n = Proxy
+
+assertLesser :: forall l r. Compare l r LT => Proxy ( left :: l, right :: r )
+assertLesser = Proxy
+
+assertGreater :: forall l r. Compare l r GT => Proxy ( left :: l, right :: r )
+assertGreater = Proxy
+
+assertEqual :: forall l r. Compare l r EQ => Proxy ( left :: l, right :: r )
+assertEqual = Proxy
+
+symmLt :: forall m n. Compare m n GT => Proxy ( left :: n, right :: m )
+symmLt = assertLesser
+
+symmGt :: forall m n. Compare m n LT => Proxy ( left :: n, right :: m )
+symmGt = assertGreater
+
+symmEq :: forall m n. Compare m n EQ => Proxy ( left :: n, right :: m )
+symmEq = assertEqual
+
+reflEq :: forall (n :: Int). Proxy ( left :: n, right :: n )
+reflEq = assertEqual
+
+transLt :: forall m n p. Compare m n LT => Compare n p LT => Proxy n -> Proxy ( left :: m, right :: p )
+transLt _ = assertLesser
+
+transLtEq :: forall m n p. Compare m n LT => Compare n p EQ => Proxy n -> Proxy ( left :: m, right :: p )
+transLtEq _ = assertLesser
+
+transEqLt :: forall m n p. Compare m n EQ => Compare n p LT => Proxy n -> Proxy ( left :: m, right :: p )
+transEqLt _ = assertLesser
+
+transGt :: forall m n p. Compare m n GT => Compare n p GT => Proxy n -> Proxy ( left :: m, right :: p )
+transGt _ = assertGreater
+
+transGtEq :: forall m n p. Compare m n GT => Compare n p EQ => Proxy n -> Proxy ( left :: m, right :: p )
+transGtEq _ = assertGreater
+
+transEqGt :: forall m n p. Compare m n EQ => Compare n p GT => Proxy n -> Proxy ( left :: m, right :: p )
+transEqGt _ = assertGreater
+
+transEq :: forall m n p. Compare m n EQ => Compare n p EQ => Proxy n -> Proxy ( left :: m, right :: p )
+transEq _ = assertEqual
+
+transSymmLt :: forall m n p. Compare n m GT => Compare n p LT => Proxy n -> Proxy ( left :: m, right :: p )
+transSymmLt _ = assertLesser
+
+transSymmLtEq :: forall m n p. Compare n m GT => Compare n p EQ => Proxy n -> Proxy ( left :: m, right :: p )
+transSymmLtEq _ = assertLesser
+
+transSymmEqLt :: forall m n p. Compare n m EQ => Compare n p LT => Proxy n -> Proxy ( left :: m, right :: p )
+transSymmEqLt _ = assertLesser
+
+transSymmGt :: forall m n p. Compare n m LT => Compare n p GT => Proxy n -> Proxy ( left :: m, right :: p )
+transSymmGt _ = assertGreater
+
+transSymmGtEq :: forall m n p. Compare n m LT => Compare n p EQ => Proxy n -> Proxy ( left :: m, right :: p )
+transSymmGtEq _ = assertGreater
+
+transSymmEqGt :: forall m n p. Compare n m EQ => Compare n p GT => Proxy n -> Proxy ( left :: m, right :: p )
+transSymmEqGt _ = assertGreater
+
+transSymmEq :: forall m n p. Compare n m EQ => Compare n p EQ => Proxy n -> Proxy ( left :: m, right :: p )
+transSymmEq _ = assertEqual
+
+litLt :: Proxy ( left :: 0, right :: 1 )
+litLt = assertLesser
+
+litGt :: Proxy ( left :: 1, right :: 0 )
+litGt = assertGreater
+
+litEq :: Proxy ( left :: 0, right :: 0 )
+litEq = assertEqual
+
+class AssertIsGT o where
+  assertIsGT :: Proxy o -> Boolean
+
+instance AssertIsGT GT where
+  assertIsGT _ = true
+
+infer :: forall l r o. Compare l r o => AssertIsGT o => Proxy l -> Proxy r -> Boolean
+infer _ _ = assertIsGT (Proxy :: _ o)
+
+inferSolved :: forall m n p. Compare m n GT => Compare n p GT => Proxy m -> Proxy n -> Proxy p -> Boolean
+inferSolved m _ p = infer m p
+
+litTransLT :: forall a. Compare a 10 LT => Proxy ( left :: a, right :: 20 )
+litTransLT = assertLesser
+
+litTransGT :: forall a. Compare a 10 GT => Proxy ( left :: a, right :: 0 )
+litTransGT = assertGreater
+
+litTransRange :: forall a o. Compare a 10 LT => Compare 0 a LT => Proxy ( left :: a, right :: 20 )
+litTransRange = assertLesser
+
+withFacts :: forall l r o. Compare l 10 LT => Compare r 20 GT => Proxy ( left :: l, right :: r )
+withFacts = assertLesser
+
+main = log "Done"
diff --git a/tests/purs/passing/SolvingCompareSymbol.purs b/tests/purs/passing/SolvingCompareSymbol.purs
--- a/tests/purs/passing/SolvingCompareSymbol.purs
+++ b/tests/purs/passing/SolvingCompareSymbol.purs
@@ -3,24 +3,24 @@
 import Prelude
 import Effect.Console (log)
 import Prim.Symbol (class Compare)
-import Prim.Ordering (kind Ordering, LT, EQ, GT)
-import Type.Data.Symbol (SProxy(..))
+import Prim.Ordering (Ordering, LT, EQ, GT)
+import Type.Proxy (Proxy(..))
 import Type.Data.Symbol (compare) as Symbol
-import Type.Data.Ordering (OProxy(..), reflectOrdering)
+import Type.Data.Ordering (reflectOrdering)
 
-symA :: SProxy "A"
-symA = SProxy
+symA :: Proxy "A"
+symA = Proxy
 
-symB :: SProxy "B"
-symB = SProxy
+symB :: Proxy "B"
+symB = Proxy
 
-egLT :: OProxy LT
+egLT :: Proxy LT
 egLT = Symbol.compare symA symB
 
-egEQ :: OProxy EQ
+egEQ :: Proxy EQ
 egEQ = Symbol.compare symA symA
 
-egGT :: OProxy GT
+egGT :: Proxy GT
 egGT = Symbol.compare symB symA
 
 main = do
diff --git a/tests/purs/passing/SolvingIsSymbol/Lib.purs b/tests/purs/passing/SolvingIsSymbol/Lib.purs
--- a/tests/purs/passing/SolvingIsSymbol/Lib.purs
+++ b/tests/purs/passing/SolvingIsSymbol/Lib.purs
@@ -1,10 +1,11 @@
 module SolvingIsSymbol.Lib where
 
 import Data.Symbol
+import Type.Proxy (Proxy(..))
 
-literalSymbol :: SProxy "literal"
-literalSymbol = SProxy
+literalSymbol :: Proxy "literal"
+literalSymbol = Proxy
 
-libReflectSymbol :: forall s. IsSymbol s => SProxy s -> String
+libReflectSymbol :: forall s. IsSymbol s => Proxy s -> String
 libReflectSymbol = reflectSymbol
 
diff --git a/tests/purs/passing/SolvingMulInt.purs b/tests/purs/passing/SolvingMulInt.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/passing/SolvingMulInt.purs
@@ -0,0 +1,14 @@
+module Main where
+
+import Effect.Console (log)
+import Prim.Int (class Mul)
+
+data Proxy k = Proxy
+
+a :: forall n. Mul 4 4 n => Proxy n
+a = Proxy
+
+a' :: Proxy 16
+a' = a
+
+main = log "Done"
diff --git a/tests/purs/passing/SolvingReflectable.purs b/tests/purs/passing/SolvingReflectable.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/passing/SolvingReflectable.purs
@@ -0,0 +1,50 @@
+module Main where
+
+import Prelude
+
+import Data.Ordering (Ordering(..))
+import Data.Reflectable (reflectType)
+import Effect.Console (log)
+import Prim.Boolean (True, False)
+import Prim.Ordering (LT, EQ, GT)
+import Type.Proxy (Proxy(..))
+
+refInt :: Proxy 42
+refInt = Proxy
+
+refIntPass :: Boolean
+refIntPass = reflectType refInt == 42
+
+refString :: Proxy "PureScript"
+refString = Proxy
+
+refStringPass :: Boolean
+refStringPass = reflectType refString == "PureScript"
+
+refBooleanT :: Proxy True
+refBooleanT = Proxy
+
+refBooleanF :: Proxy False
+refBooleanF = Proxy
+
+refBooleanPass :: Boolean
+refBooleanPass = reflectType refBooleanT == true && reflectType refBooleanF == false
+
+refOrderingLT :: Proxy LT
+refOrderingLT = Proxy
+
+refOrderingEQ :: Proxy EQ
+refOrderingEQ = Proxy
+
+refOrderingGT :: Proxy GT
+refOrderingGT = Proxy
+
+refOrderingPass :: Boolean
+refOrderingPass =
+  reflectType refOrderingLT == LT
+  && reflectType refOrderingEQ == EQ
+  && reflectType refOrderingGT == GT
+
+main = do
+  when (refIntPass && refStringPass && refBooleanPass && refOrderingPass) $
+    log "Done"
diff --git a/tests/purs/passing/StandaloneKindSignatures.purs b/tests/purs/passing/StandaloneKindSignatures.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/passing/StandaloneKindSignatures.purs
@@ -0,0 +1,27 @@
+module Main where
+
+import Effect.Console (log)
+
+data Pair :: forall k. k -> k -> Type
+data Pair a b = Pair
+
+newtype Pair' :: forall k. k -> k -> Type
+newtype Pair' a b = Pair' (Pair a b)
+
+type Fst :: forall k. k -> k -> k
+type Fst a b = a
+
+class To :: forall k. k -> k -> Constraint
+class To a b | a -> b
+
+test1 = Pair :: Pair Int String
+test2 = Pair :: Pair "foo" "bar"
+test3 = Pair' Pair :: Pair' Int String
+test4 = Pair' Pair :: Pair' "foo" "bar"
+test5 = 42 :: Fst Int String
+test6 = Pair :: Pair (Fst "foo" "bar") "baz"
+
+instance to1 :: To Int String
+instance to2 :: To "foo" "bar"
+
+main = log "Done"
diff --git a/tests/purs/passing/StringEdgeCases/Symbols.purs b/tests/purs/passing/StringEdgeCases/Symbols.purs
--- a/tests/purs/passing/StringEdgeCases/Symbols.purs
+++ b/tests/purs/passing/StringEdgeCases/Symbols.purs
@@ -6,15 +6,16 @@
 import Prelude
 import Effect.Console (log)
 import Prim.Symbol (class Append)
-import Type.Data.Symbol (SProxy(..), reflectSymbol)
+import Type.Data.Symbol (reflectSymbol)
 import Type.Data.Symbol (append) as Symbol
 import Test.Assert (assert')
+import Type.Proxy (Proxy(..))
 
-highS :: SProxy "\xd834"
-highS = SProxy
+highS :: Proxy "\xd834"
+highS = Proxy
 
-lowS :: SProxy "\xdf06"
-lowS = SProxy
+lowS :: Proxy "\xdf06"
+lowS = Proxy
 
 loneSurrogates :: Boolean
 loneSurrogates = reflectSymbol (Symbol.append highS lowS) == "\x1d306"
diff --git a/tests/purs/passing/TCOFloated.purs b/tests/purs/passing/TCOFloated.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/passing/TCOFloated.purs
@@ -0,0 +1,11 @@
+module Main where
+
+import Prelude
+import Effect.Console (log)
+
+main = log (looper { foo: 100000 })
+
+-- The Ord instance for { foo :: Int } will be floated to an outer scope. This
+-- test verifies that TCO happens anyway.
+looper :: { foo :: Int } -> String
+looper x = if x <= { foo: 0 } then "Done" else looper { foo: x.foo - 1 }
diff --git a/tests/purs/passing/TCOMutRec.purs b/tests/purs/passing/TCOMutRec.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/passing/TCOMutRec.purs
@@ -0,0 +1,95 @@
+module Main where
+
+import Prelude
+import Effect (Effect)
+import Effect.Console (log)
+import Test.Assert (assertEqual, assertThrows)
+
+tco1 :: Int -> Int
+tco1 = f 0
+  where
+  f x y = g (x + 2) (y - 1)
+    where
+    g x' y' = if y' <= 0 then x' else f x' y'
+
+tco2 :: Int -> Int
+tco2 = f 0
+  where
+  f x y = g (x + 2) (y - 1)
+    where
+    g x' y' = h (y' <= 0) x' y'
+    h test x' y' = if test then x' else f x' y'
+
+tco3 :: Int -> Int
+tco3 y0 = f 0 y0
+  where
+  f x y = g x (h y)
+    where
+    g x' y' =
+      if y' <= 0 then x'
+      else if y' > y0 / 2 then g (j x') (y' - 1)
+      else f (x' + 2) y'
+    h y = y - 1
+  j x = x + 3
+
+tco4 :: Int -> Int
+tco4 = f 0
+  where
+  f x y = if y <= 0 then x else g (y - 1)
+    where
+    g y' = f (x + 2) y'
+
+-- The following examples are functions which are prevented from being TCO'd
+-- because the arity of the function being looped does not match the function
+-- call. In theory, these could be made to optimize via eta-expansion in the
+-- future, in which case the assertions can change.
+
+ntco1 :: Int -> Int
+ntco1 y0 = f 0 y0
+  where
+  f x = if x > 10 * y0 then (x + _) else g x
+    where
+    g x' y' = f (x' + 10) (y' - 1)
+
+ntco2 :: Int -> Int
+ntco2 = f 0
+  where
+  f x y = if y <= 0 then x else g x (y - 1)
+    where
+    g x' = f (x' + 2)
+
+ntco3 :: Int -> Int
+ntco3 = f 0
+  where
+  f x y = if y <= 0 then x else g (y - 1)
+    where
+    g = f (x + 2)
+
+ntco4 :: Int -> Int
+ntco4 = f 0
+  where
+  f x y = if y <= 0 then x else g (y - 1)
+    where
+    g = h x
+    h x' y' = f (x' + 2) y'
+
+main :: Effect Unit
+main = do
+  assertEqual { expected: 200000, actual: tco1 100000 }
+  assertEqual { expected: 200000, actual: tco2 100000 }
+  assertEqual { expected: 249997, actual: tco3 100000 }
+  assertEqual { expected: 200000, actual: tco4 100000 }
+
+  assertEqual { expected: 1009, actual: ntco1 100 }
+  assertThrows \_ -> ntco1 100000
+
+  assertEqual { expected: 200, actual: ntco2 100 }
+  assertThrows \_ -> ntco2 100000
+
+  assertEqual { expected: 200, actual: ntco3 100 }
+  assertThrows \_ -> ntco3 100000
+
+  assertEqual { expected: 200, actual: ntco4 100 }
+  assertThrows \_ -> ntco4 100000
+
+  log "Done"
diff --git a/tests/purs/passing/TransitiveImportUnnamedInstance.purs b/tests/purs/passing/TransitiveImportUnnamedInstance.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/passing/TransitiveImportUnnamedInstance.purs
@@ -0,0 +1,9 @@
+module Main where
+
+  import Prelude
+  import Middle
+  import Effect.Console
+
+  main = do
+    logShow (middle unit)
+    log "Done"
diff --git a/tests/purs/passing/TransitiveImportUnnamedInstance/Middle.purs b/tests/purs/passing/TransitiveImportUnnamedInstance/Middle.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/passing/TransitiveImportUnnamedInstance/Middle.purs
@@ -0,0 +1,5 @@
+module Middle where
+
+import Test (test)
+
+middle = test
diff --git a/tests/purs/passing/TransitiveImportUnnamedInstance/Test.purs b/tests/purs/passing/TransitiveImportUnnamedInstance/Test.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/passing/TransitiveImportUnnamedInstance/Test.purs
@@ -0,0 +1,9 @@
+module Test where
+
+import Prelude
+
+class TestCls a where
+  test :: a -> a
+
+instance TestCls Unit where
+  test _ = unit
diff --git a/tests/purs/passing/TypeOperators.purs b/tests/purs/passing/TypeOperators.purs
--- a/tests/purs/passing/TypeOperators.purs
+++ b/tests/purs/passing/TypeOperators.purs
@@ -14,7 +14,21 @@
 testPrecedence2 ∷ ∀ f g. f ~> g → f ~> g
 testPrecedence2 nat fx = nat fx
 
+testParens ∷ ∀ f g. (~>) f g → (~>) f g
+testParens nat = nat
+
 swap ∷ ∀ a b. a /\ b → b /\ a
 swap (a /\ b) = b /\ a
+
+foreign import data NatData ∷ ∀ f g. (f ~> g) -> f Type -> g Type
+
+type NatKind ∷ ∀ f g. (f ~> g) -> f Type -> g Type
+type NatKind k a = k a
+
+data UseOperatorInDataParamKind (a :: Type /\ Type) = UseOperatorInDataParamKind
+
+type UseOperatorInTypeParamKind (a :: Type /\ Type) = Int
+
+class UseOperatorInClassParamKind (a :: Type /\ Type)
 
 main = log "Done"
diff --git a/tests/purs/passing/TypeSynonymInSuperClass.purs b/tests/purs/passing/TypeSynonymInSuperClass.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/passing/TypeSynonymInSuperClass.purs
@@ -0,0 +1,18 @@
+module Main where
+
+import Prelude
+import Effect.Console (log)
+
+type Env = { foo :: String }
+
+class Monad m <= MonadAsk r m | m -> r where
+  ask :: m r
+
+class (Monad m, MonadAsk Env m) <= MonadAskEnv m
+
+test :: forall m. MonadAskEnv m => m Boolean
+test = do
+  { foo } <- ask
+  pure (foo == "test")
+
+main = log "Done"
diff --git a/tests/purs/passing/TypeSynonymInstance.purs b/tests/purs/passing/TypeSynonymInstance.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/passing/TypeSynonymInstance.purs
@@ -0,0 +1,16 @@
+module Main where
+
+import Prelude
+
+import Effect.Console (log)
+
+class Convert a b | a -> b where
+  convert :: a -> b
+
+type Words = String
+
+instance convertSB :: Convert Int Words where
+  convert 0 = "Nope"
+  convert _ = "Done"
+
+main = log $ convert 1
diff --git a/tests/purs/passing/TypeSynonymInstance2.purs b/tests/purs/passing/TypeSynonymInstance2.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/passing/TypeSynonymInstance2.purs
@@ -0,0 +1,14 @@
+module Main where
+
+import Effect.Console (log)
+
+data D
+type S = D
+
+class C0 a
+class C0 a <= C1 a
+
+instance c0 :: C0 D
+instance c1 :: C1 S
+
+main = log "Done"
diff --git a/tests/purs/passing/TypeSynonymInstance3.purs b/tests/purs/passing/TypeSynonymInstance3.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/passing/TypeSynonymInstance3.purs
@@ -0,0 +1,23 @@
+module Main where
+
+import Effect.Console (log)
+
+data Cons a b
+infix 6 type Cons as :*
+
+data D2
+data D5
+data D6
+data D8
+
+type D256 = D2 :* (D5 :* D6)
+
+class LtEq a b
+
+instance ltEqD8D256 :: LtEq D8 D256
+
+class (LtEq a D256) <= Lte256 a
+
+instance lte256 :: Lte256 D8
+
+main = log "Done"
diff --git a/tests/purs/passing/TypeSynonymInstance4.purs b/tests/purs/passing/TypeSynonymInstance4.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/passing/TypeSynonymInstance4.purs
@@ -0,0 +1,13 @@
+module Main where
+
+import Effect.Console (log)
+
+data D
+type S = D
+newtype N a = N a
+
+class C a
+
+derive newtype instance c :: C S => C (N S)
+
+main = log "Done"
diff --git a/tests/purs/passing/TypeSynonymInstance5.purs b/tests/purs/passing/TypeSynonymInstance5.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/passing/TypeSynonymInstance5.purs
@@ -0,0 +1,13 @@
+module Main where
+
+import Effect.Console (log)
+
+data D
+type S = D
+newtype N a = N a
+
+class C a b
+
+derive newtype instance c :: C S a => C S (N a)
+
+main = log "Done"
diff --git a/tests/purs/passing/TypeSynonyms.purs b/tests/purs/passing/TypeSynonyms.purs
--- a/tests/purs/passing/TypeSynonyms.purs
+++ b/tests/purs/passing/TypeSynonyms.purs
@@ -25,4 +25,6 @@
 test1 :: forall a b c. Lens (Pair (Pair a b) c) a
 test1 = composeLenses fst fst
 
+newtype N = N (Array ~> Array)
+
 main = log "Done"
diff --git a/tests/purs/passing/TypeSynonymsInKinds.purs b/tests/purs/passing/TypeSynonymsInKinds.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/passing/TypeSynonymsInKinds.purs
@@ -0,0 +1,25 @@
+module Main where
+
+import Effect.Console (log)
+
+type Id a = a
+
+data Proxy :: forall (k :: Id Type). k -> (Id Type)
+data Proxy a  = Proxy
+
+data P (a :: Id Type) = P
+
+class Test (a :: Id Type)
+
+instance testClass1 :: Test Int
+instance testClass2 :: Test (Proxy "foo")
+
+test1 = Proxy :: Proxy Int
+test2 = Proxy :: Proxy "foo"
+
+test3 :: forall k (a :: Id k). Proxy a
+test3 = Proxy
+
+test4 = P :: P Int
+
+main = log "Done"
diff --git a/tests/purs/passing/VTAsClassHeads.purs b/tests/purs/passing/VTAsClassHeads.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/passing/VTAsClassHeads.purs
@@ -0,0 +1,196 @@
+module Main where
+
+import Prelude
+import Data.Array as Array
+import Data.Array.NonEmpty as NEA
+import Data.Maybe (Maybe(..))
+import Data.Either (Either(..), either)
+import Data.Foldable (traverse_)
+import Data.Traversable (sequence)
+import Effect (Effect)
+import Effect.Console (log)
+
+class Singleton x where
+  singleton :: String
+
+instance Singleton Int where
+  singleton = "int"
+
+instance Singleton String where
+  singleton = "string"
+
+singletonWorks :: Effect (Maybe String)
+singletonWorks = do
+  let
+    left = singleton @Int
+    right = singleton @String
+  pure if left /= right then Nothing else Just "Singleton failed"
+
+class ConflictingIdent :: Type -> Constraint
+class ConflictingIdent a where
+  -- The `a` in the type below should refer to the `a`
+  -- introduced by the `forall`, not the class head.
+  conflictingIdent :: forall a. a -> Int
+
+instance ConflictingIdent String where
+  conflictingIdent _ = 1
+
+instance ConflictingIdent Int where
+  conflictingIdent _ = 2
+
+conflictingIdentWorks :: Effect (Maybe String)
+conflictingIdentWorks = do
+  pure if (1 == conflictingIdent @String 4) then Nothing else Just "ConflictingIdent failed"
+
+type M :: Type -> Type
+type M x = forall a. a -> Int
+
+class ConflictingIdentSynonym :: Type -> Constraint
+class ConflictingIdentSynonym a where
+  -- The `a` in the type below should refer to the `a`
+  -- introduced by the `forall`, not the class head.
+  conflictingIdentSynonym :: M a
+
+instance ConflictingIdentSynonym String where
+  conflictingIdentSynonym _ = 1
+
+instance ConflictingIdentSynonym Int where
+  conflictingIdentSynonym _ = 2
+
+conflictingIdentSynonymWorks :: Effect (Maybe String)
+conflictingIdentSynonymWorks = do
+  pure if (1 == conflictingIdentSynonym @String 4) then Nothing else Just "ConflictingIdentSynonym failed"
+
+class MultiNoFDs a b where
+  multiNoFds :: Int
+
+instance MultiNoFDs Int Int where
+  multiNoFds = 0
+
+instance MultiNoFDs String Int where
+  multiNoFds = 1
+
+multiNoFdsWorks :: Effect (Maybe String)
+multiNoFdsWorks = do
+  let
+    left = multiNoFds @Int @Int
+    right = multiNoFds @String @Int
+  pure if left /= right then Nothing else Just "MultiNoFDs failed"
+
+class MultiWithFDs a b | a -> b where
+  multiWithFDs :: Int
+
+instance MultiWithFDs Int Int where
+  multiWithFDs = 0
+
+instance MultiWithFDs String Int where
+  multiWithFDs = 1
+
+multiWithFdsWorks :: Effect (Maybe String)
+multiWithFdsWorks = do
+  let
+    left = multiWithFDs @Int
+    right = multiWithFDs @String
+  pure if left /= right then Nothing else Just "MultiWithFds failed"
+
+class MultiWithBidiFDs a b | a -> b, b -> a where
+  multiWithBidiFDs :: Int
+
+instance MultiWithBidiFDs Int Int where
+  multiWithBidiFDs = 0
+
+instance MultiWithBidiFDs String String where
+  multiWithBidiFDs = 1
+
+multiWithBidiFDsLeftWorks :: Effect (Maybe String)
+multiWithBidiFDsLeftWorks = do
+  let
+    left = multiWithBidiFDs @Int
+    right = multiWithBidiFDs @String
+  pure if left /= right then Nothing else Just "MultiWithFds failed"
+
+multiWithBidiFDsRightWorks :: Effect (Maybe String)
+multiWithBidiFDsRightWorks = do
+  let
+    left = multiWithBidiFDs @_ @Int
+    right = multiWithBidiFDs @_ @String
+  pure if left /= right then Nothing else Just "MultiWithFds failed"
+
+class Superclass a where
+  superClassValue :: a
+
+class Superclass a <= MainClass a where
+  mainClassInt :: Int
+
+data A2 = A2
+
+derive instance Eq A2
+
+instance Superclass A2 where
+  superClassValue = A2
+
+instance MainClass A2 where
+  mainClassInt = 0
+
+data B2 = B2
+
+derive instance Eq B2
+
+instance Superclass B2 where
+  superClassValue = B2
+
+instance MainClass B2 where
+  mainClassInt = 3
+
+mainClassWorks :: Effect (Maybe String)
+mainClassWorks = do
+  let
+    test1 = 0 == mainClassInt @A2
+    test2 = A2 == superClassValue @A2
+  pure if test1 && test2 then Nothing else Just "MainClass failed"
+
+class MultiCoveringSets a b c d e f | a b -> c d e f, f e -> a b c d where
+  noneOfSets :: Int
+
+  partialOfABSet :: a -> { c :: c, d :: d }
+
+  partialOfFESet :: f -> { c :: c, d :: d }
+
+instance MultiCoveringSets Boolean Boolean String String Int Int where
+  noneOfSets = 1
+  partialOfABSet a = { c: if a then "101" else "100", d: "1" }
+  partialOfFESet f = { c: show f, d: "1" }
+
+instance MultiCoveringSets Int Int String String Boolean Boolean where
+  noneOfSets = 2
+  partialOfABSet a = { c: show a, d: "2" }
+  partialOfFESet f = { c: show f, d: "2" }
+
+multiCoveringSetsWorks :: Effect (Maybe String)
+multiCoveringSetsWorks = do
+  let
+    test1a = 1 == noneOfSets @Boolean @Boolean
+    test1b = "101" == (partialOfABSet @Boolean @Boolean true).c
+    test1c = show 3 == (partialOfFESet @_ @_ @_ @_ @Int @Int 3).c
+    test2a = 2 == noneOfSets @_ @_ @_ @_ @Boolean @Boolean
+    test2b = show 20 == (partialOfABSet @_ @_ @_ @_ @Boolean @Boolean 20).c
+    test2c = show false == (partialOfFESet @_ @_ @_ @_ @Boolean @Boolean false).c
+    passes = test1a && test1b && test1c && test2a && test2b && test2c
+  pure if passes then Nothing else Just "MultiCoveringSets failed"
+
+main = do
+  arr' <- sequence
+    [ singletonWorks
+    , conflictingIdentWorks
+    , conflictingIdentSynonymWorks
+    , multiNoFdsWorks
+    , multiWithFdsWorks
+    , multiWithBidiFDsLeftWorks
+    , multiWithBidiFDsRightWorks
+    , mainClassWorks
+    ]
+  case NEA.fromArray $ Array.catMaybes arr' of
+    Just errs ->
+      log $ "Errors..." <> (Array.intercalate "\n" $ NEA.toArray errs)
+    Nothing ->
+      log "Done"
diff --git a/tests/purs/passing/VisibleTypeApplications.purs b/tests/purs/passing/VisibleTypeApplications.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/passing/VisibleTypeApplications.purs
@@ -0,0 +1,40 @@
+module Main where
+
+import Prelude
+import Effect.Console (log)
+
+foreign import data Id :: forall (a :: Type). a -> a
+
+identityCheck :: forall (@f :: forall (a :: Type). a -> a). Int
+identityCheck = 0
+
+identityPass :: Int
+identityPass = identityCheck @Id
+
+foreign import data Const :: forall a b. a -> b -> a
+
+constCheck :: forall (a :: Type) (@f :: forall (b :: Type). b -> a). Int
+constCheck = 0
+
+constPass :: Int
+constPass = constCheck @(Const Int)
+
+-- Type variables in class heads and data declarations are always visible.
+
+class ConstClass a where
+  constClass :: forall @b. a -> b -> a
+    
+instance ConstClass a where
+  constClass a _ = a
+
+constClassInt = constClass @Int @Number
+
+data Tree a = Leaf a | Branch (Tree a) (Tree a)
+
+treeInt :: Int -> Tree Int
+treeInt = Leaf @Int
+
+treeInt' :: Tree Int -> Tree Int -> Tree Int
+treeInt' = Branch @Int
+
+main = log "Done"
diff --git a/tests/purs/psci/BasicEval.purs b/tests/purs/psci/BasicEval.purs
--- a/tests/purs/psci/BasicEval.purs
+++ b/tests/purs/psci/BasicEval.purs
@@ -8,3 +8,12 @@
 
 -- @shouldEvaluateTo 3628800
 fac 10
+
+infix 4 mul as |*|
+
+-- @shouldEvaluateTo 50
+5 |*| 10
+
+data X a = X
+
+type role X representational
diff --git a/tests/purs/psci/Multiline.purs b/tests/purs/psci/Multiline.purs
--- a/tests/purs/psci/Multiline.purs
+++ b/tests/purs/psci/Multiline.purs
@@ -10,3 +10,8 @@
 
 -- @shouldEvaluateTo 3628800
 fac 10
+
+-- @paste
+data X :: Type -> Type
+data X a = X
+-- @paste
diff --git a/tests/purs/publish/basic-example/output/Control.Alt/docs.json b/tests/purs/publish/basic-example/output/Control.Alt/docs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Control.Alt/docs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"reExports":[],"name":"Control.Alt","comments":null,"declarations":[{"children":[{"comments":null,"title":"alt","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]},null]}},"sourceSpan":{"start":[22,3],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[22,37]}},{"comments":null,"title":"altArray","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Alt"],"Alt"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]}]}},"sourceSpan":{"start":[26,1],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[27,15]}}],"comments":"The `Alt` type class identifies an associative operation on a type\nconstructor.  It is similar to `Semigroup`, except that it applies to\ntypes of kind `* -> *`, like `Array` or `List`, rather than concrete types\n`String` or `Number`.\n\n`Alt` instances are required to satisfy the following laws:\n\n- Associativity: `(x <|> y) <|> z == x <|> (y <|> z)`\n- Distributivity: `f <$> (x <|> y) == (f <$> x) <|> (f <$> y)`\n\nFor example, the `Array` (`[]`) type is an instance of `Alt`, where\n`(<|>)` is defined to be concatenation.\n","title":"Alt","info":{"fundeps":[],"arguments":[["f",null]],"declType":"typeClass","superclasses":[{"constraintAnn":[],"constraintClass":[["Data","Functor"],"Functor"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null}]},"sourceSpan":{"start":[21,1],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[22,37]}},{"children":[],"comments":null,"title":"(<|>)","info":{"declType":"alias","alias":[["Control","Alt"],{"Right":{"Left":{"Ident":"alt"}}}],"fixity":{"associativity":"infixl","precedence":3}},"sourceSpan":{"start":[24,1],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[24,20]}}]}
diff --git a/tests/purs/publish/basic-example/output/Control.Alt/externs.json b/tests/purs/publish/basic-example/output/Control.Alt/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Control.Alt/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Control","Alt"],"efExports":[{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[27,15]},{"exportSourceImportedFrom":["Data","Functor"],"exportSourceDefinedIn":["Data","Functor"]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[27,15]},"Functor"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[27,15]},{"exportSourceImportedFrom":["Data","Functor"],"exportSourceDefinedIn":["Data","Functor"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[27,15]},{"Ident":"map"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[27,15]},{"exportSourceImportedFrom":["Data","Functor"],"exportSourceDefinedIn":["Data","Functor"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[27,15]},{"Ident":"void"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[27,15]},{"exportSourceImportedFrom":["Data","Functor"],"exportSourceDefinedIn":["Data","Functor"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[27,15]},"$>"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[27,15]},{"exportSourceImportedFrom":["Data","Functor"],"exportSourceDefinedIn":["Data","Functor"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[27,15]},"<#>"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[27,15]},{"exportSourceImportedFrom":["Data","Functor"],"exportSourceDefinedIn":["Data","Functor"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[27,15]},"<$"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[27,15]},{"exportSourceImportedFrom":["Data","Functor"],"exportSourceDefinedIn":["Data","Functor"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[27,15]},"<$>"]}]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[27,15]},"Alt"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[27,15]},{"Ident":"alt"}]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[27,15]},"<|>"]},{"ModuleRef":[{"start":[3,5],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[3,24]},["Data","Functor"]]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"altArray"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Data","Functor"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[6,22],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[6,35]},"Functor"]},{"ValueRef":[{"start":[6,37],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[6,40]},{"Ident":"map"}]},{"ValueRef":[{"start":[6,42],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[6,46]},{"Ident":"void"}]},{"ValueOpRef":[{"start":[6,48],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[6,52]},"$>"]},{"ValueOpRef":[{"start":[6,54],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[6,59]},"<#>"]},{"ValueOpRef":[{"start":[6,61],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[6,65]},"<$"]},{"ValueOpRef":[{"start":[6,67],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[6,72]},"<$>"]}]},"eiImportedAs":null},{"eiModule":["Data","Semigroup"],"eiImportType":{"Explicit":[{"ValueRef":[{"start":[7,24],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[7,30]},{"Ident":"append"}]}]},"eiImportedAs":null}],"efFixities":[{"efAssociativity":"infixl","efPrecedence":3,"efOperator":"<|>","efAlias":[["Control","Alt"],{"Left":{"Ident":"alt"}}]}],"efTypeFixities":[],"efDeclarations":[{"EDType":{"edTypeName":"Alt","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[22,20],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[22,23]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[22,24],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[22,26]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"Alt","edTypeSynonymArguments":[["f",null]],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["alt",{"annotation":[{"start":[22,10],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[22,37]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[22,20],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[22,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[22,20],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[22,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[22,24],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[22,26]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[22,20],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[22,23]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[22,20],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[22,21]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[22,22],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[22,23]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[22,27],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[22,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[22,27],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[22,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[22,31],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[22,33]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[22,27],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[22,30]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[22,27],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[22,28]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[22,29],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[22,30]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[22,34],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[22,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[22,34],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[22,35]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[22,36],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[22,37]},[]],"tag":"TypeVar","contents":"a"}]}]}]},null]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["Functor0",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Functor"],"Functor"]},{"annotation":[{"start":[21,15],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[21,16]},[]],"tag":"TypeVar","contents":"f"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]}]}}},{"EDClass":{"edClassName":"Alt","edClassTypeArguments":[["f",null]],"edClassMembers":[[{"Ident":"alt"},{"annotation":[{"start":[22,10],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[22,37]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[22,20],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[22,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[22,20],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[22,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[22,24],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[22,26]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[22,20],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[22,23]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[22,20],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[22,21]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[22,22],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[22,23]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[22,27],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[22,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[22,27],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[22,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[22,31],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[22,33]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[22,27],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[22,30]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[22,27],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[22,28]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[22,29],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[22,30]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[22,34],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[22,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[22,34],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[22,35]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[22,36],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[22,37]},[]],"tag":"TypeVar","contents":"a"}]}]}]},null]}]],"edClassConstraints":[{"constraintAnn":[{"start":[21,7],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[21,16]},[]],"constraintClass":[["Data","Functor"],"Functor"],"constraintArgs":[{"annotation":[{"start":[21,15],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[21,16]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null}],"edFunctionalDependencies":[]}},{"EDValue":{"edValueName":{"Ident":"alt"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[22,10],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[22,37]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["Control","Alt"],"Alt"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[22,20],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[22,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[22,20],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[22,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[22,24],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[22,26]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[22,20],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[22,23]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[22,20],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[22,21]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[22,22],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[22,23]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[22,27],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[22,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[22,27],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[22,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[22,31],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[22,33]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[22,27],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[22,30]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[22,27],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[22,28]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[22,29],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[22,30]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[22,34],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[22,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[22,34],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[22,35]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[22,36],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[22,37]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]},4]},5]}}},{"EDInstance":{"edInstanceClassName":[["Control","Alt"],"Alt"],"edInstanceName":{"Ident":"altArray"},"edInstanceTypes":[{"annotation":[{"start":[26,26],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[26,31]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Control","Alt"],{"Ident":"altArray"}]],"edInstanceChainIndex":0}}],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[27,15]}}
diff --git a/tests/purs/publish/basic-example/output/Control.Alternative/docs.json b/tests/purs/publish/basic-example/output/Control.Alternative/docs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Control.Alternative/docs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"reExports":[],"name":"Control.Alternative","comments":null,"declarations":[{"children":[{"comments":null,"title":"alternativeArray","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Alternative"],"Alternative"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]}]}},"sourceSpan":{"start":[27,1],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[27,47]}}],"comments":"The `Alternative` type class has no members of its own; it just specifies\nthat the type constructor has both `Applicative` and `Plus` instances.\n\nTypes which have `Alternative` instances should also satisfy the following\nlaws:\n\n- Distributivity: `(f <|> g) <*> x == (f <*> x) <|> (g <*> x)`\n- Annihilation: `empty <*> f = empty`\n","title":"Alternative","info":{"fundeps":[],"arguments":[["f",null]],"declType":"typeClass","superclasses":[{"constraintAnn":[],"constraintClass":[["Control","Applicative"],"Applicative"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Control","Plus"],"Plus"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null}]},"sourceSpan":{"start":[25,1],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[25,47]}}]}
diff --git a/tests/purs/publish/basic-example/output/Control.Alternative/externs.json b/tests/purs/publish/basic-example/output/Control.Alternative/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Control.Alternative/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Control","Alternative"],"efExports":[{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[27,47]},{"exportSourceImportedFrom":["Control","Alt"],"exportSourceDefinedIn":["Control","Alt"]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[27,47]},"Alt"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[27,47]},{"exportSourceImportedFrom":["Control","Applicative"],"exportSourceDefinedIn":["Control","Applicative"]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[27,47]},"Applicative"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[27,47]},{"exportSourceImportedFrom":["Control","Apply"],"exportSourceDefinedIn":["Control","Apply"]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[27,47]},"Apply"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[27,47]},{"exportSourceImportedFrom":["Data","Functor"],"exportSourceDefinedIn":["Data","Functor"]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[27,47]},"Functor"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[27,47]},{"exportSourceImportedFrom":["Control","Plus"],"exportSourceDefinedIn":["Control","Plus"]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[27,47]},"Plus"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[27,47]},{"exportSourceImportedFrom":["Control","Alt"],"exportSourceDefinedIn":["Control","Alt"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[27,47]},{"Ident":"alt"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[27,47]},{"exportSourceImportedFrom":["Control","Apply"],"exportSourceDefinedIn":["Control","Apply"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[27,47]},{"Ident":"apply"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[27,47]},{"exportSourceImportedFrom":["Control","Plus"],"exportSourceDefinedIn":["Control","Plus"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[27,47]},{"Ident":"empty"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[27,47]},{"exportSourceImportedFrom":["Control","Applicative"],"exportSourceDefinedIn":["Control","Applicative"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[27,47]},{"Ident":"liftA1"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[27,47]},{"exportSourceImportedFrom":["Data","Functor"],"exportSourceDefinedIn":["Data","Functor"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[27,47]},{"Ident":"map"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[27,47]},{"exportSourceImportedFrom":["Control","Applicative"],"exportSourceDefinedIn":["Control","Applicative"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[27,47]},{"Ident":"pure"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[27,47]},{"exportSourceImportedFrom":["Control","Applicative"],"exportSourceDefinedIn":["Control","Applicative"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[27,47]},{"Ident":"unless"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[27,47]},{"exportSourceImportedFrom":["Data","Functor"],"exportSourceDefinedIn":["Data","Functor"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[27,47]},{"Ident":"void"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[27,47]},{"exportSourceImportedFrom":["Control","Applicative"],"exportSourceDefinedIn":["Control","Applicative"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[27,47]},{"Ident":"when"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[27,47]},{"exportSourceImportedFrom":["Data","Functor"],"exportSourceDefinedIn":["Data","Functor"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[27,47]},"$>"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[27,47]},{"exportSourceImportedFrom":["Control","Apply"],"exportSourceDefinedIn":["Control","Apply"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[27,47]},"*>"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[27,47]},{"exportSourceImportedFrom":["Data","Functor"],"exportSourceDefinedIn":["Data","Functor"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[27,47]},"<#>"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[27,47]},{"exportSourceImportedFrom":["Data","Functor"],"exportSourceDefinedIn":["Data","Functor"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[27,47]},"<$"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[27,47]},{"exportSourceImportedFrom":["Data","Functor"],"exportSourceDefinedIn":["Data","Functor"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[27,47]},"<$>"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[27,47]},{"exportSourceImportedFrom":["Control","Apply"],"exportSourceDefinedIn":["Control","Apply"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[27,47]},"<*"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[27,47]},{"exportSourceImportedFrom":["Control","Apply"],"exportSourceDefinedIn":["Control","Apply"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[27,47]},"<*>"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[27,47]},{"exportSourceImportedFrom":["Control","Alt"],"exportSourceDefinedIn":["Control","Alt"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[27,47]},"<|>"]}]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[27,47]},"Alternative"]},{"ModuleRef":[{"start":[3,5],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[3,23]},["Control","Alt"]]},{"ModuleRef":[{"start":[4,5],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[4,31]},["Control","Applicative"]]},{"ModuleRef":[{"start":[5,5],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[5,25]},["Control","Apply"]]},{"ModuleRef":[{"start":[6,5],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[6,24]},["Control","Plus"]]},{"ModuleRef":[{"start":[7,5],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[7,24]},["Data","Functor"]]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"alternativeArray"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Control","Alt"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[10,21],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[10,30]},"Alt"]},{"ValueRef":[{"start":[10,32],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[10,35]},{"Ident":"alt"}]},{"ValueOpRef":[{"start":[10,37],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[10,42]},"<|>"]}]},"eiImportedAs":null},{"eiModule":["Control","Applicative"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[11,29],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[11,46]},"Applicative"]},{"ValueRef":[{"start":[11,48],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[11,52]},{"Ident":"pure"}]},{"ValueRef":[{"start":[11,54],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[11,60]},{"Ident":"liftA1"}]},{"ValueRef":[{"start":[11,62],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[11,68]},{"Ident":"unless"}]},{"ValueRef":[{"start":[11,70],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[11,74]},{"Ident":"when"}]}]},"eiImportedAs":null},{"eiModule":["Control","Apply"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[12,23],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[12,34]},"Apply"]},{"ValueRef":[{"start":[12,36],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[12,41]},{"Ident":"apply"}]},{"ValueOpRef":[{"start":[12,43],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[12,47]},"*>"]},{"ValueOpRef":[{"start":[12,49],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[12,53]},"<*"]},{"ValueOpRef":[{"start":[12,55],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[12,60]},"<*>"]}]},"eiImportedAs":null},{"eiModule":["Control","Plus"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[13,22],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[13,32]},"Plus"]},{"ValueRef":[{"start":[13,34],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[13,39]},{"Ident":"empty"}]}]},"eiImportedAs":null},{"eiModule":["Data","Functor"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[15,22],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[15,35]},"Functor"]},{"ValueRef":[{"start":[15,37],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[15,40]},{"Ident":"map"}]},{"ValueRef":[{"start":[15,42],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[15,46]},{"Ident":"void"}]},{"ValueOpRef":[{"start":[15,48],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[15,52]},"$>"]},{"ValueOpRef":[{"start":[15,54],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[15,59]},"<#>"]},{"ValueOpRef":[{"start":[15,61],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[15,65]},"<$"]},{"ValueOpRef":[{"start":[15,67],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[15,72]},"<$>"]}]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDType":{"edTypeName":"Alternative","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"Alternative","edTypeSynonymArguments":[["f",null]],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["Applicative0",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Control","Applicative"],"Applicative"]},{"annotation":[{"start":[25,20],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[25,21]},[]],"tag":"TypeVar","contents":"f"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["Plus1",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Control","Plus"],"Plus"]},{"annotation":[{"start":[25,28],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[25,29]},[]],"tag":"TypeVar","contents":"f"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]}]}}},{"EDClass":{"edClassName":"Alternative","edClassTypeArguments":[["f",null]],"edClassMembers":[],"edClassConstraints":[{"constraintAnn":[{"start":[25,8],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[25,21]},[]],"constraintClass":[["Control","Applicative"],"Applicative"],"constraintArgs":[{"annotation":[{"start":[25,20],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[25,21]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"constraintAnn":[{"start":[25,23],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[25,29]},[]],"constraintClass":[["Control","Plus"],"Plus"],"constraintArgs":[{"annotation":[{"start":[25,28],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[25,29]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null}],"edFunctionalDependencies":[]}},{"EDInstance":{"edInstanceClassName":[["Control","Alternative"],"Alternative"],"edInstanceName":{"Ident":"alternativeArray"},"edInstanceTypes":[{"annotation":[{"start":[27,42],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[27,47]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Control","Alternative"],{"Ident":"alternativeArray"}]],"edInstanceChainIndex":0}}],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[27,47]}}
diff --git a/tests/purs/publish/basic-example/output/Control.Applicative/docs.json b/tests/purs/publish/basic-example/output/Control.Applicative/docs.json
--- a/tests/purs/publish/basic-example/output/Control.Applicative/docs.json
+++ b/tests/purs/publish/basic-example/output/Control.Applicative/docs.json
@@ -1,1 +1,1 @@
-{"reExports":[],"name":"Control.Applicative","comments":null,"declarations":[{"children":[{"comments":null,"title":"pure","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},null]}},"sourceSpan":{"start":[33,3],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[33,29]}},{"comments":null,"title":"applicativeFn","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Applicative"],"Applicative"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}]}},"sourceSpan":{"start":[35,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[36,15]}},{"comments":null,"title":"applicativeArray","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Applicative"],"Applicative"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]}]}},"sourceSpan":{"start":[38,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[39,15]}}],"comments":"The `Applicative` type class extends the [`Apply`](#apply) type class\nwith a `pure` function, which can be used to create values of type `f a`\nfrom values of type `a`.\n\nWhere [`Apply`](#apply) provides the ability to lift functions of two or\nmore arguments to functions whose arguments are wrapped using `f`, and\n[`Functor`](#functor) provides the ability to lift functions of one\nargument, `pure` can be seen as the function which lifts functions of\n_zero_ arguments. That is, `Applicative` functors support a lifting\noperation for any number of function arguments.\n\nInstances must satisfy the following laws in addition to the `Apply`\nlaws:\n\n- Identity: `(pure identity) <*> v = v`\n- Composition: `pure (<<<) <*> f <*> g <*> h = f <*> (g <*> h)`\n- Homomorphism: `(pure f) <*> (pure x) = pure (f x)`\n- Interchange: `u <*> (pure y) = (pure (_ $ y)) <*> u`\n","title":"Applicative","info":{"fundeps":[],"arguments":[["f",null]],"declType":"typeClass","superclasses":[{"constraintAnn":[],"constraintClass":[["Control","Apply"],"Apply"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null}]},"sourceSpan":{"start":[32,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[33,29]}},{"children":[],"comments":"`liftA1` provides a default implementation of `(<$>)` for any\n[`Applicative`](#applicative) functor, without using `(<$>)` as provided\nby the [`Functor`](#functor)-[`Applicative`](#applicative) superclass\nrelationship.\n\n`liftA1` can therefore be used to write [`Functor`](#functor) instances\nas follows:\n\n```purescript\ninstance functorF :: Functor F where\n  map = liftA1\n```\n","title":"liftA1","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Applicative"],"Applicative"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}]}]},null]},null]},null]}},"sourceSpan":{"start":[53,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[53,64]}},{"children":[],"comments":"Perform an applicative action unless a condition is true.\n","title":"unless","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Applicative"],"Applicative"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}]}]},null]}},"sourceSpan":{"start":[62,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[62,65]}},{"children":[],"comments":"Perform an applicative action when a condition is true.\n","title":"when","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Applicative"],"Applicative"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}]}]},null]}},"sourceSpan":{"start":[57,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[57,63]}}]}
+{"comments":null,"declarations":[{"children":[{"comments":null,"info":{"declType":"typeClassMember","type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":"f","tag":"TypeVar"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"sourceSpan":{"end":[36,29],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","start":[36,3]},"title":"pure"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Control","Applicative"],"Applicative"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"r","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[39,15],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","start":[38,1]},"title":"applicativeFn"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Control","Applicative"],"Applicative"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Array"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[42,17],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","start":[41,1]},"title":"applicativeArray"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Control","Applicative"],"Applicative"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Type","Proxy"],"Proxy"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[45,17],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","start":[44,1]},"title":"applicativeProxy"}],"comments":"The `Applicative` type class extends the [`Apply`](#apply) type class\nwith a `pure` function, which can be used to create values of type `f a`\nfrom values of type `a`.\n\nWhere [`Apply`](#apply) provides the ability to lift functions of two or\nmore arguments to functions whose arguments are wrapped using `f`, and\n[`Functor`](#functor) provides the ability to lift functions of one\nargument, `pure` can be seen as the function which lifts functions of\n_zero_ arguments. That is, `Applicative` functors support a lifting\noperation for any number of function arguments.\n\nInstances must satisfy the following laws in addition to the `Apply`\nlaws:\n\n- Identity: `(pure identity) <*> v = v`\n- Composition: `pure (<<<) <*> f <*> g <*> h = f <*> (g <*> h)`\n- Homomorphism: `(pure f) <*> (pure x) = pure (f x)`\n- Interchange: `u <*> (pure y) = (pure (_ $ y)) <*> u`\n","info":{"arguments":[["f",null]],"declType":"typeClass","fundeps":[],"superclasses":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"f","tag":"TypeVar"}],"constraintClass":[["Control","Apply"],"Apply"],"constraintData":null,"constraintKindArgs":[]}]},"kind":{"keyword":"class","kind":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim"],"Constraint"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[36,29],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","start":[35,1]},"title":"Applicative"},{"children":[],"comments":"`liftA1` provides a default implementation of `(<$>)` for any\n[`Applicative`](#applicative) functor, without using `(<$>)` as provided\nby the [`Functor`](#functor)-[`Applicative`](#applicative) superclass\nrelationship.\n\n`liftA1` can therefore be used to write [`Functor`](#functor) instances\nas follows:\n\n```purescript\ninstance functorF :: Functor F where\n  map = liftA1\n```\n","info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"f","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"b","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"f","tag":"TypeVar"}],"constraintClass":[["Control","Applicative"],"Applicative"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"},"tag":"ParensInType"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":"f","tag":"TypeVar"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":"f","tag":"TypeVar"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[59,64],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","start":[59,1]},"title":"liftA1"},{"children":[],"comments":"Perform an applicative action unless a condition is true.\n","info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"m","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"m","tag":"TypeVar"}],"constraintClass":[["Control","Applicative"],"Applicative"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Boolean"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":"m","tag":"TypeVar"},{"annotation":[],"contents":[["Data","Unit"],"Unit"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":"m","tag":"TypeVar"},{"annotation":[],"contents":[["Data","Unit"],"Unit"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[68,65],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","start":[68,1]},"title":"unless"},{"children":[],"comments":"Perform an applicative action when a condition is true.\n","info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"m","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"m","tag":"TypeVar"}],"constraintClass":[["Control","Applicative"],"Applicative"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Boolean"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":"m","tag":"TypeVar"},{"annotation":[],"contents":[["Data","Unit"],"Unit"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":"m","tag":"TypeVar"},{"annotation":[],"contents":[["Data","Unit"],"Unit"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[63,63],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","start":[63,1]},"title":"when"}],"name":"Control.Applicative","reExports":[]}
diff --git a/tests/purs/publish/basic-example/output/Control.Applicative/externs.json b/tests/purs/publish/basic-example/output/Control.Applicative/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Control.Applicative/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Control","Applicative"],"efExports":[{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[64,26]},{"exportSourceImportedFrom":["Control","Apply"],"exportSourceDefinedIn":["Control","Apply"]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[64,26]},"Apply"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[64,26]},{"exportSourceImportedFrom":["Data","Functor"],"exportSourceDefinedIn":["Data","Functor"]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[64,26]},"Functor"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[64,26]},{"exportSourceImportedFrom":["Control","Apply"],"exportSourceDefinedIn":["Control","Apply"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[64,26]},{"Ident":"apply"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[64,26]},{"exportSourceImportedFrom":["Data","Functor"],"exportSourceDefinedIn":["Data","Functor"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[64,26]},{"Ident":"map"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[64,26]},{"exportSourceImportedFrom":["Data","Functor"],"exportSourceDefinedIn":["Data","Functor"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[64,26]},{"Ident":"void"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[64,26]},{"exportSourceImportedFrom":["Data","Functor"],"exportSourceDefinedIn":["Data","Functor"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[64,26]},"$>"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[64,26]},{"exportSourceImportedFrom":["Control","Apply"],"exportSourceDefinedIn":["Control","Apply"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[64,26]},"*>"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[64,26]},{"exportSourceImportedFrom":["Data","Functor"],"exportSourceDefinedIn":["Data","Functor"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[64,26]},"<#>"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[64,26]},{"exportSourceImportedFrom":["Data","Functor"],"exportSourceDefinedIn":["Data","Functor"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[64,26]},"<$"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[64,26]},{"exportSourceImportedFrom":["Data","Functor"],"exportSourceDefinedIn":["Data","Functor"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[64,26]},"<$>"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[64,26]},{"exportSourceImportedFrom":["Control","Apply"],"exportSourceDefinedIn":["Control","Apply"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[64,26]},"<*"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[64,26]},{"exportSourceImportedFrom":["Control","Apply"],"exportSourceDefinedIn":["Control","Apply"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[64,26]},"<*>"]}]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[64,26]},"Applicative"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[64,26]},{"Ident":"pure"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[64,26]},{"Ident":"liftA1"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[64,26]},{"Ident":"unless"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[64,26]},{"Ident":"when"}]},{"ModuleRef":[{"start":[5,5],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[5,25]},["Control","Apply"]]},{"ModuleRef":[{"start":[6,5],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[6,24]},["Data","Functor"]]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"applicativeFn"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"applicativeArray"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Control","Apply"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[9,23],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[9,34]},"Apply"]},{"ValueRef":[{"start":[9,36],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[9,41]},{"Ident":"apply"}]},{"ValueOpRef":[{"start":[9,43],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[9,47]},"*>"]},{"ValueOpRef":[{"start":[9,49],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[9,53]},"<*"]},{"ValueOpRef":[{"start":[9,55],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[9,60]},"<*>"]}]},"eiImportedAs":null},{"eiModule":["Data","Functor"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[11,22],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[11,35]},"Functor"]},{"ValueRef":[{"start":[11,37],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[11,40]},{"Ident":"map"}]},{"ValueRef":[{"start":[11,42],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[11,46]},{"Ident":"void"}]},{"ValueOpRef":[{"start":[11,48],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[11,52]},"$>"]},{"ValueOpRef":[{"start":[11,54],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[11,59]},"<#>"]},{"ValueOpRef":[{"start":[11,61],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[11,65]},"<$"]},{"ValueOpRef":[{"start":[11,67],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[11,72]},"<$>"]}]},"eiImportedAs":null},{"eiModule":["Data","Unit"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[12,19],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[12,23]},"Unit",[]]},{"ValueRef":[{"start":[12,25],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[12,29]},{"Ident":"unit"}]}]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDType":{"edTypeName":"Applicative","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[33,26],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[33,29]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[33,23],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[33,25]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[33,23],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[33,25]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"Applicative","edTypeSynonymArguments":[["f",null]],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["pure",{"annotation":[{"start":[33,11],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[33,29]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[33,21],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[33,29]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[33,21],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[33,29]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[33,23],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[33,25]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[33,21],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[33,22]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[33,26],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[33,29]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[33,26],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[33,27]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[33,28],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[33,29]},[]],"tag":"TypeVar","contents":"a"}]}]},null]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["Apply0",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Control","Apply"],"Apply"]},{"annotation":[{"start":[32,13],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[32,14]},[]],"tag":"TypeVar","contents":"f"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]}]}}},{"EDClass":{"edClassName":"Applicative","edClassTypeArguments":[["f",null]],"edClassMembers":[[{"Ident":"pure"},{"annotation":[{"start":[33,11],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[33,29]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[33,21],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[33,29]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[33,21],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[33,29]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[33,23],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[33,25]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[33,21],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[33,22]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[33,26],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[33,29]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[33,26],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[33,27]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[33,28],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[33,29]},[]],"tag":"TypeVar","contents":"a"}]}]},null]}]],"edClassConstraints":[{"constraintAnn":[{"start":[32,7],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[32,14]},[]],"constraintClass":[["Control","Apply"],"Apply"],"constraintArgs":[{"annotation":[{"start":[32,13],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[32,14]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null}],"edFunctionalDependencies":[]}},{"EDValue":{"edValueName":{"Ident":"pure"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[33,11],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[33,29]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["Control","Applicative"],"Applicative"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[33,21],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[33,29]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[33,21],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[33,29]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[33,23],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[33,25]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[33,21],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[33,22]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[33,26],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[33,29]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[33,26],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[33,27]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[33,28],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[33,29]},[]],"tag":"TypeVar","contents":"a"}]}]}]},0]},1]}}},{"EDValue":{"edValueName":{"Ident":"liftA1"},"edValueType":{"annotation":[{"start":[53,11],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[53,64]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[53,18],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[53,64]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[53,18],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[53,64]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[53,25],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[53,64]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[53,25],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[53,38]},[]],"constraintClass":[["Control","Applicative"],"Applicative"],"constraintArgs":[{"annotation":[{"start":[53,37],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[53,38]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[53,42],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[53,64]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,42],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[53,64]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,51],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[53,53]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[53,43],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[53,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,43],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[53,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,45],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[53,47]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[53,43],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[53,44]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[53,48],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[53,49]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[53,54],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[53,64]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,54],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[53,64]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,58],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[53,60]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[53,54],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[53,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,54],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[53,55]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[53,56],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[53,57]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[53,61],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[53,64]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,61],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[53,62]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[53,63],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[53,64]},[]],"tag":"TypeVar","contents":"b"}]}]}]}]},6]},7]},8]}}},{"EDValue":{"edValueName":{"Ident":"unless"},"edValueType":{"annotation":[{"start":[62,11],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[62,65]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[62,21],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[62,65]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[62,21],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[62,34]},[]],"constraintClass":[["Control","Applicative"],"Applicative"],"constraintArgs":[{"annotation":[{"start":[62,33],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[62,34]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[62,38],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[62,65]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[62,38],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[62,65]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[62,46],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[62,48]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[62,38],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[62,45]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]},{"annotation":[{"start":[62,49],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[62,65]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[62,49],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[62,65]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[62,56],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[62,58]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[62,49],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[62,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[62,49],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[62,50]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[62,51],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[62,55]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]},{"annotation":[{"start":[62,59],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[62,65]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[62,59],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[62,60]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[62,61],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[62,65]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}]}]},2]}}},{"EDValue":{"edValueName":{"Ident":"when"},"edValueType":{"annotation":[{"start":[57,9],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[57,63]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[57,19],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[57,63]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[57,19],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[57,32]},[]],"constraintClass":[["Control","Applicative"],"Applicative"],"constraintArgs":[{"annotation":[{"start":[57,31],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[57,32]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[57,36],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[57,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[57,36],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[57,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[57,44],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[57,46]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[57,36],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[57,43]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]},{"annotation":[{"start":[57,47],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[57,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[57,47],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[57,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[57,54],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[57,56]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[57,47],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[57,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[57,47],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[57,48]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[57,49],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[57,53]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]},{"annotation":[{"start":[57,57],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[57,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[57,57],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[57,58]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[57,59],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[57,63]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}]}]},4]}}},{"EDInstance":{"edInstanceClassName":[["Control","Applicative"],"Applicative"],"edInstanceName":{"Ident":"applicativeFn"},"edInstanceTypes":[{"annotation":[{"start":[35,40],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[35,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[35,40],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[35,44]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[35,45],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[35,46]},[]],"tag":"TypeVar","contents":"r"}]}],"edInstanceConstraints":[],"edInstanceChain":[[["Control","Applicative"],{"Ident":"applicativeFn"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Applicative"],"Applicative"],"edInstanceName":{"Ident":"applicativeArray"},"edInstanceTypes":[{"annotation":[{"start":[38,42],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[38,47]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Control","Applicative"],{"Ident":"applicativeArray"}]],"edInstanceChainIndex":0}}],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[64,26]}}
diff --git a/tests/purs/publish/basic-example/output/Control.Apply/docs.json b/tests/purs/publish/basic-example/output/Control.Apply/docs.json
--- a/tests/purs/publish/basic-example/output/Control.Apply/docs.json
+++ b/tests/purs/publish/basic-example/output/Control.Apply/docs.json
@@ -1,1 +1,1 @@
-{"reExports":[],"name":"Control.Apply","comments":null,"declarations":[{"children":[{"comments":null,"title":"apply","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}]},null]},null]}},"sourceSpan":{"start":[36,3],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[36,48]}},{"comments":null,"title":"applyFn","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Apply"],"Apply"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}]}},"sourceSpan":{"start":[40,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[41,26]}},{"comments":null,"title":"applyArray","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Apply"],"Apply"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]}]}},"sourceSpan":{"start":[43,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[44,21]}}],"comments":"The `Apply` class provides the `(<*>)` which is used to apply a function\nto an argument under a type constructor.\n\n`Apply` can be used to lift functions of two or more arguments to work on\nvalues wrapped with the type constructor `f`. It might also be understood\nin terms of the `lift2` function:\n\n```purescript\nlift2 :: forall f a b c. Apply f => (a -> b -> c) -> f a -> f b -> f c\nlift2 f a b = f <$> a <*> b\n```\n\n`(<*>)` is recovered from `lift2` as `lift2 ($)`. That is, `(<*>)` lifts\nthe function application operator `($)` to arguments wrapped with the\ntype constructor `f`.\n\nInstances must satisfy the following law in addition to the `Functor`\nlaws:\n\n- Associative composition: `(<<<) <$> f <*> g <*> h = f <*> (g <*> h)`\n\nFormally, `Apply` represents a strong lax semi-monoidal endofunctor.\n","title":"Apply","info":{"fundeps":[],"arguments":[["f",null]],"declType":"typeClass","superclasses":[{"constraintAnn":[],"constraintClass":[["Data","Functor"],"Functor"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null}]},"sourceSpan":{"start":[35,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[36,48]}},{"children":[],"comments":null,"title":"(<*>)","info":{"declType":"alias","alias":[["Control","Apply"],{"Right":{"Left":{"Ident":"apply"}}}],"fixity":{"associativity":"infixl","precedence":4}},"sourceSpan":{"start":[38,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[38,22]}},{"children":[],"comments":"Combine two effectful actions, keeping only the result of the first.\n","title":"applyFirst","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Apply"],"Apply"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]}]},null]},null]},null]}},"sourceSpan":{"start":[49,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[49,57]}},{"children":[],"comments":null,"title":"(<*)","info":{"declType":"alias","alias":[["Control","Apply"],{"Right":{"Left":{"Ident":"applyFirst"}}}],"fixity":{"associativity":"infixl","precedence":4}},"sourceSpan":{"start":[52,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[52,26]}},{"children":[],"comments":"Combine two effectful actions, keeping only the result of the second.\n","title":"applySecond","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Apply"],"Apply"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}]}]},null]},null]},null]}},"sourceSpan":{"start":[55,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[55,58]}},{"children":[],"comments":null,"title":"(*>)","info":{"declType":"alias","alias":[["Control","Apply"],{"Right":{"Left":{"Ident":"applySecond"}}}],"fixity":{"associativity":"infixl","precedence":4}},"sourceSpan":{"start":[58,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[58,27]}},{"children":[],"comments":"Lift a function of two arguments to a function which accepts and returns\nvalues wrapped with the type constructor `f`.\n","title":"lift2","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Apply"],"Apply"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"c"}]}]}]}]}]},null]},null]},null]},null]}},"sourceSpan":{"start":[62,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[62,71]}},{"children":[],"comments":"Lift a function of three arguments to a function which accepts and returns\nvalues wrapped with the type constructor `f`.\n","title":"lift3","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["d",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Apply"],"Apply"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"d"}]}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"c"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"d"}]}]}]}]}]}]},null]},null]},null]},null]},null]}},"sourceSpan":{"start":[67,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[67,85]}},{"children":[],"comments":"Lift a function of four arguments to a function which accepts and returns\nvalues wrapped with the type constructor `f`.\n","title":"lift4","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["e",{"annotation":[],"tag":"ForAll","contents":["d",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Apply"],"Apply"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeVar","contents":"e"}]}]}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"c"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"d"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"e"}]}]}]}]}]}]}]},null]},null]},null]},null]},null]},null]}},"sourceSpan":{"start":[72,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[72,99]}},{"children":[],"comments":"Lift a function of five arguments to a function which accepts and returns\nvalues wrapped with the type constructor `f`.\n","title":"lift5","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["g",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["e",{"annotation":[],"tag":"ForAll","contents":["d",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Apply"],"Apply"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"e"}]},{"annotation":[],"tag":"TypeVar","contents":"g"}]}]}]}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"c"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"d"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"e"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"g"}]}]}]}]}]}]}]}]},null]},null]},null]},null]},null]},null]},null]}},"sourceSpan":{"start":[77,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[77,113]}}]}
+{"comments":null,"declarations":[{"children":[{"comments":null,"info":{"declType":"typeClassMember","type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"b","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":"f","tag":"TypeVar"},{"annotation":[],"contents":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"},"tag":"ParensInType"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":"f","tag":"TypeVar"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":"f","tag":"TypeVar"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"sourceSpan":{"end":[53,48],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","start":[53,3]},"title":"apply"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Control","Apply"],"Apply"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"r","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[58,26],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","start":[57,1]},"title":"applyFn"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Control","Apply"],"Apply"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Array"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[61,21],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","start":[60,1]},"title":"applyArray"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Control","Apply"],"Apply"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Type","Proxy"],"Proxy"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[66,20],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","start":[65,1]},"title":"applyProxy"}],"comments":"The `Apply` class provides the `(<*>)` which is used to apply a function\nto an argument under a type constructor.\n\n`Apply` can be used to lift functions of two or more arguments to work on\nvalues wrapped with the type constructor `f`. It might also be understood\nin terms of the `lift2` function:\n\n```purescript\nlift2 :: forall f a b c. Apply f => (a -> b -> c) -> f a -> f b -> f c\nlift2 f a b = f <$> a <*> b\n```\n\n`(<*>)` is recovered from `lift2` as `lift2 ($)`. That is, `(<*>)` lifts\nthe function application operator `($)` to arguments wrapped with the\ntype constructor `f`.\n\nPut differently...\n```\nfoo =\n  functionTakingNArguments <$> computationProducingArg1\n                           <*> computationProducingArg2\n                           <*> ...\n                           <*> computationProducingArgN\n```\n\nInstances must satisfy the following law in addition to the `Functor`\nlaws:\n\n- Associative composition: `(<<<) <$> f <*> g <*> h = f <*> (g <*> h)`\n\nFormally, `Apply` represents a strong lax semi-monoidal endofunctor.\n","info":{"arguments":[["f",null]],"declType":"typeClass","fundeps":[],"superclasses":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"f","tag":"TypeVar"}],"constraintClass":[["Data","Functor"],"Functor"],"constraintData":null,"constraintKindArgs":[]}]},"kind":{"keyword":"class","kind":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim"],"Constraint"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[53,48],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","start":[52,1]},"title":"Apply"},{"children":[],"comments":null,"info":{"alias":[["Control","Apply"],{"Right":{"Left":{"Ident":"apply"}}}],"declType":"alias","fixity":{"associativity":"infixl","precedence":4}},"kind":null,"sourceSpan":{"end":[55,22],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","start":[55,1]},"title":"(<*>)"},{"children":[],"comments":"Combine two effectful actions, keeping only the result of the first.\n","info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"b","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"f","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"f","tag":"TypeVar"}],"constraintClass":[["Control","Apply"],"Apply"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":"f","tag":"TypeVar"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":"f","tag":"TypeVar"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":"f","tag":"TypeVar"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[69,57],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","start":[69,1]},"title":"applyFirst"},{"children":[],"comments":null,"info":{"alias":[["Control","Apply"],{"Right":{"Left":{"Ident":"applyFirst"}}}],"declType":"alias","fixity":{"associativity":"infixl","precedence":4}},"kind":null,"sourceSpan":{"end":[72,26],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","start":[72,1]},"title":"(<*)"},{"children":[],"comments":"Combine two effectful actions, keeping only the result of the second.\n","info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"b","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"f","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"f","tag":"TypeVar"}],"constraintClass":[["Control","Apply"],"Apply"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":"f","tag":"TypeVar"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":"f","tag":"TypeVar"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":"f","tag":"TypeVar"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[75,58],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","start":[75,1]},"title":"applySecond"},{"children":[],"comments":null,"info":{"alias":[["Control","Apply"],{"Right":{"Left":{"Ident":"applySecond"}}}],"declType":"alias","fixity":{"associativity":"infixl","precedence":4}},"kind":null,"sourceSpan":{"end":[78,27],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","start":[78,1]},"title":"(*>)"},{"children":[],"comments":"Lift a function of two arguments to a function which accepts and returns\nvalues wrapped with the type constructor `f`.\n\n```purescript\nlift2 add (Just 1) (Just 2) == Just 3\nlift2 add Nothing (Just 2) == Nothing\n```\n\n","info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"b","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"c","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"f","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"f","tag":"TypeVar"}],"constraintClass":[["Control","Apply"],"Apply"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"c","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},"tag":"ParensInType"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":"f","tag":"TypeVar"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":"f","tag":"TypeVar"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":"f","tag":"TypeVar"},{"annotation":[],"contents":"c","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[88,71],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","start":[88,1]},"title":"lift2"},{"children":[],"comments":"Lift a function of three arguments to a function which accepts and returns\nvalues wrapped with the type constructor `f`.\n","info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"b","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"c","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"d","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"f","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"f","tag":"TypeVar"}],"constraintClass":[["Control","Apply"],"Apply"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"c","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"d","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"},"tag":"ParensInType"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":"f","tag":"TypeVar"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":"f","tag":"TypeVar"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":"f","tag":"TypeVar"},{"annotation":[],"contents":"c","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":"f","tag":"TypeVar"},{"annotation":[],"contents":"d","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[93,85],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","start":[93,1]},"title":"lift3"},{"children":[],"comments":"Lift a function of four arguments to a function which accepts and returns\nvalues wrapped with the type constructor `f`.\n","info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"b","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"c","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"d","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"e","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"f","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"f","tag":"TypeVar"}],"constraintClass":[["Control","Apply"],"Apply"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"c","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"d","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"e","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"},"tag":"ParensInType"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":"f","tag":"TypeVar"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":"f","tag":"TypeVar"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":"f","tag":"TypeVar"},{"annotation":[],"contents":"c","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":"f","tag":"TypeVar"},{"annotation":[],"contents":"d","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":"f","tag":"TypeVar"},{"annotation":[],"contents":"e","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[98,99],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","start":[98,1]},"title":"lift4"},{"children":[],"comments":"Lift a function of five arguments to a function which accepts and returns\nvalues wrapped with the type constructor `f`.\n","info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"b","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"c","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"d","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"e","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"f","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"g","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"f","tag":"TypeVar"}],"constraintClass":[["Control","Apply"],"Apply"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"c","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"d","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"e","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"g","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"},"tag":"ParensInType"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":"f","tag":"TypeVar"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":"f","tag":"TypeVar"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":"f","tag":"TypeVar"},{"annotation":[],"contents":"c","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":"f","tag":"TypeVar"},{"annotation":[],"contents":"d","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":"f","tag":"TypeVar"},{"annotation":[],"contents":"e","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":"f","tag":"TypeVar"},{"annotation":[],"contents":"g","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[103,113],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","start":[103,1]},"title":"lift5"}],"name":"Control.Apply","reExports":[]}
diff --git a/tests/purs/publish/basic-example/output/Control.Apply/externs.json b/tests/purs/publish/basic-example/output/Control.Apply/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Control.Apply/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Control","Apply"],"efExports":[{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[78,52]},{"exportSourceImportedFrom":["Data","Functor"],"exportSourceDefinedIn":["Data","Functor"]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[78,52]},"Functor"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[78,52]},{"exportSourceImportedFrom":["Data","Functor"],"exportSourceDefinedIn":["Data","Functor"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[78,52]},{"Ident":"map"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[78,52]},{"exportSourceImportedFrom":["Data","Functor"],"exportSourceDefinedIn":["Data","Functor"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[78,52]},{"Ident":"void"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[78,52]},{"exportSourceImportedFrom":["Data","Functor"],"exportSourceDefinedIn":["Data","Functor"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[78,52]},"$>"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[78,52]},{"exportSourceImportedFrom":["Data","Functor"],"exportSourceDefinedIn":["Data","Functor"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[78,52]},"<#>"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[78,52]},{"exportSourceImportedFrom":["Data","Functor"],"exportSourceDefinedIn":["Data","Functor"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[78,52]},"<$"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[78,52]},{"exportSourceImportedFrom":["Data","Functor"],"exportSourceDefinedIn":["Data","Functor"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[78,52]},"<$>"]}]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[78,52]},"Apply"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[78,52]},{"Ident":"apply"}]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[78,52]},"<*>"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[78,52]},{"Ident":"applyFirst"}]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[78,52]},"<*"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[78,52]},{"Ident":"applySecond"}]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[78,52]},"*>"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[78,52]},{"Ident":"lift2"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[78,52]},{"Ident":"lift3"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[78,52]},{"Ident":"lift4"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[78,52]},{"Ident":"lift5"}]},{"ModuleRef":[{"start":[6,5],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[6,24]},["Data","Functor"]]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"applyFn"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"applyArray"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Data","Functor"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[9,22],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[9,35]},"Functor"]},{"ValueRef":[{"start":[9,37],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[9,40]},{"Ident":"map"}]},{"ValueRef":[{"start":[9,42],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[9,46]},{"Ident":"void"}]},{"ValueOpRef":[{"start":[9,48],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[9,52]},"$>"]},{"ValueOpRef":[{"start":[9,54],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[9,59]},"<#>"]},{"ValueOpRef":[{"start":[9,61],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[9,65]},"<$"]},{"ValueOpRef":[{"start":[9,67],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[9,72]},"<$>"]}]},"eiImportedAs":null},{"eiModule":["Data","Function"],"eiImportType":{"Explicit":[{"ValueRef":[{"start":[10,23],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[10,28]},{"Ident":"const"}]}]},"eiImportedAs":null},{"eiModule":["Control","Category"],"eiImportType":{"Explicit":[{"ValueRef":[{"start":[11,26],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[11,34]},{"Ident":"identity"}]}]},"eiImportedAs":null}],"efFixities":[{"efAssociativity":"infixl","efPrecedence":4,"efOperator":"<*>","efAlias":[["Control","Apply"],{"Left":{"Ident":"apply"}}]},{"efAssociativity":"infixl","efPrecedence":4,"efOperator":"<*","efAlias":[["Control","Apply"],{"Left":{"Ident":"applyFirst"}}]},{"efAssociativity":"infixl","efPrecedence":4,"efOperator":"*>","efAlias":[["Control","Apply"],{"Left":{"Ident":"applySecond"}}]}],"efTypeFixities":[],"efDeclarations":[{"EDType":{"edTypeName":"Apply","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[36,24],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[36,34]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[36,29],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[36,31]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[36,35],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[36,37]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"Apply","edTypeSynonymArguments":[["f",null]],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["apply",{"annotation":[{"start":[36,12],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[36,48]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[36,19],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[36,48]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[36,24],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[36,48]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,24],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[36,48]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,35],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[36,37]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[36,24],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[36,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,24],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[36,25]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[36,27],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[36,33]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,27],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[36,33]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,29],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[36,31]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[36,27],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[36,28]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[36,32],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[36,33]},[]],"tag":"TypeVar","contents":"b"}]}]}]},{"annotation":[{"start":[36,38],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[36,48]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,38],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[36,48]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,42],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[36,44]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[36,38],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[36,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,38],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[36,39]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[36,40],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[36,41]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[36,45],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[36,48]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,45],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[36,46]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[36,47],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[36,48]},[]],"tag":"TypeVar","contents":"b"}]}]}]},null]},null]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["Functor0",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Functor"],"Functor"]},{"annotation":[{"start":[35,15],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[35,16]},[]],"tag":"TypeVar","contents":"f"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]}]}}},{"EDClass":{"edClassName":"Apply","edClassTypeArguments":[["f",null]],"edClassMembers":[[{"Ident":"apply"},{"annotation":[{"start":[36,12],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[36,48]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[36,19],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[36,48]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[36,24],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[36,48]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,24],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[36,48]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,35],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[36,37]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[36,24],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[36,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,24],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[36,25]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[36,27],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[36,33]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,27],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[36,33]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,29],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[36,31]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[36,27],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[36,28]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[36,32],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[36,33]},[]],"tag":"TypeVar","contents":"b"}]}]}]},{"annotation":[{"start":[36,38],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[36,48]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,38],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[36,48]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,42],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[36,44]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[36,38],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[36,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,38],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[36,39]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[36,40],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[36,41]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[36,45],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[36,48]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,45],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[36,46]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[36,47],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[36,48]},[]],"tag":"TypeVar","contents":"b"}]}]}]},null]},null]}]],"edClassConstraints":[{"constraintAnn":[{"start":[35,7],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[35,16]},[]],"constraintClass":[["Data","Functor"],"Functor"],"constraintArgs":[{"annotation":[{"start":[35,15],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[35,16]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null}],"edFunctionalDependencies":[]}},{"EDValue":{"edValueName":{"Ident":"apply"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[36,12],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[36,48]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[36,19],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[36,48]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["Control","Apply"],"Apply"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[36,24],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[36,48]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,24],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[36,48]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,35],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[36,37]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[36,24],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[36,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,24],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[36,25]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[36,27],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[36,33]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,27],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[36,33]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,29],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[36,31]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[36,27],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[36,28]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[36,32],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[36,33]},[]],"tag":"TypeVar","contents":"b"}]}]}]},{"annotation":[{"start":[36,38],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[36,48]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,38],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[36,48]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,42],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[36,44]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[36,38],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[36,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,38],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[36,39]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[36,40],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[36,41]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[36,45],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[36,48]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,45],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[36,46]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[36,47],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[36,48]},[]],"tag":"TypeVar","contents":"b"}]}]}]}]},16]},17]},18]}}},{"EDValue":{"edValueName":{"Ident":"applyFirst"},"edValueType":{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[49,57]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[49,22],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[49,57]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[49,22],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[49,57]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[49,29],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[49,57]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[49,29],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[49,36]},[]],"constraintClass":[["Control","Apply"],"Apply"],"constraintArgs":[{"annotation":[{"start":[49,35],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[49,36]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[49,40],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[49,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,40],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[49,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,44],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[49,46]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[49,40],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[49,43]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,40],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[49,41]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[49,42],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[49,43]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[49,47],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[49,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,47],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[49,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,51],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[49,53]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[49,47],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[49,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,47],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[49,48]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[49,49],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[49,50]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[49,54],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[49,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,54],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[49,55]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[49,56],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[49,57]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]},19]},20]},21]}}},{"EDValue":{"edValueName":{"Ident":"applySecond"},"edValueType":{"annotation":[{"start":[55,16],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[55,58]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[55,23],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[55,58]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[55,23],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[55,58]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[55,30],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[55,58]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[55,30],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[55,37]},[]],"constraintClass":[["Control","Apply"],"Apply"],"constraintArgs":[{"annotation":[{"start":[55,36],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[55,37]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[55,41],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[55,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,41],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[55,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,45],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[55,47]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[55,41],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[55,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,41],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[55,42]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[55,43],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[55,44]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[55,48],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[55,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,48],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[55,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,52],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[55,54]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[55,48],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[55,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,48],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[55,49]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[55,50],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[55,51]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[55,55],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[55,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,55],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[55,56]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[55,57],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[55,58]},[]],"tag":"TypeVar","contents":"b"}]}]}]}]},25]},26]},27]}}},{"EDValue":{"edValueName":{"Ident":"lift2"},"edValueType":{"annotation":[{"start":[62,10],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[62,71]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[62,17],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[62,71]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[62,17],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[62,71]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[62,17],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[62,71]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[62,26],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[62,71]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[62,26],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[62,33]},[]],"constraintClass":[["Control","Apply"],"Apply"],"constraintArgs":[{"annotation":[{"start":[62,32],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[62,33]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[62,37],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[62,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[62,37],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[62,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[62,51],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[62,53]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[62,38],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[62,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[62,38],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[62,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[62,40],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[62,42]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[62,38],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[62,39]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[62,43],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[62,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[62,43],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[62,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[62,45],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[62,47]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[62,43],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[62,44]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[62,48],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[62,49]},[]],"tag":"TypeVar","contents":"c"}]}]}]},{"annotation":[{"start":[62,54],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[62,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[62,54],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[62,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[62,58],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[62,60]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[62,54],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[62,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[62,54],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[62,55]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[62,56],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[62,57]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[62,61],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[62,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[62,61],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[62,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[62,65],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[62,67]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[62,61],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[62,64]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[62,61],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[62,62]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[62,63],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[62,64]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[62,68],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[62,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[62,68],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[62,69]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[62,70],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[62,71]},[]],"tag":"TypeVar","contents":"c"}]}]}]}]}]},31]},32]},33]},34]}}},{"EDValue":{"edValueName":{"Ident":"lift3"},"edValueType":{"annotation":[{"start":[67,10],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[67,85]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[67,17],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[67,85]},[]],"tag":"ForAll","contents":["d",{"annotation":[{"start":[67,17],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[67,85]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[67,17],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[67,85]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[67,17],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[67,85]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[67,28],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[67,85]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[67,28],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[67,35]},[]],"constraintClass":[["Control","Apply"],"Apply"],"constraintArgs":[{"annotation":[{"start":[67,34],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[67,35]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[67,39],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[67,85]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[67,39],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[67,85]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[67,58],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[67,60]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[67,40],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[67,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[67,40],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[67,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[67,42],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[67,44]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[67,40],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[67,41]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[67,45],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[67,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[67,45],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[67,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[67,47],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[67,49]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[67,45],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[67,46]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[67,50],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[67,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[67,50],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[67,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[67,52],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[67,54]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[67,50],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[67,51]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[67,55],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[67,56]},[]],"tag":"TypeVar","contents":"d"}]}]}]}]},{"annotation":[{"start":[67,61],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[67,85]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[67,61],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[67,85]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[67,65],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[67,67]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[67,61],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[67,64]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[67,61],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[67,62]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[67,63],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[67,64]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[67,68],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[67,85]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[67,68],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[67,85]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[67,72],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[67,74]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[67,68],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[67,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[67,68],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[67,69]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[67,70],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[67,71]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[67,75],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[67,85]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[67,75],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[67,85]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[67,79],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[67,81]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[67,75],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[67,78]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[67,75],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[67,76]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[67,77],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[67,78]},[]],"tag":"TypeVar","contents":"c"}]}]},{"annotation":[{"start":[67,82],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[67,85]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[67,82],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[67,83]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[67,84],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[67,85]},[]],"tag":"TypeVar","contents":"d"}]}]}]}]}]}]},39]},40]},41]},42]},43]}}},{"EDValue":{"edValueName":{"Ident":"lift4"},"edValueType":{"annotation":[{"start":[72,10],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[72,99]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[72,17],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[72,99]},[]],"tag":"ForAll","contents":["e",{"annotation":[{"start":[72,17],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[72,99]},[]],"tag":"ForAll","contents":["d",{"annotation":[{"start":[72,17],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[72,99]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[72,17],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[72,99]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[72,17],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[72,99]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[72,30],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[72,99]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[72,30],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[72,37]},[]],"constraintClass":[["Control","Apply"],"Apply"],"constraintArgs":[{"annotation":[{"start":[72,36],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[72,37]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[72,41],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[72,99]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[72,41],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[72,99]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[72,65],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[72,67]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[72,42],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[72,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[72,42],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[72,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[72,44],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[72,46]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[72,42],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[72,43]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[72,47],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[72,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[72,47],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[72,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[72,49],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[72,51]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[72,47],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[72,48]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[72,52],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[72,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[72,52],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[72,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[72,54],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[72,56]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[72,52],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[72,53]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[72,57],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[72,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[72,57],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[72,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[72,59],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[72,61]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[72,57],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[72,58]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[72,62],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[72,63]},[]],"tag":"TypeVar","contents":"e"}]}]}]}]}]},{"annotation":[{"start":[72,68],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[72,99]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[72,68],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[72,99]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[72,72],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[72,74]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[72,68],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[72,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[72,68],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[72,69]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[72,70],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[72,71]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[72,75],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[72,99]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[72,75],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[72,99]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[72,79],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[72,81]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[72,75],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[72,78]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[72,75],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[72,76]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[72,77],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[72,78]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[72,82],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[72,99]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[72,82],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[72,99]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[72,86],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[72,88]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[72,82],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[72,85]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[72,82],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[72,83]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[72,84],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[72,85]},[]],"tag":"TypeVar","contents":"c"}]}]},{"annotation":[{"start":[72,89],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[72,99]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[72,89],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[72,99]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[72,93],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[72,95]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[72,89],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[72,92]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[72,89],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[72,90]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[72,91],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[72,92]},[]],"tag":"TypeVar","contents":"d"}]}]},{"annotation":[{"start":[72,96],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[72,99]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[72,96],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[72,97]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[72,98],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[72,99]},[]],"tag":"TypeVar","contents":"e"}]}]}]}]}]}]}]},49]},50]},51]},52]},53]},54]}}},{"EDValue":{"edValueName":{"Ident":"lift5"},"edValueType":{"annotation":[{"start":[77,10],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[77,113]},[]],"tag":"ForAll","contents":["g",{"annotation":[{"start":[77,17],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[77,113]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[77,17],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[77,113]},[]],"tag":"ForAll","contents":["e",{"annotation":[{"start":[77,17],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[77,113]},[]],"tag":"ForAll","contents":["d",{"annotation":[{"start":[77,17],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[77,113]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[77,17],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[77,113]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[77,17],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[77,113]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[77,32],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[77,113]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[77,32],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[77,39]},[]],"constraintClass":[["Control","Apply"],"Apply"],"constraintArgs":[{"annotation":[{"start":[77,38],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[77,39]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[77,43],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[77,113]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[77,43],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[77,113]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[77,72],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[77,74]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[77,44],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[77,70]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[77,44],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[77,70]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[77,46],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[77,48]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[77,44],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[77,45]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[77,49],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[77,70]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[77,49],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[77,70]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[77,51],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[77,53]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[77,49],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[77,50]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[77,54],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[77,70]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[77,54],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[77,70]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[77,56],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[77,58]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[77,54],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[77,55]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[77,59],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[77,70]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[77,59],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[77,70]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[77,61],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[77,63]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[77,59],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[77,60]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[77,64],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[77,70]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[77,64],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[77,70]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[77,66],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[77,68]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[77,64],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[77,65]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[77,69],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[77,70]},[]],"tag":"TypeVar","contents":"g"}]}]}]}]}]}]},{"annotation":[{"start":[77,75],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[77,113]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[77,75],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[77,113]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[77,79],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[77,81]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[77,75],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[77,78]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[77,75],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[77,76]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[77,77],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[77,78]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[77,82],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[77,113]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[77,82],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[77,113]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[77,86],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[77,88]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[77,82],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[77,85]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[77,82],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[77,83]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[77,84],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[77,85]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[77,89],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[77,113]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[77,89],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[77,113]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[77,93],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[77,95]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[77,89],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[77,92]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[77,89],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[77,90]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[77,91],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[77,92]},[]],"tag":"TypeVar","contents":"c"}]}]},{"annotation":[{"start":[77,96],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[77,113]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[77,96],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[77,113]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[77,100],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[77,102]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[77,96],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[77,99]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[77,96],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[77,97]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[77,98],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[77,99]},[]],"tag":"TypeVar","contents":"d"}]}]},{"annotation":[{"start":[77,103],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[77,113]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[77,103],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[77,113]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[77,107],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[77,109]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[77,103],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[77,106]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[77,103],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[77,104]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[77,105],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[77,106]},[]],"tag":"TypeVar","contents":"e"}]}]},{"annotation":[{"start":[77,110],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[77,113]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[77,110],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[77,111]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[77,112],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[77,113]},[]],"tag":"TypeVar","contents":"g"}]}]}]}]}]}]}]}]},61]},62]},63]},64]},65]},66]},67]}}},{"EDInstance":{"edInstanceClassName":[["Control","Apply"],"Apply"],"edInstanceName":{"Ident":"applyFn"},"edInstanceTypes":[{"annotation":[{"start":[40,28],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[40,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[40,28],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[40,32]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[40,33],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[40,34]},[]],"tag":"TypeVar","contents":"r"}]}],"edInstanceConstraints":[],"edInstanceChain":[[["Control","Apply"],{"Ident":"applyFn"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Apply"],"Apply"],"edInstanceName":{"Ident":"applyArray"},"edInstanceTypes":[{"annotation":[{"start":[43,30],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[43,35]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Control","Apply"],{"Ident":"applyArray"}]],"edInstanceChainIndex":0}}],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[78,52]}}
diff --git a/tests/purs/publish/basic-example/output/Control.Biapplicative/docs.json b/tests/purs/publish/basic-example/output/Control.Biapplicative/docs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Control.Biapplicative/docs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"reExports":[],"name":"Control.Biapplicative","comments":null,"declarations":[{"children":[{"comments":null,"title":"bipure","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"w"},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}]},null]},null]}},"sourceSpan":{"start":[8,3],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapplicative.purs","end":[8,40]}}],"comments":"`Biapplicative` captures type constructors of two arguments which support lifting of\nfunctions of zero or more arguments, in the sense of `Applicative`.\n","title":"Biapplicative","info":{"fundeps":[],"arguments":[["w",null]],"declType":"typeClass","superclasses":[{"constraintAnn":[],"constraintClass":[["Control","Biapply"],"Biapply"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"w"}],"constraintData":null}]},"sourceSpan":{"start":[7,1],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapplicative.purs","end":[8,40]}}]}
diff --git a/tests/purs/publish/basic-example/output/Control.Biapplicative/externs.json b/tests/purs/publish/basic-example/output/Control.Biapplicative/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Control.Biapplicative/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Control","Biapplicative"],"efExports":[{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapplicative.purs","end":[8,40]},{"Ident":"bipure"}]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapplicative.purs","end":[8,40]},"Biapplicative"]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Control","Biapply"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[3,25],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapplicative.purs","end":[3,38]},"Biapply"]}]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDValue":{"edValueName":{"Ident":"bipure"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["w",{"annotation":[{"start":[8,13],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapplicative.purs","end":[8,40]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[8,20],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapplicative.purs","end":[8,40]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["Control","Biapplicative"],"Biapplicative"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"w"}],"constraintData":null},{"annotation":[{"start":[8,25],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapplicative.purs","end":[8,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[8,25],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapplicative.purs","end":[8,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[8,27],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapplicative.purs","end":[8,29]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[8,25],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapplicative.purs","end":[8,26]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[8,30],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapplicative.purs","end":[8,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[8,30],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapplicative.purs","end":[8,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[8,32],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapplicative.purs","end":[8,34]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[8,30],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapplicative.purs","end":[8,31]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[8,35],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapplicative.purs","end":[8,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[8,35],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapplicative.purs","end":[8,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[8,35],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapplicative.purs","end":[8,36]},[]],"tag":"TypeVar","contents":"w"},{"annotation":[{"start":[8,37],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapplicative.purs","end":[8,38]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[8,39],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapplicative.purs","end":[8,40]},[]],"tag":"TypeVar","contents":"b"}]}]}]}]},0]},1]},2]}}},{"EDType":{"edTypeName":"Biapplicative","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[8,35],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapplicative.purs","end":[8,38]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[8,27],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapplicative.purs","end":[8,29]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[8,35],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapplicative.purs","end":[8,40]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[8,32],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapplicative.purs","end":[8,34]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[8,32],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapplicative.purs","end":[8,34]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"Biapplicative","edTypeSynonymArguments":[["w",null]],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["bipure",{"annotation":[{"start":[8,13],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapplicative.purs","end":[8,40]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[8,20],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapplicative.purs","end":[8,40]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[8,25],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapplicative.purs","end":[8,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[8,25],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapplicative.purs","end":[8,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[8,27],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapplicative.purs","end":[8,29]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[8,25],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapplicative.purs","end":[8,26]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[8,30],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapplicative.purs","end":[8,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[8,30],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapplicative.purs","end":[8,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[8,32],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapplicative.purs","end":[8,34]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[8,30],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapplicative.purs","end":[8,31]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[8,35],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapplicative.purs","end":[8,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[8,35],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapplicative.purs","end":[8,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[8,35],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapplicative.purs","end":[8,36]},[]],"tag":"TypeVar","contents":"w"},{"annotation":[{"start":[8,37],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapplicative.purs","end":[8,38]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[8,39],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapplicative.purs","end":[8,40]},[]],"tag":"TypeVar","contents":"b"}]}]}]},null]},null]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["Biapply0",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Control","Biapply"],"Biapply"]},{"annotation":[{"start":[7,15],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapplicative.purs","end":[7,16]},[]],"tag":"TypeVar","contents":"w"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]}]}}},{"EDClass":{"edClassName":"Biapplicative","edClassTypeArguments":[["w",null]],"edClassMembers":[[{"Ident":"bipure"},{"annotation":[{"start":[8,13],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapplicative.purs","end":[8,40]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[8,20],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapplicative.purs","end":[8,40]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[8,25],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapplicative.purs","end":[8,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[8,25],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapplicative.purs","end":[8,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[8,27],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapplicative.purs","end":[8,29]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[8,25],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapplicative.purs","end":[8,26]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[8,30],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapplicative.purs","end":[8,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[8,30],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapplicative.purs","end":[8,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[8,32],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapplicative.purs","end":[8,34]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[8,30],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapplicative.purs","end":[8,31]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[8,35],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapplicative.purs","end":[8,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[8,35],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapplicative.purs","end":[8,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[8,35],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapplicative.purs","end":[8,36]},[]],"tag":"TypeVar","contents":"w"},{"annotation":[{"start":[8,37],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapplicative.purs","end":[8,38]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[8,39],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapplicative.purs","end":[8,40]},[]],"tag":"TypeVar","contents":"b"}]}]}]},null]},null]}]],"edClassConstraints":[{"constraintAnn":[{"start":[7,7],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapplicative.purs","end":[7,16]},[]],"constraintClass":[["Control","Biapply"],"Biapply"],"constraintArgs":[{"annotation":[{"start":[7,15],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapplicative.purs","end":[7,16]},[]],"tag":"TypeVar","contents":"w"}],"constraintData":null}],"edFunctionalDependencies":[]}}],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapplicative.purs","end":[8,40]}}
diff --git a/tests/purs/publish/basic-example/output/Control.Biapply/docs.json b/tests/purs/publish/basic-example/output/Control.Biapply/docs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Control.Biapply/docs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"reExports":[],"name":"Control.Biapply","comments":null,"declarations":[{"children":[],"comments":"A convenience operator which can be used to apply the result of `bipure` in\nthe style of `Applicative`:\n\n```purescript\nbipure f g <<$>> x <<*>> y\n```\n","title":"(<<$>>)","info":{"declType":"alias","alias":[["Control","Category"],{"Right":{"Left":{"Ident":"identity"}}}],"fixity":{"associativity":"infixl","precedence":4}},"sourceSpan":{"start":[13,1],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[13,27]}},{"children":[{"comments":null,"title":"biapply","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"ForAll","contents":["d",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"w"},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}}]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"d"}]}}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"w"},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"w"},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"d"}]}]}]},null]},null]},null]},null]}},"sourceSpan":{"start":[18,3],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,67]}}],"comments":"`Biapply` captures type constructors of two arguments which support lifting of\nfunctions of one or more arguments, in the sense of `Apply`.\n","title":"Biapply","info":{"fundeps":[],"arguments":[["w",null]],"declType":"typeClass","superclasses":[{"constraintAnn":[],"constraintClass":[["Data","Bifunctor"],"Bifunctor"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"w"}],"constraintData":null}]},"sourceSpan":{"start":[17,1],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,67]}},{"children":[],"comments":null,"title":"(<<*>>)","info":{"declType":"alias","alias":[["Control","Biapply"],{"Right":{"Left":{"Ident":"biapply"}}}],"fixity":{"associativity":"infixl","precedence":4}},"sourceSpan":{"start":[20,1],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[20,26]}},{"children":[],"comments":"Keep the results of the second computation.\n","title":"biapplyFirst","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["d",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["w",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Biapply"],"Biapply"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"w"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"w"},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"w"},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"d"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"w"},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"d"}]}]}]}]},null]},null]},null]},null]},null]}},"sourceSpan":{"start":[23,1],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[23,71]}},{"children":[],"comments":null,"title":"(*>>)","info":{"declType":"alias","alias":[["Control","Biapply"],{"Right":{"Left":{"Ident":"biapplyFirst"}}}],"fixity":{"associativity":"infixl","precedence":4}},"sourceSpan":{"start":[26,1],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[26,29]}},{"children":[],"comments":"Keep the results of the first computation.\n","title":"biapplySecond","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["d",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["w",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Biapply"],"Biapply"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"w"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"w"},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"w"},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"d"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"w"},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}]}]},null]},null]},null]},null]},null]}},"sourceSpan":{"start":[29,1],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[29,72]}},{"children":[],"comments":null,"title":"(<<*)","info":{"declType":"alias","alias":[["Control","Biapply"],{"Right":{"Left":{"Ident":"biapplySecond"}}}],"fixity":{"associativity":"infixl","precedence":4}},"sourceSpan":{"start":[32,1],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[32,30]}},{"children":[],"comments":"Lift a function of two arguments.\n","title":"bilift2","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["e",{"annotation":[],"tag":"ForAll","contents":["d",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["w",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Biapply"],"Biapply"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"w"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"e"}]},{"annotation":[],"tag":"TypeVar","contents":"f"}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"w"},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"d"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"w"},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"e"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"w"},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"f"}]}]}]}]}]}]},null]},null]},null]},null]},null]},null]},null]}},"sourceSpan":{"start":[35,1],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[42,11]}},{"children":[],"comments":"Lift a function of three arguments.\n","title":"bilift3","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["h",{"annotation":[],"tag":"ForAll","contents":["g",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["e",{"annotation":[],"tag":"ForAll","contents":["d",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["w",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Biapply"],"Biapply"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"w"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"d"}]}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"e"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"f"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"g"}]},{"annotation":[],"tag":"TypeVar","contents":"h"}]}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"w"},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"e"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"w"},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"f"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"w"},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"g"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"w"},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeVar","contents":"h"}]}]}]}]}]}]}]},null]},null]},null]},null]},null]},null]},null]},null]},null]}},"sourceSpan":{"start":[46,1],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[54,11]}}]}
diff --git a/tests/purs/publish/basic-example/output/Control.Biapply/externs.json b/tests/purs/publish/basic-example/output/Control.Biapply/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Control.Biapply/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Control","Biapply"],"efExports":[{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[55,54]},{"Ident":"biapply"}]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[55,54]},"<<$>>"]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[55,54]},"Biapply"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[55,54]},"<<*>>"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[55,54]},{"Ident":"biapplyFirst"}]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[55,54]},"*>>"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[55,54]},{"Ident":"biapplySecond"}]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[55,54]},"<<*"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[55,54]},{"Ident":"bilift2"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[55,54]},{"Ident":"bilift3"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Data","Function"],"eiImportType":{"Explicit":[{"ValueRef":[{"start":[3,23],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[3,28]},{"Ident":"const"}]},{"ValueRef":[{"start":[3,30],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[3,38]},{"Ident":"identity"}]}]},"eiImportedAs":null},{"eiModule":["Data","Bifunctor"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[5,24],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[5,39]},"Bifunctor"]},{"ValueRef":[{"start":[5,41],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[5,46]},{"Ident":"bimap"}]}]},"eiImportedAs":null}],"efFixities":[{"efAssociativity":"infixl","efPrecedence":4,"efOperator":"<<$>>","efAlias":[["Control","Category"],{"Left":{"Ident":"identity"}}]},{"efAssociativity":"infixl","efPrecedence":4,"efOperator":"<<*>>","efAlias":[["Control","Biapply"],{"Left":{"Ident":"biapply"}}]},{"efAssociativity":"infixl","efPrecedence":4,"efOperator":"*>>","efAlias":[["Control","Biapply"],{"Left":{"Ident":"biapplyFirst"}}]},{"efAssociativity":"infixl","efPrecedence":4,"efOperator":"<<*","efAlias":[["Control","Biapply"],{"Left":{"Ident":"biapplySecond"}}]}],"efTypeFixities":[],"efDeclarations":[{"EDValue":{"edValueName":{"Ident":"biapply"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["w",{"annotation":[{"start":[18,14],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,67]},[]],"tag":"ForAll","contents":["d",{"annotation":[{"start":[18,21],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,67]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[18,21],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,67]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[18,21],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,67]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["Control","Biapply"],"Biapply"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"w"}],"constraintData":null},{"annotation":[{"start":[18,30],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,67]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,30],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,67]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,50],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,52]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[18,30],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,30],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,30],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,31]},[]],"tag":"TypeVar","contents":"w"},{"annotation":[{"start":[18,33],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,39]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,33],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,39]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,35],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,37]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[18,33],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,34]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[18,38],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,39]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[18,42],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,48]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,42],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,48]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,44],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,46]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[18,42],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,43]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[18,47],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,48]},[]],"tag":"TypeVar","contents":"d"}]}]}]},{"annotation":[{"start":[18,53],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,67]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,53],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,67]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,59],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,61]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[18,53],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,53],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,53],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,54]},[]],"tag":"TypeVar","contents":"w"},{"annotation":[{"start":[18,55],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,56]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[18,57],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,58]},[]],"tag":"TypeVar","contents":"c"}]}]},{"annotation":[{"start":[18,62],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,67]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,62],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,65]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,62],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,63]},[]],"tag":"TypeVar","contents":"w"},{"annotation":[{"start":[18,64],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,65]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[18,66],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,67]},[]],"tag":"TypeVar","contents":"d"}]}]}]}]},0]},1]},2]},3]},4]}}},{"EDType":{"edTypeName":"Biapply","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[18,30],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,40]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[18,35],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,37]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[18,30],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,49]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[18,44],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,46]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[18,50],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,52]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"Biapply","edTypeSynonymArguments":[["w",null]],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["biapply",{"annotation":[{"start":[18,14],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,67]},[]],"tag":"ForAll","contents":["d",{"annotation":[{"start":[18,21],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,67]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[18,21],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,67]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[18,21],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,67]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[18,30],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,67]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,30],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,67]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,50],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,52]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[18,30],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,30],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,30],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,31]},[]],"tag":"TypeVar","contents":"w"},{"annotation":[{"start":[18,33],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,39]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,33],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,39]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,35],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,37]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[18,33],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,34]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[18,38],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,39]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[18,42],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,48]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,42],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,48]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,44],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,46]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[18,42],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,43]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[18,47],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,48]},[]],"tag":"TypeVar","contents":"d"}]}]}]},{"annotation":[{"start":[18,53],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,67]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,53],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,67]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,59],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,61]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[18,53],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,53],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,53],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,54]},[]],"tag":"TypeVar","contents":"w"},{"annotation":[{"start":[18,55],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,56]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[18,57],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,58]},[]],"tag":"TypeVar","contents":"c"}]}]},{"annotation":[{"start":[18,62],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,67]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,62],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,65]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,62],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,63]},[]],"tag":"TypeVar","contents":"w"},{"annotation":[{"start":[18,64],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,65]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[18,66],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,67]},[]],"tag":"TypeVar","contents":"d"}]}]}]},null]},null]},null]},null]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["Bifunctor0",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Bifunctor"],"Bifunctor"]},{"annotation":[{"start":[17,17],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[17,18]},[]],"tag":"TypeVar","contents":"w"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]}]}}},{"EDClass":{"edClassName":"Biapply","edClassTypeArguments":[["w",null]],"edClassMembers":[[{"Ident":"biapply"},{"annotation":[{"start":[18,14],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,67]},[]],"tag":"ForAll","contents":["d",{"annotation":[{"start":[18,21],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,67]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[18,21],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,67]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[18,21],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,67]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[18,30],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,67]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,30],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,67]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,50],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,52]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[18,30],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,30],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,30],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,31]},[]],"tag":"TypeVar","contents":"w"},{"annotation":[{"start":[18,33],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,39]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,33],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,39]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,35],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,37]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[18,33],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,34]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[18,38],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,39]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[18,42],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,48]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,42],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,48]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,44],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,46]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[18,42],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,43]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[18,47],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,48]},[]],"tag":"TypeVar","contents":"d"}]}]}]},{"annotation":[{"start":[18,53],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,67]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,53],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,67]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,59],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,61]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[18,53],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,53],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,53],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,54]},[]],"tag":"TypeVar","contents":"w"},{"annotation":[{"start":[18,55],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,56]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[18,57],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,58]},[]],"tag":"TypeVar","contents":"c"}]}]},{"annotation":[{"start":[18,62],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,67]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,62],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,65]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,62],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,63]},[]],"tag":"TypeVar","contents":"w"},{"annotation":[{"start":[18,64],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,65]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[18,66],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,67]},[]],"tag":"TypeVar","contents":"d"}]}]}]},null]},null]},null]},null]}]],"edClassConstraints":[{"constraintAnn":[{"start":[17,7],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[17,18]},[]],"constraintClass":[["Data","Bifunctor"],"Bifunctor"],"constraintArgs":[{"annotation":[{"start":[17,17],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[17,18]},[]],"tag":"TypeVar","contents":"w"}],"constraintData":null}],"edFunctionalDependencies":[]}},{"EDValue":{"edValueName":{"Ident":"biapplyFirst"},"edValueType":{"annotation":[{"start":[23,17],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[23,71]},[]],"tag":"ForAll","contents":["d",{"annotation":[{"start":[23,24],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[23,71]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[23,24],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[23,71]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[23,24],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[23,71]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[23,24],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[23,71]},[]],"tag":"ForAll","contents":["w",{"annotation":[{"start":[23,35],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[23,71]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[23,35],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[23,44]},[]],"constraintClass":[["Control","Biapply"],"Biapply"],"constraintArgs":[{"annotation":[{"start":[23,43],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[23,44]},[]],"tag":"TypeVar","contents":"w"}],"constraintData":null},{"annotation":[{"start":[23,48],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[23,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[23,48],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[23,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[23,54],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[23,56]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[23,48],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[23,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[23,48],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[23,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[23,48],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[23,49]},[]],"tag":"TypeVar","contents":"w"},{"annotation":[{"start":[23,50],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[23,51]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[23,52],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[23,53]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[23,57],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[23,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[23,57],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[23,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[23,63],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[23,65]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[23,57],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[23,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[23,57],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[23,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[23,57],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[23,58]},[]],"tag":"TypeVar","contents":"w"},{"annotation":[{"start":[23,59],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[23,60]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[23,61],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[23,62]},[]],"tag":"TypeVar","contents":"d"}]}]},{"annotation":[{"start":[23,66],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[23,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[23,66],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[23,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[23,66],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[23,67]},[]],"tag":"TypeVar","contents":"w"},{"annotation":[{"start":[23,68],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[23,69]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[23,70],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[23,71]},[]],"tag":"TypeVar","contents":"d"}]}]}]}]},5]},6]},7]},8]},9]}}},{"EDValue":{"edValueName":{"Ident":"biapplySecond"},"edValueType":{"annotation":[{"start":[29,18],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[29,72]},[]],"tag":"ForAll","contents":["d",{"annotation":[{"start":[29,25],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[29,72]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[29,25],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[29,72]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[29,25],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[29,72]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[29,25],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[29,72]},[]],"tag":"ForAll","contents":["w",{"annotation":[{"start":[29,36],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[29,72]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[29,36],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[29,45]},[]],"constraintClass":[["Control","Biapply"],"Biapply"],"constraintArgs":[{"annotation":[{"start":[29,44],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[29,45]},[]],"tag":"TypeVar","contents":"w"}],"constraintData":null},{"annotation":[{"start":[29,49],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[29,72]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[29,49],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[29,72]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[29,55],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[29,57]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[29,49],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[29,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[29,49],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[29,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[29,49],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[29,50]},[]],"tag":"TypeVar","contents":"w"},{"annotation":[{"start":[29,51],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[29,52]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[29,53],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[29,54]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[29,58],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[29,72]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[29,58],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[29,72]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[29,64],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[29,66]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[29,58],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[29,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[29,58],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[29,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[29,58],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[29,59]},[]],"tag":"TypeVar","contents":"w"},{"annotation":[{"start":[29,60],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[29,61]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[29,62],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[29,63]},[]],"tag":"TypeVar","contents":"d"}]}]},{"annotation":[{"start":[29,67],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[29,72]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[29,67],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[29,70]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[29,67],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[29,68]},[]],"tag":"TypeVar","contents":"w"},{"annotation":[{"start":[29,69],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[29,70]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[29,71],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[29,72]},[]],"tag":"TypeVar","contents":"b"}]}]}]}]},15]},16]},17]},18]},19]}}},{"EDValue":{"edValueName":{"Ident":"bilift2"},"edValueType":{"annotation":[{"start":[36,6],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[42,11]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[36,13],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[42,11]},[]],"tag":"ForAll","contents":["e",{"annotation":[{"start":[36,13],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[42,11]},[]],"tag":"ForAll","contents":["d",{"annotation":[{"start":[36,13],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[42,11]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[36,13],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[42,11]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[36,13],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[42,11]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[36,13],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[42,11]},[]],"tag":"ForAll","contents":["w",{"annotation":[{"start":[37,6],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[42,11]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[37,6],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[37,15]},[]],"constraintClass":[["Control","Biapply"],"Biapply"],"constraintArgs":[{"annotation":[{"start":[37,14],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[37,15]},[]],"tag":"TypeVar","contents":"w"}],"constraintData":null},{"annotation":[{"start":[38,6],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[42,11]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[38,6],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[42,11]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[39,3],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[39,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[38,7],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[38,18]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[38,7],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[38,18]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[38,9],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[38,11]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[38,7],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[38,8]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[38,12],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[38,18]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[38,12],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[38,18]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[38,14],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[38,16]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[38,12],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[38,13]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[38,17],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[38,18]},[]],"tag":"TypeVar","contents":"c"}]}]}]},{"annotation":[{"start":[39,6],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[42,11]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[39,6],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[42,11]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[40,3],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[40,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[39,7],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[39,18]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[39,7],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[39,18]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[39,9],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[39,11]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[39,7],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[39,8]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[39,12],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[39,18]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[39,12],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[39,18]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[39,14],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[39,16]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[39,12],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[39,13]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[39,17],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[39,18]},[]],"tag":"TypeVar","contents":"f"}]}]}]},{"annotation":[{"start":[40,6],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[42,11]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[40,6],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[42,11]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[41,3],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[41,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[40,6],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[40,11]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[40,6],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[40,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[40,6],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[40,7]},[]],"tag":"TypeVar","contents":"w"},{"annotation":[{"start":[40,8],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[40,9]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[40,10],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[40,11]},[]],"tag":"TypeVar","contents":"d"}]}]},{"annotation":[{"start":[41,6],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[42,11]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[41,6],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[42,11]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[42,3],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[42,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[41,6],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[41,11]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[41,6],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[41,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[41,6],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[41,7]},[]],"tag":"TypeVar","contents":"w"},{"annotation":[{"start":[41,8],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[41,9]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[41,10],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[41,11]},[]],"tag":"TypeVar","contents":"e"}]}]},{"annotation":[{"start":[42,6],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[42,11]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[42,6],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[42,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[42,6],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[42,7]},[]],"tag":"TypeVar","contents":"w"},{"annotation":[{"start":[42,8],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[42,9]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[42,10],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[42,11]},[]],"tag":"TypeVar","contents":"f"}]}]}]}]}]}]},25]},26]},27]},28]},29]},30]},31]}}},{"EDValue":{"edValueName":{"Ident":"bilift3"},"edValueType":{"annotation":[{"start":[47,6],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[54,11]},[]],"tag":"ForAll","contents":["h",{"annotation":[{"start":[47,13],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[54,11]},[]],"tag":"ForAll","contents":["g",{"annotation":[{"start":[47,13],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[54,11]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[47,13],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[54,11]},[]],"tag":"ForAll","contents":["e",{"annotation":[{"start":[47,13],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[54,11]},[]],"tag":"ForAll","contents":["d",{"annotation":[{"start":[47,13],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[54,11]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[47,13],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[54,11]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[47,13],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[54,11]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[47,13],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[54,11]},[]],"tag":"ForAll","contents":["w",{"annotation":[{"start":[48,6],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[54,11]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[48,6],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[48,15]},[]],"constraintClass":[["Control","Biapply"],"Biapply"],"constraintArgs":[{"annotation":[{"start":[48,14],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[48,15]},[]],"tag":"TypeVar","contents":"w"}],"constraintData":null},{"annotation":[{"start":[49,6],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[54,11]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,6],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[54,11]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,3],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[50,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[49,7],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[49,23]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,7],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[49,23]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,9],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[49,11]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[49,7],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[49,8]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[49,12],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[49,23]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,12],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[49,23]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,14],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[49,16]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[49,12],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[49,13]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[49,17],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[49,23]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,17],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[49,23]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,19],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[49,21]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[49,17],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[49,18]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[49,22],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[49,23]},[]],"tag":"TypeVar","contents":"d"}]}]}]}]},{"annotation":[{"start":[50,6],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[54,11]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,6],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[54,11]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,3],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[51,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[50,7],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[50,23]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,7],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[50,23]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,9],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[50,11]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[50,7],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[50,8]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[50,12],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[50,23]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,12],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[50,23]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,14],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[50,16]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[50,12],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[50,13]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[50,23]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[50,23]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,19],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[50,21]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[50,18]},[]],"tag":"TypeVar","contents":"g"}]},{"annotation":[{"start":[50,22],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[50,23]},[]],"tag":"TypeVar","contents":"h"}]}]}]}]},{"annotation":[{"start":[51,6],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[54,11]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,6],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[54,11]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,3],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[52,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[51,6],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[51,11]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,6],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[51,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,6],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[51,7]},[]],"tag":"TypeVar","contents":"w"},{"annotation":[{"start":[51,8],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[51,9]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[51,10],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[51,11]},[]],"tag":"TypeVar","contents":"e"}]}]},{"annotation":[{"start":[52,6],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[54,11]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,6],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[54,11]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,3],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[53,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[52,6],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[52,11]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,6],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[52,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,6],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[52,7]},[]],"tag":"TypeVar","contents":"w"},{"annotation":[{"start":[52,8],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[52,9]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[52,10],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[52,11]},[]],"tag":"TypeVar","contents":"f"}]}]},{"annotation":[{"start":[53,6],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[54,11]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,6],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[54,11]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[54,3],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[54,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[53,6],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[53,11]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,6],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[53,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,6],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[53,7]},[]],"tag":"TypeVar","contents":"w"},{"annotation":[{"start":[53,8],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[53,9]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[53,10],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[53,11]},[]],"tag":"TypeVar","contents":"g"}]}]},{"annotation":[{"start":[54,6],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[54,11]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[54,6],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[54,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[54,6],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[54,7]},[]],"tag":"TypeVar","contents":"w"},{"annotation":[{"start":[54,8],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[54,9]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[54,10],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[54,11]},[]],"tag":"TypeVar","contents":"h"}]}]}]}]}]}]}]},39]},40]},41]},42]},43]},44]},45]},46]},47]}}}],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[55,54]}}
diff --git a/tests/purs/publish/basic-example/output/Control.Bind/docs.json b/tests/purs/publish/basic-example/output/Control.Bind/docs.json
--- a/tests/purs/publish/basic-example/output/Control.Bind/docs.json
+++ b/tests/purs/publish/basic-example/output/Control.Bind/docs.json
@@ -1,1 +1,1 @@
-{"reExports":[],"name":"Control.Bind","comments":null,"declarations":[{"children":[{"comments":null,"title":"bind","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}]},null]},null]}},"sourceSpan":{"start":[49,3],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[49,47]}},{"comments":null,"title":"bindFn","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Bind"],"Bind"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}]}},"sourceSpan":{"start":[63,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[64,25]}},{"comments":null,"title":"bindArray","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Bind"],"Bind"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]}]}},"sourceSpan":{"start":[66,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[67,19]}}],"comments":"The `Bind` type class extends the [`Apply`](#apply) type class with a\n\"bind\" operation `(>>=)` which composes computations in sequence, using\nthe return value of one computation to determine the next computation.\n\nThe `>>=` operator can also be expressed using `do` notation, as follows:\n\n```purescript\nx >>= f = do y <- x\n             f y\n```\n\nwhere the function argument of `f` is given the name `y`.\n\nInstances must satisfy the following law in addition to the `Apply`\nlaws:\n\n- Associativity: `(x >>= f) >>= g = x >>= (\\k -> f k >>= g)`\n\nAssociativity tells us that we can regroup operations which use `do`\nnotation so that we can unambiguously write, for example:\n\n```purescript\ndo x <- m1\n   y <- m2 x\n   m3 x y\n```\n","title":"Bind","info":{"fundeps":[],"arguments":[["m",null]],"declType":"typeClass","superclasses":[{"constraintAnn":[],"constraintClass":[["Control","Apply"],"Apply"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null}]},"sourceSpan":{"start":[48,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[49,47]}},{"children":[],"comments":null,"title":"(>>=)","info":{"declType":"alias","alias":[["Control","Bind"],{"Right":{"Left":{"Ident":"bind"}}}],"fixity":{"associativity":"infixl","precedence":1}},"sourceSpan":{"start":[51,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[51,21]}},{"children":[],"comments":"`bindFlipped` is `bind` with its arguments reversed. For example:\n\n```purescript\nprint =<< random\n```\n","title":"bindFlipped","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Bind"],"Bind"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}]}]},null]},null]},null]}},"sourceSpan":{"start":[58,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[58,64]}},{"children":[],"comments":null,"title":"(=<<)","info":{"declType":"alias","alias":[["Control","Bind"],{"Right":{"Left":{"Ident":"bindFlipped"}}}],"fixity":{"associativity":"infixr","precedence":1}},"sourceSpan":{"start":[61,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[61,28]}},{"children":[{"comments":null,"title":"discard","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Bind"],"Bind"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}]}]},null]},null]}},"sourceSpan":{"start":[77,3],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,60]}},{"comments":null,"title":"discardUnit","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Bind"],"Discard"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}},"sourceSpan":{"start":[79,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[80,17]}}],"comments":"A class for types whose values can safely be discarded\nin a `do` notation block.\n\nAn example is the `Unit` type, since there is only one\npossible value which can be returned.\n","title":"Discard","info":{"fundeps":[],"arguments":[["a",null]],"declType":"typeClass","superclasses":[]},"sourceSpan":{"start":[76,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,60]}},{"children":[],"comments":"Collapse two applications of a monadic type constructor into one.\n","title":"join","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Bind"],"Bind"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]},null]},null]}},"sourceSpan":{"start":[83,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[83,45]}},{"children":[],"comments":"Forwards Kleisli composition.\n\nFor example:\n\n```purescript\nimport Data.Array (head, tail)\n\nthird = tail >=> tail >=> head\n```\n","title":"composeKleisli","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Bind"],"Bind"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"c"}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"c"}]}]}]}]}]},null]},null]},null]},null]}},"sourceSpan":{"start":[95,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[95,81]}},{"children":[],"comments":null,"title":"(>=>)","info":{"declType":"alias","alias":[["Control","Bind"],{"Right":{"Left":{"Ident":"composeKleisli"}}}],"fixity":{"associativity":"infixr","precedence":1}},"sourceSpan":{"start":[98,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[98,31]}},{"children":[],"comments":"Backwards Kleisli composition.\n","title":"composeKleisliFlipped","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Bind"],"Bind"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"c"}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"c"}]}]}]}]}]},null]},null]},null]},null]}},"sourceSpan":{"start":[101,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[101,88]}},{"children":[],"comments":null,"title":"(<=<)","info":{"declType":"alias","alias":[["Control","Bind"],{"Right":{"Left":{"Ident":"composeKleisliFlipped"}}}],"fixity":{"associativity":"infixr","precedence":1}},"sourceSpan":{"start":[104,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[104,38]}},{"children":[],"comments":"Execute a monadic action if a condition holds.\n\nFor example:\n\n```purescript\nmain = ifM ((< 0.5) <$> random)\n         (trace \"Heads\")\n         (trace \"Tails\")\n```\n","title":"ifM","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Bind"],"Bind"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]}]}]},null]},null]}},"sourceSpan":{"start":[115,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[115,60]}}]}
+{"comments":null,"declarations":[{"children":[{"comments":null,"info":{"declType":"typeClassMember","type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"b","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":"m","tag":"TypeVar"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":"m","tag":"TypeVar"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},"tag":"ParensInType"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":"m","tag":"TypeVar"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"sourceSpan":{"end":[57,47],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","start":[57,3]},"title":"bind"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Control","Bind"],"Bind"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"r","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[72,25],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","start":[71,1]},"title":"bindFn"},{"comments":"The `bind`/`>>=` function for `Array` works by applying a function to\neach element in the array, and flattening the results into a single,\nnew array.\n\nArray's `bind`/`>>=` works like a nested for loop. Each `bind` adds\nanother level of nesting in the loop. For example:\n```\nfoo :: Array String\nfoo =\n  [\"a\", \"b\"] >>= \\eachElementInArray1 ->\n    [\"c\", \"d\"] >>= \\eachElementInArray2\n      pure (eachElementInArray1 <> eachElementInArray2)\n\n-- In other words...\nfoo\n-- ... is the same as...\n[ (\"a\" <> \"c\"), (\"a\" <> \"d\"), (\"b\" <> \"c\"), (\"b\" <> \"d\") ]\n-- which simplifies to...\n[ \"ac\", \"ad\", \"bc\", \"bd\" ]\n```\n","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Control","Bind"],"Bind"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Array"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[95,19],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","start":[94,1]},"title":"bindArray"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Control","Bind"],"Bind"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Type","Proxy"],"Proxy"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[100,19],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","start":[99,1]},"title":"bindProxy"}],"comments":"The `Bind` type class extends the [`Apply`](#apply) type class with a\n\"bind\" operation `(>>=)` which composes computations in sequence, using\nthe return value of one computation to determine the next computation.\n\nThe `>>=` operator can also be expressed using `do` notation, as follows:\n\n```purescript\nx >>= f = do y <- x\n             f y\n```\n\nwhere the function argument of `f` is given the name `y`.\n\nInstances must satisfy the following laws in addition to the `Apply`\nlaws:\n\n- Associativity: `(x >>= f) >>= g = x >>= (\\k -> f k >>= g)`\n- Apply Superclass: `apply f x = f >>= \\f’ -> map f’ x`\n\nAssociativity tells us that we can regroup operations which use `do`\nnotation so that we can unambiguously write, for example:\n\n```purescript\ndo x <- m1\n   y <- m2 x\n   m3 x y\n```\n","info":{"arguments":[["m",null]],"declType":"typeClass","fundeps":[],"superclasses":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"m","tag":"TypeVar"}],"constraintClass":[["Control","Apply"],"Apply"],"constraintData":null,"constraintKindArgs":[]}]},"kind":{"keyword":"class","kind":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim"],"Constraint"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[57,47],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","start":[56,1]},"title":"Bind"},{"children":[],"comments":null,"info":{"alias":[["Control","Bind"],{"Right":{"Left":{"Ident":"bind"}}}],"declType":"alias","fixity":{"associativity":"infixl","precedence":1}},"kind":null,"sourceSpan":{"end":[59,21],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","start":[59,1]},"title":"(>>=)"},{"children":[],"comments":"`bindFlipped` is `bind` with its arguments reversed. For example:\n\n```purescript\nprint =<< random\n```\n","info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"m","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"b","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"m","tag":"TypeVar"}],"constraintClass":[["Control","Bind"],"Bind"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":"m","tag":"TypeVar"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},"tag":"ParensInType"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":"m","tag":"TypeVar"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":"m","tag":"TypeVar"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[66,64],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","start":[66,1]},"title":"bindFlipped"},{"children":[],"comments":null,"info":{"alias":[["Control","Bind"],{"Right":{"Left":{"Ident":"bindFlipped"}}}],"declType":"alias","fixity":{"associativity":"infixr","precedence":1}},"kind":null,"sourceSpan":{"end":[69,28],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","start":[69,1]},"title":"(=<<)"},{"children":[{"comments":null,"info":{"declType":"typeClassMember","type":{"annotation":[],"contents":{"identifier":"f","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"b","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"f","tag":"TypeVar"}],"constraintClass":[["Control","Bind"],"Bind"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":"f","tag":"TypeVar"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":"f","tag":"TypeVar"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},"tag":"ParensInType"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":"f","tag":"TypeVar"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"sourceSpan":{"end":[108,60],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","start":[108,3]},"title":"discard"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Control","Bind"],"Discard"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Unit"],"Unit"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[111,17],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","start":[110,1]},"title":"discardUnit"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Control","Bind"],"Discard"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Type","Proxy"],"Proxy"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[114,17],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","start":[113,1]},"title":"discardProxy"}],"comments":"A class for types whose values can safely be discarded\nin a `do` notation block.\n\nAn example is the `Unit` type, since there is only one\npossible value which can be returned.\n","info":{"arguments":[["a",null]],"declType":"typeClass","fundeps":[],"superclasses":[]},"kind":null,"sourceSpan":{"end":[108,60],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","start":[107,1]},"title":"Discard"},{"children":[],"comments":"Collapse two applications of a monadic type constructor into one.\n","info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"m","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"m","tag":"TypeVar"}],"constraintClass":[["Control","Bind"],"Bind"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":"m","tag":"TypeVar"},{"annotation":[],"contents":{"annotation":[],"contents":[{"annotation":[],"contents":"m","tag":"TypeVar"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},"tag":"ParensInType"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":"m","tag":"TypeVar"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[117,45],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","start":[117,1]},"title":"join"},{"children":[],"comments":"Forwards Kleisli composition.\n\nFor example:\n\n```purescript\nimport Data.Array (head, tail)\n\nthird = tail >=> tail >=> head\n```\n","info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"b","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"c","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"m","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"m","tag":"TypeVar"}],"constraintClass":[["Control","Bind"],"Bind"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":"m","tag":"TypeVar"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},"tag":"ParensInType"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":"m","tag":"TypeVar"},{"annotation":[],"contents":"c","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},"tag":"ParensInType"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":"m","tag":"TypeVar"},{"annotation":[],"contents":"c","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[129,81],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","start":[129,1]},"title":"composeKleisli"},{"children":[],"comments":null,"info":{"alias":[["Control","Bind"],{"Right":{"Left":{"Ident":"composeKleisli"}}}],"declType":"alias","fixity":{"associativity":"infixr","precedence":1}},"kind":null,"sourceSpan":{"end":[132,31],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","start":[132,1]},"title":"(>=>)"},{"children":[],"comments":"Backwards Kleisli composition.\n","info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"b","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"c","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"m","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"m","tag":"TypeVar"}],"constraintClass":[["Control","Bind"],"Bind"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":"m","tag":"TypeVar"},{"annotation":[],"contents":"c","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},"tag":"ParensInType"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":"m","tag":"TypeVar"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},"tag":"ParensInType"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":"m","tag":"TypeVar"},{"annotation":[],"contents":"c","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[135,88],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","start":[135,1]},"title":"composeKleisliFlipped"},{"children":[],"comments":null,"info":{"alias":[["Control","Bind"],{"Right":{"Left":{"Ident":"composeKleisliFlipped"}}}],"declType":"alias","fixity":{"associativity":"infixr","precedence":1}},"kind":null,"sourceSpan":{"end":[138,38],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","start":[138,1]},"title":"(<=<)"},{"children":[],"comments":"Execute a monadic action if a condition holds.\n\nFor example:\n\n```purescript\nmain = ifM ((< 0.5) <$> random)\n         (trace \"Heads\")\n         (trace \"Tails\")\n```\n","info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"m","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"m","tag":"TypeVar"}],"constraintClass":[["Control","Bind"],"Bind"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":"m","tag":"TypeVar"},{"annotation":[],"contents":[["Prim"],"Boolean"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":"m","tag":"TypeVar"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":"m","tag":"TypeVar"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":"m","tag":"TypeVar"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[149,60],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","start":[149,1]},"title":"ifM"}],"name":"Control.Bind","reExports":[]}
diff --git a/tests/purs/publish/basic-example/output/Control.Bind/externs.json b/tests/purs/publish/basic-example/output/Control.Bind/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Control.Bind/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Control","Bind"],"efExports":[{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[116,57]},{"exportSourceImportedFrom":["Control","Applicative"],"exportSourceDefinedIn":["Control","Applicative"]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[116,57]},"Applicative"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[116,57]},{"exportSourceImportedFrom":["Control","Apply"],"exportSourceDefinedIn":["Control","Apply"]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[116,57]},"Apply"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[116,57]},{"exportSourceImportedFrom":["Data","Functor"],"exportSourceDefinedIn":["Data","Functor"]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[116,57]},"Functor"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[116,57]},{"exportSourceImportedFrom":["Control","Apply"],"exportSourceDefinedIn":["Control","Apply"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[116,57]},{"Ident":"apply"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[116,57]},{"exportSourceImportedFrom":["Control","Applicative"],"exportSourceDefinedIn":["Control","Applicative"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[116,57]},{"Ident":"liftA1"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[116,57]},{"exportSourceImportedFrom":["Data","Functor"],"exportSourceDefinedIn":["Data","Functor"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[116,57]},{"Ident":"map"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[116,57]},{"exportSourceImportedFrom":["Control","Applicative"],"exportSourceDefinedIn":["Control","Applicative"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[116,57]},{"Ident":"pure"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[116,57]},{"exportSourceImportedFrom":["Control","Applicative"],"exportSourceDefinedIn":["Control","Applicative"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[116,57]},{"Ident":"unless"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[116,57]},{"exportSourceImportedFrom":["Data","Functor"],"exportSourceDefinedIn":["Data","Functor"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[116,57]},{"Ident":"void"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[116,57]},{"exportSourceImportedFrom":["Control","Applicative"],"exportSourceDefinedIn":["Control","Applicative"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[116,57]},{"Ident":"when"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[116,57]},{"exportSourceImportedFrom":["Data","Functor"],"exportSourceDefinedIn":["Data","Functor"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[116,57]},"$>"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[116,57]},{"exportSourceImportedFrom":["Control","Apply"],"exportSourceDefinedIn":["Control","Apply"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[116,57]},"*>"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[116,57]},{"exportSourceImportedFrom":["Data","Functor"],"exportSourceDefinedIn":["Data","Functor"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[116,57]},"<#>"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[116,57]},{"exportSourceImportedFrom":["Data","Functor"],"exportSourceDefinedIn":["Data","Functor"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[116,57]},"<$"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[116,57]},{"exportSourceImportedFrom":["Data","Functor"],"exportSourceDefinedIn":["Data","Functor"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[116,57]},"<$>"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[116,57]},{"exportSourceImportedFrom":["Control","Apply"],"exportSourceDefinedIn":["Control","Apply"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[116,57]},"<*"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[116,57]},{"exportSourceImportedFrom":["Control","Apply"],"exportSourceDefinedIn":["Control","Apply"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[116,57]},"<*>"]}]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[116,57]},"Bind"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[116,57]},{"Ident":"bind"}]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[116,57]},">>="]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[116,57]},{"Ident":"bindFlipped"}]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[116,57]},"=<<"]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[116,57]},"Discard"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[116,57]},{"Ident":"discard"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[116,57]},{"Ident":"join"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[116,57]},{"Ident":"composeKleisli"}]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[116,57]},">=>"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[116,57]},{"Ident":"composeKleisliFlipped"}]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[116,57]},"<=<"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[116,57]},{"Ident":"ifM"}]},{"ModuleRef":[{"start":[9,5],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[9,24]},["Data","Functor"]]},{"ModuleRef":[{"start":[10,5],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[10,25]},["Control","Apply"]]},{"ModuleRef":[{"start":[11,5],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[11,31]},["Control","Applicative"]]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"bindFn"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"bindArray"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"discardUnit"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Control","Applicative"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[14,29],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[14,46]},"Applicative"]},{"ValueRef":[{"start":[14,48],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[14,54]},{"Ident":"liftA1"}]},{"ValueRef":[{"start":[14,56],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[14,60]},{"Ident":"pure"}]},{"ValueRef":[{"start":[14,62],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[14,68]},{"Ident":"unless"}]},{"ValueRef":[{"start":[14,70],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[14,74]},{"Ident":"when"}]}]},"eiImportedAs":null},{"eiModule":["Control","Apply"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[15,23],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[15,34]},"Apply"]},{"ValueRef":[{"start":[15,36],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[15,41]},{"Ident":"apply"}]},{"ValueOpRef":[{"start":[15,43],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[15,47]},"*>"]},{"ValueOpRef":[{"start":[15,49],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[15,53]},"<*"]},{"ValueOpRef":[{"start":[15,55],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[15,60]},"<*>"]}]},"eiImportedAs":null},{"eiModule":["Control","Category"],"eiImportType":{"Explicit":[{"ValueRef":[{"start":[16,26],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[16,34]},{"Ident":"identity"}]}]},"eiImportedAs":null},{"eiModule":["Data","Function"],"eiImportType":{"Explicit":[{"ValueRef":[{"start":[18,23],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[18,27]},{"Ident":"flip"}]}]},"eiImportedAs":null},{"eiModule":["Data","Functor"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[19,22],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[19,35]},"Functor"]},{"ValueRef":[{"start":[19,37],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[19,40]},{"Ident":"map"}]},{"ValueRef":[{"start":[19,42],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[19,46]},{"Ident":"void"}]},{"ValueOpRef":[{"start":[19,48],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[19,52]},"$>"]},{"ValueOpRef":[{"start":[19,54],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[19,59]},"<#>"]},{"ValueOpRef":[{"start":[19,61],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[19,65]},"<$"]},{"ValueOpRef":[{"start":[19,67],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[19,72]},"<$>"]}]},"eiImportedAs":null},{"eiModule":["Data","Unit"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[20,19],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[20,23]},"Unit",[]]}]},"eiImportedAs":null}],"efFixities":[{"efAssociativity":"infixl","efPrecedence":1,"efOperator":">>=","efAlias":[["Control","Bind"],{"Left":{"Ident":"bind"}}]},{"efAssociativity":"infixr","efPrecedence":1,"efOperator":"=<<","efAlias":[["Control","Bind"],{"Left":{"Ident":"bindFlipped"}}]},{"efAssociativity":"infixr","efPrecedence":1,"efOperator":">=>","efAlias":[["Control","Bind"],{"Left":{"Ident":"composeKleisli"}}]},{"efAssociativity":"infixr","efPrecedence":1,"efOperator":"<=<","efAlias":[["Control","Bind"],{"Left":{"Ident":"composeKleisliFlipped"}}]}],"efTypeFixities":[],"efDeclarations":[{"EDType":{"edTypeName":"Bind","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[49,23],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[49,26]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[49,33],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[49,35]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[49,27],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[49,29]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"Bind","edTypeSynonymArguments":[["m",null]],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["bind",{"annotation":[{"start":[49,11],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[49,47]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[49,18],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[49,47]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[49,23],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[49,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,23],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[49,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,27],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[49,29]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[49,23],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[49,26]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,23],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[49,24]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[49,25],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[49,26]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[49,30],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[49,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,30],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[49,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,41],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[49,43]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[49,31],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[49,39]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,31],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[49,39]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,33],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[49,35]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[49,31],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[49,32]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[49,36],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[49,39]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,36],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[49,37]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[49,38],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[49,39]},[]],"tag":"TypeVar","contents":"b"}]}]}]},{"annotation":[{"start":[49,44],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[49,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,44],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[49,45]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[49,46],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[49,47]},[]],"tag":"TypeVar","contents":"b"}]}]}]},null]},null]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["Apply0",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Control","Apply"],"Apply"]},{"annotation":[{"start":[48,13],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[48,14]},[]],"tag":"TypeVar","contents":"m"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]}]}}},{"EDClass":{"edClassName":"Bind","edClassTypeArguments":[["m",null]],"edClassMembers":[[{"Ident":"bind"},{"annotation":[{"start":[49,11],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[49,47]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[49,18],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[49,47]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[49,23],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[49,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,23],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[49,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,27],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[49,29]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[49,23],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[49,26]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,23],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[49,24]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[49,25],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[49,26]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[49,30],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[49,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,30],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[49,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,41],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[49,43]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[49,31],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[49,39]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,31],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[49,39]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,33],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[49,35]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[49,31],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[49,32]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[49,36],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[49,39]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,36],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[49,37]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[49,38],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[49,39]},[]],"tag":"TypeVar","contents":"b"}]}]}]},{"annotation":[{"start":[49,44],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[49,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,44],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[49,45]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[49,46],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[49,47]},[]],"tag":"TypeVar","contents":"b"}]}]}]},null]},null]}]],"edClassConstraints":[{"constraintAnn":[{"start":[48,7],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[48,14]},[]],"constraintClass":[["Control","Apply"],"Apply"],"constraintArgs":[{"annotation":[{"start":[48,13],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[48,14]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null}],"edFunctionalDependencies":[]}},{"EDValue":{"edValueName":{"Ident":"bind"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[49,11],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[49,47]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[49,18],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[49,47]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["Control","Bind"],"Bind"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[49,23],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[49,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,23],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[49,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,27],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[49,29]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[49,23],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[49,26]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,23],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[49,24]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[49,25],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[49,26]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[49,30],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[49,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,30],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[49,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,41],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[49,43]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[49,31],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[49,39]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,31],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[49,39]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,33],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[49,35]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[49,31],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[49,32]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[49,36],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[49,39]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,36],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[49,37]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[49,38],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[49,39]},[]],"tag":"TypeVar","contents":"b"}]}]}]},{"annotation":[{"start":[49,44],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[49,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,44],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[49,45]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[49,46],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[49,47]},[]],"tag":"TypeVar","contents":"b"}]}]}]}]},23]},24]},25]}}},{"EDValue":{"edValueName":{"Ident":"bindFlipped"},"edValueType":{"annotation":[{"start":[58,16],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[58,64]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[58,23],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[58,64]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[58,23],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[58,64]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[58,30],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[58,64]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[58,30],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[58,36]},[]],"constraintClass":[["Control","Bind"],"Bind"],"constraintArgs":[{"annotation":[{"start":[58,35],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[58,36]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[58,40],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[58,64]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[58,40],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[58,64]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[58,51],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[58,53]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[58,41],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[58,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[58,41],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[58,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[58,43],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[58,45]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[58,41],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[58,42]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[58,46],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[58,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[58,46],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[58,47]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[58,48],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[58,49]},[]],"tag":"TypeVar","contents":"b"}]}]}]},{"annotation":[{"start":[58,54],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[58,64]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[58,54],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[58,64]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[58,58],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[58,60]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[58,54],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[58,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[58,54],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[58,55]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[58,56],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[58,57]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[58,61],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[58,64]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[58,61],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[58,62]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[58,63],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[58,64]},[]],"tag":"TypeVar","contents":"b"}]}]}]}]},26]},27]},28]}}},{"EDType":{"edTypeName":"Discard","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[77,26],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,32]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"Discard","edTypeSynonymArguments":[["a",null]],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["discard",{"annotation":[{"start":[77,14],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,60]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[77,21],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,60]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[77,26],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,60]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[77,26],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,32]},[]],"constraintClass":[["Control","Bind"],"Bind"],"constraintArgs":[{"annotation":[{"start":[77,31],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,32]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[77,36],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[77,36],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[77,40],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,42]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[77,36],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,39]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[77,36],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,37]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[77,38],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,39]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[77,43],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[77,43],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[77,54],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,56]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[77,44],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[77,44],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[77,46],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,48]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[77,44],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,45]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[77,49],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[77,49],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,50]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[77,51],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,52]},[]],"tag":"TypeVar","contents":"b"}]}]}]},{"annotation":[{"start":[77,57],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[77,57],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,58]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[77,59],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,60]},[]],"tag":"TypeVar","contents":"b"}]}]}]}]},null]},null]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]}}},{"EDClass":{"edClassName":"Discard","edClassTypeArguments":[["a",null]],"edClassMembers":[[{"Ident":"discard"},{"annotation":[{"start":[77,14],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,60]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[77,21],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,60]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[77,26],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,60]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[77,26],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,32]},[]],"constraintClass":[["Control","Bind"],"Bind"],"constraintArgs":[{"annotation":[{"start":[77,31],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,32]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[77,36],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[77,36],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[77,40],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,42]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[77,36],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,39]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[77,36],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,37]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[77,38],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,39]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[77,43],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[77,43],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[77,54],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,56]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[77,44],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[77,44],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[77,46],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,48]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[77,44],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,45]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[77,49],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[77,49],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,50]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[77,51],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,52]},[]],"tag":"TypeVar","contents":"b"}]}]}]},{"annotation":[{"start":[77,57],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[77,57],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,58]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[77,59],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,60]},[]],"tag":"TypeVar","contents":"b"}]}]}]}]},null]},null]}]],"edClassConstraints":[],"edFunctionalDependencies":[]}},{"EDValue":{"edValueName":{"Ident":"discard"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[77,14],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,60]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[77,21],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,60]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["Control","Bind"],"Discard"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[77,26],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,60]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[77,26],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,32]},[]],"constraintClass":[["Control","Bind"],"Bind"],"constraintArgs":[{"annotation":[{"start":[77,31],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,32]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[77,36],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[77,36],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[77,40],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,42]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[77,36],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,39]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[77,36],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,37]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[77,38],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,39]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[77,43],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[77,43],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[77,54],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,56]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[77,44],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[77,44],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[77,46],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,48]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[77,44],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,45]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[77,49],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[77,49],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,50]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[77,51],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,52]},[]],"tag":"TypeVar","contents":"b"}]}]}]},{"annotation":[{"start":[77,57],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[77,57],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,58]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[77,59],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,60]},[]],"tag":"TypeVar","contents":"b"}]}]}]}]}]},0]},1]},2]}}},{"EDValue":{"edValueName":{"Ident":"join"},"edValueType":{"annotation":[{"start":[83,9],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[83,45]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[83,16],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[83,45]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[83,21],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[83,45]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[83,21],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[83,27]},[]],"constraintClass":[["Control","Bind"],"Bind"],"constraintArgs":[{"annotation":[{"start":[83,26],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[83,27]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[83,31],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[83,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[83,31],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[83,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[83,39],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[83,41]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[83,31],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[83,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[83,31],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[83,32]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[83,34],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[83,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[83,34],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[83,35]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[83,36],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[83,37]},[]],"tag":"TypeVar","contents":"a"}]}]}]},{"annotation":[{"start":[83,42],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[83,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[83,42],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[83,43]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[83,44],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[83,45]},[]],"tag":"TypeVar","contents":"a"}]}]}]},56]},57]}}},{"EDValue":{"edValueName":{"Ident":"composeKleisli"},"edValueType":{"annotation":[{"start":[95,19],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[95,81]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[95,26],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[95,81]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[95,26],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[95,81]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[95,26],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[95,81]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[95,35],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[95,81]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[95,35],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[95,41]},[]],"constraintClass":[["Control","Bind"],"Bind"],"constraintArgs":[{"annotation":[{"start":[95,40],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[95,41]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[95,45],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[95,81]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[95,45],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[95,81]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[95,56],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[95,58]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[95,46],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[95,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[95,46],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[95,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[95,48],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[95,50]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[95,46],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[95,47]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[95,51],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[95,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[95,51],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[95,52]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[95,53],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[95,54]},[]],"tag":"TypeVar","contents":"b"}]}]}]},{"annotation":[{"start":[95,59],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[95,81]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[95,59],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[95,81]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[95,70],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[95,72]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[95,60],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[95,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[95,60],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[95,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[95,62],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[95,64]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[95,60],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[95,61]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[95,65],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[95,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[95,65],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[95,66]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[95,67],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[95,68]},[]],"tag":"TypeVar","contents":"c"}]}]}]},{"annotation":[{"start":[95,73],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[95,81]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[95,73],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[95,81]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[95,75],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[95,77]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[95,73],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[95,74]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[95,78],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[95,81]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[95,78],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[95,79]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[95,80],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[95,81]},[]],"tag":"TypeVar","contents":"c"}]}]}]}]}]},40]},41]},42]},43]}}},{"EDValue":{"edValueName":{"Ident":"composeKleisliFlipped"},"edValueType":{"annotation":[{"start":[101,26],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[101,88]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[101,33],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[101,88]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[101,33],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[101,88]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[101,33],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[101,88]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[101,42],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[101,88]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[101,42],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[101,48]},[]],"constraintClass":[["Control","Bind"],"Bind"],"constraintArgs":[{"annotation":[{"start":[101,47],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[101,48]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[101,52],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[101,88]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[101,52],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[101,88]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[101,63],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[101,65]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[101,53],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[101,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[101,53],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[101,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[101,55],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[101,57]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[101,53],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[101,54]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[101,58],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[101,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[101,58],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[101,59]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[101,60],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[101,61]},[]],"tag":"TypeVar","contents":"c"}]}]}]},{"annotation":[{"start":[101,66],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[101,88]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[101,66],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[101,88]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[101,77],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[101,79]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[101,67],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[101,75]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[101,67],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[101,75]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[101,69],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[101,71]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[101,67],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[101,68]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[101,72],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[101,75]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[101,72],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[101,73]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[101,74],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[101,75]},[]],"tag":"TypeVar","contents":"b"}]}]}]},{"annotation":[{"start":[101,80],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[101,88]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[101,80],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[101,88]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[101,82],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[101,84]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[101,80],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[101,81]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[101,85],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[101,88]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[101,85],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[101,86]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[101,87],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[101,88]},[]],"tag":"TypeVar","contents":"c"}]}]}]}]}]},32]},33]},34]},35]}}},{"EDValue":{"edValueName":{"Ident":"ifM"},"edValueType":{"annotation":[{"start":[115,8],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[115,60]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[115,15],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[115,60]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[115,20],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[115,60]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[115,20],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[115,26]},[]],"constraintClass":[["Control","Bind"],"Bind"],"constraintArgs":[{"annotation":[{"start":[115,25],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[115,26]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[115,30],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[115,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[115,30],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[115,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[115,40],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[115,42]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[115,30],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[115,39]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[115,30],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[115,31]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[115,32],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[115,39]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]},{"annotation":[{"start":[115,43],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[115,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[115,43],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[115,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[115,47],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[115,49]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[115,43],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[115,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[115,43],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[115,44]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[115,45],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[115,46]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[115,50],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[115,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[115,50],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[115,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[115,54],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[115,56]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[115,50],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[115,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[115,50],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[115,51]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[115,52],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[115,53]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[115,57],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[115,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[115,57],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[115,58]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[115,59],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[115,60]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]}]},52]},53]}}},{"EDInstance":{"edInstanceClassName":[["Control","Bind"],"Bind"],"edInstanceName":{"Ident":"bindFn"},"edInstanceTypes":[{"annotation":[{"start":[63,26],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[63,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[63,26],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[63,30]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[63,31],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[63,32]},[]],"tag":"TypeVar","contents":"r"}]}],"edInstanceConstraints":[],"edInstanceChain":[[["Control","Bind"],{"Ident":"bindFn"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Bind"],"Bind"],"edInstanceName":{"Ident":"bindArray"},"edInstanceTypes":[{"annotation":[{"start":[66,28],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[66,33]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Control","Bind"],{"Ident":"bindArray"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Bind"],"Discard"],"edInstanceName":{"Ident":"discardUnit"},"edInstanceTypes":[{"annotation":[{"start":[79,33],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[79,37]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Control","Bind"],{"Ident":"discardUnit"}]],"edInstanceChainIndex":0}}],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[116,57]}}
diff --git a/tests/purs/publish/basic-example/output/Control.Category/docs.json b/tests/purs/publish/basic-example/output/Control.Category/docs.json
--- a/tests/purs/publish/basic-example/output/Control.Category/docs.json
+++ b/tests/purs/publish/basic-example/output/Control.Category/docs.json
@@ -1,1 +1,1 @@
-{"reExports":[],"name":"Control.Category","comments":null,"declarations":[{"children":[{"comments":null,"title":"identity","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"ForAll","contents":["t",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"a"},{"annotation":[],"tag":"TypeVar","contents":"t"}]},{"annotation":[],"tag":"TypeVar","contents":"t"}]},null]}},"sourceSpan":{"start":[17,3],"name":"../../../support/bower_components/purescript-prelude/src/Control/Category.purs","end":[17,30]}},{"comments":null,"title":"categoryFn","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Category"],"Category"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]}]}},"sourceSpan":{"start":[19,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Category.purs","end":[20,17]}}],"comments":"`Category`s consist of objects and composable morphisms between them, and\nas such are [`Semigroupoids`](#semigroupoid), but unlike `semigroupoids`\nmust have an identity element.\n\nInstances must satisfy the following law in addition to the\n`Semigroupoid` law:\n\n- Identity: `identity <<< p = p <<< identity = p`\n","title":"Category","info":{"fundeps":[],"arguments":[["a",null]],"declType":"typeClass","superclasses":[{"constraintAnn":[],"constraintClass":[["Control","Semigroupoid"],"Semigroupoid"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}]},"sourceSpan":{"start":[16,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Category.purs","end":[17,30]}}]}
+{"comments":null,"declarations":[{"children":[{"comments":null,"info":{"declType":"typeClassMember","type":{"annotation":[],"contents":{"identifier":"t","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":"a","tag":"TypeVar"},{"annotation":[],"contents":"t","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"t","tag":"TypeVar"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"sourceSpan":{"end":[19,30],"name":"../../../support/bower_components/purescript-prelude/src/Control/Category.purs","start":[19,3]},"title":"identity"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Control","Category"],"Category"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[22,17],"name":"../../../support/bower_components/purescript-prelude/src/Control/Category.purs","start":[21,1]},"title":"categoryFn"}],"comments":"`Category`s consist of objects and composable morphisms between them, and\nas such are [`Semigroupoids`](#semigroupoid), but unlike `semigroupoids`\nmust have an identity element.\n\nInstances must satisfy the following law in addition to the\n`Semigroupoid` law:\n\n- Identity: `identity <<< p = p <<< identity = p`\n","info":{"arguments":[["a",null]],"declType":"typeClass","fundeps":[],"superclasses":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Control","Semigroupoid"],"Semigroupoid"],"constraintData":null,"constraintKindArgs":[]}]},"kind":{"keyword":"class","kind":{"annotation":[],"contents":{"identifier":"k","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"k","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"k","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"},"tag":"ParensInType"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim"],"Constraint"],"tag":"TypeConstructor"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"sourceSpan":{"end":[19,30],"name":"../../../support/bower_components/purescript-prelude/src/Control/Category.purs","start":[18,1]},"title":"Category"}],"name":"Control.Category","reExports":[]}
diff --git a/tests/purs/publish/basic-example/output/Control.Category/externs.json b/tests/purs/publish/basic-example/output/Control.Category/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Control.Category/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Control","Category"],"efExports":[{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Category.purs","end":[20,17]},{"exportSourceImportedFrom":["Control","Semigroupoid"],"exportSourceDefinedIn":["Control","Semigroupoid"]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Category.purs","end":[20,17]},"Semigroupoid"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Category.purs","end":[20,17]},{"exportSourceImportedFrom":["Control","Semigroupoid"],"exportSourceDefinedIn":["Control","Semigroupoid"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Category.purs","end":[20,17]},{"Ident":"compose"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Category.purs","end":[20,17]},{"exportSourceImportedFrom":["Control","Semigroupoid"],"exportSourceDefinedIn":["Control","Semigroupoid"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Category.purs","end":[20,17]},"<<<"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Category.purs","end":[20,17]},{"exportSourceImportedFrom":["Control","Semigroupoid"],"exportSourceDefinedIn":["Control","Semigroupoid"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Category.purs","end":[20,17]},">>>"]}]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Category.purs","end":[20,17]},"Category"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Category.purs","end":[20,17]},{"Ident":"identity"}]},{"ModuleRef":[{"start":[3,5],"name":"../../../support/bower_components/purescript-prelude/src/Control/Category.purs","end":[3,32]},["Control","Semigroupoid"]]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"categoryFn"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Control","Semigroupoid"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[6,30],"name":"../../../support/bower_components/purescript-prelude/src/Control/Category.purs","end":[6,48]},"Semigroupoid"]},{"ValueRef":[{"start":[6,50],"name":"../../../support/bower_components/purescript-prelude/src/Control/Category.purs","end":[6,57]},{"Ident":"compose"}]},{"ValueOpRef":[{"start":[6,59],"name":"../../../support/bower_components/purescript-prelude/src/Control/Category.purs","end":[6,64]},"<<<"]},{"ValueOpRef":[{"start":[6,66],"name":"../../../support/bower_components/purescript-prelude/src/Control/Category.purs","end":[6,71]},">>>"]}]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDType":{"edTypeName":"Category","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[17,25],"name":"../../../support/bower_components/purescript-prelude/src/Control/Category.purs","end":[17,28]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[17,25],"name":"../../../support/bower_components/purescript-prelude/src/Control/Category.purs","end":[17,30]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"Category","edTypeSynonymArguments":[["a",null]],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["identity",{"annotation":[{"start":[17,15],"name":"../../../support/bower_components/purescript-prelude/src/Control/Category.purs","end":[17,30]},[]],"tag":"ForAll","contents":["t",{"annotation":[{"start":[17,25],"name":"../../../support/bower_components/purescript-prelude/src/Control/Category.purs","end":[17,30]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[17,25],"name":"../../../support/bower_components/purescript-prelude/src/Control/Category.purs","end":[17,28]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[17,25],"name":"../../../support/bower_components/purescript-prelude/src/Control/Category.purs","end":[17,26]},[]],"tag":"TypeVar","contents":"a"},{"annotation":[{"start":[17,27],"name":"../../../support/bower_components/purescript-prelude/src/Control/Category.purs","end":[17,28]},[]],"tag":"TypeVar","contents":"t"}]},{"annotation":[{"start":[17,29],"name":"../../../support/bower_components/purescript-prelude/src/Control/Category.purs","end":[17,30]},[]],"tag":"TypeVar","contents":"t"}]},null]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["Semigroupoid0",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Control","Semigroupoid"],"Semigroupoid"]},{"annotation":[{"start":[16,20],"name":"../../../support/bower_components/purescript-prelude/src/Control/Category.purs","end":[16,21]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]}]}}},{"EDClass":{"edClassName":"Category","edClassTypeArguments":[["a",null]],"edClassMembers":[[{"Ident":"identity"},{"annotation":[{"start":[17,15],"name":"../../../support/bower_components/purescript-prelude/src/Control/Category.purs","end":[17,30]},[]],"tag":"ForAll","contents":["t",{"annotation":[{"start":[17,25],"name":"../../../support/bower_components/purescript-prelude/src/Control/Category.purs","end":[17,30]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[17,25],"name":"../../../support/bower_components/purescript-prelude/src/Control/Category.purs","end":[17,28]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[17,25],"name":"../../../support/bower_components/purescript-prelude/src/Control/Category.purs","end":[17,26]},[]],"tag":"TypeVar","contents":"a"},{"annotation":[{"start":[17,27],"name":"../../../support/bower_components/purescript-prelude/src/Control/Category.purs","end":[17,28]},[]],"tag":"TypeVar","contents":"t"}]},{"annotation":[{"start":[17,29],"name":"../../../support/bower_components/purescript-prelude/src/Control/Category.purs","end":[17,30]},[]],"tag":"TypeVar","contents":"t"}]},null]}]],"edClassConstraints":[{"constraintAnn":[{"start":[16,7],"name":"../../../support/bower_components/purescript-prelude/src/Control/Category.purs","end":[16,21]},[]],"constraintClass":[["Control","Semigroupoid"],"Semigroupoid"],"constraintArgs":[{"annotation":[{"start":[16,20],"name":"../../../support/bower_components/purescript-prelude/src/Control/Category.purs","end":[16,21]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edFunctionalDependencies":[]}},{"EDValue":{"edValueName":{"Ident":"identity"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[17,15],"name":"../../../support/bower_components/purescript-prelude/src/Control/Category.purs","end":[17,30]},[]],"tag":"ForAll","contents":["t",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["Control","Category"],"Category"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[17,25],"name":"../../../support/bower_components/purescript-prelude/src/Control/Category.purs","end":[17,30]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[17,25],"name":"../../../support/bower_components/purescript-prelude/src/Control/Category.purs","end":[17,28]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[17,25],"name":"../../../support/bower_components/purescript-prelude/src/Control/Category.purs","end":[17,26]},[]],"tag":"TypeVar","contents":"a"},{"annotation":[{"start":[17,27],"name":"../../../support/bower_components/purescript-prelude/src/Control/Category.purs","end":[17,28]},[]],"tag":"TypeVar","contents":"t"}]},{"annotation":[{"start":[17,29],"name":"../../../support/bower_components/purescript-prelude/src/Control/Category.purs","end":[17,30]},[]],"tag":"TypeVar","contents":"t"}]}]},0]},1]}}},{"EDInstance":{"edInstanceClassName":[["Control","Category"],"Category"],"edInstanceName":{"Ident":"categoryFn"},"edInstanceTypes":[{"annotation":[{"start":[19,33],"name":"../../../support/bower_components/purescript-prelude/src/Control/Category.purs","end":[19,37]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Control","Category"],{"Ident":"categoryFn"}]],"edInstanceChainIndex":0}}],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Category.purs","end":[20,17]}}
diff --git a/tests/purs/publish/basic-example/output/Control.Comonad/docs.json b/tests/purs/publish/basic-example/output/Control.Comonad/docs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Control.Comonad/docs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"reExports":[],"name":"Control.Comonad","comments":null,"declarations":[{"children":[{"comments":null,"title":"extract","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"w"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},null]}},"sourceSpan":{"start":[21,3],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[21,32]}}],"comments":"`Comonad` extends the `Extend` class with the `extract` function\nwhich extracts a value, discarding the comonadic context.\n\n`Comonad` is the dual of `Monad`, and `extract` is the dual of `pure`.\n\nLaws:\n\n- Left Identity: `extract <<= xs = xs`\n- Right Identity: `extract (f <<= xs) = f xs`\n","title":"Comonad","info":{"fundeps":[],"arguments":[["w",null]],"declType":"typeClass","superclasses":[{"constraintAnn":[],"constraintClass":[["Control","Extend"],"Extend"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"w"}],"constraintData":null}]},"sourceSpan":{"start":[20,1],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[21,32]}}]}
diff --git a/tests/purs/publish/basic-example/output/Control.Comonad/externs.json b/tests/purs/publish/basic-example/output/Control.Comonad/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Control.Comonad/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Control","Comonad"],"efExports":[{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[21,32]},{"exportSourceImportedFrom":["Control","Extend"],"exportSourceDefinedIn":["Control","Extend"]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[21,32]},"Extend"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[21,32]},{"exportSourceImportedFrom":["Data","Functor"],"exportSourceDefinedIn":["Data","Functor"]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[21,32]},"Functor"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[21,32]},{"exportSourceImportedFrom":["Control","Extend"],"exportSourceDefinedIn":["Control","Extend"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[21,32]},{"Ident":"duplicate"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[21,32]},{"exportSourceImportedFrom":["Control","Extend"],"exportSourceDefinedIn":["Control","Extend"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[21,32]},{"Ident":"extend"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[21,32]},{"exportSourceImportedFrom":["Data","Functor"],"exportSourceDefinedIn":["Data","Functor"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[21,32]},{"Ident":"map"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[21,32]},{"exportSourceImportedFrom":["Data","Functor"],"exportSourceDefinedIn":["Data","Functor"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[21,32]},{"Ident":"void"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[21,32]},{"exportSourceImportedFrom":["Data","Functor"],"exportSourceDefinedIn":["Data","Functor"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[21,32]},"$>"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[21,32]},{"exportSourceImportedFrom":["Data","Functor"],"exportSourceDefinedIn":["Data","Functor"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[21,32]},"<#>"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[21,32]},{"exportSourceImportedFrom":["Data","Functor"],"exportSourceDefinedIn":["Data","Functor"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[21,32]},"<$"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[21,32]},{"exportSourceImportedFrom":["Data","Functor"],"exportSourceDefinedIn":["Data","Functor"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[21,32]},"<$>"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[21,32]},{"exportSourceImportedFrom":["Control","Extend"],"exportSourceDefinedIn":["Control","Extend"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[21,32]},"<<="]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[21,32]},{"exportSourceImportedFrom":["Control","Extend"],"exportSourceDefinedIn":["Control","Extend"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[21,32]},"=<="]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[21,32]},{"exportSourceImportedFrom":["Control","Extend"],"exportSourceDefinedIn":["Control","Extend"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[21,32]},"=>="]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[21,32]},{"exportSourceImportedFrom":["Control","Extend"],"exportSourceDefinedIn":["Control","Extend"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[21,32]},"=>>"]}]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[21,32]},"Comonad"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[21,32]},{"Ident":"extract"}]},{"ModuleRef":[{"start":[3,5],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[3,26]},["Control","Extend"]]},{"ModuleRef":[{"start":[4,5],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[4,24]},["Data","Functor"]]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Control","Extend"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[7,24],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[7,36]},"Extend"]},{"ValueRef":[{"start":[7,38],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[7,47]},{"Ident":"duplicate"}]},{"ValueRef":[{"start":[7,49],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[7,55]},{"Ident":"extend"}]},{"ValueOpRef":[{"start":[7,57],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[7,62]},"<<="]},{"ValueOpRef":[{"start":[7,64],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[7,69]},"=<="]},{"ValueOpRef":[{"start":[7,71],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[7,76]},"=>="]},{"ValueOpRef":[{"start":[7,78],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[7,83]},"=>>"]}]},"eiImportedAs":null},{"eiModule":["Data","Functor"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[9,22],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[9,35]},"Functor"]},{"ValueRef":[{"start":[9,37],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[9,40]},{"Ident":"map"}]},{"ValueRef":[{"start":[9,42],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[9,46]},{"Ident":"void"}]},{"ValueOpRef":[{"start":[9,48],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[9,52]},"$>"]},{"ValueOpRef":[{"start":[9,54],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[9,59]},"<#>"]},{"ValueOpRef":[{"start":[9,61],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[9,65]},"<$"]},{"ValueOpRef":[{"start":[9,67],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[9,72]},"<$>"]}]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDType":{"edTypeName":"Comonad","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[21,24],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[21,27]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[21,28],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[21,30]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[21,28],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[21,30]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"Comonad","edTypeSynonymArguments":[["w",null]],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["extract",{"annotation":[{"start":[21,14],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[21,32]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[21,24],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[21,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[21,24],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[21,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[21,28],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[21,30]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[21,24],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[21,27]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[21,24],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[21,25]},[]],"tag":"TypeVar","contents":"w"},{"annotation":[{"start":[21,26],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[21,27]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[21,31],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[21,32]},[]],"tag":"TypeVar","contents":"a"}]},null]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["Extend0",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Control","Extend"],"Extend"]},{"annotation":[{"start":[20,14],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[20,15]},[]],"tag":"TypeVar","contents":"w"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]}]}}},{"EDClass":{"edClassName":"Comonad","edClassTypeArguments":[["w",null]],"edClassMembers":[[{"Ident":"extract"},{"annotation":[{"start":[21,14],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[21,32]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[21,24],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[21,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[21,24],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[21,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[21,28],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[21,30]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[21,24],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[21,27]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[21,24],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[21,25]},[]],"tag":"TypeVar","contents":"w"},{"annotation":[{"start":[21,26],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[21,27]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[21,31],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[21,32]},[]],"tag":"TypeVar","contents":"a"}]},null]}]],"edClassConstraints":[{"constraintAnn":[{"start":[20,7],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[20,15]},[]],"constraintClass":[["Control","Extend"],"Extend"],"constraintArgs":[{"annotation":[{"start":[20,14],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[20,15]},[]],"tag":"TypeVar","contents":"w"}],"constraintData":null}],"edFunctionalDependencies":[]}},{"EDValue":{"edValueName":{"Ident":"extract"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["w",{"annotation":[{"start":[21,14],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[21,32]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["Control","Comonad"],"Comonad"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"w"}],"constraintData":null},{"annotation":[{"start":[21,24],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[21,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[21,24],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[21,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[21,28],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[21,30]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[21,24],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[21,27]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[21,24],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[21,25]},[]],"tag":"TypeVar","contents":"w"},{"annotation":[{"start":[21,26],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[21,27]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[21,31],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[21,32]},[]],"tag":"TypeVar","contents":"a"}]}]},0]},1]}}}],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[21,32]}}
diff --git a/tests/purs/publish/basic-example/output/Control.Extend/docs.json b/tests/purs/publish/basic-example/output/Control.Extend/docs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Control.Extend/docs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"reExports":[],"name":"Control.Extend","comments":null,"declarations":[{"children":[{"comments":null,"title":"extend","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"w"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"w"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"w"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}]},null]},null]}},"sourceSpan":{"start":[25,3],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[25,49]}},{"comments":null,"title":"extendFn","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Semigroup"],"Semigroup"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"w"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Extend"],"Extend"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"w"}]}]}},"sourceSpan":{"start":[27,1],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[28,38]}},{"comments":null,"title":"extendArray","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Extend"],"Extend"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]}]}},"sourceSpan":{"start":[32,1],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[33,23]}}],"comments":"The `Extend` class defines the extension operator `(<<=)`\nwhich extends a local context-dependent computation to\na global computation.\n\n`Extend` is the dual of `Bind`, and `(<<=)` is the dual of\n`(>>=)`.\n\nLaws:\n\n- Associativity: `extend f <<< extend g = extend (f <<< extend g)`\n","title":"Extend","info":{"fundeps":[],"arguments":[["w",null]],"declType":"typeClass","superclasses":[{"constraintAnn":[],"constraintClass":[["Data","Functor"],"Functor"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"w"}],"constraintData":null}]},"sourceSpan":{"start":[24,1],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[25,49]}},{"children":[],"comments":null,"title":"(<<=)","info":{"declType":"alias","alias":[["Control","Extend"],{"Right":{"Left":{"Ident":"extend"}}}],"fixity":{"associativity":"infixr","precedence":1}},"sourceSpan":{"start":[35,1],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[35,23]}},{"children":[],"comments":"A version of `extend` with its arguments flipped.\n","title":"extendFlipped","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["w",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Extend"],"Extend"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"w"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"w"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"w"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"w"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}]}]},null]},null]},null]}},"sourceSpan":{"start":[38,1],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[38,68]}},{"children":[],"comments":null,"title":"(=>>)","info":{"declType":"alias","alias":[["Control","Extend"],{"Right":{"Left":{"Ident":"extendFlipped"}}}],"fixity":{"associativity":"infixl","precedence":1}},"sourceSpan":{"start":[41,1],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[41,30]}},{"children":[],"comments":"Forwards co-Kleisli composition.\n","title":"composeCoKleisli","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["w",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Extend"],"Extend"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"w"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"w"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"w"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"w"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]}]}]}]},null]},null]},null]},null]}},"sourceSpan":{"start":[44,1],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[44,85]}},{"children":[],"comments":null,"title":"(=>=)","info":{"declType":"alias","alias":[["Control","Extend"],{"Right":{"Left":{"Ident":"composeCoKleisli"}}}],"fixity":{"associativity":"infixr","precedence":1}},"sourceSpan":{"start":[47,1],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[47,33]}},{"children":[],"comments":"Backwards co-Kleisli composition.\n","title":"composeCoKleisliFlipped","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["w",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Extend"],"Extend"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"w"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"w"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"w"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"w"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]}]}]}]},null]},null]},null]},null]}},"sourceSpan":{"start":[50,1],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[50,92]}},{"children":[],"comments":null,"title":"(=<=)","info":{"declType":"alias","alias":[["Control","Extend"],{"Right":{"Left":{"Ident":"composeCoKleisliFlipped"}}}],"fixity":{"associativity":"infixr","precedence":1}},"sourceSpan":{"start":[53,1],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[53,40]}},{"children":[],"comments":"Duplicate a comonadic context.\n\n`duplicate` is dual to `Control.Bind.join`.\n","title":"duplicate","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["w",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Extend"],"Extend"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"w"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"w"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"w"},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"w"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]}]}]},null]},null]}},"sourceSpan":{"start":[58,1],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[58,52]}}]}
diff --git a/tests/purs/publish/basic-example/output/Control.Extend/externs.json b/tests/purs/publish/basic-example/output/Control.Extend/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Control.Extend/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Control","Extend"],"efExports":[{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[59,28]},{"exportSourceImportedFrom":["Data","Functor"],"exportSourceDefinedIn":["Data","Functor"]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[59,28]},"Functor"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[59,28]},{"exportSourceImportedFrom":["Data","Functor"],"exportSourceDefinedIn":["Data","Functor"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[59,28]},{"Ident":"map"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[59,28]},{"exportSourceImportedFrom":["Data","Functor"],"exportSourceDefinedIn":["Data","Functor"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[59,28]},{"Ident":"void"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[59,28]},{"exportSourceImportedFrom":["Data","Functor"],"exportSourceDefinedIn":["Data","Functor"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[59,28]},"$>"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[59,28]},{"exportSourceImportedFrom":["Data","Functor"],"exportSourceDefinedIn":["Data","Functor"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[59,28]},"<#>"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[59,28]},{"exportSourceImportedFrom":["Data","Functor"],"exportSourceDefinedIn":["Data","Functor"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[59,28]},"<$"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[59,28]},{"exportSourceImportedFrom":["Data","Functor"],"exportSourceDefinedIn":["Data","Functor"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[59,28]},"<$>"]}]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[59,28]},"Extend"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[59,28]},{"Ident":"extend"}]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[59,28]},"<<="]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[59,28]},{"Ident":"extendFlipped"}]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[59,28]},"=>>"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[59,28]},{"Ident":"composeCoKleisli"}]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[59,28]},"=>="]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[59,28]},{"Ident":"composeCoKleisliFlipped"}]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[59,28]},"=<="]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[59,28]},{"Ident":"duplicate"}]},{"ModuleRef":[{"start":[6,5],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[6,24]},["Data","Functor"]]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"extendFn"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"extendArray"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Control","Category"],"eiImportType":{"Explicit":[{"ValueRef":[{"start":[9,26],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[9,34]},{"Ident":"identity"}]}]},"eiImportedAs":null},{"eiModule":["Data","Functor"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[11,22],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[11,35]},"Functor"]},{"ValueRef":[{"start":[11,37],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[11,40]},{"Ident":"map"}]},{"ValueRef":[{"start":[11,42],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[11,46]},{"Ident":"void"}]},{"ValueOpRef":[{"start":[11,48],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[11,52]},"$>"]},{"ValueOpRef":[{"start":[11,54],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[11,59]},"<#>"]},{"ValueOpRef":[{"start":[11,61],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[11,65]},"<$"]},{"ValueOpRef":[{"start":[11,67],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[11,72]},"<$>"]}]},"eiImportedAs":null},{"eiModule":["Data","Semigroup"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[12,24],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[12,39]},"Semigroup"]},{"ValueOpRef":[{"start":[12,41],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[12,45]},"<>"]}]},"eiImportedAs":null}],"efFixities":[{"efAssociativity":"infixr","efPrecedence":1,"efOperator":"<<=","efAlias":[["Control","Extend"],{"Left":{"Ident":"extend"}}]},{"efAssociativity":"infixl","efPrecedence":1,"efOperator":"=>>","efAlias":[["Control","Extend"],{"Left":{"Ident":"extendFlipped"}}]},{"efAssociativity":"infixr","efPrecedence":1,"efOperator":"=>=","efAlias":[["Control","Extend"],{"Left":{"Ident":"composeCoKleisli"}}]},{"efAssociativity":"infixr","efPrecedence":1,"efOperator":"=<=","efAlias":[["Control","Extend"],{"Left":{"Ident":"composeCoKleisliFlipped"}}]}],"efTypeFixities":[],"efDeclarations":[{"EDType":{"edTypeName":"Extend","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[25,26],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[25,29]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[25,30],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[25,32]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[25,30],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[25,32]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"Extend","edTypeSynonymArguments":[["w",null]],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["extend",{"annotation":[{"start":[25,13],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[25,49]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[25,20],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[25,49]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[25,25],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[25,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[25,25],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[25,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[25,36],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[25,38]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[25,26],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[25,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[25,26],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[25,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[25,30],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[25,32]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[25,26],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[25,29]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[25,26],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[25,27]},[]],"tag":"TypeVar","contents":"w"},{"annotation":[{"start":[25,28],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[25,29]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[25,33],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[25,34]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[25,39],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[25,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[25,39],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[25,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[25,43],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[25,45]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[25,39],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[25,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[25,39],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[25,40]},[]],"tag":"TypeVar","contents":"w"},{"annotation":[{"start":[25,41],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[25,42]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[25,46],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[25,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[25,46],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[25,47]},[]],"tag":"TypeVar","contents":"w"},{"annotation":[{"start":[25,48],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[25,49]},[]],"tag":"TypeVar","contents":"b"}]}]}]},null]},null]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["Functor0",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Functor"],"Functor"]},{"annotation":[{"start":[24,15],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[24,16]},[]],"tag":"TypeVar","contents":"w"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]}]}}},{"EDClass":{"edClassName":"Extend","edClassTypeArguments":[["w",null]],"edClassMembers":[[{"Ident":"extend"},{"annotation":[{"start":[25,13],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[25,49]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[25,20],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[25,49]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[25,25],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[25,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[25,25],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[25,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[25,36],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[25,38]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[25,26],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[25,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[25,26],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[25,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[25,30],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[25,32]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[25,26],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[25,29]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[25,26],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[25,27]},[]],"tag":"TypeVar","contents":"w"},{"annotation":[{"start":[25,28],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[25,29]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[25,33],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[25,34]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[25,39],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[25,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[25,39],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[25,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[25,43],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[25,45]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[25,39],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[25,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[25,39],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[25,40]},[]],"tag":"TypeVar","contents":"w"},{"annotation":[{"start":[25,41],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[25,42]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[25,46],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[25,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[25,46],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[25,47]},[]],"tag":"TypeVar","contents":"w"},{"annotation":[{"start":[25,48],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[25,49]},[]],"tag":"TypeVar","contents":"b"}]}]}]},null]},null]}]],"edClassConstraints":[{"constraintAnn":[{"start":[24,7],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[24,16]},[]],"constraintClass":[["Data","Functor"],"Functor"],"constraintArgs":[{"annotation":[{"start":[24,15],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[24,16]},[]],"tag":"TypeVar","contents":"w"}],"constraintData":null}],"edFunctionalDependencies":[]}},{"EDValue":{"edValueName":{"Ident":"extend"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["w",{"annotation":[{"start":[25,13],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[25,49]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[25,20],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[25,49]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["Control","Extend"],"Extend"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"w"}],"constraintData":null},{"annotation":[{"start":[25,25],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[25,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[25,25],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[25,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[25,36],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[25,38]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[25,26],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[25,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[25,26],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[25,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[25,30],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[25,32]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[25,26],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[25,29]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[25,26],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[25,27]},[]],"tag":"TypeVar","contents":"w"},{"annotation":[{"start":[25,28],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[25,29]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[25,33],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[25,34]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[25,39],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[25,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[25,39],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[25,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[25,43],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[25,45]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[25,39],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[25,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[25,39],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[25,40]},[]],"tag":"TypeVar","contents":"w"},{"annotation":[{"start":[25,41],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[25,42]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[25,46],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[25,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[25,46],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[25,47]},[]],"tag":"TypeVar","contents":"w"},{"annotation":[{"start":[25,48],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[25,49]},[]],"tag":"TypeVar","contents":"b"}]}]}]}]},16]},17]},18]}}},{"EDValue":{"edValueName":{"Ident":"extendFlipped"},"edValueType":{"annotation":[{"start":[38,18],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[38,68]},[]],"tag":"ForAll","contents":["w",{"annotation":[{"start":[38,25],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[38,68]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[38,25],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[38,68]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[38,32],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[38,68]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[38,32],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[38,40]},[]],"constraintClass":[["Control","Extend"],"Extend"],"constraintArgs":[{"annotation":[{"start":[38,39],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[38,40]},[]],"tag":"TypeVar","contents":"w"}],"constraintData":null},{"annotation":[{"start":[38,44],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[38,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[38,44],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[38,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[38,48],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[38,50]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[38,44],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[38,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[38,44],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[38,45]},[]],"tag":"TypeVar","contents":"w"},{"annotation":[{"start":[38,46],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[38,47]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[38,51],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[38,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[38,51],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[38,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[38,62],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[38,64]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[38,52],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[38,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[38,52],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[38,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[38,56],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[38,58]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[38,52],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[38,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[38,52],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[38,53]},[]],"tag":"TypeVar","contents":"w"},{"annotation":[{"start":[38,54],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[38,55]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[38,59],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[38,60]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[38,65],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[38,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[38,65],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[38,66]},[]],"tag":"TypeVar","contents":"w"},{"annotation":[{"start":[38,67],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[38,68]},[]],"tag":"TypeVar","contents":"b"}]}]}]}]},19]},20]},21]}}},{"EDValue":{"edValueName":{"Ident":"composeCoKleisli"},"edValueType":{"annotation":[{"start":[44,21],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[44,85]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[44,28],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[44,85]},[]],"tag":"ForAll","contents":["w",{"annotation":[{"start":[44,28],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[44,85]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[44,28],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[44,85]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[44,37],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[44,85]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[44,37],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[44,45]},[]],"constraintClass":[["Control","Extend"],"Extend"],"constraintArgs":[{"annotation":[{"start":[44,44],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[44,45]},[]],"tag":"TypeVar","contents":"w"}],"constraintData":null},{"annotation":[{"start":[44,49],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[44,85]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[44,49],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[44,85]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[44,60],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[44,62]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[44,50],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[44,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[44,50],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[44,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[44,54],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[44,56]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[44,50],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[44,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[44,50],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[44,51]},[]],"tag":"TypeVar","contents":"w"},{"annotation":[{"start":[44,52],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[44,53]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[44,57],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[44,58]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[44,63],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[44,85]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[44,63],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[44,85]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[44,74],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[44,76]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[44,64],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[44,72]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[44,64],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[44,72]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[44,68],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[44,70]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[44,64],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[44,67]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[44,64],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[44,65]},[]],"tag":"TypeVar","contents":"w"},{"annotation":[{"start":[44,66],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[44,67]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[44,71],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[44,72]},[]],"tag":"TypeVar","contents":"c"}]}]},{"annotation":[{"start":[44,77],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[44,85]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[44,77],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[44,85]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[44,81],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[44,83]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[44,77],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[44,80]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[44,77],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[44,78]},[]],"tag":"TypeVar","contents":"w"},{"annotation":[{"start":[44,79],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[44,80]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[44,84],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[44,85]},[]],"tag":"TypeVar","contents":"c"}]}]}]}]},37]},38]},39]},40]}}},{"EDValue":{"edValueName":{"Ident":"composeCoKleisliFlipped"},"edValueType":{"annotation":[{"start":[50,28],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[50,92]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[50,35],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[50,92]},[]],"tag":"ForAll","contents":["w",{"annotation":[{"start":[50,35],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[50,92]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[50,35],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[50,92]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[50,44],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[50,92]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[50,44],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[50,52]},[]],"constraintClass":[["Control","Extend"],"Extend"],"constraintArgs":[{"annotation":[{"start":[50,51],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[50,52]},[]],"tag":"TypeVar","contents":"w"}],"constraintData":null},{"annotation":[{"start":[50,56],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[50,92]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,56],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[50,92]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,67],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[50,69]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[50,57],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[50,65]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,57],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[50,65]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,61],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[50,63]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[50,57],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[50,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,57],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[50,58]},[]],"tag":"TypeVar","contents":"w"},{"annotation":[{"start":[50,59],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[50,60]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[50,64],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[50,65]},[]],"tag":"TypeVar","contents":"c"}]}]},{"annotation":[{"start":[50,70],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[50,92]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,70],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[50,92]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,81],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[50,83]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[50,71],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[50,79]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,71],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[50,79]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,75],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[50,77]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[50,71],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[50,74]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,71],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[50,72]},[]],"tag":"TypeVar","contents":"w"},{"annotation":[{"start":[50,73],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[50,74]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[50,78],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[50,79]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[50,84],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[50,92]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,84],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[50,92]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,88],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[50,90]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[50,84],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[50,87]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,84],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[50,85]},[]],"tag":"TypeVar","contents":"w"},{"annotation":[{"start":[50,86],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[50,87]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[50,91],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[50,92]},[]],"tag":"TypeVar","contents":"c"}]}]}]}]},29]},30]},31]},32]}}},{"EDValue":{"edValueName":{"Ident":"duplicate"},"edValueType":{"annotation":[{"start":[58,14],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[58,52]},[]],"tag":"ForAll","contents":["w",{"annotation":[{"start":[58,21],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[58,52]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[58,26],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[58,52]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[58,26],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[58,34]},[]],"constraintClass":[["Control","Extend"],"Extend"],"constraintArgs":[{"annotation":[{"start":[58,33],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[58,34]},[]],"tag":"TypeVar","contents":"w"}],"constraintData":null},{"annotation":[{"start":[58,38],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[58,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[58,38],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[58,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[58,42],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[58,44]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[58,38],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[58,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[58,38],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[58,39]},[]],"tag":"TypeVar","contents":"w"},{"annotation":[{"start":[58,40],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[58,41]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[58,45],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[58,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[58,45],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[58,46]},[]],"tag":"TypeVar","contents":"w"},{"annotation":[{"start":[58,48],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[58,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[58,48],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[58,49]},[]],"tag":"TypeVar","contents":"w"},{"annotation":[{"start":[58,50],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[58,51]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]},25]},26]}}},{"EDInstance":{"edInstanceClassName":[["Control","Extend"],"Extend"],"edInstanceName":{"Ident":"extendFn"},"edInstanceTypes":[{"annotation":[{"start":[27,45],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[27,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[27,45],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[27,49]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[27,50],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[27,51]},[]],"tag":"TypeVar","contents":"w"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[27,22],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[27,33]},[]],"constraintClass":[["Data","Semigroup"],"Semigroup"],"constraintArgs":[{"annotation":[{"start":[27,32],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[27,33]},[]],"tag":"TypeVar","contents":"w"}],"constraintData":null}],"edInstanceChain":[[["Control","Extend"],{"Ident":"extendFn"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Extend"],"Extend"],"edInstanceName":{"Ident":"extendArray"},"edInstanceTypes":[{"annotation":[{"start":[32,32],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[32,37]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Control","Extend"],{"Ident":"extendArray"}]],"edInstanceChainIndex":0}}],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[59,28]}}
diff --git a/tests/purs/publish/basic-example/output/Control.Lazy/docs.json b/tests/purs/publish/basic-example/output/Control.Lazy/docs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Control.Lazy/docs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"reExports":[],"name":"Control.Lazy","comments":null,"declarations":[{"children":[{"comments":null,"title":"defer","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]},{"annotation":[],"tag":"TypeVar","contents":"l"}]}}]},{"annotation":[],"tag":"TypeVar","contents":"l"}]}},"sourceSpan":{"start":[11,3],"name":"../../../support/bower_components/purescript-control/src/Control/Lazy.purs","end":[11,28]}},{"comments":null,"title":"lazyFn","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Lazy"],"Lazy"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}},"sourceSpan":{"start":[13,1],"name":"../../../support/bower_components/purescript-control/src/Control/Lazy.purs","end":[14,27]}},{"comments":null,"title":"lazyUnit","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Lazy"],"Lazy"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}},"sourceSpan":{"start":[16,1],"name":"../../../support/bower_components/purescript-control/src/Control/Lazy.purs","end":[17,17]}}],"comments":"The `Lazy` class represents types which allow evaluation of values\nto be _deferred_.\n\nUsually, this means that a type contains a function arrow which can\nbe used to delay evaluation.\n","title":"Lazy","info":{"fundeps":[],"arguments":[["l",null]],"declType":"typeClass","superclasses":[]},"sourceSpan":{"start":[10,1],"name":"../../../support/bower_components/purescript-control/src/Control/Lazy.purs","end":[11,28]}},{"children":[],"comments":"`fix` defines a value as the fixed point of a function.\n\nThe `Lazy` instance allows us to generate the result lazily.\n","title":"fix","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["l",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Lazy"],"Lazy"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"l"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"l"}]},{"annotation":[],"tag":"TypeVar","contents":"l"}]}}]},{"annotation":[],"tag":"TypeVar","contents":"l"}]}]},null]}},"sourceSpan":{"start":[22,1],"name":"../../../support/bower_components/purescript-control/src/Control/Lazy.purs","end":[22,41]}}]}
diff --git a/tests/purs/publish/basic-example/output/Control.Lazy/externs.json b/tests/purs/publish/basic-example/output/Control.Lazy/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Control.Lazy/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Control","Lazy"],"efExports":[{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Lazy.purs","end":[25,26]},{"Ident":"defer"}]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Lazy.purs","end":[25,26]},"Lazy"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Lazy.purs","end":[25,26]},{"Ident":"fix"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"lazyFn"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"lazyUnit"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Data","Unit"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[3,19],"name":"../../../support/bower_components/purescript-control/src/Control/Lazy.purs","end":[3,23]},"Unit",[]]},{"ValueRef":[{"start":[3,25],"name":"../../../support/bower_components/purescript-control/src/Control/Lazy.purs","end":[3,29]},{"Ident":"unit"}]}]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDValue":{"edValueName":{"Ident":"defer"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["l",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["Control","Lazy"],"Lazy"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"l"}],"constraintData":null},{"annotation":[{"start":[11,12],"name":"../../../support/bower_components/purescript-control/src/Control/Lazy.purs","end":[11,28]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[11,12],"name":"../../../support/bower_components/purescript-control/src/Control/Lazy.purs","end":[11,28]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[11,24],"name":"../../../support/bower_components/purescript-control/src/Control/Lazy.purs","end":[11,26]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[11,13],"name":"../../../support/bower_components/purescript-control/src/Control/Lazy.purs","end":[11,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[11,13],"name":"../../../support/bower_components/purescript-control/src/Control/Lazy.purs","end":[11,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[11,18],"name":"../../../support/bower_components/purescript-control/src/Control/Lazy.purs","end":[11,20]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[11,13],"name":"../../../support/bower_components/purescript-control/src/Control/Lazy.purs","end":[11,17]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]},{"annotation":[{"start":[11,21],"name":"../../../support/bower_components/purescript-control/src/Control/Lazy.purs","end":[11,22]},[]],"tag":"TypeVar","contents":"l"}]}]},{"annotation":[{"start":[11,27],"name":"../../../support/bower_components/purescript-control/src/Control/Lazy.purs","end":[11,28]},[]],"tag":"TypeVar","contents":"l"}]}]},4]}}},{"EDType":{"edTypeName":"Lazy","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[11,18],"name":"../../../support/bower_components/purescript-control/src/Control/Lazy.purs","end":[11,20]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"Lazy","edTypeSynonymArguments":[["l",null]],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["defer",{"annotation":[{"start":[11,12],"name":"../../../support/bower_components/purescript-control/src/Control/Lazy.purs","end":[11,28]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[11,12],"name":"../../../support/bower_components/purescript-control/src/Control/Lazy.purs","end":[11,28]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[11,24],"name":"../../../support/bower_components/purescript-control/src/Control/Lazy.purs","end":[11,26]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[11,13],"name":"../../../support/bower_components/purescript-control/src/Control/Lazy.purs","end":[11,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[11,13],"name":"../../../support/bower_components/purescript-control/src/Control/Lazy.purs","end":[11,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[11,18],"name":"../../../support/bower_components/purescript-control/src/Control/Lazy.purs","end":[11,20]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[11,13],"name":"../../../support/bower_components/purescript-control/src/Control/Lazy.purs","end":[11,17]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]},{"annotation":[{"start":[11,21],"name":"../../../support/bower_components/purescript-control/src/Control/Lazy.purs","end":[11,22]},[]],"tag":"TypeVar","contents":"l"}]}]},{"annotation":[{"start":[11,27],"name":"../../../support/bower_components/purescript-control/src/Control/Lazy.purs","end":[11,28]},[]],"tag":"TypeVar","contents":"l"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]}}},{"EDClass":{"edClassName":"Lazy","edClassTypeArguments":[["l",null]],"edClassMembers":[[{"Ident":"defer"},{"annotation":[{"start":[11,12],"name":"../../../support/bower_components/purescript-control/src/Control/Lazy.purs","end":[11,28]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[11,12],"name":"../../../support/bower_components/purescript-control/src/Control/Lazy.purs","end":[11,28]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[11,24],"name":"../../../support/bower_components/purescript-control/src/Control/Lazy.purs","end":[11,26]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[11,13],"name":"../../../support/bower_components/purescript-control/src/Control/Lazy.purs","end":[11,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[11,13],"name":"../../../support/bower_components/purescript-control/src/Control/Lazy.purs","end":[11,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[11,18],"name":"../../../support/bower_components/purescript-control/src/Control/Lazy.purs","end":[11,20]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[11,13],"name":"../../../support/bower_components/purescript-control/src/Control/Lazy.purs","end":[11,17]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]},{"annotation":[{"start":[11,21],"name":"../../../support/bower_components/purescript-control/src/Control/Lazy.purs","end":[11,22]},[]],"tag":"TypeVar","contents":"l"}]}]},{"annotation":[{"start":[11,27],"name":"../../../support/bower_components/purescript-control/src/Control/Lazy.purs","end":[11,28]},[]],"tag":"TypeVar","contents":"l"}]}]],"edClassConstraints":[],"edFunctionalDependencies":[]}},{"EDValue":{"edValueName":{"Ident":"fix"},"edValueType":{"annotation":[{"start":[22,8],"name":"../../../support/bower_components/purescript-control/src/Control/Lazy.purs","end":[22,41]},[]],"tag":"ForAll","contents":["l",{"annotation":[{"start":[22,18],"name":"../../../support/bower_components/purescript-control/src/Control/Lazy.purs","end":[22,41]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[22,18],"name":"../../../support/bower_components/purescript-control/src/Control/Lazy.purs","end":[22,24]},[]],"constraintClass":[["Control","Lazy"],"Lazy"],"constraintArgs":[{"annotation":[{"start":[22,23],"name":"../../../support/bower_components/purescript-control/src/Control/Lazy.purs","end":[22,24]},[]],"tag":"TypeVar","contents":"l"}],"constraintData":null},{"annotation":[{"start":[22,28],"name":"../../../support/bower_components/purescript-control/src/Control/Lazy.purs","end":[22,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[22,28],"name":"../../../support/bower_components/purescript-control/src/Control/Lazy.purs","end":[22,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[22,37],"name":"../../../support/bower_components/purescript-control/src/Control/Lazy.purs","end":[22,39]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[22,29],"name":"../../../support/bower_components/purescript-control/src/Control/Lazy.purs","end":[22,35]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[22,29],"name":"../../../support/bower_components/purescript-control/src/Control/Lazy.purs","end":[22,35]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[22,31],"name":"../../../support/bower_components/purescript-control/src/Control/Lazy.purs","end":[22,33]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[22,29],"name":"../../../support/bower_components/purescript-control/src/Control/Lazy.purs","end":[22,30]},[]],"tag":"TypeVar","contents":"l"}]},{"annotation":[{"start":[22,34],"name":"../../../support/bower_components/purescript-control/src/Control/Lazy.purs","end":[22,35]},[]],"tag":"TypeVar","contents":"l"}]}]},{"annotation":[{"start":[22,40],"name":"../../../support/bower_components/purescript-control/src/Control/Lazy.purs","end":[22,41]},[]],"tag":"TypeVar","contents":"l"}]}]},5]}}},{"EDInstance":{"edInstanceClassName":[["Control","Lazy"],"Lazy"],"edInstanceName":{"Ident":"lazyFn"},"edInstanceTypes":[{"annotation":[{"start":[13,26],"name":"../../../support/bower_components/purescript-control/src/Control/Lazy.purs","end":[13,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[13,26],"name":"../../../support/bower_components/purescript-control/src/Control/Lazy.purs","end":[13,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[13,28],"name":"../../../support/bower_components/purescript-control/src/Control/Lazy.purs","end":[13,30]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[13,26],"name":"../../../support/bower_components/purescript-control/src/Control/Lazy.purs","end":[13,27]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[13,31],"name":"../../../support/bower_components/purescript-control/src/Control/Lazy.purs","end":[13,32]},[]],"tag":"TypeVar","contents":"b"}]}],"edInstanceConstraints":[],"edInstanceChain":[[["Control","Lazy"],{"Ident":"lazyFn"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Lazy"],"Lazy"],"edInstanceName":{"Ident":"lazyUnit"},"edInstanceTypes":[{"annotation":[{"start":[16,27],"name":"../../../support/bower_components/purescript-control/src/Control/Lazy.purs","end":[16,31]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Control","Lazy"],{"Ident":"lazyUnit"}]],"edInstanceChainIndex":0}}],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Lazy.purs","end":[25,26]}}
diff --git a/tests/purs/publish/basic-example/output/Control.Monad.Gen.Class/docs.json b/tests/purs/publish/basic-example/output/Control.Monad.Gen.Class/docs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Control.Monad.Gen.Class/docs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"reExports":[],"name":"Control.Monad.Gen.Class","comments":null,"declarations":[{"children":[{"comments":"Chooses an integer in the specified (inclusive) range.\n","title":"chooseInt","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]}]}},"sourceSpan":{"start":[12,3],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[12,35]}},{"comments":"Chooses an floating point number in the specified (inclusive) range.\n","title":"chooseFloat","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]}]}]}},"sourceSpan":{"start":[15,3],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[15,46]}},{"comments":"Chooses a random boolean value.\n","title":"chooseBool","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}},"sourceSpan":{"start":[18,3],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[18,26]}},{"comments":"Modifies the size state for a random generator.\n","title":"resize","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Monad","Gen","Class"],"Size"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Monad","Gen","Class"],"Size"]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]},null]}},"sourceSpan":{"start":[21,3],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[21,51]}},{"comments":"Runs a generator, passing in the current size state.\n","title":"sized","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Monad","Gen","Class"],"Size"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},null]}},"sourceSpan":{"start":[24,3],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[24,42]}}],"comments":"A class for random generator implementations.\n\nInstances should provide implementations for the generation functions\nthat return choices with uniform probability.\n","title":"MonadGen","info":{"fundeps":[],"arguments":[["m",null]],"declType":"typeClass","superclasses":[{"constraintAnn":[],"constraintClass":[["Control","Monad"],"Monad"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null}]},"sourceSpan":{"start":[9,1],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[24,42]}},{"children":[],"comments":null,"title":"Size","info":{"arguments":[],"declType":"typeSynonym","type":{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}},"sourceSpan":{"start":[26,1],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[26,16]}}]}
diff --git a/tests/purs/publish/basic-example/output/Control.Monad.Gen.Class/externs.json b/tests/purs/publish/basic-example/output/Control.Monad.Gen.Class/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Control.Monad.Gen.Class/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Control","Monad","Gen","Class"],"efExports":[{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[26,16]},{"Ident":"chooseBool"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[26,16]},{"Ident":"chooseFloat"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[26,16]},{"Ident":"chooseInt"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[26,16]},{"Ident":"resize"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[26,16]},{"Ident":"sized"}]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[26,16]},"MonadGen"]},{"TypeRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[26,16]},"Size",[]]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Prelude"],"eiImportType":{"Implicit":[]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDValue":{"edValueName":{"Ident":"chooseBool"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["Control","Monad","Gen","Class"],"MonadGen"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[18,17],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[18,26]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,17],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[18,18]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[18,19],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[18,26]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]},6]}}},{"EDValue":{"edValueName":{"Ident":"chooseFloat"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["Control","Monad","Gen","Class"],"MonadGen"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[15,18],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[15,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[15,18],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[15,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[15,25],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[15,27]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[15,18],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[15,24]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]},{"annotation":[{"start":[15,28],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[15,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[15,28],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[15,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[15,35],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[15,37]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[15,28],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[15,34]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]},{"annotation":[{"start":[15,38],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[15,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[15,38],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[15,39]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[15,40],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[15,46]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]}]}]}]},5]}}},{"EDValue":{"edValueName":{"Ident":"chooseInt"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["Control","Monad","Gen","Class"],"MonadGen"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[12,16],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[12,35]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[12,16],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[12,35]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[12,20],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[12,22]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[12,16],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[12,19]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[12,23],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[12,35]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[12,23],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[12,35]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[12,27],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[12,29]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[12,23],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[12,26]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[12,30],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[12,35]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[12,30],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[12,31]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[12,32],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[12,35]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]}]}]},4]}}},{"EDValue":{"edValueName":{"Ident":"resize"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[21,13],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[21,51]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["Control","Monad","Gen","Class"],"MonadGen"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[21,23],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[21,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[21,23],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[21,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[21,38],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[21,40]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[21,24],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[21,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[21,24],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[21,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[21,29],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[21,31]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[26,13],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[26,16]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[26,13],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[26,16]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]},{"annotation":[{"start":[21,41],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[21,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[21,41],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[21,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[21,45],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[21,47]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[21,41],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[21,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[21,41],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[21,42]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[21,43],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[21,44]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[21,48],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[21,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[21,48],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[21,49]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[21,50],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[21,51]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]},2]},3]}}},{"EDValue":{"edValueName":{"Ident":"sized"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[24,12],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[24,42]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["Control","Monad","Gen","Class"],"MonadGen"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[24,22],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[24,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[24,22],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[24,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[24,36],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[24,38]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[24,23],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[24,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[24,23],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[24,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[24,28],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[24,30]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[26,13],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[26,16]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[24,31],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[24,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[24,31],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[24,32]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[24,33],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[24,34]},[]],"tag":"TypeVar","contents":"a"}]}]}]},{"annotation":[{"start":[24,39],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[24,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[24,39],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[24,40]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[24,41],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[24,42]},[]],"tag":"TypeVar","contents":"a"}]}]}]},0]},1]}}},{"EDType":{"edTypeName":"MonadGen","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[12,30],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[12,35]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[12,32],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[12,35]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[12,27],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[12,29]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"MonadGen","edTypeSynonymArguments":[["m",null]],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["chooseInt",{"annotation":[{"start":[12,16],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[12,35]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[12,16],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[12,35]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[12,20],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[12,22]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[12,16],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[12,19]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[12,23],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[12,35]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[12,23],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[12,35]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[12,27],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[12,29]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[12,23],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[12,26]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[12,30],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[12,35]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[12,30],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[12,31]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[12,32],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[12,35]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["chooseFloat",{"annotation":[{"start":[15,18],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[15,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[15,18],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[15,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[15,25],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[15,27]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[15,18],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[15,24]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]},{"annotation":[{"start":[15,28],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[15,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[15,28],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[15,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[15,35],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[15,37]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[15,28],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[15,34]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]},{"annotation":[{"start":[15,38],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[15,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[15,38],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[15,39]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[15,40],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[15,46]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["chooseBool",{"annotation":[{"start":[18,17],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[18,26]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,17],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[18,18]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[18,19],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[18,26]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["resize",{"annotation":[{"start":[21,13],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[21,51]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[21,23],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[21,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[21,23],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[21,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[21,38],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[21,40]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[21,24],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[21,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[21,24],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[21,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[21,29],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[21,31]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[21,24],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[21,28]},[]],"tag":"TypeConstructor","contents":[["Control","Monad","Gen","Class"],"Size"]}]},{"annotation":[{"start":[21,32],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[21,36]},[]],"tag":"TypeConstructor","contents":[["Control","Monad","Gen","Class"],"Size"]}]}]},{"annotation":[{"start":[21,41],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[21,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[21,41],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[21,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[21,45],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[21,47]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[21,41],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[21,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[21,41],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[21,42]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[21,43],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[21,44]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[21,48],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[21,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[21,48],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[21,49]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[21,50],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[21,51]},[]],"tag":"TypeVar","contents":"a"}]}]}]},null]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["sized",{"annotation":[{"start":[24,12],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[24,42]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[24,22],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[24,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[24,22],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[24,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[24,36],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[24,38]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[24,23],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[24,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[24,23],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[24,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[24,28],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[24,30]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[24,23],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[24,27]},[]],"tag":"TypeConstructor","contents":[["Control","Monad","Gen","Class"],"Size"]}]},{"annotation":[{"start":[24,31],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[24,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[24,31],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[24,32]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[24,33],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[24,34]},[]],"tag":"TypeVar","contents":"a"}]}]}]},{"annotation":[{"start":[24,39],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[24,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[24,39],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[24,40]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[24,41],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[24,42]},[]],"tag":"TypeVar","contents":"a"}]}]},null]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["Monad0",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Control","Monad"],"Monad"]},{"annotation":[{"start":[9,13],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[9,14]},[]],"tag":"TypeVar","contents":"m"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]}]}]}]}]}]}}},{"EDClass":{"edClassName":"MonadGen","edClassTypeArguments":[["m",null]],"edClassMembers":[[{"Ident":"chooseInt"},{"annotation":[{"start":[12,16],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[12,35]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[12,16],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[12,35]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[12,20],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[12,22]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[12,16],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[12,19]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[12,23],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[12,35]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[12,23],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[12,35]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[12,27],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[12,29]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[12,23],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[12,26]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[12,30],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[12,35]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[12,30],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[12,31]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[12,32],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[12,35]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]}]}],[{"Ident":"chooseFloat"},{"annotation":[{"start":[15,18],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[15,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[15,18],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[15,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[15,25],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[15,27]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[15,18],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[15,24]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]},{"annotation":[{"start":[15,28],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[15,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[15,28],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[15,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[15,35],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[15,37]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[15,28],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[15,34]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]},{"annotation":[{"start":[15,38],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[15,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[15,38],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[15,39]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[15,40],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[15,46]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]}]}]}],[{"Ident":"chooseBool"},{"annotation":[{"start":[18,17],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[18,26]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,17],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[18,18]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[18,19],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[18,26]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}],[{"Ident":"resize"},{"annotation":[{"start":[21,13],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[21,51]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[21,23],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[21,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[21,23],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[21,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[21,38],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[21,40]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[21,24],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[21,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[21,24],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[21,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[21,29],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[21,31]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[21,24],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[21,28]},[]],"tag":"TypeConstructor","contents":[["Control","Monad","Gen","Class"],"Size"]}]},{"annotation":[{"start":[21,32],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[21,36]},[]],"tag":"TypeConstructor","contents":[["Control","Monad","Gen","Class"],"Size"]}]}]},{"annotation":[{"start":[21,41],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[21,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[21,41],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[21,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[21,45],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[21,47]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[21,41],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[21,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[21,41],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[21,42]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[21,43],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[21,44]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[21,48],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[21,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[21,48],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[21,49]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[21,50],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[21,51]},[]],"tag":"TypeVar","contents":"a"}]}]}]},null]}],[{"Ident":"sized"},{"annotation":[{"start":[24,12],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[24,42]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[24,22],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[24,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[24,22],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[24,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[24,36],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[24,38]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[24,23],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[24,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[24,23],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[24,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[24,28],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[24,30]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[24,23],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[24,27]},[]],"tag":"TypeConstructor","contents":[["Control","Monad","Gen","Class"],"Size"]}]},{"annotation":[{"start":[24,31],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[24,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[24,31],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[24,32]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[24,33],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[24,34]},[]],"tag":"TypeVar","contents":"a"}]}]}]},{"annotation":[{"start":[24,39],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[24,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[24,39],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[24,40]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[24,41],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[24,42]},[]],"tag":"TypeVar","contents":"a"}]}]},null]}]],"edClassConstraints":[{"constraintAnn":[{"start":[9,7],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[9,14]},[]],"constraintClass":[["Control","Monad"],"Monad"],"constraintArgs":[{"annotation":[{"start":[9,13],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[9,14]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null}],"edFunctionalDependencies":[]}},{"EDType":{"edTypeName":"Size","edTypeKind":{"annotation":[{"start":[26,13],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[26,16]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"Size","edTypeSynonymArguments":[],"edTypeSynonymType":{"annotation":[{"start":[26,13],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[26,16]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}}}],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[26,16]}}
diff --git a/tests/purs/publish/basic-example/output/Control.Monad.Gen.Common/docs.json b/tests/purs/publish/basic-example/output/Control.Monad.Gen.Common/docs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Control.Monad.Gen.Common/docs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"reExports":[],"name":"Control.Monad.Gen.Common","comments":null,"declarations":[{"children":[],"comments":"Creates a generator that outputs `Either` values, choosing a value from a\n`Left` or the `Right` with even probability.\n","title":"genEither","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Monad","Gen","Class"],"MonadGen"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}}]}]}]}]},null]},null]},null]}},"sourceSpan":{"start":[18,1],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[18,70]}},{"children":[],"comments":"Creates a generator that outputs `Identity` values, choosing a value from\nanother generator for the inner value.\n","title":"genIdentity","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Functor"],"Functor"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Identity"],"Identity"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]}]}]},null]},null]}},"sourceSpan":{"start":[23,1],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[23,62]}},{"children":[],"comments":"Creates a generator that outputs `Maybe` values, choosing a value from\nanother generator for the inner value. The generator has a 75% chance of\nreturning a `Just` over a `Nothing`.\n","title":"genMaybe","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Monad","Gen","Class"],"MonadGen"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]}]}]},null]},null]}},"sourceSpan":{"start":[29,1],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[29,57]}},{"children":[],"comments":"Creates a generator that outputs `Tuple` values, choosing values from a\npair of generators for each slot in the tuple.\n","title":"genTuple","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Apply"],"Apply"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}}]}]}]}]},null]},null]},null]}},"sourceSpan":{"start":[38,1],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[38,65]}},{"children":[],"comments":"Creates a generator that outputs `NonEmpty` values, choosing values from a\ngenerator for each of the items.\n\nThe size of the value will be determined by the current size state\nfor the generator. To generate a value of a particular size, use the\n`resize` function from the `MonadGen` class first.\n","title":"genNonEmpty","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Monad","Rec","Class"],"MonadRec"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Monad","Gen","Class"],"MonadGen"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Unfoldable"],"Unfoldable"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","NonEmpty"],"NonEmpty"]},{"annotation":[],"tag":"TypeVar","contents":"f"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]}]}]}]}]},null]},null]},null]}},"sourceSpan":{"start":[47,1],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[53,22]}}]}
diff --git a/tests/purs/publish/basic-example/output/Control.Monad.Gen.Common/externs.json b/tests/purs/publish/basic-example/output/Control.Monad.Gen.Common/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Control.Monad.Gen.Common/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Control","Monad","Gen","Common"],"efExports":[{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[54,67]},{"Ident":"genEither"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[54,67]},{"Ident":"genIdentity"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[54,67]},{"Ident":"genMaybe"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[54,67]},{"Ident":"genTuple"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[54,67]},{"Ident":"genNonEmpty"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Prelude"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Control","Apply"],"eiImportType":{"Explicit":[{"ValueRef":[{"start":[5,23],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[5,28]},{"Ident":"lift2"}]}]},"eiImportedAs":null},{"eiModule":["Control","Monad","Gen"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[6,27],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[6,41]},"MonadGen"]},{"ValueRef":[{"start":[6,43],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[6,49]},{"Ident":"resize"}]},{"ValueRef":[{"start":[6,51],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[6,57]},{"Ident":"choose"}]},{"ValueRef":[{"start":[6,59],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[6,70]},{"Ident":"chooseFloat"}]},{"ValueRef":[{"start":[6,72],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[6,82]},{"Ident":"unfoldable"}]}]},"eiImportedAs":null},{"eiModule":["Control","Monad","Rec","Class"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[7,33],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[7,47]},"MonadRec"]}]},"eiImportedAs":null},{"eiModule":["Data","Either"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[9,21],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[9,31]},"Either",null]}]},"eiImportedAs":null},{"eiModule":["Data","Identity"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[10,23],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[10,35]},"Identity",null]}]},"eiImportedAs":null},{"eiModule":["Data","Maybe"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[11,20],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[11,29]},"Maybe",null]}]},"eiImportedAs":null},{"eiModule":["Data","NonEmpty"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[12,23],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[12,31]},"NonEmpty",[]]},{"ValueOpRef":[{"start":[12,33],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[12,37]},":|"]}]},"eiImportedAs":null},{"eiModule":["Data","Tuple"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[13,20],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[13,29]},"Tuple",null]}]},"eiImportedAs":null},{"eiModule":["Data","Unfoldable"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[14,25],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[14,41]},"Unfoldable"]}]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDValue":{"edValueName":{"Ident":"genEither"},"edValueType":{"annotation":[{"start":[18,14],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[18,70]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[18,21],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[18,70]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[18,21],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[18,70]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[18,28],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[18,70]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[18,28],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[18,38]},[]],"constraintClass":[["Control","Monad","Gen","Class"],"MonadGen"],"constraintArgs":[{"annotation":[{"start":[18,37],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[18,38]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[18,42],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[18,70]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,42],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[18,70]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,46],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[18,48]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[18,42],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[18,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,42],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[18,43]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[18,44],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[18,45]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[18,49],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[18,70]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,49],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[18,70]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,53],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[18,55]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[18,49],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[18,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,49],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[18,50]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[18,51],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[18,52]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[18,56],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[18,70]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,56],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[18,57]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[18,59],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[18,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,59],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[18,67]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,59],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[18,65]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[18,66],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[18,67]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[18,68],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[18,69]},[]],"tag":"TypeVar","contents":"b"}]}]}]}]}]},26]},27]},28]}}},{"EDValue":{"edValueName":{"Ident":"genIdentity"},"edValueType":{"annotation":[{"start":[23,16],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[23,62]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[23,23],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[23,62]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[23,28],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[23,62]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[23,28],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[23,37]},[]],"constraintClass":[["Data","Functor"],"Functor"],"constraintArgs":[{"annotation":[{"start":[23,36],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[23,37]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[23,41],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[23,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[23,41],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[23,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[23,45],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[23,47]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[23,41],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[23,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[23,41],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[23,42]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[23,43],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[23,44]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[23,48],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[23,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[23,48],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[23,49]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[23,51],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[23,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[23,51],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[23,59]},[]],"tag":"TypeConstructor","contents":[["Data","Identity"],"Identity"]},{"annotation":[{"start":[23,60],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[23,61]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]},21]},22]}}},{"EDValue":{"edValueName":{"Ident":"genMaybe"},"edValueType":{"annotation":[{"start":[29,13],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[29,57]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[29,20],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[29,57]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[29,25],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[29,57]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[29,25],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[29,35]},[]],"constraintClass":[["Control","Monad","Gen","Class"],"MonadGen"],"constraintArgs":[{"annotation":[{"start":[29,34],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[29,35]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[29,39],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[29,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[29,39],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[29,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[29,43],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[29,45]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[29,39],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[29,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[29,39],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[29,40]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[29,41],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[29,42]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[29,46],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[29,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[29,46],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[29,47]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[29,49],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[29,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[29,49],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[29,54]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[29,55],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[29,56]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]},16]},17]}}},{"EDValue":{"edValueName":{"Ident":"genTuple"},"edValueType":{"annotation":[{"start":[38,13],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[38,65]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[38,20],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[38,65]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[38,20],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[38,65]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[38,27],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[38,65]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[38,27],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[38,34]},[]],"constraintClass":[["Control","Apply"],"Apply"],"constraintArgs":[{"annotation":[{"start":[38,33],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[38,34]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[38,38],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[38,65]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[38,38],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[38,65]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[38,42],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[38,44]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[38,38],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[38,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[38,38],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[38,39]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[38,40],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[38,41]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[38,45],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[38,65]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[38,45],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[38,65]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[38,49],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[38,51]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[38,45],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[38,48]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[38,45],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[38,46]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[38,47],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[38,48]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[38,52],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[38,65]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[38,52],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[38,53]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[38,55],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[38,64]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[38,55],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[38,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[38,55],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[38,60]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[38,61],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[38,62]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[38,63],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[38,64]},[]],"tag":"TypeVar","contents":"b"}]}]}]}]}]},0]},1]},2]}}},{"EDValue":{"edValueName":{"Ident":"genNonEmpty"},"edValueType":{"annotation":[{"start":[48,6],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[53,22]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[48,13],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[53,22]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[48,13],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[53,22]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[49,6],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[53,22]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[49,6],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[49,16]},[]],"constraintClass":[["Control","Monad","Rec","Class"],"MonadRec"],"constraintArgs":[{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[49,16]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[50,6],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[53,22]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[50,6],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[50,16]},[]],"constraintClass":[["Control","Monad","Gen","Class"],"MonadGen"],"constraintArgs":[{"annotation":[{"start":[50,15],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[50,16]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[51,6],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[53,22]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[51,6],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[51,18]},[]],"constraintClass":[["Data","Unfoldable"],"Unfoldable"],"constraintArgs":[{"annotation":[{"start":[51,17],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[51,18]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[52,6],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[53,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,6],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[53,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,3],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[53,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[52,6],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[52,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,6],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[52,7]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[52,8],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[52,9]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[53,6],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[53,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,6],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[53,7]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[53,9],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[53,21]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,9],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[53,19]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,9],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[53,17]},[]],"tag":"TypeConstructor","contents":[["Data","NonEmpty"],"NonEmpty"]},{"annotation":[{"start":[53,18],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[53,19]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[53,20],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[53,21]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]}]}]},8]},9]},10]}}}],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[54,67]}}
diff --git a/tests/purs/publish/basic-example/output/Control.Monad.Gen/docs.json b/tests/purs/publish/basic-example/output/Control.Monad.Gen/docs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Control.Monad.Gen/docs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"reExports":[],"name":"Control.Monad.Gen","comments":null,"declarations":[{"children":[],"comments":"Creates a generator that outputs a value chosen from one of two existing\nexisting generators with even probability.\n","title":"choose","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Monad","Gen","Class"],"MonadGen"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]}]},null]},null]}},"sourceSpan":{"start":[28,1],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[28,54]}},{"children":[],"comments":"Creates a generator that outputs a value chosen from a selection of\nexisting generators with uniform probability.\n","title":"oneOf","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Monad","Gen","Class"],"MonadGen"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Semigroup","Foldable"],"Foldable1"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]}]},null]},null]},null]}},"sourceSpan":{"start":[33,1],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[33,67]}},{"children":[],"comments":"Creates a generator that outputs a value chosen from a selection of\nexisting generators, where the selection has weight values for the\nprobability of choice for each generator. The probability values will be\nnormalised.\n","title":"frequency","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Monad","Gen","Class"],"MonadGen"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Semigroup","Foldable"],"Foldable1"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]}}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]}]},null]},null]},null]}},"sourceSpan":{"start":[61,1],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[66,9]}},{"children":[],"comments":"Creates a generator that outputs a value chosen from a selection with\nuniform probability.\n","title":"elements","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Monad","Gen","Class"],"MonadGen"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Semigroup","Foldable"],"Foldable1"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]}]},null]},null]},null]}},"sourceSpan":{"start":[73,1],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[73,66]}},{"children":[],"comments":"Creates a generator that produces unfoldable structures based on an\nexisting generator for the elements.\n\nThe size of the unfoldable will be determined by the current size state\nfor the generator. To generate an unfoldable structure of a particular\nsize, use the `resize` function from the `MonadGen` class first.\n","title":"unfoldable","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Monad","Rec","Class"],"MonadRec"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Monad","Gen","Class"],"MonadGen"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Unfoldable"],"Unfoldable"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]}]}]}]}]},null]},null]},null]}},"sourceSpan":{"start":[84,1],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[90,13]}},{"children":[],"comments":"Creates a generator that repeatedly run another generator until its output\nmatches a given predicate. This will never halt if the predicate always\nfails.\n","title":"suchThat","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Monad","Rec","Class"],"MonadRec"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Monad","Gen","Class"],"MonadGen"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]}]}]},null]},null]}},"sourceSpan":{"start":[108,1],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[108,81]}},{"children":[],"comments":"Creates a generator that repeatedly run another generator until it produces\n`Just` node. This will never halt if the input generatr always produces Nothing.\n","title":"filtered","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Monad","Rec","Class"],"MonadRec"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Monad","Gen","Class"],"MonadGen"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]}]},null]},null]}},"sourceSpan":{"start":[113,1],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[113,71]}}]}
diff --git a/tests/purs/publish/basic-example/output/Control.Monad.Gen/externs.json b/tests/purs/publish/basic-example/output/Control.Monad.Gen/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Control.Monad.Gen/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Control","Monad","Gen"],"efExports":[{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[139,52]},{"exportSourceImportedFrom":["Control","Monad","Gen","Class"],"exportSourceDefinedIn":["Control","Monad","Gen","Class"]},{"TypeRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[139,52]},"Size",[]]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[139,52]},{"exportSourceImportedFrom":["Control","Monad","Gen","Class"],"exportSourceDefinedIn":["Control","Monad","Gen","Class"]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[139,52]},"MonadGen"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[139,52]},{"exportSourceImportedFrom":["Control","Monad","Gen","Class"],"exportSourceDefinedIn":["Control","Monad","Gen","Class"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[139,52]},{"Ident":"chooseBool"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[139,52]},{"exportSourceImportedFrom":["Control","Monad","Gen","Class"],"exportSourceDefinedIn":["Control","Monad","Gen","Class"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[139,52]},{"Ident":"chooseFloat"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[139,52]},{"exportSourceImportedFrom":["Control","Monad","Gen","Class"],"exportSourceDefinedIn":["Control","Monad","Gen","Class"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[139,52]},{"Ident":"chooseInt"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[139,52]},{"exportSourceImportedFrom":["Control","Monad","Gen","Class"],"exportSourceDefinedIn":["Control","Monad","Gen","Class"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[139,52]},{"Ident":"resize"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[139,52]},{"exportSourceImportedFrom":["Control","Monad","Gen","Class"],"exportSourceDefinedIn":["Control","Monad","Gen","Class"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[139,52]},{"Ident":"sized"}]}]},{"ModuleRef":[{"start":[2,5],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[2,35]},["Control","Monad","Gen","Class"]]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[139,52]},{"Ident":"choose"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[139,52]},{"Ident":"oneOf"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[139,52]},{"Ident":"frequency"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[139,52]},{"Ident":"elements"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[139,52]},{"Ident":"unfoldable"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[139,52]},{"Ident":"suchThat"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[139,52]},{"Ident":"filtered"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Prelude"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Control","Monad","Gen","Class"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[14,33],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[14,47]},"MonadGen"]},{"TypeRef":[{"start":[14,49],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[14,53]},"Size",[]]},{"ValueRef":[{"start":[14,55],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[14,65]},{"Ident":"chooseBool"}]},{"ValueRef":[{"start":[14,67],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[14,78]},{"Ident":"chooseFloat"}]},{"ValueRef":[{"start":[14,80],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[14,89]},{"Ident":"chooseInt"}]},{"ValueRef":[{"start":[14,91],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[14,97]},{"Ident":"resize"}]},{"ValueRef":[{"start":[14,99],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[14,104]},{"Ident":"sized"}]}]},"eiImportedAs":null},{"eiModule":["Control","Monad","Rec","Class"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[15,33],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[15,47]},"MonadRec"]},{"TypeRef":[{"start":[15,49],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[15,57]},"Step",null]},{"ValueRef":[{"start":[15,59],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[15,67]},{"Ident":"tailRecM"}]}]},"eiImportedAs":null},{"eiModule":["Data","Foldable"],"eiImportType":{"Explicit":[{"ValueRef":[{"start":[16,23],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[16,30]},{"Ident":"foldMap"}]},{"ValueRef":[{"start":[16,32],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[16,38]},{"Ident":"length"}]}]},"eiImportedAs":null},{"eiModule":["Data","Maybe"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[17,20],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[17,29]},"Maybe",null]}]},"eiImportedAs":null},{"eiModule":["Data","Monoid","Additive"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[18,30],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[18,42]},"Additive",null]}]},"eiImportedAs":null},{"eiModule":["Data","Newtype"],"eiImportType":{"Explicit":[{"ValueRef":[{"start":[19,22],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[19,26]},{"Ident":"alaF"}]}]},"eiImportedAs":null},{"eiModule":["Data","Semigroup","Foldable"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[20,33],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[20,48]},"Foldable1"]},{"ValueRef":[{"start":[20,50],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[20,58]},{"Ident":"foldMap1"}]}]},"eiImportedAs":null},{"eiModule":["Data","Tuple"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[21,20],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[21,29]},"Tuple",null]},{"ValueRef":[{"start":[21,31],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[21,34]},{"Ident":"fst"}]},{"ValueRef":[{"start":[21,36],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[21,39]},{"Ident":"snd"}]}]},"eiImportedAs":null},{"eiModule":["Data","Unfoldable"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[22,25],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[22,41]},"Unfoldable"]},{"ValueRef":[{"start":[22,43],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[22,50]},{"Ident":"unfoldr"}]}]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDValue":{"edValueName":{"Ident":"choose"},"edValueType":{"annotation":[{"start":[28,11],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[28,54]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[28,18],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[28,54]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[28,23],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[28,54]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[28,23],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[28,33]},[]],"constraintClass":[["Control","Monad","Gen","Class"],"MonadGen"],"constraintArgs":[{"annotation":[{"start":[28,32],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[28,33]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[28,37],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[28,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[28,37],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[28,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[28,41],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[28,43]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[28,37],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[28,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[28,37],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[28,38]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[28,39],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[28,40]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[28,44],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[28,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[28,44],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[28,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[28,48],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[28,50]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[28,44],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[28,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[28,44],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[28,45]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[28,46],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[28,47]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[28,51],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[28,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[28,51],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[28,52]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[28,53],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[28,54]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]},32]},33]}}},{"EDValue":{"edValueName":{"Ident":"oneOf"},"edValueType":{"annotation":[{"start":[33,10],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[33,67]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[33,17],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[33,67]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[33,17],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[33,67]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[33,24],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[33,67]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[33,24],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[33,34]},[]],"constraintClass":[["Control","Monad","Gen","Class"],"MonadGen"],"constraintArgs":[{"annotation":[{"start":[33,33],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[33,34]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[33,38],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[33,67]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[33,38],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[33,49]},[]],"constraintClass":[["Data","Semigroup","Foldable"],"Foldable1"],"constraintArgs":[{"annotation":[{"start":[33,48],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[33,49]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[33,53],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[33,67]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[33,53],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[33,67]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[33,61],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[33,63]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[33,53],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[33,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[33,53],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[33,54]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[33,56],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[33,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[33,56],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[33,57]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[33,58],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[33,59]},[]],"tag":"TypeVar","contents":"a"}]}]}]},{"annotation":[{"start":[33,64],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[33,67]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[33,64],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[33,65]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[33,66],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[33,67]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]},49]},50]},51]}}},{"EDValue":{"edValueName":{"Ident":"frequency"},"edValueType":{"annotation":[{"start":[62,6],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[66,9]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[62,13],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[66,9]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[62,13],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[66,9]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[63,6],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[66,9]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[63,6],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[63,16]},[]],"constraintClass":[["Control","Monad","Gen","Class"],"MonadGen"],"constraintArgs":[{"annotation":[{"start":[63,15],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[63,16]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[64,6],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[66,9]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[64,6],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[64,17]},[]],"constraintClass":[["Data","Semigroup","Foldable"],"Foldable1"],"constraintArgs":[{"annotation":[{"start":[64,16],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[64,17]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[65,6],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[66,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[65,6],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[66,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[66,3],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[66,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[65,6],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[65,28]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[65,6],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[65,7]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[65,9],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[65,27]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[65,9],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[65,21]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[65,9],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[65,14]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[65,15],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[65,21]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]},{"annotation":[{"start":[65,23],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[65,26]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[65,23],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[65,24]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[65,25],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[65,26]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]},{"annotation":[{"start":[66,6],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[66,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[66,6],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[66,7]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[66,8],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[66,9]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]},17]},18]},19]}}},{"EDValue":{"edValueName":{"Ident":"elements"},"edValueType":{"annotation":[{"start":[73,13],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[73,66]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[73,20],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[73,66]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[73,20],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[73,66]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[73,27],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[73,66]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[73,27],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[73,37]},[]],"constraintClass":[["Control","Monad","Gen","Class"],"MonadGen"],"constraintArgs":[{"annotation":[{"start":[73,36],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[73,37]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[73,41],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[73,66]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[73,41],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[73,52]},[]],"constraintClass":[["Data","Semigroup","Foldable"],"Foldable1"],"constraintArgs":[{"annotation":[{"start":[73,51],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[73,52]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[73,56],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[73,66]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[73,56],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[73,66]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[73,60],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[73,62]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[73,56],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[73,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[73,56],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[73,57]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[73,58],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[73,59]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[73,63],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[73,66]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[73,63],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[73,64]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[73,65],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[73,66]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]},43]},44]},45]}}},{"EDValue":{"edValueName":{"Ident":"unfoldable"},"edValueType":{"annotation":[{"start":[85,6],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[90,13]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[85,13],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[90,13]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[85,13],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[90,13]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[86,6],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[90,13]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[86,6],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[86,16]},[]],"constraintClass":[["Control","Monad","Rec","Class"],"MonadRec"],"constraintArgs":[{"annotation":[{"start":[86,15],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[86,16]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[87,6],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[90,13]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[87,6],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[87,16]},[]],"constraintClass":[["Control","Monad","Gen","Class"],"MonadGen"],"constraintArgs":[{"annotation":[{"start":[87,15],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[87,16]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[88,6],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[90,13]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[88,6],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[88,18]},[]],"constraintClass":[["Data","Unfoldable"],"Unfoldable"],"constraintArgs":[{"annotation":[{"start":[88,17],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[88,18]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[89,6],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[90,13]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[89,6],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[90,13]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[90,3],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[90,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[89,6],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[89,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[89,6],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[89,7]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[89,8],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[89,9]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[90,6],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[90,13]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[90,6],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[90,7]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[90,9],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[90,12]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[90,9],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[90,10]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[90,11],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[90,12]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]}]}]},0]},1]},2]}}},{"EDValue":{"edValueName":{"Ident":"suchThat"},"edValueType":{"annotation":[{"start":[108,13],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[108,81]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[108,20],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[108,81]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[108,25],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[108,81]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[108,25],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[108,35]},[]],"constraintClass":[["Control","Monad","Rec","Class"],"MonadRec"],"constraintArgs":[{"annotation":[{"start":[108,34],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[108,35]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[108,39],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[108,81]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[108,39],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[108,49]},[]],"constraintClass":[["Control","Monad","Gen","Class"],"MonadGen"],"constraintArgs":[{"annotation":[{"start":[108,48],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[108,49]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[108,53],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[108,81]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[108,53],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[108,81]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[108,57],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[108,59]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[108,53],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[108,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[108,53],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[108,54]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[108,55],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[108,56]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[108,60],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[108,81]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[108,60],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[108,81]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[108,75],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[108,77]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[108,61],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[108,73]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[108,61],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[108,73]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[108,63],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[108,65]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[108,61],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[108,62]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[108,66],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[108,73]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]},{"annotation":[{"start":[108,78],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[108,81]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[108,78],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[108,79]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[108,80],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[108,81]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]}]},28]},29]}}},{"EDValue":{"edValueName":{"Ident":"filtered"},"edValueType":{"annotation":[{"start":[113,13],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[113,71]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[113,20],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[113,71]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[113,25],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[113,71]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[113,25],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[113,35]},[]],"constraintClass":[["Control","Monad","Rec","Class"],"MonadRec"],"constraintArgs":[{"annotation":[{"start":[113,34],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[113,35]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[113,39],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[113,71]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[113,39],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[113,49]},[]],"constraintClass":[["Control","Monad","Gen","Class"],"MonadGen"],"constraintArgs":[{"annotation":[{"start":[113,48],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[113,49]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[113,53],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[113,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[113,53],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[113,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[113,65],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[113,67]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[113,53],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[113,64]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[113,53],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[113,54]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[113,56],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[113,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[113,56],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[113,61]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[113,62],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[113,63]},[]],"tag":"TypeVar","contents":"a"}]}]}]},{"annotation":[{"start":[113,68],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[113,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[113,68],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[113,69]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[113,70],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[113,71]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]},24]},25]}}}],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen.purs","end":[139,52]}}
diff --git a/tests/purs/publish/basic-example/output/Control.Monad.Rec.Class/docs.json b/tests/purs/publish/basic-example/output/Control.Monad.Rec.Class/docs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Control.Monad.Rec.Class/docs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"reExports":[],"name":"Control.Monad.Rec.Class","comments":null,"declarations":[{"children":[{"comments":null,"title":"Loop","info":{"arguments":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"declType":"dataConstructor"},"sourceSpan":null},{"comments":null,"title":"Done","info":{"arguments":[{"annotation":[],"tag":"TypeVar","contents":"b"}],"declType":"dataConstructor"},"sourceSpan":null},{"comments":null,"title":"functorStep","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Functor"],"Functor"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Monad","Rec","Class"],"Step"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[25,1],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[25,48]}},{"comments":null,"title":"bifunctorStep","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Bifunctor"],"Bifunctor"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Monad","Rec","Class"],"Step"]}]}},"sourceSpan":{"start":[27,1],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[29,34]}}],"comments":"The result of a computation: either `Loop` containing the updated\naccumulator, or `Done` containing the final result of the computation.\n","title":"Step","info":{"declType":"data","dataDeclType":"data","typeArguments":[["a",null],["b",null]]},"sourceSpan":{"start":[23,1],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[23,32]}},{"children":[{"comments":null,"title":"tailRecM","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Monad","Rec","Class"],"Step"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}]},null]},null]}},"sourceSpan":{"start":[53,3],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[53,58]}},{"comments":null,"title":"monadRecIdentity","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Monad","Rec","Class"],"MonadRec"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Identity"],"Identity"]}]}},"sourceSpan":{"start":[94,1],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[96,39]}},{"comments":null,"title":"monadRecEffect","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Monad","Rec","Class"],"MonadRec"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Effect"],"Effect"]}]}},"sourceSpan":{"start":[98,1],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[111,44]}},{"comments":null,"title":"monadRecFunction","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Monad","Rec","Class"],"MonadRec"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"e"}]}]}},"sourceSpan":{"start":[113,1],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[114,45]}},{"comments":null,"title":"monadRecEither","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Monad","Rec","Class"],"MonadRec"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[],"tag":"TypeVar","contents":"e"}]}]}},"sourceSpan":{"start":[116,1],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[122,24]}},{"comments":null,"title":"monadRecMaybe","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Monad","Rec","Class"],"MonadRec"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]}]}},"sourceSpan":{"start":[124,1],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[130,24]}}],"comments":"This type class captures those monads which support tail recursion in\nconstant stack space.\n\nThe `tailRecM` function takes a step function, and applies that step\nfunction recursively until a pure value of type `b` is found.\n\nInstances are provided for standard monad transformers.\n\nFor example:\n\n```purescript\nloopWriter :: Number -> WriterT Sum (Eff (trace :: Trace)) Unit\nloopWriter n = tailRecM go n\n  where\n  go 0 = do\n    lift $ trace \"Done!\"\n    pure (Done unit)\n  go n = do\n    tell $ Sum n\n    pure (Loop (n - 1))\n```\n","title":"MonadRec","info":{"fundeps":[],"arguments":[["m",null]],"declType":"typeClass","superclasses":[{"constraintAnn":[],"constraintClass":[["Control","Monad"],"Monad"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null}]},"sourceSpan":{"start":[52,1],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[53,58]}},{"children":[],"comments":"Create a pure tail-recursive function of one argument\n\nFor example:\n\n```purescript\npow :: Number -> Number -> Number\npow n p = tailRec go { accum: 1, power: p }\n  where\n  go :: _ -> Step _ Number\n  go { accum: acc, power: 0 } = Done acc\n  go { accum: acc, power: p } = Loop { accum: acc * n, power: p - 1 }\n```\n","title":"tailRec","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Monad","Rec","Class"],"Step"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]},null]},null]}},"sourceSpan":{"start":[88,1],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[88,49]}},{"children":[],"comments":"Create a tail-recursive function of two arguments which uses constant stack space.\n","title":"tailRecM2","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Monad","Rec","Class"],"MonadRec"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Monad","Rec","Class"],"Step"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"RCons","contents":["a",{"annotation":[],"tag":"TypeVar","contents":"a"},{"annotation":[],"tag":"RCons","contents":["b",{"annotation":[],"tag":"TypeVar","contents":"b"},{"annotation":[],"tag":"REmpty"}]}]}]}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]}}]}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"c"}]}]}]}]}]},null]},null]},null]},null]}},"sourceSpan":{"start":[56,1],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[62,9]}},{"children":[],"comments":"Create a tail-recursive function of three arguments which uses constant stack space.\n","title":"tailRecM3","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["d",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Monad","Rec","Class"],"MonadRec"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Monad","Rec","Class"],"Step"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"RCons","contents":["a",{"annotation":[],"tag":"TypeVar","contents":"a"},{"annotation":[],"tag":"RCons","contents":["b",{"annotation":[],"tag":"TypeVar","contents":"b"},{"annotation":[],"tag":"RCons","contents":["c",{"annotation":[],"tag":"TypeVar","contents":"c"},{"annotation":[],"tag":"REmpty"}]}]}]}]}]},{"annotation":[],"tag":"TypeVar","contents":"d"}]}}]}]}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"d"}]}]}]}]}]}]},null]},null]},null]},null]},null]}},"sourceSpan":{"start":[66,1],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[73,9]}},{"children":[],"comments":"`forever` runs an action indefinitely, using the `MonadRec` instance to\nensure constant stack usage.\n\nFor example:\n\n```purescript\nmain = forever $ trace \"Hello, World!\"\n```\n","title":"forever","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Monad","Rec","Class"],"MonadRec"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}]},null]},null]},null]}},"sourceSpan":{"start":[140,1],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[140,50]}}]}
diff --git a/tests/purs/publish/basic-example/output/Control.Monad.Rec.Class/externs.json b/tests/purs/publish/basic-example/output/Control.Monad.Rec.Class/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Control.Monad.Rec.Class/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Control","Monad","Rec","Class"],"efExports":[{"TypeRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[141,48]},"Step",["Loop","Done"]]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[141,48]},"MonadRec"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[141,48]},{"Ident":"tailRec"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[141,48]},{"Ident":"tailRecM"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[141,48]},{"Ident":"tailRecM2"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[141,48]},{"Ident":"tailRecM3"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[141,48]},{"Ident":"forever"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"functorStep"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"bifunctorStep"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"monadRecIdentity"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"monadRecEffect"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"monadRecFunction"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"monadRecEither"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"monadRecMaybe"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Prelude"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Data","Bifunctor"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[13,24],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[13,39]},"Bifunctor"]}]},"eiImportedAs":null},{"eiModule":["Data","Either"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[14,21],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[14,31]},"Either",null]}]},"eiImportedAs":null},{"eiModule":["Data","Identity"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[15,23],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[15,35]},"Identity",null]}]},"eiImportedAs":null},{"eiModule":["Data","Maybe"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[16,20],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[16,29]},"Maybe",null]}]},"eiImportedAs":null},{"eiModule":["Effect"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[17,16],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[17,22]},"Effect",[]]},{"ValueRef":[{"start":[17,24],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[17,30]},{"Ident":"untilE"}]}]},"eiImportedAs":null},{"eiModule":["Effect","Ref"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Ref"]},{"eiModule":["Partial","Unsafe"],"eiImportType":{"Explicit":[{"ValueRef":[{"start":[19,24],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[19,37]},{"Ident":"unsafePartial"}]}]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDType":{"edTypeName":"Step","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[23,22],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[23,23]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[23,31],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[23,32]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]},"edTypeDeclarationKind":{"DataType":{"args":[["a",{"annotation":[{"start":[23,22],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[23,23]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["b",{"annotation":[{"start":[23,31],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[23,32]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]],"ctors":[["Loop",[{"annotation":[{"start":[23,22],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[23,23]},[]],"tag":"TypeVar","contents":"a"}]],["Done",[{"annotation":[{"start":[23,31],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[23,32]},[]],"tag":"TypeVar","contents":"b"}]]]}}}},{"EDDataConstructor":{"edDataCtorName":"Loop","edDataCtorOrigin":"data","edDataCtorTypeCtor":"Step","edDataCtorType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[23,22],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[23,23]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Control","Monad","Rec","Class"],"Step"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"b"}]}]},null]},null]},"edDataCtorFields":[{"Ident":"value0"}]}},{"EDDataConstructor":{"edDataCtorName":"Done","edDataCtorOrigin":"data","edDataCtorTypeCtor":"Step","edDataCtorType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[23,31],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[23,32]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Control","Monad","Rec","Class"],"Step"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"b"}]}]},null]},null]},"edDataCtorFields":[{"Ident":"value0"}]}},{"EDType":{"edTypeName":"MonadRec","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[53,33],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[53,45]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[53,36],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[53,40]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[53,30],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[53,32]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"MonadRec","edTypeSynonymArguments":[["m",null]],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["tailRecM",{"annotation":[{"start":[53,15],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[53,58]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[53,22],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[53,58]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[53,27],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[53,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,27],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[53,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,47],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[53,49]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[53,28],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[53,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,28],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[53,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,30],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[53,32]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[53,28],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[53,29]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[53,33],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[53,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,33],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[53,34]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[53,36],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[53,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,36],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[53,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,36],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[53,40]},[]],"tag":"TypeConstructor","contents":[["Control","Monad","Rec","Class"],"Step"]},{"annotation":[{"start":[53,41],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[53,42]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[53,43],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[53,44]},[]],"tag":"TypeVar","contents":"b"}]}]}]}]},{"annotation":[{"start":[53,50],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[53,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,50],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[53,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,52],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[53,54]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[53,50],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[53,51]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[53,55],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[53,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,55],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[53,56]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[53,57],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[53,58]},[]],"tag":"TypeVar","contents":"b"}]}]}]},null]},null]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["Monad0",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Control","Monad"],"Monad"]},{"annotation":[{"start":[52,13],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[52,14]},[]],"tag":"TypeVar","contents":"m"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]}]}}},{"EDClass":{"edClassName":"MonadRec","edClassTypeArguments":[["m",null]],"edClassMembers":[[{"Ident":"tailRecM"},{"annotation":[{"start":[53,15],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[53,58]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[53,22],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[53,58]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[53,27],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[53,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,27],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[53,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,47],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[53,49]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[53,28],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[53,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,28],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[53,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,30],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[53,32]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[53,28],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[53,29]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[53,33],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[53,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,33],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[53,34]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[53,36],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[53,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,36],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[53,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,36],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[53,40]},[]],"tag":"TypeConstructor","contents":[["Control","Monad","Rec","Class"],"Step"]},{"annotation":[{"start":[53,41],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[53,42]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[53,43],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[53,44]},[]],"tag":"TypeVar","contents":"b"}]}]}]}]},{"annotation":[{"start":[53,50],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[53,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,50],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[53,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,52],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[53,54]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[53,50],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[53,51]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[53,55],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[53,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,55],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[53,56]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[53,57],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[53,58]},[]],"tag":"TypeVar","contents":"b"}]}]}]},null]},null]}]],"edClassConstraints":[{"constraintAnn":[{"start":[52,7],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[52,14]},[]],"constraintClass":[["Control","Monad"],"Monad"],"constraintArgs":[{"annotation":[{"start":[52,13],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[52,14]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null}],"edFunctionalDependencies":[]}},{"EDValue":{"edValueName":{"Ident":"tailRec"},"edValueType":{"annotation":[{"start":[88,12],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[88,49]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[88,19],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[88,49]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[88,24],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[88,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[88,24],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[88,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[88,40],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[88,42]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[88,25],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[88,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[88,25],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[88,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[88,27],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[88,29]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[88,25],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[88,26]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[88,30],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[88,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[88,30],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[88,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[88,30],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[88,34]},[]],"tag":"TypeConstructor","contents":[["Control","Monad","Rec","Class"],"Step"]},{"annotation":[{"start":[88,35],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[88,36]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[88,37],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[88,38]},[]],"tag":"TypeVar","contents":"b"}]}]}]},{"annotation":[{"start":[88,43],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[88,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[88,43],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[88,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[88,45],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[88,47]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[88,43],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[88,44]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[88,48],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[88,49]},[]],"tag":"TypeVar","contents":"b"}]}]},21]},22]}}},{"EDValue":{"edValueName":{"Ident":"tailRecM"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[53,15],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[53,58]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[53,22],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[53,58]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["Control","Monad","Rec","Class"],"MonadRec"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[53,27],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[53,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,27],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[53,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,47],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[53,49]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[53,28],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[53,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,28],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[53,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,30],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[53,32]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[53,28],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[53,29]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[53,33],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[53,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,33],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[53,34]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[53,36],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[53,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,36],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[53,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,36],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[53,40]},[]],"tag":"TypeConstructor","contents":[["Control","Monad","Rec","Class"],"Step"]},{"annotation":[{"start":[53,41],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[53,42]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[53,43],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[53,44]},[]],"tag":"TypeVar","contents":"b"}]}]}]}]},{"annotation":[{"start":[53,50],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[53,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,50],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[53,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,52],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[53,54]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[53,50],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[53,51]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[53,55],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[53,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,55],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[53,56]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[53,57],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[53,58]},[]],"tag":"TypeVar","contents":"b"}]}]}]}]},0]},1]},2]}}},{"EDValue":{"edValueName":{"Ident":"tailRecM2"},"edValueType":{"annotation":[{"start":[57,6],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[62,9]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[57,13],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[62,9]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[57,13],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[62,9]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[57,13],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[62,9]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[58,6],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[62,9]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[58,6],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[58,16]},[]],"constraintClass":[["Control","Monad","Rec","Class"],"MonadRec"],"constraintArgs":[{"annotation":[{"start":[58,15],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[58,16]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[59,6],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[62,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[59,6],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[62,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[60,3],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[60,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[59,7],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[59,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[59,7],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[59,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[59,9],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[59,11]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[59,7],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[59,8]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[59,12],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[59,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[59,12],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[59,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[59,14],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[59,16]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[59,12],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[59,13]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[59,17],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[59,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[59,17],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[59,18]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[59,20],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[59,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[59,20],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[59,43]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[59,20],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[59,24]},[]],"tag":"TypeConstructor","contents":[["Control","Monad","Rec","Class"],"Step"]},{"annotation":[{"start":[59,25],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[59,43]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[59,25],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[59,26]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[59,27],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[59,33]},[]],"tag":"RCons","contents":["a",{"annotation":[{"start":[59,32],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[59,33]},[]],"tag":"TypeVar","contents":"a"},{"annotation":[{"start":[59,35],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[59,41]},[]],"tag":"RCons","contents":["b",{"annotation":[{"start":[59,40],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[59,41]},[]],"tag":"TypeVar","contents":"b"},{"annotation":[{"start":[59,42],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[59,43]},[]],"tag":"REmpty"}]}]}]}]},{"annotation":[{"start":[59,44],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[59,45]},[]],"tag":"TypeVar","contents":"c"}]}]}]}]}]},{"annotation":[{"start":[60,6],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[62,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[60,6],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[62,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[61,3],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[61,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[60,6],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[60,7]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[61,6],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[62,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[61,6],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[62,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[62,3],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[62,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[61,6],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[61,7]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[62,6],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[62,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[62,6],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[62,7]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[62,8],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[62,9]},[]],"tag":"TypeVar","contents":"c"}]}]}]}]}]},3]},4]},5]},6]}}},{"EDValue":{"edValueName":{"Ident":"tailRecM3"},"edValueType":{"annotation":[{"start":[67,6],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[73,9]},[]],"tag":"ForAll","contents":["d",{"annotation":[{"start":[67,13],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[73,9]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[67,13],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[73,9]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[67,13],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[73,9]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[67,13],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[73,9]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[68,6],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[73,9]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[68,6],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[68,16]},[]],"constraintClass":[["Control","Monad","Rec","Class"],"MonadRec"],"constraintArgs":[{"annotation":[{"start":[68,15],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[68,16]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[69,6],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[73,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[69,6],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[73,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[70,3],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[70,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[69,7],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[69,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[69,7],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[69,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[69,9],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[69,11]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[69,7],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[69,8]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[69,12],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[69,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[69,12],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[69,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[69,14],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[69,16]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[69,12],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[69,13]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[69,17],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[69,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[69,17],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[69,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[69,19],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[69,21]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[69,17],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[69,18]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[69,22],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[69,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[69,22],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[69,23]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[69,25],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[69,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[69,25],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[69,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[69,25],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[69,29]},[]],"tag":"TypeConstructor","contents":[["Control","Monad","Rec","Class"],"Step"]},{"annotation":[{"start":[69,30],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[69,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[69,30],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[69,31]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[69,32],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[69,38]},[]],"tag":"RCons","contents":["a",{"annotation":[{"start":[69,37],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[69,38]},[]],"tag":"TypeVar","contents":"a"},{"annotation":[{"start":[69,40],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[69,46]},[]],"tag":"RCons","contents":["b",{"annotation":[{"start":[69,45],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[69,46]},[]],"tag":"TypeVar","contents":"b"},{"annotation":[{"start":[69,48],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[69,54]},[]],"tag":"RCons","contents":["c",{"annotation":[{"start":[69,53],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[69,54]},[]],"tag":"TypeVar","contents":"c"},{"annotation":[{"start":[69,55],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[69,56]},[]],"tag":"REmpty"}]}]}]}]}]},{"annotation":[{"start":[69,57],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[69,58]},[]],"tag":"TypeVar","contents":"d"}]}]}]}]}]}]},{"annotation":[{"start":[70,6],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[73,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[70,6],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[73,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[71,3],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[71,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[70,6],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[70,7]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[71,6],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[73,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[71,6],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[73,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[72,3],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[72,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[71,6],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[71,7]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[72,6],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[73,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[72,6],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[73,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[73,3],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[73,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[72,6],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[72,7]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[73,6],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[73,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[73,6],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[73,7]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[73,8],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[73,9]},[]],"tag":"TypeVar","contents":"d"}]}]}]}]}]}]},11]},12]},13]},14]},15]}}},{"EDValue":{"edValueName":{"Ident":"forever"},"edValueType":{"annotation":[{"start":[140,12],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[140,50]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[140,19],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[140,50]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[140,19],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[140,50]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[140,26],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[140,50]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[140,26],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[140,36]},[]],"constraintClass":[["Control","Monad","Rec","Class"],"MonadRec"],"constraintArgs":[{"annotation":[{"start":[140,35],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[140,36]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[140,40],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[140,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[140,40],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[140,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[140,44],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[140,46]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[140,40],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[140,43]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[140,40],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[140,41]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[140,42],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[140,43]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[140,47],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[140,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[140,47],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[140,48]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[140,49],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[140,50]},[]],"tag":"TypeVar","contents":"b"}]}]}]},122]},123]},124]}}},{"EDInstance":{"edInstanceClassName":[["Data","Functor"],"Functor"],"edInstanceName":{"Ident":"functorStep"},"edInstanceTypes":[{"annotation":[{"start":[25,41],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[25,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[25,41],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[25,45]},[]],"tag":"TypeConstructor","contents":[["Control","Monad","Rec","Class"],"Step"]},{"annotation":[{"start":[25,46],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[25,47]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[],"edInstanceChain":[[["Control","Monad","Rec","Class"],{"Ident":"functorStep"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Bifunctor"],"Bifunctor"],"edInstanceName":{"Ident":"bifunctorStep"},"edInstanceTypes":[{"annotation":[{"start":[27,37],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[27,41]},[]],"tag":"TypeConstructor","contents":[["Control","Monad","Rec","Class"],"Step"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Control","Monad","Rec","Class"],{"Ident":"bifunctorStep"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Monad","Rec","Class"],"MonadRec"],"edInstanceName":{"Ident":"monadRecIdentity"},"edInstanceTypes":[{"annotation":[{"start":[94,39],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[94,47]},[]],"tag":"TypeConstructor","contents":[["Data","Identity"],"Identity"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Control","Monad","Rec","Class"],{"Ident":"monadRecIdentity"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Monad","Rec","Class"],"MonadRec"],"edInstanceName":{"Ident":"monadRecEffect"},"edInstanceTypes":[{"annotation":[{"start":[98,37],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[98,43]},[]],"tag":"TypeConstructor","contents":[["Effect"],"Effect"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Control","Monad","Rec","Class"],{"Ident":"monadRecEffect"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Monad","Rec","Class"],"MonadRec"],"edInstanceName":{"Ident":"monadRecFunction"},"edInstanceTypes":[{"annotation":[{"start":[113,40],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[113,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[113,40],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[113,44]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[113,45],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[113,46]},[]],"tag":"TypeVar","contents":"e"}]}],"edInstanceConstraints":[],"edInstanceChain":[[["Control","Monad","Rec","Class"],{"Ident":"monadRecFunction"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Monad","Rec","Class"],"MonadRec"],"edInstanceName":{"Ident":"monadRecEither"},"edInstanceTypes":[{"annotation":[{"start":[116,38],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[116,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[116,38],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[116,44]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[116,45],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[116,46]},[]],"tag":"TypeVar","contents":"e"}]}],"edInstanceConstraints":[],"edInstanceChain":[[["Control","Monad","Rec","Class"],{"Ident":"monadRecEither"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Monad","Rec","Class"],"MonadRec"],"edInstanceName":{"Ident":"monadRecMaybe"},"edInstanceTypes":[{"annotation":[{"start":[124,36],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[124,41]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Control","Monad","Rec","Class"],{"Ident":"monadRecMaybe"}]],"edInstanceChainIndex":0}}],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-tailrec/src/Control/Monad/Rec/Class.purs","end":[141,48]}}
diff --git a/tests/purs/publish/basic-example/output/Control.Monad.ST.Internal/docs.json b/tests/purs/publish/basic-example/output/Control.Monad.ST.Internal/docs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Control.Monad.ST.Internal/docs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"reExports":[],"name":"Control.Monad.ST.Internal","comments":null,"declarations":[{"children":[],"comments":"`ST` is concerned with _restricted_ mutation. Mutation is restricted to a\n_region_ of mutable references. This kind is inhabited by phantom types\nwhich represent regions in the type system.\n","title":"Region","info":{"declType":"kind"},"sourceSpan":{"start":[11,1],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[11,27]}},{"children":[{"comments":null,"title":"functorST","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Functor"],"Functor"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Monad","ST","Internal"],"ST"]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}]}},"sourceSpan":{"start":[28,1],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[29,13]}},{"comments":null,"title":"applyST","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Apply"],"Apply"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Monad","ST","Internal"],"ST"]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}]}},"sourceSpan":{"start":[31,1],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[32,13]}},{"comments":null,"title":"applicativeST","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Applicative"],"Applicative"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Monad","ST","Internal"],"ST"]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}]}},"sourceSpan":{"start":[34,1],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[35,15]}},{"comments":null,"title":"bindST","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Bind"],"Bind"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Monad","ST","Internal"],"ST"]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}]}},"sourceSpan":{"start":[37,1],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[38,15]}},{"comments":null,"title":"monadST","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Monad"],"Monad"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Monad","ST","Internal"],"ST"]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}]}},"sourceSpan":{"start":[40,1],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[40,33]}},{"comments":null,"title":"monadRecST","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Monad","Rec","Class"],"MonadRec"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Monad","ST","Internal"],"ST"]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}]}},"sourceSpan":{"start":[42,1],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[58,19]}}],"comments":"The `ST` type constructor allows _local mutation_, i.e. mutation which\ndoes not \"escape\" into the surrounding computation.\n\nAn `ST` computation is parameterized by a phantom type which is used to\nrestrict the set of reference cells it is allowed to access.\n\nThe `run` function can be used to run a computation in the `ST` monad.\n","title":"ST","info":{"kind":{"annotation":[],"tag":"FunKind","contents":[{"annotation":[],"tag":"NamedKind","contents":[["Control","Monad","ST","Internal"],"Region"]},{"annotation":[],"tag":"FunKind","contents":[{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]},"declType":"externData"},"sourceSpan":{"start":[20,1],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[20,49]}},{"children":[],"comments":null,"title":"map_","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["r",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Monad","ST","Internal"],"ST"]},{"annotation":[],"tag":"TypeVar","contents":"r"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Monad","ST","Internal"],"ST"]},{"annotation":[],"tag":"TypeVar","contents":"r"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}]},null]},null]},null]}},"sourceSpan":{"start":[22,1],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[22,66]}},{"children":[],"comments":null,"title":"pure_","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["r",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Monad","ST","Internal"],"ST"]},{"annotation":[],"tag":"TypeVar","contents":"r"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},null]},null]}},"sourceSpan":{"start":[24,1],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[24,48]}},{"children":[],"comments":null,"title":"bind_","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["r",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Monad","ST","Internal"],"ST"]},{"annotation":[],"tag":"TypeVar","contents":"r"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Monad","ST","Internal"],"ST"]},{"annotation":[],"tag":"TypeVar","contents":"r"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Monad","ST","Internal"],"ST"]},{"annotation":[],"tag":"TypeVar","contents":"r"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}]},null]},null]},null]}},"sourceSpan":{"start":[26,1],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[26,72]}},{"children":[],"comments":"Run an `ST` computation.\n\nNote: the type of `run` uses a rank-2 type to constrain the phantom\ntype `h`, such that the computation must not leak any mutable references\nto the surrounding computation. It may cause problems to apply this\nfunction using the `$` operator. The recommended approach is to use\nparentheses instead.\n","title":"run","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"ForAll","contents":["r",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Monad","ST","Internal"],"ST"]},{"annotation":[],"tag":"TypeVar","contents":"r"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},null]}}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},null]}},"sourceSpan":{"start":[67,1],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[67,56]}},{"children":[],"comments":"Loop while a condition is `true`.\n\n`while b m` is ST computation which runs the ST computation `b`. If its\nresult is `true`, it runs the ST computation `m` and loops. If not, the\ncomputation ends.\n","title":"while","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["r",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Monad","ST","Internal"],"ST"]},{"annotation":[],"tag":"TypeVar","contents":"r"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Monad","ST","Internal"],"ST"]},{"annotation":[],"tag":"TypeVar","contents":"r"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Monad","ST","Internal"],"ST"]},{"annotation":[],"tag":"TypeVar","contents":"r"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}]},null]},null]}},"sourceSpan":{"start":[74,1],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[74,72]}},{"children":[],"comments":"Loop over a consecutive collection of numbers\n\n`ST.for lo hi f` runs the computation returned by the function `f` for each\nof the inputs between `lo` (inclusive) and `hi` (exclusive).\n","title":"for","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["r",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Monad","ST","Internal"],"ST"]},{"annotation":[],"tag":"TypeVar","contents":"r"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Monad","ST","Internal"],"ST"]},{"annotation":[],"tag":"TypeVar","contents":"r"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}]}]},null]},null]}},"sourceSpan":{"start":[80,1],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[80,77]}},{"children":[],"comments":"Loop over an array of values.\n\n`ST.foreach xs f` runs the computation returned by the function `f` for each\nof the inputs `xs`.\n","title":"foreach","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["r",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Monad","ST","Internal"],"ST"]},{"annotation":[],"tag":"TypeVar","contents":"r"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Monad","ST","Internal"],"ST"]},{"annotation":[],"tag":"TypeVar","contents":"r"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}]},null]},null]}},"sourceSpan":{"start":[86,1],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[86,79]}},{"children":[],"comments":"The type `STRef r a` represents a mutable reference holding a value of\ntype `a`, which can be used with the `ST r` effect.\n","title":"STRef","info":{"kind":{"annotation":[],"tag":"FunKind","contents":[{"annotation":[],"tag":"NamedKind","contents":[["Control","Monad","ST","Internal"],"Region"]},{"annotation":[],"tag":"FunKind","contents":[{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]},"declType":"externData"},"sourceSpan":{"start":[90,1],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[90,52]}},{"children":[],"comments":"Create a new mutable reference.\n","title":"new","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["r",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Monad","ST","Internal"],"ST"]},{"annotation":[],"tag":"TypeVar","contents":"r"}]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Monad","ST","Internal"],"STRef"]},{"annotation":[],"tag":"TypeVar","contents":"r"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]}]},null]},null]}},"sourceSpan":{"start":[93,1],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[93,56]}},{"children":[],"comments":"Read the current value of a mutable reference.\n","title":"read","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["r",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Monad","ST","Internal"],"STRef"]},{"annotation":[],"tag":"TypeVar","contents":"r"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Monad","ST","Internal"],"ST"]},{"annotation":[],"tag":"TypeVar","contents":"r"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},null]},null]}},"sourceSpan":{"start":[96,1],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[96,55]}},{"children":[],"comments":"Update the value of a mutable reference by applying a function\nto the current value, computing a new state value for the reference and\na return value.\n","title":"modify'","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["r",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"RCons","contents":["state",{"annotation":[],"tag":"TypeVar","contents":"a"},{"annotation":[],"tag":"RCons","contents":["value",{"annotation":[],"tag":"TypeVar","contents":"b"},{"annotation":[],"tag":"REmpty"}]}]}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Monad","ST","Internal"],"STRef"]},{"annotation":[],"tag":"TypeVar","contents":"r"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Monad","ST","Internal"],"ST"]},{"annotation":[],"tag":"TypeVar","contents":"r"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}]},null]},null]},null]}},"sourceSpan":{"start":[101,1],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[101,97]}},{"children":[],"comments":"Modify the value of a mutable reference by applying a function to the\ncurrent value. The modified value is returned.\n","title":"modify","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["r",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Monad","ST","Internal"],"STRef"]},{"annotation":[],"tag":"TypeVar","contents":"r"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Monad","ST","Internal"],"ST"]},{"annotation":[],"tag":"TypeVar","contents":"r"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]},null]},null]}},"sourceSpan":{"start":[105,1],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[105,54]}},{"children":[],"comments":"Set the value of a mutable reference.\n","title":"write","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["r",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Monad","ST","Internal"],"STRef"]},{"annotation":[],"tag":"TypeVar","contents":"r"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Monad","ST","Internal"],"ST"]},{"annotation":[],"tag":"TypeVar","contents":"r"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]},null]},null]}},"sourceSpan":{"start":[109,1],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[109,61]}}]}
diff --git a/tests/purs/publish/basic-example/output/Control.Monad.ST.Internal/externs.json b/tests/purs/publish/basic-example/output/Control.Monad.ST.Internal/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Control.Monad.ST.Internal/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Control","Monad","ST","Internal"],"efExports":[{"KindRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[109,61]},"Region"]},{"TypeRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[109,61]},"ST",[]]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[109,61]},{"Ident":"map_"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[109,61]},{"Ident":"pure_"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[109,61]},{"Ident":"bind_"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[109,61]},{"Ident":"run"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[109,61]},{"Ident":"while"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[109,61]},{"Ident":"for"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[109,61]},{"Ident":"foreach"}]},{"TypeRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[109,61]},"STRef",[]]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[109,61]},{"Ident":"new"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[109,61]},{"Ident":"read"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[109,61]},{"Ident":"modify'"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[109,61]},{"Ident":"modify"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[109,61]},{"Ident":"write"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"functorST"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"applyST"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"applicativeST"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"bindST"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"monadST"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"monadRecST"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Prelude"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Control","Monad","Rec","Class"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[5,33],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[5,47]},"MonadRec"]},{"TypeRef":[{"start":[5,49],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[5,57]},"Step",null]}]},"eiImportedAs":null},{"eiModule":["Partial","Unsafe"],"eiImportType":{"Explicit":[{"ValueRef":[{"start":[6,24],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[6,37]},{"Ident":"unsafePartial"}]}]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDKind":{"edKindName":"Region"}},{"EDType":{"edTypeName":"ST","edTypeKind":{"annotation":[{"start":[20,27],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[20,49]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[20,27],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[20,33]},[]],"tag":"NamedKind","contents":[["Control","Monad","ST","Internal"],"Region"]},{"annotation":[{"start":[20,37],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[20,49]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[20,37],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[20,41]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[20,45],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[20,49]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]},"edTypeDeclarationKind":"ExternData"}},{"EDValue":{"edValueName":{"Ident":"map_"},"edValueType":{"annotation":[{"start":[22,24],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[22,66]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[22,31],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[22,66]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[22,31],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[22,66]},[]],"tag":"ForAll","contents":["r",{"annotation":[{"start":[22,38],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[22,66]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[22,38],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[22,66]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[22,47],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[22,49]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[22,39],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[22,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[22,39],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[22,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[22,41],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[22,43]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[22,39],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[22,40]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[22,44],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[22,45]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[22,50],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[22,66]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[22,50],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[22,66]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[22,57],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[22,59]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[22,50],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[22,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[22,50],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[22,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[22,50],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[22,52]},[]],"tag":"TypeConstructor","contents":[["Control","Monad","ST","Internal"],"ST"]},{"annotation":[{"start":[22,53],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[22,54]},[]],"tag":"TypeVar","contents":"r"}]},{"annotation":[{"start":[22,55],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[22,56]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[22,60],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[22,66]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[22,60],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[22,64]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[22,60],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[22,62]},[]],"tag":"TypeConstructor","contents":[["Control","Monad","ST","Internal"],"ST"]},{"annotation":[{"start":[22,63],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[22,64]},[]],"tag":"TypeVar","contents":"r"}]},{"annotation":[{"start":[22,65],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[22,66]},[]],"tag":"TypeVar","contents":"b"}]}]}]},null]},null]},null]}}},{"EDValue":{"edValueName":{"Ident":"pure_"},"edValueType":{"annotation":[{"start":[24,25],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[24,48]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[24,32],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[24,48]},[]],"tag":"ForAll","contents":["r",{"annotation":[{"start":[24,37],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[24,48]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[24,37],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[24,48]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[24,39],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[24,41]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[24,37],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[24,38]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[24,42],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[24,48]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[24,42],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[24,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[24,42],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[24,44]},[]],"tag":"TypeConstructor","contents":[["Control","Monad","ST","Internal"],"ST"]},{"annotation":[{"start":[24,45],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[24,46]},[]],"tag":"TypeVar","contents":"r"}]},{"annotation":[{"start":[24,47],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[24,48]},[]],"tag":"TypeVar","contents":"a"}]}]},null]},null]}}},{"EDValue":{"edValueName":{"Ident":"bind_"},"edValueType":{"annotation":[{"start":[26,25],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[26,72]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[26,32],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[26,72]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[26,32],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[26,72]},[]],"tag":"ForAll","contents":["r",{"annotation":[{"start":[26,39],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[26,72]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[26,39],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[26,72]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[26,46],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[26,48]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[26,39],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[26,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[26,39],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[26,43]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[26,39],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[26,41]},[]],"tag":"TypeConstructor","contents":[["Control","Monad","ST","Internal"],"ST"]},{"annotation":[{"start":[26,42],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[26,43]},[]],"tag":"TypeVar","contents":"r"}]},{"annotation":[{"start":[26,44],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[26,45]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[26,49],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[26,72]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[26,49],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[26,72]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[26,63],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[26,65]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[26,50],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[26,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[26,50],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[26,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[26,52],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[26,54]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[26,50],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[26,51]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[26,55],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[26,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[26,55],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[26,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[26,55],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[26,57]},[]],"tag":"TypeConstructor","contents":[["Control","Monad","ST","Internal"],"ST"]},{"annotation":[{"start":[26,58],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[26,59]},[]],"tag":"TypeVar","contents":"r"}]},{"annotation":[{"start":[26,60],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[26,61]},[]],"tag":"TypeVar","contents":"b"}]}]}]},{"annotation":[{"start":[26,66],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[26,72]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[26,66],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[26,70]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[26,66],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[26,68]},[]],"tag":"TypeConstructor","contents":[["Control","Monad","ST","Internal"],"ST"]},{"annotation":[{"start":[26,69],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[26,70]},[]],"tag":"TypeVar","contents":"r"}]},{"annotation":[{"start":[26,71],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[26,72]},[]],"tag":"TypeVar","contents":"b"}]}]}]},null]},null]},null]}}},{"EDValue":{"edValueName":{"Ident":"run"},"edValueType":{"annotation":[{"start":[67,23],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[67,56]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[67,33],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[67,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[67,33],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[67,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[67,52],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[67,54]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[67,34],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[67,50]},[]],"tag":"ForAll","contents":["r",{"annotation":[{"start":[67,44],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[67,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[67,44],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[67,48]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[67,44],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[67,46]},[]],"tag":"TypeConstructor","contents":[["Control","Monad","ST","Internal"],"ST"]},{"annotation":[{"start":[67,47],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[67,48]},[]],"tag":"TypeVar","contents":"r"}]},{"annotation":[{"start":[67,49],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[67,50]},[]],"tag":"TypeVar","contents":"a"}]},null]}]},{"annotation":[{"start":[67,55],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[67,56]},[]],"tag":"TypeVar","contents":"a"}]},null]}}},{"EDValue":{"edValueName":{"Ident":"while"},"edValueType":{"annotation":[{"start":[74,25],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[74,72]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[74,32],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[74,72]},[]],"tag":"ForAll","contents":["r",{"annotation":[{"start":[74,37],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[74,72]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[74,37],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[74,72]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[74,50],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[74,52]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[74,37],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[74,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[74,37],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[74,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[74,37],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[74,39]},[]],"tag":"TypeConstructor","contents":[["Control","Monad","ST","Internal"],"ST"]},{"annotation":[{"start":[74,40],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[74,41]},[]],"tag":"TypeVar","contents":"r"}]},{"annotation":[{"start":[74,42],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[74,49]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]},{"annotation":[{"start":[74,53],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[74,72]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[74,53],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[74,72]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[74,60],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[74,62]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[74,53],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[74,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[74,53],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[74,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[74,53],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[74,55]},[]],"tag":"TypeConstructor","contents":[["Control","Monad","ST","Internal"],"ST"]},{"annotation":[{"start":[74,56],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[74,57]},[]],"tag":"TypeVar","contents":"r"}]},{"annotation":[{"start":[74,58],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[74,59]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[74,63],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[74,72]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[74,63],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[74,67]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[74,63],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[74,65]},[]],"tag":"TypeConstructor","contents":[["Control","Monad","ST","Internal"],"ST"]},{"annotation":[{"start":[74,66],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[74,67]},[]],"tag":"TypeVar","contents":"r"}]},{"annotation":[{"start":[74,68],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[74,72]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}]},null]},null]}}},{"EDValue":{"edValueName":{"Ident":"for"},"edValueType":{"annotation":[{"start":[80,23],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[80,77]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[80,30],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[80,77]},[]],"tag":"ForAll","contents":["r",{"annotation":[{"start":[80,35],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[80,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[80,35],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[80,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[80,39],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[80,41]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[80,35],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[80,38]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[80,42],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[80,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[80,42],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[80,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[80,46],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[80,48]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[80,42],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[80,45]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[80,49],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[80,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[80,49],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[80,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[80,65],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[80,67]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[80,50],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[80,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[80,50],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[80,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[80,54],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[80,56]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[80,50],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[80,53]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[80,57],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[80,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[80,57],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[80,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[80,57],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[80,59]},[]],"tag":"TypeConstructor","contents":[["Control","Monad","ST","Internal"],"ST"]},{"annotation":[{"start":[80,60],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[80,61]},[]],"tag":"TypeVar","contents":"r"}]},{"annotation":[{"start":[80,62],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[80,63]},[]],"tag":"TypeVar","contents":"a"}]}]}]},{"annotation":[{"start":[80,68],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[80,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[80,68],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[80,72]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[80,68],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[80,70]},[]],"tag":"TypeConstructor","contents":[["Control","Monad","ST","Internal"],"ST"]},{"annotation":[{"start":[80,71],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[80,72]},[]],"tag":"TypeVar","contents":"r"}]},{"annotation":[{"start":[80,73],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[80,77]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}]}]},null]},null]}}},{"EDValue":{"edValueName":{"Ident":"foreach"},"edValueType":{"annotation":[{"start":[86,27],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[86,79]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[86,34],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[86,79]},[]],"tag":"ForAll","contents":["r",{"annotation":[{"start":[86,39],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[86,79]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[86,39],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[86,79]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[86,47],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[86,49]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[86,39],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[86,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[86,39],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[86,44]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[86,45],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[86,46]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[86,50],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[86,79]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[86,50],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[86,79]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[86,67],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[86,69]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[86,51],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[86,65]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[86,51],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[86,65]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[86,53],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[86,55]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[86,51],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[86,52]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[86,56],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[86,65]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[86,56],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[86,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[86,56],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[86,58]},[]],"tag":"TypeConstructor","contents":[["Control","Monad","ST","Internal"],"ST"]},{"annotation":[{"start":[86,59],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[86,60]},[]],"tag":"TypeVar","contents":"r"}]},{"annotation":[{"start":[86,61],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[86,65]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}]},{"annotation":[{"start":[86,70],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[86,79]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[86,70],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[86,74]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[86,70],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[86,72]},[]],"tag":"TypeConstructor","contents":[["Control","Monad","ST","Internal"],"ST"]},{"annotation":[{"start":[86,73],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[86,74]},[]],"tag":"TypeVar","contents":"r"}]},{"annotation":[{"start":[86,75],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[86,79]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}]},null]},null]}}},{"EDType":{"edTypeName":"STRef","edTypeKind":{"annotation":[{"start":[90,30],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[90,52]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[90,30],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[90,36]},[]],"tag":"NamedKind","contents":[["Control","Monad","ST","Internal"],"Region"]},{"annotation":[{"start":[90,40],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[90,52]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[90,40],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[90,44]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[90,48],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[90,52]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]},"edTypeDeclarationKind":"ExternData"}},{"EDValue":{"edValueName":{"Ident":"new"},"edValueType":{"annotation":[{"start":[93,23],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[93,56]},[]],"tag":"ForAll","contents":["r",{"annotation":[{"start":[93,30],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[93,56]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[93,35],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[93,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[93,35],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[93,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[93,37],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[93,39]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[93,35],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[93,36]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[93,40],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[93,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[93,40],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[93,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[93,40],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[93,42]},[]],"tag":"TypeConstructor","contents":[["Control","Monad","ST","Internal"],"ST"]},{"annotation":[{"start":[93,43],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[93,44]},[]],"tag":"TypeVar","contents":"r"}]},{"annotation":[{"start":[93,46],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[93,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[93,46],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[93,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[93,46],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[93,51]},[]],"tag":"TypeConstructor","contents":[["Control","Monad","ST","Internal"],"STRef"]},{"annotation":[{"start":[93,52],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[93,53]},[]],"tag":"TypeVar","contents":"r"}]},{"annotation":[{"start":[93,54],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[93,55]},[]],"tag":"TypeVar","contents":"a"}]}]}]},null]},null]}}},{"EDValue":{"edValueName":{"Ident":"read"},"edValueType":{"annotation":[{"start":[96,24],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[96,55]},[]],"tag":"ForAll","contents":["r",{"annotation":[{"start":[96,31],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[96,55]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[96,36],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[96,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[96,36],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[96,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[96,46],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[96,48]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[96,36],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[96,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[96,36],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[96,43]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[96,36],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[96,41]},[]],"tag":"TypeConstructor","contents":[["Control","Monad","ST","Internal"],"STRef"]},{"annotation":[{"start":[96,42],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[96,43]},[]],"tag":"TypeVar","contents":"r"}]},{"annotation":[{"start":[96,44],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[96,45]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[96,49],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[96,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[96,49],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[96,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[96,49],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[96,51]},[]],"tag":"TypeConstructor","contents":[["Control","Monad","ST","Internal"],"ST"]},{"annotation":[{"start":[96,52],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[96,53]},[]],"tag":"TypeVar","contents":"r"}]},{"annotation":[{"start":[96,54],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[96,55]},[]],"tag":"TypeVar","contents":"a"}]}]},null]},null]}}},{"EDValue":{"edValueName":{"Ident":"modify'"},"edValueType":{"annotation":[{"start":[101,27],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[101,97]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[101,34],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[101,97]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[101,34],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[101,97]},[]],"tag":"ForAll","contents":["r",{"annotation":[{"start":[101,41],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[101,97]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[101,41],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[101,97]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[101,75],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[101,77]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[101,42],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[101,73]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[101,42],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[101,73]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[101,44],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[101,46]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[101,42],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[101,43]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[101,47],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[101,73]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[101,47],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[101,48]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[101,49],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[101,59]},[]],"tag":"RCons","contents":["state",{"annotation":[{"start":[101,58],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[101,59]},[]],"tag":"TypeVar","contents":"a"},{"annotation":[{"start":[101,61],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[101,71]},[]],"tag":"RCons","contents":["value",{"annotation":[{"start":[101,70],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[101,71]},[]],"tag":"TypeVar","contents":"b"},{"annotation":[{"start":[101,72],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[101,73]},[]],"tag":"REmpty"}]}]}]}]}]},{"annotation":[{"start":[101,78],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[101,97]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[101,78],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[101,97]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[101,88],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[101,90]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[101,78],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[101,87]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[101,78],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[101,85]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[101,78],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[101,83]},[]],"tag":"TypeConstructor","contents":[["Control","Monad","ST","Internal"],"STRef"]},{"annotation":[{"start":[101,84],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[101,85]},[]],"tag":"TypeVar","contents":"r"}]},{"annotation":[{"start":[101,86],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[101,87]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[101,91],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[101,97]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[101,91],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[101,95]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[101,91],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[101,93]},[]],"tag":"TypeConstructor","contents":[["Control","Monad","ST","Internal"],"ST"]},{"annotation":[{"start":[101,94],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[101,95]},[]],"tag":"TypeVar","contents":"r"}]},{"annotation":[{"start":[101,96],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[101,97]},[]],"tag":"TypeVar","contents":"b"}]}]}]},null]},null]},null]}}},{"EDValue":{"edValueName":{"Ident":"modify"},"edValueType":{"annotation":[{"start":[105,11],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[105,54]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[105,18],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[105,54]},[]],"tag":"ForAll","contents":["r",{"annotation":[{"start":[105,23],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[105,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[105,23],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[105,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[105,32],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[105,34]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[105,24],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[105,30]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[105,24],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[105,30]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[105,26],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[105,28]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[105,24],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[105,25]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[105,29],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[105,30]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[105,35],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[105,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[105,35],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[105,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[105,45],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[105,47]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[105,35],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[105,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[105,35],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[105,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[105,35],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[105,40]},[]],"tag":"TypeConstructor","contents":[["Control","Monad","ST","Internal"],"STRef"]},{"annotation":[{"start":[105,41],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[105,42]},[]],"tag":"TypeVar","contents":"r"}]},{"annotation":[{"start":[105,43],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[105,44]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[105,48],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[105,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[105,48],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[105,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[105,48],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[105,50]},[]],"tag":"TypeConstructor","contents":[["Control","Monad","ST","Internal"],"ST"]},{"annotation":[{"start":[105,51],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[105,52]},[]],"tag":"TypeVar","contents":"r"}]},{"annotation":[{"start":[105,53],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[105,54]},[]],"tag":"TypeVar","contents":"a"}]}]}]},49]},50]}}},{"EDValue":{"edValueName":{"Ident":"write"},"edValueType":{"annotation":[{"start":[109,25],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[109,61]},[]],"tag":"ForAll","contents":["r",{"annotation":[{"start":[109,32],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[109,61]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[109,37],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[109,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[109,37],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[109,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[109,39],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[109,41]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[109,37],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[109,38]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[109,42],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[109,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[109,42],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[109,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[109,52],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[109,54]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[109,42],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[109,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[109,42],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[109,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[109,42],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[109,47]},[]],"tag":"TypeConstructor","contents":[["Control","Monad","ST","Internal"],"STRef"]},{"annotation":[{"start":[109,48],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[109,49]},[]],"tag":"TypeVar","contents":"r"}]},{"annotation":[{"start":[109,50],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[109,51]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[109,55],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[109,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[109,55],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[109,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[109,55],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[109,57]},[]],"tag":"TypeConstructor","contents":[["Control","Monad","ST","Internal"],"ST"]},{"annotation":[{"start":[109,58],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[109,59]},[]],"tag":"TypeVar","contents":"r"}]},{"annotation":[{"start":[109,60],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[109,61]},[]],"tag":"TypeVar","contents":"a"}]}]}]},null]},null]}}},{"EDInstance":{"edInstanceClassName":[["Data","Functor"],"Functor"],"edInstanceName":{"Ident":"functorST"},"edInstanceTypes":[{"annotation":[{"start":[28,32],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[28,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[28,32],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[28,34]},[]],"tag":"TypeConstructor","contents":[["Control","Monad","ST","Internal"],"ST"]},{"annotation":[{"start":[28,35],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[28,36]},[]],"tag":"TypeVar","contents":"r"}]}],"edInstanceConstraints":[],"edInstanceChain":[[["Control","Monad","ST","Internal"],{"Ident":"functorST"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Apply"],"Apply"],"edInstanceName":{"Ident":"applyST"},"edInstanceTypes":[{"annotation":[{"start":[31,28],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[31,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[31,28],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[31,30]},[]],"tag":"TypeConstructor","contents":[["Control","Monad","ST","Internal"],"ST"]},{"annotation":[{"start":[31,31],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[31,32]},[]],"tag":"TypeVar","contents":"r"}]}],"edInstanceConstraints":[],"edInstanceChain":[[["Control","Monad","ST","Internal"],{"Ident":"applyST"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Applicative"],"Applicative"],"edInstanceName":{"Ident":"applicativeST"},"edInstanceTypes":[{"annotation":[{"start":[34,40],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[34,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[34,40],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[34,42]},[]],"tag":"TypeConstructor","contents":[["Control","Monad","ST","Internal"],"ST"]},{"annotation":[{"start":[34,43],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[34,44]},[]],"tag":"TypeVar","contents":"r"}]}],"edInstanceConstraints":[],"edInstanceChain":[[["Control","Monad","ST","Internal"],{"Ident":"applicativeST"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Bind"],"Bind"],"edInstanceName":{"Ident":"bindST"},"edInstanceTypes":[{"annotation":[{"start":[37,26],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[37,30]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[37,26],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[37,28]},[]],"tag":"TypeConstructor","contents":[["Control","Monad","ST","Internal"],"ST"]},{"annotation":[{"start":[37,29],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[37,30]},[]],"tag":"TypeVar","contents":"r"}]}],"edInstanceConstraints":[],"edInstanceChain":[[["Control","Monad","ST","Internal"],{"Ident":"bindST"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Monad"],"Monad"],"edInstanceName":{"Ident":"monadST"},"edInstanceTypes":[{"annotation":[{"start":[40,28],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[40,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[40,28],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[40,30]},[]],"tag":"TypeConstructor","contents":[["Control","Monad","ST","Internal"],"ST"]},{"annotation":[{"start":[40,31],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[40,32]},[]],"tag":"TypeVar","contents":"r"}]}],"edInstanceConstraints":[],"edInstanceChain":[[["Control","Monad","ST","Internal"],{"Ident":"monadST"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Monad","Rec","Class"],"MonadRec"],"edInstanceName":{"Ident":"monadRecST"},"edInstanceTypes":[{"annotation":[{"start":[42,34],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[42,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[42,34],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[42,36]},[]],"tag":"TypeConstructor","contents":[["Control","Monad","ST","Internal"],"ST"]},{"annotation":[{"start":[42,37],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[42,38]},[]],"tag":"TypeVar","contents":"r"}]}],"edInstanceConstraints":[],"edInstanceChain":[[["Control","Monad","ST","Internal"],{"Ident":"monadRecST"}]],"edInstanceChainIndex":0}}],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Internal.purs","end":[109,61]}}
diff --git a/tests/purs/publish/basic-example/output/Control.Monad.ST.Ref/docs.json b/tests/purs/publish/basic-example/output/Control.Monad.ST.Ref/docs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Control.Monad.ST.Ref/docs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"reExports":[],"name":"Control.Monad.ST.Ref","comments":null,"declarations":[]}
diff --git a/tests/purs/publish/basic-example/output/Control.Monad.ST.Ref/externs.json b/tests/purs/publish/basic-example/output/Control.Monad.ST.Ref/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Control.Monad.ST.Ref/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Control","Monad","ST","Ref"],"efExports":[{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Ref.purs","end":[3,88]},{"exportSourceImportedFrom":["Control","Monad","ST","Internal"],"exportSourceDefinedIn":["Control","Monad","ST","Internal"]},{"TypeRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Ref.purs","end":[3,88]},"STRef",[]]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Ref.purs","end":[3,88]},{"exportSourceImportedFrom":["Control","Monad","ST","Internal"],"exportSourceDefinedIn":["Control","Monad","ST","Internal"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Ref.purs","end":[3,88]},{"Ident":"modify"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Ref.purs","end":[3,88]},{"exportSourceImportedFrom":["Control","Monad","ST","Internal"],"exportSourceDefinedIn":["Control","Monad","ST","Internal"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Ref.purs","end":[3,88]},{"Ident":"modify'"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Ref.purs","end":[3,88]},{"exportSourceImportedFrom":["Control","Monad","ST","Internal"],"exportSourceDefinedIn":["Control","Monad","ST","Internal"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Ref.purs","end":[3,88]},{"Ident":"new"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Ref.purs","end":[3,88]},{"exportSourceImportedFrom":["Control","Monad","ST","Internal"],"exportSourceDefinedIn":["Control","Monad","ST","Internal"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Ref.purs","end":[3,88]},{"Ident":"read"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Ref.purs","end":[3,88]},{"exportSourceImportedFrom":["Control","Monad","ST","Internal"],"exportSourceDefinedIn":["Control","Monad","ST","Internal"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Ref.purs","end":[3,88]},{"Ident":"write"}]}]},{"ModuleRef":[{"start":[1,30],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Ref.purs","end":[1,45]},["Internal"]]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Control","Monad","ST","Internal"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[3,35],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Ref.purs","end":[3,40]},"STRef",[]]},{"ValueRef":[{"start":[3,42],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Ref.purs","end":[3,45]},{"Ident":"new"}]},{"ValueRef":[{"start":[3,47],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Ref.purs","end":[3,51]},{"Ident":"read"}]},{"ValueRef":[{"start":[3,53],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Ref.purs","end":[3,59]},{"Ident":"modify"}]},{"ValueRef":[{"start":[3,61],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Ref.purs","end":[3,68]},{"Ident":"modify'"}]},{"ValueRef":[{"start":[3,70],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Ref.purs","end":[3,75]},{"Ident":"write"}]}]},"eiImportedAs":["Internal"]}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST/Ref.purs","end":[3,88]}}
diff --git a/tests/purs/publish/basic-example/output/Control.Monad.ST/docs.json b/tests/purs/publish/basic-example/output/Control.Monad.ST/docs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Control.Monad.ST/docs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"reExports":[],"name":"Control.Monad.ST","comments":null,"declarations":[]}
diff --git a/tests/purs/publish/basic-example/output/Control.Monad.ST/externs.json b/tests/purs/publish/basic-example/output/Control.Monad.ST/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Control.Monad.ST/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Control","Monad","ST"],"efExports":[{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST.purs","end":[3,89]},{"exportSourceImportedFrom":["Control","Monad","ST","Internal"],"exportSourceDefinedIn":["Control","Monad","ST","Internal"]},{"TypeRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST.purs","end":[3,89]},"ST",[]]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST.purs","end":[3,89]},{"exportSourceImportedFrom":["Control","Monad","ST","Internal"],"exportSourceDefinedIn":["Control","Monad","ST","Internal"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST.purs","end":[3,89]},{"Ident":"for"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST.purs","end":[3,89]},{"exportSourceImportedFrom":["Control","Monad","ST","Internal"],"exportSourceDefinedIn":["Control","Monad","ST","Internal"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST.purs","end":[3,89]},{"Ident":"foreach"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST.purs","end":[3,89]},{"exportSourceImportedFrom":["Control","Monad","ST","Internal"],"exportSourceDefinedIn":["Control","Monad","ST","Internal"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST.purs","end":[3,89]},{"Ident":"run"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST.purs","end":[3,89]},{"exportSourceImportedFrom":["Control","Monad","ST","Internal"],"exportSourceDefinedIn":["Control","Monad","ST","Internal"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST.purs","end":[3,89]},{"Ident":"while"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST.purs","end":[3,89]},{"exportSourceImportedFrom":["Control","Monad","ST","Internal"],"exportSourceDefinedIn":["Control","Monad","ST","Internal"]},{"KindRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST.purs","end":[3,89]},"Region"]}]},{"ModuleRef":[{"start":[1,26],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST.purs","end":[1,41]},["Internal"]]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Control","Monad","ST","Internal"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[3,35],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST.purs","end":[3,37]},"ST",[]]},{"KindRef":[{"start":[3,39],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST.purs","end":[3,50]},"Region"]},{"ValueRef":[{"start":[3,52],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST.purs","end":[3,55]},{"Ident":"run"}]},{"ValueRef":[{"start":[3,57],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST.purs","end":[3,62]},{"Ident":"while"}]},{"ValueRef":[{"start":[3,64],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST.purs","end":[3,67]},{"Ident":"for"}]},{"ValueRef":[{"start":[3,69],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST.purs","end":[3,76]},{"Ident":"foreach"}]}]},"eiImportedAs":["Internal"]}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-st/src/Control/Monad/ST.purs","end":[3,89]}}
diff --git a/tests/purs/publish/basic-example/output/Control.Monad/docs.json b/tests/purs/publish/basic-example/output/Control.Monad/docs.json
--- a/tests/purs/publish/basic-example/output/Control.Monad/docs.json
+++ b/tests/purs/publish/basic-example/output/Control.Monad/docs.json
@@ -1,1 +1,1 @@
-{"reExports":[],"name":"Control.Monad","comments":null,"declarations":[{"children":[{"comments":null,"title":"monadFn","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Monad"],"Monad"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}]}},"sourceSpan":{"start":[33,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[33,35]}},{"comments":null,"title":"monadArray","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Monad"],"Monad"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]}]}},"sourceSpan":{"start":[34,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[34,35]}}],"comments":"The `Monad` type class combines the operations of the `Bind` and\n`Applicative` type classes. Therefore, `Monad` instances represent type\nconstructors which support sequential composition, and also lifting of\nfunctions of arbitrary arity.\n\nInstances must satisfy the following laws in addition to the\n`Applicative` and `Bind` laws:\n\n- Left Identity: `pure x >>= f = f x`\n- Right Identity: `x >>= pure = x`\n- Applicative Superclass: `apply = ap`\n","title":"Monad","info":{"fundeps":[],"arguments":[["m",null]],"declType":"typeClass","superclasses":[{"constraintAnn":[],"constraintClass":[["Control","Applicative"],"Applicative"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Control","Bind"],"Bind"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null}]},"sourceSpan":{"start":[31,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[31,41]}},{"children":[],"comments":"`liftM1` provides a default implementation of `(<$>)` for any\n[`Monad`](#monad), without using `(<$>)` as provided by the\n[`Functor`](#functor)-[`Monad`](#monad) superclass relationship.\n\n`liftM1` can therefore be used to write [`Functor`](#functor) instances\nas follows:\n\n```purescript\ninstance functorF :: Functor F where\n  map = liftM1\n```\n","title":"liftM1","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Monad"],"Monad"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}]}]},null]},null]},null]}},"sourceSpan":{"start":[47,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[47,58]}},{"children":[],"comments":"`ap` provides a default implementation of `(<*>)` for any\n[`Monad`](#monad), without using `(<*>)` as provided by the\n[`Apply`](#apply)-[`Monad`](#monad) superclass relationship.\n\n`ap` can therefore be used to write [`Apply`](#apply) instances as\nfollows:\n\n```purescript\ninstance applyF :: Apply F where\n  apply = ap\n```\n","title":"ap","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Monad"],"Monad"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}]}]},null]},null]},null]}},"sourceSpan":{"start":[63,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[63,56]}},{"children":[],"comments":"Perform a monadic action when a condition is true, where the conditional\nvalue is also in a monadic context.\n","title":"whenM","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Monad"],"Monad"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}]}]},null]}},"sourceSpan":{"start":[71,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[71,60]}},{"children":[],"comments":"Perform a monadic action unless a condition is true, where the conditional\nvalue is also in a monadic context.\n","title":"unlessM","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Monad"],"Monad"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}]}]},null]}},"sourceSpan":{"start":[78,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[78,62]}}]}
+{"comments":null,"declarations":[{"children":[{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Control","Monad"],"Monad"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"r","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[33,35],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","start":[33,1]},"title":"monadFn"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Control","Monad"],"Monad"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Array"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[35,35],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","start":[35,1]},"title":"monadArray"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Control","Monad"],"Monad"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Type","Proxy"],"Proxy"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[37,35],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","start":[37,1]},"title":"monadProxy"}],"comments":"The `Monad` type class combines the operations of the `Bind` and\n`Applicative` type classes. Therefore, `Monad` instances represent type\nconstructors which support sequential composition, and also lifting of\nfunctions of arbitrary arity.\n\nInstances must satisfy the following laws in addition to the\n`Applicative` and `Bind` laws:\n\n- Left Identity: `pure x >>= f = f x`\n- Right Identity: `x >>= pure = x`\n","info":{"arguments":[["m",null]],"declType":"typeClass","fundeps":[],"superclasses":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"m","tag":"TypeVar"}],"constraintClass":[["Control","Applicative"],"Applicative"],"constraintData":null,"constraintKindArgs":[]},{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"m","tag":"TypeVar"}],"constraintClass":[["Control","Bind"],"Bind"],"constraintData":null,"constraintKindArgs":[]}]},"kind":{"keyword":"class","kind":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim"],"Constraint"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[31,41],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","start":[31,1]},"title":"Monad"},{"children":[],"comments":"`liftM1` provides a default implementation of `(<$>)` for any\n[`Monad`](#monad), without using `(<$>)` as provided by the\n[`Functor`](#functor)-[`Monad`](#monad) superclass relationship.\n\n`liftM1` can therefore be used to write [`Functor`](#functor) instances\nas follows:\n\n```purescript\ninstance functorF :: Functor F where\n  map = liftM1\n```\n","info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"m","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"b","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"m","tag":"TypeVar"}],"constraintClass":[["Control","Monad"],"Monad"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"},"tag":"ParensInType"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":"m","tag":"TypeVar"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":"m","tag":"TypeVar"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[50,58],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","start":[50,1]},"title":"liftM1"},{"children":[],"comments":"Perform a monadic action when a condition is true, where the conditional\nvalue is also in a monadic context.\n","info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"m","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"m","tag":"TypeVar"}],"constraintClass":[["Control","Monad"],"Monad"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":"m","tag":"TypeVar"},{"annotation":[],"contents":[["Prim"],"Boolean"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":"m","tag":"TypeVar"},{"annotation":[],"contents":[["Data","Unit"],"Unit"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":"m","tag":"TypeVar"},{"annotation":[],"contents":[["Data","Unit"],"Unit"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[57,60],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","start":[57,1]},"title":"whenM"},{"children":[],"comments":"Perform a monadic action unless a condition is true, where the conditional\nvalue is also in a monadic context.\n","info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"m","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"m","tag":"TypeVar"}],"constraintClass":[["Control","Monad"],"Monad"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":"m","tag":"TypeVar"},{"annotation":[],"contents":[["Prim"],"Boolean"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":"m","tag":"TypeVar"},{"annotation":[],"contents":[["Data","Unit"],"Unit"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":"m","tag":"TypeVar"},{"annotation":[],"contents":[["Data","Unit"],"Unit"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[64,62],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","start":[64,1]},"title":"unlessM"},{"children":[],"comments":"`ap` provides a default implementation of `(<*>)` for any `Monad`, without\nusing `(<*>)` as provided by the `Apply`-`Monad` superclass relationship.\n\n`ap` can therefore be used to write `Apply` instances as follows:\n\n```purescript\ninstance applyF :: Apply F where\n  apply = ap\n```\n","info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"m","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"b","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"m","tag":"TypeVar"}],"constraintClass":[["Control","Monad"],"Monad"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":"m","tag":"TypeVar"},{"annotation":[],"contents":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"},"tag":"ParensInType"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":"m","tag":"TypeVar"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":"m","tag":"TypeVar"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[82,56],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","start":[82,1]},"title":"ap"}],"name":"Control.Monad","reExports":[]}
diff --git a/tests/purs/publish/basic-example/output/Control.Monad/externs.json b/tests/purs/publish/basic-example/output/Control.Monad/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Control.Monad/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Control","Monad"],"efExports":[{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[81,13]},{"exportSourceImportedFrom":["Control","Applicative"],"exportSourceDefinedIn":["Control","Applicative"]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[81,13]},"Applicative"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[81,13]},{"exportSourceImportedFrom":["Control","Apply"],"exportSourceDefinedIn":["Control","Apply"]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[81,13]},"Apply"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[81,13]},{"exportSourceImportedFrom":["Control","Bind"],"exportSourceDefinedIn":["Control","Bind"]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[81,13]},"Bind"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[81,13]},{"exportSourceImportedFrom":["Data","Functor"],"exportSourceDefinedIn":["Data","Functor"]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[81,13]},"Functor"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[81,13]},{"exportSourceImportedFrom":["Control","Apply"],"exportSourceDefinedIn":["Control","Apply"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[81,13]},{"Ident":"apply"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[81,13]},{"exportSourceImportedFrom":["Control","Bind"],"exportSourceDefinedIn":["Control","Bind"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[81,13]},{"Ident":"bind"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[81,13]},{"exportSourceImportedFrom":["Control","Bind"],"exportSourceDefinedIn":["Control","Bind"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[81,13]},{"Ident":"ifM"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[81,13]},{"exportSourceImportedFrom":["Control","Bind"],"exportSourceDefinedIn":["Control","Bind"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[81,13]},{"Ident":"join"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[81,13]},{"exportSourceImportedFrom":["Control","Applicative"],"exportSourceDefinedIn":["Control","Applicative"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[81,13]},{"Ident":"liftA1"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[81,13]},{"exportSourceImportedFrom":["Data","Functor"],"exportSourceDefinedIn":["Data","Functor"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[81,13]},{"Ident":"map"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[81,13]},{"exportSourceImportedFrom":["Control","Applicative"],"exportSourceDefinedIn":["Control","Applicative"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[81,13]},{"Ident":"pure"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[81,13]},{"exportSourceImportedFrom":["Control","Applicative"],"exportSourceDefinedIn":["Control","Applicative"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[81,13]},{"Ident":"unless"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[81,13]},{"exportSourceImportedFrom":["Data","Functor"],"exportSourceDefinedIn":["Data","Functor"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[81,13]},{"Ident":"void"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[81,13]},{"exportSourceImportedFrom":["Control","Applicative"],"exportSourceDefinedIn":["Control","Applicative"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[81,13]},{"Ident":"when"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[81,13]},{"exportSourceImportedFrom":["Data","Functor"],"exportSourceDefinedIn":["Data","Functor"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[81,13]},"$>"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[81,13]},{"exportSourceImportedFrom":["Control","Apply"],"exportSourceDefinedIn":["Control","Apply"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[81,13]},"*>"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[81,13]},{"exportSourceImportedFrom":["Data","Functor"],"exportSourceDefinedIn":["Data","Functor"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[81,13]},"<#>"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[81,13]},{"exportSourceImportedFrom":["Data","Functor"],"exportSourceDefinedIn":["Data","Functor"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[81,13]},"<$"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[81,13]},{"exportSourceImportedFrom":["Data","Functor"],"exportSourceDefinedIn":["Data","Functor"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[81,13]},"<$>"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[81,13]},{"exportSourceImportedFrom":["Control","Apply"],"exportSourceDefinedIn":["Control","Apply"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[81,13]},"<*"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[81,13]},{"exportSourceImportedFrom":["Control","Apply"],"exportSourceDefinedIn":["Control","Apply"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[81,13]},"<*>"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[81,13]},{"exportSourceImportedFrom":["Control","Bind"],"exportSourceDefinedIn":["Control","Bind"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[81,13]},"<=<"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[81,13]},{"exportSourceImportedFrom":["Control","Bind"],"exportSourceDefinedIn":["Control","Bind"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[81,13]},"=<<"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[81,13]},{"exportSourceImportedFrom":["Control","Bind"],"exportSourceDefinedIn":["Control","Bind"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[81,13]},">=>"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[81,13]},{"exportSourceImportedFrom":["Control","Bind"],"exportSourceDefinedIn":["Control","Bind"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[81,13]},">>="]}]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[81,13]},"Monad"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[81,13]},{"Ident":"liftM1"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[81,13]},{"Ident":"ap"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[81,13]},{"Ident":"whenM"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[81,13]},{"Ident":"unlessM"}]},{"ModuleRef":[{"start":[7,5],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[7,24]},["Data","Functor"]]},{"ModuleRef":[{"start":[8,5],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[8,25]},["Control","Apply"]]},{"ModuleRef":[{"start":[9,5],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[9,31]},["Control","Applicative"]]},{"ModuleRef":[{"start":[10,5],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[10,24]},["Control","Bind"]]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"monadFn"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"monadArray"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Control","Applicative"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[13,29],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[13,46]},"Applicative"]},{"ValueRef":[{"start":[13,48],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[13,54]},{"Ident":"liftA1"}]},{"ValueRef":[{"start":[13,56],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[13,60]},{"Ident":"pure"}]},{"ValueRef":[{"start":[13,62],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[13,68]},{"Ident":"unless"}]},{"ValueRef":[{"start":[13,70],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[13,74]},{"Ident":"when"}]}]},"eiImportedAs":null},{"eiModule":["Control","Apply"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[14,23],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[14,34]},"Apply"]},{"ValueRef":[{"start":[14,36],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[14,41]},{"Ident":"apply"}]},{"ValueOpRef":[{"start":[14,43],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[14,47]},"*>"]},{"ValueOpRef":[{"start":[14,49],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[14,53]},"<*"]},{"ValueOpRef":[{"start":[14,55],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[14,60]},"<*>"]}]},"eiImportedAs":null},{"eiModule":["Control","Bind"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[15,22],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[15,32]},"Bind"]},{"ValueRef":[{"start":[15,34],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[15,38]},{"Ident":"bind"}]},{"ValueRef":[{"start":[15,40],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[15,43]},{"Ident":"ifM"}]},{"ValueRef":[{"start":[15,45],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[15,49]},{"Ident":"join"}]},{"ValueOpRef":[{"start":[15,51],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[15,56]},"<=<"]},{"ValueOpRef":[{"start":[15,58],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[15,63]},"=<<"]},{"ValueOpRef":[{"start":[15,65],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[15,70]},">=>"]},{"ValueOpRef":[{"start":[15,72],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[15,77]},">>="]}]},"eiImportedAs":null},{"eiModule":["Data","Functor"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[17,22],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[17,35]},"Functor"]},{"ValueRef":[{"start":[17,37],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[17,40]},{"Ident":"map"}]},{"ValueRef":[{"start":[17,42],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[17,46]},{"Ident":"void"}]},{"ValueOpRef":[{"start":[17,48],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[17,52]},"$>"]},{"ValueOpRef":[{"start":[17,54],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[17,59]},"<#>"]},{"ValueOpRef":[{"start":[17,61],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[17,65]},"<$"]},{"ValueOpRef":[{"start":[17,67],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[17,72]},"<$>"]}]},"eiImportedAs":null},{"eiModule":["Data","Unit"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[18,19],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[18,23]},"Unit",[]]}]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDType":{"edTypeName":"Monad","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"Monad","edTypeSynonymArguments":[["m",null]],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["Applicative0",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Control","Applicative"],"Applicative"]},{"annotation":[{"start":[31,20],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[31,21]},[]],"tag":"TypeVar","contents":"m"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["Bind1",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Control","Bind"],"Bind"]},{"annotation":[{"start":[31,28],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[31,29]},[]],"tag":"TypeVar","contents":"m"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]}]}}},{"EDClass":{"edClassName":"Monad","edClassTypeArguments":[["m",null]],"edClassMembers":[],"edClassConstraints":[{"constraintAnn":[{"start":[31,8],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[31,21]},[]],"constraintClass":[["Control","Applicative"],"Applicative"],"constraintArgs":[{"annotation":[{"start":[31,20],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[31,21]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"constraintAnn":[{"start":[31,23],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[31,29]},[]],"constraintClass":[["Control","Bind"],"Bind"],"constraintArgs":[{"annotation":[{"start":[31,28],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[31,29]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null}],"edFunctionalDependencies":[]}},{"EDValue":{"edValueName":{"Ident":"liftM1"},"edValueType":{"annotation":[{"start":[47,11],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[47,58]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[47,18],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[47,58]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[47,18],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[47,58]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[47,25],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[47,58]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[47,25],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[47,32]},[]],"constraintClass":[["Control","Monad"],"Monad"],"constraintArgs":[{"annotation":[{"start":[47,31],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[47,32]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[47,36],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[47,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[47,36],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[47,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[47,45],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[47,47]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[47,37],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[47,43]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[47,37],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[47,43]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[47,39],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[47,41]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[47,37],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[47,38]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[47,42],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[47,43]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[47,48],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[47,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[47,48],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[47,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[47,52],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[47,54]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[47,48],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[47,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[47,48],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[47,49]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[47,50],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[47,51]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[47,55],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[47,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[47,55],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[47,56]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[47,57],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[47,58]},[]],"tag":"TypeVar","contents":"b"}]}]}]}]},28]},29]},30]}}},{"EDValue":{"edValueName":{"Ident":"ap"},"edValueType":{"annotation":[{"start":[63,7],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[63,56]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[63,14],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[63,56]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[63,14],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[63,56]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[63,21],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[63,56]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[63,21],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[63,28]},[]],"constraintClass":[["Control","Monad"],"Monad"],"constraintArgs":[{"annotation":[{"start":[63,27],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[63,28]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[63,32],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[63,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[63,32],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[63,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[63,43],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[63,45]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[63,32],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[63,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[63,32],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[63,33]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[63,35],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[63,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[63,35],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[63,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[63,37],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[63,39]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[63,35],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[63,36]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[63,40],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[63,41]},[]],"tag":"TypeVar","contents":"b"}]}]}]},{"annotation":[{"start":[63,46],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[63,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[63,46],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[63,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[63,50],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[63,52]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[63,46],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[63,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[63,46],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[63,47]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[63,48],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[63,49]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[63,53],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[63,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[63,53],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[63,54]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[63,55],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[63,56]},[]],"tag":"TypeVar","contents":"b"}]}]}]}]},34]},35]},36]}}},{"EDValue":{"edValueName":{"Ident":"whenM"},"edValueType":{"annotation":[{"start":[71,10],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[71,60]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[71,20],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[71,60]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[71,20],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[71,27]},[]],"constraintClass":[["Control","Monad"],"Monad"],"constraintArgs":[{"annotation":[{"start":[71,26],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[71,27]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[71,31],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[71,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[71,31],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[71,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[71,41],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[71,43]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[71,31],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[71,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[71,31],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[71,32]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[71,33],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[71,40]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]},{"annotation":[{"start":[71,44],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[71,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[71,44],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[71,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[71,51],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[71,53]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[71,44],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[71,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[71,44],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[71,45]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[71,46],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[71,50]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]},{"annotation":[{"start":[71,54],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[71,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[71,54],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[71,55]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[71,56],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[71,60]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}]}]},0]}}},{"EDValue":{"edValueName":{"Ident":"unlessM"},"edValueType":{"annotation":[{"start":[78,12],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[78,62]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[78,22],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[78,62]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[78,22],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[78,29]},[]],"constraintClass":[["Control","Monad"],"Monad"],"constraintArgs":[{"annotation":[{"start":[78,28],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[78,29]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[78,33],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[78,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[78,33],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[78,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[78,43],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[78,45]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[78,33],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[78,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[78,33],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[78,34]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[78,35],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[78,42]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]},{"annotation":[{"start":[78,46],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[78,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[78,46],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[78,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[78,53],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[78,55]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[78,46],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[78,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[78,46],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[78,47]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[78,48],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[78,52]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]},{"annotation":[{"start":[78,56],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[78,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[78,56],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[78,57]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[78,58],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[78,62]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}]}]},2]}}},{"EDInstance":{"edInstanceClassName":[["Control","Monad"],"Monad"],"edInstanceName":{"Ident":"monadFn"},"edInstanceTypes":[{"annotation":[{"start":[33,28],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[33,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[33,28],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[33,32]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[33,33],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[33,34]},[]],"tag":"TypeVar","contents":"r"}]}],"edInstanceConstraints":[],"edInstanceChain":[[["Control","Monad"],{"Ident":"monadFn"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Monad"],"Monad"],"edInstanceName":{"Ident":"monadArray"},"edInstanceTypes":[{"annotation":[{"start":[34,30],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[34,35]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Control","Monad"],{"Ident":"monadArray"}]],"edInstanceChainIndex":0}}],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs","end":[81,13]}}
diff --git a/tests/purs/publish/basic-example/output/Control.MonadPlus/docs.json b/tests/purs/publish/basic-example/output/Control.MonadPlus/docs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Control.MonadPlus/docs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"reExports":[],"name":"Control.MonadPlus","comments":null,"declarations":[{"children":[{"comments":null,"title":"monadPlusArray","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","MonadPlus"],"MonadPlus"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]}]}},"sourceSpan":{"start":[31,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadPlus.purs","end":[31,43]}}],"comments":"The `MonadPlus` type class has no members of its own but extends\n`MonadZero` with an additional law:\n\n- Distributivity: `(x <|> y) >>= f == (x >>= f) <|> (y >>= f)`\n","title":"MonadPlus","info":{"fundeps":[],"arguments":[["m",null]],"declType":"typeClass","superclasses":[{"constraintAnn":[],"constraintClass":[["Control","MonadZero"],"MonadZero"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null}]},"sourceSpan":{"start":[29,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadPlus.purs","end":[29,33]}}]}
diff --git a/tests/purs/publish/basic-example/output/Control.MonadPlus/externs.json b/tests/purs/publish/basic-example/output/Control.MonadPlus/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Control.MonadPlus/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Control","MonadPlus"],"efExports":[{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadPlus.purs","end":[31,43]},{"exportSourceImportedFrom":["Control","Alt"],"exportSourceDefinedIn":["Control","Alt"]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadPlus.purs","end":[31,43]},"Alt"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadPlus.purs","end":[31,43]},{"exportSourceImportedFrom":["Control","Alternative"],"exportSourceDefinedIn":["Control","Alternative"]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadPlus.purs","end":[31,43]},"Alternative"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadPlus.purs","end":[31,43]},{"exportSourceImportedFrom":["Control","Applicative"],"exportSourceDefinedIn":["Control","Applicative"]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadPlus.purs","end":[31,43]},"Applicative"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadPlus.purs","end":[31,43]},{"exportSourceImportedFrom":["Control","Apply"],"exportSourceDefinedIn":["Control","Apply"]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadPlus.purs","end":[31,43]},"Apply"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadPlus.purs","end":[31,43]},{"exportSourceImportedFrom":["Control","Bind"],"exportSourceDefinedIn":["Control","Bind"]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadPlus.purs","end":[31,43]},"Bind"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadPlus.purs","end":[31,43]},{"exportSourceImportedFrom":["Data","Functor"],"exportSourceDefinedIn":["Data","Functor"]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadPlus.purs","end":[31,43]},"Functor"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadPlus.purs","end":[31,43]},{"exportSourceImportedFrom":["Control","Monad"],"exportSourceDefinedIn":["Control","Monad"]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadPlus.purs","end":[31,43]},"Monad"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadPlus.purs","end":[31,43]},{"exportSourceImportedFrom":["Control","MonadZero"],"exportSourceDefinedIn":["Control","MonadZero"]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadPlus.purs","end":[31,43]},"MonadZero"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadPlus.purs","end":[31,43]},{"exportSourceImportedFrom":["Control","Plus"],"exportSourceDefinedIn":["Control","Plus"]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadPlus.purs","end":[31,43]},"Plus"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadPlus.purs","end":[31,43]},{"exportSourceImportedFrom":["Control","Alt"],"exportSourceDefinedIn":["Control","Alt"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadPlus.purs","end":[31,43]},{"Ident":"alt"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadPlus.purs","end":[31,43]},{"exportSourceImportedFrom":["Control","Monad"],"exportSourceDefinedIn":["Control","Monad"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadPlus.purs","end":[31,43]},{"Ident":"ap"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadPlus.purs","end":[31,43]},{"exportSourceImportedFrom":["Control","Apply"],"exportSourceDefinedIn":["Control","Apply"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadPlus.purs","end":[31,43]},{"Ident":"apply"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadPlus.purs","end":[31,43]},{"exportSourceImportedFrom":["Control","Bind"],"exportSourceDefinedIn":["Control","Bind"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadPlus.purs","end":[31,43]},{"Ident":"bind"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadPlus.purs","end":[31,43]},{"exportSourceImportedFrom":["Control","Plus"],"exportSourceDefinedIn":["Control","Plus"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadPlus.purs","end":[31,43]},{"Ident":"empty"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadPlus.purs","end":[31,43]},{"exportSourceImportedFrom":["Control","MonadZero"],"exportSourceDefinedIn":["Control","MonadZero"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadPlus.purs","end":[31,43]},{"Ident":"guard"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadPlus.purs","end":[31,43]},{"exportSourceImportedFrom":["Control","Bind"],"exportSourceDefinedIn":["Control","Bind"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadPlus.purs","end":[31,43]},{"Ident":"ifM"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadPlus.purs","end":[31,43]},{"exportSourceImportedFrom":["Control","Bind"],"exportSourceDefinedIn":["Control","Bind"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadPlus.purs","end":[31,43]},{"Ident":"join"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadPlus.purs","end":[31,43]},{"exportSourceImportedFrom":["Control","Applicative"],"exportSourceDefinedIn":["Control","Applicative"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadPlus.purs","end":[31,43]},{"Ident":"liftA1"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadPlus.purs","end":[31,43]},{"exportSourceImportedFrom":["Control","Monad"],"exportSourceDefinedIn":["Control","Monad"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadPlus.purs","end":[31,43]},{"Ident":"liftM1"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadPlus.purs","end":[31,43]},{"exportSourceImportedFrom":["Data","Functor"],"exportSourceDefinedIn":["Data","Functor"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadPlus.purs","end":[31,43]},{"Ident":"map"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadPlus.purs","end":[31,43]},{"exportSourceImportedFrom":["Control","Applicative"],"exportSourceDefinedIn":["Control","Applicative"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadPlus.purs","end":[31,43]},{"Ident":"pure"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadPlus.purs","end":[31,43]},{"exportSourceImportedFrom":["Control","Applicative"],"exportSourceDefinedIn":["Control","Applicative"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadPlus.purs","end":[31,43]},{"Ident":"unless"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadPlus.purs","end":[31,43]},{"exportSourceImportedFrom":["Data","Functor"],"exportSourceDefinedIn":["Data","Functor"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadPlus.purs","end":[31,43]},{"Ident":"void"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadPlus.purs","end":[31,43]},{"exportSourceImportedFrom":["Control","Applicative"],"exportSourceDefinedIn":["Control","Applicative"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadPlus.purs","end":[31,43]},{"Ident":"when"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadPlus.purs","end":[31,43]},{"exportSourceImportedFrom":["Data","Functor"],"exportSourceDefinedIn":["Data","Functor"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadPlus.purs","end":[31,43]},"$>"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadPlus.purs","end":[31,43]},{"exportSourceImportedFrom":["Control","Apply"],"exportSourceDefinedIn":["Control","Apply"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadPlus.purs","end":[31,43]},"*>"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadPlus.purs","end":[31,43]},{"exportSourceImportedFrom":["Data","Functor"],"exportSourceDefinedIn":["Data","Functor"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadPlus.purs","end":[31,43]},"<#>"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadPlus.purs","end":[31,43]},{"exportSourceImportedFrom":["Data","Functor"],"exportSourceDefinedIn":["Data","Functor"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadPlus.purs","end":[31,43]},"<$"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadPlus.purs","end":[31,43]},{"exportSourceImportedFrom":["Data","Functor"],"exportSourceDefinedIn":["Data","Functor"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadPlus.purs","end":[31,43]},"<$>"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadPlus.purs","end":[31,43]},{"exportSourceImportedFrom":["Control","Apply"],"exportSourceDefinedIn":["Control","Apply"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadPlus.purs","end":[31,43]},"<*"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadPlus.purs","end":[31,43]},{"exportSourceImportedFrom":["Control","Apply"],"exportSourceDefinedIn":["Control","Apply"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadPlus.purs","end":[31,43]},"<*>"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadPlus.purs","end":[31,43]},{"exportSourceImportedFrom":["Control","Bind"],"exportSourceDefinedIn":["Control","Bind"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadPlus.purs","end":[31,43]},"<=<"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadPlus.purs","end":[31,43]},{"exportSourceImportedFrom":["Control","Alt"],"exportSourceDefinedIn":["Control","Alt"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadPlus.purs","end":[31,43]},"<|>"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadPlus.purs","end":[31,43]},{"exportSourceImportedFrom":["Control","Bind"],"exportSourceDefinedIn":["Control","Bind"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadPlus.purs","end":[31,43]},"=<<"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadPlus.purs","end":[31,43]},{"exportSourceImportedFrom":["Control","Bind"],"exportSourceDefinedIn":["Control","Bind"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadPlus.purs","end":[31,43]},">=>"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadPlus.purs","end":[31,43]},{"exportSourceImportedFrom":["Control","Bind"],"exportSourceDefinedIn":["Control","Bind"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadPlus.purs","end":[31,43]},">>="]}]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadPlus.purs","end":[31,43]},"MonadPlus"]},{"ModuleRef":[{"start":[3,5],"name":"../../../support/bower_components/purescript-control/src/Control/MonadPlus.purs","end":[3,23]},["Control","Alt"]]},{"ModuleRef":[{"start":[4,5],"name":"../../../support/bower_components/purescript-control/src/Control/MonadPlus.purs","end":[4,31]},["Control","Alternative"]]},{"ModuleRef":[{"start":[5,5],"name":"../../../support/bower_components/purescript-control/src/Control/MonadPlus.purs","end":[5,31]},["Control","Applicative"]]},{"ModuleRef":[{"start":[6,5],"name":"../../../support/bower_components/purescript-control/src/Control/MonadPlus.purs","end":[6,25]},["Control","Apply"]]},{"ModuleRef":[{"start":[7,5],"name":"../../../support/bower_components/purescript-control/src/Control/MonadPlus.purs","end":[7,24]},["Control","Bind"]]},{"ModuleRef":[{"start":[8,5],"name":"../../../support/bower_components/purescript-control/src/Control/MonadPlus.purs","end":[8,25]},["Control","Monad"]]},{"ModuleRef":[{"start":[9,5],"name":"../../../support/bower_components/purescript-control/src/Control/MonadPlus.purs","end":[9,29]},["Control","MonadZero"]]},{"ModuleRef":[{"start":[10,5],"name":"../../../support/bower_components/purescript-control/src/Control/MonadPlus.purs","end":[10,24]},["Control","Plus"]]},{"ModuleRef":[{"start":[11,5],"name":"../../../support/bower_components/purescript-control/src/Control/MonadPlus.purs","end":[11,24]},["Data","Functor"]]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"monadPlusArray"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Control","Alt"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[14,21],"name":"../../../support/bower_components/purescript-control/src/Control/MonadPlus.purs","end":[14,30]},"Alt"]},{"ValueRef":[{"start":[14,32],"name":"../../../support/bower_components/purescript-control/src/Control/MonadPlus.purs","end":[14,35]},{"Ident":"alt"}]},{"ValueOpRef":[{"start":[14,37],"name":"../../../support/bower_components/purescript-control/src/Control/MonadPlus.purs","end":[14,42]},"<|>"]}]},"eiImportedAs":null},{"eiModule":["Control","Alternative"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[15,29],"name":"../../../support/bower_components/purescript-control/src/Control/MonadPlus.purs","end":[15,46]},"Alternative"]}]},"eiImportedAs":null},{"eiModule":["Control","Applicative"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[16,29],"name":"../../../support/bower_components/purescript-control/src/Control/MonadPlus.purs","end":[16,46]},"Applicative"]},{"ValueRef":[{"start":[16,48],"name":"../../../support/bower_components/purescript-control/src/Control/MonadPlus.purs","end":[16,52]},{"Ident":"pure"}]},{"ValueRef":[{"start":[16,54],"name":"../../../support/bower_components/purescript-control/src/Control/MonadPlus.purs","end":[16,60]},{"Ident":"liftA1"}]},{"ValueRef":[{"start":[16,62],"name":"../../../support/bower_components/purescript-control/src/Control/MonadPlus.purs","end":[16,68]},{"Ident":"unless"}]},{"ValueRef":[{"start":[16,70],"name":"../../../support/bower_components/purescript-control/src/Control/MonadPlus.purs","end":[16,74]},{"Ident":"when"}]}]},"eiImportedAs":null},{"eiModule":["Control","Apply"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[17,23],"name":"../../../support/bower_components/purescript-control/src/Control/MonadPlus.purs","end":[17,34]},"Apply"]},{"ValueRef":[{"start":[17,36],"name":"../../../support/bower_components/purescript-control/src/Control/MonadPlus.purs","end":[17,41]},{"Ident":"apply"}]},{"ValueOpRef":[{"start":[17,43],"name":"../../../support/bower_components/purescript-control/src/Control/MonadPlus.purs","end":[17,47]},"*>"]},{"ValueOpRef":[{"start":[17,49],"name":"../../../support/bower_components/purescript-control/src/Control/MonadPlus.purs","end":[17,53]},"<*"]},{"ValueOpRef":[{"start":[17,55],"name":"../../../support/bower_components/purescript-control/src/Control/MonadPlus.purs","end":[17,60]},"<*>"]}]},"eiImportedAs":null},{"eiModule":["Control","Bind"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[18,22],"name":"../../../support/bower_components/purescript-control/src/Control/MonadPlus.purs","end":[18,32]},"Bind"]},{"ValueRef":[{"start":[18,34],"name":"../../../support/bower_components/purescript-control/src/Control/MonadPlus.purs","end":[18,38]},{"Ident":"bind"}]},{"ValueRef":[{"start":[18,40],"name":"../../../support/bower_components/purescript-control/src/Control/MonadPlus.purs","end":[18,43]},{"Ident":"ifM"}]},{"ValueRef":[{"start":[18,45],"name":"../../../support/bower_components/purescript-control/src/Control/MonadPlus.purs","end":[18,49]},{"Ident":"join"}]},{"ValueOpRef":[{"start":[18,51],"name":"../../../support/bower_components/purescript-control/src/Control/MonadPlus.purs","end":[18,56]},"<=<"]},{"ValueOpRef":[{"start":[18,58],"name":"../../../support/bower_components/purescript-control/src/Control/MonadPlus.purs","end":[18,63]},"=<<"]},{"ValueOpRef":[{"start":[18,65],"name":"../../../support/bower_components/purescript-control/src/Control/MonadPlus.purs","end":[18,70]},">=>"]},{"ValueOpRef":[{"start":[18,72],"name":"../../../support/bower_components/purescript-control/src/Control/MonadPlus.purs","end":[18,77]},">>="]}]},"eiImportedAs":null},{"eiModule":["Control","Monad"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[19,23],"name":"../../../support/bower_components/purescript-control/src/Control/MonadPlus.purs","end":[19,34]},"Monad"]},{"ValueRef":[{"start":[19,36],"name":"../../../support/bower_components/purescript-control/src/Control/MonadPlus.purs","end":[19,38]},{"Ident":"ap"}]},{"ValueRef":[{"start":[19,40],"name":"../../../support/bower_components/purescript-control/src/Control/MonadPlus.purs","end":[19,46]},{"Ident":"liftM1"}]}]},"eiImportedAs":null},{"eiModule":["Control","MonadZero"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[20,27],"name":"../../../support/bower_components/purescript-control/src/Control/MonadPlus.purs","end":[20,42]},"MonadZero"]},{"ValueRef":[{"start":[20,44],"name":"../../../support/bower_components/purescript-control/src/Control/MonadPlus.purs","end":[20,49]},{"Ident":"guard"}]}]},"eiImportedAs":null},{"eiModule":["Control","Plus"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[21,22],"name":"../../../support/bower_components/purescript-control/src/Control/MonadPlus.purs","end":[21,32]},"Plus"]},{"ValueRef":[{"start":[21,34],"name":"../../../support/bower_components/purescript-control/src/Control/MonadPlus.purs","end":[21,39]},{"Ident":"empty"}]}]},"eiImportedAs":null},{"eiModule":["Data","Functor"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[23,22],"name":"../../../support/bower_components/purescript-control/src/Control/MonadPlus.purs","end":[23,35]},"Functor"]},{"ValueRef":[{"start":[23,37],"name":"../../../support/bower_components/purescript-control/src/Control/MonadPlus.purs","end":[23,40]},{"Ident":"map"}]},{"ValueRef":[{"start":[23,42],"name":"../../../support/bower_components/purescript-control/src/Control/MonadPlus.purs","end":[23,46]},{"Ident":"void"}]},{"ValueOpRef":[{"start":[23,48],"name":"../../../support/bower_components/purescript-control/src/Control/MonadPlus.purs","end":[23,52]},"$>"]},{"ValueOpRef":[{"start":[23,54],"name":"../../../support/bower_components/purescript-control/src/Control/MonadPlus.purs","end":[23,59]},"<#>"]},{"ValueOpRef":[{"start":[23,61],"name":"../../../support/bower_components/purescript-control/src/Control/MonadPlus.purs","end":[23,65]},"<$"]},{"ValueOpRef":[{"start":[23,67],"name":"../../../support/bower_components/purescript-control/src/Control/MonadPlus.purs","end":[23,72]},"<$>"]}]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDType":{"edTypeName":"MonadPlus","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"MonadPlus","edTypeSynonymArguments":[["m",null]],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["MonadZero0",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Control","MonadZero"],"MonadZero"]},{"annotation":[{"start":[29,17],"name":"../../../support/bower_components/purescript-control/src/Control/MonadPlus.purs","end":[29,18]},[]],"tag":"TypeVar","contents":"m"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]}}},{"EDClass":{"edClassName":"MonadPlus","edClassTypeArguments":[["m",null]],"edClassMembers":[],"edClassConstraints":[{"constraintAnn":[{"start":[29,7],"name":"../../../support/bower_components/purescript-control/src/Control/MonadPlus.purs","end":[29,18]},[]],"constraintClass":[["Control","MonadZero"],"MonadZero"],"constraintArgs":[{"annotation":[{"start":[29,17],"name":"../../../support/bower_components/purescript-control/src/Control/MonadPlus.purs","end":[29,18]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null}],"edFunctionalDependencies":[]}},{"EDInstance":{"edInstanceClassName":[["Control","MonadPlus"],"MonadPlus"],"edInstanceName":{"Ident":"monadPlusArray"},"edInstanceTypes":[{"annotation":[{"start":[31,38],"name":"../../../support/bower_components/purescript-control/src/Control/MonadPlus.purs","end":[31,43]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Control","MonadPlus"],{"Ident":"monadPlusArray"}]],"edInstanceChainIndex":0}}],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadPlus.purs","end":[31,43]}}
diff --git a/tests/purs/publish/basic-example/output/Control.MonadZero/docs.json b/tests/purs/publish/basic-example/output/Control.MonadZero/docs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Control.MonadZero/docs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"reExports":[],"name":"Control.MonadZero","comments":null,"declarations":[{"children":[{"comments":null,"title":"monadZeroArray","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","MonadZero"],"MonadZero"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]}]}},"sourceSpan":{"start":[34,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadZero.purs","end":[34,43]}}],"comments":"The `MonadZero` type class has no members of its own; it just specifies\nthat the type has both `Monad` and `Alternative` instances.\n\nTypes which have `MonadZero` instances should also satisfy the following\nlaws:\n\n- Annihilation: `empty >>= f = empty`\n","title":"MonadZero","info":{"fundeps":[],"arguments":[["m",null]],"declType":"typeClass","superclasses":[{"constraintAnn":[],"constraintClass":[["Control","Monad"],"Monad"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Control","Alternative"],"Alternative"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null}]},"sourceSpan":{"start":[32,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadZero.purs","end":[32,46]}},{"children":[],"comments":"Fail using `Plus` if a condition does not hold, or\nsucceed using `Monad` if it does.\n\nFor example:\n\n```purescript\nimport Prelude\nimport Control.Monad (bind)\nimport Control.MonadZero (guard)\nimport Data.Array ((..))\n\nfactors :: Int -> Array Int\nfactors n = do\n  a <- 1..n\n  b <- 1..n\n  guard $ a * b == n\n  pure a\n```\n","title":"guard","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","MonadZero"],"MonadZero"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}]},null]}},"sourceSpan":{"start":[54,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadZero.purs","end":[54,52]}}]}
diff --git a/tests/purs/publish/basic-example/output/Control.MonadZero/externs.json b/tests/purs/publish/basic-example/output/Control.MonadZero/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Control.MonadZero/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Control","MonadZero"],"efExports":[{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadZero.purs","end":[56,20]},{"exportSourceImportedFrom":["Control","Alt"],"exportSourceDefinedIn":["Control","Alt"]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadZero.purs","end":[56,20]},"Alt"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadZero.purs","end":[56,20]},{"exportSourceImportedFrom":["Control","Alternative"],"exportSourceDefinedIn":["Control","Alternative"]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadZero.purs","end":[56,20]},"Alternative"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadZero.purs","end":[56,20]},{"exportSourceImportedFrom":["Control","Applicative"],"exportSourceDefinedIn":["Control","Applicative"]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadZero.purs","end":[56,20]},"Applicative"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadZero.purs","end":[56,20]},{"exportSourceImportedFrom":["Control","Apply"],"exportSourceDefinedIn":["Control","Apply"]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadZero.purs","end":[56,20]},"Apply"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadZero.purs","end":[56,20]},{"exportSourceImportedFrom":["Control","Bind"],"exportSourceDefinedIn":["Control","Bind"]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadZero.purs","end":[56,20]},"Bind"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadZero.purs","end":[56,20]},{"exportSourceImportedFrom":["Data","Functor"],"exportSourceDefinedIn":["Data","Functor"]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadZero.purs","end":[56,20]},"Functor"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadZero.purs","end":[56,20]},{"exportSourceImportedFrom":["Control","Monad"],"exportSourceDefinedIn":["Control","Monad"]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadZero.purs","end":[56,20]},"Monad"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadZero.purs","end":[56,20]},{"exportSourceImportedFrom":["Control","Plus"],"exportSourceDefinedIn":["Control","Plus"]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadZero.purs","end":[56,20]},"Plus"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadZero.purs","end":[56,20]},{"exportSourceImportedFrom":["Control","Alt"],"exportSourceDefinedIn":["Control","Alt"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadZero.purs","end":[56,20]},{"Ident":"alt"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadZero.purs","end":[56,20]},{"exportSourceImportedFrom":["Control","Monad"],"exportSourceDefinedIn":["Control","Monad"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadZero.purs","end":[56,20]},{"Ident":"ap"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadZero.purs","end":[56,20]},{"exportSourceImportedFrom":["Control","Apply"],"exportSourceDefinedIn":["Control","Apply"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadZero.purs","end":[56,20]},{"Ident":"apply"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadZero.purs","end":[56,20]},{"exportSourceImportedFrom":["Control","Bind"],"exportSourceDefinedIn":["Control","Bind"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadZero.purs","end":[56,20]},{"Ident":"bind"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadZero.purs","end":[56,20]},{"exportSourceImportedFrom":["Control","Plus"],"exportSourceDefinedIn":["Control","Plus"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadZero.purs","end":[56,20]},{"Ident":"empty"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadZero.purs","end":[56,20]},{"exportSourceImportedFrom":["Control","Bind"],"exportSourceDefinedIn":["Control","Bind"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadZero.purs","end":[56,20]},{"Ident":"ifM"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadZero.purs","end":[56,20]},{"exportSourceImportedFrom":["Control","Bind"],"exportSourceDefinedIn":["Control","Bind"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadZero.purs","end":[56,20]},{"Ident":"join"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadZero.purs","end":[56,20]},{"exportSourceImportedFrom":["Control","Applicative"],"exportSourceDefinedIn":["Control","Applicative"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadZero.purs","end":[56,20]},{"Ident":"liftA1"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadZero.purs","end":[56,20]},{"exportSourceImportedFrom":["Control","Monad"],"exportSourceDefinedIn":["Control","Monad"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadZero.purs","end":[56,20]},{"Ident":"liftM1"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadZero.purs","end":[56,20]},{"exportSourceImportedFrom":["Data","Functor"],"exportSourceDefinedIn":["Data","Functor"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadZero.purs","end":[56,20]},{"Ident":"map"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadZero.purs","end":[56,20]},{"exportSourceImportedFrom":["Control","Applicative"],"exportSourceDefinedIn":["Control","Applicative"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadZero.purs","end":[56,20]},{"Ident":"pure"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadZero.purs","end":[56,20]},{"exportSourceImportedFrom":["Control","Applicative"],"exportSourceDefinedIn":["Control","Applicative"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadZero.purs","end":[56,20]},{"Ident":"unless"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadZero.purs","end":[56,20]},{"exportSourceImportedFrom":["Data","Functor"],"exportSourceDefinedIn":["Data","Functor"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadZero.purs","end":[56,20]},{"Ident":"void"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadZero.purs","end":[56,20]},{"exportSourceImportedFrom":["Control","Applicative"],"exportSourceDefinedIn":["Control","Applicative"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadZero.purs","end":[56,20]},{"Ident":"when"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadZero.purs","end":[56,20]},{"exportSourceImportedFrom":["Data","Functor"],"exportSourceDefinedIn":["Data","Functor"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadZero.purs","end":[56,20]},"$>"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadZero.purs","end":[56,20]},{"exportSourceImportedFrom":["Control","Apply"],"exportSourceDefinedIn":["Control","Apply"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadZero.purs","end":[56,20]},"*>"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadZero.purs","end":[56,20]},{"exportSourceImportedFrom":["Data","Functor"],"exportSourceDefinedIn":["Data","Functor"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadZero.purs","end":[56,20]},"<#>"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadZero.purs","end":[56,20]},{"exportSourceImportedFrom":["Data","Functor"],"exportSourceDefinedIn":["Data","Functor"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadZero.purs","end":[56,20]},"<$"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadZero.purs","end":[56,20]},{"exportSourceImportedFrom":["Data","Functor"],"exportSourceDefinedIn":["Data","Functor"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadZero.purs","end":[56,20]},"<$>"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadZero.purs","end":[56,20]},{"exportSourceImportedFrom":["Control","Apply"],"exportSourceDefinedIn":["Control","Apply"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadZero.purs","end":[56,20]},"<*"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadZero.purs","end":[56,20]},{"exportSourceImportedFrom":["Control","Apply"],"exportSourceDefinedIn":["Control","Apply"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadZero.purs","end":[56,20]},"<*>"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadZero.purs","end":[56,20]},{"exportSourceImportedFrom":["Control","Bind"],"exportSourceDefinedIn":["Control","Bind"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadZero.purs","end":[56,20]},"<=<"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadZero.purs","end":[56,20]},{"exportSourceImportedFrom":["Control","Alt"],"exportSourceDefinedIn":["Control","Alt"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadZero.purs","end":[56,20]},"<|>"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadZero.purs","end":[56,20]},{"exportSourceImportedFrom":["Control","Bind"],"exportSourceDefinedIn":["Control","Bind"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadZero.purs","end":[56,20]},"=<<"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadZero.purs","end":[56,20]},{"exportSourceImportedFrom":["Control","Bind"],"exportSourceDefinedIn":["Control","Bind"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadZero.purs","end":[56,20]},">=>"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadZero.purs","end":[56,20]},{"exportSourceImportedFrom":["Control","Bind"],"exportSourceDefinedIn":["Control","Bind"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadZero.purs","end":[56,20]},">>="]}]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadZero.purs","end":[56,20]},"MonadZero"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadZero.purs","end":[56,20]},{"Ident":"guard"}]},{"ModuleRef":[{"start":[4,5],"name":"../../../support/bower_components/purescript-control/src/Control/MonadZero.purs","end":[4,23]},["Control","Alt"]]},{"ModuleRef":[{"start":[5,5],"name":"../../../support/bower_components/purescript-control/src/Control/MonadZero.purs","end":[5,31]},["Control","Alternative"]]},{"ModuleRef":[{"start":[6,5],"name":"../../../support/bower_components/purescript-control/src/Control/MonadZero.purs","end":[6,31]},["Control","Applicative"]]},{"ModuleRef":[{"start":[7,5],"name":"../../../support/bower_components/purescript-control/src/Control/MonadZero.purs","end":[7,25]},["Control","Apply"]]},{"ModuleRef":[{"start":[8,5],"name":"../../../support/bower_components/purescript-control/src/Control/MonadZero.purs","end":[8,24]},["Control","Bind"]]},{"ModuleRef":[{"start":[9,5],"name":"../../../support/bower_components/purescript-control/src/Control/MonadZero.purs","end":[9,25]},["Control","Monad"]]},{"ModuleRef":[{"start":[10,5],"name":"../../../support/bower_components/purescript-control/src/Control/MonadZero.purs","end":[10,24]},["Control","Plus"]]},{"ModuleRef":[{"start":[11,5],"name":"../../../support/bower_components/purescript-control/src/Control/MonadZero.purs","end":[11,24]},["Data","Functor"]]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"monadZeroArray"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Control","Alt"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[14,21],"name":"../../../support/bower_components/purescript-control/src/Control/MonadZero.purs","end":[14,30]},"Alt"]},{"ValueRef":[{"start":[14,32],"name":"../../../support/bower_components/purescript-control/src/Control/MonadZero.purs","end":[14,35]},{"Ident":"alt"}]},{"ValueOpRef":[{"start":[14,37],"name":"../../../support/bower_components/purescript-control/src/Control/MonadZero.purs","end":[14,42]},"<|>"]}]},"eiImportedAs":null},{"eiModule":["Control","Alternative"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[15,29],"name":"../../../support/bower_components/purescript-control/src/Control/MonadZero.purs","end":[15,46]},"Alternative"]}]},"eiImportedAs":null},{"eiModule":["Control","Applicative"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[16,29],"name":"../../../support/bower_components/purescript-control/src/Control/MonadZero.purs","end":[16,46]},"Applicative"]},{"ValueRef":[{"start":[16,48],"name":"../../../support/bower_components/purescript-control/src/Control/MonadZero.purs","end":[16,52]},{"Ident":"pure"}]},{"ValueRef":[{"start":[16,54],"name":"../../../support/bower_components/purescript-control/src/Control/MonadZero.purs","end":[16,60]},{"Ident":"liftA1"}]},{"ValueRef":[{"start":[16,62],"name":"../../../support/bower_components/purescript-control/src/Control/MonadZero.purs","end":[16,68]},{"Ident":"unless"}]},{"ValueRef":[{"start":[16,70],"name":"../../../support/bower_components/purescript-control/src/Control/MonadZero.purs","end":[16,74]},{"Ident":"when"}]}]},"eiImportedAs":null},{"eiModule":["Control","Apply"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[17,23],"name":"../../../support/bower_components/purescript-control/src/Control/MonadZero.purs","end":[17,34]},"Apply"]},{"ValueRef":[{"start":[17,36],"name":"../../../support/bower_components/purescript-control/src/Control/MonadZero.purs","end":[17,41]},{"Ident":"apply"}]},{"ValueOpRef":[{"start":[17,43],"name":"../../../support/bower_components/purescript-control/src/Control/MonadZero.purs","end":[17,47]},"*>"]},{"ValueOpRef":[{"start":[17,49],"name":"../../../support/bower_components/purescript-control/src/Control/MonadZero.purs","end":[17,53]},"<*"]},{"ValueOpRef":[{"start":[17,55],"name":"../../../support/bower_components/purescript-control/src/Control/MonadZero.purs","end":[17,60]},"<*>"]}]},"eiImportedAs":null},{"eiModule":["Control","Bind"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[18,22],"name":"../../../support/bower_components/purescript-control/src/Control/MonadZero.purs","end":[18,32]},"Bind"]},{"ValueRef":[{"start":[18,34],"name":"../../../support/bower_components/purescript-control/src/Control/MonadZero.purs","end":[18,38]},{"Ident":"bind"}]},{"ValueRef":[{"start":[18,40],"name":"../../../support/bower_components/purescript-control/src/Control/MonadZero.purs","end":[18,43]},{"Ident":"ifM"}]},{"ValueRef":[{"start":[18,45],"name":"../../../support/bower_components/purescript-control/src/Control/MonadZero.purs","end":[18,49]},{"Ident":"join"}]},{"ValueOpRef":[{"start":[18,51],"name":"../../../support/bower_components/purescript-control/src/Control/MonadZero.purs","end":[18,56]},"<=<"]},{"ValueOpRef":[{"start":[18,58],"name":"../../../support/bower_components/purescript-control/src/Control/MonadZero.purs","end":[18,63]},"=<<"]},{"ValueOpRef":[{"start":[18,65],"name":"../../../support/bower_components/purescript-control/src/Control/MonadZero.purs","end":[18,70]},">=>"]},{"ValueOpRef":[{"start":[18,72],"name":"../../../support/bower_components/purescript-control/src/Control/MonadZero.purs","end":[18,77]},">>="]}]},"eiImportedAs":null},{"eiModule":["Control","Monad"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[19,23],"name":"../../../support/bower_components/purescript-control/src/Control/MonadZero.purs","end":[19,34]},"Monad"]},{"ValueRef":[{"start":[19,36],"name":"../../../support/bower_components/purescript-control/src/Control/MonadZero.purs","end":[19,38]},{"Ident":"ap"}]},{"ValueRef":[{"start":[19,40],"name":"../../../support/bower_components/purescript-control/src/Control/MonadZero.purs","end":[19,46]},{"Ident":"liftM1"}]}]},"eiImportedAs":null},{"eiModule":["Control","Plus"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[20,22],"name":"../../../support/bower_components/purescript-control/src/Control/MonadZero.purs","end":[20,32]},"Plus"]},{"ValueRef":[{"start":[20,34],"name":"../../../support/bower_components/purescript-control/src/Control/MonadZero.purs","end":[20,39]},{"Ident":"empty"}]}]},"eiImportedAs":null},{"eiModule":["Data","Functor"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[22,22],"name":"../../../support/bower_components/purescript-control/src/Control/MonadZero.purs","end":[22,35]},"Functor"]},{"ValueRef":[{"start":[22,37],"name":"../../../support/bower_components/purescript-control/src/Control/MonadZero.purs","end":[22,40]},{"Ident":"map"}]},{"ValueRef":[{"start":[22,42],"name":"../../../support/bower_components/purescript-control/src/Control/MonadZero.purs","end":[22,46]},{"Ident":"void"}]},{"ValueOpRef":[{"start":[22,48],"name":"../../../support/bower_components/purescript-control/src/Control/MonadZero.purs","end":[22,52]},"$>"]},{"ValueOpRef":[{"start":[22,54],"name":"../../../support/bower_components/purescript-control/src/Control/MonadZero.purs","end":[22,59]},"<#>"]},{"ValueOpRef":[{"start":[22,61],"name":"../../../support/bower_components/purescript-control/src/Control/MonadZero.purs","end":[22,65]},"<$"]},{"ValueOpRef":[{"start":[22,67],"name":"../../../support/bower_components/purescript-control/src/Control/MonadZero.purs","end":[22,72]},"<$>"]}]},"eiImportedAs":null},{"eiModule":["Data","Unit"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[23,19],"name":"../../../support/bower_components/purescript-control/src/Control/MonadZero.purs","end":[23,23]},"Unit",[]]},{"ValueRef":[{"start":[23,25],"name":"../../../support/bower_components/purescript-control/src/Control/MonadZero.purs","end":[23,29]},{"Ident":"unit"}]}]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDType":{"edTypeName":"MonadZero","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"MonadZero","edTypeSynonymArguments":[["m",null]],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["Monad0",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Control","Monad"],"Monad"]},{"annotation":[{"start":[32,14],"name":"../../../support/bower_components/purescript-control/src/Control/MonadZero.purs","end":[32,15]},[]],"tag":"TypeVar","contents":"m"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["Alternative1",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Control","Alternative"],"Alternative"]},{"annotation":[{"start":[32,29],"name":"../../../support/bower_components/purescript-control/src/Control/MonadZero.purs","end":[32,30]},[]],"tag":"TypeVar","contents":"m"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]}]}}},{"EDClass":{"edClassName":"MonadZero","edClassTypeArguments":[["m",null]],"edClassMembers":[],"edClassConstraints":[{"constraintAnn":[{"start":[32,8],"name":"../../../support/bower_components/purescript-control/src/Control/MonadZero.purs","end":[32,15]},[]],"constraintClass":[["Control","Monad"],"Monad"],"constraintArgs":[{"annotation":[{"start":[32,14],"name":"../../../support/bower_components/purescript-control/src/Control/MonadZero.purs","end":[32,15]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"constraintAnn":[{"start":[32,17],"name":"../../../support/bower_components/purescript-control/src/Control/MonadZero.purs","end":[32,30]},[]],"constraintClass":[["Control","Alternative"],"Alternative"],"constraintArgs":[{"annotation":[{"start":[32,29],"name":"../../../support/bower_components/purescript-control/src/Control/MonadZero.purs","end":[32,30]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null}],"edFunctionalDependencies":[]}},{"EDValue":{"edValueName":{"Ident":"guard"},"edValueType":{"annotation":[{"start":[54,10],"name":"../../../support/bower_components/purescript-control/src/Control/MonadZero.purs","end":[54,52]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[54,20],"name":"../../../support/bower_components/purescript-control/src/Control/MonadZero.purs","end":[54,52]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[54,20],"name":"../../../support/bower_components/purescript-control/src/Control/MonadZero.purs","end":[54,31]},[]],"constraintClass":[["Control","MonadZero"],"MonadZero"],"constraintArgs":[{"annotation":[{"start":[54,30],"name":"../../../support/bower_components/purescript-control/src/Control/MonadZero.purs","end":[54,31]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[54,35],"name":"../../../support/bower_components/purescript-control/src/Control/MonadZero.purs","end":[54,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[54,35],"name":"../../../support/bower_components/purescript-control/src/Control/MonadZero.purs","end":[54,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[54,43],"name":"../../../support/bower_components/purescript-control/src/Control/MonadZero.purs","end":[54,45]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[54,35],"name":"../../../support/bower_components/purescript-control/src/Control/MonadZero.purs","end":[54,42]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]},{"annotation":[{"start":[54,46],"name":"../../../support/bower_components/purescript-control/src/Control/MonadZero.purs","end":[54,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[54,46],"name":"../../../support/bower_components/purescript-control/src/Control/MonadZero.purs","end":[54,47]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[54,48],"name":"../../../support/bower_components/purescript-control/src/Control/MonadZero.purs","end":[54,52]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}]},20]}}},{"EDInstance":{"edInstanceClassName":[["Control","MonadZero"],"MonadZero"],"edInstanceName":{"Ident":"monadZeroArray"},"edInstanceTypes":[{"annotation":[{"start":[34,38],"name":"../../../support/bower_components/purescript-control/src/Control/MonadZero.purs","end":[34,43]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Control","MonadZero"],{"Ident":"monadZeroArray"}]],"edInstanceChainIndex":0}}],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/MonadZero.purs","end":[56,20]}}
diff --git a/tests/purs/publish/basic-example/output/Control.Plus/docs.json b/tests/purs/publish/basic-example/output/Control.Plus/docs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Control.Plus/docs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"reExports":[],"name":"Control.Plus","comments":null,"declarations":[{"children":[{"comments":null,"title":"empty","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]},null]}},"sourceSpan":{"start":[24,3],"name":"../../../support/bower_components/purescript-control/src/Control/Plus.purs","end":[24,25]}},{"comments":null,"title":"plusArray","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Plus"],"Plus"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]}]}},"sourceSpan":{"start":[26,1],"name":"../../../support/bower_components/purescript-control/src/Control/Plus.purs","end":[27,13]}}],"comments":"The `Plus` type class extends the `Alt` type class with a value that\nshould be the left and right identity for `(<|>)`.\n\nIt is similar to `Monoid`, except that it applies to types of\nkind `* -> *`, like `Array` or `List`, rather than concrete types like\n`String` or `Number`.\n\n`Plus` instances should satisfy the following laws:\n\n- Left identity: `empty <|> x == x`\n- Right identity: `x <|> empty == x`\n- Annihilation: `f <$> empty == empty`\n","title":"Plus","info":{"fundeps":[],"arguments":[["f",null]],"declType":"typeClass","superclasses":[{"constraintAnn":[],"constraintClass":[["Control","Alt"],"Alt"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null}]},"sourceSpan":{"start":[23,1],"name":"../../../support/bower_components/purescript-control/src/Control/Plus.purs","end":[24,25]}}]}
diff --git a/tests/purs/publish/basic-example/output/Control.Plus/externs.json b/tests/purs/publish/basic-example/output/Control.Plus/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Control.Plus/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Control","Plus"],"efExports":[{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Plus.purs","end":[27,13]},{"exportSourceImportedFrom":["Control","Alt"],"exportSourceDefinedIn":["Control","Alt"]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Plus.purs","end":[27,13]},"Alt"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Plus.purs","end":[27,13]},{"exportSourceImportedFrom":["Data","Functor"],"exportSourceDefinedIn":["Data","Functor"]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Plus.purs","end":[27,13]},"Functor"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Plus.purs","end":[27,13]},{"exportSourceImportedFrom":["Control","Alt"],"exportSourceDefinedIn":["Control","Alt"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Plus.purs","end":[27,13]},{"Ident":"alt"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Plus.purs","end":[27,13]},{"exportSourceImportedFrom":["Data","Functor"],"exportSourceDefinedIn":["Data","Functor"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Plus.purs","end":[27,13]},{"Ident":"map"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Plus.purs","end":[27,13]},{"exportSourceImportedFrom":["Data","Functor"],"exportSourceDefinedIn":["Data","Functor"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Plus.purs","end":[27,13]},{"Ident":"void"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Plus.purs","end":[27,13]},{"exportSourceImportedFrom":["Data","Functor"],"exportSourceDefinedIn":["Data","Functor"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Plus.purs","end":[27,13]},"$>"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Plus.purs","end":[27,13]},{"exportSourceImportedFrom":["Data","Functor"],"exportSourceDefinedIn":["Data","Functor"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Plus.purs","end":[27,13]},"<#>"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Plus.purs","end":[27,13]},{"exportSourceImportedFrom":["Data","Functor"],"exportSourceDefinedIn":["Data","Functor"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Plus.purs","end":[27,13]},"<$"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Plus.purs","end":[27,13]},{"exportSourceImportedFrom":["Data","Functor"],"exportSourceDefinedIn":["Data","Functor"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Plus.purs","end":[27,13]},"<$>"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Plus.purs","end":[27,13]},{"exportSourceImportedFrom":["Control","Alt"],"exportSourceDefinedIn":["Control","Alt"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Plus.purs","end":[27,13]},"<|>"]}]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Plus.purs","end":[27,13]},"Plus"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Plus.purs","end":[27,13]},{"Ident":"empty"}]},{"ModuleRef":[{"start":[3,5],"name":"../../../support/bower_components/purescript-control/src/Control/Plus.purs","end":[3,23]},["Control","Alt"]]},{"ModuleRef":[{"start":[4,5],"name":"../../../support/bower_components/purescript-control/src/Control/Plus.purs","end":[4,24]},["Data","Functor"]]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"plusArray"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Control","Alt"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[7,21],"name":"../../../support/bower_components/purescript-control/src/Control/Plus.purs","end":[7,30]},"Alt"]},{"ValueRef":[{"start":[7,32],"name":"../../../support/bower_components/purescript-control/src/Control/Plus.purs","end":[7,35]},{"Ident":"alt"}]},{"ValueOpRef":[{"start":[7,37],"name":"../../../support/bower_components/purescript-control/src/Control/Plus.purs","end":[7,42]},"<|>"]}]},"eiImportedAs":null},{"eiModule":["Data","Functor"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[9,22],"name":"../../../support/bower_components/purescript-control/src/Control/Plus.purs","end":[9,35]},"Functor"]},{"ValueRef":[{"start":[9,37],"name":"../../../support/bower_components/purescript-control/src/Control/Plus.purs","end":[9,40]},{"Ident":"map"}]},{"ValueRef":[{"start":[9,42],"name":"../../../support/bower_components/purescript-control/src/Control/Plus.purs","end":[9,46]},{"Ident":"void"}]},{"ValueOpRef":[{"start":[9,48],"name":"../../../support/bower_components/purescript-control/src/Control/Plus.purs","end":[9,52]},"$>"]},{"ValueOpRef":[{"start":[9,54],"name":"../../../support/bower_components/purescript-control/src/Control/Plus.purs","end":[9,59]},"<#>"]},{"ValueOpRef":[{"start":[9,61],"name":"../../../support/bower_components/purescript-control/src/Control/Plus.purs","end":[9,65]},"<$"]},{"ValueOpRef":[{"start":[9,67],"name":"../../../support/bower_components/purescript-control/src/Control/Plus.purs","end":[9,72]},"<$>"]}]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDType":{"edTypeName":"Plus","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[24,22],"name":"../../../support/bower_components/purescript-control/src/Control/Plus.purs","end":[24,25]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"Plus","edTypeSynonymArguments":[["f",null]],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["empty",{"annotation":[{"start":[24,12],"name":"../../../support/bower_components/purescript-control/src/Control/Plus.purs","end":[24,25]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[24,22],"name":"../../../support/bower_components/purescript-control/src/Control/Plus.purs","end":[24,25]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[24,22],"name":"../../../support/bower_components/purescript-control/src/Control/Plus.purs","end":[24,23]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[24,24],"name":"../../../support/bower_components/purescript-control/src/Control/Plus.purs","end":[24,25]},[]],"tag":"TypeVar","contents":"a"}]},null]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["Alt0",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Control","Alt"],"Alt"]},{"annotation":[{"start":[23,11],"name":"../../../support/bower_components/purescript-control/src/Control/Plus.purs","end":[23,12]},[]],"tag":"TypeVar","contents":"f"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]}]}}},{"EDClass":{"edClassName":"Plus","edClassTypeArguments":[["f",null]],"edClassMembers":[[{"Ident":"empty"},{"annotation":[{"start":[24,12],"name":"../../../support/bower_components/purescript-control/src/Control/Plus.purs","end":[24,25]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[24,22],"name":"../../../support/bower_components/purescript-control/src/Control/Plus.purs","end":[24,25]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[24,22],"name":"../../../support/bower_components/purescript-control/src/Control/Plus.purs","end":[24,23]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[24,24],"name":"../../../support/bower_components/purescript-control/src/Control/Plus.purs","end":[24,25]},[]],"tag":"TypeVar","contents":"a"}]},null]}]],"edClassConstraints":[{"constraintAnn":[{"start":[23,7],"name":"../../../support/bower_components/purescript-control/src/Control/Plus.purs","end":[23,12]},[]],"constraintClass":[["Control","Alt"],"Alt"],"constraintArgs":[{"annotation":[{"start":[23,11],"name":"../../../support/bower_components/purescript-control/src/Control/Plus.purs","end":[23,12]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null}],"edFunctionalDependencies":[]}},{"EDValue":{"edValueName":{"Ident":"empty"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[24,12],"name":"../../../support/bower_components/purescript-control/src/Control/Plus.purs","end":[24,25]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["Control","Plus"],"Plus"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[24,22],"name":"../../../support/bower_components/purescript-control/src/Control/Plus.purs","end":[24,25]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[24,22],"name":"../../../support/bower_components/purescript-control/src/Control/Plus.purs","end":[24,23]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[24,24],"name":"../../../support/bower_components/purescript-control/src/Control/Plus.purs","end":[24,25]},[]],"tag":"TypeVar","contents":"a"}]}]},5]},6]}}},{"EDInstance":{"edInstanceClassName":[["Control","Plus"],"Plus"],"edInstanceName":{"Ident":"plusArray"},"edInstanceTypes":[{"annotation":[{"start":[26,28],"name":"../../../support/bower_components/purescript-control/src/Control/Plus.purs","end":[26,33]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Control","Plus"],{"Ident":"plusArray"}]],"edInstanceChainIndex":0}}],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Plus.purs","end":[27,13]}}
diff --git a/tests/purs/publish/basic-example/output/Control.Semigroupoid/docs.json b/tests/purs/publish/basic-example/output/Control.Semigroupoid/docs.json
--- a/tests/purs/publish/basic-example/output/Control.Semigroupoid/docs.json
+++ b/tests/purs/publish/basic-example/output/Control.Semigroupoid/docs.json
@@ -1,1 +1,1 @@
-{"reExports":[],"name":"Control.Semigroupoid","comments":null,"declarations":[{"children":[{"comments":null,"title":"compose","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"ForAll","contents":["d",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"a"},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"d"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"a"},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"a"},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"d"}]}]}]},null]},null]},null]}},"sourceSpan":{"start":[13,3],"name":"../../../support/bower_components/purescript-prelude/src/Control/Semigroupoid.purs","end":[13,51]}},{"comments":null,"title":"semigroupoidFn","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Semigroupoid"],"Semigroupoid"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]}]}},"sourceSpan":{"start":[15,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Semigroupoid.purs","end":[16,26]}}],"comments":"A `Semigroupoid` is similar to a [`Category`](#category) but does not\nrequire an identity element `identity`, just composable morphisms.\n\n`Semigroupoid`s must satisfy the following law:\n\n- Associativity: `p <<< (q <<< r) = (p <<< q) <<< r`\n\nOne example of a `Semigroupoid` is the function type constructor `(->)`,\nwith `(<<<)` defined as function composition.\n","title":"Semigroupoid","info":{"fundeps":[],"arguments":[["a",null]],"declType":"typeClass","superclasses":[]},"sourceSpan":{"start":[12,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Semigroupoid.purs","end":[13,51]}},{"children":[],"comments":null,"title":"(<<<)","info":{"declType":"alias","alias":[["Control","Semigroupoid"],{"Right":{"Left":{"Ident":"compose"}}}],"fixity":{"associativity":"infixr","precedence":9}},"sourceSpan":{"start":[18,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Semigroupoid.purs","end":[18,24]}},{"children":[],"comments":"Forwards composition, or `compose` with its arguments reversed.\n","title":"composeFlipped","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["d",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Semigroupoid"],"Semigroupoid"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"a"},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"a"},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"d"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"a"},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"d"}]}]}]}]},null]},null]},null]},null]}},"sourceSpan":{"start":[21,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Semigroupoid.purs","end":[21,76]}},{"children":[],"comments":null,"title":"(>>>)","info":{"declType":"alias","alias":[["Control","Semigroupoid"],{"Right":{"Left":{"Ident":"composeFlipped"}}}],"fixity":{"associativity":"infixr","precedence":9}},"sourceSpan":{"start":[24,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Semigroupoid.purs","end":[24,31]}}]}
+{"comments":null,"declarations":[{"children":[{"comments":null,"info":{"declType":"typeClassMember","type":{"annotation":[],"contents":{"identifier":"b","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"c","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"d","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":"a","tag":"TypeVar"},{"annotation":[],"contents":"c","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"d","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":"a","tag":"TypeVar"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"c","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":"a","tag":"TypeVar"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"d","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"sourceSpan":{"end":[14,51],"name":"../../../support/bower_components/purescript-prelude/src/Control/Semigroupoid.purs","start":[14,3]},"title":"compose"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Control","Semigroupoid"],"Semigroupoid"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[17,26],"name":"../../../support/bower_components/purescript-prelude/src/Control/Semigroupoid.purs","start":[16,1]},"title":"semigroupoidFn"}],"comments":"A `Semigroupoid` is similar to a [`Category`](#category) but does not\nrequire an identity element `identity`, just composable morphisms.\n\n`Semigroupoid`s must satisfy the following law:\n\n- Associativity: `p <<< (q <<< r) = (p <<< q) <<< r`\n\nOne example of a `Semigroupoid` is the function type constructor `(->)`,\nwith `(<<<)` defined as function composition.\n","info":{"arguments":[["a",null]],"declType":"typeClass","fundeps":[],"superclasses":[]},"kind":{"keyword":"class","kind":{"annotation":[],"contents":{"identifier":"k","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"k","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"k","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"},"tag":"ParensInType"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim"],"Constraint"],"tag":"TypeConstructor"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"sourceSpan":{"end":[14,51],"name":"../../../support/bower_components/purescript-prelude/src/Control/Semigroupoid.purs","start":[13,1]},"title":"Semigroupoid"},{"children":[],"comments":null,"info":{"alias":[["Control","Semigroupoid"],{"Right":{"Left":{"Ident":"compose"}}}],"declType":"alias","fixity":{"associativity":"infixr","precedence":9}},"kind":null,"sourceSpan":{"end":[19,24],"name":"../../../support/bower_components/purescript-prelude/src/Control/Semigroupoid.purs","start":[19,1]},"title":"(<<<)"},{"children":[],"comments":"Forwards composition, or `compose` with its arguments reversed.\n","info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"b","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"c","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"d","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Control","Semigroupoid"],"Semigroupoid"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":"a","tag":"TypeVar"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"c","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":"a","tag":"TypeVar"},{"annotation":[],"contents":"c","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"d","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":"a","tag":"TypeVar"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"d","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[22,76],"name":"../../../support/bower_components/purescript-prelude/src/Control/Semigroupoid.purs","start":[22,1]},"title":"composeFlipped"},{"children":[],"comments":null,"info":{"alias":[["Control","Semigroupoid"],{"Right":{"Left":{"Ident":"composeFlipped"}}}],"declType":"alias","fixity":{"associativity":"infixr","precedence":9}},"kind":null,"sourceSpan":{"end":[25,31],"name":"../../../support/bower_components/purescript-prelude/src/Control/Semigroupoid.purs","start":[25,1]},"title":"(>>>)"}],"name":"Control.Semigroupoid","reExports":[]}
diff --git a/tests/purs/publish/basic-example/output/Control.Semigroupoid/externs.json b/tests/purs/publish/basic-example/output/Control.Semigroupoid/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Control.Semigroupoid/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Control","Semigroupoid"],"efExports":[{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Semigroupoid.purs","end":[24,31]},{"Ident":"compose"}]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Semigroupoid.purs","end":[24,31]},"Semigroupoid"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Semigroupoid.purs","end":[24,31]},"<<<"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Semigroupoid.purs","end":[24,31]},{"Ident":"composeFlipped"}]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Semigroupoid.purs","end":[24,31]},">>>"]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"semigroupoidFn"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null}],"efFixities":[{"efAssociativity":"infixr","efPrecedence":9,"efOperator":"<<<","efAlias":[["Control","Semigroupoid"],{"Left":{"Ident":"compose"}}]},{"efAssociativity":"infixr","efPrecedence":9,"efOperator":">>>","efAlias":[["Control","Semigroupoid"],{"Left":{"Ident":"composeFlipped"}}]}],"efTypeFixities":[],"efDeclarations":[{"EDValue":{"edValueName":{"Ident":"compose"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[13,14],"name":"../../../support/bower_components/purescript-prelude/src/Control/Semigroupoid.purs","end":[13,51]},[]],"tag":"ForAll","contents":["d",{"annotation":[{"start":[13,21],"name":"../../../support/bower_components/purescript-prelude/src/Control/Semigroupoid.purs","end":[13,51]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[13,21],"name":"../../../support/bower_components/purescript-prelude/src/Control/Semigroupoid.purs","end":[13,51]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["Control","Semigroupoid"],"Semigroupoid"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[13,28],"name":"../../../support/bower_components/purescript-prelude/src/Control/Semigroupoid.purs","end":[13,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[13,28],"name":"../../../support/bower_components/purescript-prelude/src/Control/Semigroupoid.purs","end":[13,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[13,34],"name":"../../../support/bower_components/purescript-prelude/src/Control/Semigroupoid.purs","end":[13,36]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[13,28],"name":"../../../support/bower_components/purescript-prelude/src/Control/Semigroupoid.purs","end":[13,33]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[13,28],"name":"../../../support/bower_components/purescript-prelude/src/Control/Semigroupoid.purs","end":[13,31]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[13,28],"name":"../../../support/bower_components/purescript-prelude/src/Control/Semigroupoid.purs","end":[13,29]},[]],"tag":"TypeVar","contents":"a"},{"annotation":[{"start":[13,30],"name":"../../../support/bower_components/purescript-prelude/src/Control/Semigroupoid.purs","end":[13,31]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[13,32],"name":"../../../support/bower_components/purescript-prelude/src/Control/Semigroupoid.purs","end":[13,33]},[]],"tag":"TypeVar","contents":"d"}]}]},{"annotation":[{"start":[13,37],"name":"../../../support/bower_components/purescript-prelude/src/Control/Semigroupoid.purs","end":[13,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[13,37],"name":"../../../support/bower_components/purescript-prelude/src/Control/Semigroupoid.purs","end":[13,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[13,43],"name":"../../../support/bower_components/purescript-prelude/src/Control/Semigroupoid.purs","end":[13,45]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[13,37],"name":"../../../support/bower_components/purescript-prelude/src/Control/Semigroupoid.purs","end":[13,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[13,37],"name":"../../../support/bower_components/purescript-prelude/src/Control/Semigroupoid.purs","end":[13,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[13,37],"name":"../../../support/bower_components/purescript-prelude/src/Control/Semigroupoid.purs","end":[13,38]},[]],"tag":"TypeVar","contents":"a"},{"annotation":[{"start":[13,39],"name":"../../../support/bower_components/purescript-prelude/src/Control/Semigroupoid.purs","end":[13,40]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[13,41],"name":"../../../support/bower_components/purescript-prelude/src/Control/Semigroupoid.purs","end":[13,42]},[]],"tag":"TypeVar","contents":"c"}]}]},{"annotation":[{"start":[13,46],"name":"../../../support/bower_components/purescript-prelude/src/Control/Semigroupoid.purs","end":[13,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[13,46],"name":"../../../support/bower_components/purescript-prelude/src/Control/Semigroupoid.purs","end":[13,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[13,46],"name":"../../../support/bower_components/purescript-prelude/src/Control/Semigroupoid.purs","end":[13,47]},[]],"tag":"TypeVar","contents":"a"},{"annotation":[{"start":[13,48],"name":"../../../support/bower_components/purescript-prelude/src/Control/Semigroupoid.purs","end":[13,49]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[13,50],"name":"../../../support/bower_components/purescript-prelude/src/Control/Semigroupoid.purs","end":[13,51]},[]],"tag":"TypeVar","contents":"d"}]}]}]}]},6]},7]},8]},9]}}},{"EDType":{"edTypeName":"Semigroupoid","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[13,28],"name":"../../../support/bower_components/purescript-prelude/src/Control/Semigroupoid.purs","end":[13,31]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[13,39],"name":"../../../support/bower_components/purescript-prelude/src/Control/Semigroupoid.purs","end":[13,40]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[13,28],"name":"../../../support/bower_components/purescript-prelude/src/Control/Semigroupoid.purs","end":[13,33]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[13,39],"name":"../../../support/bower_components/purescript-prelude/src/Control/Semigroupoid.purs","end":[13,40]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[13,34],"name":"../../../support/bower_components/purescript-prelude/src/Control/Semigroupoid.purs","end":[13,36]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"Semigroupoid","edTypeSynonymArguments":[["a",null]],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["compose",{"annotation":[{"start":[13,14],"name":"../../../support/bower_components/purescript-prelude/src/Control/Semigroupoid.purs","end":[13,51]},[]],"tag":"ForAll","contents":["d",{"annotation":[{"start":[13,21],"name":"../../../support/bower_components/purescript-prelude/src/Control/Semigroupoid.purs","end":[13,51]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[13,21],"name":"../../../support/bower_components/purescript-prelude/src/Control/Semigroupoid.purs","end":[13,51]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[13,28],"name":"../../../support/bower_components/purescript-prelude/src/Control/Semigroupoid.purs","end":[13,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[13,28],"name":"../../../support/bower_components/purescript-prelude/src/Control/Semigroupoid.purs","end":[13,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[13,34],"name":"../../../support/bower_components/purescript-prelude/src/Control/Semigroupoid.purs","end":[13,36]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[13,28],"name":"../../../support/bower_components/purescript-prelude/src/Control/Semigroupoid.purs","end":[13,33]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[13,28],"name":"../../../support/bower_components/purescript-prelude/src/Control/Semigroupoid.purs","end":[13,31]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[13,28],"name":"../../../support/bower_components/purescript-prelude/src/Control/Semigroupoid.purs","end":[13,29]},[]],"tag":"TypeVar","contents":"a"},{"annotation":[{"start":[13,30],"name":"../../../support/bower_components/purescript-prelude/src/Control/Semigroupoid.purs","end":[13,31]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[13,32],"name":"../../../support/bower_components/purescript-prelude/src/Control/Semigroupoid.purs","end":[13,33]},[]],"tag":"TypeVar","contents":"d"}]}]},{"annotation":[{"start":[13,37],"name":"../../../support/bower_components/purescript-prelude/src/Control/Semigroupoid.purs","end":[13,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[13,37],"name":"../../../support/bower_components/purescript-prelude/src/Control/Semigroupoid.purs","end":[13,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[13,43],"name":"../../../support/bower_components/purescript-prelude/src/Control/Semigroupoid.purs","end":[13,45]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[13,37],"name":"../../../support/bower_components/purescript-prelude/src/Control/Semigroupoid.purs","end":[13,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[13,37],"name":"../../../support/bower_components/purescript-prelude/src/Control/Semigroupoid.purs","end":[13,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[13,37],"name":"../../../support/bower_components/purescript-prelude/src/Control/Semigroupoid.purs","end":[13,38]},[]],"tag":"TypeVar","contents":"a"},{"annotation":[{"start":[13,39],"name":"../../../support/bower_components/purescript-prelude/src/Control/Semigroupoid.purs","end":[13,40]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[13,41],"name":"../../../support/bower_components/purescript-prelude/src/Control/Semigroupoid.purs","end":[13,42]},[]],"tag":"TypeVar","contents":"c"}]}]},{"annotation":[{"start":[13,46],"name":"../../../support/bower_components/purescript-prelude/src/Control/Semigroupoid.purs","end":[13,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[13,46],"name":"../../../support/bower_components/purescript-prelude/src/Control/Semigroupoid.purs","end":[13,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[13,46],"name":"../../../support/bower_components/purescript-prelude/src/Control/Semigroupoid.purs","end":[13,47]},[]],"tag":"TypeVar","contents":"a"},{"annotation":[{"start":[13,48],"name":"../../../support/bower_components/purescript-prelude/src/Control/Semigroupoid.purs","end":[13,49]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[13,50],"name":"../../../support/bower_components/purescript-prelude/src/Control/Semigroupoid.purs","end":[13,51]},[]],"tag":"TypeVar","contents":"d"}]}]}]},null]},null]},null]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]}}},{"EDClass":{"edClassName":"Semigroupoid","edClassTypeArguments":[["a",null]],"edClassMembers":[[{"Ident":"compose"},{"annotation":[{"start":[13,14],"name":"../../../support/bower_components/purescript-prelude/src/Control/Semigroupoid.purs","end":[13,51]},[]],"tag":"ForAll","contents":["d",{"annotation":[{"start":[13,21],"name":"../../../support/bower_components/purescript-prelude/src/Control/Semigroupoid.purs","end":[13,51]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[13,21],"name":"../../../support/bower_components/purescript-prelude/src/Control/Semigroupoid.purs","end":[13,51]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[13,28],"name":"../../../support/bower_components/purescript-prelude/src/Control/Semigroupoid.purs","end":[13,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[13,28],"name":"../../../support/bower_components/purescript-prelude/src/Control/Semigroupoid.purs","end":[13,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[13,34],"name":"../../../support/bower_components/purescript-prelude/src/Control/Semigroupoid.purs","end":[13,36]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[13,28],"name":"../../../support/bower_components/purescript-prelude/src/Control/Semigroupoid.purs","end":[13,33]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[13,28],"name":"../../../support/bower_components/purescript-prelude/src/Control/Semigroupoid.purs","end":[13,31]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[13,28],"name":"../../../support/bower_components/purescript-prelude/src/Control/Semigroupoid.purs","end":[13,29]},[]],"tag":"TypeVar","contents":"a"},{"annotation":[{"start":[13,30],"name":"../../../support/bower_components/purescript-prelude/src/Control/Semigroupoid.purs","end":[13,31]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[13,32],"name":"../../../support/bower_components/purescript-prelude/src/Control/Semigroupoid.purs","end":[13,33]},[]],"tag":"TypeVar","contents":"d"}]}]},{"annotation":[{"start":[13,37],"name":"../../../support/bower_components/purescript-prelude/src/Control/Semigroupoid.purs","end":[13,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[13,37],"name":"../../../support/bower_components/purescript-prelude/src/Control/Semigroupoid.purs","end":[13,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[13,43],"name":"../../../support/bower_components/purescript-prelude/src/Control/Semigroupoid.purs","end":[13,45]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[13,37],"name":"../../../support/bower_components/purescript-prelude/src/Control/Semigroupoid.purs","end":[13,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[13,37],"name":"../../../support/bower_components/purescript-prelude/src/Control/Semigroupoid.purs","end":[13,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[13,37],"name":"../../../support/bower_components/purescript-prelude/src/Control/Semigroupoid.purs","end":[13,38]},[]],"tag":"TypeVar","contents":"a"},{"annotation":[{"start":[13,39],"name":"../../../support/bower_components/purescript-prelude/src/Control/Semigroupoid.purs","end":[13,40]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[13,41],"name":"../../../support/bower_components/purescript-prelude/src/Control/Semigroupoid.purs","end":[13,42]},[]],"tag":"TypeVar","contents":"c"}]}]},{"annotation":[{"start":[13,46],"name":"../../../support/bower_components/purescript-prelude/src/Control/Semigroupoid.purs","end":[13,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[13,46],"name":"../../../support/bower_components/purescript-prelude/src/Control/Semigroupoid.purs","end":[13,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[13,46],"name":"../../../support/bower_components/purescript-prelude/src/Control/Semigroupoid.purs","end":[13,47]},[]],"tag":"TypeVar","contents":"a"},{"annotation":[{"start":[13,48],"name":"../../../support/bower_components/purescript-prelude/src/Control/Semigroupoid.purs","end":[13,49]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[13,50],"name":"../../../support/bower_components/purescript-prelude/src/Control/Semigroupoid.purs","end":[13,51]},[]],"tag":"TypeVar","contents":"d"}]}]}]},null]},null]},null]}]],"edClassConstraints":[],"edFunctionalDependencies":[]}},{"EDValue":{"edValueName":{"Ident":"composeFlipped"},"edValueType":{"annotation":[{"start":[21,19],"name":"../../../support/bower_components/purescript-prelude/src/Control/Semigroupoid.purs","end":[21,76]},[]],"tag":"ForAll","contents":["d",{"annotation":[{"start":[21,26],"name":"../../../support/bower_components/purescript-prelude/src/Control/Semigroupoid.purs","end":[21,76]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[21,26],"name":"../../../support/bower_components/purescript-prelude/src/Control/Semigroupoid.purs","end":[21,76]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[21,26],"name":"../../../support/bower_components/purescript-prelude/src/Control/Semigroupoid.purs","end":[21,76]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[21,35],"name":"../../../support/bower_components/purescript-prelude/src/Control/Semigroupoid.purs","end":[21,76]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[21,35],"name":"../../../support/bower_components/purescript-prelude/src/Control/Semigroupoid.purs","end":[21,49]},[]],"constraintClass":[["Control","Semigroupoid"],"Semigroupoid"],"constraintArgs":[{"annotation":[{"start":[21,48],"name":"../../../support/bower_components/purescript-prelude/src/Control/Semigroupoid.purs","end":[21,49]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[21,53],"name":"../../../support/bower_components/purescript-prelude/src/Control/Semigroupoid.purs","end":[21,76]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[21,53],"name":"../../../support/bower_components/purescript-prelude/src/Control/Semigroupoid.purs","end":[21,76]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[21,59],"name":"../../../support/bower_components/purescript-prelude/src/Control/Semigroupoid.purs","end":[21,61]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[21,53],"name":"../../../support/bower_components/purescript-prelude/src/Control/Semigroupoid.purs","end":[21,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[21,53],"name":"../../../support/bower_components/purescript-prelude/src/Control/Semigroupoid.purs","end":[21,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[21,53],"name":"../../../support/bower_components/purescript-prelude/src/Control/Semigroupoid.purs","end":[21,54]},[]],"tag":"TypeVar","contents":"a"},{"annotation":[{"start":[21,55],"name":"../../../support/bower_components/purescript-prelude/src/Control/Semigroupoid.purs","end":[21,56]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[21,57],"name":"../../../support/bower_components/purescript-prelude/src/Control/Semigroupoid.purs","end":[21,58]},[]],"tag":"TypeVar","contents":"c"}]}]},{"annotation":[{"start":[21,62],"name":"../../../support/bower_components/purescript-prelude/src/Control/Semigroupoid.purs","end":[21,76]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[21,62],"name":"../../../support/bower_components/purescript-prelude/src/Control/Semigroupoid.purs","end":[21,76]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[21,68],"name":"../../../support/bower_components/purescript-prelude/src/Control/Semigroupoid.purs","end":[21,70]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[21,62],"name":"../../../support/bower_components/purescript-prelude/src/Control/Semigroupoid.purs","end":[21,67]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[21,62],"name":"../../../support/bower_components/purescript-prelude/src/Control/Semigroupoid.purs","end":[21,65]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[21,62],"name":"../../../support/bower_components/purescript-prelude/src/Control/Semigroupoid.purs","end":[21,63]},[]],"tag":"TypeVar","contents":"a"},{"annotation":[{"start":[21,64],"name":"../../../support/bower_components/purescript-prelude/src/Control/Semigroupoid.purs","end":[21,65]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[21,66],"name":"../../../support/bower_components/purescript-prelude/src/Control/Semigroupoid.purs","end":[21,67]},[]],"tag":"TypeVar","contents":"d"}]}]},{"annotation":[{"start":[21,71],"name":"../../../support/bower_components/purescript-prelude/src/Control/Semigroupoid.purs","end":[21,76]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[21,71],"name":"../../../support/bower_components/purescript-prelude/src/Control/Semigroupoid.purs","end":[21,74]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[21,71],"name":"../../../support/bower_components/purescript-prelude/src/Control/Semigroupoid.purs","end":[21,72]},[]],"tag":"TypeVar","contents":"a"},{"annotation":[{"start":[21,73],"name":"../../../support/bower_components/purescript-prelude/src/Control/Semigroupoid.purs","end":[21,74]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[21,75],"name":"../../../support/bower_components/purescript-prelude/src/Control/Semigroupoid.purs","end":[21,76]},[]],"tag":"TypeVar","contents":"d"}]}]}]}]},10]},11]},12]},13]}}},{"EDInstance":{"edInstanceClassName":[["Control","Semigroupoid"],"Semigroupoid"],"edInstanceName":{"Ident":"semigroupoidFn"},"edInstanceTypes":[{"annotation":[{"start":[15,41],"name":"../../../support/bower_components/purescript-prelude/src/Control/Semigroupoid.purs","end":[15,45]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Control","Semigroupoid"],{"Ident":"semigroupoidFn"}]],"edInstanceChainIndex":0}}],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Semigroupoid.purs","end":[24,31]}}
diff --git a/tests/purs/publish/basic-example/output/Data.Array.NonEmpty.Internal/docs.json b/tests/purs/publish/basic-example/output/Data.Array.NonEmpty.Internal/docs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.Array.NonEmpty.Internal/docs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"reExports":[],"name":"Data.Array.NonEmpty.Internal","comments":null,"declarations":[{"children":[{"comments":null,"title":"showNonEmptyArray","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Show"],"Show"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Show"],"Show"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[19,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty/Internal.purs","end":[20,64]}},{"comments":null,"title":"eqNonEmptyArray","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Eq"],"Eq"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[22,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty/Internal.purs","end":[22,72]}},{"comments":null,"title":"eq1NonEmptyArray","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Eq"],"Eq1"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]}]}},"sourceSpan":{"start":[23,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty/Internal.purs","end":[23,62]}},{"comments":null,"title":"ordNonEmptyArray","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord"],"Ord"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[25,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty/Internal.purs","end":[25,75]}},{"comments":null,"title":"ord1NonEmptyArray","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord"],"Ord1"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]}]}},"sourceSpan":{"start":[26,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty/Internal.purs","end":[26,64]}},{"comments":null,"title":"semigroupNonEmptyArray","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup"],"Semigroup"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[28,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty/Internal.purs","end":[28,78]}},{"comments":null,"title":"functorNonEmptyArray","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Functor"],"Functor"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]}]}},"sourceSpan":{"start":[30,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty/Internal.purs","end":[30,70]}},{"comments":null,"title":"functorWithIndexNonEmptyArray","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","FunctorWithIndex"],"FunctorWithIndex"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]}]}},"sourceSpan":{"start":[31,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty/Internal.purs","end":[31,92]}},{"comments":null,"title":"foldableNonEmptyArray","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Foldable"],"Foldable"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]}]}},"sourceSpan":{"start":[33,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty/Internal.purs","end":[33,72]}},{"comments":null,"title":"foldableWithIndexNonEmptyArray","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","FoldableWithIndex"],"FoldableWithIndex"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]}]}},"sourceSpan":{"start":[34,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty/Internal.purs","end":[34,94]}},{"comments":null,"title":"foldable1NonEmptyArray","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup","Foldable"],"Foldable1"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]}]}},"sourceSpan":{"start":[36,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty/Internal.purs","end":[38,25]}},{"comments":null,"title":"unfoldable1NonEmptyArray","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unfoldable1"],"Unfoldable1"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]}]}},"sourceSpan":{"start":[40,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty/Internal.purs","end":[40,78]}},{"comments":null,"title":"traversableNonEmptyArray","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Traversable"],"Traversable"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]}]}},"sourceSpan":{"start":[41,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty/Internal.purs","end":[41,78]}},{"comments":null,"title":"traversableWithIndexNonEmptyArray","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","TraversableWithIndex"],"TraversableWithIndex"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]}]}},"sourceSpan":{"start":[42,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty/Internal.purs","end":[42,100]}},{"comments":null,"title":"traversable1NonEmptyArray","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup","Traversable"],"Traversable1"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]}]}},"sourceSpan":{"start":[44,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty/Internal.purs","end":[46,31]}},{"comments":null,"title":"applyNonEmptyArray","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Apply"],"Apply"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]}]}},"sourceSpan":{"start":[48,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty/Internal.purs","end":[48,66]}},{"comments":null,"title":"applicativeNonEmptyArray","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Applicative"],"Applicative"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]}]}},"sourceSpan":{"start":[50,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty/Internal.purs","end":[50,78]}},{"comments":null,"title":"bindNonEmptyArray","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Bind"],"Bind"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]}]}},"sourceSpan":{"start":[52,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty/Internal.purs","end":[52,64]}},{"comments":null,"title":"monadNonEmptyArray","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Monad"],"Monad"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]}]}},"sourceSpan":{"start":[54,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty/Internal.purs","end":[54,66]}},{"comments":null,"title":"altNonEmptyArray","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Alt"],"Alt"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]}]}},"sourceSpan":{"start":[56,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty/Internal.purs","end":[56,62]}}],"comments":null,"title":"NonEmptyArray","info":{"declType":"data","dataDeclType":"newtype","typeArguments":[["a",null]]},"sourceSpan":{"start":[17,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty/Internal.purs","end":[17,50]}}]}
diff --git a/tests/purs/publish/basic-example/output/Data.Array.NonEmpty.Internal/externs.json b/tests/purs/publish/basic-example/output/Data.Array.NonEmpty.Internal/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.Array.NonEmpty.Internal/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Data","Array","NonEmpty","Internal"],"efExports":[{"TypeRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty/Internal.purs","end":[67,25]},"NonEmptyArray",[]]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"showNonEmptyArray"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"eqNonEmptyArray"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"eq1NonEmptyArray"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"ordNonEmptyArray"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"ord1NonEmptyArray"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"semigroupNonEmptyArray"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"functorNonEmptyArray"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"functorWithIndexNonEmptyArray"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"foldableNonEmptyArray"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"foldableWithIndexNonEmptyArray"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"foldable1NonEmptyArray"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"unfoldable1NonEmptyArray"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"traversableNonEmptyArray"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"traversableWithIndexNonEmptyArray"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"traversable1NonEmptyArray"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"applyNonEmptyArray"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"applicativeNonEmptyArray"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"bindNonEmptyArray"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"monadNonEmptyArray"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"altNonEmptyArray"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Prelude"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Control","Alt"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[5,21],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty/Internal.purs","end":[5,30]},"Alt"]}]},"eiImportedAs":null},{"eiModule":["Data","Eq"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[6,17],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty/Internal.purs","end":[6,26]},"Eq1"]}]},"eiImportedAs":null},{"eiModule":["Data","Foldable"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[7,23],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty/Internal.purs","end":[7,37]},"Foldable"]}]},"eiImportedAs":null},{"eiModule":["Data","FoldableWithIndex"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[8,32],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty/Internal.purs","end":[8,55]},"FoldableWithIndex"]}]},"eiImportedAs":null},{"eiModule":["Data","FunctorWithIndex"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[9,31],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty/Internal.purs","end":[9,53]},"FunctorWithIndex"]}]},"eiImportedAs":null},{"eiModule":["Data","Ord"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[10,18],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty/Internal.purs","end":[10,28]},"Ord1"]}]},"eiImportedAs":null},{"eiModule":["Data","Semigroup","Foldable"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[11,33],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty/Internal.purs","end":[11,48]},"Foldable1"]},{"ValueRef":[{"start":[11,50],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty/Internal.purs","end":[11,65]},{"Ident":"foldMap1Default"}]}]},"eiImportedAs":null},{"eiModule":["Data","Semigroup","Traversable"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[12,36],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty/Internal.purs","end":[12,54]},"Traversable1"]},{"ValueRef":[{"start":[12,56],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty/Internal.purs","end":[12,72]},{"Ident":"sequence1Default"}]}]},"eiImportedAs":null},{"eiModule":["Data","Traversable"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[13,26],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty/Internal.purs","end":[13,43]},"Traversable"]}]},"eiImportedAs":null},{"eiModule":["Data","TraversableWithIndex"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[14,35],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty/Internal.purs","end":[14,61]},"TraversableWithIndex"]}]},"eiImportedAs":null},{"eiModule":["Data","Unfoldable1"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[15,26],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty/Internal.purs","end":[15,43]},"Unfoldable1"]}]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDType":{"edTypeName":"NonEmptyArray","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[17,42],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty/Internal.purs","end":[17,47]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},"edTypeDeclarationKind":{"DataType":{"args":[["a",{"annotation":[{"start":[17,42],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty/Internal.purs","end":[17,47]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]],"ctors":[["NonEmptyArray",[{"annotation":[{"start":[17,42],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty/Internal.purs","end":[17,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[17,42],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty/Internal.purs","end":[17,47]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[17,48],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty/Internal.purs","end":[17,49]},[]],"tag":"TypeVar","contents":"a"}]}]]]}}}},{"EDInstance":{"edInstanceClassName":[["Data","Show"],"Show"],"edInstanceName":{"Ident":"showNonEmptyArray"},"edInstanceTypes":[{"annotation":[{"start":[19,47],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty/Internal.purs","end":[19,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[19,47],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty/Internal.purs","end":[19,60]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[{"start":[19,61],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty/Internal.purs","end":[19,62]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[19,31],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty/Internal.purs","end":[19,37]},[]],"constraintClass":[["Data","Show"],"Show"],"constraintArgs":[{"annotation":[{"start":[19,36],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty/Internal.purs","end":[19,37]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","Array","NonEmpty","Internal"],{"Ident":"showNonEmptyArray"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Eq"],"Eq"],"edInstanceName":{"Ident":"eqNonEmptyArray"},"edInstanceTypes":[{"annotation":[{"start":[22,56],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty/Internal.purs","end":[22,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[22,56],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty/Internal.purs","end":[22,69]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[{"start":[22,70],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty/Internal.purs","end":[22,71]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[22,44],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty/Internal.purs","end":[22,48]},[]],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[{"start":[22,47],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty/Internal.purs","end":[22,48]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","Array","NonEmpty","Internal"],{"Ident":"eqNonEmptyArray"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Eq"],"Eq1"],"edInstanceName":{"Ident":"eq1NonEmptyArray"},"edInstanceTypes":[{"annotation":[{"start":[23,49],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty/Internal.purs","end":[23,62]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Array","NonEmpty","Internal"],{"Ident":"eq1NonEmptyArray"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Ord"],"Ord"],"edInstanceName":{"Ident":"ordNonEmptyArray"},"edInstanceTypes":[{"annotation":[{"start":[25,59],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty/Internal.purs","end":[25,74]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[25,59],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty/Internal.purs","end":[25,72]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[{"start":[25,73],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty/Internal.purs","end":[25,74]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[25,45],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty/Internal.purs","end":[25,50]},[]],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[{"start":[25,49],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty/Internal.purs","end":[25,50]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","Array","NonEmpty","Internal"],{"Ident":"ordNonEmptyArray"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Ord"],"Ord1"],"edInstanceName":{"Ident":"ord1NonEmptyArray"},"edInstanceTypes":[{"annotation":[{"start":[26,51],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty/Internal.purs","end":[26,64]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Array","NonEmpty","Internal"],{"Ident":"ord1NonEmptyArray"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Semigroup"],"Semigroup"],"edInstanceName":{"Ident":"semigroupNonEmptyArray"},"edInstanceTypes":[{"annotation":[{"start":[28,62],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty/Internal.purs","end":[28,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[28,62],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty/Internal.purs","end":[28,75]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[{"start":[28,76],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty/Internal.purs","end":[28,77]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Array","NonEmpty","Internal"],{"Ident":"semigroupNonEmptyArray"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Functor"],"Functor"],"edInstanceName":{"Ident":"functorNonEmptyArray"},"edInstanceTypes":[{"annotation":[{"start":[30,57],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty/Internal.purs","end":[30,70]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Array","NonEmpty","Internal"],{"Ident":"functorNonEmptyArray"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","FunctorWithIndex"],"FunctorWithIndex"],"edInstanceName":{"Ident":"functorWithIndexNonEmptyArray"},"edInstanceTypes":[{"annotation":[{"start":[31,75],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty/Internal.purs","end":[31,78]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]},{"annotation":[{"start":[31,79],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty/Internal.purs","end":[31,92]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Array","NonEmpty","Internal"],{"Ident":"functorWithIndexNonEmptyArray"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Foldable"],"Foldable"],"edInstanceName":{"Ident":"foldableNonEmptyArray"},"edInstanceTypes":[{"annotation":[{"start":[33,59],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty/Internal.purs","end":[33,72]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Array","NonEmpty","Internal"],{"Ident":"foldableNonEmptyArray"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","FoldableWithIndex"],"FoldableWithIndex"],"edInstanceName":{"Ident":"foldableWithIndexNonEmptyArray"},"edInstanceTypes":[{"annotation":[{"start":[34,77],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty/Internal.purs","end":[34,80]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]},{"annotation":[{"start":[34,81],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty/Internal.purs","end":[34,94]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Array","NonEmpty","Internal"],{"Ident":"foldableWithIndexNonEmptyArray"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Semigroup","Foldable"],"Foldable1"],"edInstanceName":{"Ident":"foldable1NonEmptyArray"},"edInstanceTypes":[{"annotation":[{"start":[36,46],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty/Internal.purs","end":[36,59]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Array","NonEmpty","Internal"],{"Ident":"foldable1NonEmptyArray"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Unfoldable1"],"Unfoldable1"],"edInstanceName":{"Ident":"unfoldable1NonEmptyArray"},"edInstanceTypes":[{"annotation":[{"start":[40,65],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty/Internal.purs","end":[40,78]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Array","NonEmpty","Internal"],{"Ident":"unfoldable1NonEmptyArray"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Traversable"],"Traversable"],"edInstanceName":{"Ident":"traversableNonEmptyArray"},"edInstanceTypes":[{"annotation":[{"start":[41,65],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty/Internal.purs","end":[41,78]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Array","NonEmpty","Internal"],{"Ident":"traversableNonEmptyArray"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","TraversableWithIndex"],"TraversableWithIndex"],"edInstanceName":{"Ident":"traversableWithIndexNonEmptyArray"},"edInstanceTypes":[{"annotation":[{"start":[42,83],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty/Internal.purs","end":[42,86]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]},{"annotation":[{"start":[42,87],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty/Internal.purs","end":[42,100]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Array","NonEmpty","Internal"],{"Ident":"traversableWithIndexNonEmptyArray"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Semigroup","Traversable"],"Traversable1"],"edInstanceName":{"Ident":"traversable1NonEmptyArray"},"edInstanceTypes":[{"annotation":[{"start":[44,52],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty/Internal.purs","end":[44,65]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Array","NonEmpty","Internal"],{"Ident":"traversable1NonEmptyArray"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Apply"],"Apply"],"edInstanceName":{"Ident":"applyNonEmptyArray"},"edInstanceTypes":[{"annotation":[{"start":[48,53],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty/Internal.purs","end":[48,66]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Array","NonEmpty","Internal"],{"Ident":"applyNonEmptyArray"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Applicative"],"Applicative"],"edInstanceName":{"Ident":"applicativeNonEmptyArray"},"edInstanceTypes":[{"annotation":[{"start":[50,65],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty/Internal.purs","end":[50,78]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Array","NonEmpty","Internal"],{"Ident":"applicativeNonEmptyArray"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Bind"],"Bind"],"edInstanceName":{"Ident":"bindNonEmptyArray"},"edInstanceTypes":[{"annotation":[{"start":[52,51],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty/Internal.purs","end":[52,64]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Array","NonEmpty","Internal"],{"Ident":"bindNonEmptyArray"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Monad"],"Monad"],"edInstanceName":{"Ident":"monadNonEmptyArray"},"edInstanceTypes":[{"annotation":[{"start":[54,53],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty/Internal.purs","end":[54,66]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Array","NonEmpty","Internal"],{"Ident":"monadNonEmptyArray"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Alt"],"Alt"],"edInstanceName":{"Ident":"altNonEmptyArray"},"edInstanceTypes":[{"annotation":[{"start":[56,49],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty/Internal.purs","end":[56,62]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Array","NonEmpty","Internal"],{"Ident":"altNonEmptyArray"}]],"edInstanceChainIndex":0}}],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty/Internal.purs","end":[67,25]}}
diff --git a/tests/purs/publish/basic-example/output/Data.Array.NonEmpty/docs.json b/tests/purs/publish/basic-example/output/Data.Array.NonEmpty/docs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.Array.NonEmpty/docs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"reExports":[],"name":"Data.Array.NonEmpty","comments":null,"declarations":[{"children":[],"comments":null,"title":"fromArray","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]}]},null]}},"sourceSpan":{"start":[134,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[134,58]}},{"children":[],"comments":null,"title":"fromNonEmpty","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","NonEmpty"],"NonEmpty"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},null]}},"sourceSpan":{"start":[146,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[146,62]}},{"children":[],"comments":null,"title":"toArray","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},null]}},"sourceSpan":{"start":[149,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[149,48]}},{"children":[],"comments":null,"title":"toNonEmpty","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","NonEmpty"],"NonEmpty"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},null]}},"sourceSpan":{"start":[152,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[152,60]}},{"children":[],"comments":null,"title":"fromFoldable","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Foldable"],"Foldable"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]}]}]},null]},null]}},"sourceSpan":{"start":[155,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[155,73]}},{"children":[],"comments":null,"title":"fromFoldable1","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Semigroup","Foldable"],"Foldable1"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]},null]},null]}},"sourceSpan":{"start":[158,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[158,67]}},{"children":[],"comments":null,"title":"toUnfoldable","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Unfoldable"],"Unfoldable"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]},null]},null]}},"sourceSpan":{"start":[161,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[161,67]}},{"children":[],"comments":null,"title":"toUnfoldable1","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Unfoldable1"],"Unfoldable1"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]},null]},null]}},"sourceSpan":{"start":[164,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[164,69]}},{"children":[],"comments":null,"title":"singleton","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},null]}},"sourceSpan":{"start":[171,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[171,44]}},{"children":[],"comments":null,"title":"(..)","info":{"declType":"alias","alias":[["Data","Array","NonEmpty"],{"Right":{"Left":{"Ident":"range"}}}],"fixity":{"associativity":"infix","precedence":8}},"sourceSpan":{"start":[177,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[177,20]}},{"children":[],"comments":null,"title":"range","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]}]}},"sourceSpan":{"start":[174,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[174,41]}},{"children":[],"comments":"Replicate an item at least once\n","title":"replicate","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]},null]}},"sourceSpan":{"start":[180,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[180,51]}},{"children":[],"comments":null,"title":"some","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Alternative"],"Alternative"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Lazy"],"Lazy"],"constraintArgs":[{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]}}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]}]}]}]},null]},null]}},"sourceSpan":{"start":[183,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[187,32]}},{"children":[],"comments":null,"title":"length","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},null]}},"sourceSpan":{"start":[190,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[190,43]}},{"children":[],"comments":null,"title":"(:)","info":{"declType":"alias","alias":[["Data","Array","NonEmpty"],{"Right":{"Left":{"Ident":"cons"}}}],"fixity":{"associativity":"infixr","precedence":6}},"sourceSpan":{"start":[196,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[196,19]}},{"children":[],"comments":null,"title":"cons","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]},null]}},"sourceSpan":{"start":[193,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[193,58]}},{"children":[],"comments":null,"title":"cons'","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]},null]}},"sourceSpan":{"start":[198,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[198,51]}},{"children":[],"comments":null,"title":"snoc","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]},null]}},"sourceSpan":{"start":[201,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[201,58]}},{"children":[],"comments":null,"title":"snoc'","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]},null]}},"sourceSpan":{"start":[204,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[204,51]}},{"children":[],"comments":null,"title":"appendArray","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]},null]}},"sourceSpan":{"start":[207,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[207,71]}},{"children":[],"comments":null,"title":"insert","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]}]},null]}},"sourceSpan":{"start":[210,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[210,69]}},{"children":[],"comments":null,"title":"insertBy","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ordering"],"Ordering"]}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]}]},null]}},"sourceSpan":{"start":[213,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[213,86]}},{"children":[],"comments":null,"title":"head","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},null]}},"sourceSpan":{"start":[216,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[216,39]}},{"children":[],"comments":null,"title":"last","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},null]}},"sourceSpan":{"start":[219,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[219,39]}},{"children":[],"comments":null,"title":"tail","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},null]}},"sourceSpan":{"start":[222,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[222,45]}},{"children":[],"comments":null,"title":"init","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},null]}},"sourceSpan":{"start":[225,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[225,45]}},{"children":[],"comments":null,"title":"uncons","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"RCons","contents":["head",{"annotation":[],"tag":"TypeVar","contents":"a"},{"annotation":[],"tag":"RCons","contents":["tail",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"REmpty"}]}]}]}]},null]}},"sourceSpan":{"start":[228,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[228,70]}},{"children":[],"comments":null,"title":"unsnoc","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"RCons","contents":["init",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"RCons","contents":["last",{"annotation":[],"tag":"TypeVar","contents":"a"},{"annotation":[],"tag":"REmpty"}]}]}]}]},null]}},"sourceSpan":{"start":[231,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[231,70]}},{"children":[],"comments":null,"title":"(!!)","info":{"declType":"alias","alias":[["Data","Array","NonEmpty"],{"Right":{"Left":{"Ident":"index"}}}],"fixity":{"associativity":"infixl","precedence":8}},"sourceSpan":{"start":[237,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[237,21]}},{"children":[],"comments":null,"title":"index","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]},null]}},"sourceSpan":{"start":[234,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[234,53]}},{"children":[],"comments":null,"title":"elemIndex","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]}]}]},null]}},"sourceSpan":{"start":[239,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[239,65]}},{"children":[],"comments":null,"title":"elemLastIndex","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]}]}]},null]}},"sourceSpan":{"start":[242,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[242,69]}},{"children":[],"comments":null,"title":"findIndex","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]}]},null]}},"sourceSpan":{"start":[245,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[245,70]}},{"children":[],"comments":null,"title":"findLastIndex","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]}]},null]}},"sourceSpan":{"start":[248,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[248,74]}},{"children":[],"comments":null,"title":"insertAt","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]}]}]}]},null]}},"sourceSpan":{"start":[251,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[251,77]}},{"children":[],"comments":null,"title":"deleteAt","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]}]}]},null]}},"sourceSpan":{"start":[254,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[254,64]}},{"children":[],"comments":null,"title":"updateAt","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]}]}]}]},null]}},"sourceSpan":{"start":[257,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[257,77]}},{"children":[],"comments":null,"title":"updateAtIndices","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["t",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Foldable"],"Foldable"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"t"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"t"},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]}]},null]},null]}},"sourceSpan":{"start":[260,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[260,99]}},{"children":[],"comments":null,"title":"modifyAt","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]}]}]}]},null]}},"sourceSpan":{"start":[263,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[263,84]}},{"children":[],"comments":null,"title":"modifyAtIndices","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["t",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Foldable"],"Foldable"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"t"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"t"},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]}]}]},null]},null]}},"sourceSpan":{"start":[266,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[266,101]}},{"children":[],"comments":null,"title":"alterAt","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]}]}]}]},null]}},"sourceSpan":{"start":[269,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[269,81]}},{"children":[],"comments":null,"title":"reverse","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},null]}},"sourceSpan":{"start":[272,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[272,56]}},{"children":[],"comments":null,"title":"concat","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},null]}},"sourceSpan":{"start":[275,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[275,71]}},{"children":[],"comments":null,"title":"concatMap","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}]},null]},null]}},"sourceSpan":{"start":[278,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[278,86]}},{"children":[],"comments":null,"title":"filter","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]},null]}},"sourceSpan":{"start":[281,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[281,65]}},{"children":[],"comments":null,"title":"partition","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"RCons","contents":["yes",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"RCons","contents":["no",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"REmpty"}]}]}]}]}]},null]}},"sourceSpan":{"start":[284,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[288,38]}},{"children":[],"comments":null,"title":"filterA","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Applicative"],"Applicative"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]}]}]}]},null]},null]}},"sourceSpan":{"start":[291,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[296,17]}},{"children":[],"comments":null,"title":"mapMaybe","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}]},null]},null]}},"sourceSpan":{"start":[299,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[299,69]}},{"children":[],"comments":null,"title":"catMaybes","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},null]}},"sourceSpan":{"start":[302,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[302,58]}},{"children":[],"comments":null,"title":"sort","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]},null]}},"sourceSpan":{"start":[305,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[305,62]}},{"children":[],"comments":null,"title":"sortBy","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ordering"],"Ordering"]}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]},null]}},"sourceSpan":{"start":[308,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[308,79]}},{"children":[],"comments":null,"title":"sortWith","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"b"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]}]},null]},null]}},"sourceSpan":{"start":[311,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[311,80]}},{"children":[],"comments":null,"title":"slice","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]}]},null]}},"sourceSpan":{"start":[314,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[314,60]}},{"children":[],"comments":null,"title":"take","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]},null]}},"sourceSpan":{"start":[317,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[317,52]}},{"children":[],"comments":null,"title":"takeEnd","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]},null]}},"sourceSpan":{"start":[320,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[320,55]}},{"children":[],"comments":null,"title":"takeWhile","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]},null]}},"sourceSpan":{"start":[323,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[323,68]}},{"children":[],"comments":null,"title":"drop","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]},null]}},"sourceSpan":{"start":[326,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[326,52]}},{"children":[],"comments":null,"title":"dropEnd","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]},null]}},"sourceSpan":{"start":[329,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[329,55]}},{"children":[],"comments":null,"title":"dropWhile","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]},null]}},"sourceSpan":{"start":[332,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[332,68]}},{"children":[],"comments":null,"title":"span","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"RCons","contents":["init",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"RCons","contents":["rest",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"REmpty"}]}]}]}]}]},null]}},"sourceSpan":{"start":[335,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[339,42]}},{"children":[],"comments":null,"title":"nub","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]},null]}},"sourceSpan":{"start":[342,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[342,61]}},{"children":[],"comments":null,"title":"nubBy","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ordering"],"Ordering"]}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]},null]}},"sourceSpan":{"start":[348,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[348,78]}},{"children":[],"comments":null,"title":"nubEq","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]},null]}},"sourceSpan":{"start":[345,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[345,62]}},{"children":[],"comments":null,"title":"nubByEq","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]},null]}},"sourceSpan":{"start":[351,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[351,79]}},{"children":[],"comments":null,"title":"union","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]}]},null]}},"sourceSpan":{"start":[354,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[354,81]}},{"children":[],"comments":null,"title":"union'","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]}]},null]}},"sourceSpan":{"start":[357,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[357,74]}},{"children":[],"comments":null,"title":"unionBy","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]}]},null]}},"sourceSpan":{"start":[360,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[365,21]}},{"children":[],"comments":null,"title":"unionBy'","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]}]},null]}},"sourceSpan":{"start":[368,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[373,21]}},{"children":[],"comments":null,"title":"delete","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]}]},null]}},"sourceSpan":{"start":[376,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[376,60]}},{"children":[],"comments":null,"title":"deleteBy","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]}]},null]}},"sourceSpan":{"start":[379,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[379,77]}},{"children":[],"comments":null,"title":"(\\\\)","info":{"declType":"alias","alias":[["Data","Array","NonEmpty"],{"Right":{"Left":{"Ident":"difference"}}}],"fixity":{"associativity":"infix","precedence":5}},"sourceSpan":{"start":[410,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[410,25]}},{"children":[],"comments":null,"title":"difference","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]}]},null]}},"sourceSpan":{"start":[382,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[382,78]}},{"children":[],"comments":null,"title":"difference'","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]}]},null]}},"sourceSpan":{"start":[385,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[385,71]}},{"children":[],"comments":null,"title":"intersect","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]}]},null]}},"sourceSpan":{"start":[388,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[388,78]}},{"children":[],"comments":null,"title":"intersect'","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]}]},null]}},"sourceSpan":{"start":[391,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[391,71]}},{"children":[],"comments":null,"title":"intersectBy","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]}]},null]}},"sourceSpan":{"start":[394,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[399,13]}},{"children":[],"comments":null,"title":"intersectBy'","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]}]},null]}},"sourceSpan":{"start":[402,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[407,13]}},{"children":[],"comments":null,"title":"zipWith","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[],"tag":"TypeVar","contents":"c"}]}]}]}]},null]},null]},null]}},"sourceSpan":{"start":[412,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[417,21]}},{"children":[],"comments":null,"title":"zipWithA","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Applicative"],"Applicative"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"c"}]}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[],"tag":"TypeVar","contents":"c"}]}}]}]}]}]}]},null]},null]},null]},null]}},"sourceSpan":{"start":[421,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[427,25]}},{"children":[],"comments":null,"title":"zip","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}}]}]}]},null]},null]}},"sourceSpan":{"start":[430,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[430,83]}},{"children":[],"comments":null,"title":"unzip","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}}]}]},null]},null]}},"sourceSpan":{"start":[433,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[433,92]}},{"children":[],"comments":null,"title":"foldM","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Monad"],"Monad"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]}]}]},null]},null]},null]}},"sourceSpan":{"start":[436,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[436,81]}},{"children":[],"comments":null,"title":"foldRecM","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Monad","Rec","Class"],"MonadRec"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]}]}]},null]},null]},null]}},"sourceSpan":{"start":[439,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[439,87]}},{"children":[],"comments":null,"title":"unsafeIndex","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Prim"],"Partial"],"constraintArgs":[],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]},null]}},"sourceSpan":{"start":[442,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[442,64]}}]}
diff --git a/tests/purs/publish/basic-example/output/Data.Array.NonEmpty/externs.json b/tests/purs/publish/basic-example/output/Data.Array.NonEmpty/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.Array.NonEmpty/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Data","Array","NonEmpty"],"efExports":[{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[443,37]},{"exportSourceImportedFrom":["Data","Array","NonEmpty","Internal"],"exportSourceDefinedIn":["Data","Array","NonEmpty","Internal"]},{"TypeRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[443,37]},"NonEmptyArray",[]]}]},{"ModuleRef":[{"start":[2,5],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[2,40]},["Data","Array","NonEmpty","Internal"]]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[443,37]},{"Ident":"fromArray"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[443,37]},{"Ident":"fromNonEmpty"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[443,37]},{"Ident":"toArray"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[443,37]},{"Ident":"toNonEmpty"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[443,37]},{"Ident":"fromFoldable"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[443,37]},{"Ident":"fromFoldable1"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[443,37]},{"Ident":"toUnfoldable"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[443,37]},{"Ident":"toUnfoldable1"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[443,37]},{"Ident":"singleton"}]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[443,37]},".."]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[443,37]},{"Ident":"range"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[443,37]},{"Ident":"replicate"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[443,37]},{"Ident":"some"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[443,37]},{"Ident":"length"}]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[443,37]},":"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[443,37]},{"Ident":"cons"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[443,37]},{"Ident":"cons'"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[443,37]},{"Ident":"snoc"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[443,37]},{"Ident":"snoc'"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[443,37]},{"Ident":"appendArray"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[443,37]},{"Ident":"insert"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[443,37]},{"Ident":"insertBy"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[443,37]},{"Ident":"head"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[443,37]},{"Ident":"last"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[443,37]},{"Ident":"tail"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[443,37]},{"Ident":"init"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[443,37]},{"Ident":"uncons"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[443,37]},{"Ident":"unsnoc"}]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[443,37]},"!!"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[443,37]},{"Ident":"index"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[443,37]},{"Ident":"elemIndex"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[443,37]},{"Ident":"elemLastIndex"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[443,37]},{"Ident":"findIndex"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[443,37]},{"Ident":"findLastIndex"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[443,37]},{"Ident":"insertAt"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[443,37]},{"Ident":"deleteAt"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[443,37]},{"Ident":"updateAt"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[443,37]},{"Ident":"updateAtIndices"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[443,37]},{"Ident":"modifyAt"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[443,37]},{"Ident":"modifyAtIndices"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[443,37]},{"Ident":"alterAt"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[443,37]},{"Ident":"reverse"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[443,37]},{"Ident":"concat"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[443,37]},{"Ident":"concatMap"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[443,37]},{"Ident":"filter"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[443,37]},{"Ident":"partition"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[443,37]},{"Ident":"filterA"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[443,37]},{"Ident":"mapMaybe"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[443,37]},{"Ident":"catMaybes"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[443,37]},{"Ident":"sort"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[443,37]},{"Ident":"sortBy"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[443,37]},{"Ident":"sortWith"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[443,37]},{"Ident":"slice"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[443,37]},{"Ident":"take"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[443,37]},{"Ident":"takeEnd"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[443,37]},{"Ident":"takeWhile"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[443,37]},{"Ident":"drop"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[443,37]},{"Ident":"dropEnd"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[443,37]},{"Ident":"dropWhile"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[443,37]},{"Ident":"span"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[443,37]},{"Ident":"nub"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[443,37]},{"Ident":"nubBy"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[443,37]},{"Ident":"nubEq"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[443,37]},{"Ident":"nubByEq"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[443,37]},{"Ident":"union"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[443,37]},{"Ident":"union'"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[443,37]},{"Ident":"unionBy"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[443,37]},{"Ident":"unionBy'"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[443,37]},{"Ident":"delete"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[443,37]},{"Ident":"deleteBy"}]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[443,37]},"\\\\"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[443,37]},{"Ident":"difference"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[443,37]},{"Ident":"difference'"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[443,37]},{"Ident":"intersect"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[443,37]},{"Ident":"intersect'"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[443,37]},{"Ident":"intersectBy"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[443,37]},{"Ident":"intersectBy'"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[443,37]},{"Ident":"zipWith"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[443,37]},{"Ident":"zipWithA"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[443,37]},{"Ident":"zip"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[443,37]},{"Ident":"unzip"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[443,37]},{"Ident":"foldM"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[443,37]},{"Ident":"foldRecM"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[443,37]},{"Ident":"unsafeIndex"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Prelude"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Control","Alternative"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[99,29],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[99,46]},"Alternative"]}]},"eiImportedAs":null},{"eiModule":["Control","Lazy"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[100,22],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[100,32]},"Lazy"]}]},"eiImportedAs":null},{"eiModule":["Control","Monad","Rec","Class"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[101,33],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[101,47]},"MonadRec"]}]},"eiImportedAs":null},{"eiModule":["Data","Array"],"eiImportType":{"Implicit":[]},"eiImportedAs":["A"]},{"eiModule":["Data","Array","NonEmpty","Internal"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[103,38],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[103,51]},"NonEmptyArray",[]]}]},"eiImportedAs":null},{"eiModule":["Data","Bifunctor"],"eiImportType":{"Explicit":[{"ValueRef":[{"start":[104,24],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[104,29]},{"Ident":"bimap"}]}]},"eiImportedAs":null},{"eiModule":["Data","Foldable"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[105,23],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[105,37]},"Foldable"]}]},"eiImportedAs":null},{"eiModule":["Data","Maybe"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[106,20],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[106,29]},"Maybe",null]},{"ValueRef":[{"start":[106,31],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[106,39]},{"Ident":"fromJust"}]}]},"eiImportedAs":null},{"eiModule":["Data","NonEmpty"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[107,23],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[107,31]},"NonEmpty",[]]},{"ValueOpRef":[{"start":[107,33],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[107,37]},":|"]}]},"eiImportedAs":null},{"eiModule":["Data","Semigroup","Foldable"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[108,33],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[108,48]},"Foldable1"]}]},"eiImportedAs":null},{"eiModule":["Data","Tuple"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[109,20],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[109,29]},"Tuple",null]}]},"eiImportedAs":null},{"eiModule":["Data","Unfoldable"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[110,25],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[110,41]},"Unfoldable"]}]},"eiImportedAs":null},{"eiModule":["Data","Unfoldable1"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[111,26],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[111,43]},"Unfoldable1"]},{"ValueRef":[{"start":[111,45],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[111,53]},{"Ident":"unfoldr1"}]}]},"eiImportedAs":null},{"eiModule":["Partial","Unsafe"],"eiImportType":{"Explicit":[{"ValueRef":[{"start":[112,24],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[112,37]},{"Ident":"unsafePartial"}]}]},"eiImportedAs":null},{"eiModule":["Unsafe","Coerce"],"eiImportType":{"Explicit":[{"ValueRef":[{"start":[113,23],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[113,35]},{"Ident":"unsafeCoerce"}]}]},"eiImportedAs":null}],"efFixities":[{"efAssociativity":"infix","efPrecedence":8,"efOperator":"..","efAlias":[["Data","Array","NonEmpty"],{"Left":{"Ident":"range"}}]},{"efAssociativity":"infixr","efPrecedence":6,"efOperator":":","efAlias":[["Data","Array","NonEmpty"],{"Left":{"Ident":"cons"}}]},{"efAssociativity":"infixl","efPrecedence":8,"efOperator":"!!","efAlias":[["Data","Array","NonEmpty"],{"Left":{"Ident":"index"}}]},{"efAssociativity":"infix","efPrecedence":5,"efOperator":"\\\\","efAlias":[["Data","Array","NonEmpty"],{"Left":{"Ident":"difference"}}]}],"efTypeFixities":[],"efDeclarations":[{"EDValue":{"edValueName":{"Ident":"fromArray"},"edValueType":{"annotation":[{"start":[134,14],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[134,58]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[134,24],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[134,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[134,24],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[134,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[134,32],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[134,34]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[134,24],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[134,31]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[134,24],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[134,29]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[134,30],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[134,31]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[134,35],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[134,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[134,35],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[134,40]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[134,42],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[134,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[134,42],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[134,55]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[{"start":[134,56],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[134,57]},[]],"tag":"TypeVar","contents":"a"}]}]}]},80]}}},{"EDValue":{"edValueName":{"Ident":"fromNonEmpty"},"edValueType":{"annotation":[{"start":[146,17],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[146,62]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[146,27],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[146,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[146,27],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[146,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[146,44],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[146,46]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[146,27],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[146,43]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[146,27],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[146,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[146,27],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[146,35]},[]],"tag":"TypeConstructor","contents":[["Data","NonEmpty"],"NonEmpty"]},{"annotation":[{"start":[146,36],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[146,41]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]}]},{"annotation":[{"start":[146,42],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[146,43]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[146,47],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[146,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[146,47],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[146,60]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[{"start":[146,61],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[146,62]},[]],"tag":"TypeVar","contents":"a"}]}]},93]}}},{"EDValue":{"edValueName":{"Ident":"toArray"},"edValueType":{"annotation":[{"start":[149,12],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[149,48]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[149,22],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[149,48]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[149,22],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[149,48]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[149,38],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[149,40]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[149,22],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[149,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[149,22],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[149,35]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[{"start":[149,36],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[149,37]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[149,41],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[149,48]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[149,41],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[149,46]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[149,47],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[149,48]},[]],"tag":"TypeVar","contents":"a"}]}]},10]}}},{"EDValue":{"edValueName":{"Ident":"toNonEmpty"},"edValueType":{"annotation":[{"start":[152,15],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[152,60]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[152,25],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[152,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[152,25],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[152,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[152,41],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[152,43]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[152,25],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[152,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[152,25],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[152,38]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[{"start":[152,39],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[152,40]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[152,44],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[152,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[152,44],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[152,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[152,44],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[152,52]},[]],"tag":"TypeConstructor","contents":[["Data","NonEmpty"],"NonEmpty"]},{"annotation":[{"start":[152,53],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[152,58]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]}]},{"annotation":[{"start":[152,59],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[152,60]},[]],"tag":"TypeVar","contents":"a"}]}]},121]}}},{"EDValue":{"edValueName":{"Ident":"fromFoldable"},"edValueType":{"annotation":[{"start":[155,17],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[155,73]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[155,24],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[155,73]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[155,29],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[155,73]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[155,29],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[155,39]},[]],"constraintClass":[["Data","Foldable"],"Foldable"],"constraintArgs":[{"annotation":[{"start":[155,38],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[155,39]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[155,43],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[155,73]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[155,43],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[155,73]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[155,47],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[155,49]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[155,43],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[155,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[155,43],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[155,44]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[155,45],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[155,46]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[155,50],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[155,73]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[155,50],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[155,55]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[155,57],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[155,72]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[155,57],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[155,70]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[{"start":[155,71],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[155,72]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]},84]},85]}}},{"EDValue":{"edValueName":{"Ident":"fromFoldable1"},"edValueType":{"annotation":[{"start":[158,18],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[158,67]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[158,25],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[158,67]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[158,30],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[158,67]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[158,30],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[158,41]},[]],"constraintClass":[["Data","Semigroup","Foldable"],"Foldable1"],"constraintArgs":[{"annotation":[{"start":[158,40],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[158,41]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[158,45],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[158,67]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[158,45],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[158,67]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[158,49],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[158,51]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[158,45],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[158,48]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[158,45],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[158,46]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[158,47],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[158,48]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[158,52],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[158,67]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[158,52],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[158,65]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[{"start":[158,66],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[158,67]},[]],"tag":"TypeVar","contents":"a"}]}]}]},76]},77]}}},{"EDValue":{"edValueName":{"Ident":"toUnfoldable"},"edValueType":{"annotation":[{"start":[161,17],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[161,67]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[161,24],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[161,67]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[161,29],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[161,67]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[161,29],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[161,41]},[]],"constraintClass":[["Data","Unfoldable"],"Unfoldable"],"constraintArgs":[{"annotation":[{"start":[161,40],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[161,41]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[161,45],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[161,67]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[161,45],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[161,67]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[161,61],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[161,63]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[161,45],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[161,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[161,45],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[161,58]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[{"start":[161,59],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[161,60]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[161,64],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[161,67]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[161,64],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[161,65]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[161,66],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[161,67]},[]],"tag":"TypeVar","contents":"a"}]}]}]},197]},198]}}},{"EDValue":{"edValueName":{"Ident":"toUnfoldable1"},"edValueType":{"annotation":[{"start":[164,18],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[164,69]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[164,25],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[164,69]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[164,30],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[164,69]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[164,30],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[164,43]},[]],"constraintClass":[["Data","Unfoldable1"],"Unfoldable1"],"constraintArgs":[{"annotation":[{"start":[164,42],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[164,43]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[164,47],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[164,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[164,47],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[164,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[164,63],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[164,65]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[164,47],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[164,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[164,47],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[164,60]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[{"start":[164,61],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[164,62]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[164,66],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[164,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[164,66],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[164,67]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[164,68],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[164,69]},[]],"tag":"TypeVar","contents":"a"}]}]}]},241]},242]}}},{"EDValue":{"edValueName":{"Ident":"singleton"},"edValueType":{"annotation":[{"start":[171,14],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[171,44]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[171,24],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[171,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[171,24],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[171,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[171,26],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[171,28]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[171,24],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[171,25]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[171,29],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[171,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[171,29],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[171,42]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[{"start":[171,43],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[171,44]},[]],"tag":"TypeVar","contents":"a"}]}]},59]}}},{"EDValue":{"edValueName":{"Ident":"range"},"edValueType":{"annotation":[{"start":[174,10],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[174,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[174,10],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[174,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[174,14],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[174,16]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[174,10],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[174,13]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[174,17],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[174,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[174,17],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[174,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[174,21],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[174,23]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[174,17],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[174,20]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[174,24],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[174,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[174,24],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[174,37]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[{"start":[174,38],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[174,41]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]}]}}},{"EDValue":{"edValueName":{"Ident":"replicate"},"edValueType":{"annotation":[{"start":[180,14],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[180,51]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[180,24],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[180,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[180,24],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[180,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[180,28],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[180,30]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[180,24],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[180,27]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[180,31],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[180,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[180,31],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[180,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[180,33],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[180,35]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[180,31],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[180,32]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[180,36],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[180,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[180,36],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[180,49]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[{"start":[180,50],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[180,51]},[]],"tag":"TypeVar","contents":"a"}]}]}]},61]}}},{"EDValue":{"edValueName":{"Ident":"some"},"edValueType":{"annotation":[{"start":[184,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[187,32]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[184,13],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[187,32]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[185,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[187,32]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[185,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[185,19]},[]],"constraintClass":[["Control","Alternative"],"Alternative"],"constraintArgs":[{"annotation":[{"start":[185,18],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[185,19]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[186,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[187,32]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[186,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[186,24]},[]],"constraintClass":[["Control","Lazy"],"Lazy"],"constraintArgs":[{"annotation":[{"start":[186,12],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[186,23]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[186,12],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[186,13]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[186,15],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[186,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[186,15],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[186,20]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[186,21],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[186,22]},[]],"tag":"TypeVar","contents":"a"}]}]}],"constraintData":null},{"annotation":[{"start":[187,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[187,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[187,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[187,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[187,10],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[187,12]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[187,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[187,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[187,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[187,7]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[187,8],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[187,9]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[187,13],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[187,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[187,13],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[187,14]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[187,16],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[187,31]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[187,16],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[187,29]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[{"start":[187,30],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[187,31]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]}]},49]},50]}}},{"EDValue":{"edValueName":{"Ident":"length"},"edValueType":{"annotation":[{"start":[190,11],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[190,43]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[190,21],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[190,43]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[190,21],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[190,43]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[190,37],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[190,39]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[190,21],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[190,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[190,21],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[190,34]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[{"start":[190,35],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[190,36]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[190,40],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[190,43]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},175]}}},{"EDValue":{"edValueName":{"Ident":"cons"},"edValueType":{"annotation":[{"start":[193,9],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[193,58]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[193,19],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[193,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[193,19],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[193,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[193,21],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[193,23]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[193,19],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[193,20]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[193,24],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[193,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[193,24],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[193,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[193,40],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[193,42]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[193,24],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[193,39]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[193,24],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[193,37]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[{"start":[193,38],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[193,39]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[193,43],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[193,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[193,43],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[193,56]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[{"start":[193,57],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[193,58]},[]],"tag":"TypeVar","contents":"a"}]}]}]},205]}}},{"EDValue":{"edValueName":{"Ident":"cons'"},"edValueType":{"annotation":[{"start":[198,10],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[198,51]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[198,20],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[198,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[198,20],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[198,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[198,22],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[198,24]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[198,20],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[198,21]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[198,25],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[198,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[198,25],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[198,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[198,33],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[198,35]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[198,25],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[198,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[198,25],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[198,30]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[198,31],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[198,32]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[198,36],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[198,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[198,36],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[198,49]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[{"start":[198,50],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[198,51]},[]],"tag":"TypeVar","contents":"a"}]}]}]},90]}}},{"EDValue":{"edValueName":{"Ident":"snoc"},"edValueType":{"annotation":[{"start":[201,9],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[201,58]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[201,19],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[201,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[201,19],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[201,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[201,35],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[201,37]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[201,19],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[201,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[201,19],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[201,32]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[{"start":[201,33],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[201,34]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[201,38],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[201,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[201,38],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[201,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[201,40],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[201,42]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[201,38],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[201,39]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[201,43],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[201,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[201,43],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[201,56]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[{"start":[201,57],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[201,58]},[]],"tag":"TypeVar","contents":"a"}]}]}]},56]}}},{"EDValue":{"edValueName":{"Ident":"snoc'"},"edValueType":{"annotation":[{"start":[204,10],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[204,51]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[204,20],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[204,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[204,20],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[204,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[204,28],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[204,30]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[204,20],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[204,27]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[204,20],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[204,25]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[204,26],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[204,27]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[204,31],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[204,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[204,31],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[204,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[204,33],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[204,35]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[204,31],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[204,32]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[204,36],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[204,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[204,36],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[204,49]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[{"start":[204,50],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[204,51]},[]],"tag":"TypeVar","contents":"a"}]}]}]},53]}}},{"EDValue":{"edValueName":{"Ident":"appendArray"},"edValueType":{"annotation":[{"start":[207,16],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[207,71]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[207,26],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[207,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[207,26],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[207,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[207,42],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[207,44]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[207,26],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[207,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[207,26],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[207,39]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[{"start":[207,40],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[207,41]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[207,45],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[207,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[207,45],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[207,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[207,53],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[207,55]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[207,45],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[207,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[207,45],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[207,50]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[207,51],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[207,52]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[207,56],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[207,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[207,56],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[207,69]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[{"start":[207,70],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[207,71]},[]],"tag":"TypeVar","contents":"a"}]}]}]},102]}}},{"EDValue":{"edValueName":{"Ident":"insert"},"edValueType":{"annotation":[{"start":[210,11],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[210,69]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[210,21],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[210,69]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[210,21],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[210,26]},[]],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[{"start":[210,25],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[210,26]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[210,30],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[210,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[210,30],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[210,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[210,32],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[210,34]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[210,30],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[210,31]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[210,35],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[210,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[210,35],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[210,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[210,51],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[210,53]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[210,35],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[210,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[210,35],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[210,48]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[{"start":[210,49],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[210,50]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[210,54],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[210,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[210,54],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[210,67]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[{"start":[210,68],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[210,69]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]},208]}}},{"EDValue":{"edValueName":{"Ident":"insertBy"},"edValueType":{"annotation":[{"start":[213,13],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[213,86]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[213,23],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[213,86]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[213,23],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[213,86]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[213,44],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[213,46]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[213,24],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[213,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[213,24],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[213,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[213,26],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[213,28]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[213,24],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[213,25]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[213,29],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[213,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[213,29],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[213,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[213,31],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[213,33]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[213,29],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[213,30]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[213,34],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[213,42]},[]],"tag":"TypeConstructor","contents":[["Data","Ordering"],"Ordering"]}]}]}]},{"annotation":[{"start":[213,47],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[213,86]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[213,47],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[213,86]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[213,49],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[213,51]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[213,47],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[213,48]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[213,52],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[213,86]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[213,52],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[213,86]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[213,68],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[213,70]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[213,52],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[213,67]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[213,52],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[213,65]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[{"start":[213,66],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[213,67]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[213,71],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[213,86]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[213,71],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[213,84]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[{"start":[213,85],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[213,86]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]},210]}}},{"EDValue":{"edValueName":{"Ident":"head"},"edValueType":{"annotation":[{"start":[216,9],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[216,39]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[216,19],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[216,39]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[216,19],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[216,39]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[216,35],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[216,37]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[216,19],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[216,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[216,19],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[216,32]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[{"start":[216,33],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[216,34]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[216,38],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[216,39]},[]],"tag":"TypeVar","contents":"a"}]},111]}}},{"EDValue":{"edValueName":{"Ident":"last"},"edValueType":{"annotation":[{"start":[219,9],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[219,39]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[219,19],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[219,39]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[219,19],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[219,39]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[219,35],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[219,37]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[219,19],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[219,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[219,19],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[219,32]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[{"start":[219,33],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[219,34]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[219,38],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[219,39]},[]],"tag":"TypeVar","contents":"a"}]},115]}}},{"EDValue":{"edValueName":{"Ident":"tail"},"edValueType":{"annotation":[{"start":[222,9],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[222,45]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[222,19],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[222,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[222,19],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[222,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[222,35],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[222,37]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[222,19],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[222,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[222,19],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[222,32]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[{"start":[222,33],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[222,34]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[222,38],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[222,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[222,38],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[222,43]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[222,44],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[222,45]},[]],"tag":"TypeVar","contents":"a"}]}]},117]}}},{"EDValue":{"edValueName":{"Ident":"init"},"edValueType":{"annotation":[{"start":[225,9],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[225,45]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[225,19],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[225,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[225,19],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[225,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[225,35],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[225,37]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[225,19],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[225,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[225,19],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[225,32]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[{"start":[225,33],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[225,34]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[225,38],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[225,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[225,38],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[225,43]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[225,44],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[225,45]},[]],"tag":"TypeVar","contents":"a"}]}]},113]}}},{"EDValue":{"edValueName":{"Ident":"uncons"},"edValueType":{"annotation":[{"start":[228,11],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[228,70]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[228,21],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[228,70]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[228,21],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[228,70]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[228,37],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[228,39]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[228,21],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[228,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[228,21],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[228,34]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[{"start":[228,35],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[228,36]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[228,40],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[228,70]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[228,40],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[228,41]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[228,42],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[228,51]},[]],"tag":"RCons","contents":["head",{"annotation":[{"start":[228,50],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[228,51]},[]],"tag":"TypeVar","contents":"a"},{"annotation":[{"start":[228,53],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[228,68]},[]],"tag":"RCons","contents":["tail",{"annotation":[{"start":[228,61],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[228,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[228,61],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[228,66]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[228,67],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[228,68]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[228,69],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[228,70]},[]],"tag":"REmpty"}]}]}]}]},119]}}},{"EDValue":{"edValueName":{"Ident":"unsnoc"},"edValueType":{"annotation":[{"start":[231,11],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[231,70]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[231,21],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[231,70]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[231,21],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[231,70]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[231,37],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[231,39]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[231,21],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[231,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[231,21],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[231,34]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[{"start":[231,35],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[231,36]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[231,40],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[231,70]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[231,40],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[231,41]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[231,42],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[231,57]},[]],"tag":"RCons","contents":["init",{"annotation":[{"start":[231,50],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[231,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[231,50],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[231,55]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[231,56],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[231,57]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[231,59],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[231,68]},[]],"tag":"RCons","contents":["last",{"annotation":[{"start":[231,67],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[231,68]},[]],"tag":"TypeVar","contents":"a"},{"annotation":[{"start":[231,69],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[231,70]},[]],"tag":"REmpty"}]}]}]}]},123]}}},{"EDValue":{"edValueName":{"Ident":"index"},"edValueType":{"annotation":[{"start":[234,10],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[234,53]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[234,20],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[234,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[234,20],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[234,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[234,36],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[234,38]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[234,20],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[234,35]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[234,20],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[234,33]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[{"start":[234,34],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[234,35]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[234,39],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[234,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[234,39],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[234,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[234,43],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[234,45]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[234,39],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[234,42]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[234,46],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[234,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[234,46],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[234,51]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[234,52],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[234,53]},[]],"tag":"TypeVar","contents":"a"}]}]}]},173]}}},{"EDValue":{"edValueName":{"Ident":"elemIndex"},"edValueType":{"annotation":[{"start":[239,14],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[239,65]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[239,24],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[239,65]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[239,24],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[239,28]},[]],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[{"start":[239,27],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[239,28]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[239,32],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[239,65]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[239,32],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[239,65]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[239,34],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[239,36]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[239,32],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[239,33]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[239,37],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[239,65]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[239,37],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[239,65]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[239,53],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[239,55]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[239,37],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[239,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[239,37],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[239,50]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[{"start":[239,51],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[239,52]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[239,56],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[239,65]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[239,56],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[239,61]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[239,62],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[239,65]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]}]}]},146]}}},{"EDValue":{"edValueName":{"Ident":"elemLastIndex"},"edValueType":{"annotation":[{"start":[242,18],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[242,69]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[242,28],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[242,69]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[242,28],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[242,32]},[]],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[{"start":[242,31],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[242,32]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[242,36],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[242,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[242,36],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[242,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[242,38],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[242,40]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[242,36],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[242,37]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[242,41],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[242,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[242,41],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[242,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[242,57],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[242,59]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[242,41],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[242,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[242,41],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[242,54]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[{"start":[242,55],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[242,56]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[242,60],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[242,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[242,60],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[242,65]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[242,66],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[242,69]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]}]}]},148]}}},{"EDValue":{"edValueName":{"Ident":"findIndex"},"edValueType":{"annotation":[{"start":[245,14],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[245,70]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[245,24],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[245,70]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[245,24],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[245,70]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[245,39],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[245,41]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[245,25],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[245,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[245,25],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[245,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[245,27],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[245,29]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[245,25],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[245,26]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[245,30],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[245,37]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]},{"annotation":[{"start":[245,42],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[245,70]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[245,42],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[245,70]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[245,58],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[245,60]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[245,42],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[245,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[245,42],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[245,55]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[{"start":[245,56],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[245,57]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[245,61],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[245,70]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[245,61],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[245,66]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[245,67],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[245,70]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]}]},157]}}},{"EDValue":{"edValueName":{"Ident":"findLastIndex"},"edValueType":{"annotation":[{"start":[248,18],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[248,74]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[248,28],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[248,74]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[248,28],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[248,74]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[248,43],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[248,45]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[248,29],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[248,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[248,29],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[248,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[248,31],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[248,33]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[248,29],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[248,30]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[248,34],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[248,41]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]},{"annotation":[{"start":[248,46],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[248,74]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[248,46],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[248,74]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[248,62],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[248,64]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[248,46],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[248,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[248,46],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[248,59]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[{"start":[248,60],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[248,61]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[248,65],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[248,74]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[248,65],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[248,70]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[248,71],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[248,74]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]}]},159]}}},{"EDValue":{"edValueName":{"Ident":"insertAt"},"edValueType":{"annotation":[{"start":[251,13],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[251,77]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[251,23],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[251,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[251,23],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[251,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[251,27],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[251,29]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[251,23],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[251,26]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[251,30],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[251,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[251,30],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[251,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[251,32],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[251,34]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[251,30],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[251,31]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[251,35],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[251,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[251,35],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[251,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[251,51],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[251,53]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[251,35],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[251,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[251,35],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[251,48]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[{"start":[251,49],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[251,50]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[251,54],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[251,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[251,54],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[251,59]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[251,61],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[251,76]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[251,61],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[251,74]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[{"start":[251,75],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[251,76]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]}]},74]}}},{"EDValue":{"edValueName":{"Ident":"deleteAt"},"edValueType":{"annotation":[{"start":[254,13],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[254,64]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[254,23],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[254,64]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[254,23],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[254,64]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[254,27],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[254,29]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[254,23],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[254,26]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[254,30],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[254,64]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[254,30],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[254,64]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[254,46],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[254,48]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[254,30],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[254,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[254,30],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[254,43]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[{"start":[254,44],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[254,45]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[254,49],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[254,64]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[254,49],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[254,54]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[254,56],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[254,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[254,56],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[254,61]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[254,62],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[254,63]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]},133]}}},{"EDValue":{"edValueName":{"Ident":"updateAt"},"edValueType":{"annotation":[{"start":[257,13],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[257,77]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[257,23],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[257,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[257,23],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[257,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[257,27],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[257,29]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[257,23],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[257,26]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[257,30],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[257,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[257,30],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[257,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[257,32],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[257,34]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[257,30],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[257,31]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[257,35],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[257,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[257,35],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[257,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[257,51],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[257,53]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[257,35],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[257,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[257,35],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[257,48]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[{"start":[257,49],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[257,50]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[257,54],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[257,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[257,54],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[257,59]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[257,61],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[257,76]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[257,61],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[257,74]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[{"start":[257,75],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[257,76]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]}]},26]}}},{"EDValue":{"edValueName":{"Ident":"updateAtIndices"},"edValueType":{"annotation":[{"start":[260,20],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[260,99]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[260,27],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[260,99]},[]],"tag":"ForAll","contents":["t",{"annotation":[{"start":[260,32],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[260,99]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[260,32],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[260,42]},[]],"constraintClass":[["Data","Foldable"],"Foldable"],"constraintArgs":[{"annotation":[{"start":[260,41],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[260,42]},[]],"tag":"TypeVar","contents":"t"}],"constraintData":null},{"annotation":[{"start":[260,46],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[260,99]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[260,46],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[260,99]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[260,62],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[260,64]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[260,46],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[260,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[260,46],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[260,47]},[]],"tag":"TypeVar","contents":"t"},{"annotation":[{"start":[260,49],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[260,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[260,49],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[260,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[260,49],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[260,54]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[260,55],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[260,58]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[260,59],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[260,60]},[]],"tag":"TypeVar","contents":"a"}]}]}]},{"annotation":[{"start":[260,65],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[260,99]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[260,65],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[260,99]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[260,81],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[260,83]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[260,65],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[260,80]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[260,65],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[260,78]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[{"start":[260,79],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[260,80]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[260,84],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[260,99]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[260,84],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[260,97]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[{"start":[260,98],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[260,99]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]},235]},236]}}},{"EDValue":{"edValueName":{"Ident":"modifyAt"},"edValueType":{"annotation":[{"start":[263,13],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[263,84]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[263,23],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[263,84]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[263,23],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[263,84]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[263,27],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[263,29]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[263,23],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[263,26]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[263,30],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[263,84]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[263,30],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[263,84]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[263,39],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[263,41]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[263,31],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[263,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[263,31],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[263,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[263,33],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[263,35]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[263,31],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[263,32]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[263,36],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[263,37]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[263,42],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[263,84]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[263,42],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[263,84]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[263,58],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[263,60]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[263,42],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[263,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[263,42],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[263,55]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[{"start":[263,56],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[263,57]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[263,61],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[263,84]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[263,61],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[263,66]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[263,68],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[263,83]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[263,68],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[263,81]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[{"start":[263,82],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[263,83]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]}]},64]}}},{"EDValue":{"edValueName":{"Ident":"modifyAtIndices"},"edValueType":{"annotation":[{"start":[266,20],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[266,101]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[266,27],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[266,101]},[]],"tag":"ForAll","contents":["t",{"annotation":[{"start":[266,32],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[266,101]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[266,32],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[266,42]},[]],"constraintClass":[["Data","Foldable"],"Foldable"],"constraintArgs":[{"annotation":[{"start":[266,41],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[266,42]},[]],"tag":"TypeVar","contents":"t"}],"constraintData":null},{"annotation":[{"start":[266,46],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[266,101]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[266,46],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[266,101]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[266,52],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[266,54]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[266,46],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[266,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[266,46],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[266,47]},[]],"tag":"TypeVar","contents":"t"},{"annotation":[{"start":[266,48],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[266,51]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]},{"annotation":[{"start":[266,55],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[266,101]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[266,55],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[266,101]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[266,64],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[266,66]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[266,56],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[266,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[266,56],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[266,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[266,58],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[266,60]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[266,56],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[266,57]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[266,61],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[266,62]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[266,67],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[266,101]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[266,67],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[266,101]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[266,83],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[266,85]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[266,67],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[266,82]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[266,67],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[266,80]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[{"start":[266,81],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[266,82]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[266,86],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[266,101]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[266,86],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[266,99]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[{"start":[266,100],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[266,101]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]}]},212]},213]}}},{"EDValue":{"edValueName":{"Ident":"alterAt"},"edValueType":{"annotation":[{"start":[269,12],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[269,81]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[269,22],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[269,81]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[269,22],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[269,81]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[269,26],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[269,28]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[269,22],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[269,25]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[269,29],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[269,81]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[269,29],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[269,81]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[269,44],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[269,46]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[269,30],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[269,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[269,30],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[269,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[269,32],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[269,34]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[269,30],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[269,31]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[269,35],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[269,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[269,35],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[269,40]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[269,41],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[269,42]},[]],"tag":"TypeVar","contents":"a"}]}]}]},{"annotation":[{"start":[269,47],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[269,81]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[269,47],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[269,81]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[269,63],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[269,65]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[269,47],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[269,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[269,47],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[269,60]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[{"start":[269,61],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[269,62]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[269,66],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[269,81]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[269,66],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[269,71]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[269,73],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[269,80]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[269,73],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[269,78]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[269,79],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[269,80]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]}]},104]}}},{"EDValue":{"edValueName":{"Ident":"reverse"},"edValueType":{"annotation":[{"start":[272,12],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[272,56]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[272,22],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[272,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[272,22],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[272,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[272,38],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[272,40]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[272,22],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[272,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[272,22],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[272,35]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[{"start":[272,36],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[272,37]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[272,41],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[272,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[272,41],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[272,54]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[{"start":[272,55],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[272,56]},[]],"tag":"TypeVar","contents":"a"}]}]},224]}}},{"EDValue":{"edValueName":{"Ident":"concat"},"edValueType":{"annotation":[{"start":[275,11],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[275,71]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[275,21],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[275,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[275,21],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[275,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[275,53],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[275,55]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[275,21],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[275,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[275,21],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[275,34]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[{"start":[275,36],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[275,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[275,36],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[275,49]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[{"start":[275,50],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[275,51]},[]],"tag":"TypeVar","contents":"a"}]}]}]},{"annotation":[{"start":[275,56],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[275,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[275,56],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[275,69]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[{"start":[275,70],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[275,71]},[]],"tag":"TypeVar","contents":"a"}]}]},99]}}},{"EDValue":{"edValueName":{"Ident":"concatMap"},"edValueType":{"annotation":[{"start":[278,14],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[278,86]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[278,21],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[278,86]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[278,26],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[278,86]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[278,26],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[278,86]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[278,49],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[278,51]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[278,27],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[278,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[278,27],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[278,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[278,29],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[278,31]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[278,27],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[278,28]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[278,32],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[278,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[278,32],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[278,45]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[{"start":[278,46],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[278,47]},[]],"tag":"TypeVar","contents":"b"}]}]}]},{"annotation":[{"start":[278,52],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[278,86]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[278,52],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[278,86]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[278,68],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[278,70]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[278,52],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[278,67]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[278,52],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[278,65]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[{"start":[278,66],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[278,67]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[278,71],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[278,86]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[278,71],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[278,84]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[{"start":[278,85],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[278,86]},[]],"tag":"TypeVar","contents":"b"}]}]}]},95]},96]}}},{"EDValue":{"edValueName":{"Ident":"filter"},"edValueType":{"annotation":[{"start":[281,11],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[281,65]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[281,21],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[281,65]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[281,21],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[281,65]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[281,36],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[281,38]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[281,22],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[281,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[281,22],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[281,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[281,24],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[281,26]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[281,22],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[281,23]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[281,27],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[281,34]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]},{"annotation":[{"start":[281,39],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[281,65]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[281,39],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[281,65]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[281,55],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[281,57]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[281,39],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[281,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[281,39],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[281,52]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[{"start":[281,53],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[281,54]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[281,58],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[281,65]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[281,58],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[281,63]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[281,64],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[281,65]},[]],"tag":"TypeVar","contents":"a"}]}]}]},150]}}},{"EDValue":{"edValueName":{"Ident":"partition"},"edValueType":{"annotation":[{"start":[285,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[288,38]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[286,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[288,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[286,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[288,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[287,3],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[287,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[286,7],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[286,19]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[286,7],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[286,19]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[286,9],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[286,11]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[286,7],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[286,8]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[286,12],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[286,19]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]},{"annotation":[{"start":[287,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[288,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[287,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[288,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[288,3],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[288,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[287,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[287,21]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[287,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[287,19]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[{"start":[287,20],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[287,21]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[288,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[288,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[288,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[288,7]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[288,8],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[288,22]},[]],"tag":"RCons","contents":["yes",{"annotation":[{"start":[288,15],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[288,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[288,15],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[288,20]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[288,21],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[288,22]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[288,24],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[288,37]},[]],"tag":"RCons","contents":["no",{"annotation":[{"start":[288,30],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[288,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[288,30],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[288,35]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[288,36],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[288,37]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[288,37],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[288,38]},[]],"tag":"REmpty"}]}]}]}]}]},182]}}},{"EDValue":{"edValueName":{"Ident":"filterA"},"edValueType":{"annotation":[{"start":[292,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[296,17]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[292,13],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[296,17]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[293,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[296,17]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[293,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[293,19]},[]],"constraintClass":[["Control","Applicative"],"Applicative"],"constraintArgs":[{"annotation":[{"start":[293,18],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[293,19]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[294,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[296,17]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[294,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[296,17]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[295,3],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[295,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[294,7],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[294,21]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[294,7],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[294,21]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[294,9],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[294,11]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[294,7],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[294,8]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[294,12],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[294,21]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[294,12],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[294,13]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[294,14],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[294,21]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]}]},{"annotation":[{"start":[295,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[296,17]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[295,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[296,17]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[296,3],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[296,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[295,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[295,21]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[295,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[295,19]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[{"start":[295,20],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[295,21]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[296,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[296,17]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[296,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[296,7]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[296,9],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[296,16]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[296,9],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[296,14]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[296,15],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[296,16]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]}]},153]},154]}}},{"EDValue":{"edValueName":{"Ident":"mapMaybe"},"edValueType":{"annotation":[{"start":[299,13],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[299,69]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[299,20],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[299,69]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[299,25],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[299,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[299,25],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[299,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[299,40],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[299,42]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[299,26],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[299,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[299,26],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[299,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[299,28],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[299,30]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[299,26],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[299,27]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[299,31],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[299,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[299,31],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[299,36]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[299,37],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[299,38]},[]],"tag":"TypeVar","contents":"b"}]}]}]},{"annotation":[{"start":[299,43],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[299,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[299,43],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[299,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[299,59],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[299,61]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[299,43],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[299,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[299,43],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[299,56]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[{"start":[299,57],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[299,58]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[299,62],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[299,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[299,62],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[299,67]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[299,68],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[299,69]},[]],"tag":"TypeVar","contents":"b"}]}]}]},178]},179]}}},{"EDValue":{"edValueName":{"Ident":"catMaybes"},"edValueType":{"annotation":[{"start":[302,14],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[302,58]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[302,24],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[302,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[302,24],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[302,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[302,48],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[302,50]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[302,24],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[302,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[302,24],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[302,37]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[{"start":[302,39],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[302,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[302,39],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[302,44]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[302,45],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[302,46]},[]],"tag":"TypeVar","contents":"a"}]}]}]},{"annotation":[{"start":[302,51],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[302,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[302,51],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[302,56]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[302,57],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[302,58]},[]],"tag":"TypeVar","contents":"a"}]}]},129]}}},{"EDValue":{"edValueName":{"Ident":"sort"},"edValueType":{"annotation":[{"start":[305,9],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[305,62]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[305,19],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[305,62]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[305,19],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[305,24]},[]],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[{"start":[305,23],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[305,24]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[305,28],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[305,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[305,28],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[305,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[305,44],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[305,46]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[305,28],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[305,43]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[305,28],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[305,41]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[{"start":[305,42],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[305,43]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[305,47],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[305,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[305,47],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[305,60]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[{"start":[305,61],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[305,62]},[]],"tag":"TypeVar","contents":"a"}]}]}]},227]}}},{"EDValue":{"edValueName":{"Ident":"sortBy"},"edValueType":{"annotation":[{"start":[308,11],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[308,79]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[308,21],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[308,79]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[308,21],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[308,79]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[308,42],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[308,44]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[308,22],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[308,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[308,22],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[308,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[308,24],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[308,26]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[308,22],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[308,23]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[308,27],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[308,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[308,27],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[308,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[308,29],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[308,31]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[308,27],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[308,28]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[308,32],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[308,40]},[]],"tag":"TypeConstructor","contents":[["Data","Ordering"],"Ordering"]}]}]}]},{"annotation":[{"start":[308,45],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[308,79]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[308,45],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[308,79]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[308,61],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[308,63]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[308,45],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[308,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[308,45],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[308,58]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[{"start":[308,59],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[308,60]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[308,64],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[308,79]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[308,64],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[308,77]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[{"start":[308,78],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[308,79]},[]],"tag":"TypeVar","contents":"a"}]}]}]},229]}}},{"EDValue":{"edValueName":{"Ident":"sortWith"},"edValueType":{"annotation":[{"start":[311,13],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[311,80]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[311,20],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[311,80]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[311,25],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[311,80]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[311,25],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[311,30]},[]],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[{"start":[311,29],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[311,30]},[]],"tag":"TypeVar","contents":"b"}],"constraintData":null},{"annotation":[{"start":[311,34],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[311,80]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[311,34],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[311,80]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[311,43],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[311,45]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[311,35],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[311,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[311,35],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[311,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[311,37],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[311,39]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[311,35],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[311,36]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[311,40],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[311,41]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[311,46],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[311,80]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[311,46],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[311,80]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[311,62],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[311,64]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[311,46],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[311,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[311,46],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[311,59]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[{"start":[311,60],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[311,61]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[311,65],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[311,80]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[311,65],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[311,78]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[{"start":[311,79],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[311,80]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]},231]},232]}}},{"EDValue":{"edValueName":{"Ident":"slice"},"edValueType":{"annotation":[{"start":[314,10],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[314,60]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[314,20],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[314,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[314,20],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[314,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[314,24],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[314,26]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[314,20],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[314,23]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[314,27],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[314,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[314,27],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[314,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[314,31],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[314,33]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[314,27],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[314,30]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[314,34],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[314,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[314,34],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[314,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[314,50],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[314,52]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[314,34],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[314,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[314,34],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[314,47]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[{"start":[314,48],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[314,49]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[314,53],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[314,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[314,53],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[314,58]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[314,59],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[314,60]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]},185]}}},{"EDValue":{"edValueName":{"Ident":"take"},"edValueType":{"annotation":[{"start":[317,9],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[317,52]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[317,19],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[317,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[317,19],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[317,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[317,23],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[317,25]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[317,19],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[317,22]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[317,26],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[317,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[317,26],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[317,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[317,42],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[317,44]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[317,26],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[317,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[317,26],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[317,39]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[{"start":[317,40],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[317,41]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[317,45],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[317,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[317,45],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[317,50]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[317,51],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[317,52]},[]],"tag":"TypeVar","contents":"a"}]}]}]},190]}}},{"EDValue":{"edValueName":{"Ident":"takeEnd"},"edValueType":{"annotation":[{"start":[320,12],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[320,55]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[320,22],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[320,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[320,22],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[320,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[320,26],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[320,28]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[320,22],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[320,25]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[320,29],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[320,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[320,29],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[320,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[320,45],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[320,47]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[320,29],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[320,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[320,29],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[320,42]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[{"start":[320,43],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[320,44]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[320,48],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[320,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[320,48],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[320,53]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[320,54],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[320,55]},[]],"tag":"TypeVar","contents":"a"}]}]}]},193]}}},{"EDValue":{"edValueName":{"Ident":"takeWhile"},"edValueType":{"annotation":[{"start":[323,14],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[323,68]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[323,24],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[323,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[323,24],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[323,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[323,39],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[323,41]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[323,25],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[323,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[323,25],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[323,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[323,27],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[323,29]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[323,25],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[323,26]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[323,30],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[323,37]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]},{"annotation":[{"start":[323,42],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[323,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[323,42],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[323,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[323,58],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[323,60]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[323,42],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[323,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[323,42],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[323,55]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[{"start":[323,56],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[323,57]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[323,61],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[323,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[323,61],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[323,66]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[323,67],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[323,68]},[]],"tag":"TypeVar","contents":"a"}]}]}]},195]}}},{"EDValue":{"edValueName":{"Ident":"drop"},"edValueType":{"annotation":[{"start":[326,9],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[326,52]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[326,19],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[326,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[326,19],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[326,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[326,23],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[326,25]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[326,19],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[326,22]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[326,26],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[326,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[326,26],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[326,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[326,42],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[326,44]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[326,26],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[326,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[326,26],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[326,39]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[{"start":[326,40],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[326,41]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[326,45],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[326,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[326,45],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[326,50]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[326,51],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[326,52]},[]],"tag":"TypeVar","contents":"a"}]}]}]},139]}}},{"EDValue":{"edValueName":{"Ident":"dropEnd"},"edValueType":{"annotation":[{"start":[329,12],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[329,55]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[329,22],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[329,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[329,22],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[329,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[329,26],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[329,28]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[329,22],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[329,25]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[329,29],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[329,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[329,29],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[329,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[329,45],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[329,47]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[329,29],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[329,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[329,29],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[329,42]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[{"start":[329,43],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[329,44]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[329,48],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[329,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[329,48],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[329,53]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[329,54],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[329,55]},[]],"tag":"TypeVar","contents":"a"}]}]}]},142]}}},{"EDValue":{"edValueName":{"Ident":"dropWhile"},"edValueType":{"annotation":[{"start":[332,14],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[332,68]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[332,24],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[332,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[332,24],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[332,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[332,39],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[332,41]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[332,25],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[332,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[332,25],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[332,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[332,27],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[332,29]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[332,25],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[332,26]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[332,30],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[332,37]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]},{"annotation":[{"start":[332,42],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[332,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[332,42],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[332,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[332,58],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[332,60]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[332,42],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[332,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[332,42],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[332,55]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[{"start":[332,56],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[332,57]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[332,61],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[332,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[332,61],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[332,66]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[332,67],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[332,68]},[]],"tag":"TypeVar","contents":"a"}]}]}]},144]}}},{"EDValue":{"edValueName":{"Ident":"span"},"edValueType":{"annotation":[{"start":[336,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[339,42]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[337,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[339,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[337,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[339,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[338,3],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[338,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[337,7],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[337,19]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[337,7],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[337,19]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[337,9],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[337,11]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[337,7],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[337,8]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[337,12],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[337,19]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]},{"annotation":[{"start":[338,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[339,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[338,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[339,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[339,3],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[339,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[338,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[338,21]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[338,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[338,19]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[{"start":[338,20],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[338,21]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[339,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[339,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[339,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[339,7]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[339,8],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[339,23]},[]],"tag":"RCons","contents":["init",{"annotation":[{"start":[339,16],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[339,23]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[339,16],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[339,21]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[339,22],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[339,23]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[339,25],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[339,40]},[]],"tag":"RCons","contents":["rest",{"annotation":[{"start":[339,33],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[339,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[339,33],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[339,38]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[339,39],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[339,40]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[339,41],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[339,42]},[]],"tag":"REmpty"}]}]}]}]}]},188]}}},{"EDValue":{"edValueName":{"Ident":"nub"},"edValueType":{"annotation":[{"start":[342,8],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[342,61]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[342,18],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[342,61]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[342,18],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[342,23]},[]],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[{"start":[342,22],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[342,23]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[342,27],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[342,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[342,27],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[342,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[342,43],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[342,45]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[342,27],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[342,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[342,27],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[342,40]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[{"start":[342,41],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[342,42]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[342,46],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[342,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[342,46],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[342,59]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[{"start":[342,60],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[342,61]},[]],"tag":"TypeVar","contents":"a"}]}]}]},216]}}},{"EDValue":{"edValueName":{"Ident":"nubBy"},"edValueType":{"annotation":[{"start":[348,10],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[348,78]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[348,20],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[348,78]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[348,20],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[348,78]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[348,41],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[348,43]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[348,21],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[348,39]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[348,21],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[348,39]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[348,23],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[348,25]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[348,21],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[348,22]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[348,26],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[348,39]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[348,26],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[348,39]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[348,28],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[348,30]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[348,26],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[348,27]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[348,31],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[348,39]},[]],"tag":"TypeConstructor","contents":[["Data","Ordering"],"Ordering"]}]}]}]},{"annotation":[{"start":[348,44],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[348,78]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[348,44],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[348,78]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[348,60],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[348,62]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[348,44],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[348,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[348,44],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[348,57]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[{"start":[348,58],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[348,59]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[348,63],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[348,78]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[348,63],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[348,76]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[{"start":[348,77],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[348,78]},[]],"tag":"TypeVar","contents":"a"}]}]}]},218]}}},{"EDValue":{"edValueName":{"Ident":"nubEq"},"edValueType":{"annotation":[{"start":[345,10],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[345,62]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[345,20],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[345,62]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[345,20],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[345,24]},[]],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[{"start":[345,23],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[345,24]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[345,28],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[345,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[345,28],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[345,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[345,44],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[345,46]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[345,28],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[345,43]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[345,28],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[345,41]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[{"start":[345,42],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[345,43]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[345,47],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[345,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[345,47],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[345,60]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[{"start":[345,61],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[345,62]},[]],"tag":"TypeVar","contents":"a"}]}]}]},222]}}},{"EDValue":{"edValueName":{"Ident":"nubByEq"},"edValueType":{"annotation":[{"start":[351,12],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[351,79]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[351,22],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[351,79]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[351,22],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[351,79]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[351,42],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[351,44]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[351,23],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[351,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[351,23],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[351,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[351,25],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[351,27]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[351,23],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[351,24]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[351,28],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[351,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[351,28],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[351,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[351,30],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[351,32]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[351,28],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[351,29]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[351,33],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[351,40]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]}]},{"annotation":[{"start":[351,45],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[351,79]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[351,45],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[351,79]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[351,61],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[351,63]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[351,45],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[351,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[351,45],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[351,58]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[{"start":[351,59],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[351,60]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[351,64],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[351,79]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[351,64],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[351,77]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[{"start":[351,78],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[351,79]},[]],"tag":"TypeVar","contents":"a"}]}]}]},220]}}},{"EDValue":{"edValueName":{"Ident":"union"},"edValueType":{"annotation":[{"start":[354,10],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[354,81]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[354,20],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[354,81]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[354,20],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[354,24]},[]],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[{"start":[354,23],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[354,24]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[354,28],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[354,81]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[354,28],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[354,81]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[354,44],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[354,46]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[354,28],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[354,43]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[354,28],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[354,41]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[{"start":[354,42],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[354,43]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[354,47],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[354,81]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[354,47],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[354,81]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[354,63],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[354,65]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[354,47],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[354,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[354,47],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[354,60]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[{"start":[354,61],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[354,62]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[354,66],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[354,81]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[354,66],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[354,79]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[{"start":[354,80],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[354,81]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]},20]}}},{"EDValue":{"edValueName":{"Ident":"union'"},"edValueType":{"annotation":[{"start":[357,11],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[357,74]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[357,21],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[357,74]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[357,21],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[357,25]},[]],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[{"start":[357,24],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[357,25]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[357,29],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[357,74]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[357,29],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[357,74]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[357,45],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[357,47]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[357,29],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[357,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[357,29],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[357,42]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[{"start":[357,43],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[357,44]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[357,48],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[357,74]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[357,48],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[357,74]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[357,56],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[357,58]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[357,48],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[357,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[357,48],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[357,53]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[357,54],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[357,55]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[357,59],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[357,74]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[357,59],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[357,72]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[{"start":[357,73],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[357,74]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]},16]}}},{"EDValue":{"edValueName":{"Ident":"unionBy"},"edValueType":{"annotation":[{"start":[361,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[365,21]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[362,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[365,21]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[362,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[365,21]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[363,3],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[363,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[362,7],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[362,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[362,7],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[362,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[362,9],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[362,11]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[362,7],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[362,8]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[362,12],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[362,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[362,12],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[362,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[362,14],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[362,16]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[362,12],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[362,13]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[362,17],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[362,24]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]}]},{"annotation":[{"start":[363,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[365,21]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[363,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[365,21]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[364,3],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[364,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[363,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[363,21]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[363,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[363,19]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[{"start":[363,20],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[363,21]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[364,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[365,21]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[364,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[365,21]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[365,3],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[365,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[364,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[364,21]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[364,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[364,19]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[{"start":[364,20],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[364,21]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[365,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[365,21]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[365,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[365,19]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[{"start":[365,20],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[365,21]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]},18]}}},{"EDValue":{"edValueName":{"Ident":"unionBy'"},"edValueType":{"annotation":[{"start":[369,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[373,21]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[370,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[373,21]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[370,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[373,21]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[371,3],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[371,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[370,7],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[370,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[370,7],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[370,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[370,9],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[370,11]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[370,7],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[370,8]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[370,12],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[370,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[370,12],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[370,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[370,14],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[370,16]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[370,12],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[370,13]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[370,17],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[370,24]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]}]},{"annotation":[{"start":[371,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[373,21]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[371,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[373,21]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[372,3],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[372,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[371,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[371,21]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[371,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[371,19]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[{"start":[371,20],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[371,21]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[372,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[373,21]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[372,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[373,21]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[373,3],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[373,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[372,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[372,13]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[372,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[372,11]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[372,12],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[372,13]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[373,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[373,21]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[373,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[373,19]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[{"start":[373,20],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[373,21]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]},14]}}},{"EDValue":{"edValueName":{"Ident":"delete"},"edValueType":{"annotation":[{"start":[376,11],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[376,60]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[376,21],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[376,60]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[376,21],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[376,25]},[]],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[{"start":[376,24],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[376,25]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[376,29],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[376,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[376,29],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[376,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[376,31],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[376,33]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[376,29],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[376,30]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[376,34],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[376,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[376,34],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[376,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[376,50],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[376,52]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[376,34],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[376,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[376,34],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[376,47]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[{"start":[376,48],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[376,49]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[376,53],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[376,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[376,53],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[376,58]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[376,59],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[376,60]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]},131]}}},{"EDValue":{"edValueName":{"Ident":"deleteBy"},"edValueType":{"annotation":[{"start":[379,13],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[379,77]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[379,23],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[379,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[379,23],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[379,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[379,43],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[379,45]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[379,24],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[379,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[379,24],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[379,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[379,26],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[379,28]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[379,24],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[379,25]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[379,29],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[379,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[379,29],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[379,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[379,31],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[379,33]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[379,29],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[379,30]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[379,34],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[379,41]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]}]},{"annotation":[{"start":[379,46],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[379,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[379,46],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[379,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[379,48],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[379,50]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[379,46],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[379,47]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[379,51],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[379,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[379,51],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[379,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[379,67],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[379,69]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[379,51],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[379,66]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[379,51],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[379,64]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[{"start":[379,65],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[379,66]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[379,70],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[379,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[379,70],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[379,75]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[379,76],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[379,77]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]},135]}}},{"EDValue":{"edValueName":{"Ident":"difference"},"edValueType":{"annotation":[{"start":[382,15],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[382,78]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[382,25],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[382,78]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[382,25],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[382,29]},[]],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[{"start":[382,28],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[382,29]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[382,33],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[382,78]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[382,33],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[382,78]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[382,49],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[382,51]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[382,33],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[382,48]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[382,33],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[382,46]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[{"start":[382,47],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[382,48]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[382,52],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[382,78]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[382,52],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[382,78]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[382,68],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[382,70]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[382,52],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[382,67]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[382,52],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[382,65]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[{"start":[382,66],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[382,67]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[382,71],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[382,78]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[382,71],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[382,76]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[382,77],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[382,78]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]},137]}}},{"EDValue":{"edValueName":{"Ident":"difference'"},"edValueType":{"annotation":[{"start":[385,16],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[385,71]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[385,26],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[385,71]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[385,26],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[385,30]},[]],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[{"start":[385,29],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[385,30]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[385,34],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[385,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[385,34],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[385,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[385,50],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[385,52]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[385,34],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[385,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[385,34],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[385,47]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[{"start":[385,48],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[385,49]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[385,53],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[385,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[385,53],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[385,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[385,61],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[385,63]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[385,53],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[385,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[385,53],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[385,58]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[385,59],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[385,60]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[385,64],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[385,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[385,64],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[385,69]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[385,70],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[385,71]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]},88]}}},{"EDValue":{"edValueName":{"Ident":"intersect"},"edValueType":{"annotation":[{"start":[388,14],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[388,78]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[388,25],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[388,78]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[388,25],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[388,29]},[]],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[{"start":[388,28],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[388,29]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[388,33],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[388,78]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[388,33],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[388,78]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[388,49],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[388,51]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[388,33],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[388,48]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[388,33],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[388,46]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[{"start":[388,47],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[388,48]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[388,52],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[388,78]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[388,52],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[388,78]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[388,68],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[388,70]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[388,52],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[388,67]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[388,52],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[388,65]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[{"start":[388,66],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[388,67]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[388,71],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[388,78]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[388,71],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[388,76]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[388,77],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[388,78]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]},72]}}},{"EDValue":{"edValueName":{"Ident":"intersect'"},"edValueType":{"annotation":[{"start":[391,15],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[391,71]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[391,26],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[391,71]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[391,26],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[391,30]},[]],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[{"start":[391,29],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[391,30]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[391,34],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[391,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[391,34],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[391,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[391,50],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[391,52]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[391,34],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[391,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[391,34],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[391,47]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[{"start":[391,48],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[391,49]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[391,53],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[391,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[391,53],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[391,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[391,61],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[391,63]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[391,53],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[391,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[391,53],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[391,58]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[391,59],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[391,60]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[391,64],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[391,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[391,64],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[391,69]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[391,70],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[391,71]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]},70]}}},{"EDValue":{"edValueName":{"Ident":"intersectBy"},"edValueType":{"annotation":[{"start":[395,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[399,13]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[396,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[399,13]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[396,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[399,13]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[397,3],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[397,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[396,7],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[396,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[396,7],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[396,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[396,9],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[396,11]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[396,7],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[396,8]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[396,12],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[396,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[396,12],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[396,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[396,14],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[396,16]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[396,12],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[396,13]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[396,17],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[396,24]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]}]},{"annotation":[{"start":[397,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[399,13]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[397,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[399,13]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[398,3],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[398,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[397,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[397,21]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[397,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[397,19]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[{"start":[397,20],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[397,21]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[398,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[399,13]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[398,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[399,13]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[399,3],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[399,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[398,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[398,21]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[398,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[398,19]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[{"start":[398,20],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[398,21]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[399,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[399,13]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[399,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[399,11]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[399,12],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[399,13]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]},68]}}},{"EDValue":{"edValueName":{"Ident":"intersectBy'"},"edValueType":{"annotation":[{"start":[403,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[407,13]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[404,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[407,13]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[404,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[407,13]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[405,3],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[405,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[404,7],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[404,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[404,7],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[404,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[404,9],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[404,11]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[404,7],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[404,8]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[404,12],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[404,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[404,12],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[404,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[404,14],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[404,16]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[404,12],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[404,13]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[404,17],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[404,24]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]}]},{"annotation":[{"start":[405,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[407,13]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[405,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[407,13]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[406,3],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[406,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[405,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[405,21]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[405,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[405,19]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[{"start":[405,20],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[405,21]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[406,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[407,13]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[406,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[407,13]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[407,3],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[407,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[406,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[406,13]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[406,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[406,11]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[406,12],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[406,13]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[407,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[407,13]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[407,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[407,11]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[407,12],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[407,13]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]},66]}}},{"EDValue":{"edValueName":{"Ident":"zipWith"},"edValueType":{"annotation":[{"start":[413,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[417,21]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[413,13],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[417,21]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[413,13],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[417,21]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[414,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[417,21]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[414,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[417,21]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[415,3],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[415,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[414,7],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[414,18]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[414,7],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[414,18]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[414,9],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[414,11]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[414,7],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[414,8]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[414,12],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[414,18]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[414,12],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[414,18]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[414,14],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[414,16]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[414,12],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[414,13]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[414,17],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[414,18]},[]],"tag":"TypeVar","contents":"c"}]}]}]},{"annotation":[{"start":[415,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[417,21]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[415,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[417,21]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[416,3],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[416,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[415,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[415,21]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[415,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[415,19]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[{"start":[415,20],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[415,21]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[416,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[417,21]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[416,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[417,21]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[417,3],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[417,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[416,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[416,21]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[416,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[416,19]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[{"start":[416,20],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[416,21]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[417,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[417,21]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[417,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[417,19]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[{"start":[417,20],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[417,21]},[]],"tag":"TypeVar","contents":"c"}]}]}]}]},32]},33]},34]}}},{"EDValue":{"edValueName":{"Ident":"zipWithA"},"edValueType":{"annotation":[{"start":[422,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[427,25]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[422,13],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[427,25]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[422,13],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[427,25]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[422,13],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[427,25]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[423,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[427,25]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[423,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[423,19]},[]],"constraintClass":[["Control","Applicative"],"Applicative"],"constraintArgs":[{"annotation":[{"start":[423,18],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[423,19]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[424,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[427,25]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[424,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[427,25]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[425,3],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[425,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[424,7],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[424,20]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[424,7],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[424,20]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[424,9],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[424,11]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[424,7],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[424,8]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[424,12],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[424,20]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[424,12],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[424,20]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[424,14],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[424,16]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[424,12],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[424,13]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[424,17],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[424,20]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[424,17],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[424,18]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[424,19],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[424,20]},[]],"tag":"TypeVar","contents":"c"}]}]}]}]},{"annotation":[{"start":[425,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[427,25]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[425,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[427,25]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[426,3],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[426,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[425,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[425,21]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[425,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[425,19]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[{"start":[425,20],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[425,21]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[426,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[427,25]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[426,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[427,25]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[427,3],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[427,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[426,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[426,21]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[426,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[426,19]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[{"start":[426,20],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[426,21]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[427,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[427,25]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[427,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[427,7]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[427,9],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[427,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[427,9],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[427,22]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[{"start":[427,23],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[427,24]},[]],"tag":"TypeVar","contents":"c"}]}]}]}]}]}]},41]},42]},43]},44]}}},{"EDValue":{"edValueName":{"Ident":"zip"},"edValueType":{"annotation":[{"start":[430,8],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[430,83]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[430,15],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[430,83]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[430,20],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[430,83]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[430,20],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[430,83]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[430,36],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[430,38]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[430,20],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[430,35]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[430,20],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[430,33]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[{"start":[430,34],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[430,35]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[430,39],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[430,83]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[430,39],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[430,83]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[430,55],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[430,57]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[430,39],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[430,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[430,39],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[430,52]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[{"start":[430,53],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[430,54]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[430,58],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[430,83]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[430,58],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[430,71]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[{"start":[430,73],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[430,82]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[430,73],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[430,80]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[430,73],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[430,78]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[430,79],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[430,80]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[430,81],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[430,82]},[]],"tag":"TypeVar","contents":"b"}]}]}]}]},28]},29]}}},{"EDValue":{"edValueName":{"Ident":"unzip"},"edValueType":{"annotation":[{"start":[433,10],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[433,92]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[433,17],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[433,92]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[433,22],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[433,92]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[433,22],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[433,92]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[433,48],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[433,50]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[433,22],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[433,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[433,22],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[433,35]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[{"start":[433,37],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[433,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[433,37],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[433,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[433,37],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[433,42]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[433,43],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[433,44]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[433,45],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[433,46]},[]],"tag":"TypeVar","contents":"b"}]}]}]},{"annotation":[{"start":[433,51],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[433,92]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[433,51],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[433,74]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[433,51],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[433,56]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[433,58],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[433,73]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[433,58],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[433,71]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[{"start":[433,72],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[433,73]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[433,76],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[433,91]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[433,76],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[433,89]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[{"start":[433,90],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[433,91]},[]],"tag":"TypeVar","contents":"b"}]}]}]},22]},23]}}},{"EDValue":{"edValueName":{"Ident":"foldM"},"edValueType":{"annotation":[{"start":[436,10],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[436,81]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[436,17],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[436,81]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[436,17],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[436,81]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[436,24],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[436,81]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[436,24],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[436,31]},[]],"constraintClass":[["Control","Monad"],"Monad"],"constraintArgs":[{"annotation":[{"start":[436,30],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[436,31]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[436,35],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[436,81]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[436,35],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[436,81]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[436,51],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[436,53]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[436,36],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[436,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[436,36],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[436,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[436,38],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[436,40]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[436,36],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[436,37]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[436,41],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[436,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[436,41],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[436,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[436,43],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[436,45]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[436,41],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[436,42]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[436,46],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[436,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[436,46],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[436,47]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[436,48],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[436,49]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]},{"annotation":[{"start":[436,54],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[436,81]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[436,54],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[436,81]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[436,56],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[436,58]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[436,54],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[436,55]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[436,59],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[436,81]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[436,59],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[436,81]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[436,75],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[436,77]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[436,59],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[436,74]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[436,59],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[436,72]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[{"start":[436,73],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[436,74]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[436,78],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[436,81]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[436,78],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[436,79]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[436,80],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[436,81]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]}]},161]},162]},163]}}},{"EDValue":{"edValueName":{"Ident":"foldRecM"},"edValueType":{"annotation":[{"start":[439,13],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[439,87]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[439,20],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[439,87]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[439,20],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[439,87]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[439,27],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[439,87]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[439,27],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[439,37]},[]],"constraintClass":[["Control","Monad","Rec","Class"],"MonadRec"],"constraintArgs":[{"annotation":[{"start":[439,36],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[439,37]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[439,41],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[439,87]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[439,41],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[439,87]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[439,57],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[439,59]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[439,42],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[439,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[439,42],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[439,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[439,44],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[439,46]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[439,42],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[439,43]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[439,47],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[439,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[439,47],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[439,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[439,49],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[439,51]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[439,47],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[439,48]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[439,52],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[439,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[439,52],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[439,53]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[439,54],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[439,55]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]},{"annotation":[{"start":[439,60],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[439,87]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[439,60],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[439,87]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[439,62],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[439,64]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[439,60],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[439,61]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[439,65],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[439,87]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[439,65],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[439,87]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[439,81],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[439,83]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[439,65],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[439,80]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[439,65],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[439,78]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[{"start":[439,79],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[439,80]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[439,84],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[439,87]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[439,84],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[439,85]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[439,86],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[439,87]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]}]},167]},168]},169]}}},{"EDValue":{"edValueName":{"Ident":"unsafeIndex"},"edValueType":{"annotation":[{"start":[442,16],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[442,64]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[442,26],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[442,64]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[442,26],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[442,33]},[]],"constraintClass":[["Prim"],"Partial"],"constraintArgs":[],"constraintData":null},{"annotation":[{"start":[442,37],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[442,64]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[442,37],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[442,64]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[442,53],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[442,55]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[442,37],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[442,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[442,37],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[442,50]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[{"start":[442,51],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[442,52]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[442,56],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[442,64]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[442,56],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[442,64]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[442,60],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[442,62]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[442,56],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[442,59]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[442,63],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[442,64]},[]],"tag":"TypeVar","contents":"a"}]}]}]},239]}}}],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/NonEmpty.purs","end":[443,37]}}
diff --git a/tests/purs/publish/basic-example/output/Data.Array.Partial/docs.json b/tests/purs/publish/basic-example/output/Data.Array.Partial/docs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.Array.Partial/docs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"reExports":[],"name":"Data.Array.Partial","comments":"Partial helper functions for working with immutable arrays.\n","declarations":[{"children":[],"comments":"Get the first element of a non-empty array.\n\nRunning time: `O(1)`.\n","title":"head","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Prim"],"Partial"],"constraintArgs":[],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},null]}},"sourceSpan":{"start":[16,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/Partial.purs","end":[16,42]}},{"children":[],"comments":"Get all but the first element of a non-empty array.\n\nRunning time: `O(n)`, where `n` is the length of the array.\n","title":"tail","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Prim"],"Partial"],"constraintArgs":[],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]},null]}},"sourceSpan":{"start":[22,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/Partial.purs","end":[22,48]}},{"children":[],"comments":"Get the last element of a non-empty array.\n\nRunning time: `O(1)`.\n","title":"last","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Prim"],"Partial"],"constraintArgs":[],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},null]}},"sourceSpan":{"start":[28,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/Partial.purs","end":[28,42]}},{"children":[],"comments":"Get all but the last element of a non-empty array.\n\nRunning time: `O(n)`, where `n` is the length of the array.\n","title":"init","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Prim"],"Partial"],"constraintArgs":[],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]},null]}},"sourceSpan":{"start":[34,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/Partial.purs","end":[34,48]}}]}
diff --git a/tests/purs/publish/basic-example/output/Data.Array.Partial/externs.json b/tests/purs/publish/basic-example/output/Data.Array.Partial/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.Array.Partial/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Data","Array","Partial"],"efExports":[{"ValueRef":[{"start":[2,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/Partial.purs","end":[35,37]},{"Ident":"head"}]},{"ValueRef":[{"start":[2,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/Partial.purs","end":[35,37]},{"Ident":"tail"}]},{"ValueRef":[{"start":[2,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/Partial.purs","end":[35,37]},{"Ident":"last"}]},{"ValueRef":[{"start":[2,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/Partial.purs","end":[35,37]},{"Ident":"init"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Prelude"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Data","Array"],"eiImportType":{"Explicit":[{"ValueRef":[{"start":[11,20],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/Partial.purs","end":[11,26]},{"Ident":"length"}]},{"ValueRef":[{"start":[11,28],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/Partial.purs","end":[11,33]},{"Ident":"slice"}]},{"ValueRef":[{"start":[11,35],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/Partial.purs","end":[11,46]},{"Ident":"unsafeIndex"}]}]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDValue":{"edValueName":{"Ident":"head"},"edValueType":{"annotation":[{"start":[16,9],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/Partial.purs","end":[16,42]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[16,19],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/Partial.purs","end":[16,42]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[16,19],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/Partial.purs","end":[16,26]},[]],"constraintClass":[["Prim"],"Partial"],"constraintArgs":[],"constraintData":null},{"annotation":[{"start":[16,30],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/Partial.purs","end":[16,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[16,30],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/Partial.purs","end":[16,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[16,38],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/Partial.purs","end":[16,40]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[16,30],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/Partial.purs","end":[16,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[16,30],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/Partial.purs","end":[16,35]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[16,36],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/Partial.purs","end":[16,37]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[16,41],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/Partial.purs","end":[16,42]},[]],"tag":"TypeVar","contents":"a"}]}]},11]}}},{"EDValue":{"edValueName":{"Ident":"tail"},"edValueType":{"annotation":[{"start":[22,9],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/Partial.purs","end":[22,48]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[22,19],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/Partial.purs","end":[22,48]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[22,19],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/Partial.purs","end":[22,26]},[]],"constraintClass":[["Prim"],"Partial"],"constraintArgs":[],"constraintData":null},{"annotation":[{"start":[22,30],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/Partial.purs","end":[22,48]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[22,30],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/Partial.purs","end":[22,48]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[22,38],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/Partial.purs","end":[22,40]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[22,30],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/Partial.purs","end":[22,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[22,30],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/Partial.purs","end":[22,35]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[22,36],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/Partial.purs","end":[22,37]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[22,41],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/Partial.purs","end":[22,48]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[22,41],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/Partial.purs","end":[22,46]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[22,47],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/Partial.purs","end":[22,48]},[]],"tag":"TypeVar","contents":"a"}]}]}]},0]}}},{"EDValue":{"edValueName":{"Ident":"last"},"edValueType":{"annotation":[{"start":[28,9],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/Partial.purs","end":[28,42]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[28,19],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/Partial.purs","end":[28,42]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[28,19],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/Partial.purs","end":[28,26]},[]],"constraintClass":[["Prim"],"Partial"],"constraintArgs":[],"constraintData":null},{"annotation":[{"start":[28,30],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/Partial.purs","end":[28,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[28,30],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/Partial.purs","end":[28,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[28,38],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/Partial.purs","end":[28,40]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[28,30],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/Partial.purs","end":[28,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[28,30],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/Partial.purs","end":[28,35]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[28,36],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/Partial.purs","end":[28,37]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[28,41],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/Partial.purs","end":[28,42]},[]],"tag":"TypeVar","contents":"a"}]}]},4]}}},{"EDValue":{"edValueName":{"Ident":"init"},"edValueType":{"annotation":[{"start":[34,9],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/Partial.purs","end":[34,48]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[34,19],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/Partial.purs","end":[34,48]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[34,19],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/Partial.purs","end":[34,26]},[]],"constraintClass":[["Prim"],"Partial"],"constraintArgs":[],"constraintData":null},{"annotation":[{"start":[34,30],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/Partial.purs","end":[34,48]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[34,30],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/Partial.purs","end":[34,48]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[34,38],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/Partial.purs","end":[34,40]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[34,30],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/Partial.purs","end":[34,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[34,30],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/Partial.purs","end":[34,35]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[34,36],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/Partial.purs","end":[34,37]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[34,41],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/Partial.purs","end":[34,48]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[34,41],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/Partial.purs","end":[34,46]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[34,47],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/Partial.purs","end":[34,48]},[]],"tag":"TypeVar","contents":"a"}]}]}]},7]}}}],"efSourceSpan":{"start":[2,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/Partial.purs","end":[35,37]}}
diff --git a/tests/purs/publish/basic-example/output/Data.Array.ST.Iterator/docs.json b/tests/purs/publish/basic-example/output/Data.Array.ST.Iterator/docs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.Array.ST.Iterator/docs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"reExports":[],"name":"Data.Array.ST.Iterator","comments":null,"declarations":[{"children":[],"comments":"This type provides a slightly easier way of iterating over an array's\nelements in an STArray computation, without having to keep track of\nindices.\n","title":"Iterator","info":{"declType":"data","dataDeclType":"data","typeArguments":[["r",null],["a",null]]},"sourceSpan":{"start":[25,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[25,60]}},{"children":[],"comments":"Make an Iterator given an indexing function into an array (or anything\nelse). If `xs :: Array a`, the standard way to create an iterator over\n`xs` is to use `iterator (xs !! _)`, where `(!!)` comes from `Data.Array`.\n","title":"iterator","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["r",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Monad","ST","Internal"],"ST"]},{"annotation":[],"tag":"TypeVar","contents":"r"}]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","ST","Iterator"],"Iterator"]},{"annotation":[],"tag":"TypeVar","contents":"r"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]}]},null]},null]}},"sourceSpan":{"start":[30,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[30,64]}},{"children":[],"comments":"Perform an action once for each item left in an iterator. If the action\nitself also advances the same iterator, `iterate` will miss those items\nout.\n","title":"iterate","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["r",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","ST","Iterator"],"Iterator"]},{"annotation":[],"tag":"TypeVar","contents":"r"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Monad","ST","Internal"],"ST"]},{"annotation":[],"tag":"TypeVar","contents":"r"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Monad","ST","Internal"],"ST"]},{"annotation":[],"tag":"TypeVar","contents":"r"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}]},null]},null]}},"sourceSpan":{"start":[37,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[37,69]}},{"children":[],"comments":"Get the next item out of an iterator, advancing it. Returns Nothing if the\nIterator is exhausted.\n","title":"next","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["r",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","ST","Iterator"],"Iterator"]},{"annotation":[],"tag":"TypeVar","contents":"r"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Monad","ST","Internal"],"ST"]},{"annotation":[],"tag":"TypeVar","contents":"r"}]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]}]},null]},null]}},"sourceSpan":{"start":[48,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[48,51]}},{"children":[],"comments":"Get the next item out of an iterator without advancing it.\n","title":"peek","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["r",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","ST","Iterator"],"Iterator"]},{"annotation":[],"tag":"TypeVar","contents":"r"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Monad","ST","Internal"],"ST"]},{"annotation":[],"tag":"TypeVar","contents":"r"}]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]}]},null]},null]}},"sourceSpan":{"start":[55,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[55,51]}},{"children":[],"comments":"Check whether an iterator has been exhausted.\n","title":"exhausted","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["r",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","ST","Iterator"],"Iterator"]},{"annotation":[],"tag":"TypeVar","contents":"r"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Monad","ST","Internal"],"ST"]},{"annotation":[],"tag":"TypeVar","contents":"r"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]},null]},null]}},"sourceSpan":{"start":[61,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[61,54]}},{"children":[],"comments":"Extract elements from an iterator and push them on to an STArray for as\nlong as those elements satisfy a given predicate.\n","title":"pushWhile","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["r",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","ST","Iterator"],"Iterator"]},{"annotation":[],"tag":"TypeVar","contents":"r"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","ST"],"STArray"]},{"annotation":[],"tag":"TypeVar","contents":"r"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Monad","ST","Internal"],"ST"]},{"annotation":[],"tag":"TypeVar","contents":"r"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}]}]},null]},null]}},"sourceSpan":{"start":[66,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[66,84]}},{"children":[],"comments":"Push the entire remaining contents of an iterator onto an STArray.\n","title":"pushAll","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["r",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","ST","Iterator"],"Iterator"]},{"annotation":[],"tag":"TypeVar","contents":"r"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","ST"],"STArray"]},{"annotation":[],"tag":"TypeVar","contents":"r"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Monad","ST","Internal"],"ST"]},{"annotation":[],"tag":"TypeVar","contents":"r"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}]},null]},null]}},"sourceSpan":{"start":[79,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[79,64]}}]}
diff --git a/tests/purs/publish/basic-example/output/Data.Array.ST.Iterator/externs.json b/tests/purs/publish/basic-example/output/Data.Array.ST.Iterator/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.Array.ST.Iterator/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Data","Array","ST","Iterator"],"efExports":[{"TypeRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[80,33]},"Iterator",[]]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[80,33]},{"Ident":"iterator"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[80,33]},{"Ident":"iterate"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[80,33]},{"Ident":"next"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[80,33]},{"Ident":"peek"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[80,33]},{"Ident":"exhausted"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[80,33]},{"Ident":"pushWhile"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[80,33]},{"Ident":"pushAll"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Prelude"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Control","Monad","ST"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[13,26],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[13,28]},"ST",[]]}]},"eiImportedAs":null},{"eiModule":["Control","Monad","ST"],"eiImportType":{"Implicit":[]},"eiImportedAs":["ST"]},{"eiModule":["Control","Monad","ST","Ref"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[15,30],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[15,35]},"STRef",[]]}]},"eiImportedAs":null},{"eiModule":["Control","Monad","ST","Ref"],"eiImportType":{"Implicit":[]},"eiImportedAs":["STRef"]},{"eiModule":["Data","Array","ST"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[17,23],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[17,30]},"STArray",[]]}]},"eiImportedAs":null},{"eiModule":["Data","Array","ST"],"eiImportType":{"Implicit":[]},"eiImportedAs":["STA"]},{"eiModule":["Data","Maybe"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[20,20],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[20,29]},"Maybe",null]},{"ValueRef":[{"start":[20,31],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[20,40]},{"Ident":"isNothing"}]}]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDType":{"edTypeName":"Iterator","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[25,48],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[25,53]},[]],"tag":"NamedKind","contents":[["Control","Monad","ST","Internal"],"Region"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[25,38],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[25,43]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]},"edTypeDeclarationKind":{"DataType":{"args":[["r",{"annotation":[{"start":[25,48],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[25,53]},[]],"tag":"NamedKind","contents":[["Control","Monad","ST","Internal"],"Region"]}],["a",{"annotation":[{"start":[25,38],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[25,43]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]],"ctors":[["Iterator",[{"annotation":[{"start":[25,31],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[25,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[25,31],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[25,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[25,35],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[25,37]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[25,31],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[25,34]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[25,38],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[25,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[25,38],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[25,43]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[25,44],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[25,45]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[25,48],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[25,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[25,48],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[25,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[25,48],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[25,53]},[]],"tag":"TypeConstructor","contents":[["Control","Monad","ST","Internal"],"STRef"]},{"annotation":[{"start":[25,54],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[25,55]},[]],"tag":"TypeVar","contents":"r"}]},{"annotation":[{"start":[25,56],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[25,59]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]]]}}}},{"EDValue":{"edValueName":{"Ident":"iterator"},"edValueType":{"annotation":[{"start":[30,13],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[30,64]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[30,20],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[30,64]},[]],"tag":"ForAll","contents":["r",{"annotation":[{"start":[30,25],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[30,64]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[30,25],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[30,64]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[30,42],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[30,44]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[30,26],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[30,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[30,26],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[30,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[30,30],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[30,32]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[30,26],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[30,29]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[30,33],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[30,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[30,33],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[30,38]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[30,39],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[30,40]},[]],"tag":"TypeVar","contents":"a"}]}]}]},{"annotation":[{"start":[30,45],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[30,64]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[30,45],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[30,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[30,45],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[30,47]},[]],"tag":"TypeConstructor","contents":[["Control","Monad","ST","Internal"],"ST"]},{"annotation":[{"start":[30,48],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[30,49]},[]],"tag":"TypeVar","contents":"r"}]},{"annotation":[{"start":[30,51],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[30,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[30,51],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[30,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[30,51],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[30,59]},[]],"tag":"TypeConstructor","contents":[["Data","Array","ST","Iterator"],"Iterator"]},{"annotation":[{"start":[30,60],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[30,61]},[]],"tag":"TypeVar","contents":"r"}]},{"annotation":[{"start":[30,62],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[30,63]},[]],"tag":"TypeVar","contents":"a"}]}]}]},28]},29]}}},{"EDValue":{"edValueName":{"Ident":"iterate"},"edValueType":{"annotation":[{"start":[37,12],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[37,69]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[37,19],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[37,69]},[]],"tag":"ForAll","contents":["r",{"annotation":[{"start":[37,24],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[37,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[37,24],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[37,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[37,37],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[37,39]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[37,24],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[37,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[37,24],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[37,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[37,24],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[37,32]},[]],"tag":"TypeConstructor","contents":[["Data","Array","ST","Iterator"],"Iterator"]},{"annotation":[{"start":[37,33],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[37,34]},[]],"tag":"TypeVar","contents":"r"}]},{"annotation":[{"start":[37,35],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[37,36]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[37,40],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[37,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[37,40],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[37,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[37,57],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[37,59]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[37,41],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[37,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[37,41],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[37,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[37,43],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[37,45]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[37,41],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[37,42]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[37,46],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[37,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[37,46],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[37,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[37,46],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[37,48]},[]],"tag":"TypeConstructor","contents":[["Control","Monad","ST","Internal"],"ST"]},{"annotation":[{"start":[37,49],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[37,50]},[]],"tag":"TypeVar","contents":"r"}]},{"annotation":[{"start":[37,51],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[37,55]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}]},{"annotation":[{"start":[37,60],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[37,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[37,60],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[37,64]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[37,60],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[37,62]},[]],"tag":"TypeConstructor","contents":[["Control","Monad","ST","Internal"],"ST"]},{"annotation":[{"start":[37,63],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[37,64]},[]],"tag":"TypeVar","contents":"r"}]},{"annotation":[{"start":[37,65],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[37,69]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}]},34]},35]}}},{"EDValue":{"edValueName":{"Ident":"next"},"edValueType":{"annotation":[{"start":[48,9],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[48,51]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[48,16],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[48,51]},[]],"tag":"ForAll","contents":["r",{"annotation":[{"start":[48,21],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[48,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[48,21],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[48,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[48,34],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[48,36]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[48,21],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[48,33]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[48,21],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[48,31]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[48,21],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[48,29]},[]],"tag":"TypeConstructor","contents":[["Data","Array","ST","Iterator"],"Iterator"]},{"annotation":[{"start":[48,30],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[48,31]},[]],"tag":"TypeVar","contents":"r"}]},{"annotation":[{"start":[48,32],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[48,33]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[48,37],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[48,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[48,37],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[48,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[48,37],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[48,39]},[]],"tag":"TypeConstructor","contents":[["Control","Monad","ST","Internal"],"ST"]},{"annotation":[{"start":[48,40],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[48,41]},[]],"tag":"TypeVar","contents":"r"}]},{"annotation":[{"start":[48,43],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[48,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[48,43],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[48,48]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[48,49],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[48,50]},[]],"tag":"TypeVar","contents":"a"}]}]}]},6]},7]}}},{"EDValue":{"edValueName":{"Ident":"peek"},"edValueType":{"annotation":[{"start":[55,9],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[55,51]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[55,16],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[55,51]},[]],"tag":"ForAll","contents":["r",{"annotation":[{"start":[55,21],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[55,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,21],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[55,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,34],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[55,36]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[55,21],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[55,33]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,21],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[55,31]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,21],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[55,29]},[]],"tag":"TypeConstructor","contents":[["Data","Array","ST","Iterator"],"Iterator"]},{"annotation":[{"start":[55,30],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[55,31]},[]],"tag":"TypeVar","contents":"r"}]},{"annotation":[{"start":[55,32],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[55,33]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[55,37],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[55,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,37],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[55,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,37],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[55,39]},[]],"tag":"TypeConstructor","contents":[["Control","Monad","ST","Internal"],"ST"]},{"annotation":[{"start":[55,40],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[55,41]},[]],"tag":"TypeVar","contents":"r"}]},{"annotation":[{"start":[55,43],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[55,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,43],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[55,48]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[55,49],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[55,50]},[]],"tag":"TypeVar","contents":"a"}]}]}]},0]},1]}}},{"EDValue":{"edValueName":{"Ident":"exhausted"},"edValueType":{"annotation":[{"start":[61,14],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[61,54]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[61,21],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[61,54]},[]],"tag":"ForAll","contents":["r",{"annotation":[{"start":[61,26],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[61,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[61,26],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[61,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[61,39],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[61,41]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[61,26],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[61,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[61,26],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[61,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[61,26],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[61,34]},[]],"tag":"TypeConstructor","contents":[["Data","Array","ST","Iterator"],"Iterator"]},{"annotation":[{"start":[61,35],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[61,36]},[]],"tag":"TypeVar","contents":"r"}]},{"annotation":[{"start":[61,37],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[61,38]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[61,42],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[61,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[61,42],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[61,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[61,42],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[61,44]},[]],"tag":"TypeConstructor","contents":[["Control","Monad","ST","Internal"],"ST"]},{"annotation":[{"start":[61,45],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[61,46]},[]],"tag":"TypeVar","contents":"r"}]},{"annotation":[{"start":[61,47],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[61,54]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]},46]},47]}}},{"EDValue":{"edValueName":{"Ident":"pushWhile"},"edValueType":{"annotation":[{"start":[66,14],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[66,84]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[66,21],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[66,84]},[]],"tag":"ForAll","contents":["r",{"annotation":[{"start":[66,26],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[66,84]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[66,26],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[66,84]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[66,41],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[66,43]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[66,27],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[66,39]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[66,27],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[66,39]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[66,29],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[66,31]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[66,27],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[66,28]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[66,32],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[66,39]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]},{"annotation":[{"start":[66,44],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[66,84]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[66,44],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[66,84]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[66,57],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[66,59]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[66,44],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[66,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[66,44],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[66,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[66,44],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[66,52]},[]],"tag":"TypeConstructor","contents":[["Data","Array","ST","Iterator"],"Iterator"]},{"annotation":[{"start":[66,53],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[66,54]},[]],"tag":"TypeVar","contents":"r"}]},{"annotation":[{"start":[66,55],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[66,56]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[66,60],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[66,84]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[66,60],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[66,84]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[66,72],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[66,74]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[66,60],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[66,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[66,60],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[66,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[66,60],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[66,67]},[]],"tag":"TypeConstructor","contents":[["Data","Array","ST"],"STArray"]},{"annotation":[{"start":[66,68],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[66,69]},[]],"tag":"TypeVar","contents":"r"}]},{"annotation":[{"start":[66,70],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[66,71]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[66,75],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[66,84]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[66,75],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[66,79]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[66,75],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[66,77]},[]],"tag":"TypeConstructor","contents":[["Control","Monad","ST","Internal"],"ST"]},{"annotation":[{"start":[66,78],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[66,79]},[]],"tag":"TypeVar","contents":"r"}]},{"annotation":[{"start":[66,80],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[66,84]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}]}]},12]},13]}}},{"EDValue":{"edValueName":{"Ident":"pushAll"},"edValueType":{"annotation":[{"start":[79,12],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[79,64]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[79,19],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[79,64]},[]],"tag":"ForAll","contents":["r",{"annotation":[{"start":[79,24],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[79,64]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[79,24],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[79,64]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[79,37],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[79,39]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[79,24],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[79,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[79,24],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[79,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[79,24],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[79,32]},[]],"tag":"TypeConstructor","contents":[["Data","Array","ST","Iterator"],"Iterator"]},{"annotation":[{"start":[79,33],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[79,34]},[]],"tag":"TypeVar","contents":"r"}]},{"annotation":[{"start":[79,35],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[79,36]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[79,40],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[79,64]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[79,40],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[79,64]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[79,52],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[79,54]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[79,40],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[79,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[79,40],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[79,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[79,40],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[79,47]},[]],"tag":"TypeConstructor","contents":[["Data","Array","ST"],"STArray"]},{"annotation":[{"start":[79,48],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[79,49]},[]],"tag":"TypeVar","contents":"r"}]},{"annotation":[{"start":[79,50],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[79,51]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[79,55],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[79,64]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[79,55],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[79,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[79,55],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[79,57]},[]],"tag":"TypeConstructor","contents":[["Control","Monad","ST","Internal"],"ST"]},{"annotation":[{"start":[79,58],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[79,59]},[]],"tag":"TypeVar","contents":"r"}]},{"annotation":[{"start":[79,60],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[79,64]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}]},24]},25]}}}],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Iterator.purs","end":[80,33]}}
diff --git a/tests/purs/publish/basic-example/output/Data.Array.ST.Partial/docs.json b/tests/purs/publish/basic-example/output/Data.Array.ST.Partial/docs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.Array.ST.Partial/docs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"reExports":[],"name":"Data.Array.ST.Partial","comments":"Partial functions for working with mutable arrays using the `ST` effect.\n\nThis module is particularly helpful when performance is very important.\n","declarations":[{"children":[],"comments":"Read the value at the specified index in a mutable array.\n","title":"peek","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["h",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Prim"],"Partial"],"constraintArgs":[],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","ST"],"STArray"]},{"annotation":[],"tag":"TypeVar","contents":"h"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Monad","ST","Internal"],"ST"]},{"annotation":[],"tag":"TypeVar","contents":"h"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]}]},null]},null]}},"sourceSpan":{"start":[15,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Partial.purs","end":[20,12]}},{"children":[],"comments":"Change the value at the specified index in a mutable array.\n","title":"poke","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["h",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Prim"],"Partial"],"constraintArgs":[],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","ST"],"STArray"]},{"annotation":[],"tag":"TypeVar","contents":"h"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Monad","ST","Internal"],"ST"]},{"annotation":[],"tag":"TypeVar","contents":"h"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}]}]}]},null]},null]}},"sourceSpan":{"start":[26,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Partial.purs","end":[32,15]}}]}
diff --git a/tests/purs/publish/basic-example/output/Data.Array.ST.Partial/externs.json b/tests/purs/publish/basic-example/output/Data.Array.ST.Partial/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.Array.ST.Partial/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Data","Array","ST","Partial"],"efExports":[{"ValueRef":[{"start":[5,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Partial.purs","end":[40,15]},{"Ident":"peek"}]},{"ValueRef":[{"start":[5,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Partial.purs","end":[40,15]},{"Ident":"poke"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Control","Monad","ST"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[10,26],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Partial.purs","end":[10,28]},"ST",[]]}]},"eiImportedAs":null},{"eiModule":["Data","Array","ST"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[11,23],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Partial.purs","end":[11,30]},"STArray",[]]}]},"eiImportedAs":null},{"eiModule":["Data","Unit"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[12,19],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Partial.purs","end":[12,23]},"Unit",[]]}]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDValue":{"edValueName":{"Ident":"peek"},"edValueType":{"annotation":[{"start":[16,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Partial.purs","end":[20,12]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[16,13],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Partial.purs","end":[20,12]},[]],"tag":"ForAll","contents":["h",{"annotation":[{"start":[17,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Partial.purs","end":[20,12]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[17,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Partial.purs","end":[17,13]},[]],"constraintClass":[["Prim"],"Partial"],"constraintArgs":[],"constraintData":null},{"annotation":[{"start":[18,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Partial.purs","end":[20,12]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Partial.purs","end":[20,12]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[19,3],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Partial.purs","end":[19,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[18,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Partial.purs","end":[18,9]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[19,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Partial.purs","end":[20,12]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[19,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Partial.purs","end":[20,12]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[20,3],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Partial.purs","end":[20,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[19,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Partial.purs","end":[19,17]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[19,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Partial.purs","end":[19,15]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[19,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Partial.purs","end":[19,13]},[]],"tag":"TypeConstructor","contents":[["Data","Array","ST"],"STArray"]},{"annotation":[{"start":[19,14],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Partial.purs","end":[19,15]},[]],"tag":"TypeVar","contents":"h"}]},{"annotation":[{"start":[19,16],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Partial.purs","end":[19,17]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[20,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Partial.purs","end":[20,12]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[20,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Partial.purs","end":[20,10]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[20,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Partial.purs","end":[20,8]},[]],"tag":"TypeConstructor","contents":[["Control","Monad","ST","Internal"],"ST"]},{"annotation":[{"start":[20,9],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Partial.purs","end":[20,10]},[]],"tag":"TypeVar","contents":"h"}]},{"annotation":[{"start":[20,11],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Partial.purs","end":[20,12]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]},6]},7]}}},{"EDValue":{"edValueName":{"Ident":"poke"},"edValueType":{"annotation":[{"start":[27,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Partial.purs","end":[32,15]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[27,13],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Partial.purs","end":[32,15]},[]],"tag":"ForAll","contents":["h",{"annotation":[{"start":[28,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Partial.purs","end":[32,15]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[28,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Partial.purs","end":[28,13]},[]],"constraintClass":[["Prim"],"Partial"],"constraintArgs":[],"constraintData":null},{"annotation":[{"start":[29,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Partial.purs","end":[32,15]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[29,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Partial.purs","end":[32,15]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[30,3],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Partial.purs","end":[30,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[29,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Partial.purs","end":[29,9]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[30,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Partial.purs","end":[32,15]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[30,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Partial.purs","end":[32,15]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[31,3],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Partial.purs","end":[31,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[30,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Partial.purs","end":[30,7]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[31,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Partial.purs","end":[32,15]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[31,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Partial.purs","end":[32,15]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[32,3],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Partial.purs","end":[32,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[31,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Partial.purs","end":[31,17]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[31,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Partial.purs","end":[31,15]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[31,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Partial.purs","end":[31,13]},[]],"tag":"TypeConstructor","contents":[["Data","Array","ST"],"STArray"]},{"annotation":[{"start":[31,14],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Partial.purs","end":[31,15]},[]],"tag":"TypeVar","contents":"h"}]},{"annotation":[{"start":[31,16],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Partial.purs","end":[31,17]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[32,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Partial.purs","end":[32,15]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[32,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Partial.purs","end":[32,10]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[32,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Partial.purs","end":[32,8]},[]],"tag":"TypeConstructor","contents":[["Control","Monad","ST","Internal"],"ST"]},{"annotation":[{"start":[32,9],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Partial.purs","end":[32,10]},[]],"tag":"TypeVar","contents":"h"}]},{"annotation":[{"start":[32,11],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Partial.purs","end":[32,15]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}]}]}]},0]},1]}}}],"efSourceSpan":{"start":[5,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST/Partial.purs","end":[40,15]}}
diff --git a/tests/purs/publish/basic-example/output/Data.Array.ST/docs.json b/tests/purs/publish/basic-example/output/Data.Array.ST/docs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.Array.ST/docs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"reExports":[],"name":"Data.Array.ST","comments":"Helper functions for working with mutable arrays using the `ST` effect.\n\nThis module can be used when performance is important and mutation is a local effect.\n","declarations":[{"children":[],"comments":"A reference to a mutable array.\n\nThe first type parameter represents the memory region which the array belongs to.\nThe second type parameter defines the type of elements of the mutable array.\n\nThe runtime representation of a value of type `STArray h a` is the same as that of `Array a`,\nexcept that mutation is allowed.\n","title":"STArray","info":{"kind":{"annotation":[],"tag":"FunKind","contents":[{"annotation":[],"tag":"NamedKind","contents":[["Control","Monad","ST","Internal"],"Region"]},{"annotation":[],"tag":"FunKind","contents":[{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]},"declType":"externData"},"sourceSpan":{"start":[39,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[39,54]}},{"children":[],"comments":"An element and its index.\n","title":"Assoc","info":{"arguments":[["a",null]],"declType":"typeSynonym","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"RCons","contents":["value",{"annotation":[],"tag":"TypeVar","contents":"a"},{"annotation":[],"tag":"RCons","contents":["index",{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]},{"annotation":[],"tag":"REmpty"}]}]}]}},"sourceSpan":{"start":[42,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[42,44]}},{"children":[],"comments":"Perform an effect requiring a mutable array on a copy of an immutable array,\nsafely returning the result as an immutable array.\n","title":"withArray","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["h",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","ST"],"STArray"]},{"annotation":[],"tag":"TypeVar","contents":"h"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Monad","ST","Internal"],"ST"]},{"annotation":[],"tag":"TypeVar","contents":"h"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Monad","ST","Internal"],"ST"]},{"annotation":[],"tag":"TypeVar","contents":"h"}]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]}]}]},null]},null]},null]}},"sourceSpan":{"start":[46,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[50,21]}},{"children":[],"comments":"Create an empty mutable array.\n","title":"empty","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["h",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Monad","ST","Internal"],"ST"]},{"annotation":[],"tag":"TypeVar","contents":"h"}]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","ST"],"STArray"]},{"annotation":[],"tag":"TypeVar","contents":"h"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]},null]},null]}},"sourceSpan":{"start":[67,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[67,55]}},{"children":[],"comments":"Read the value at the specified index in a mutable array.\n","title":"peek","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["h",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","ST"],"STArray"]},{"annotation":[],"tag":"TypeVar","contents":"h"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Monad","ST","Internal"],"ST"]},{"annotation":[],"tag":"TypeVar","contents":"h"}]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]}]}]},null]},null]}},"sourceSpan":{"start":[112,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[116,20]}},{"children":[],"comments":"Change the value at the specified index in a mutable array.\n","title":"poke","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["h",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","ST"],"STArray"]},{"annotation":[],"tag":"TypeVar","contents":"h"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Monad","ST","Internal"],"ST"]},{"annotation":[],"tag":"TypeVar","contents":"h"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]}]}]},null]},null]}},"sourceSpan":{"start":[128,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[128,75]}},{"children":[],"comments":"Append an element to the end of a mutable array. Returns the new length of\nthe array.\n","title":"push","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["h",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","ST"],"STArray"]},{"annotation":[],"tag":"TypeVar","contents":"h"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Monad","ST","Internal"],"ST"]},{"annotation":[],"tag":"TypeVar","contents":"h"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]}]},null]},null]}},"sourceSpan":{"start":[132,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[132,49]}},{"children":[],"comments":"Mutate the element at the specified index using the supplied function.\n","title":"modify","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["h",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","ST"],"STArray"]},{"annotation":[],"tag":"TypeVar","contents":"h"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Monad","ST","Internal"],"ST"]},{"annotation":[],"tag":"TypeVar","contents":"h"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]}]}]},null]},null]}},"sourceSpan":{"start":[144,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[144,69]}},{"children":[],"comments":"Append the values in an immutable array to the end of a mutable array.\nReturns the new length of the mutable array.\n","title":"pushAll","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["h",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","ST"],"STArray"]},{"annotation":[],"tag":"TypeVar","contents":"h"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Monad","ST","Internal"],"ST"]},{"annotation":[],"tag":"TypeVar","contents":"h"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]}]},null]},null]}},"sourceSpan":{"start":[137,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[141,14]}},{"children":[],"comments":"Remove and/or insert elements from/into a mutable array at the specified index.\n","title":"splice","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["h",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","ST"],"STArray"]},{"annotation":[],"tag":"TypeVar","contents":"h"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Monad","ST","Internal"],"ST"]},{"annotation":[],"tag":"TypeVar","contents":"h"}]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]}]}]}]}]},null]},null]}},"sourceSpan":{"start":[152,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[158,20]}},{"children":[],"comments":"Sort a mutable array in place.\n","title":"sort","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["h",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","ST"],"STArray"]},{"annotation":[],"tag":"TypeVar","contents":"h"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Monad","ST","Internal"],"ST"]},{"annotation":[],"tag":"TypeVar","contents":"h"}]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","ST"],"STArray"]},{"annotation":[],"tag":"TypeVar","contents":"h"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]}]}]},null]},null]}},"sourceSpan":{"start":[74,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[74,63]}},{"children":[],"comments":"Sort a mutable array in place using a comparison function.\n","title":"sortBy","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["h",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ordering"],"Ordering"]}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","ST"],"STArray"]},{"annotation":[],"tag":"TypeVar","contents":"h"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Monad","ST","Internal"],"ST"]},{"annotation":[],"tag":"TypeVar","contents":"h"}]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","ST"],"STArray"]},{"annotation":[],"tag":"TypeVar","contents":"h"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]}]}]},null]},null]}},"sourceSpan":{"start":[78,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[82,24]}},{"children":[],"comments":"Sort a mutable array in place based on a projection.\n","title":"sortWith","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["h",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"b"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","ST"],"STArray"]},{"annotation":[],"tag":"TypeVar","contents":"h"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Monad","ST","Internal"],"ST"]},{"annotation":[],"tag":"TypeVar","contents":"h"}]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","ST"],"STArray"]},{"annotation":[],"tag":"TypeVar","contents":"h"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]}]}]}]},null]},null]},null]}},"sourceSpan":{"start":[97,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[102,24]}},{"children":[],"comments":"Create an immutable copy of a mutable array.\n","title":"freeze","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["h",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","ST"],"STArray"]},{"annotation":[],"tag":"TypeVar","contents":"h"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Monad","ST","Internal"],"ST"]},{"annotation":[],"tag":"TypeVar","contents":"h"}]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]}]},null]},null]}},"sourceSpan":{"start":[106,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[106,52]}},{"children":[],"comments":"Create a mutable copy of an immutable array.\n","title":"thaw","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["h",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Monad","ST","Internal"],"ST"]},{"annotation":[],"tag":"TypeVar","contents":"h"}]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","ST"],"STArray"]},{"annotation":[],"tag":"TypeVar","contents":"h"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]}]},null]},null]}},"sourceSpan":{"start":[70,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[70,50]}},{"children":[],"comments":"O(1). Convert a mutable array to an immutable array, without copying. The mutable\narray must not be mutated afterwards.\n","title":"unsafeFreeze","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["h",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","ST"],"STArray"]},{"annotation":[],"tag":"TypeVar","contents":"h"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Monad","ST","Internal"],"ST"]},{"annotation":[],"tag":"TypeVar","contents":"h"}]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]}]},null]},null]}},"sourceSpan":{"start":[58,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[58,58]}},{"children":[],"comments":"O(1) Convert an immutable array to a mutable array, without copying. The input\narray must not be used afterward.\n","title":"unsafeThaw","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["h",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Monad","ST","Internal"],"ST"]},{"annotation":[],"tag":"TypeVar","contents":"h"}]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","ST"],"STArray"]},{"annotation":[],"tag":"TypeVar","contents":"h"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]}]},null]},null]}},"sourceSpan":{"start":[63,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[63,56]}},{"children":[],"comments":"Create an immutable copy of a mutable array, where each element\nis labelled with its index in the original array.\n","title":"toAssocArray","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["h",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","ST"],"STArray"]},{"annotation":[],"tag":"TypeVar","contents":"h"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Monad","ST","Internal"],"ST"]},{"annotation":[],"tag":"TypeVar","contents":"h"}]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","ST"],"Assoc"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]}}]}]},null]},null]}},"sourceSpan":{"start":[162,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[162,81]}}]}
diff --git a/tests/purs/publish/basic-example/output/Data.Array.ST/externs.json b/tests/purs/publish/basic-example/output/Data.Array.ST/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.Array.ST/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Data","Array","ST"],"efExports":[{"TypeRef":[{"start":[5,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[162,81]},"STArray",[]]},{"TypeRef":[{"start":[5,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[162,81]},"Assoc",[]]},{"ValueRef":[{"start":[5,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[162,81]},{"Ident":"withArray"}]},{"ValueRef":[{"start":[5,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[162,81]},{"Ident":"empty"}]},{"ValueRef":[{"start":[5,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[162,81]},{"Ident":"peek"}]},{"ValueRef":[{"start":[5,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[162,81]},{"Ident":"poke"}]},{"ValueRef":[{"start":[5,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[162,81]},{"Ident":"push"}]},{"ValueRef":[{"start":[5,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[162,81]},{"Ident":"modify"}]},{"ValueRef":[{"start":[5,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[162,81]},{"Ident":"pushAll"}]},{"ValueRef":[{"start":[5,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[162,81]},{"Ident":"splice"}]},{"ValueRef":[{"start":[5,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[162,81]},{"Ident":"sort"}]},{"ValueRef":[{"start":[5,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[162,81]},{"Ident":"sortBy"}]},{"ValueRef":[{"start":[5,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[162,81]},{"Ident":"sortWith"}]},{"ValueRef":[{"start":[5,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[162,81]},{"Ident":"freeze"}]},{"ValueRef":[{"start":[5,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[162,81]},{"Ident":"thaw"}]},{"ValueRef":[{"start":[5,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[162,81]},{"Ident":"unsafeFreeze"}]},{"ValueRef":[{"start":[5,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[162,81]},{"Ident":"unsafeThaw"}]},{"ValueRef":[{"start":[5,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[162,81]},{"Ident":"toAssocArray"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Prelude"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Control","Monad","ST"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[28,26],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[28,28]},"ST",[]]},{"KindRef":[{"start":[28,30],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[28,41]},"Region"]}]},"eiImportedAs":null},{"eiModule":["Data","Maybe"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[29,20],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[29,29]},"Maybe",null]}]},"eiImportedAs":null},{"eiModule":["Unsafe","Coerce"],"eiImportType":{"Explicit":[{"ValueRef":[{"start":[30,23],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[30,35]},{"Ident":"unsafeCoerce"}]}]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDType":{"edTypeName":"STArray","edTypeKind":{"annotation":[{"start":[39,32],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[39,54]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[39,32],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[39,38]},[]],"tag":"NamedKind","contents":[["Control","Monad","ST","Internal"],"Region"]},{"annotation":[{"start":[39,42],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[39,54]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[39,42],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[39,46]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[39,50],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[39,54]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]},"edTypeDeclarationKind":"ExternData"}},{"EDType":{"edTypeName":"Assoc","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[42,39],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[42,42]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[42,16],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[42,17]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"Assoc","edTypeSynonymArguments":[["a",{"annotation":[{"start":[42,39],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[42,42]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]],"edTypeSynonymType":{"annotation":[{"start":[42,16],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[42,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[42,16],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[42,17]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[42,18],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[42,28]},[]],"tag":"RCons","contents":["value",{"annotation":[{"start":[42,27],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[42,28]},[]],"tag":"TypeVar","contents":"a"},{"annotation":[{"start":[42,30],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[42,42]},[]],"tag":"RCons","contents":["index",{"annotation":[{"start":[42,39],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[42,42]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]},{"annotation":[{"start":[42,43],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[42,44]},[]],"tag":"REmpty"}]}]}]}}},{"EDValue":{"edValueName":{"Ident":"withArray"},"edValueType":{"annotation":[{"start":[47,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[50,21]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[47,13],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[50,21]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[47,13],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[50,21]},[]],"tag":"ForAll","contents":["h",{"annotation":[{"start":[48,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[50,21]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[48,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[50,21]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,4],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[49,6]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[48,7],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[48,28]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[48,7],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[48,28]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[48,19],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[48,21]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[48,7],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[48,18]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[48,7],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[48,16]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[48,7],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[48,14]},[]],"tag":"TypeConstructor","contents":[["Data","Array","ST"],"STArray"]},{"annotation":[{"start":[48,15],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[48,16]},[]],"tag":"TypeVar","contents":"h"}]},{"annotation":[{"start":[48,17],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[48,18]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[48,22],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[48,28]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[48,22],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[48,26]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[48,22],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[48,24]},[]],"tag":"TypeConstructor","contents":[["Control","Monad","ST","Internal"],"ST"]},{"annotation":[{"start":[48,25],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[48,26]},[]],"tag":"TypeVar","contents":"h"}]},{"annotation":[{"start":[48,27],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[48,28]},[]],"tag":"TypeVar","contents":"b"}]}]}]},{"annotation":[{"start":[49,7],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[50,21]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,7],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[50,21]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,4],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[50,6]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[49,7],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[49,14]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,7],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[49,12]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[49,13],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[49,14]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[50,7],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[50,21]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,7],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[50,11]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,7],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[50,9]},[]],"tag":"TypeConstructor","contents":[["Control","Monad","ST","Internal"],"ST"]},{"annotation":[{"start":[50,10],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[50,11]},[]],"tag":"TypeVar","contents":"h"}]},{"annotation":[{"start":[50,13],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[50,20]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,13],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[50,18]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[50,19],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[50,20]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]},19]},20]},21]}}},{"EDValue":{"edValueName":{"Ident":"empty"},"edValueType":{"annotation":[{"start":[67,25],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[67,55]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[67,32],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[67,55]},[]],"tag":"ForAll","contents":["h",{"annotation":[{"start":[67,37],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[67,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[67,37],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[67,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[67,37],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[67,39]},[]],"tag":"TypeConstructor","contents":[["Control","Monad","ST","Internal"],"ST"]},{"annotation":[{"start":[67,40],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[67,41]},[]],"tag":"TypeVar","contents":"h"}]},{"annotation":[{"start":[67,43],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[67,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[67,43],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[67,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[67,43],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[67,50]},[]],"tag":"TypeConstructor","contents":[["Data","Array","ST"],"STArray"]},{"annotation":[{"start":[67,51],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[67,52]},[]],"tag":"TypeVar","contents":"h"}]},{"annotation":[{"start":[67,53],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[67,54]},[]],"tag":"TypeVar","contents":"a"}]}]},null]},null]}}},{"EDValue":{"edValueName":{"Ident":"peek"},"edValueType":{"annotation":[{"start":[113,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[116,20]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[113,13],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[116,20]},[]],"tag":"ForAll","contents":["h",{"annotation":[{"start":[114,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[116,20]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[114,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[116,20]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[115,3],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[115,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[114,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[114,9]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[115,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[116,20]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[115,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[116,20]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[116,3],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[116,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[115,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[115,17]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[115,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[115,15]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[115,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[115,13]},[]],"tag":"TypeConstructor","contents":[["Data","Array","ST"],"STArray"]},{"annotation":[{"start":[115,14],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[115,15]},[]],"tag":"TypeVar","contents":"h"}]},{"annotation":[{"start":[115,16],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[115,17]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[116,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[116,20]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[116,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[116,10]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[116,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[116,8]},[]],"tag":"TypeConstructor","contents":[["Control","Monad","ST","Internal"],"ST"]},{"annotation":[{"start":[116,9],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[116,10]},[]],"tag":"TypeVar","contents":"h"}]},{"annotation":[{"start":[116,12],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[116,19]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[116,12],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[116,17]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[116,18],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[116,19]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]},47]},48]}}},{"EDValue":{"edValueName":{"Ident":"poke"},"edValueType":{"annotation":[{"start":[128,24],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[128,75]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[128,31],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[128,75]},[]],"tag":"ForAll","contents":["h",{"annotation":[{"start":[128,36],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[128,75]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[128,36],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[128,75]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[128,40],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[128,42]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[128,36],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[128,39]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[128,43],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[128,75]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[128,43],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[128,75]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[128,45],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[128,47]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[128,43],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[128,44]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[128,48],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[128,75]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[128,48],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[128,75]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[128,60],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[128,62]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[128,48],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[128,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[128,48],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[128,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[128,48],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[128,55]},[]],"tag":"TypeConstructor","contents":[["Data","Array","ST"],"STArray"]},{"annotation":[{"start":[128,56],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[128,57]},[]],"tag":"TypeVar","contents":"h"}]},{"annotation":[{"start":[128,58],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[128,59]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[128,63],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[128,75]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[128,63],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[128,67]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[128,63],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[128,65]},[]],"tag":"TypeConstructor","contents":[["Control","Monad","ST","Internal"],"ST"]},{"annotation":[{"start":[128,66],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[128,67]},[]],"tag":"TypeVar","contents":"h"}]},{"annotation":[{"start":[128,68],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[128,75]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]}]}]},null]},null]}}},{"EDValue":{"edValueName":{"Ident":"push"},"edValueType":{"annotation":[{"start":[132,9],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[132,49]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[132,16],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[132,49]},[]],"tag":"ForAll","contents":["h",{"annotation":[{"start":[132,21],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[132,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[132,21],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[132,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[132,23],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[132,25]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[132,21],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[132,22]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[132,26],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[132,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[132,26],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[132,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[132,38],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[132,40]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[132,26],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[132,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[132,26],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[132,35]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[132,26],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[132,33]},[]],"tag":"TypeConstructor","contents":[["Data","Array","ST"],"STArray"]},{"annotation":[{"start":[132,34],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[132,35]},[]],"tag":"TypeVar","contents":"h"}]},{"annotation":[{"start":[132,36],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[132,37]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[132,41],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[132,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[132,41],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[132,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[132,41],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[132,43]},[]],"tag":"TypeConstructor","contents":[["Control","Monad","ST","Internal"],"ST"]},{"annotation":[{"start":[132,44],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[132,45]},[]],"tag":"TypeVar","contents":"h"}]},{"annotation":[{"start":[132,46],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[132,49]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]}]},41]},42]}}},{"EDValue":{"edValueName":{"Ident":"modify"},"edValueType":{"annotation":[{"start":[144,11],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[144,69]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[144,18],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[144,69]},[]],"tag":"ForAll","contents":["h",{"annotation":[{"start":[144,23],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[144,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[144,23],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[144,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[144,27],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[144,29]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[144,23],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[144,26]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[144,30],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[144,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[144,30],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[144,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[144,39],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[144,41]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[144,31],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[144,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[144,31],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[144,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[144,33],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[144,35]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[144,31],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[144,32]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[144,36],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[144,37]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[144,42],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[144,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[144,42],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[144,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[144,54],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[144,56]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[144,42],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[144,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[144,42],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[144,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[144,42],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[144,49]},[]],"tag":"TypeConstructor","contents":[["Data","Array","ST"],"STArray"]},{"annotation":[{"start":[144,50],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[144,51]},[]],"tag":"TypeVar","contents":"h"}]},{"annotation":[{"start":[144,52],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[144,53]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[144,57],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[144,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[144,57],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[144,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[144,57],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[144,59]},[]],"tag":"TypeConstructor","contents":[["Control","Monad","ST","Internal"],"ST"]},{"annotation":[{"start":[144,60],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[144,61]},[]],"tag":"TypeVar","contents":"h"}]},{"annotation":[{"start":[144,62],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[144,69]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]}]}]},56]},57]}}},{"EDValue":{"edValueName":{"Ident":"pushAll"},"edValueType":{"annotation":[{"start":[138,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[141,14]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[138,13],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[141,14]},[]],"tag":"ForAll","contents":["h",{"annotation":[{"start":[139,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[141,14]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[139,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[141,14]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[140,3],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[140,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[139,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[139,13]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[139,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[139,11]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[139,12],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[139,13]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[140,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[141,14]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[140,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[141,14]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[141,3],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[141,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[140,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[140,17]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[140,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[140,15]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[140,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[140,13]},[]],"tag":"TypeConstructor","contents":[["Data","Array","ST"],"STArray"]},{"annotation":[{"start":[140,14],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[140,15]},[]],"tag":"TypeVar","contents":"h"}]},{"annotation":[{"start":[140,16],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[140,17]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[141,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[141,14]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[141,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[141,10]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[141,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[141,8]},[]],"tag":"TypeConstructor","contents":[["Control","Monad","ST","Internal"],"ST"]},{"annotation":[{"start":[141,9],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[141,10]},[]],"tag":"TypeVar","contents":"h"}]},{"annotation":[{"start":[141,11],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[141,14]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]}]},null]},null]}}},{"EDValue":{"edValueName":{"Ident":"splice"},"edValueType":{"annotation":[{"start":[153,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[158,20]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[153,13],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[158,20]},[]],"tag":"ForAll","contents":["h",{"annotation":[{"start":[154,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[158,20]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[154,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[158,20]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[155,3],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[155,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[154,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[154,9]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[155,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[158,20]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[155,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[158,20]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[156,3],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[156,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[155,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[155,9]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[156,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[158,20]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[156,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[158,20]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[157,3],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[157,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[156,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[156,13]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[156,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[156,11]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[156,12],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[156,13]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[157,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[158,20]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[157,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[158,20]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[158,3],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[158,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[157,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[157,17]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[157,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[157,15]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[157,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[157,13]},[]],"tag":"TypeConstructor","contents":[["Data","Array","ST"],"STArray"]},{"annotation":[{"start":[157,14],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[157,15]},[]],"tag":"TypeVar","contents":"h"}]},{"annotation":[{"start":[157,16],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[157,17]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[158,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[158,20]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[158,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[158,10]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[158,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[158,8]},[]],"tag":"TypeConstructor","contents":[["Control","Monad","ST","Internal"],"ST"]},{"annotation":[{"start":[158,9],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[158,10]},[]],"tag":"TypeVar","contents":"h"}]},{"annotation":[{"start":[158,12],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[158,19]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[158,12],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[158,17]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[158,18],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[158,19]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]}]}]},null]},null]}}},{"EDValue":{"edValueName":{"Ident":"sort"},"edValueType":{"annotation":[{"start":[74,9],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[74,63]},[]],"tag":"ForAll","contents":["h",{"annotation":[{"start":[74,16],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[74,63]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[74,21],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[74,63]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[74,21],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[74,26]},[]],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[{"start":[74,25],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[74,26]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[74,30],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[74,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[74,30],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[74,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[74,42],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[74,44]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[74,30],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[74,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[74,30],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[74,39]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[74,30],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[74,37]},[]],"tag":"TypeConstructor","contents":[["Data","Array","ST"],"STArray"]},{"annotation":[{"start":[74,38],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[74,39]},[]],"tag":"TypeVar","contents":"h"}]},{"annotation":[{"start":[74,40],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[74,41]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[74,45],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[74,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[74,45],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[74,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[74,45],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[74,47]},[]],"tag":"TypeConstructor","contents":[["Control","Monad","ST","Internal"],"ST"]},{"annotation":[{"start":[74,48],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[74,49]},[]],"tag":"TypeVar","contents":"h"}]},{"annotation":[{"start":[74,51],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[74,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[74,51],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[74,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[74,51],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[74,58]},[]],"tag":"TypeConstructor","contents":[["Data","Array","ST"],"STArray"]},{"annotation":[{"start":[74,59],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[74,60]},[]],"tag":"TypeVar","contents":"h"}]},{"annotation":[{"start":[74,61],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[74,62]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]},37]},38]}}},{"EDValue":{"edValueName":{"Ident":"sortBy"},"edValueType":{"annotation":[{"start":[79,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[82,24]},[]],"tag":"ForAll","contents":["h",{"annotation":[{"start":[79,13],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[82,24]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[80,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[82,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[80,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[82,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[81,3],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[81,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[80,7],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[80,25]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[80,7],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[80,25]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[80,9],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[80,11]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[80,7],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[80,8]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[80,12],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[80,25]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[80,12],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[80,25]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[80,14],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[80,16]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[80,12],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[80,13]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[80,17],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[80,25]},[]],"tag":"TypeConstructor","contents":[["Data","Ordering"],"Ordering"]}]}]}]},{"annotation":[{"start":[81,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[82,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[81,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[82,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[82,3],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[82,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[81,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[81,17]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[81,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[81,15]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[81,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[81,13]},[]],"tag":"TypeConstructor","contents":[["Data","Array","ST"],"STArray"]},{"annotation":[{"start":[81,14],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[81,15]},[]],"tag":"TypeVar","contents":"h"}]},{"annotation":[{"start":[81,16],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[81,17]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[82,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[82,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[82,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[82,10]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[82,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[82,8]},[]],"tag":"TypeConstructor","contents":[["Control","Monad","ST","Internal"],"ST"]},{"annotation":[{"start":[82,9],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[82,10]},[]],"tag":"TypeVar","contents":"h"}]},{"annotation":[{"start":[82,12],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[82,23]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[82,12],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[82,21]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[82,12],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[82,19]},[]],"tag":"TypeConstructor","contents":[["Data","Array","ST"],"STArray"]},{"annotation":[{"start":[82,20],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[82,21]},[]],"tag":"TypeVar","contents":"h"}]},{"annotation":[{"start":[82,22],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[82,23]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]},25]},26]}}},{"EDValue":{"edValueName":{"Ident":"sortWith"},"edValueType":{"annotation":[{"start":[98,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[102,24]},[]],"tag":"ForAll","contents":["h",{"annotation":[{"start":[98,13],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[102,24]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[98,13],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[102,24]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[99,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[102,24]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[99,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[99,11]},[]],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[{"start":[99,10],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[99,11]},[]],"tag":"TypeVar","contents":"b"}],"constraintData":null},{"annotation":[{"start":[100,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[102,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[100,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[102,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[101,3],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[101,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[100,7],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[100,13]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[100,7],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[100,13]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[100,9],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[100,11]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[100,7],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[100,8]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[100,12],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[100,13]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[101,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[102,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[101,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[102,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[102,3],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[102,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[101,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[101,17]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[101,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[101,15]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[101,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[101,13]},[]],"tag":"TypeConstructor","contents":[["Data","Array","ST"],"STArray"]},{"annotation":[{"start":[101,14],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[101,15]},[]],"tag":"TypeVar","contents":"h"}]},{"annotation":[{"start":[101,16],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[101,17]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[102,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[102,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[102,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[102,10]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[102,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[102,8]},[]],"tag":"TypeConstructor","contents":[["Control","Monad","ST","Internal"],"ST"]},{"annotation":[{"start":[102,9],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[102,10]},[]],"tag":"TypeVar","contents":"h"}]},{"annotation":[{"start":[102,12],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[102,23]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[102,12],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[102,21]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[102,12],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[102,19]},[]],"tag":"TypeConstructor","contents":[["Data","Array","ST"],"STArray"]},{"annotation":[{"start":[102,20],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[102,21]},[]],"tag":"TypeVar","contents":"h"}]},{"annotation":[{"start":[102,22],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[102,23]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]}]},31]},32]},33]}}},{"EDValue":{"edValueName":{"Ident":"freeze"},"edValueType":{"annotation":[{"start":[106,11],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[106,52]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[106,18],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[106,52]},[]],"tag":"ForAll","contents":["h",{"annotation":[{"start":[106,23],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[106,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[106,23],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[106,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[106,35],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[106,37]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[106,23],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[106,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[106,23],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[106,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[106,23],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[106,30]},[]],"tag":"TypeConstructor","contents":[["Data","Array","ST"],"STArray"]},{"annotation":[{"start":[106,31],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[106,32]},[]],"tag":"TypeVar","contents":"h"}]},{"annotation":[{"start":[106,33],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[106,34]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[106,38],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[106,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[106,38],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[106,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[106,38],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[106,40]},[]],"tag":"TypeConstructor","contents":[["Control","Monad","ST","Internal"],"ST"]},{"annotation":[{"start":[106,41],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[106,42]},[]],"tag":"TypeVar","contents":"h"}]},{"annotation":[{"start":[106,44],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[106,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[106,44],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[106,49]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[106,50],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[106,51]},[]],"tag":"TypeVar","contents":"a"}]}]}]},62]},63]}}},{"EDValue":{"edValueName":{"Ident":"thaw"},"edValueType":{"annotation":[{"start":[70,9],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[70,50]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[70,16],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[70,50]},[]],"tag":"ForAll","contents":["h",{"annotation":[{"start":[70,21],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[70,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[70,21],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[70,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[70,29],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[70,31]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[70,21],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[70,28]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[70,21],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[70,26]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[70,27],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[70,28]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[70,32],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[70,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[70,32],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[70,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[70,32],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[70,34]},[]],"tag":"TypeConstructor","contents":[["Control","Monad","ST","Internal"],"ST"]},{"annotation":[{"start":[70,35],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[70,36]},[]],"tag":"TypeVar","contents":"h"}]},{"annotation":[{"start":[70,38],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[70,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[70,38],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[70,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[70,38],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[70,45]},[]],"tag":"TypeConstructor","contents":[["Data","Array","ST"],"STArray"]},{"annotation":[{"start":[70,46],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[70,47]},[]],"tag":"TypeVar","contents":"h"}]},{"annotation":[{"start":[70,48],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[70,49]},[]],"tag":"TypeVar","contents":"a"}]}]}]},12]},13]}}},{"EDValue":{"edValueName":{"Ident":"unsafeFreeze"},"edValueType":{"annotation":[{"start":[58,17],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[58,58]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[58,24],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[58,58]},[]],"tag":"ForAll","contents":["h",{"annotation":[{"start":[58,29],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[58,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[58,29],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[58,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[58,41],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[58,43]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[58,29],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[58,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[58,29],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[58,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[58,29],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[58,36]},[]],"tag":"TypeConstructor","contents":[["Data","Array","ST"],"STArray"]},{"annotation":[{"start":[58,37],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[58,38]},[]],"tag":"TypeVar","contents":"h"}]},{"annotation":[{"start":[58,39],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[58,40]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[58,44],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[58,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[58,44],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[58,48]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[58,44],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[58,46]},[]],"tag":"TypeConstructor","contents":[["Control","Monad","ST","Internal"],"ST"]},{"annotation":[{"start":[58,47],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[58,48]},[]],"tag":"TypeVar","contents":"h"}]},{"annotation":[{"start":[58,50],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[58,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[58,50],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[58,55]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[58,56],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[58,57]},[]],"tag":"TypeVar","contents":"a"}]}]}]},6]},7]}}},{"EDValue":{"edValueName":{"Ident":"unsafeThaw"},"edValueType":{"annotation":[{"start":[63,15],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[63,56]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[63,22],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[63,56]},[]],"tag":"ForAll","contents":["h",{"annotation":[{"start":[63,27],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[63,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[63,27],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[63,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[63,35],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[63,37]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[63,27],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[63,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[63,27],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[63,32]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[63,33],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[63,34]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[63,38],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[63,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[63,38],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[63,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[63,38],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[63,40]},[]],"tag":"TypeConstructor","contents":[["Control","Monad","ST","Internal"],"ST"]},{"annotation":[{"start":[63,41],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[63,42]},[]],"tag":"TypeVar","contents":"h"}]},{"annotation":[{"start":[63,44],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[63,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[63,44],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[63,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[63,44],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[63,51]},[]],"tag":"TypeConstructor","contents":[["Data","Array","ST"],"STArray"]},{"annotation":[{"start":[63,52],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[63,53]},[]],"tag":"TypeVar","contents":"h"}]},{"annotation":[{"start":[63,54],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[63,55]},[]],"tag":"TypeVar","contents":"a"}]}]}]},0]},1]}}},{"EDValue":{"edValueName":{"Ident":"toAssocArray"},"edValueType":{"annotation":[{"start":[162,32],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[162,81]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[162,39],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[162,81]},[]],"tag":"ForAll","contents":["h",{"annotation":[{"start":[162,44],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[162,81]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[162,44],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[162,81]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[162,56],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[162,58]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[162,44],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[162,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[162,44],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[162,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[162,44],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[162,51]},[]],"tag":"TypeConstructor","contents":[["Data","Array","ST"],"STArray"]},{"annotation":[{"start":[162,52],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[162,53]},[]],"tag":"TypeVar","contents":"h"}]},{"annotation":[{"start":[162,54],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[162,55]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[162,59],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[162,81]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[162,59],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[162,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[162,59],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[162,61]},[]],"tag":"TypeConstructor","contents":[["Control","Monad","ST","Internal"],"ST"]},{"annotation":[{"start":[162,62],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[162,63]},[]],"tag":"TypeVar","contents":"h"}]},{"annotation":[{"start":[162,65],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[162,80]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[162,65],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[162,70]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[162,72],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[162,79]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[162,72],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[162,77]},[]],"tag":"TypeConstructor","contents":[["Data","Array","ST"],"Assoc"]},{"annotation":[{"start":[162,78],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[162,79]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]},null]},null]}}}],"efSourceSpan":{"start":[5,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array/ST.purs","end":[162,81]}}
diff --git a/tests/purs/publish/basic-example/output/Data.Array/docs.json b/tests/purs/publish/basic-example/output/Data.Array/docs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.Array/docs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"reExports":[],"name":"Data.Array","comments":"Helper functions for working with immutable Javascript arrays.\n\n_Note_: Depending on your use-case, you may prefer to use `Data.List` or\n`Data.Sequence` instead, which might give better performance for certain\nuse cases. This module is useful when integrating with JavaScript libraries\nwhich use arrays, but immutable arrays are not a practical data structure\nfor many use cases due to their poor asymptotics.\n\nIn addition to the functions in this module, Arrays have a number of\nuseful instances:\n\n* `Functor`, which provides `map :: forall a b. (a -> b) -> Array a ->\n  Array b`\n* `Apply`, which provides `(<*>) :: forall a b. Array (a -> b) -> Array a\n  -> Array b`. This function works a bit like a Cartesian product; the\n  result array is constructed by applying each function in the first\n  array to each value in the second, so that the result array ends up with\n  a length equal to the product of the two arguments' lengths.\n* `Bind`, which provides `(>>=) :: forall a b. (a -> Array b) -> Array a\n  -> Array b` (this is the same as `concatMap`).\n* `Semigroup`, which provides `(<>) :: forall a. Array a -> Array a ->\n  Array a`, for concatenating arrays.\n* `Foldable`, which provides a slew of functions for *folding* (also known\n  as *reducing*) arrays down to one value. For example,\n  `Data.Foldable.or` tests whether an array of `Boolean` values contains\n  at least one `true` value.\n* `Traversable`, which provides the PureScript version of a for-loop,\n  allowing you to STAI.iterate over an array and accumulate effects.\n\n","declarations":[{"children":[],"comments":"Convert a `Foldable` structure into an `Array`.\n\n```purescript\nfromFoldable (Just 1) = [1]\nfromFoldable (Nothing) = []\n```\n\n","title":"fromFoldable","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Foldable"],"Foldable"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","NaturalTransformation"],"~>"]},{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]}]}]},null]}},"sourceSpan":{"start":[154,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[154,51]}},{"children":[],"comments":"Convert an `Array` into an `Unfoldable` structure.\n","title":"toUnfoldable","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Unfoldable"],"Unfoldable"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","NaturalTransformation"],"~>"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"f"}]}]},null]}},"sourceSpan":{"start":[139,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[139,53]}},{"children":[],"comments":"Create an array of one element\n```purescript\nsingleton 2 = [2]\n```\n","title":"singleton","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},null]}},"sourceSpan":{"start":[167,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[167,36]}},{"children":[],"comments":"An infix synonym for `range`.\n```purescript\n2 .. 5 = [2, 3, 4, 5]\n```\n","title":"(..)","info":{"declType":"alias","alias":[["Data","Array"],{"Right":{"Left":{"Ident":"range"}}}],"fixity":{"associativity":"infix","precedence":8}},"sourceSpan":{"start":[186,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[186,20]}},{"children":[],"comments":"Create an array containing a range of integers, including both endpoints.\n```purescript\nrange 2 5 = [2, 3, 4, 5]\n```\n","title":"range","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]}]}},"sourceSpan":{"start":[174,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[174,48]}},{"children":[],"comments":"Create an array containing a value repeated the specified number of times.\n```purescript\nreplicate 2 \"Hi\" = [\"Hi\", \"Hi\"]\n```\n","title":"replicate","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]},null]}},"sourceSpan":{"start":[180,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[180,58]}},{"children":[],"comments":"Attempt a computation multiple times, requiring at least one success.\n\nThe `Lazy` constraint is used to generate the result lazily, to ensure\ntermination.\n","title":"some","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Alternative"],"Alternative"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Lazy"],"Lazy"],"constraintArgs":[{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]}}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]}]}]}]},null]},null]}},"sourceSpan":{"start":[192,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[192,78]}},{"children":[],"comments":"Attempt a computation multiple times, returning as many successful results\nas possible (possibly zero).\n\nThe `Lazy` constraint is used to generate the result lazily, to ensure\ntermination.\n","title":"many","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Alternative"],"Alternative"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Lazy"],"Lazy"],"constraintArgs":[{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]}}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]}]}]}]},null]},null]}},"sourceSpan":{"start":[200,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[200,78]}},{"children":[],"comments":"Test whether an array is empty.\n```purescript\nnull [] = true\nnull [1, 2] = false\n```\n","title":"null","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]},null]}},"sourceSpan":{"start":[212,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[212,37]}},{"children":[],"comments":"Get the number of elements in an array.\n```purescript\nlength [\"Hello\", \"World\"] = 2\n```\n","title":"length","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},null]}},"sourceSpan":{"start":[219,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[219,50]}},{"children":[],"comments":"An infix alias for `cons`.\n\n```purescript\n1 : [2, 3, 4] = [1, 2, 3, 4]\n```\n\nNote, the running time of this function is `O(n)`.\n","title":"(:)","info":{"declType":"alias","alias":[["Data","Array"],{"Right":{"Left":{"Ident":"cons"}}}],"fixity":{"associativity":"infixr","precedence":6}},"sourceSpan":{"start":[241,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[241,19]}},{"children":[],"comments":"Attaches an element to the front of an array, creating a new array.\n\n```purescript\ncons 1 [2, 3, 4] = [1, 2, 3, 4]\n```\n\nNote, the running time of this function is `O(n)`.\n","title":"cons","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]},null]}},"sourceSpan":{"start":[232,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[232,57]}},{"children":[],"comments":"Append an element to the end of an array, creating a new array.\n\n```purescript\nsnoc [1, 2, 3] 4 = [1, 2, 3, 4]\n```\n\n","title":"snoc","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]},null]}},"sourceSpan":{"start":[249,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[249,57]}},{"children":[],"comments":"Insert an element into a sorted array.\n\n```purescript\ninsert 10 [1, 2, 20, 21] = [1, 2, 10, 20, 21]\n```\n\n","title":"insert","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]}]},null]}},"sourceSpan":{"start":[257,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[257,53]}},{"children":[],"comments":"Insert an element into a sorted array, using the specified function to\ndetermine the ordering of elements.\n\n```purescript\ninvertCompare a b = invert $ compare a b\n\ninsertBy invertCompare 10 [21, 20, 2, 1] = [21, 20, 10, 2, 1]\n```\n\n","title":"insertBy","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ordering"],"Ordering"]}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]}]},null]}},"sourceSpan":{"start":[269,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[269,70]}},{"children":[],"comments":"Get the first element in an array, or `Nothing` if the array is empty\n\nRunning time: `O(1)`.\n\n```purescript\nhead [1, 2] = Just 1\nhead [] = Nothing\n```\n\n","title":"head","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},null]}},"sourceSpan":{"start":[287,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[287,37]}},{"children":[],"comments":"Get the last element in an array, or `Nothing` if the array is empty\n\nRunning time: `O(1)`.\n\n```purescript\nlast [1, 2] = Just 2\nlast [] = Nothing\n```\n\n","title":"last","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},null]}},"sourceSpan":{"start":[299,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[299,37]}},{"children":[],"comments":"Get all but the first element of an array, creating a new array, or\n`Nothing` if the array is empty\n\n```purescript\ntail [1, 2, 3, 4] = Just [2, 3, 4]\ntail [] = Nothing\n```\n\nRunning time: `O(n)` where `n` is the length of the array\n","title":"tail","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]}]},null]}},"sourceSpan":{"start":[311,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[311,45]}},{"children":[],"comments":"Get all but the last element of an array, creating a new array, or\n`Nothing` if the array is empty.\n\n```purescript\ninit [1, 2, 3, 4] = Just [1, 2, 3]\ninit [] = Nothing\n```\n\nRunning time: `O(n)` where `n` is the length of the array\n","title":"init","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]}]},null]}},"sourceSpan":{"start":[323,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[323,45]}},{"children":[],"comments":"Break an array into its first element and remaining elements.\n\nUsing `uncons` provides a way of writing code that would use cons patterns\nin Haskell or pre-PureScript 0.7:\n``` purescript\nf (x : xs) = something\nf [] = somethingElse\n```\nBecomes:\n``` purescript\nf arr = case uncons arr of\n  Just { head: x, tail: xs } -> something\n  Nothing -> somethingElse\n```\n","title":"uncons","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"RCons","contents":["head",{"annotation":[],"tag":"TypeVar","contents":"a"},{"annotation":[],"tag":"RCons","contents":["tail",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"REmpty"}]}]}]}]}]},null]}},"sourceSpan":{"start":[342,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[342,68]}},{"children":[],"comments":"Break an array into its last element and all preceding elements.\n\n```purescript\nunsnoc [1, 2, 3] = Just {init: [1, 2], last: 3}\nunsnoc [] = Nothing\n```\n\nRunning time: `O(n)` where `n` is the length of the array\n","title":"unsnoc","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"RCons","contents":["init",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"RCons","contents":["last",{"annotation":[],"tag":"TypeVar","contents":"a"},{"annotation":[],"tag":"REmpty"}]}]}]}]}]},null]}},"sourceSpan":{"start":[360,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[360,68]}},{"children":[],"comments":"An infix version of `index`.\n\n```purescript\nsentence = [\"Hello\", \"World\", \"!\"]\n\nsentence !! 0 = Just \"Hello\"\nsentence !! 7 = Nothing\n```\n\n","title":"(!!)","info":{"declType":"alias","alias":[["Data","Array"],{"Right":{"Left":{"Ident":"index"}}}],"fixity":{"associativity":"infixl","precedence":8}},"sourceSpan":{"start":[397,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[397,21]}},{"children":[],"comments":"This function provides a safe way to read a value at a particular index\nfrom an array.\n\n```purescript\nsentence = [\"Hello\", \"World\", \"!\"]\n\nindex sentence 0 = Just \"Hello\"\nindex sentence 7 = Nothing\n```\n\n","title":"index","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]},null]}},"sourceSpan":{"start":[377,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[377,45]}},{"children":[],"comments":"Find the index of the first element equal to the specified element.\n\n```purescript\nelemIndex \"a\" [\"a\", \"b\", \"a\", \"c\"] = Just 0\nelemIndex \"Earth\" [\"Hello\", \"World\", \"!\"] = Nothing\n```\n\n","title":"elemIndex","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]}]}]},null]}},"sourceSpan":{"start":[406,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[406,57]}},{"children":[],"comments":"Find the index of the last element equal to the specified element.\n\n```purescript\nelemLastIndex \"a\" [\"a\", \"b\", \"a\", \"c\"] = Just 2\nelemLastIndex \"Earth\" [\"Hello\", \"World\", \"!\"] = Nothing\n```\n\n","title":"elemLastIndex","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]}]}]},null]}},"sourceSpan":{"start":[416,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[416,61]}},{"children":[],"comments":"Find the first index for which a predicate holds.\n\n```purescript\nfindIndex (contains $ Pattern \"b\") [\"a\", \"bb\", \"b\", \"d\"] = Just 1\nfindIndex (contains $ Pattern \"x\") [\"a\", \"bb\", \"b\", \"d\"] = Nothing\n```\n\n","title":"findIndex","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]}]},null]}},"sourceSpan":{"start":[426,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[426,62]}},{"children":[],"comments":"Find the last index for which a predicate holds.\n\n```purescript\nfindLastIndex (contains $ Pattern \"b\") [\"a\", \"bb\", \"b\", \"d\"] = Just 2\nfindLastIndex (contains $ Pattern \"x\") [\"a\", \"bb\", \"b\", \"d\"] = Nothing\n```\n\n","title":"findLastIndex","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]}]},null]}},"sourceSpan":{"start":[444,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[444,66]}},{"children":[],"comments":"Insert an element at the specified index, creating a new array, or\nreturning `Nothing` if the index is out of bounds.\n\n```purescript\ninsertAt 2 \"!\" [\"Hello\", \"World\"] = Just [\"Hello\", \"World\", \"!\"]\ninsertAt 10 \"!\" [\"Hello\"] = Nothing\n```\n\n","title":"insertAt","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]}]}]}]},null]}},"sourceSpan":{"start":[463,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[463,61]}},{"children":[],"comments":"Delete the element at the specified index, creating a new array, or\nreturning `Nothing` if the index is out of bounds.\n\n```purescript\ndeleteAt 0 [\"Hello\", \"World\"] = Just [\"World\"]\ndeleteAt 10 [\"Hello\", \"World\"] = Nothing\n```\n\n","title":"deleteAt","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]}]}]},null]}},"sourceSpan":{"start":[483,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[483,56]}},{"children":[],"comments":"Change the element at the specified index, creating a new array, or\nreturning `Nothing` if the index is out of bounds.\n\n```purescript\nupdateAt 1 \"World\" [\"Hello\", \"Earth\"] = Just [\"Hello\", \"World\"]\nupdateAt 10 \"World\" [\"Hello\", \"Earth\"] = Nothing\n```\n\n","title":"updateAt","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]}]}]}]},null]}},"sourceSpan":{"start":[502,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[502,61]}},{"children":[],"comments":"Change the elements at the specified indices in index/value pairs.\nOut-of-bounds indices will have no effect.\n\n```purescript\nupdates = [Tuple 0 \"Hi\", Tuple 2 \".\" , Tuple 10 \"foobar\"]\n\nupdateAtIndices updates [\"Hello\", \"World\", \"!\"] = [\"Hi\", \"World\", \".\"]\n```\n\n","title":"updateAtIndices","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["t",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Foldable"],"Foldable"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"t"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"t"},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]}]},null]},null]}},"sourceSpan":{"start":[661,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[661,83]}},{"children":[],"comments":"Apply a function to the element at the specified index, creating a new\narray, or returning `Nothing` if the index is out of bounds.\n\n```purescript\nmodifyAt 1 toUpper [\"Hello\", \"World\"] = Just [\"Hello\", \"WORLD\"]\nmodifyAt 10 toUpper [\"Hello\", \"World\"] = Nothing\n```\n\n","title":"modifyAt","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]}]}]}]},null]}},"sourceSpan":{"start":[522,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[522,68]}},{"children":[],"comments":"Apply a function to the element at the specified indices,\ncreating a new array. Out-of-bounds indices will have no effect.\n\n```purescript\nindices = [1, 3]\nmodifyAtIndices indices toUpper [\"Hello\", \"World\", \"and\", \"others\"]\n   = [\"Hello\", \"WORLD\", \"and\", \"OTHERS\"]\n```\n\n","title":"modifyAtIndices","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["t",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Foldable"],"Foldable"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"t"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"t"},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]}]}]},null]},null]}},"sourceSpan":{"start":[674,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[674,85]}},{"children":[],"comments":"Update or delete the element at the specified index by applying a\nfunction to the current value, returning a new array or `Nothing` if the\nindex is out-of-bounds.\n\n```purescript\nalterAt 1 (stripSuffix $ Pattern \"!\") [\"Hello\", \"World!\"]\n   = Just [\"Hello\", \"World\"]\n\nalterAt 1 (stripSuffix $ Pattern \"!!!!!\") [\"Hello\", \"World!\"]\n   = Just [\"Hello\"]\n\nalterAt 10 (stripSuffix $ Pattern \"!\") [\"Hello\", \"World!\"] = Nothing\n```\n\n","title":"alterAt","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]}]}]}]},null]}},"sourceSpan":{"start":[541,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[541,73]}},{"children":[],"comments":"Reverse an array, creating a new array.\n\n```purescript\nreverse [] = []\nreverse [1, 2, 3] = [3, 2, 1]\n```\n\n","title":"reverse","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},null]}},"sourceSpan":{"start":[559,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[559,55]}},{"children":[],"comments":"Flatten an array of arrays, creating a new array.\n\n```purescript\nconcat [[1, 2, 3], [], [4, 5, 6]] = [1, 2, 3, 4, 5, 6]\n```\n\n","title":"concat","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},null]}},"sourceSpan":{"start":[567,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[567,62]}},{"children":[],"comments":"Apply a function to each element in an array, and flatten the results\ninto a single, new array.\n\n```purescript\nconcatMap (split $ Pattern \" \") [\"Hello World\", \"other thing\"]\n   = [\"Hello\", \"World\", \"other\", \"thing\"]\n```\n\n","title":"concatMap","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}]},null]},null]}},"sourceSpan":{"start":[577,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[577,62]}},{"children":[],"comments":"Filter an array, keeping the elements which satisfy a predicate function,\ncreating a new array.\n\n```purescript\nfilter (_ > 0) [-1, 4, -5, 7] = [4, 7]\n```\n\n","title":"filter","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]},null]}},"sourceSpan":{"start":[587,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[587,72]}},{"children":[],"comments":"Partition an array using a predicate function, creating a set of\nnew arrays. One for the values satisfying the predicate function\nand one for values that don't.\n\n```purescript\npartition (_ > 0) [-1, 4, -5, 7] = { yes: [4, 7], no: [-1, -5] }\n```\n\n","title":"partition","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"RCons","contents":["yes",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"RCons","contents":["no",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"REmpty"}]}]}]}]}]},null]}},"sourceSpan":{"start":[597,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[601,39]}},{"children":[],"comments":"Filter where the predicate returns a `Boolean` in some `Applicative`.\n\n```purescript\npowerSet :: forall a. Array a -> Array (Array a)\npowerSet = filterA (const [true, false])\n```\n","title":"filterA","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Applicative"],"Applicative"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]}]}]}]},null]},null]}},"sourceSpan":{"start":[609,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[609,83]}},{"children":[],"comments":"Apply a function to each element in an array, keeping only the results\nwhich contain a value, creating a new array.\n\n```purescript\nparseEmail :: String -> Maybe Email\nparseEmail = ...\n\nmapMaybe parseEmail [\"a.com\", \"hello@example.com\", \"--\"]\n   = [Email {user: \"hello\", domain: \"example.com\"}]\n```\n\n","title":"mapMaybe","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}]},null]},null]}},"sourceSpan":{"start":[625,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[625,61]}},{"children":[],"comments":"Filter an array of optional values, keeping only the elements which contain\na value, creating a new array.\n\n```purescript\ncatMaybes [Nothing, Just 2, Nothing, Just 4] = [2, 4]\n```\n\n","title":"catMaybes","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},null]}},"sourceSpan":{"start":[635,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[635,50]}},{"children":[],"comments":"Apply a function to each element in an array, supplying a generated\nzero-based index integer along with the element, creating an array\nwith the new elements.\n\n```purescript\nprefixIndex index element = show index <> element\n\nmapWithIndex prefixIndex [\"Hello\", \"World\"] = [\"0Hello\", \"1World\"]\n```\n\n","title":"mapWithIndex","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}]},null]},null]}},"sourceSpan":{"start":[648,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[648,66]}},{"children":[],"comments":"Sort the elements of an array in increasing order, creating a new array.\n\n```purescript\nsort [2, -3, 1] = [-3, 1, 2]\n```\n\n","title":"sort","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]},null]}},"sourceSpan":{"start":[688,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[688,46]}},{"children":[],"comments":"Sort the elements of an array in increasing order, where elements are\ncompared using the specified partial ordering, creating a new array.\n\n```purescript\ncompareLength a b = compare (length a) (length b)\nsortBy compareLength [[1, 2, 3], [7, 9], [-2]] = [[-2],[7,9],[1,2,3]]\n```\n\n","title":"sortBy","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ordering"],"Ordering"]}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]},null]}},"sourceSpan":{"start":[699,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[699,63]}},{"children":[],"comments":"Sort the elements of an array in increasing order, where elements are\nsorted based on a projection\n\n```purescript\nsortWith (_.age) [{name: \"Alice\", age: 42}, {name: \"Bob\", age: 21}]\n   = [{name: \"Bob\", age: 21}, {name: \"Alice\", age: 42}]\n```\n\n","title":"sortWith","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"b"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]}]},null]},null]}},"sourceSpan":{"start":[715,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[715,64]}},{"children":[],"comments":"Extract a subarray by a start and end index.\n\n```purescript\nletters = [\"a\", \"b\", \"c\"]\nslice 1 3 letters = [\"b\", \"c\"]\nslice 5 7 letters = []\nslice 4 1 letters = []\n```\n\n","title":"slice","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]}]},null]}},"sourceSpan":{"start":[733,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[733,67]}},{"children":[],"comments":"Keep only a number of elements from the start of an array, creating a new\narray.\n\n```purescript\nletters = [\"a\", \"b\", \"c\"]\n\ntake 2 letters = [\"a\", \"b\"]\ntake 100 letters = [\"a\", \"b\", \"c\"]\n```\n\n","title":"take","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]},null]}},"sourceSpan":{"start":[745,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[745,59]}},{"children":[],"comments":"Keep only a number of elements from the end of an array, creating a new\narray.\n\n```purescript\nletters = [\"a\", \"b\", \"c\"]\n\ntakeEnd 2 letters = [\"b\", \"c\"]\ntakeEnd 100 letters = [\"a\", \"b\", \"c\"]\n```\n\n","title":"takeEnd","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]},null]}},"sourceSpan":{"start":[757,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[757,47]}},{"children":[],"comments":"Calculate the longest initial subarray for which all element satisfy the\nspecified predicate, creating a new array.\n\n```purescript\ntakeWhile (_ > 0) [4, 1, 0, -4, 5] = [4, 1]\ntakeWhile (_ > 0) [-1, 4] = []\n```\n\n","title":"takeWhile","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]},null]}},"sourceSpan":{"start":[768,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[768,60]}},{"children":[],"comments":"Drop a number of elements from the start of an array, creating a new array.\n\n```purescript\nletters = [\"a\", \"b\", \"c\", \"d\"]\n\ndrop 2 letters = [\"c\", \"d\"]\ndrop 10 letters = []\n```\n\n","title":"drop","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]},null]}},"sourceSpan":{"start":[780,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[780,59]}},{"children":[],"comments":"Drop a number of elements from the start of an array, creating a new array.\n\n```purescript\nletters = [\"a\", \"b\", \"c\", \"d\"]\n\ndropEnd 2 letters = [\"a\", \"b\"]\ndropEnd 10 letters = []\n```\n\n","title":"dropEnd","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]},null]}},"sourceSpan":{"start":[791,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[791,47]}},{"children":[],"comments":"Remove the longest initial subarray for which all element satisfy the\nspecified predicate, creating a new array.\n\n```purescript\ndropWhile (_ < 0) [-3, -1, 0, 4, -6] = [0, 4, -6]\n```\n\n","title":"dropWhile","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]},null]}},"sourceSpan":{"start":[801,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[801,60]}},{"children":[],"comments":"Split an array into two parts:\n\n1. the longest initial subarray for which all elements satisfy the\n   specified predicate\n2. the remaining elements\n\n```purescript\nspan (\\n -> n % 2 == 1) [1,3,2,4,5] == { init: [1,3], rest: [2,4,5] }\n```\n\nRunning time: `O(n)`.\n","title":"span","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"RCons","contents":["init",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"RCons","contents":["rest",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"REmpty"}]}]}]}]}]},null]}},"sourceSpan":{"start":[815,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[819,42]}},{"children":[],"comments":"Group equal, consecutive elements of an array into arrays.\n\n```purescript\ngroup [1,1,2,2,1] == [NonEmpty 1 [1], NonEmpty 2 [2], NonEmpty 1 []]\n```\n","title":"group","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]}]}]},null]}},"sourceSpan":{"start":[843,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[843,62]}},{"children":[],"comments":"Sort and then group the elements of an array into arrays.\n\n```purescript\ngroup' [1,1,2,2,1] == [NonEmpty 1 [1,1],NonEmpty 2 [2]]\n```\n","title":"group'","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]}]}]},null]}},"sourceSpan":{"start":[851,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[851,64]}},{"children":[],"comments":"Group equal, consecutive elements of an array into arrays, using the\nspecified equivalence relation to detemine equality.\n\n```purescript\ngroupBy (\\a b -> odd a && odd b) [1, 3, 2, 4, 3, 3]\n   = [NonEmpty 1 [3], NonEmpty 2 [] , NonEmpty 4 [], NonEmpty 3 [3]]\n```\n\n","title":"groupBy","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]}]}]},null]}},"sourceSpan":{"start":[862,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[862,79]}},{"children":[],"comments":"Remove the duplicates from an array, creating a new array.\n\n```purescript\nnub [1, 2, 1, 3, 3] = [1, 2, 3]\n```\n\n","title":"nub","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]},null]}},"sourceSpan":{"start":[881,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[881,45]}},{"children":[],"comments":"Remove the duplicates from an array, creating a new array.\n\nThis less efficient version of `nub` only requires an `Eq` instance.\n\n```purescript\nnubEq [1, 2, 1, 3, 3] = [1, 2, 3]\n```\n\n","title":"nubEq","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]},null]}},"sourceSpan":{"start":[892,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[892,46]}},{"children":[],"comments":"Remove the duplicates from an array, where element equality is determined\nby the specified ordering, creating a new array.\n\n```purescript\nnubBy compare [1, 3, 4, 2, 2, 1] == [1, 3, 4, 2]\n```\n\n","title":"nubBy","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ordering"],"Ordering"]}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]},null]}},"sourceSpan":{"start":[902,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[902,62]}},{"children":[],"comments":"Remove the duplicates from an array, where element equality is determined\nby the specified equivalence relation, creating a new array.\n\nThis less efficient version of `nubBy` only requires an equivalence\nrelation.\n\n```purescript\nnubByEq (\\a b -> a `mod` 3 == b `mod` 3) [1, 3, 4, 5, 6] = [1,3,5]\n```\n\n","title":"nubByEq","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]},null]}},"sourceSpan":{"start":[927,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[927,63]}},{"children":[],"comments":"Calculate the union of two arrays. Note that duplicates in the first array\nare preserved while duplicates in the second array are removed.\n\nRunning time: `O(n^2)`\n\n```purescript\nunion [1, 2, 1, 1] [3, 3, 3, 4] = [1, 2, 1, 1, 3, 4]\n```\n\n","title":"union","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]}]},null]}},"sourceSpan":{"start":[942,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[942,57]}},{"children":[],"comments":"Calculate the union of two arrays, using the specified function to\ndetermine equality of elements. Note that duplicates in the first array\nare preserved while duplicates in the second array are removed.\n\n```purescript\nmod3eq a b = a `mod` 3 == b `mod` 3\nunionBy mod3eq [1, 5, 1, 2] [3, 4, 3, 3] = [1, 5, 1, 2, 3]\n```\n\n","title":"unionBy","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]}]},null]}},"sourceSpan":{"start":[954,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[954,74]}},{"children":[],"comments":"Delete the first element of an array which is equal to the specified value,\ncreating a new array.\n\n```purescript\ndelete 7 [1, 7, 3, 7] = [1, 3, 7]\ndelete 7 [1, 2, 3] = [1, 2, 3]\n```\n\nRunning time: `O(n)`\n","title":"delete","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]}]},null]}},"sourceSpan":{"start":[966,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[966,52]}},{"children":[],"comments":"Delete the first element of an array which matches the specified value,\nunder the equivalence relation provided in the first argument, creating a\nnew array.\n\n```purescript\nmod3eq a b = a `mod` 3 == b `mod` 3\ndeleteBy mod3eq 6 [1, 3, 4, 3] = [1, 4, 3]\n```\n\n","title":"deleteBy","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]}]},null]}},"sourceSpan":{"start":[978,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[978,69]}},{"children":[],"comments":null,"title":"(\\\\)","info":{"declType":"alias","alias":[["Data","Array"],{"Right":{"Left":{"Ident":"difference"}}}],"fixity":{"associativity":"infix","precedence":5}},"sourceSpan":{"start":[994,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[994,25]}},{"children":[],"comments":"Delete the first occurrence of each element in the second array from the\nfirst array, creating a new array.\n\n```purescript\ndifference [2, 1] [2, 3] = [1]\n```\n\nRunning time: `O(n*m)`, where n is the length of the first array, and m is\nthe length of the second.\n","title":"difference","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]}]},null]}},"sourceSpan":{"start":[991,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[991,62]}},{"children":[],"comments":"Calculate the intersection of two arrays, creating a new array. Note that\nduplicates in the first array are preserved while duplicates in the second\narray are removed.\n\n```purescript\nintersect [1, 1, 2] [2, 2, 1] = [1, 1, 2]\n```\n\n","title":"intersect","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]}]},null]}},"sourceSpan":{"start":[1004,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1004,61]}},{"children":[],"comments":"Calculate the intersection of two arrays, using the specified equivalence\nrelation to compare elements, creating a new array. Note that duplicates\nin the first array are preserved while duplicates in the second array are\nremoved.\n\n```purescript\nmod3eq a b = a `mod` 3 == b `mod` 3\nintersectBy mod3eq [1, 2, 3] [4, 6, 7] = [1, 3]\n```\n\n","title":"intersectBy","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]}]},null]}},"sourceSpan":{"start":[1017,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1017,78]}},{"children":[],"comments":"Apply a function to pairs of elements at the same index in two arrays,\ncollecting the results in a new array.\n\nIf one array is longer, elements will be discarded from the longer array.\n\nFor example\n\n```purescript\nzipWith (*) [1, 2, 3] [4, 5, 6, 7] == [4, 10, 18]\n```\n","title":"zipWith","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"c"}]}]}]}]},null]},null]},null]}},"sourceSpan":{"start":[1030,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1035,13]}},{"children":[],"comments":"A generalization of `zipWith` which accumulates results in some\n`Applicative` functor.\n\n```purescript\nsndChars = zipWithA (\\a b -> charAt 2 (a <> b))\nsndChars [\"a\", \"b\"] [\"A\", \"B\"] = Nothing -- since \"aA\" has no 3rd char\nsndChars [\"aa\", \"b\"] [\"AA\", \"BBB\"] = Just ['A', 'B']\n```\n\n","title":"zipWithA","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Applicative"],"Applicative"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"c"}]}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"c"}]}}]}]}]}]}]},null]},null]},null]},null]}},"sourceSpan":{"start":[1046,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1052,17]}},{"children":[],"comments":"Takes two arrays and returns an array of corresponding pairs.\nIf one input array is short, excess elements of the longer array are\ndiscarded.\n\n```purescript\nzip [1, 2, 3] [\"a\", \"b\"] = [Tuple 1 \"a\", Tuple 2 \"b\"]\n```\n\n","title":"zip","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}}]}]}]},null]},null]}},"sourceSpan":{"start":[1063,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1063,59]}},{"children":[],"comments":"Transforms an array of pairs into an array of first components and an\narray of second components.\n\n```purescript\nunzip [Tuple 1 \"a\", Tuple 2 \"b\"] = Tuple [1, 2] [\"a\", \"b\"]\n```\n\n","title":"unzip","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}}]}]},null]},null]}},"sourceSpan":{"start":[1073,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1073,68]}},{"children":[],"comments":"Perform a fold using a monadic step function.\n\n```purescript\nfoldM (\\x y -> Just (x + y)) 0 [1, 4] = Just 5\n```\n\n","title":"foldM","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Monad"],"Monad"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]}]}]},null]},null]},null]}},"sourceSpan":{"start":[1092,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1092,73]}},{"children":[],"comments":null,"title":"foldRecM","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Monad","Rec","Class"],"MonadRec"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]}]}]},null]},null]},null]}},"sourceSpan":{"start":[1095,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1095,79]}},{"children":[],"comments":"Find the element of an array at the specified index.\n\n```purescript\nunsafePartial $ unsafeIndex [\"a\", \"b\", \"c\"] 1 = \"b\"\n```\n\nUsing `unsafeIndex` with an out-of-range index will not immediately raise a runtime error.\nInstead, the result will be undefined. Most attempts to subsequently use the result will\ncause a runtime error, of course, but this is not guaranteed, and is dependent on the backend;\nsome programs will continue to run as if nothing is wrong. For example, in the JavaScript backend,\nthe expression `unsafePartial (unsafeIndex [true] 1)` has type `Boolean`;\nsince this expression evaluates to `undefined`, attempting to use it in an `if` statement will cause\nthe else branch to be taken.\n","title":"unsafeIndex","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Prim"],"Partial"],"constraintArgs":[],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]},null]}},"sourceSpan":{"start":[1117,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1117,56]}}]}
diff --git a/tests/purs/publish/basic-example/output/Data.Array/externs.json b/tests/purs/publish/basic-example/output/Data.Array/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.Array/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Data","Array"],"efExports":[{"ReExportRef":[{"start":[30,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1120,64]},{"exportSourceImportedFrom":["Data","Foldable"],"exportSourceDefinedIn":["Data","Foldable"]},{"ValueRef":[{"start":[30,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1120,64]},{"Ident":"all"}]}]},{"ReExportRef":[{"start":[30,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1120,64]},{"exportSourceImportedFrom":["Data","Foldable"],"exportSourceDefinedIn":["Data","Foldable"]},{"ValueRef":[{"start":[30,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1120,64]},{"Ident":"any"}]}]},{"ReExportRef":[{"start":[30,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1120,64]},{"exportSourceImportedFrom":["Data","Foldable"],"exportSourceDefinedIn":["Data","Foldable"]},{"ValueRef":[{"start":[30,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1120,64]},{"Ident":"elem"}]}]},{"ReExportRef":[{"start":[30,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1120,64]},{"exportSourceImportedFrom":["Data","Foldable"],"exportSourceDefinedIn":["Data","Foldable"]},{"ValueRef":[{"start":[30,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1120,64]},{"Ident":"find"}]}]},{"ReExportRef":[{"start":[30,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1120,64]},{"exportSourceImportedFrom":["Data","Foldable"],"exportSourceDefinedIn":["Data","Foldable"]},{"ValueRef":[{"start":[30,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1120,64]},{"Ident":"findMap"}]}]},{"ReExportRef":[{"start":[30,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1120,64]},{"exportSourceImportedFrom":["Data","Foldable"],"exportSourceDefinedIn":["Data","Foldable"]},{"ValueRef":[{"start":[30,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1120,64]},{"Ident":"fold"}]}]},{"ReExportRef":[{"start":[30,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1120,64]},{"exportSourceImportedFrom":["Data","Foldable"],"exportSourceDefinedIn":["Data","Foldable"]},{"ValueRef":[{"start":[30,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1120,64]},{"Ident":"foldMap"}]}]},{"ReExportRef":[{"start":[30,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1120,64]},{"exportSourceImportedFrom":["Data","Foldable"],"exportSourceDefinedIn":["Data","Foldable"]},{"ValueRef":[{"start":[30,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1120,64]},{"Ident":"foldl"}]}]},{"ReExportRef":[{"start":[30,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1120,64]},{"exportSourceImportedFrom":["Data","Foldable"],"exportSourceDefinedIn":["Data","Foldable"]},{"ValueRef":[{"start":[30,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1120,64]},{"Ident":"foldr"}]}]},{"ReExportRef":[{"start":[30,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1120,64]},{"exportSourceImportedFrom":["Data","Foldable"],"exportSourceDefinedIn":["Data","Foldable"]},{"ValueRef":[{"start":[30,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1120,64]},{"Ident":"intercalate"}]}]},{"ReExportRef":[{"start":[30,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1120,64]},{"exportSourceImportedFrom":["Data","Foldable"],"exportSourceDefinedIn":["Data","Foldable"]},{"ValueRef":[{"start":[30,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1120,64]},{"Ident":"notElem"}]}]},{"ReExportRef":[{"start":[30,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1120,64]},{"exportSourceImportedFrom":["Data","Traversable"],"exportSourceDefinedIn":["Data","Traversable"]},{"ValueRef":[{"start":[30,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1120,64]},{"Ident":"scanl"}]}]},{"ReExportRef":[{"start":[30,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1120,64]},{"exportSourceImportedFrom":["Data","Traversable"],"exportSourceDefinedIn":["Data","Traversable"]},{"ValueRef":[{"start":[30,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1120,64]},{"Ident":"scanr"}]}]},{"ValueRef":[{"start":[30,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1120,64]},{"Ident":"fromFoldable"}]},{"ValueRef":[{"start":[30,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1120,64]},{"Ident":"toUnfoldable"}]},{"ValueRef":[{"start":[30,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1120,64]},{"Ident":"singleton"}]},{"ValueOpRef":[{"start":[30,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1120,64]},".."]},{"ValueRef":[{"start":[30,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1120,64]},{"Ident":"range"}]},{"ValueRef":[{"start":[30,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1120,64]},{"Ident":"replicate"}]},{"ValueRef":[{"start":[30,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1120,64]},{"Ident":"some"}]},{"ValueRef":[{"start":[30,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1120,64]},{"Ident":"many"}]},{"ValueRef":[{"start":[30,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1120,64]},{"Ident":"null"}]},{"ValueRef":[{"start":[30,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1120,64]},{"Ident":"length"}]},{"ValueOpRef":[{"start":[30,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1120,64]},":"]},{"ValueRef":[{"start":[30,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1120,64]},{"Ident":"cons"}]},{"ValueRef":[{"start":[30,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1120,64]},{"Ident":"snoc"}]},{"ValueRef":[{"start":[30,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1120,64]},{"Ident":"insert"}]},{"ValueRef":[{"start":[30,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1120,64]},{"Ident":"insertBy"}]},{"ValueRef":[{"start":[30,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1120,64]},{"Ident":"head"}]},{"ValueRef":[{"start":[30,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1120,64]},{"Ident":"last"}]},{"ValueRef":[{"start":[30,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1120,64]},{"Ident":"tail"}]},{"ValueRef":[{"start":[30,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1120,64]},{"Ident":"init"}]},{"ValueRef":[{"start":[30,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1120,64]},{"Ident":"uncons"}]},{"ValueRef":[{"start":[30,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1120,64]},{"Ident":"unsnoc"}]},{"ValueOpRef":[{"start":[30,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1120,64]},"!!"]},{"ValueRef":[{"start":[30,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1120,64]},{"Ident":"index"}]},{"ValueRef":[{"start":[30,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1120,64]},{"Ident":"elemIndex"}]},{"ValueRef":[{"start":[30,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1120,64]},{"Ident":"elemLastIndex"}]},{"ValueRef":[{"start":[30,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1120,64]},{"Ident":"findIndex"}]},{"ValueRef":[{"start":[30,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1120,64]},{"Ident":"findLastIndex"}]},{"ValueRef":[{"start":[30,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1120,64]},{"Ident":"insertAt"}]},{"ValueRef":[{"start":[30,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1120,64]},{"Ident":"deleteAt"}]},{"ValueRef":[{"start":[30,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1120,64]},{"Ident":"updateAt"}]},{"ValueRef":[{"start":[30,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1120,64]},{"Ident":"updateAtIndices"}]},{"ValueRef":[{"start":[30,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1120,64]},{"Ident":"modifyAt"}]},{"ValueRef":[{"start":[30,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1120,64]},{"Ident":"modifyAtIndices"}]},{"ValueRef":[{"start":[30,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1120,64]},{"Ident":"alterAt"}]},{"ValueRef":[{"start":[30,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1120,64]},{"Ident":"reverse"}]},{"ValueRef":[{"start":[30,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1120,64]},{"Ident":"concat"}]},{"ValueRef":[{"start":[30,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1120,64]},{"Ident":"concatMap"}]},{"ValueRef":[{"start":[30,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1120,64]},{"Ident":"filter"}]},{"ValueRef":[{"start":[30,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1120,64]},{"Ident":"partition"}]},{"ValueRef":[{"start":[30,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1120,64]},{"Ident":"filterA"}]},{"ValueRef":[{"start":[30,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1120,64]},{"Ident":"mapMaybe"}]},{"ValueRef":[{"start":[30,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1120,64]},{"Ident":"catMaybes"}]},{"ValueRef":[{"start":[30,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1120,64]},{"Ident":"mapWithIndex"}]},{"ValueRef":[{"start":[30,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1120,64]},{"Ident":"sort"}]},{"ValueRef":[{"start":[30,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1120,64]},{"Ident":"sortBy"}]},{"ValueRef":[{"start":[30,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1120,64]},{"Ident":"sortWith"}]},{"ValueRef":[{"start":[30,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1120,64]},{"Ident":"slice"}]},{"ValueRef":[{"start":[30,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1120,64]},{"Ident":"take"}]},{"ValueRef":[{"start":[30,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1120,64]},{"Ident":"takeEnd"}]},{"ValueRef":[{"start":[30,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1120,64]},{"Ident":"takeWhile"}]},{"ValueRef":[{"start":[30,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1120,64]},{"Ident":"drop"}]},{"ValueRef":[{"start":[30,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1120,64]},{"Ident":"dropEnd"}]},{"ValueRef":[{"start":[30,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1120,64]},{"Ident":"dropWhile"}]},{"ValueRef":[{"start":[30,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1120,64]},{"Ident":"span"}]},{"ValueRef":[{"start":[30,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1120,64]},{"Ident":"group"}]},{"ValueRef":[{"start":[30,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1120,64]},{"Ident":"group'"}]},{"ValueRef":[{"start":[30,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1120,64]},{"Ident":"groupBy"}]},{"ValueRef":[{"start":[30,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1120,64]},{"Ident":"nub"}]},{"ValueRef":[{"start":[30,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1120,64]},{"Ident":"nubEq"}]},{"ValueRef":[{"start":[30,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1120,64]},{"Ident":"nubBy"}]},{"ValueRef":[{"start":[30,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1120,64]},{"Ident":"nubByEq"}]},{"ValueRef":[{"start":[30,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1120,64]},{"Ident":"union"}]},{"ValueRef":[{"start":[30,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1120,64]},{"Ident":"unionBy"}]},{"ValueRef":[{"start":[30,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1120,64]},{"Ident":"delete"}]},{"ValueRef":[{"start":[30,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1120,64]},{"Ident":"deleteBy"}]},{"ValueOpRef":[{"start":[30,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1120,64]},"\\\\"]},{"ValueRef":[{"start":[30,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1120,64]},{"Ident":"difference"}]},{"ValueRef":[{"start":[30,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1120,64]},{"Ident":"intersect"}]},{"ValueRef":[{"start":[30,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1120,64]},{"Ident":"intersectBy"}]},{"ValueRef":[{"start":[30,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1120,64]},{"Ident":"zipWith"}]},{"ValueRef":[{"start":[30,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1120,64]},{"Ident":"zipWithA"}]},{"ValueRef":[{"start":[30,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1120,64]},{"Ident":"zip"}]},{"ValueRef":[{"start":[30,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1120,64]},{"Ident":"unzip"}]},{"ValueRef":[{"start":[30,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1120,64]},{"Ident":"foldM"}]},{"ValueRef":[{"start":[30,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1120,64]},{"Ident":"foldRecM"}]},{"ValueRef":[{"start":[30,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1120,64]},{"Ident":"unsafeIndex"}]},{"ModuleRef":[{"start":[115,5],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[115,19]},["Exports"]]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Prelude"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Control","Alt"],"eiImportType":{"Explicit":[{"ValueOpRef":[{"start":[120,21],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[120,26]},"<|>"]}]},"eiImportedAs":null},{"eiModule":["Control","Alternative"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[121,29],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[121,46]},"Alternative"]}]},"eiImportedAs":null},{"eiModule":["Control","Lazy"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[122,22],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[122,32]},"Lazy"]},{"ValueRef":[{"start":[122,34],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[122,39]},{"Ident":"defer"}]}]},"eiImportedAs":null},{"eiModule":["Control","Monad","Rec","Class"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[123,33],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[123,47]},"MonadRec"]},{"TypeRef":[{"start":[123,49],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[123,57]},"Step",null]},{"ValueRef":[{"start":[123,59],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[123,68]},{"Ident":"tailRecM2"}]}]},"eiImportedAs":null},{"eiModule":["Control","Monad","ST"],"eiImportType":{"Implicit":[]},"eiImportedAs":["ST"]},{"eiModule":["Data","Array","ST"],"eiImportType":{"Implicit":[]},"eiImportedAs":["STA"]},{"eiModule":["Data","Array","ST","Iterator"],"eiImportType":{"Implicit":[]},"eiImportedAs":["STAI"]},{"eiModule":["Data","Array","NonEmpty","Internal"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[127,38],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[127,51]},"NonEmptyArray",[]]}]},"eiImportedAs":null},{"eiModule":["Data","Foldable"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[128,23],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[128,37]},"Foldable"]},{"ValueRef":[{"start":[128,39],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[128,44]},{"Ident":"foldl"}]},{"ValueRef":[{"start":[128,46],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[128,51]},{"Ident":"foldr"}]},{"ValueRef":[{"start":[128,53],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[128,62]},{"Ident":"traverse_"}]}]},"eiImportedAs":null},{"eiModule":["Data","Foldable"],"eiImportType":{"Explicit":[{"ValueRef":[{"start":[129,23],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[129,28]},{"Ident":"foldl"}]},{"ValueRef":[{"start":[129,30],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[129,35]},{"Ident":"foldr"}]},{"ValueRef":[{"start":[129,37],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[129,44]},{"Ident":"foldMap"}]},{"ValueRef":[{"start":[129,46],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[129,50]},{"Ident":"fold"}]},{"ValueRef":[{"start":[129,52],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[129,63]},{"Ident":"intercalate"}]},{"ValueRef":[{"start":[129,65],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[129,69]},{"Ident":"elem"}]},{"ValueRef":[{"start":[129,71],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[129,78]},{"Ident":"notElem"}]},{"ValueRef":[{"start":[129,80],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[129,84]},{"Ident":"find"}]},{"ValueRef":[{"start":[129,86],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[129,93]},{"Ident":"findMap"}]},{"ValueRef":[{"start":[129,95],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[129,98]},{"Ident":"any"}]},{"ValueRef":[{"start":[129,100],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[129,103]},{"Ident":"all"}]}]},"eiImportedAs":["Exports"]},{"eiModule":["Data","Maybe"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[130,20],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[130,29]},"Maybe",null]},{"ValueRef":[{"start":[130,31],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[130,36]},{"Ident":"maybe"}]},{"ValueRef":[{"start":[130,38],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[130,44]},{"Ident":"isJust"}]},{"ValueRef":[{"start":[130,46],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[130,54]},{"Ident":"fromJust"}]}]},"eiImportedAs":null},{"eiModule":["Data","Traversable"],"eiImportType":{"Explicit":[{"ValueRef":[{"start":[131,26],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[131,31]},{"Ident":"scanl"}]},{"ValueRef":[{"start":[131,33],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[131,38]},{"Ident":"scanr"}]}]},"eiImportedAs":["Exports"]},{"eiModule":["Data","Traversable"],"eiImportType":{"Explicit":[{"ValueRef":[{"start":[132,26],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[132,34]},{"Ident":"sequence"}]},{"ValueRef":[{"start":[132,36],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[132,44]},{"Ident":"traverse"}]}]},"eiImportedAs":null},{"eiModule":["Data","Tuple"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[133,20],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[133,29]},"Tuple",null]},{"ValueRef":[{"start":[133,31],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[133,34]},{"Ident":"fst"}]},{"ValueRef":[{"start":[133,36],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[133,39]},{"Ident":"snd"}]}]},"eiImportedAs":null},{"eiModule":["Data","Unfoldable"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[134,25],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[134,41]},"Unfoldable"]},{"ValueRef":[{"start":[134,43],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[134,50]},{"Ident":"unfoldr"}]}]},"eiImportedAs":null},{"eiModule":["Partial","Unsafe"],"eiImportType":{"Explicit":[{"ValueRef":[{"start":[135,24],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[135,37]},{"Ident":"unsafePartial"}]}]},"eiImportedAs":null},{"eiModule":["Unsafe","Coerce"],"eiImportType":{"Explicit":[{"ValueRef":[{"start":[136,23],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[136,35]},{"Ident":"unsafeCoerce"}]}]},"eiImportedAs":null}],"efFixities":[{"efAssociativity":"infix","efPrecedence":8,"efOperator":"..","efAlias":[["Data","Array"],{"Left":{"Ident":"range"}}]},{"efAssociativity":"infixr","efPrecedence":6,"efOperator":":","efAlias":[["Data","Array"],{"Left":{"Ident":"cons"}}]},{"efAssociativity":"infixl","efPrecedence":8,"efOperator":"!!","efAlias":[["Data","Array"],{"Left":{"Ident":"index"}}]},{"efAssociativity":"infix","efPrecedence":5,"efOperator":"\\\\","efAlias":[["Data","Array"],{"Left":{"Ident":"difference"}}]}],"efTypeFixities":[],"efDeclarations":[{"EDValue":{"edValueName":{"Ident":"fromFoldable"},"edValueType":{"annotation":[{"start":[154,17],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[154,51]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[154,27],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[154,51]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[154,27],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[154,37]},[]],"constraintClass":[["Data","Foldable"],"Foldable"],"constraintArgs":[{"annotation":[{"start":[154,36],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[154,37]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[17,34],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,54]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[17,44],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[17,44],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[17,48],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,50]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[17,44],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[154,41],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[154,42]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[17,46],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,47]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[17,51],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[154,46],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[154,51]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[17,53],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,54]},[]],"tag":"TypeVar","contents":"a"}]}]},187]}]},188]}}},{"EDValue":{"edValueName":{"Ident":"toUnfoldable"},"edValueType":{"annotation":[{"start":[139,17],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[139,53]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[139,27],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[139,53]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[139,27],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[139,39]},[]],"constraintClass":[["Data","Unfoldable"],"Unfoldable"],"constraintArgs":[{"annotation":[{"start":[139,38],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[139,39]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[17,34],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,54]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[17,44],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[17,44],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[17,48],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,50]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[17,44],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[139,43],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[139,48]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[17,46],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,47]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[17,51],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[139,52],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[139,53]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[17,53],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,54]},[]],"tag":"TypeVar","contents":"a"}]}]},45]}]},46]}}},{"EDValue":{"edValueName":{"Ident":"singleton"},"edValueType":{"annotation":[{"start":[167,14],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[167,36]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[167,24],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[167,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[167,24],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[167,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[167,26],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[167,28]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[167,24],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[167,25]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[167,29],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[167,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[167,29],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[167,34]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[167,35],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[167,36]},[]],"tag":"TypeVar","contents":"a"}]}]},68]}}},{"EDValue":{"edValueName":{"Ident":"range"},"edValueType":{"annotation":[{"start":[174,25],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[174,48]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[174,25],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[174,48]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[174,29],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[174,31]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[174,25],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[174,28]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[174,32],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[174,48]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[174,32],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[174,48]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[174,36],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[174,38]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[174,32],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[174,35]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[174,39],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[174,48]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[174,39],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[174,44]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[174,45],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[174,48]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]}]}}},{"EDValue":{"edValueName":{"Ident":"replicate"},"edValueType":{"annotation":[{"start":[180,29],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[180,58]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[180,39],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[180,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[180,39],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[180,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[180,43],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[180,45]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[180,39],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[180,42]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[180,46],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[180,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[180,46],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[180,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[180,48],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[180,50]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[180,46],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[180,47]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[180,51],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[180,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[180,51],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[180,56]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[180,57],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[180,58]},[]],"tag":"TypeVar","contents":"a"}]}]}]},null]}}},{"EDValue":{"edValueName":{"Ident":"some"},"edValueType":{"annotation":[{"start":[192,9],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[192,78]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[192,16],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[192,78]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[192,21],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[192,78]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[192,21],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[192,34]},[]],"constraintClass":[["Control","Alternative"],"Alternative"],"constraintArgs":[{"annotation":[{"start":[192,33],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[192,34]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[192,38],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[192,78]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[192,38],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[192,56]},[]],"constraintClass":[["Control","Lazy"],"Lazy"],"constraintArgs":[{"annotation":[{"start":[192,44],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[192,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[192,44],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[192,45]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[192,47],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[192,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[192,47],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[192,52]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[192,53],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[192,54]},[]],"tag":"TypeVar","contents":"a"}]}]}],"constraintData":null},{"annotation":[{"start":[192,60],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[192,78]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[192,60],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[192,78]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[192,64],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[192,66]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[192,60],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[192,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[192,60],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[192,61]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[192,62],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[192,63]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[192,67],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[192,78]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[192,67],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[192,68]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[192,70],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[192,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[192,70],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[192,75]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[192,76],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[192,77]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]}]},95]},96]}}},{"EDValue":{"edValueName":{"Ident":"many"},"edValueType":{"annotation":[{"start":[200,9],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[200,78]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[200,16],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[200,78]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[200,21],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[200,78]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[200,21],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[200,34]},[]],"constraintClass":[["Control","Alternative"],"Alternative"],"constraintArgs":[{"annotation":[{"start":[200,33],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[200,34]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[200,38],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[200,78]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[200,38],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[200,56]},[]],"constraintClass":[["Control","Lazy"],"Lazy"],"constraintArgs":[{"annotation":[{"start":[200,44],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[200,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[200,44],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[200,45]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[200,47],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[200,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[200,47],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[200,52]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[200,53],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[200,54]},[]],"tag":"TypeVar","contents":"a"}]}]}],"constraintData":null},{"annotation":[{"start":[200,60],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[200,78]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[200,60],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[200,78]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[200,64],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[200,66]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[200,60],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[200,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[200,60],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[200,61]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[200,62],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[200,63]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[200,67],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[200,78]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[200,67],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[200,68]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[200,70],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[200,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[200,70],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[200,75]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[200,76],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[200,77]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]}]},102]},103]}}},{"EDValue":{"edValueName":{"Ident":"null"},"edValueType":{"annotation":[{"start":[212,9],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[212,37]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[212,19],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[212,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[212,19],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[212,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[212,27],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[212,29]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[212,19],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[212,26]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[212,19],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[212,24]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[212,25],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[212,26]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[212,30],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[212,37]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]},70]}}},{"EDValue":{"edValueName":{"Ident":"length"},"edValueType":{"annotation":[{"start":[219,26],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[219,50]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[219,36],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[219,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[219,36],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[219,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[219,44],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[219,46]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[219,36],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[219,43]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[219,36],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[219,41]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[219,42],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[219,43]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[219,47],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[219,50]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},null]}}},{"EDValue":{"edValueName":{"Ident":"cons"},"edValueType":{"annotation":[{"start":[232,24],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[232,57]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[232,34],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[232,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[232,34],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[232,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[232,36],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[232,38]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[232,34],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[232,35]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[232,39],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[232,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[232,39],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[232,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[232,47],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[232,49]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[232,39],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[232,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[232,39],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[232,44]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[232,45],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[232,46]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[232,50],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[232,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[232,50],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[232,55]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[232,56],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[232,57]},[]],"tag":"TypeVar","contents":"a"}]}]}]},null]}}},{"EDValue":{"edValueName":{"Ident":"snoc"},"edValueType":{"annotation":[{"start":[249,24],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[249,57]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[249,34],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[249,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[249,34],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[249,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[249,42],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[249,44]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[249,34],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[249,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[249,34],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[249,39]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[249,40],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[249,41]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[249,45],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[249,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[249,45],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[249,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[249,47],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[249,49]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[249,45],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[249,46]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[249,50],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[249,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[249,50],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[249,55]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[249,56],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[249,57]},[]],"tag":"TypeVar","contents":"a"}]}]}]},null]}}},{"EDValue":{"edValueName":{"Ident":"insert"},"edValueType":{"annotation":[{"start":[257,11],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[257,53]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[257,21],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[257,53]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[257,21],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[257,26]},[]],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[{"start":[257,25],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[257,26]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[257,30],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[257,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[257,30],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[257,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[257,32],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[257,34]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[257,30],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[257,31]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[257,35],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[257,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[257,35],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[257,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[257,43],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[257,45]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[257,35],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[257,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[257,35],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[257,40]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[257,41],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[257,42]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[257,46],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[257,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[257,46],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[257,51]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[257,52],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[257,53]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]},226]}}},{"EDValue":{"edValueName":{"Ident":"insertBy"},"edValueType":{"annotation":[{"start":[269,13],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[269,70]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[269,23],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[269,70]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[269,23],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[269,70]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[269,44],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[269,46]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[269,24],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[269,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[269,24],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[269,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[269,26],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[269,28]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[269,24],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[269,25]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[269,29],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[269,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[269,29],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[269,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[269,31],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[269,33]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[269,29],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[269,30]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[269,34],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[269,42]},[]],"tag":"TypeConstructor","contents":[["Data","Ordering"],"Ordering"]}]}]}]},{"annotation":[{"start":[269,47],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[269,70]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[269,47],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[269,70]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[269,49],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[269,51]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[269,47],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[269,48]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[269,52],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[269,70]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[269,52],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[269,70]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[269,60],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[269,62]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[269,52],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[269,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[269,52],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[269,57]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[269,58],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[269,59]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[269,63],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[269,70]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[269,63],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[269,68]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[269,69],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[269,70]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]},223]}}},{"EDValue":{"edValueName":{"Ident":"head"},"edValueType":{"annotation":[{"start":[287,9],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[287,37]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[287,19],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[287,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[287,19],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[287,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[287,27],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[287,29]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[287,19],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[287,26]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[287,19],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[287,24]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[287,25],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[287,26]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[287,30],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[287,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[287,30],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[287,35]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[287,36],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[287,37]},[]],"tag":"TypeVar","contents":"a"}]}]},156]}}},{"EDValue":{"edValueName":{"Ident":"last"},"edValueType":{"annotation":[{"start":[299,9],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[299,37]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[299,19],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[299,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[299,19],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[299,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[299,27],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[299,29]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[299,19],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[299,26]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[299,19],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[299,24]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[299,25],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[299,26]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[299,30],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[299,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[299,30],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[299,35]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[299,36],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[299,37]},[]],"tag":"TypeVar","contents":"a"}]}]},131]}}},{"EDValue":{"edValueName":{"Ident":"tail"},"edValueType":{"annotation":[{"start":[311,9],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[311,45]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[311,19],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[311,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[311,19],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[311,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[311,27],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[311,29]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[311,19],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[311,26]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[311,19],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[311,24]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[311,25],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[311,26]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[311,30],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[311,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[311,30],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[311,35]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[311,37],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[311,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[311,37],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[311,42]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[311,43],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[311,44]},[]],"tag":"TypeVar","contents":"a"}]}]}]},55]}}},{"EDValue":{"edValueName":{"Ident":"init"},"edValueType":{"annotation":[{"start":[323,9],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[323,45]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[323,19],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[323,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[323,19],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[323,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[323,27],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[323,29]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[323,19],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[323,26]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[323,19],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[323,24]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[323,25],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[323,26]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[323,30],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[323,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[323,30],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[323,35]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[323,37],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[323,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[323,37],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[323,42]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[323,43],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[323,44]},[]],"tag":"TypeVar","contents":"a"}]}]}]},117]}}},{"EDValue":{"edValueName":{"Ident":"uncons"},"edValueType":{"annotation":[{"start":[342,11],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[342,68]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[342,21],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[342,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[342,21],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[342,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[342,29],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[342,31]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[342,21],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[342,28]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[342,21],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[342,26]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[342,27],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[342,28]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[342,32],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[342,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[342,32],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[342,37]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[342,38],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[342,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[342,38],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[342,39]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[342,40],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[342,49]},[]],"tag":"RCons","contents":["head",{"annotation":[{"start":[342,48],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[342,49]},[]],"tag":"TypeVar","contents":"a"},{"annotation":[{"start":[342,51],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[342,66]},[]],"tag":"RCons","contents":["tail",{"annotation":[{"start":[342,59],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[342,66]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[342,59],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[342,64]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[342,65],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[342,66]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[342,67],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[342,68]},[]],"tag":"REmpty"}]}]}]}]}]},41]}}},{"EDValue":{"edValueName":{"Ident":"unsnoc"},"edValueType":{"annotation":[{"start":[360,11],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[360,68]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[360,21],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[360,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[360,21],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[360,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[360,29],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[360,31]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[360,21],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[360,28]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[360,21],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[360,26]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[360,27],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[360,28]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[360,32],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[360,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[360,32],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[360,37]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[360,38],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[360,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[360,38],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[360,39]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[360,40],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[360,55]},[]],"tag":"RCons","contents":["init",{"annotation":[{"start":[360,48],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[360,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[360,48],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[360,53]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[360,54],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[360,55]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[360,57],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[360,66]},[]],"tag":"RCons","contents":["last",{"annotation":[{"start":[360,65],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[360,66]},[]],"tag":"TypeVar","contents":"a"},{"annotation":[{"start":[360,67],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[360,68]},[]],"tag":"REmpty"}]}]}]}]}]},134]}}},{"EDValue":{"edValueName":{"Ident":"index"},"edValueType":{"annotation":[{"start":[377,10],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[377,45]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[377,20],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[377,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[377,20],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[377,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[377,28],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[377,30]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[377,20],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[377,27]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[377,20],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[377,25]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[377,26],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[377,27]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[377,31],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[377,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[377,31],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[377,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[377,35],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[377,37]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[377,31],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[377,34]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[377,38],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[377,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[377,38],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[377,43]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[377,44],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[377,45]},[]],"tag":"TypeVar","contents":"a"}]}]}]},122]}}},{"EDValue":{"edValueName":{"Ident":"elemIndex"},"edValueType":{"annotation":[{"start":[406,14],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[406,57]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[406,24],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[406,57]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[406,24],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[406,28]},[]],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[{"start":[406,27],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[406,28]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[406,32],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[406,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[406,32],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[406,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[406,34],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[406,36]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[406,32],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[406,33]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[406,37],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[406,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[406,37],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[406,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[406,45],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[406,47]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[406,37],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[406,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[406,37],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[406,42]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[406,43],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[406,44]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[406,48],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[406,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[406,48],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[406,53]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[406,54],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[406,57]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]}]}]},244]}}},{"EDValue":{"edValueName":{"Ident":"elemLastIndex"},"edValueType":{"annotation":[{"start":[416,18],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[416,61]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[416,28],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[416,61]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[416,28],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[416,32]},[]],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[{"start":[416,31],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[416,32]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[416,36],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[416,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[416,36],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[416,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[416,38],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[416,40]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[416,36],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[416,37]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[416,41],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[416,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[416,41],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[416,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[416,49],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[416,51]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[416,41],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[416,48]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[416,41],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[416,46]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[416,47],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[416,48]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[416,52],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[416,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[416,52],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[416,57]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[416,58],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[416,61]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]}]}]},242]}}},{"EDValue":{"edValueName":{"Ident":"findIndex"},"edValueType":{"annotation":[{"start":[426,14],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[426,62]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[426,24],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[426,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[426,24],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[426,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[426,39],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[426,41]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[426,25],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[426,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[426,25],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[426,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[426,27],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[426,29]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[426,25],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[426,26]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[426,30],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[426,37]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]},{"annotation":[{"start":[426,42],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[426,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[426,42],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[426,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[426,50],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[426,52]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[426,42],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[426,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[426,42],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[426,47]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[426,48],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[426,49]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[426,53],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[426,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[426,53],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[426,58]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[426,59],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[426,62]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]}]},228]}}},{"EDValue":{"edValueName":{"Ident":"findLastIndex"},"edValueType":{"annotation":[{"start":[444,18],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[444,66]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[444,28],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[444,66]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[444,28],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[444,66]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[444,43],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[444,45]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[444,29],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[444,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[444,29],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[444,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[444,31],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[444,33]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[444,29],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[444,30]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[444,34],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[444,41]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]},{"annotation":[{"start":[444,46],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[444,66]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[444,46],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[444,66]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[444,54],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[444,56]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[444,46],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[444,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[444,46],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[444,51]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[444,52],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[444,53]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[444,57],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[444,66]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[444,57],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[444,62]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[444,63],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[444,66]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]}]},214]}}},{"EDValue":{"edValueName":{"Ident":"insertAt"},"edValueType":{"annotation":[{"start":[463,13],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[463,61]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[463,23],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[463,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[463,23],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[463,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[463,27],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[463,29]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[463,23],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[463,26]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[463,30],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[463,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[463,30],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[463,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[463,32],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[463,34]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[463,30],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[463,31]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[463,35],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[463,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[463,35],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[463,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[463,43],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[463,45]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[463,35],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[463,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[463,35],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[463,40]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[463,41],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[463,42]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[463,46],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[463,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[463,46],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[463,51]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[463,53],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[463,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[463,53],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[463,58]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[463,59],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[463,60]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]}]},108]}}},{"EDValue":{"edValueName":{"Ident":"deleteAt"},"edValueType":{"annotation":[{"start":[483,13],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[483,56]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[483,23],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[483,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[483,23],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[483,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[483,27],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[483,29]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[483,23],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[483,26]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[483,30],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[483,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[483,30],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[483,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[483,38],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[483,40]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[483,30],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[483,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[483,30],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[483,35]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[483,36],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[483,37]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[483,41],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[483,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[483,41],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[483,46]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[483,48],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[483,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[483,48],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[483,53]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[483,54],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[483,55]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]},252]}}},{"EDValue":{"edValueName":{"Ident":"updateAt"},"edValueType":{"annotation":[{"start":[502,13],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[502,61]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[502,23],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[502,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[502,23],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[502,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[502,27],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[502,29]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[502,23],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[502,26]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[502,30],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[502,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[502,30],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[502,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[502,32],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[502,34]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[502,30],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[502,31]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[502,35],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[502,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[502,35],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[502,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[502,43],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[502,45]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[502,35],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[502,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[502,35],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[502,40]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[502,41],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[502,42]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[502,46],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[502,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[502,46],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[502,51]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[502,53],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[502,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[502,53],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[502,58]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[502,59],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[502,60]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]}]},29]}}},{"EDValue":{"edValueName":{"Ident":"updateAtIndices"},"edValueType":{"annotation":[{"start":[661,20],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[661,83]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[661,27],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[661,83]},[]],"tag":"ForAll","contents":["t",{"annotation":[{"start":[661,32],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[661,83]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[661,32],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[661,42]},[]],"constraintClass":[["Data","Foldable"],"Foldable"],"constraintArgs":[{"annotation":[{"start":[661,41],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[661,42]},[]],"tag":"TypeVar","contents":"t"}],"constraintData":null},{"annotation":[{"start":[661,46],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[661,83]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[661,46],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[661,83]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[661,62],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[661,64]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[661,46],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[661,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[661,46],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[661,47]},[]],"tag":"TypeVar","contents":"t"},{"annotation":[{"start":[661,49],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[661,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[661,49],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[661,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[661,49],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[661,54]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[661,55],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[661,58]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[661,59],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[661,60]},[]],"tag":"TypeVar","contents":"a"}]}]}]},{"annotation":[{"start":[661,65],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[661,83]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[661,65],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[661,83]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[661,73],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[661,75]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[661,65],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[661,72]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[661,65],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[661,70]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[661,71],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[661,72]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[661,76],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[661,83]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[661,76],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[661,81]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[661,82],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[661,83]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]},20]},21]}}},{"EDValue":{"edValueName":{"Ident":"modifyAt"},"edValueType":{"annotation":[{"start":[522,13],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[522,68]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[522,23],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[522,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[522,23],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[522,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[522,27],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[522,29]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[522,23],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[522,26]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[522,30],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[522,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[522,30],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[522,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[522,39],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[522,41]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[522,31],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[522,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[522,31],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[522,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[522,33],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[522,35]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[522,31],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[522,32]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[522,36],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[522,37]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[522,42],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[522,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[522,42],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[522,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[522,50],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[522,52]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[522,42],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[522,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[522,42],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[522,47]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[522,48],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[522,49]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[522,53],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[522,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[522,53],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[522,58]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[522,60],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[522,67]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[522,60],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[522,65]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[522,66],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[522,67]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]}]},136]}}},{"EDValue":{"edValueName":{"Ident":"modifyAtIndices"},"edValueType":{"annotation":[{"start":[674,20],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[674,85]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[674,27],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[674,85]},[]],"tag":"ForAll","contents":["t",{"annotation":[{"start":[674,32],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[674,85]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[674,32],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[674,42]},[]],"constraintClass":[["Data","Foldable"],"Foldable"],"constraintArgs":[{"annotation":[{"start":[674,41],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[674,42]},[]],"tag":"TypeVar","contents":"t"}],"constraintData":null},{"annotation":[{"start":[674,46],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[674,85]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[674,46],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[674,85]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[674,52],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[674,54]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[674,46],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[674,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[674,46],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[674,47]},[]],"tag":"TypeVar","contents":"t"},{"annotation":[{"start":[674,48],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[674,51]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]},{"annotation":[{"start":[674,55],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[674,85]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[674,55],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[674,85]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[674,64],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[674,66]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[674,56],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[674,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[674,56],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[674,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[674,58],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[674,60]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[674,56],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[674,57]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[674,61],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[674,62]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[674,67],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[674,85]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[674,67],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[674,85]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[674,75],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[674,77]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[674,67],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[674,74]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[674,67],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[674,72]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[674,73],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[674,74]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[674,78],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[674,85]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[674,78],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[674,83]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[674,84],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[674,85]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]}]},80]},81]}}},{"EDValue":{"edValueName":{"Ident":"alterAt"},"edValueType":{"annotation":[{"start":[541,12],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[541,73]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[541,22],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[541,73]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[541,22],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[541,73]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[541,26],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[541,28]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[541,22],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[541,25]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[541,29],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[541,73]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[541,29],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[541,73]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[541,44],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[541,46]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[541,30],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[541,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[541,30],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[541,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[541,32],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[541,34]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[541,30],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[541,31]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[541,35],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[541,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[541,35],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[541,40]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[541,41],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[541,42]},[]],"tag":"TypeVar","contents":"a"}]}]}]},{"annotation":[{"start":[541,47],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[541,73]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[541,47],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[541,73]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[541,55],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[541,57]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[541,47],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[541,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[541,47],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[541,52]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[541,53],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[541,54]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[541,58],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[541,73]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[541,58],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[541,63]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[541,65],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[541,72]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[541,65],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[541,70]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[541,71],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[541,72]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]}]},287]}}},{"EDValue":{"edValueName":{"Ident":"reverse"},"edValueType":{"annotation":[{"start":[559,27],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[559,55]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[559,37],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[559,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[559,37],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[559,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[559,45],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[559,47]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[559,37],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[559,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[559,37],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[559,42]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[559,43],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[559,44]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[559,48],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[559,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[559,48],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[559,53]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[559,54],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[559,55]},[]],"tag":"TypeVar","contents":"a"}]}]},null]}}},{"EDValue":{"edValueName":{"Ident":"concat"},"edValueType":{"annotation":[{"start":[567,26],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[567,62]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[567,36],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[567,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[567,36],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[567,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[567,52],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[567,54]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[567,36],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[567,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[567,36],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[567,41]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[567,43],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[567,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[567,43],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[567,48]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[567,49],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[567,50]},[]],"tag":"TypeVar","contents":"a"}]}]}]},{"annotation":[{"start":[567,55],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[567,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[567,55],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[567,60]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[567,61],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[567,62]},[]],"tag":"TypeVar","contents":"a"}]}]},null]}}},{"EDValue":{"edValueName":{"Ident":"concatMap"},"edValueType":{"annotation":[{"start":[577,14],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[577,62]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[577,21],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[577,62]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[577,26],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[577,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[577,26],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[577,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[577,41],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[577,43]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[577,27],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[577,39]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[577,27],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[577,39]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[577,29],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[577,31]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[577,27],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[577,28]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[577,32],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[577,39]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[577,32],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[577,37]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[577,38],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[577,39]},[]],"tag":"TypeVar","contents":"b"}]}]}]},{"annotation":[{"start":[577,44],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[577,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[577,44],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[577,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[577,52],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[577,54]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[577,44],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[577,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[577,44],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[577,49]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[577,50],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[577,51]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[577,55],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[577,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[577,55],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[577,60]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[577,61],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[577,62]},[]],"tag":"TypeVar","contents":"b"}]}]}]},272]},273]}}},{"EDValue":{"edValueName":{"Ident":"filter"},"edValueType":{"annotation":[{"start":[587,26],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[587,72]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[587,36],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[587,72]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[587,36],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[587,72]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[587,51],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[587,53]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[587,37],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[587,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[587,37],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[587,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[587,39],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[587,41]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[587,37],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[587,38]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[587,42],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[587,49]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]},{"annotation":[{"start":[587,54],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[587,72]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[587,54],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[587,72]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[587,62],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[587,64]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[587,54],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[587,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[587,54],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[587,59]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[587,60],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[587,61]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[587,65],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[587,72]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[587,65],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[587,70]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[587,71],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[587,72]},[]],"tag":"TypeVar","contents":"a"}]}]}]},null]}}},{"EDValue":{"edValueName":{"Ident":"partition"},"edValueType":{"annotation":[{"start":[598,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[601,39]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[599,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[601,39]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[599,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[601,39]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[600,3],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[600,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[599,7],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[599,19]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[599,7],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[599,19]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[599,9],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[599,11]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[599,7],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[599,8]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[599,12],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[599,19]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]},{"annotation":[{"start":[600,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[601,39]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[600,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[601,39]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[601,3],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[601,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[600,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[600,13]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[600,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[600,11]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[600,12],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[600,13]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[601,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[601,39]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[601,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[601,7]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[601,8],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[601,22]},[]],"tag":"RCons","contents":["yes",{"annotation":[{"start":[601,15],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[601,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[601,15],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[601,20]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[601,21],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[601,22]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[601,24],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[601,37]},[]],"tag":"RCons","contents":["no",{"annotation":[{"start":[601,30],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[601,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[601,30],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[601,35]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[601,36],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[601,37]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[601,38],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[601,39]},[]],"tag":"REmpty"}]}]}]}]}]},null]}}},{"EDValue":{"edValueName":{"Ident":"filterA"},"edValueType":{"annotation":[{"start":[609,12],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[609,83]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[609,19],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[609,83]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[609,24],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[609,83]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[609,24],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[609,37]},[]],"constraintClass":[["Control","Applicative"],"Applicative"],"constraintArgs":[{"annotation":[{"start":[609,36],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[609,37]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[609,41],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[609,83]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[609,41],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[609,83]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[609,58],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[609,60]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[609,42],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[609,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[609,42],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[609,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[609,44],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[609,46]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[609,42],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[609,43]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[609,47],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[609,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[609,47],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[609,48]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[609,49],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[609,56]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]}]},{"annotation":[{"start":[609,61],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[609,83]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[609,61],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[609,83]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[609,69],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[609,71]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[609,61],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[609,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[609,61],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[609,66]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[609,67],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[609,68]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[609,72],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[609,83]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[609,72],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[609,73]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[609,75],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[609,82]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[609,75],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[609,80]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[609,81],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[609,82]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]}]},280]},281]}}},{"EDValue":{"edValueName":{"Ident":"mapMaybe"},"edValueType":{"annotation":[{"start":[625,13],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[625,61]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[625,20],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[625,61]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[625,25],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[625,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[625,25],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[625,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[625,40],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[625,42]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[625,26],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[625,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[625,26],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[625,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[625,28],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[625,30]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[625,26],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[625,27]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[625,31],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[625,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[625,31],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[625,36]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[625,37],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[625,38]},[]],"tag":"TypeVar","contents":"b"}]}]}]},{"annotation":[{"start":[625,43],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[625,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[625,43],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[625,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[625,51],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[625,53]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[625,43],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[625,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[625,43],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[625,48]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[625,49],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[625,50]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[625,54],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[625,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[625,54],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[625,59]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[625,60],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[625,61]},[]],"tag":"TypeVar","contents":"b"}]}]}]},276]},277]}}},{"EDValue":{"edValueName":{"Ident":"catMaybes"},"edValueType":{"annotation":[{"start":[635,14],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[635,50]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[635,24],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[635,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[635,24],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[635,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[635,40],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[635,42]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[635,24],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[635,39]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[635,24],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[635,29]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[635,31],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[635,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[635,31],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[635,36]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[635,37],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[635,38]},[]],"tag":"TypeVar","contents":"a"}]}]}]},{"annotation":[{"start":[635,43],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[635,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[635,43],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[635,48]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[635,49],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[635,50]},[]],"tag":"TypeVar","contents":"a"}]}]},285]}}},{"EDValue":{"edValueName":{"Ident":"mapWithIndex"},"edValueType":{"annotation":[{"start":[648,17],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[648,66]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[648,24],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[648,66]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[648,29],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[648,66]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[648,29],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[648,66]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[648,45],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[648,47]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[648,30],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[648,43]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[648,30],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[648,43]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[648,34],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[648,36]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[648,30],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[648,33]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[648,37],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[648,43]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[648,37],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[648,43]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[648,39],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[648,41]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[648,37],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[648,38]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[648,42],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[648,43]},[]],"tag":"TypeVar","contents":"b"}]}]}]},{"annotation":[{"start":[648,48],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[648,66]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[648,48],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[648,66]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[648,56],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[648,58]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[648,48],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[648,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[648,48],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[648,53]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[648,54],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[648,55]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[648,59],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[648,66]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[648,59],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[648,64]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[648,65],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[648,66]},[]],"tag":"TypeVar","contents":"b"}]}]}]},87]},88]}}},{"EDValue":{"edValueName":{"Ident":"sort"},"edValueType":{"annotation":[{"start":[688,9],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[688,46]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[688,19],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[688,46]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[688,19],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[688,24]},[]],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[{"start":[688,23],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[688,24]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[688,28],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[688,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[688,28],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[688,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[688,36],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[688,38]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[688,28],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[688,35]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[688,28],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[688,33]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[688,34],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[688,35]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[688,39],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[688,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[688,39],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[688,44]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[688,45],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[688,46]},[]],"tag":"TypeVar","contents":"a"}]}]}]},66]}}},{"EDValue":{"edValueName":{"Ident":"sortBy"},"edValueType":{"annotation":[{"start":[699,11],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[699,63]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[699,21],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[699,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[699,21],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[699,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[699,42],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[699,44]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[699,22],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[699,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[699,22],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[699,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[699,24],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[699,26]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[699,22],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[699,23]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[699,27],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[699,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[699,27],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[699,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[699,29],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[699,31]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[699,27],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[699,28]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[699,32],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[699,40]},[]],"tag":"TypeConstructor","contents":[["Data","Ordering"],"Ordering"]}]}]}]},{"annotation":[{"start":[699,45],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[699,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[699,45],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[699,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[699,53],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[699,55]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[699,45],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[699,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[699,45],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[699,50]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[699,51],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[699,52]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[699,56],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[699,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[699,56],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[699,61]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[699,62],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[699,63]},[]],"tag":"TypeVar","contents":"a"}]}]}]},59]}}},{"EDValue":{"edValueName":{"Ident":"sortWith"},"edValueType":{"annotation":[{"start":[715,13],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[715,64]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[715,20],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[715,64]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[715,25],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[715,64]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[715,25],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[715,30]},[]],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[{"start":[715,29],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[715,30]},[]],"tag":"TypeVar","contents":"b"}],"constraintData":null},{"annotation":[{"start":[715,34],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[715,64]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[715,34],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[715,64]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[715,43],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[715,45]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[715,35],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[715,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[715,35],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[715,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[715,37],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[715,39]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[715,35],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[715,36]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[715,40],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[715,41]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[715,46],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[715,64]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[715,46],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[715,64]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[715,54],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[715,56]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[715,46],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[715,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[715,46],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[715,51]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[715,52],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[715,53]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[715,57],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[715,64]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[715,57],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[715,62]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[715,63],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[715,64]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]},62]},63]}}},{"EDValue":{"edValueName":{"Ident":"slice"},"edValueType":{"annotation":[{"start":[733,25],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[733,67]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[733,35],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[733,67]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[733,35],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[733,67]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[733,39],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[733,41]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[733,35],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[733,38]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[733,42],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[733,67]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[733,42],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[733,67]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[733,46],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[733,48]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[733,42],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[733,45]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[733,49],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[733,67]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[733,49],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[733,67]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[733,57],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[733,59]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[733,49],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[733,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[733,49],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[733,54]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[733,55],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[733,56]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[733,60],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[733,67]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[733,60],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[733,65]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[733,66],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[733,67]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]},null]}}},{"EDValue":{"edValueName":{"Ident":"take"},"edValueType":{"annotation":[{"start":[745,24],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[745,59]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[745,34],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[745,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[745,34],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[745,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[745,38],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[745,40]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[745,34],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[745,37]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[745,41],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[745,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[745,41],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[745,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[745,49],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[745,51]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[745,41],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[745,48]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[745,41],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[745,46]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[745,47],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[745,48]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[745,52],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[745,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[745,52],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[745,57]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[745,58],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[745,59]},[]],"tag":"TypeVar","contents":"a"}]}]}]},null]}}},{"EDValue":{"edValueName":{"Ident":"takeEnd"},"edValueType":{"annotation":[{"start":[757,12],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[757,47]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[757,22],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[757,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[757,22],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[757,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[757,26],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[757,28]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[757,22],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[757,25]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[757,29],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[757,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[757,29],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[757,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[757,37],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[757,39]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[757,29],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[757,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[757,29],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[757,34]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[757,35],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[757,36]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[757,40],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[757,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[757,40],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[757,45]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[757,46],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[757,47]},[]],"tag":"TypeVar","contents":"a"}]}]}]},51]}}},{"EDValue":{"edValueName":{"Ident":"takeWhile"},"edValueType":{"annotation":[{"start":[768,14],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[768,60]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[768,24],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[768,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[768,24],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[768,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[768,39],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[768,41]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[768,25],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[768,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[768,25],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[768,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[768,27],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[768,29]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[768,25],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[768,26]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[768,30],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[768,37]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]},{"annotation":[{"start":[768,42],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[768,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[768,42],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[768,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[768,50],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[768,52]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[768,42],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[768,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[768,42],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[768,47]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[768,48],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[768,49]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[768,53],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[768,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[768,53],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[768,58]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[768,59],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[768,60]},[]],"tag":"TypeVar","contents":"a"}]}]}]},143]}}},{"EDValue":{"edValueName":{"Ident":"drop"},"edValueType":{"annotation":[{"start":[780,24],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[780,59]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[780,34],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[780,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[780,34],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[780,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[780,38],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[780,40]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[780,34],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[780,37]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[780,41],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[780,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[780,41],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[780,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[780,49],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[780,51]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[780,41],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[780,48]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[780,41],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[780,46]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[780,47],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[780,48]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[780,52],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[780,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[780,52],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[780,57]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[780,58],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[780,59]},[]],"tag":"TypeVar","contents":"a"}]}]}]},null]}}},{"EDValue":{"edValueName":{"Ident":"dropEnd"},"edValueType":{"annotation":[{"start":[791,12],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[791,47]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[791,22],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[791,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[791,22],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[791,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[791,26],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[791,28]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[791,22],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[791,25]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[791,29],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[791,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[791,29],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[791,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[791,37],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[791,39]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[791,29],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[791,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[791,29],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[791,34]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[791,35],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[791,36]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[791,40],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[791,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[791,40],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[791,45]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[791,46],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[791,47]},[]],"tag":"TypeVar","contents":"a"}]}]}]},248]}}},{"EDValue":{"edValueName":{"Ident":"dropWhile"},"edValueType":{"annotation":[{"start":[801,14],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[801,60]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[801,24],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[801,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[801,24],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[801,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[801,39],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[801,41]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[801,25],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[801,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[801,25],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[801,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[801,27],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[801,29]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[801,25],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[801,26]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[801,30],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[801,37]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]},{"annotation":[{"start":[801,42],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[801,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[801,42],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[801,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[801,50],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[801,52]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[801,42],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[801,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[801,42],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[801,47]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[801,48],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[801,49]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[801,53],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[801,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[801,53],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[801,58]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[801,59],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[801,60]},[]],"tag":"TypeVar","contents":"a"}]}]}]},246]}}},{"EDValue":{"edValueName":{"Ident":"span"},"edValueType":{"annotation":[{"start":[816,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[819,42]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[817,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[819,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[817,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[819,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[818,3],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[818,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[817,7],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[817,19]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[817,7],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[817,19]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[817,9],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[817,11]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[817,7],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[817,8]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[817,12],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[817,19]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]},{"annotation":[{"start":[818,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[819,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[818,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[819,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[819,3],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[819,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[818,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[818,13]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[818,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[818,11]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[818,12],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[818,13]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[819,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[819,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[819,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[819,7]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[819,8],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[819,23]},[]],"tag":"RCons","contents":["init",{"annotation":[{"start":[819,16],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[819,23]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[819,16],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[819,21]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[819,22],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[819,23]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[819,25],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[819,40]},[]],"tag":"RCons","contents":["rest",{"annotation":[{"start":[819,33],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[819,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[819,33],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[819,38]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[819,39],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[819,40]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[819,41],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[819,42]},[]],"tag":"REmpty"}]}]}]}]}]},138]}}},{"EDValue":{"edValueName":{"Ident":"group"},"edValueType":{"annotation":[{"start":[843,10],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[843,62]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[843,20],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[843,62]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[843,20],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[843,24]},[]],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[{"start":[843,23],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[843,24]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[843,28],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[843,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[843,28],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[843,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[843,36],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[843,38]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[843,28],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[843,35]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[843,28],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[843,33]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[843,34],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[843,35]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[843,39],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[843,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[843,39],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[843,44]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[843,46],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[843,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[843,46],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[843,59]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[{"start":[843,60],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[843,61]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]},183]}}},{"EDValue":{"edValueName":{"Ident":"group'"},"edValueType":{"annotation":[{"start":[851,11],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[851,64]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[851,21],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[851,64]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[851,21],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[851,26]},[]],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[{"start":[851,25],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[851,26]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[851,30],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[851,64]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[851,30],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[851,64]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[851,38],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[851,40]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[851,30],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[851,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[851,30],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[851,35]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[851,36],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[851,37]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[851,41],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[851,64]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[851,41],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[851,46]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[851,48],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[851,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[851,48],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[851,61]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[{"start":[851,62],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[851,63]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]},185]}}},{"EDValue":{"edValueName":{"Ident":"groupBy"},"edValueType":{"annotation":[{"start":[862,12],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[862,79]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[862,22],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[862,79]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[862,22],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[862,79]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[862,42],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[862,44]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[862,23],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[862,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[862,23],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[862,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[862,25],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[862,27]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[862,23],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[862,24]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[862,28],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[862,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[862,28],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[862,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[862,30],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[862,32]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[862,28],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[862,29]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[862,33],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[862,40]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]}]},{"annotation":[{"start":[862,45],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[862,79]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[862,45],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[862,79]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[862,53],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[862,55]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[862,45],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[862,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[862,45],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[862,50]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[862,51],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[862,52]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[862,56],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[862,79]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[862,56],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[862,61]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[862,63],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[862,78]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[862,63],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[862,76]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[{"start":[862,77],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[862,78]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]},170]}}},{"EDValue":{"edValueName":{"Ident":"nub"},"edValueType":{"annotation":[{"start":[881,8],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[881,45]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[881,18],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[881,45]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[881,18],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[881,23]},[]],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[{"start":[881,22],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[881,23]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[881,27],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[881,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[881,27],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[881,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[881,35],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[881,37]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[881,27],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[881,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[881,27],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[881,32]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[881,33],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[881,34]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[881,38],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[881,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[881,38],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[881,43]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[881,44],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[881,45]},[]],"tag":"TypeVar","contents":"a"}]}]}]},168]}}},{"EDValue":{"edValueName":{"Ident":"nubEq"},"edValueType":{"annotation":[{"start":[892,10],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[892,46]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[892,20],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[892,46]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[892,20],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[892,24]},[]],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[{"start":[892,23],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[892,24]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[892,28],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[892,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[892,28],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[892,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[892,36],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[892,38]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[892,28],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[892,35]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[892,28],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[892,33]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[892,34],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[892,35]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[892,39],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[892,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[892,39],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[892,44]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[892,45],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[892,46]},[]],"tag":"TypeVar","contents":"a"}]}]}]},78]}}},{"EDValue":{"edValueName":{"Ident":"nubBy"},"edValueType":{"annotation":[{"start":[902,10],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[902,62]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[902,20],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[902,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[902,20],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[902,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[902,41],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[902,43]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[902,21],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[902,39]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[902,21],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[902,39]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[902,23],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[902,25]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[902,21],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[902,22]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[902,26],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[902,39]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[902,26],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[902,39]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[902,28],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[902,30]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[902,26],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[902,27]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[902,31],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[902,39]},[]],"tag":"TypeConstructor","contents":[["Data","Ordering"],"Ordering"]}]}]}]},{"annotation":[{"start":[902,44],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[902,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[902,44],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[902,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[902,52],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[902,54]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[902,44],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[902,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[902,44],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[902,49]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[902,50],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[902,51]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[902,55],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[902,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[902,55],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[902,60]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[902,61],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[902,62]},[]],"tag":"TypeVar","contents":"a"}]}]}]},158]}}},{"EDValue":{"edValueName":{"Ident":"nubByEq"},"edValueType":{"annotation":[{"start":[927,12],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[927,63]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[927,22],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[927,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[927,22],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[927,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[927,42],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[927,44]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[927,23],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[927,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[927,23],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[927,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[927,25],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[927,27]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[927,23],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[927,24]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[927,28],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[927,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[927,28],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[927,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[927,30],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[927,32]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[927,28],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[927,29]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[927,33],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[927,40]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]}]},{"annotation":[{"start":[927,45],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[927,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[927,45],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[927,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[927,53],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[927,55]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[927,45],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[927,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[927,45],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[927,50]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[927,51],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[927,52]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[927,56],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[927,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[927,56],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[927,61]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[927,62],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[927,63]},[]],"tag":"TypeVar","contents":"a"}]}]}]},73]}}},{"EDValue":{"edValueName":{"Ident":"union"},"edValueType":{"annotation":[{"start":[942,10],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[942,57]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[942,20],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[942,57]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[942,20],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[942,24]},[]],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[{"start":[942,23],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[942,24]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[942,28],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[942,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[942,28],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[942,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[942,36],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[942,38]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[942,28],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[942,35]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[942,28],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[942,33]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[942,34],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[942,35]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[942,39],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[942,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[942,39],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[942,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[942,47],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[942,49]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[942,39],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[942,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[942,39],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[942,44]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[942,45],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[942,46]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[942,50],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[942,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[942,50],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[942,55]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[942,56],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[942,57]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]},266]}}},{"EDValue":{"edValueName":{"Ident":"unionBy"},"edValueType":{"annotation":[{"start":[954,12],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[954,74]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[954,22],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[954,74]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[954,22],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[954,74]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[954,42],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[954,44]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[954,23],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[954,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[954,23],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[954,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[954,25],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[954,27]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[954,23],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[954,24]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[954,28],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[954,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[954,28],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[954,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[954,30],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[954,32]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[954,28],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[954,29]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[954,33],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[954,40]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]}]},{"annotation":[{"start":[954,45],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[954,74]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[954,45],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[954,74]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[954,53],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[954,55]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[954,45],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[954,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[954,45],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[954,50]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[954,51],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[954,52]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[954,56],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[954,74]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[954,56],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[954,74]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[954,64],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[954,66]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[954,56],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[954,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[954,56],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[954,61]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[954,62],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[954,63]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[954,67],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[954,74]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[954,67],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[954,72]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[954,73],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[954,74]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]},264]}}},{"EDValue":{"edValueName":{"Ident":"delete"},"edValueType":{"annotation":[{"start":[966,11],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[966,52]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[966,21],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[966,52]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[966,21],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[966,25]},[]],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[{"start":[966,24],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[966,25]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[966,29],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[966,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[966,29],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[966,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[966,31],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[966,33]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[966,29],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[966,30]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[966,34],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[966,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[966,34],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[966,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[966,42],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[966,44]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[966,34],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[966,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[966,34],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[966,39]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[966,40],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[966,41]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[966,45],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[966,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[966,45],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[966,50]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[966,51],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[966,52]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]},268]}}},{"EDValue":{"edValueName":{"Ident":"deleteBy"},"edValueType":{"annotation":[{"start":[978,13],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[978,69]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[978,23],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[978,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[978,23],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[978,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[978,43],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[978,45]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[978,24],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[978,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[978,24],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[978,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[978,26],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[978,28]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[978,24],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[978,25]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[978,29],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[978,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[978,29],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[978,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[978,31],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[978,33]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[978,29],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[978,30]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[978,34],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[978,41]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]}]},{"annotation":[{"start":[978,46],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[978,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[978,46],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[978,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[978,48],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[978,50]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[978,46],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[978,47]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[978,51],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[978,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[978,51],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[978,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[978,59],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[978,61]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[978,51],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[978,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[978,51],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[978,56]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[978,57],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[978,58]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[978,62],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[978,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[978,62],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[978,67]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[978,68],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[978,69]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]},261]}}},{"EDValue":{"edValueName":{"Ident":"difference"},"edValueType":{"annotation":[{"start":[991,15],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[991,62]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[991,25],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[991,62]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[991,25],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[991,29]},[]],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[{"start":[991,28],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[991,29]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[991,33],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[991,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[991,33],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[991,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[991,41],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[991,43]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[991,33],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[991,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[991,33],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[991,38]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[991,39],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[991,40]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[991,44],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[991,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[991,44],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[991,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[991,52],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[991,54]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[991,44],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[991,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[991,44],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[991,49]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[991,50],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[991,51]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[991,55],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[991,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[991,55],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[991,60]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[991,61],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[991,62]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]},270]}}},{"EDValue":{"edValueName":{"Ident":"intersect"},"edValueType":{"annotation":[{"start":[1004,14],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1004,61]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[1004,24],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1004,61]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[1004,24],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1004,28]},[]],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[{"start":[1004,27],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1004,28]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[1004,32],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1004,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[1004,32],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1004,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[1004,40],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1004,42]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[1004,32],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1004,39]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[1004,32],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1004,37]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[1004,38],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1004,39]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[1004,43],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1004,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[1004,43],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1004,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[1004,51],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1004,53]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[1004,43],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1004,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[1004,43],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1004,48]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[1004,49],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1004,50]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[1004,54],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1004,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[1004,54],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1004,59]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[1004,60],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1004,61]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]},240]}}},{"EDValue":{"edValueName":{"Ident":"intersectBy"},"edValueType":{"annotation":[{"start":[1017,16],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1017,78]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[1017,26],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1017,78]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[1017,26],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1017,78]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[1017,46],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1017,48]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[1017,27],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1017,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[1017,27],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1017,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[1017,29],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1017,31]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[1017,27],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1017,28]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[1017,32],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1017,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[1017,32],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1017,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[1017,34],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1017,36]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[1017,32],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1017,33]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[1017,37],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1017,44]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]}]},{"annotation":[{"start":[1017,49],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1017,78]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[1017,49],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1017,78]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[1017,57],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1017,59]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[1017,49],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1017,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[1017,49],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1017,54]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[1017,55],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1017,56]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[1017,60],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1017,78]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[1017,60],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1017,78]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[1017,68],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1017,70]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[1017,60],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1017,67]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[1017,60],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1017,65]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[1017,66],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1017,67]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[1017,71],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1017,78]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[1017,71],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1017,76]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[1017,77],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1017,78]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]},237]}}},{"EDValue":{"edValueName":{"Ident":"zipWith"},"edValueType":{"annotation":[{"start":[1031,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1035,13]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[1031,13],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1035,13]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[1031,13],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1035,13]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[1032,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1035,13]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[1032,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1035,13]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[1033,3],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1033,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[1032,7],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1032,18]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[1032,7],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1032,18]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[1032,9],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1032,11]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[1032,7],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1032,8]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[1032,12],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1032,18]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[1032,12],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1032,18]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[1032,14],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1032,16]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[1032,12],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1032,13]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[1032,17],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1032,18]},[]],"tag":"TypeVar","contents":"c"}]}]}]},{"annotation":[{"start":[1033,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1035,13]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[1033,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1035,13]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[1034,3],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1034,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[1033,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1033,13]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[1033,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1033,11]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[1033,12],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1033,13]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[1034,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1035,13]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[1034,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1035,13]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[1035,3],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1035,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[1034,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1034,13]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[1034,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1034,11]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[1034,12],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1034,13]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[1035,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1035,13]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[1035,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1035,11]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[1035,12],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1035,13]},[]],"tag":"TypeVar","contents":"c"}]}]}]}]},null]},null]},null]}}},{"EDValue":{"edValueName":{"Ident":"zipWithA"},"edValueType":{"annotation":[{"start":[1047,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1052,17]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[1047,13],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1052,17]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[1047,13],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1052,17]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[1047,13],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1052,17]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[1048,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1052,17]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[1048,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1048,19]},[]],"constraintClass":[["Control","Applicative"],"Applicative"],"constraintArgs":[{"annotation":[{"start":[1048,18],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1048,19]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[1049,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1052,17]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[1049,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1052,17]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[1050,3],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1050,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[1049,7],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1049,20]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[1049,7],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1049,20]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[1049,9],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1049,11]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[1049,7],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1049,8]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[1049,12],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1049,20]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[1049,12],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1049,20]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[1049,14],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1049,16]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[1049,12],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1049,13]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[1049,17],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1049,20]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[1049,17],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1049,18]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[1049,19],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1049,20]},[]],"tag":"TypeVar","contents":"c"}]}]}]}]},{"annotation":[{"start":[1050,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1052,17]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[1050,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1052,17]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[1051,3],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1051,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[1050,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1050,13]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[1050,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1050,11]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[1050,12],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1050,13]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[1051,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1052,17]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[1051,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1052,17]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[1052,3],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1052,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[1051,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1051,13]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[1051,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1051,11]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[1051,12],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1051,13]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[1052,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1052,17]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[1052,6],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1052,7]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[1052,9],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1052,16]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[1052,9],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1052,14]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[1052,15],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1052,16]},[]],"tag":"TypeVar","contents":"c"}]}]}]}]}]}]},0]},1]},2]},3]}}},{"EDValue":{"edValueName":{"Ident":"zip"},"edValueType":{"annotation":[{"start":[1063,8],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1063,59]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[1063,15],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1063,59]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[1063,20],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1063,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[1063,20],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1063,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[1063,28],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1063,30]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[1063,20],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1063,27]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[1063,20],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1063,25]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[1063,26],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1063,27]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[1063,31],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1063,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[1063,31],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1063,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[1063,39],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1063,41]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[1063,31],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1063,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[1063,31],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1063,36]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[1063,37],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1063,38]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[1063,42],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1063,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[1063,42],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1063,47]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[1063,49],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1063,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[1063,49],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1063,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[1063,49],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1063,54]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[1063,55],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1063,56]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[1063,57],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1063,58]},[]],"tag":"TypeVar","contents":"b"}]}]}]}]},11]},12]}}},{"EDValue":{"edValueName":{"Ident":"unzip"},"edValueType":{"annotation":[{"start":[1073,10],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1073,68]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[1073,17],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1073,68]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[1073,22],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1073,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[1073,22],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1073,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[1073,40],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1073,42]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[1073,22],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1073,39]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[1073,22],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1073,27]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[1073,29],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1073,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[1073,29],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1073,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[1073,29],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1073,34]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[1073,35],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1073,36]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[1073,37],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1073,38]},[]],"tag":"TypeVar","contents":"b"}]}]}]},{"annotation":[{"start":[1073,43],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1073,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[1073,43],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1073,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[1073,43],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1073,48]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[1073,50],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1073,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[1073,50],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1073,55]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[1073,56],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1073,57]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[1073,60],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1073,67]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[1073,60],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1073,65]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[1073,66],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1073,67]},[]],"tag":"TypeVar","contents":"b"}]}]}]},145]},146]}}},{"EDValue":{"edValueName":{"Ident":"foldM"},"edValueType":{"annotation":[{"start":[1092,10],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1092,73]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[1092,17],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1092,73]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[1092,17],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1092,73]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[1092,24],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1092,73]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[1092,24],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1092,31]},[]],"constraintClass":[["Control","Monad"],"Monad"],"constraintArgs":[{"annotation":[{"start":[1092,30],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1092,31]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[1092,35],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1092,73]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[1092,35],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1092,73]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[1092,51],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1092,53]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[1092,36],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1092,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[1092,36],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1092,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[1092,38],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1092,40]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[1092,36],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1092,37]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[1092,41],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1092,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[1092,41],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1092,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[1092,43],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1092,45]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[1092,41],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1092,42]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[1092,46],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1092,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[1092,46],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1092,47]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[1092,48],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1092,49]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]},{"annotation":[{"start":[1092,54],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1092,73]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[1092,54],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1092,73]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[1092,56],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1092,58]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[1092,54],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1092,55]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[1092,59],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1092,73]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[1092,59],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1092,73]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[1092,67],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1092,69]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[1092,59],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1092,66]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[1092,59],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1092,64]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[1092,65],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1092,66]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[1092,70],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1092,73]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[1092,70],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1092,71]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[1092,72],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1092,73]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]}]},203]},204]},205]}}},{"EDValue":{"edValueName":{"Ident":"foldRecM"},"edValueType":{"annotation":[{"start":[1095,13],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1095,79]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[1095,20],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1095,79]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[1095,20],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1095,79]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[1095,27],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1095,79]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[1095,27],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1095,37]},[]],"constraintClass":[["Control","Monad","Rec","Class"],"MonadRec"],"constraintArgs":[{"annotation":[{"start":[1095,36],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1095,37]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[1095,41],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1095,79]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[1095,41],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1095,79]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[1095,57],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1095,59]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[1095,42],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1095,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[1095,42],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1095,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[1095,44],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1095,46]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[1095,42],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1095,43]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[1095,47],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1095,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[1095,47],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1095,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[1095,49],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1095,51]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[1095,47],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1095,48]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[1095,52],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1095,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[1095,52],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1095,53]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[1095,54],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1095,55]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]},{"annotation":[{"start":[1095,60],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1095,79]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[1095,60],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1095,79]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[1095,62],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1095,64]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[1095,60],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1095,61]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[1095,65],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1095,79]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[1095,65],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1095,79]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[1095,73],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1095,75]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[1095,65],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1095,72]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[1095,65],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1095,70]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[1095,71],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1095,72]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[1095,76],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1095,79]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[1095,76],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1095,77]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[1095,78],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1095,79]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]}]},195]},196]},197]}}},{"EDValue":{"edValueName":{"Ident":"unsafeIndex"},"edValueType":{"annotation":[{"start":[1117,16],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1117,56]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[1117,26],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1117,56]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[1117,26],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1117,33]},[]],"constraintClass":[["Prim"],"Partial"],"constraintArgs":[],"constraintData":null},{"annotation":[{"start":[1117,37],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1117,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[1117,37],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1117,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[1117,45],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1117,47]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[1117,37],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1117,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[1117,37],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1117,42]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[1117,43],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1117,44]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[1117,48],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1117,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[1117,48],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1117,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[1117,52],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1117,54]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[1117,48],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1117,51]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[1117,55],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1117,56]},[]],"tag":"TypeVar","contents":"a"}]}]}]},38]}}}],"efSourceSpan":{"start":[30,1],"name":"../../../support/bower_components/purescript-arrays/src/Data/Array.purs","end":[1120,64]}}
diff --git a/tests/purs/publish/basic-example/output/Data.Bifoldable/docs.json b/tests/purs/publish/basic-example/output/Data.Bifoldable/docs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.Bifoldable/docs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"reExports":[],"name":"Data.Bifoldable","comments":null,"declarations":[{"children":[{"comments":null,"title":"bifoldr","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"p"},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]}]}]}]},null]},null]},null]}},"sourceSpan":{"start":[36,3],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[36,77]}},{"comments":null,"title":"bifoldl","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"p"},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]}]}]}]},null]},null]},null]}},"sourceSpan":{"start":[37,3],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[37,77]}},{"comments":null,"title":"bifoldMap","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Monoid"],"Monoid"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"m"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"m"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"p"},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[],"tag":"TypeVar","contents":"m"}]}]}]}]},null]},null]},null]}},"sourceSpan":{"start":[38,3],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[38,76]}},{"comments":null,"title":"bifoldableClown","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Foldable"],"Foldable"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Bifoldable"],"Bifoldable"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Bifunctor","Clown"],"Clown"]},{"annotation":[],"tag":"TypeVar","contents":"f"}]}]}},"sourceSpan":{"start":[40,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[43,40]}},{"comments":null,"title":"bifoldableJoker","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Foldable"],"Foldable"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Bifoldable"],"Bifoldable"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Bifunctor","Joker"],"Joker"]},{"annotation":[],"tag":"TypeVar","contents":"f"}]}]}},"sourceSpan":{"start":[45,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[48,40]}},{"comments":null,"title":"bifoldableFlip","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Bifoldable"],"Bifoldable"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"p"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Bifoldable"],"Bifoldable"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Bifunctor","Flip"],"Flip"]},{"annotation":[],"tag":"TypeVar","contents":"p"}]}]}},"sourceSpan":{"start":[50,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[53,43]}},{"comments":null,"title":"bifoldableProduct","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Bifoldable"],"Bifoldable"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","Bifoldable"],"Bifoldable"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"g"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Bifoldable"],"Bifoldable"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Bifunctor","Product"],"Product"]},{"annotation":[],"tag":"TypeVar","contents":"f"}]},{"annotation":[],"tag":"TypeVar","contents":"g"}]}]}},"sourceSpan":{"start":[55,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[58,67]}},{"comments":null,"title":"bifoldableWrap","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Bifoldable"],"Bifoldable"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"p"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Bifoldable"],"Bifoldable"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Bifunctor","Wrap"],"Wrap"]},{"annotation":[],"tag":"TypeVar","contents":"p"}]}]}},"sourceSpan":{"start":[60,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[63,43]}}],"comments":"`Bifoldable` represents data structures with two type arguments which can be\nfolded.\n\nA fold for such a structure requires two step functions, one for each type\nargument. Type class instances should choose the appropriate step function based\non the type of the element encountered at each point of the fold.\n\nDefault implementations are provided by the following functions:\n\n- `bifoldrDefault`\n- `bifoldlDefault`\n- `bifoldMapDefaultR`\n- `bifoldMapDefaultL`\n\nNote: some combinations of the default implementations are unsafe to\nuse together - causing a non-terminating mutually recursive cycle.\nThese combinations are documented per function.\n","title":"Bifoldable","info":{"fundeps":[],"arguments":[["p",null]],"declType":"typeClass","superclasses":[]},"sourceSpan":{"start":[35,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[38,76]}},{"children":[],"comments":"A default implementation of `bifoldr` using `bifoldMap`.\n\nNote: when defining a `Bifoldable` instance, this function is unsafe to\nuse in combination with `bifoldMapDefaultR`.\n","title":"bifoldrDefault","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["p",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Bifoldable"],"Bifoldable"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"p"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"p"},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]}]}]}]}]},null]},null]},null]},null]}},"sourceSpan":{"start":[69,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[76,7]}},{"children":[],"comments":"A default implementation of `bifoldl` using `bifoldMap`.\n\nNote: when defining a `Bifoldable` instance, this function is unsafe to\nuse in combination with `bifoldMapDefaultL`.\n","title":"bifoldlDefault","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["p",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Bifoldable"],"Bifoldable"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"p"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"p"},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]}]}]}]}]},null]},null]},null]},null]}},"sourceSpan":{"start":[83,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[90,7]}},{"children":[],"comments":"A default implementation of `bifoldMap` using `bifoldr`.\n\nNote: when defining a `Bifoldable` instance, this function is unsafe to\nuse in combination with `bifoldrDefault`.\n","title":"bifoldMapDefaultR","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ForAll","contents":["p",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Bifoldable"],"Bifoldable"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"p"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Monoid"],"Monoid"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"m"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"m"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"p"},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[],"tag":"TypeVar","contents":"m"}]}]}]}]}]},null]},null]},null]},null]}},"sourceSpan":{"start":[101,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[108,7]}},{"children":[],"comments":"A default implementation of `bifoldMap` using `bifoldl`.\n\nNote: when defining a `Bifoldable` instance, this function is unsafe to\nuse in combination with `bifoldlDefault`.\n","title":"bifoldMapDefaultL","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ForAll","contents":["p",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Bifoldable"],"Bifoldable"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"p"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Monoid"],"Monoid"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"m"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"m"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"p"},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[],"tag":"TypeVar","contents":"m"}]}]}]}]}]},null]},null]},null]},null]}},"sourceSpan":{"start":[115,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[122,7]}},{"children":[],"comments":"Fold a data structure, accumulating values in a monoidal type.\n","title":"bifold","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ForAll","contents":["t",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Bifoldable"],"Bifoldable"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"t"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Monoid"],"Monoid"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"t"},{"annotation":[],"tag":"TypeVar","contents":"m"}]},{"annotation":[],"tag":"TypeVar","contents":"m"}]}]},{"annotation":[],"tag":"TypeVar","contents":"m"}]}]}]},null]},null]}},"sourceSpan":{"start":[127,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[127,61]}},{"children":[],"comments":"Traverse a data structure, accumulating effects using an `Applicative` functor,\nignoring the final result.\n","title":"bitraverse_","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["d",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["t",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Bifoldable"],"Bifoldable"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"t"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Applicative"],"Applicative"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"c"}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"d"}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"t"},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}]}]}]}]},null]},null]},null]},null]},null]},null]}},"sourceSpan":{"start":[132,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[139,12]}},{"children":[],"comments":"A version of `bitraverse_` with the data structure as the first argument.\n","title":"bifor_","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["d",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["t",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Bifoldable"],"Bifoldable"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"t"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Applicative"],"Applicative"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"t"},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"c"}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"d"}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}]}]}]}]},null]},null]},null]},null]},null]},null]}},"sourceSpan":{"start":[143,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[150,12]}},{"children":[],"comments":"Collapse a data structure, collecting effects using an `Applicative` functor,\nignoring the final result.\n","title":"bisequence_","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["t",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Bifoldable"],"Bifoldable"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"t"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Applicative"],"Applicative"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"t"},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}]}]},null]},null]},null]},null]}},"sourceSpan":{"start":[155,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[160,12]}},{"children":[],"comments":"Test whether a predicate holds at any position in a data structure.\n","title":"biany","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["t",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Bifoldable"],"Bifoldable"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"t"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","BooleanAlgebra"],"BooleanAlgebra"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"c"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"t"},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]}]}]}]}]},null]},null]},null]},null]}},"sourceSpan":{"start":[164,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[171,7]}},{"children":[],"comments":"Test whether a predicate holds at all positions in a data structure.\n","title":"biall","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["t",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Bifoldable"],"Bifoldable"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"t"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","BooleanAlgebra"],"BooleanAlgebra"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"c"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"t"},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]}]}]}]}]},null]},null]},null]},null]}},"sourceSpan":{"start":[175,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[182,7]}}]}
diff --git a/tests/purs/publish/basic-example/output/Data.Bifoldable/externs.json b/tests/purs/publish/basic-example/output/Data.Bifoldable/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.Bifoldable/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Data","Bifoldable"],"efExports":[{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[183,59]},{"Ident":"bifoldMap"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[183,59]},{"Ident":"bifoldl"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[183,59]},{"Ident":"bifoldr"}]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[183,59]},"Bifoldable"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[183,59]},{"Ident":"bifoldrDefault"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[183,59]},{"Ident":"bifoldlDefault"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[183,59]},{"Ident":"bifoldMapDefaultR"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[183,59]},{"Ident":"bifoldMapDefaultL"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[183,59]},{"Ident":"bifold"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[183,59]},{"Ident":"bitraverse_"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[183,59]},{"Ident":"bifor_"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[183,59]},{"Ident":"bisequence_"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[183,59]},{"Ident":"biany"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[183,59]},{"Ident":"biall"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"bifoldableClown"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"bifoldableJoker"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"bifoldableFlip"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"bifoldableProduct"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"bifoldableWrap"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Prelude"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Control","Apply"],"eiImportType":{"Explicit":[{"ValueRef":[{"start":[5,23],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[5,34]},{"Ident":"applySecond"}]}]},"eiImportedAs":null},{"eiModule":["Data","Monoid","Conj"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[6,26],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[6,34]},"Conj",null]}]},"eiImportedAs":null},{"eiModule":["Data","Monoid","Disj"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[7,26],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[7,34]},"Disj",null]}]},"eiImportedAs":null},{"eiModule":["Data","Monoid","Dual"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[8,26],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[8,34]},"Dual",null]}]},"eiImportedAs":null},{"eiModule":["Data","Monoid","Endo"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[9,26],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[9,34]},"Endo",null]}]},"eiImportedAs":null},{"eiModule":["Data","Newtype"],"eiImportType":{"Explicit":[{"ValueRef":[{"start":[10,22],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[10,28]},{"Ident":"unwrap"}]}]},"eiImportedAs":null},{"eiModule":["Data","Foldable"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[11,23],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[11,37]},"Foldable"]},{"ValueRef":[{"start":[11,39],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[11,44]},{"Ident":"foldr"}]},{"ValueRef":[{"start":[11,46],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[11,51]},{"Ident":"foldl"}]},{"ValueRef":[{"start":[11,53],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[11,60]},{"Ident":"foldMap"}]}]},"eiImportedAs":null},{"eiModule":["Data","Bifunctor","Clown"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[12,30],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[12,39]},"Clown",null]}]},"eiImportedAs":null},{"eiModule":["Data","Bifunctor","Joker"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[13,30],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[13,39]},"Joker",null]}]},"eiImportedAs":null},{"eiModule":["Data","Bifunctor","Flip"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[14,29],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[14,37]},"Flip",null]}]},"eiImportedAs":null},{"eiModule":["Data","Bifunctor","Product"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[15,32],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[15,43]},"Product",null]}]},"eiImportedAs":null},{"eiModule":["Data","Bifunctor","Wrap"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[16,29],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[16,37]},"Wrap",null]}]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDValue":{"edValueName":{"Ident":"bifoldMap"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["p",{"annotation":[{"start":[38,16],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[38,76]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[38,23],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[38,76]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[38,23],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[38,76]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["Data","Bifoldable"],"Bifoldable"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"p"}],"constraintData":null},{"annotation":[{"start":[38,30],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[38,76]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[38,30],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[38,38]},[]],"constraintClass":[["Data","Monoid"],"Monoid"],"constraintArgs":[{"annotation":[{"start":[38,37],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[38,38]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[38,42],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[38,76]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[38,42],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[38,76]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[38,51],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[38,53]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[38,43],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[38,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[38,43],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[38,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[38,45],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[38,47]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[38,43],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[38,44]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[38,48],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[38,49]},[]],"tag":"TypeVar","contents":"m"}]}]},{"annotation":[{"start":[38,54],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[38,76]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[38,54],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[38,76]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[38,63],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[38,65]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[38,55],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[38,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[38,55],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[38,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[38,57],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[38,59]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[38,55],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[38,56]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[38,60],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[38,61]},[]],"tag":"TypeVar","contents":"m"}]}]},{"annotation":[{"start":[38,66],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[38,76]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[38,66],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[38,76]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[38,72],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[38,74]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[38,66],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[38,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[38,66],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[38,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[38,66],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[38,67]},[]],"tag":"TypeVar","contents":"p"},{"annotation":[{"start":[38,68],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[38,69]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[38,70],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[38,71]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[38,75],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[38,76]},[]],"tag":"TypeVar","contents":"m"}]}]}]}]}]},96]},97]},98]},99]}}},{"EDValue":{"edValueName":{"Ident":"bifoldl"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["p",{"annotation":[{"start":[37,14],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[37,77]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[37,21],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[37,77]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[37,21],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[37,77]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["Data","Bifoldable"],"Bifoldable"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"p"}],"constraintData":null},{"annotation":[{"start":[37,28],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[37,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[37,28],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[37,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[37,42],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[37,44]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[37,29],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[37,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[37,29],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[37,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[37,31],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[37,33]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[37,29],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[37,30]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[37,34],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[37,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[37,34],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[37,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[37,36],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[37,38]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[37,34],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[37,35]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[37,39],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[37,40]},[]],"tag":"TypeVar","contents":"c"}]}]}]},{"annotation":[{"start":[37,45],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[37,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[37,45],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[37,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[37,59],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[37,61]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[37,46],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[37,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[37,46],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[37,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[37,48],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[37,50]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[37,46],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[37,47]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[37,51],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[37,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[37,51],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[37,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[37,53],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[37,55]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[37,51],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[37,52]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[37,56],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[37,57]},[]],"tag":"TypeVar","contents":"c"}]}]}]},{"annotation":[{"start":[37,62],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[37,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[37,62],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[37,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[37,64],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[37,66]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[37,62],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[37,63]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[37,67],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[37,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[37,67],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[37,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[37,73],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[37,75]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[37,67],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[37,72]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[37,67],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[37,70]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[37,67],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[37,68]},[]],"tag":"TypeVar","contents":"p"},{"annotation":[{"start":[37,69],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[37,70]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[37,71],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[37,72]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[37,76],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[37,77]},[]],"tag":"TypeVar","contents":"c"}]}]}]}]}]},36]},37]},38]},39]}}},{"EDValue":{"edValueName":{"Ident":"bifoldr"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["p",{"annotation":[{"start":[36,14],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[36,77]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[36,21],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[36,77]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[36,21],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[36,77]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["Data","Bifoldable"],"Bifoldable"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"p"}],"constraintData":null},{"annotation":[{"start":[36,28],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[36,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,28],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[36,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,42],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[36,44]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[36,29],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[36,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,29],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[36,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,31],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[36,33]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[36,29],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[36,30]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[36,34],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[36,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,34],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[36,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,36],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[36,38]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[36,34],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[36,35]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[36,39],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[36,40]},[]],"tag":"TypeVar","contents":"c"}]}]}]},{"annotation":[{"start":[36,45],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[36,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,45],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[36,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,59],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[36,61]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[36,46],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[36,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,46],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[36,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,48],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[36,50]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[36,46],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[36,47]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[36,51],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[36,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,51],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[36,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,53],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[36,55]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[36,51],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[36,52]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[36,56],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[36,57]},[]],"tag":"TypeVar","contents":"c"}]}]}]},{"annotation":[{"start":[36,62],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[36,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,62],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[36,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,64],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[36,66]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[36,62],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[36,63]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[36,67],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[36,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,67],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[36,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,73],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[36,75]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[36,67],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[36,72]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,67],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[36,70]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,67],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[36,68]},[]],"tag":"TypeVar","contents":"p"},{"annotation":[{"start":[36,69],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[36,70]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[36,71],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[36,72]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[36,76],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[36,77]},[]],"tag":"TypeVar","contents":"c"}]}]}]}]}]},0]},1]},2]},3]}}},{"EDType":{"edTypeName":"Bifoldable","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[36,67],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[36,70]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[36,31],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[36,33]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[36,67],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[36,72]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[36,48],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[36,50]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[36,73],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[36,75]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"Bifoldable","edTypeSynonymArguments":[["p",null]],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["bifoldr",{"annotation":[{"start":[36,14],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[36,77]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[36,21],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[36,77]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[36,21],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[36,77]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[36,28],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[36,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,28],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[36,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,42],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[36,44]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[36,29],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[36,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,29],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[36,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,31],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[36,33]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[36,29],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[36,30]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[36,34],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[36,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,34],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[36,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,36],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[36,38]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[36,34],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[36,35]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[36,39],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[36,40]},[]],"tag":"TypeVar","contents":"c"}]}]}]},{"annotation":[{"start":[36,45],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[36,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,45],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[36,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,59],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[36,61]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[36,46],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[36,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,46],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[36,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,48],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[36,50]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[36,46],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[36,47]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[36,51],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[36,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,51],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[36,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,53],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[36,55]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[36,51],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[36,52]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[36,56],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[36,57]},[]],"tag":"TypeVar","contents":"c"}]}]}]},{"annotation":[{"start":[36,62],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[36,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,62],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[36,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,64],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[36,66]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[36,62],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[36,63]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[36,67],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[36,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,67],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[36,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,73],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[36,75]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[36,67],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[36,72]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,67],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[36,70]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,67],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[36,68]},[]],"tag":"TypeVar","contents":"p"},{"annotation":[{"start":[36,69],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[36,70]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[36,71],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[36,72]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[36,76],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[36,77]},[]],"tag":"TypeVar","contents":"c"}]}]}]}]},null]},null]},null]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["bifoldl",{"annotation":[{"start":[37,14],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[37,77]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[37,21],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[37,77]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[37,21],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[37,77]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[37,28],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[37,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[37,28],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[37,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[37,42],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[37,44]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[37,29],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[37,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[37,29],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[37,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[37,31],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[37,33]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[37,29],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[37,30]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[37,34],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[37,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[37,34],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[37,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[37,36],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[37,38]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[37,34],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[37,35]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[37,39],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[37,40]},[]],"tag":"TypeVar","contents":"c"}]}]}]},{"annotation":[{"start":[37,45],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[37,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[37,45],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[37,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[37,59],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[37,61]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[37,46],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[37,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[37,46],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[37,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[37,48],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[37,50]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[37,46],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[37,47]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[37,51],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[37,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[37,51],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[37,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[37,53],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[37,55]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[37,51],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[37,52]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[37,56],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[37,57]},[]],"tag":"TypeVar","contents":"c"}]}]}]},{"annotation":[{"start":[37,62],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[37,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[37,62],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[37,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[37,64],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[37,66]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[37,62],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[37,63]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[37,67],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[37,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[37,67],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[37,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[37,73],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[37,75]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[37,67],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[37,72]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[37,67],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[37,70]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[37,67],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[37,68]},[]],"tag":"TypeVar","contents":"p"},{"annotation":[{"start":[37,69],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[37,70]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[37,71],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[37,72]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[37,76],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[37,77]},[]],"tag":"TypeVar","contents":"c"}]}]}]}]},null]},null]},null]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["bifoldMap",{"annotation":[{"start":[38,16],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[38,76]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[38,23],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[38,76]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[38,23],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[38,76]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[38,30],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[38,76]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[38,30],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[38,38]},[]],"constraintClass":[["Data","Monoid"],"Monoid"],"constraintArgs":[{"annotation":[{"start":[38,37],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[38,38]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[38,42],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[38,76]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[38,42],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[38,76]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[38,51],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[38,53]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[38,43],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[38,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[38,43],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[38,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[38,45],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[38,47]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[38,43],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[38,44]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[38,48],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[38,49]},[]],"tag":"TypeVar","contents":"m"}]}]},{"annotation":[{"start":[38,54],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[38,76]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[38,54],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[38,76]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[38,63],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[38,65]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[38,55],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[38,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[38,55],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[38,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[38,57],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[38,59]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[38,55],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[38,56]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[38,60],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[38,61]},[]],"tag":"TypeVar","contents":"m"}]}]},{"annotation":[{"start":[38,66],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[38,76]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[38,66],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[38,76]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[38,72],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[38,74]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[38,66],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[38,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[38,66],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[38,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[38,66],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[38,67]},[]],"tag":"TypeVar","contents":"p"},{"annotation":[{"start":[38,68],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[38,69]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[38,70],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[38,71]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[38,75],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[38,76]},[]],"tag":"TypeVar","contents":"m"}]}]}]}]},null]},null]},null]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]}]}]}}},{"EDClass":{"edClassName":"Bifoldable","edClassTypeArguments":[["p",null]],"edClassMembers":[[{"Ident":"bifoldr"},{"annotation":[{"start":[36,14],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[36,77]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[36,21],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[36,77]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[36,21],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[36,77]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[36,28],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[36,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,28],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[36,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,42],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[36,44]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[36,29],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[36,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,29],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[36,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,31],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[36,33]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[36,29],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[36,30]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[36,34],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[36,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,34],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[36,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,36],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[36,38]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[36,34],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[36,35]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[36,39],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[36,40]},[]],"tag":"TypeVar","contents":"c"}]}]}]},{"annotation":[{"start":[36,45],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[36,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,45],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[36,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,59],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[36,61]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[36,46],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[36,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,46],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[36,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,48],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[36,50]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[36,46],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[36,47]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[36,51],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[36,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,51],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[36,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,53],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[36,55]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[36,51],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[36,52]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[36,56],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[36,57]},[]],"tag":"TypeVar","contents":"c"}]}]}]},{"annotation":[{"start":[36,62],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[36,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,62],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[36,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,64],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[36,66]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[36,62],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[36,63]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[36,67],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[36,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,67],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[36,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,73],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[36,75]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[36,67],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[36,72]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,67],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[36,70]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,67],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[36,68]},[]],"tag":"TypeVar","contents":"p"},{"annotation":[{"start":[36,69],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[36,70]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[36,71],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[36,72]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[36,76],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[36,77]},[]],"tag":"TypeVar","contents":"c"}]}]}]}]},null]},null]},null]}],[{"Ident":"bifoldl"},{"annotation":[{"start":[37,14],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[37,77]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[37,21],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[37,77]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[37,21],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[37,77]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[37,28],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[37,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[37,28],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[37,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[37,42],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[37,44]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[37,29],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[37,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[37,29],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[37,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[37,31],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[37,33]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[37,29],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[37,30]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[37,34],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[37,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[37,34],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[37,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[37,36],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[37,38]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[37,34],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[37,35]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[37,39],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[37,40]},[]],"tag":"TypeVar","contents":"c"}]}]}]},{"annotation":[{"start":[37,45],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[37,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[37,45],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[37,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[37,59],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[37,61]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[37,46],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[37,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[37,46],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[37,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[37,48],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[37,50]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[37,46],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[37,47]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[37,51],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[37,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[37,51],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[37,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[37,53],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[37,55]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[37,51],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[37,52]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[37,56],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[37,57]},[]],"tag":"TypeVar","contents":"c"}]}]}]},{"annotation":[{"start":[37,62],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[37,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[37,62],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[37,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[37,64],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[37,66]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[37,62],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[37,63]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[37,67],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[37,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[37,67],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[37,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[37,73],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[37,75]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[37,67],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[37,72]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[37,67],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[37,70]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[37,67],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[37,68]},[]],"tag":"TypeVar","contents":"p"},{"annotation":[{"start":[37,69],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[37,70]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[37,71],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[37,72]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[37,76],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[37,77]},[]],"tag":"TypeVar","contents":"c"}]}]}]}]},null]},null]},null]}],[{"Ident":"bifoldMap"},{"annotation":[{"start":[38,16],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[38,76]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[38,23],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[38,76]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[38,23],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[38,76]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[38,30],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[38,76]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[38,30],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[38,38]},[]],"constraintClass":[["Data","Monoid"],"Monoid"],"constraintArgs":[{"annotation":[{"start":[38,37],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[38,38]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[38,42],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[38,76]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[38,42],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[38,76]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[38,51],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[38,53]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[38,43],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[38,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[38,43],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[38,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[38,45],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[38,47]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[38,43],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[38,44]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[38,48],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[38,49]},[]],"tag":"TypeVar","contents":"m"}]}]},{"annotation":[{"start":[38,54],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[38,76]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[38,54],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[38,76]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[38,63],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[38,65]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[38,55],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[38,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[38,55],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[38,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[38,57],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[38,59]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[38,55],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[38,56]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[38,60],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[38,61]},[]],"tag":"TypeVar","contents":"m"}]}]},{"annotation":[{"start":[38,66],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[38,76]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[38,66],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[38,76]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[38,72],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[38,74]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[38,66],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[38,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[38,66],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[38,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[38,66],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[38,67]},[]],"tag":"TypeVar","contents":"p"},{"annotation":[{"start":[38,68],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[38,69]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[38,70],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[38,71]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[38,75],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[38,76]},[]],"tag":"TypeVar","contents":"m"}]}]}]}]},null]},null]},null]}]],"edClassConstraints":[],"edFunctionalDependencies":[]}},{"EDValue":{"edValueName":{"Ident":"bifoldrDefault"},"edValueType":{"annotation":[{"start":[70,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[76,7]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[70,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[76,7]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[70,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[76,7]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[70,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[76,7]},[]],"tag":"ForAll","contents":["p",{"annotation":[{"start":[71,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[76,7]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[71,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[71,18]},[]],"constraintClass":[["Data","Bifoldable"],"Bifoldable"],"constraintArgs":[{"annotation":[{"start":[71,17],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[71,18]},[]],"tag":"TypeVar","contents":"p"}],"constraintData":null},{"annotation":[{"start":[72,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[76,7]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[72,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[76,7]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[73,3],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[73,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[72,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[72,18]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[72,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[72,18]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[72,9],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[72,11]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[72,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[72,8]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[72,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[72,18]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[72,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[72,18]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[72,14],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[72,16]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[72,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[72,13]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[72,17],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[72,18]},[]],"tag":"TypeVar","contents":"c"}]}]}]},{"annotation":[{"start":[73,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[76,7]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[73,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[76,7]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[74,3],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[74,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[73,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[73,18]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[73,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[73,18]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[73,9],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[73,11]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[73,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[73,8]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[73,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[73,18]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[73,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[73,18]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[73,14],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[73,16]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[73,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[73,13]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[73,17],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[73,18]},[]],"tag":"TypeVar","contents":"c"}]}]}]},{"annotation":[{"start":[74,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[76,7]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[74,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[76,7]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[75,3],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[75,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[74,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[74,7]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[75,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[76,7]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[75,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[76,7]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[76,3],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[76,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[75,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[75,11]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[75,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[75,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[75,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[75,7]},[]],"tag":"TypeVar","contents":"p"},{"annotation":[{"start":[75,8],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[75,9]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[75,10],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[75,11]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[76,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[76,7]},[]],"tag":"TypeVar","contents":"c"}]}]}]}]}]},154]},155]},156]},157]}}},{"EDValue":{"edValueName":{"Ident":"bifoldlDefault"},"edValueType":{"annotation":[{"start":[84,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[90,7]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[84,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[90,7]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[84,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[90,7]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[84,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[90,7]},[]],"tag":"ForAll","contents":["p",{"annotation":[{"start":[85,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[90,7]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[85,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[85,18]},[]],"constraintClass":[["Data","Bifoldable"],"Bifoldable"],"constraintArgs":[{"annotation":[{"start":[85,17],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[85,18]},[]],"tag":"TypeVar","contents":"p"}],"constraintData":null},{"annotation":[{"start":[86,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[90,7]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[86,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[90,7]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[87,3],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[87,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[86,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[86,18]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[86,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[86,18]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[86,9],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[86,11]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[86,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[86,8]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[86,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[86,18]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[86,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[86,18]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[86,14],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[86,16]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[86,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[86,13]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[86,17],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[86,18]},[]],"tag":"TypeVar","contents":"c"}]}]}]},{"annotation":[{"start":[87,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[90,7]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[87,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[90,7]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[88,3],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[88,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[87,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[87,18]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[87,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[87,18]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[87,9],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[87,11]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[87,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[87,8]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[87,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[87,18]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[87,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[87,18]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[87,14],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[87,16]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[87,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[87,13]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[87,17],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[87,18]},[]],"tag":"TypeVar","contents":"c"}]}]}]},{"annotation":[{"start":[88,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[90,7]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[88,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[90,7]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[89,3],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[89,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[88,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[88,7]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[89,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[90,7]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[89,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[90,7]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[90,3],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[90,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[89,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[89,11]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[89,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[89,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[89,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[89,7]},[]],"tag":"TypeVar","contents":"p"},{"annotation":[{"start":[89,8],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[89,9]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[89,10],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[89,11]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[90,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[90,7]},[]],"tag":"TypeVar","contents":"c"}]}]}]}]}]},140]},141]},142]},143]}}},{"EDValue":{"edValueName":{"Ident":"bifoldMapDefaultR"},"edValueType":{"annotation":[{"start":[102,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[108,7]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[102,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[108,7]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[102,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[108,7]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[102,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[108,7]},[]],"tag":"ForAll","contents":["p",{"annotation":[{"start":[103,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[108,7]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[103,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[103,18]},[]],"constraintClass":[["Data","Bifoldable"],"Bifoldable"],"constraintArgs":[{"annotation":[{"start":[103,17],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[103,18]},[]],"tag":"TypeVar","contents":"p"}],"constraintData":null},{"annotation":[{"start":[104,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[108,7]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[104,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[104,14]},[]],"constraintClass":[["Data","Monoid"],"Monoid"],"constraintArgs":[{"annotation":[{"start":[104,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[104,14]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[105,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[108,7]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[105,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[108,7]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[106,3],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[106,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[105,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[105,13]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[105,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[105,13]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[105,9],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[105,11]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[105,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[105,8]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[105,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[105,13]},[]],"tag":"TypeVar","contents":"m"}]}]},{"annotation":[{"start":[106,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[108,7]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[106,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[108,7]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[107,3],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[107,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[106,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[106,13]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[106,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[106,13]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[106,9],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[106,11]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[106,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[106,8]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[106,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[106,13]},[]],"tag":"TypeVar","contents":"m"}]}]},{"annotation":[{"start":[107,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[108,7]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[107,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[108,7]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[108,3],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[108,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[107,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[107,11]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[107,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[107,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[107,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[107,7]},[]],"tag":"TypeVar","contents":"p"},{"annotation":[{"start":[107,8],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[107,9]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[107,10],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[107,11]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[108,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[108,7]},[]],"tag":"TypeVar","contents":"m"}]}]}]}]}]},80]},81]},82]},83]}}},{"EDValue":{"edValueName":{"Ident":"bifoldMapDefaultL"},"edValueType":{"annotation":[{"start":[116,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[122,7]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[116,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[122,7]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[116,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[122,7]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[116,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[122,7]},[]],"tag":"ForAll","contents":["p",{"annotation":[{"start":[117,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[122,7]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[117,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[117,18]},[]],"constraintClass":[["Data","Bifoldable"],"Bifoldable"],"constraintArgs":[{"annotation":[{"start":[117,17],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[117,18]},[]],"tag":"TypeVar","contents":"p"}],"constraintData":null},{"annotation":[{"start":[118,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[122,7]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[118,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[118,14]},[]],"constraintClass":[["Data","Monoid"],"Monoid"],"constraintArgs":[{"annotation":[{"start":[118,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[118,14]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[119,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[122,7]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[119,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[122,7]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[120,3],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[120,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[119,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[119,13]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[119,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[119,13]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[119,9],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[119,11]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[119,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[119,8]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[119,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[119,13]},[]],"tag":"TypeVar","contents":"m"}]}]},{"annotation":[{"start":[120,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[122,7]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[120,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[122,7]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[121,3],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[121,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[120,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[120,13]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[120,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[120,13]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[120,9],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[120,11]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[120,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[120,8]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[120,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[120,13]},[]],"tag":"TypeVar","contents":"m"}]}]},{"annotation":[{"start":[121,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[122,7]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[121,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[122,7]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[122,3],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[122,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[121,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[121,11]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[121,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[121,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[121,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[121,7]},[]],"tag":"TypeVar","contents":"p"},{"annotation":[{"start":[121,8],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[121,9]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[121,10],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[121,11]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[122,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[122,7]},[]],"tag":"TypeVar","contents":"m"}]}]}]}]}]},88]},89]},90]},91]}}},{"EDValue":{"edValueName":{"Ident":"bifold"},"edValueType":{"annotation":[{"start":[127,11],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[127,61]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[127,18],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[127,61]},[]],"tag":"ForAll","contents":["t",{"annotation":[{"start":[127,23],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[127,61]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[127,23],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[127,35]},[]],"constraintClass":[["Data","Bifoldable"],"Bifoldable"],"constraintArgs":[{"annotation":[{"start":[127,34],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[127,35]},[]],"tag":"TypeVar","contents":"t"}],"constraintData":null},{"annotation":[{"start":[127,39],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[127,61]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[127,39],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[127,47]},[]],"constraintClass":[["Data","Monoid"],"Monoid"],"constraintArgs":[{"annotation":[{"start":[127,46],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[127,47]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[127,51],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[127,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[127,51],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[127,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[127,57],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[127,59]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[127,51],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[127,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[127,51],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[127,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[127,51],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[127,52]},[]],"tag":"TypeVar","contents":"t"},{"annotation":[{"start":[127,53],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[127,54]},[]],"tag":"TypeVar","contents":"m"}]},{"annotation":[{"start":[127,55],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[127,56]},[]],"tag":"TypeVar","contents":"m"}]}]},{"annotation":[{"start":[127,60],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[127,61]},[]],"tag":"TypeVar","contents":"m"}]}]}]},188]},189]}}},{"EDValue":{"edValueName":{"Ident":"bitraverse_"},"edValueType":{"annotation":[{"start":[133,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[139,12]},[]],"tag":"ForAll","contents":["d",{"annotation":[{"start":[133,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[139,12]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[133,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[139,12]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[133,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[139,12]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[133,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[139,12]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[133,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[139,12]},[]],"tag":"ForAll","contents":["t",{"annotation":[{"start":[134,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[139,12]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[134,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[134,18]},[]],"constraintClass":[["Data","Bifoldable"],"Bifoldable"],"constraintArgs":[{"annotation":[{"start":[134,17],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[134,18]},[]],"tag":"TypeVar","contents":"t"}],"constraintData":null},{"annotation":[{"start":[135,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[139,12]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[135,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[135,19]},[]],"constraintClass":[["Control","Applicative"],"Applicative"],"constraintArgs":[{"annotation":[{"start":[135,18],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[135,19]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[136,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[139,12]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[136,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[139,12]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[137,3],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[137,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[136,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[136,15]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[136,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[136,15]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[136,9],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[136,11]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[136,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[136,8]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[136,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[136,15]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[136,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[136,13]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[136,14],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[136,15]},[]],"tag":"TypeVar","contents":"c"}]}]}]},{"annotation":[{"start":[137,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[139,12]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[137,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[139,12]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[138,3],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[138,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[137,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[137,15]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[137,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[137,15]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[137,9],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[137,11]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[137,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[137,8]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[137,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[137,15]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[137,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[137,13]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[137,14],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[137,15]},[]],"tag":"TypeVar","contents":"d"}]}]}]},{"annotation":[{"start":[138,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[139,12]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[138,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[139,12]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[139,3],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[139,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[138,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[138,11]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[138,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[138,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[138,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[138,7]},[]],"tag":"TypeVar","contents":"t"},{"annotation":[{"start":[138,8],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[138,9]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[138,10],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[138,11]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[139,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[139,12]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[139,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[139,7]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[139,8],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[139,12]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}]}]}]}]},4]},5]},6]},7]},8]},9]}}},{"EDValue":{"edValueName":{"Ident":"bifor_"},"edValueType":{"annotation":[{"start":[144,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[150,12]},[]],"tag":"ForAll","contents":["d",{"annotation":[{"start":[144,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[150,12]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[144,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[150,12]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[144,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[150,12]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[144,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[150,12]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[144,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[150,12]},[]],"tag":"ForAll","contents":["t",{"annotation":[{"start":[145,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[150,12]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[145,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[145,18]},[]],"constraintClass":[["Data","Bifoldable"],"Bifoldable"],"constraintArgs":[{"annotation":[{"start":[145,17],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[145,18]},[]],"tag":"TypeVar","contents":"t"}],"constraintData":null},{"annotation":[{"start":[146,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[150,12]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[146,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[146,19]},[]],"constraintClass":[["Control","Applicative"],"Applicative"],"constraintArgs":[{"annotation":[{"start":[146,18],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[146,19]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[147,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[150,12]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[147,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[150,12]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[148,3],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[148,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[147,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[147,11]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[147,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[147,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[147,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[147,7]},[]],"tag":"TypeVar","contents":"t"},{"annotation":[{"start":[147,8],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[147,9]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[147,10],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[147,11]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[148,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[150,12]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[148,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[150,12]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[149,3],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[149,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[148,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[148,15]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[148,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[148,15]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[148,9],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[148,11]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[148,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[148,8]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[148,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[148,15]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[148,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[148,13]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[148,14],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[148,15]},[]],"tag":"TypeVar","contents":"c"}]}]}]},{"annotation":[{"start":[149,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[150,12]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[149,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[150,12]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[150,3],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[150,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[149,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[149,15]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[149,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[149,15]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[149,9],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[149,11]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[149,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[149,8]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[149,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[149,15]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[149,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[149,13]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[149,14],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[149,15]},[]],"tag":"TypeVar","contents":"d"}]}]}]},{"annotation":[{"start":[150,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[150,12]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[150,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[150,7]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[150,8],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[150,12]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}]}]}]}]},16]},17]},18]},19]},20]},21]}}},{"EDValue":{"edValueName":{"Ident":"bisequence_"},"edValueType":{"annotation":[{"start":[156,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[160,12]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[156,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[160,12]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[156,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[160,12]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[156,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[160,12]},[]],"tag":"ForAll","contents":["t",{"annotation":[{"start":[157,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[160,12]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[157,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[157,18]},[]],"constraintClass":[["Data","Bifoldable"],"Bifoldable"],"constraintArgs":[{"annotation":[{"start":[157,17],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[157,18]},[]],"tag":"TypeVar","contents":"t"}],"constraintData":null},{"annotation":[{"start":[158,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[160,12]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[158,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[158,19]},[]],"constraintClass":[["Control","Applicative"],"Applicative"],"constraintArgs":[{"annotation":[{"start":[158,18],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[158,19]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[159,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[160,12]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[159,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[160,12]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[160,3],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[160,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[159,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[159,19]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[159,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[159,13]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[159,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[159,7]},[]],"tag":"TypeVar","contents":"t"},{"annotation":[{"start":[159,9],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[159,12]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[159,9],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[159,10]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[159,11],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[159,12]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[159,15],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[159,18]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[159,15],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[159,16]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[159,17],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[159,18]},[]],"tag":"TypeVar","contents":"b"}]}]}]},{"annotation":[{"start":[160,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[160,12]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[160,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[160,7]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[160,8],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[160,12]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}]}]},28]},29]},30]},31]}}},{"EDValue":{"edValueName":{"Ident":"biany"},"edValueType":{"annotation":[{"start":[165,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[171,7]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[165,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[171,7]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[165,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[171,7]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[165,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[171,7]},[]],"tag":"ForAll","contents":["t",{"annotation":[{"start":[166,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[171,7]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[166,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[166,18]},[]],"constraintClass":[["Data","Bifoldable"],"Bifoldable"],"constraintArgs":[{"annotation":[{"start":[166,17],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[166,18]},[]],"tag":"TypeVar","contents":"t"}],"constraintData":null},{"annotation":[{"start":[167,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[171,7]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[167,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[167,22]},[]],"constraintClass":[["Data","BooleanAlgebra"],"BooleanAlgebra"],"constraintArgs":[{"annotation":[{"start":[167,21],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[167,22]},[]],"tag":"TypeVar","contents":"c"}],"constraintData":null},{"annotation":[{"start":[168,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[171,7]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[168,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[171,7]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[169,3],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[169,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[168,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[168,13]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[168,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[168,13]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[168,9],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[168,11]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[168,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[168,8]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[168,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[168,13]},[]],"tag":"TypeVar","contents":"c"}]}]},{"annotation":[{"start":[169,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[171,7]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[169,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[171,7]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[170,3],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[170,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[169,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[169,13]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[169,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[169,13]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[169,9],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[169,11]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[169,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[169,8]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[169,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[169,13]},[]],"tag":"TypeVar","contents":"c"}]}]},{"annotation":[{"start":[170,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[171,7]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[170,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[171,7]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[171,3],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[171,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[170,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[170,11]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[170,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[170,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[170,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[170,7]},[]],"tag":"TypeVar","contents":"t"},{"annotation":[{"start":[170,8],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[170,9]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[170,10],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[170,11]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[171,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[171,7]},[]],"tag":"TypeVar","contents":"c"}]}]}]}]}]},192]},193]},194]},195]}}},{"EDValue":{"edValueName":{"Ident":"biall"},"edValueType":{"annotation":[{"start":[176,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[182,7]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[176,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[182,7]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[176,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[182,7]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[176,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[182,7]},[]],"tag":"ForAll","contents":["t",{"annotation":[{"start":[177,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[182,7]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[177,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[177,18]},[]],"constraintClass":[["Data","Bifoldable"],"Bifoldable"],"constraintArgs":[{"annotation":[{"start":[177,17],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[177,18]},[]],"tag":"TypeVar","contents":"t"}],"constraintData":null},{"annotation":[{"start":[178,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[182,7]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[178,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[178,22]},[]],"constraintClass":[["Data","BooleanAlgebra"],"BooleanAlgebra"],"constraintArgs":[{"annotation":[{"start":[178,21],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[178,22]},[]],"tag":"TypeVar","contents":"c"}],"constraintData":null},{"annotation":[{"start":[179,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[182,7]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[179,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[182,7]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[180,3],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[180,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[179,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[179,13]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[179,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[179,13]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[179,9],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[179,11]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[179,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[179,8]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[179,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[179,13]},[]],"tag":"TypeVar","contents":"c"}]}]},{"annotation":[{"start":[180,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[182,7]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[180,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[182,7]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[181,3],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[181,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[180,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[180,13]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[180,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[180,13]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[180,9],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[180,11]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[180,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[180,8]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[180,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[180,13]},[]],"tag":"TypeVar","contents":"c"}]}]},{"annotation":[{"start":[181,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[182,7]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[181,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[182,7]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[182,3],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[182,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[181,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[181,11]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[181,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[181,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[181,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[181,7]},[]],"tag":"TypeVar","contents":"t"},{"annotation":[{"start":[181,8],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[181,9]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[181,10],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[181,11]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[182,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[182,7]},[]],"tag":"TypeVar","contents":"c"}]}]}]}]}]},202]},203]},204]},205]}}},{"EDInstance":{"edInstanceClassName":[["Data","Bifoldable"],"Bifoldable"],"edInstanceName":{"Ident":"bifoldableClown"},"edInstanceTypes":[{"annotation":[{"start":[40,55],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[40,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[40,55],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[40,60]},[]],"tag":"TypeConstructor","contents":[["Data","Bifunctor","Clown"],"Clown"]},{"annotation":[{"start":[40,61],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[40,62]},[]],"tag":"TypeVar","contents":"f"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[40,29],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[40,39]},[]],"constraintClass":[["Data","Foldable"],"Foldable"],"constraintArgs":[{"annotation":[{"start":[40,38],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[40,39]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null}],"edInstanceChain":[[["Data","Bifoldable"],{"Ident":"bifoldableClown"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Bifoldable"],"Bifoldable"],"edInstanceName":{"Ident":"bifoldableJoker"},"edInstanceTypes":[{"annotation":[{"start":[45,55],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[45,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[45,55],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[45,60]},[]],"tag":"TypeConstructor","contents":[["Data","Bifunctor","Joker"],"Joker"]},{"annotation":[{"start":[45,61],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[45,62]},[]],"tag":"TypeVar","contents":"f"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[45,29],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[45,39]},[]],"constraintClass":[["Data","Foldable"],"Foldable"],"constraintArgs":[{"annotation":[{"start":[45,38],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[45,39]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null}],"edInstanceChain":[[["Data","Bifoldable"],{"Ident":"bifoldableJoker"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Bifoldable"],"Bifoldable"],"edInstanceName":{"Ident":"bifoldableFlip"},"edInstanceTypes":[{"annotation":[{"start":[50,56],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[50,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,56],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[50,60]},[]],"tag":"TypeConstructor","contents":[["Data","Bifunctor","Flip"],"Flip"]},{"annotation":[{"start":[50,61],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[50,62]},[]],"tag":"TypeVar","contents":"p"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[50,28],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[50,40]},[]],"constraintClass":[["Data","Bifoldable"],"Bifoldable"],"constraintArgs":[{"annotation":[{"start":[50,39],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[50,40]},[]],"tag":"TypeVar","contents":"p"}],"constraintData":null}],"edInstanceChain":[[["Data","Bifoldable"],{"Ident":"bifoldableFlip"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Bifoldable"],"Bifoldable"],"edInstanceName":{"Ident":"bifoldableProduct"},"edInstanceTypes":[{"annotation":[{"start":[55,75],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[55,86]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,75],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[55,84]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,75],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[55,82]},[]],"tag":"TypeConstructor","contents":[["Data","Bifunctor","Product"],"Product"]},{"annotation":[{"start":[55,83],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[55,84]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[55,85],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[55,86]},[]],"tag":"TypeVar","contents":"g"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[55,32],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[55,44]},[]],"constraintClass":[["Data","Bifoldable"],"Bifoldable"],"constraintArgs":[{"annotation":[{"start":[55,43],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[55,44]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"constraintAnn":[{"start":[55,46],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[55,58]},[]],"constraintClass":[["Data","Bifoldable"],"Bifoldable"],"constraintArgs":[{"annotation":[{"start":[55,57],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[55,58]},[]],"tag":"TypeVar","contents":"g"}],"constraintData":null}],"edInstanceChain":[[["Data","Bifoldable"],{"Ident":"bifoldableProduct"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Bifoldable"],"Bifoldable"],"edInstanceName":{"Ident":"bifoldableWrap"},"edInstanceTypes":[{"annotation":[{"start":[60,56],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[60,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[60,56],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[60,60]},[]],"tag":"TypeConstructor","contents":[["Data","Bifunctor","Wrap"],"Wrap"]},{"annotation":[{"start":[60,61],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[60,62]},[]],"tag":"TypeVar","contents":"p"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[60,28],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[60,40]},[]],"constraintClass":[["Data","Bifoldable"],"Bifoldable"],"constraintArgs":[{"annotation":[{"start":[60,39],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[60,40]},[]],"tag":"TypeVar","contents":"p"}],"constraintData":null}],"edInstanceChain":[[["Data","Bifoldable"],{"Ident":"bifoldableWrap"}]],"edInstanceChainIndex":0}}],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bifoldable.purs","end":[183,59]}}
diff --git a/tests/purs/publish/basic-example/output/Data.Bifunctor.Clown/docs.json b/tests/purs/publish/basic-example/output/Data.Bifunctor.Clown/docs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.Bifunctor.Clown/docs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"reExports":[],"name":"Data.Bifunctor.Clown","comments":null,"declarations":[{"children":[{"comments":null,"title":"Clown","info":{"arguments":[{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}],"declType":"dataConstructor"},"sourceSpan":null},{"comments":null,"title":"newtypeClown","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Newtype"],"Newtype"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Bifunctor","Clown"],"Clown"]},{"annotation":[],"tag":"TypeVar","contents":"f"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[],"tag":"TypeWildcard","contents":null}]}},"sourceSpan":{"start":[14,1],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Clown.purs","end":[14,56]}},{"comments":null,"title":"eqClown","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Eq"],"Eq"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Bifunctor","Clown"],"Clown"]},{"annotation":[],"tag":"TypeVar","contents":"f"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}},"sourceSpan":{"start":[16,1],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Clown.purs","end":[16,64]}},{"comments":null,"title":"ordClown","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord"],"Ord"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Bifunctor","Clown"],"Clown"]},{"annotation":[],"tag":"TypeVar","contents":"f"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}},"sourceSpan":{"start":[18,1],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Clown.purs","end":[18,67]}},{"comments":null,"title":"showClown","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Show"],"Show"],"constraintArgs":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Show"],"Show"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Bifunctor","Clown"],"Clown"]},{"annotation":[],"tag":"TypeVar","contents":"f"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}},"sourceSpan":{"start":[20,1],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Clown.purs","end":[21,46]}},{"comments":null,"title":"functorClown","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Functor"],"Functor"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Bifunctor","Clown"],"Clown"]},{"annotation":[],"tag":"TypeVar","contents":"f"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[23,1],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Clown.purs","end":[24,28]}},{"comments":null,"title":"bifunctorClown","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Functor"],"Functor"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Bifunctor"],"Bifunctor"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Bifunctor","Clown"],"Clown"]},{"annotation":[],"tag":"TypeVar","contents":"f"}]}]}},"sourceSpan":{"start":[26,1],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Clown.purs","end":[27,40]}},{"comments":null,"title":"biapplyClown","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Control","Apply"],"Apply"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Biapply"],"Biapply"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Bifunctor","Clown"],"Clown"]},{"annotation":[],"tag":"TypeVar","contents":"f"}]}]}},"sourceSpan":{"start":[29,1],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Clown.purs","end":[30,52]}},{"comments":null,"title":"biapplicativeClown","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Control","Applicative"],"Applicative"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Biapplicative"],"Biapplicative"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Bifunctor","Clown"],"Clown"]},{"annotation":[],"tag":"TypeVar","contents":"f"}]}]}},"sourceSpan":{"start":[32,1],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Clown.purs","end":[33,30]}}],"comments":"Make a `Functor` over the first argument of a `Bifunctor`\n","title":"Clown","info":{"declType":"data","dataDeclType":"newtype","typeArguments":[["f",null],["a",null],["b",null]]},"sourceSpan":{"start":[12,1],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Clown.purs","end":[12,34]}}]}
diff --git a/tests/purs/publish/basic-example/output/Data.Bifunctor.Clown/externs.json b/tests/purs/publish/basic-example/output/Data.Bifunctor.Clown/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.Bifunctor.Clown/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Data","Bifunctor","Clown"],"efExports":[{"TypeRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Clown.purs","end":[33,30]},"Clown",["Clown"]]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"newtypeClown"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"eqClown"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"ordClown"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"showClown"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"functorClown"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"bifunctorClown"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"biapplyClown"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"biapplicativeClown"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Prelude"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Control","Biapplicative"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[5,31],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Clown.purs","end":[5,50]},"Biapplicative"]}]},"eiImportedAs":null},{"eiModule":["Control","Biapply"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[6,25],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Clown.purs","end":[6,38]},"Biapply"]}]},"eiImportedAs":null},{"eiModule":["Data","Bifunctor"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[8,24],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Clown.purs","end":[8,39]},"Bifunctor"]}]},"eiImportedAs":null},{"eiModule":["Data","Newtype"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[9,22],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Clown.purs","end":[9,35]},"Newtype"]}]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDType":{"edTypeName":"Clown","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[12,30],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Clown.purs","end":[12,33]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[12,32],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Clown.purs","end":[12,33]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[12,30],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Clown.purs","end":[12,33]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]}]},"edTypeDeclarationKind":{"DataType":{"args":[["f",{"annotation":[{"start":[12,30],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Clown.purs","end":[12,33]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[12,32],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Clown.purs","end":[12,33]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[12,30],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Clown.purs","end":[12,33]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}],["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["b",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]],"ctors":[["Clown",[{"annotation":[{"start":[12,30],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Clown.purs","end":[12,33]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[12,30],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Clown.purs","end":[12,31]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[12,32],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Clown.purs","end":[12,33]},[]],"tag":"TypeVar","contents":"a"}]}]]]}}}},{"EDDataConstructor":{"edDataCtorName":"Clown","edDataCtorOrigin":"newtype","edDataCtorTypeCtor":"Clown","edDataCtorType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[12,30],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Clown.purs","end":[12,33]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[12,30],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Clown.purs","end":[12,31]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[12,32],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Clown.purs","end":[12,33]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Bifunctor","Clown"],"Clown"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"b"}]}]},null]},null]},null]},"edDataCtorFields":[{"Ident":"value0"}]}},{"EDInstance":{"edInstanceClassName":[["Data","Newtype"],"Newtype"],"edInstanceName":{"Ident":"newtypeClown"},"edInstanceTypes":[{"annotation":[{"start":[14,42],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Clown.purs","end":[14,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[14,42],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Clown.purs","end":[14,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[14,42],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Clown.purs","end":[14,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[14,42],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Clown.purs","end":[14,47]},[]],"tag":"TypeConstructor","contents":[["Data","Bifunctor","Clown"],"Clown"]},{"annotation":[{"start":[14,48],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Clown.purs","end":[14,49]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[14,50],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Clown.purs","end":[14,51]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[14,52],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Clown.purs","end":[14,53]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[12,30],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Clown.purs","end":[12,33]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[14,48],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Clown.purs","end":[14,49]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[14,50],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Clown.purs","end":[14,51]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Bifunctor","Clown"],{"Ident":"newtypeClown"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Eq"],"Eq"],"edInstanceName":{"Ident":"eqClown"},"edInstanceTypes":[{"annotation":[{"start":[16,52],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Clown.purs","end":[16,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[16,52],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Clown.purs","end":[16,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[16,52],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Clown.purs","end":[16,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[16,52],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Clown.purs","end":[16,57]},[]],"tag":"TypeConstructor","contents":[["Data","Bifunctor","Clown"],"Clown"]},{"annotation":[{"start":[16,58],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Clown.purs","end":[16,59]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[16,60],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Clown.purs","end":[16,61]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[16,62],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Clown.purs","end":[16,63]},[]],"tag":"TypeVar","contents":"b"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[16,36],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Clown.purs","end":[16,44]},[]],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[{"start":[16,40],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Clown.purs","end":[16,43]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[16,40],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Clown.purs","end":[16,41]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[16,42],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Clown.purs","end":[16,43]},[]],"tag":"TypeVar","contents":"a"}]}],"constraintData":null}],"edInstanceChain":[[["Data","Bifunctor","Clown"],{"Ident":"eqClown"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Ord"],"Ord"],"edInstanceName":{"Ident":"ordClown"},"edInstanceTypes":[{"annotation":[{"start":[18,55],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Clown.purs","end":[18,66]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,55],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Clown.purs","end":[18,64]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,55],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Clown.purs","end":[18,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,55],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Clown.purs","end":[18,60]},[]],"tag":"TypeConstructor","contents":[["Data","Bifunctor","Clown"],"Clown"]},{"annotation":[{"start":[18,61],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Clown.purs","end":[18,62]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[18,63],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Clown.purs","end":[18,64]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[18,65],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Clown.purs","end":[18,66]},[]],"tag":"TypeVar","contents":"b"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[18,37],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Clown.purs","end":[18,46]},[]],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[{"start":[18,42],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Clown.purs","end":[18,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,42],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Clown.purs","end":[18,43]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[18,44],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Clown.purs","end":[18,45]},[]],"tag":"TypeVar","contents":"a"}]}],"constraintData":null}],"edInstanceChain":[[["Data","Bifunctor","Clown"],{"Ident":"ordClown"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Show"],"Show"],"edInstanceName":{"Ident":"showClown"},"edInstanceTypes":[{"annotation":[{"start":[20,43],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Clown.purs","end":[20,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[20,43],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Clown.purs","end":[20,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[20,43],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Clown.purs","end":[20,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[20,43],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Clown.purs","end":[20,48]},[]],"tag":"TypeConstructor","contents":[["Data","Bifunctor","Clown"],"Clown"]},{"annotation":[{"start":[20,49],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Clown.purs","end":[20,50]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[20,51],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Clown.purs","end":[20,52]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[20,53],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Clown.purs","end":[20,54]},[]],"tag":"TypeVar","contents":"b"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[20,23],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Clown.purs","end":[20,33]},[]],"constraintClass":[["Data","Show"],"Show"],"constraintArgs":[{"annotation":[{"start":[20,29],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Clown.purs","end":[20,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[20,29],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Clown.purs","end":[20,30]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[20,31],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Clown.purs","end":[20,32]},[]],"tag":"TypeVar","contents":"a"}]}],"constraintData":null}],"edInstanceChain":[[["Data","Bifunctor","Clown"],{"Ident":"showClown"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Functor"],"Functor"],"edInstanceName":{"Ident":"functorClown"},"edInstanceTypes":[{"annotation":[{"start":[23,35],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Clown.purs","end":[23,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[23,35],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Clown.purs","end":[23,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[23,35],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Clown.purs","end":[23,40]},[]],"tag":"TypeConstructor","contents":[["Data","Bifunctor","Clown"],"Clown"]},{"annotation":[{"start":[23,41],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Clown.purs","end":[23,42]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[23,43],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Clown.purs","end":[23,44]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Bifunctor","Clown"],{"Ident":"functorClown"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Bifunctor"],"Bifunctor"],"edInstanceName":{"Ident":"bifunctorClown"},"edInstanceTypes":[{"annotation":[{"start":[26,52],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Clown.purs","end":[26,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[26,52],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Clown.purs","end":[26,57]},[]],"tag":"TypeConstructor","contents":[["Data","Bifunctor","Clown"],"Clown"]},{"annotation":[{"start":[26,58],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Clown.purs","end":[26,59]},[]],"tag":"TypeVar","contents":"f"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[26,28],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Clown.purs","end":[26,37]},[]],"constraintClass":[["Data","Functor"],"Functor"],"constraintArgs":[{"annotation":[{"start":[26,36],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Clown.purs","end":[26,37]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null}],"edInstanceChain":[[["Data","Bifunctor","Clown"],{"Ident":"bifunctorClown"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Biapply"],"Biapply"],"edInstanceName":{"Ident":"biapplyClown"},"edInstanceTypes":[{"annotation":[{"start":[29,46],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Clown.purs","end":[29,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[29,46],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Clown.purs","end":[29,51]},[]],"tag":"TypeConstructor","contents":[["Data","Bifunctor","Clown"],"Clown"]},{"annotation":[{"start":[29,52],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Clown.purs","end":[29,53]},[]],"tag":"TypeVar","contents":"f"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[29,26],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Clown.purs","end":[29,33]},[]],"constraintClass":[["Control","Apply"],"Apply"],"constraintArgs":[{"annotation":[{"start":[29,32],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Clown.purs","end":[29,33]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null}],"edInstanceChain":[[["Data","Bifunctor","Clown"],{"Ident":"biapplyClown"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Biapplicative"],"Biapplicative"],"edInstanceName":{"Ident":"biapplicativeClown"},"edInstanceTypes":[{"annotation":[{"start":[32,64],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Clown.purs","end":[32,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[32,64],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Clown.purs","end":[32,69]},[]],"tag":"TypeConstructor","contents":[["Data","Bifunctor","Clown"],"Clown"]},{"annotation":[{"start":[32,70],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Clown.purs","end":[32,71]},[]],"tag":"TypeVar","contents":"f"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[32,32],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Clown.purs","end":[32,45]},[]],"constraintClass":[["Control","Applicative"],"Applicative"],"constraintArgs":[{"annotation":[{"start":[32,44],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Clown.purs","end":[32,45]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null}],"edInstanceChain":[[["Data","Bifunctor","Clown"],{"Ident":"biapplicativeClown"}]],"edInstanceChainIndex":0}}],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Clown.purs","end":[33,30]}}
diff --git a/tests/purs/publish/basic-example/output/Data.Bifunctor.Flip/docs.json b/tests/purs/publish/basic-example/output/Data.Bifunctor.Flip/docs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.Bifunctor.Flip/docs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"reExports":[],"name":"Data.Bifunctor.Flip","comments":null,"declarations":[{"children":[{"comments":null,"title":"Flip","info":{"arguments":[{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"p"},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}],"declType":"dataConstructor"},"sourceSpan":null},{"comments":null,"title":"newtypeFlip","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Newtype"],"Newtype"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Bifunctor","Flip"],"Flip"]},{"annotation":[],"tag":"TypeVar","contents":"p"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[],"tag":"TypeWildcard","contents":null}]}},"sourceSpan":{"start":[14,1],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Flip.purs","end":[14,54]}},{"comments":null,"title":"eqFlip","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"p"},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Eq"],"Eq"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Bifunctor","Flip"],"Flip"]},{"annotation":[],"tag":"TypeVar","contents":"p"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}},"sourceSpan":{"start":[16,1],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Flip.purs","end":[16,64]}},{"comments":null,"title":"ordFlip","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"p"},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord"],"Ord"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Bifunctor","Flip"],"Flip"]},{"annotation":[],"tag":"TypeVar","contents":"p"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}},"sourceSpan":{"start":[18,1],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Flip.purs","end":[18,67]}},{"comments":null,"title":"showFlip","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Show"],"Show"],"constraintArgs":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"p"},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Show"],"Show"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Bifunctor","Flip"],"Flip"]},{"annotation":[],"tag":"TypeVar","contents":"p"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[20,1],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Flip.purs","end":[21,44]}},{"comments":null,"title":"functorFlip","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Bifunctor"],"Bifunctor"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"p"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Functor"],"Functor"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Bifunctor","Flip"],"Flip"]},{"annotation":[],"tag":"TypeVar","contents":"p"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[23,1],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Flip.purs","end":[24,35]}},{"comments":null,"title":"bifunctorFlip","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Bifunctor"],"Bifunctor"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"p"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Bifunctor"],"Bifunctor"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Bifunctor","Flip"],"Flip"]},{"annotation":[],"tag":"TypeVar","contents":"p"}]}]}},"sourceSpan":{"start":[26,1],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Flip.purs","end":[27,42]}},{"comments":null,"title":"biapplyFlip","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Control","Biapply"],"Biapply"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"p"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Biapply"],"Biapply"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Bifunctor","Flip"],"Flip"]},{"annotation":[],"tag":"TypeVar","contents":"p"}]}]}},"sourceSpan":{"start":[29,1],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Flip.purs","end":[30,51]}},{"comments":null,"title":"biapplicativeFlip","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Control","Biapplicative"],"Biapplicative"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"p"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Biapplicative"],"Biapplicative"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Bifunctor","Flip"],"Flip"]},{"annotation":[],"tag":"TypeVar","contents":"p"}]}]}},"sourceSpan":{"start":[32,1],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Flip.purs","end":[33,33]}}],"comments":"Flips the order of the type arguments of a `Bifunctor`.\n","title":"Flip","info":{"declType":"data","dataDeclType":"newtype","typeArguments":[["p",null],["a",null],["b",null]]},"sourceSpan":{"start":[12,1],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Flip.purs","end":[12,34]}}]}
diff --git a/tests/purs/publish/basic-example/output/Data.Bifunctor.Flip/externs.json b/tests/purs/publish/basic-example/output/Data.Bifunctor.Flip/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.Bifunctor.Flip/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Data","Bifunctor","Flip"],"efExports":[{"TypeRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Flip.purs","end":[33,33]},"Flip",["Flip"]]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"newtypeFlip"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"eqFlip"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"ordFlip"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"showFlip"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"functorFlip"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"bifunctorFlip"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"biapplyFlip"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"biapplicativeFlip"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Prelude"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Control","Biapplicative"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[5,31],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Flip.purs","end":[5,50]},"Biapplicative"]},{"ValueRef":[{"start":[5,52],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Flip.purs","end":[5,58]},{"Ident":"bipure"}]}]},"eiImportedAs":null},{"eiModule":["Control","Biapply"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[6,25],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Flip.purs","end":[6,38]},"Biapply"]},{"ValueOpRef":[{"start":[6,40],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Flip.purs","end":[6,47]},"<<*>>"]}]},"eiImportedAs":null},{"eiModule":["Data","Bifunctor"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[8,24],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Flip.purs","end":[8,39]},"Bifunctor"]},{"ValueRef":[{"start":[8,41],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Flip.purs","end":[8,46]},{"Ident":"bimap"}]},{"ValueRef":[{"start":[8,48],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Flip.purs","end":[8,52]},{"Ident":"lmap"}]}]},"eiImportedAs":null},{"eiModule":["Data","Newtype"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[9,22],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Flip.purs","end":[9,35]},"Newtype"]}]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDType":{"edTypeName":"Flip","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[12,28],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Flip.purs","end":[12,31]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[12,30],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Flip.purs","end":[12,31]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[12,28],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Flip.purs","end":[12,33]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[12,32],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Flip.purs","end":[12,33]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[12,28],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Flip.purs","end":[12,33]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]}]},"edTypeDeclarationKind":{"DataType":{"args":[["p",{"annotation":[{"start":[12,28],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Flip.purs","end":[12,31]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[12,30],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Flip.purs","end":[12,31]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[12,28],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Flip.purs","end":[12,33]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[12,32],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Flip.purs","end":[12,33]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[12,28],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Flip.purs","end":[12,33]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]}],["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["b",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]],"ctors":[["Flip",[{"annotation":[{"start":[12,28],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Flip.purs","end":[12,33]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[12,28],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Flip.purs","end":[12,31]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[12,28],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Flip.purs","end":[12,29]},[]],"tag":"TypeVar","contents":"p"},{"annotation":[{"start":[12,30],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Flip.purs","end":[12,31]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[12,32],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Flip.purs","end":[12,33]},[]],"tag":"TypeVar","contents":"a"}]}]]]}}}},{"EDDataConstructor":{"edDataCtorName":"Flip","edDataCtorOrigin":"newtype","edDataCtorTypeCtor":"Flip","edDataCtorType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["p",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[12,28],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Flip.purs","end":[12,33]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[12,28],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Flip.purs","end":[12,31]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[12,28],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Flip.purs","end":[12,29]},[]],"tag":"TypeVar","contents":"p"},{"annotation":[{"start":[12,30],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Flip.purs","end":[12,31]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[12,32],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Flip.purs","end":[12,33]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Bifunctor","Flip"],"Flip"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"p"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"b"}]}]},null]},null]},null]},"edDataCtorFields":[{"Ident":"value0"}]}},{"EDInstance":{"edInstanceClassName":[["Data","Newtype"],"Newtype"],"edInstanceName":{"Ident":"newtypeFlip"},"edInstanceTypes":[{"annotation":[{"start":[14,41],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Flip.purs","end":[14,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[14,41],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Flip.purs","end":[14,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[14,41],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Flip.purs","end":[14,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[14,41],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Flip.purs","end":[14,45]},[]],"tag":"TypeConstructor","contents":[["Data","Bifunctor","Flip"],"Flip"]},{"annotation":[{"start":[14,46],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Flip.purs","end":[14,47]},[]],"tag":"TypeVar","contents":"p"}]},{"annotation":[{"start":[14,48],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Flip.purs","end":[14,49]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[14,50],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Flip.purs","end":[14,51]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[12,28],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Flip.purs","end":[12,33]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[12,28],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Flip.purs","end":[12,31]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[14,46],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Flip.purs","end":[14,47]},[]],"tag":"TypeVar","contents":"p"},{"annotation":[{"start":[14,50],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Flip.purs","end":[14,51]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[14,48],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Flip.purs","end":[14,49]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Bifunctor","Flip"],{"Ident":"newtypeFlip"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Eq"],"Eq"],"edInstanceName":{"Ident":"eqFlip"},"edInstanceTypes":[{"annotation":[{"start":[16,53],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Flip.purs","end":[16,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[16,53],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Flip.purs","end":[16,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[16,53],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Flip.purs","end":[16,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[16,53],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Flip.purs","end":[16,57]},[]],"tag":"TypeConstructor","contents":[["Data","Bifunctor","Flip"],"Flip"]},{"annotation":[{"start":[16,58],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Flip.purs","end":[16,59]},[]],"tag":"TypeVar","contents":"p"}]},{"annotation":[{"start":[16,60],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Flip.purs","end":[16,61]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[16,62],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Flip.purs","end":[16,63]},[]],"tag":"TypeVar","contents":"b"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[16,35],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Flip.purs","end":[16,45]},[]],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[{"start":[16,39],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Flip.purs","end":[16,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[16,39],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Flip.purs","end":[16,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[16,39],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Flip.purs","end":[16,40]},[]],"tag":"TypeVar","contents":"p"},{"annotation":[{"start":[16,41],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Flip.purs","end":[16,42]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[16,43],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Flip.purs","end":[16,44]},[]],"tag":"TypeVar","contents":"a"}]}],"constraintData":null}],"edInstanceChain":[[["Data","Bifunctor","Flip"],{"Ident":"eqFlip"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Ord"],"Ord"],"edInstanceName":{"Ident":"ordFlip"},"edInstanceTypes":[{"annotation":[{"start":[18,56],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Flip.purs","end":[18,66]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,56],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Flip.purs","end":[18,64]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,56],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Flip.purs","end":[18,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,56],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Flip.purs","end":[18,60]},[]],"tag":"TypeConstructor","contents":[["Data","Bifunctor","Flip"],"Flip"]},{"annotation":[{"start":[18,61],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Flip.purs","end":[18,62]},[]],"tag":"TypeVar","contents":"p"}]},{"annotation":[{"start":[18,63],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Flip.purs","end":[18,64]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[18,65],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Flip.purs","end":[18,66]},[]],"tag":"TypeVar","contents":"b"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[18,36],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Flip.purs","end":[18,47]},[]],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[{"start":[18,41],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Flip.purs","end":[18,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,41],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Flip.purs","end":[18,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,41],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Flip.purs","end":[18,42]},[]],"tag":"TypeVar","contents":"p"},{"annotation":[{"start":[18,43],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Flip.purs","end":[18,44]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[18,45],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Flip.purs","end":[18,46]},[]],"tag":"TypeVar","contents":"a"}]}],"constraintData":null}],"edInstanceChain":[[["Data","Bifunctor","Flip"],{"Ident":"ordFlip"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Show"],"Show"],"edInstanceName":{"Ident":"showFlip"},"edInstanceTypes":[{"annotation":[{"start":[20,44],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Flip.purs","end":[20,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[20,44],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Flip.purs","end":[20,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[20,44],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Flip.purs","end":[20,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[20,44],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Flip.purs","end":[20,48]},[]],"tag":"TypeConstructor","contents":[["Data","Bifunctor","Flip"],"Flip"]},{"annotation":[{"start":[20,49],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Flip.purs","end":[20,50]},[]],"tag":"TypeVar","contents":"p"}]},{"annotation":[{"start":[20,51],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Flip.purs","end":[20,52]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[20,53],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Flip.purs","end":[20,54]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[20,22],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Flip.purs","end":[20,34]},[]],"constraintClass":[["Data","Show"],"Show"],"constraintArgs":[{"annotation":[{"start":[20,28],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Flip.purs","end":[20,33]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[20,28],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Flip.purs","end":[20,31]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[20,28],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Flip.purs","end":[20,29]},[]],"tag":"TypeVar","contents":"p"},{"annotation":[{"start":[20,30],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Flip.purs","end":[20,31]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[20,32],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Flip.purs","end":[20,33]},[]],"tag":"TypeVar","contents":"b"}]}],"constraintData":null}],"edInstanceChain":[[["Data","Bifunctor","Flip"],{"Ident":"showFlip"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Functor"],"Functor"],"edInstanceName":{"Ident":"functorFlip"},"edInstanceTypes":[{"annotation":[{"start":[23,49],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Flip.purs","end":[23,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[23,49],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Flip.purs","end":[23,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[23,49],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Flip.purs","end":[23,53]},[]],"tag":"TypeConstructor","contents":[["Data","Bifunctor","Flip"],"Flip"]},{"annotation":[{"start":[23,54],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Flip.purs","end":[23,55]},[]],"tag":"TypeVar","contents":"p"}]},{"annotation":[{"start":[23,56],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Flip.purs","end":[23,57]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[23,25],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Flip.purs","end":[23,36]},[]],"constraintClass":[["Data","Bifunctor"],"Bifunctor"],"constraintArgs":[{"annotation":[{"start":[23,35],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Flip.purs","end":[23,36]},[]],"tag":"TypeVar","contents":"p"}],"constraintData":null}],"edInstanceChain":[[["Data","Bifunctor","Flip"],{"Ident":"functorFlip"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Bifunctor"],"Bifunctor"],"edInstanceName":{"Ident":"bifunctorFlip"},"edInstanceTypes":[{"annotation":[{"start":[26,53],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Flip.purs","end":[26,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[26,53],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Flip.purs","end":[26,57]},[]],"tag":"TypeConstructor","contents":[["Data","Bifunctor","Flip"],"Flip"]},{"annotation":[{"start":[26,58],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Flip.purs","end":[26,59]},[]],"tag":"TypeVar","contents":"p"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[26,27],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Flip.purs","end":[26,38]},[]],"constraintClass":[["Data","Bifunctor"],"Bifunctor"],"constraintArgs":[{"annotation":[{"start":[26,37],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Flip.purs","end":[26,38]},[]],"tag":"TypeVar","contents":"p"}],"constraintData":null}],"edInstanceChain":[[["Data","Bifunctor","Flip"],{"Ident":"bifunctorFlip"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Biapply"],"Biapply"],"edInstanceName":{"Ident":"biapplyFlip"},"edInstanceTypes":[{"annotation":[{"start":[29,47],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Flip.purs","end":[29,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[29,47],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Flip.purs","end":[29,51]},[]],"tag":"TypeConstructor","contents":[["Data","Bifunctor","Flip"],"Flip"]},{"annotation":[{"start":[29,52],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Flip.purs","end":[29,53]},[]],"tag":"TypeVar","contents":"p"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[29,25],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Flip.purs","end":[29,34]},[]],"constraintClass":[["Control","Biapply"],"Biapply"],"constraintArgs":[{"annotation":[{"start":[29,33],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Flip.purs","end":[29,34]},[]],"tag":"TypeVar","contents":"p"}],"constraintData":null}],"edInstanceChain":[[["Data","Bifunctor","Flip"],{"Ident":"biapplyFlip"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Biapplicative"],"Biapplicative"],"edInstanceName":{"Ident":"biapplicativeFlip"},"edInstanceTypes":[{"annotation":[{"start":[32,65],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Flip.purs","end":[32,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[32,65],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Flip.purs","end":[32,69]},[]],"tag":"TypeConstructor","contents":[["Data","Bifunctor","Flip"],"Flip"]},{"annotation":[{"start":[32,70],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Flip.purs","end":[32,71]},[]],"tag":"TypeVar","contents":"p"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[32,31],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Flip.purs","end":[32,46]},[]],"constraintClass":[["Control","Biapplicative"],"Biapplicative"],"constraintArgs":[{"annotation":[{"start":[32,45],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Flip.purs","end":[32,46]},[]],"tag":"TypeVar","contents":"p"}],"constraintData":null}],"edInstanceChain":[[["Data","Bifunctor","Flip"],{"Ident":"biapplicativeFlip"}]],"edInstanceChainIndex":0}}],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Flip.purs","end":[33,33]}}
diff --git a/tests/purs/publish/basic-example/output/Data.Bifunctor.Join/docs.json b/tests/purs/publish/basic-example/output/Data.Bifunctor.Join/docs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.Bifunctor.Join/docs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"reExports":[],"name":"Data.Bifunctor.Join","comments":null,"declarations":[{"children":[{"comments":null,"title":"Join","info":{"arguments":[{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"p"},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}],"declType":"dataConstructor"},"sourceSpan":null},{"comments":null,"title":"newtypeJoin","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Newtype"],"Newtype"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Bifunctor","Join"],"Join"]},{"annotation":[],"tag":"TypeVar","contents":"p"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeWildcard","contents":null}]}},"sourceSpan":{"start":[14,1],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Join.purs","end":[14,52]}},{"comments":null,"title":"eqJoin","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"p"},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Eq"],"Eq"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Bifunctor","Join"],"Join"]},{"annotation":[],"tag":"TypeVar","contents":"p"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[16,1],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Join.purs","end":[16,62]}},{"comments":null,"title":"ordJoin","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"p"},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord"],"Ord"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Bifunctor","Join"],"Join"]},{"annotation":[],"tag":"TypeVar","contents":"p"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[18,1],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Join.purs","end":[18,65]}},{"comments":null,"title":"showJoin","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Show"],"Show"],"constraintArgs":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"p"},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Show"],"Show"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Bifunctor","Join"],"Join"]},{"annotation":[],"tag":"TypeVar","contents":"p"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[20,1],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Join.purs","end":[21,44]}},{"comments":null,"title":"bifunctorJoin","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Bifunctor"],"Bifunctor"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"p"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Functor"],"Functor"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Bifunctor","Join"],"Join"]},{"annotation":[],"tag":"TypeVar","contents":"p"}]}]}},"sourceSpan":{"start":[23,1],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Join.purs","end":[24,38]}},{"comments":null,"title":"biapplyJoin","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Control","Biapply"],"Biapply"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"p"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Apply"],"Apply"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Bifunctor","Join"],"Join"]},{"annotation":[],"tag":"TypeVar","contents":"p"}]}]}},"sourceSpan":{"start":[26,1],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Join.purs","end":[27,45]}},{"comments":null,"title":"biapplicativeJoin","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Control","Biapplicative"],"Biapplicative"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"p"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Applicative"],"Applicative"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Bifunctor","Join"],"Join"]},{"annotation":[],"tag":"TypeVar","contents":"p"}]}]}},"sourceSpan":{"start":[29,1],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Join.purs","end":[30,29]}}],"comments":"Turns a `Bifunctor` into a `Functor` by equating the two type arguments.\n","title":"Join","info":{"declType":"data","dataDeclType":"newtype","typeArguments":[["p",null],["a",null]]},"sourceSpan":{"start":[12,1],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Join.purs","end":[12,32]}}]}
diff --git a/tests/purs/publish/basic-example/output/Data.Bifunctor.Join/externs.json b/tests/purs/publish/basic-example/output/Data.Bifunctor.Join/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.Bifunctor.Join/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Data","Bifunctor","Join"],"efExports":[{"TypeRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Join.purs","end":[30,29]},"Join",["Join"]]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"newtypeJoin"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"eqJoin"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"ordJoin"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"showJoin"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"bifunctorJoin"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"biapplyJoin"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"biapplicativeJoin"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Prelude"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Control","Biapplicative"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[5,31],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Join.purs","end":[5,50]},"Biapplicative"]},{"ValueRef":[{"start":[5,52],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Join.purs","end":[5,58]},{"Ident":"bipure"}]}]},"eiImportedAs":null},{"eiModule":["Control","Biapply"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[6,25],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Join.purs","end":[6,38]},"Biapply"]},{"ValueOpRef":[{"start":[6,40],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Join.purs","end":[6,47]},"<<*>>"]}]},"eiImportedAs":null},{"eiModule":["Data","Bifunctor"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[8,24],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Join.purs","end":[8,39]},"Bifunctor"]},{"ValueRef":[{"start":[8,41],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Join.purs","end":[8,46]},{"Ident":"bimap"}]}]},"eiImportedAs":null},{"eiModule":["Data","Newtype"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[9,22],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Join.purs","end":[9,35]},"Newtype"]}]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDType":{"edTypeName":"Join","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[12,26],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Join.purs","end":[12,29]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[12,28],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Join.purs","end":[12,29]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[12,26],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Join.purs","end":[12,31]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[12,30],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Join.purs","end":[12,31]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[12,26],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Join.purs","end":[12,31]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]},"edTypeDeclarationKind":{"DataType":{"args":[["p",{"annotation":[{"start":[12,26],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Join.purs","end":[12,29]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[12,28],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Join.purs","end":[12,29]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[12,26],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Join.purs","end":[12,31]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[12,30],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Join.purs","end":[12,31]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[12,26],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Join.purs","end":[12,31]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]}],["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]],"ctors":[["Join",[{"annotation":[{"start":[12,26],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Join.purs","end":[12,31]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[12,26],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Join.purs","end":[12,29]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[12,26],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Join.purs","end":[12,27]},[]],"tag":"TypeVar","contents":"p"},{"annotation":[{"start":[12,28],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Join.purs","end":[12,29]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[12,30],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Join.purs","end":[12,31]},[]],"tag":"TypeVar","contents":"a"}]}]]]}}}},{"EDDataConstructor":{"edDataCtorName":"Join","edDataCtorOrigin":"newtype","edDataCtorTypeCtor":"Join","edDataCtorType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["p",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[12,26],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Join.purs","end":[12,31]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[12,26],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Join.purs","end":[12,29]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[12,26],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Join.purs","end":[12,27]},[]],"tag":"TypeVar","contents":"p"},{"annotation":[{"start":[12,28],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Join.purs","end":[12,29]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[12,30],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Join.purs","end":[12,31]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Bifunctor","Join"],"Join"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"p"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"a"}]}]},null]},null]},"edDataCtorFields":[{"Ident":"value0"}]}},{"EDInstance":{"edInstanceClassName":[["Data","Newtype"],"Newtype"],"edInstanceName":{"Ident":"newtypeJoin"},"edInstanceTypes":[{"annotation":[{"start":[14,41],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Join.purs","end":[14,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[14,41],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Join.purs","end":[14,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[14,41],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Join.purs","end":[14,45]},[]],"tag":"TypeConstructor","contents":[["Data","Bifunctor","Join"],"Join"]},{"annotation":[{"start":[14,46],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Join.purs","end":[14,47]},[]],"tag":"TypeVar","contents":"p"}]},{"annotation":[{"start":[14,48],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Join.purs","end":[14,49]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[12,26],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Join.purs","end":[12,31]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[12,26],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Join.purs","end":[12,29]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[14,46],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Join.purs","end":[14,47]},[]],"tag":"TypeVar","contents":"p"},{"annotation":[{"start":[14,48],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Join.purs","end":[14,49]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[14,48],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Join.purs","end":[14,49]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Bifunctor","Join"],{"Ident":"newtypeJoin"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Eq"],"Eq"],"edInstanceName":{"Ident":"eqJoin"},"edInstanceTypes":[{"annotation":[{"start":[16,53],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Join.purs","end":[16,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[16,53],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Join.purs","end":[16,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[16,53],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Join.purs","end":[16,57]},[]],"tag":"TypeConstructor","contents":[["Data","Bifunctor","Join"],"Join"]},{"annotation":[{"start":[16,58],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Join.purs","end":[16,59]},[]],"tag":"TypeVar","contents":"p"}]},{"annotation":[{"start":[16,60],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Join.purs","end":[16,61]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[16,35],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Join.purs","end":[16,45]},[]],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[{"start":[16,39],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Join.purs","end":[16,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[16,39],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Join.purs","end":[16,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[16,39],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Join.purs","end":[16,40]},[]],"tag":"TypeVar","contents":"p"},{"annotation":[{"start":[16,41],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Join.purs","end":[16,42]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[16,43],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Join.purs","end":[16,44]},[]],"tag":"TypeVar","contents":"a"}]}],"constraintData":null}],"edInstanceChain":[[["Data","Bifunctor","Join"],{"Ident":"eqJoin"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Ord"],"Ord"],"edInstanceName":{"Ident":"ordJoin"},"edInstanceTypes":[{"annotation":[{"start":[18,56],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Join.purs","end":[18,64]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,56],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Join.purs","end":[18,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,56],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Join.purs","end":[18,60]},[]],"tag":"TypeConstructor","contents":[["Data","Bifunctor","Join"],"Join"]},{"annotation":[{"start":[18,61],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Join.purs","end":[18,62]},[]],"tag":"TypeVar","contents":"p"}]},{"annotation":[{"start":[18,63],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Join.purs","end":[18,64]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[18,36],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Join.purs","end":[18,47]},[]],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[{"start":[18,41],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Join.purs","end":[18,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,41],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Join.purs","end":[18,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,41],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Join.purs","end":[18,42]},[]],"tag":"TypeVar","contents":"p"},{"annotation":[{"start":[18,43],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Join.purs","end":[18,44]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[18,45],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Join.purs","end":[18,46]},[]],"tag":"TypeVar","contents":"a"}]}],"constraintData":null}],"edInstanceChain":[[["Data","Bifunctor","Join"],{"Ident":"ordJoin"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Show"],"Show"],"edInstanceName":{"Ident":"showJoin"},"edInstanceTypes":[{"annotation":[{"start":[20,44],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Join.purs","end":[20,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[20,44],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Join.purs","end":[20,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[20,44],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Join.purs","end":[20,48]},[]],"tag":"TypeConstructor","contents":[["Data","Bifunctor","Join"],"Join"]},{"annotation":[{"start":[20,49],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Join.purs","end":[20,50]},[]],"tag":"TypeVar","contents":"p"}]},{"annotation":[{"start":[20,51],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Join.purs","end":[20,52]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[20,22],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Join.purs","end":[20,34]},[]],"constraintClass":[["Data","Show"],"Show"],"constraintArgs":[{"annotation":[{"start":[20,28],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Join.purs","end":[20,33]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[20,28],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Join.purs","end":[20,31]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[20,28],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Join.purs","end":[20,29]},[]],"tag":"TypeVar","contents":"p"},{"annotation":[{"start":[20,30],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Join.purs","end":[20,31]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[20,32],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Join.purs","end":[20,33]},[]],"tag":"TypeVar","contents":"a"}]}],"constraintData":null}],"edInstanceChain":[[["Data","Bifunctor","Join"],{"Ident":"showJoin"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Functor"],"Functor"],"edInstanceName":{"Ident":"bifunctorJoin"},"edInstanceTypes":[{"annotation":[{"start":[23,51],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Join.purs","end":[23,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[23,51],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Join.purs","end":[23,55]},[]],"tag":"TypeConstructor","contents":[["Data","Bifunctor","Join"],"Join"]},{"annotation":[{"start":[23,56],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Join.purs","end":[23,57]},[]],"tag":"TypeVar","contents":"p"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[23,27],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Join.purs","end":[23,38]},[]],"constraintClass":[["Data","Bifunctor"],"Bifunctor"],"constraintArgs":[{"annotation":[{"start":[23,37],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Join.purs","end":[23,38]},[]],"tag":"TypeVar","contents":"p"}],"constraintData":null}],"edInstanceChain":[[["Data","Bifunctor","Join"],{"Ident":"bifunctorJoin"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Apply"],"Apply"],"edInstanceName":{"Ident":"biapplyJoin"},"edInstanceTypes":[{"annotation":[{"start":[26,45],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Join.purs","end":[26,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[26,45],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Join.purs","end":[26,49]},[]],"tag":"TypeConstructor","contents":[["Data","Bifunctor","Join"],"Join"]},{"annotation":[{"start":[26,50],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Join.purs","end":[26,51]},[]],"tag":"TypeVar","contents":"p"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[26,25],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Join.purs","end":[26,34]},[]],"constraintClass":[["Control","Biapply"],"Biapply"],"constraintArgs":[{"annotation":[{"start":[26,33],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Join.purs","end":[26,34]},[]],"tag":"TypeVar","contents":"p"}],"constraintData":null}],"edInstanceChain":[[["Data","Bifunctor","Join"],{"Ident":"biapplyJoin"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Applicative"],"Applicative"],"edInstanceName":{"Ident":"biapplicativeJoin"},"edInstanceTypes":[{"annotation":[{"start":[29,63],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Join.purs","end":[29,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[29,63],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Join.purs","end":[29,67]},[]],"tag":"TypeConstructor","contents":[["Data","Bifunctor","Join"],"Join"]},{"annotation":[{"start":[29,68],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Join.purs","end":[29,69]},[]],"tag":"TypeVar","contents":"p"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[29,31],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Join.purs","end":[29,46]},[]],"constraintClass":[["Control","Biapplicative"],"Biapplicative"],"constraintArgs":[{"annotation":[{"start":[29,45],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Join.purs","end":[29,46]},[]],"tag":"TypeVar","contents":"p"}],"constraintData":null}],"edInstanceChain":[[["Data","Bifunctor","Join"],{"Ident":"biapplicativeJoin"}]],"edInstanceChainIndex":0}}],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Join.purs","end":[30,29]}}
diff --git a/tests/purs/publish/basic-example/output/Data.Bifunctor.Joker/docs.json b/tests/purs/publish/basic-example/output/Data.Bifunctor.Joker/docs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.Bifunctor.Joker/docs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"reExports":[],"name":"Data.Bifunctor.Joker","comments":null,"declarations":[{"children":[{"comments":null,"title":"Joker","info":{"arguments":[{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"g"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}}],"declType":"dataConstructor"},"sourceSpan":null},{"comments":null,"title":"newtypeJoker","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Newtype"],"Newtype"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Bifunctor","Joker"],"Joker"]},{"annotation":[],"tag":"TypeVar","contents":"g"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[],"tag":"TypeWildcard","contents":null}]}},"sourceSpan":{"start":[14,1],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Joker.purs","end":[14,56]}},{"comments":null,"title":"eqJoker","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"g"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Eq"],"Eq"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Bifunctor","Joker"],"Joker"]},{"annotation":[],"tag":"TypeVar","contents":"g"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}},"sourceSpan":{"start":[16,1],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Joker.purs","end":[16,64]}},{"comments":null,"title":"ordJoker","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"g"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord"],"Ord"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Bifunctor","Joker"],"Joker"]},{"annotation":[],"tag":"TypeVar","contents":"g"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}},"sourceSpan":{"start":[18,1],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Joker.purs","end":[18,67]}},{"comments":null,"title":"showJoker","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Show"],"Show"],"constraintArgs":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"g"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Show"],"Show"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Bifunctor","Joker"],"Joker"]},{"annotation":[],"tag":"TypeVar","contents":"g"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}},"sourceSpan":{"start":[20,1],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Joker.purs","end":[21,46]}},{"comments":null,"title":"functorJoker","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Functor"],"Functor"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"g"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Functor"],"Functor"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Bifunctor","Joker"],"Joker"]},{"annotation":[],"tag":"TypeVar","contents":"g"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[23,1],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Joker.purs","end":[24,36]}},{"comments":null,"title":"bifunctorJoker","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Functor"],"Functor"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"g"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Bifunctor"],"Bifunctor"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Bifunctor","Joker"],"Joker"]},{"annotation":[],"tag":"TypeVar","contents":"g"}]}]}},"sourceSpan":{"start":[26,1],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Joker.purs","end":[27,40]}},{"comments":null,"title":"biapplyJoker","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Control","Apply"],"Apply"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"g"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Biapply"],"Biapply"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Bifunctor","Joker"],"Joker"]},{"annotation":[],"tag":"TypeVar","contents":"g"}]}]}},"sourceSpan":{"start":[29,1],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Joker.purs","end":[30,52]}},{"comments":null,"title":"biapplicativeJoker","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Control","Applicative"],"Applicative"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"g"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Biapplicative"],"Biapplicative"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Bifunctor","Joker"],"Joker"]},{"annotation":[],"tag":"TypeVar","contents":"g"}]}]}},"sourceSpan":{"start":[32,1],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Joker.purs","end":[33,30]}}],"comments":"Make a `Functor` over the second argument of a `Bifunctor`\n","title":"Joker","info":{"declType":"data","dataDeclType":"newtype","typeArguments":[["g",null],["a",null],["b",null]]},"sourceSpan":{"start":[12,1],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Joker.purs","end":[12,34]}}]}
diff --git a/tests/purs/publish/basic-example/output/Data.Bifunctor.Joker/externs.json b/tests/purs/publish/basic-example/output/Data.Bifunctor.Joker/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.Bifunctor.Joker/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Data","Bifunctor","Joker"],"efExports":[{"TypeRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Joker.purs","end":[33,30]},"Joker",["Joker"]]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"newtypeJoker"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"eqJoker"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"ordJoker"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"showJoker"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"functorJoker"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"bifunctorJoker"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"biapplyJoker"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"biapplicativeJoker"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Prelude"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Control","Biapplicative"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[5,31],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Joker.purs","end":[5,50]},"Biapplicative"]}]},"eiImportedAs":null},{"eiModule":["Control","Biapply"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[6,25],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Joker.purs","end":[6,38]},"Biapply"]}]},"eiImportedAs":null},{"eiModule":["Data","Bifunctor"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[8,24],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Joker.purs","end":[8,39]},"Bifunctor"]}]},"eiImportedAs":null},{"eiModule":["Data","Newtype"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[9,22],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Joker.purs","end":[9,35]},"Newtype"]}]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDType":{"edTypeName":"Joker","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[12,30],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Joker.purs","end":[12,33]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[12,32],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Joker.purs","end":[12,33]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[12,30],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Joker.purs","end":[12,33]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]}]},"edTypeDeclarationKind":{"DataType":{"args":[["g",{"annotation":[{"start":[12,30],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Joker.purs","end":[12,33]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[12,32],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Joker.purs","end":[12,33]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[12,30],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Joker.purs","end":[12,33]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}],["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["b",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]],"ctors":[["Joker",[{"annotation":[{"start":[12,30],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Joker.purs","end":[12,33]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[12,30],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Joker.purs","end":[12,31]},[]],"tag":"TypeVar","contents":"g"},{"annotation":[{"start":[12,32],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Joker.purs","end":[12,33]},[]],"tag":"TypeVar","contents":"b"}]}]]]}}}},{"EDDataConstructor":{"edDataCtorName":"Joker","edDataCtorOrigin":"newtype","edDataCtorTypeCtor":"Joker","edDataCtorType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["g",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[12,30],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Joker.purs","end":[12,33]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[12,30],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Joker.purs","end":[12,31]},[]],"tag":"TypeVar","contents":"g"},{"annotation":[{"start":[12,32],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Joker.purs","end":[12,33]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Bifunctor","Joker"],"Joker"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"g"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"b"}]}]},null]},null]},null]},"edDataCtorFields":[{"Ident":"value0"}]}},{"EDInstance":{"edInstanceClassName":[["Data","Newtype"],"Newtype"],"edInstanceName":{"Ident":"newtypeJoker"},"edInstanceTypes":[{"annotation":[{"start":[14,42],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Joker.purs","end":[14,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[14,42],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Joker.purs","end":[14,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[14,42],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Joker.purs","end":[14,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[14,42],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Joker.purs","end":[14,47]},[]],"tag":"TypeConstructor","contents":[["Data","Bifunctor","Joker"],"Joker"]},{"annotation":[{"start":[14,48],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Joker.purs","end":[14,49]},[]],"tag":"TypeVar","contents":"g"}]},{"annotation":[{"start":[14,50],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Joker.purs","end":[14,51]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[14,52],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Joker.purs","end":[14,53]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[12,30],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Joker.purs","end":[12,33]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[14,48],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Joker.purs","end":[14,49]},[]],"tag":"TypeVar","contents":"g"},{"annotation":[{"start":[14,52],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Joker.purs","end":[14,53]},[]],"tag":"TypeVar","contents":"b"}]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Bifunctor","Joker"],{"Ident":"newtypeJoker"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Eq"],"Eq"],"edInstanceName":{"Ident":"eqJoker"},"edInstanceTypes":[{"annotation":[{"start":[16,52],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Joker.purs","end":[16,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[16,52],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Joker.purs","end":[16,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[16,52],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Joker.purs","end":[16,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[16,52],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Joker.purs","end":[16,57]},[]],"tag":"TypeConstructor","contents":[["Data","Bifunctor","Joker"],"Joker"]},{"annotation":[{"start":[16,58],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Joker.purs","end":[16,59]},[]],"tag":"TypeVar","contents":"g"}]},{"annotation":[{"start":[16,60],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Joker.purs","end":[16,61]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[16,62],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Joker.purs","end":[16,63]},[]],"tag":"TypeVar","contents":"b"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[16,36],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Joker.purs","end":[16,44]},[]],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[{"start":[16,40],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Joker.purs","end":[16,43]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[16,40],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Joker.purs","end":[16,41]},[]],"tag":"TypeVar","contents":"g"},{"annotation":[{"start":[16,42],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Joker.purs","end":[16,43]},[]],"tag":"TypeVar","contents":"b"}]}],"constraintData":null}],"edInstanceChain":[[["Data","Bifunctor","Joker"],{"Ident":"eqJoker"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Ord"],"Ord"],"edInstanceName":{"Ident":"ordJoker"},"edInstanceTypes":[{"annotation":[{"start":[18,55],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Joker.purs","end":[18,66]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,55],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Joker.purs","end":[18,64]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,55],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Joker.purs","end":[18,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,55],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Joker.purs","end":[18,60]},[]],"tag":"TypeConstructor","contents":[["Data","Bifunctor","Joker"],"Joker"]},{"annotation":[{"start":[18,61],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Joker.purs","end":[18,62]},[]],"tag":"TypeVar","contents":"g"}]},{"annotation":[{"start":[18,63],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Joker.purs","end":[18,64]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[18,65],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Joker.purs","end":[18,66]},[]],"tag":"TypeVar","contents":"b"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[18,37],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Joker.purs","end":[18,46]},[]],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[{"start":[18,42],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Joker.purs","end":[18,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,42],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Joker.purs","end":[18,43]},[]],"tag":"TypeVar","contents":"g"},{"annotation":[{"start":[18,44],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Joker.purs","end":[18,45]},[]],"tag":"TypeVar","contents":"b"}]}],"constraintData":null}],"edInstanceChain":[[["Data","Bifunctor","Joker"],{"Ident":"ordJoker"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Show"],"Show"],"edInstanceName":{"Ident":"showJoker"},"edInstanceTypes":[{"annotation":[{"start":[20,43],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Joker.purs","end":[20,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[20,43],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Joker.purs","end":[20,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[20,43],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Joker.purs","end":[20,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[20,43],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Joker.purs","end":[20,48]},[]],"tag":"TypeConstructor","contents":[["Data","Bifunctor","Joker"],"Joker"]},{"annotation":[{"start":[20,49],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Joker.purs","end":[20,50]},[]],"tag":"TypeVar","contents":"g"}]},{"annotation":[{"start":[20,51],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Joker.purs","end":[20,52]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[20,53],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Joker.purs","end":[20,54]},[]],"tag":"TypeVar","contents":"b"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[20,23],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Joker.purs","end":[20,33]},[]],"constraintClass":[["Data","Show"],"Show"],"constraintArgs":[{"annotation":[{"start":[20,29],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Joker.purs","end":[20,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[20,29],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Joker.purs","end":[20,30]},[]],"tag":"TypeVar","contents":"g"},{"annotation":[{"start":[20,31],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Joker.purs","end":[20,32]},[]],"tag":"TypeVar","contents":"b"}]}],"constraintData":null}],"edInstanceChain":[[["Data","Bifunctor","Joker"],{"Ident":"showJoker"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Functor"],"Functor"],"edInstanceName":{"Ident":"functorJoker"},"edInstanceTypes":[{"annotation":[{"start":[23,48],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Joker.purs","end":[23,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[23,48],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Joker.purs","end":[23,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[23,48],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Joker.purs","end":[23,53]},[]],"tag":"TypeConstructor","contents":[["Data","Bifunctor","Joker"],"Joker"]},{"annotation":[{"start":[23,54],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Joker.purs","end":[23,55]},[]],"tag":"TypeVar","contents":"g"}]},{"annotation":[{"start":[23,56],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Joker.purs","end":[23,57]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[23,26],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Joker.purs","end":[23,35]},[]],"constraintClass":[["Data","Functor"],"Functor"],"constraintArgs":[{"annotation":[{"start":[23,34],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Joker.purs","end":[23,35]},[]],"tag":"TypeVar","contents":"g"}],"constraintData":null}],"edInstanceChain":[[["Data","Bifunctor","Joker"],{"Ident":"functorJoker"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Bifunctor"],"Bifunctor"],"edInstanceName":{"Ident":"bifunctorJoker"},"edInstanceTypes":[{"annotation":[{"start":[26,52],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Joker.purs","end":[26,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[26,52],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Joker.purs","end":[26,57]},[]],"tag":"TypeConstructor","contents":[["Data","Bifunctor","Joker"],"Joker"]},{"annotation":[{"start":[26,58],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Joker.purs","end":[26,59]},[]],"tag":"TypeVar","contents":"g"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[26,28],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Joker.purs","end":[26,37]},[]],"constraintClass":[["Data","Functor"],"Functor"],"constraintArgs":[{"annotation":[{"start":[26,36],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Joker.purs","end":[26,37]},[]],"tag":"TypeVar","contents":"g"}],"constraintData":null}],"edInstanceChain":[[["Data","Bifunctor","Joker"],{"Ident":"bifunctorJoker"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Biapply"],"Biapply"],"edInstanceName":{"Ident":"biapplyJoker"},"edInstanceTypes":[{"annotation":[{"start":[29,46],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Joker.purs","end":[29,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[29,46],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Joker.purs","end":[29,51]},[]],"tag":"TypeConstructor","contents":[["Data","Bifunctor","Joker"],"Joker"]},{"annotation":[{"start":[29,52],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Joker.purs","end":[29,53]},[]],"tag":"TypeVar","contents":"g"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[29,26],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Joker.purs","end":[29,33]},[]],"constraintClass":[["Control","Apply"],"Apply"],"constraintArgs":[{"annotation":[{"start":[29,32],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Joker.purs","end":[29,33]},[]],"tag":"TypeVar","contents":"g"}],"constraintData":null}],"edInstanceChain":[[["Data","Bifunctor","Joker"],{"Ident":"biapplyJoker"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Biapplicative"],"Biapplicative"],"edInstanceName":{"Ident":"biapplicativeJoker"},"edInstanceTypes":[{"annotation":[{"start":[32,64],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Joker.purs","end":[32,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[32,64],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Joker.purs","end":[32,69]},[]],"tag":"TypeConstructor","contents":[["Data","Bifunctor","Joker"],"Joker"]},{"annotation":[{"start":[32,70],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Joker.purs","end":[32,71]},[]],"tag":"TypeVar","contents":"g"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[32,32],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Joker.purs","end":[32,45]},[]],"constraintClass":[["Control","Applicative"],"Applicative"],"constraintArgs":[{"annotation":[{"start":[32,44],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Joker.purs","end":[32,45]},[]],"tag":"TypeVar","contents":"g"}],"constraintData":null}],"edInstanceChain":[[["Data","Bifunctor","Joker"],{"Ident":"biapplicativeJoker"}]],"edInstanceChainIndex":0}}],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Joker.purs","end":[33,30]}}
diff --git a/tests/purs/publish/basic-example/output/Data.Bifunctor.Product/docs.json b/tests/purs/publish/basic-example/output/Data.Bifunctor.Product/docs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.Bifunctor.Product/docs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"reExports":[],"name":"Data.Bifunctor.Product","comments":null,"declarations":[{"children":[{"comments":null,"title":"Product","info":{"arguments":[{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"g"},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}}],"declType":"dataConstructor"},"sourceSpan":null},{"comments":null,"title":"eqProduct","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"g"},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Eq"],"Eq"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Bifunctor","Product"],"Product"]},{"annotation":[],"tag":"TypeVar","contents":"f"}]},{"annotation":[],"tag":"TypeVar","contents":"g"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}},"sourceSpan":{"start":[13,1],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Product.purs","end":[13,78]}},{"comments":null,"title":"ordProduct","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"g"},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord"],"Ord"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Bifunctor","Product"],"Product"]},{"annotation":[],"tag":"TypeVar","contents":"f"}]},{"annotation":[],"tag":"TypeVar","contents":"g"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}},"sourceSpan":{"start":[15,1],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Product.purs","end":[15,82]}},{"comments":null,"title":"showProduct","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Show"],"Show"],"constraintArgs":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","Show"],"Show"],"constraintArgs":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"g"},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Show"],"Show"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Bifunctor","Product"],"Product"]},{"annotation":[],"tag":"TypeVar","contents":"f"}]},{"annotation":[],"tag":"TypeVar","contents":"g"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}},"sourceSpan":{"start":[17,1],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Product.purs","end":[18,69]}},{"comments":null,"title":"bifunctorProduct","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Bifunctor"],"Bifunctor"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","Bifunctor"],"Bifunctor"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"g"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Bifunctor"],"Bifunctor"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Bifunctor","Product"],"Product"]},{"annotation":[],"tag":"TypeVar","contents":"f"}]},{"annotation":[],"tag":"TypeVar","contents":"g"}]}]}},"sourceSpan":{"start":[20,1],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Product.purs","end":[21,64]}},{"comments":null,"title":"biapplyProduct","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Control","Biapply"],"Biapply"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Control","Biapply"],"Biapply"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"g"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Biapply"],"Biapply"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Bifunctor","Product"],"Product"]},{"annotation":[],"tag":"TypeVar","contents":"f"}]},{"annotation":[],"tag":"TypeVar","contents":"g"}]}]}},"sourceSpan":{"start":[23,1],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Product.purs","end":[24,76]}},{"comments":null,"title":"biapplicativeProduct","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Control","Biapplicative"],"Biapplicative"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Control","Biapplicative"],"Biapplicative"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"g"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Biapplicative"],"Biapplicative"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Bifunctor","Product"],"Product"]},{"annotation":[],"tag":"TypeVar","contents":"f"}]},{"annotation":[],"tag":"TypeVar","contents":"g"}]}]}},"sourceSpan":{"start":[26,1],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Product.purs","end":[27,49]}}],"comments":"The product of two `Bifunctor`s.\n","title":"Product","info":{"declType":"data","dataDeclType":"data","typeArguments":[["f",null],["g",null],["a",null],["b",null]]},"sourceSpan":{"start":[11,1],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Product.purs","end":[11,47]}}]}
diff --git a/tests/purs/publish/basic-example/output/Data.Bifunctor.Product/externs.json b/tests/purs/publish/basic-example/output/Data.Bifunctor.Product/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.Bifunctor.Product/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Data","Bifunctor","Product"],"efExports":[{"TypeRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Product.purs","end":[27,49]},"Product",["Product"]]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"eqProduct"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"ordProduct"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"showProduct"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"bifunctorProduct"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"biapplyProduct"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"biapplicativeProduct"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Prelude"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Control","Biapplicative"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[5,31],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Product.purs","end":[5,50]},"Biapplicative"]},{"ValueRef":[{"start":[5,52],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Product.purs","end":[5,58]},{"Ident":"bipure"}]}]},"eiImportedAs":null},{"eiModule":["Control","Biapply"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[6,25],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Product.purs","end":[6,38]},"Biapply"]},{"ValueRef":[{"start":[6,40],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Product.purs","end":[6,47]},{"Ident":"biapply"}]}]},"eiImportedAs":null},{"eiModule":["Data","Bifunctor"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[8,24],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Product.purs","end":[8,39]},"Bifunctor"]},{"ValueRef":[{"start":[8,41],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Product.purs","end":[8,46]},{"Ident":"bimap"}]}]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDType":{"edTypeName":"Product","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[11,33],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Product.purs","end":[11,36]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[11,35],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Product.purs","end":[11,36]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[11,33],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Product.purs","end":[11,38]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[11,37],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Product.purs","end":[11,38]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[11,33],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Product.purs","end":[11,38]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[11,41],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Product.purs","end":[11,44]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[11,43],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Product.purs","end":[11,44]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[11,41],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Product.purs","end":[11,46]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[11,45],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Product.purs","end":[11,46]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[11,41],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Product.purs","end":[11,46]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]}]}]},"edTypeDeclarationKind":{"DataType":{"args":[["f",{"annotation":[{"start":[11,33],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Product.purs","end":[11,36]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[11,35],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Product.purs","end":[11,36]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[11,33],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Product.purs","end":[11,38]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[11,37],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Product.purs","end":[11,38]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[11,33],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Product.purs","end":[11,38]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]}],["g",{"annotation":[{"start":[11,41],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Product.purs","end":[11,44]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[11,43],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Product.purs","end":[11,44]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[11,41],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Product.purs","end":[11,46]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[11,45],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Product.purs","end":[11,46]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[11,41],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Product.purs","end":[11,46]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]}],["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["b",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]],"ctors":[["Product",[{"annotation":[{"start":[11,33],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Product.purs","end":[11,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[11,33],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Product.purs","end":[11,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[11,33],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Product.purs","end":[11,34]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[11,35],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Product.purs","end":[11,36]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[11,37],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Product.purs","end":[11,38]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[11,41],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Product.purs","end":[11,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[11,41],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Product.purs","end":[11,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[11,41],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Product.purs","end":[11,42]},[]],"tag":"TypeVar","contents":"g"},{"annotation":[{"start":[11,43],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Product.purs","end":[11,44]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[11,45],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Product.purs","end":[11,46]},[]],"tag":"TypeVar","contents":"b"}]}]]]}}}},{"EDDataConstructor":{"edDataCtorName":"Product","edDataCtorOrigin":"data","edDataCtorTypeCtor":"Product","edDataCtorType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["g",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[11,33],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Product.purs","end":[11,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[11,33],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Product.purs","end":[11,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[11,33],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Product.purs","end":[11,34]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[11,35],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Product.purs","end":[11,36]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[11,37],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Product.purs","end":[11,38]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[11,41],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Product.purs","end":[11,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[11,41],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Product.purs","end":[11,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[11,41],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Product.purs","end":[11,42]},[]],"tag":"TypeVar","contents":"g"},{"annotation":[{"start":[11,43],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Product.purs","end":[11,44]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[11,45],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Product.purs","end":[11,46]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Bifunctor","Product"],"Product"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"g"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"b"}]}]}]},null]},null]},null]},null]},"edDataCtorFields":[{"Ident":"value0"},{"Ident":"value1"}]}},{"EDInstance":{"edInstanceClassName":[["Data","Eq"],"Eq"],"edInstanceName":{"Ident":"eqProduct"},"edInstanceTypes":[{"annotation":[{"start":[13,62],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Product.purs","end":[13,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[13,62],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Product.purs","end":[13,75]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[13,62],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Product.purs","end":[13,73]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[13,62],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Product.purs","end":[13,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[13,62],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Product.purs","end":[13,69]},[]],"tag":"TypeConstructor","contents":[["Data","Bifunctor","Product"],"Product"]},{"annotation":[{"start":[13,70],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Product.purs","end":[13,71]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[13,72],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Product.purs","end":[13,73]},[]],"tag":"TypeVar","contents":"g"}]},{"annotation":[{"start":[13,74],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Product.purs","end":[13,75]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[13,76],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Product.purs","end":[13,77]},[]],"tag":"TypeVar","contents":"b"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[13,31],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Product.purs","end":[13,41]},[]],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[{"start":[13,35],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Product.purs","end":[13,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[13,35],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Product.purs","end":[13,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[13,35],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Product.purs","end":[13,36]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[13,37],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Product.purs","end":[13,38]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[13,39],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Product.purs","end":[13,40]},[]],"tag":"TypeVar","contents":"b"}]}],"constraintData":null},{"constraintAnn":[{"start":[13,43],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Product.purs","end":[13,53]},[]],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[{"start":[13,47],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Product.purs","end":[13,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[13,47],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Product.purs","end":[13,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[13,47],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Product.purs","end":[13,48]},[]],"tag":"TypeVar","contents":"g"},{"annotation":[{"start":[13,49],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Product.purs","end":[13,50]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[13,51],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Product.purs","end":[13,52]},[]],"tag":"TypeVar","contents":"b"}]}],"constraintData":null}],"edInstanceChain":[[["Data","Bifunctor","Product"],{"Ident":"eqProduct"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Ord"],"Ord"],"edInstanceName":{"Ident":"ordProduct"},"edInstanceTypes":[{"annotation":[{"start":[15,66],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Product.purs","end":[15,81]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[15,66],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Product.purs","end":[15,79]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[15,66],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Product.purs","end":[15,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[15,66],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Product.purs","end":[15,75]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[15,66],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Product.purs","end":[15,73]},[]],"tag":"TypeConstructor","contents":[["Data","Bifunctor","Product"],"Product"]},{"annotation":[{"start":[15,74],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Product.purs","end":[15,75]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[15,76],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Product.purs","end":[15,77]},[]],"tag":"TypeVar","contents":"g"}]},{"annotation":[{"start":[15,78],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Product.purs","end":[15,79]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[15,80],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Product.purs","end":[15,81]},[]],"tag":"TypeVar","contents":"b"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[15,32],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Product.purs","end":[15,43]},[]],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[{"start":[15,37],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Product.purs","end":[15,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[15,37],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Product.purs","end":[15,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[15,37],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Product.purs","end":[15,38]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[15,39],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Product.purs","end":[15,40]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[15,41],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Product.purs","end":[15,42]},[]],"tag":"TypeVar","contents":"b"}]}],"constraintData":null},{"constraintAnn":[{"start":[15,45],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Product.purs","end":[15,56]},[]],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[{"start":[15,50],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Product.purs","end":[15,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[15,50],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Product.purs","end":[15,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[15,50],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Product.purs","end":[15,51]},[]],"tag":"TypeVar","contents":"g"},{"annotation":[{"start":[15,52],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Product.purs","end":[15,53]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[15,54],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Product.purs","end":[15,55]},[]],"tag":"TypeVar","contents":"b"}]}],"constraintData":null}],"edInstanceChain":[[["Data","Bifunctor","Product"],{"Ident":"ordProduct"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Show"],"Show"],"edInstanceName":{"Ident":"showProduct"},"edInstanceTypes":[{"annotation":[{"start":[17,63],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Product.purs","end":[17,78]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[17,63],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Product.purs","end":[17,76]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[17,63],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Product.purs","end":[17,74]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[17,63],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Product.purs","end":[17,72]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[17,63],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Product.purs","end":[17,70]},[]],"tag":"TypeConstructor","contents":[["Data","Bifunctor","Product"],"Product"]},{"annotation":[{"start":[17,71],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Product.purs","end":[17,72]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[17,73],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Product.purs","end":[17,74]},[]],"tag":"TypeVar","contents":"g"}]},{"annotation":[{"start":[17,75],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Product.purs","end":[17,76]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[17,77],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Product.purs","end":[17,78]},[]],"tag":"TypeVar","contents":"b"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[17,26],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Product.purs","end":[17,38]},[]],"constraintClass":[["Data","Show"],"Show"],"constraintArgs":[{"annotation":[{"start":[17,32],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Product.purs","end":[17,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[17,32],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Product.purs","end":[17,35]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[17,32],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Product.purs","end":[17,33]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[17,34],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Product.purs","end":[17,35]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[17,36],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Product.purs","end":[17,37]},[]],"tag":"TypeVar","contents":"b"}]}],"constraintData":null},{"constraintAnn":[{"start":[17,40],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Product.purs","end":[17,52]},[]],"constraintClass":[["Data","Show"],"Show"],"constraintArgs":[{"annotation":[{"start":[17,46],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Product.purs","end":[17,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[17,46],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Product.purs","end":[17,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[17,46],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Product.purs","end":[17,47]},[]],"tag":"TypeVar","contents":"g"},{"annotation":[{"start":[17,48],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Product.purs","end":[17,49]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[17,50],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Product.purs","end":[17,51]},[]],"tag":"TypeVar","contents":"b"}]}],"constraintData":null}],"edInstanceChain":[[["Data","Bifunctor","Product"],{"Ident":"showProduct"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Bifunctor"],"Bifunctor"],"edInstanceName":{"Ident":"bifunctorProduct"},"edInstanceTypes":[{"annotation":[{"start":[20,71],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Product.purs","end":[20,82]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[20,71],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Product.purs","end":[20,80]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[20,71],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Product.purs","end":[20,78]},[]],"tag":"TypeConstructor","contents":[["Data","Bifunctor","Product"],"Product"]},{"annotation":[{"start":[20,79],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Product.purs","end":[20,80]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[20,81],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Product.purs","end":[20,82]},[]],"tag":"TypeVar","contents":"g"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[20,31],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Product.purs","end":[20,42]},[]],"constraintClass":[["Data","Bifunctor"],"Bifunctor"],"constraintArgs":[{"annotation":[{"start":[20,41],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Product.purs","end":[20,42]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"constraintAnn":[{"start":[20,44],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Product.purs","end":[20,55]},[]],"constraintClass":[["Data","Bifunctor"],"Bifunctor"],"constraintArgs":[{"annotation":[{"start":[20,54],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Product.purs","end":[20,55]},[]],"tag":"TypeVar","contents":"g"}],"constraintData":null}],"edInstanceChain":[[["Data","Bifunctor","Product"],{"Ident":"bifunctorProduct"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Biapply"],"Biapply"],"edInstanceName":{"Ident":"biapplyProduct"},"edInstanceTypes":[{"annotation":[{"start":[23,63],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Product.purs","end":[23,74]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[23,63],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Product.purs","end":[23,72]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[23,63],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Product.purs","end":[23,70]},[]],"tag":"TypeConstructor","contents":[["Data","Bifunctor","Product"],"Product"]},{"annotation":[{"start":[23,71],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Product.purs","end":[23,72]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[23,73],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Product.purs","end":[23,74]},[]],"tag":"TypeVar","contents":"g"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[23,29],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Product.purs","end":[23,38]},[]],"constraintClass":[["Control","Biapply"],"Biapply"],"constraintArgs":[{"annotation":[{"start":[23,37],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Product.purs","end":[23,38]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"constraintAnn":[{"start":[23,40],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Product.purs","end":[23,49]},[]],"constraintClass":[["Control","Biapply"],"Biapply"],"constraintArgs":[{"annotation":[{"start":[23,48],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Product.purs","end":[23,49]},[]],"tag":"TypeVar","contents":"g"}],"constraintData":null}],"edInstanceChain":[[["Data","Bifunctor","Product"],{"Ident":"biapplyProduct"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Biapplicative"],"Biapplicative"],"edInstanceName":{"Ident":"biapplicativeProduct"},"edInstanceTypes":[{"annotation":[{"start":[26,87],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Product.purs","end":[26,98]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[26,87],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Product.purs","end":[26,96]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[26,87],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Product.purs","end":[26,94]},[]],"tag":"TypeConstructor","contents":[["Data","Bifunctor","Product"],"Product"]},{"annotation":[{"start":[26,95],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Product.purs","end":[26,96]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[26,97],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Product.purs","end":[26,98]},[]],"tag":"TypeVar","contents":"g"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[26,35],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Product.purs","end":[26,50]},[]],"constraintClass":[["Control","Biapplicative"],"Biapplicative"],"constraintArgs":[{"annotation":[{"start":[26,49],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Product.purs","end":[26,50]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"constraintAnn":[{"start":[26,52],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Product.purs","end":[26,67]},[]],"constraintClass":[["Control","Biapplicative"],"Biapplicative"],"constraintArgs":[{"annotation":[{"start":[26,66],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Product.purs","end":[26,67]},[]],"tag":"TypeVar","contents":"g"}],"constraintData":null}],"edInstanceChain":[[["Data","Bifunctor","Product"],{"Ident":"biapplicativeProduct"}]],"edInstanceChainIndex":0}}],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Product.purs","end":[27,49]}}
diff --git a/tests/purs/publish/basic-example/output/Data.Bifunctor.Wrap/docs.json b/tests/purs/publish/basic-example/output/Data.Bifunctor.Wrap/docs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.Bifunctor.Wrap/docs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"reExports":[],"name":"Data.Bifunctor.Wrap","comments":null,"declarations":[{"children":[{"comments":null,"title":"Wrap","info":{"arguments":[{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"p"},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}}],"declType":"dataConstructor"},"sourceSpan":null},{"comments":null,"title":"newtypeWrap","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Newtype"],"Newtype"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Bifunctor","Wrap"],"Wrap"]},{"annotation":[],"tag":"TypeVar","contents":"p"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[],"tag":"TypeWildcard","contents":null}]}},"sourceSpan":{"start":[14,1],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Wrap.purs","end":[14,54]}},{"comments":null,"title":"eqWrap","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"p"},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Eq"],"Eq"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Bifunctor","Wrap"],"Wrap"]},{"annotation":[],"tag":"TypeVar","contents":"p"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}},"sourceSpan":{"start":[16,1],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Wrap.purs","end":[16,64]}},{"comments":null,"title":"ordWrap","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"p"},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord"],"Ord"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Bifunctor","Wrap"],"Wrap"]},{"annotation":[],"tag":"TypeVar","contents":"p"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}},"sourceSpan":{"start":[18,1],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Wrap.purs","end":[18,67]}},{"comments":null,"title":"showWrap","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Show"],"Show"],"constraintArgs":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"p"},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Show"],"Show"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Bifunctor","Wrap"],"Wrap"]},{"annotation":[],"tag":"TypeVar","contents":"p"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}},"sourceSpan":{"start":[20,1],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Wrap.purs","end":[21,44]}},{"comments":null,"title":"functorWrap","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Bifunctor"],"Bifunctor"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"p"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Functor"],"Functor"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Bifunctor","Wrap"],"Wrap"]},{"annotation":[],"tag":"TypeVar","contents":"p"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[23,1],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Wrap.purs","end":[24,35]}},{"comments":null,"title":"bifunctorWrap","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Bifunctor"],"Bifunctor"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"p"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Bifunctor"],"Bifunctor"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Bifunctor","Wrap"],"Wrap"]},{"annotation":[],"tag":"TypeVar","contents":"p"}]}]}},"sourceSpan":{"start":[26,1],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Wrap.purs","end":[27,42]}},{"comments":null,"title":"biapplyWrap","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Control","Biapply"],"Biapply"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"p"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Biapply"],"Biapply"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Bifunctor","Wrap"],"Wrap"]},{"annotation":[],"tag":"TypeVar","contents":"p"}]}]}},"sourceSpan":{"start":[29,1],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Wrap.purs","end":[30,51]}},{"comments":null,"title":"biapplicativeWrap","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Control","Biapplicative"],"Biapplicative"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"p"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Biapplicative"],"Biapplicative"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Bifunctor","Wrap"],"Wrap"]},{"annotation":[],"tag":"TypeVar","contents":"p"}]}]}},"sourceSpan":{"start":[32,1],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Wrap.purs","end":[33,33]}}],"comments":"Provides a `Functor` over the second argument of a `Bifunctor`.\n","title":"Wrap","info":{"declType":"data","dataDeclType":"newtype","typeArguments":[["p",null],["a",null],["b",null]]},"sourceSpan":{"start":[12,1],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Wrap.purs","end":[12,34]}}]}
diff --git a/tests/purs/publish/basic-example/output/Data.Bifunctor.Wrap/externs.json b/tests/purs/publish/basic-example/output/Data.Bifunctor.Wrap/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.Bifunctor.Wrap/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Data","Bifunctor","Wrap"],"efExports":[{"TypeRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Wrap.purs","end":[33,33]},"Wrap",["Wrap"]]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"newtypeWrap"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"eqWrap"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"ordWrap"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"showWrap"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"functorWrap"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"bifunctorWrap"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"biapplyWrap"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"biapplicativeWrap"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Prelude"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Control","Biapplicative"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[5,31],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Wrap.purs","end":[5,50]},"Biapplicative"]},{"ValueRef":[{"start":[5,52],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Wrap.purs","end":[5,58]},{"Ident":"bipure"}]}]},"eiImportedAs":null},{"eiModule":["Control","Biapply"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[6,25],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Wrap.purs","end":[6,38]},"Biapply"]},{"ValueOpRef":[{"start":[6,40],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Wrap.purs","end":[6,47]},"<<*>>"]}]},"eiImportedAs":null},{"eiModule":["Data","Bifunctor"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[8,24],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Wrap.purs","end":[8,39]},"Bifunctor"]},{"ValueRef":[{"start":[8,41],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Wrap.purs","end":[8,46]},{"Ident":"bimap"}]},{"ValueRef":[{"start":[8,48],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Wrap.purs","end":[8,52]},{"Ident":"rmap"}]}]},"eiImportedAs":null},{"eiModule":["Data","Newtype"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[9,22],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Wrap.purs","end":[9,35]},"Newtype"]}]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDType":{"edTypeName":"Wrap","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[12,28],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Wrap.purs","end":[12,31]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[12,30],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Wrap.purs","end":[12,31]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[12,28],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Wrap.purs","end":[12,33]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[12,32],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Wrap.purs","end":[12,33]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[12,28],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Wrap.purs","end":[12,33]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]}]},"edTypeDeclarationKind":{"DataType":{"args":[["p",{"annotation":[{"start":[12,28],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Wrap.purs","end":[12,31]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[12,30],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Wrap.purs","end":[12,31]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[12,28],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Wrap.purs","end":[12,33]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[12,32],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Wrap.purs","end":[12,33]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[12,28],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Wrap.purs","end":[12,33]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]}],["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["b",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]],"ctors":[["Wrap",[{"annotation":[{"start":[12,28],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Wrap.purs","end":[12,33]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[12,28],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Wrap.purs","end":[12,31]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[12,28],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Wrap.purs","end":[12,29]},[]],"tag":"TypeVar","contents":"p"},{"annotation":[{"start":[12,30],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Wrap.purs","end":[12,31]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[12,32],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Wrap.purs","end":[12,33]},[]],"tag":"TypeVar","contents":"b"}]}]]]}}}},{"EDDataConstructor":{"edDataCtorName":"Wrap","edDataCtorOrigin":"newtype","edDataCtorTypeCtor":"Wrap","edDataCtorType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["p",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[12,28],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Wrap.purs","end":[12,33]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[12,28],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Wrap.purs","end":[12,31]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[12,28],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Wrap.purs","end":[12,29]},[]],"tag":"TypeVar","contents":"p"},{"annotation":[{"start":[12,30],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Wrap.purs","end":[12,31]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[12,32],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Wrap.purs","end":[12,33]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Bifunctor","Wrap"],"Wrap"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"p"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"b"}]}]},null]},null]},null]},"edDataCtorFields":[{"Ident":"value0"}]}},{"EDInstance":{"edInstanceClassName":[["Data","Newtype"],"Newtype"],"edInstanceName":{"Ident":"newtypeWrap"},"edInstanceTypes":[{"annotation":[{"start":[14,41],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Wrap.purs","end":[14,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[14,41],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Wrap.purs","end":[14,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[14,41],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Wrap.purs","end":[14,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[14,41],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Wrap.purs","end":[14,45]},[]],"tag":"TypeConstructor","contents":[["Data","Bifunctor","Wrap"],"Wrap"]},{"annotation":[{"start":[14,46],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Wrap.purs","end":[14,47]},[]],"tag":"TypeVar","contents":"p"}]},{"annotation":[{"start":[14,48],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Wrap.purs","end":[14,49]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[14,50],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Wrap.purs","end":[14,51]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[12,28],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Wrap.purs","end":[12,33]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[12,28],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Wrap.purs","end":[12,31]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[14,46],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Wrap.purs","end":[14,47]},[]],"tag":"TypeVar","contents":"p"},{"annotation":[{"start":[14,48],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Wrap.purs","end":[14,49]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[14,50],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Wrap.purs","end":[14,51]},[]],"tag":"TypeVar","contents":"b"}]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Bifunctor","Wrap"],{"Ident":"newtypeWrap"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Eq"],"Eq"],"edInstanceName":{"Ident":"eqWrap"},"edInstanceTypes":[{"annotation":[{"start":[16,53],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Wrap.purs","end":[16,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[16,53],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Wrap.purs","end":[16,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[16,53],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Wrap.purs","end":[16,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[16,53],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Wrap.purs","end":[16,57]},[]],"tag":"TypeConstructor","contents":[["Data","Bifunctor","Wrap"],"Wrap"]},{"annotation":[{"start":[16,58],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Wrap.purs","end":[16,59]},[]],"tag":"TypeVar","contents":"p"}]},{"annotation":[{"start":[16,60],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Wrap.purs","end":[16,61]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[16,62],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Wrap.purs","end":[16,63]},[]],"tag":"TypeVar","contents":"b"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[16,35],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Wrap.purs","end":[16,45]},[]],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[{"start":[16,39],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Wrap.purs","end":[16,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[16,39],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Wrap.purs","end":[16,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[16,39],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Wrap.purs","end":[16,40]},[]],"tag":"TypeVar","contents":"p"},{"annotation":[{"start":[16,41],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Wrap.purs","end":[16,42]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[16,43],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Wrap.purs","end":[16,44]},[]],"tag":"TypeVar","contents":"b"}]}],"constraintData":null}],"edInstanceChain":[[["Data","Bifunctor","Wrap"],{"Ident":"eqWrap"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Ord"],"Ord"],"edInstanceName":{"Ident":"ordWrap"},"edInstanceTypes":[{"annotation":[{"start":[18,56],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Wrap.purs","end":[18,66]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,56],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Wrap.purs","end":[18,64]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,56],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Wrap.purs","end":[18,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,56],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Wrap.purs","end":[18,60]},[]],"tag":"TypeConstructor","contents":[["Data","Bifunctor","Wrap"],"Wrap"]},{"annotation":[{"start":[18,61],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Wrap.purs","end":[18,62]},[]],"tag":"TypeVar","contents":"p"}]},{"annotation":[{"start":[18,63],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Wrap.purs","end":[18,64]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[18,65],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Wrap.purs","end":[18,66]},[]],"tag":"TypeVar","contents":"b"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[18,36],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Wrap.purs","end":[18,47]},[]],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[{"start":[18,41],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Wrap.purs","end":[18,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,41],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Wrap.purs","end":[18,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,41],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Wrap.purs","end":[18,42]},[]],"tag":"TypeVar","contents":"p"},{"annotation":[{"start":[18,43],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Wrap.purs","end":[18,44]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[18,45],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Wrap.purs","end":[18,46]},[]],"tag":"TypeVar","contents":"b"}]}],"constraintData":null}],"edInstanceChain":[[["Data","Bifunctor","Wrap"],{"Ident":"ordWrap"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Show"],"Show"],"edInstanceName":{"Ident":"showWrap"},"edInstanceTypes":[{"annotation":[{"start":[20,44],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Wrap.purs","end":[20,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[20,44],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Wrap.purs","end":[20,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[20,44],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Wrap.purs","end":[20,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[20,44],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Wrap.purs","end":[20,48]},[]],"tag":"TypeConstructor","contents":[["Data","Bifunctor","Wrap"],"Wrap"]},{"annotation":[{"start":[20,49],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Wrap.purs","end":[20,50]},[]],"tag":"TypeVar","contents":"p"}]},{"annotation":[{"start":[20,51],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Wrap.purs","end":[20,52]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[20,53],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Wrap.purs","end":[20,54]},[]],"tag":"TypeVar","contents":"b"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[20,22],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Wrap.purs","end":[20,34]},[]],"constraintClass":[["Data","Show"],"Show"],"constraintArgs":[{"annotation":[{"start":[20,28],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Wrap.purs","end":[20,33]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[20,28],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Wrap.purs","end":[20,31]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[20,28],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Wrap.purs","end":[20,29]},[]],"tag":"TypeVar","contents":"p"},{"annotation":[{"start":[20,30],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Wrap.purs","end":[20,31]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[20,32],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Wrap.purs","end":[20,33]},[]],"tag":"TypeVar","contents":"b"}]}],"constraintData":null}],"edInstanceChain":[[["Data","Bifunctor","Wrap"],{"Ident":"showWrap"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Functor"],"Functor"],"edInstanceName":{"Ident":"functorWrap"},"edInstanceTypes":[{"annotation":[{"start":[23,49],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Wrap.purs","end":[23,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[23,49],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Wrap.purs","end":[23,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[23,49],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Wrap.purs","end":[23,53]},[]],"tag":"TypeConstructor","contents":[["Data","Bifunctor","Wrap"],"Wrap"]},{"annotation":[{"start":[23,54],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Wrap.purs","end":[23,55]},[]],"tag":"TypeVar","contents":"p"}]},{"annotation":[{"start":[23,56],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Wrap.purs","end":[23,57]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[23,25],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Wrap.purs","end":[23,36]},[]],"constraintClass":[["Data","Bifunctor"],"Bifunctor"],"constraintArgs":[{"annotation":[{"start":[23,35],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Wrap.purs","end":[23,36]},[]],"tag":"TypeVar","contents":"p"}],"constraintData":null}],"edInstanceChain":[[["Data","Bifunctor","Wrap"],{"Ident":"functorWrap"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Bifunctor"],"Bifunctor"],"edInstanceName":{"Ident":"bifunctorWrap"},"edInstanceTypes":[{"annotation":[{"start":[26,53],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Wrap.purs","end":[26,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[26,53],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Wrap.purs","end":[26,57]},[]],"tag":"TypeConstructor","contents":[["Data","Bifunctor","Wrap"],"Wrap"]},{"annotation":[{"start":[26,58],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Wrap.purs","end":[26,59]},[]],"tag":"TypeVar","contents":"p"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[26,27],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Wrap.purs","end":[26,38]},[]],"constraintClass":[["Data","Bifunctor"],"Bifunctor"],"constraintArgs":[{"annotation":[{"start":[26,37],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Wrap.purs","end":[26,38]},[]],"tag":"TypeVar","contents":"p"}],"constraintData":null}],"edInstanceChain":[[["Data","Bifunctor","Wrap"],{"Ident":"bifunctorWrap"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Biapply"],"Biapply"],"edInstanceName":{"Ident":"biapplyWrap"},"edInstanceTypes":[{"annotation":[{"start":[29,47],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Wrap.purs","end":[29,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[29,47],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Wrap.purs","end":[29,51]},[]],"tag":"TypeConstructor","contents":[["Data","Bifunctor","Wrap"],"Wrap"]},{"annotation":[{"start":[29,52],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Wrap.purs","end":[29,53]},[]],"tag":"TypeVar","contents":"p"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[29,25],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Wrap.purs","end":[29,34]},[]],"constraintClass":[["Control","Biapply"],"Biapply"],"constraintArgs":[{"annotation":[{"start":[29,33],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Wrap.purs","end":[29,34]},[]],"tag":"TypeVar","contents":"p"}],"constraintData":null}],"edInstanceChain":[[["Data","Bifunctor","Wrap"],{"Ident":"biapplyWrap"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Biapplicative"],"Biapplicative"],"edInstanceName":{"Ident":"biapplicativeWrap"},"edInstanceTypes":[{"annotation":[{"start":[32,65],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Wrap.purs","end":[32,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[32,65],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Wrap.purs","end":[32,69]},[]],"tag":"TypeConstructor","contents":[["Data","Bifunctor","Wrap"],"Wrap"]},{"annotation":[{"start":[32,70],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Wrap.purs","end":[32,71]},[]],"tag":"TypeVar","contents":"p"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[32,31],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Wrap.purs","end":[32,46]},[]],"constraintClass":[["Control","Biapplicative"],"Biapplicative"],"constraintArgs":[{"annotation":[{"start":[32,45],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Wrap.purs","end":[32,46]},[]],"tag":"TypeVar","contents":"p"}],"constraintData":null}],"edInstanceChain":[[["Data","Bifunctor","Wrap"],{"Ident":"biapplicativeWrap"}]],"edInstanceChainIndex":0}}],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor/Wrap.purs","end":[33,33]}}
diff --git a/tests/purs/publish/basic-example/output/Data.Bifunctor/docs.json b/tests/purs/publish/basic-example/output/Data.Bifunctor/docs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.Bifunctor/docs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"reExports":[],"name":"Data.Bifunctor","comments":null,"declarations":[{"children":[{"comments":null,"title":"bimap","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"ForAll","contents":["d",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"d"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"d"}]}]}]}]},null]},null]},null]},null]}},"sourceSpan":{"start":[19,3],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[19,66]}}],"comments":"A `Bifunctor` is a `Functor` from the pair category `(Type, Type)` to `Type`.\n\nA type constructor with two type arguments can be made into a `Bifunctor` if\nboth of its type arguments are covariant.\n\nThe `bimap` function maps a pair of functions over the two type arguments\nof the bifunctor.\n\nLaws:\n\n- Identity: `bimap identity identity == identity`\n- Composition: `bimap f1 g1 <<< bimap f2 g2 == bimap (f1 <<< f2) (g1 <<< g2)`\n\n","title":"Bifunctor","info":{"fundeps":[],"arguments":[["f",null]],"declType":"typeClass","superclasses":[]},"sourceSpan":{"start":[18,1],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[19,66]}},{"children":[],"comments":"Map a function over the first type argument of a `Bifunctor`.\n","title":"lmap","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Bifunctor"],"Bifunctor"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]}]}]}]},null]},null]},null]},null]}},"sourceSpan":{"start":[22,1],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[22,66]}},{"children":[],"comments":"Map a function over the second type arguments of a `Bifunctor`.\n","title":"rmap","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Bifunctor"],"Bifunctor"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]}]}]}]},null]},null]},null]},null]}},"sourceSpan":{"start":[26,1],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[26,66]}}]}
diff --git a/tests/purs/publish/basic-example/output/Data.Bifunctor/externs.json b/tests/purs/publish/basic-example/output/Data.Bifunctor/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.Bifunctor/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Data","Bifunctor"],"efExports":[{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[27,22]},{"Ident":"bimap"}]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[27,22]},"Bifunctor"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[27,22]},{"Ident":"lmap"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[27,22]},{"Ident":"rmap"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Control","Category"],"eiImportType":{"Explicit":[{"ValueRef":[{"start":[3,26],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[3,34]},{"Ident":"identity"}]}]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDValue":{"edValueName":{"Ident":"bimap"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[19,12],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[19,66]},[]],"tag":"ForAll","contents":["d",{"annotation":[{"start":[19,19],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[19,66]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[19,19],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[19,66]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[19,19],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[19,66]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["Data","Bifunctor"],"Bifunctor"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[19,28],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[19,66]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[19,28],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[19,66]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[19,37],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[19,39]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[19,29],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[19,35]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[19,29],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[19,35]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[19,31],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[19,33]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[19,29],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[19,30]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[19,34],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[19,35]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[19,40],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[19,66]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[19,40],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[19,66]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[19,49],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[19,51]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[19,41],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[19,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[19,41],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[19,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[19,43],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[19,45]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[19,41],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[19,42]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[19,46],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[19,47]},[]],"tag":"TypeVar","contents":"d"}]}]},{"annotation":[{"start":[19,52],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[19,66]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[19,52],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[19,66]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[19,58],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[19,60]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[19,52],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[19,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[19,52],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[19,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[19,52],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[19,53]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[19,54],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[19,55]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[19,56],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[19,57]},[]],"tag":"TypeVar","contents":"c"}]}]},{"annotation":[{"start":[19,61],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[19,66]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[19,61],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[19,64]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[19,61],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[19,62]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[19,63],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[19,64]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[19,65],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[19,66]},[]],"tag":"TypeVar","contents":"d"}]}]}]}]}]},0]},1]},2]},3]},4]}}},{"EDType":{"edTypeName":"Bifunctor","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[19,52],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[19,55]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[19,31],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[19,33]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[19,52],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[19,57]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[19,43],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[19,45]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[19,58],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[19,60]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"Bifunctor","edTypeSynonymArguments":[["f",null]],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["bimap",{"annotation":[{"start":[19,12],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[19,66]},[]],"tag":"ForAll","contents":["d",{"annotation":[{"start":[19,19],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[19,66]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[19,19],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[19,66]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[19,19],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[19,66]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[19,28],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[19,66]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[19,28],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[19,66]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[19,37],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[19,39]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[19,29],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[19,35]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[19,29],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[19,35]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[19,31],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[19,33]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[19,29],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[19,30]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[19,34],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[19,35]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[19,40],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[19,66]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[19,40],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[19,66]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[19,49],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[19,51]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[19,41],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[19,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[19,41],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[19,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[19,43],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[19,45]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[19,41],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[19,42]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[19,46],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[19,47]},[]],"tag":"TypeVar","contents":"d"}]}]},{"annotation":[{"start":[19,52],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[19,66]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[19,52],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[19,66]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[19,58],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[19,60]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[19,52],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[19,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[19,52],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[19,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[19,52],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[19,53]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[19,54],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[19,55]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[19,56],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[19,57]},[]],"tag":"TypeVar","contents":"c"}]}]},{"annotation":[{"start":[19,61],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[19,66]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[19,61],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[19,64]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[19,61],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[19,62]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[19,63],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[19,64]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[19,65],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[19,66]},[]],"tag":"TypeVar","contents":"d"}]}]}]}]},null]},null]},null]},null]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]}}},{"EDClass":{"edClassName":"Bifunctor","edClassTypeArguments":[["f",null]],"edClassMembers":[[{"Ident":"bimap"},{"annotation":[{"start":[19,12],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[19,66]},[]],"tag":"ForAll","contents":["d",{"annotation":[{"start":[19,19],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[19,66]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[19,19],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[19,66]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[19,19],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[19,66]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[19,28],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[19,66]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[19,28],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[19,66]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[19,37],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[19,39]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[19,29],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[19,35]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[19,29],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[19,35]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[19,31],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[19,33]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[19,29],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[19,30]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[19,34],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[19,35]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[19,40],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[19,66]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[19,40],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[19,66]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[19,49],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[19,51]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[19,41],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[19,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[19,41],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[19,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[19,43],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[19,45]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[19,41],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[19,42]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[19,46],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[19,47]},[]],"tag":"TypeVar","contents":"d"}]}]},{"annotation":[{"start":[19,52],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[19,66]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[19,52],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[19,66]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[19,58],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[19,60]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[19,52],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[19,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[19,52],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[19,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[19,52],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[19,53]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[19,54],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[19,55]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[19,56],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[19,57]},[]],"tag":"TypeVar","contents":"c"}]}]},{"annotation":[{"start":[19,61],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[19,66]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[19,61],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[19,64]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[19,61],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[19,62]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[19,63],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[19,64]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[19,65],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[19,66]},[]],"tag":"TypeVar","contents":"d"}]}]}]}]},null]},null]},null]},null]}]],"edClassConstraints":[],"edFunctionalDependencies":[]}},{"EDValue":{"edValueName":{"Ident":"lmap"},"edValueType":{"annotation":[{"start":[22,9],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[22,66]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[22,16],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[22,66]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[22,16],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[22,66]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[22,16],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[22,66]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[22,25],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[22,66]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[22,25],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[22,36]},[]],"constraintClass":[["Data","Bifunctor"],"Bifunctor"],"constraintArgs":[{"annotation":[{"start":[22,35],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[22,36]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[22,40],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[22,66]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[22,40],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[22,66]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[22,49],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[22,51]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[22,41],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[22,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[22,41],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[22,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[22,43],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[22,45]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[22,41],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[22,42]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[22,46],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[22,47]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[22,52],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[22,66]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[22,52],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[22,66]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[22,58],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[22,60]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[22,52],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[22,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[22,52],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[22,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[22,52],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[22,53]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[22,54],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[22,55]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[22,56],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[22,57]},[]],"tag":"TypeVar","contents":"c"}]}]},{"annotation":[{"start":[22,61],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[22,66]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[22,61],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[22,64]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[22,61],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[22,62]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[22,63],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[22,64]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[22,65],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[22,66]},[]],"tag":"TypeVar","contents":"c"}]}]}]}]},5]},6]},7]},8]}}},{"EDValue":{"edValueName":{"Ident":"rmap"},"edValueType":{"annotation":[{"start":[26,9],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[26,66]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[26,16],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[26,66]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[26,16],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[26,66]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[26,16],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[26,66]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[26,25],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[26,66]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[26,25],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[26,36]},[]],"constraintClass":[["Data","Bifunctor"],"Bifunctor"],"constraintArgs":[{"annotation":[{"start":[26,35],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[26,36]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[26,40],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[26,66]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[26,40],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[26,66]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[26,49],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[26,51]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[26,41],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[26,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[26,41],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[26,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[26,43],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[26,45]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[26,41],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[26,42]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[26,46],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[26,47]},[]],"tag":"TypeVar","contents":"c"}]}]},{"annotation":[{"start":[26,52],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[26,66]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[26,52],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[26,66]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[26,58],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[26,60]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[26,52],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[26,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[26,52],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[26,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[26,52],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[26,53]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[26,54],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[26,55]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[26,56],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[26,57]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[26,61],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[26,66]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[26,61],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[26,64]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[26,61],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[26,62]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[26,63],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[26,64]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[26,65],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[26,66]},[]],"tag":"TypeVar","contents":"c"}]}]}]}]},13]},14]},15]},16]}}}],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-bifunctors/src/Data/Bifunctor.purs","end":[27,22]}}
diff --git a/tests/purs/publish/basic-example/output/Data.Bitraversable/docs.json b/tests/purs/publish/basic-example/output/Data.Bitraversable/docs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.Bitraversable/docs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"reExports":[],"name":"Data.Bitraversable","comments":null,"declarations":[{"children":[{"comments":null,"title":"bitraverse","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"ForAll","contents":["d",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Applicative"],"Applicative"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"c"}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"d"}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"t"},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"t"},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"d"}]}}]}]}]}]}]},null]},null]},null]},null]},null]}},"sourceSpan":{"start":[36,3],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[36,98]}},{"comments":null,"title":"bisequence","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Applicative"],"Applicative"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"t"},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"t"},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}}]}]}]},null]},null]},null]}},"sourceSpan":{"start":[37,3],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[37,74]}},{"comments":null,"title":"bitraversableClown","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Traversable"],"Traversable"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Bitraversable"],"Bitraversable"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Bifunctor","Clown"],"Clown"]},{"annotation":[],"tag":"TypeVar","contents":"f"}]}]}},"sourceSpan":{"start":[39,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[41,46]}},{"comments":null,"title":"bitraversableJoker","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Traversable"],"Traversable"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Bitraversable"],"Bitraversable"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Bifunctor","Joker"],"Joker"]},{"annotation":[],"tag":"TypeVar","contents":"f"}]}]}},"sourceSpan":{"start":[43,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[45,46]}},{"comments":null,"title":"bitraversableFlip","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Bitraversable"],"Bitraversable"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"p"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Bitraversable"],"Bitraversable"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Bifunctor","Flip"],"Flip"]},{"annotation":[],"tag":"TypeVar","contents":"p"}]}]}},"sourceSpan":{"start":[47,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[49,46]}},{"comments":null,"title":"bitraversableProduct","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Bitraversable"],"Bitraversable"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","Bitraversable"],"Bitraversable"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"g"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Bitraversable"],"Bitraversable"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Bifunctor","Product"],"Product"]},{"annotation":[],"tag":"TypeVar","contents":"f"}]},{"annotation":[],"tag":"TypeVar","contents":"g"}]}]}},"sourceSpan":{"start":[51,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[53,71]}},{"comments":null,"title":"bitraversableWrap","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Bitraversable"],"Bitraversable"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"p"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Bitraversable"],"Bitraversable"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Bifunctor","Wrap"],"Wrap"]},{"annotation":[],"tag":"TypeVar","contents":"p"}]}]}},"sourceSpan":{"start":[55,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[57,46]}}],"comments":"`Bitraversable` represents data structures with two type arguments which can be\ntraversed.\n\nA traversal for such a structure requires two functions, one for each type\nargument. Type class instances should choose the appropriate function based\non the type of the element encountered at each point of the traversal.\n\nDefault implementations are provided by the following functions:\n\n- `bitraverseDefault`\n- `bisequenceDefault`\n","title":"Bitraversable","info":{"fundeps":[],"arguments":[["t",null]],"declType":"typeClass","superclasses":[{"constraintAnn":[],"constraintClass":[["Data","Bifunctor"],"Bifunctor"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"t"}],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","Bifoldable"],"Bifoldable"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"t"}],"constraintData":null}]},"sourceSpan":{"start":[35,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[37,74]}},{"children":[],"comments":"A default implementation of `bitraverse` using `bisequence` and `bimap`.\n","title":"bitraverseDefault","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["d",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["t",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Bitraversable"],"Bitraversable"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"t"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Applicative"],"Applicative"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"c"}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"d"}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"t"},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"t"},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"d"}]}}]}]}]}]}]}]},null]},null]},null]},null]},null]},null]}},"sourceSpan":{"start":[78,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[85,15]}},{"children":[],"comments":"A default implementation of `bisequence` using `bitraverse`.\n","title":"bisequenceDefault","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["t",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Bitraversable"],"Bitraversable"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"t"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Applicative"],"Applicative"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"t"},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"t"},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}}]}]}]}]},null]},null]},null]},null]}},"sourceSpan":{"start":[89,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[94,15]}},{"children":[],"comments":null,"title":"ltraverse","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["t",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Bitraversable"],"Bitraversable"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"t"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Applicative"],"Applicative"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"c"}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"t"},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"t"},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}}]}]}]}]}]},null]},null]},null]},null]},null]}},"sourceSpan":{"start":[59,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[65,15]}},{"children":[],"comments":null,"title":"rtraverse","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["t",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Bitraversable"],"Bitraversable"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"t"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Applicative"],"Applicative"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"c"}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"t"},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"t"},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]}}]}]}]}]}]},null]},null]},null]},null]},null]}},"sourceSpan":{"start":[68,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[74,15]}},{"children":[],"comments":"Traverse a data structure, accumulating effects and results using an `Applicative` functor.\n","title":"bifor","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["d",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["t",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Bitraversable"],"Bitraversable"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"t"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Applicative"],"Applicative"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"t"},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"c"}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"d"}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"t"},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"d"}]}}]}]}]}]}]}]},null]},null]},null]},null]},null]},null]}},"sourceSpan":{"start":[98,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[105,15]}},{"children":[],"comments":null,"title":"lfor","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["t",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Bitraversable"],"Bitraversable"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"t"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Applicative"],"Applicative"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"t"},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"c"}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"t"},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}}]}]}]}]}]},null]},null]},null]},null]},null]}},"sourceSpan":{"start":[108,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[114,15]}},{"children":[],"comments":null,"title":"rfor","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["t",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Bitraversable"],"Bitraversable"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"t"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Applicative"],"Applicative"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"t"},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"c"}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"t"},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]}}]}]}]}]}]},null]},null]},null]},null]},null]}},"sourceSpan":{"start":[117,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[123,15]}}]}
diff --git a/tests/purs/publish/basic-example/output/Data.Bitraversable/externs.json b/tests/purs/publish/basic-example/output/Data.Bitraversable/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.Bitraversable/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Data","Bitraversable"],"efExports":[{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[124,31]},{"exportSourceImportedFrom":["Data","Bifoldable"],"exportSourceDefinedIn":["Data","Bifoldable"]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[124,31]},"Bifoldable"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[124,31]},{"exportSourceImportedFrom":["Data","Bifoldable"],"exportSourceDefinedIn":["Data","Bifoldable"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[124,31]},{"Ident":"biall"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[124,31]},{"exportSourceImportedFrom":["Data","Bifoldable"],"exportSourceDefinedIn":["Data","Bifoldable"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[124,31]},{"Ident":"biany"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[124,31]},{"exportSourceImportedFrom":["Data","Bifoldable"],"exportSourceDefinedIn":["Data","Bifoldable"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[124,31]},{"Ident":"bifold"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[124,31]},{"exportSourceImportedFrom":["Data","Bifoldable"],"exportSourceDefinedIn":["Data","Bifoldable"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[124,31]},{"Ident":"bifoldMap"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[124,31]},{"exportSourceImportedFrom":["Data","Bifoldable"],"exportSourceDefinedIn":["Data","Bifoldable"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[124,31]},{"Ident":"bifoldMapDefaultL"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[124,31]},{"exportSourceImportedFrom":["Data","Bifoldable"],"exportSourceDefinedIn":["Data","Bifoldable"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[124,31]},{"Ident":"bifoldMapDefaultR"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[124,31]},{"exportSourceImportedFrom":["Data","Bifoldable"],"exportSourceDefinedIn":["Data","Bifoldable"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[124,31]},{"Ident":"bifoldl"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[124,31]},{"exportSourceImportedFrom":["Data","Bifoldable"],"exportSourceDefinedIn":["Data","Bifoldable"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[124,31]},{"Ident":"bifoldlDefault"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[124,31]},{"exportSourceImportedFrom":["Data","Bifoldable"],"exportSourceDefinedIn":["Data","Bifoldable"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[124,31]},{"Ident":"bifoldr"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[124,31]},{"exportSourceImportedFrom":["Data","Bifoldable"],"exportSourceDefinedIn":["Data","Bifoldable"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[124,31]},{"Ident":"bifoldrDefault"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[124,31]},{"exportSourceImportedFrom":["Data","Bifoldable"],"exportSourceDefinedIn":["Data","Bifoldable"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[124,31]},{"Ident":"bifor_"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[124,31]},{"exportSourceImportedFrom":["Data","Bifoldable"],"exportSourceDefinedIn":["Data","Bifoldable"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[124,31]},{"Ident":"bisequence_"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[124,31]},{"exportSourceImportedFrom":["Data","Bifoldable"],"exportSourceDefinedIn":["Data","Bifoldable"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[124,31]},{"Ident":"bitraverse_"}]}]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[124,31]},"Bitraversable"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[124,31]},{"Ident":"bitraverse"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[124,31]},{"Ident":"bisequence"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[124,31]},{"Ident":"bitraverseDefault"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[124,31]},{"Ident":"bisequenceDefault"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[124,31]},{"Ident":"ltraverse"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[124,31]},{"Ident":"rtraverse"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[124,31]},{"Ident":"bifor"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[124,31]},{"Ident":"lfor"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[124,31]},{"Ident":"rfor"}]},{"ModuleRef":[{"start":[10,5],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[10,27]},["Data","Bifoldable"]]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"bitraversableClown"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"bitraversableJoker"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"bitraversableFlip"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"bitraversableProduct"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"bitraversableWrap"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Prelude"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Data","Bifoldable"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[15,25],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[15,41]},"Bifoldable"]},{"ValueRef":[{"start":[15,43],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[15,48]},{"Ident":"biall"}]},{"ValueRef":[{"start":[15,50],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[15,55]},{"Ident":"biany"}]},{"ValueRef":[{"start":[15,57],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[15,63]},{"Ident":"bifold"}]},{"ValueRef":[{"start":[15,65],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[15,74]},{"Ident":"bifoldMap"}]},{"ValueRef":[{"start":[15,76],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[15,93]},{"Ident":"bifoldMapDefaultL"}]},{"ValueRef":[{"start":[15,95],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[15,112]},{"Ident":"bifoldMapDefaultR"}]},{"ValueRef":[{"start":[15,114],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[15,121]},{"Ident":"bifoldl"}]},{"ValueRef":[{"start":[15,123],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[15,137]},{"Ident":"bifoldlDefault"}]},{"ValueRef":[{"start":[15,139],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[15,146]},{"Ident":"bifoldr"}]},{"ValueRef":[{"start":[15,148],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[15,162]},{"Ident":"bifoldrDefault"}]},{"ValueRef":[{"start":[15,164],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[15,170]},{"Ident":"bifor_"}]},{"ValueRef":[{"start":[15,172],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[15,183]},{"Ident":"bisequence_"}]},{"ValueRef":[{"start":[15,185],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[15,196]},{"Ident":"bitraverse_"}]}]},"eiImportedAs":null},{"eiModule":["Data","Traversable"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[16,26],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[16,43]},"Traversable"]},{"ValueRef":[{"start":[16,45],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[16,53]},{"Ident":"traverse"}]},{"ValueRef":[{"start":[16,55],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[16,63]},{"Ident":"sequence"}]}]},"eiImportedAs":null},{"eiModule":["Data","Bifunctor"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[17,24],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[17,39]},"Bifunctor"]},{"ValueRef":[{"start":[17,41],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[17,46]},{"Ident":"bimap"}]}]},"eiImportedAs":null},{"eiModule":["Data","Bifunctor","Clown"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[18,30],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[18,39]},"Clown",null]}]},"eiImportedAs":null},{"eiModule":["Data","Bifunctor","Joker"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[19,30],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[19,39]},"Joker",null]}]},"eiImportedAs":null},{"eiModule":["Data","Bifunctor","Flip"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[20,29],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[20,37]},"Flip",null]}]},"eiImportedAs":null},{"eiModule":["Data","Bifunctor","Product"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[21,32],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[21,43]},"Product",null]}]},"eiImportedAs":null},{"eiModule":["Data","Bifunctor","Wrap"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[22,29],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[22,37]},"Wrap",null]}]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDType":{"edTypeName":"Bitraversable","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[36,80],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[36,83]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[36,55],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[36,57]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[36,80],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[36,85]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[36,69],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[36,71]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[36,86],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[36,88]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"Bitraversable","edTypeSynonymArguments":[["t",null]],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["bitraverse",{"annotation":[{"start":[36,17],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[36,98]},[]],"tag":"ForAll","contents":["d",{"annotation":[{"start":[36,24],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[36,98]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[36,24],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[36,98]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[36,24],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[36,98]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[36,24],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[36,98]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[36,35],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[36,98]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[36,35],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[36,48]},[]],"constraintClass":[["Control","Applicative"],"Applicative"],"constraintArgs":[{"annotation":[{"start":[36,47],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[36,48]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[36,52],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[36,98]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,52],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[36,98]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,63],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[36,65]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[36,53],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[36,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,53],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[36,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,55],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[36,57]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[36,53],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[36,54]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[36,58],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[36,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,58],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[36,59]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[36,60],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[36,61]},[]],"tag":"TypeVar","contents":"c"}]}]}]},{"annotation":[{"start":[36,66],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[36,98]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,66],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[36,98]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,77],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[36,79]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[36,67],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[36,75]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,67],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[36,75]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,69],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[36,71]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[36,67],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[36,68]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[36,72],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[36,75]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,72],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[36,73]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[36,74],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[36,75]},[]],"tag":"TypeVar","contents":"d"}]}]}]},{"annotation":[{"start":[36,80],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[36,98]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,80],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[36,98]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,86],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[36,88]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[36,80],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[36,85]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,80],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[36,83]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,80],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[36,81]},[]],"tag":"TypeVar","contents":"t"},{"annotation":[{"start":[36,82],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[36,83]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[36,84],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[36,85]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[36,89],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[36,98]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,89],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[36,90]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[36,92],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[36,97]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,92],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[36,95]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,92],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[36,93]},[]],"tag":"TypeVar","contents":"t"},{"annotation":[{"start":[36,94],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[36,95]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[36,96],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[36,97]},[]],"tag":"TypeVar","contents":"d"}]}]}]}]}]}]},null]},null]},null]},null]},null]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["bisequence",{"annotation":[{"start":[37,17],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[37,74]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[37,24],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[37,74]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[37,24],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[37,74]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[37,31],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[37,74]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[37,31],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[37,44]},[]],"constraintClass":[["Control","Applicative"],"Applicative"],"constraintArgs":[{"annotation":[{"start":[37,43],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[37,44]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[37,48],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[37,74]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[37,48],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[37,74]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[37,62],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[37,64]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[37,48],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[37,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[37,48],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[37,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[37,48],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[37,49]},[]],"tag":"TypeVar","contents":"t"},{"annotation":[{"start":[37,51],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[37,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[37,51],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[37,52]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[37,53],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[37,54]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[37,57],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[37,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[37,57],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[37,58]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[37,59],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[37,60]},[]],"tag":"TypeVar","contents":"b"}]}]}]},{"annotation":[{"start":[37,65],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[37,74]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[37,65],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[37,66]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[37,68],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[37,73]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[37,68],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[37,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[37,68],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[37,69]},[]],"tag":"TypeVar","contents":"t"},{"annotation":[{"start":[37,70],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[37,71]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[37,72],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[37,73]},[]],"tag":"TypeVar","contents":"b"}]}]}]}]},null]},null]},null]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["Bifunctor0",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Bifunctor"],"Bifunctor"]},{"annotation":[{"start":[35,18],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[35,19]},[]],"tag":"TypeVar","contents":"t"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["Bifoldable1",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Bifoldable"],"Bifoldable"]},{"annotation":[{"start":[35,32],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[35,33]},[]],"tag":"TypeVar","contents":"t"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]}]}]}]}}},{"EDClass":{"edClassName":"Bitraversable","edClassTypeArguments":[["t",null]],"edClassMembers":[[{"Ident":"bitraverse"},{"annotation":[{"start":[36,17],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[36,98]},[]],"tag":"ForAll","contents":["d",{"annotation":[{"start":[36,24],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[36,98]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[36,24],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[36,98]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[36,24],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[36,98]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[36,24],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[36,98]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[36,35],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[36,98]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[36,35],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[36,48]},[]],"constraintClass":[["Control","Applicative"],"Applicative"],"constraintArgs":[{"annotation":[{"start":[36,47],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[36,48]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[36,52],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[36,98]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,52],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[36,98]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,63],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[36,65]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[36,53],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[36,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,53],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[36,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,55],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[36,57]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[36,53],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[36,54]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[36,58],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[36,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,58],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[36,59]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[36,60],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[36,61]},[]],"tag":"TypeVar","contents":"c"}]}]}]},{"annotation":[{"start":[36,66],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[36,98]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,66],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[36,98]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,77],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[36,79]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[36,67],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[36,75]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,67],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[36,75]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,69],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[36,71]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[36,67],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[36,68]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[36,72],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[36,75]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,72],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[36,73]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[36,74],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[36,75]},[]],"tag":"TypeVar","contents":"d"}]}]}]},{"annotation":[{"start":[36,80],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[36,98]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,80],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[36,98]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,86],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[36,88]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[36,80],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[36,85]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,80],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[36,83]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,80],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[36,81]},[]],"tag":"TypeVar","contents":"t"},{"annotation":[{"start":[36,82],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[36,83]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[36,84],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[36,85]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[36,89],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[36,98]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,89],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[36,90]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[36,92],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[36,97]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,92],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[36,95]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,92],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[36,93]},[]],"tag":"TypeVar","contents":"t"},{"annotation":[{"start":[36,94],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[36,95]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[36,96],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[36,97]},[]],"tag":"TypeVar","contents":"d"}]}]}]}]}]}]},null]},null]},null]},null]},null]}],[{"Ident":"bisequence"},{"annotation":[{"start":[37,17],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[37,74]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[37,24],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[37,74]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[37,24],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[37,74]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[37,31],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[37,74]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[37,31],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[37,44]},[]],"constraintClass":[["Control","Applicative"],"Applicative"],"constraintArgs":[{"annotation":[{"start":[37,43],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[37,44]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[37,48],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[37,74]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[37,48],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[37,74]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[37,62],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[37,64]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[37,48],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[37,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[37,48],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[37,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[37,48],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[37,49]},[]],"tag":"TypeVar","contents":"t"},{"annotation":[{"start":[37,51],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[37,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[37,51],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[37,52]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[37,53],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[37,54]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[37,57],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[37,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[37,57],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[37,58]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[37,59],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[37,60]},[]],"tag":"TypeVar","contents":"b"}]}]}]},{"annotation":[{"start":[37,65],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[37,74]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[37,65],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[37,66]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[37,68],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[37,73]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[37,68],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[37,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[37,68],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[37,69]},[]],"tag":"TypeVar","contents":"t"},{"annotation":[{"start":[37,70],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[37,71]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[37,72],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[37,73]},[]],"tag":"TypeVar","contents":"b"}]}]}]}]},null]},null]},null]}]],"edClassConstraints":[{"constraintAnn":[{"start":[35,8],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[35,19]},[]],"constraintClass":[["Data","Bifunctor"],"Bifunctor"],"constraintArgs":[{"annotation":[{"start":[35,18],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[35,19]},[]],"tag":"TypeVar","contents":"t"}],"constraintData":null},{"constraintAnn":[{"start":[35,21],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[35,33]},[]],"constraintClass":[["Data","Bifoldable"],"Bifoldable"],"constraintArgs":[{"annotation":[{"start":[35,32],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[35,33]},[]],"tag":"TypeVar","contents":"t"}],"constraintData":null}],"edFunctionalDependencies":[]}},{"EDValue":{"edValueName":{"Ident":"bitraverse"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["t",{"annotation":[{"start":[36,17],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[36,98]},[]],"tag":"ForAll","contents":["d",{"annotation":[{"start":[36,24],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[36,98]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[36,24],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[36,98]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[36,24],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[36,98]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[36,24],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[36,98]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["Data","Bitraversable"],"Bitraversable"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"t"}],"constraintData":null},{"annotation":[{"start":[36,35],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[36,98]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[36,35],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[36,48]},[]],"constraintClass":[["Control","Applicative"],"Applicative"],"constraintArgs":[{"annotation":[{"start":[36,47],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[36,48]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[36,52],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[36,98]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,52],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[36,98]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,63],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[36,65]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[36,53],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[36,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,53],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[36,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,55],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[36,57]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[36,53],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[36,54]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[36,58],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[36,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,58],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[36,59]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[36,60],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[36,61]},[]],"tag":"TypeVar","contents":"c"}]}]}]},{"annotation":[{"start":[36,66],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[36,98]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,66],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[36,98]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,77],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[36,79]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[36,67],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[36,75]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,67],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[36,75]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,69],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[36,71]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[36,67],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[36,68]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[36,72],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[36,75]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,72],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[36,73]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[36,74],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[36,75]},[]],"tag":"TypeVar","contents":"d"}]}]}]},{"annotation":[{"start":[36,80],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[36,98]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,80],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[36,98]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,86],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[36,88]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[36,80],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[36,85]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,80],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[36,83]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,80],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[36,81]},[]],"tag":"TypeVar","contents":"t"},{"annotation":[{"start":[36,82],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[36,83]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[36,84],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[36,85]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[36,89],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[36,98]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,89],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[36,90]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[36,92],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[36,97]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,92],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[36,95]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,92],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[36,93]},[]],"tag":"TypeVar","contents":"t"},{"annotation":[{"start":[36,94],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[36,95]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[36,96],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[36,97]},[]],"tag":"TypeVar","contents":"d"}]}]}]}]}]}]}]},0]},1]},2]},3]},4]},5]}}},{"EDValue":{"edValueName":{"Ident":"bisequence"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["t",{"annotation":[{"start":[37,17],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[37,74]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[37,24],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[37,74]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[37,24],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[37,74]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["Data","Bitraversable"],"Bitraversable"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"t"}],"constraintData":null},{"annotation":[{"start":[37,31],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[37,74]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[37,31],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[37,44]},[]],"constraintClass":[["Control","Applicative"],"Applicative"],"constraintArgs":[{"annotation":[{"start":[37,43],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[37,44]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[37,48],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[37,74]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[37,48],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[37,74]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[37,62],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[37,64]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[37,48],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[37,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[37,48],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[37,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[37,48],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[37,49]},[]],"tag":"TypeVar","contents":"t"},{"annotation":[{"start":[37,51],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[37,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[37,51],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[37,52]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[37,53],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[37,54]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[37,57],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[37,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[37,57],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[37,58]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[37,59],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[37,60]},[]],"tag":"TypeVar","contents":"b"}]}]}]},{"annotation":[{"start":[37,65],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[37,74]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[37,65],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[37,66]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[37,68],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[37,73]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[37,68],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[37,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[37,68],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[37,69]},[]],"tag":"TypeVar","contents":"t"},{"annotation":[{"start":[37,70],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[37,71]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[37,72],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[37,73]},[]],"tag":"TypeVar","contents":"b"}]}]}]}]}]},128]},129]},130]},131]}}},{"EDValue":{"edValueName":{"Ident":"bitraverseDefault"},"edValueType":{"annotation":[{"start":[79,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[85,15]},[]],"tag":"ForAll","contents":["d",{"annotation":[{"start":[79,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[85,15]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[79,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[85,15]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[79,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[85,15]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[79,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[85,15]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[79,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[85,15]},[]],"tag":"ForAll","contents":["t",{"annotation":[{"start":[80,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[85,15]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[80,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[80,21]},[]],"constraintClass":[["Data","Bitraversable"],"Bitraversable"],"constraintArgs":[{"annotation":[{"start":[80,20],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[80,21]},[]],"tag":"TypeVar","contents":"t"}],"constraintData":null},{"annotation":[{"start":[81,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[85,15]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[81,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[81,19]},[]],"constraintClass":[["Control","Applicative"],"Applicative"],"constraintArgs":[{"annotation":[{"start":[81,18],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[81,19]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[82,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[85,15]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[82,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[85,15]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[83,3],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[83,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[82,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[82,15]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[82,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[82,15]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[82,9],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[82,11]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[82,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[82,8]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[82,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[82,15]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[82,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[82,13]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[82,14],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[82,15]},[]],"tag":"TypeVar","contents":"c"}]}]}]},{"annotation":[{"start":[83,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[85,15]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[83,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[85,15]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[84,3],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[84,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[83,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[83,15]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[83,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[83,15]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[83,9],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[83,11]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[83,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[83,8]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[83,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[83,15]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[83,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[83,13]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[83,14],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[83,15]},[]],"tag":"TypeVar","contents":"d"}]}]}]},{"annotation":[{"start":[84,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[85,15]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[84,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[85,15]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[85,3],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[85,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[84,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[84,11]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[84,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[84,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[84,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[84,7]},[]],"tag":"TypeVar","contents":"t"},{"annotation":[{"start":[84,8],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[84,9]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[84,10],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[84,11]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[85,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[85,15]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[85,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[85,7]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[85,9],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[85,14]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[85,9],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[85,12]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[85,9],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[85,10]},[]],"tag":"TypeVar","contents":"t"},{"annotation":[{"start":[85,11],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[85,12]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[85,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[85,14]},[]],"tag":"TypeVar","contents":"d"}]}]}]}]}]}]}]},247]},248]},249]},250]},251]},252]}}},{"EDValue":{"edValueName":{"Ident":"bisequenceDefault"},"edValueType":{"annotation":[{"start":[90,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[94,15]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[90,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[94,15]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[90,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[94,15]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[90,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[94,15]},[]],"tag":"ForAll","contents":["t",{"annotation":[{"start":[91,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[94,15]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[91,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[91,21]},[]],"constraintClass":[["Data","Bitraversable"],"Bitraversable"],"constraintArgs":[{"annotation":[{"start":[91,20],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[91,21]},[]],"tag":"TypeVar","contents":"t"}],"constraintData":null},{"annotation":[{"start":[92,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[94,15]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[92,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[92,19]},[]],"constraintClass":[["Control","Applicative"],"Applicative"],"constraintArgs":[{"annotation":[{"start":[92,18],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[92,19]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[93,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[94,15]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[93,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[94,15]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[94,3],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[94,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[93,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[93,19]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[93,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[93,13]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[93,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[93,7]},[]],"tag":"TypeVar","contents":"t"},{"annotation":[{"start":[93,9],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[93,12]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[93,9],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[93,10]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[93,11],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[93,12]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[93,15],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[93,18]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[93,15],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[93,16]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[93,17],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[93,18]},[]],"tag":"TypeVar","contents":"b"}]}]}]},{"annotation":[{"start":[94,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[94,15]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[94,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[94,7]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[94,9],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[94,14]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[94,9],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[94,12]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[94,9],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[94,10]},[]],"tag":"TypeVar","contents":"t"},{"annotation":[{"start":[94,11],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[94,12]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[94,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[94,14]},[]],"tag":"TypeVar","contents":"b"}]}]}]}]}]},120]},121]},122]},123]}}},{"EDValue":{"edValueName":{"Ident":"ltraverse"},"edValueType":{"annotation":[{"start":[60,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[65,15]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[60,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[65,15]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[60,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[65,15]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[60,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[65,15]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[60,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[65,15]},[]],"tag":"ForAll","contents":["t",{"annotation":[{"start":[61,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[65,15]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[61,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[61,21]},[]],"constraintClass":[["Data","Bitraversable"],"Bitraversable"],"constraintArgs":[{"annotation":[{"start":[61,20],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[61,21]},[]],"tag":"TypeVar","contents":"t"}],"constraintData":null},{"annotation":[{"start":[62,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[65,15]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[62,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[62,19]},[]],"constraintClass":[["Control","Applicative"],"Applicative"],"constraintArgs":[{"annotation":[{"start":[62,18],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[62,19]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[63,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[65,15]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[63,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[65,15]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[64,3],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[64,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[63,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[63,15]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[63,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[63,15]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[63,9],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[63,11]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[63,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[63,8]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[63,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[63,15]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[63,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[63,13]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[63,14],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[63,15]},[]],"tag":"TypeVar","contents":"c"}]}]}]},{"annotation":[{"start":[64,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[65,15]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[64,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[65,15]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[65,3],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[65,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[64,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[64,11]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[64,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[64,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[64,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[64,7]},[]],"tag":"TypeVar","contents":"t"},{"annotation":[{"start":[64,8],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[64,9]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[64,10],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[64,11]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[65,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[65,15]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[65,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[65,7]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[65,9],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[65,14]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[65,9],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[65,12]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[65,9],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[65,10]},[]],"tag":"TypeVar","contents":"t"},{"annotation":[{"start":[65,11],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[65,12]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[65,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[65,14]},[]],"tag":"TypeVar","contents":"b"}]}]}]}]}]}]},16]},17]},18]},19]},20]}}},{"EDValue":{"edValueName":{"Ident":"rtraverse"},"edValueType":{"annotation":[{"start":[69,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[74,15]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[69,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[74,15]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[69,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[74,15]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[69,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[74,15]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[69,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[74,15]},[]],"tag":"ForAll","contents":["t",{"annotation":[{"start":[70,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[74,15]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[70,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[70,21]},[]],"constraintClass":[["Data","Bitraversable"],"Bitraversable"],"constraintArgs":[{"annotation":[{"start":[70,20],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[70,21]},[]],"tag":"TypeVar","contents":"t"}],"constraintData":null},{"annotation":[{"start":[71,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[74,15]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[71,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[71,19]},[]],"constraintClass":[["Control","Applicative"],"Applicative"],"constraintArgs":[{"annotation":[{"start":[71,18],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[71,19]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[72,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[74,15]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[72,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[74,15]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[73,3],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[73,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[72,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[72,15]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[72,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[72,15]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[72,9],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[72,11]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[72,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[72,8]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[72,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[72,15]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[72,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[72,13]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[72,14],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[72,15]},[]],"tag":"TypeVar","contents":"c"}]}]}]},{"annotation":[{"start":[73,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[74,15]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[73,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[74,15]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[74,3],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[74,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[73,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[73,11]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[73,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[73,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[73,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[73,7]},[]],"tag":"TypeVar","contents":"t"},{"annotation":[{"start":[73,8],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[73,9]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[73,10],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[73,11]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[74,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[74,15]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[74,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[74,7]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[74,9],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[74,14]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[74,9],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[74,12]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[74,9],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[74,10]},[]],"tag":"TypeVar","contents":"t"},{"annotation":[{"start":[74,11],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[74,12]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[74,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[74,14]},[]],"tag":"TypeVar","contents":"c"}]}]}]}]}]}]},36]},37]},38]},39]},40]}}},{"EDValue":{"edValueName":{"Ident":"bifor"},"edValueType":{"annotation":[{"start":[99,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[105,15]},[]],"tag":"ForAll","contents":["d",{"annotation":[{"start":[99,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[105,15]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[99,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[105,15]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[99,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[105,15]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[99,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[105,15]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[99,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[105,15]},[]],"tag":"ForAll","contents":["t",{"annotation":[{"start":[100,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[105,15]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[100,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[100,21]},[]],"constraintClass":[["Data","Bitraversable"],"Bitraversable"],"constraintArgs":[{"annotation":[{"start":[100,20],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[100,21]},[]],"tag":"TypeVar","contents":"t"}],"constraintData":null},{"annotation":[{"start":[101,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[105,15]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[101,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[101,19]},[]],"constraintClass":[["Control","Applicative"],"Applicative"],"constraintArgs":[{"annotation":[{"start":[101,18],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[101,19]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[102,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[105,15]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[102,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[105,15]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[103,3],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[103,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[102,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[102,11]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[102,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[102,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[102,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[102,7]},[]],"tag":"TypeVar","contents":"t"},{"annotation":[{"start":[102,8],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[102,9]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[102,10],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[102,11]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[103,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[105,15]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[103,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[105,15]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[104,3],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[104,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[103,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[103,15]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[103,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[103,15]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[103,9],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[103,11]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[103,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[103,8]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[103,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[103,15]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[103,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[103,13]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[103,14],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[103,15]},[]],"tag":"TypeVar","contents":"c"}]}]}]},{"annotation":[{"start":[104,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[105,15]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[104,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[105,15]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[105,3],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[105,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[104,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[104,15]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[104,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[104,15]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[104,9],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[104,11]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[104,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[104,8]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[104,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[104,15]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[104,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[104,13]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[104,14],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[104,15]},[]],"tag":"TypeVar","contents":"d"}]}]}]},{"annotation":[{"start":[105,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[105,15]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[105,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[105,7]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[105,9],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[105,14]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[105,9],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[105,12]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[105,9],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[105,10]},[]],"tag":"TypeVar","contents":"t"},{"annotation":[{"start":[105,11],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[105,12]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[105,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[105,14]},[]],"tag":"TypeVar","contents":"d"}]}]}]}]}]}]}]},259]},260]},261]},262]},263]},264]}}},{"EDValue":{"edValueName":{"Ident":"lfor"},"edValueType":{"annotation":[{"start":[109,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[114,15]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[109,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[114,15]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[109,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[114,15]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[109,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[114,15]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[109,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[114,15]},[]],"tag":"ForAll","contents":["t",{"annotation":[{"start":[110,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[114,15]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[110,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[110,21]},[]],"constraintClass":[["Data","Bitraversable"],"Bitraversable"],"constraintArgs":[{"annotation":[{"start":[110,20],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[110,21]},[]],"tag":"TypeVar","contents":"t"}],"constraintData":null},{"annotation":[{"start":[111,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[114,15]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[111,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[111,19]},[]],"constraintClass":[["Control","Applicative"],"Applicative"],"constraintArgs":[{"annotation":[{"start":[111,18],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[111,19]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[112,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[114,15]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[112,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[114,15]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[113,3],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[113,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[112,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[112,11]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[112,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[112,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[112,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[112,7]},[]],"tag":"TypeVar","contents":"t"},{"annotation":[{"start":[112,8],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[112,9]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[112,10],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[112,11]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[113,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[114,15]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[113,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[114,15]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[114,3],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[114,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[113,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[113,15]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[113,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[113,15]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[113,9],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[113,11]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[113,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[113,8]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[113,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[113,15]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[113,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[113,13]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[113,14],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[113,15]},[]],"tag":"TypeVar","contents":"c"}]}]}]},{"annotation":[{"start":[114,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[114,15]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[114,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[114,7]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[114,9],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[114,14]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[114,9],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[114,12]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[114,9],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[114,10]},[]],"tag":"TypeVar","contents":"t"},{"annotation":[{"start":[114,11],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[114,12]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[114,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[114,14]},[]],"tag":"TypeVar","contents":"b"}]}]}]}]}]}]},6]},7]},8]},9]},10]}}},{"EDValue":{"edValueName":{"Ident":"rfor"},"edValueType":{"annotation":[{"start":[118,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[123,15]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[118,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[123,15]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[118,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[123,15]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[118,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[123,15]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[118,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[123,15]},[]],"tag":"ForAll","contents":["t",{"annotation":[{"start":[119,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[123,15]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[119,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[119,21]},[]],"constraintClass":[["Data","Bitraversable"],"Bitraversable"],"constraintArgs":[{"annotation":[{"start":[119,20],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[119,21]},[]],"tag":"TypeVar","contents":"t"}],"constraintData":null},{"annotation":[{"start":[120,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[123,15]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[120,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[120,19]},[]],"constraintClass":[["Control","Applicative"],"Applicative"],"constraintArgs":[{"annotation":[{"start":[120,18],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[120,19]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[121,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[123,15]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[121,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[123,15]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[122,3],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[122,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[121,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[121,11]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[121,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[121,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[121,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[121,7]},[]],"tag":"TypeVar","contents":"t"},{"annotation":[{"start":[121,8],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[121,9]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[121,10],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[121,11]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[122,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[123,15]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[122,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[123,15]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[123,3],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[123,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[122,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[122,15]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[122,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[122,15]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[122,9],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[122,11]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[122,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[122,8]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[122,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[122,15]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[122,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[122,13]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[122,14],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[122,15]},[]],"tag":"TypeVar","contents":"c"}]}]}]},{"annotation":[{"start":[123,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[123,15]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[123,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[123,7]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[123,9],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[123,14]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[123,9],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[123,12]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[123,9],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[123,10]},[]],"tag":"TypeVar","contents":"t"},{"annotation":[{"start":[123,11],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[123,12]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[123,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[123,14]},[]],"tag":"TypeVar","contents":"c"}]}]}]}]}]}]},26]},27]},28]},29]},30]}}},{"EDInstance":{"edInstanceClassName":[["Data","Bitraversable"],"Bitraversable"],"edInstanceName":{"Ident":"bitraversableClown"},"edInstanceTypes":[{"annotation":[{"start":[39,64],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[39,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[39,64],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[39,69]},[]],"tag":"TypeConstructor","contents":[["Data","Bifunctor","Clown"],"Clown"]},{"annotation":[{"start":[39,70],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[39,71]},[]],"tag":"TypeVar","contents":"f"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[39,32],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[39,45]},[]],"constraintClass":[["Data","Traversable"],"Traversable"],"constraintArgs":[{"annotation":[{"start":[39,44],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[39,45]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null}],"edInstanceChain":[[["Data","Bitraversable"],{"Ident":"bitraversableClown"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Bitraversable"],"Bitraversable"],"edInstanceName":{"Ident":"bitraversableJoker"},"edInstanceTypes":[{"annotation":[{"start":[43,64],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[43,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[43,64],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[43,69]},[]],"tag":"TypeConstructor","contents":[["Data","Bifunctor","Joker"],"Joker"]},{"annotation":[{"start":[43,70],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[43,71]},[]],"tag":"TypeVar","contents":"f"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[43,32],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[43,45]},[]],"constraintClass":[["Data","Traversable"],"Traversable"],"constraintArgs":[{"annotation":[{"start":[43,44],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[43,45]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null}],"edInstanceChain":[[["Data","Bitraversable"],{"Ident":"bitraversableJoker"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Bitraversable"],"Bitraversable"],"edInstanceName":{"Ident":"bitraversableFlip"},"edInstanceTypes":[{"annotation":[{"start":[47,65],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[47,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[47,65],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[47,69]},[]],"tag":"TypeConstructor","contents":[["Data","Bifunctor","Flip"],"Flip"]},{"annotation":[{"start":[47,70],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[47,71]},[]],"tag":"TypeVar","contents":"p"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[47,31],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[47,46]},[]],"constraintClass":[["Data","Bitraversable"],"Bitraversable"],"constraintArgs":[{"annotation":[{"start":[47,45],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[47,46]},[]],"tag":"TypeVar","contents":"p"}],"constraintData":null}],"edInstanceChain":[[["Data","Bitraversable"],{"Ident":"bitraversableFlip"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Bitraversable"],"Bitraversable"],"edInstanceName":{"Ident":"bitraversableProduct"},"edInstanceTypes":[{"annotation":[{"start":[51,87],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[51,98]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,87],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[51,96]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,87],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[51,94]},[]],"tag":"TypeConstructor","contents":[["Data","Bifunctor","Product"],"Product"]},{"annotation":[{"start":[51,95],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[51,96]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[51,97],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[51,98]},[]],"tag":"TypeVar","contents":"g"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[51,35],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[51,50]},[]],"constraintClass":[["Data","Bitraversable"],"Bitraversable"],"constraintArgs":[{"annotation":[{"start":[51,49],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[51,50]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"constraintAnn":[{"start":[51,52],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[51,67]},[]],"constraintClass":[["Data","Bitraversable"],"Bitraversable"],"constraintArgs":[{"annotation":[{"start":[51,66],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[51,67]},[]],"tag":"TypeVar","contents":"g"}],"constraintData":null}],"edInstanceChain":[[["Data","Bitraversable"],{"Ident":"bitraversableProduct"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Bitraversable"],"Bitraversable"],"edInstanceName":{"Ident":"bitraversableWrap"},"edInstanceTypes":[{"annotation":[{"start":[55,65],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[55,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,65],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[55,69]},[]],"tag":"TypeConstructor","contents":[["Data","Bifunctor","Wrap"],"Wrap"]},{"annotation":[{"start":[55,70],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[55,71]},[]],"tag":"TypeVar","contents":"p"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[55,31],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[55,46]},[]],"constraintClass":[["Data","Bitraversable"],"Bitraversable"],"constraintArgs":[{"annotation":[{"start":[55,45],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[55,46]},[]],"tag":"TypeVar","contents":"p"}],"constraintData":null}],"edInstanceChain":[[["Data","Bitraversable"],{"Ident":"bitraversableWrap"}]],"edInstanceChainIndex":0}}],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Bitraversable.purs","end":[124,31]}}
diff --git a/tests/purs/publish/basic-example/output/Data.Boolean/docs.json b/tests/purs/publish/basic-example/output/Data.Boolean/docs.json
--- a/tests/purs/publish/basic-example/output/Data.Boolean/docs.json
+++ b/tests/purs/publish/basic-example/output/Data.Boolean/docs.json
@@ -1,1 +1,1 @@
-{"reExports":[],"name":"Data.Boolean","comments":null,"declarations":[{"children":[],"comments":"An alias for `true`, which can be useful in guard clauses:\n\n```purescript\nmax x y | x >= y    = x\n        | otherwise = y\n```\n","title":"otherwise","info":{"declType":"value","type":{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}},"sourceSpan":{"start":[9,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Boolean.purs","end":[9,21]}}]}
+{"comments":null,"declarations":[{"children":[],"comments":"An alias for `true`, which can be useful in guard clauses:\n\n```purescript\nmax x y | x >= y    = x\n        | otherwise = y\n```\n","info":{"declType":"value","type":{"annotation":[],"contents":[["Prim"],"Boolean"],"tag":"TypeConstructor"}},"kind":null,"sourceSpan":{"end":[9,21],"name":"../../../support/bower_components/purescript-prelude/src/Data/Boolean.purs","start":[9,1]},"title":"otherwise"}],"name":"Data.Boolean","reExports":[]}
diff --git a/tests/purs/publish/basic-example/output/Data.Boolean/externs.json b/tests/purs/publish/basic-example/output/Data.Boolean/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.Boolean/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Data","Boolean"],"efExports":[{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Boolean.purs","end":[10,17]},{"Ident":"otherwise"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDValue":{"edValueName":{"Ident":"otherwise"},"edValueType":{"annotation":[{"start":[9,14],"name":"../../../support/bower_components/purescript-prelude/src/Data/Boolean.purs","end":[9,21]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}}}],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Boolean.purs","end":[10,17]}}
diff --git a/tests/purs/publish/basic-example/output/Data.BooleanAlgebra/docs.json b/tests/purs/publish/basic-example/output/Data.BooleanAlgebra/docs.json
--- a/tests/purs/publish/basic-example/output/Data.BooleanAlgebra/docs.json
+++ b/tests/purs/publish/basic-example/output/Data.BooleanAlgebra/docs.json
@@ -1,1 +1,1 @@
-{"reExports":[],"name":"Data.BooleanAlgebra","comments":null,"declarations":[{"children":[{"comments":null,"title":"booleanAlgebraBoolean","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","BooleanAlgebra"],"BooleanAlgebra"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}},"sourceSpan":{"start":[23,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/BooleanAlgebra.purs","end":[23,57]}},{"comments":null,"title":"booleanAlgebraUnit","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","BooleanAlgebra"],"BooleanAlgebra"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}},"sourceSpan":{"start":[24,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/BooleanAlgebra.purs","end":[24,51]}},{"comments":null,"title":"booleanAlgebraFn","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","BooleanAlgebra"],"BooleanAlgebra"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"b"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","BooleanAlgebra"],"BooleanAlgebra"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}},"sourceSpan":{"start":[25,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/BooleanAlgebra.purs","end":[25,73]}},{"comments":null,"title":"booleanAlgebraRecord","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Prim","RowList"],"RowToList"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"row"},{"annotation":[],"tag":"TypeVar","contents":"list"}],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","BooleanAlgebra"],"BooleanAlgebraRecord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"list"},{"annotation":[],"tag":"TypeVar","contents":"row"},{"annotation":[],"tag":"TypeVar","contents":"row"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","BooleanAlgebra"],"BooleanAlgebra"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"TypeVar","contents":"row"}]}]}},"sourceSpan":{"start":[26,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/BooleanAlgebra.purs","end":[26,123]}}],"comments":"The `BooleanAlgebra` type class represents types that behave like boolean\nvalues.\n\nInstances should satisfy the following laws in addition to the\n`HeytingAlgebra` law:\n\n- Excluded middle:\n  - `a || not a = tt`\n","title":"BooleanAlgebra","info":{"fundeps":[],"arguments":[["a",null]],"declType":"typeClass","superclasses":[{"constraintAnn":[],"constraintClass":[["Data","HeytingAlgebra"],"HeytingAlgebra"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}]},"sourceSpan":{"start":[21,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/BooleanAlgebra.purs","end":[21,43]}},{"children":[{"comments":null,"title":"booleanAlgebraRecordNil","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","BooleanAlgebra"],"BooleanAlgebraRecord"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim","RowList"],"Nil"]}]},{"annotation":[],"tag":"TypeVar","contents":"row"}]},{"annotation":[],"tag":"REmpty"}]}},"sourceSpan":{"start":[32,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/BooleanAlgebra.purs","end":[32,71]}},{"comments":null,"title":"booleanAlgebraRecordCons","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Symbol"],"IsSymbol"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"key"}],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Prim","Row"],"Cons"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"key"},{"annotation":[],"tag":"TypeVar","contents":"focus"},{"annotation":[],"tag":"TypeVar","contents":"subrowTail"},{"annotation":[],"tag":"TypeVar","contents":"subrow"}],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","BooleanAlgebra"],"BooleanAlgebraRecord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"rowlistTail"},{"annotation":[],"tag":"TypeVar","contents":"row"},{"annotation":[],"tag":"TypeVar","contents":"subrowTail"}],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","BooleanAlgebra"],"BooleanAlgebra"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"focus"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","BooleanAlgebra"],"BooleanAlgebraRecord"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim","RowList"],"Cons"]},{"annotation":[],"tag":"TypeVar","contents":"key"}]},{"annotation":[],"tag":"TypeVar","contents":"focus"}]},{"annotation":[],"tag":"TypeVar","contents":"rowlistTail"}]}]},{"annotation":[],"tag":"TypeVar","contents":"row"}]},{"annotation":[],"tag":"TypeVar","contents":"subrow"}]}},"sourceSpan":{"start":[34,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/BooleanAlgebra.purs","end":[40,71]}}],"comments":"A class for records where all fields have `BooleanAlgebra` instances, used\nto implement the `BooleanAlgebra` instance for records.\n","title":"BooleanAlgebraRecord","info":{"fundeps":[[["rowlist"],["subrow"]]],"arguments":[["rowlist",null],["row",null],["subrow",null]],"declType":"typeClass","superclasses":[{"constraintAnn":[],"constraintClass":[["Data","HeytingAlgebra"],"HeytingAlgebraRecord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"rowlist"},{"annotation":[],"tag":"TypeVar","contents":"row"},{"annotation":[],"tag":"TypeVar","contents":"subrow"}],"constraintData":null}]},"sourceSpan":{"start":[30,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/BooleanAlgebra.purs","end":[30,109]}}]}
+{"comments":null,"declarations":[{"children":[{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","BooleanAlgebra"],"BooleanAlgebra"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Boolean"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[24,57],"name":"../../../support/bower_components/purescript-prelude/src/Data/BooleanAlgebra.purs","start":[24,1]},"title":"booleanAlgebraBoolean"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","BooleanAlgebra"],"BooleanAlgebra"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Unit"],"Unit"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[25,51],"name":"../../../support/bower_components/purescript-prelude/src/Data/BooleanAlgebra.purs","start":[25,1]},"title":"booleanAlgebraUnit"},{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"b","tag":"TypeVar"}],"constraintClass":[["Data","BooleanAlgebra"],"BooleanAlgebra"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","BooleanAlgebra"],"BooleanAlgebra"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[26,73],"name":"../../../support/bower_components/purescript-prelude/src/Data/BooleanAlgebra.purs","start":[26,1]},"title":"booleanAlgebraFn"},{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"row","tag":"TypeVar"},{"annotation":[],"contents":"list","tag":"TypeVar"}],"constraintClass":[["Prim","RowList"],"RowToList"],"constraintData":null,"constraintKindArgs":[]},{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"list","tag":"TypeVar"},{"annotation":[],"contents":"row","tag":"TypeVar"},{"annotation":[],"contents":"row","tag":"TypeVar"}],"constraintClass":[["Data","BooleanAlgebra"],"BooleanAlgebraRecord"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","BooleanAlgebra"],"BooleanAlgebra"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Record"],"tag":"TypeConstructor"},{"annotation":[],"contents":"row","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[27,123],"name":"../../../support/bower_components/purescript-prelude/src/Data/BooleanAlgebra.purs","start":[27,1]},"title":"booleanAlgebraRecord"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","BooleanAlgebra"],"BooleanAlgebra"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Type","Proxy"],"Proxy"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[28,57],"name":"../../../support/bower_components/purescript-prelude/src/Data/BooleanAlgebra.purs","start":[28,1]},"title":"booleanAlgebraProxy"}],"comments":"The `BooleanAlgebra` type class represents types that behave like boolean\nvalues.\n\nInstances should satisfy the following laws in addition to the\n`HeytingAlgebra` law:\n\n- Excluded middle:\n  - `a || not a = tt`\n","info":{"arguments":[["a",null]],"declType":"typeClass","fundeps":[],"superclasses":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","HeytingAlgebra"],"HeytingAlgebra"],"constraintData":null,"constraintKindArgs":[]}]},"kind":null,"sourceSpan":{"end":[22,43],"name":"../../../support/bower_components/purescript-prelude/src/Data/BooleanAlgebra.purs","start":[22,1]},"title":"BooleanAlgebra"},{"children":[{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","BooleanAlgebra"],"BooleanAlgebraRecord"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim","RowList"],"Nil"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":"row","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"tag":"REmpty"}],"tag":"TypeApp"}},"sourceSpan":{"end":[35,71],"name":"../../../support/bower_components/purescript-prelude/src/Data/BooleanAlgebra.purs","start":[35,1]},"title":"booleanAlgebraRecordNil"},{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"key","tag":"TypeVar"}],"constraintClass":[["Data","Symbol"],"IsSymbol"],"constraintData":null,"constraintKindArgs":[]},{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"key","tag":"TypeVar"},{"annotation":[],"contents":"focus","tag":"TypeVar"},{"annotation":[],"contents":"subrowTail","tag":"TypeVar"},{"annotation":[],"contents":"subrow","tag":"TypeVar"}],"constraintClass":[["Prim","Row"],"Cons"],"constraintData":null,"constraintKindArgs":[]},{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"rowlistTail","tag":"TypeVar"},{"annotation":[],"contents":"row","tag":"TypeVar"},{"annotation":[],"contents":"subrowTail","tag":"TypeVar"}],"constraintClass":[["Data","BooleanAlgebra"],"BooleanAlgebraRecord"],"constraintData":null,"constraintKindArgs":[]},{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"focus","tag":"TypeVar"}],"constraintClass":[["Data","BooleanAlgebra"],"BooleanAlgebra"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","BooleanAlgebra"],"BooleanAlgebraRecord"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim","RowList"],"Cons"],"tag":"TypeConstructor"},{"annotation":[],"contents":"key","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"focus","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"rowlistTail","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":"row","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"subrow","tag":"TypeVar"}],"tag":"TypeApp"}},"sourceSpan":{"end":[43,66],"name":"../../../support/bower_components/purescript-prelude/src/Data/BooleanAlgebra.purs","start":[37,1]},"title":"booleanAlgebraRecordCons"}],"comments":"A class for records where all fields have `BooleanAlgebra` instances, used\nto implement the `BooleanAlgebra` instance for records.\n","info":{"arguments":[["rowlist",null],["row",null],["subrow",null]],"declType":"typeClass","fundeps":[[["rowlist"],["subrow"]]],"superclasses":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"rowlist","tag":"TypeVar"},{"annotation":[],"contents":"row","tag":"TypeVar"},{"annotation":[],"contents":"subrow","tag":"TypeVar"}],"constraintClass":[["Data","HeytingAlgebra"],"HeytingAlgebraRecord"],"constraintData":null,"constraintKindArgs":[]}]},"kind":{"keyword":"class","kind":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim","RowList"],"RowList"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Row"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Row"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim"],"Constraint"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[33,109],"name":"../../../support/bower_components/purescript-prelude/src/Data/BooleanAlgebra.purs","start":[33,1]},"title":"BooleanAlgebraRecord"}],"name":"Data.BooleanAlgebra","reExports":[]}
diff --git a/tests/purs/publish/basic-example/output/Data.BooleanAlgebra/externs.json b/tests/purs/publish/basic-example/output/Data.BooleanAlgebra/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.BooleanAlgebra/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Data","BooleanAlgebra"],"efExports":[{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/BooleanAlgebra.purs","end":[40,71]},{"exportSourceImportedFrom":["Data","HeytingAlgebra"],"exportSourceDefinedIn":["Data","HeytingAlgebra"]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/BooleanAlgebra.purs","end":[40,71]},"HeytingAlgebra"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/BooleanAlgebra.purs","end":[40,71]},{"exportSourceImportedFrom":["Data","HeytingAlgebra"],"exportSourceDefinedIn":["Data","HeytingAlgebra"]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/BooleanAlgebra.purs","end":[40,71]},"HeytingAlgebraRecord"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/BooleanAlgebra.purs","end":[40,71]},{"exportSourceImportedFrom":["Data","HeytingAlgebra"],"exportSourceDefinedIn":["Data","HeytingAlgebra"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/BooleanAlgebra.purs","end":[40,71]},{"Ident":"conj"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/BooleanAlgebra.purs","end":[40,71]},{"exportSourceImportedFrom":["Data","HeytingAlgebra"],"exportSourceDefinedIn":["Data","HeytingAlgebra"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/BooleanAlgebra.purs","end":[40,71]},{"Ident":"disj"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/BooleanAlgebra.purs","end":[40,71]},{"exportSourceImportedFrom":["Data","HeytingAlgebra"],"exportSourceDefinedIn":["Data","HeytingAlgebra"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/BooleanAlgebra.purs","end":[40,71]},{"Ident":"ff"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/BooleanAlgebra.purs","end":[40,71]},{"exportSourceImportedFrom":["Data","HeytingAlgebra"],"exportSourceDefinedIn":["Data","HeytingAlgebra"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/BooleanAlgebra.purs","end":[40,71]},{"Ident":"implies"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/BooleanAlgebra.purs","end":[40,71]},{"exportSourceImportedFrom":["Data","HeytingAlgebra"],"exportSourceDefinedIn":["Data","HeytingAlgebra"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/BooleanAlgebra.purs","end":[40,71]},{"Ident":"not"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/BooleanAlgebra.purs","end":[40,71]},{"exportSourceImportedFrom":["Data","HeytingAlgebra"],"exportSourceDefinedIn":["Data","HeytingAlgebra"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/BooleanAlgebra.purs","end":[40,71]},{"Ident":"tt"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/BooleanAlgebra.purs","end":[40,71]},{"exportSourceImportedFrom":["Data","HeytingAlgebra"],"exportSourceDefinedIn":["Data","HeytingAlgebra"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/BooleanAlgebra.purs","end":[40,71]},"&&"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/BooleanAlgebra.purs","end":[40,71]},{"exportSourceImportedFrom":["Data","HeytingAlgebra"],"exportSourceDefinedIn":["Data","HeytingAlgebra"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/BooleanAlgebra.purs","end":[40,71]},"||"]}]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/BooleanAlgebra.purs","end":[40,71]},"BooleanAlgebra"]},{"ModuleRef":[{"start":[3,5],"name":"../../../support/bower_components/purescript-prelude/src/Data/BooleanAlgebra.purs","end":[3,31]},["Data","HeytingAlgebra"]]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/BooleanAlgebra.purs","end":[40,71]},"BooleanAlgebraRecord"]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"booleanAlgebraBoolean"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"booleanAlgebraUnit"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"booleanAlgebraFn"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"booleanAlgebraRecord"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"booleanAlgebraRecordNil"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"booleanAlgebraRecordCons"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Data","HeytingAlgebra"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[7,29],"name":"../../../support/bower_components/purescript-prelude/src/Data/BooleanAlgebra.purs","end":[7,49]},"HeytingAlgebra"]},{"TypeClassRef":[{"start":[7,51],"name":"../../../support/bower_components/purescript-prelude/src/Data/BooleanAlgebra.purs","end":[7,77]},"HeytingAlgebraRecord"]},{"ValueRef":[{"start":[7,79],"name":"../../../support/bower_components/purescript-prelude/src/Data/BooleanAlgebra.purs","end":[7,81]},{"Ident":"ff"}]},{"ValueRef":[{"start":[7,83],"name":"../../../support/bower_components/purescript-prelude/src/Data/BooleanAlgebra.purs","end":[7,85]},{"Ident":"tt"}]},{"ValueRef":[{"start":[7,87],"name":"../../../support/bower_components/purescript-prelude/src/Data/BooleanAlgebra.purs","end":[7,94]},{"Ident":"implies"}]},{"ValueRef":[{"start":[7,96],"name":"../../../support/bower_components/purescript-prelude/src/Data/BooleanAlgebra.purs","end":[7,100]},{"Ident":"conj"}]},{"ValueRef":[{"start":[7,102],"name":"../../../support/bower_components/purescript-prelude/src/Data/BooleanAlgebra.purs","end":[7,106]},{"Ident":"disj"}]},{"ValueRef":[{"start":[7,108],"name":"../../../support/bower_components/purescript-prelude/src/Data/BooleanAlgebra.purs","end":[7,111]},{"Ident":"not"}]},{"ValueOpRef":[{"start":[7,113],"name":"../../../support/bower_components/purescript-prelude/src/Data/BooleanAlgebra.purs","end":[7,117]},"&&"]},{"ValueOpRef":[{"start":[7,119],"name":"../../../support/bower_components/purescript-prelude/src/Data/BooleanAlgebra.purs","end":[7,123]},"||"]}]},"eiImportedAs":null},{"eiModule":["Data","Symbol"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[8,21],"name":"../../../support/bower_components/purescript-prelude/src/Data/BooleanAlgebra.purs","end":[8,35]},"IsSymbol"]}]},"eiImportedAs":null},{"eiModule":["Data","Unit"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[9,19],"name":"../../../support/bower_components/purescript-prelude/src/Data/BooleanAlgebra.purs","end":[9,23]},"Unit",[]]}]},"eiImportedAs":null},{"eiModule":["Prim","Row"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Row"]},{"eiModule":["Prim","RowList"],"eiImportType":{"Implicit":[]},"eiImportedAs":["RL"]}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDType":{"edTypeName":"BooleanAlgebra","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"BooleanAlgebra","edTypeSynonymArguments":[["a",null]],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["HeytingAlgebra0",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","HeytingAlgebra"],"HeytingAlgebra"]},{"annotation":[{"start":[21,22],"name":"../../../support/bower_components/purescript-prelude/src/Data/BooleanAlgebra.purs","end":[21,23]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]}}},{"EDClass":{"edClassName":"BooleanAlgebra","edClassTypeArguments":[["a",null]],"edClassMembers":[],"edClassConstraints":[{"constraintAnn":[{"start":[21,7],"name":"../../../support/bower_components/purescript-prelude/src/Data/BooleanAlgebra.purs","end":[21,23]},[]],"constraintClass":[["Data","HeytingAlgebra"],"HeytingAlgebra"],"constraintArgs":[{"annotation":[{"start":[21,22],"name":"../../../support/bower_components/purescript-prelude/src/Data/BooleanAlgebra.purs","end":[21,23]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edFunctionalDependencies":[]}},{"EDType":{"edTypeName":"BooleanAlgebraRecord","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim","RowList"],"RowList"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"Row","contents":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"Row","contents":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"BooleanAlgebraRecord","edTypeSynonymArguments":[["rowlist",null],["row",null],["subrow",null]],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["HeytingAlgebraRecord0",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","HeytingAlgebra"],"HeytingAlgebraRecord"]},{"annotation":[{"start":[30,28],"name":"../../../support/bower_components/purescript-prelude/src/Data/BooleanAlgebra.purs","end":[30,35]},[]],"tag":"TypeVar","contents":"rowlist"}]},{"annotation":[{"start":[30,36],"name":"../../../support/bower_components/purescript-prelude/src/Data/BooleanAlgebra.purs","end":[30,39]},[]],"tag":"TypeVar","contents":"row"}]},{"annotation":[{"start":[30,40],"name":"../../../support/bower_components/purescript-prelude/src/Data/BooleanAlgebra.purs","end":[30,46]},[]],"tag":"TypeVar","contents":"subrow"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]}}},{"EDClass":{"edClassName":"BooleanAlgebraRecord","edClassTypeArguments":[["rowlist",null],["row",null],["subrow",null]],"edClassMembers":[],"edClassConstraints":[{"constraintAnn":[{"start":[30,7],"name":"../../../support/bower_components/purescript-prelude/src/Data/BooleanAlgebra.purs","end":[30,46]},[]],"constraintClass":[["Data","HeytingAlgebra"],"HeytingAlgebraRecord"],"constraintArgs":[{"annotation":[{"start":[30,28],"name":"../../../support/bower_components/purescript-prelude/src/Data/BooleanAlgebra.purs","end":[30,35]},[]],"tag":"TypeVar","contents":"rowlist"},{"annotation":[{"start":[30,36],"name":"../../../support/bower_components/purescript-prelude/src/Data/BooleanAlgebra.purs","end":[30,39]},[]],"tag":"TypeVar","contents":"row"},{"annotation":[{"start":[30,40],"name":"../../../support/bower_components/purescript-prelude/src/Data/BooleanAlgebra.purs","end":[30,46]},[]],"tag":"TypeVar","contents":"subrow"}],"constraintData":null}],"edFunctionalDependencies":[{"determiners":[0],"determined":[2]}]}},{"EDInstance":{"edInstanceClassName":[["Data","BooleanAlgebra"],"BooleanAlgebra"],"edInstanceName":{"Ident":"booleanAlgebraBoolean"},"edInstanceTypes":[{"annotation":[{"start":[23,50],"name":"../../../support/bower_components/purescript-prelude/src/Data/BooleanAlgebra.purs","end":[23,57]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","BooleanAlgebra"],{"Ident":"booleanAlgebraBoolean"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","BooleanAlgebra"],"BooleanAlgebra"],"edInstanceName":{"Ident":"booleanAlgebraUnit"},"edInstanceTypes":[{"annotation":[{"start":[24,47],"name":"../../../support/bower_components/purescript-prelude/src/Data/BooleanAlgebra.purs","end":[24,51]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","BooleanAlgebra"],{"Ident":"booleanAlgebraUnit"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","BooleanAlgebra"],"BooleanAlgebra"],"edInstanceName":{"Ident":"booleanAlgebraFn"},"edInstanceTypes":[{"annotation":[{"start":[25,66],"name":"../../../support/bower_components/purescript-prelude/src/Data/BooleanAlgebra.purs","end":[25,72]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[25,66],"name":"../../../support/bower_components/purescript-prelude/src/Data/BooleanAlgebra.purs","end":[25,72]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[25,68],"name":"../../../support/bower_components/purescript-prelude/src/Data/BooleanAlgebra.purs","end":[25,70]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[25,66],"name":"../../../support/bower_components/purescript-prelude/src/Data/BooleanAlgebra.purs","end":[25,67]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[25,71],"name":"../../../support/bower_components/purescript-prelude/src/Data/BooleanAlgebra.purs","end":[25,72]},[]],"tag":"TypeVar","contents":"b"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[25,30],"name":"../../../support/bower_components/purescript-prelude/src/Data/BooleanAlgebra.purs","end":[25,46]},[]],"constraintClass":[["Data","BooleanAlgebra"],"BooleanAlgebra"],"constraintArgs":[{"annotation":[{"start":[25,45],"name":"../../../support/bower_components/purescript-prelude/src/Data/BooleanAlgebra.purs","end":[25,46]},[]],"tag":"TypeVar","contents":"b"}],"constraintData":null}],"edInstanceChain":[[["Data","BooleanAlgebra"],{"Ident":"booleanAlgebraFn"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","BooleanAlgebra"],"BooleanAlgebra"],"edInstanceName":{"Ident":"booleanAlgebraRecord"},"edInstanceTypes":[{"annotation":[{"start":[26,112],"name":"../../../support/bower_components/purescript-prelude/src/Data/BooleanAlgebra.purs","end":[26,122]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[26,112],"name":"../../../support/bower_components/purescript-prelude/src/Data/BooleanAlgebra.purs","end":[26,118]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[26,119],"name":"../../../support/bower_components/purescript-prelude/src/Data/BooleanAlgebra.purs","end":[26,122]},[]],"tag":"TypeVar","contents":"row"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[26,35],"name":"../../../support/bower_components/purescript-prelude/src/Data/BooleanAlgebra.purs","end":[26,56]},[]],"constraintClass":[["Prim","RowList"],"RowToList"],"constraintArgs":[{"annotation":[{"start":[26,48],"name":"../../../support/bower_components/purescript-prelude/src/Data/BooleanAlgebra.purs","end":[26,51]},[]],"tag":"TypeVar","contents":"row"},{"annotation":[{"start":[26,52],"name":"../../../support/bower_components/purescript-prelude/src/Data/BooleanAlgebra.purs","end":[26,56]},[]],"tag":"TypeVar","contents":"list"}],"constraintData":null},{"constraintAnn":[{"start":[26,58],"name":"../../../support/bower_components/purescript-prelude/src/Data/BooleanAlgebra.purs","end":[26,91]},[]],"constraintClass":[["Data","BooleanAlgebra"],"BooleanAlgebraRecord"],"constraintArgs":[{"annotation":[{"start":[26,79],"name":"../../../support/bower_components/purescript-prelude/src/Data/BooleanAlgebra.purs","end":[26,83]},[]],"tag":"TypeVar","contents":"list"},{"annotation":[{"start":[26,84],"name":"../../../support/bower_components/purescript-prelude/src/Data/BooleanAlgebra.purs","end":[26,87]},[]],"tag":"TypeVar","contents":"row"},{"annotation":[{"start":[26,88],"name":"../../../support/bower_components/purescript-prelude/src/Data/BooleanAlgebra.purs","end":[26,91]},[]],"tag":"TypeVar","contents":"row"}],"constraintData":null}],"edInstanceChain":[[["Data","BooleanAlgebra"],{"Ident":"booleanAlgebraRecord"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","BooleanAlgebra"],"BooleanAlgebraRecord"],"edInstanceName":{"Ident":"booleanAlgebraRecordNil"},"edInstanceTypes":[{"annotation":[{"start":[32,58],"name":"../../../support/bower_components/purescript-prelude/src/Data/BooleanAlgebra.purs","end":[32,64]},[]],"tag":"TypeConstructor","contents":[["Prim","RowList"],"Nil"]},{"annotation":[{"start":[32,65],"name":"../../../support/bower_components/purescript-prelude/src/Data/BooleanAlgebra.purs","end":[32,68]},[]],"tag":"TypeVar","contents":"row"},{"annotation":[{"start":[32,70],"name":"../../../support/bower_components/purescript-prelude/src/Data/BooleanAlgebra.purs","end":[32,71]},[]],"tag":"REmpty"}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","BooleanAlgebra"],{"Ident":"booleanAlgebraRecordNil"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","BooleanAlgebra"],"BooleanAlgebraRecord"],"edInstanceName":{"Ident":"booleanAlgebraRecordCons"},"edInstanceTypes":[{"annotation":[{"start":[40,30],"name":"../../../support/bower_components/purescript-prelude/src/Data/BooleanAlgebra.purs","end":[40,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[40,30],"name":"../../../support/bower_components/purescript-prelude/src/Data/BooleanAlgebra.purs","end":[40,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[40,30],"name":"../../../support/bower_components/purescript-prelude/src/Data/BooleanAlgebra.purs","end":[40,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[40,30],"name":"../../../support/bower_components/purescript-prelude/src/Data/BooleanAlgebra.purs","end":[40,37]},[]],"tag":"TypeConstructor","contents":[["Prim","RowList"],"Cons"]},{"annotation":[{"start":[40,38],"name":"../../../support/bower_components/purescript-prelude/src/Data/BooleanAlgebra.purs","end":[40,41]},[]],"tag":"TypeVar","contents":"key"}]},{"annotation":[{"start":[40,42],"name":"../../../support/bower_components/purescript-prelude/src/Data/BooleanAlgebra.purs","end":[40,47]},[]],"tag":"TypeVar","contents":"focus"}]},{"annotation":[{"start":[40,48],"name":"../../../support/bower_components/purescript-prelude/src/Data/BooleanAlgebra.purs","end":[40,59]},[]],"tag":"TypeVar","contents":"rowlistTail"}]},{"annotation":[{"start":[40,61],"name":"../../../support/bower_components/purescript-prelude/src/Data/BooleanAlgebra.purs","end":[40,64]},[]],"tag":"TypeVar","contents":"row"},{"annotation":[{"start":[40,65],"name":"../../../support/bower_components/purescript-prelude/src/Data/BooleanAlgebra.purs","end":[40,71]},[]],"tag":"TypeVar","contents":"subrow"}],"edInstanceConstraints":[{"constraintAnn":[{"start":[35,10],"name":"../../../support/bower_components/purescript-prelude/src/Data/BooleanAlgebra.purs","end":[35,22]},[]],"constraintClass":[["Data","Symbol"],"IsSymbol"],"constraintArgs":[{"annotation":[{"start":[35,19],"name":"../../../support/bower_components/purescript-prelude/src/Data/BooleanAlgebra.purs","end":[35,22]},[]],"tag":"TypeVar","contents":"key"}],"constraintData":null},{"constraintAnn":[{"start":[36,10],"name":"../../../support/bower_components/purescript-prelude/src/Data/BooleanAlgebra.purs","end":[36,46]},[]],"constraintClass":[["Prim","Row"],"Cons"],"constraintArgs":[{"annotation":[{"start":[36,19],"name":"../../../support/bower_components/purescript-prelude/src/Data/BooleanAlgebra.purs","end":[36,22]},[]],"tag":"TypeVar","contents":"key"},{"annotation":[{"start":[36,23],"name":"../../../support/bower_components/purescript-prelude/src/Data/BooleanAlgebra.purs","end":[36,28]},[]],"tag":"TypeVar","contents":"focus"},{"annotation":[{"start":[36,29],"name":"../../../support/bower_components/purescript-prelude/src/Data/BooleanAlgebra.purs","end":[36,39]},[]],"tag":"TypeVar","contents":"subrowTail"},{"annotation":[{"start":[36,40],"name":"../../../support/bower_components/purescript-prelude/src/Data/BooleanAlgebra.purs","end":[36,46]},[]],"tag":"TypeVar","contents":"subrow"}],"constraintData":null},{"constraintAnn":[{"start":[37,10],"name":"../../../support/bower_components/purescript-prelude/src/Data/BooleanAlgebra.purs","end":[37,57]},[]],"constraintClass":[["Data","BooleanAlgebra"],"BooleanAlgebraRecord"],"constraintArgs":[{"annotation":[{"start":[37,31],"name":"../../../support/bower_components/purescript-prelude/src/Data/BooleanAlgebra.purs","end":[37,42]},[]],"tag":"TypeVar","contents":"rowlistTail"},{"annotation":[{"start":[37,43],"name":"../../../support/bower_components/purescript-prelude/src/Data/BooleanAlgebra.purs","end":[37,46]},[]],"tag":"TypeVar","contents":"row"},{"annotation":[{"start":[37,47],"name":"../../../support/bower_components/purescript-prelude/src/Data/BooleanAlgebra.purs","end":[37,57]},[]],"tag":"TypeVar","contents":"subrowTail"}],"constraintData":null},{"constraintAnn":[{"start":[38,10],"name":"../../../support/bower_components/purescript-prelude/src/Data/BooleanAlgebra.purs","end":[38,30]},[]],"constraintClass":[["Data","BooleanAlgebra"],"BooleanAlgebra"],"constraintArgs":[{"annotation":[{"start":[38,25],"name":"../../../support/bower_components/purescript-prelude/src/Data/BooleanAlgebra.purs","end":[38,30]},[]],"tag":"TypeVar","contents":"focus"}],"constraintData":null}],"edInstanceChain":[[["Data","BooleanAlgebra"],{"Ident":"booleanAlgebraRecordCons"}]],"edInstanceChainIndex":0}}],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/BooleanAlgebra.purs","end":[40,71]}}
diff --git a/tests/purs/publish/basic-example/output/Data.Bounded.Generic/docs.json b/tests/purs/publish/basic-example/output/Data.Bounded.Generic/docs.json
new file mode 100644
--- /dev/null
+++ b/tests/purs/publish/basic-example/output/Data.Bounded.Generic/docs.json
@@ -0,0 +1,1 @@
+{"comments":null,"declarations":[{"children":[{"comments":null,"info":{"declType":"typeClassMember","type":{"annotation":[],"contents":"a","tag":"TypeVar"}},"sourceSpan":{"end":[15,22],"name":"../../../support/bower_components/purescript-prelude/src/Data/Bounded/Generic.purs","start":[15,3]},"title":"genericBottom'"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Bounded","Generic"],"GenericBottom"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Generic","Rep"],"NoArguments"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[18,31],"name":"../../../support/bower_components/purescript-prelude/src/Data/Bounded/Generic.purs","start":[17,1]},"title":"genericBottomNoArguments"},{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","Bounded"],"Bounded"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Bounded","Generic"],"GenericBottom"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Generic","Rep"],"Argument"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[21,35],"name":"../../../support/bower_components/purescript-prelude/src/Data/Bounded/Generic.purs","start":[20,1]},"title":"genericBottomArgument"},{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","Bounded","Generic"],"GenericBottom"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Bounded","Generic"],"GenericBottom"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Generic","Rep"],"Sum"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[24,38],"name":"../../../support/bower_components/purescript-prelude/src/Data/Bounded/Generic.purs","start":[23,1]},"title":"genericBottomSum"},{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","Bounded","Generic"],"GenericBottom"],"constraintData":null,"constraintKindArgs":[]},{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"b","tag":"TypeVar"}],"constraintClass":[["Data","Bounded","Generic"],"GenericBottom"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Bounded","Generic"],"GenericBottom"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Generic","Rep"],"Product"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[27,57],"name":"../../../support/bower_components/purescript-prelude/src/Data/Bounded/Generic.purs","start":[26,1]},"title":"genericBottomProduct"},{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","Bounded","Generic"],"GenericBottom"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Bounded","Generic"],"GenericBottom"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Generic","Rep"],"Constructor"],"tag":"TypeConstructor"},{"annotation":[],"contents":"name","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[30,46],"name":"../../../support/bower_components/purescript-prelude/src/Data/Bounded/Generic.purs","start":[29,1]},"title":"genericBottomConstructor"}],"comments":null,"info":{"arguments":[["a",null]],"declType":"typeClass","fundeps":[],"superclasses":[]},"kind":null,"sourceSpan":{"end":[15,22],"name":"../../../support/bower_components/purescript-prelude/src/Data/Bounded/Generic.purs","start":[14,1]},"title":"GenericBottom"},{"children":[],"comments":"A `Generic` implementation of the `bottom` member from the `Bounded` type class.\n","info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"rep","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"},{"annotation":[],"contents":"rep","tag":"TypeVar"}],"constraintClass":[["Data","Generic","Rep"],"Generic"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"rep","tag":"TypeVar"}],"constraintClass":[["Data","Bounded","Generic"],"GenericBottom"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"ConstrainedType"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[51,71],"name":"../../../support/bower_components/purescript-prelude/src/Data/Bounded/Generic.purs","start":[51,1]},"title":"genericBottom"},{"children":[{"comments":null,"info":{"declType":"typeClassMember","type":{"annotation":[],"contents":"a","tag":"TypeVar"}},"sourceSpan":{"end":[33,19],"name":"../../../support/bower_components/purescript-prelude/src/Data/Bounded/Generic.purs","start":[33,3]},"title":"genericTop'"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Bounded","Generic"],"GenericTop"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Generic","Rep"],"NoArguments"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[36,28],"name":"../../../support/bower_components/purescript-prelude/src/Data/Bounded/Generic.purs","start":[35,1]},"title":"genericTopNoArguments"},{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","Bounded"],"Bounded"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Bounded","Generic"],"GenericTop"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Generic","Rep"],"Argument"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[39,29],"name":"../../../support/bower_components/purescript-prelude/src/Data/Bounded/Generic.purs","start":[38,1]},"title":"genericTopArgument"},{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"b","tag":"TypeVar"}],"constraintClass":[["Data","Bounded","Generic"],"GenericTop"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Bounded","Generic"],"GenericTop"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Generic","Rep"],"Sum"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[42,32],"name":"../../../support/bower_components/purescript-prelude/src/Data/Bounded/Generic.purs","start":[41,1]},"title":"genericTopSum"},{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","Bounded","Generic"],"GenericTop"],"constraintData":null,"constraintKindArgs":[]},{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"b","tag":"TypeVar"}],"constraintClass":[["Data","Bounded","Generic"],"GenericTop"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Bounded","Generic"],"GenericTop"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Generic","Rep"],"Product"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[45,48],"name":"../../../support/bower_components/purescript-prelude/src/Data/Bounded/Generic.purs","start":[44,1]},"title":"genericTopProduct"},{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","Bounded","Generic"],"GenericTop"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Bounded","Generic"],"GenericTop"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Generic","Rep"],"Constructor"],"tag":"TypeConstructor"},{"annotation":[],"contents":"name","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[48,40],"name":"../../../support/bower_components/purescript-prelude/src/Data/Bounded/Generic.purs","start":[47,1]},"title":"genericTopConstructor"}],"comments":null,"info":{"arguments":[["a",null]],"declType":"typeClass","fundeps":[],"superclasses":[]},"kind":null,"sourceSpan":{"end":[33,19],"name":"../../../support/bower_components/purescript-prelude/src/Data/Bounded/Generic.purs","start":[32,1]},"title":"GenericTop"},{"children":[],"comments":"A `Generic` implementation of the `top` member from the `Bounded` type class.\n","info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"rep","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"},{"annotation":[],"contents":"rep","tag":"TypeVar"}],"constraintClass":[["Data","Generic","Rep"],"Generic"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"rep","tag":"TypeVar"}],"constraintClass":[["Data","Bounded","Generic"],"GenericTop"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"ConstrainedType"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[55,65],"name":"../../../support/bower_components/purescript-prelude/src/Data/Bounded/Generic.purs","start":[55,1]},"title":"genericTop"}],"name":"Data.Bounded.Generic","reExports":[]}
diff --git a/tests/purs/publish/basic-example/output/Data.Bounded/docs.json b/tests/purs/publish/basic-example/output/Data.Bounded/docs.json
--- a/tests/purs/publish/basic-example/output/Data.Bounded/docs.json
+++ b/tests/purs/publish/basic-example/output/Data.Bounded/docs.json
@@ -1,1 +1,1 @@
-{"reExports":[],"name":"Data.Bounded","comments":null,"declarations":[{"children":[{"comments":null,"title":"top","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeVar","contents":"a"}},"sourceSpan":{"start":[18,3],"name":"../../../support/bower_components/purescript-prelude/src/Data/Bounded.purs","end":[18,11]}},{"comments":null,"title":"bottom","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeVar","contents":"a"}},"sourceSpan":{"start":[19,3],"name":"../../../support/bower_components/purescript-prelude/src/Data/Bounded.purs","end":[19,14]}},{"comments":null,"title":"boundedBoolean","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Bounded"],"Bounded"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}},"sourceSpan":{"start":[21,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Bounded.purs","end":[23,17]}},{"comments":"The `Bounded` `Int` instance has `top :: Int` equal to 2^31 - 1,\nand `bottom :: Int` equal to -2^31, since these are the largest and smallest\nintegers representable by twos-complement 32-bit integers, respectively.\n","title":"boundedInt","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Bounded"],"Bounded"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}},"sourceSpan":{"start":[28,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Bounded.purs","end":[30,21]}},{"comments":"Characters fall within the Unicode range.\n","title":"boundedChar","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Bounded"],"Bounded"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Char"]}]}},"sourceSpan":{"start":[36,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Bounded.purs","end":[38,22]}},{"comments":null,"title":"boundedOrdering","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Bounded"],"Bounded"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ordering"],"Ordering"]}]}},"sourceSpan":{"start":[43,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Bounded.purs","end":[45,14]}},{"comments":null,"title":"boundedUnit","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Bounded"],"Bounded"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}},"sourceSpan":{"start":[47,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Bounded.purs","end":[49,16]}},{"comments":null,"title":"boundedNumber","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Bounded"],"Bounded"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]}},"sourceSpan":{"start":[54,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Bounded.purs","end":[56,24]}}],"comments":"The `Bounded` type class represents totally ordered types that have an\nupper and lower boundary.\n\nInstances should satisfy the following law in addition to the `Ord` laws:\n\n- Bounded: `bottom <= a <= top`\n","title":"Bounded","info":{"fundeps":[],"arguments":[["a",null]],"declType":"typeClass","superclasses":[{"constraintAnn":[],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}]},"sourceSpan":{"start":[17,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Bounded.purs","end":[19,14]}}]}
+{"comments":null,"declarations":[{"children":[{"comments":null,"info":{"declType":"typeClassMember","type":{"annotation":[],"contents":"a","tag":"TypeVar"}},"sourceSpan":{"end":[26,11],"name":"../../../support/bower_components/purescript-prelude/src/Data/Bounded.purs","start":[26,3]},"title":"top"},{"comments":null,"info":{"declType":"typeClassMember","type":{"annotation":[],"contents":"a","tag":"TypeVar"}},"sourceSpan":{"end":[27,14],"name":"../../../support/bower_components/purescript-prelude/src/Data/Bounded.purs","start":[27,3]},"title":"bottom"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Bounded"],"Bounded"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Boolean"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[31,17],"name":"../../../support/bower_components/purescript-prelude/src/Data/Bounded.purs","start":[29,1]},"title":"boundedBoolean"},{"comments":"The `Bounded` `Int` instance has `top :: Int` equal to 2^31 - 1,\nand `bottom :: Int` equal to -2^31, since these are the largest and smallest\nintegers representable by twos-complement 32-bit integers, respectively.\n","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Bounded"],"Bounded"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[38,21],"name":"../../../support/bower_components/purescript-prelude/src/Data/Bounded.purs","start":[36,1]},"title":"boundedInt"},{"comments":"Characters fall within the Unicode range.\n","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Bounded"],"Bounded"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Char"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[46,22],"name":"../../../support/bower_components/purescript-prelude/src/Data/Bounded.purs","start":[44,1]},"title":"boundedChar"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Bounded"],"Bounded"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Ordering"],"Ordering"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[53,14],"name":"../../../support/bower_components/purescript-prelude/src/Data/Bounded.purs","start":[51,1]},"title":"boundedOrdering"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Bounded"],"Bounded"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Unit"],"Unit"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[57,16],"name":"../../../support/bower_components/purescript-prelude/src/Data/Bounded.purs","start":[55,1]},"title":"boundedUnit"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Bounded"],"Bounded"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Number"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[64,24],"name":"../../../support/bower_components/purescript-prelude/src/Data/Bounded.purs","start":[62,1]},"title":"boundedNumber"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Bounded"],"Bounded"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Type","Proxy"],"Proxy"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[68,14],"name":"../../../support/bower_components/purescript-prelude/src/Data/Bounded.purs","start":[66,1]},"title":"boundedProxy"},{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"row","tag":"TypeVar"},{"annotation":[],"contents":"list","tag":"TypeVar"}],"constraintClass":[["Prim","RowList"],"RowToList"],"constraintData":null,"constraintKindArgs":[]},{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"list","tag":"TypeVar"},{"annotation":[],"contents":"row","tag":"TypeVar"},{"annotation":[],"contents":"row","tag":"TypeVar"}],"constraintClass":[["Data","Bounded"],"BoundedRecord"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Bounded"],"Bounded"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Record"],"tag":"TypeConstructor"},{"annotation":[],"contents":"row","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[105,67],"name":"../../../support/bower_components/purescript-prelude/src/Data/Bounded.purs","start":[99,1]},"title":"boundedRecord"}],"comments":"The `Bounded` type class represents totally ordered types that have an\nupper and lower boundary.\n\nInstances should satisfy the following law in addition to the `Ord` laws:\n\n- Bounded: `bottom <= a <= top`\n","info":{"arguments":[["a",null]],"declType":"typeClass","fundeps":[],"superclasses":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","Ord"],"Ord"],"constraintData":null,"constraintKindArgs":[]}]},"kind":null,"sourceSpan":{"end":[27,14],"name":"../../../support/bower_components/purescript-prelude/src/Data/Bounded.purs","start":[25,1]},"title":"Bounded"},{"children":[{"comments":null,"info":{"declType":"typeClassMember","type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Type","Proxy"],"Proxy"],"tag":"TypeConstructor"},{"annotation":[],"contents":"rowlist","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Type","Proxy"],"Proxy"],"tag":"TypeConstructor"},{"annotation":[],"contents":"row","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Record"],"tag":"TypeConstructor"},{"annotation":[],"contents":"subrow","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[72,59],"name":"../../../support/bower_components/purescript-prelude/src/Data/Bounded.purs","start":[72,3]},"title":"topRecord"},{"comments":null,"info":{"declType":"typeClassMember","type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Type","Proxy"],"Proxy"],"tag":"TypeConstructor"},{"annotation":[],"contents":"rowlist","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Type","Proxy"],"Proxy"],"tag":"TypeConstructor"},{"annotation":[],"contents":"row","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Record"],"tag":"TypeConstructor"},{"annotation":[],"contents":"subrow","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[73,62],"name":"../../../support/bower_components/purescript-prelude/src/Data/Bounded.purs","start":[73,3]},"title":"bottomRecord"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Bounded"],"BoundedRecord"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim","RowList"],"Nil"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":"row","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"tag":"REmpty"}],"tag":"TypeApp"}},"sourceSpan":{"end":[77,24],"name":"../../../support/bower_components/purescript-prelude/src/Data/Bounded.purs","start":[75,1]},"title":"boundedRecordNil"},{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"key","tag":"TypeVar"}],"constraintClass":[["Data","Symbol"],"IsSymbol"],"constraintData":null,"constraintKindArgs":[]},{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"focus","tag":"TypeVar"}],"constraintClass":[["Data","Bounded"],"Bounded"],"constraintData":null,"constraintKindArgs":[]},{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"key","tag":"TypeVar"},{"annotation":[],"contents":"focus","tag":"TypeVar"},{"annotation":[],"contents":"rowTail","tag":"TypeVar"},{"annotation":[],"contents":"row","tag":"TypeVar"}],"constraintClass":[["Prim","Row"],"Cons"],"constraintData":null,"constraintKindArgs":[]},{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"key","tag":"TypeVar"},{"annotation":[],"contents":"focus","tag":"TypeVar"},{"annotation":[],"contents":"subrowTail","tag":"TypeVar"},{"annotation":[],"contents":"subrow","tag":"TypeVar"}],"constraintClass":[["Prim","Row"],"Cons"],"constraintData":null,"constraintKindArgs":[]},{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"rowlistTail","tag":"TypeVar"},{"annotation":[],"contents":"row","tag":"TypeVar"},{"annotation":[],"contents":"subrowTail","tag":"TypeVar"}],"constraintClass":[["Data","Bounded"],"BoundedRecord"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Bounded"],"BoundedRecord"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim","RowList"],"Cons"],"tag":"TypeConstructor"},{"annotation":[],"contents":"key","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"focus","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"rowlistTail","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":"row","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"subrow","tag":"TypeVar"}],"tag":"TypeApp"}},"sourceSpan":{"end":[97,62],"name":"../../../support/bower_components/purescript-prelude/src/Data/Bounded.purs","start":[79,1]},"title":"boundedRecordCons"}],"comments":null,"info":{"arguments":[["rowlist",null],["row",null],["subrow",null]],"declType":"typeClass","fundeps":[[["rowlist"],["subrow"]]],"superclasses":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"rowlist","tag":"TypeVar"},{"annotation":[],"contents":"row","tag":"TypeVar"}],"constraintClass":[["Data","Ord"],"OrdRecord"],"constraintData":null,"constraintKindArgs":[]}]},"kind":{"keyword":"class","kind":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim","RowList"],"RowList"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Row"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Row"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim"],"Constraint"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[73,62],"name":"../../../support/bower_components/purescript-prelude/src/Data/Bounded.purs","start":[71,1]},"title":"BoundedRecord"}],"name":"Data.Bounded","reExports":[]}
diff --git a/tests/purs/publish/basic-example/output/Data.Bounded/externs.json b/tests/purs/publish/basic-example/output/Data.Bounded/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.Bounded/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Data","Bounded"],"efExports":[{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Bounded.purs","end":[56,24]},{"exportSourceImportedFrom":["Data","Ord"],"exportSourceDefinedIn":["Data","Ordering"]},{"TypeRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Bounded.purs","end":[56,24]},"Ordering",["EQ","GT","LT"]]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Bounded.purs","end":[56,24]},{"exportSourceImportedFrom":["Data","Ord"],"exportSourceDefinedIn":["Data","Ord"]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Bounded.purs","end":[56,24]},"Ord"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Bounded.purs","end":[56,24]},{"exportSourceImportedFrom":["Data","Ord"],"exportSourceDefinedIn":["Data","Ord"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Bounded.purs","end":[56,24]},{"Ident":"compare"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Bounded.purs","end":[56,24]},{"exportSourceImportedFrom":["Data","Ord"],"exportSourceDefinedIn":["Data","Ord"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Bounded.purs","end":[56,24]},"<"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Bounded.purs","end":[56,24]},{"exportSourceImportedFrom":["Data","Ord"],"exportSourceDefinedIn":["Data","Ord"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Bounded.purs","end":[56,24]},"<="]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Bounded.purs","end":[56,24]},{"exportSourceImportedFrom":["Data","Ord"],"exportSourceDefinedIn":["Data","Ord"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Bounded.purs","end":[56,24]},">"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Bounded.purs","end":[56,24]},{"exportSourceImportedFrom":["Data","Ord"],"exportSourceDefinedIn":["Data","Ord"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Bounded.purs","end":[56,24]},">="]}]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Bounded.purs","end":[56,24]},"Bounded"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Bounded.purs","end":[56,24]},{"Ident":"bottom"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Bounded.purs","end":[56,24]},{"Ident":"top"}]},{"ModuleRef":[{"start":[5,5],"name":"../../../support/bower_components/purescript-prelude/src/Data/Bounded.purs","end":[5,20]},["Data","Ord"]]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"boundedBoolean"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"boundedInt"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"boundedChar"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"boundedOrdering"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"boundedUnit"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"boundedNumber"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Data","Ord"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[8,18],"name":"../../../support/bower_components/purescript-prelude/src/Data/Bounded.purs","end":[8,27]},"Ord"]},{"TypeRef":[{"start":[8,29],"name":"../../../support/bower_components/purescript-prelude/src/Data/Bounded.purs","end":[8,41]},"Ordering",null]},{"ValueRef":[{"start":[8,43],"name":"../../../support/bower_components/purescript-prelude/src/Data/Bounded.purs","end":[8,50]},{"Ident":"compare"}]},{"ValueOpRef":[{"start":[8,52],"name":"../../../support/bower_components/purescript-prelude/src/Data/Bounded.purs","end":[8,55]},"<"]},{"ValueOpRef":[{"start":[8,57],"name":"../../../support/bower_components/purescript-prelude/src/Data/Bounded.purs","end":[8,61]},"<="]},{"ValueOpRef":[{"start":[8,63],"name":"../../../support/bower_components/purescript-prelude/src/Data/Bounded.purs","end":[8,66]},">"]},{"ValueOpRef":[{"start":[8,68],"name":"../../../support/bower_components/purescript-prelude/src/Data/Bounded.purs","end":[8,72]},">="]}]},"eiImportedAs":null},{"eiModule":["Data","Unit"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[9,19],"name":"../../../support/bower_components/purescript-prelude/src/Data/Bounded.purs","end":[9,23]},"Unit",[]]},{"ValueRef":[{"start":[9,25],"name":"../../../support/bower_components/purescript-prelude/src/Data/Bounded.purs","end":[9,29]},{"Ident":"unit"}]}]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDType":{"edTypeName":"Bounded","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"Bounded","edTypeSynonymArguments":[["a",null]],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["top",{"annotation":[{"start":[18,10],"name":"../../../support/bower_components/purescript-prelude/src/Data/Bounded.purs","end":[18,11]},[]],"tag":"TypeVar","contents":"a"},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["bottom",{"annotation":[{"start":[19,13],"name":"../../../support/bower_components/purescript-prelude/src/Data/Bounded.purs","end":[19,14]},[]],"tag":"TypeVar","contents":"a"},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["Ord0",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Ord"],"Ord"]},{"annotation":[{"start":[17,11],"name":"../../../support/bower_components/purescript-prelude/src/Data/Bounded.purs","end":[17,12]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]}]}]}}},{"EDClass":{"edClassName":"Bounded","edClassTypeArguments":[["a",null]],"edClassMembers":[[{"Ident":"top"},{"annotation":[{"start":[18,10],"name":"../../../support/bower_components/purescript-prelude/src/Data/Bounded.purs","end":[18,11]},[]],"tag":"TypeVar","contents":"a"}],[{"Ident":"bottom"},{"annotation":[{"start":[19,13],"name":"../../../support/bower_components/purescript-prelude/src/Data/Bounded.purs","end":[19,14]},[]],"tag":"TypeVar","contents":"a"}]],"edClassConstraints":[{"constraintAnn":[{"start":[17,7],"name":"../../../support/bower_components/purescript-prelude/src/Data/Bounded.purs","end":[17,12]},[]],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[{"start":[17,11],"name":"../../../support/bower_components/purescript-prelude/src/Data/Bounded.purs","end":[17,12]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edFunctionalDependencies":[]}},{"EDValue":{"edValueName":{"Ident":"bottom"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["Data","Bounded"],"Bounded"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[19,13],"name":"../../../support/bower_components/purescript-prelude/src/Data/Bounded.purs","end":[19,14]},[]],"tag":"TypeVar","contents":"a"}]},1]}}},{"EDValue":{"edValueName":{"Ident":"top"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["Data","Bounded"],"Bounded"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[18,10],"name":"../../../support/bower_components/purescript-prelude/src/Data/Bounded.purs","end":[18,11]},[]],"tag":"TypeVar","contents":"a"}]},0]}}},{"EDInstance":{"edInstanceClassName":[["Data","Bounded"],"Bounded"],"edInstanceName":{"Ident":"boundedBoolean"},"edInstanceTypes":[{"annotation":[{"start":[21,36],"name":"../../../support/bower_components/purescript-prelude/src/Data/Bounded.purs","end":[21,43]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Bounded"],{"Ident":"boundedBoolean"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Bounded"],"Bounded"],"edInstanceName":{"Ident":"boundedInt"},"edInstanceTypes":[{"annotation":[{"start":[28,32],"name":"../../../support/bower_components/purescript-prelude/src/Data/Bounded.purs","end":[28,35]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Bounded"],{"Ident":"boundedInt"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Bounded"],"Bounded"],"edInstanceName":{"Ident":"boundedChar"},"edInstanceTypes":[{"annotation":[{"start":[36,33],"name":"../../../support/bower_components/purescript-prelude/src/Data/Bounded.purs","end":[36,37]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Char"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Bounded"],{"Ident":"boundedChar"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Bounded"],"Bounded"],"edInstanceName":{"Ident":"boundedOrdering"},"edInstanceTypes":[{"annotation":[{"start":[43,37],"name":"../../../support/bower_components/purescript-prelude/src/Data/Bounded.purs","end":[43,45]},[]],"tag":"TypeConstructor","contents":[["Data","Ordering"],"Ordering"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Bounded"],{"Ident":"boundedOrdering"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Bounded"],"Bounded"],"edInstanceName":{"Ident":"boundedUnit"},"edInstanceTypes":[{"annotation":[{"start":[47,33],"name":"../../../support/bower_components/purescript-prelude/src/Data/Bounded.purs","end":[47,37]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Bounded"],{"Ident":"boundedUnit"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Bounded"],"Bounded"],"edInstanceName":{"Ident":"boundedNumber"},"edInstanceTypes":[{"annotation":[{"start":[54,35],"name":"../../../support/bower_components/purescript-prelude/src/Data/Bounded.purs","end":[54,41]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Bounded"],{"Ident":"boundedNumber"}]],"edInstanceChainIndex":0}}],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Bounded.purs","end":[56,24]}}
diff --git a/tests/purs/publish/basic-example/output/Data.Char.Gen/docs.json b/tests/purs/publish/basic-example/output/Data.Char.Gen/docs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.Char.Gen/docs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"reExports":[],"name":"Data.Char.Gen","comments":null,"declarations":[{"children":[],"comments":"Generates a character of the Unicode basic multilingual plane.\n","title":"genUnicodeChar","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Monad","Gen","Class"],"MonadGen"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Char"]}]}]},null]}},"sourceSpan":{"start":[10,1],"name":"../../../support/bower_components/purescript-strings/src/Data/Char/Gen.purs","end":[10,49]}},{"children":[],"comments":"Generates a character in the ASCII character set, excluding control codes.\n","title":"genAsciiChar","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Monad","Gen","Class"],"MonadGen"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Char"]}]}]},null]}},"sourceSpan":{"start":[14,1],"name":"../../../support/bower_components/purescript-strings/src/Data/Char/Gen.purs","end":[14,47]}},{"children":[],"comments":"Generates a character in the ASCII character set.\n","title":"genAsciiChar'","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Monad","Gen","Class"],"MonadGen"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Char"]}]}]},null]}},"sourceSpan":{"start":[18,1],"name":"../../../support/bower_components/purescript-strings/src/Data/Char/Gen.purs","end":[18,48]}},{"children":[],"comments":"Generates a character that is a numeric digit.\n","title":"genDigitChar","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Monad","Gen","Class"],"MonadGen"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Char"]}]}]},null]}},"sourceSpan":{"start":[22,1],"name":"../../../support/bower_components/purescript-strings/src/Data/Char/Gen.purs","end":[22,47]}},{"children":[],"comments":"Generates a character from the basic latin alphabet.\n","title":"genAlpha","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Monad","Gen","Class"],"MonadGen"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Char"]}]}]},null]}},"sourceSpan":{"start":[26,1],"name":"../../../support/bower_components/purescript-strings/src/Data/Char/Gen.purs","end":[26,43]}},{"children":[],"comments":"Generates a lowercase character from the basic latin alphabet.\n","title":"genAlphaLowercase","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Monad","Gen","Class"],"MonadGen"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Char"]}]}]},null]}},"sourceSpan":{"start":[30,1],"name":"../../../support/bower_components/purescript-strings/src/Data/Char/Gen.purs","end":[30,52]}},{"children":[],"comments":"Generates an uppercase character from the basic latin alphabet.\n","title":"genAlphaUppercase","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Monad","Gen","Class"],"MonadGen"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Char"]}]}]},null]}},"sourceSpan":{"start":[34,1],"name":"../../../support/bower_components/purescript-strings/src/Data/Char/Gen.purs","end":[34,52]}}]}
diff --git a/tests/purs/publish/basic-example/output/Data.Char.Gen/externs.json b/tests/purs/publish/basic-example/output/Data.Char.Gen/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.Char.Gen/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Data","Char","Gen"],"efExports":[{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/Char/Gen.purs","end":[35,70]},{"Ident":"genUnicodeChar"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/Char/Gen.purs","end":[35,70]},{"Ident":"genAsciiChar"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/Char/Gen.purs","end":[35,70]},{"Ident":"genAsciiChar'"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/Char/Gen.purs","end":[35,70]},{"Ident":"genDigitChar"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/Char/Gen.purs","end":[35,70]},{"Ident":"genAlpha"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/Char/Gen.purs","end":[35,70]},{"Ident":"genAlphaLowercase"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/Char/Gen.purs","end":[35,70]},{"Ident":"genAlphaUppercase"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Prelude"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Control","Monad","Gen"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[5,27],"name":"../../../support/bower_components/purescript-strings/src/Data/Char/Gen.purs","end":[5,41]},"MonadGen"]},{"ValueRef":[{"start":[5,43],"name":"../../../support/bower_components/purescript-strings/src/Data/Char/Gen.purs","end":[5,52]},{"Ident":"chooseInt"}]},{"ValueRef":[{"start":[5,54],"name":"../../../support/bower_components/purescript-strings/src/Data/Char/Gen.purs","end":[5,59]},{"Ident":"oneOf"}]}]},"eiImportedAs":null},{"eiModule":["Data","Enum"],"eiImportType":{"Explicit":[{"ValueRef":[{"start":[6,19],"name":"../../../support/bower_components/purescript-strings/src/Data/Char/Gen.purs","end":[6,37]},{"Ident":"toEnumWithDefaults"}]}]},"eiImportedAs":null},{"eiModule":["Data","NonEmpty"],"eiImportType":{"Explicit":[{"ValueOpRef":[{"start":[7,23],"name":"../../../support/bower_components/purescript-strings/src/Data/Char/Gen.purs","end":[7,27]},":|"]}]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDValue":{"edValueName":{"Ident":"genUnicodeChar"},"edValueType":{"annotation":[{"start":[10,19],"name":"../../../support/bower_components/purescript-strings/src/Data/Char/Gen.purs","end":[10,49]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[10,29],"name":"../../../support/bower_components/purescript-strings/src/Data/Char/Gen.purs","end":[10,49]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[10,29],"name":"../../../support/bower_components/purescript-strings/src/Data/Char/Gen.purs","end":[10,39]},[]],"constraintClass":[["Control","Monad","Gen","Class"],"MonadGen"],"constraintArgs":[{"annotation":[{"start":[10,38],"name":"../../../support/bower_components/purescript-strings/src/Data/Char/Gen.purs","end":[10,39]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[10,43],"name":"../../../support/bower_components/purescript-strings/src/Data/Char/Gen.purs","end":[10,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[10,43],"name":"../../../support/bower_components/purescript-strings/src/Data/Char/Gen.purs","end":[10,44]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[10,45],"name":"../../../support/bower_components/purescript-strings/src/Data/Char/Gen.purs","end":[10,49]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Char"]}]}]},0]}}},{"EDValue":{"edValueName":{"Ident":"genAsciiChar"},"edValueType":{"annotation":[{"start":[14,17],"name":"../../../support/bower_components/purescript-strings/src/Data/Char/Gen.purs","end":[14,47]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[14,27],"name":"../../../support/bower_components/purescript-strings/src/Data/Char/Gen.purs","end":[14,47]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[14,27],"name":"../../../support/bower_components/purescript-strings/src/Data/Char/Gen.purs","end":[14,37]},[]],"constraintClass":[["Control","Monad","Gen","Class"],"MonadGen"],"constraintArgs":[{"annotation":[{"start":[14,36],"name":"../../../support/bower_components/purescript-strings/src/Data/Char/Gen.purs","end":[14,37]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[14,41],"name":"../../../support/bower_components/purescript-strings/src/Data/Char/Gen.purs","end":[14,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[14,41],"name":"../../../support/bower_components/purescript-strings/src/Data/Char/Gen.purs","end":[14,42]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[14,43],"name":"../../../support/bower_components/purescript-strings/src/Data/Char/Gen.purs","end":[14,47]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Char"]}]}]},6]}}},{"EDValue":{"edValueName":{"Ident":"genAsciiChar'"},"edValueType":{"annotation":[{"start":[18,18],"name":"../../../support/bower_components/purescript-strings/src/Data/Char/Gen.purs","end":[18,48]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[18,28],"name":"../../../support/bower_components/purescript-strings/src/Data/Char/Gen.purs","end":[18,48]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[18,28],"name":"../../../support/bower_components/purescript-strings/src/Data/Char/Gen.purs","end":[18,38]},[]],"constraintClass":[["Control","Monad","Gen","Class"],"MonadGen"],"constraintArgs":[{"annotation":[{"start":[18,37],"name":"../../../support/bower_components/purescript-strings/src/Data/Char/Gen.purs","end":[18,38]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[18,42],"name":"../../../support/bower_components/purescript-strings/src/Data/Char/Gen.purs","end":[18,48]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,42],"name":"../../../support/bower_components/purescript-strings/src/Data/Char/Gen.purs","end":[18,43]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[18,44],"name":"../../../support/bower_components/purescript-strings/src/Data/Char/Gen.purs","end":[18,48]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Char"]}]}]},4]}}},{"EDValue":{"edValueName":{"Ident":"genDigitChar"},"edValueType":{"annotation":[{"start":[22,17],"name":"../../../support/bower_components/purescript-strings/src/Data/Char/Gen.purs","end":[22,47]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[22,27],"name":"../../../support/bower_components/purescript-strings/src/Data/Char/Gen.purs","end":[22,47]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[22,27],"name":"../../../support/bower_components/purescript-strings/src/Data/Char/Gen.purs","end":[22,37]},[]],"constraintClass":[["Control","Monad","Gen","Class"],"MonadGen"],"constraintArgs":[{"annotation":[{"start":[22,36],"name":"../../../support/bower_components/purescript-strings/src/Data/Char/Gen.purs","end":[22,37]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[22,41],"name":"../../../support/bower_components/purescript-strings/src/Data/Char/Gen.purs","end":[22,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[22,41],"name":"../../../support/bower_components/purescript-strings/src/Data/Char/Gen.purs","end":[22,42]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[22,43],"name":"../../../support/bower_components/purescript-strings/src/Data/Char/Gen.purs","end":[22,47]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Char"]}]}]},2]}}},{"EDValue":{"edValueName":{"Ident":"genAlpha"},"edValueType":{"annotation":[{"start":[26,13],"name":"../../../support/bower_components/purescript-strings/src/Data/Char/Gen.purs","end":[26,43]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[26,23],"name":"../../../support/bower_components/purescript-strings/src/Data/Char/Gen.purs","end":[26,43]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[26,23],"name":"../../../support/bower_components/purescript-strings/src/Data/Char/Gen.purs","end":[26,33]},[]],"constraintClass":[["Control","Monad","Gen","Class"],"MonadGen"],"constraintArgs":[{"annotation":[{"start":[26,32],"name":"../../../support/bower_components/purescript-strings/src/Data/Char/Gen.purs","end":[26,33]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[26,37],"name":"../../../support/bower_components/purescript-strings/src/Data/Char/Gen.purs","end":[26,43]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[26,37],"name":"../../../support/bower_components/purescript-strings/src/Data/Char/Gen.purs","end":[26,38]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[26,39],"name":"../../../support/bower_components/purescript-strings/src/Data/Char/Gen.purs","end":[26,43]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Char"]}]}]},12]}}},{"EDValue":{"edValueName":{"Ident":"genAlphaLowercase"},"edValueType":{"annotation":[{"start":[30,22],"name":"../../../support/bower_components/purescript-strings/src/Data/Char/Gen.purs","end":[30,52]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[30,32],"name":"../../../support/bower_components/purescript-strings/src/Data/Char/Gen.purs","end":[30,52]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[30,32],"name":"../../../support/bower_components/purescript-strings/src/Data/Char/Gen.purs","end":[30,42]},[]],"constraintClass":[["Control","Monad","Gen","Class"],"MonadGen"],"constraintArgs":[{"annotation":[{"start":[30,41],"name":"../../../support/bower_components/purescript-strings/src/Data/Char/Gen.purs","end":[30,42]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[30,46],"name":"../../../support/bower_components/purescript-strings/src/Data/Char/Gen.purs","end":[30,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[30,46],"name":"../../../support/bower_components/purescript-strings/src/Data/Char/Gen.purs","end":[30,47]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[30,48],"name":"../../../support/bower_components/purescript-strings/src/Data/Char/Gen.purs","end":[30,52]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Char"]}]}]},10]}}},{"EDValue":{"edValueName":{"Ident":"genAlphaUppercase"},"edValueType":{"annotation":[{"start":[34,22],"name":"../../../support/bower_components/purescript-strings/src/Data/Char/Gen.purs","end":[34,52]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[34,32],"name":"../../../support/bower_components/purescript-strings/src/Data/Char/Gen.purs","end":[34,52]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[34,32],"name":"../../../support/bower_components/purescript-strings/src/Data/Char/Gen.purs","end":[34,42]},[]],"constraintClass":[["Control","Monad","Gen","Class"],"MonadGen"],"constraintArgs":[{"annotation":[{"start":[34,41],"name":"../../../support/bower_components/purescript-strings/src/Data/Char/Gen.purs","end":[34,42]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[34,46],"name":"../../../support/bower_components/purescript-strings/src/Data/Char/Gen.purs","end":[34,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[34,46],"name":"../../../support/bower_components/purescript-strings/src/Data/Char/Gen.purs","end":[34,47]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[34,48],"name":"../../../support/bower_components/purescript-strings/src/Data/Char/Gen.purs","end":[34,52]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Char"]}]}]},8]}}}],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/Char/Gen.purs","end":[35,70]}}
diff --git a/tests/purs/publish/basic-example/output/Data.Char/docs.json b/tests/purs/publish/basic-example/output/Data.Char/docs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.Char/docs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"reExports":[],"name":"Data.Char","comments":"A type and functions for single characters.\n","declarations":[{"children":[],"comments":"Returns the numeric Unicode value of the character.\n","title":"toCharCode","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Char"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}},"sourceSpan":{"start":[11,1],"name":"../../../support/bower_components/purescript-strings/src/Data/Char.purs","end":[11,26]}},{"children":[],"comments":"Constructs a character from the given Unicode numeric value.\n","title":"fromCharCode","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Char"]}]}]}},"sourceSpan":{"start":[15,1],"name":"../../../support/bower_components/purescript-strings/src/Data/Char.purs","end":[15,34]}}]}
diff --git a/tests/purs/publish/basic-example/output/Data.Char/externs.json b/tests/purs/publish/basic-example/output/Data.Char/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.Char/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Data","Char"],"efExports":[{"ValueRef":[{"start":[2,1],"name":"../../../support/bower_components/purescript-strings/src/Data/Char.purs","end":[16,22]},{"Ident":"toCharCode"}]},{"ValueRef":[{"start":[2,1],"name":"../../../support/bower_components/purescript-strings/src/Data/Char.purs","end":[16,22]},{"Ident":"fromCharCode"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Data","Enum"],"eiImportType":{"Explicit":[{"ValueRef":[{"start":[7,19],"name":"../../../support/bower_components/purescript-strings/src/Data/Char.purs","end":[7,27]},{"Ident":"fromEnum"}]},{"ValueRef":[{"start":[7,29],"name":"../../../support/bower_components/purescript-strings/src/Data/Char.purs","end":[7,35]},{"Ident":"toEnum"}]}]},"eiImportedAs":null},{"eiModule":["Data","Maybe"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[8,20],"name":"../../../support/bower_components/purescript-strings/src/Data/Char.purs","end":[8,25]},"Maybe",[]]}]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDValue":{"edValueName":{"Ident":"toCharCode"},"edValueType":{"annotation":[{"start":[11,15],"name":"../../../support/bower_components/purescript-strings/src/Data/Char.purs","end":[11,26]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[11,15],"name":"../../../support/bower_components/purescript-strings/src/Data/Char.purs","end":[11,26]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[11,20],"name":"../../../support/bower_components/purescript-strings/src/Data/Char.purs","end":[11,22]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[11,15],"name":"../../../support/bower_components/purescript-strings/src/Data/Char.purs","end":[11,19]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Char"]}]},{"annotation":[{"start":[11,23],"name":"../../../support/bower_components/purescript-strings/src/Data/Char.purs","end":[11,26]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}}},{"EDValue":{"edValueName":{"Ident":"fromCharCode"},"edValueType":{"annotation":[{"start":[15,17],"name":"../../../support/bower_components/purescript-strings/src/Data/Char.purs","end":[15,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[15,17],"name":"../../../support/bower_components/purescript-strings/src/Data/Char.purs","end":[15,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[15,21],"name":"../../../support/bower_components/purescript-strings/src/Data/Char.purs","end":[15,23]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[15,17],"name":"../../../support/bower_components/purescript-strings/src/Data/Char.purs","end":[15,20]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[15,24],"name":"../../../support/bower_components/purescript-strings/src/Data/Char.purs","end":[15,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[15,24],"name":"../../../support/bower_components/purescript-strings/src/Data/Char.purs","end":[15,29]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[15,30],"name":"../../../support/bower_components/purescript-strings/src/Data/Char.purs","end":[15,34]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Char"]}]}]}}}],"efSourceSpan":{"start":[2,1],"name":"../../../support/bower_components/purescript-strings/src/Data/Char.purs","end":[16,22]}}
diff --git a/tests/purs/publish/basic-example/output/Data.CommutativeRing/docs.json b/tests/purs/publish/basic-example/output/Data.CommutativeRing/docs.json
--- a/tests/purs/publish/basic-example/output/Data.CommutativeRing/docs.json
+++ b/tests/purs/publish/basic-example/output/Data.CommutativeRing/docs.json
@@ -1,1 +1,1 @@
-{"reExports":[],"name":"Data.CommutativeRing","comments":null,"declarations":[{"children":[{"comments":null,"title":"commutativeRingInt","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","CommutativeRing"],"CommutativeRing"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}},"sourceSpan":{"start":[24,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/CommutativeRing.purs","end":[24,51]}},{"comments":null,"title":"commutativeRingNumber","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","CommutativeRing"],"CommutativeRing"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]}},"sourceSpan":{"start":[25,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/CommutativeRing.purs","end":[25,57]}},{"comments":null,"title":"commutativeRingUnit","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","CommutativeRing"],"CommutativeRing"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}},"sourceSpan":{"start":[26,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/CommutativeRing.purs","end":[26,53]}},{"comments":null,"title":"commutativeRingFn","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","CommutativeRing"],"CommutativeRing"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"b"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","CommutativeRing"],"CommutativeRing"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}},"sourceSpan":{"start":[27,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/CommutativeRing.purs","end":[27,76]}},{"comments":null,"title":"commutativeRingRecord","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Prim","RowList"],"RowToList"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"row"},{"annotation":[],"tag":"TypeVar","contents":"list"}],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","CommutativeRing"],"CommutativeRingRecord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"list"},{"annotation":[],"tag":"TypeVar","contents":"row"},{"annotation":[],"tag":"TypeVar","contents":"row"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","CommutativeRing"],"CommutativeRing"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"TypeVar","contents":"row"}]}]}},"sourceSpan":{"start":[28,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/CommutativeRing.purs","end":[28,126]}}],"comments":"The `CommutativeRing` class is for rings where multiplication is\ncommutative.\n\nInstances must satisfy the following law in addition to the `Ring`\nlaws:\n\n- Commutative multiplication: `a * b = b * a`\n","title":"CommutativeRing","info":{"fundeps":[],"arguments":[["a",null]],"declType":"typeClass","superclasses":[{"constraintAnn":[],"constraintClass":[["Data","Ring"],"Ring"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}]},"sourceSpan":{"start":[22,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/CommutativeRing.purs","end":[22,34]}},{"children":[{"comments":null,"title":"commutativeRingRecordNil","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","CommutativeRing"],"CommutativeRingRecord"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim","RowList"],"Nil"]}]},{"annotation":[],"tag":"TypeVar","contents":"row"}]},{"annotation":[],"tag":"REmpty"}]}},"sourceSpan":{"start":[34,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/CommutativeRing.purs","end":[34,73]}},{"comments":null,"title":"commutativeRingRecordCons","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Symbol"],"IsSymbol"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"key"}],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Prim","Row"],"Cons"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"key"},{"annotation":[],"tag":"TypeVar","contents":"focus"},{"annotation":[],"tag":"TypeVar","contents":"subrowTail"},{"annotation":[],"tag":"TypeVar","contents":"subrow"}],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","CommutativeRing"],"CommutativeRingRecord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"rowlistTail"},{"annotation":[],"tag":"TypeVar","contents":"row"},{"annotation":[],"tag":"TypeVar","contents":"subrowTail"}],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","CommutativeRing"],"CommutativeRing"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"focus"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","CommutativeRing"],"CommutativeRingRecord"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim","RowList"],"Cons"]},{"annotation":[],"tag":"TypeVar","contents":"key"}]},{"annotation":[],"tag":"TypeVar","contents":"focus"}]},{"annotation":[],"tag":"TypeVar","contents":"rowlistTail"}]}]},{"annotation":[],"tag":"TypeVar","contents":"row"}]},{"annotation":[],"tag":"TypeVar","contents":"subrow"}]}},"sourceSpan":{"start":[36,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/CommutativeRing.purs","end":[42,72]}}],"comments":"A class for records where all fields have `CommutativeRing` instances, used\nto implement the `CommutativeRing` instance for records.\n","title":"CommutativeRingRecord","info":{"fundeps":[[["rowlist"],["subrow"]]],"arguments":[["rowlist",null],["row",null],["subrow",null]],"declType":"typeClass","superclasses":[{"constraintAnn":[],"constraintClass":[["Data","Ring"],"RingRecord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"rowlist"},{"annotation":[],"tag":"TypeVar","contents":"row"},{"annotation":[],"tag":"TypeVar","contents":"subrow"}],"constraintData":null}]},"sourceSpan":{"start":[32,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/CommutativeRing.purs","end":[32,100]}}]}
+{"comments":null,"declarations":[{"children":[{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","CommutativeRing"],"CommutativeRing"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[25,51],"name":"../../../support/bower_components/purescript-prelude/src/Data/CommutativeRing.purs","start":[25,1]},"title":"commutativeRingInt"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","CommutativeRing"],"CommutativeRing"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Number"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[26,57],"name":"../../../support/bower_components/purescript-prelude/src/Data/CommutativeRing.purs","start":[26,1]},"title":"commutativeRingNumber"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","CommutativeRing"],"CommutativeRing"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Unit"],"Unit"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[27,53],"name":"../../../support/bower_components/purescript-prelude/src/Data/CommutativeRing.purs","start":[27,1]},"title":"commutativeRingUnit"},{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"b","tag":"TypeVar"}],"constraintClass":[["Data","CommutativeRing"],"CommutativeRing"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","CommutativeRing"],"CommutativeRing"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[28,76],"name":"../../../support/bower_components/purescript-prelude/src/Data/CommutativeRing.purs","start":[28,1]},"title":"commutativeRingFn"},{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"row","tag":"TypeVar"},{"annotation":[],"contents":"list","tag":"TypeVar"}],"constraintClass":[["Prim","RowList"],"RowToList"],"constraintData":null,"constraintKindArgs":[]},{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"list","tag":"TypeVar"},{"annotation":[],"contents":"row","tag":"TypeVar"},{"annotation":[],"contents":"row","tag":"TypeVar"}],"constraintClass":[["Data","CommutativeRing"],"CommutativeRingRecord"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","CommutativeRing"],"CommutativeRing"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Record"],"tag":"TypeConstructor"},{"annotation":[],"contents":"row","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[29,126],"name":"../../../support/bower_components/purescript-prelude/src/Data/CommutativeRing.purs","start":[29,1]},"title":"commutativeRingRecord"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","CommutativeRing"],"CommutativeRing"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Type","Proxy"],"Proxy"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[30,59],"name":"../../../support/bower_components/purescript-prelude/src/Data/CommutativeRing.purs","start":[30,1]},"title":"commutativeRingProxy"}],"comments":"The `CommutativeRing` class is for rings where multiplication is\ncommutative.\n\nInstances must satisfy the following law in addition to the `Ring`\nlaws:\n\n- Commutative multiplication: `a * b = b * a`\n","info":{"arguments":[["a",null]],"declType":"typeClass","fundeps":[],"superclasses":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","Ring"],"Ring"],"constraintData":null,"constraintKindArgs":[]}]},"kind":null,"sourceSpan":{"end":[23,34],"name":"../../../support/bower_components/purescript-prelude/src/Data/CommutativeRing.purs","start":[23,1]},"title":"CommutativeRing"},{"children":[{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","CommutativeRing"],"CommutativeRingRecord"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim","RowList"],"Nil"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":"row","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"tag":"REmpty"}],"tag":"TypeApp"}},"sourceSpan":{"end":[36,73],"name":"../../../support/bower_components/purescript-prelude/src/Data/CommutativeRing.purs","start":[36,1]},"title":"commutativeRingRecordNil"},{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"key","tag":"TypeVar"}],"constraintClass":[["Data","Symbol"],"IsSymbol"],"constraintData":null,"constraintKindArgs":[]},{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"key","tag":"TypeVar"},{"annotation":[],"contents":"focus","tag":"TypeVar"},{"annotation":[],"contents":"subrowTail","tag":"TypeVar"},{"annotation":[],"contents":"subrow","tag":"TypeVar"}],"constraintClass":[["Prim","Row"],"Cons"],"constraintData":null,"constraintKindArgs":[]},{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"rowlistTail","tag":"TypeVar"},{"annotation":[],"contents":"row","tag":"TypeVar"},{"annotation":[],"contents":"subrowTail","tag":"TypeVar"}],"constraintClass":[["Data","CommutativeRing"],"CommutativeRingRecord"],"constraintData":null,"constraintKindArgs":[]},{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"focus","tag":"TypeVar"}],"constraintClass":[["Data","CommutativeRing"],"CommutativeRing"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","CommutativeRing"],"CommutativeRingRecord"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim","RowList"],"Cons"],"tag":"TypeConstructor"},{"annotation":[],"contents":"key","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"focus","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"rowlistTail","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":"row","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"subrow","tag":"TypeVar"}],"tag":"TypeApp"}},"sourceSpan":{"end":[44,67],"name":"../../../support/bower_components/purescript-prelude/src/Data/CommutativeRing.purs","start":[38,1]},"title":"commutativeRingRecordCons"}],"comments":"A class for records where all fields have `CommutativeRing` instances, used\nto implement the `CommutativeRing` instance for records.\n","info":{"arguments":[["rowlist",null],["row",null],["subrow",null]],"declType":"typeClass","fundeps":[[["rowlist"],["subrow"]]],"superclasses":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"rowlist","tag":"TypeVar"},{"annotation":[],"contents":"row","tag":"TypeVar"},{"annotation":[],"contents":"subrow","tag":"TypeVar"}],"constraintClass":[["Data","Ring"],"RingRecord"],"constraintData":null,"constraintKindArgs":[]}]},"kind":{"keyword":"class","kind":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim","RowList"],"RowList"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Row"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Row"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim"],"Constraint"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[34,100],"name":"../../../support/bower_components/purescript-prelude/src/Data/CommutativeRing.purs","start":[34,1]},"title":"CommutativeRingRecord"}],"name":"Data.CommutativeRing","reExports":[]}
diff --git a/tests/purs/publish/basic-example/output/Data.CommutativeRing/externs.json b/tests/purs/publish/basic-example/output/Data.CommutativeRing/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.CommutativeRing/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Data","CommutativeRing"],"efExports":[{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/CommutativeRing.purs","end":[42,72]},{"exportSourceImportedFrom":["Data","Ring"],"exportSourceDefinedIn":["Data","Ring"]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/CommutativeRing.purs","end":[42,72]},"Ring"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/CommutativeRing.purs","end":[42,72]},{"exportSourceImportedFrom":["Data","Ring"],"exportSourceDefinedIn":["Data","Ring"]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/CommutativeRing.purs","end":[42,72]},"RingRecord"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/CommutativeRing.purs","end":[42,72]},{"exportSourceImportedFrom":["Data","Semiring"],"exportSourceDefinedIn":["Data","Semiring"]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/CommutativeRing.purs","end":[42,72]},"Semiring"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/CommutativeRing.purs","end":[42,72]},{"exportSourceImportedFrom":["Data","Semiring"],"exportSourceDefinedIn":["Data","Semiring"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/CommutativeRing.purs","end":[42,72]},{"Ident":"add"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/CommutativeRing.purs","end":[42,72]},{"exportSourceImportedFrom":["Data","Semiring"],"exportSourceDefinedIn":["Data","Semiring"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/CommutativeRing.purs","end":[42,72]},{"Ident":"mul"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/CommutativeRing.purs","end":[42,72]},{"exportSourceImportedFrom":["Data","Semiring"],"exportSourceDefinedIn":["Data","Semiring"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/CommutativeRing.purs","end":[42,72]},{"Ident":"one"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/CommutativeRing.purs","end":[42,72]},{"exportSourceImportedFrom":["Data","Semiring"],"exportSourceDefinedIn":["Data","Semiring"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/CommutativeRing.purs","end":[42,72]},{"Ident":"zero"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/CommutativeRing.purs","end":[42,72]},{"exportSourceImportedFrom":["Data","Semiring"],"exportSourceDefinedIn":["Data","Semiring"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/CommutativeRing.purs","end":[42,72]},"*"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/CommutativeRing.purs","end":[42,72]},{"exportSourceImportedFrom":["Data","Semiring"],"exportSourceDefinedIn":["Data","Semiring"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/CommutativeRing.purs","end":[42,72]},"+"]}]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/CommutativeRing.purs","end":[42,72]},"CommutativeRing"]},{"ModuleRef":[{"start":[3,5],"name":"../../../support/bower_components/purescript-prelude/src/Data/CommutativeRing.purs","end":[3,21]},["Data","Ring"]]},{"ModuleRef":[{"start":[4,5],"name":"../../../support/bower_components/purescript-prelude/src/Data/CommutativeRing.purs","end":[4,25]},["Data","Semiring"]]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/CommutativeRing.purs","end":[42,72]},"CommutativeRingRecord"]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"commutativeRingInt"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"commutativeRingNumber"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"commutativeRingUnit"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"commutativeRingFn"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"commutativeRingRecord"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"commutativeRingRecordNil"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"commutativeRingRecordCons"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Data","Ring"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[8,19],"name":"../../../support/bower_components/purescript-prelude/src/Data/CommutativeRing.purs","end":[8,29]},"Ring"]},{"TypeClassRef":[{"start":[8,31],"name":"../../../support/bower_components/purescript-prelude/src/Data/CommutativeRing.purs","end":[8,47]},"RingRecord"]}]},"eiImportedAs":null},{"eiModule":["Data","Semiring"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[9,23],"name":"../../../support/bower_components/purescript-prelude/src/Data/CommutativeRing.purs","end":[9,37]},"Semiring"]},{"ValueRef":[{"start":[9,39],"name":"../../../support/bower_components/purescript-prelude/src/Data/CommutativeRing.purs","end":[9,42]},{"Ident":"add"}]},{"ValueRef":[{"start":[9,44],"name":"../../../support/bower_components/purescript-prelude/src/Data/CommutativeRing.purs","end":[9,47]},{"Ident":"mul"}]},{"ValueRef":[{"start":[9,49],"name":"../../../support/bower_components/purescript-prelude/src/Data/CommutativeRing.purs","end":[9,52]},{"Ident":"one"}]},{"ValueRef":[{"start":[9,54],"name":"../../../support/bower_components/purescript-prelude/src/Data/CommutativeRing.purs","end":[9,58]},{"Ident":"zero"}]},{"ValueOpRef":[{"start":[9,60],"name":"../../../support/bower_components/purescript-prelude/src/Data/CommutativeRing.purs","end":[9,63]},"*"]},{"ValueOpRef":[{"start":[9,65],"name":"../../../support/bower_components/purescript-prelude/src/Data/CommutativeRing.purs","end":[9,68]},"+"]}]},"eiImportedAs":null},{"eiModule":["Data","Symbol"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[10,21],"name":"../../../support/bower_components/purescript-prelude/src/Data/CommutativeRing.purs","end":[10,35]},"IsSymbol"]}]},"eiImportedAs":null},{"eiModule":["Data","Unit"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[11,19],"name":"../../../support/bower_components/purescript-prelude/src/Data/CommutativeRing.purs","end":[11,23]},"Unit",[]]}]},"eiImportedAs":null},{"eiModule":["Prim","Row"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Row"]},{"eiModule":["Prim","RowList"],"eiImportType":{"Implicit":[]},"eiImportedAs":["RL"]}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDType":{"edTypeName":"CommutativeRing","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"CommutativeRing","edTypeSynonymArguments":[["a",null]],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["Ring0",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Ring"],"Ring"]},{"annotation":[{"start":[22,12],"name":"../../../support/bower_components/purescript-prelude/src/Data/CommutativeRing.purs","end":[22,13]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]}}},{"EDClass":{"edClassName":"CommutativeRing","edClassTypeArguments":[["a",null]],"edClassMembers":[],"edClassConstraints":[{"constraintAnn":[{"start":[22,7],"name":"../../../support/bower_components/purescript-prelude/src/Data/CommutativeRing.purs","end":[22,13]},[]],"constraintClass":[["Data","Ring"],"Ring"],"constraintArgs":[{"annotation":[{"start":[22,12],"name":"../../../support/bower_components/purescript-prelude/src/Data/CommutativeRing.purs","end":[22,13]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edFunctionalDependencies":[]}},{"EDType":{"edTypeName":"CommutativeRingRecord","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim","RowList"],"RowList"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"Row","contents":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"Row","contents":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"CommutativeRingRecord","edTypeSynonymArguments":[["rowlist",null],["row",null],["subrow",null]],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["RingRecord0",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Ring"],"RingRecord"]},{"annotation":[{"start":[32,18],"name":"../../../support/bower_components/purescript-prelude/src/Data/CommutativeRing.purs","end":[32,25]},[]],"tag":"TypeVar","contents":"rowlist"}]},{"annotation":[{"start":[32,26],"name":"../../../support/bower_components/purescript-prelude/src/Data/CommutativeRing.purs","end":[32,29]},[]],"tag":"TypeVar","contents":"row"}]},{"annotation":[{"start":[32,30],"name":"../../../support/bower_components/purescript-prelude/src/Data/CommutativeRing.purs","end":[32,36]},[]],"tag":"TypeVar","contents":"subrow"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]}}},{"EDClass":{"edClassName":"CommutativeRingRecord","edClassTypeArguments":[["rowlist",null],["row",null],["subrow",null]],"edClassMembers":[],"edClassConstraints":[{"constraintAnn":[{"start":[32,7],"name":"../../../support/bower_components/purescript-prelude/src/Data/CommutativeRing.purs","end":[32,36]},[]],"constraintClass":[["Data","Ring"],"RingRecord"],"constraintArgs":[{"annotation":[{"start":[32,18],"name":"../../../support/bower_components/purescript-prelude/src/Data/CommutativeRing.purs","end":[32,25]},[]],"tag":"TypeVar","contents":"rowlist"},{"annotation":[{"start":[32,26],"name":"../../../support/bower_components/purescript-prelude/src/Data/CommutativeRing.purs","end":[32,29]},[]],"tag":"TypeVar","contents":"row"},{"annotation":[{"start":[32,30],"name":"../../../support/bower_components/purescript-prelude/src/Data/CommutativeRing.purs","end":[32,36]},[]],"tag":"TypeVar","contents":"subrow"}],"constraintData":null}],"edFunctionalDependencies":[{"determiners":[0],"determined":[2]}]}},{"EDInstance":{"edInstanceClassName":[["Data","CommutativeRing"],"CommutativeRing"],"edInstanceName":{"Ident":"commutativeRingInt"},"edInstanceTypes":[{"annotation":[{"start":[24,48],"name":"../../../support/bower_components/purescript-prelude/src/Data/CommutativeRing.purs","end":[24,51]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","CommutativeRing"],{"Ident":"commutativeRingInt"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","CommutativeRing"],"CommutativeRing"],"edInstanceName":{"Ident":"commutativeRingNumber"},"edInstanceTypes":[{"annotation":[{"start":[25,51],"name":"../../../support/bower_components/purescript-prelude/src/Data/CommutativeRing.purs","end":[25,57]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","CommutativeRing"],{"Ident":"commutativeRingNumber"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","CommutativeRing"],"CommutativeRing"],"edInstanceName":{"Ident":"commutativeRingUnit"},"edInstanceTypes":[{"annotation":[{"start":[26,49],"name":"../../../support/bower_components/purescript-prelude/src/Data/CommutativeRing.purs","end":[26,53]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","CommutativeRing"],{"Ident":"commutativeRingUnit"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","CommutativeRing"],"CommutativeRing"],"edInstanceName":{"Ident":"commutativeRingFn"},"edInstanceTypes":[{"annotation":[{"start":[27,69],"name":"../../../support/bower_components/purescript-prelude/src/Data/CommutativeRing.purs","end":[27,75]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[27,69],"name":"../../../support/bower_components/purescript-prelude/src/Data/CommutativeRing.purs","end":[27,75]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[27,71],"name":"../../../support/bower_components/purescript-prelude/src/Data/CommutativeRing.purs","end":[27,73]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[27,69],"name":"../../../support/bower_components/purescript-prelude/src/Data/CommutativeRing.purs","end":[27,70]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[27,74],"name":"../../../support/bower_components/purescript-prelude/src/Data/CommutativeRing.purs","end":[27,75]},[]],"tag":"TypeVar","contents":"b"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[27,31],"name":"../../../support/bower_components/purescript-prelude/src/Data/CommutativeRing.purs","end":[27,48]},[]],"constraintClass":[["Data","CommutativeRing"],"CommutativeRing"],"constraintArgs":[{"annotation":[{"start":[27,47],"name":"../../../support/bower_components/purescript-prelude/src/Data/CommutativeRing.purs","end":[27,48]},[]],"tag":"TypeVar","contents":"b"}],"constraintData":null}],"edInstanceChain":[[["Data","CommutativeRing"],{"Ident":"commutativeRingFn"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","CommutativeRing"],"CommutativeRing"],"edInstanceName":{"Ident":"commutativeRingRecord"},"edInstanceTypes":[{"annotation":[{"start":[28,115],"name":"../../../support/bower_components/purescript-prelude/src/Data/CommutativeRing.purs","end":[28,125]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[28,115],"name":"../../../support/bower_components/purescript-prelude/src/Data/CommutativeRing.purs","end":[28,121]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[28,122],"name":"../../../support/bower_components/purescript-prelude/src/Data/CommutativeRing.purs","end":[28,125]},[]],"tag":"TypeVar","contents":"row"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[28,36],"name":"../../../support/bower_components/purescript-prelude/src/Data/CommutativeRing.purs","end":[28,57]},[]],"constraintClass":[["Prim","RowList"],"RowToList"],"constraintArgs":[{"annotation":[{"start":[28,49],"name":"../../../support/bower_components/purescript-prelude/src/Data/CommutativeRing.purs","end":[28,52]},[]],"tag":"TypeVar","contents":"row"},{"annotation":[{"start":[28,53],"name":"../../../support/bower_components/purescript-prelude/src/Data/CommutativeRing.purs","end":[28,57]},[]],"tag":"TypeVar","contents":"list"}],"constraintData":null},{"constraintAnn":[{"start":[28,59],"name":"../../../support/bower_components/purescript-prelude/src/Data/CommutativeRing.purs","end":[28,93]},[]],"constraintClass":[["Data","CommutativeRing"],"CommutativeRingRecord"],"constraintArgs":[{"annotation":[{"start":[28,81],"name":"../../../support/bower_components/purescript-prelude/src/Data/CommutativeRing.purs","end":[28,85]},[]],"tag":"TypeVar","contents":"list"},{"annotation":[{"start":[28,86],"name":"../../../support/bower_components/purescript-prelude/src/Data/CommutativeRing.purs","end":[28,89]},[]],"tag":"TypeVar","contents":"row"},{"annotation":[{"start":[28,90],"name":"../../../support/bower_components/purescript-prelude/src/Data/CommutativeRing.purs","end":[28,93]},[]],"tag":"TypeVar","contents":"row"}],"constraintData":null}],"edInstanceChain":[[["Data","CommutativeRing"],{"Ident":"commutativeRingRecord"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","CommutativeRing"],"CommutativeRingRecord"],"edInstanceName":{"Ident":"commutativeRingRecordNil"},"edInstanceTypes":[{"annotation":[{"start":[34,60],"name":"../../../support/bower_components/purescript-prelude/src/Data/CommutativeRing.purs","end":[34,66]},[]],"tag":"TypeConstructor","contents":[["Prim","RowList"],"Nil"]},{"annotation":[{"start":[34,67],"name":"../../../support/bower_components/purescript-prelude/src/Data/CommutativeRing.purs","end":[34,70]},[]],"tag":"TypeVar","contents":"row"},{"annotation":[{"start":[34,72],"name":"../../../support/bower_components/purescript-prelude/src/Data/CommutativeRing.purs","end":[34,73]},[]],"tag":"REmpty"}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","CommutativeRing"],{"Ident":"commutativeRingRecordNil"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","CommutativeRing"],"CommutativeRingRecord"],"edInstanceName":{"Ident":"commutativeRingRecordCons"},"edInstanceTypes":[{"annotation":[{"start":[42,31],"name":"../../../support/bower_components/purescript-prelude/src/Data/CommutativeRing.purs","end":[42,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[42,31],"name":"../../../support/bower_components/purescript-prelude/src/Data/CommutativeRing.purs","end":[42,48]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[42,31],"name":"../../../support/bower_components/purescript-prelude/src/Data/CommutativeRing.purs","end":[42,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[42,31],"name":"../../../support/bower_components/purescript-prelude/src/Data/CommutativeRing.purs","end":[42,38]},[]],"tag":"TypeConstructor","contents":[["Prim","RowList"],"Cons"]},{"annotation":[{"start":[42,39],"name":"../../../support/bower_components/purescript-prelude/src/Data/CommutativeRing.purs","end":[42,42]},[]],"tag":"TypeVar","contents":"key"}]},{"annotation":[{"start":[42,43],"name":"../../../support/bower_components/purescript-prelude/src/Data/CommutativeRing.purs","end":[42,48]},[]],"tag":"TypeVar","contents":"focus"}]},{"annotation":[{"start":[42,49],"name":"../../../support/bower_components/purescript-prelude/src/Data/CommutativeRing.purs","end":[42,60]},[]],"tag":"TypeVar","contents":"rowlistTail"}]},{"annotation":[{"start":[42,62],"name":"../../../support/bower_components/purescript-prelude/src/Data/CommutativeRing.purs","end":[42,65]},[]],"tag":"TypeVar","contents":"row"},{"annotation":[{"start":[42,66],"name":"../../../support/bower_components/purescript-prelude/src/Data/CommutativeRing.purs","end":[42,72]},[]],"tag":"TypeVar","contents":"subrow"}],"edInstanceConstraints":[{"constraintAnn":[{"start":[37,10],"name":"../../../support/bower_components/purescript-prelude/src/Data/CommutativeRing.purs","end":[37,22]},[]],"constraintClass":[["Data","Symbol"],"IsSymbol"],"constraintArgs":[{"annotation":[{"start":[37,19],"name":"../../../support/bower_components/purescript-prelude/src/Data/CommutativeRing.purs","end":[37,22]},[]],"tag":"TypeVar","contents":"key"}],"constraintData":null},{"constraintAnn":[{"start":[38,10],"name":"../../../support/bower_components/purescript-prelude/src/Data/CommutativeRing.purs","end":[38,46]},[]],"constraintClass":[["Prim","Row"],"Cons"],"constraintArgs":[{"annotation":[{"start":[38,19],"name":"../../../support/bower_components/purescript-prelude/src/Data/CommutativeRing.purs","end":[38,22]},[]],"tag":"TypeVar","contents":"key"},{"annotation":[{"start":[38,23],"name":"../../../support/bower_components/purescript-prelude/src/Data/CommutativeRing.purs","end":[38,28]},[]],"tag":"TypeVar","contents":"focus"},{"annotation":[{"start":[38,29],"name":"../../../support/bower_components/purescript-prelude/src/Data/CommutativeRing.purs","end":[38,39]},[]],"tag":"TypeVar","contents":"subrowTail"},{"annotation":[{"start":[38,40],"name":"../../../support/bower_components/purescript-prelude/src/Data/CommutativeRing.purs","end":[38,46]},[]],"tag":"TypeVar","contents":"subrow"}],"constraintData":null},{"constraintAnn":[{"start":[39,10],"name":"../../../support/bower_components/purescript-prelude/src/Data/CommutativeRing.purs","end":[39,58]},[]],"constraintClass":[["Data","CommutativeRing"],"CommutativeRingRecord"],"constraintArgs":[{"annotation":[{"start":[39,32],"name":"../../../support/bower_components/purescript-prelude/src/Data/CommutativeRing.purs","end":[39,43]},[]],"tag":"TypeVar","contents":"rowlistTail"},{"annotation":[{"start":[39,44],"name":"../../../support/bower_components/purescript-prelude/src/Data/CommutativeRing.purs","end":[39,47]},[]],"tag":"TypeVar","contents":"row"},{"annotation":[{"start":[39,48],"name":"../../../support/bower_components/purescript-prelude/src/Data/CommutativeRing.purs","end":[39,58]},[]],"tag":"TypeVar","contents":"subrowTail"}],"constraintData":null},{"constraintAnn":[{"start":[40,10],"name":"../../../support/bower_components/purescript-prelude/src/Data/CommutativeRing.purs","end":[40,31]},[]],"constraintClass":[["Data","CommutativeRing"],"CommutativeRing"],"constraintArgs":[{"annotation":[{"start":[40,26],"name":"../../../support/bower_components/purescript-prelude/src/Data/CommutativeRing.purs","end":[40,31]},[]],"tag":"TypeVar","contents":"focus"}],"constraintData":null}],"edInstanceChain":[[["Data","CommutativeRing"],{"Ident":"commutativeRingRecordCons"}]],"edInstanceChainIndex":0}}],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/CommutativeRing.purs","end":[42,72]}}
diff --git a/tests/purs/publish/basic-example/output/Data.Distributive/docs.json b/tests/purs/publish/basic-example/output/Data.Distributive/docs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.Distributive/docs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"reExports":[],"name":"Data.Distributive","comments":null,"declarations":[{"children":[{"comments":null,"title":"distribute","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"ForAll","contents":["g",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Functor"],"Functor"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"g"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"g"},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"g"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]}]}]},null]},null]}},"sourceSpan":{"start":[23,3],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[23,60]}},{"comments":null,"title":"collect","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"ForAll","contents":["g",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Functor"],"Functor"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"g"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"g"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"g"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}}]}]}]}]},null]},null]},null]}},"sourceSpan":{"start":[24,3],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[24,69]}},{"comments":null,"title":"distributiveIdentity","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Distributive"],"Distributive"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Identity"],"Identity"]}]}},"sourceSpan":{"start":[26,1],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[28,46]}},{"comments":null,"title":"distributiveFunction","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Distributive"],"Distributive"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"e"}]}]}},"sourceSpan":{"start":[30,1],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[32,35]}}],"comments":"Categorical dual of `Traversable`:\n\n- `distribute` is the dual of `sequence` - it zips an arbitrary collection\n  of containers.\n- `collect` is the dual of `traverse` - it traverses an arbitrary\n  collection of values.\n\nLaws:\n\n- `distribute = collect identity`\n- `distribute <<< distribute = identity`\n- `collect f = distribute <<< map f`\n- `map f = unwrap <<< collect (Identity <<< f)`\n- `map distribute <<< collect f = unwrap <<< collect (Compose <<< f)`\n","title":"Distributive","info":{"fundeps":[],"arguments":[["f",null]],"declType":"typeClass","superclasses":[{"constraintAnn":[],"constraintClass":[["Data","Functor"],"Functor"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null}]},"sourceSpan":{"start":[22,1],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[24,69]}},{"children":[],"comments":"A default implementation of `distribute`, based on `collect`.\n","title":"distributeDefault","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["g",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Distributive"],"Distributive"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Functor"],"Functor"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"g"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"g"},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"g"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]}]}]}]},null]},null]},null]}},"sourceSpan":{"start":[35,1],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[40,13]}},{"children":[],"comments":"A default implementation of `collect`, based on `distribute`.\n","title":"collectDefault","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["g",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Distributive"],"Distributive"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Functor"],"Functor"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"g"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"g"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"g"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}}]}]}]}]}]},null]},null]},null]},null]}},"sourceSpan":{"start":[44,1],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[50,13]}},{"children":[],"comments":"Zip an arbitrary collection of containers and summarize the results\n","title":"cotraverse","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["g",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Distributive"],"Distributive"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Functor"],"Functor"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"g"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"g"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"g"},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}]}]}]},null]},null]},null]},null]}},"sourceSpan":{"start":[54,1],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[60,9]}}]}
diff --git a/tests/purs/publish/basic-example/output/Data.Distributive/externs.json b/tests/purs/publish/basic-example/output/Data.Distributive/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.Distributive/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Data","Distributive"],"efExports":[{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[61,36]},{"Ident":"collect"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[61,36]},{"Ident":"distribute"}]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[61,36]},"Distributive"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[61,36]},{"Ident":"distributeDefault"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[61,36]},{"Ident":"collectDefault"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[61,36]},{"Ident":"cotraverse"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"distributiveIdentity"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"distributiveFunction"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Prelude"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Data","Identity"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[5,23],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[5,35]},"Identity",null]}]},"eiImportedAs":null},{"eiModule":["Data","Newtype"],"eiImportType":{"Explicit":[{"ValueRef":[{"start":[6,22],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[6,28]},{"Ident":"unwrap"}]}]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDValue":{"edValueName":{"Ident":"collect"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[24,14],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[24,69]},[]],"tag":"ForAll","contents":["g",{"annotation":[{"start":[24,21],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[24,69]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[24,21],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[24,69]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["Data","Distributive"],"Distributive"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[24,28],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[24,69]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[24,28],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[24,37]},[]],"constraintClass":[["Data","Functor"],"Functor"],"constraintArgs":[{"annotation":[{"start":[24,36],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[24,37]},[]],"tag":"TypeVar","contents":"g"}],"constraintData":null},{"annotation":[{"start":[24,41],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[24,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[24,41],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[24,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[24,52],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[24,54]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[24,42],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[24,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[24,42],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[24,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[24,44],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[24,46]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[24,42],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[24,43]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[24,47],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[24,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[24,47],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[24,48]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[24,49],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[24,50]},[]],"tag":"TypeVar","contents":"b"}]}]}]},{"annotation":[{"start":[24,55],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[24,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[24,55],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[24,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[24,59],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[24,61]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[24,55],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[24,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[24,55],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[24,56]},[]],"tag":"TypeVar","contents":"g"},{"annotation":[{"start":[24,57],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[24,58]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[24,62],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[24,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[24,62],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[24,63]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[24,65],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[24,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[24,65],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[24,66]},[]],"tag":"TypeVar","contents":"g"},{"annotation":[{"start":[24,67],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[24,68]},[]],"tag":"TypeVar","contents":"b"}]}]}]}]}]}]},47]},48]},49]},50]}}},{"EDValue":{"edValueName":{"Ident":"distribute"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[23,17],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[23,60]},[]],"tag":"ForAll","contents":["g",{"annotation":[{"start":[23,24],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[23,60]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["Data","Distributive"],"Distributive"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[23,29],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[23,60]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[23,29],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[23,38]},[]],"constraintClass":[["Data","Functor"],"Functor"],"constraintArgs":[{"annotation":[{"start":[23,37],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[23,38]},[]],"tag":"TypeVar","contents":"g"}],"constraintData":null},{"annotation":[{"start":[23,42],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[23,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[23,42],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[23,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[23,50],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[23,52]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[23,42],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[23,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[23,42],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[23,43]},[]],"tag":"TypeVar","contents":"g"},{"annotation":[{"start":[23,45],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[23,48]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[23,45],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[23,46]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[23,47],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[23,48]},[]],"tag":"TypeVar","contents":"a"}]}]}]},{"annotation":[{"start":[23,53],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[23,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[23,53],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[23,54]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[23,56],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[23,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[23,56],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[23,57]},[]],"tag":"TypeVar","contents":"g"},{"annotation":[{"start":[23,58],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[23,59]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]}]},14]},15]},16]}}},{"EDType":{"edTypeName":"Distributive","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[23,45],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[23,48]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[23,29],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[23,38]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[23,29],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[23,38]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"Distributive","edTypeSynonymArguments":[["f",null]],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["distribute",{"annotation":[{"start":[23,17],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[23,60]},[]],"tag":"ForAll","contents":["g",{"annotation":[{"start":[23,24],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[23,60]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[23,29],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[23,60]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[23,29],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[23,38]},[]],"constraintClass":[["Data","Functor"],"Functor"],"constraintArgs":[{"annotation":[{"start":[23,37],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[23,38]},[]],"tag":"TypeVar","contents":"g"}],"constraintData":null},{"annotation":[{"start":[23,42],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[23,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[23,42],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[23,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[23,50],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[23,52]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[23,42],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[23,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[23,42],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[23,43]},[]],"tag":"TypeVar","contents":"g"},{"annotation":[{"start":[23,45],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[23,48]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[23,45],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[23,46]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[23,47],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[23,48]},[]],"tag":"TypeVar","contents":"a"}]}]}]},{"annotation":[{"start":[23,53],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[23,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[23,53],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[23,54]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[23,56],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[23,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[23,56],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[23,57]},[]],"tag":"TypeVar","contents":"g"},{"annotation":[{"start":[23,58],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[23,59]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]},null]},null]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["collect",{"annotation":[{"start":[24,14],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[24,69]},[]],"tag":"ForAll","contents":["g",{"annotation":[{"start":[24,21],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[24,69]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[24,21],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[24,69]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[24,28],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[24,69]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[24,28],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[24,37]},[]],"constraintClass":[["Data","Functor"],"Functor"],"constraintArgs":[{"annotation":[{"start":[24,36],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[24,37]},[]],"tag":"TypeVar","contents":"g"}],"constraintData":null},{"annotation":[{"start":[24,41],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[24,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[24,41],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[24,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[24,52],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[24,54]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[24,42],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[24,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[24,42],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[24,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[24,44],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[24,46]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[24,42],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[24,43]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[24,47],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[24,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[24,47],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[24,48]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[24,49],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[24,50]},[]],"tag":"TypeVar","contents":"b"}]}]}]},{"annotation":[{"start":[24,55],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[24,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[24,55],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[24,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[24,59],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[24,61]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[24,55],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[24,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[24,55],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[24,56]},[]],"tag":"TypeVar","contents":"g"},{"annotation":[{"start":[24,57],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[24,58]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[24,62],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[24,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[24,62],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[24,63]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[24,65],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[24,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[24,65],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[24,66]},[]],"tag":"TypeVar","contents":"g"},{"annotation":[{"start":[24,67],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[24,68]},[]],"tag":"TypeVar","contents":"b"}]}]}]}]}]},null]},null]},null]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["Functor0",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Functor"],"Functor"]},{"annotation":[{"start":[22,15],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[22,16]},[]],"tag":"TypeVar","contents":"f"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]}]}]}}},{"EDClass":{"edClassName":"Distributive","edClassTypeArguments":[["f",null]],"edClassMembers":[[{"Ident":"distribute"},{"annotation":[{"start":[23,17],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[23,60]},[]],"tag":"ForAll","contents":["g",{"annotation":[{"start":[23,24],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[23,60]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[23,29],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[23,60]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[23,29],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[23,38]},[]],"constraintClass":[["Data","Functor"],"Functor"],"constraintArgs":[{"annotation":[{"start":[23,37],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[23,38]},[]],"tag":"TypeVar","contents":"g"}],"constraintData":null},{"annotation":[{"start":[23,42],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[23,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[23,42],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[23,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[23,50],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[23,52]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[23,42],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[23,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[23,42],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[23,43]},[]],"tag":"TypeVar","contents":"g"},{"annotation":[{"start":[23,45],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[23,48]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[23,45],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[23,46]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[23,47],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[23,48]},[]],"tag":"TypeVar","contents":"a"}]}]}]},{"annotation":[{"start":[23,53],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[23,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[23,53],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[23,54]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[23,56],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[23,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[23,56],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[23,57]},[]],"tag":"TypeVar","contents":"g"},{"annotation":[{"start":[23,58],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[23,59]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]},null]},null]}],[{"Ident":"collect"},{"annotation":[{"start":[24,14],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[24,69]},[]],"tag":"ForAll","contents":["g",{"annotation":[{"start":[24,21],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[24,69]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[24,21],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[24,69]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[24,28],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[24,69]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[24,28],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[24,37]},[]],"constraintClass":[["Data","Functor"],"Functor"],"constraintArgs":[{"annotation":[{"start":[24,36],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[24,37]},[]],"tag":"TypeVar","contents":"g"}],"constraintData":null},{"annotation":[{"start":[24,41],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[24,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[24,41],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[24,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[24,52],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[24,54]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[24,42],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[24,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[24,42],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[24,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[24,44],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[24,46]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[24,42],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[24,43]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[24,47],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[24,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[24,47],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[24,48]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[24,49],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[24,50]},[]],"tag":"TypeVar","contents":"b"}]}]}]},{"annotation":[{"start":[24,55],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[24,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[24,55],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[24,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[24,59],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[24,61]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[24,55],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[24,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[24,55],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[24,56]},[]],"tag":"TypeVar","contents":"g"},{"annotation":[{"start":[24,57],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[24,58]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[24,62],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[24,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[24,62],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[24,63]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[24,65],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[24,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[24,65],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[24,66]},[]],"tag":"TypeVar","contents":"g"},{"annotation":[{"start":[24,67],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[24,68]},[]],"tag":"TypeVar","contents":"b"}]}]}]}]}]},null]},null]},null]}]],"edClassConstraints":[{"constraintAnn":[{"start":[22,7],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[22,16]},[]],"constraintClass":[["Data","Functor"],"Functor"],"constraintArgs":[{"annotation":[{"start":[22,15],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[22,16]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null}],"edFunctionalDependencies":[]}},{"EDValue":{"edValueName":{"Ident":"distributeDefault"},"edValueType":{"annotation":[{"start":[36,6],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[40,13]},[]],"tag":"ForAll","contents":["g",{"annotation":[{"start":[36,13],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[40,13]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[36,13],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[40,13]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[37,6],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[40,13]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[37,6],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[37,20]},[]],"constraintClass":[["Data","Distributive"],"Distributive"],"constraintArgs":[{"annotation":[{"start":[37,19],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[37,20]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[38,6],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[40,13]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[38,6],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[38,15]},[]],"constraintClass":[["Data","Functor"],"Functor"],"constraintArgs":[{"annotation":[{"start":[38,14],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[38,15]},[]],"tag":"TypeVar","contents":"g"}],"constraintData":null},{"annotation":[{"start":[39,6],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[40,13]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[39,6],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[40,13]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[40,3],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[40,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[39,6],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[39,13]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[39,6],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[39,7]},[]],"tag":"TypeVar","contents":"g"},{"annotation":[{"start":[39,9],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[39,12]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[39,9],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[39,10]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[39,11],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[39,12]},[]],"tag":"TypeVar","contents":"a"}]}]}]},{"annotation":[{"start":[40,6],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[40,13]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[40,6],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[40,7]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[40,9],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[40,12]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[40,9],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[40,10]},[]],"tag":"TypeVar","contents":"g"},{"annotation":[{"start":[40,11],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[40,12]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]}]},51]},52]},53]}}},{"EDValue":{"edValueName":{"Ident":"collectDefault"},"edValueType":{"annotation":[{"start":[45,6],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[50,13]},[]],"tag":"ForAll","contents":["g",{"annotation":[{"start":[45,13],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[50,13]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[45,13],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[50,13]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[45,13],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[50,13]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[46,6],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[50,13]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[46,6],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[46,20]},[]],"constraintClass":[["Data","Distributive"],"Distributive"],"constraintArgs":[{"annotation":[{"start":[46,19],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[46,20]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[47,6],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[50,13]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[47,6],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[47,15]},[]],"constraintClass":[["Data","Functor"],"Functor"],"constraintArgs":[{"annotation":[{"start":[47,14],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[47,15]},[]],"tag":"TypeVar","contents":"g"}],"constraintData":null},{"annotation":[{"start":[48,6],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[50,13]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[48,6],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[50,13]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,3],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[49,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[48,7],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[48,15]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[48,7],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[48,15]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[48,9],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[48,11]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[48,7],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[48,8]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[48,12],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[48,15]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[48,12],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[48,13]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[48,14],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[48,15]},[]],"tag":"TypeVar","contents":"b"}]}]}]},{"annotation":[{"start":[49,6],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[50,13]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,6],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[50,13]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,3],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[50,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[49,6],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[49,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,6],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[49,7]},[]],"tag":"TypeVar","contents":"g"},{"annotation":[{"start":[49,8],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[49,9]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[50,6],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[50,13]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,6],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[50,7]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[50,9],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[50,12]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,9],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[50,10]},[]],"tag":"TypeVar","contents":"g"},{"annotation":[{"start":[50,11],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[50,12]},[]],"tag":"TypeVar","contents":"b"}]}]}]}]}]}]},39]},40]},41]},42]}}},{"EDValue":{"edValueName":{"Ident":"cotraverse"},"edValueType":{"annotation":[{"start":[55,6],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[60,9]},[]],"tag":"ForAll","contents":["g",{"annotation":[{"start":[55,13],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[60,9]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[55,13],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[60,9]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[55,13],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[60,9]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[56,6],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[60,9]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[56,6],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[56,20]},[]],"constraintClass":[["Data","Distributive"],"Distributive"],"constraintArgs":[{"annotation":[{"start":[56,19],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[56,20]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[57,6],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[60,9]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[57,6],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[57,15]},[]],"constraintClass":[["Data","Functor"],"Functor"],"constraintArgs":[{"annotation":[{"start":[57,14],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[57,15]},[]],"tag":"TypeVar","contents":"g"}],"constraintData":null},{"annotation":[{"start":[58,6],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[60,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[58,6],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[60,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[59,3],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[59,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[58,7],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[58,15]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[58,7],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[58,15]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[58,11],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[58,13]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[58,7],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[58,10]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[58,7],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[58,8]},[]],"tag":"TypeVar","contents":"g"},{"annotation":[{"start":[58,9],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[58,10]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[58,14],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[58,15]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[59,6],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[60,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[59,6],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[60,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[60,3],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[60,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[59,6],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[59,13]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[59,6],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[59,7]},[]],"tag":"TypeVar","contents":"g"},{"annotation":[{"start":[59,9],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[59,12]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[59,9],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[59,10]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[59,11],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[59,12]},[]],"tag":"TypeVar","contents":"a"}]}]}]},{"annotation":[{"start":[60,6],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[60,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[60,6],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[60,7]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[60,8],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[60,9]},[]],"tag":"TypeVar","contents":"b"}]}]}]}]}]},31]},32]},33]},34]}}},{"EDInstance":{"edInstanceClassName":[["Data","Distributive"],"Distributive"],"edInstanceName":{"Ident":"distributiveIdentity"},"edInstanceTypes":[{"annotation":[{"start":[26,47],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[26,55]},[]],"tag":"TypeConstructor","contents":[["Data","Identity"],"Identity"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Distributive"],{"Ident":"distributiveIdentity"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Distributive"],"Distributive"],"edInstanceName":{"Ident":"distributiveFunction"},"edInstanceTypes":[{"annotation":[{"start":[30,48],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[30,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[30,48],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[30,52]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[30,53],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[30,54]},[]],"tag":"TypeVar","contents":"e"}]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Distributive"],{"Ident":"distributiveFunction"}]],"edInstanceChainIndex":0}}],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-distributive/src/Data/Distributive.purs","end":[61,36]}}
diff --git a/tests/purs/publish/basic-example/output/Data.DivisionRing/docs.json b/tests/purs/publish/basic-example/output/Data.DivisionRing/docs.json
--- a/tests/purs/publish/basic-example/output/Data.DivisionRing/docs.json
+++ b/tests/purs/publish/basic-example/output/Data.DivisionRing/docs.json
@@ -1,1 +1,1 @@
-{"reExports":[],"name":"Data.DivisionRing","comments":null,"declarations":[{"children":[{"comments":null,"title":"recip","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}},"sourceSpan":{"start":[30,3],"name":"../../../support/bower_components/purescript-prelude/src/Data/DivisionRing.purs","end":[30,18]}},{"comments":null,"title":"divisionringNumber","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","DivisionRing"],"DivisionRing"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]}},"sourceSpan":{"start":[54,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/DivisionRing.purs","end":[55,20]}}],"comments":"The `DivisionRing` class is for non-zero rings in which every non-zero\nelement has a multiplicative inverse. Division rings are sometimes also\ncalled *skew fields*.\n\nInstances must satisfy the following laws in addition to the `Ring` laws:\n\n- Non-zero ring: `one /= zero`\n- Non-zero multiplicative inverse: `recip a * a = a * recip a = one` for\n  all non-zero `a`\n\nThe result of `recip zero` is left undefined; individual instances may\nchoose how to handle this case.\n\nIf a type has both `DivisionRing` and `CommutativeRing` instances, then\nit is a field and should have a `Field` instance.\n","title":"DivisionRing","info":{"fundeps":[],"arguments":[["a",null]],"declType":"typeClass","superclasses":[{"constraintAnn":[],"constraintClass":[["Data","Ring"],"Ring"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}]},"sourceSpan":{"start":[29,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/DivisionRing.purs","end":[30,18]}},{"children":[],"comments":"Left division, defined as `leftDiv a b = recip b * a`. Left and right\ndivision are distinct in this module because a `DivisionRing` is not\nnecessarily commutative.\n\nIf the type `a` is also a `EuclideanRing`, then this function is\nequivalent to `div` from the `EuclideanRing` class. When working\nabstractly, `div` should generally be preferred, unless you know that you\nneed your code to work with noncommutative rings.\n","title":"leftDiv","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","DivisionRing"],"DivisionRing"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]},null]}},"sourceSpan":{"start":[40,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/DivisionRing.purs","end":[40,51]}},{"children":[],"comments":"Right division, defined as `rightDiv a b = a * recip b`. Left and right\ndivision are distinct in this module because a `DivisionRing` is not\nnecessarily commutative.\n\nIf the type `a` is also a `EuclideanRing`, then this function is\nequivalent to `div` from the `EuclideanRing` class. When working\nabstractly, `div` should generally be preferred, unless you know that you\nneed your code to work with noncommutative rings.\n","title":"rightDiv","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","DivisionRing"],"DivisionRing"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]},null]}},"sourceSpan":{"start":[51,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/DivisionRing.purs","end":[51,52]}}]}
+{"comments":null,"declarations":[{"children":[{"comments":null,"info":{"declType":"typeClassMember","type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}},"sourceSpan":{"end":[30,18],"name":"../../../support/bower_components/purescript-prelude/src/Data/DivisionRing.purs","start":[30,3]},"title":"recip"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","DivisionRing"],"DivisionRing"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Number"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[55,20],"name":"../../../support/bower_components/purescript-prelude/src/Data/DivisionRing.purs","start":[54,1]},"title":"divisionringNumber"}],"comments":"The `DivisionRing` class is for non-zero rings in which every non-zero\nelement has a multiplicative inverse. Division rings are sometimes also\ncalled *skew fields*.\n\nInstances must satisfy the following laws in addition to the `Ring` laws:\n\n- Non-zero ring: `one /= zero`\n- Non-zero multiplicative inverse: `recip a * a = a * recip a = one` for\n  all non-zero `a`\n\nThe result of `recip zero` is left undefined; individual instances may\nchoose how to handle this case.\n\nIf a type has both `DivisionRing` and `CommutativeRing` instances, then\nit is a field and should have a `Field` instance.\n","info":{"arguments":[["a",null]],"declType":"typeClass","fundeps":[],"superclasses":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","Ring"],"Ring"],"constraintData":null,"constraintKindArgs":[]}]},"kind":null,"sourceSpan":{"end":[30,18],"name":"../../../support/bower_components/purescript-prelude/src/Data/DivisionRing.purs","start":[29,1]},"title":"DivisionRing"},{"children":[],"comments":"Left division, defined as `leftDiv a b = recip b * a`. Left and right\ndivision are distinct in this module because a `DivisionRing` is not\nnecessarily commutative.\n\nIf the type `a` is also a `EuclideanRing`, then this function is\nequivalent to `div` from the `EuclideanRing` class. When working\nabstractly, `div` should generally be preferred, unless you know that you\nneed your code to work with noncommutative rings.\n","info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","DivisionRing"],"DivisionRing"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[40,51],"name":"../../../support/bower_components/purescript-prelude/src/Data/DivisionRing.purs","start":[40,1]},"title":"leftDiv"},{"children":[],"comments":"Right division, defined as `rightDiv a b = a * recip b`. Left and right\ndivision are distinct in this module because a `DivisionRing` is not\nnecessarily commutative.\n\nIf the type `a` is also a `EuclideanRing`, then this function is\nequivalent to `div` from the `EuclideanRing` class. When working\nabstractly, `div` should generally be preferred, unless you know that you\nneed your code to work with noncommutative rings.\n","info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","DivisionRing"],"DivisionRing"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[51,52],"name":"../../../support/bower_components/purescript-prelude/src/Data/DivisionRing.purs","start":[51,1]},"title":"rightDiv"}],"name":"Data.DivisionRing","reExports":[]}
diff --git a/tests/purs/publish/basic-example/output/Data.DivisionRing/externs.json b/tests/purs/publish/basic-example/output/Data.DivisionRing/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.DivisionRing/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Data","DivisionRing"],"efExports":[{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/DivisionRing.purs","end":[55,20]},{"exportSourceImportedFrom":["Data","Ring"],"exportSourceDefinedIn":["Data","Ring"]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/DivisionRing.purs","end":[55,20]},"Ring"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/DivisionRing.purs","end":[55,20]},{"exportSourceImportedFrom":["Data","Semiring"],"exportSourceDefinedIn":["Data","Semiring"]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/DivisionRing.purs","end":[55,20]},"Semiring"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/DivisionRing.purs","end":[55,20]},{"exportSourceImportedFrom":["Data","Semiring"],"exportSourceDefinedIn":["Data","Semiring"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/DivisionRing.purs","end":[55,20]},{"Ident":"add"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/DivisionRing.purs","end":[55,20]},{"exportSourceImportedFrom":["Data","Semiring"],"exportSourceDefinedIn":["Data","Semiring"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/DivisionRing.purs","end":[55,20]},{"Ident":"mul"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/DivisionRing.purs","end":[55,20]},{"exportSourceImportedFrom":["Data","Ring"],"exportSourceDefinedIn":["Data","Ring"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/DivisionRing.purs","end":[55,20]},{"Ident":"negate"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/DivisionRing.purs","end":[55,20]},{"exportSourceImportedFrom":["Data","Semiring"],"exportSourceDefinedIn":["Data","Semiring"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/DivisionRing.purs","end":[55,20]},{"Ident":"one"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/DivisionRing.purs","end":[55,20]},{"exportSourceImportedFrom":["Data","Ring"],"exportSourceDefinedIn":["Data","Ring"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/DivisionRing.purs","end":[55,20]},{"Ident":"sub"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/DivisionRing.purs","end":[55,20]},{"exportSourceImportedFrom":["Data","Semiring"],"exportSourceDefinedIn":["Data","Semiring"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/DivisionRing.purs","end":[55,20]},{"Ident":"zero"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/DivisionRing.purs","end":[55,20]},{"exportSourceImportedFrom":["Data","Semiring"],"exportSourceDefinedIn":["Data","Semiring"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/DivisionRing.purs","end":[55,20]},"*"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/DivisionRing.purs","end":[55,20]},{"exportSourceImportedFrom":["Data","Semiring"],"exportSourceDefinedIn":["Data","Semiring"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/DivisionRing.purs","end":[55,20]},"+"]}]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/DivisionRing.purs","end":[55,20]},"DivisionRing"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/DivisionRing.purs","end":[55,20]},{"Ident":"recip"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/DivisionRing.purs","end":[55,20]},{"Ident":"leftDiv"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/DivisionRing.purs","end":[55,20]},{"Ident":"rightDiv"}]},{"ModuleRef":[{"start":[6,5],"name":"../../../support/bower_components/purescript-prelude/src/Data/DivisionRing.purs","end":[6,21]},["Data","Ring"]]},{"ModuleRef":[{"start":[7,5],"name":"../../../support/bower_components/purescript-prelude/src/Data/DivisionRing.purs","end":[7,25]},["Data","Semiring"]]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"divisionringNumber"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Data","EuclideanRing"],"eiImportType":{"Explicit":[{"ValueOpRef":[{"start":[10,28],"name":"../../../support/bower_components/purescript-prelude/src/Data/DivisionRing.purs","end":[10,31]},"/"]}]},"eiImportedAs":null},{"eiModule":["Data","Ring"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[11,19],"name":"../../../support/bower_components/purescript-prelude/src/Data/DivisionRing.purs","end":[11,29]},"Ring"]},{"ValueRef":[{"start":[11,31],"name":"../../../support/bower_components/purescript-prelude/src/Data/DivisionRing.purs","end":[11,37]},{"Ident":"negate"}]},{"ValueRef":[{"start":[11,39],"name":"../../../support/bower_components/purescript-prelude/src/Data/DivisionRing.purs","end":[11,42]},{"Ident":"sub"}]}]},"eiImportedAs":null},{"eiModule":["Data","Semiring"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[12,23],"name":"../../../support/bower_components/purescript-prelude/src/Data/DivisionRing.purs","end":[12,37]},"Semiring"]},{"ValueRef":[{"start":[12,39],"name":"../../../support/bower_components/purescript-prelude/src/Data/DivisionRing.purs","end":[12,42]},{"Ident":"add"}]},{"ValueRef":[{"start":[12,44],"name":"../../../support/bower_components/purescript-prelude/src/Data/DivisionRing.purs","end":[12,47]},{"Ident":"mul"}]},{"ValueRef":[{"start":[12,49],"name":"../../../support/bower_components/purescript-prelude/src/Data/DivisionRing.purs","end":[12,52]},{"Ident":"one"}]},{"ValueRef":[{"start":[12,54],"name":"../../../support/bower_components/purescript-prelude/src/Data/DivisionRing.purs","end":[12,58]},{"Ident":"zero"}]},{"ValueOpRef":[{"start":[12,60],"name":"../../../support/bower_components/purescript-prelude/src/Data/DivisionRing.purs","end":[12,63]},"*"]},{"ValueOpRef":[{"start":[12,65],"name":"../../../support/bower_components/purescript-prelude/src/Data/DivisionRing.purs","end":[12,68]},"+"]}]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDType":{"edTypeName":"DivisionRing","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[30,14],"name":"../../../support/bower_components/purescript-prelude/src/Data/DivisionRing.purs","end":[30,16]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"DivisionRing","edTypeSynonymArguments":[["a",null]],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["recip",{"annotation":[{"start":[30,12],"name":"../../../support/bower_components/purescript-prelude/src/Data/DivisionRing.purs","end":[30,18]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[30,12],"name":"../../../support/bower_components/purescript-prelude/src/Data/DivisionRing.purs","end":[30,18]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[30,14],"name":"../../../support/bower_components/purescript-prelude/src/Data/DivisionRing.purs","end":[30,16]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[30,12],"name":"../../../support/bower_components/purescript-prelude/src/Data/DivisionRing.purs","end":[30,13]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[30,17],"name":"../../../support/bower_components/purescript-prelude/src/Data/DivisionRing.purs","end":[30,18]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["Ring0",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Ring"],"Ring"]},{"annotation":[{"start":[29,12],"name":"../../../support/bower_components/purescript-prelude/src/Data/DivisionRing.purs","end":[29,13]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]}]}}},{"EDClass":{"edClassName":"DivisionRing","edClassTypeArguments":[["a",null]],"edClassMembers":[[{"Ident":"recip"},{"annotation":[{"start":[30,12],"name":"../../../support/bower_components/purescript-prelude/src/Data/DivisionRing.purs","end":[30,18]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[30,12],"name":"../../../support/bower_components/purescript-prelude/src/Data/DivisionRing.purs","end":[30,18]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[30,14],"name":"../../../support/bower_components/purescript-prelude/src/Data/DivisionRing.purs","end":[30,16]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[30,12],"name":"../../../support/bower_components/purescript-prelude/src/Data/DivisionRing.purs","end":[30,13]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[30,17],"name":"../../../support/bower_components/purescript-prelude/src/Data/DivisionRing.purs","end":[30,18]},[]],"tag":"TypeVar","contents":"a"}]}]],"edClassConstraints":[{"constraintAnn":[{"start":[29,7],"name":"../../../support/bower_components/purescript-prelude/src/Data/DivisionRing.purs","end":[29,13]},[]],"constraintClass":[["Data","Ring"],"Ring"],"constraintArgs":[{"annotation":[{"start":[29,12],"name":"../../../support/bower_components/purescript-prelude/src/Data/DivisionRing.purs","end":[29,13]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edFunctionalDependencies":[]}},{"EDValue":{"edValueName":{"Ident":"recip"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["Data","DivisionRing"],"DivisionRing"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[30,12],"name":"../../../support/bower_components/purescript-prelude/src/Data/DivisionRing.purs","end":[30,18]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[30,12],"name":"../../../support/bower_components/purescript-prelude/src/Data/DivisionRing.purs","end":[30,18]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[30,14],"name":"../../../support/bower_components/purescript-prelude/src/Data/DivisionRing.purs","end":[30,16]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[30,12],"name":"../../../support/bower_components/purescript-prelude/src/Data/DivisionRing.purs","end":[30,13]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[30,17],"name":"../../../support/bower_components/purescript-prelude/src/Data/DivisionRing.purs","end":[30,18]},[]],"tag":"TypeVar","contents":"a"}]}]},0]}}},{"EDValue":{"edValueName":{"Ident":"leftDiv"},"edValueType":{"annotation":[{"start":[40,12],"name":"../../../support/bower_components/purescript-prelude/src/Data/DivisionRing.purs","end":[40,51]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[40,22],"name":"../../../support/bower_components/purescript-prelude/src/Data/DivisionRing.purs","end":[40,51]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[40,22],"name":"../../../support/bower_components/purescript-prelude/src/Data/DivisionRing.purs","end":[40,36]},[]],"constraintClass":[["Data","DivisionRing"],"DivisionRing"],"constraintArgs":[{"annotation":[{"start":[40,35],"name":"../../../support/bower_components/purescript-prelude/src/Data/DivisionRing.purs","end":[40,36]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[40,40],"name":"../../../support/bower_components/purescript-prelude/src/Data/DivisionRing.purs","end":[40,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[40,40],"name":"../../../support/bower_components/purescript-prelude/src/Data/DivisionRing.purs","end":[40,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[40,42],"name":"../../../support/bower_components/purescript-prelude/src/Data/DivisionRing.purs","end":[40,44]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[40,40],"name":"../../../support/bower_components/purescript-prelude/src/Data/DivisionRing.purs","end":[40,41]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[40,45],"name":"../../../support/bower_components/purescript-prelude/src/Data/DivisionRing.purs","end":[40,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[40,45],"name":"../../../support/bower_components/purescript-prelude/src/Data/DivisionRing.purs","end":[40,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[40,47],"name":"../../../support/bower_components/purescript-prelude/src/Data/DivisionRing.purs","end":[40,49]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[40,45],"name":"../../../support/bower_components/purescript-prelude/src/Data/DivisionRing.purs","end":[40,46]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[40,50],"name":"../../../support/bower_components/purescript-prelude/src/Data/DivisionRing.purs","end":[40,51]},[]],"tag":"TypeVar","contents":"a"}]}]}]},3]}}},{"EDValue":{"edValueName":{"Ident":"rightDiv"},"edValueType":{"annotation":[{"start":[51,13],"name":"../../../support/bower_components/purescript-prelude/src/Data/DivisionRing.purs","end":[51,52]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[51,23],"name":"../../../support/bower_components/purescript-prelude/src/Data/DivisionRing.purs","end":[51,52]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[51,23],"name":"../../../support/bower_components/purescript-prelude/src/Data/DivisionRing.purs","end":[51,37]},[]],"constraintClass":[["Data","DivisionRing"],"DivisionRing"],"constraintArgs":[{"annotation":[{"start":[51,36],"name":"../../../support/bower_components/purescript-prelude/src/Data/DivisionRing.purs","end":[51,37]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[51,41],"name":"../../../support/bower_components/purescript-prelude/src/Data/DivisionRing.purs","end":[51,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,41],"name":"../../../support/bower_components/purescript-prelude/src/Data/DivisionRing.purs","end":[51,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,43],"name":"../../../support/bower_components/purescript-prelude/src/Data/DivisionRing.purs","end":[51,45]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[51,41],"name":"../../../support/bower_components/purescript-prelude/src/Data/DivisionRing.purs","end":[51,42]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[51,46],"name":"../../../support/bower_components/purescript-prelude/src/Data/DivisionRing.purs","end":[51,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,46],"name":"../../../support/bower_components/purescript-prelude/src/Data/DivisionRing.purs","end":[51,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,48],"name":"../../../support/bower_components/purescript-prelude/src/Data/DivisionRing.purs","end":[51,50]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[51,46],"name":"../../../support/bower_components/purescript-prelude/src/Data/DivisionRing.purs","end":[51,47]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[51,51],"name":"../../../support/bower_components/purescript-prelude/src/Data/DivisionRing.purs","end":[51,52]},[]],"tag":"TypeVar","contents":"a"}]}]}]},1]}}},{"EDInstance":{"edInstanceClassName":[["Data","DivisionRing"],"DivisionRing"],"edInstanceName":{"Ident":"divisionringNumber"},"edInstanceTypes":[{"annotation":[{"start":[54,45],"name":"../../../support/bower_components/purescript-prelude/src/Data/DivisionRing.purs","end":[54,51]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","DivisionRing"],{"Ident":"divisionringNumber"}]],"edInstanceChainIndex":0}}],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/DivisionRing.purs","end":[55,20]}}
diff --git a/tests/purs/publish/basic-example/output/Data.Either.Inject/docs.json b/tests/purs/publish/basic-example/output/Data.Either.Inject/docs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.Either.Inject/docs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"reExports":[],"name":"Data.Either.Inject","comments":null,"declarations":[{"children":[{"comments":null,"title":"inj","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}},"sourceSpan":{"start":[9,3],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Inject.purs","end":[9,16]}},{"comments":null,"title":"prj","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[10,3],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Inject.purs","end":[10,22]}},{"comments":null,"title":"injectLeft","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Either","Inject"],"Inject"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}},"sourceSpan":{"start":[12,1],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Inject.purs","end":[14,36]}},{"comments":null,"title":"injectRight","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Either","Inject"],"Inject"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"},{"annotation":[],"tag":"TypeVar","contents":"b"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Either","Inject"],"Inject"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}},"sourceSpan":{"start":[16,6],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Inject.purs","end":[18,35]}},{"comments":null,"title":"injectReflexive","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Either","Inject"],"Inject"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}},"sourceSpan":{"start":[20,6],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Inject.purs","end":[22,13]}}],"comments":null,"title":"Inject","info":{"fundeps":[],"arguments":[["a",null],["b",null]],"declType":"typeClass","superclasses":[]},"sourceSpan":{"start":[8,1],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Inject.purs","end":[10,22]}}]}
diff --git a/tests/purs/publish/basic-example/output/Data.Either.Inject/externs.json b/tests/purs/publish/basic-example/output/Data.Either.Inject/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.Either.Inject/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Data","Either","Inject"],"efExports":[{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Inject.purs","end":[22,13]},{"Ident":"inj"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Inject.purs","end":[22,13]},{"Ident":"prj"}]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Inject.purs","end":[22,13]},"Inject"]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"injectLeft"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"injectRight"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"injectReflexive"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Prelude"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Data","Either"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[5,21],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Inject.purs","end":[5,31]},"Either",null]},{"ValueRef":[{"start":[5,33],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Inject.purs","end":[5,39]},{"Ident":"either"}]}]},"eiImportedAs":null},{"eiModule":["Data","Maybe"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[6,20],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Inject.purs","end":[6,29]},"Maybe",null]}]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDValue":{"edValueName":{"Ident":"inj"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["Data","Either","Inject"],"Inject"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"a"},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"b"}],"constraintData":null},{"annotation":[{"start":[9,10],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Inject.purs","end":[9,16]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[9,10],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Inject.purs","end":[9,16]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[9,12],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Inject.purs","end":[9,14]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[9,10],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Inject.purs","end":[9,11]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[9,15],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Inject.purs","end":[9,16]},[]],"tag":"TypeVar","contents":"b"}]}]},12]},13]}}},{"EDValue":{"edValueName":{"Ident":"prj"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["Data","Either","Inject"],"Inject"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"a"},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"b"}],"constraintData":null},{"annotation":[{"start":[10,10],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Inject.purs","end":[10,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[10,10],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Inject.purs","end":[10,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[10,12],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Inject.purs","end":[10,14]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[10,10],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Inject.purs","end":[10,11]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[10,15],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Inject.purs","end":[10,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[10,15],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Inject.purs","end":[10,20]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[10,21],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Inject.purs","end":[10,22]},[]],"tag":"TypeVar","contents":"a"}]}]}]},0]},1]}}},{"EDType":{"edTypeName":"Inject","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[9,12],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Inject.purs","end":[9,14]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[9,12],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Inject.purs","end":[9,14]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"Inject","edTypeSynonymArguments":[["a",null],["b",null]],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["inj",{"annotation":[{"start":[9,10],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Inject.purs","end":[9,16]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[9,10],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Inject.purs","end":[9,16]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[9,12],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Inject.purs","end":[9,14]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[9,10],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Inject.purs","end":[9,11]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[9,15],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Inject.purs","end":[9,16]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["prj",{"annotation":[{"start":[10,10],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Inject.purs","end":[10,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[10,10],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Inject.purs","end":[10,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[10,12],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Inject.purs","end":[10,14]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[10,10],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Inject.purs","end":[10,11]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[10,15],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Inject.purs","end":[10,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[10,15],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Inject.purs","end":[10,20]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[10,21],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Inject.purs","end":[10,22]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]}]}}},{"EDClass":{"edClassName":"Inject","edClassTypeArguments":[["a",null],["b",null]],"edClassMembers":[[{"Ident":"inj"},{"annotation":[{"start":[9,10],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Inject.purs","end":[9,16]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[9,10],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Inject.purs","end":[9,16]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[9,12],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Inject.purs","end":[9,14]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[9,10],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Inject.purs","end":[9,11]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[9,15],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Inject.purs","end":[9,16]},[]],"tag":"TypeVar","contents":"b"}]}],[{"Ident":"prj"},{"annotation":[{"start":[10,10],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Inject.purs","end":[10,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[10,10],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Inject.purs","end":[10,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[10,12],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Inject.purs","end":[10,14]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[10,10],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Inject.purs","end":[10,11]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[10,15],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Inject.purs","end":[10,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[10,15],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Inject.purs","end":[10,20]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[10,21],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Inject.purs","end":[10,22]},[]],"tag":"TypeVar","contents":"a"}]}]}]],"edClassConstraints":[],"edFunctionalDependencies":[]}},{"EDInstance":{"edInstanceClassName":[["Data","Either","Inject"],"Inject"],"edInstanceName":{"Ident":"injectLeft"},"edInstanceTypes":[{"annotation":[{"start":[12,31],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Inject.purs","end":[12,32]},[]],"tag":"TypeVar","contents":"a"},{"annotation":[{"start":[12,34],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Inject.purs","end":[12,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[12,34],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Inject.purs","end":[12,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[12,34],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Inject.purs","end":[12,40]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[12,41],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Inject.purs","end":[12,42]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[12,43],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Inject.purs","end":[12,44]},[]],"tag":"TypeVar","contents":"b"}]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Either","Inject"],{"Ident":"injectLeft"}],[["Data","Either","Inject"],{"Ident":"injectRight"}],[["Data","Either","Inject"],{"Ident":"injectReflexive"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Either","Inject"],"Inject"],"edInstanceName":{"Ident":"injectRight"},"edInstanceTypes":[{"annotation":[{"start":[16,51],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Inject.purs","end":[16,52]},[]],"tag":"TypeVar","contents":"a"},{"annotation":[{"start":[16,54],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Inject.purs","end":[16,64]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[16,54],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Inject.purs","end":[16,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[16,54],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Inject.purs","end":[16,60]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[16,61],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Inject.purs","end":[16,62]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[16,63],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Inject.purs","end":[16,64]},[]],"tag":"TypeVar","contents":"b"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[16,30],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Inject.purs","end":[16,40]},[]],"constraintClass":[["Data","Either","Inject"],"Inject"],"constraintArgs":[{"annotation":[{"start":[16,37],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Inject.purs","end":[16,38]},[]],"tag":"TypeVar","contents":"a"},{"annotation":[{"start":[16,39],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Inject.purs","end":[16,40]},[]],"tag":"TypeVar","contents":"b"}],"constraintData":null}],"edInstanceChain":[[["Data","Either","Inject"],{"Ident":"injectLeft"}],[["Data","Either","Inject"],{"Ident":"injectRight"}],[["Data","Either","Inject"],{"Ident":"injectReflexive"}]],"edInstanceChainIndex":1}},{"EDInstance":{"edInstanceClassName":[["Data","Either","Inject"],"Inject"],"edInstanceName":{"Ident":"injectReflexive"},"edInstanceTypes":[{"annotation":[{"start":[20,41],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Inject.purs","end":[20,42]},[]],"tag":"TypeVar","contents":"a"},{"annotation":[{"start":[20,43],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Inject.purs","end":[20,44]},[]],"tag":"TypeVar","contents":"a"}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Either","Inject"],{"Ident":"injectLeft"}],[["Data","Either","Inject"],{"Ident":"injectRight"}],[["Data","Either","Inject"],{"Ident":"injectReflexive"}]],"edInstanceChainIndex":2}}],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Inject.purs","end":[22,13]}}
diff --git a/tests/purs/publish/basic-example/output/Data.Either.Nested/docs.json b/tests/purs/publish/basic-example/output/Data.Either.Nested/docs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.Either.Nested/docs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"reExports":[],"name":"Data.Either.Nested","comments":"Utilities for n-eithers: sums types with more than two terms built from nested eithers.\n\nNested eithers arise naturally in sum combinators. You shouldn't\nrepresent sum data using nested eithers, but if combinators you're working with\ncreate them, utilities in this module will allow to to more easily work\nwith them, including translating to and from more traditional sum types.\n\n```purescript\ndata Color = Red Number | Green Number | Blue Number\n\nfromEither3 :: Either3 Number Number Number -> Color\nfromEither3 = either3 Red Green Blue\n\ntoEither3 :: Color -> Either3 Number Number Number\ntoEither3 (Red   v) = in1 v\ntoEither3 (Green v) = in2 v\ntoEither3 (Blue  v) = in3 v\n```\n","declarations":[{"children":[],"comments":null,"title":"type (\\/)","info":{"declType":"alias","alias":[["Data","Either"],{"Left":"Either"}],"fixity":{"associativity":"infixr","precedence":6}},"sourceSpan":{"start":[30,1],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[30,27]}},{"children":[],"comments":null,"title":"in1","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["z",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"a"},{"annotation":[],"tag":"TypeVar","contents":"z"}]}]},null]},null]}},"sourceSpan":{"start":[43,1],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[43,31]}},{"children":[],"comments":null,"title":"in2","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["z",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"a"},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"b"},{"annotation":[],"tag":"TypeVar","contents":"z"}]}]}]},null]},null]},null]}},"sourceSpan":{"start":[46,1],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[46,38]}},{"children":[],"comments":null,"title":"in3","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["z",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"a"},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"b"},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"c"},{"annotation":[],"tag":"TypeVar","contents":"z"}]}]}]}]},null]},null]},null]},null]}},"sourceSpan":{"start":[49,1],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[49,45]}},{"children":[],"comments":null,"title":"in4","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["z",{"annotation":[],"tag":"ForAll","contents":["d",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"a"},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"b"},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"c"},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"d"},{"annotation":[],"tag":"TypeVar","contents":"z"}]}]}]}]}]},null]},null]},null]},null]},null]}},"sourceSpan":{"start":[52,1],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[52,52]}},{"children":[],"comments":null,"title":"in5","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["z",{"annotation":[],"tag":"ForAll","contents":["e",{"annotation":[],"tag":"ForAll","contents":["d",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"e"}]},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"a"},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"b"},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"c"},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"d"},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"e"},{"annotation":[],"tag":"TypeVar","contents":"z"}]}]}]}]}]}]},null]},null]},null]},null]},null]},null]}},"sourceSpan":{"start":[55,1],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[55,59]}},{"children":[],"comments":null,"title":"in6","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["z",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["e",{"annotation":[],"tag":"ForAll","contents":["d",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"f"}]},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"a"},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"b"},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"c"},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"d"},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"e"},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"z"}]}]}]}]}]}]}]},null]},null]},null]},null]},null]},null]},null]}},"sourceSpan":{"start":[58,1],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[58,66]}},{"children":[],"comments":null,"title":"in7","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["z",{"annotation":[],"tag":"ForAll","contents":["g",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["e",{"annotation":[],"tag":"ForAll","contents":["d",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"g"}]},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"a"},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"b"},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"c"},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"d"},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"e"},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"g"},{"annotation":[],"tag":"TypeVar","contents":"z"}]}]}]}]}]}]}]}]},null]},null]},null]},null]},null]},null]},null]},null]}},"sourceSpan":{"start":[61,1],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[61,73]}},{"children":[],"comments":null,"title":"in8","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["z",{"annotation":[],"tag":"ForAll","contents":["h",{"annotation":[],"tag":"ForAll","contents":["g",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["e",{"annotation":[],"tag":"ForAll","contents":["d",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"h"}]},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"a"},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"b"},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"c"},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"d"},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"e"},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"g"},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"h"},{"annotation":[],"tag":"TypeVar","contents":"z"}]}]}]}]}]}]}]}]}]},null]},null]},null]},null]},null]},null]},null]},null]},null]}},"sourceSpan":{"start":[64,1],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[64,80]}},{"children":[],"comments":null,"title":"in9","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["z",{"annotation":[],"tag":"ForAll","contents":["i",{"annotation":[],"tag":"ForAll","contents":["h",{"annotation":[],"tag":"ForAll","contents":["g",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["e",{"annotation":[],"tag":"ForAll","contents":["d",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"i"}]},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"a"},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"b"},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"c"},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"d"},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"e"},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"g"},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"h"},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"i"},{"annotation":[],"tag":"TypeVar","contents":"z"}]}]}]}]}]}]}]}]}]}]},null]},null]},null]},null]},null]},null]},null]},null]},null]},null]}},"sourceSpan":{"start":[67,1],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[67,87]}},{"children":[],"comments":null,"title":"in10","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["z",{"annotation":[],"tag":"ForAll","contents":["j",{"annotation":[],"tag":"ForAll","contents":["i",{"annotation":[],"tag":"ForAll","contents":["h",{"annotation":[],"tag":"ForAll","contents":["g",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["e",{"annotation":[],"tag":"ForAll","contents":["d",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"j"}]},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"a"},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"b"},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"c"},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"d"},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"e"},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"g"},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"h"},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"i"},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"j"},{"annotation":[],"tag":"TypeVar","contents":"z"}]}]}]}]}]}]}]}]}]}]}]},null]},null]},null]},null]},null]},null]},null]},null]},null]},null]},null]}},"sourceSpan":{"start":[70,1],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[70,95]}},{"children":[],"comments":null,"title":"at1","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["z",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["r",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"r"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"a"},{"annotation":[],"tag":"TypeVar","contents":"z"}]}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}]}]},null]},null]},null]}},"sourceSpan":{"start":[73,1],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[73,50]}},{"children":[],"comments":null,"title":"at2","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["z",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["r",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"r"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"a"},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"b"},{"annotation":[],"tag":"TypeVar","contents":"z"}]}]}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}]}]},null]},null]},null]},null]}},"sourceSpan":{"start":[78,1],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[78,57]}},{"children":[],"comments":null,"title":"at3","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["z",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["r",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"r"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"a"},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"b"},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"c"},{"annotation":[],"tag":"TypeVar","contents":"z"}]}]}]}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}]}]},null]},null]},null]},null]},null]}},"sourceSpan":{"start":[83,1],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[83,64]}},{"children":[],"comments":null,"title":"at4","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["z",{"annotation":[],"tag":"ForAll","contents":["d",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["r",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"r"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"a"},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"b"},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"c"},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"d"},{"annotation":[],"tag":"TypeVar","contents":"z"}]}]}]}]}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}]}]},null]},null]},null]},null]},null]},null]}},"sourceSpan":{"start":[88,1],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[88,71]}},{"children":[],"comments":null,"title":"at5","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["z",{"annotation":[],"tag":"ForAll","contents":["e",{"annotation":[],"tag":"ForAll","contents":["d",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["r",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"r"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"e"}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"a"},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"b"},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"c"},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"d"},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"e"},{"annotation":[],"tag":"TypeVar","contents":"z"}]}]}]}]}]}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}]}]},null]},null]},null]},null]},null]},null]},null]}},"sourceSpan":{"start":[93,1],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[93,78]}},{"children":[],"comments":null,"title":"at6","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["z",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["e",{"annotation":[],"tag":"ForAll","contents":["d",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["r",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"r"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"f"}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"a"},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"b"},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"c"},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"d"},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"e"},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"z"}]}]}]}]}]}]}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}]}]},null]},null]},null]},null]},null]},null]},null]},null]}},"sourceSpan":{"start":[98,1],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[98,85]}},{"children":[],"comments":null,"title":"at7","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["z",{"annotation":[],"tag":"ForAll","contents":["g",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["e",{"annotation":[],"tag":"ForAll","contents":["d",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["r",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"r"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"g"}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"a"},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"b"},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"c"},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"d"},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"e"},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"g"},{"annotation":[],"tag":"TypeVar","contents":"z"}]}]}]}]}]}]}]}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}]}]},null]},null]},null]},null]},null]},null]},null]},null]},null]}},"sourceSpan":{"start":[103,1],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[103,92]}},{"children":[],"comments":null,"title":"at8","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["z",{"annotation":[],"tag":"ForAll","contents":["h",{"annotation":[],"tag":"ForAll","contents":["g",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["e",{"annotation":[],"tag":"ForAll","contents":["d",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["r",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"r"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"h"}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"a"},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"b"},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"c"},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"d"},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"e"},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"g"},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"h"},{"annotation":[],"tag":"TypeVar","contents":"z"}]}]}]}]}]}]}]}]}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}]}]},null]},null]},null]},null]},null]},null]},null]},null]},null]},null]}},"sourceSpan":{"start":[108,1],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[108,99]}},{"children":[],"comments":null,"title":"at9","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["z",{"annotation":[],"tag":"ForAll","contents":["i",{"annotation":[],"tag":"ForAll","contents":["h",{"annotation":[],"tag":"ForAll","contents":["g",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["e",{"annotation":[],"tag":"ForAll","contents":["d",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["r",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"r"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"i"}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"a"},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"b"},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"c"},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"d"},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"e"},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"g"},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"h"},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"i"},{"annotation":[],"tag":"TypeVar","contents":"z"}]}]}]}]}]}]}]}]}]}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}]}]},null]},null]},null]},null]},null]},null]},null]},null]},null]},null]},null]}},"sourceSpan":{"start":[113,1],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[113,106]}},{"children":[],"comments":null,"title":"at10","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["z",{"annotation":[],"tag":"ForAll","contents":["j",{"annotation":[],"tag":"ForAll","contents":["i",{"annotation":[],"tag":"ForAll","contents":["h",{"annotation":[],"tag":"ForAll","contents":["g",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["e",{"annotation":[],"tag":"ForAll","contents":["d",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["r",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"r"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"j"}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"a"},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"b"},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"c"},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"d"},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"e"},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"g"},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"h"},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"i"},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"j"},{"annotation":[],"tag":"TypeVar","contents":"z"}]}]}]}]}]}]}]}]}]}]}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}]}]},null]},null]},null]},null]},null]},null]},null]},null]},null]},null]},null]},null]}},"sourceSpan":{"start":[118,1],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[118,114]}},{"children":[],"comments":null,"title":"Either1","info":{"arguments":[["a",null]],"declType":"typeSynonym","type":{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"a"},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Void"],"Void"]}]}},"sourceSpan":{"start":[32,1],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[32,27]}},{"children":[],"comments":null,"title":"Either2","info":{"arguments":[["a",null],["b",null]],"declType":"typeSynonym","type":{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"a"},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"b"},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Void"],"Void"]}]}]}},"sourceSpan":{"start":[33,1],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[33,34]}},{"children":[],"comments":null,"title":"Either3","info":{"arguments":[["a",null],["b",null],["c",null]],"declType":"typeSynonym","type":{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"a"},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"b"},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"c"},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Void"],"Void"]}]}]}]}},"sourceSpan":{"start":[34,1],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[34,41]}},{"children":[],"comments":null,"title":"Either4","info":{"arguments":[["a",null],["b",null],["c",null],["d",null]],"declType":"typeSynonym","type":{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"a"},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"b"},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"c"},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"d"},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Void"],"Void"]}]}]}]}]}},"sourceSpan":{"start":[35,1],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[35,48]}},{"children":[],"comments":null,"title":"Either5","info":{"arguments":[["a",null],["b",null],["c",null],["d",null],["e",null]],"declType":"typeSynonym","type":{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"a"},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"b"},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"c"},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"d"},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"e"},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Void"],"Void"]}]}]}]}]}]}},"sourceSpan":{"start":[36,1],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[36,55]}},{"children":[],"comments":null,"title":"Either6","info":{"arguments":[["a",null],["b",null],["c",null],["d",null],["e",null],["f",null]],"declType":"typeSynonym","type":{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"a"},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"b"},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"c"},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"d"},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"e"},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Void"],"Void"]}]}]}]}]}]}]}},"sourceSpan":{"start":[37,1],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[37,62]}},{"children":[],"comments":null,"title":"Either7","info":{"arguments":[["a",null],["b",null],["c",null],["d",null],["e",null],["f",null],["g",null]],"declType":"typeSynonym","type":{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"a"},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"b"},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"c"},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"d"},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"e"},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"g"},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Void"],"Void"]}]}]}]}]}]}]}]}},"sourceSpan":{"start":[38,1],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[38,69]}},{"children":[],"comments":null,"title":"Either8","info":{"arguments":[["a",null],["b",null],["c",null],["d",null],["e",null],["f",null],["g",null],["h",null]],"declType":"typeSynonym","type":{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"a"},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"b"},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"c"},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"d"},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"e"},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"g"},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"h"},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Void"],"Void"]}]}]}]}]}]}]}]}]}},"sourceSpan":{"start":[39,1],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[39,76]}},{"children":[],"comments":null,"title":"Either9","info":{"arguments":[["a",null],["b",null],["c",null],["d",null],["e",null],["f",null],["g",null],["h",null],["i",null]],"declType":"typeSynonym","type":{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"a"},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"b"},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"c"},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"d"},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"e"},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"g"},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"h"},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"i"},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Void"],"Void"]}]}]}]}]}]}]}]}]}]}},"sourceSpan":{"start":[40,1],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[40,83]}},{"children":[],"comments":null,"title":"Either10","info":{"arguments":[["a",null],["b",null],["c",null],["d",null],["e",null],["f",null],["g",null],["h",null],["i",null],["j",null]],"declType":"typeSynonym","type":{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"a"},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"b"},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"c"},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"d"},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"e"},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"g"},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"h"},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"i"},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","Either","Nested"],"\\/"]},{"annotation":[],"tag":"TypeVar","contents":"j"},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Void"],"Void"]}]}]}]}]}]}]}]}]}]}]}},"sourceSpan":{"start":[41,1],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[41,91]}},{"children":[],"comments":null,"title":"either1","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Either","Nested"],"Either1"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},null]}},"sourceSpan":{"start":[123,1],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[123,36]}},{"children":[],"comments":null,"title":"either2","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["r",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Either","Nested"],"Either2"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}]}]},null]},null]},null]}},"sourceSpan":{"start":[128,1],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[128,66]}},{"children":[],"comments":null,"title":"either3","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["r",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Either","Nested"],"Either3"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}]}]}]},null]},null]},null]},null]}},"sourceSpan":{"start":[135,1],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[135,82]}},{"children":[],"comments":null,"title":"either4","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["d",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["r",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Either","Nested"],"Either4"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"d"}]}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}]}]}]}]},null]},null]},null]},null]},null]}},"sourceSpan":{"start":[144,1],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[144,98]}},{"children":[],"comments":null,"title":"either5","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["e",{"annotation":[],"tag":"ForAll","contents":["d",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["r",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"e"}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Either","Nested"],"Either5"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeVar","contents":"e"}]}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}]}]}]}]}]},null]},null]},null]},null]},null]},null]}},"sourceSpan":{"start":[155,1],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[155,114]}},{"children":[],"comments":null,"title":"either6","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["e",{"annotation":[],"tag":"ForAll","contents":["d",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["r",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"e"}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"f"}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Either","Nested"],"Either6"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeVar","contents":"e"}]},{"annotation":[],"tag":"TypeVar","contents":"f"}]}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}]}]}]}]}]}]},null]},null]},null]},null]},null]},null]},null]}},"sourceSpan":{"start":[168,1],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[168,130]}},{"children":[],"comments":null,"title":"either7","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["g",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["e",{"annotation":[],"tag":"ForAll","contents":["d",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["r",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"e"}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"f"}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"g"}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Either","Nested"],"Either7"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeVar","contents":"e"}]},{"annotation":[],"tag":"TypeVar","contents":"f"}]},{"annotation":[],"tag":"TypeVar","contents":"g"}]}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}]}]}]}]}]}]}]},null]},null]},null]},null]},null]},null]},null]},null]}},"sourceSpan":{"start":[183,1],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[183,146]}},{"children":[],"comments":null,"title":"either8","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["h",{"annotation":[],"tag":"ForAll","contents":["g",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["e",{"annotation":[],"tag":"ForAll","contents":["d",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["r",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"e"}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"f"}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"g"}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"h"}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Either","Nested"],"Either8"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeVar","contents":"e"}]},{"annotation":[],"tag":"TypeVar","contents":"f"}]},{"annotation":[],"tag":"TypeVar","contents":"g"}]},{"annotation":[],"tag":"TypeVar","contents":"h"}]}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}]}]}]}]}]}]}]}]},null]},null]},null]},null]},null]},null]},null]},null]},null]}},"sourceSpan":{"start":[200,1],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[200,162]}},{"children":[],"comments":null,"title":"either9","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["i",{"annotation":[],"tag":"ForAll","contents":["h",{"annotation":[],"tag":"ForAll","contents":["g",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["e",{"annotation":[],"tag":"ForAll","contents":["d",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["r",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"e"}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"f"}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"g"}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"h"}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"i"}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Either","Nested"],"Either9"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeVar","contents":"e"}]},{"annotation":[],"tag":"TypeVar","contents":"f"}]},{"annotation":[],"tag":"TypeVar","contents":"g"}]},{"annotation":[],"tag":"TypeVar","contents":"h"}]},{"annotation":[],"tag":"TypeVar","contents":"i"}]}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}]}]}]}]}]}]}]}]}]},null]},null]},null]},null]},null]},null]},null]},null]},null]},null]}},"sourceSpan":{"start":[219,1],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[219,178]}},{"children":[],"comments":null,"title":"either10","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["j",{"annotation":[],"tag":"ForAll","contents":["i",{"annotation":[],"tag":"ForAll","contents":["h",{"annotation":[],"tag":"ForAll","contents":["g",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["e",{"annotation":[],"tag":"ForAll","contents":["d",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["r",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"e"}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"f"}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"g"}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"h"}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"i"}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"j"}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Either","Nested"],"Either10"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeVar","contents":"e"}]},{"annotation":[],"tag":"TypeVar","contents":"f"}]},{"annotation":[],"tag":"TypeVar","contents":"g"}]},{"annotation":[],"tag":"TypeVar","contents":"h"}]},{"annotation":[],"tag":"TypeVar","contents":"i"}]},{"annotation":[],"tag":"TypeVar","contents":"j"}]}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}]}]}]}]}]}]}]}]}]}]},null]},null]},null]},null]},null]},null]},null]},null]},null]},null]},null]}},"sourceSpan":{"start":[240,1],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[240,196]}}]}
diff --git a/tests/purs/publish/basic-example/output/Data.Either.Nested/externs.json b/tests/purs/publish/basic-example/output/Data.Either.Nested/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.Either.Nested/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Data","Either","Nested"],"efExports":[{"TypeOpRef":[{"start":[19,1],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[261,44]},"\\/"]},{"ValueRef":[{"start":[19,1],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[261,44]},{"Ident":"in1"}]},{"ValueRef":[{"start":[19,1],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[261,44]},{"Ident":"in2"}]},{"ValueRef":[{"start":[19,1],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[261,44]},{"Ident":"in3"}]},{"ValueRef":[{"start":[19,1],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[261,44]},{"Ident":"in4"}]},{"ValueRef":[{"start":[19,1],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[261,44]},{"Ident":"in5"}]},{"ValueRef":[{"start":[19,1],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[261,44]},{"Ident":"in6"}]},{"ValueRef":[{"start":[19,1],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[261,44]},{"Ident":"in7"}]},{"ValueRef":[{"start":[19,1],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[261,44]},{"Ident":"in8"}]},{"ValueRef":[{"start":[19,1],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[261,44]},{"Ident":"in9"}]},{"ValueRef":[{"start":[19,1],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[261,44]},{"Ident":"in10"}]},{"ValueRef":[{"start":[19,1],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[261,44]},{"Ident":"at1"}]},{"ValueRef":[{"start":[19,1],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[261,44]},{"Ident":"at2"}]},{"ValueRef":[{"start":[19,1],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[261,44]},{"Ident":"at3"}]},{"ValueRef":[{"start":[19,1],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[261,44]},{"Ident":"at4"}]},{"ValueRef":[{"start":[19,1],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[261,44]},{"Ident":"at5"}]},{"ValueRef":[{"start":[19,1],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[261,44]},{"Ident":"at6"}]},{"ValueRef":[{"start":[19,1],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[261,44]},{"Ident":"at7"}]},{"ValueRef":[{"start":[19,1],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[261,44]},{"Ident":"at8"}]},{"ValueRef":[{"start":[19,1],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[261,44]},{"Ident":"at9"}]},{"ValueRef":[{"start":[19,1],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[261,44]},{"Ident":"at10"}]},{"TypeRef":[{"start":[19,1],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[261,44]},"Either1",[]]},{"TypeRef":[{"start":[19,1],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[261,44]},"Either2",[]]},{"TypeRef":[{"start":[19,1],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[261,44]},"Either3",[]]},{"TypeRef":[{"start":[19,1],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[261,44]},"Either4",[]]},{"TypeRef":[{"start":[19,1],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[261,44]},"Either5",[]]},{"TypeRef":[{"start":[19,1],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[261,44]},"Either6",[]]},{"TypeRef":[{"start":[19,1],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[261,44]},"Either7",[]]},{"TypeRef":[{"start":[19,1],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[261,44]},"Either8",[]]},{"TypeRef":[{"start":[19,1],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[261,44]},"Either9",[]]},{"TypeRef":[{"start":[19,1],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[261,44]},"Either10",[]]},{"ValueRef":[{"start":[19,1],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[261,44]},{"Ident":"either1"}]},{"ValueRef":[{"start":[19,1],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[261,44]},{"Ident":"either2"}]},{"ValueRef":[{"start":[19,1],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[261,44]},{"Ident":"either3"}]},{"ValueRef":[{"start":[19,1],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[261,44]},{"Ident":"either4"}]},{"ValueRef":[{"start":[19,1],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[261,44]},{"Ident":"either5"}]},{"ValueRef":[{"start":[19,1],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[261,44]},{"Ident":"either6"}]},{"ValueRef":[{"start":[19,1],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[261,44]},{"Ident":"either7"}]},{"ValueRef":[{"start":[19,1],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[261,44]},{"Ident":"either8"}]},{"ValueRef":[{"start":[19,1],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[261,44]},{"Ident":"either9"}]},{"ValueRef":[{"start":[19,1],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[261,44]},{"Ident":"either10"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Data","Either"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[27,21],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[27,31]},"Either",null]}]},"eiImportedAs":null},{"eiModule":["Data","Void"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[28,19],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[28,23]},"Void",[]]},{"ValueRef":[{"start":[28,25],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[28,31]},{"Ident":"absurd"}]}]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[{"efTypeAssociativity":"infixr","efTypePrecedence":6,"efTypeOperator":"\\/","efTypeAlias":[["Data","Either"],"Either"]}],"efDeclarations":[{"EDValue":{"edValueName":{"Ident":"in1"},"edValueType":{"annotation":[{"start":[43,8],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[43,31]},[]],"tag":"ForAll","contents":["z",{"annotation":[{"start":[43,15],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[43,31]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[43,20],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[43,31]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[43,20],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[43,31]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[43,22],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[43,24]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[43,20],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[43,21]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[43,25],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[43,26]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[43,30],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[43,31]},[]],"tag":"TypeVar","contents":"z"}]}]},126]},127]}}},{"EDValue":{"edValueName":{"Ident":"in2"},"edValueType":{"annotation":[{"start":[46,8],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[46,38]},[]],"tag":"ForAll","contents":["z",{"annotation":[{"start":[46,15],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[46,38]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[46,15],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[46,38]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[46,22],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[46,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[46,22],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[46,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[46,24],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[46,26]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[46,22],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[46,23]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[46,27],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[46,28]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[46,32],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[46,33]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[46,37],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[46,38]},[]],"tag":"TypeVar","contents":"z"}]}]}]},98]},99]},100]}}},{"EDValue":{"edValueName":{"Ident":"in3"},"edValueType":{"annotation":[{"start":[49,8],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[49,45]},[]],"tag":"ForAll","contents":["z",{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[49,45]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[49,45]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[49,45]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[49,24],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[49,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,24],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[49,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,26],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[49,28]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[49,24],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[49,25]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[49,29],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[49,30]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[49,34],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[49,35]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[49,39],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[49,40]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[49,44],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[49,45]},[]],"tag":"TypeVar","contents":"z"}]}]}]}]},90]},91]},92]},93]}}},{"EDValue":{"edValueName":{"Ident":"in4"},"edValueType":{"annotation":[{"start":[52,8],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[52,52]},[]],"tag":"ForAll","contents":["z",{"annotation":[{"start":[52,15],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[52,52]},[]],"tag":"ForAll","contents":["d",{"annotation":[{"start":[52,15],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[52,52]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[52,15],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[52,52]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[52,15],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[52,52]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[52,26],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[52,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,26],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[52,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,28],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[52,30]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[52,26],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[52,27]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[52,31],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[52,32]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[52,36],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[52,37]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[52,41],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[52,42]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[52,46],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[52,47]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[52,51],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[52,52]},[]],"tag":"TypeVar","contents":"z"}]}]}]}]}]},80]},81]},82]},83]},84]}}},{"EDValue":{"edValueName":{"Ident":"in5"},"edValueType":{"annotation":[{"start":[55,8],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[55,59]},[]],"tag":"ForAll","contents":["z",{"annotation":[{"start":[55,15],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[55,59]},[]],"tag":"ForAll","contents":["e",{"annotation":[{"start":[55,15],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[55,59]},[]],"tag":"ForAll","contents":["d",{"annotation":[{"start":[55,15],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[55,59]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[55,15],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[55,59]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[55,15],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[55,59]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[55,28],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[55,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,28],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[55,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,30],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[55,32]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[55,28],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[55,29]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[55,33],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[55,34]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[55,38],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[55,39]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[55,43],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[55,44]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[55,48],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[55,49]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[55,53],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[55,54]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[55,58],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[55,59]},[]],"tag":"TypeVar","contents":"z"}]}]}]}]}]}]},68]},69]},70]},71]},72]},73]}}},{"EDValue":{"edValueName":{"Ident":"in6"},"edValueType":{"annotation":[{"start":[58,8],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[58,66]},[]],"tag":"ForAll","contents":["z",{"annotation":[{"start":[58,15],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[58,66]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[58,15],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[58,66]},[]],"tag":"ForAll","contents":["e",{"annotation":[{"start":[58,15],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[58,66]},[]],"tag":"ForAll","contents":["d",{"annotation":[{"start":[58,15],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[58,66]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[58,15],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[58,66]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[58,15],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[58,66]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[58,30],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[58,66]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[58,30],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[58,66]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[58,32],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[58,34]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[58,30],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[58,31]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[58,35],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[58,36]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[58,40],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[58,41]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[58,45],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[58,46]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[58,50],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[58,51]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[58,55],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[58,56]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[58,60],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[58,61]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[58,65],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[58,66]},[]],"tag":"TypeVar","contents":"z"}]}]}]}]}]}]}]},54]},55]},56]},57]},58]},59]},60]}}},{"EDValue":{"edValueName":{"Ident":"in7"},"edValueType":{"annotation":[{"start":[61,8],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[61,73]},[]],"tag":"ForAll","contents":["z",{"annotation":[{"start":[61,15],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[61,73]},[]],"tag":"ForAll","contents":["g",{"annotation":[{"start":[61,15],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[61,73]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[61,15],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[61,73]},[]],"tag":"ForAll","contents":["e",{"annotation":[{"start":[61,15],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[61,73]},[]],"tag":"ForAll","contents":["d",{"annotation":[{"start":[61,15],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[61,73]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[61,15],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[61,73]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[61,15],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[61,73]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[61,32],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[61,73]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[61,32],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[61,73]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[61,34],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[61,36]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[61,32],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[61,33]},[]],"tag":"TypeVar","contents":"g"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[61,37],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[61,38]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[61,42],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[61,43]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[61,47],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[61,48]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[61,52],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[61,53]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[61,57],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[61,58]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[61,62],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[61,63]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[61,67],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[61,68]},[]],"tag":"TypeVar","contents":"g"}]},{"annotation":[{"start":[61,72],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[61,73]},[]],"tag":"TypeVar","contents":"z"}]}]}]}]}]}]}]}]},38]},39]},40]},41]},42]},43]},44]},45]}}},{"EDValue":{"edValueName":{"Ident":"in8"},"edValueType":{"annotation":[{"start":[64,8],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[64,80]},[]],"tag":"ForAll","contents":["z",{"annotation":[{"start":[64,15],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[64,80]},[]],"tag":"ForAll","contents":["h",{"annotation":[{"start":[64,15],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[64,80]},[]],"tag":"ForAll","contents":["g",{"annotation":[{"start":[64,15],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[64,80]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[64,15],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[64,80]},[]],"tag":"ForAll","contents":["e",{"annotation":[{"start":[64,15],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[64,80]},[]],"tag":"ForAll","contents":["d",{"annotation":[{"start":[64,15],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[64,80]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[64,15],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[64,80]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[64,15],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[64,80]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[64,34],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[64,80]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[64,34],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[64,80]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[64,36],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[64,38]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[64,34],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[64,35]},[]],"tag":"TypeVar","contents":"h"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[64,39],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[64,40]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[64,44],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[64,45]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[64,49],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[64,50]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[64,54],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[64,55]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[64,59],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[64,60]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[64,64],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[64,65]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[64,69],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[64,70]},[]],"tag":"TypeVar","contents":"g"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[64,74],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[64,75]},[]],"tag":"TypeVar","contents":"h"}]},{"annotation":[{"start":[64,79],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[64,80]},[]],"tag":"TypeVar","contents":"z"}]}]}]}]}]}]}]}]}]},20]},21]},22]},23]},24]},25]},26]},27]},28]}}},{"EDValue":{"edValueName":{"Ident":"in9"},"edValueType":{"annotation":[{"start":[67,8],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[67,87]},[]],"tag":"ForAll","contents":["z",{"annotation":[{"start":[67,15],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[67,87]},[]],"tag":"ForAll","contents":["i",{"annotation":[{"start":[67,15],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[67,87]},[]],"tag":"ForAll","contents":["h",{"annotation":[{"start":[67,15],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[67,87]},[]],"tag":"ForAll","contents":["g",{"annotation":[{"start":[67,15],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[67,87]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[67,15],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[67,87]},[]],"tag":"ForAll","contents":["e",{"annotation":[{"start":[67,15],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[67,87]},[]],"tag":"ForAll","contents":["d",{"annotation":[{"start":[67,15],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[67,87]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[67,15],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[67,87]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[67,15],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[67,87]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[67,36],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[67,87]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[67,36],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[67,87]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[67,38],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[67,40]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[67,36],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[67,37]},[]],"tag":"TypeVar","contents":"i"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[67,41],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[67,42]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[67,46],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[67,47]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[67,51],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[67,52]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[67,56],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[67,57]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[67,61],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[67,62]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[67,66],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[67,67]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[67,71],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[67,72]},[]],"tag":"TypeVar","contents":"g"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[67,76],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[67,77]},[]],"tag":"TypeVar","contents":"h"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[67,81],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[67,82]},[]],"tag":"TypeVar","contents":"i"}]},{"annotation":[{"start":[67,86],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[67,87]},[]],"tag":"TypeVar","contents":"z"}]}]}]}]}]}]}]}]}]}]},0]},1]},2]},3]},4]},5]},6]},7]},8]},9]}}},{"EDValue":{"edValueName":{"Ident":"in10"},"edValueType":{"annotation":[{"start":[70,9],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[70,95]},[]],"tag":"ForAll","contents":["z",{"annotation":[{"start":[70,16],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[70,95]},[]],"tag":"ForAll","contents":["j",{"annotation":[{"start":[70,16],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[70,95]},[]],"tag":"ForAll","contents":["i",{"annotation":[{"start":[70,16],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[70,95]},[]],"tag":"ForAll","contents":["h",{"annotation":[{"start":[70,16],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[70,95]},[]],"tag":"ForAll","contents":["g",{"annotation":[{"start":[70,16],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[70,95]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[70,16],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[70,95]},[]],"tag":"ForAll","contents":["e",{"annotation":[{"start":[70,16],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[70,95]},[]],"tag":"ForAll","contents":["d",{"annotation":[{"start":[70,16],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[70,95]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[70,16],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[70,95]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[70,16],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[70,95]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[70,39],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[70,95]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[70,39],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[70,95]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[70,41],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[70,43]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[70,39],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[70,40]},[]],"tag":"TypeVar","contents":"j"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[70,44],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[70,45]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[70,49],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[70,50]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[70,54],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[70,55]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[70,59],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[70,60]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[70,64],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[70,65]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[70,69],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[70,70]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[70,74],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[70,75]},[]],"tag":"TypeVar","contents":"g"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[70,79],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[70,80]},[]],"tag":"TypeVar","contents":"h"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[70,84],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[70,85]},[]],"tag":"TypeVar","contents":"i"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[70,89],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[70,90]},[]],"tag":"TypeVar","contents":"j"}]},{"annotation":[{"start":[70,94],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[70,95]},[]],"tag":"TypeVar","contents":"z"}]}]}]}]}]}]}]}]}]}]}]},104]},105]},106]},107]},108]},109]},110]},111]},112]},113]},114]}}},{"EDValue":{"edValueName":{"Ident":"at1"},"edValueType":{"annotation":[{"start":[73,8],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[73,50]},[]],"tag":"ForAll","contents":["z",{"annotation":[{"start":[73,15],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[73,50]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[73,15],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[73,50]},[]],"tag":"ForAll","contents":["r",{"annotation":[{"start":[73,22],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[73,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[73,22],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[73,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[73,24],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[73,26]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[73,22],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[73,23]},[]],"tag":"TypeVar","contents":"r"}]},{"annotation":[{"start":[73,27],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[73,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[73,27],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[73,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[73,36],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[73,38]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[73,28],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[73,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[73,28],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[73,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[73,30],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[73,32]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[73,28],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[73,29]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[73,33],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[73,34]},[]],"tag":"TypeVar","contents":"r"}]}]},{"annotation":[{"start":[73,39],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[73,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[73,39],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[73,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[73,46],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[73,48]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[73,39],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[73,40]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[73,44],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[73,45]},[]],"tag":"TypeVar","contents":"z"}]}]},{"annotation":[{"start":[73,49],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[73,50]},[]],"tag":"TypeVar","contents":"r"}]}]}]},404]},405]},406]}}},{"EDValue":{"edValueName":{"Ident":"at2"},"edValueType":{"annotation":[{"start":[78,8],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[78,57]},[]],"tag":"ForAll","contents":["z",{"annotation":[{"start":[78,15],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[78,57]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[78,15],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[78,57]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[78,15],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[78,57]},[]],"tag":"ForAll","contents":["r",{"annotation":[{"start":[78,24],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[78,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[78,24],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[78,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[78,26],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[78,28]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[78,24],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[78,25]},[]],"tag":"TypeVar","contents":"r"}]},{"annotation":[{"start":[78,29],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[78,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[78,29],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[78,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[78,38],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[78,40]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[78,30],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[78,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[78,30],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[78,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[78,32],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[78,34]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[78,30],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[78,31]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[78,35],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[78,36]},[]],"tag":"TypeVar","contents":"r"}]}]},{"annotation":[{"start":[78,41],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[78,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[78,41],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[78,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[78,53],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[78,55]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[78,41],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[78,42]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[78,46],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[78,47]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[78,51],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[78,52]},[]],"tag":"TypeVar","contents":"z"}]}]}]},{"annotation":[{"start":[78,56],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[78,57]},[]],"tag":"TypeVar","contents":"r"}]}]}]},372]},373]},374]},375]}}},{"EDValue":{"edValueName":{"Ident":"at3"},"edValueType":{"annotation":[{"start":[83,8],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[83,64]},[]],"tag":"ForAll","contents":["z",{"annotation":[{"start":[83,15],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[83,64]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[83,15],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[83,64]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[83,15],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[83,64]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[83,15],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[83,64]},[]],"tag":"ForAll","contents":["r",{"annotation":[{"start":[83,26],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[83,64]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[83,26],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[83,64]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[83,28],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[83,30]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[83,26],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[83,27]},[]],"tag":"TypeVar","contents":"r"}]},{"annotation":[{"start":[83,31],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[83,64]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[83,31],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[83,64]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[83,40],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[83,42]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[83,32],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[83,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[83,32],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[83,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[83,34],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[83,36]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[83,32],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[83,33]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[83,37],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[83,38]},[]],"tag":"TypeVar","contents":"r"}]}]},{"annotation":[{"start":[83,43],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[83,64]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[83,43],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[83,64]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[83,60],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[83,62]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[83,43],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[83,44]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[83,48],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[83,49]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[83,53],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[83,54]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[83,58],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[83,59]},[]],"tag":"TypeVar","contents":"z"}]}]}]}]},{"annotation":[{"start":[83,63],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[83,64]},[]],"tag":"TypeVar","contents":"r"}]}]}]},362]},363]},364]},365]},366]}}},{"EDValue":{"edValueName":{"Ident":"at4"},"edValueType":{"annotation":[{"start":[88,8],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[88,71]},[]],"tag":"ForAll","contents":["z",{"annotation":[{"start":[88,15],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[88,71]},[]],"tag":"ForAll","contents":["d",{"annotation":[{"start":[88,15],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[88,71]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[88,15],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[88,71]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[88,15],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[88,71]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[88,15],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[88,71]},[]],"tag":"ForAll","contents":["r",{"annotation":[{"start":[88,28],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[88,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[88,28],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[88,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[88,30],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[88,32]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[88,28],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[88,29]},[]],"tag":"TypeVar","contents":"r"}]},{"annotation":[{"start":[88,33],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[88,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[88,33],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[88,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[88,42],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[88,44]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[88,34],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[88,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[88,34],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[88,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[88,36],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[88,38]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[88,34],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[88,35]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[88,39],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[88,40]},[]],"tag":"TypeVar","contents":"r"}]}]},{"annotation":[{"start":[88,45],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[88,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[88,45],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[88,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[88,67],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[88,69]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[88,45],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[88,46]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[88,50],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[88,51]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[88,55],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[88,56]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[88,60],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[88,61]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[88,65],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[88,66]},[]],"tag":"TypeVar","contents":"z"}]}]}]}]}]},{"annotation":[{"start":[88,70],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[88,71]},[]],"tag":"TypeVar","contents":"r"}]}]}]},350]},351]},352]},353]},354]},355]}}},{"EDValue":{"edValueName":{"Ident":"at5"},"edValueType":{"annotation":[{"start":[93,8],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[93,78]},[]],"tag":"ForAll","contents":["z",{"annotation":[{"start":[93,15],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[93,78]},[]],"tag":"ForAll","contents":["e",{"annotation":[{"start":[93,15],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[93,78]},[]],"tag":"ForAll","contents":["d",{"annotation":[{"start":[93,15],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[93,78]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[93,15],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[93,78]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[93,15],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[93,78]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[93,15],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[93,78]},[]],"tag":"ForAll","contents":["r",{"annotation":[{"start":[93,30],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[93,78]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[93,30],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[93,78]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[93,32],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[93,34]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[93,30],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[93,31]},[]],"tag":"TypeVar","contents":"r"}]},{"annotation":[{"start":[93,35],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[93,78]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[93,35],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[93,78]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[93,44],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[93,46]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[93,36],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[93,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[93,36],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[93,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[93,38],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[93,40]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[93,36],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[93,37]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[93,41],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[93,42]},[]],"tag":"TypeVar","contents":"r"}]}]},{"annotation":[{"start":[93,47],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[93,78]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[93,47],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[93,78]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[93,74],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[93,76]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[93,47],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[93,48]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[93,52],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[93,53]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[93,57],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[93,58]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[93,62],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[93,63]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[93,67],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[93,68]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[93,72],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[93,73]},[]],"tag":"TypeVar","contents":"z"}]}]}]}]}]}]},{"annotation":[{"start":[93,77],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[93,78]},[]],"tag":"TypeVar","contents":"r"}]}]}]},336]},337]},338]},339]},340]},341]},342]}}},{"EDValue":{"edValueName":{"Ident":"at6"},"edValueType":{"annotation":[{"start":[98,8],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[98,85]},[]],"tag":"ForAll","contents":["z",{"annotation":[{"start":[98,15],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[98,85]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[98,15],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[98,85]},[]],"tag":"ForAll","contents":["e",{"annotation":[{"start":[98,15],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[98,85]},[]],"tag":"ForAll","contents":["d",{"annotation":[{"start":[98,15],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[98,85]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[98,15],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[98,85]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[98,15],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[98,85]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[98,15],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[98,85]},[]],"tag":"ForAll","contents":["r",{"annotation":[{"start":[98,32],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[98,85]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[98,32],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[98,85]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[98,34],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[98,36]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[98,32],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[98,33]},[]],"tag":"TypeVar","contents":"r"}]},{"annotation":[{"start":[98,37],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[98,85]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[98,37],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[98,85]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[98,46],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[98,48]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[98,38],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[98,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[98,38],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[98,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[98,40],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[98,42]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[98,38],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[98,39]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[98,43],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[98,44]},[]],"tag":"TypeVar","contents":"r"}]}]},{"annotation":[{"start":[98,49],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[98,85]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[98,49],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[98,85]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[98,81],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[98,83]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[98,49],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[98,50]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[98,54],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[98,55]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[98,59],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[98,60]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[98,64],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[98,65]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[98,69],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[98,70]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[98,74],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[98,75]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[98,79],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[98,80]},[]],"tag":"TypeVar","contents":"z"}]}]}]}]}]}]}]},{"annotation":[{"start":[98,84],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[98,85]},[]],"tag":"TypeVar","contents":"r"}]}]}]},320]},321]},322]},323]},324]},325]},326]},327]}}},{"EDValue":{"edValueName":{"Ident":"at7"},"edValueType":{"annotation":[{"start":[103,8],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[103,92]},[]],"tag":"ForAll","contents":["z",{"annotation":[{"start":[103,15],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[103,92]},[]],"tag":"ForAll","contents":["g",{"annotation":[{"start":[103,15],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[103,92]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[103,15],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[103,92]},[]],"tag":"ForAll","contents":["e",{"annotation":[{"start":[103,15],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[103,92]},[]],"tag":"ForAll","contents":["d",{"annotation":[{"start":[103,15],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[103,92]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[103,15],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[103,92]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[103,15],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[103,92]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[103,15],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[103,92]},[]],"tag":"ForAll","contents":["r",{"annotation":[{"start":[103,34],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[103,92]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[103,34],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[103,92]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[103,36],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[103,38]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[103,34],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[103,35]},[]],"tag":"TypeVar","contents":"r"}]},{"annotation":[{"start":[103,39],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[103,92]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[103,39],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[103,92]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[103,48],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[103,50]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[103,40],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[103,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[103,40],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[103,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[103,42],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[103,44]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[103,40],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[103,41]},[]],"tag":"TypeVar","contents":"g"}]},{"annotation":[{"start":[103,45],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[103,46]},[]],"tag":"TypeVar","contents":"r"}]}]},{"annotation":[{"start":[103,51],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[103,92]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[103,51],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[103,92]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[103,88],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[103,90]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[103,51],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[103,52]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[103,56],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[103,57]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[103,61],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[103,62]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[103,66],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[103,67]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[103,71],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[103,72]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[103,76],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[103,77]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[103,81],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[103,82]},[]],"tag":"TypeVar","contents":"g"}]},{"annotation":[{"start":[103,86],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[103,87]},[]],"tag":"TypeVar","contents":"z"}]}]}]}]}]}]}]}]},{"annotation":[{"start":[103,91],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[103,92]},[]],"tag":"TypeVar","contents":"r"}]}]}]},302]},303]},304]},305]},306]},307]},308]},309]},310]}}},{"EDValue":{"edValueName":{"Ident":"at8"},"edValueType":{"annotation":[{"start":[108,8],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[108,99]},[]],"tag":"ForAll","contents":["z",{"annotation":[{"start":[108,15],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[108,99]},[]],"tag":"ForAll","contents":["h",{"annotation":[{"start":[108,15],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[108,99]},[]],"tag":"ForAll","contents":["g",{"annotation":[{"start":[108,15],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[108,99]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[108,15],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[108,99]},[]],"tag":"ForAll","contents":["e",{"annotation":[{"start":[108,15],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[108,99]},[]],"tag":"ForAll","contents":["d",{"annotation":[{"start":[108,15],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[108,99]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[108,15],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[108,99]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[108,15],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[108,99]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[108,15],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[108,99]},[]],"tag":"ForAll","contents":["r",{"annotation":[{"start":[108,36],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[108,99]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[108,36],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[108,99]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[108,38],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[108,40]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[108,36],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[108,37]},[]],"tag":"TypeVar","contents":"r"}]},{"annotation":[{"start":[108,41],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[108,99]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[108,41],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[108,99]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[108,50],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[108,52]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[108,42],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[108,48]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[108,42],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[108,48]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[108,44],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[108,46]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[108,42],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[108,43]},[]],"tag":"TypeVar","contents":"h"}]},{"annotation":[{"start":[108,47],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[108,48]},[]],"tag":"TypeVar","contents":"r"}]}]},{"annotation":[{"start":[108,53],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[108,99]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[108,53],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[108,99]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[108,95],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[108,97]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[108,53],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[108,54]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[108,58],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[108,59]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[108,63],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[108,64]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[108,68],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[108,69]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[108,73],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[108,74]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[108,78],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[108,79]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[108,83],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[108,84]},[]],"tag":"TypeVar","contents":"g"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[108,88],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[108,89]},[]],"tag":"TypeVar","contents":"h"}]},{"annotation":[{"start":[108,93],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[108,94]},[]],"tag":"TypeVar","contents":"z"}]}]}]}]}]}]}]}]}]},{"annotation":[{"start":[108,98],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[108,99]},[]],"tag":"TypeVar","contents":"r"}]}]}]},282]},283]},284]},285]},286]},287]},288]},289]},290]},291]}}},{"EDValue":{"edValueName":{"Ident":"at9"},"edValueType":{"annotation":[{"start":[113,8],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[113,106]},[]],"tag":"ForAll","contents":["z",{"annotation":[{"start":[113,15],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[113,106]},[]],"tag":"ForAll","contents":["i",{"annotation":[{"start":[113,15],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[113,106]},[]],"tag":"ForAll","contents":["h",{"annotation":[{"start":[113,15],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[113,106]},[]],"tag":"ForAll","contents":["g",{"annotation":[{"start":[113,15],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[113,106]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[113,15],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[113,106]},[]],"tag":"ForAll","contents":["e",{"annotation":[{"start":[113,15],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[113,106]},[]],"tag":"ForAll","contents":["d",{"annotation":[{"start":[113,15],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[113,106]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[113,15],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[113,106]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[113,15],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[113,106]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[113,15],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[113,106]},[]],"tag":"ForAll","contents":["r",{"annotation":[{"start":[113,38],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[113,106]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[113,38],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[113,106]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[113,40],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[113,42]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[113,38],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[113,39]},[]],"tag":"TypeVar","contents":"r"}]},{"annotation":[{"start":[113,43],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[113,106]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[113,43],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[113,106]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[113,52],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[113,54]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[113,44],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[113,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[113,44],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[113,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[113,46],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[113,48]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[113,44],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[113,45]},[]],"tag":"TypeVar","contents":"i"}]},{"annotation":[{"start":[113,49],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[113,50]},[]],"tag":"TypeVar","contents":"r"}]}]},{"annotation":[{"start":[113,55],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[113,106]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[113,55],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[113,106]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[113,102],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[113,104]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[113,55],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[113,56]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[113,60],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[113,61]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[113,65],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[113,66]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[113,70],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[113,71]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[113,75],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[113,76]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[113,80],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[113,81]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[113,85],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[113,86]},[]],"tag":"TypeVar","contents":"g"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[113,90],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[113,91]},[]],"tag":"TypeVar","contents":"h"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[113,95],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[113,96]},[]],"tag":"TypeVar","contents":"i"}]},{"annotation":[{"start":[113,100],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[113,101]},[]],"tag":"TypeVar","contents":"z"}]}]}]}]}]}]}]}]}]}]},{"annotation":[{"start":[113,105],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[113,106]},[]],"tag":"TypeVar","contents":"r"}]}]}]},260]},261]},262]},263]},264]},265]},266]},267]},268]},269]},270]}}},{"EDValue":{"edValueName":{"Ident":"at10"},"edValueType":{"annotation":[{"start":[118,9],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[118,114]},[]],"tag":"ForAll","contents":["z",{"annotation":[{"start":[118,16],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[118,114]},[]],"tag":"ForAll","contents":["j",{"annotation":[{"start":[118,16],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[118,114]},[]],"tag":"ForAll","contents":["i",{"annotation":[{"start":[118,16],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[118,114]},[]],"tag":"ForAll","contents":["h",{"annotation":[{"start":[118,16],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[118,114]},[]],"tag":"ForAll","contents":["g",{"annotation":[{"start":[118,16],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[118,114]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[118,16],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[118,114]},[]],"tag":"ForAll","contents":["e",{"annotation":[{"start":[118,16],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[118,114]},[]],"tag":"ForAll","contents":["d",{"annotation":[{"start":[118,16],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[118,114]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[118,16],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[118,114]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[118,16],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[118,114]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[118,16],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[118,114]},[]],"tag":"ForAll","contents":["r",{"annotation":[{"start":[118,41],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[118,114]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[118,41],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[118,114]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[118,43],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[118,45]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[118,41],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[118,42]},[]],"tag":"TypeVar","contents":"r"}]},{"annotation":[{"start":[118,46],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[118,114]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[118,46],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[118,114]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[118,55],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[118,57]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[118,47],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[118,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[118,47],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[118,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[118,49],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[118,51]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[118,47],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[118,48]},[]],"tag":"TypeVar","contents":"j"}]},{"annotation":[{"start":[118,52],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[118,53]},[]],"tag":"TypeVar","contents":"r"}]}]},{"annotation":[{"start":[118,58],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[118,114]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[118,58],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[118,114]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[118,110],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[118,112]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[118,58],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[118,59]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[118,63],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[118,64]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[118,68],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[118,69]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[118,73],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[118,74]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[118,78],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[118,79]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[118,83],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[118,84]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[118,88],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[118,89]},[]],"tag":"TypeVar","contents":"g"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[118,93],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[118,94]},[]],"tag":"TypeVar","contents":"h"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[118,98],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[118,99]},[]],"tag":"TypeVar","contents":"i"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[118,103],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[118,104]},[]],"tag":"TypeVar","contents":"j"}]},{"annotation":[{"start":[118,108],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[118,109]},[]],"tag":"TypeVar","contents":"z"}]}]}]}]}]}]}]}]}]}]}]},{"annotation":[{"start":[118,113],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[118,114]},[]],"tag":"TypeVar","contents":"r"}]}]}]},380]},381]},382]},383]},384]},385]},386]},387]},388]},389]},390]},391]}}},{"EDType":{"edTypeName":"Either1","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"Either1","edTypeSynonymArguments":[["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[32,18],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[32,19]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[32,23],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[32,27]},[]],"tag":"TypeConstructor","contents":[["Data","Void"],"Void"]}]}}},{"EDType":{"edTypeName":"Either2","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"Either2","edTypeSynonymArguments":[["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["b",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[33,20],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[33,21]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[33,25],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[33,26]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[33,30],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[33,34]},[]],"tag":"TypeConstructor","contents":[["Data","Void"],"Void"]}]}]}}},{"EDType":{"edTypeName":"Either3","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"Either3","edTypeSynonymArguments":[["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["b",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["c",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[34,22],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[34,23]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[34,27],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[34,28]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[34,32],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[34,33]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[34,37],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[34,41]},[]],"tag":"TypeConstructor","contents":[["Data","Void"],"Void"]}]}]}]}}},{"EDType":{"edTypeName":"Either4","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]}]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"Either4","edTypeSynonymArguments":[["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["b",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["c",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["d",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[35,24],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[35,25]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[35,29],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[35,30]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[35,34],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[35,35]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[35,39],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[35,40]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[35,44],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[35,48]},[]],"tag":"TypeConstructor","contents":[["Data","Void"],"Void"]}]}]}]}]}}},{"EDType":{"edTypeName":"Either5","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]}]}]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"Either5","edTypeSynonymArguments":[["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["b",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["c",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["d",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["e",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[36,26],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[36,27]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[36,31],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[36,32]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[36,36],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[36,37]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[36,41],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[36,42]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[36,46],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[36,47]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[36,51],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[36,55]},[]],"tag":"TypeConstructor","contents":[["Data","Void"],"Void"]}]}]}]}]}]}}},{"EDType":{"edTypeName":"Either6","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]}]}]}]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"Either6","edTypeSynonymArguments":[["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["b",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["c",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["d",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["e",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["f",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[37,28],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[37,29]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[37,33],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[37,34]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[37,38],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[37,39]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[37,43],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[37,44]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[37,48],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[37,49]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[37,53],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[37,54]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[37,58],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[37,62]},[]],"tag":"TypeConstructor","contents":[["Data","Void"],"Void"]}]}]}]}]}]}]}}},{"EDType":{"edTypeName":"Either7","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]}]}]}]}]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"Either7","edTypeSynonymArguments":[["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["b",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["c",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["d",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["e",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["f",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["g",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[38,30],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[38,31]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[38,35],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[38,36]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[38,40],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[38,41]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[38,45],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[38,46]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[38,50],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[38,51]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[38,55],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[38,56]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[38,60],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[38,61]},[]],"tag":"TypeVar","contents":"g"}]},{"annotation":[{"start":[38,65],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[38,69]},[]],"tag":"TypeConstructor","contents":[["Data","Void"],"Void"]}]}]}]}]}]}]}]}}},{"EDType":{"edTypeName":"Either8","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]}]}]}]}]}]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"Either8","edTypeSynonymArguments":[["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["b",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["c",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["d",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["e",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["f",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["g",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["h",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[39,32],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[39,33]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[39,37],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[39,38]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[39,42],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[39,43]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[39,47],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[39,48]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[39,52],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[39,53]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[39,57],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[39,58]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[39,62],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[39,63]},[]],"tag":"TypeVar","contents":"g"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[39,67],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[39,68]},[]],"tag":"TypeVar","contents":"h"}]},{"annotation":[{"start":[39,72],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[39,76]},[]],"tag":"TypeConstructor","contents":[["Data","Void"],"Void"]}]}]}]}]}]}]}]}]}}},{"EDType":{"edTypeName":"Either9","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]}]}]}]}]}]}]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"Either9","edTypeSynonymArguments":[["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["b",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["c",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["d",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["e",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["f",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["g",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["h",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["i",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[40,34],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[40,35]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[40,39],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[40,40]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[40,44],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[40,45]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[40,49],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[40,50]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[40,54],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[40,55]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[40,59],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[40,60]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[40,64],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[40,65]},[]],"tag":"TypeVar","contents":"g"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[40,69],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[40,70]},[]],"tag":"TypeVar","contents":"h"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[40,74],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[40,75]},[]],"tag":"TypeVar","contents":"i"}]},{"annotation":[{"start":[40,79],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[40,83]},[]],"tag":"TypeConstructor","contents":[["Data","Void"],"Void"]}]}]}]}]}]}]}]}]}]}}},{"EDType":{"edTypeName":"Either10","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]}]}]}]}]}]}]}]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"Either10","edTypeSynonymArguments":[["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["b",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["c",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["d",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["e",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["f",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["g",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["h",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["i",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["j",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[41,37],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[41,38]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[41,42],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[41,43]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[41,47],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[41,48]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[41,52],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[41,53]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[41,57],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[41,58]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[41,62],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[41,63]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[41,67],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[41,68]},[]],"tag":"TypeVar","contents":"g"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[41,72],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[41,73]},[]],"tag":"TypeVar","contents":"h"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[41,77],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[41,78]},[]],"tag":"TypeVar","contents":"i"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[41,82],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[41,83]},[]],"tag":"TypeVar","contents":"j"}]},{"annotation":[{"start":[41,87],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[41,91]},[]],"tag":"TypeConstructor","contents":[["Data","Void"],"Void"]}]}]}]}]}]}]}]}]}]}]}}},{"EDValue":{"edValueName":{"Ident":"either1"},"edValueType":{"annotation":[{"start":[123,12],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[123,36]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[123,22],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[123,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[123,22],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[123,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[123,32],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[123,34]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[123,30],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[123,31]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[32,23],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[32,27]},[]],"tag":"TypeConstructor","contents":[["Data","Void"],"Void"]}]}]},{"annotation":[{"start":[123,35],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[123,36]},[]],"tag":"TypeVar","contents":"a"}]},258]}}},{"EDValue":{"edValueName":{"Ident":"either2"},"edValueType":{"annotation":[{"start":[128,12],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[128,66]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[128,19],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[128,66]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[128,19],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[128,66]},[]],"tag":"ForAll","contents":["r",{"annotation":[{"start":[128,26],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[128,66]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[128,26],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[128,66]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[128,35],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[128,37]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[128,27],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[128,33]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[128,27],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[128,33]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[128,29],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[128,31]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[128,27],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[128,28]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[128,32],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[128,33]},[]],"tag":"TypeVar","contents":"r"}]}]},{"annotation":[{"start":[128,38],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[128,66]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[128,38],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[128,66]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[128,47],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[128,49]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[128,39],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[128,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[128,39],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[128,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[128,41],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[128,43]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[128,39],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[128,40]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[128,44],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[128,45]},[]],"tag":"TypeVar","contents":"r"}]}]},{"annotation":[{"start":[128,50],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[128,66]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[128,50],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[128,66]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[128,62],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[128,64]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[128,58],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[128,59]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[128,60],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[128,61]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[33,30],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[33,34]},[]],"tag":"TypeConstructor","contents":[["Data","Void"],"Void"]}]}]}]},{"annotation":[{"start":[128,65],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[128,66]},[]],"tag":"TypeVar","contents":"r"}]}]}]},230]},231]},232]}}},{"EDValue":{"edValueName":{"Ident":"either3"},"edValueType":{"annotation":[{"start":[135,12],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[135,82]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[135,19],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[135,82]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[135,19],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[135,82]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[135,19],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[135,82]},[]],"tag":"ForAll","contents":["r",{"annotation":[{"start":[135,28],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[135,82]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[135,28],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[135,82]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[135,37],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[135,39]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[135,29],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[135,35]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[135,29],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[135,35]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[135,31],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[135,33]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[135,29],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[135,30]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[135,34],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[135,35]},[]],"tag":"TypeVar","contents":"r"}]}]},{"annotation":[{"start":[135,40],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[135,82]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[135,40],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[135,82]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[135,49],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[135,51]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[135,41],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[135,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[135,41],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[135,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[135,43],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[135,45]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[135,41],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[135,42]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[135,46],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[135,47]},[]],"tag":"TypeVar","contents":"r"}]}]},{"annotation":[{"start":[135,52],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[135,82]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[135,52],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[135,82]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[135,61],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[135,63]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[135,53],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[135,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[135,53],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[135,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[135,55],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[135,57]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[135,53],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[135,54]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[135,58],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[135,59]},[]],"tag":"TypeVar","contents":"r"}]}]},{"annotation":[{"start":[135,64],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[135,82]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[135,64],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[135,82]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[135,78],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[135,80]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[135,72],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[135,73]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[135,74],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[135,75]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[135,76],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[135,77]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[34,37],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[34,41]},[]],"tag":"TypeConstructor","contents":[["Data","Void"],"Void"]}]}]}]}]},{"annotation":[{"start":[135,81],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[135,82]},[]],"tag":"TypeVar","contents":"r"}]}]}]}]},222]},223]},224]},225]}}},{"EDValue":{"edValueName":{"Ident":"either4"},"edValueType":{"annotation":[{"start":[144,12],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[144,98]},[]],"tag":"ForAll","contents":["d",{"annotation":[{"start":[144,19],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[144,98]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[144,19],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[144,98]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[144,19],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[144,98]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[144,19],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[144,98]},[]],"tag":"ForAll","contents":["r",{"annotation":[{"start":[144,30],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[144,98]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[144,30],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[144,98]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[144,39],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[144,41]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[144,31],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[144,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[144,31],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[144,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[144,33],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[144,35]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[144,31],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[144,32]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[144,36],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[144,37]},[]],"tag":"TypeVar","contents":"r"}]}]},{"annotation":[{"start":[144,42],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[144,98]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[144,42],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[144,98]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[144,51],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[144,53]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[144,43],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[144,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[144,43],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[144,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[144,45],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[144,47]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[144,43],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[144,44]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[144,48],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[144,49]},[]],"tag":"TypeVar","contents":"r"}]}]},{"annotation":[{"start":[144,54],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[144,98]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[144,54],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[144,98]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[144,63],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[144,65]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[144,55],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[144,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[144,55],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[144,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[144,57],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[144,59]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[144,55],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[144,56]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[144,60],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[144,61]},[]],"tag":"TypeVar","contents":"r"}]}]},{"annotation":[{"start":[144,66],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[144,98]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[144,66],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[144,98]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[144,75],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[144,77]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[144,67],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[144,73]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[144,67],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[144,73]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[144,69],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[144,71]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[144,67],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[144,68]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[144,72],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[144,73]},[]],"tag":"TypeVar","contents":"r"}]}]},{"annotation":[{"start":[144,78],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[144,98]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[144,78],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[144,98]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[144,94],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[144,96]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[144,86],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[144,87]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[144,88],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[144,89]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[144,90],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[144,91]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[144,92],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[144,93]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[35,44],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[35,48]},[]],"tag":"TypeConstructor","contents":[["Data","Void"],"Void"]}]}]}]}]}]},{"annotation":[{"start":[144,97],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[144,98]},[]],"tag":"TypeVar","contents":"r"}]}]}]}]}]},212]},213]},214]},215]},216]}}},{"EDValue":{"edValueName":{"Ident":"either5"},"edValueType":{"annotation":[{"start":[155,12],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[155,114]},[]],"tag":"ForAll","contents":["e",{"annotation":[{"start":[155,19],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[155,114]},[]],"tag":"ForAll","contents":["d",{"annotation":[{"start":[155,19],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[155,114]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[155,19],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[155,114]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[155,19],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[155,114]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[155,19],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[155,114]},[]],"tag":"ForAll","contents":["r",{"annotation":[{"start":[155,32],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[155,114]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[155,32],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[155,114]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[155,41],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[155,43]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[155,33],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[155,39]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[155,33],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[155,39]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[155,35],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[155,37]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[155,33],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[155,34]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[155,38],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[155,39]},[]],"tag":"TypeVar","contents":"r"}]}]},{"annotation":[{"start":[155,44],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[155,114]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[155,44],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[155,114]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[155,53],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[155,55]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[155,45],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[155,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[155,45],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[155,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[155,47],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[155,49]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[155,45],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[155,46]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[155,50],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[155,51]},[]],"tag":"TypeVar","contents":"r"}]}]},{"annotation":[{"start":[155,56],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[155,114]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[155,56],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[155,114]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[155,65],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[155,67]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[155,57],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[155,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[155,57],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[155,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[155,59],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[155,61]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[155,57],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[155,58]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[155,62],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[155,63]},[]],"tag":"TypeVar","contents":"r"}]}]},{"annotation":[{"start":[155,68],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[155,114]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[155,68],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[155,114]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[155,77],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[155,79]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[155,69],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[155,75]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[155,69],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[155,75]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[155,71],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[155,73]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[155,69],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[155,70]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[155,74],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[155,75]},[]],"tag":"TypeVar","contents":"r"}]}]},{"annotation":[{"start":[155,80],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[155,114]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[155,80],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[155,114]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[155,89],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[155,91]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[155,81],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[155,87]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[155,81],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[155,87]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[155,83],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[155,85]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[155,81],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[155,82]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[155,86],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[155,87]},[]],"tag":"TypeVar","contents":"r"}]}]},{"annotation":[{"start":[155,92],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[155,114]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[155,92],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[155,114]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[155,110],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[155,112]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[155,100],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[155,101]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[155,102],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[155,103]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[155,104],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[155,105]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[155,106],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[155,107]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[155,108],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[155,109]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[36,51],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[36,55]},[]],"tag":"TypeConstructor","contents":[["Data","Void"],"Void"]}]}]}]}]}]}]},{"annotation":[{"start":[155,113],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[155,114]},[]],"tag":"TypeVar","contents":"r"}]}]}]}]}]}]},200]},201]},202]},203]},204]},205]}}},{"EDValue":{"edValueName":{"Ident":"either6"},"edValueType":{"annotation":[{"start":[168,12],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[168,130]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[168,19],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[168,130]},[]],"tag":"ForAll","contents":["e",{"annotation":[{"start":[168,19],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[168,130]},[]],"tag":"ForAll","contents":["d",{"annotation":[{"start":[168,19],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[168,130]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[168,19],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[168,130]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[168,19],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[168,130]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[168,19],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[168,130]},[]],"tag":"ForAll","contents":["r",{"annotation":[{"start":[168,34],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[168,130]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[168,34],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[168,130]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[168,43],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[168,45]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[168,35],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[168,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[168,35],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[168,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[168,37],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[168,39]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[168,35],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[168,36]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[168,40],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[168,41]},[]],"tag":"TypeVar","contents":"r"}]}]},{"annotation":[{"start":[168,46],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[168,130]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[168,46],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[168,130]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[168,55],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[168,57]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[168,47],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[168,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[168,47],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[168,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[168,49],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[168,51]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[168,47],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[168,48]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[168,52],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[168,53]},[]],"tag":"TypeVar","contents":"r"}]}]},{"annotation":[{"start":[168,58],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[168,130]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[168,58],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[168,130]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[168,67],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[168,69]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[168,59],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[168,65]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[168,59],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[168,65]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[168,61],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[168,63]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[168,59],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[168,60]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[168,64],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[168,65]},[]],"tag":"TypeVar","contents":"r"}]}]},{"annotation":[{"start":[168,70],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[168,130]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[168,70],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[168,130]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[168,79],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[168,81]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[168,71],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[168,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[168,71],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[168,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[168,73],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[168,75]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[168,71],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[168,72]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[168,76],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[168,77]},[]],"tag":"TypeVar","contents":"r"}]}]},{"annotation":[{"start":[168,82],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[168,130]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[168,82],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[168,130]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[168,91],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[168,93]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[168,83],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[168,89]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[168,83],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[168,89]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[168,85],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[168,87]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[168,83],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[168,84]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[168,88],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[168,89]},[]],"tag":"TypeVar","contents":"r"}]}]},{"annotation":[{"start":[168,94],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[168,130]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[168,94],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[168,130]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[168,103],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[168,105]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[168,95],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[168,101]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[168,95],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[168,101]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[168,97],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[168,99]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[168,95],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[168,96]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[168,100],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[168,101]},[]],"tag":"TypeVar","contents":"r"}]}]},{"annotation":[{"start":[168,106],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[168,130]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[168,106],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[168,130]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[168,126],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[168,128]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[168,114],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[168,115]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[168,116],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[168,117]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[168,118],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[168,119]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[168,120],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[168,121]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[168,122],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[168,123]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[168,124],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[168,125]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[37,58],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[37,62]},[]],"tag":"TypeConstructor","contents":[["Data","Void"],"Void"]}]}]}]}]}]}]}]},{"annotation":[{"start":[168,129],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[168,130]},[]],"tag":"TypeVar","contents":"r"}]}]}]}]}]}]}]},186]},187]},188]},189]},190]},191]},192]}}},{"EDValue":{"edValueName":{"Ident":"either7"},"edValueType":{"annotation":[{"start":[183,12],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[183,146]},[]],"tag":"ForAll","contents":["g",{"annotation":[{"start":[183,19],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[183,146]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[183,19],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[183,146]},[]],"tag":"ForAll","contents":["e",{"annotation":[{"start":[183,19],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[183,146]},[]],"tag":"ForAll","contents":["d",{"annotation":[{"start":[183,19],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[183,146]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[183,19],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[183,146]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[183,19],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[183,146]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[183,19],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[183,146]},[]],"tag":"ForAll","contents":["r",{"annotation":[{"start":[183,36],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[183,146]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[183,36],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[183,146]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[183,45],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[183,47]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[183,37],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[183,43]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[183,37],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[183,43]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[183,39],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[183,41]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[183,37],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[183,38]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[183,42],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[183,43]},[]],"tag":"TypeVar","contents":"r"}]}]},{"annotation":[{"start":[183,48],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[183,146]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[183,48],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[183,146]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[183,57],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[183,59]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[183,49],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[183,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[183,49],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[183,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[183,51],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[183,53]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[183,49],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[183,50]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[183,54],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[183,55]},[]],"tag":"TypeVar","contents":"r"}]}]},{"annotation":[{"start":[183,60],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[183,146]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[183,60],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[183,146]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[183,69],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[183,71]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[183,61],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[183,67]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[183,61],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[183,67]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[183,63],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[183,65]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[183,61],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[183,62]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[183,66],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[183,67]},[]],"tag":"TypeVar","contents":"r"}]}]},{"annotation":[{"start":[183,72],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[183,146]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[183,72],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[183,146]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[183,81],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[183,83]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[183,73],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[183,79]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[183,73],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[183,79]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[183,75],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[183,77]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[183,73],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[183,74]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[183,78],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[183,79]},[]],"tag":"TypeVar","contents":"r"}]}]},{"annotation":[{"start":[183,84],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[183,146]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[183,84],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[183,146]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[183,93],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[183,95]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[183,85],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[183,91]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[183,85],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[183,91]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[183,87],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[183,89]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[183,85],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[183,86]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[183,90],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[183,91]},[]],"tag":"TypeVar","contents":"r"}]}]},{"annotation":[{"start":[183,96],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[183,146]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[183,96],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[183,146]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[183,105],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[183,107]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[183,97],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[183,103]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[183,97],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[183,103]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[183,99],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[183,101]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[183,97],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[183,98]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[183,102],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[183,103]},[]],"tag":"TypeVar","contents":"r"}]}]},{"annotation":[{"start":[183,108],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[183,146]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[183,108],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[183,146]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[183,117],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[183,119]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[183,109],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[183,115]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[183,109],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[183,115]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[183,111],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[183,113]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[183,109],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[183,110]},[]],"tag":"TypeVar","contents":"g"}]},{"annotation":[{"start":[183,114],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[183,115]},[]],"tag":"TypeVar","contents":"r"}]}]},{"annotation":[{"start":[183,120],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[183,146]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[183,120],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[183,146]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[183,142],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[183,144]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[183,128],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[183,129]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[183,130],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[183,131]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[183,132],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[183,133]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[183,134],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[183,135]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[183,136],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[183,137]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[183,138],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[183,139]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[183,140],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[183,141]},[]],"tag":"TypeVar","contents":"g"}]},{"annotation":[{"start":[38,65],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[38,69]},[]],"tag":"TypeConstructor","contents":[["Data","Void"],"Void"]}]}]}]}]}]}]}]}]},{"annotation":[{"start":[183,145],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[183,146]},[]],"tag":"TypeVar","contents":"r"}]}]}]}]}]}]}]}]},170]},171]},172]},173]},174]},175]},176]},177]}}},{"EDValue":{"edValueName":{"Ident":"either8"},"edValueType":{"annotation":[{"start":[200,12],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[200,162]},[]],"tag":"ForAll","contents":["h",{"annotation":[{"start":[200,19],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[200,162]},[]],"tag":"ForAll","contents":["g",{"annotation":[{"start":[200,19],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[200,162]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[200,19],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[200,162]},[]],"tag":"ForAll","contents":["e",{"annotation":[{"start":[200,19],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[200,162]},[]],"tag":"ForAll","contents":["d",{"annotation":[{"start":[200,19],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[200,162]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[200,19],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[200,162]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[200,19],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[200,162]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[200,19],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[200,162]},[]],"tag":"ForAll","contents":["r",{"annotation":[{"start":[200,38],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[200,162]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[200,38],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[200,162]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[200,47],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[200,49]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[200,39],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[200,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[200,39],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[200,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[200,41],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[200,43]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[200,39],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[200,40]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[200,44],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[200,45]},[]],"tag":"TypeVar","contents":"r"}]}]},{"annotation":[{"start":[200,50],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[200,162]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[200,50],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[200,162]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[200,59],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[200,61]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[200,51],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[200,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[200,51],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[200,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[200,53],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[200,55]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[200,51],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[200,52]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[200,56],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[200,57]},[]],"tag":"TypeVar","contents":"r"}]}]},{"annotation":[{"start":[200,62],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[200,162]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[200,62],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[200,162]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[200,71],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[200,73]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[200,63],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[200,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[200,63],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[200,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[200,65],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[200,67]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[200,63],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[200,64]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[200,68],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[200,69]},[]],"tag":"TypeVar","contents":"r"}]}]},{"annotation":[{"start":[200,74],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[200,162]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[200,74],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[200,162]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[200,83],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[200,85]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[200,75],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[200,81]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[200,75],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[200,81]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[200,77],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[200,79]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[200,75],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[200,76]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[200,80],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[200,81]},[]],"tag":"TypeVar","contents":"r"}]}]},{"annotation":[{"start":[200,86],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[200,162]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[200,86],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[200,162]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[200,95],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[200,97]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[200,87],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[200,93]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[200,87],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[200,93]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[200,89],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[200,91]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[200,87],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[200,88]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[200,92],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[200,93]},[]],"tag":"TypeVar","contents":"r"}]}]},{"annotation":[{"start":[200,98],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[200,162]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[200,98],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[200,162]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[200,107],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[200,109]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[200,99],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[200,105]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[200,99],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[200,105]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[200,101],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[200,103]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[200,99],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[200,100]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[200,104],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[200,105]},[]],"tag":"TypeVar","contents":"r"}]}]},{"annotation":[{"start":[200,110],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[200,162]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[200,110],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[200,162]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[200,119],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[200,121]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[200,111],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[200,117]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[200,111],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[200,117]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[200,113],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[200,115]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[200,111],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[200,112]},[]],"tag":"TypeVar","contents":"g"}]},{"annotation":[{"start":[200,116],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[200,117]},[]],"tag":"TypeVar","contents":"r"}]}]},{"annotation":[{"start":[200,122],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[200,162]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[200,122],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[200,162]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[200,131],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[200,133]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[200,123],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[200,129]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[200,123],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[200,129]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[200,125],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[200,127]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[200,123],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[200,124]},[]],"tag":"TypeVar","contents":"h"}]},{"annotation":[{"start":[200,128],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[200,129]},[]],"tag":"TypeVar","contents":"r"}]}]},{"annotation":[{"start":[200,134],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[200,162]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[200,134],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[200,162]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[200,158],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[200,160]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[200,142],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[200,143]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[200,144],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[200,145]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[200,146],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[200,147]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[200,148],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[200,149]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[200,150],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[200,151]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[200,152],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[200,153]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[200,154],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[200,155]},[]],"tag":"TypeVar","contents":"g"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[200,156],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[200,157]},[]],"tag":"TypeVar","contents":"h"}]},{"annotation":[{"start":[39,72],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[39,76]},[]],"tag":"TypeConstructor","contents":[["Data","Void"],"Void"]}]}]}]}]}]}]}]}]}]},{"annotation":[{"start":[200,161],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[200,162]},[]],"tag":"TypeVar","contents":"r"}]}]}]}]}]}]}]}]}]},152]},153]},154]},155]},156]},157]},158]},159]},160]}}},{"EDValue":{"edValueName":{"Ident":"either9"},"edValueType":{"annotation":[{"start":[219,12],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[219,178]},[]],"tag":"ForAll","contents":["i",{"annotation":[{"start":[219,19],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[219,178]},[]],"tag":"ForAll","contents":["h",{"annotation":[{"start":[219,19],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[219,178]},[]],"tag":"ForAll","contents":["g",{"annotation":[{"start":[219,19],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[219,178]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[219,19],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[219,178]},[]],"tag":"ForAll","contents":["e",{"annotation":[{"start":[219,19],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[219,178]},[]],"tag":"ForAll","contents":["d",{"annotation":[{"start":[219,19],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[219,178]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[219,19],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[219,178]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[219,19],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[219,178]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[219,19],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[219,178]},[]],"tag":"ForAll","contents":["r",{"annotation":[{"start":[219,40],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[219,178]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[219,40],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[219,178]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[219,49],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[219,51]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[219,41],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[219,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[219,41],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[219,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[219,43],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[219,45]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[219,41],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[219,42]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[219,46],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[219,47]},[]],"tag":"TypeVar","contents":"r"}]}]},{"annotation":[{"start":[219,52],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[219,178]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[219,52],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[219,178]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[219,61],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[219,63]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[219,53],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[219,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[219,53],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[219,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[219,55],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[219,57]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[219,53],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[219,54]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[219,58],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[219,59]},[]],"tag":"TypeVar","contents":"r"}]}]},{"annotation":[{"start":[219,64],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[219,178]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[219,64],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[219,178]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[219,73],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[219,75]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[219,65],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[219,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[219,65],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[219,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[219,67],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[219,69]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[219,65],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[219,66]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[219,70],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[219,71]},[]],"tag":"TypeVar","contents":"r"}]}]},{"annotation":[{"start":[219,76],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[219,178]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[219,76],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[219,178]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[219,85],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[219,87]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[219,77],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[219,83]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[219,77],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[219,83]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[219,79],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[219,81]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[219,77],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[219,78]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[219,82],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[219,83]},[]],"tag":"TypeVar","contents":"r"}]}]},{"annotation":[{"start":[219,88],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[219,178]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[219,88],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[219,178]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[219,97],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[219,99]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[219,89],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[219,95]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[219,89],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[219,95]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[219,91],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[219,93]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[219,89],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[219,90]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[219,94],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[219,95]},[]],"tag":"TypeVar","contents":"r"}]}]},{"annotation":[{"start":[219,100],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[219,178]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[219,100],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[219,178]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[219,109],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[219,111]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[219,101],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[219,107]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[219,101],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[219,107]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[219,103],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[219,105]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[219,101],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[219,102]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[219,106],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[219,107]},[]],"tag":"TypeVar","contents":"r"}]}]},{"annotation":[{"start":[219,112],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[219,178]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[219,112],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[219,178]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[219,121],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[219,123]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[219,113],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[219,119]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[219,113],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[219,119]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[219,115],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[219,117]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[219,113],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[219,114]},[]],"tag":"TypeVar","contents":"g"}]},{"annotation":[{"start":[219,118],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[219,119]},[]],"tag":"TypeVar","contents":"r"}]}]},{"annotation":[{"start":[219,124],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[219,178]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[219,124],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[219,178]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[219,133],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[219,135]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[219,125],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[219,131]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[219,125],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[219,131]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[219,127],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[219,129]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[219,125],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[219,126]},[]],"tag":"TypeVar","contents":"h"}]},{"annotation":[{"start":[219,130],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[219,131]},[]],"tag":"TypeVar","contents":"r"}]}]},{"annotation":[{"start":[219,136],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[219,178]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[219,136],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[219,178]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[219,145],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[219,147]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[219,137],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[219,143]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[219,137],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[219,143]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[219,139],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[219,141]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[219,137],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[219,138]},[]],"tag":"TypeVar","contents":"i"}]},{"annotation":[{"start":[219,142],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[219,143]},[]],"tag":"TypeVar","contents":"r"}]}]},{"annotation":[{"start":[219,148],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[219,178]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[219,148],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[219,178]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[219,174],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[219,176]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[219,156],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[219,157]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[219,158],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[219,159]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[219,160],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[219,161]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[219,162],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[219,163]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[219,164],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[219,165]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[219,166],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[219,167]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[219,168],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[219,169]},[]],"tag":"TypeVar","contents":"g"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[219,170],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[219,171]},[]],"tag":"TypeVar","contents":"h"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[219,172],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[219,173]},[]],"tag":"TypeVar","contents":"i"}]},{"annotation":[{"start":[40,79],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[40,83]},[]],"tag":"TypeConstructor","contents":[["Data","Void"],"Void"]}]}]}]}]}]}]}]}]}]}]},{"annotation":[{"start":[219,177],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[219,178]},[]],"tag":"TypeVar","contents":"r"}]}]}]}]}]}]}]}]}]}]},132]},133]},134]},135]},136]},137]},138]},139]},140]},141]}}},{"EDValue":{"edValueName":{"Ident":"either10"},"edValueType":{"annotation":[{"start":[240,13],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[240,196]},[]],"tag":"ForAll","contents":["j",{"annotation":[{"start":[240,20],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[240,196]},[]],"tag":"ForAll","contents":["i",{"annotation":[{"start":[240,20],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[240,196]},[]],"tag":"ForAll","contents":["h",{"annotation":[{"start":[240,20],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[240,196]},[]],"tag":"ForAll","contents":["g",{"annotation":[{"start":[240,20],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[240,196]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[240,20],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[240,196]},[]],"tag":"ForAll","contents":["e",{"annotation":[{"start":[240,20],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[240,196]},[]],"tag":"ForAll","contents":["d",{"annotation":[{"start":[240,20],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[240,196]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[240,20],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[240,196]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[240,20],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[240,196]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[240,20],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[240,196]},[]],"tag":"ForAll","contents":["r",{"annotation":[{"start":[240,43],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[240,196]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[240,43],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[240,196]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[240,52],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[240,54]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[240,44],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[240,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[240,44],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[240,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[240,46],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[240,48]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[240,44],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[240,45]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[240,49],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[240,50]},[]],"tag":"TypeVar","contents":"r"}]}]},{"annotation":[{"start":[240,55],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[240,196]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[240,55],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[240,196]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[240,64],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[240,66]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[240,56],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[240,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[240,56],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[240,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[240,58],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[240,60]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[240,56],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[240,57]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[240,61],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[240,62]},[]],"tag":"TypeVar","contents":"r"}]}]},{"annotation":[{"start":[240,67],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[240,196]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[240,67],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[240,196]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[240,76],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[240,78]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[240,68],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[240,74]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[240,68],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[240,74]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[240,70],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[240,72]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[240,68],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[240,69]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[240,73],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[240,74]},[]],"tag":"TypeVar","contents":"r"}]}]},{"annotation":[{"start":[240,79],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[240,196]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[240,79],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[240,196]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[240,88],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[240,90]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[240,80],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[240,86]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[240,80],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[240,86]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[240,82],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[240,84]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[240,80],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[240,81]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[240,85],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[240,86]},[]],"tag":"TypeVar","contents":"r"}]}]},{"annotation":[{"start":[240,91],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[240,196]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[240,91],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[240,196]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[240,100],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[240,102]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[240,92],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[240,98]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[240,92],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[240,98]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[240,94],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[240,96]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[240,92],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[240,93]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[240,97],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[240,98]},[]],"tag":"TypeVar","contents":"r"}]}]},{"annotation":[{"start":[240,103],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[240,196]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[240,103],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[240,196]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[240,112],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[240,114]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[240,104],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[240,110]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[240,104],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[240,110]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[240,106],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[240,108]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[240,104],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[240,105]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[240,109],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[240,110]},[]],"tag":"TypeVar","contents":"r"}]}]},{"annotation":[{"start":[240,115],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[240,196]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[240,115],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[240,196]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[240,124],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[240,126]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[240,116],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[240,122]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[240,116],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[240,122]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[240,118],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[240,120]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[240,116],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[240,117]},[]],"tag":"TypeVar","contents":"g"}]},{"annotation":[{"start":[240,121],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[240,122]},[]],"tag":"TypeVar","contents":"r"}]}]},{"annotation":[{"start":[240,127],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[240,196]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[240,127],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[240,196]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[240,136],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[240,138]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[240,128],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[240,134]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[240,128],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[240,134]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[240,130],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[240,132]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[240,128],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[240,129]},[]],"tag":"TypeVar","contents":"h"}]},{"annotation":[{"start":[240,133],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[240,134]},[]],"tag":"TypeVar","contents":"r"}]}]},{"annotation":[{"start":[240,139],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[240,196]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[240,139],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[240,196]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[240,148],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[240,150]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[240,140],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[240,146]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[240,140],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[240,146]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[240,142],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[240,144]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[240,140],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[240,141]},[]],"tag":"TypeVar","contents":"i"}]},{"annotation":[{"start":[240,145],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[240,146]},[]],"tag":"TypeVar","contents":"r"}]}]},{"annotation":[{"start":[240,151],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[240,196]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[240,151],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[240,196]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[240,160],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[240,162]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[240,152],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[240,158]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[240,152],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[240,158]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[240,154],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[240,156]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[240,152],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[240,153]},[]],"tag":"TypeVar","contents":"j"}]},{"annotation":[{"start":[240,157],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[240,158]},[]],"tag":"TypeVar","contents":"r"}]}]},{"annotation":[{"start":[240,163],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[240,196]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[240,163],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[240,196]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[240,192],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[240,194]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[240,172],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[240,173]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[240,174],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[240,175]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[240,176],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[240,177]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[240,178],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[240,179]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[240,180],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[240,181]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[240,182],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[240,183]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[240,184],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[240,185]},[]],"tag":"TypeVar","contents":"g"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[240,186],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[240,187]},[]],"tag":"TypeVar","contents":"h"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[240,188],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[240,189]},[]],"tag":"TypeVar","contents":"i"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[240,190],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[240,191]},[]],"tag":"TypeVar","contents":"j"}]},{"annotation":[{"start":[41,87],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[41,91]},[]],"tag":"TypeConstructor","contents":[["Data","Void"],"Void"]}]}]}]}]}]}]}]}]}]}]}]},{"annotation":[{"start":[240,195],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[240,196]},[]],"tag":"TypeVar","contents":"r"}]}]}]}]}]}]}]}]}]}]}]},236]},237]},238]},239]},240]},241]},242]},243]},244]},245]},246]}}}],"efSourceSpan":{"start":[19,1],"name":"../../../support/bower_components/purescript-either/src/Data/Either/Nested.purs","end":[261,44]}}
diff --git a/tests/purs/publish/basic-example/output/Data.Either/docs.json b/tests/purs/publish/basic-example/output/Data.Either/docs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.Either/docs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"reExports":[],"name":"Data.Either","comments":null,"declarations":[{"children":[{"comments":null,"title":"Left","info":{"arguments":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"declType":"dataConstructor"},"sourceSpan":null},{"comments":null,"title":"Right","info":{"arguments":[{"annotation":[],"tag":"TypeVar","contents":"b"}],"declType":"dataConstructor"},"sourceSpan":null},{"comments":"The `Functor` instance allows functions to transform the contents of a\n`Right` with the `<$>` operator:\n\n``` purescript\nf <$> Right x == Right (f x)\n```\n\n`Left` values are untouched:\n\n``` purescript\nf <$> Left y == Left y\n```\n","title":"functorEither","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Functor"],"Functor"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[35,1],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[35,52]}},{"comments":null,"title":"invariantEither","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Functor","Invariant"],"Invariant"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[37,1],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[38,15]}},{"comments":null,"title":"bifunctorEither","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Bifunctor"],"Bifunctor"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]}]}},"sourceSpan":{"start":[40,1],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[42,36]}},{"comments":"The `Apply` instance allows functions contained within a `Right` to\ntransform a value contained within a `Right` using the `(<*>)` operator:\n\n``` purescript\nRight f <*> Right x == Right (f x)\n```\n\n`Left` values are left untouched:\n\n``` purescript\nLeft f <*> Right x == Left x\nRight f <*> Left y == Left y\n```\n\nCombining `Functor`'s `<$>` with `Apply`'s `<*>` can be used to transform a\npure function to take `Either`-typed arguments so `f :: a -> b -> c`\nbecomes `f :: Either l a -> Either l b -> Either l c`:\n\n``` purescript\nf <$> Right x <*> Right y == Right (f x y)\n```\n\nThe `Left`-preserving behaviour of both operators means the result of\nan expression like the above but where any one of the values is `Left`\nmeans the whole result becomes `Left` also, taking the first `Left` value\nfound:\n\n``` purescript\nf <$> Left x <*> Right y == Left x\nf <$> Right x <*> Left y == Left y\nf <$> Left x <*> Left y == Left x\n```\n","title":"applyEither","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Apply"],"Apply"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[],"tag":"TypeVar","contents":"e"}]}]}},"sourceSpan":{"start":[76,1],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[78,30]}},{"comments":"The `Applicative` instance enables lifting of values into `Either` with the\n`pure` function:\n\n``` purescript\npure x :: Either _ _ == Right x\n```\n\nCombining `Functor`'s `<$>` with `Apply`'s `<*>` and `Applicative`'s\n`pure` can be used to pass a mixture of `Either` and non-`Either` typed\nvalues to a function that does not usually expect them, by using `pure`\nfor any value that is not already `Either` typed:\n\n``` purescript\nf <$> Right x <*> pure y == Right (f x y)\n```\n\nEven though `pure = Right` it is recommended to use `pure` in situations\nlike this as it allows the choice of `Applicative` to be changed later\nwithout having to go through and replace `Right` with a new constructor.\n","title":"applicativeEither","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Applicative"],"Applicative"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[],"tag":"TypeVar","contents":"e"}]}]}},"sourceSpan":{"start":[99,1],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[100,15]}},{"comments":"The `Alt` instance allows for a choice to be made between two `Either`\nvalues with the `<|>` operator, where the first `Right` encountered\nis taken.\n\n``` purescript\nRight x <|> Right y == Right x\nLeft x <|> Right y == Right y\nLeft x <|> Left y == Left y\n```\n","title":"altEither","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Alt"],"Alt"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[],"tag":"TypeVar","contents":"e"}]}]}},"sourceSpan":{"start":[111,1],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[113,21]}},{"comments":"The `Bind` instance allows sequencing of `Either` values and functions that\nreturn an `Either` by using the `>>=` operator:\n\n``` purescript\nLeft x >>= f = Left x\nRight x >>= f = f x\n```\n","title":"bindEither","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Bind"],"Bind"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[],"tag":"TypeVar","contents":"e"}]}]}},"sourceSpan":{"start":[122,1],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[123,47]}},{"comments":"The `Monad` instance guarantees that there are both `Applicative` and\n`Bind` instances for `Either`. This also enables the `do` syntactic sugar:\n\n``` purescript\ndo\n  x' <- x\n  y' <- y\n  pure (f x' y')\n```\n\nWhich is equivalent to:\n\n``` purescript\nx >>= (\\x' -> y >>= (\\y' -> pure (f x' y')))\n```\n","title":"monadEither","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Monad"],"Monad"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[],"tag":"TypeVar","contents":"e"}]}]}},"sourceSpan":{"start":[140,1],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[140,41]}},{"comments":"The `Extend` instance allows sequencing of `Either` values and functions\nthat accept an `Either` and return a non-`Either` result using the\n`<<=` operator.\n\n``` purescript\nf <<= Left x = Left x\nf <<= Right x = Right (f (Right x))\n```\n","title":"extendEither","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Extend"],"Extend"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[],"tag":"TypeVar","contents":"e"}]}]}},"sourceSpan":{"start":[150,1],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[152,35]}},{"comments":"The `Show` instance allows `Either` values to be rendered as a string with\n`show` whenever there is an `Show` instance for both type the `Either` can\ncontain.\n","title":"showEither","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Show"],"Show"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","Show"],"Show"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"b"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Show"],"Show"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}},"sourceSpan":{"start":[157,1],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[159,46]}},{"comments":"The `Eq` instance allows `Either` values to be checked for equality with\n`==` and inequality with `/=` whenever there is an `Eq` instance for both\ntypes the `Either` can contain.\n","title":"eqEither","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"b"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Eq"],"Eq"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}},"sourceSpan":{"start":[164,1],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[164,60]}},{"comments":null,"title":"eq1Either","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Eq"],"Eq1"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[166,1],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[166,52]}},{"comments":"The `Ord` instance allows `Either` values to be compared with\n`compare`, `>`, `>=`, `<` and `<=` whenever there is an `Ord` instance for\nboth types the `Either` can contain.\n\nAny `Left` value is considered to be less than a `Right` value.\n","title":"ordEither","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"b"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord"],"Ord"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}},"sourceSpan":{"start":[173,1],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[173,64]}},{"comments":null,"title":"ord1Either","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord"],"Ord1"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[175,1],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[175,55]}},{"comments":null,"title":"boundedEither","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Bounded"],"Bounded"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","Bounded"],"Bounded"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"b"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Bounded"],"Bounded"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}},"sourceSpan":{"start":[177,1],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[179,23]}},{"comments":null,"title":"foldableEither","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Foldable"],"Foldable"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[181,1],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[187,28]}},{"comments":null,"title":"bifoldableEither","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Bifoldable"],"Bifoldable"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]}]}},"sourceSpan":{"start":[189,1],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[195,32]}},{"comments":null,"title":"traversableEither","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Traversable"],"Traversable"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[197,1],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[201,36]}},{"comments":null,"title":"bitraversableEither","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Bitraversable"],"Bitraversable"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]}]}},"sourceSpan":{"start":[203,1],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[207,37]}},{"comments":null,"title":"semigroupEither","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Semigroup"],"Semigroup"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"b"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup"],"Semigroup"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}},"sourceSpan":{"start":[209,1],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[210,34]}}],"comments":"The `Either` type is used to represent a choice between two types of value.\n\nA common use case for `Either` is error handling, where `Left` is used to\ncarry an error value and `Right` is used to carry a success value.\n","title":"Either","info":{"declType":"data","dataDeclType":"data","typeArguments":[["a",null],["b",null]]},"sourceSpan":{"start":[21,1],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[21,35]}},{"children":[],"comments":"Takes two functions and an `Either` value, if the value is a `Left` the\ninner value is applied to the first function, if the value is a `Right`\nthe inner value is applied to the second function.\n\n``` purescript\neither f g (Left x) == f x\neither f g (Right y) == g y\n```\n","title":"either","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]}]}]},null]},null]},null]}},"sourceSpan":{"start":[220,1],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[220,64]}},{"children":[],"comments":"Combine two alternatives.\n","title":"choose","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Alt"],"Alt"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}}]}]}]}]},null]},null]},null]}},"sourceSpan":{"start":[225,1],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[225,62]}},{"children":[],"comments":"Returns `true` when the `Either` value was constructed with `Left`.\n","title":"isLeft","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]},null]},null]}},"sourceSpan":{"start":[229,1],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[229,44]}},{"children":[],"comments":"Returns `true` when the `Either` value was constructed with `Right`.\n","title":"isRight","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]},null]},null]}},"sourceSpan":{"start":[233,1],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[233,45]}},{"children":[],"comments":"A partial function that extracts the value from the `Left` data constructor.\nPassing a `Right` to `fromLeft` will throw an error at runtime.\n","title":"fromLeft","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Prim"],"Partial"],"constraintArgs":[],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},null]},null]}},"sourceSpan":{"start":[238,1],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[238,51]}},{"children":[],"comments":"A partial function that extracts the value from the `Right` data constructor.\nPassing a `Left` to `fromRight` will throw an error at runtime.\n","title":"fromRight","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Prim"],"Partial"],"constraintArgs":[],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]},null]},null]}},"sourceSpan":{"start":[243,1],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[243,52]}},{"children":[],"comments":"Takes a default and a `Maybe` value, if the value is a `Just`, turn it into\na `Right`, if the value is a `Nothing` use the provided default as a `Left`\n\n```purescript\nnote \"default\" Nothing = Left \"default\"\nnote \"default\" (Just 1) = Right 1\n```\n","title":"note","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}]},null]},null]}},"sourceSpan":{"start":[253,1],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[253,47]}},{"children":[],"comments":"Similar to `note`, but for use in cases where the default value may be\nexpensive to compute.\n\n```purescript\nnote' (\\_ -> \"default\") Nothing = Left \"default\"\nnote' (\\_ -> \"default\") (Just 1) = Right 1\n```\n","title":"note'","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}]},null]},null]}},"sourceSpan":{"start":[263,1],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[263,58]}},{"children":[],"comments":"Turns an `Either` into a `Maybe`, by throwing eventual `Left` values away and converting\nthem into `Nothing`. `Right` values get turned into `Just`s.\n\n```purescript\nhush (Left \"ParseError\") = Nothing\nhush (Right 42) = Just 42\n```\n","title":"hush","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]},null]},null]}},"sourceSpan":{"start":[273,1],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[273,42]}}]}
diff --git a/tests/purs/publish/basic-example/output/Data.Either/externs.json b/tests/purs/publish/basic-example/output/Data.Either/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.Either/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Data","Either"],"efExports":[{"TypeRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[274,35]},"Either",["Left","Right"]]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[274,35]},{"Ident":"either"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[274,35]},{"Ident":"choose"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[274,35]},{"Ident":"isLeft"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[274,35]},{"Ident":"isRight"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[274,35]},{"Ident":"fromLeft"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[274,35]},{"Ident":"fromRight"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[274,35]},{"Ident":"note"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[274,35]},{"Ident":"note'"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[274,35]},{"Ident":"hush"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"functorEither"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"invariantEither"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"bifunctorEither"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"applyEither"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"applicativeEither"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"altEither"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"bindEither"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"monadEither"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"extendEither"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"showEither"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"eqEither"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"eq1Either"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"ordEither"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"ord1Either"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"boundedEither"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"foldableEither"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"bifoldableEither"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"traversableEither"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"bitraversableEither"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"semigroupEither"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Prelude"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Control","Alt"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[5,21],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[5,30]},"Alt"]},{"ValueOpRef":[{"start":[5,32],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[5,37]},"<|>"]}]},"eiImportedAs":null},{"eiModule":["Control","Extend"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[6,24],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[6,36]},"Extend"]}]},"eiImportedAs":null},{"eiModule":["Data","Bifoldable"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[7,25],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[7,41]},"Bifoldable"]}]},"eiImportedAs":null},{"eiModule":["Data","Bifunctor"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[8,24],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[8,39]},"Bifunctor"]}]},"eiImportedAs":null},{"eiModule":["Data","Bitraversable"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[9,28],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[9,47]},"Bitraversable"]}]},"eiImportedAs":null},{"eiModule":["Data","Eq"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[10,17],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[10,26]},"Eq1"]}]},"eiImportedAs":null},{"eiModule":["Data","Foldable"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[11,23],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[11,37]},"Foldable"]}]},"eiImportedAs":null},{"eiModule":["Data","Functor","Invariant"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[12,32],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[12,47]},"Invariant"]},{"ValueRef":[{"start":[12,49],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[12,54]},{"Ident":"imapF"}]}]},"eiImportedAs":null},{"eiModule":["Data","Maybe"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[13,20],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[13,29]},"Maybe",null]},{"ValueRef":[{"start":[13,31],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[13,36]},{"Ident":"maybe"}]},{"ValueRef":[{"start":[13,38],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[13,44]},{"Ident":"maybe'"}]}]},"eiImportedAs":null},{"eiModule":["Data","Ord"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[14,18],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[14,28]},"Ord1"]}]},"eiImportedAs":null},{"eiModule":["Data","Traversable"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[15,26],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[15,43]},"Traversable"]}]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDType":{"edTypeName":"Either","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[21,24],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[21,25]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[21,34],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[21,35]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]},"edTypeDeclarationKind":{"DataType":{"args":[["a",{"annotation":[{"start":[21,24],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[21,25]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["b",{"annotation":[{"start":[21,34],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[21,35]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]],"ctors":[["Left",[{"annotation":[{"start":[21,24],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[21,25]},[]],"tag":"TypeVar","contents":"a"}]],["Right",[{"annotation":[{"start":[21,34],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[21,35]},[]],"tag":"TypeVar","contents":"b"}]]]}}}},{"EDDataConstructor":{"edDataCtorName":"Left","edDataCtorOrigin":"data","edDataCtorTypeCtor":"Either","edDataCtorType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[21,24],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[21,25]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"b"}]}]},null]},null]},"edDataCtorFields":[{"Ident":"value0"}]}},{"EDDataConstructor":{"edDataCtorName":"Right","edDataCtorOrigin":"data","edDataCtorTypeCtor":"Either","edDataCtorType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[21,34],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[21,35]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"b"}]}]},null]},null]},"edDataCtorFields":[{"Ident":"value0"}]}},{"EDValue":{"edValueName":{"Ident":"either"},"edValueType":{"annotation":[{"start":[220,11],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[220,64]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[220,18],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[220,64]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[220,18],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[220,64]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[220,25],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[220,64]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[220,25],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[220,64]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[220,34],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[220,36]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[220,26],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[220,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[220,26],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[220,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[220,28],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[220,30]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[220,26],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[220,27]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[220,31],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[220,32]},[]],"tag":"TypeVar","contents":"c"}]}]},{"annotation":[{"start":[220,37],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[220,64]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[220,37],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[220,64]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[220,46],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[220,48]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[220,38],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[220,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[220,38],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[220,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[220,40],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[220,42]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[220,38],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[220,39]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[220,43],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[220,44]},[]],"tag":"TypeVar","contents":"c"}]}]},{"annotation":[{"start":[220,49],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[220,64]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[220,49],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[220,64]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[220,60],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[220,62]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[220,49],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[220,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[220,49],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[220,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[220,49],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[220,55]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[220,56],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[220,57]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[220,58],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[220,59]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[220,63],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[220,64]},[]],"tag":"TypeVar","contents":"c"}]}]}]},122]},123]},124]}}},{"EDValue":{"edValueName":{"Ident":"choose"},"edValueType":{"annotation":[{"start":[225,11],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[225,62]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[225,18],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[225,62]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[225,18],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[225,62]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[225,25],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[225,62]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[225,25],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[225,30]},[]],"constraintClass":[["Control","Alt"],"Alt"],"constraintArgs":[{"annotation":[{"start":[225,29],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[225,30]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[225,34],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[225,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[225,34],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[225,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[225,38],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[225,40]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[225,34],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[225,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[225,34],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[225,35]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[225,36],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[225,37]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[225,41],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[225,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[225,41],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[225,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[225,45],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[225,47]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[225,41],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[225,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[225,41],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[225,42]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[225,43],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[225,44]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[225,48],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[225,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[225,48],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[225,49]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[225,51],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[225,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[225,51],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[225,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[225,51],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[225,57]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[225,58],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[225,59]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[225,60],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[225,61]},[]],"tag":"TypeVar","contents":"b"}]}]}]}]}]},141]},142]},143]}}},{"EDValue":{"edValueName":{"Ident":"isLeft"},"edValueType":{"annotation":[{"start":[229,11],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[229,44]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[229,18],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[229,44]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[229,23],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[229,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[229,23],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[229,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[229,34],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[229,36]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[229,23],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[229,33]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[229,23],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[229,31]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[229,23],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[229,29]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[229,30],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[229,31]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[229,32],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[229,33]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[229,37],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[229,44]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]},133]},134]}}},{"EDValue":{"edValueName":{"Ident":"isRight"},"edValueType":{"annotation":[{"start":[233,12],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[233,45]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[233,19],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[233,45]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[233,24],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[233,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[233,24],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[233,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[233,35],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[233,37]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[233,24],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[233,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[233,24],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[233,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[233,24],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[233,30]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[233,31],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[233,32]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[233,33],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[233,34]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[233,38],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[233,45]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]},137]},138]}}},{"EDValue":{"edValueName":{"Ident":"fromLeft"},"edValueType":{"annotation":[{"start":[238,13],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[238,51]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[238,20],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[238,51]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[238,25],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[238,51]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[238,25],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[238,32]},[]],"constraintClass":[["Prim"],"Partial"],"constraintArgs":[],"constraintData":null},{"annotation":[{"start":[238,36],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[238,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[238,36],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[238,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[238,47],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[238,49]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[238,36],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[238,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[238,36],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[238,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[238,36],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[238,42]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[238,43],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[238,44]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[238,45],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[238,46]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[238,50],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[238,51]},[]],"tag":"TypeVar","contents":"a"}]}]},86]},87]}}},{"EDValue":{"edValueName":{"Ident":"fromRight"},"edValueType":{"annotation":[{"start":[243,14],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[243,52]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[243,21],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[243,52]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[243,26],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[243,52]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[243,26],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[243,33]},[]],"constraintClass":[["Prim"],"Partial"],"constraintArgs":[],"constraintData":null},{"annotation":[{"start":[243,37],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[243,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[243,37],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[243,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[243,48],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[243,50]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[243,37],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[243,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[243,37],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[243,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[243,37],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[243,43]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[243,44],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[243,45]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[243,46],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[243,47]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[243,51],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[243,52]},[]],"tag":"TypeVar","contents":"b"}]}]},80]},81]}}},{"EDValue":{"edValueName":{"Ident":"note"},"edValueType":{"annotation":[{"start":[253,9],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[253,47]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[253,16],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[253,47]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[253,21],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[253,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[253,21],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[253,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[253,23],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[253,25]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[253,21],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[253,22]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[253,26],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[253,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[253,26],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[253,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[253,34],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[253,36]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[253,26],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[253,33]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[253,26],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[253,31]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[253,32],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[253,33]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[253,37],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[253,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[253,37],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[253,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[253,37],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[253,43]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[253,44],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[253,45]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[253,46],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[253,47]},[]],"tag":"TypeVar","contents":"b"}]}]}]},49]},50]}}},{"EDValue":{"edValueName":{"Ident":"note'"},"edValueType":{"annotation":[{"start":[263,10],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[263,58]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[263,17],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[263,58]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[263,22],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[263,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[263,22],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[263,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[263,34],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[263,36]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[263,23],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[263,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[263,23],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[263,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[263,28],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[263,30]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[263,23],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[263,27]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]},{"annotation":[{"start":[263,31],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[263,32]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[263,37],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[263,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[263,37],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[263,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[263,45],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[263,47]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[263,37],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[263,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[263,37],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[263,42]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[263,43],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[263,44]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[263,48],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[263,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[263,48],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[263,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[263,48],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[263,54]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[263,55],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[263,56]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[263,57],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[263,58]},[]],"tag":"TypeVar","contents":"b"}]}]}]},41]},42]}}},{"EDValue":{"edValueName":{"Ident":"hush"},"edValueType":{"annotation":[{"start":[273,9],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[273,42]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[273,16],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[273,42]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[273,21],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[273,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[273,21],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[273,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[273,32],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[273,34]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[273,21],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[273,31]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[273,21],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[273,29]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[273,21],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[273,27]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[273,28],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[273,29]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[273,30],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[273,31]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[273,35],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[273,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[273,35],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[273,40]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[273,41],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[273,42]},[]],"tag":"TypeVar","contents":"b"}]}]},128]},129]}}},{"EDInstance":{"edInstanceClassName":[["Data","Functor"],"Functor"],"edInstanceName":{"Ident":"functorEither"},"edInstanceTypes":[{"annotation":[{"start":[35,43],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[35,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[35,43],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[35,49]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[35,50],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[35,51]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Either"],{"Ident":"functorEither"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Functor","Invariant"],"Invariant"],"edInstanceName":{"Ident":"invariantEither"},"edInstanceTypes":[{"annotation":[{"start":[37,40],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[37,48]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[37,40],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[37,46]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[37,47],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[37,48]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Either"],{"Ident":"invariantEither"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Bifunctor"],"Bifunctor"],"edInstanceName":{"Ident":"bifunctorEither"},"edInstanceTypes":[{"annotation":[{"start":[40,39],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[40,45]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Either"],{"Ident":"bifunctorEither"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Apply"],"Apply"],"edInstanceName":{"Ident":"applyEither"},"edInstanceTypes":[{"annotation":[{"start":[76,32],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[76,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[76,32],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[76,38]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[76,39],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[76,40]},[]],"tag":"TypeVar","contents":"e"}]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Either"],{"Ident":"applyEither"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Applicative"],"Applicative"],"edInstanceName":{"Ident":"applicativeEither"},"edInstanceTypes":[{"annotation":[{"start":[99,44],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[99,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[99,44],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[99,50]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[99,51],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[99,52]},[]],"tag":"TypeVar","contents":"e"}]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Either"],{"Ident":"applicativeEither"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Alt"],"Alt"],"edInstanceName":{"Ident":"altEither"},"edInstanceTypes":[{"annotation":[{"start":[111,28],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[111,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[111,28],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[111,34]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[111,35],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[111,36]},[]],"tag":"TypeVar","contents":"e"}]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Either"],{"Ident":"altEither"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Bind"],"Bind"],"edInstanceName":{"Ident":"bindEither"},"edInstanceTypes":[{"annotation":[{"start":[122,30],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[122,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[122,30],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[122,36]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[122,37],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[122,38]},[]],"tag":"TypeVar","contents":"e"}]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Either"],{"Ident":"bindEither"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Monad"],"Monad"],"edInstanceName":{"Ident":"monadEither"},"edInstanceTypes":[{"annotation":[{"start":[140,32],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[140,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[140,32],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[140,38]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[140,39],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[140,40]},[]],"tag":"TypeVar","contents":"e"}]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Either"],{"Ident":"monadEither"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Extend"],"Extend"],"edInstanceName":{"Ident":"extendEither"},"edInstanceTypes":[{"annotation":[{"start":[150,34],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[150,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[150,34],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[150,40]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[150,41],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[150,42]},[]],"tag":"TypeVar","contents":"e"}]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Either"],{"Ident":"extendEither"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Show"],"Show"],"edInstanceName":{"Ident":"showEither"},"edInstanceTypes":[{"annotation":[{"start":[157,50],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[157,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[157,50],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[157,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[157,50],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[157,56]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[157,57],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[157,58]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[157,59],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[157,60]},[]],"tag":"TypeVar","contents":"b"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[157,25],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[157,31]},[]],"constraintClass":[["Data","Show"],"Show"],"constraintArgs":[{"annotation":[{"start":[157,30],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[157,31]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"constraintAnn":[{"start":[157,33],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[157,39]},[]],"constraintClass":[["Data","Show"],"Show"],"constraintArgs":[{"annotation":[{"start":[157,38],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[157,39]},[]],"tag":"TypeVar","contents":"b"}],"constraintData":null}],"edInstanceChain":[[["Data","Either"],{"Ident":"showEither"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Eq"],"Eq"],"edInstanceName":{"Ident":"eqEither"},"edInstanceTypes":[{"annotation":[{"start":[164,49],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[164,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[164,49],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[164,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[164,49],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[164,55]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[164,56],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[164,57]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[164,58],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[164,59]},[]],"tag":"TypeVar","contents":"b"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[164,30],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[164,34]},[]],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[{"start":[164,33],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[164,34]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"constraintAnn":[{"start":[164,36],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[164,40]},[]],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[{"start":[164,39],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[164,40]},[]],"tag":"TypeVar","contents":"b"}],"constraintData":null}],"edInstanceChain":[[["Data","Either"],{"Ident":"eqEither"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Eq"],"Eq1"],"edInstanceName":{"Ident":"eq1Either"},"edInstanceTypes":[{"annotation":[{"start":[166,43],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[166,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[166,43],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[166,49]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[166,50],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[166,51]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[166,30],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[166,34]},[]],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[{"start":[166,33],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[166,34]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","Either"],{"Ident":"eq1Either"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Ord"],"Ord"],"edInstanceName":{"Ident":"ordEither"},"edInstanceTypes":[{"annotation":[{"start":[173,53],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[173,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[173,53],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[173,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[173,53],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[173,59]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[173,60],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[173,61]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[173,62],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[173,63]},[]],"tag":"TypeVar","contents":"b"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[173,31],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[173,36]},[]],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[{"start":[173,35],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[173,36]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"constraintAnn":[{"start":[173,38],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[173,43]},[]],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[{"start":[173,42],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[173,43]},[]],"tag":"TypeVar","contents":"b"}],"constraintData":null}],"edInstanceChain":[[["Data","Either"],{"Ident":"ordEither"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Ord"],"Ord1"],"edInstanceName":{"Ident":"ord1Either"},"edInstanceTypes":[{"annotation":[{"start":[175,46],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[175,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[175,46],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[175,52]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[175,53],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[175,54]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[175,31],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[175,36]},[]],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[{"start":[175,35],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[175,36]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","Either"],{"Ident":"ord1Either"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Bounded"],"Bounded"],"edInstanceName":{"Ident":"boundedEither"},"edInstanceTypes":[{"annotation":[{"start":[177,62],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[177,72]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[177,62],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[177,70]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[177,62],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[177,68]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[177,69],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[177,70]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[177,71],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[177,72]},[]],"tag":"TypeVar","contents":"b"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[177,28],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[177,37]},[]],"constraintClass":[["Data","Bounded"],"Bounded"],"constraintArgs":[{"annotation":[{"start":[177,36],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[177,37]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"constraintAnn":[{"start":[177,39],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[177,48]},[]],"constraintClass":[["Data","Bounded"],"Bounded"],"constraintArgs":[{"annotation":[{"start":[177,47],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[177,48]},[]],"tag":"TypeVar","contents":"b"}],"constraintData":null}],"edInstanceChain":[[["Data","Either"],{"Ident":"boundedEither"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Foldable"],"Foldable"],"edInstanceName":{"Ident":"foldableEither"},"edInstanceTypes":[{"annotation":[{"start":[181,38],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[181,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[181,38],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[181,44]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[181,45],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[181,46]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Either"],{"Ident":"foldableEither"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Bifoldable"],"Bifoldable"],"edInstanceName":{"Ident":"bifoldableEither"},"edInstanceTypes":[{"annotation":[{"start":[189,41],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[189,47]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Either"],{"Ident":"bifoldableEither"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Traversable"],"Traversable"],"edInstanceName":{"Ident":"traversableEither"},"edInstanceTypes":[{"annotation":[{"start":[197,44],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[197,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[197,44],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[197,50]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[197,51],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[197,52]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Either"],{"Ident":"traversableEither"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Bitraversable"],"Bitraversable"],"edInstanceName":{"Ident":"bitraversableEither"},"edInstanceTypes":[{"annotation":[{"start":[203,47],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[203,53]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Either"],{"Ident":"bitraversableEither"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Semigroup"],"Semigroup"],"edInstanceName":{"Ident":"semigroupEither"},"edInstanceTypes":[{"annotation":[{"start":[209,57],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[209,67]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[209,57],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[209,65]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[209,57],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[209,63]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[209,64],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[209,65]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[209,66],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[209,67]},[]],"tag":"TypeVar","contents":"b"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[209,30],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[209,41]},[]],"constraintClass":[["Data","Semigroup"],"Semigroup"],"constraintArgs":[{"annotation":[{"start":[209,40],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[209,41]},[]],"tag":"TypeVar","contents":"b"}],"constraintData":null}],"edInstanceChain":[[["Data","Either"],{"Ident":"semigroupEither"}]],"edInstanceChainIndex":0}}],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-either/src/Data/Either.purs","end":[274,35]}}
diff --git a/tests/purs/publish/basic-example/output/Data.Enum.Gen/docs.json b/tests/purs/publish/basic-example/output/Data.Enum.Gen/docs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.Enum.Gen/docs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"reExports":[],"name":"Data.Enum.Gen","comments":null,"declarations":[{"children":[],"comments":"Create a random generator for a finite enumeration.\n","title":"genBoundedEnum","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Monad","Gen","Class"],"MonadGen"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Enum"],"BoundedEnum"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]},null]},null]}},"sourceSpan":{"start":[11,1],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum/Gen.purs","end":[11,65]}}]}
diff --git a/tests/purs/publish/basic-example/output/Data.Enum.Gen/externs.json b/tests/purs/publish/basic-example/output/Data.Enum.Gen/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.Enum.Gen/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Data","Enum","Gen"],"efExports":[{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum/Gen.purs","end":[18,18]},{"Ident":"genBoundedEnum"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Prelude"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Control","Monad","Gen"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[5,27],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum/Gen.purs","end":[5,41]},"MonadGen"]},{"ValueRef":[{"start":[5,43],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum/Gen.purs","end":[5,51]},{"Ident":"elements"}]}]},"eiImportedAs":null},{"eiModule":["Data","Enum"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[6,19],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum/Gen.purs","end":[6,36]},"BoundedEnum"]},{"ValueRef":[{"start":[6,38],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum/Gen.purs","end":[6,42]},{"Ident":"succ"}]},{"ValueRef":[{"start":[6,44],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum/Gen.purs","end":[6,54]},{"Ident":"enumFromTo"}]}]},"eiImportedAs":null},{"eiModule":["Data","Maybe"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[7,20],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum/Gen.purs","end":[7,29]},"Maybe",null]}]},"eiImportedAs":null},{"eiModule":["Data","NonEmpty"],"eiImportType":{"Explicit":[{"ValueOpRef":[{"start":[8,23],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum/Gen.purs","end":[8,27]},":|"]}]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDValue":{"edValueName":{"Ident":"genBoundedEnum"},"edValueType":{"annotation":[{"start":[11,19],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum/Gen.purs","end":[11,65]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[11,26],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum/Gen.purs","end":[11,65]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[11,31],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum/Gen.purs","end":[11,65]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[11,31],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum/Gen.purs","end":[11,41]},[]],"constraintClass":[["Control","Monad","Gen","Class"],"MonadGen"],"constraintArgs":[{"annotation":[{"start":[11,40],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum/Gen.purs","end":[11,41]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[11,45],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum/Gen.purs","end":[11,65]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[11,45],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum/Gen.purs","end":[11,58]},[]],"constraintClass":[["Data","Enum"],"BoundedEnum"],"constraintArgs":[{"annotation":[{"start":[11,57],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum/Gen.purs","end":[11,58]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[11,62],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum/Gen.purs","end":[11,65]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[11,62],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum/Gen.purs","end":[11,63]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[11,64],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum/Gen.purs","end":[11,65]},[]],"tag":"TypeVar","contents":"a"}]}]}]},0]},1]}}}],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum/Gen.purs","end":[18,18]}}
diff --git a/tests/purs/publish/basic-example/output/Data.Enum/docs.json b/tests/purs/publish/basic-example/output/Data.Enum/docs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.Enum/docs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"reExports":[],"name":"Data.Enum","comments":null,"declarations":[{"children":[{"comments":null,"title":"succ","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[51,3],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[51,23]}},{"comments":null,"title":"pred","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[52,3],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[52,23]}},{"comments":null,"title":"enumBoolean","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Enum"],"Enum"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}},"sourceSpan":{"start":[54,1],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[58,18]}},{"comments":null,"title":"enumInt","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Enum"],"Enum"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}},"sourceSpan":{"start":[60,1],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[62,56]}},{"comments":null,"title":"enumChar","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Enum"],"Enum"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Char"]}]}},"sourceSpan":{"start":[64,1],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[66,43]}},{"comments":null,"title":"enumUnit","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Enum"],"Enum"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}},"sourceSpan":{"start":[68,1],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[70,23]}},{"comments":null,"title":"enumOrdering","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Enum"],"Enum"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ordering"],"Ordering"]}]}},"sourceSpan":{"start":[72,1],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[78,20]}},{"comments":null,"title":"enumMaybe","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Enum"],"BoundedEnum"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Enum"],"Enum"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[80,1],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[84,32]}},{"comments":null,"title":"enumEither","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Enum"],"BoundedEnum"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","Enum"],"BoundedEnum"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"b"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Enum"],"Enum"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}},"sourceSpan":{"start":[86,1],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[90,69]}},{"comments":null,"title":"enumTuple","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Enum"],"Enum"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","Enum"],"BoundedEnum"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"b"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Enum"],"Enum"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}},"sourceSpan":{"start":[92,1],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[94,83]}}],"comments":"Type class for enumerations.\n\nLaws:\n- Successor: `all (a < _) (succ a)`\n- Predecessor: `all (_ < a) (pred a)`\n- Succ retracts pred: `pred >=> succ >=> pred = pred`\n- Pred retracts succ: `succ >=> pred >=> succ = succ`\n- Non-skipping succ: `b <= a || any (_ <= b) (succ a)`\n- Non-skipping pred: `a <= b || any (b <= _) (pred a)`\n\nThe retraction laws can intuitively be understood as saying that `succ` is\nthe opposite of `pred`; if you apply `succ` and then `pred` to something,\nyou should end up with what you started with (although of course this\ndoesn't apply if you tried to `succ` the last value in an enumeration and\ntherefore got `Nothing` out).\n\nThe non-skipping laws can intuitively be understood as saying that `succ`\nshouldn't skip over any elements of your type. For example, _without_ the\nnon-skipping laws, it would be permissible to write an `Enum Int` instance\nwhere `succ x = Just (x+2)`, and similarly `pred x = Just (x-2)`.\n","title":"Enum","info":{"fundeps":[],"arguments":[["a",null]],"declType":"typeClass","superclasses":[{"constraintAnn":[],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}]},"sourceSpan":{"start":[50,1],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[52,23]}},{"children":[{"comments":null,"title":"cardinality","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Enum"],"Cardinality"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}},"sourceSpan":{"start":[114,3],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[114,31]}},{"comments":null,"title":"toEnum","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[115,3],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[115,27]}},{"comments":null,"title":"fromEnum","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}},"sourceSpan":{"start":[116,3],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[116,23]}},{"comments":null,"title":"boundedEnumBoolean","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Enum"],"BoundedEnum"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}},"sourceSpan":{"start":[118,1],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[124,20]}},{"comments":null,"title":"boundedEnumChar","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Enum"],"BoundedEnum"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Char"]}]}},"sourceSpan":{"start":[126,1],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[129,24]}},{"comments":null,"title":"boundedEnumUnit","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Enum"],"BoundedEnum"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}},"sourceSpan":{"start":[131,1],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[135,21]}},{"comments":null,"title":"boundedEnumOrdering","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Enum"],"BoundedEnum"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ordering"],"Ordering"]}]}},"sourceSpan":{"start":[137,1],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[145,18]}}],"comments":"Type class for finite enumerations.\n\nThis should not be considered a part of a numeric hierarchy, as in Haskell.\nRather, this is a type class for small, ordered sum types with\nstatically-determined cardinality and the ability to easily compute\nsuccessor and predecessor elements like `DayOfWeek`.\n\nLaws:\n\n- ```succ bottom >>= succ >>= succ ... succ [cardinality - 1 times] == top```\n- ```pred top    >>= pred >>= pred ... pred [cardinality - 1 times] == bottom```\n- ```forall a > bottom: pred a >>= succ == Just a```\n- ```forall a < top:  succ a >>= pred == Just a```\n- ```forall a > bottom: fromEnum <$> pred a = pred (fromEnum a)```\n- ```forall a < top:  fromEnum <$> succ a = succ (fromEnum a)```\n- ```e1 `compare` e2 == fromEnum e1 `compare` fromEnum e2```\n- ```toEnum (fromEnum a) = Just a```\n","title":"BoundedEnum","info":{"fundeps":[],"arguments":[["a",null]],"declType":"typeClass","superclasses":[{"constraintAnn":[],"constraintClass":[["Data","Bounded"],"Bounded"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","Enum"],"Enum"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}]},"sourceSpan":{"start":[113,1],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[116,23]}},{"children":[],"comments":"Like `toEnum` but returns the first argument if `x` is less than\n`fromEnum bottom` and the second argument if `x` is greater than\n`fromEnum top`.\n\n``` purescript\ntoEnumWithDefaults False True (-1) -- False\ntoEnumWithDefaults False True 0    -- False\ntoEnumWithDefaults False True 1    -- True\ntoEnumWithDefaults False True 2    -- True\n```\n","title":"toEnumWithDefaults","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Enum"],"BoundedEnum"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]}]},null]}},"sourceSpan":{"start":[157,1],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[157,68]}},{"children":[{"comments":null,"title":"Cardinality","info":{"arguments":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}],"declType":"dataConstructor"},"sourceSpan":null},{"comments":null,"title":"newtypeCardinality","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Newtype"],"Newtype"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Enum"],"Cardinality"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeWildcard","contents":null}]}},"sourceSpan":{"start":[165,1],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[165,64]}},{"comments":null,"title":"eqCardinality","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Eq"],"Eq"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Enum"],"Cardinality"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[166,1],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[166,60]}},{"comments":null,"title":"ordCardinality","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord"],"Ord"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Enum"],"Cardinality"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[167,1],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[167,62]}},{"comments":null,"title":"showCardinality","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Show"],"Show"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Enum"],"Cardinality"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[169,1],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[170,58]}}],"comments":"A type for the size of finite enumerations.\n","title":"Cardinality","info":{"declType":"data","dataDeclType":"newtype","typeArguments":[["a",null]]},"sourceSpan":{"start":[163,1],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[163,40]}},{"children":[],"comments":"Returns a contiguous sequence of elements from the first value to the\nsecond value (inclusive).\n\n``` purescript\nenumFromTo 0 3 = [0, 1, 2, 3]\nenumFromTo 'c' 'a' = ['c', 'b', 'a']\n```\n\nThe example shows `Array` return values, but the result can be any type\nwith an `Unfoldable1` instance.\n","title":"enumFromTo","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["u",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Enum"],"Enum"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Unfoldable1"],"Unfoldable1"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"u"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"u"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]}]}]},null]},null]}},"sourceSpan":{"start":[182,1],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[182,67]}},{"children":[],"comments":"Returns a sequence of elements from the first value, taking steps\naccording to the difference between the first and second value, up to\n(but not exceeding) the third value.\n\n``` purescript\nenumFromThenTo 0 2 6 = [0, 2, 4, 6]\nenumFromThenTo 0 3 5 = [0, 3]\n```\n\nNote that there is no `BoundedEnum` instance for integers, they're just\nbeing used here for illustrative purposes to help clarify the behaviour.\n\nThe example shows `Array` return values, but the result can be any type\nwith an `Unfoldable1` instance.\n","title":"enumFromThenTo","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Unfoldable"],"Unfoldable"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Functor"],"Functor"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Enum"],"BoundedEnum"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]}]}]}]}]},null]},null]}},"sourceSpan":{"start":[205,1],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[205,95]}},{"children":[],"comments":"Produces all successors of an `Enum` value, excluding the start value.\n","title":"upFrom","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["u",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Enum"],"Enum"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Unfoldable"],"Unfoldable"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"u"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"u"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]}]},null]},null]}},"sourceSpan":{"start":[219,1],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[219,57]}},{"children":[],"comments":"Produces all successors of an `Enum` value, including the start value.\n\n`upFromIncluding bottom` will return all values in an `Enum`.\n","title":"upFromIncluding","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["u",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Enum"],"Enum"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Unfoldable1"],"Unfoldable1"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"u"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"u"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]}]},null]},null]}},"sourceSpan":{"start":[225,1],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[225,62]}},{"children":[],"comments":"Produces all predecessors of an `Enum` value, excluding the start value.\n","title":"downFrom","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["u",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Enum"],"Enum"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Unfoldable"],"Unfoldable"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"u"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"u"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]}]},null]},null]}},"sourceSpan":{"start":[229,1],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[229,59]}},{"children":[],"comments":"Produces all predecessors of an `Enum` value, including the start value.\n\n`downFromIncluding top` will return all values in an `Enum`, in reverse\norder.\n","title":"downFromIncluding","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["u",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Enum"],"Enum"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Unfoldable1"],"Unfoldable1"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"u"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"u"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]}]},null]},null]}},"sourceSpan":{"start":[236,1],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[236,69]}},{"children":[],"comments":"Provides a default implementation for `succ`, given a function that maps\nintegers to values in the `Enum`, and a function that maps values in the\n`Enum` back to integers. The integer mapping must agree in both directions\nfor this to implement a law-abiding `succ`.\n\nIf a `BoundedEnum` instance exists for `a`, the `toEnum` and `fromEnum`\nfunctions can be used here:\n\n``` purescript\nsucc = defaultSucc toEnum fromEnum\n```\n","title":"defaultSucc","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]}]},null]}},"sourceSpan":{"start":[250,1],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[250,72]}},{"children":[],"comments":"Provides a default implementation for `pred`, given a function that maps\nintegers to values in the `Enum`, and a function that maps values in the\n`Enum` back to integers. The integer mapping must agree in both directions\nfor this to implement a law-abiding `pred`.\n\nIf a `BoundedEnum` instance exists for `a`, the `toEnum` and `fromEnum`\nfunctions can be used here:\n\n``` purescript\npred = defaultPred toEnum fromEnum\n```\n","title":"defaultPred","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]}]},null]}},"sourceSpan":{"start":[264,1],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[264,72]}},{"children":[],"comments":"Provides a default implementation for `cardinality`.\n\nRuns in `O(n)` where `n` is `fromEnum top`\n","title":"defaultCardinality","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Bounded"],"Bounded"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Enum"],"Enum"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Enum"],"Cardinality"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]},null]}},"sourceSpan":{"start":[270,1],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[270,69]}},{"children":[],"comments":"Provides a default implementation for `toEnum`.\n\n- Assumes `fromEnum bottom = 0`.\n- Cannot be used in conjuction with `defaultSucc`.\n\nRuns in `O(n)` where `n` is `fromEnum a`.\n","title":"defaultToEnum","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Bounded"],"Bounded"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Enum"],"Enum"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]}]},null]}},"sourceSpan":{"start":[283,1],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[283,65]}},{"children":[],"comments":"Provides a default implementation for `fromEnum`.\n\n- Assumes `toEnum 0 = Just bottom`.\n- Cannot be used in conjuction with `defaultPred`.\n\nRuns in `O(n)` where `n` is `fromEnum a`.\n","title":"defaultFromEnum","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Enum"],"Enum"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]},null]}},"sourceSpan":{"start":[303,1],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[303,48]}}]}
diff --git a/tests/purs/publish/basic-example/output/Data.Enum/externs.json b/tests/purs/publish/basic-example/output/Data.Enum/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.Enum/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Data","Enum"],"efExports":[{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[318,43]},"Enum"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[318,43]},{"Ident":"succ"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[318,43]},{"Ident":"pred"}]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[318,43]},"BoundedEnum"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[318,43]},{"Ident":"cardinality"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[318,43]},{"Ident":"toEnum"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[318,43]},{"Ident":"fromEnum"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[318,43]},{"Ident":"toEnumWithDefaults"}]},{"TypeRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[318,43]},"Cardinality",["Cardinality"]]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[318,43]},{"Ident":"enumFromTo"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[318,43]},{"Ident":"enumFromThenTo"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[318,43]},{"Ident":"upFrom"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[318,43]},{"Ident":"upFromIncluding"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[318,43]},{"Ident":"downFrom"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[318,43]},{"Ident":"downFromIncluding"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[318,43]},{"Ident":"defaultSucc"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[318,43]},{"Ident":"defaultPred"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[318,43]},{"Ident":"defaultCardinality"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[318,43]},{"Ident":"defaultToEnum"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[318,43]},{"Ident":"defaultFromEnum"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"enumBoolean"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"enumInt"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"enumChar"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"enumUnit"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"enumOrdering"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"enumMaybe"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"enumEither"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"enumTuple"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"boundedEnumBoolean"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"boundedEnumChar"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"boundedEnumUnit"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"boundedEnumOrdering"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"newtypeCardinality"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"eqCardinality"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"ordCardinality"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"showCardinality"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Prelude"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Control","MonadPlus"],"eiImportType":{"Explicit":[{"ValueRef":[{"start":[21,27],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[21,32]},{"Ident":"guard"}]}]},"eiImportedAs":null},{"eiModule":["Data","Either"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[22,21],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[22,31]},"Either",null]}]},"eiImportedAs":null},{"eiModule":["Data","Maybe"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[23,20],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[23,29]},"Maybe",null]},{"ValueRef":[{"start":[23,31],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[23,36]},{"Ident":"maybe"}]},{"ValueRef":[{"start":[23,38],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[23,46]},{"Ident":"fromJust"}]}]},"eiImportedAs":null},{"eiModule":["Data","Newtype"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[24,22],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[24,35]},"Newtype"]}]},"eiImportedAs":null},{"eiModule":["Data","Tuple"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[25,20],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[25,29]},"Tuple",null]}]},"eiImportedAs":null},{"eiModule":["Data","Unfoldable"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[26,25],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[26,41]},"Unfoldable"]},{"ValueRef":[{"start":[26,43],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[26,52]},{"Ident":"singleton"}]},{"ValueRef":[{"start":[26,54],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[26,61]},{"Ident":"unfoldr"}]}]},"eiImportedAs":null},{"eiModule":["Data","Unfoldable1"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[27,26],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[27,43]},"Unfoldable1"]},{"ValueRef":[{"start":[27,45],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[27,53]},{"Ident":"unfoldr1"}]}]},"eiImportedAs":null},{"eiModule":["Partial","Unsafe"],"eiImportType":{"Explicit":[{"ValueRef":[{"start":[28,24],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[28,37]},{"Ident":"unsafePartial"}]}]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDType":{"edTypeName":"Enum","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[51,13],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[51,15]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"Enum","edTypeSynonymArguments":[["a",null]],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["succ",{"annotation":[{"start":[51,11],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[51,23]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,11],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[51,23]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,13],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[51,15]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[51,11],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[51,12]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[51,16],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[51,23]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,16],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[51,21]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[51,22],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[51,23]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["pred",{"annotation":[{"start":[52,11],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[52,23]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,11],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[52,23]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,13],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[52,15]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[52,11],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[52,12]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[52,16],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[52,23]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,16],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[52,21]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[52,22],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[52,23]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["Ord0",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Ord"],"Ord"]},{"annotation":[{"start":[50,11],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[50,12]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]}]}]}}},{"EDClass":{"edClassName":"Enum","edClassTypeArguments":[["a",null]],"edClassMembers":[[{"Ident":"succ"},{"annotation":[{"start":[51,11],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[51,23]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,11],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[51,23]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,13],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[51,15]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[51,11],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[51,12]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[51,16],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[51,23]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,16],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[51,21]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[51,22],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[51,23]},[]],"tag":"TypeVar","contents":"a"}]}]}],[{"Ident":"pred"},{"annotation":[{"start":[52,11],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[52,23]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,11],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[52,23]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,13],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[52,15]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[52,11],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[52,12]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[52,16],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[52,23]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,16],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[52,21]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[52,22],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[52,23]},[]],"tag":"TypeVar","contents":"a"}]}]}]],"edClassConstraints":[{"constraintAnn":[{"start":[50,7],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[50,12]},[]],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[{"start":[50,11],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[50,12]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edFunctionalDependencies":[]}},{"EDValue":{"edValueName":{"Ident":"succ"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["Data","Enum"],"Enum"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[51,11],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[51,23]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,11],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[51,23]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,13],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[51,15]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[51,11],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[51,12]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[51,16],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[51,23]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,16],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[51,21]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[51,22],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[51,23]},[]],"tag":"TypeVar","contents":"a"}]}]}]},1]}}},{"EDValue":{"edValueName":{"Ident":"pred"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["Data","Enum"],"Enum"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[52,11],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[52,23]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,11],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[52,23]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,13],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[52,15]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[52,11],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[52,12]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[52,16],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[52,23]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,16],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[52,21]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[52,22],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[52,23]},[]],"tag":"TypeVar","contents":"a"}]}]}]},10]}}},{"EDType":{"edTypeName":"BoundedEnum","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[114,18],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[114,29]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"BoundedEnum","edTypeSynonymArguments":[["a",null]],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["cardinality",{"annotation":[{"start":[114,18],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[114,31]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[114,18],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[114,29]},[]],"tag":"TypeConstructor","contents":[["Data","Enum"],"Cardinality"]},{"annotation":[{"start":[114,30],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[114,31]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["toEnum",{"annotation":[{"start":[115,13],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[115,27]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[115,13],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[115,27]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[115,17],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[115,19]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[115,13],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[115,16]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[115,20],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[115,27]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[115,20],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[115,25]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[115,26],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[115,27]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["fromEnum",{"annotation":[{"start":[116,15],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[116,23]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[116,15],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[116,23]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[116,17],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[116,19]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[116,15],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[116,16]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[116,20],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[116,23]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["Bounded0",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Bounded"],"Bounded"]},{"annotation":[{"start":[113,16],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[113,17]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["Enum1",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Enum"],"Enum"]},{"annotation":[{"start":[113,24],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[113,25]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]}]}]}]}]}}},{"EDClass":{"edClassName":"BoundedEnum","edClassTypeArguments":[["a",null]],"edClassMembers":[[{"Ident":"cardinality"},{"annotation":[{"start":[114,18],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[114,31]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[114,18],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[114,29]},[]],"tag":"TypeConstructor","contents":[["Data","Enum"],"Cardinality"]},{"annotation":[{"start":[114,30],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[114,31]},[]],"tag":"TypeVar","contents":"a"}]}],[{"Ident":"toEnum"},{"annotation":[{"start":[115,13],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[115,27]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[115,13],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[115,27]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[115,17],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[115,19]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[115,13],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[115,16]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[115,20],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[115,27]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[115,20],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[115,25]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[115,26],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[115,27]},[]],"tag":"TypeVar","contents":"a"}]}]}],[{"Ident":"fromEnum"},{"annotation":[{"start":[116,15],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[116,23]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[116,15],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[116,23]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[116,17],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[116,19]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[116,15],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[116,16]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[116,20],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[116,23]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]],"edClassConstraints":[{"constraintAnn":[{"start":[113,8],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[113,17]},[]],"constraintClass":[["Data","Bounded"],"Bounded"],"constraintArgs":[{"annotation":[{"start":[113,16],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[113,17]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"constraintAnn":[{"start":[113,19],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[113,25]},[]],"constraintClass":[["Data","Enum"],"Enum"],"constraintArgs":[{"annotation":[{"start":[113,24],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[113,25]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edFunctionalDependencies":[]}},{"EDValue":{"edValueName":{"Ident":"cardinality"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["Data","Enum"],"BoundedEnum"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[114,18],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[114,31]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[114,18],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[114,29]},[]],"tag":"TypeConstructor","contents":[["Data","Enum"],"Cardinality"]},{"annotation":[{"start":[114,30],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[114,31]},[]],"tag":"TypeVar","contents":"a"}]}]},95]}}},{"EDValue":{"edValueName":{"Ident":"toEnum"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["Data","Enum"],"BoundedEnum"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[115,13],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[115,27]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[115,13],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[115,27]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[115,17],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[115,19]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[115,13],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[115,16]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[115,20],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[115,27]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[115,20],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[115,25]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[115,26],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[115,27]},[]],"tag":"TypeVar","contents":"a"}]}]}]},0]}}},{"EDValue":{"edValueName":{"Ident":"fromEnum"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["Data","Enum"],"BoundedEnum"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[116,15],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[116,23]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[116,15],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[116,23]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[116,17],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[116,19]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[116,15],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[116,16]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[116,20],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[116,23]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]},16]}}},{"EDValue":{"edValueName":{"Ident":"toEnumWithDefaults"},"edValueType":{"annotation":[{"start":[157,23],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[157,68]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[157,33],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[157,68]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[157,33],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[157,46]},[]],"constraintClass":[["Data","Enum"],"BoundedEnum"],"constraintArgs":[{"annotation":[{"start":[157,45],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[157,46]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[157,50],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[157,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[157,50],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[157,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[157,52],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[157,54]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[157,50],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[157,51]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[157,55],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[157,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[157,55],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[157,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[157,57],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[157,59]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[157,55],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[157,56]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[157,60],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[157,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[157,60],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[157,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[157,64],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[157,66]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[157,60],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[157,63]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[157,67],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[157,68]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]},17]}}},{"EDType":{"edTypeName":"Cardinality","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},"edTypeDeclarationKind":{"DataType":{"args":[["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]],"ctors":[["Cardinality",[{"annotation":[{"start":[163,37],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[163,40]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]]]}}}},{"EDDataConstructor":{"edDataCtorName":"Cardinality","edDataCtorOrigin":"newtype","edDataCtorTypeCtor":"Cardinality","edDataCtorType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[163,37],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[163,40]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Enum"],"Cardinality"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"a"}]}]},null]},"edDataCtorFields":[{"Ident":"value0"}]}},{"EDValue":{"edValueName":{"Ident":"enumFromTo"},"edValueType":{"annotation":[{"start":[182,15],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[182,67]},[]],"tag":"ForAll","contents":["u",{"annotation":[{"start":[182,22],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[182,67]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[182,27],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[182,67]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[182,27],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[182,33]},[]],"constraintClass":[["Data","Enum"],"Enum"],"constraintArgs":[{"annotation":[{"start":[182,32],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[182,33]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[182,37],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[182,67]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[182,37],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[182,50]},[]],"constraintClass":[["Data","Unfoldable1"],"Unfoldable1"],"constraintArgs":[{"annotation":[{"start":[182,49],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[182,50]},[]],"tag":"TypeVar","contents":"u"}],"constraintData":null},{"annotation":[{"start":[182,54],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[182,67]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[182,54],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[182,67]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[182,56],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[182,58]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[182,54],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[182,55]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[182,59],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[182,67]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[182,59],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[182,67]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[182,61],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[182,63]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[182,59],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[182,60]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[182,64],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[182,67]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[182,64],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[182,65]},[]],"tag":"TypeVar","contents":"u"},{"annotation":[{"start":[182,66],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[182,67]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]}]},39]},40]}}},{"EDValue":{"edValueName":{"Ident":"enumFromThenTo"},"edValueType":{"annotation":[{"start":[205,19],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[205,95]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[205,26],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[205,95]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[205,31],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[205,95]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[205,31],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[205,43]},[]],"constraintClass":[["Data","Unfoldable"],"Unfoldable"],"constraintArgs":[{"annotation":[{"start":[205,42],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[205,43]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[205,47],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[205,95]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[205,47],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[205,56]},[]],"constraintClass":[["Data","Functor"],"Functor"],"constraintArgs":[{"annotation":[{"start":[205,55],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[205,56]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[205,60],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[205,95]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[205,60],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[205,73]},[]],"constraintClass":[["Data","Enum"],"BoundedEnum"],"constraintArgs":[{"annotation":[{"start":[205,72],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[205,73]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[205,77],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[205,95]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[205,77],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[205,95]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[205,79],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[205,81]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[205,77],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[205,78]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[205,82],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[205,95]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[205,82],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[205,95]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[205,84],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[205,86]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[205,82],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[205,83]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[205,87],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[205,95]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[205,87],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[205,95]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[205,89],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[205,91]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[205,87],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[205,88]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[205,92],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[205,95]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[205,92],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[205,93]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[205,94],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[205,95]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]}]}]}]},43]},44]}}},{"EDValue":{"edValueName":{"Ident":"upFrom"},"edValueType":{"annotation":[{"start":[219,11],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[219,57]},[]],"tag":"ForAll","contents":["u",{"annotation":[{"start":[219,18],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[219,57]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[219,23],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[219,57]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[219,23],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[219,29]},[]],"constraintClass":[["Data","Enum"],"Enum"],"constraintArgs":[{"annotation":[{"start":[219,28],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[219,29]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[219,33],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[219,57]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[219,33],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[219,45]},[]],"constraintClass":[["Data","Unfoldable"],"Unfoldable"],"constraintArgs":[{"annotation":[{"start":[219,44],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[219,45]},[]],"tag":"TypeVar","contents":"u"}],"constraintData":null},{"annotation":[{"start":[219,49],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[219,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[219,49],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[219,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[219,51],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[219,53]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[219,49],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[219,50]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[219,54],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[219,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[219,54],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[219,55]},[]],"tag":"TypeVar","contents":"u"},{"annotation":[{"start":[219,56],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[219,57]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]},78]},79]}}},{"EDValue":{"edValueName":{"Ident":"upFromIncluding"},"edValueType":{"annotation":[{"start":[225,20],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[225,62]},[]],"tag":"ForAll","contents":["u",{"annotation":[{"start":[225,22],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[225,62]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[225,27],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[225,62]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[225,27],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[225,33]},[]],"constraintClass":[["Data","Enum"],"Enum"],"constraintArgs":[{"annotation":[{"start":[225,32],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[225,33]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[225,37],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[225,62]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[225,37],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[225,50]},[]],"constraintClass":[["Data","Unfoldable1"],"Unfoldable1"],"constraintArgs":[{"annotation":[{"start":[225,49],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[225,50]},[]],"tag":"TypeVar","contents":"u"}],"constraintData":null},{"annotation":[{"start":[225,54],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[225,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[225,54],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[225,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[225,56],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[225,58]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[225,54],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[225,55]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[225,59],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[225,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[225,59],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[225,60]},[]],"tag":"TypeVar","contents":"u"},{"annotation":[{"start":[225,61],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[225,62]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]},2]},3]}}},{"EDValue":{"edValueName":{"Ident":"downFrom"},"edValueType":{"annotation":[{"start":[229,13],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[229,59]},[]],"tag":"ForAll","contents":["u",{"annotation":[{"start":[229,20],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[229,59]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[229,25],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[229,59]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[229,25],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[229,31]},[]],"constraintClass":[["Data","Enum"],"Enum"],"constraintArgs":[{"annotation":[{"start":[229,30],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[229,31]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[229,35],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[229,59]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[229,35],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[229,47]},[]],"constraintClass":[["Data","Unfoldable"],"Unfoldable"],"constraintArgs":[{"annotation":[{"start":[229,46],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[229,47]},[]],"tag":"TypeVar","contents":"u"}],"constraintData":null},{"annotation":[{"start":[229,51],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[229,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[229,51],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[229,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[229,53],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[229,55]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[229,51],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[229,52]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[229,56],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[229,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[229,56],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[229,57]},[]],"tag":"TypeVar","contents":"u"},{"annotation":[{"start":[229,58],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[229,59]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]},74]},75]}}},{"EDValue":{"edValueName":{"Ident":"downFromIncluding"},"edValueType":{"annotation":[{"start":[236,22],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[236,69]},[]],"tag":"ForAll","contents":["u",{"annotation":[{"start":[236,29],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[236,69]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[236,34],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[236,69]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[236,34],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[236,40]},[]],"constraintClass":[["Data","Enum"],"Enum"],"constraintArgs":[{"annotation":[{"start":[236,39],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[236,40]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[236,44],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[236,69]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[236,44],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[236,57]},[]],"constraintClass":[["Data","Unfoldable1"],"Unfoldable1"],"constraintArgs":[{"annotation":[{"start":[236,56],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[236,57]},[]],"tag":"TypeVar","contents":"u"}],"constraintData":null},{"annotation":[{"start":[236,61],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[236,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[236,61],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[236,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[236,63],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[236,65]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[236,61],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[236,62]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[236,66],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[236,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[236,66],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[236,67]},[]],"tag":"TypeVar","contents":"u"},{"annotation":[{"start":[236,68],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[236,69]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]},66]},67]}}},{"EDValue":{"edValueName":{"Ident":"defaultSucc"},"edValueType":{"annotation":[{"start":[250,16],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[250,72]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[250,26],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[250,72]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[250,26],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[250,72]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[250,43],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[250,45]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[250,27],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[250,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[250,27],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[250,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[250,31],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[250,33]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[250,27],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[250,30]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[250,34],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[250,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[250,34],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[250,39]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[250,40],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[250,41]},[]],"tag":"TypeVar","contents":"a"}]}]}]},{"annotation":[{"start":[250,46],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[250,72]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[250,46],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[250,72]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[250,57],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[250,59]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[250,47],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[250,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[250,47],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[250,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[250,49],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[250,51]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[250,47],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[250,48]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[250,52],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[250,55]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]},{"annotation":[{"start":[250,60],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[250,72]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[250,60],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[250,72]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[250,62],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[250,64]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[250,60],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[250,61]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[250,65],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[250,72]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[250,65],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[250,70]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[250,71],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[250,72]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]},85]}}},{"EDValue":{"edValueName":{"Ident":"defaultPred"},"edValueType":{"annotation":[{"start":[264,16],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[264,72]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[264,26],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[264,72]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[264,26],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[264,72]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[264,43],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[264,45]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[264,27],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[264,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[264,27],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[264,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[264,31],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[264,33]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[264,27],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[264,30]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[264,34],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[264,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[264,34],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[264,39]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[264,40],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[264,41]},[]],"tag":"TypeVar","contents":"a"}]}]}]},{"annotation":[{"start":[264,46],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[264,72]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[264,46],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[264,72]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[264,57],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[264,59]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[264,47],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[264,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[264,47],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[264,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[264,49],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[264,51]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[264,47],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[264,48]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[264,52],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[264,55]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]},{"annotation":[{"start":[264,60],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[264,72]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[264,60],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[264,72]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[264,62],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[264,64]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[264,60],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[264,61]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[264,65],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[264,72]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[264,65],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[264,70]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[264,71],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[264,72]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]},87]}}},{"EDValue":{"edValueName":{"Ident":"defaultCardinality"},"edValueType":{"annotation":[{"start":[270,23],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[270,69]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[270,33],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[270,69]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[270,33],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[270,42]},[]],"constraintClass":[["Data","Bounded"],"Bounded"],"constraintArgs":[{"annotation":[{"start":[270,41],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[270,42]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[270,46],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[270,69]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[270,46],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[270,52]},[]],"constraintClass":[["Data","Enum"],"Enum"],"constraintArgs":[{"annotation":[{"start":[270,51],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[270,52]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[270,56],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[270,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[270,56],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[270,67]},[]],"tag":"TypeConstructor","contents":[["Data","Enum"],"Cardinality"]},{"annotation":[{"start":[270,68],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[270,69]},[]],"tag":"TypeVar","contents":"a"}]}]}]},91]}}},{"EDValue":{"edValueName":{"Ident":"defaultToEnum"},"edValueType":{"annotation":[{"start":[283,18],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[283,65]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[283,28],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[283,65]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[283,28],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[283,37]},[]],"constraintClass":[["Data","Bounded"],"Bounded"],"constraintArgs":[{"annotation":[{"start":[283,36],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[283,37]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[283,41],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[283,65]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[283,41],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[283,47]},[]],"constraintClass":[["Data","Enum"],"Enum"],"constraintArgs":[{"annotation":[{"start":[283,46],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[283,47]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[283,51],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[283,65]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[283,51],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[283,65]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[283,55],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[283,57]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[283,51],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[283,54]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[283,58],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[283,65]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[283,58],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[283,63]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[283,64],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[283,65]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]},82]}}},{"EDValue":{"edValueName":{"Ident":"defaultFromEnum"},"edValueType":{"annotation":[{"start":[303,20],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[303,48]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[303,30],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[303,48]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[303,30],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[303,36]},[]],"constraintClass":[["Data","Enum"],"Enum"],"constraintArgs":[{"annotation":[{"start":[303,35],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[303,36]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[303,40],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[303,48]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[303,40],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[303,48]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[303,42],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[303,44]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[303,40],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[303,41]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[303,45],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[303,48]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]},89]}}},{"EDInstance":{"edInstanceClassName":[["Data","Enum"],"Enum"],"edInstanceName":{"Ident":"enumBoolean"},"edInstanceTypes":[{"annotation":[{"start":[54,30],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[54,37]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Enum"],{"Ident":"enumBoolean"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Enum"],"Enum"],"edInstanceName":{"Ident":"enumInt"},"edInstanceTypes":[{"annotation":[{"start":[60,26],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[60,29]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Enum"],{"Ident":"enumInt"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Enum"],"Enum"],"edInstanceName":{"Ident":"enumChar"},"edInstanceTypes":[{"annotation":[{"start":[64,27],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[64,31]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Char"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Enum"],{"Ident":"enumChar"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Enum"],"Enum"],"edInstanceName":{"Ident":"enumUnit"},"edInstanceTypes":[{"annotation":[{"start":[68,27],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[68,31]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Enum"],{"Ident":"enumUnit"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Enum"],"Enum"],"edInstanceName":{"Ident":"enumOrdering"},"edInstanceTypes":[{"annotation":[{"start":[72,31],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[72,39]},[]],"tag":"TypeConstructor","contents":[["Data","Ordering"],"Ordering"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Enum"],{"Ident":"enumOrdering"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Enum"],"Enum"],"edInstanceName":{"Ident":"enumMaybe"},"edInstanceTypes":[{"annotation":[{"start":[80,46],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[80,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[80,46],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[80,51]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[80,52],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[80,53]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[80,23],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[80,36]},[]],"constraintClass":[["Data","Enum"],"BoundedEnum"],"constraintArgs":[{"annotation":[{"start":[80,35],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[80,36]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","Enum"],{"Ident":"enumMaybe"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Enum"],"Enum"],"edInstanceName":{"Ident":"enumEither"},"edInstanceTypes":[{"annotation":[{"start":[86,64],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[86,74]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[86,64],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[86,72]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[86,64],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[86,70]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[86,71],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[86,72]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[86,73],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[86,74]},[]],"tag":"TypeVar","contents":"b"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[86,25],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[86,38]},[]],"constraintClass":[["Data","Enum"],"BoundedEnum"],"constraintArgs":[{"annotation":[{"start":[86,37],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[86,38]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"constraintAnn":[{"start":[86,40],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[86,53]},[]],"constraintClass":[["Data","Enum"],"BoundedEnum"],"constraintArgs":[{"annotation":[{"start":[86,52],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[86,53]},[]],"tag":"TypeVar","contents":"b"}],"constraintData":null}],"edInstanceChain":[[["Data","Enum"],{"Ident":"enumEither"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Enum"],"Enum"],"edInstanceName":{"Ident":"enumTuple"},"edInstanceTypes":[{"annotation":[{"start":[92,56],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[92,65]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[92,56],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[92,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[92,56],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[92,61]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[92,62],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[92,63]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[92,64],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[92,65]},[]],"tag":"TypeVar","contents":"b"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[92,24],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[92,30]},[]],"constraintClass":[["Data","Enum"],"Enum"],"constraintArgs":[{"annotation":[{"start":[92,29],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[92,30]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"constraintAnn":[{"start":[92,32],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[92,45]},[]],"constraintClass":[["Data","Enum"],"BoundedEnum"],"constraintArgs":[{"annotation":[{"start":[92,44],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[92,45]},[]],"tag":"TypeVar","contents":"b"}],"constraintData":null}],"edInstanceChain":[[["Data","Enum"],{"Ident":"enumTuple"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Enum"],"BoundedEnum"],"edInstanceName":{"Ident":"boundedEnumBoolean"},"edInstanceTypes":[{"annotation":[{"start":[118,44],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[118,51]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Enum"],{"Ident":"boundedEnumBoolean"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Enum"],"BoundedEnum"],"edInstanceName":{"Ident":"boundedEnumChar"},"edInstanceTypes":[{"annotation":[{"start":[126,41],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[126,45]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Char"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Enum"],{"Ident":"boundedEnumChar"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Enum"],"BoundedEnum"],"edInstanceName":{"Ident":"boundedEnumUnit"},"edInstanceTypes":[{"annotation":[{"start":[131,41],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[131,45]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Enum"],{"Ident":"boundedEnumUnit"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Enum"],"BoundedEnum"],"edInstanceName":{"Ident":"boundedEnumOrdering"},"edInstanceTypes":[{"annotation":[{"start":[137,45],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[137,53]},[]],"tag":"TypeConstructor","contents":[["Data","Ordering"],"Ordering"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Enum"],{"Ident":"boundedEnumOrdering"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Newtype"],"Newtype"],"edInstanceName":{"Ident":"newtypeCardinality"},"edInstanceTypes":[{"annotation":[{"start":[165,48],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[165,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[165,48],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[165,59]},[]],"tag":"TypeConstructor","contents":[["Data","Enum"],"Cardinality"]},{"annotation":[{"start":[165,60],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[165,61]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[163,37],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[163,40]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Enum"],{"Ident":"newtypeCardinality"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Eq"],"Eq"],"edInstanceName":{"Ident":"eqCardinality"},"edInstanceTypes":[{"annotation":[{"start":[166,46],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[166,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[166,46],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[166,57]},[]],"tag":"TypeConstructor","contents":[["Data","Enum"],"Cardinality"]},{"annotation":[{"start":[166,58],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[166,59]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Enum"],{"Ident":"eqCardinality"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Ord"],"Ord"],"edInstanceName":{"Ident":"ordCardinality"},"edInstanceTypes":[{"annotation":[{"start":[167,48],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[167,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[167,48],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[167,59]},[]],"tag":"TypeConstructor","contents":[["Data","Enum"],"Cardinality"]},{"annotation":[{"start":[167,60],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[167,61]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Enum"],{"Ident":"ordCardinality"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Show"],"Show"],"edInstanceName":{"Ident":"showCardinality"},"edInstanceTypes":[{"annotation":[{"start":[169,35],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[169,48]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[169,35],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[169,46]},[]],"tag":"TypeConstructor","contents":[["Data","Enum"],"Cardinality"]},{"annotation":[{"start":[169,47],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[169,48]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Enum"],{"Ident":"showCardinality"}]],"edInstanceChainIndex":0}}],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-enums/src/Data/Enum.purs","end":[318,43]}}
diff --git a/tests/purs/publish/basic-example/output/Data.Eq.Generic/docs.json b/tests/purs/publish/basic-example/output/Data.Eq.Generic/docs.json
new file mode 100644
--- /dev/null
+++ b/tests/purs/publish/basic-example/output/Data.Eq.Generic/docs.json
@@ -0,0 +1,1 @@
+{"comments":null,"declarations":[{"children":[{"comments":null,"info":{"declType":"typeClassMember","type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim"],"Boolean"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[11,34],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq/Generic.purs","start":[11,3]},"title":"genericEq'"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Eq","Generic"],"GenericEq"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Generic","Rep"],"NoConstructors"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[14,24],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq/Generic.purs","start":[13,1]},"title":"genericEqNoConstructors"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Eq","Generic"],"GenericEq"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Generic","Rep"],"NoArguments"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[17,24],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq/Generic.purs","start":[16,1]},"title":"genericEqNoArguments"},{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","Eq","Generic"],"GenericEq"],"constraintData":null,"constraintKindArgs":[]},{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"b","tag":"TypeVar"}],"constraintClass":[["Data","Eq","Generic"],"GenericEq"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Eq","Generic"],"GenericEq"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Generic","Rep"],"Sum"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[22,25],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq/Generic.purs","start":[19,1]},"title":"genericEqSum"},{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","Eq","Generic"],"GenericEq"],"constraintData":null,"constraintKindArgs":[]},{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"b","tag":"TypeVar"}],"constraintClass":[["Data","Eq","Generic"],"GenericEq"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Eq","Generic"],"GenericEq"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Generic","Rep"],"Product"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[25,84],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq/Generic.purs","start":[24,1]},"title":"genericEqProduct"},{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","Eq","Generic"],"GenericEq"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Eq","Generic"],"GenericEq"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Generic","Rep"],"Constructor"],"tag":"TypeConstructor"},{"annotation":[],"contents":"name","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[28,66],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq/Generic.purs","start":[27,1]},"title":"genericEqConstructor"},{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","Eq"],"Eq"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Eq","Generic"],"GenericEq"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Generic","Rep"],"Argument"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[31,52],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq/Generic.purs","start":[30,1]},"title":"genericEqArgument"}],"comments":null,"info":{"arguments":[["a",null]],"declType":"typeClass","fundeps":[],"superclasses":[]},"kind":null,"sourceSpan":{"end":[11,34],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq/Generic.purs","start":[10,1]},"title":"GenericEq"},{"children":[],"comments":"A `Generic` implementation of the `eq` member from the `Eq` type class.\n","info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"rep","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"},{"annotation":[],"contents":"rep","tag":"TypeVar"}],"constraintClass":[["Data","Generic","Rep"],"Generic"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"rep","tag":"TypeVar"}],"constraintClass":[["Data","Eq","Generic"],"GenericEq"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim"],"Boolean"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"ConstrainedType"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[34,79],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq/Generic.purs","start":[34,1]},"title":"genericEq"}],"name":"Data.Eq.Generic","reExports":[]}
diff --git a/tests/purs/publish/basic-example/output/Data.Eq/docs.json b/tests/purs/publish/basic-example/output/Data.Eq/docs.json
--- a/tests/purs/publish/basic-example/output/Data.Eq/docs.json
+++ b/tests/purs/publish/basic-example/output/Data.Eq/docs.json
@@ -1,1 +1,1 @@
-{"reExports":[],"name":"Data.Eq","comments":null,"declarations":[{"children":[{"comments":null,"title":"eq","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]}},"sourceSpan":{"start":[29,3],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[29,26]}},{"comments":null,"title":"eqBoolean","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Eq"],"Eq"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}},"sourceSpan":{"start":[40,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[41,13]}},{"comments":null,"title":"eqInt","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Eq"],"Eq"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}},"sourceSpan":{"start":[43,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[44,13]}},{"comments":null,"title":"eqNumber","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Eq"],"Eq"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]}},"sourceSpan":{"start":[46,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[47,13]}},{"comments":null,"title":"eqChar","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Eq"],"Eq"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Char"]}]}},"sourceSpan":{"start":[49,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[50,13]}},{"comments":null,"title":"eqString","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Eq"],"Eq"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}},"sourceSpan":{"start":[52,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[53,13]}},{"comments":null,"title":"eqUnit","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Eq"],"Eq"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}},"sourceSpan":{"start":[55,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[56,16]}},{"comments":null,"title":"eqVoid","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Eq"],"Eq"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Void"],"Void"]}]}},"sourceSpan":{"start":[58,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[59,16]}},{"comments":null,"title":"eqArray","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Eq"],"Eq"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[61,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[62,22]}},{"comments":null,"title":"eqRec","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Prim","RowList"],"RowToList"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"row"},{"annotation":[],"tag":"TypeVar","contents":"list"}],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","Eq"],"EqRecord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"list"},{"annotation":[],"tag":"TypeVar","contents":"row"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Eq"],"Eq"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"TypeVar","contents":"row"}]}]}},"sourceSpan":{"start":[64,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[65,42]}}],"comments":"The `Eq` type class represents types which support decidable equality.\n\n`Eq` instances should satisfy the following laws:\n\n- Reflexivity: `x == x = true`\n- Symmetry: `x == y = y == x`\n- Transitivity: if `x == y` and `y == z` then `x == z`\n\n**Note:** The `Number` type is not an entirely law abiding member of this\nclass due to the presence of `NaN`, since `NaN /= NaN`. Additionally,\ncomputing with `Number` can result in a loss of precision, so sometimes\nvalues that should be equivalent are not.\n","title":"Eq","info":{"fundeps":[],"arguments":[["a",null]],"declType":"typeClass","superclasses":[]},"sourceSpan":{"start":[28,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[29,26]}},{"children":[],"comments":null,"title":"(==)","info":{"declType":"alias","alias":[["Data","Eq"],{"Right":{"Left":{"Ident":"eq"}}}],"fixity":{"associativity":"infix","precedence":4}},"sourceSpan":{"start":[31,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[31,17]}},{"children":[],"comments":"`notEq` tests whether one value is _not equal_ to another. Shorthand for\n`not (eq x y)`.\n","title":"notEq","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]}]},null]}},"sourceSpan":{"start":[35,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[35,45]}},{"children":[],"comments":null,"title":"(/=)","info":{"declType":"alias","alias":[["Data","Eq"],{"Right":{"Left":{"Ident":"notEq"}}}],"fixity":{"associativity":"infix","precedence":4}},"sourceSpan":{"start":[38,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[38,20]}},{"children":[{"comments":null,"title":"eq1","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]}]},null]}},"sourceSpan":{"start":[72,3],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[72,49]}},{"comments":null,"title":"eq1Array","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Eq"],"Eq1"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]}]}},"sourceSpan":{"start":[74,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[75,11]}}],"comments":"The `Eq1` type class represents type constructors with decidable equality.\n","title":"Eq1","info":{"fundeps":[],"arguments":[["f",null]],"declType":"typeClass","superclasses":[]},"sourceSpan":{"start":[71,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[72,49]}},{"children":[],"comments":null,"title":"notEq1","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Eq"],"Eq1"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]}]}]},null]},null]}},"sourceSpan":{"start":[77,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[77,61]}},{"children":[{"comments":null,"title":"eqRecord","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Data","RowList"],"RLProxy"]},{"annotation":[],"tag":"TypeVar","contents":"rowlist"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"TypeVar","contents":"row"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"TypeVar","contents":"row"}]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]}]}},"sourceSpan":{"start":[83,3],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[83,69]}},{"comments":null,"title":"eqRowNil","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Eq"],"EqRecord"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim","RowList"],"Nil"]}]},{"annotation":[],"tag":"TypeVar","contents":"row"}]}},"sourceSpan":{"start":[85,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[86,24]}},{"comments":null,"title":"eqRowCons","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Eq"],"EqRecord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"rowlistTail"},{"annotation":[],"tag":"TypeVar","contents":"row"}],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Prim","Row"],"Cons"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"key"},{"annotation":[],"tag":"TypeVar","contents":"focus"},{"annotation":[],"tag":"TypeVar","contents":"rowTail"},{"annotation":[],"tag":"TypeVar","contents":"row"}],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","Symbol"],"IsSymbol"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"key"}],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"focus"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Eq"],"EqRecord"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim","RowList"],"Cons"]},{"annotation":[],"tag":"TypeVar","contents":"key"}]},{"annotation":[],"tag":"TypeVar","contents":"focus"}]},{"annotation":[],"tag":"TypeVar","contents":"rowlistTail"}]}]},{"annotation":[],"tag":"TypeVar","contents":"row"}]}},"sourceSpan":{"start":[88,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[99,61]}}],"comments":"A class for records where all fields have `Eq` instances, used to implement\nthe `Eq` instance for records.\n","title":"EqRecord","info":{"fundeps":[],"arguments":[["rowlist",null],["row",null]],"declType":"typeClass","superclasses":[]},"sourceSpan":{"start":[82,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[83,69]}}]}
+{"comments":null,"declarations":[{"children":[{"comments":null,"info":{"declType":"typeClassMember","type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim"],"Boolean"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[36,26],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","start":[36,3]},"title":"eq"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Eq"],"Eq"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Boolean"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[48,21],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","start":[47,1]},"title":"eqBoolean"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Eq"],"Eq"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[51,17],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","start":[50,1]},"title":"eqInt"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Eq"],"Eq"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Number"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[54,20],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","start":[53,1]},"title":"eqNumber"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Eq"],"Eq"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Char"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[57,18],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","start":[56,1]},"title":"eqChar"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Eq"],"Eq"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"String"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[60,20],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","start":[59,1]},"title":"eqString"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Eq"],"Eq"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Unit"],"Unit"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[63,16],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","start":[62,1]},"title":"eqUnit"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Eq"],"Eq"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Void"],"Void"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[66,16],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","start":[65,1]},"title":"eqVoid"},{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","Eq"],"Eq"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Eq"],"Eq"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Array"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[69,22],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","start":[68,1]},"title":"eqArray"},{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"row","tag":"TypeVar"},{"annotation":[],"contents":"list","tag":"TypeVar"}],"constraintClass":[["Prim","RowList"],"RowToList"],"constraintData":null,"constraintKindArgs":[]},{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"list","tag":"TypeVar"},{"annotation":[],"contents":"row","tag":"TypeVar"}],"constraintClass":[["Data","Eq"],"EqRecord"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Eq"],"Eq"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Record"],"tag":"TypeConstructor"},{"annotation":[],"contents":"row","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[72,38],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","start":[71,1]},"title":"eqRec"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Eq"],"Eq"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Type","Proxy"],"Proxy"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[75,16],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","start":[74,1]},"title":"eqProxy"}],"comments":"The `Eq` type class represents types which support decidable equality.\n\n`Eq` instances should satisfy the following laws:\n\n- Reflexivity: `x == x = true`\n- Symmetry: `x == y = y == x`\n- Transitivity: if `x == y` and `y == z` then `x == z`\n\n**Note:** The `Number` type is not an entirely law abiding member of this\nclass due to the presence of `NaN`, since `NaN /= NaN`. Additionally,\ncomputing with `Number` can result in a loss of precision, so sometimes\nvalues that should be equivalent are not.\n","info":{"arguments":[["a",null]],"declType":"typeClass","fundeps":[],"superclasses":[]},"kind":null,"sourceSpan":{"end":[36,26],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","start":[35,1]},"title":"Eq"},{"children":[],"comments":null,"info":{"alias":[["Data","Eq"],{"Right":{"Left":{"Ident":"eq"}}}],"declType":"alias","fixity":{"associativity":"infix","precedence":4}},"kind":null,"sourceSpan":{"end":[38,17],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","start":[38,1]},"title":"(==)"},{"children":[],"comments":"`notEq` tests whether one value is _not equal_ to another. Shorthand for\n`not (eq x y)`.\n","info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","Eq"],"Eq"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim"],"Boolean"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[42,45],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","start":[42,1]},"title":"notEq"},{"children":[],"comments":null,"info":{"alias":[["Data","Eq"],{"Right":{"Left":{"Ident":"notEq"}}}],"declType":"alias","fixity":{"associativity":"infix","precedence":4}},"kind":null,"sourceSpan":{"end":[45,20],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","start":[45,1]},"title":"(/=)"},{"children":[{"comments":null,"info":{"declType":"typeClassMember","type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","Eq"],"Eq"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":"f","tag":"TypeVar"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":"f","tag":"TypeVar"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim"],"Boolean"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"sourceSpan":{"end":[87,49],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","start":[87,3]},"title":"eq1"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Eq"],"Eq1"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Array"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[90,11],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","start":[89,1]},"title":"eq1Array"}],"comments":"The `Eq1` type class represents type constructors with decidable equality.\n","info":{"arguments":[["f",null]],"declType":"typeClass","fundeps":[],"superclasses":[]},"kind":{"keyword":"class","kind":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim"],"Constraint"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[87,49],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","start":[86,1]},"title":"Eq1"},{"children":[],"comments":null,"info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"f","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"f","tag":"TypeVar"}],"constraintClass":[["Data","Eq"],"Eq1"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","Eq"],"Eq"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":"f","tag":"TypeVar"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":"f","tag":"TypeVar"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim"],"Boolean"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"ConstrainedType"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[92,61],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","start":[92,1]},"title":"notEq1"},{"children":[{"comments":null,"info":{"declType":"typeClassMember","type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Type","Proxy"],"Proxy"],"tag":"TypeConstructor"},{"annotation":[],"contents":"rowlist","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Record"],"tag":"TypeConstructor"},{"annotation":[],"contents":"row","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Record"],"tag":"TypeConstructor"},{"annotation":[],"contents":"row","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim"],"Boolean"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[99,67],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","start":[99,3]},"title":"eqRecord"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Eq"],"EqRecord"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim","RowList"],"Nil"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":"row","tag":"TypeVar"}],"tag":"TypeApp"}},"sourceSpan":{"end":[102,24],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","start":[101,1]},"title":"eqRowNil"},{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"rowlistTail","tag":"TypeVar"},{"annotation":[],"contents":"row","tag":"TypeVar"}],"constraintClass":[["Data","Eq"],"EqRecord"],"constraintData":null,"constraintKindArgs":[]},{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"key","tag":"TypeVar"},{"annotation":[],"contents":"focus","tag":"TypeVar"},{"annotation":[],"contents":"rowTail","tag":"TypeVar"},{"annotation":[],"contents":"row","tag":"TypeVar"}],"constraintClass":[["Prim","Row"],"Cons"],"constraintData":null,"constraintKindArgs":[]},{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"key","tag":"TypeVar"}],"constraintClass":[["Data","Symbol"],"IsSymbol"],"constraintData":null,"constraintKindArgs":[]},{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"focus","tag":"TypeVar"}],"constraintClass":[["Data","Eq"],"Eq"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Eq"],"EqRecord"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim","RowList"],"Cons"],"tag":"TypeConstructor"},{"annotation":[],"contents":"key","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"focus","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"rowlistTail","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":"row","tag":"TypeVar"}],"tag":"TypeApp"}},"sourceSpan":{"end":[115,55],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","start":[104,1]},"title":"eqRowCons"}],"comments":"A class for records where all fields have `Eq` instances, used to implement\nthe `Eq` instance for records.\n","info":{"arguments":[["rowlist",null],["row",null]],"declType":"typeClass","fundeps":[],"superclasses":[]},"kind":{"keyword":"class","kind":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim","RowList"],"RowList"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Row"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim"],"Constraint"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[99,67],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","start":[98,1]},"title":"EqRecord"}],"name":"Data.Eq","reExports":[]}
diff --git a/tests/purs/publish/basic-example/output/Data.Eq/externs.json b/tests/purs/publish/basic-example/output/Data.Eq/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.Eq/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Data","Eq"],"efExports":[{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[99,61]},"Eq"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[99,61]},{"Ident":"eq"}]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[99,61]},"=="]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[99,61]},{"Ident":"notEq"}]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[99,61]},"/="]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[99,61]},"Eq1"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[99,61]},{"Ident":"eq1"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[99,61]},{"Ident":"notEq1"}]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[99,61]},"EqRecord"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[99,61]},{"Ident":"eqRecord"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"eqBoolean"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"eqInt"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"eqNumber"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"eqChar"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"eqString"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"eqUnit"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"eqVoid"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"eqArray"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"eqRec"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"eq1Array"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"eqRowNil"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"eqRowCons"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Data","HeytingAlgebra"],"eiImportType":{"Explicit":[{"ValueOpRef":[{"start":[7,29],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[7,33]},"&&"]}]},"eiImportedAs":null},{"eiModule":["Data","Symbol"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[8,21],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[8,35]},"IsSymbol"]},{"TypeRef":[{"start":[8,37],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[8,47]},"SProxy",null]},{"ValueRef":[{"start":[8,49],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[8,62]},{"Ident":"reflectSymbol"}]}]},"eiImportedAs":null},{"eiModule":["Data","Unit"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[9,19],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[9,23]},"Unit",[]]}]},"eiImportedAs":null},{"eiModule":["Data","Void"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[10,19],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[10,23]},"Void",[]]}]},"eiImportedAs":null},{"eiModule":["Prim","Row"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Row"]},{"eiModule":["Prim","RowList"],"eiImportType":{"Implicit":[]},"eiImportedAs":["RL"]},{"eiModule":["Record","Unsafe"],"eiImportType":{"Explicit":[{"ValueRef":[{"start":[13,23],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[13,32]},{"Ident":"unsafeGet"}]}]},"eiImportedAs":null},{"eiModule":["Type","Data","RowList"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[14,27],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[14,38]},"RLProxy",null]}]},"eiImportedAs":null}],"efFixities":[{"efAssociativity":"infix","efPrecedence":4,"efOperator":"==","efAlias":[["Data","Eq"],{"Left":{"Ident":"eq"}}]},{"efAssociativity":"infix","efPrecedence":4,"efOperator":"/=","efAlias":[["Data","Eq"],{"Left":{"Ident":"notEq"}}]}],"efTypeFixities":[],"efDeclarations":[{"EDType":{"edTypeName":"Eq","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[29,11],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[29,13]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"Eq","edTypeSynonymArguments":[["a",null]],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["eq",{"annotation":[{"start":[29,9],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[29,26]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[29,9],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[29,26]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[29,11],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[29,13]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[29,9],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[29,10]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[29,14],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[29,26]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[29,14],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[29,26]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[29,16],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[29,18]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[29,14],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[29,15]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[29,19],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[29,26]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]}}},{"EDClass":{"edClassName":"Eq","edClassTypeArguments":[["a",null]],"edClassMembers":[[{"Ident":"eq"},{"annotation":[{"start":[29,9],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[29,26]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[29,9],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[29,26]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[29,11],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[29,13]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[29,9],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[29,10]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[29,14],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[29,26]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[29,14],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[29,26]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[29,16],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[29,18]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[29,14],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[29,15]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[29,19],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[29,26]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]}]],"edClassConstraints":[],"edFunctionalDependencies":[]}},{"EDValue":{"edValueName":{"Ident":"eq"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[29,9],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[29,26]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[29,9],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[29,26]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[29,11],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[29,13]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[29,9],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[29,10]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[29,14],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[29,26]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[29,14],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[29,26]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[29,16],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[29,18]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[29,14],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[29,15]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[29,19],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[29,26]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]}]},16]}}},{"EDValue":{"edValueName":{"Ident":"notEq"},"edValueType":{"annotation":[{"start":[35,10],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[35,45]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[35,20],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[35,45]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[35,20],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[35,24]},[]],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[{"start":[35,23],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[35,24]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[35,28],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[35,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[35,28],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[35,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[35,30],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[35,32]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[35,28],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[35,29]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[35,33],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[35,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[35,33],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[35,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[35,35],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[35,37]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[35,33],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[35,34]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[35,38],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[35,45]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]}]},36]}}},{"EDType":{"edTypeName":"Eq1","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[72,28],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[72,31]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[72,20],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[72,24]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[72,32],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[72,34]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"Eq1","edTypeSynonymArguments":[["f",null]],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["eq1",{"annotation":[{"start":[72,10],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[72,49]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[72,20],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[72,49]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[72,20],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[72,24]},[]],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[{"start":[72,23],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[72,24]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[72,28],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[72,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[72,28],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[72,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[72,32],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[72,34]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[72,28],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[72,31]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[72,28],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[72,29]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[72,30],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[72,31]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[72,35],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[72,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[72,35],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[72,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[72,39],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[72,41]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[72,35],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[72,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[72,35],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[72,36]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[72,37],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[72,38]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[72,42],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[72,49]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]}]},null]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]}}},{"EDClass":{"edClassName":"Eq1","edClassTypeArguments":[["f",null]],"edClassMembers":[[{"Ident":"eq1"},{"annotation":[{"start":[72,10],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[72,49]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[72,20],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[72,49]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[72,20],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[72,24]},[]],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[{"start":[72,23],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[72,24]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[72,28],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[72,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[72,28],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[72,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[72,32],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[72,34]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[72,28],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[72,31]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[72,28],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[72,29]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[72,30],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[72,31]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[72,35],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[72,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[72,35],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[72,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[72,39],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[72,41]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[72,35],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[72,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[72,35],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[72,36]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[72,37],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[72,38]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[72,42],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[72,49]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]}]},null]}]],"edClassConstraints":[],"edFunctionalDependencies":[]}},{"EDValue":{"edValueName":{"Ident":"eq1"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[72,10],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[72,49]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["Data","Eq"],"Eq1"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[72,20],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[72,49]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[72,20],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[72,24]},[]],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[{"start":[72,23],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[72,24]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[72,28],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[72,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[72,28],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[72,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[72,32],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[72,34]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[72,28],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[72,31]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[72,28],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[72,29]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[72,30],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[72,31]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[72,35],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[72,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[72,35],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[72,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[72,39],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[72,41]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[72,35],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[72,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[72,35],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[72,36]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[72,37],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[72,38]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[72,42],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[72,49]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]}]}]},14]},15]}}},{"EDValue":{"edValueName":{"Ident":"notEq1"},"edValueType":{"annotation":[{"start":[77,11],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[77,61]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[77,18],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[77,61]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[77,23],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[77,61]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[77,23],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[77,28]},[]],"constraintClass":[["Data","Eq"],"Eq1"],"constraintArgs":[{"annotation":[{"start":[77,27],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[77,28]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[77,32],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[77,61]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[77,32],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[77,36]},[]],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[{"start":[77,35],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[77,36]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[77,40],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[77,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[77,40],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[77,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[77,44],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[77,46]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[77,40],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[77,43]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[77,40],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[77,41]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[77,42],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[77,43]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[77,47],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[77,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[77,47],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[77,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[77,51],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[77,53]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[77,47],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[77,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[77,47],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[77,48]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[77,49],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[77,50]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[77,54],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[77,61]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]}]}]},38]},39]}}},{"EDType":{"edTypeName":"EqRecord","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[83,15],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[83,22]},[]],"tag":"NamedKind","contents":[["Prim","RowList"],"RowList"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[83,34],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[83,40]},[]],"tag":"Row","contents":{"annotation":[{"start":[83,34],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[83,40]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"EqRecord","edTypeSynonymArguments":[["rowlist",null],["row",null]],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["eqRecord",{"annotation":[{"start":[83,15],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[83,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[83,15],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[83,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[83,31],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[83,33]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[83,15],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[83,30]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[83,15],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[83,22]},[]],"tag":"TypeConstructor","contents":[["Type","Data","RowList"],"RLProxy"]},{"annotation":[{"start":[83,23],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[83,30]},[]],"tag":"TypeVar","contents":"rowlist"}]}]},{"annotation":[{"start":[83,34],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[83,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[83,34],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[83,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[83,45],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[83,47]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[83,34],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[83,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[83,34],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[83,40]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[83,41],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[83,44]},[]],"tag":"TypeVar","contents":"row"}]}]},{"annotation":[{"start":[83,48],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[83,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[83,48],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[83,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[83,59],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[83,61]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[83,48],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[83,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[83,48],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[83,54]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[83,55],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[83,58]},[]],"tag":"TypeVar","contents":"row"}]}]},{"annotation":[{"start":[83,62],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[83,69]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]}}},{"EDClass":{"edClassName":"EqRecord","edClassTypeArguments":[["rowlist",null],["row",null]],"edClassMembers":[[{"Ident":"eqRecord"},{"annotation":[{"start":[83,15],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[83,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[83,15],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[83,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[83,31],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[83,33]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[83,15],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[83,30]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[83,15],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[83,22]},[]],"tag":"TypeConstructor","contents":[["Type","Data","RowList"],"RLProxy"]},{"annotation":[{"start":[83,23],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[83,30]},[]],"tag":"TypeVar","contents":"rowlist"}]}]},{"annotation":[{"start":[83,34],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[83,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[83,34],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[83,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[83,45],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[83,47]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[83,34],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[83,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[83,34],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[83,40]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[83,41],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[83,44]},[]],"tag":"TypeVar","contents":"row"}]}]},{"annotation":[{"start":[83,48],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[83,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[83,48],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[83,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[83,59],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[83,61]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[83,48],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[83,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[83,48],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[83,54]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[83,55],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[83,58]},[]],"tag":"TypeVar","contents":"row"}]}]},{"annotation":[{"start":[83,62],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[83,69]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]}]}]],"edClassConstraints":[],"edFunctionalDependencies":[]}},{"EDValue":{"edValueName":{"Ident":"eqRecord"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["rowlist",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["row",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["Data","Eq"],"EqRecord"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"rowlist"},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"row"}],"constraintData":null},{"annotation":[{"start":[83,15],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[83,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[83,15],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[83,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[83,31],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[83,33]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[83,15],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[83,30]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[83,15],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[83,22]},[]],"tag":"TypeConstructor","contents":[["Type","Data","RowList"],"RLProxy"]},{"annotation":[{"start":[83,23],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[83,30]},[]],"tag":"TypeVar","contents":"rowlist"}]}]},{"annotation":[{"start":[83,34],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[83,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[83,34],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[83,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[83,45],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[83,47]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[83,34],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[83,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[83,34],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[83,40]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[83,41],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[83,44]},[]],"tag":"TypeVar","contents":"row"}]}]},{"annotation":[{"start":[83,48],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[83,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[83,48],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[83,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[83,59],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[83,61]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[83,48],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[83,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[83,48],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[83,54]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[83,55],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[83,58]},[]],"tag":"TypeVar","contents":"row"}]}]},{"annotation":[{"start":[83,62],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[83,69]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]}]}]},3]},4]}}},{"EDInstance":{"edInstanceClassName":[["Data","Eq"],"Eq"],"edInstanceName":{"Ident":"eqBoolean"},"edInstanceTypes":[{"annotation":[{"start":[40,26],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[40,33]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Eq"],{"Ident":"eqBoolean"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Eq"],"Eq"],"edInstanceName":{"Ident":"eqInt"},"edInstanceTypes":[{"annotation":[{"start":[43,22],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[43,25]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Eq"],{"Ident":"eqInt"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Eq"],"Eq"],"edInstanceName":{"Ident":"eqNumber"},"edInstanceTypes":[{"annotation":[{"start":[46,25],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[46,31]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Eq"],{"Ident":"eqNumber"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Eq"],"Eq"],"edInstanceName":{"Ident":"eqChar"},"edInstanceTypes":[{"annotation":[{"start":[49,23],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[49,27]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Char"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Eq"],{"Ident":"eqChar"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Eq"],"Eq"],"edInstanceName":{"Ident":"eqString"},"edInstanceTypes":[{"annotation":[{"start":[52,25],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[52,31]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Eq"],{"Ident":"eqString"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Eq"],"Eq"],"edInstanceName":{"Ident":"eqUnit"},"edInstanceTypes":[{"annotation":[{"start":[55,23],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[55,27]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Eq"],{"Ident":"eqUnit"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Eq"],"Eq"],"edInstanceName":{"Ident":"eqVoid"},"edInstanceTypes":[{"annotation":[{"start":[58,23],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[58,27]},[]],"tag":"TypeConstructor","contents":[["Data","Void"],"Void"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Eq"],{"Ident":"eqVoid"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Eq"],"Eq"],"edInstanceName":{"Ident":"eqArray"},"edInstanceTypes":[{"annotation":[{"start":[61,33],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[61,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[61,33],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[61,38]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[61,39],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[61,40]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[61,21],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[61,25]},[]],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[{"start":[61,24],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[61,25]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","Eq"],{"Ident":"eqArray"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Eq"],"Eq"],"edInstanceName":{"Ident":"eqRec"},"edInstanceTypes":[{"annotation":[{"start":[64,69],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[64,79]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[64,69],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[64,75]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[64,76],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[64,79]},[]],"tag":"TypeVar","contents":"row"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[64,20],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[64,41]},[]],"constraintClass":[["Prim","RowList"],"RowToList"],"constraintArgs":[{"annotation":[{"start":[64,33],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[64,36]},[]],"tag":"TypeVar","contents":"row"},{"annotation":[{"start":[64,37],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[64,41]},[]],"tag":"TypeVar","contents":"list"}],"constraintData":null},{"constraintAnn":[{"start":[64,43],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[64,60]},[]],"constraintClass":[["Data","Eq"],"EqRecord"],"constraintArgs":[{"annotation":[{"start":[64,52],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[64,56]},[]],"tag":"TypeVar","contents":"list"},{"annotation":[{"start":[64,57],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[64,60]},[]],"tag":"TypeVar","contents":"row"}],"constraintData":null}],"edInstanceChain":[[["Data","Eq"],{"Ident":"eqRec"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Eq"],"Eq1"],"edInstanceName":{"Ident":"eq1Array"},"edInstanceTypes":[{"annotation":[{"start":[74,26],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[74,31]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Eq"],{"Ident":"eq1Array"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Eq"],"EqRecord"],"edInstanceName":{"Ident":"eqRowNil"},"edInstanceTypes":[{"annotation":[{"start":[85,31],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[85,37]},[]],"tag":"TypeConstructor","contents":[["Prim","RowList"],"Nil"]},{"annotation":[{"start":[85,38],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[85,41]},[]],"tag":"TypeVar","contents":"row"}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Eq"],{"Ident":"eqRowNil"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Eq"],"EqRecord"],"edInstanceName":{"Ident":"eqRowCons"},"edInstanceTypes":[{"annotation":[{"start":[94,18],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[94,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[94,18],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[94,35]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[94,18],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[94,29]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[94,18],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[94,25]},[]],"tag":"TypeConstructor","contents":[["Prim","RowList"],"Cons"]},{"annotation":[{"start":[94,26],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[94,29]},[]],"tag":"TypeVar","contents":"key"}]},{"annotation":[{"start":[94,30],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[94,35]},[]],"tag":"TypeVar","contents":"focus"}]},{"annotation":[{"start":[94,36],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[94,47]},[]],"tag":"TypeVar","contents":"rowlistTail"}]},{"annotation":[{"start":[94,49],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[94,52]},[]],"tag":"TypeVar","contents":"row"}],"edInstanceConstraints":[{"constraintAnn":[{"start":[89,10],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[89,34]},[]],"constraintClass":[["Data","Eq"],"EqRecord"],"constraintArgs":[{"annotation":[{"start":[89,19],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[89,30]},[]],"tag":"TypeVar","contents":"rowlistTail"},{"annotation":[{"start":[89,31],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[89,34]},[]],"tag":"TypeVar","contents":"row"}],"constraintData":null},{"constraintAnn":[{"start":[90,10],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[90,40]},[]],"constraintClass":[["Prim","Row"],"Cons"],"constraintArgs":[{"annotation":[{"start":[90,19],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[90,22]},[]],"tag":"TypeVar","contents":"key"},{"annotation":[{"start":[90,23],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[90,28]},[]],"tag":"TypeVar","contents":"focus"},{"annotation":[{"start":[90,29],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[90,36]},[]],"tag":"TypeVar","contents":"rowTail"},{"annotation":[{"start":[90,37],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[90,40]},[]],"tag":"TypeVar","contents":"row"}],"constraintData":null},{"constraintAnn":[{"start":[91,10],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[91,22]},[]],"constraintClass":[["Data","Symbol"],"IsSymbol"],"constraintArgs":[{"annotation":[{"start":[91,19],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[91,22]},[]],"tag":"TypeVar","contents":"key"}],"constraintData":null},{"constraintAnn":[{"start":[92,10],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[92,18]},[]],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[{"start":[92,13],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[92,18]},[]],"tag":"TypeVar","contents":"focus"}],"constraintData":null}],"edInstanceChain":[[["Data","Eq"],{"Ident":"eqRowCons"}]],"edInstanceChainIndex":0}}],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs","end":[99,61]}}
diff --git a/tests/purs/publish/basic-example/output/Data.EuclideanRing/docs.json b/tests/purs/publish/basic-example/output/Data.EuclideanRing/docs.json
--- a/tests/purs/publish/basic-example/output/Data.EuclideanRing/docs.json
+++ b/tests/purs/publish/basic-example/output/Data.EuclideanRing/docs.json
@@ -1,1 +1,1 @@
-{"reExports":[],"name":"Data.EuclideanRing","comments":null,"declarations":[{"children":[{"comments":null,"title":"degree","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}},"sourceSpan":{"start":[64,3],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[64,21]}},{"comments":null,"title":"div","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[65,3],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[65,21]}},{"comments":null,"title":"mod","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[66,3],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[66,21]}},{"comments":null,"title":"euclideanRingInt","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","EuclideanRing"],"EuclideanRing"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}},"sourceSpan":{"start":[70,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[73,15]}},{"comments":null,"title":"euclideanRingNumber","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","EuclideanRing"],"EuclideanRing"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]}},"sourceSpan":{"start":[75,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[78,16]}}],"comments":"The `EuclideanRing` class is for commutative rings that support division.\nThe mathematical structure this class is based on is sometimes also called\na *Euclidean domain*.\n\nInstances must satisfy the following laws in addition to the `Ring`\nlaws:\n\n- Integral domain: `one /= zero`, and if `a` and `b` are both nonzero then\n  so is their product `a * b`\n- Euclidean function `degree`:\n  - Nonnegativity: For all nonzero `a`, `degree a >= 0`\n  - Quotient/remainder: For all `a` and `b`, where `b` is nonzero,\n    let `q = a / b` and ``r = a `mod` b``; then `a = q*b + r`, and also\n    either `r = zero` or `degree r < degree b`\n- Submultiplicative euclidean function:\n  - For all nonzero `a` and `b`, `degree a <= degree (a * b)`\n\nThe behaviour of division by `zero` is unconstrained by these laws,\nmeaning that individual instances are free to choose how to behave in this\ncase. Similarly, there are no restrictions on what the result of\n`degree zero` is; it doesn't make sense to ask for `degree zero` in the\nsame way that it doesn't make sense to divide by `zero`, so again,\nindividual instances may choose how to handle this case.\n\nFor any `EuclideanRing` which is also a `Field`, one valid choice\nfor `degree` is simply `const 1`. In fact, unless there's a specific\nreason not to, `Field` types should normally use this definition of\n`degree`.\n\nThe `EuclideanRing Int` instance is one of the most commonly used\n`EuclideanRing` instances and deserves a little more discussion. In\nparticular, there are a few different sensible law-abiding implementations\nto choose from, with slightly different behaviour in the presence of\nnegative dividends or divisors. The most common definitions are \"truncating\"\ndivision, where the result of `a / b` is rounded towards 0, and \"Knuthian\"\nor \"flooring\" division, where the result of `a / b` is rounded towards\nnegative infinity. A slightly less common, but arguably more useful, option\nis \"Euclidean\" division, which is defined so as to ensure that ``a `mod` b``\nis always nonnegative. With Euclidean division, `a / b` rounds towards\nnegative infinity if the divisor is positive, and towards positive infinity\nif the divisor is negative. Note that all three definitions are identical if\nwe restrict our attention to nonnegative dividends and divisors.\n\nIn versions 1.x, 2.x, and 3.x of the Prelude, the `EuclideanRing Int`\ninstance used truncating division. As of 4.x, the `EuclideanRing Int`\ninstance uses Euclidean division. Additional functions `quot` and `rem` are\nsupplied if truncating division is desired.\n","title":"EuclideanRing","info":{"fundeps":[],"arguments":[["a",null]],"declType":"typeClass","superclasses":[{"constraintAnn":[],"constraintClass":[["Data","CommutativeRing"],"CommutativeRing"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}]},"sourceSpan":{"start":[63,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[66,21]}},{"children":[],"comments":null,"title":"(/)","info":{"declType":"alias","alias":[["Data","EuclideanRing"],{"Right":{"Left":{"Ident":"div"}}}],"fixity":{"associativity":"infixl","precedence":7}},"sourceSpan":{"start":[68,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[68,18]}},{"children":[],"comments":"The *greatest common divisor* of two values.\n","title":"gcd","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","EuclideanRing"],"EuclideanRing"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]}]},null]}},"sourceSpan":{"start":[87,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[87,56]}},{"children":[],"comments":"The *least common multiple* of two values.\n","title":"lcm","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","EuclideanRing"],"EuclideanRing"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]}]},null]}},"sourceSpan":{"start":[94,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[94,56]}}]}
+{"comments":null,"declarations":[{"children":[{"comments":null,"info":{"declType":"typeClassMember","type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[68,21],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","start":[68,3]},"title":"degree"},{"comments":null,"info":{"declType":"typeClassMember","type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[69,21],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","start":[69,3]},"title":"div"},{"comments":null,"info":{"declType":"typeClassMember","type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[70,21],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","start":[70,3]},"title":"mod"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","EuclideanRing"],"EuclideanRing"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[77,15],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","start":[74,1]},"title":"euclideanRingInt"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","EuclideanRing"],"EuclideanRing"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Number"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[82,16],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","start":[79,1]},"title":"euclideanRingNumber"}],"comments":"The `EuclideanRing` class is for commutative rings that support division.\nThe mathematical structure this class is based on is sometimes also called\na *Euclidean domain*.\n\nInstances must satisfy the following laws in addition to the `Ring`\nlaws:\n\n- Integral domain: `one /= zero`, and if `a` and `b` are both nonzero then\n  so is their product `a * b`\n- Euclidean function `degree`:\n  - Nonnegativity: For all nonzero `a`, `degree a >= 0`\n  - Quotient/remainder: For all `a` and `b`, where `b` is nonzero,\n    let `q = a / b` and ``r = a `mod` b``; then `a = q*b + r`, and also\n    either `r = zero` or `degree r < degree b`\n- Submultiplicative euclidean function:\n  - For all nonzero `a` and `b`, `degree a <= degree (a * b)`\n\nThe behaviour of division by `zero` is unconstrained by these laws,\nmeaning that individual instances are free to choose how to behave in this\ncase. Similarly, there are no restrictions on what the result of\n`degree zero` is; it doesn't make sense to ask for `degree zero` in the\nsame way that it doesn't make sense to divide by `zero`, so again,\nindividual instances may choose how to handle this case.\n\nFor any `EuclideanRing` which is also a `Field`, one valid choice\nfor `degree` is simply `const 1`. In fact, unless there's a specific\nreason not to, `Field` types should normally use this definition of\n`degree`.\n\nThe `EuclideanRing Int` instance is one of the most commonly used\n`EuclideanRing` instances and deserves a little more discussion. In\nparticular, there are a few different sensible law-abiding implementations\nto choose from, with slightly different behaviour in the presence of\nnegative dividends or divisors. The most common definitions are \"truncating\"\ndivision, where the result of `a / b` is rounded towards 0, and \"Knuthian\"\nor \"flooring\" division, where the result of `a / b` is rounded towards\nnegative infinity. A slightly less common, but arguably more useful, option\nis \"Euclidean\" division, which is defined so as to ensure that ``a `mod` b``\nis always nonnegative. With Euclidean division, `a / b` rounds towards\nnegative infinity if the divisor is positive, and towards positive infinity\nif the divisor is negative. Note that all three definitions are identical if\nwe restrict our attention to nonnegative dividends and divisors.\n\nIn versions 1.x, 2.x, and 3.x of the Prelude, the `EuclideanRing Int`\ninstance used truncating division. As of 4.x, the `EuclideanRing Int`\ninstance uses Euclidean division. Additional functions `quot` and `rem` are\nsupplied if truncating division is desired.\n","info":{"arguments":[["a",null]],"declType":"typeClass","fundeps":[],"superclasses":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","CommutativeRing"],"CommutativeRing"],"constraintData":null,"constraintKindArgs":[]}]},"kind":null,"sourceSpan":{"end":[70,21],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","start":[67,1]},"title":"EuclideanRing"},{"children":[],"comments":null,"info":{"alias":[["Data","EuclideanRing"],{"Right":{"Left":{"Ident":"div"}}}],"declType":"alias","fixity":{"associativity":"infixl","precedence":7}},"kind":null,"sourceSpan":{"end":[72,18],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","start":[72,1]},"title":"(/)"},{"children":[],"comments":"The *greatest common divisor* of two values.\n","info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","Eq"],"Eq"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","EuclideanRing"],"EuclideanRing"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"ConstrainedType"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[91,56],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","start":[91,1]},"title":"gcd"},{"children":[],"comments":"The *least common multiple* of two values.\n","info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","Eq"],"Eq"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","EuclideanRing"],"EuclideanRing"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"ConstrainedType"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[97,56],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","start":[97,1]},"title":"lcm"}],"name":"Data.EuclideanRing","reExports":[]}
diff --git a/tests/purs/publish/basic-example/output/Data.EuclideanRing/externs.json b/tests/purs/publish/basic-example/output/Data.EuclideanRing/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.EuclideanRing/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Data","EuclideanRing"],"efExports":[{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[98,25]},{"exportSourceImportedFrom":["Data","CommutativeRing"],"exportSourceDefinedIn":["Data","CommutativeRing"]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[98,25]},"CommutativeRing"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[98,25]},{"exportSourceImportedFrom":["Data","Ring"],"exportSourceDefinedIn":["Data","Ring"]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[98,25]},"Ring"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[98,25]},{"exportSourceImportedFrom":["Data","Semiring"],"exportSourceDefinedIn":["Data","Semiring"]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[98,25]},"Semiring"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[98,25]},{"exportSourceImportedFrom":["Data","Semiring"],"exportSourceDefinedIn":["Data","Semiring"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[98,25]},{"Ident":"add"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[98,25]},{"exportSourceImportedFrom":["Data","Semiring"],"exportSourceDefinedIn":["Data","Semiring"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[98,25]},{"Ident":"mul"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[98,25]},{"exportSourceImportedFrom":["Data","Semiring"],"exportSourceDefinedIn":["Data","Semiring"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[98,25]},{"Ident":"one"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[98,25]},{"exportSourceImportedFrom":["Data","Ring"],"exportSourceDefinedIn":["Data","Ring"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[98,25]},{"Ident":"sub"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[98,25]},{"exportSourceImportedFrom":["Data","Semiring"],"exportSourceDefinedIn":["Data","Semiring"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[98,25]},{"Ident":"zero"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[98,25]},{"exportSourceImportedFrom":["Data","Semiring"],"exportSourceDefinedIn":["Data","Semiring"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[98,25]},"*"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[98,25]},{"exportSourceImportedFrom":["Data","Semiring"],"exportSourceDefinedIn":["Data","Semiring"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[98,25]},"+"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[98,25]},{"exportSourceImportedFrom":["Data","Ring"],"exportSourceDefinedIn":["Data","Ring"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[98,25]},"-"]}]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[98,25]},"EuclideanRing"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[98,25]},{"Ident":"degree"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[98,25]},{"Ident":"div"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[98,25]},{"Ident":"mod"}]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[98,25]},"/"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[98,25]},{"Ident":"gcd"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[98,25]},{"Ident":"lcm"}]},{"ModuleRef":[{"start":[5,5],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[5,32]},["Data","CommutativeRing"]]},{"ModuleRef":[{"start":[6,5],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[6,21]},["Data","Ring"]]},{"ModuleRef":[{"start":[7,5],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[7,25]},["Data","Semiring"]]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"euclideanRingInt"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"euclideanRingNumber"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Data","BooleanAlgebra"],"eiImportType":{"Explicit":[{"ValueOpRef":[{"start":[10,29],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[10,33]},"||"]}]},"eiImportedAs":null},{"eiModule":["Data","CommutativeRing"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[11,30],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[11,51]},"CommutativeRing"]}]},"eiImportedAs":null},{"eiModule":["Data","Eq"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[12,17],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[12,25]},"Eq"]},{"ValueOpRef":[{"start":[12,27],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[12,31]},"=="]}]},"eiImportedAs":null},{"eiModule":["Data","Ring"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[13,19],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[13,29]},"Ring"]},{"ValueRef":[{"start":[13,31],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[13,34]},{"Ident":"sub"}]},{"ValueOpRef":[{"start":[13,36],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[13,39]},"-"]}]},"eiImportedAs":null},{"eiModule":["Data","Semiring"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[14,23],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[14,37]},"Semiring"]},{"ValueRef":[{"start":[14,39],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[14,42]},{"Ident":"add"}]},{"ValueRef":[{"start":[14,44],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[14,47]},{"Ident":"mul"}]},{"ValueRef":[{"start":[14,49],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[14,52]},{"Ident":"one"}]},{"ValueRef":[{"start":[14,54],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[14,58]},{"Ident":"zero"}]},{"ValueOpRef":[{"start":[14,60],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[14,63]},"*"]},{"ValueOpRef":[{"start":[14,65],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[14,68]},"+"]}]},"eiImportedAs":null}],"efFixities":[{"efAssociativity":"infixl","efPrecedence":7,"efOperator":"/","efAlias":[["Data","EuclideanRing"],{"Left":{"Ident":"div"}}]}],"efTypeFixities":[],"efDeclarations":[{"EDType":{"edTypeName":"EuclideanRing","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[64,15],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[64,17]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"EuclideanRing","edTypeSynonymArguments":[["a",null]],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["degree",{"annotation":[{"start":[64,13],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[64,21]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[64,13],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[64,21]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[64,15],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[64,17]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[64,13],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[64,14]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[64,18],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[64,21]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["div",{"annotation":[{"start":[65,10],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[65,21]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[65,10],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[65,21]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[65,12],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[65,14]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[65,10],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[65,11]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[65,15],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[65,21]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[65,15],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[65,21]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[65,17],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[65,19]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[65,15],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[65,16]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[65,20],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[65,21]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["mod",{"annotation":[{"start":[66,10],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[66,21]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[66,10],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[66,21]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[66,12],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[66,14]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[66,10],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[66,11]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[66,15],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[66,21]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[66,15],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[66,21]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[66,17],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[66,19]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[66,15],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[66,16]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[66,20],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[66,21]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["CommutativeRing0",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","CommutativeRing"],"CommutativeRing"]},{"annotation":[{"start":[63,23],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[63,24]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]}]}]}]}}},{"EDClass":{"edClassName":"EuclideanRing","edClassTypeArguments":[["a",null]],"edClassMembers":[[{"Ident":"degree"},{"annotation":[{"start":[64,13],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[64,21]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[64,13],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[64,21]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[64,15],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[64,17]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[64,13],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[64,14]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[64,18],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[64,21]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}],[{"Ident":"div"},{"annotation":[{"start":[65,10],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[65,21]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[65,10],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[65,21]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[65,12],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[65,14]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[65,10],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[65,11]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[65,15],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[65,21]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[65,15],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[65,21]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[65,17],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[65,19]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[65,15],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[65,16]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[65,20],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[65,21]},[]],"tag":"TypeVar","contents":"a"}]}]}],[{"Ident":"mod"},{"annotation":[{"start":[66,10],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[66,21]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[66,10],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[66,21]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[66,12],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[66,14]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[66,10],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[66,11]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[66,15],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[66,21]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[66,15],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[66,21]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[66,17],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[66,19]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[66,15],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[66,16]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[66,20],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[66,21]},[]],"tag":"TypeVar","contents":"a"}]}]}]],"edClassConstraints":[{"constraintAnn":[{"start":[63,7],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[63,24]},[]],"constraintClass":[["Data","CommutativeRing"],"CommutativeRing"],"constraintArgs":[{"annotation":[{"start":[63,23],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[63,24]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edFunctionalDependencies":[]}},{"EDValue":{"edValueName":{"Ident":"degree"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["Data","EuclideanRing"],"EuclideanRing"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[64,13],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[64,21]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[64,13],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[64,21]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[64,15],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[64,17]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[64,13],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[64,14]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[64,18],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[64,21]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]},7]}}},{"EDValue":{"edValueName":{"Ident":"div"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["Data","EuclideanRing"],"EuclideanRing"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[65,10],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[65,21]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[65,10],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[65,21]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[65,12],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[65,14]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[65,10],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[65,11]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[65,15],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[65,21]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[65,15],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[65,21]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[65,17],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[65,19]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[65,15],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[65,16]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[65,20],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[65,21]},[]],"tag":"TypeVar","contents":"a"}]}]}]},4]}}},{"EDValue":{"edValueName":{"Ident":"mod"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["Data","EuclideanRing"],"EuclideanRing"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[66,10],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[66,21]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[66,10],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[66,21]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[66,12],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[66,14]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[66,10],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[66,11]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[66,15],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[66,21]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[66,15],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[66,21]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[66,17],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[66,19]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[66,15],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[66,16]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[66,20],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[66,21]},[]],"tag":"TypeVar","contents":"a"}]}]}]},0]}}},{"EDValue":{"edValueName":{"Ident":"gcd"},"edValueType":{"annotation":[{"start":[87,8],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[87,56]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[87,18],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[87,56]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[87,18],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[87,22]},[]],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[{"start":[87,21],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[87,22]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[87,26],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[87,56]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[87,26],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[87,41]},[]],"constraintClass":[["Data","EuclideanRing"],"EuclideanRing"],"constraintArgs":[{"annotation":[{"start":[87,40],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[87,41]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[87,45],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[87,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[87,45],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[87,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[87,47],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[87,49]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[87,45],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[87,46]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[87,50],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[87,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[87,50],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[87,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[87,52],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[87,54]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[87,50],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[87,51]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[87,55],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[87,56]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]},1]}}},{"EDValue":{"edValueName":{"Ident":"lcm"},"edValueType":{"annotation":[{"start":[94,8],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[94,56]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[94,18],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[94,56]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[94,18],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[94,22]},[]],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[{"start":[94,21],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[94,22]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[94,26],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[94,56]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[94,26],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[94,41]},[]],"constraintClass":[["Data","EuclideanRing"],"EuclideanRing"],"constraintArgs":[{"annotation":[{"start":[94,40],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[94,41]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[94,45],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[94,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[94,45],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[94,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[94,47],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[94,49]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[94,45],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[94,46]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[94,50],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[94,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[94,50],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[94,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[94,52],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[94,54]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[94,50],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[94,51]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[94,55],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[94,56]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]},5]}}},{"EDInstance":{"edInstanceClassName":[["Data","EuclideanRing"],"EuclideanRing"],"edInstanceName":{"Ident":"euclideanRingInt"},"edInstanceTypes":[{"annotation":[{"start":[70,44],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[70,47]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","EuclideanRing"],{"Ident":"euclideanRingInt"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","EuclideanRing"],"EuclideanRing"],"edInstanceName":{"Ident":"euclideanRingNumber"},"edInstanceTypes":[{"annotation":[{"start":[75,47],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[75,53]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","EuclideanRing"],{"Ident":"euclideanRingNumber"}]],"edInstanceChainIndex":0}}],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[98,25]}}
diff --git a/tests/purs/publish/basic-example/output/Data.Field/docs.json b/tests/purs/publish/basic-example/output/Data.Field/docs.json
--- a/tests/purs/publish/basic-example/output/Data.Field/docs.json
+++ b/tests/purs/publish/basic-example/output/Data.Field/docs.json
@@ -1,1 +1,1 @@
-{"reExports":[],"name":"Data.Field","comments":null,"declarations":[{"children":[{"comments":null,"title":"field","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","EuclideanRing"],"EuclideanRing"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","DivisionRing"],"DivisionRing"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Field"],"Field"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}},"sourceSpan":{"start":[41,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Field.purs","end":[41,63]}}],"comments":"The `Field` class is for types that are (commutative) fields.\n\nMathematically, a field is a ring which is commutative and in which every\nnonzero element has a multiplicative inverse; these conditions correspond\nto the `CommutativeRing` and `DivisionRing` classes in PureScript\nrespectively. However, the `Field` class has `EuclideanRing` and\n`DivisionRing` as superclasses, which seems like a stronger requirement\n(since `CommutativeRing` is a superclass of `EuclideanRing`). In fact, it\nis not stronger, since any type which has law-abiding `CommutativeRing`\nand `DivisionRing` instances permits exactly one law-abiding\n`EuclideanRing` instance. We use a `EuclideanRing` superclass here in\norder to ensure that a `Field` constraint on a function permits you to use\n`div` on that type, since `div` is a member of `EuclideanRing`.\n\nThis class has no laws or members of its own; it exists as a convenience,\nso a single constraint can be used when field-like behaviour is expected.\n\nThis module also defines a single `Field` instance for any type which has\nboth `EuclideanRing` and `DivisionRing` instances. Any other instance\nwould overlap with this instance, so no other `Field` instances should be\ndefined in libraries. Instead, simply define `EuclideanRing` and\n`DivisionRing` instances, and this will permit your type to be used with a\n`Field` constraint.\n","title":"Field","info":{"fundeps":[],"arguments":[["a",null]],"declType":"typeClass","superclasses":[{"constraintAnn":[],"constraintClass":[["Data","EuclideanRing"],"EuclideanRing"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","DivisionRing"],"DivisionRing"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}]},"sourceSpan":{"start":[39,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Field.purs","end":[39,51]}}]}
+{"comments":null,"declarations":[{"children":[{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","EuclideanRing"],"EuclideanRing"],"constraintData":null,"constraintKindArgs":[]},{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","DivisionRing"],"DivisionRing"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Field"],"Field"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}},"sourceSpan":{"end":[41,63],"name":"../../../support/bower_components/purescript-prelude/src/Data/Field.purs","start":[41,1]},"title":"field"}],"comments":"The `Field` class is for types that are (commutative) fields.\n\nMathematically, a field is a ring which is commutative and in which every\nnonzero element has a multiplicative inverse; these conditions correspond\nto the `CommutativeRing` and `DivisionRing` classes in PureScript\nrespectively. However, the `Field` class has `EuclideanRing` and\n`DivisionRing` as superclasses, which seems like a stronger requirement\n(since `CommutativeRing` is a superclass of `EuclideanRing`). In fact, it\nis not stronger, since any type which has law-abiding `CommutativeRing`\nand `DivisionRing` instances permits exactly one law-abiding\n`EuclideanRing` instance. We use a `EuclideanRing` superclass here in\norder to ensure that a `Field` constraint on a function permits you to use\n`div` on that type, since `div` is a member of `EuclideanRing`.\n\nThis class has no laws or members of its own; it exists as a convenience,\nso a single constraint can be used when field-like behaviour is expected.\n\nThis module also defines a single `Field` instance for any type which has\nboth `EuclideanRing` and `DivisionRing` instances. Any other instance\nwould overlap with this instance, so no other `Field` instances should be\ndefined in libraries. Instead, simply define `EuclideanRing` and\n`DivisionRing` instances, and this will permit your type to be used with a\n`Field` constraint.\n","info":{"arguments":[["a",null]],"declType":"typeClass","fundeps":[],"superclasses":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","EuclideanRing"],"EuclideanRing"],"constraintData":null,"constraintKindArgs":[]},{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","DivisionRing"],"DivisionRing"],"constraintData":null,"constraintKindArgs":[]}]},"kind":null,"sourceSpan":{"end":[39,51],"name":"../../../support/bower_components/purescript-prelude/src/Data/Field.purs","start":[39,1]},"title":"Field"}],"name":"Data.Field","reExports":[]}
diff --git a/tests/purs/publish/basic-example/output/Data.Field/externs.json b/tests/purs/publish/basic-example/output/Data.Field/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.Field/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Data","Field"],"efExports":[{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Field.purs","end":[41,63]},{"exportSourceImportedFrom":["Data","CommutativeRing"],"exportSourceDefinedIn":["Data","CommutativeRing"]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Field.purs","end":[41,63]},"CommutativeRing"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Field.purs","end":[41,63]},{"exportSourceImportedFrom":["Data","DivisionRing"],"exportSourceDefinedIn":["Data","DivisionRing"]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Field.purs","end":[41,63]},"DivisionRing"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Field.purs","end":[41,63]},{"exportSourceImportedFrom":["Data","EuclideanRing"],"exportSourceDefinedIn":["Data","EuclideanRing"]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Field.purs","end":[41,63]},"EuclideanRing"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Field.purs","end":[41,63]},{"exportSourceImportedFrom":["Data","Ring"],"exportSourceDefinedIn":["Data","Ring"]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Field.purs","end":[41,63]},"Ring"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Field.purs","end":[41,63]},{"exportSourceImportedFrom":["Data","Semiring"],"exportSourceDefinedIn":["Data","Semiring"]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Field.purs","end":[41,63]},"Semiring"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Field.purs","end":[41,63]},{"exportSourceImportedFrom":["Data","Semiring"],"exportSourceDefinedIn":["Data","Semiring"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Field.purs","end":[41,63]},{"Ident":"add"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Field.purs","end":[41,63]},{"exportSourceImportedFrom":["Data","EuclideanRing"],"exportSourceDefinedIn":["Data","EuclideanRing"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Field.purs","end":[41,63]},{"Ident":"degree"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Field.purs","end":[41,63]},{"exportSourceImportedFrom":["Data","EuclideanRing"],"exportSourceDefinedIn":["Data","EuclideanRing"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Field.purs","end":[41,63]},{"Ident":"div"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Field.purs","end":[41,63]},{"exportSourceImportedFrom":["Data","EuclideanRing"],"exportSourceDefinedIn":["Data","EuclideanRing"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Field.purs","end":[41,63]},{"Ident":"gcd"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Field.purs","end":[41,63]},{"exportSourceImportedFrom":["Data","EuclideanRing"],"exportSourceDefinedIn":["Data","EuclideanRing"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Field.purs","end":[41,63]},{"Ident":"lcm"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Field.purs","end":[41,63]},{"exportSourceImportedFrom":["Data","EuclideanRing"],"exportSourceDefinedIn":["Data","EuclideanRing"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Field.purs","end":[41,63]},{"Ident":"mod"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Field.purs","end":[41,63]},{"exportSourceImportedFrom":["Data","Semiring"],"exportSourceDefinedIn":["Data","Semiring"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Field.purs","end":[41,63]},{"Ident":"mul"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Field.purs","end":[41,63]},{"exportSourceImportedFrom":["Data","Ring"],"exportSourceDefinedIn":["Data","Ring"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Field.purs","end":[41,63]},{"Ident":"negate"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Field.purs","end":[41,63]},{"exportSourceImportedFrom":["Data","Semiring"],"exportSourceDefinedIn":["Data","Semiring"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Field.purs","end":[41,63]},{"Ident":"one"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Field.purs","end":[41,63]},{"exportSourceImportedFrom":["Data","DivisionRing"],"exportSourceDefinedIn":["Data","DivisionRing"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Field.purs","end":[41,63]},{"Ident":"recip"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Field.purs","end":[41,63]},{"exportSourceImportedFrom":["Data","Ring"],"exportSourceDefinedIn":["Data","Ring"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Field.purs","end":[41,63]},{"Ident":"sub"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Field.purs","end":[41,63]},{"exportSourceImportedFrom":["Data","Semiring"],"exportSourceDefinedIn":["Data","Semiring"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Field.purs","end":[41,63]},{"Ident":"zero"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Field.purs","end":[41,63]},{"exportSourceImportedFrom":["Data","Semiring"],"exportSourceDefinedIn":["Data","Semiring"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Field.purs","end":[41,63]},"*"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Field.purs","end":[41,63]},{"exportSourceImportedFrom":["Data","Semiring"],"exportSourceDefinedIn":["Data","Semiring"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Field.purs","end":[41,63]},"+"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Field.purs","end":[41,63]},{"exportSourceImportedFrom":["Data","EuclideanRing"],"exportSourceDefinedIn":["Data","EuclideanRing"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Field.purs","end":[41,63]},"/"]}]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Field.purs","end":[41,63]},"Field"]},{"ModuleRef":[{"start":[3,5],"name":"../../../support/bower_components/purescript-prelude/src/Data/Field.purs","end":[3,29]},["Data","DivisionRing"]]},{"ModuleRef":[{"start":[4,5],"name":"../../../support/bower_components/purescript-prelude/src/Data/Field.purs","end":[4,32]},["Data","CommutativeRing"]]},{"ModuleRef":[{"start":[5,5],"name":"../../../support/bower_components/purescript-prelude/src/Data/Field.purs","end":[5,30]},["Data","EuclideanRing"]]},{"ModuleRef":[{"start":[6,5],"name":"../../../support/bower_components/purescript-prelude/src/Data/Field.purs","end":[6,21]},["Data","Ring"]]},{"ModuleRef":[{"start":[7,5],"name":"../../../support/bower_components/purescript-prelude/src/Data/Field.purs","end":[7,25]},["Data","Semiring"]]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"field"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Data","DivisionRing"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[10,27],"name":"../../../support/bower_components/purescript-prelude/src/Data/Field.purs","end":[10,45]},"DivisionRing"]},{"ValueRef":[{"start":[10,47],"name":"../../../support/bower_components/purescript-prelude/src/Data/Field.purs","end":[10,52]},{"Ident":"recip"}]}]},"eiImportedAs":null},{"eiModule":["Data","CommutativeRing"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[11,30],"name":"../../../support/bower_components/purescript-prelude/src/Data/Field.purs","end":[11,51]},"CommutativeRing"]}]},"eiImportedAs":null},{"eiModule":["Data","EuclideanRing"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[12,28],"name":"../../../support/bower_components/purescript-prelude/src/Data/Field.purs","end":[12,47]},"EuclideanRing"]},{"ValueRef":[{"start":[12,49],"name":"../../../support/bower_components/purescript-prelude/src/Data/Field.purs","end":[12,55]},{"Ident":"degree"}]},{"ValueRef":[{"start":[12,57],"name":"../../../support/bower_components/purescript-prelude/src/Data/Field.purs","end":[12,60]},{"Ident":"div"}]},{"ValueRef":[{"start":[12,62],"name":"../../../support/bower_components/purescript-prelude/src/Data/Field.purs","end":[12,65]},{"Ident":"mod"}]},{"ValueOpRef":[{"start":[12,67],"name":"../../../support/bower_components/purescript-prelude/src/Data/Field.purs","end":[12,70]},"/"]},{"ValueRef":[{"start":[12,72],"name":"../../../support/bower_components/purescript-prelude/src/Data/Field.purs","end":[12,75]},{"Ident":"gcd"}]},{"ValueRef":[{"start":[12,77],"name":"../../../support/bower_components/purescript-prelude/src/Data/Field.purs","end":[12,80]},{"Ident":"lcm"}]}]},"eiImportedAs":null},{"eiModule":["Data","Ring"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[13,19],"name":"../../../support/bower_components/purescript-prelude/src/Data/Field.purs","end":[13,29]},"Ring"]},{"ValueRef":[{"start":[13,31],"name":"../../../support/bower_components/purescript-prelude/src/Data/Field.purs","end":[13,37]},{"Ident":"negate"}]},{"ValueRef":[{"start":[13,39],"name":"../../../support/bower_components/purescript-prelude/src/Data/Field.purs","end":[13,42]},{"Ident":"sub"}]}]},"eiImportedAs":null},{"eiModule":["Data","Semiring"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[14,23],"name":"../../../support/bower_components/purescript-prelude/src/Data/Field.purs","end":[14,37]},"Semiring"]},{"ValueRef":[{"start":[14,39],"name":"../../../support/bower_components/purescript-prelude/src/Data/Field.purs","end":[14,42]},{"Ident":"add"}]},{"ValueRef":[{"start":[14,44],"name":"../../../support/bower_components/purescript-prelude/src/Data/Field.purs","end":[14,47]},{"Ident":"mul"}]},{"ValueRef":[{"start":[14,49],"name":"../../../support/bower_components/purescript-prelude/src/Data/Field.purs","end":[14,52]},{"Ident":"one"}]},{"ValueRef":[{"start":[14,54],"name":"../../../support/bower_components/purescript-prelude/src/Data/Field.purs","end":[14,58]},{"Ident":"zero"}]},{"ValueOpRef":[{"start":[14,60],"name":"../../../support/bower_components/purescript-prelude/src/Data/Field.purs","end":[14,63]},"*"]},{"ValueOpRef":[{"start":[14,65],"name":"../../../support/bower_components/purescript-prelude/src/Data/Field.purs","end":[14,68]},"+"]}]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDType":{"edTypeName":"Field","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"Field","edTypeSynonymArguments":[["a",null]],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["EuclideanRing0",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","EuclideanRing"],"EuclideanRing"]},{"annotation":[{"start":[39,22],"name":"../../../support/bower_components/purescript-prelude/src/Data/Field.purs","end":[39,23]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["DivisionRing1",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","DivisionRing"],"DivisionRing"]},{"annotation":[{"start":[39,38],"name":"../../../support/bower_components/purescript-prelude/src/Data/Field.purs","end":[39,39]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]}]}}},{"EDClass":{"edClassName":"Field","edClassTypeArguments":[["a",null]],"edClassMembers":[],"edClassConstraints":[{"constraintAnn":[{"start":[39,8],"name":"../../../support/bower_components/purescript-prelude/src/Data/Field.purs","end":[39,23]},[]],"constraintClass":[["Data","EuclideanRing"],"EuclideanRing"],"constraintArgs":[{"annotation":[{"start":[39,22],"name":"../../../support/bower_components/purescript-prelude/src/Data/Field.purs","end":[39,23]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"constraintAnn":[{"start":[39,25],"name":"../../../support/bower_components/purescript-prelude/src/Data/Field.purs","end":[39,39]},[]],"constraintClass":[["Data","DivisionRing"],"DivisionRing"],"constraintArgs":[{"annotation":[{"start":[39,38],"name":"../../../support/bower_components/purescript-prelude/src/Data/Field.purs","end":[39,39]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edFunctionalDependencies":[]}},{"EDInstance":{"edInstanceClassName":[["Data","Field"],"Field"],"edInstanceName":{"Ident":"field"},"edInstanceTypes":[{"annotation":[{"start":[41,62],"name":"../../../support/bower_components/purescript-prelude/src/Data/Field.purs","end":[41,63]},[]],"tag":"TypeVar","contents":"a"}],"edInstanceConstraints":[{"constraintAnn":[{"start":[41,20],"name":"../../../support/bower_components/purescript-prelude/src/Data/Field.purs","end":[41,35]},[]],"constraintClass":[["Data","EuclideanRing"],"EuclideanRing"],"constraintArgs":[{"annotation":[{"start":[41,34],"name":"../../../support/bower_components/purescript-prelude/src/Data/Field.purs","end":[41,35]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"constraintAnn":[{"start":[41,37],"name":"../../../support/bower_components/purescript-prelude/src/Data/Field.purs","end":[41,51]},[]],"constraintClass":[["Data","DivisionRing"],"DivisionRing"],"constraintArgs":[{"annotation":[{"start":[41,50],"name":"../../../support/bower_components/purescript-prelude/src/Data/Field.purs","end":[41,51]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","Field"],{"Ident":"field"}]],"edInstanceChainIndex":0}}],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Field.purs","end":[41,63]}}
diff --git a/tests/purs/publish/basic-example/output/Data.Foldable/docs.json b/tests/purs/publish/basic-example/output/Data.Foldable/docs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.Foldable/docs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"reExports":[],"name":"Data.Foldable","comments":null,"declarations":[{"children":[{"comments":null,"title":"foldr","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}]},null]},null]}},"sourceSpan":{"start":[65,3],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[65,54]}},{"comments":null,"title":"foldl","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}]},null]},null]}},"sourceSpan":{"start":[66,3],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[66,54]}},{"comments":null,"title":"foldMap","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Monoid"],"Monoid"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"m"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeVar","contents":"m"}]}]}]},null]},null]}},"sourceSpan":{"start":[67,3],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[67,58]}},{"comments":null,"title":"foldableArray","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Foldable"],"Foldable"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]}]}},"sourceSpan":{"start":[121,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[124,28]}},{"comments":null,"title":"foldableMaybe","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Foldable"],"Foldable"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]}]}},"sourceSpan":{"start":[129,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[135,27]}},{"comments":null,"title":"foldableFirst","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Foldable"],"Foldable"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe","First"],"First"]}]}},"sourceSpan":{"start":[137,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[140,36]}},{"comments":null,"title":"foldableLast","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Foldable"],"Foldable"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe","Last"],"Last"]}]}},"sourceSpan":{"start":[142,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[145,35]}},{"comments":null,"title":"foldableAdditive","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Foldable"],"Foldable"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Additive"],"Additive"]}]}},"sourceSpan":{"start":[147,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[150,31]}},{"comments":null,"title":"foldableDual","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Foldable"],"Foldable"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Dual"],"Dual"]}]}},"sourceSpan":{"start":[152,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[155,27]}},{"comments":null,"title":"foldableDisj","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Foldable"],"Foldable"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Disj"],"Disj"]}]}},"sourceSpan":{"start":[157,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[160,27]}},{"comments":null,"title":"foldableConj","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Foldable"],"Foldable"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Conj"],"Conj"]}]}},"sourceSpan":{"start":[162,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[165,27]}},{"comments":null,"title":"foldableMultiplicative","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Foldable"],"Foldable"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Multiplicative"],"Multiplicative"]}]}},"sourceSpan":{"start":[167,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[170,37]}}],"comments":"`Foldable` represents data structures which can be _folded_.\n\n- `foldr` folds a structure from the right\n- `foldl` folds a structure from the left\n- `foldMap` folds a structure by accumulating values in a `Monoid`\n\nDefault implementations are provided by the following functions:\n\n- `foldrDefault`\n- `foldlDefault`\n- `foldMapDefaultR`\n- `foldMapDefaultL`\n\nNote: some combinations of the default implementations are unsafe to\nuse together - causing a non-terminating mutually recursive cycle.\nThese combinations are documented per function.\n","title":"Foldable","info":{"fundeps":[],"arguments":[["f",null]],"declType":"typeClass","superclasses":[]},"sourceSpan":{"start":[64,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[67,58]}},{"children":[],"comments":"A default implementation of `foldr` using `foldMap`.\n\nNote: when defining a `Foldable` instance, this function is unsafe to use\nin combination with `foldMapDefaultR`.\n","title":"foldrDefault","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Foldable"],"Foldable"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}]}]},null]},null]},null]}},"sourceSpan":{"start":[73,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[79,7]}},{"children":[],"comments":"A default implementation of `foldl` using `foldMap`.\n\nNote: when defining a `Foldable` instance, this function is unsafe to use\nin combination with `foldMapDefaultL`.\n","title":"foldlDefault","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Foldable"],"Foldable"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}]}]},null]},null]},null]}},"sourceSpan":{"start":[86,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[92,7]}},{"children":[],"comments":"A default implementation of `foldMap` using `foldl`.\n\nNote: when defining a `Foldable` instance, this function is unsafe to use\nin combination with `foldlDefault`.\n","title":"foldMapDefaultL","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Foldable"],"Foldable"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Monoid"],"Monoid"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"m"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeVar","contents":"m"}]}]}]}]},null]},null]},null]}},"sourceSpan":{"start":[112,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[118,7]}},{"children":[],"comments":"A default implementation of `foldMap` using `foldr`.\n\nNote: when defining a `Foldable` instance, this function is unsafe to use\nin combination with `foldrDefault`.\n","title":"foldMapDefaultR","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Foldable"],"Foldable"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Monoid"],"Monoid"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"m"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeVar","contents":"m"}]}]}]}]},null]},null]},null]}},"sourceSpan":{"start":[99,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[105,7]}},{"children":[],"comments":"Fold a data structure, accumulating values in some `Monoid`.\n","title":"fold","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Foldable"],"Foldable"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Monoid"],"Monoid"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"m"}]}]},{"annotation":[],"tag":"TypeVar","contents":"m"}]}]}]},null]},null]}},"sourceSpan":{"start":[173,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[173,55]}},{"children":[],"comments":"Similar to 'foldl', but the result is encapsulated in a monad.\n\nNote: this function is not generally stack-safe, e.g., for monads which\nbuild up thunks a la `Eff`.\n","title":"foldM","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Foldable"],"Foldable"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Monad"],"Monad"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]}]}]}]},null]},null]},null]},null]}},"sourceSpan":{"start":[180,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[180,85]}},{"children":[],"comments":"Traverse a data structure, performing some effects encoded by an\n`Applicative` functor at each value, ignoring the final result.\n\nFor example:\n\n```purescript\ntraverse_ print [1, 2, 3]\n```\n","title":"traverse_","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Applicative"],"Applicative"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Foldable"],"Foldable"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}]}]}]},null]},null]},null]},null]}},"sourceSpan":{"start":[191,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[197,12]}},{"children":[],"comments":"A version of `traverse_` with its arguments flipped.\n\nThis can be useful when running an action written using do notation\nfor every element in a data structure:\n\nFor example:\n\n```purescript\nfor_ [1, 2, 3] \\n -> do\n  print n\n  trace \"squared is\"\n  print (n * n)\n```\n","title":"for_","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Applicative"],"Applicative"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Foldable"],"Foldable"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}]}]}]},null]},null]},null]},null]}},"sourceSpan":{"start":[213,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[219,12]}},{"children":[],"comments":"Perform all of the effects in some data structure in the order\ngiven by the `Foldable` instance, ignoring the final result.\n\nFor example:\n\n```purescript\nsequence_ [ trace \"Hello, \", trace \" world!\" ]\n```\n","title":"sequence_","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Applicative"],"Applicative"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Foldable"],"Foldable"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}]}]},null]},null]},null]}},"sourceSpan":{"start":[230,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[230,76]}},{"children":[],"comments":"Combines a collection of elements using the `Alt` operation.\n","title":"oneOf","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["g",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Foldable"],"Foldable"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Plus"],"Plus"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"g"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"g"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"g"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]}]},null]},null]},null]}},"sourceSpan":{"start":[234,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[234,62]}},{"children":[],"comments":"Folds a structure into some `Plus`.\n","title":"oneOfMap","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["g",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Foldable"],"Foldable"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Plus"],"Plus"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"g"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"g"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"g"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}]}]}]},null]},null]},null]},null]}},"sourceSpan":{"start":[238,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[238,77]}},{"children":[],"comments":"Fold a data structure, accumulating values in some `Monoid`,\ncombining adjacent elements using the specified separator.\n","title":"intercalate","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Foldable"],"Foldable"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Monoid"],"Monoid"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"m"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"m"}]}]},{"annotation":[],"tag":"TypeVar","contents":"m"}]}]}]}]},null]},null]}},"sourceSpan":{"start":[243,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[243,67]}},{"children":[],"comments":"`foldMap` but with each element surrounded by some fixed value.\n\nFor example:\n\n```purescript\n> surroundMap \"*\" show []\n= \"*\"\n\n> surroundMap \"*\" show [1]\n= \"*1*\"\n\n> surroundMap \"*\" show [1, 2]\n= \"*1*2*\"\n\n> surroundMap \"*\" show [1, 2, 3]\n= \"*1*2*3*\"\n```\n","title":"surroundMap","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Foldable"],"Foldable"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Semigroup"],"Semigroup"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"m"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"m"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeVar","contents":"m"}]}]}]}]}]},null]},null]},null]}},"sourceSpan":{"start":[266,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[266,84]}},{"children":[],"comments":"`fold` but with each element surrounded by some fixed value.\n\nFor example:\n\n```purescript\n> surround \"*\" []\n= \"*\"\n\n> surround \"*\" [\"1\"]\n= \"*1*\"\n\n> surround \"*\" [\"1\", \"2\"]\n= \"*1*2*\"\n\n> surround \"*\" [\"1\", \"2\", \"3\"]\n= \"*1*2*3*\"\n```\n","title":"surround","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Foldable"],"Foldable"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Semigroup"],"Semigroup"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"m"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"m"}]}]},{"annotation":[],"tag":"TypeVar","contents":"m"}]}]}]}]},null]},null]}},"sourceSpan":{"start":[287,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[287,67]}},{"children":[],"comments":"The conjunction of all the values in a data structure. When specialized\nto `Boolean`, this function will test whether all of the values in a data\nstructure are `true`.\n","title":"and","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Foldable"],"Foldable"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","HeytingAlgebra"],"HeytingAlgebra"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]},null]},null]}},"sourceSpan":{"start":[293,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[293,62]}},{"children":[],"comments":"The disjunction of all the values in a data structure. When specialized\nto `Boolean`, this function will test whether any of the values in a data\nstructure is `true`.\n","title":"or","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Foldable"],"Foldable"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","HeytingAlgebra"],"HeytingAlgebra"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]},null]},null]}},"sourceSpan":{"start":[299,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[299,61]}},{"children":[],"comments":"`all f` is the same as `and <<< map f`; map a function over the structure,\nand then get the conjunction of the results.\n","title":"all","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Foldable"],"Foldable"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","HeytingAlgebra"],"HeytingAlgebra"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"b"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}]}]},null]},null]},null]}},"sourceSpan":{"start":[304,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[304,76]}},{"children":[],"comments":"`any f` is the same as `or <<< map f`; map a function over the structure,\nand then get the disjunction of the results.\n","title":"any","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Foldable"],"Foldable"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","HeytingAlgebra"],"HeytingAlgebra"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"b"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}]}]},null]},null]},null]}},"sourceSpan":{"start":[309,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[309,76]}},{"children":[],"comments":"Find the sum of the numeric values in a data structure.\n","title":"sum","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Foldable"],"Foldable"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Semiring"],"Semiring"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]},null]},null]}},"sourceSpan":{"start":[313,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[313,56]}},{"children":[],"comments":"Find the product of the numeric values in a data structure.\n","title":"product","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Foldable"],"Foldable"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Semiring"],"Semiring"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]},null]},null]}},"sourceSpan":{"start":[317,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[317,60]}},{"children":[],"comments":"Test whether a value is an element of a data structure.\n","title":"elem","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Foldable"],"Foldable"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]}]}]},null]},null]}},"sourceSpan":{"start":[321,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[321,62]}},{"children":[],"comments":"Test whether a value is not an element of a data structure.\n","title":"notElem","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Foldable"],"Foldable"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]}]}]},null]},null]}},"sourceSpan":{"start":[325,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[325,65]}},{"children":[],"comments":"Try to get nth element from the left in a data structure\n","title":"indexl","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Foldable"],"Foldable"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]}]},null]},null]}},"sourceSpan":{"start":[329,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[329,58]}},{"children":[],"comments":"Try to get nth element from the right in a data structure\n","title":"indexr","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Foldable"],"Foldable"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]}]},null]},null]}},"sourceSpan":{"start":[341,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[341,58]}},{"children":[],"comments":"Try to find an element in a data structure which satisfies a predicate.\n","title":"find","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Foldable"],"Foldable"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]}]},null]},null]}},"sourceSpan":{"start":[353,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[353,67]}},{"children":[],"comments":"Try to find an element in a data structure which satisfies a predicate mapping.\n","title":"findMap","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Foldable"],"Foldable"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}]}]},null]},null]},null]}},"sourceSpan":{"start":[360,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[360,72]}},{"children":[],"comments":"Find the largest element of a structure, according to its `Ord` instance.\n","title":"maximum","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Foldable"],"Foldable"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]}]},null]},null]}},"sourceSpan":{"start":[367,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[367,61]}},{"children":[],"comments":"Find the largest element of a structure, according to a given comparison\nfunction. The comparison function should represent a total ordering (see\nthe `Ord` type class laws); if it does not, the behaviour is undefined.\n","title":"maximumBy","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Foldable"],"Foldable"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ordering"],"Ordering"]}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]}]},null]},null]}},"sourceSpan":{"start":[373,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[373,78]}},{"children":[],"comments":"Find the smallest element of a structure, according to its `Ord` instance.\n","title":"minimum","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Foldable"],"Foldable"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]}]},null]},null]}},"sourceSpan":{"start":[380,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[380,61]}},{"children":[],"comments":"Find the smallest element of a structure, according to a given comparison\nfunction. The comparison function should represent a total ordering (see\nthe `Ord` type class laws); if it does not, the behaviour is undefined.\n","title":"minimumBy","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Foldable"],"Foldable"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ordering"],"Ordering"]}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]}]},null]},null]}},"sourceSpan":{"start":[386,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[386,78]}},{"children":[],"comments":"Test whether the structure is empty.\nOptimized for structures that are similar to cons-lists, because there\nis no general way to do better.\n","title":"null","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Foldable"],"Foldable"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]},null]},null]}},"sourceSpan":{"start":[395,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[395,49]}},{"children":[],"comments":"Returns the size/length of a finite structure.\nOptimized for structures that are similar to cons-lists, because there\nis no general way to do better.\n","title":"length","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Foldable"],"Foldable"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Semiring"],"Semiring"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"b"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}]},null]},null]},null]}},"sourceSpan":{"start":[401,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[401,61]}}]}
diff --git a/tests/purs/publish/basic-example/output/Data.Foldable/externs.json b/tests/purs/publish/basic-example/output/Data.Foldable/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.Foldable/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Data","Foldable"],"efExports":[{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[402,40]},"Foldable"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[402,40]},{"Ident":"foldr"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[402,40]},{"Ident":"foldl"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[402,40]},{"Ident":"foldMap"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[402,40]},{"Ident":"foldrDefault"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[402,40]},{"Ident":"foldlDefault"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[402,40]},{"Ident":"foldMapDefaultL"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[402,40]},{"Ident":"foldMapDefaultR"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[402,40]},{"Ident":"fold"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[402,40]},{"Ident":"foldM"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[402,40]},{"Ident":"traverse_"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[402,40]},{"Ident":"for_"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[402,40]},{"Ident":"sequence_"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[402,40]},{"Ident":"oneOf"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[402,40]},{"Ident":"oneOfMap"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[402,40]},{"Ident":"intercalate"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[402,40]},{"Ident":"surroundMap"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[402,40]},{"Ident":"surround"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[402,40]},{"Ident":"and"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[402,40]},{"Ident":"or"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[402,40]},{"Ident":"all"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[402,40]},{"Ident":"any"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[402,40]},{"Ident":"sum"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[402,40]},{"Ident":"product"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[402,40]},{"Ident":"elem"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[402,40]},{"Ident":"notElem"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[402,40]},{"Ident":"indexl"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[402,40]},{"Ident":"indexr"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[402,40]},{"Ident":"find"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[402,40]},{"Ident":"findMap"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[402,40]},{"Ident":"maximum"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[402,40]},{"Ident":"maximumBy"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[402,40]},{"Ident":"minimum"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[402,40]},{"Ident":"minimumBy"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[402,40]},{"Ident":"null"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[402,40]},{"Ident":"length"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"foldableArray"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"foldableMaybe"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"foldableFirst"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"foldableLast"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"foldableAdditive"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"foldableDual"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"foldableDisj"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"foldableConj"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"foldableMultiplicative"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Prelude"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Control","Plus"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[36,22],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[36,32]},"Plus"]},{"ValueRef":[{"start":[36,34],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[36,37]},{"Ident":"alt"}]},{"ValueRef":[{"start":[36,39],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[36,44]},{"Ident":"empty"}]}]},"eiImportedAs":null},{"eiModule":["Data","Maybe"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[37,20],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[37,29]},"Maybe",null]}]},"eiImportedAs":null},{"eiModule":["Data","Maybe","First"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[38,26],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[38,35]},"First",null]}]},"eiImportedAs":null},{"eiModule":["Data","Maybe","Last"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[39,25],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[39,33]},"Last",null]}]},"eiImportedAs":null},{"eiModule":["Data","Monoid","Additive"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[40,30],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[40,42]},"Additive",null]}]},"eiImportedAs":null},{"eiModule":["Data","Monoid","Conj"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[41,26],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[41,34]},"Conj",null]}]},"eiImportedAs":null},{"eiModule":["Data","Monoid","Disj"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[42,26],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[42,34]},"Disj",null]}]},"eiImportedAs":null},{"eiModule":["Data","Monoid","Dual"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[43,26],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[43,34]},"Dual",null]}]},"eiImportedAs":null},{"eiModule":["Data","Monoid","Endo"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[44,26],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[44,34]},"Endo",null]}]},"eiImportedAs":null},{"eiModule":["Data","Monoid","Multiplicative"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[45,36],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[45,54]},"Multiplicative",null]}]},"eiImportedAs":null},{"eiModule":["Data","Newtype"],"eiImportType":{"Explicit":[{"ValueRef":[{"start":[46,22],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[46,26]},{"Ident":"alaF"}]},{"ValueRef":[{"start":[46,28],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[46,34]},{"Ident":"unwrap"}]}]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDType":{"edTypeName":"Foldable","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[65,46],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[65,49]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[65,27],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[65,29]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[65,50],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[65,52]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"Foldable","edTypeSynonymArguments":[["f",null]],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["foldr",{"annotation":[{"start":[65,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[65,54]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[65,19],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[65,54]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[65,24],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[65,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[65,24],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[65,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[65,38],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[65,40]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[65,25],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[65,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[65,25],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[65,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[65,27],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[65,29]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[65,25],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[65,26]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[65,30],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[65,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[65,30],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[65,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[65,32],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[65,34]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[65,30],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[65,31]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[65,35],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[65,36]},[]],"tag":"TypeVar","contents":"b"}]}]}]},{"annotation":[{"start":[65,41],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[65,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[65,41],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[65,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[65,43],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[65,45]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[65,41],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[65,42]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[65,46],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[65,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[65,46],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[65,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[65,50],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[65,52]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[65,46],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[65,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[65,46],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[65,47]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[65,48],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[65,49]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[65,53],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[65,54]},[]],"tag":"TypeVar","contents":"b"}]}]}]},null]},null]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["foldl",{"annotation":[{"start":[66,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[66,54]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[66,19],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[66,54]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[66,24],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[66,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[66,24],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[66,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[66,38],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[66,40]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[66,25],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[66,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[66,25],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[66,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[66,27],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[66,29]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[66,25],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[66,26]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[66,30],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[66,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[66,30],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[66,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[66,32],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[66,34]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[66,30],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[66,31]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[66,35],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[66,36]},[]],"tag":"TypeVar","contents":"b"}]}]}]},{"annotation":[{"start":[66,41],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[66,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[66,41],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[66,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[66,43],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[66,45]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[66,41],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[66,42]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[66,46],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[66,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[66,46],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[66,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[66,50],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[66,52]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[66,46],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[66,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[66,46],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[66,47]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[66,48],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[66,49]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[66,53],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[66,54]},[]],"tag":"TypeVar","contents":"b"}]}]}]},null]},null]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["foldMap",{"annotation":[{"start":[67,14],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[67,58]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[67,21],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[67,58]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[67,26],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[67,58]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[67,26],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[67,34]},[]],"constraintClass":[["Data","Monoid"],"Monoid"],"constraintArgs":[{"annotation":[{"start":[67,33],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[67,34]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[67,38],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[67,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[67,38],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[67,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[67,47],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[67,49]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[67,39],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[67,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[67,39],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[67,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[67,41],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[67,43]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[67,39],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[67,40]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[67,44],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[67,45]},[]],"tag":"TypeVar","contents":"m"}]}]},{"annotation":[{"start":[67,50],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[67,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[67,50],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[67,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[67,54],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[67,56]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[67,50],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[67,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[67,50],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[67,51]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[67,52],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[67,53]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[67,57],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[67,58]},[]],"tag":"TypeVar","contents":"m"}]}]}]},null]},null]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]}]}]}}},{"EDClass":{"edClassName":"Foldable","edClassTypeArguments":[["f",null]],"edClassMembers":[[{"Ident":"foldr"},{"annotation":[{"start":[65,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[65,54]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[65,19],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[65,54]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[65,24],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[65,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[65,24],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[65,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[65,38],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[65,40]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[65,25],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[65,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[65,25],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[65,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[65,27],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[65,29]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[65,25],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[65,26]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[65,30],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[65,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[65,30],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[65,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[65,32],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[65,34]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[65,30],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[65,31]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[65,35],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[65,36]},[]],"tag":"TypeVar","contents":"b"}]}]}]},{"annotation":[{"start":[65,41],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[65,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[65,41],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[65,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[65,43],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[65,45]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[65,41],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[65,42]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[65,46],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[65,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[65,46],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[65,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[65,50],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[65,52]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[65,46],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[65,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[65,46],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[65,47]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[65,48],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[65,49]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[65,53],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[65,54]},[]],"tag":"TypeVar","contents":"b"}]}]}]},null]},null]}],[{"Ident":"foldl"},{"annotation":[{"start":[66,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[66,54]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[66,19],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[66,54]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[66,24],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[66,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[66,24],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[66,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[66,38],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[66,40]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[66,25],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[66,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[66,25],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[66,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[66,27],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[66,29]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[66,25],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[66,26]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[66,30],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[66,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[66,30],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[66,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[66,32],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[66,34]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[66,30],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[66,31]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[66,35],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[66,36]},[]],"tag":"TypeVar","contents":"b"}]}]}]},{"annotation":[{"start":[66,41],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[66,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[66,41],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[66,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[66,43],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[66,45]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[66,41],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[66,42]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[66,46],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[66,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[66,46],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[66,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[66,50],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[66,52]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[66,46],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[66,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[66,46],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[66,47]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[66,48],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[66,49]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[66,53],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[66,54]},[]],"tag":"TypeVar","contents":"b"}]}]}]},null]},null]}],[{"Ident":"foldMap"},{"annotation":[{"start":[67,14],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[67,58]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[67,21],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[67,58]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[67,26],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[67,58]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[67,26],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[67,34]},[]],"constraintClass":[["Data","Monoid"],"Monoid"],"constraintArgs":[{"annotation":[{"start":[67,33],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[67,34]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[67,38],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[67,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[67,38],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[67,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[67,47],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[67,49]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[67,39],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[67,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[67,39],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[67,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[67,41],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[67,43]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[67,39],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[67,40]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[67,44],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[67,45]},[]],"tag":"TypeVar","contents":"m"}]}]},{"annotation":[{"start":[67,50],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[67,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[67,50],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[67,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[67,54],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[67,56]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[67,50],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[67,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[67,50],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[67,51]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[67,52],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[67,53]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[67,57],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[67,58]},[]],"tag":"TypeVar","contents":"m"}]}]}]},null]},null]}]],"edClassConstraints":[],"edFunctionalDependencies":[]}},{"EDValue":{"edValueName":{"Ident":"foldr"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[65,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[65,54]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[65,19],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[65,54]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["Data","Foldable"],"Foldable"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[65,24],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[65,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[65,24],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[65,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[65,38],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[65,40]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[65,25],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[65,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[65,25],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[65,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[65,27],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[65,29]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[65,25],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[65,26]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[65,30],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[65,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[65,30],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[65,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[65,32],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[65,34]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[65,30],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[65,31]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[65,35],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[65,36]},[]],"tag":"TypeVar","contents":"b"}]}]}]},{"annotation":[{"start":[65,41],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[65,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[65,41],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[65,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[65,43],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[65,45]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[65,41],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[65,42]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[65,46],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[65,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[65,46],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[65,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[65,50],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[65,52]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[65,46],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[65,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[65,46],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[65,47]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[65,48],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[65,49]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[65,53],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[65,54]},[]],"tag":"TypeVar","contents":"b"}]}]}]}]},0]},1]},2]}}},{"EDValue":{"edValueName":{"Ident":"foldl"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[66,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[66,54]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[66,19],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[66,54]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["Data","Foldable"],"Foldable"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[66,24],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[66,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[66,24],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[66,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[66,38],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[66,40]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[66,25],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[66,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[66,25],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[66,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[66,27],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[66,29]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[66,25],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[66,26]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[66,30],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[66,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[66,30],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[66,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[66,32],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[66,34]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[66,30],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[66,31]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[66,35],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[66,36]},[]],"tag":"TypeVar","contents":"b"}]}]}]},{"annotation":[{"start":[66,41],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[66,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[66,41],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[66,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[66,43],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[66,45]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[66,41],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[66,42]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[66,46],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[66,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[66,46],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[66,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[66,50],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[66,52]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[66,46],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[66,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[66,46],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[66,47]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[66,48],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[66,49]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[66,53],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[66,54]},[]],"tag":"TypeVar","contents":"b"}]}]}]}]},48]},49]},50]}}},{"EDValue":{"edValueName":{"Ident":"foldMap"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[67,14],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[67,58]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[67,21],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[67,58]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["Data","Foldable"],"Foldable"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[67,26],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[67,58]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[67,26],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[67,34]},[]],"constraintClass":[["Data","Monoid"],"Monoid"],"constraintArgs":[{"annotation":[{"start":[67,33],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[67,34]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[67,38],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[67,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[67,38],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[67,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[67,47],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[67,49]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[67,39],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[67,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[67,39],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[67,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[67,41],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[67,43]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[67,39],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[67,40]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[67,44],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[67,45]},[]],"tag":"TypeVar","contents":"m"}]}]},{"annotation":[{"start":[67,50],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[67,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[67,50],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[67,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[67,54],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[67,56]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[67,50],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[67,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[67,50],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[67,51]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[67,52],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[67,53]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[67,57],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[67,58]},[]],"tag":"TypeVar","contents":"m"}]}]}]}]},192]},193]},194]}}},{"EDValue":{"edValueName":{"Ident":"foldrDefault"},"edValueType":{"annotation":[{"start":[74,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[79,7]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[74,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[79,7]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[74,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[79,7]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[75,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[79,7]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[75,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[75,16]},[]],"constraintClass":[["Data","Foldable"],"Foldable"],"constraintArgs":[{"annotation":[{"start":[75,15],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[75,16]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[76,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[79,7]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[76,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[79,7]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[77,3],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[77,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[76,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[76,18]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[76,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[76,18]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[76,9],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[76,11]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[76,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[76,8]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[76,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[76,18]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[76,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[76,18]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[76,14],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[76,16]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[76,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[76,13]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[76,17],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[76,18]},[]],"tag":"TypeVar","contents":"b"}]}]}]},{"annotation":[{"start":[77,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[79,7]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[77,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[79,7]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[78,3],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[78,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[77,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[77,7]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[78,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[79,7]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[78,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[79,7]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[79,3],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[79,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[78,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[78,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[78,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[78,7]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[78,8],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[78,9]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[79,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[79,7]},[]],"tag":"TypeVar","contents":"b"}]}]}]}]},228]},229]},230]}}},{"EDValue":{"edValueName":{"Ident":"foldlDefault"},"edValueType":{"annotation":[{"start":[87,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[92,7]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[87,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[92,7]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[87,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[92,7]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[88,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[92,7]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[88,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[88,16]},[]],"constraintClass":[["Data","Foldable"],"Foldable"],"constraintArgs":[{"annotation":[{"start":[88,15],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[88,16]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[89,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[92,7]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[89,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[92,7]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[90,3],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[90,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[89,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[89,18]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[89,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[89,18]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[89,9],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[89,11]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[89,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[89,8]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[89,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[89,18]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[89,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[89,18]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[89,14],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[89,16]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[89,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[89,13]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[89,17],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[89,18]},[]],"tag":"TypeVar","contents":"b"}]}]}]},{"annotation":[{"start":[90,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[92,7]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[90,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[92,7]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[91,3],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[91,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[90,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[90,7]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[91,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[92,7]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[91,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[92,7]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[92,3],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[92,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[91,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[91,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[91,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[91,7]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[91,8],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[91,9]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[92,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[92,7]},[]],"tag":"TypeVar","contents":"b"}]}]}]}]},219]},220]},221]}}},{"EDValue":{"edValueName":{"Ident":"foldMapDefaultL"},"edValueType":{"annotation":[{"start":[113,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[118,7]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[113,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[118,7]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[113,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[118,7]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[114,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[118,7]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[114,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[114,16]},[]],"constraintClass":[["Data","Foldable"],"Foldable"],"constraintArgs":[{"annotation":[{"start":[114,15],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[114,16]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[115,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[118,7]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[115,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[115,14]},[]],"constraintClass":[["Data","Monoid"],"Monoid"],"constraintArgs":[{"annotation":[{"start":[115,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[115,14]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[116,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[118,7]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[116,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[118,7]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[117,3],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[117,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[116,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[116,13]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[116,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[116,13]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[116,9],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[116,11]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[116,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[116,8]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[116,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[116,13]},[]],"tag":"TypeVar","contents":"m"}]}]},{"annotation":[{"start":[117,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[118,7]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[117,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[118,7]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[118,3],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[118,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[117,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[117,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[117,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[117,7]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[117,8],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[117,9]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[118,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[118,7]},[]],"tag":"TypeVar","contents":"m"}]}]}]}]},186]},187]},188]}}},{"EDValue":{"edValueName":{"Ident":"foldMapDefaultR"},"edValueType":{"annotation":[{"start":[100,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[105,7]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[100,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[105,7]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[100,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[105,7]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[101,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[105,7]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[101,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[101,16]},[]],"constraintClass":[["Data","Foldable"],"Foldable"],"constraintArgs":[{"annotation":[{"start":[101,15],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[101,16]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[102,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[105,7]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[102,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[102,14]},[]],"constraintClass":[["Data","Monoid"],"Monoid"],"constraintArgs":[{"annotation":[{"start":[102,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[102,14]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[103,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[105,7]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[103,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[105,7]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[104,3],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[104,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[103,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[103,13]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[103,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[103,13]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[103,9],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[103,11]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[103,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[103,8]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[103,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[103,13]},[]],"tag":"TypeVar","contents":"m"}]}]},{"annotation":[{"start":[104,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[105,7]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[104,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[105,7]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[105,3],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[105,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[104,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[104,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[104,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[104,7]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[104,8],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[104,9]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[105,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[105,7]},[]],"tag":"TypeVar","contents":"m"}]}]}]}]},164]},165]},166]}}},{"EDValue":{"edValueName":{"Ident":"fold"},"edValueType":{"annotation":[{"start":[173,9],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[173,55]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[173,16],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[173,55]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[173,21],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[173,55]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[173,21],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[173,31]},[]],"constraintClass":[["Data","Foldable"],"Foldable"],"constraintArgs":[{"annotation":[{"start":[173,30],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[173,31]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[173,35],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[173,55]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[173,35],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[173,43]},[]],"constraintClass":[["Data","Monoid"],"Monoid"],"constraintArgs":[{"annotation":[{"start":[173,42],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[173,43]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[173,47],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[173,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[173,47],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[173,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[173,51],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[173,53]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[173,47],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[173,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[173,47],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[173,48]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[173,49],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[173,50]},[]],"tag":"TypeVar","contents":"m"}]}]},{"annotation":[{"start":[173,54],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[173,55]},[]],"tag":"TypeVar","contents":"m"}]}]}]},254]},255]}}},{"EDValue":{"edValueName":{"Ident":"foldM"},"edValueType":{"annotation":[{"start":[180,10],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[180,85]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[180,17],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[180,85]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[180,17],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[180,85]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[180,17],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[180,85]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[180,26],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[180,85]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[180,26],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[180,36]},[]],"constraintClass":[["Data","Foldable"],"Foldable"],"constraintArgs":[{"annotation":[{"start":[180,35],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[180,36]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[180,40],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[180,85]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[180,40],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[180,47]},[]],"constraintClass":[["Control","Monad"],"Monad"],"constraintArgs":[{"annotation":[{"start":[180,46],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[180,47]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[180,51],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[180,85]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[180,51],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[180,85]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[180,67],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[180,69]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[180,52],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[180,65]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[180,52],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[180,65]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[180,54],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[180,56]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[180,52],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[180,53]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[180,57],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[180,65]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[180,57],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[180,65]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[180,59],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[180,61]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[180,57],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[180,58]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[180,62],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[180,65]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[180,62],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[180,63]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[180,64],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[180,65]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]},{"annotation":[{"start":[180,70],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[180,85]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[180,70],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[180,85]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[180,72],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[180,74]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[180,70],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[180,71]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[180,75],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[180,85]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[180,75],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[180,85]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[180,79],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[180,81]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[180,75],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[180,78]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[180,75],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[180,76]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[180,77],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[180,78]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[180,82],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[180,85]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[180,82],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[180,83]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[180,84],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[180,85]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]}]}]},246]},247]},248]},249]}}},{"EDValue":{"edValueName":{"Ident":"traverse_"},"edValueType":{"annotation":[{"start":[192,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[197,12]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[192,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[197,12]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[192,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[197,12]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[192,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[197,12]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[193,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[197,12]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[193,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[193,19]},[]],"constraintClass":[["Control","Applicative"],"Applicative"],"constraintArgs":[{"annotation":[{"start":[193,18],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[193,19]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[194,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[197,12]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[194,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[194,16]},[]],"constraintClass":[["Data","Foldable"],"Foldable"],"constraintArgs":[{"annotation":[{"start":[194,15],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[194,16]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[195,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[197,12]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[195,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[197,12]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[196,3],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[196,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[195,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[195,15]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[195,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[195,15]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[195,9],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[195,11]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[195,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[195,8]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[195,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[195,15]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[195,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[195,13]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[195,14],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[195,15]},[]],"tag":"TypeVar","contents":"b"}]}]}]},{"annotation":[{"start":[196,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[197,12]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[196,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[197,12]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[197,3],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[197,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[196,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[196,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[196,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[196,7]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[196,8],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[196,9]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[197,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[197,12]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[197,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[197,7]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[197,8],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[197,12]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}]}]}]},26]},27]},28]},29]}}},{"EDValue":{"edValueName":{"Ident":"for_"},"edValueType":{"annotation":[{"start":[214,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[219,12]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[214,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[219,12]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[214,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[219,12]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[214,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[219,12]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[215,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[219,12]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[215,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[215,19]},[]],"constraintClass":[["Control","Applicative"],"Applicative"],"constraintArgs":[{"annotation":[{"start":[215,18],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[215,19]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[216,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[219,12]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[216,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[216,16]},[]],"constraintClass":[["Data","Foldable"],"Foldable"],"constraintArgs":[{"annotation":[{"start":[216,15],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[216,16]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[217,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[219,12]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[217,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[219,12]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[218,3],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[218,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[217,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[217,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[217,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[217,7]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[217,8],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[217,9]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[218,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[219,12]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[218,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[219,12]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[219,3],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[219,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[218,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[218,15]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[218,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[218,15]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[218,9],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[218,11]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[218,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[218,8]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[218,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[218,15]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[218,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[218,13]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[218,14],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[218,15]},[]],"tag":"TypeVar","contents":"b"}]}]}]},{"annotation":[{"start":[219,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[219,12]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[219,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[219,7]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[219,8],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[219,12]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}]}]}]},34]},35]},36]},37]}}},{"EDValue":{"edValueName":{"Ident":"sequence_"},"edValueType":{"annotation":[{"start":[230,14],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[230,76]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[230,21],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[230,76]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[230,21],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[230,76]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[230,28],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[230,76]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[230,28],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[230,41]},[]],"constraintClass":[["Control","Applicative"],"Applicative"],"constraintArgs":[{"annotation":[{"start":[230,40],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[230,41]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[230,45],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[230,76]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[230,45],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[230,55]},[]],"constraintClass":[["Data","Foldable"],"Foldable"],"constraintArgs":[{"annotation":[{"start":[230,54],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[230,55]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[230,59],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[230,76]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[230,59],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[230,76]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[230,67],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[230,69]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[230,59],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[230,66]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[230,59],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[230,60]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[230,62],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[230,65]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[230,62],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[230,63]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[230,64],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[230,65]},[]],"tag":"TypeVar","contents":"a"}]}]}]},{"annotation":[{"start":[230,70],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[230,76]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[230,70],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[230,71]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[230,72],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[230,76]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}]}]},42]},43]},44]}}},{"EDValue":{"edValueName":{"Ident":"oneOf"},"edValueType":{"annotation":[{"start":[234,10],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[234,62]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[234,17],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[234,62]},[]],"tag":"ForAll","contents":["g",{"annotation":[{"start":[234,17],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[234,62]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[234,24],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[234,62]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[234,24],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[234,34]},[]],"constraintClass":[["Data","Foldable"],"Foldable"],"constraintArgs":[{"annotation":[{"start":[234,33],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[234,34]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[234,38],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[234,62]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[234,38],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[234,44]},[]],"constraintClass":[["Control","Plus"],"Plus"],"constraintArgs":[{"annotation":[{"start":[234,43],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[234,44]},[]],"tag":"TypeVar","contents":"g"}],"constraintData":null},{"annotation":[{"start":[234,48],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[234,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[234,48],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[234,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[234,56],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[234,58]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[234,48],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[234,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[234,48],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[234,49]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[234,51],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[234,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[234,51],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[234,52]},[]],"tag":"TypeVar","contents":"g"},{"annotation":[{"start":[234,53],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[234,54]},[]],"tag":"TypeVar","contents":"a"}]}]}]},{"annotation":[{"start":[234,59],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[234,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[234,59],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[234,60]},[]],"tag":"TypeVar","contents":"g"},{"annotation":[{"start":[234,61],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[234,62]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]},12]},13]},14]}}},{"EDValue":{"edValueName":{"Ident":"oneOfMap"},"edValueType":{"annotation":[{"start":[238,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[238,77]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[238,20],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[238,77]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[238,20],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[238,77]},[]],"tag":"ForAll","contents":["g",{"annotation":[{"start":[238,20],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[238,77]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[238,29],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[238,77]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[238,29],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[238,39]},[]],"constraintClass":[["Data","Foldable"],"Foldable"],"constraintArgs":[{"annotation":[{"start":[238,38],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[238,39]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[238,43],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[238,77]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[238,43],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[238,49]},[]],"constraintClass":[["Control","Plus"],"Plus"],"constraintArgs":[{"annotation":[{"start":[238,48],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[238,49]},[]],"tag":"TypeVar","contents":"g"}],"constraintData":null},{"annotation":[{"start":[238,53],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[238,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[238,53],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[238,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[238,64],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[238,66]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[238,54],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[238,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[238,54],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[238,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[238,56],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[238,58]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[238,54],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[238,55]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[238,59],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[238,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[238,59],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[238,60]},[]],"tag":"TypeVar","contents":"g"},{"annotation":[{"start":[238,61],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[238,62]},[]],"tag":"TypeVar","contents":"b"}]}]}]},{"annotation":[{"start":[238,67],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[238,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[238,67],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[238,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[238,71],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[238,73]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[238,67],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[238,70]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[238,67],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[238,68]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[238,69],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[238,70]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[238,74],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[238,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[238,74],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[238,75]},[]],"tag":"TypeVar","contents":"g"},{"annotation":[{"start":[238,76],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[238,77]},[]],"tag":"TypeVar","contents":"b"}]}]}]}]}]},18]},19]},20]},21]}}},{"EDValue":{"edValueName":{"Ident":"intercalate"},"edValueType":{"annotation":[{"start":[243,16],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[243,67]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[243,23],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[243,67]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[243,28],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[243,67]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[243,28],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[243,38]},[]],"constraintClass":[["Data","Foldable"],"Foldable"],"constraintArgs":[{"annotation":[{"start":[243,37],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[243,38]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[243,42],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[243,67]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[243,42],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[243,50]},[]],"constraintClass":[["Data","Monoid"],"Monoid"],"constraintArgs":[{"annotation":[{"start":[243,49],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[243,50]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[243,54],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[243,67]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[243,54],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[243,67]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[243,56],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[243,58]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[243,54],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[243,55]},[]],"tag":"TypeVar","contents":"m"}]},{"annotation":[{"start":[243,59],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[243,67]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[243,59],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[243,67]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[243,63],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[243,65]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[243,59],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[243,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[243,59],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[243,60]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[243,61],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[243,62]},[]],"tag":"TypeVar","contents":"m"}]}]},{"annotation":[{"start":[243,66],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[243,67]},[]],"tag":"TypeVar","contents":"m"}]}]}]}]},56]},57]}}},{"EDValue":{"edValueName":{"Ident":"surroundMap"},"edValueType":{"annotation":[{"start":[266,16],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[266,84]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[266,23],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[266,84]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[266,23],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[266,84]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[266,30],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[266,84]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[266,30],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[266,40]},[]],"constraintClass":[["Data","Foldable"],"Foldable"],"constraintArgs":[{"annotation":[{"start":[266,39],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[266,40]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[266,44],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[266,84]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[266,44],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[266,55]},[]],"constraintClass":[["Data","Semigroup"],"Semigroup"],"constraintArgs":[{"annotation":[{"start":[266,54],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[266,55]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[266,59],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[266,84]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[266,59],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[266,84]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[266,61],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[266,63]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[266,59],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[266,60]},[]],"tag":"TypeVar","contents":"m"}]},{"annotation":[{"start":[266,64],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[266,84]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[266,64],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[266,84]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[266,73],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[266,75]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[266,65],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[266,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[266,65],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[266,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[266,67],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[266,69]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[266,65],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[266,66]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[266,70],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[266,71]},[]],"tag":"TypeVar","contents":"m"}]}]},{"annotation":[{"start":[266,76],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[266,84]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[266,76],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[266,84]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[266,80],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[266,82]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[266,76],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[266,79]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[266,76],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[266,77]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[266,78],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[266,79]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[266,83],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[266,84]},[]],"tag":"TypeVar","contents":"m"}]}]}]}]}]},236]},237]},238]}}},{"EDValue":{"edValueName":{"Ident":"surround"},"edValueType":{"annotation":[{"start":[287,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[287,67]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[287,20],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[287,67]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[287,25],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[287,67]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[287,25],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[287,35]},[]],"constraintClass":[["Data","Foldable"],"Foldable"],"constraintArgs":[{"annotation":[{"start":[287,34],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[287,35]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[287,39],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[287,67]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[287,39],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[287,50]},[]],"constraintClass":[["Data","Semigroup"],"Semigroup"],"constraintArgs":[{"annotation":[{"start":[287,49],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[287,50]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[287,54],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[287,67]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[287,54],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[287,67]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[287,56],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[287,58]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[287,54],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[287,55]},[]],"tag":"TypeVar","contents":"m"}]},{"annotation":[{"start":[287,59],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[287,67]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[287,59],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[287,67]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[287,63],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[287,65]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[287,59],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[287,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[287,59],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[287,60]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[287,61],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[287,62]},[]],"tag":"TypeVar","contents":"m"}]}]},{"annotation":[{"start":[287,66],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[287,67]},[]],"tag":"TypeVar","contents":"m"}]}]}]}]},242]},243]}}},{"EDValue":{"edValueName":{"Ident":"and"},"edValueType":{"annotation":[{"start":[293,8],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[293,62]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[293,15],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[293,62]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[293,20],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[293,62]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[293,20],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[293,30]},[]],"constraintClass":[["Data","Foldable"],"Foldable"],"constraintArgs":[{"annotation":[{"start":[293,29],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[293,30]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[293,34],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[293,62]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[293,34],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[293,50]},[]],"constraintClass":[["Data","HeytingAlgebra"],"HeytingAlgebra"],"constraintArgs":[{"annotation":[{"start":[293,49],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[293,50]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[293,54],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[293,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[293,54],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[293,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[293,58],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[293,60]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[293,54],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[293,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[293,54],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[293,55]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[293,56],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[293,57]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[293,61],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[293,62]},[]],"tag":"TypeVar","contents":"a"}]}]}]},296]},297]}}},{"EDValue":{"edValueName":{"Ident":"or"},"edValueType":{"annotation":[{"start":[299,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[299,61]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[299,14],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[299,61]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[299,19],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[299,61]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[299,19],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[299,29]},[]],"constraintClass":[["Data","Foldable"],"Foldable"],"constraintArgs":[{"annotation":[{"start":[299,28],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[299,29]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[299,33],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[299,61]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[299,33],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[299,49]},[]],"constraintClass":[["Data","HeytingAlgebra"],"HeytingAlgebra"],"constraintArgs":[{"annotation":[{"start":[299,48],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[299,49]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[299,53],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[299,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[299,53],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[299,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[299,57],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[299,59]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[299,53],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[299,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[299,53],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[299,54]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[299,55],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[299,56]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[299,60],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[299,61]},[]],"tag":"TypeVar","contents":"a"}]}]}]},285]},286]}}},{"EDValue":{"edValueName":{"Ident":"all"},"edValueType":{"annotation":[{"start":[304,8],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[304,76]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[304,15],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[304,76]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[304,15],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[304,76]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[304,22],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[304,76]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[304,22],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[304,32]},[]],"constraintClass":[["Data","Foldable"],"Foldable"],"constraintArgs":[{"annotation":[{"start":[304,31],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[304,32]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[304,36],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[304,76]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[304,36],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[304,52]},[]],"constraintClass":[["Data","HeytingAlgebra"],"HeytingAlgebra"],"constraintArgs":[{"annotation":[{"start":[304,51],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[304,52]},[]],"tag":"TypeVar","contents":"b"}],"constraintData":null},{"annotation":[{"start":[304,56],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[304,76]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[304,56],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[304,76]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[304,65],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[304,67]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[304,57],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[304,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[304,57],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[304,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[304,59],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[304,61]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[304,57],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[304,58]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[304,62],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[304,63]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[304,68],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[304,76]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[304,68],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[304,76]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[304,72],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[304,74]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[304,68],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[304,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[304,68],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[304,69]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[304,70],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[304,71]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[304,75],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[304,76]},[]],"tag":"TypeVar","contents":"b"}]}]}]}]},289]},290]},291]}}},{"EDValue":{"edValueName":{"Ident":"any"},"edValueType":{"annotation":[{"start":[309,8],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[309,76]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[309,15],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[309,76]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[309,15],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[309,76]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[309,22],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[309,76]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[309,22],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[309,32]},[]],"constraintClass":[["Data","Foldable"],"Foldable"],"constraintArgs":[{"annotation":[{"start":[309,31],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[309,32]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[309,36],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[309,76]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[309,36],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[309,52]},[]],"constraintClass":[["Data","HeytingAlgebra"],"HeytingAlgebra"],"constraintArgs":[{"annotation":[{"start":[309,51],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[309,52]},[]],"tag":"TypeVar","contents":"b"}],"constraintData":null},{"annotation":[{"start":[309,56],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[309,76]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[309,56],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[309,76]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[309,65],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[309,67]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[309,57],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[309,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[309,57],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[309,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[309,59],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[309,61]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[309,57],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[309,58]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[309,62],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[309,63]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[309,68],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[309,76]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[309,68],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[309,76]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[309,72],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[309,74]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[309,68],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[309,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[309,68],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[309,69]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[309,70],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[309,71]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[309,75],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[309,76]},[]],"tag":"TypeVar","contents":"b"}]}]}]}]},270]},271]},272]}}},{"EDValue":{"edValueName":{"Ident":"sum"},"edValueType":{"annotation":[{"start":[313,8],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[313,56]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[313,15],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[313,56]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[313,20],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[313,56]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[313,20],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[313,30]},[]],"constraintClass":[["Data","Foldable"],"Foldable"],"constraintArgs":[{"annotation":[{"start":[313,29],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[313,30]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[313,34],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[313,56]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[313,34],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[313,44]},[]],"constraintClass":[["Data","Semiring"],"Semiring"],"constraintArgs":[{"annotation":[{"start":[313,43],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[313,44]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[313,48],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[313,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[313,48],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[313,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[313,52],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[313,54]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[313,48],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[313,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[313,48],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[313,49]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[313,50],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[313,51]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[313,55],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[313,56]},[]],"tag":"TypeVar","contents":"a"}]}]}]},88]},89]}}},{"EDValue":{"edValueName":{"Ident":"product"},"edValueType":{"annotation":[{"start":[317,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[317,60]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[317,19],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[317,60]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[317,24],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[317,60]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[317,24],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[317,34]},[]],"constraintClass":[["Data","Foldable"],"Foldable"],"constraintArgs":[{"annotation":[{"start":[317,33],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[317,34]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[317,38],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[317,60]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[317,38],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[317,48]},[]],"constraintClass":[["Data","Semiring"],"Semiring"],"constraintArgs":[{"annotation":[{"start":[317,47],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[317,48]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[317,52],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[317,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[317,52],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[317,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[317,56],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[317,58]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[317,52],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[317,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[317,52],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[317,53]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[317,54],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[317,55]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[317,59],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[317,60]},[]],"tag":"TypeVar","contents":"a"}]}]}]},84]},85]}}},{"EDValue":{"edValueName":{"Ident":"elem"},"edValueType":{"annotation":[{"start":[321,9],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[321,62]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[321,16],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[321,62]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[321,21],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[321,62]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[321,21],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[321,31]},[]],"constraintClass":[["Data","Foldable"],"Foldable"],"constraintArgs":[{"annotation":[{"start":[321,30],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[321,31]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[321,35],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[321,62]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[321,35],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[321,39]},[]],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[{"start":[321,38],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[321,39]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[321,43],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[321,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[321,43],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[321,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[321,45],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[321,47]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[321,43],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[321,44]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[321,48],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[321,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[321,48],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[321,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[321,52],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[321,54]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[321,48],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[321,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[321,48],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[321,49]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[321,50],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[321,51]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[321,55],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[321,62]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]}]}]},277]},278]}}},{"EDValue":{"edValueName":{"Ident":"notElem"},"edValueType":{"annotation":[{"start":[325,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[325,65]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[325,19],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[325,65]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[325,24],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[325,65]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[325,24],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[325,34]},[]],"constraintClass":[["Data","Foldable"],"Foldable"],"constraintArgs":[{"annotation":[{"start":[325,33],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[325,34]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[325,38],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[325,65]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[325,38],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[325,42]},[]],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[{"start":[325,41],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[325,42]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[325,46],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[325,65]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[325,46],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[325,65]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[325,48],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[325,50]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[325,46],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[325,47]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[325,51],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[325,65]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[325,51],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[325,65]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[325,55],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[325,57]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[325,51],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[325,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[325,51],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[325,52]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[325,53],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[325,54]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[325,58],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[325,65]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]}]}]},281]},282]}}},{"EDValue":{"edValueName":{"Ident":"indexl"},"edValueType":{"annotation":[{"start":[329,11],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[329,58]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[329,18],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[329,58]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[329,23],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[329,58]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[329,23],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[329,33]},[]],"constraintClass":[["Data","Foldable"],"Foldable"],"constraintArgs":[{"annotation":[{"start":[329,32],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[329,33]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[329,37],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[329,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[329,37],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[329,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[329,41],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[329,43]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[329,37],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[329,40]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[329,44],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[329,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[329,44],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[329,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[329,48],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[329,50]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[329,44],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[329,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[329,44],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[329,45]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[329,46],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[329,47]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[329,51],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[329,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[329,51],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[329,56]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[329,57],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[329,58]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]},51]},52]}}},{"EDValue":{"edValueName":{"Ident":"indexr"},"edValueType":{"annotation":[{"start":[341,11],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[341,58]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[341,18],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[341,58]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[341,23],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[341,58]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[341,23],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[341,33]},[]],"constraintClass":[["Data","Foldable"],"Foldable"],"constraintArgs":[{"annotation":[{"start":[341,32],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[341,33]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[341,37],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[341,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[341,37],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[341,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[341,41],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[341,43]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[341,37],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[341,40]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[341,44],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[341,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[341,44],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[341,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[341,48],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[341,50]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[341,44],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[341,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[341,44],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[341,45]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[341,46],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[341,47]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[341,51],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[341,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[341,51],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[341,56]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[341,57],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[341,58]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]},3]},4]}}},{"EDValue":{"edValueName":{"Ident":"find"},"edValueType":{"annotation":[{"start":[353,9],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[353,67]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[353,16],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[353,67]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[353,21],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[353,67]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[353,21],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[353,31]},[]],"constraintClass":[["Data","Foldable"],"Foldable"],"constraintArgs":[{"annotation":[{"start":[353,30],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[353,31]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[353,35],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[353,67]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[353,35],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[353,67]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[353,50],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[353,52]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[353,36],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[353,48]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[353,36],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[353,48]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[353,38],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[353,40]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[353,36],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[353,37]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[353,41],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[353,48]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]},{"annotation":[{"start":[353,53],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[353,67]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[353,53],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[353,67]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[353,57],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[353,59]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[353,53],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[353,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[353,53],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[353,54]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[353,55],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[353,56]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[353,60],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[353,67]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[353,60],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[353,65]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[353,66],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[353,67]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]},265]},266]}}},{"EDValue":{"edValueName":{"Ident":"findMap"},"edValueType":{"annotation":[{"start":[360,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[360,72]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[360,19],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[360,72]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[360,19],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[360,72]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[360,26],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[360,72]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[360,26],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[360,36]},[]],"constraintClass":[["Data","Foldable"],"Foldable"],"constraintArgs":[{"annotation":[{"start":[360,35],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[360,36]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[360,40],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[360,72]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[360,40],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[360,72]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[360,55],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[360,57]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[360,41],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[360,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[360,41],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[360,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[360,43],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[360,45]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[360,41],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[360,42]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[360,46],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[360,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[360,46],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[360,51]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[360,52],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[360,53]},[]],"tag":"TypeVar","contents":"b"}]}]}]},{"annotation":[{"start":[360,58],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[360,72]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[360,58],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[360,72]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[360,62],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[360,64]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[360,58],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[360,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[360,58],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[360,59]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[360,60],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[360,61]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[360,65],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[360,72]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[360,65],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[360,70]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[360,71],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[360,72]},[]],"tag":"TypeVar","contents":"b"}]}]}]}]},258]},259]},260]}}},{"EDValue":{"edValueName":{"Ident":"maximum"},"edValueType":{"annotation":[{"start":[367,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[367,61]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[367,19],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[367,61]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[367,24],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[367,61]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[367,24],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[367,29]},[]],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[{"start":[367,28],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[367,29]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[367,33],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[367,61]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[367,33],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[367,43]},[]],"constraintClass":[["Data","Foldable"],"Foldable"],"constraintArgs":[{"annotation":[{"start":[367,42],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[367,43]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[367,47],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[367,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[367,47],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[367,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[367,51],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[367,53]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[367,47],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[367,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[367,47],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[367,48]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[367,49],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[367,50]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[367,54],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[367,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[367,54],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[367,59]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[367,60],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[367,61]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]},71]},72]}}},{"EDValue":{"edValueName":{"Ident":"maximumBy"},"edValueType":{"annotation":[{"start":[373,14],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[373,78]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[373,21],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[373,78]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[373,26],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[373,78]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[373,26],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[373,36]},[]],"constraintClass":[["Data","Foldable"],"Foldable"],"constraintArgs":[{"annotation":[{"start":[373,35],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[373,36]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[373,40],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[373,78]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[373,40],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[373,78]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[373,61],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[373,63]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[373,41],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[373,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[373,41],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[373,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[373,43],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[373,45]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[373,41],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[373,42]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[373,46],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[373,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[373,46],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[373,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[373,48],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[373,50]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[373,46],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[373,47]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[373,51],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[373,59]},[]],"tag":"TypeConstructor","contents":[["Data","Ordering"],"Ordering"]}]}]}]},{"annotation":[{"start":[373,64],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[373,78]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[373,64],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[373,78]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[373,68],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[373,70]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[373,64],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[373,67]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[373,64],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[373,65]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[373,66],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[373,67]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[373,71],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[373,78]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[373,71],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[373,76]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[373,77],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[373,78]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]},66]},67]}}},{"EDValue":{"edValueName":{"Ident":"minimum"},"edValueType":{"annotation":[{"start":[380,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[380,61]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[380,19],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[380,61]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[380,24],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[380,61]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[380,24],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[380,29]},[]],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[{"start":[380,28],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[380,29]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[380,33],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[380,61]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[380,33],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[380,43]},[]],"constraintClass":[["Data","Foldable"],"Foldable"],"constraintArgs":[{"annotation":[{"start":[380,42],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[380,43]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[380,47],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[380,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[380,47],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[380,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[380,51],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[380,53]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[380,47],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[380,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[380,47],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[380,48]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[380,49],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[380,50]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[380,54],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[380,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[380,54],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[380,59]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[380,60],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[380,61]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]},80]},81]}}},{"EDValue":{"edValueName":{"Ident":"minimumBy"},"edValueType":{"annotation":[{"start":[386,14],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[386,78]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[386,21],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[386,78]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[386,26],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[386,78]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[386,26],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[386,36]},[]],"constraintClass":[["Data","Foldable"],"Foldable"],"constraintArgs":[{"annotation":[{"start":[386,35],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[386,36]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[386,40],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[386,78]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[386,40],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[386,78]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[386,61],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[386,63]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[386,41],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[386,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[386,41],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[386,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[386,43],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[386,45]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[386,41],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[386,42]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[386,46],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[386,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[386,46],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[386,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[386,48],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[386,50]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[386,46],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[386,47]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[386,51],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[386,59]},[]],"tag":"TypeConstructor","contents":[["Data","Ordering"],"Ordering"]}]}]}]},{"annotation":[{"start":[386,64],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[386,78]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[386,64],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[386,78]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[386,68],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[386,70]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[386,64],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[386,67]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[386,64],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[386,65]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[386,66],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[386,67]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[386,71],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[386,78]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[386,71],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[386,76]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[386,77],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[386,78]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]},75]},76]}}},{"EDValue":{"edValueName":{"Ident":"null"},"edValueType":{"annotation":[{"start":[395,9],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[395,49]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[395,16],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[395,49]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[395,21],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[395,49]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[395,21],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[395,31]},[]],"constraintClass":[["Data","Foldable"],"Foldable"],"constraintArgs":[{"annotation":[{"start":[395,30],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[395,31]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[395,35],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[395,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[395,35],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[395,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[395,39],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[395,41]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[395,35],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[395,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[395,35],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[395,36]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[395,37],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[395,38]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[395,42],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[395,49]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]},8]},9]}}},{"EDValue":{"edValueName":{"Ident":"length"},"edValueType":{"annotation":[{"start":[401,11],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[401,61]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[401,18],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[401,61]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[401,18],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[401,61]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[401,25],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[401,61]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[401,25],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[401,35]},[]],"constraintClass":[["Data","Foldable"],"Foldable"],"constraintArgs":[{"annotation":[{"start":[401,34],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[401,35]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[401,39],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[401,61]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[401,39],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[401,49]},[]],"constraintClass":[["Data","Semiring"],"Semiring"],"constraintArgs":[{"annotation":[{"start":[401,48],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[401,49]},[]],"tag":"TypeVar","contents":"b"}],"constraintData":null},{"annotation":[{"start":[401,53],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[401,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[401,53],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[401,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[401,57],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[401,59]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[401,53],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[401,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[401,53],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[401,54]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[401,55],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[401,56]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[401,60],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[401,61]},[]],"tag":"TypeVar","contents":"b"}]}]}]},60]},61]},62]}}},{"EDInstance":{"edInstanceClassName":[["Data","Foldable"],"Foldable"],"edInstanceName":{"Ident":"foldableArray"},"edInstanceTypes":[{"annotation":[{"start":[121,36],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[121,41]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Foldable"],{"Ident":"foldableArray"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Foldable"],"Foldable"],"edInstanceName":{"Ident":"foldableMaybe"},"edInstanceTypes":[{"annotation":[{"start":[129,36],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[129,41]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Foldable"],{"Ident":"foldableMaybe"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Foldable"],"Foldable"],"edInstanceName":{"Ident":"foldableFirst"},"edInstanceTypes":[{"annotation":[{"start":[137,36],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[137,41]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe","First"],"First"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Foldable"],{"Ident":"foldableFirst"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Foldable"],"Foldable"],"edInstanceName":{"Ident":"foldableLast"},"edInstanceTypes":[{"annotation":[{"start":[142,35],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[142,39]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe","Last"],"Last"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Foldable"],{"Ident":"foldableLast"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Foldable"],"Foldable"],"edInstanceName":{"Ident":"foldableAdditive"},"edInstanceTypes":[{"annotation":[{"start":[147,39],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[147,47]},[]],"tag":"TypeConstructor","contents":[["Data","Monoid","Additive"],"Additive"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Foldable"],{"Ident":"foldableAdditive"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Foldable"],"Foldable"],"edInstanceName":{"Ident":"foldableDual"},"edInstanceTypes":[{"annotation":[{"start":[152,35],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[152,39]},[]],"tag":"TypeConstructor","contents":[["Data","Monoid","Dual"],"Dual"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Foldable"],{"Ident":"foldableDual"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Foldable"],"Foldable"],"edInstanceName":{"Ident":"foldableDisj"},"edInstanceTypes":[{"annotation":[{"start":[157,35],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[157,39]},[]],"tag":"TypeConstructor","contents":[["Data","Monoid","Disj"],"Disj"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Foldable"],{"Ident":"foldableDisj"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Foldable"],"Foldable"],"edInstanceName":{"Ident":"foldableConj"},"edInstanceTypes":[{"annotation":[{"start":[162,35],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[162,39]},[]],"tag":"TypeConstructor","contents":[["Data","Monoid","Conj"],"Conj"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Foldable"],{"Ident":"foldableConj"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Foldable"],"Foldable"],"edInstanceName":{"Ident":"foldableMultiplicative"},"edInstanceTypes":[{"annotation":[{"start":[167,45],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[167,59]},[]],"tag":"TypeConstructor","contents":[["Data","Monoid","Multiplicative"],"Multiplicative"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Foldable"],{"Ident":"foldableMultiplicative"}]],"edInstanceChainIndex":0}}],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Foldable.purs","end":[402,40]}}
diff --git a/tests/purs/publish/basic-example/output/Data.FoldableWithIndex/docs.json b/tests/purs/publish/basic-example/output/Data.FoldableWithIndex/docs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.FoldableWithIndex/docs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"reExports":[],"name":"Data.FoldableWithIndex","comments":null,"declarations":[{"children":[{"comments":null,"title":"foldrWithIndex","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"i"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}]},null]},null]}},"sourceSpan":{"start":[54,3],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[54,68]}},{"comments":null,"title":"foldlWithIndex","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"i"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}]},null]},null]}},"sourceSpan":{"start":[55,3],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[55,68]}},{"comments":null,"title":"foldMapWithIndex","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Monoid"],"Monoid"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"i"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"m"}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeVar","contents":"m"}]}]}]},null]},null]}},"sourceSpan":{"start":[56,3],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[56,72]}},{"comments":null,"title":"foldableWithIndexArray","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","FoldableWithIndex"],"FoldableWithIndex"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]}]}},"sourceSpan":{"start":[112,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[115,46]}},{"comments":null,"title":"foldableWithIndexMaybe","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","FoldableWithIndex"],"FoldableWithIndex"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]}]}},"sourceSpan":{"start":[117,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[120,40]}},{"comments":null,"title":"foldableWithIndexFirst","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","FoldableWithIndex"],"FoldableWithIndex"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe","First"],"First"]}]}},"sourceSpan":{"start":[122,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[125,40]}},{"comments":null,"title":"foldableWithIndexLast","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","FoldableWithIndex"],"FoldableWithIndex"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe","Last"],"Last"]}]}},"sourceSpan":{"start":[127,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[130,40]}},{"comments":null,"title":"foldableWithIndexAdditive","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","FoldableWithIndex"],"FoldableWithIndex"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Additive"],"Additive"]}]}},"sourceSpan":{"start":[132,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[135,40]}},{"comments":null,"title":"foldableWithIndexDual","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","FoldableWithIndex"],"FoldableWithIndex"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Dual"],"Dual"]}]}},"sourceSpan":{"start":[137,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[140,40]}},{"comments":null,"title":"foldableWithIndexDisj","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","FoldableWithIndex"],"FoldableWithIndex"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Disj"],"Disj"]}]}},"sourceSpan":{"start":[142,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[145,40]}},{"comments":null,"title":"foldableWithIndexConj","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","FoldableWithIndex"],"FoldableWithIndex"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Conj"],"Conj"]}]}},"sourceSpan":{"start":[147,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[150,40]}},{"comments":null,"title":"foldableWithIndexMultiplicative","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","FoldableWithIndex"],"FoldableWithIndex"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Multiplicative"],"Multiplicative"]}]}},"sourceSpan":{"start":[152,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[155,40]}}],"comments":"A `Foldable` with an additional index.\nA `FoldableWithIndex` instance must be compatible with its `Foldable`\ninstance\n```purescript\nfoldr f = foldrWithIndex (const f)\nfoldl f = foldlWithIndex (const f)\nfoldMap f = foldMapWithIndex (const f)\n```\n\nDefault implementations are provided by the following functions:\n\n- `foldrWithIndexDefault`\n- `foldlWithIndexDefault`\n- `foldMapWithIndexDefaultR`\n- `foldMapWithIndexDefaultL`\n\nNote: some combinations of the default implementations are unsafe to\nuse together - causing a non-terminating mutually recursive cycle.\nThese combinations are documented per function.\n","title":"FoldableWithIndex","info":{"fundeps":[[["f"],["i"]]],"arguments":[["i",null],["f",null]],"declType":"typeClass","superclasses":[{"constraintAnn":[],"constraintClass":[["Data","Foldable"],"Foldable"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null}]},"sourceSpan":{"start":[53,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[56,72]}},{"children":[],"comments":"A default implementation of `foldrWithIndex` using `foldMapWithIndex`.\n\nNote: when defining a `FoldableWithIndex` instance, this function is\nunsafe to use in combination with `foldMapWithIndexDefaultR`.\n","title":"foldrWithIndexDefault","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["i",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","FoldableWithIndex"],"FoldableWithIndex"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"i"},{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"i"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}]}]},null]},null]},null]},null]}},"sourceSpan":{"start":[62,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[68,7]}},{"children":[],"comments":"A default implementation of `foldlWithIndex` using `foldMapWithIndex`.\n\nNote: when defining a `FoldableWithIndex` instance, this function is\nunsafe to use in combination with `foldMapWithIndexDefaultL`.\n","title":"foldlWithIndexDefault","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["i",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","FoldableWithIndex"],"FoldableWithIndex"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"i"},{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"i"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}]}]},null]},null]},null]},null]}},"sourceSpan":{"start":[75,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[81,7]}},{"children":[],"comments":"A default implementation of `foldMapWithIndex` using `foldrWithIndex`.\n\nNote: when defining a `FoldableWithIndex` instance, this function is\nunsafe to use in combination with `foldrWithIndexDefault`.\n","title":"foldMapWithIndexDefaultR","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["i",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","FoldableWithIndex"],"FoldableWithIndex"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"i"},{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Monoid"],"Monoid"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"i"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"m"}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeVar","contents":"m"}]}]}]}]},null]},null]},null]},null]}},"sourceSpan":{"start":[88,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[94,7]}},{"children":[],"comments":"A default implementation of `foldMapWithIndex` using `foldlWithIndex`.\n\nNote: when defining a `FoldableWithIndex` instance, this function is\nunsafe to use in combination with `foldlWithIndexDefault`.\n","title":"foldMapWithIndexDefaultL","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["i",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","FoldableWithIndex"],"FoldableWithIndex"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"i"},{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Monoid"],"Monoid"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"i"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"m"}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeVar","contents":"m"}]}]}]}]},null]},null]},null]},null]}},"sourceSpan":{"start":[101,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[107,7]}},{"children":[],"comments":"Similar to 'foldlWithIndex', but the result is encapsulated in a monad.\n\nNote: this function is not generally stack-safe, e.g., for monads which\nbuild up thunks a la `Eff`.\n","title":"foldWithIndexM","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["i",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","FoldableWithIndex"],"FoldableWithIndex"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"i"},{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Monad"],"Monad"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"i"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]}]}]}]},null]},null]},null]},null]},null]}},"sourceSpan":{"start":[162,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[169,9]}},{"children":[],"comments":"Traverse a data structure with access to the index, performing some\neffects encoded by an `Applicative` functor at each value, ignoring the\nfinal result.\n\nFor example:\n\n```purescript\n> traverseWithIndex_ (curry logShow) [\"a\", \"b\", \"c\"]\n(Tuple 0 \"a\")\n(Tuple 1 \"b\")\n(Tuple 2 \"c\")\n```\n","title":"traverseWithIndex_","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["i",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Applicative"],"Applicative"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","FoldableWithIndex"],"FoldableWithIndex"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"i"},{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"i"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}]}]}]},null]},null]},null]},null]},null]}},"sourceSpan":{"start":[184,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[190,12]}},{"children":[],"comments":"A version of `traverseWithIndex_` with its arguments flipped.\n\nThis can be useful when running an action written using do notation\nfor every element in a data structure:\n\nFor example:\n\n```purescript\nforWithIndex_ [\"a\", \"b\", \"c\"] \\i x -> do\n  logShow i\n  log x\n```\n","title":"forWithIndex_","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["i",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Applicative"],"Applicative"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","FoldableWithIndex"],"FoldableWithIndex"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"i"},{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"i"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}]}]}]},null]},null]},null]},null]},null]}},"sourceSpan":{"start":[205,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[211,12]}},{"children":[],"comments":"`foldMapWithIndex` but with each element surrounded by some fixed value.\n\nFor example:\n\n```purescript\n> surroundMapWithIndex \"*\" (\\i x -> show i <> x) []\n= \"*\"\n\n> surroundMapWithIndex \"*\" (\\i x -> show i <> x) [\"a\"]\n= \"*0a*\"\n\n> surroundMapWithIndex \"*\" (\\i x -> show i <> x) [\"a\", \"b\"]\n= \"*0a*1b*\"\n\n> surroundMapWithIndex \"*\" (\\i x -> show i <> x) [\"a\", \"b\", \"c\"]\n= \"*0a*1b*2c*\"\n```\n","title":"surroundMapWithIndex","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["i",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","FoldableWithIndex"],"FoldableWithIndex"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"i"},{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Semigroup"],"Semigroup"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"m"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"i"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"m"}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeVar","contents":"m"}]}]}]}]}]},null]},null]},null]},null]}},"sourceSpan":{"start":[231,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[238,7]}},{"children":[],"comments":"`allWithIndex f` is the same as `and <<< mapWithIndex f`; map a function over the\nstructure, and then get the conjunction of the results.\n","title":"allWithIndex","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["i",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","FoldableWithIndex"],"FoldableWithIndex"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"i"},{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","HeytingAlgebra"],"HeytingAlgebra"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"b"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"i"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}]}]},null]},null]},null]},null]}},"sourceSpan":{"start":[244,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[250,7]}},{"children":[],"comments":"`anyWithIndex f` is the same as `or <<< mapWithIndex f`; map a function over the\nstructure, and then get the disjunction of the results.\n","title":"anyWithIndex","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["i",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","FoldableWithIndex"],"FoldableWithIndex"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"i"},{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","HeytingAlgebra"],"HeytingAlgebra"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"b"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"i"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}]}]},null]},null]},null]},null]}},"sourceSpan":{"start":[255,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[261,7]}},{"children":[],"comments":"Try to find an element in a data structure which satisfies a predicate\nwith access to the index.\n","title":"findWithIndex","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["i",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","FoldableWithIndex"],"FoldableWithIndex"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"i"},{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"i"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"RCons","contents":["index",{"annotation":[],"tag":"TypeVar","contents":"i"},{"annotation":[],"tag":"RCons","contents":["value",{"annotation":[],"tag":"TypeVar","contents":"a"},{"annotation":[],"tag":"REmpty"}]}]}]}]}]}]}]},null]},null]},null]}},"sourceSpan":{"start":[266,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[271,38]}},{"children":[],"comments":"A default implementation of `foldr` using `foldrWithIndex`\n","title":"foldrDefault","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["i",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","FoldableWithIndex"],"FoldableWithIndex"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"i"},{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}]}]},null]},null]},null]},null]}},"sourceSpan":{"start":[283,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[286,36]}},{"children":[],"comments":"A default implementation of `foldl` using `foldlWithIndex`\n","title":"foldlDefault","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["i",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","FoldableWithIndex"],"FoldableWithIndex"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"i"},{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}]}]},null]},null]},null]},null]}},"sourceSpan":{"start":[290,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[293,36]}},{"children":[],"comments":"A default implementation of `foldMap` using `foldMapWithIndex`\n","title":"foldMapDefault","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["i",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","FoldableWithIndex"],"FoldableWithIndex"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"i"},{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Monoid"],"Monoid"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"m"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeVar","contents":"m"}]}]}]}]},null]},null]},null]},null]}},"sourceSpan":{"start":[297,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[301,26]}}]}
diff --git a/tests/purs/publish/basic-example/output/Data.FoldableWithIndex/externs.json b/tests/purs/publish/basic-example/output/Data.FoldableWithIndex/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.FoldableWithIndex/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Data","FoldableWithIndex"],"efExports":[{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[302,46]},"FoldableWithIndex"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[302,46]},{"Ident":"foldrWithIndex"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[302,46]},{"Ident":"foldlWithIndex"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[302,46]},{"Ident":"foldMapWithIndex"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[302,46]},{"Ident":"foldrWithIndexDefault"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[302,46]},{"Ident":"foldlWithIndexDefault"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[302,46]},{"Ident":"foldMapWithIndexDefaultR"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[302,46]},{"Ident":"foldMapWithIndexDefaultL"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[302,46]},{"Ident":"foldWithIndexM"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[302,46]},{"Ident":"traverseWithIndex_"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[302,46]},{"Ident":"forWithIndex_"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[302,46]},{"Ident":"surroundMapWithIndex"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[302,46]},{"Ident":"allWithIndex"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[302,46]},{"Ident":"anyWithIndex"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[302,46]},{"Ident":"findWithIndex"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[302,46]},{"Ident":"foldrDefault"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[302,46]},{"Ident":"foldlDefault"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[302,46]},{"Ident":"foldMapDefault"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"foldableWithIndexArray"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"foldableWithIndexMaybe"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"foldableWithIndexFirst"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"foldableWithIndexLast"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"foldableWithIndexAdditive"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"foldableWithIndexDual"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"foldableWithIndexDisj"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"foldableWithIndexConj"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"foldableWithIndexMultiplicative"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Prelude"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Data","Foldable"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[21,23],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[21,37]},"Foldable"]},{"ValueRef":[{"start":[21,39],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[21,46]},{"Ident":"foldMap"}]},{"ValueRef":[{"start":[21,48],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[21,53]},{"Ident":"foldl"}]},{"ValueRef":[{"start":[21,55],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[21,60]},{"Ident":"foldr"}]}]},"eiImportedAs":null},{"eiModule":["Data","FunctorWithIndex"],"eiImportType":{"Explicit":[{"ValueRef":[{"start":[22,31],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[22,43]},{"Ident":"mapWithIndex"}]}]},"eiImportedAs":null},{"eiModule":["Data","Maybe"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[23,20],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[23,29]},"Maybe",null]}]},"eiImportedAs":null},{"eiModule":["Data","Maybe","First"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[24,26],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[24,31]},"First",[]]}]},"eiImportedAs":null},{"eiModule":["Data","Maybe","Last"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[25,25],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[25,29]},"Last",[]]}]},"eiImportedAs":null},{"eiModule":["Data","Monoid","Additive"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[26,30],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[26,38]},"Additive",[]]}]},"eiImportedAs":null},{"eiModule":["Data","Monoid","Conj"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[27,26],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[27,34]},"Conj",null]}]},"eiImportedAs":null},{"eiModule":["Data","Monoid","Disj"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[28,26],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[28,34]},"Disj",null]}]},"eiImportedAs":null},{"eiModule":["Data","Monoid","Dual"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[29,26],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[29,34]},"Dual",null]}]},"eiImportedAs":null},{"eiModule":["Data","Monoid","Endo"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[30,26],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[30,34]},"Endo",null]}]},"eiImportedAs":null},{"eiModule":["Data","Monoid","Multiplicative"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[31,36],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[31,50]},"Multiplicative",[]]}]},"eiImportedAs":null},{"eiModule":["Data","Newtype"],"eiImportType":{"Explicit":[{"ValueRef":[{"start":[32,22],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[32,28]},{"Ident":"unwrap"}]}]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDType":{"edTypeName":"FoldableWithIndex","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[54,36],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[54,38]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[54,60],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[54,63]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[54,41],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[54,43]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[54,64],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[54,66]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"FoldableWithIndex","edTypeSynonymArguments":[["i",null],["f",null]],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["foldrWithIndex",{"annotation":[{"start":[54,21],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[54,68]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[54,28],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[54,68]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[54,33],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[54,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[54,33],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[54,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[54,52],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[54,54]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[54,34],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[54,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[54,34],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[54,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[54,36],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[54,38]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[54,34],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[54,35]},[]],"tag":"TypeVar","contents":"i"}]},{"annotation":[{"start":[54,39],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[54,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[54,39],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[54,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[54,41],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[54,43]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[54,39],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[54,40]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[54,44],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[54,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[54,44],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[54,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[54,46],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[54,48]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[54,44],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[54,45]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[54,49],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[54,50]},[]],"tag":"TypeVar","contents":"b"}]}]}]}]},{"annotation":[{"start":[54,55],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[54,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[54,55],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[54,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[54,57],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[54,59]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[54,55],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[54,56]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[54,60],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[54,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[54,60],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[54,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[54,64],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[54,66]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[54,60],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[54,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[54,60],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[54,61]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[54,62],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[54,63]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[54,67],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[54,68]},[]],"tag":"TypeVar","contents":"b"}]}]}]},null]},null]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["foldlWithIndex",{"annotation":[{"start":[55,21],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[55,68]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[55,28],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[55,68]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[55,33],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[55,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,33],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[55,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,52],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[55,54]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[55,34],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[55,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,34],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[55,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,36],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[55,38]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[55,34],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[55,35]},[]],"tag":"TypeVar","contents":"i"}]},{"annotation":[{"start":[55,39],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[55,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,39],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[55,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,41],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[55,43]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[55,39],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[55,40]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[55,44],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[55,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,44],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[55,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,46],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[55,48]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[55,44],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[55,45]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[55,49],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[55,50]},[]],"tag":"TypeVar","contents":"b"}]}]}]}]},{"annotation":[{"start":[55,55],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[55,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,55],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[55,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,57],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[55,59]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[55,55],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[55,56]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[55,60],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[55,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,60],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[55,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,64],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[55,66]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[55,60],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[55,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,60],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[55,61]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[55,62],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[55,63]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[55,67],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[55,68]},[]],"tag":"TypeVar","contents":"b"}]}]}]},null]},null]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["foldMapWithIndex",{"annotation":[{"start":[56,23],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[56,72]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[56,30],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[56,72]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[56,35],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[56,72]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[56,35],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[56,43]},[]],"constraintClass":[["Data","Monoid"],"Monoid"],"constraintArgs":[{"annotation":[{"start":[56,42],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[56,43]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[56,47],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[56,72]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[56,47],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[56,72]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[56,61],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[56,63]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[56,48],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[56,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[56,48],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[56,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[56,50],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[56,52]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[56,48],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[56,49]},[]],"tag":"TypeVar","contents":"i"}]},{"annotation":[{"start":[56,53],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[56,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[56,53],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[56,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[56,55],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[56,57]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[56,53],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[56,54]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[56,58],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[56,59]},[]],"tag":"TypeVar","contents":"m"}]}]}]},{"annotation":[{"start":[56,64],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[56,72]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[56,64],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[56,72]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[56,68],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[56,70]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[56,64],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[56,67]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[56,64],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[56,65]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[56,66],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[56,67]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[56,71],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[56,72]},[]],"tag":"TypeVar","contents":"m"}]}]}]},null]},null]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["Foldable0",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Foldable"],"Foldable"]},{"annotation":[{"start":[53,16],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[53,17]},[]],"tag":"TypeVar","contents":"f"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]}]}]}]}}},{"EDClass":{"edClassName":"FoldableWithIndex","edClassTypeArguments":[["i",null],["f",null]],"edClassMembers":[[{"Ident":"foldrWithIndex"},{"annotation":[{"start":[54,21],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[54,68]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[54,28],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[54,68]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[54,33],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[54,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[54,33],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[54,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[54,52],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[54,54]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[54,34],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[54,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[54,34],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[54,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[54,36],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[54,38]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[54,34],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[54,35]},[]],"tag":"TypeVar","contents":"i"}]},{"annotation":[{"start":[54,39],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[54,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[54,39],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[54,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[54,41],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[54,43]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[54,39],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[54,40]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[54,44],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[54,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[54,44],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[54,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[54,46],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[54,48]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[54,44],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[54,45]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[54,49],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[54,50]},[]],"tag":"TypeVar","contents":"b"}]}]}]}]},{"annotation":[{"start":[54,55],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[54,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[54,55],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[54,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[54,57],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[54,59]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[54,55],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[54,56]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[54,60],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[54,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[54,60],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[54,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[54,64],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[54,66]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[54,60],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[54,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[54,60],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[54,61]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[54,62],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[54,63]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[54,67],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[54,68]},[]],"tag":"TypeVar","contents":"b"}]}]}]},null]},null]}],[{"Ident":"foldlWithIndex"},{"annotation":[{"start":[55,21],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[55,68]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[55,28],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[55,68]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[55,33],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[55,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,33],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[55,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,52],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[55,54]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[55,34],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[55,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,34],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[55,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,36],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[55,38]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[55,34],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[55,35]},[]],"tag":"TypeVar","contents":"i"}]},{"annotation":[{"start":[55,39],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[55,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,39],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[55,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,41],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[55,43]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[55,39],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[55,40]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[55,44],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[55,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,44],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[55,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,46],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[55,48]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[55,44],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[55,45]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[55,49],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[55,50]},[]],"tag":"TypeVar","contents":"b"}]}]}]}]},{"annotation":[{"start":[55,55],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[55,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,55],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[55,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,57],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[55,59]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[55,55],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[55,56]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[55,60],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[55,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,60],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[55,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,64],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[55,66]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[55,60],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[55,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,60],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[55,61]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[55,62],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[55,63]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[55,67],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[55,68]},[]],"tag":"TypeVar","contents":"b"}]}]}]},null]},null]}],[{"Ident":"foldMapWithIndex"},{"annotation":[{"start":[56,23],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[56,72]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[56,30],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[56,72]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[56,35],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[56,72]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[56,35],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[56,43]},[]],"constraintClass":[["Data","Monoid"],"Monoid"],"constraintArgs":[{"annotation":[{"start":[56,42],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[56,43]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[56,47],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[56,72]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[56,47],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[56,72]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[56,61],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[56,63]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[56,48],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[56,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[56,48],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[56,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[56,50],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[56,52]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[56,48],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[56,49]},[]],"tag":"TypeVar","contents":"i"}]},{"annotation":[{"start":[56,53],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[56,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[56,53],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[56,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[56,55],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[56,57]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[56,53],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[56,54]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[56,58],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[56,59]},[]],"tag":"TypeVar","contents":"m"}]}]}]},{"annotation":[{"start":[56,64],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[56,72]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[56,64],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[56,72]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[56,68],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[56,70]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[56,64],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[56,67]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[56,64],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[56,65]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[56,66],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[56,67]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[56,71],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[56,72]},[]],"tag":"TypeVar","contents":"m"}]}]}]},null]},null]}]],"edClassConstraints":[{"constraintAnn":[{"start":[53,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[53,17]},[]],"constraintClass":[["Data","Foldable"],"Foldable"],"constraintArgs":[{"annotation":[{"start":[53,16],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[53,17]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null}],"edFunctionalDependencies":[{"determiners":[1],"determined":[0]}]}},{"EDValue":{"edValueName":{"Ident":"foldrWithIndex"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["i",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[54,21],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[54,68]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[54,28],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[54,68]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["Data","FoldableWithIndex"],"FoldableWithIndex"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"i"},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[54,33],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[54,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[54,33],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[54,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[54,52],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[54,54]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[54,34],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[54,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[54,34],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[54,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[54,36],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[54,38]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[54,34],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[54,35]},[]],"tag":"TypeVar","contents":"i"}]},{"annotation":[{"start":[54,39],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[54,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[54,39],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[54,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[54,41],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[54,43]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[54,39],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[54,40]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[54,44],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[54,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[54,44],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[54,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[54,46],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[54,48]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[54,44],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[54,45]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[54,49],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[54,50]},[]],"tag":"TypeVar","contents":"b"}]}]}]}]},{"annotation":[{"start":[54,55],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[54,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[54,55],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[54,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[54,57],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[54,59]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[54,55],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[54,56]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[54,60],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[54,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[54,60],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[54,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[54,64],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[54,66]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[54,60],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[54,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[54,60],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[54,61]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[54,62],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[54,63]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[54,67],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[54,68]},[]],"tag":"TypeVar","contents":"b"}]}]}]}]},0]},1]},2]},3]}}},{"EDValue":{"edValueName":{"Ident":"foldlWithIndex"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["i",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[55,21],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[55,68]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[55,28],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[55,68]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["Data","FoldableWithIndex"],"FoldableWithIndex"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"i"},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[55,33],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[55,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,33],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[55,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,52],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[55,54]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[55,34],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[55,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,34],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[55,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,36],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[55,38]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[55,34],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[55,35]},[]],"tag":"TypeVar","contents":"i"}]},{"annotation":[{"start":[55,39],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[55,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,39],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[55,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,41],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[55,43]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[55,39],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[55,40]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[55,44],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[55,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,44],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[55,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,46],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[55,48]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[55,44],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[55,45]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[55,49],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[55,50]},[]],"tag":"TypeVar","contents":"b"}]}]}]}]},{"annotation":[{"start":[55,55],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[55,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,55],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[55,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,57],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[55,59]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[55,55],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[55,56]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[55,60],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[55,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,60],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[55,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,64],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[55,66]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[55,60],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[55,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,60],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[55,61]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[55,62],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[55,63]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[55,67],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[55,68]},[]],"tag":"TypeVar","contents":"b"}]}]}]}]},32]},33]},34]},35]}}},{"EDValue":{"edValueName":{"Ident":"foldMapWithIndex"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["i",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[56,23],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[56,72]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[56,30],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[56,72]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["Data","FoldableWithIndex"],"FoldableWithIndex"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"i"},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[56,35],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[56,72]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[56,35],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[56,43]},[]],"constraintClass":[["Data","Monoid"],"Monoid"],"constraintArgs":[{"annotation":[{"start":[56,42],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[56,43]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[56,47],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[56,72]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[56,47],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[56,72]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[56,61],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[56,63]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[56,48],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[56,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[56,48],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[56,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[56,50],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[56,52]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[56,48],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[56,49]},[]],"tag":"TypeVar","contents":"i"}]},{"annotation":[{"start":[56,53],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[56,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[56,53],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[56,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[56,55],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[56,57]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[56,53],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[56,54]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[56,58],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[56,59]},[]],"tag":"TypeVar","contents":"m"}]}]}]},{"annotation":[{"start":[56,64],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[56,72]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[56,64],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[56,72]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[56,68],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[56,70]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[56,64],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[56,67]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[56,64],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[56,65]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[56,66],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[56,67]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[56,71],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[56,72]},[]],"tag":"TypeVar","contents":"m"}]}]}]}]},236]},237]},238]},239]}}},{"EDValue":{"edValueName":{"Ident":"foldrWithIndexDefault"},"edValueType":{"annotation":[{"start":[63,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[68,7]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[63,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[68,7]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[63,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[68,7]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[63,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[68,7]},[]],"tag":"ForAll","contents":["i",{"annotation":[{"start":[64,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[68,7]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[64,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[64,27]},[]],"constraintClass":[["Data","FoldableWithIndex"],"FoldableWithIndex"],"constraintArgs":[{"annotation":[{"start":[64,24],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[64,25]},[]],"tag":"TypeVar","contents":"i"},{"annotation":[{"start":[64,26],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[64,27]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[65,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[68,7]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[65,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[68,7]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[66,3],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[66,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[65,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[65,23]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[65,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[65,23]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[65,9],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[65,11]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[65,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[65,8]},[]],"tag":"TypeVar","contents":"i"}]},{"annotation":[{"start":[65,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[65,23]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[65,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[65,23]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[65,14],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[65,16]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[65,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[65,13]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[65,17],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[65,23]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[65,17],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[65,23]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[65,19],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[65,21]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[65,17],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[65,18]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[65,22],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[65,23]},[]],"tag":"TypeVar","contents":"b"}]}]}]}]},{"annotation":[{"start":[66,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[68,7]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[66,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[68,7]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[67,3],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[67,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[66,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[66,7]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[67,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[68,7]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[67,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[68,7]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[68,3],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[68,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[67,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[67,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[67,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[67,7]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[67,8],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[67,9]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[68,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[68,7]},[]],"tag":"TypeVar","contents":"b"}]}]}]}]},251]},252]},253]},254]}}},{"EDValue":{"edValueName":{"Ident":"foldlWithIndexDefault"},"edValueType":{"annotation":[{"start":[76,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[81,7]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[76,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[81,7]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[76,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[81,7]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[76,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[81,7]},[]],"tag":"ForAll","contents":["i",{"annotation":[{"start":[77,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[81,7]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[77,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[77,27]},[]],"constraintClass":[["Data","FoldableWithIndex"],"FoldableWithIndex"],"constraintArgs":[{"annotation":[{"start":[77,24],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[77,25]},[]],"tag":"TypeVar","contents":"i"},{"annotation":[{"start":[77,26],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[77,27]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[78,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[81,7]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[78,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[81,7]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[79,3],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[79,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[78,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[78,23]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[78,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[78,23]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[78,9],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[78,11]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[78,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[78,8]},[]],"tag":"TypeVar","contents":"i"}]},{"annotation":[{"start":[78,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[78,23]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[78,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[78,23]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[78,14],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[78,16]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[78,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[78,13]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[78,17],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[78,23]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[78,17],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[78,23]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[78,19],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[78,21]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[78,17],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[78,18]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[78,22],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[78,23]},[]],"tag":"TypeVar","contents":"b"}]}]}]}]},{"annotation":[{"start":[79,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[81,7]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[79,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[81,7]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[80,3],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[80,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[79,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[79,7]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[80,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[81,7]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[80,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[81,7]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[81,3],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[81,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[80,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[80,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[80,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[80,7]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[80,8],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[80,9]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[81,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[81,7]},[]],"tag":"TypeVar","contents":"b"}]}]}]}]},240]},241]},242]},243]}}},{"EDValue":{"edValueName":{"Ident":"foldMapWithIndexDefaultR"},"edValueType":{"annotation":[{"start":[89,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[94,7]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[89,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[94,7]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[89,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[94,7]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[89,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[94,7]},[]],"tag":"ForAll","contents":["i",{"annotation":[{"start":[90,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[94,7]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[90,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[90,27]},[]],"constraintClass":[["Data","FoldableWithIndex"],"FoldableWithIndex"],"constraintArgs":[{"annotation":[{"start":[90,24],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[90,25]},[]],"tag":"TypeVar","contents":"i"},{"annotation":[{"start":[90,26],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[90,27]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[91,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[94,7]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[91,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[91,14]},[]],"constraintClass":[["Data","Monoid"],"Monoid"],"constraintArgs":[{"annotation":[{"start":[91,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[91,14]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[92,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[94,7]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[92,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[94,7]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[93,3],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[93,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[92,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[92,18]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[92,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[92,18]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[92,9],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[92,11]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[92,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[92,8]},[]],"tag":"TypeVar","contents":"i"}]},{"annotation":[{"start":[92,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[92,18]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[92,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[92,18]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[92,14],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[92,16]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[92,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[92,13]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[92,17],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[92,18]},[]],"tag":"TypeVar","contents":"m"}]}]}]},{"annotation":[{"start":[93,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[94,7]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[93,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[94,7]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[94,3],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[94,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[93,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[93,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[93,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[93,7]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[93,8],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[93,9]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[94,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[94,7]},[]],"tag":"TypeVar","contents":"m"}]}]}]}]},198]},199]},200]},201]}}},{"EDValue":{"edValueName":{"Ident":"foldMapWithIndexDefaultL"},"edValueType":{"annotation":[{"start":[102,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[107,7]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[102,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[107,7]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[102,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[107,7]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[102,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[107,7]},[]],"tag":"ForAll","contents":["i",{"annotation":[{"start":[103,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[107,7]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[103,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[103,27]},[]],"constraintClass":[["Data","FoldableWithIndex"],"FoldableWithIndex"],"constraintArgs":[{"annotation":[{"start":[103,24],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[103,25]},[]],"tag":"TypeVar","contents":"i"},{"annotation":[{"start":[103,26],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[103,27]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[104,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[107,7]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[104,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[104,14]},[]],"constraintClass":[["Data","Monoid"],"Monoid"],"constraintArgs":[{"annotation":[{"start":[104,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[104,14]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[105,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[107,7]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[105,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[107,7]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[106,3],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[106,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[105,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[105,18]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[105,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[105,18]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[105,9],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[105,11]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[105,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[105,8]},[]],"tag":"TypeVar","contents":"i"}]},{"annotation":[{"start":[105,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[105,18]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[105,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[105,18]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[105,14],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[105,16]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[105,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[105,13]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[105,17],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[105,18]},[]],"tag":"TypeVar","contents":"m"}]}]}]},{"annotation":[{"start":[106,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[107,7]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[106,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[107,7]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[107,3],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[107,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[106,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[106,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[106,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[106,7]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[106,8],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[106,9]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[107,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[107,7]},[]],"tag":"TypeVar","contents":"m"}]}]}]}]},228]},229]},230]},231]}}},{"EDValue":{"edValueName":{"Ident":"foldWithIndexM"},"edValueType":{"annotation":[{"start":[163,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[169,9]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[163,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[169,9]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[163,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[169,9]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[163,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[169,9]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[163,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[169,9]},[]],"tag":"ForAll","contents":["i",{"annotation":[{"start":[164,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[169,9]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[164,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[164,27]},[]],"constraintClass":[["Data","FoldableWithIndex"],"FoldableWithIndex"],"constraintArgs":[{"annotation":[{"start":[164,24],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[164,25]},[]],"tag":"TypeVar","contents":"i"},{"annotation":[{"start":[164,26],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[164,27]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[165,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[169,9]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[165,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[165,13]},[]],"constraintClass":[["Control","Monad"],"Monad"],"constraintArgs":[{"annotation":[{"start":[165,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[165,13]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[166,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[169,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[166,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[169,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[167,3],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[167,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[166,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[166,25]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[166,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[166,25]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[166,9],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[166,11]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[166,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[166,8]},[]],"tag":"TypeVar","contents":"i"}]},{"annotation":[{"start":[166,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[166,25]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[166,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[166,25]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[166,14],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[166,16]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[166,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[166,13]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[166,17],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[166,25]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[166,17],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[166,25]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[166,19],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[166,21]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[166,17],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[166,18]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[166,22],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[166,25]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[166,22],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[166,23]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[166,24],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[166,25]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]}]},{"annotation":[{"start":[167,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[169,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[167,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[169,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[168,3],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[168,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[167,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[167,7]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[168,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[169,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[168,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[169,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[169,3],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[169,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[168,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[168,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[168,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[168,7]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[168,8],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[168,9]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[169,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[169,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[169,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[169,7]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[169,8],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[169,9]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]}]}]},188]},189]},190]},191]},192]}}},{"EDValue":{"edValueName":{"Ident":"traverseWithIndex_"},"edValueType":{"annotation":[{"start":[185,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[190,12]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[185,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[190,12]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[185,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[190,12]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[185,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[190,12]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[185,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[190,12]},[]],"tag":"ForAll","contents":["i",{"annotation":[{"start":[186,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[190,12]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[186,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[186,19]},[]],"constraintClass":[["Control","Applicative"],"Applicative"],"constraintArgs":[{"annotation":[{"start":[186,18],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[186,19]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[187,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[190,12]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[187,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[187,27]},[]],"constraintClass":[["Data","FoldableWithIndex"],"FoldableWithIndex"],"constraintArgs":[{"annotation":[{"start":[187,24],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[187,25]},[]],"tag":"TypeVar","contents":"i"},{"annotation":[{"start":[187,26],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[187,27]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[188,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[190,12]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[188,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[190,12]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[189,3],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[189,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[188,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[188,20]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[188,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[188,20]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[188,9],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[188,11]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[188,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[188,8]},[]],"tag":"TypeVar","contents":"i"}]},{"annotation":[{"start":[188,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[188,20]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[188,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[188,20]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[188,14],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[188,16]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[188,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[188,13]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[188,17],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[188,20]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[188,17],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[188,18]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[188,19],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[188,20]},[]],"tag":"TypeVar","contents":"b"}]}]}]}]},{"annotation":[{"start":[189,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[190,12]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[189,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[190,12]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[190,3],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[190,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[189,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[189,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[189,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[189,7]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[189,8],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[189,9]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[190,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[190,12]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[190,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[190,7]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[190,8],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[190,12]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}]}]}]},4]},5]},6]},7]},8]}}},{"EDValue":{"edValueName":{"Ident":"forWithIndex_"},"edValueType":{"annotation":[{"start":[206,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[211,12]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[206,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[211,12]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[206,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[211,12]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[206,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[211,12]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[206,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[211,12]},[]],"tag":"ForAll","contents":["i",{"annotation":[{"start":[207,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[211,12]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[207,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[207,19]},[]],"constraintClass":[["Control","Applicative"],"Applicative"],"constraintArgs":[{"annotation":[{"start":[207,18],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[207,19]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[208,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[211,12]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[208,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[208,27]},[]],"constraintClass":[["Data","FoldableWithIndex"],"FoldableWithIndex"],"constraintArgs":[{"annotation":[{"start":[208,24],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[208,25]},[]],"tag":"TypeVar","contents":"i"},{"annotation":[{"start":[208,26],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[208,27]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[209,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[211,12]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[209,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[211,12]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[210,3],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[210,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[209,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[209,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[209,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[209,7]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[209,8],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[209,9]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[210,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[211,12]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[210,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[211,12]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[211,3],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[211,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[210,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[210,20]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[210,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[210,20]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[210,9],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[210,11]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[210,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[210,8]},[]],"tag":"TypeVar","contents":"i"}]},{"annotation":[{"start":[210,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[210,20]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[210,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[210,20]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[210,14],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[210,16]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[210,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[210,13]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[210,17],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[210,20]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[210,17],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[210,18]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[210,19],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[210,20]},[]],"tag":"TypeVar","contents":"b"}]}]}]}]},{"annotation":[{"start":[211,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[211,12]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[211,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[211,7]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[211,8],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[211,12]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}]}]}]},14]},15]},16]},17]},18]}}},{"EDValue":{"edValueName":{"Ident":"surroundMapWithIndex"},"edValueType":{"annotation":[{"start":[232,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[238,7]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[232,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[238,7]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[232,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[238,7]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[232,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[238,7]},[]],"tag":"ForAll","contents":["i",{"annotation":[{"start":[233,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[238,7]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[233,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[233,27]},[]],"constraintClass":[["Data","FoldableWithIndex"],"FoldableWithIndex"],"constraintArgs":[{"annotation":[{"start":[233,24],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[233,25]},[]],"tag":"TypeVar","contents":"i"},{"annotation":[{"start":[233,26],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[233,27]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[234,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[238,7]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[234,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[234,17]},[]],"constraintClass":[["Data","Semigroup"],"Semigroup"],"constraintArgs":[{"annotation":[{"start":[234,16],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[234,17]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[235,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[238,7]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[235,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[238,7]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[236,3],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[236,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[235,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[235,7]},[]],"tag":"TypeVar","contents":"m"}]},{"annotation":[{"start":[236,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[238,7]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[236,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[238,7]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[237,3],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[237,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[236,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[236,18]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[236,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[236,18]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[236,9],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[236,11]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[236,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[236,8]},[]],"tag":"TypeVar","contents":"i"}]},{"annotation":[{"start":[236,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[236,18]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[236,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[236,18]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[236,14],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[236,16]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[236,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[236,13]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[236,17],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[236,18]},[]],"tag":"TypeVar","contents":"m"}]}]}]},{"annotation":[{"start":[237,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[238,7]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[237,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[238,7]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[238,3],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[238,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[237,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[237,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[237,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[237,7]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[237,8],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[237,9]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[238,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[238,7]},[]],"tag":"TypeVar","contents":"m"}]}]}]}]}]},261]},262]},263]},264]}}},{"EDValue":{"edValueName":{"Ident":"allWithIndex"},"edValueType":{"annotation":[{"start":[245,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[250,7]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[245,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[250,7]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[245,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[250,7]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[245,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[250,7]},[]],"tag":"ForAll","contents":["i",{"annotation":[{"start":[246,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[250,7]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[246,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[246,27]},[]],"constraintClass":[["Data","FoldableWithIndex"],"FoldableWithIndex"],"constraintArgs":[{"annotation":[{"start":[246,24],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[246,25]},[]],"tag":"TypeVar","contents":"i"},{"annotation":[{"start":[246,26],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[246,27]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[247,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[250,7]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[247,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[247,22]},[]],"constraintClass":[["Data","HeytingAlgebra"],"HeytingAlgebra"],"constraintArgs":[{"annotation":[{"start":[247,21],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[247,22]},[]],"tag":"TypeVar","contents":"b"}],"constraintData":null},{"annotation":[{"start":[248,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[250,7]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[248,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[250,7]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[249,3],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[249,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[248,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[248,18]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[248,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[248,18]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[248,9],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[248,11]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[248,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[248,8]},[]],"tag":"TypeVar","contents":"i"}]},{"annotation":[{"start":[248,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[248,18]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[248,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[248,18]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[248,14],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[248,16]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[248,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[248,13]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[248,17],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[248,18]},[]],"tag":"TypeVar","contents":"b"}]}]}]},{"annotation":[{"start":[249,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[250,7]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[249,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[250,7]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[250,3],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[250,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[249,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[249,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[249,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[249,7]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[249,8],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[249,9]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[250,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[250,7]},[]],"tag":"TypeVar","contents":"b"}]}]}]}]},293]},294]},295]},296]}}},{"EDValue":{"edValueName":{"Ident":"anyWithIndex"},"edValueType":{"annotation":[{"start":[256,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[261,7]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[256,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[261,7]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[256,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[261,7]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[256,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[261,7]},[]],"tag":"ForAll","contents":["i",{"annotation":[{"start":[257,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[261,7]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[257,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[257,27]},[]],"constraintClass":[["Data","FoldableWithIndex"],"FoldableWithIndex"],"constraintArgs":[{"annotation":[{"start":[257,24],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[257,25]},[]],"tag":"TypeVar","contents":"i"},{"annotation":[{"start":[257,26],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[257,27]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[258,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[261,7]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[258,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[258,22]},[]],"constraintClass":[["Data","HeytingAlgebra"],"HeytingAlgebra"],"constraintArgs":[{"annotation":[{"start":[258,21],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[258,22]},[]],"tag":"TypeVar","contents":"b"}],"constraintData":null},{"annotation":[{"start":[259,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[261,7]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[259,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[261,7]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[260,3],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[260,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[259,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[259,18]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[259,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[259,18]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[259,9],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[259,11]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[259,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[259,8]},[]],"tag":"TypeVar","contents":"i"}]},{"annotation":[{"start":[259,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[259,18]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[259,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[259,18]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[259,14],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[259,16]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[259,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[259,13]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[259,17],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[259,18]},[]],"tag":"TypeVar","contents":"b"}]}]}]},{"annotation":[{"start":[260,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[261,7]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[260,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[261,7]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[261,3],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[261,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[260,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[260,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[260,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[260,7]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[260,8],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[260,9]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[261,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[261,7]},[]],"tag":"TypeVar","contents":"b"}]}]}]}]},284]},285]},286]},287]}}},{"EDValue":{"edValueName":{"Ident":"findWithIndex"},"edValueType":{"annotation":[{"start":[267,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[271,38]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[267,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[271,38]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[267,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[271,38]},[]],"tag":"ForAll","contents":["i",{"annotation":[{"start":[268,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[271,38]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[268,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[268,27]},[]],"constraintClass":[["Data","FoldableWithIndex"],"FoldableWithIndex"],"constraintArgs":[{"annotation":[{"start":[268,24],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[268,25]},[]],"tag":"TypeVar","contents":"i"},{"annotation":[{"start":[268,26],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[268,27]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[269,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[271,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[269,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[271,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[270,3],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[270,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[269,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[269,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[269,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[269,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[269,9],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[269,11]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[269,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[269,8]},[]],"tag":"TypeVar","contents":"i"}]},{"annotation":[{"start":[269,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[269,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[269,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[269,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[269,14],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[269,16]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[269,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[269,13]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[269,17],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[269,24]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]}]},{"annotation":[{"start":[270,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[271,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[270,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[271,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[271,3],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[271,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[270,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[270,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[270,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[270,7]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[270,8],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[270,9]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[271,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[271,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[271,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[271,11]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[271,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[271,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[271,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[271,13]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[271,14],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[271,24]},[]],"tag":"RCons","contents":["index",{"annotation":[{"start":[271,23],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[271,24]},[]],"tag":"TypeVar","contents":"i"},{"annotation":[{"start":[271,26],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[271,36]},[]],"tag":"RCons","contents":["value",{"annotation":[{"start":[271,35],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[271,36]},[]],"tag":"TypeVar","contents":"a"},{"annotation":[{"start":[271,37],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[271,38]},[]],"tag":"REmpty"}]}]}]}]}]}]}]},277]},278]},279]}}},{"EDValue":{"edValueName":{"Ident":"foldrDefault"},"edValueType":{"annotation":[{"start":[284,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[286,36]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[284,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[286,36]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[284,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[286,36]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[284,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[286,36]},[]],"tag":"ForAll","contents":["i",{"annotation":[{"start":[285,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[286,36]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[285,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[285,27]},[]],"constraintClass":[["Data","FoldableWithIndex"],"FoldableWithIndex"],"constraintArgs":[{"annotation":[{"start":[285,24],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[285,25]},[]],"tag":"TypeVar","contents":"i"},{"annotation":[{"start":[285,26],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[285,27]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[286,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[286,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[286,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[286,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[286,20],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[286,22]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[286,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[286,18]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[286,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[286,18]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[286,9],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[286,11]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[286,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[286,8]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[286,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[286,18]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[286,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[286,18]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[286,14],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[286,16]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[286,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[286,13]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[286,17],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[286,18]},[]],"tag":"TypeVar","contents":"b"}]}]}]},{"annotation":[{"start":[286,23],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[286,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[286,23],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[286,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[286,25],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[286,27]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[286,23],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[286,24]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[286,28],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[286,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[286,28],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[286,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[286,32],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[286,34]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[286,28],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[286,31]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[286,28],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[286,29]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[286,30],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[286,31]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[286,35],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[286,36]},[]],"tag":"TypeVar","contents":"b"}]}]}]}]},24]},25]},26]},27]}}},{"EDValue":{"edValueName":{"Ident":"foldlDefault"},"edValueType":{"annotation":[{"start":[291,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[293,36]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[291,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[293,36]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[291,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[293,36]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[291,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[293,36]},[]],"tag":"ForAll","contents":["i",{"annotation":[{"start":[292,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[293,36]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[292,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[292,27]},[]],"constraintClass":[["Data","FoldableWithIndex"],"FoldableWithIndex"],"constraintArgs":[{"annotation":[{"start":[292,24],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[292,25]},[]],"tag":"TypeVar","contents":"i"},{"annotation":[{"start":[292,26],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[292,27]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[293,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[293,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[293,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[293,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[293,20],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[293,22]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[293,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[293,18]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[293,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[293,18]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[293,9],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[293,11]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[293,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[293,8]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[293,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[293,18]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[293,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[293,18]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[293,14],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[293,16]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[293,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[293,13]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[293,17],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[293,18]},[]],"tag":"TypeVar","contents":"b"}]}]}]},{"annotation":[{"start":[293,23],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[293,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[293,23],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[293,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[293,25],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[293,27]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[293,23],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[293,24]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[293,28],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[293,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[293,28],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[293,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[293,32],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[293,34]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[293,28],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[293,31]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[293,28],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[293,29]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[293,30],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[293,31]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[293,35],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[293,36]},[]],"tag":"TypeVar","contents":"b"}]}]}]}]},36]},37]},38]},39]}}},{"EDValue":{"edValueName":{"Ident":"foldMapDefault"},"edValueType":{"annotation":[{"start":[298,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[301,26]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[298,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[301,26]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[298,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[301,26]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[298,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[301,26]},[]],"tag":"ForAll","contents":["i",{"annotation":[{"start":[299,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[301,26]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[299,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[299,27]},[]],"constraintClass":[["Data","FoldableWithIndex"],"FoldableWithIndex"],"constraintArgs":[{"annotation":[{"start":[299,24],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[299,25]},[]],"tag":"TypeVar","contents":"i"},{"annotation":[{"start":[299,26],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[299,27]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[300,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[301,26]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[300,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[300,14]},[]],"constraintClass":[["Data","Monoid"],"Monoid"],"constraintArgs":[{"annotation":[{"start":[300,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[300,14]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[301,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[301,26]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[301,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[301,26]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[301,15],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[301,17]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[301,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[301,13]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[301,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[301,13]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[301,9],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[301,11]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[301,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[301,8]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[301,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[301,13]},[]],"tag":"TypeVar","contents":"m"}]}]},{"annotation":[{"start":[301,18],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[301,26]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[301,18],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[301,26]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[301,22],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[301,24]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[301,18],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[301,21]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[301,18],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[301,19]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[301,20],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[301,21]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[301,25],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[301,26]},[]],"tag":"TypeVar","contents":"m"}]}]}]}]},269]},270]},271]},272]}}},{"EDInstance":{"edInstanceClassName":[["Data","FoldableWithIndex"],"FoldableWithIndex"],"edInstanceName":{"Ident":"foldableWithIndexArray"},"edInstanceTypes":[{"annotation":[{"start":[112,54],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[112,57]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]},{"annotation":[{"start":[112,58],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[112,63]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","FoldableWithIndex"],{"Ident":"foldableWithIndexArray"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","FoldableWithIndex"],"FoldableWithIndex"],"edInstanceName":{"Ident":"foldableWithIndexMaybe"},"edInstanceTypes":[{"annotation":[{"start":[117,54],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[117,58]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]},{"annotation":[{"start":[117,59],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[117,64]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","FoldableWithIndex"],{"Ident":"foldableWithIndexMaybe"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","FoldableWithIndex"],"FoldableWithIndex"],"edInstanceName":{"Ident":"foldableWithIndexFirst"},"edInstanceTypes":[{"annotation":[{"start":[122,54],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[122,58]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]},{"annotation":[{"start":[122,59],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[122,64]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe","First"],"First"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","FoldableWithIndex"],{"Ident":"foldableWithIndexFirst"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","FoldableWithIndex"],"FoldableWithIndex"],"edInstanceName":{"Ident":"foldableWithIndexLast"},"edInstanceTypes":[{"annotation":[{"start":[127,53],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[127,57]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]},{"annotation":[{"start":[127,58],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[127,62]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe","Last"],"Last"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","FoldableWithIndex"],{"Ident":"foldableWithIndexLast"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","FoldableWithIndex"],"FoldableWithIndex"],"edInstanceName":{"Ident":"foldableWithIndexAdditive"},"edInstanceTypes":[{"annotation":[{"start":[132,57],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[132,61]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]},{"annotation":[{"start":[132,62],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[132,70]},[]],"tag":"TypeConstructor","contents":[["Data","Monoid","Additive"],"Additive"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","FoldableWithIndex"],{"Ident":"foldableWithIndexAdditive"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","FoldableWithIndex"],"FoldableWithIndex"],"edInstanceName":{"Ident":"foldableWithIndexDual"},"edInstanceTypes":[{"annotation":[{"start":[137,53],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[137,57]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]},{"annotation":[{"start":[137,58],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[137,62]},[]],"tag":"TypeConstructor","contents":[["Data","Monoid","Dual"],"Dual"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","FoldableWithIndex"],{"Ident":"foldableWithIndexDual"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","FoldableWithIndex"],"FoldableWithIndex"],"edInstanceName":{"Ident":"foldableWithIndexDisj"},"edInstanceTypes":[{"annotation":[{"start":[142,53],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[142,57]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]},{"annotation":[{"start":[142,58],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[142,62]},[]],"tag":"TypeConstructor","contents":[["Data","Monoid","Disj"],"Disj"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","FoldableWithIndex"],{"Ident":"foldableWithIndexDisj"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","FoldableWithIndex"],"FoldableWithIndex"],"edInstanceName":{"Ident":"foldableWithIndexConj"},"edInstanceTypes":[{"annotation":[{"start":[147,53],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[147,57]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]},{"annotation":[{"start":[147,58],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[147,62]},[]],"tag":"TypeConstructor","contents":[["Data","Monoid","Conj"],"Conj"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","FoldableWithIndex"],{"Ident":"foldableWithIndexConj"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","FoldableWithIndex"],"FoldableWithIndex"],"edInstanceName":{"Ident":"foldableWithIndexMultiplicative"},"edInstanceTypes":[{"annotation":[{"start":[152,63],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[152,67]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]},{"annotation":[{"start":[152,68],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[152,82]},[]],"tag":"TypeConstructor","contents":[["Data","Monoid","Multiplicative"],"Multiplicative"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","FoldableWithIndex"],{"Ident":"foldableWithIndexMultiplicative"}]],"edInstanceChainIndex":0}}],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FoldableWithIndex.purs","end":[302,46]}}
diff --git a/tests/purs/publish/basic-example/output/Data.Function.Uncurried/docs.json b/tests/purs/publish/basic-example/output/Data.Function.Uncurried/docs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.Function.Uncurried/docs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"reExports":[],"name":"Data.Function.Uncurried","comments":null,"declarations":[{"children":[],"comments":"A function of zero arguments\n","title":"Fn0","info":{"kind":{"annotation":[],"tag":"FunKind","contents":[{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},"declType":"externData"},"sourceSpan":{"start":[6,1],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[6,40]}},{"children":[],"comments":"A function of one argument\n","title":"Fn1","info":{"arguments":[["a",null],["b",null]],"declType":"typeSynonym","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}},"sourceSpan":{"start":[9,1],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[9,22]}},{"children":[],"comments":"A function of two arguments\n","title":"Fn2","info":{"kind":{"annotation":[],"tag":"FunKind","contents":[{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[],"tag":"FunKind","contents":[{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[],"tag":"FunKind","contents":[{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]}]},"declType":"externData"},"sourceSpan":{"start":[12,1],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[12,56]}},{"children":[],"comments":"A function of three arguments\n","title":"Fn3","info":{"kind":{"annotation":[],"tag":"FunKind","contents":[{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[],"tag":"FunKind","contents":[{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[],"tag":"FunKind","contents":[{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[],"tag":"FunKind","contents":[{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]}]}]},"declType":"externData"},"sourceSpan":{"start":[15,1],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[15,64]}},{"children":[],"comments":"A function of four arguments\n","title":"Fn4","info":{"kind":{"annotation":[],"tag":"FunKind","contents":[{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[],"tag":"FunKind","contents":[{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[],"tag":"FunKind","contents":[{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[],"tag":"FunKind","contents":[{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[],"tag":"FunKind","contents":[{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]}]}]}]},"declType":"externData"},"sourceSpan":{"start":[18,1],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[18,72]}},{"children":[],"comments":"A function of five arguments\n","title":"Fn5","info":{"kind":{"annotation":[],"tag":"FunKind","contents":[{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[],"tag":"FunKind","contents":[{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[],"tag":"FunKind","contents":[{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[],"tag":"FunKind","contents":[{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[],"tag":"FunKind","contents":[{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[],"tag":"FunKind","contents":[{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]}]}]}]}]},"declType":"externData"},"sourceSpan":{"start":[21,1],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[21,80]}},{"children":[],"comments":"A function of six arguments\n","title":"Fn6","info":{"kind":{"annotation":[],"tag":"FunKind","contents":[{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[],"tag":"FunKind","contents":[{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[],"tag":"FunKind","contents":[{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[],"tag":"FunKind","contents":[{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[],"tag":"FunKind","contents":[{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[],"tag":"FunKind","contents":[{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[],"tag":"FunKind","contents":[{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]}]}]}]}]}]},"declType":"externData"},"sourceSpan":{"start":[24,1],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[24,88]}},{"children":[],"comments":"A function of seven arguments\n","title":"Fn7","info":{"kind":{"annotation":[],"tag":"FunKind","contents":[{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[],"tag":"FunKind","contents":[{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[],"tag":"FunKind","contents":[{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[],"tag":"FunKind","contents":[{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[],"tag":"FunKind","contents":[{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[],"tag":"FunKind","contents":[{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[],"tag":"FunKind","contents":[{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[],"tag":"FunKind","contents":[{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]}]}]}]}]}]}]},"declType":"externData"},"sourceSpan":{"start":[27,1],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[27,96]}},{"children":[],"comments":"A function of eight arguments\n","title":"Fn8","info":{"kind":{"annotation":[],"tag":"FunKind","contents":[{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[],"tag":"FunKind","contents":[{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[],"tag":"FunKind","contents":[{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[],"tag":"FunKind","contents":[{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[],"tag":"FunKind","contents":[{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[],"tag":"FunKind","contents":[{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[],"tag":"FunKind","contents":[{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[],"tag":"FunKind","contents":[{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[],"tag":"FunKind","contents":[{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]}]}]}]}]}]}]}]},"declType":"externData"},"sourceSpan":{"start":[30,1],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[30,104]}},{"children":[],"comments":"A function of nine arguments\n","title":"Fn9","info":{"kind":{"annotation":[],"tag":"FunKind","contents":[{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[],"tag":"FunKind","contents":[{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[],"tag":"FunKind","contents":[{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[],"tag":"FunKind","contents":[{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[],"tag":"FunKind","contents":[{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[],"tag":"FunKind","contents":[{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[],"tag":"FunKind","contents":[{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[],"tag":"FunKind","contents":[{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[],"tag":"FunKind","contents":[{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[],"tag":"FunKind","contents":[{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]}]}]}]}]}]}]}]}]},"declType":"externData"},"sourceSpan":{"start":[33,1],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[33,112]}},{"children":[],"comments":"A function of ten arguments\n","title":"Fn10","info":{"kind":{"annotation":[],"tag":"FunKind","contents":[{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[],"tag":"FunKind","contents":[{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[],"tag":"FunKind","contents":[{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[],"tag":"FunKind","contents":[{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[],"tag":"FunKind","contents":[{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[],"tag":"FunKind","contents":[{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[],"tag":"FunKind","contents":[{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[],"tag":"FunKind","contents":[{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[],"tag":"FunKind","contents":[{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[],"tag":"FunKind","contents":[{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[],"tag":"FunKind","contents":[{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]}]}]}]}]}]}]}]}]}]},"declType":"externData"},"sourceSpan":{"start":[36,1],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[36,121]}},{"children":[],"comments":"Create a function of no arguments\n","title":"mkFn0","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Function","Uncurried"],"Fn0"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},null]}},"sourceSpan":{"start":[39,1],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[39,55]}},{"children":[],"comments":"Create a function of one argument\n","title":"mkFn1","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Function","Uncurried"],"Fn1"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]},null]},null]}},"sourceSpan":{"start":[42,1],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[42,41]}},{"children":[],"comments":"Create a function of two arguments from a curried function\n","title":"mkFn2","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Function","Uncurried"],"Fn2"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]}]},null]},null]},null]}},"sourceSpan":{"start":[46,1],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[46,65]}},{"children":[],"comments":"Create a function of three arguments from a curried function\n","title":"mkFn3","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["d",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"d"}]}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Function","Uncurried"],"Fn3"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"d"}]}]},null]},null]},null]},null]}},"sourceSpan":{"start":[49,1],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[49,74]}},{"children":[],"comments":"Create a function of four arguments from a curried function\n","title":"mkFn4","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["e",{"annotation":[],"tag":"ForAll","contents":["d",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeVar","contents":"e"}]}]}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Function","Uncurried"],"Fn4"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeVar","contents":"e"}]}]},null]},null]},null]},null]},null]}},"sourceSpan":{"start":[52,1],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[52,83]}},{"children":[],"comments":"Create a function of five arguments from a curried function\n","title":"mkFn5","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["e",{"annotation":[],"tag":"ForAll","contents":["d",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"e"}]},{"annotation":[],"tag":"TypeVar","contents":"f"}]}]}]}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Function","Uncurried"],"Fn5"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeVar","contents":"e"}]},{"annotation":[],"tag":"TypeVar","contents":"f"}]}]},null]},null]},null]},null]},null]},null]}},"sourceSpan":{"start":[55,1],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[55,92]}},{"children":[],"comments":"Create a function of six arguments from a curried function\n","title":"mkFn6","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["g",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["e",{"annotation":[],"tag":"ForAll","contents":["d",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"e"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"f"}]},{"annotation":[],"tag":"TypeVar","contents":"g"}]}]}]}]}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Function","Uncurried"],"Fn6"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeVar","contents":"e"}]},{"annotation":[],"tag":"TypeVar","contents":"f"}]},{"annotation":[],"tag":"TypeVar","contents":"g"}]}]},null]},null]},null]},null]},null]},null]},null]}},"sourceSpan":{"start":[58,1],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[58,101]}},{"children":[],"comments":"Create a function of seven arguments from a curried function\n","title":"mkFn7","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["h",{"annotation":[],"tag":"ForAll","contents":["g",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["e",{"annotation":[],"tag":"ForAll","contents":["d",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"e"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"f"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"g"}]},{"annotation":[],"tag":"TypeVar","contents":"h"}]}]}]}]}]}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Function","Uncurried"],"Fn7"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeVar","contents":"e"}]},{"annotation":[],"tag":"TypeVar","contents":"f"}]},{"annotation":[],"tag":"TypeVar","contents":"g"}]},{"annotation":[],"tag":"TypeVar","contents":"h"}]}]},null]},null]},null]},null]},null]},null]},null]},null]}},"sourceSpan":{"start":[61,1],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[61,110]}},{"children":[],"comments":"Create a function of eight arguments from a curried function\n","title":"mkFn8","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["i",{"annotation":[],"tag":"ForAll","contents":["h",{"annotation":[],"tag":"ForAll","contents":["g",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["e",{"annotation":[],"tag":"ForAll","contents":["d",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"e"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"f"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"g"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"h"}]},{"annotation":[],"tag":"TypeVar","contents":"i"}]}]}]}]}]}]}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Function","Uncurried"],"Fn8"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeVar","contents":"e"}]},{"annotation":[],"tag":"TypeVar","contents":"f"}]},{"annotation":[],"tag":"TypeVar","contents":"g"}]},{"annotation":[],"tag":"TypeVar","contents":"h"}]},{"annotation":[],"tag":"TypeVar","contents":"i"}]}]},null]},null]},null]},null]},null]},null]},null]},null]},null]}},"sourceSpan":{"start":[64,1],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[64,119]}},{"children":[],"comments":"Create a function of nine arguments from a curried function\n","title":"mkFn9","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["j",{"annotation":[],"tag":"ForAll","contents":["i",{"annotation":[],"tag":"ForAll","contents":["h",{"annotation":[],"tag":"ForAll","contents":["g",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["e",{"annotation":[],"tag":"ForAll","contents":["d",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"e"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"f"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"g"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"h"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"i"}]},{"annotation":[],"tag":"TypeVar","contents":"j"}]}]}]}]}]}]}]}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Function","Uncurried"],"Fn9"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeVar","contents":"e"}]},{"annotation":[],"tag":"TypeVar","contents":"f"}]},{"annotation":[],"tag":"TypeVar","contents":"g"}]},{"annotation":[],"tag":"TypeVar","contents":"h"}]},{"annotation":[],"tag":"TypeVar","contents":"i"}]},{"annotation":[],"tag":"TypeVar","contents":"j"}]}]},null]},null]},null]},null]},null]},null]},null]},null]},null]},null]}},"sourceSpan":{"start":[67,1],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[67,128]}},{"children":[],"comments":"Create a function of ten arguments from a curried function\n","title":"mkFn10","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["k",{"annotation":[],"tag":"ForAll","contents":["j",{"annotation":[],"tag":"ForAll","contents":["i",{"annotation":[],"tag":"ForAll","contents":["h",{"annotation":[],"tag":"ForAll","contents":["g",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["e",{"annotation":[],"tag":"ForAll","contents":["d",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"e"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"f"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"g"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"h"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"i"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"j"}]},{"annotation":[],"tag":"TypeVar","contents":"k"}]}]}]}]}]}]}]}]}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Function","Uncurried"],"Fn10"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeVar","contents":"e"}]},{"annotation":[],"tag":"TypeVar","contents":"f"}]},{"annotation":[],"tag":"TypeVar","contents":"g"}]},{"annotation":[],"tag":"TypeVar","contents":"h"}]},{"annotation":[],"tag":"TypeVar","contents":"i"}]},{"annotation":[],"tag":"TypeVar","contents":"j"}]},{"annotation":[],"tag":"TypeVar","contents":"k"}]}]},null]},null]},null]},null]},null]},null]},null]},null]},null]},null]},null]}},"sourceSpan":{"start":[70,1],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[70,139]}},{"children":[],"comments":"Apply a function of no arguments\n","title":"runFn0","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Function","Uncurried"],"Fn0"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},null]}},"sourceSpan":{"start":[73,1],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[73,46]}},{"children":[],"comments":"Apply a function of one argument\n","title":"runFn1","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Function","Uncurried"],"Fn1"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]},null]},null]}},"sourceSpan":{"start":[76,1],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[76,40]}},{"children":[],"comments":"Apply a function of two arguments\n","title":"runFn2","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Function","Uncurried"],"Fn2"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]}]}]},null]},null]},null]}},"sourceSpan":{"start":[80,1],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[80,64]}},{"children":[],"comments":"Apply a function of three arguments\n","title":"runFn3","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["d",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Function","Uncurried"],"Fn3"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"d"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"d"}]}]}]}]},null]},null]},null]},null]}},"sourceSpan":{"start":[83,1],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[83,73]}},{"children":[],"comments":"Apply a function of four arguments\n","title":"runFn4","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["e",{"annotation":[],"tag":"ForAll","contents":["d",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Function","Uncurried"],"Fn4"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeVar","contents":"e"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeVar","contents":"e"}]}]}]}]}]},null]},null]},null]},null]},null]}},"sourceSpan":{"start":[86,1],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[86,82]}},{"children":[],"comments":"Apply a function of five arguments\n","title":"runFn5","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["e",{"annotation":[],"tag":"ForAll","contents":["d",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Function","Uncurried"],"Fn5"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeVar","contents":"e"}]},{"annotation":[],"tag":"TypeVar","contents":"f"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"e"}]},{"annotation":[],"tag":"TypeVar","contents":"f"}]}]}]}]}]}]},null]},null]},null]},null]},null]},null]}},"sourceSpan":{"start":[89,1],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[89,91]}},{"children":[],"comments":"Apply a function of six arguments\n","title":"runFn6","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["g",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["e",{"annotation":[],"tag":"ForAll","contents":["d",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Function","Uncurried"],"Fn6"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeVar","contents":"e"}]},{"annotation":[],"tag":"TypeVar","contents":"f"}]},{"annotation":[],"tag":"TypeVar","contents":"g"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"e"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"f"}]},{"annotation":[],"tag":"TypeVar","contents":"g"}]}]}]}]}]}]}]},null]},null]},null]},null]},null]},null]},null]}},"sourceSpan":{"start":[92,1],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[92,100]}},{"children":[],"comments":"Apply a function of seven arguments\n","title":"runFn7","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["h",{"annotation":[],"tag":"ForAll","contents":["g",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["e",{"annotation":[],"tag":"ForAll","contents":["d",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Function","Uncurried"],"Fn7"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeVar","contents":"e"}]},{"annotation":[],"tag":"TypeVar","contents":"f"}]},{"annotation":[],"tag":"TypeVar","contents":"g"}]},{"annotation":[],"tag":"TypeVar","contents":"h"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"e"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"f"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"g"}]},{"annotation":[],"tag":"TypeVar","contents":"h"}]}]}]}]}]}]}]}]},null]},null]},null]},null]},null]},null]},null]},null]}},"sourceSpan":{"start":[95,1],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[95,109]}},{"children":[],"comments":"Apply a function of eight arguments\n","title":"runFn8","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["i",{"annotation":[],"tag":"ForAll","contents":["h",{"annotation":[],"tag":"ForAll","contents":["g",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["e",{"annotation":[],"tag":"ForAll","contents":["d",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Function","Uncurried"],"Fn8"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeVar","contents":"e"}]},{"annotation":[],"tag":"TypeVar","contents":"f"}]},{"annotation":[],"tag":"TypeVar","contents":"g"}]},{"annotation":[],"tag":"TypeVar","contents":"h"}]},{"annotation":[],"tag":"TypeVar","contents":"i"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"e"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"f"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"g"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"h"}]},{"annotation":[],"tag":"TypeVar","contents":"i"}]}]}]}]}]}]}]}]}]},null]},null]},null]},null]},null]},null]},null]},null]},null]}},"sourceSpan":{"start":[98,1],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[98,118]}},{"children":[],"comments":"Apply a function of nine arguments\n","title":"runFn9","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["j",{"annotation":[],"tag":"ForAll","contents":["i",{"annotation":[],"tag":"ForAll","contents":["h",{"annotation":[],"tag":"ForAll","contents":["g",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["e",{"annotation":[],"tag":"ForAll","contents":["d",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Function","Uncurried"],"Fn9"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeVar","contents":"e"}]},{"annotation":[],"tag":"TypeVar","contents":"f"}]},{"annotation":[],"tag":"TypeVar","contents":"g"}]},{"annotation":[],"tag":"TypeVar","contents":"h"}]},{"annotation":[],"tag":"TypeVar","contents":"i"}]},{"annotation":[],"tag":"TypeVar","contents":"j"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"e"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"f"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"g"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"h"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"i"}]},{"annotation":[],"tag":"TypeVar","contents":"j"}]}]}]}]}]}]}]}]}]}]},null]},null]},null]},null]},null]},null]},null]},null]},null]},null]}},"sourceSpan":{"start":[101,1],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[101,127]}},{"children":[],"comments":"Apply a function of ten arguments\n","title":"runFn10","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["k",{"annotation":[],"tag":"ForAll","contents":["j",{"annotation":[],"tag":"ForAll","contents":["i",{"annotation":[],"tag":"ForAll","contents":["h",{"annotation":[],"tag":"ForAll","contents":["g",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["e",{"annotation":[],"tag":"ForAll","contents":["d",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Function","Uncurried"],"Fn10"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeVar","contents":"e"}]},{"annotation":[],"tag":"TypeVar","contents":"f"}]},{"annotation":[],"tag":"TypeVar","contents":"g"}]},{"annotation":[],"tag":"TypeVar","contents":"h"}]},{"annotation":[],"tag":"TypeVar","contents":"i"}]},{"annotation":[],"tag":"TypeVar","contents":"j"}]},{"annotation":[],"tag":"TypeVar","contents":"k"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"e"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"f"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"g"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"h"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"i"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"j"}]},{"annotation":[],"tag":"TypeVar","contents":"k"}]}]}]}]}]}]}]}]}]}]}]},null]},null]},null]},null]},null]},null]},null]},null]},null]},null]},null]}},"sourceSpan":{"start":[104,1],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[104,138]}}]}
diff --git a/tests/purs/publish/basic-example/output/Data.Function.Uncurried/externs.json b/tests/purs/publish/basic-example/output/Data.Function.Uncurried/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.Function.Uncurried/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Data","Function","Uncurried"],"efExports":[{"TypeRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[104,138]},"Fn0",[]]},{"TypeRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[104,138]},"Fn1",[]]},{"TypeRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[104,138]},"Fn2",[]]},{"TypeRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[104,138]},"Fn3",[]]},{"TypeRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[104,138]},"Fn4",[]]},{"TypeRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[104,138]},"Fn5",[]]},{"TypeRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[104,138]},"Fn6",[]]},{"TypeRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[104,138]},"Fn7",[]]},{"TypeRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[104,138]},"Fn8",[]]},{"TypeRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[104,138]},"Fn9",[]]},{"TypeRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[104,138]},"Fn10",[]]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[104,138]},{"Ident":"mkFn0"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[104,138]},{"Ident":"mkFn1"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[104,138]},{"Ident":"mkFn2"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[104,138]},{"Ident":"mkFn3"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[104,138]},{"Ident":"mkFn4"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[104,138]},{"Ident":"mkFn5"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[104,138]},{"Ident":"mkFn6"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[104,138]},{"Ident":"mkFn7"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[104,138]},{"Ident":"mkFn8"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[104,138]},{"Ident":"mkFn9"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[104,138]},{"Ident":"mkFn10"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[104,138]},{"Ident":"runFn0"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[104,138]},{"Ident":"runFn1"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[104,138]},{"Ident":"runFn2"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[104,138]},{"Ident":"runFn3"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[104,138]},{"Ident":"runFn4"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[104,138]},{"Ident":"runFn5"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[104,138]},{"Ident":"runFn6"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[104,138]},{"Ident":"runFn7"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[104,138]},{"Ident":"runFn8"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[104,138]},{"Ident":"runFn9"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[104,138]},{"Ident":"runFn10"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Data","Unit"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[3,19],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[3,23]},"Unit",[]]}]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDType":{"edTypeName":"Fn0","edTypeKind":{"annotation":[{"start":[6,28],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[6,40]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[6,28],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[6,32]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[6,36],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[6,40]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},"edTypeDeclarationKind":"ExternData"}},{"EDType":{"edTypeName":"Fn1","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[9,18],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[9,20]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[9,18],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[9,20]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[9,18],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[9,20]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"Fn1","edTypeSynonymArguments":[["a",{"annotation":[{"start":[9,18],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[9,20]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["b",{"annotation":[{"start":[9,18],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[9,20]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]],"edTypeSynonymType":{"annotation":[{"start":[9,16],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[9,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[9,16],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[9,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[9,18],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[9,20]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[9,16],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[9,17]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[9,21],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[9,22]},[]],"tag":"TypeVar","contents":"b"}]}}},{"EDType":{"edTypeName":"Fn2","edTypeKind":{"annotation":[{"start":[12,28],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[12,56]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[12,28],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[12,32]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[12,36],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[12,56]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[12,36],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[12,40]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[12,44],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[12,56]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[12,44],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[12,48]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[12,52],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[12,56]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]}]},"edTypeDeclarationKind":"ExternData"}},{"EDType":{"edTypeName":"Fn3","edTypeKind":{"annotation":[{"start":[15,28],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[15,64]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[15,28],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[15,32]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[15,36],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[15,64]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[15,36],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[15,40]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[15,44],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[15,64]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[15,44],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[15,48]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[15,52],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[15,64]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[15,52],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[15,56]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[15,60],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[15,64]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]}]}]},"edTypeDeclarationKind":"ExternData"}},{"EDType":{"edTypeName":"Fn4","edTypeKind":{"annotation":[{"start":[18,28],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[18,72]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[18,28],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[18,32]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[18,36],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[18,72]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[18,36],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[18,40]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[18,44],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[18,72]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[18,44],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[18,48]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[18,52],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[18,72]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[18,52],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[18,56]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[18,60],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[18,72]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[18,60],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[18,64]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[18,68],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[18,72]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]}]}]}]},"edTypeDeclarationKind":"ExternData"}},{"EDType":{"edTypeName":"Fn5","edTypeKind":{"annotation":[{"start":[21,28],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[21,80]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[21,28],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[21,32]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[21,36],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[21,80]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[21,36],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[21,40]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[21,44],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[21,80]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[21,44],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[21,48]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[21,52],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[21,80]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[21,52],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[21,56]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[21,60],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[21,80]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[21,60],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[21,64]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[21,68],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[21,80]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[21,68],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[21,72]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[21,76],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[21,80]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]}]}]}]}]},"edTypeDeclarationKind":"ExternData"}},{"EDType":{"edTypeName":"Fn6","edTypeKind":{"annotation":[{"start":[24,28],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[24,88]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[24,28],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[24,32]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[24,36],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[24,88]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[24,36],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[24,40]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[24,44],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[24,88]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[24,44],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[24,48]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[24,52],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[24,88]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[24,52],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[24,56]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[24,60],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[24,88]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[24,60],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[24,64]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[24,68],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[24,88]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[24,68],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[24,72]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[24,76],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[24,88]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[24,76],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[24,80]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[24,84],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[24,88]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]}]}]}]}]}]},"edTypeDeclarationKind":"ExternData"}},{"EDType":{"edTypeName":"Fn7","edTypeKind":{"annotation":[{"start":[27,28],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[27,96]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[27,28],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[27,32]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[27,36],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[27,96]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[27,36],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[27,40]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[27,44],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[27,96]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[27,44],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[27,48]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[27,52],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[27,96]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[27,52],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[27,56]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[27,60],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[27,96]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[27,60],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[27,64]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[27,68],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[27,96]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[27,68],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[27,72]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[27,76],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[27,96]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[27,76],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[27,80]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[27,84],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[27,96]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[27,84],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[27,88]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[27,92],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[27,96]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]}]}]}]}]}]}]},"edTypeDeclarationKind":"ExternData"}},{"EDType":{"edTypeName":"Fn8","edTypeKind":{"annotation":[{"start":[30,28],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[30,104]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[30,28],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[30,32]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[30,36],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[30,104]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[30,36],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[30,40]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[30,44],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[30,104]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[30,44],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[30,48]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[30,52],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[30,104]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[30,52],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[30,56]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[30,60],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[30,104]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[30,60],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[30,64]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[30,68],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[30,104]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[30,68],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[30,72]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[30,76],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[30,104]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[30,76],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[30,80]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[30,84],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[30,104]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[30,84],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[30,88]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[30,92],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[30,104]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[30,92],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[30,96]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[30,100],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[30,104]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]}]}]}]}]}]}]}]},"edTypeDeclarationKind":"ExternData"}},{"EDType":{"edTypeName":"Fn9","edTypeKind":{"annotation":[{"start":[33,28],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[33,112]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[33,28],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[33,32]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[33,36],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[33,112]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[33,36],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[33,40]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[33,44],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[33,112]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[33,44],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[33,48]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[33,52],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[33,112]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[33,52],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[33,56]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[33,60],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[33,112]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[33,60],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[33,64]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[33,68],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[33,112]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[33,68],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[33,72]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[33,76],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[33,112]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[33,76],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[33,80]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[33,84],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[33,112]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[33,84],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[33,88]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[33,92],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[33,112]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[33,92],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[33,96]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[33,100],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[33,112]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[33,100],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[33,104]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[33,108],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[33,112]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]}]}]}]}]}]}]}]}]},"edTypeDeclarationKind":"ExternData"}},{"EDType":{"edTypeName":"Fn10","edTypeKind":{"annotation":[{"start":[36,29],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[36,121]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[36,29],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[36,33]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[36,37],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[36,121]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[36,37],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[36,41]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[36,45],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[36,121]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[36,45],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[36,49]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[36,53],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[36,121]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[36,53],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[36,57]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[36,61],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[36,121]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[36,61],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[36,65]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[36,69],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[36,121]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[36,69],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[36,73]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[36,77],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[36,121]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[36,77],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[36,81]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[36,85],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[36,121]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[36,85],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[36,89]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[36,93],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[36,121]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[36,93],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[36,97]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[36,101],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[36,121]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[36,101],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[36,105]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[36,109],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[36,121]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[36,109],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[36,113]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[36,117],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[36,121]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]}]}]}]}]}]}]}]}]}]},"edTypeDeclarationKind":"ExternData"}},{"EDValue":{"edValueName":{"Ident":"mkFn0"},"edValueType":{"annotation":[{"start":[39,25],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[39,55]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[39,35],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[39,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[39,35],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[39,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[39,47],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[39,49]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[39,36],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[39,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[39,36],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[39,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[39,41],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[39,43]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[39,36],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[39,40]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]},{"annotation":[{"start":[39,44],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[39,45]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[39,50],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[39,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[39,50],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[39,53]},[]],"tag":"TypeConstructor","contents":[["Data","Function","Uncurried"],"Fn0"]},{"annotation":[{"start":[39,54],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[39,55]},[]],"tag":"TypeVar","contents":"a"}]}]},null]}}},{"EDValue":{"edValueName":{"Ident":"mkFn1"},"edValueType":{"annotation":[{"start":[42,10],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[42,41]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[42,17],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[42,41]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[42,22],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[42,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[42,22],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[42,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[42,31],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[42,33]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[42,23],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[42,29]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[42,23],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[42,29]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[42,25],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[42,27]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[42,23],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[42,24]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[42,28],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[42,29]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[9,16],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[9,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[9,16],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[9,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[9,18],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[9,20]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[42,38],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[42,39]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[42,40],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[42,41]},[]],"tag":"TypeVar","contents":"b"}]}]},4]},5]}}},{"EDValue":{"edValueName":{"Ident":"mkFn2"},"edValueType":{"annotation":[{"start":[46,25],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[46,65]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[46,32],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[46,65]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[46,32],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[46,65]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[46,39],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[46,65]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[46,39],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[46,65]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[46,53],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[46,55]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[46,40],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[46,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[46,40],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[46,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[46,42],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[46,44]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[46,40],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[46,41]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[46,45],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[46,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[46,45],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[46,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[46,47],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[46,49]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[46,45],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[46,46]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[46,50],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[46,51]},[]],"tag":"TypeVar","contents":"c"}]}]}]},{"annotation":[{"start":[46,56],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[46,65]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[46,56],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[46,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[46,56],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[46,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[46,56],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[46,59]},[]],"tag":"TypeConstructor","contents":[["Data","Function","Uncurried"],"Fn2"]},{"annotation":[{"start":[46,60],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[46,61]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[46,62],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[46,63]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[46,64],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[46,65]},[]],"tag":"TypeVar","contents":"c"}]}]},null]},null]},null]}}},{"EDValue":{"edValueName":{"Ident":"mkFn3"},"edValueType":{"annotation":[{"start":[49,25],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[49,74]},[]],"tag":"ForAll","contents":["d",{"annotation":[{"start":[49,32],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[49,74]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[49,32],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[49,74]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[49,32],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[49,74]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[49,41],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[49,74]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,41],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[49,74]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,60],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[49,62]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[49,42],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[49,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,42],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[49,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,44],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[49,46]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[49,42],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[49,43]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[49,47],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[49,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,47],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[49,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,49],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[49,51]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[49,47],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[49,48]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[49,52],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[49,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,52],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[49,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,54],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[49,56]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[49,52],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[49,53]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[49,57],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[49,58]},[]],"tag":"TypeVar","contents":"d"}]}]}]}]},{"annotation":[{"start":[49,63],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[49,74]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,63],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[49,72]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,63],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[49,70]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,63],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[49,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,63],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[49,66]},[]],"tag":"TypeConstructor","contents":[["Data","Function","Uncurried"],"Fn3"]},{"annotation":[{"start":[49,67],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[49,68]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[49,69],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[49,70]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[49,71],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[49,72]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[49,73],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[49,74]},[]],"tag":"TypeVar","contents":"d"}]}]},null]},null]},null]},null]}}},{"EDValue":{"edValueName":{"Ident":"mkFn4"},"edValueType":{"annotation":[{"start":[52,25],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[52,83]},[]],"tag":"ForAll","contents":["e",{"annotation":[{"start":[52,32],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[52,83]},[]],"tag":"ForAll","contents":["d",{"annotation":[{"start":[52,32],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[52,83]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[52,32],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[52,83]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[52,32],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[52,83]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[52,43],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[52,83]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,43],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[52,83]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,67],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[52,69]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[52,44],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[52,65]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,44],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[52,65]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,46],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[52,48]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[52,44],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[52,45]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[52,49],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[52,65]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,49],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[52,65]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,51],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[52,53]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[52,49],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[52,50]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[52,54],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[52,65]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,54],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[52,65]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,56],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[52,58]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[52,54],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[52,55]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[52,59],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[52,65]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,59],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[52,65]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,61],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[52,63]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[52,59],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[52,60]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[52,64],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[52,65]},[]],"tag":"TypeVar","contents":"e"}]}]}]}]}]},{"annotation":[{"start":[52,70],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[52,83]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,70],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[52,81]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,70],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[52,79]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,70],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[52,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,70],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[52,75]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,70],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[52,73]},[]],"tag":"TypeConstructor","contents":[["Data","Function","Uncurried"],"Fn4"]},{"annotation":[{"start":[52,74],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[52,75]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[52,76],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[52,77]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[52,78],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[52,79]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[52,80],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[52,81]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[52,82],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[52,83]},[]],"tag":"TypeVar","contents":"e"}]}]},null]},null]},null]},null]},null]}}},{"EDValue":{"edValueName":{"Ident":"mkFn5"},"edValueType":{"annotation":[{"start":[55,25],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[55,92]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[55,32],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[55,92]},[]],"tag":"ForAll","contents":["e",{"annotation":[{"start":[55,32],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[55,92]},[]],"tag":"ForAll","contents":["d",{"annotation":[{"start":[55,32],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[55,92]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[55,32],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[55,92]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[55,32],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[55,92]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[55,45],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[55,92]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,45],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[55,92]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,74],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[55,76]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[55,46],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[55,72]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,46],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[55,72]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,48],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[55,50]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[55,46],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[55,47]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[55,51],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[55,72]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,51],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[55,72]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,53],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[55,55]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[55,51],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[55,52]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[55,56],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[55,72]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,56],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[55,72]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,58],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[55,60]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[55,56],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[55,57]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[55,61],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[55,72]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,61],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[55,72]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,63],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[55,65]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[55,61],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[55,62]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[55,66],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[55,72]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,66],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[55,72]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,68],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[55,70]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[55,66],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[55,67]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[55,71],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[55,72]},[]],"tag":"TypeVar","contents":"f"}]}]}]}]}]}]},{"annotation":[{"start":[55,77],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[55,92]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,77],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[55,90]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,77],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[55,88]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,77],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[55,86]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,77],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[55,84]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,77],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[55,82]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,77],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[55,80]},[]],"tag":"TypeConstructor","contents":[["Data","Function","Uncurried"],"Fn5"]},{"annotation":[{"start":[55,81],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[55,82]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[55,83],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[55,84]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[55,85],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[55,86]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[55,87],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[55,88]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[55,89],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[55,90]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[55,91],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[55,92]},[]],"tag":"TypeVar","contents":"f"}]}]},null]},null]},null]},null]},null]},null]}}},{"EDValue":{"edValueName":{"Ident":"mkFn6"},"edValueType":{"annotation":[{"start":[58,25],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[58,101]},[]],"tag":"ForAll","contents":["g",{"annotation":[{"start":[58,32],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[58,101]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[58,32],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[58,101]},[]],"tag":"ForAll","contents":["e",{"annotation":[{"start":[58,32],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[58,101]},[]],"tag":"ForAll","contents":["d",{"annotation":[{"start":[58,32],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[58,101]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[58,32],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[58,101]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[58,32],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[58,101]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[58,47],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[58,101]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[58,47],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[58,101]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[58,81],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[58,83]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[58,48],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[58,79]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[58,48],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[58,79]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[58,50],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[58,52]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[58,48],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[58,49]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[58,53],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[58,79]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[58,53],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[58,79]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[58,55],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[58,57]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[58,53],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[58,54]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[58,58],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[58,79]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[58,58],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[58,79]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[58,60],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[58,62]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[58,58],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[58,59]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[58,63],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[58,79]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[58,63],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[58,79]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[58,65],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[58,67]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[58,63],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[58,64]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[58,68],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[58,79]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[58,68],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[58,79]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[58,70],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[58,72]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[58,68],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[58,69]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[58,73],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[58,79]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[58,73],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[58,79]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[58,75],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[58,77]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[58,73],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[58,74]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[58,78],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[58,79]},[]],"tag":"TypeVar","contents":"g"}]}]}]}]}]}]}]},{"annotation":[{"start":[58,84],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[58,101]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[58,84],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[58,99]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[58,84],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[58,97]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[58,84],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[58,95]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[58,84],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[58,93]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[58,84],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[58,91]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[58,84],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[58,89]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[58,84],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[58,87]},[]],"tag":"TypeConstructor","contents":[["Data","Function","Uncurried"],"Fn6"]},{"annotation":[{"start":[58,88],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[58,89]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[58,90],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[58,91]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[58,92],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[58,93]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[58,94],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[58,95]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[58,96],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[58,97]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[58,98],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[58,99]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[58,100],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[58,101]},[]],"tag":"TypeVar","contents":"g"}]}]},null]},null]},null]},null]},null]},null]},null]}}},{"EDValue":{"edValueName":{"Ident":"mkFn7"},"edValueType":{"annotation":[{"start":[61,25],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[61,110]},[]],"tag":"ForAll","contents":["h",{"annotation":[{"start":[61,32],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[61,110]},[]],"tag":"ForAll","contents":["g",{"annotation":[{"start":[61,32],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[61,110]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[61,32],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[61,110]},[]],"tag":"ForAll","contents":["e",{"annotation":[{"start":[61,32],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[61,110]},[]],"tag":"ForAll","contents":["d",{"annotation":[{"start":[61,32],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[61,110]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[61,32],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[61,110]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[61,32],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[61,110]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[61,49],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[61,110]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[61,49],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[61,110]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[61,88],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[61,90]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[61,50],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[61,86]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[61,50],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[61,86]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[61,52],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[61,54]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[61,50],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[61,51]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[61,55],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[61,86]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[61,55],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[61,86]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[61,57],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[61,59]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[61,55],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[61,56]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[61,60],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[61,86]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[61,60],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[61,86]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[61,62],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[61,64]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[61,60],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[61,61]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[61,65],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[61,86]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[61,65],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[61,86]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[61,67],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[61,69]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[61,65],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[61,66]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[61,70],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[61,86]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[61,70],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[61,86]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[61,72],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[61,74]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[61,70],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[61,71]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[61,75],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[61,86]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[61,75],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[61,86]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[61,77],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[61,79]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[61,75],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[61,76]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[61,80],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[61,86]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[61,80],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[61,86]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[61,82],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[61,84]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[61,80],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[61,81]},[]],"tag":"TypeVar","contents":"g"}]},{"annotation":[{"start":[61,85],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[61,86]},[]],"tag":"TypeVar","contents":"h"}]}]}]}]}]}]}]}]},{"annotation":[{"start":[61,91],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[61,110]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[61,91],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[61,108]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[61,91],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[61,106]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[61,91],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[61,104]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[61,91],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[61,102]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[61,91],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[61,100]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[61,91],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[61,98]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[61,91],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[61,96]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[61,91],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[61,94]},[]],"tag":"TypeConstructor","contents":[["Data","Function","Uncurried"],"Fn7"]},{"annotation":[{"start":[61,95],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[61,96]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[61,97],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[61,98]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[61,99],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[61,100]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[61,101],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[61,102]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[61,103],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[61,104]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[61,105],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[61,106]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[61,107],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[61,108]},[]],"tag":"TypeVar","contents":"g"}]},{"annotation":[{"start":[61,109],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[61,110]},[]],"tag":"TypeVar","contents":"h"}]}]},null]},null]},null]},null]},null]},null]},null]},null]}}},{"EDValue":{"edValueName":{"Ident":"mkFn8"},"edValueType":{"annotation":[{"start":[64,25],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[64,119]},[]],"tag":"ForAll","contents":["i",{"annotation":[{"start":[64,32],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[64,119]},[]],"tag":"ForAll","contents":["h",{"annotation":[{"start":[64,32],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[64,119]},[]],"tag":"ForAll","contents":["g",{"annotation":[{"start":[64,32],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[64,119]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[64,32],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[64,119]},[]],"tag":"ForAll","contents":["e",{"annotation":[{"start":[64,32],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[64,119]},[]],"tag":"ForAll","contents":["d",{"annotation":[{"start":[64,32],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[64,119]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[64,32],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[64,119]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[64,32],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[64,119]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[64,51],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[64,119]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[64,51],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[64,119]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[64,95],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[64,97]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[64,52],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[64,93]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[64,52],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[64,93]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[64,54],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[64,56]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[64,52],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[64,53]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[64,57],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[64,93]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[64,57],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[64,93]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[64,59],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[64,61]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[64,57],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[64,58]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[64,62],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[64,93]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[64,62],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[64,93]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[64,64],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[64,66]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[64,62],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[64,63]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[64,67],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[64,93]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[64,67],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[64,93]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[64,69],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[64,71]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[64,67],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[64,68]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[64,72],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[64,93]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[64,72],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[64,93]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[64,74],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[64,76]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[64,72],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[64,73]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[64,77],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[64,93]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[64,77],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[64,93]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[64,79],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[64,81]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[64,77],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[64,78]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[64,82],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[64,93]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[64,82],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[64,93]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[64,84],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[64,86]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[64,82],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[64,83]},[]],"tag":"TypeVar","contents":"g"}]},{"annotation":[{"start":[64,87],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[64,93]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[64,87],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[64,93]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[64,89],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[64,91]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[64,87],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[64,88]},[]],"tag":"TypeVar","contents":"h"}]},{"annotation":[{"start":[64,92],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[64,93]},[]],"tag":"TypeVar","contents":"i"}]}]}]}]}]}]}]}]}]},{"annotation":[{"start":[64,98],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[64,119]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[64,98],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[64,117]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[64,98],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[64,115]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[64,98],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[64,113]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[64,98],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[64,111]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[64,98],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[64,109]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[64,98],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[64,107]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[64,98],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[64,105]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[64,98],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[64,103]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[64,98],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[64,101]},[]],"tag":"TypeConstructor","contents":[["Data","Function","Uncurried"],"Fn8"]},{"annotation":[{"start":[64,102],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[64,103]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[64,104],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[64,105]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[64,106],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[64,107]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[64,108],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[64,109]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[64,110],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[64,111]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[64,112],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[64,113]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[64,114],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[64,115]},[]],"tag":"TypeVar","contents":"g"}]},{"annotation":[{"start":[64,116],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[64,117]},[]],"tag":"TypeVar","contents":"h"}]},{"annotation":[{"start":[64,118],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[64,119]},[]],"tag":"TypeVar","contents":"i"}]}]},null]},null]},null]},null]},null]},null]},null]},null]},null]}}},{"EDValue":{"edValueName":{"Ident":"mkFn9"},"edValueType":{"annotation":[{"start":[67,25],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[67,128]},[]],"tag":"ForAll","contents":["j",{"annotation":[{"start":[67,32],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[67,128]},[]],"tag":"ForAll","contents":["i",{"annotation":[{"start":[67,32],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[67,128]},[]],"tag":"ForAll","contents":["h",{"annotation":[{"start":[67,32],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[67,128]},[]],"tag":"ForAll","contents":["g",{"annotation":[{"start":[67,32],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[67,128]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[67,32],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[67,128]},[]],"tag":"ForAll","contents":["e",{"annotation":[{"start":[67,32],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[67,128]},[]],"tag":"ForAll","contents":["d",{"annotation":[{"start":[67,32],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[67,128]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[67,32],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[67,128]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[67,32],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[67,128]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[67,53],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[67,128]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[67,53],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[67,128]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[67,102],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[67,104]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[67,54],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[67,100]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[67,54],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[67,100]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[67,56],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[67,58]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[67,54],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[67,55]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[67,59],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[67,100]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[67,59],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[67,100]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[67,61],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[67,63]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[67,59],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[67,60]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[67,64],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[67,100]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[67,64],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[67,100]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[67,66],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[67,68]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[67,64],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[67,65]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[67,69],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[67,100]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[67,69],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[67,100]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[67,71],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[67,73]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[67,69],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[67,70]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[67,74],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[67,100]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[67,74],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[67,100]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[67,76],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[67,78]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[67,74],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[67,75]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[67,79],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[67,100]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[67,79],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[67,100]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[67,81],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[67,83]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[67,79],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[67,80]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[67,84],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[67,100]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[67,84],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[67,100]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[67,86],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[67,88]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[67,84],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[67,85]},[]],"tag":"TypeVar","contents":"g"}]},{"annotation":[{"start":[67,89],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[67,100]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[67,89],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[67,100]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[67,91],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[67,93]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[67,89],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[67,90]},[]],"tag":"TypeVar","contents":"h"}]},{"annotation":[{"start":[67,94],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[67,100]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[67,94],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[67,100]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[67,96],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[67,98]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[67,94],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[67,95]},[]],"tag":"TypeVar","contents":"i"}]},{"annotation":[{"start":[67,99],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[67,100]},[]],"tag":"TypeVar","contents":"j"}]}]}]}]}]}]}]}]}]}]},{"annotation":[{"start":[67,105],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[67,128]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[67,105],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[67,126]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[67,105],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[67,124]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[67,105],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[67,122]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[67,105],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[67,120]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[67,105],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[67,118]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[67,105],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[67,116]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[67,105],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[67,114]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[67,105],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[67,112]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[67,105],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[67,110]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[67,105],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[67,108]},[]],"tag":"TypeConstructor","contents":[["Data","Function","Uncurried"],"Fn9"]},{"annotation":[{"start":[67,109],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[67,110]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[67,111],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[67,112]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[67,113],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[67,114]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[67,115],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[67,116]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[67,117],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[67,118]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[67,119],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[67,120]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[67,121],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[67,122]},[]],"tag":"TypeVar","contents":"g"}]},{"annotation":[{"start":[67,123],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[67,124]},[]],"tag":"TypeVar","contents":"h"}]},{"annotation":[{"start":[67,125],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[67,126]},[]],"tag":"TypeVar","contents":"i"}]},{"annotation":[{"start":[67,127],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[67,128]},[]],"tag":"TypeVar","contents":"j"}]}]},null]},null]},null]},null]},null]},null]},null]},null]},null]},null]}}},{"EDValue":{"edValueName":{"Ident":"mkFn10"},"edValueType":{"annotation":[{"start":[70,26],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[70,139]},[]],"tag":"ForAll","contents":["k",{"annotation":[{"start":[70,33],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[70,139]},[]],"tag":"ForAll","contents":["j",{"annotation":[{"start":[70,33],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[70,139]},[]],"tag":"ForAll","contents":["i",{"annotation":[{"start":[70,33],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[70,139]},[]],"tag":"ForAll","contents":["h",{"annotation":[{"start":[70,33],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[70,139]},[]],"tag":"ForAll","contents":["g",{"annotation":[{"start":[70,33],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[70,139]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[70,33],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[70,139]},[]],"tag":"ForAll","contents":["e",{"annotation":[{"start":[70,33],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[70,139]},[]],"tag":"ForAll","contents":["d",{"annotation":[{"start":[70,33],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[70,139]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[70,33],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[70,139]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[70,33],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[70,139]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[70,56],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[70,139]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[70,56],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[70,139]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[70,110],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[70,112]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[70,57],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[70,108]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[70,57],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[70,108]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[70,59],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[70,61]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[70,57],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[70,58]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[70,62],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[70,108]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[70,62],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[70,108]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[70,64],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[70,66]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[70,62],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[70,63]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[70,67],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[70,108]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[70,67],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[70,108]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[70,69],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[70,71]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[70,67],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[70,68]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[70,72],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[70,108]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[70,72],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[70,108]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[70,74],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[70,76]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[70,72],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[70,73]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[70,77],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[70,108]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[70,77],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[70,108]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[70,79],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[70,81]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[70,77],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[70,78]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[70,82],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[70,108]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[70,82],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[70,108]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[70,84],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[70,86]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[70,82],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[70,83]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[70,87],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[70,108]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[70,87],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[70,108]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[70,89],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[70,91]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[70,87],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[70,88]},[]],"tag":"TypeVar","contents":"g"}]},{"annotation":[{"start":[70,92],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[70,108]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[70,92],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[70,108]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[70,94],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[70,96]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[70,92],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[70,93]},[]],"tag":"TypeVar","contents":"h"}]},{"annotation":[{"start":[70,97],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[70,108]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[70,97],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[70,108]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[70,99],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[70,101]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[70,97],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[70,98]},[]],"tag":"TypeVar","contents":"i"}]},{"annotation":[{"start":[70,102],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[70,108]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[70,102],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[70,108]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[70,104],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[70,106]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[70,102],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[70,103]},[]],"tag":"TypeVar","contents":"j"}]},{"annotation":[{"start":[70,107],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[70,108]},[]],"tag":"TypeVar","contents":"k"}]}]}]}]}]}]}]}]}]}]}]},{"annotation":[{"start":[70,113],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[70,139]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[70,113],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[70,137]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[70,113],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[70,135]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[70,113],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[70,133]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[70,113],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[70,131]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[70,113],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[70,129]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[70,113],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[70,127]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[70,113],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[70,125]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[70,113],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[70,123]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[70,113],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[70,121]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[70,113],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[70,119]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[70,113],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[70,117]},[]],"tag":"TypeConstructor","contents":[["Data","Function","Uncurried"],"Fn10"]},{"annotation":[{"start":[70,118],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[70,119]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[70,120],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[70,121]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[70,122],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[70,123]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[70,124],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[70,125]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[70,126],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[70,127]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[70,128],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[70,129]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[70,130],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[70,131]},[]],"tag":"TypeVar","contents":"g"}]},{"annotation":[{"start":[70,132],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[70,133]},[]],"tag":"TypeVar","contents":"h"}]},{"annotation":[{"start":[70,134],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[70,135]},[]],"tag":"TypeVar","contents":"i"}]},{"annotation":[{"start":[70,136],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[70,137]},[]],"tag":"TypeVar","contents":"j"}]},{"annotation":[{"start":[70,138],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[70,139]},[]],"tag":"TypeVar","contents":"k"}]}]},null]},null]},null]},null]},null]},null]},null]},null]},null]},null]},null]}}},{"EDValue":{"edValueName":{"Ident":"runFn0"},"edValueType":{"annotation":[{"start":[73,26],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[73,46]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[73,36],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[73,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[73,36],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[73,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[73,42],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[73,44]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[73,36],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[73,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[73,36],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[73,39]},[]],"tag":"TypeConstructor","contents":[["Data","Function","Uncurried"],"Fn0"]},{"annotation":[{"start":[73,40],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[73,41]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[73,45],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[73,46]},[]],"tag":"TypeVar","contents":"a"}]},null]}}},{"EDValue":{"edValueName":{"Ident":"runFn1"},"edValueType":{"annotation":[{"start":[76,11],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[76,40]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[76,18],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[76,40]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[76,23],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[76,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[76,23],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[76,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[76,31],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[76,33]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[9,16],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[9,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[9,16],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[9,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[9,18],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[9,20]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[76,27],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[76,28]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[76,29],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[76,30]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[76,34],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[76,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[76,34],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[76,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[76,36],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[76,38]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[76,34],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[76,35]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[76,39],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[76,40]},[]],"tag":"TypeVar","contents":"b"}]}]},0]},1]}}},{"EDValue":{"edValueName":{"Ident":"runFn2"},"edValueType":{"annotation":[{"start":[80,26],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[80,64]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[80,33],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[80,64]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[80,33],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[80,64]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[80,40],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[80,64]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[80,40],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[80,64]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[80,50],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[80,52]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[80,40],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[80,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[80,40],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[80,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[80,40],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[80,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[80,40],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[80,43]},[]],"tag":"TypeConstructor","contents":[["Data","Function","Uncurried"],"Fn2"]},{"annotation":[{"start":[80,44],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[80,45]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[80,46],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[80,47]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[80,48],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[80,49]},[]],"tag":"TypeVar","contents":"c"}]}]},{"annotation":[{"start":[80,53],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[80,64]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[80,53],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[80,64]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[80,55],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[80,57]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[80,53],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[80,54]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[80,58],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[80,64]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[80,58],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[80,64]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[80,60],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[80,62]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[80,58],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[80,59]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[80,63],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[80,64]},[]],"tag":"TypeVar","contents":"c"}]}]}]},null]},null]},null]}}},{"EDValue":{"edValueName":{"Ident":"runFn3"},"edValueType":{"annotation":[{"start":[83,26],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[83,73]},[]],"tag":"ForAll","contents":["d",{"annotation":[{"start":[83,33],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[83,73]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[83,33],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[83,73]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[83,33],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[83,73]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[83,42],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[83,73]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[83,42],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[83,73]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[83,54],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[83,56]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[83,42],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[83,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[83,42],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[83,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[83,42],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[83,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[83,42],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[83,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[83,42],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[83,45]},[]],"tag":"TypeConstructor","contents":[["Data","Function","Uncurried"],"Fn3"]},{"annotation":[{"start":[83,46],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[83,47]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[83,48],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[83,49]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[83,50],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[83,51]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[83,52],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[83,53]},[]],"tag":"TypeVar","contents":"d"}]}]},{"annotation":[{"start":[83,57],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[83,73]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[83,57],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[83,73]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[83,59],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[83,61]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[83,57],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[83,58]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[83,62],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[83,73]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[83,62],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[83,73]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[83,64],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[83,66]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[83,62],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[83,63]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[83,67],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[83,73]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[83,67],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[83,73]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[83,69],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[83,71]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[83,67],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[83,68]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[83,72],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[83,73]},[]],"tag":"TypeVar","contents":"d"}]}]}]}]},null]},null]},null]},null]}}},{"EDValue":{"edValueName":{"Ident":"runFn4"},"edValueType":{"annotation":[{"start":[86,26],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[86,82]},[]],"tag":"ForAll","contents":["e",{"annotation":[{"start":[86,33],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[86,82]},[]],"tag":"ForAll","contents":["d",{"annotation":[{"start":[86,33],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[86,82]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[86,33],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[86,82]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[86,33],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[86,82]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[86,44],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[86,82]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[86,44],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[86,82]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[86,58],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[86,60]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[86,44],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[86,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[86,44],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[86,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[86,44],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[86,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[86,44],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[86,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[86,44],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[86,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[86,44],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[86,47]},[]],"tag":"TypeConstructor","contents":[["Data","Function","Uncurried"],"Fn4"]},{"annotation":[{"start":[86,48],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[86,49]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[86,50],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[86,51]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[86,52],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[86,53]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[86,54],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[86,55]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[86,56],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[86,57]},[]],"tag":"TypeVar","contents":"e"}]}]},{"annotation":[{"start":[86,61],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[86,82]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[86,61],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[86,82]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[86,63],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[86,65]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[86,61],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[86,62]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[86,66],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[86,82]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[86,66],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[86,82]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[86,68],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[86,70]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[86,66],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[86,67]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[86,71],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[86,82]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[86,71],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[86,82]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[86,73],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[86,75]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[86,71],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[86,72]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[86,76],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[86,82]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[86,76],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[86,82]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[86,78],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[86,80]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[86,76],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[86,77]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[86,81],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[86,82]},[]],"tag":"TypeVar","contents":"e"}]}]}]}]}]},null]},null]},null]},null]},null]}}},{"EDValue":{"edValueName":{"Ident":"runFn5"},"edValueType":{"annotation":[{"start":[89,26],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[89,91]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[89,33],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[89,91]},[]],"tag":"ForAll","contents":["e",{"annotation":[{"start":[89,33],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[89,91]},[]],"tag":"ForAll","contents":["d",{"annotation":[{"start":[89,33],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[89,91]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[89,33],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[89,91]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[89,33],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[89,91]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[89,46],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[89,91]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[89,46],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[89,91]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[89,62],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[89,64]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[89,46],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[89,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[89,46],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[89,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[89,46],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[89,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[89,46],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[89,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[89,46],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[89,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[89,46],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[89,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[89,46],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[89,49]},[]],"tag":"TypeConstructor","contents":[["Data","Function","Uncurried"],"Fn5"]},{"annotation":[{"start":[89,50],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[89,51]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[89,52],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[89,53]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[89,54],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[89,55]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[89,56],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[89,57]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[89,58],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[89,59]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[89,60],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[89,61]},[]],"tag":"TypeVar","contents":"f"}]}]},{"annotation":[{"start":[89,65],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[89,91]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[89,65],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[89,91]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[89,67],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[89,69]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[89,65],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[89,66]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[89,70],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[89,91]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[89,70],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[89,91]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[89,72],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[89,74]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[89,70],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[89,71]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[89,75],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[89,91]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[89,75],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[89,91]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[89,77],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[89,79]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[89,75],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[89,76]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[89,80],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[89,91]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[89,80],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[89,91]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[89,82],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[89,84]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[89,80],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[89,81]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[89,85],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[89,91]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[89,85],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[89,91]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[89,87],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[89,89]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[89,85],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[89,86]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[89,90],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[89,91]},[]],"tag":"TypeVar","contents":"f"}]}]}]}]}]}]},null]},null]},null]},null]},null]},null]}}},{"EDValue":{"edValueName":{"Ident":"runFn6"},"edValueType":{"annotation":[{"start":[92,26],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[92,100]},[]],"tag":"ForAll","contents":["g",{"annotation":[{"start":[92,33],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[92,100]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[92,33],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[92,100]},[]],"tag":"ForAll","contents":["e",{"annotation":[{"start":[92,33],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[92,100]},[]],"tag":"ForAll","contents":["d",{"annotation":[{"start":[92,33],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[92,100]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[92,33],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[92,100]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[92,33],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[92,100]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[92,48],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[92,100]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[92,48],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[92,100]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[92,66],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[92,68]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[92,48],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[92,65]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[92,48],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[92,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[92,48],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[92,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[92,48],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[92,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[92,48],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[92,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[92,48],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[92,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[92,48],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[92,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[92,48],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[92,51]},[]],"tag":"TypeConstructor","contents":[["Data","Function","Uncurried"],"Fn6"]},{"annotation":[{"start":[92,52],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[92,53]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[92,54],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[92,55]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[92,56],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[92,57]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[92,58],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[92,59]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[92,60],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[92,61]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[92,62],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[92,63]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[92,64],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[92,65]},[]],"tag":"TypeVar","contents":"g"}]}]},{"annotation":[{"start":[92,69],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[92,100]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[92,69],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[92,100]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[92,71],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[92,73]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[92,69],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[92,70]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[92,74],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[92,100]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[92,74],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[92,100]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[92,76],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[92,78]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[92,74],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[92,75]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[92,79],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[92,100]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[92,79],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[92,100]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[92,81],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[92,83]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[92,79],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[92,80]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[92,84],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[92,100]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[92,84],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[92,100]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[92,86],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[92,88]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[92,84],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[92,85]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[92,89],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[92,100]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[92,89],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[92,100]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[92,91],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[92,93]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[92,89],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[92,90]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[92,94],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[92,100]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[92,94],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[92,100]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[92,96],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[92,98]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[92,94],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[92,95]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[92,99],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[92,100]},[]],"tag":"TypeVar","contents":"g"}]}]}]}]}]}]}]},null]},null]},null]},null]},null]},null]},null]}}},{"EDValue":{"edValueName":{"Ident":"runFn7"},"edValueType":{"annotation":[{"start":[95,26],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[95,109]},[]],"tag":"ForAll","contents":["h",{"annotation":[{"start":[95,33],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[95,109]},[]],"tag":"ForAll","contents":["g",{"annotation":[{"start":[95,33],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[95,109]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[95,33],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[95,109]},[]],"tag":"ForAll","contents":["e",{"annotation":[{"start":[95,33],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[95,109]},[]],"tag":"ForAll","contents":["d",{"annotation":[{"start":[95,33],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[95,109]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[95,33],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[95,109]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[95,33],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[95,109]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[95,50],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[95,109]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[95,50],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[95,109]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[95,70],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[95,72]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[95,50],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[95,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[95,50],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[95,67]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[95,50],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[95,65]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[95,50],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[95,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[95,50],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[95,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[95,50],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[95,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[95,50],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[95,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[95,50],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[95,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[95,50],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[95,53]},[]],"tag":"TypeConstructor","contents":[["Data","Function","Uncurried"],"Fn7"]},{"annotation":[{"start":[95,54],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[95,55]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[95,56],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[95,57]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[95,58],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[95,59]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[95,60],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[95,61]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[95,62],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[95,63]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[95,64],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[95,65]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[95,66],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[95,67]},[]],"tag":"TypeVar","contents":"g"}]},{"annotation":[{"start":[95,68],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[95,69]},[]],"tag":"TypeVar","contents":"h"}]}]},{"annotation":[{"start":[95,73],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[95,109]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[95,73],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[95,109]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[95,75],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[95,77]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[95,73],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[95,74]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[95,78],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[95,109]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[95,78],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[95,109]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[95,80],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[95,82]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[95,78],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[95,79]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[95,83],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[95,109]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[95,83],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[95,109]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[95,85],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[95,87]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[95,83],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[95,84]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[95,88],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[95,109]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[95,88],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[95,109]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[95,90],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[95,92]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[95,88],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[95,89]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[95,93],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[95,109]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[95,93],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[95,109]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[95,95],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[95,97]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[95,93],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[95,94]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[95,98],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[95,109]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[95,98],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[95,109]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[95,100],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[95,102]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[95,98],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[95,99]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[95,103],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[95,109]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[95,103],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[95,109]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[95,105],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[95,107]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[95,103],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[95,104]},[]],"tag":"TypeVar","contents":"g"}]},{"annotation":[{"start":[95,108],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[95,109]},[]],"tag":"TypeVar","contents":"h"}]}]}]}]}]}]}]}]},null]},null]},null]},null]},null]},null]},null]},null]}}},{"EDValue":{"edValueName":{"Ident":"runFn8"},"edValueType":{"annotation":[{"start":[98,26],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[98,118]},[]],"tag":"ForAll","contents":["i",{"annotation":[{"start":[98,33],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[98,118]},[]],"tag":"ForAll","contents":["h",{"annotation":[{"start":[98,33],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[98,118]},[]],"tag":"ForAll","contents":["g",{"annotation":[{"start":[98,33],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[98,118]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[98,33],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[98,118]},[]],"tag":"ForAll","contents":["e",{"annotation":[{"start":[98,33],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[98,118]},[]],"tag":"ForAll","contents":["d",{"annotation":[{"start":[98,33],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[98,118]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[98,33],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[98,118]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[98,33],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[98,118]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[98,52],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[98,118]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[98,52],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[98,118]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[98,74],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[98,76]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[98,52],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[98,73]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[98,52],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[98,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[98,52],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[98,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[98,52],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[98,67]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[98,52],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[98,65]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[98,52],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[98,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[98,52],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[98,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[98,52],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[98,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[98,52],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[98,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[98,52],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[98,55]},[]],"tag":"TypeConstructor","contents":[["Data","Function","Uncurried"],"Fn8"]},{"annotation":[{"start":[98,56],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[98,57]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[98,58],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[98,59]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[98,60],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[98,61]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[98,62],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[98,63]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[98,64],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[98,65]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[98,66],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[98,67]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[98,68],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[98,69]},[]],"tag":"TypeVar","contents":"g"}]},{"annotation":[{"start":[98,70],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[98,71]},[]],"tag":"TypeVar","contents":"h"}]},{"annotation":[{"start":[98,72],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[98,73]},[]],"tag":"TypeVar","contents":"i"}]}]},{"annotation":[{"start":[98,77],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[98,118]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[98,77],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[98,118]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[98,79],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[98,81]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[98,77],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[98,78]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[98,82],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[98,118]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[98,82],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[98,118]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[98,84],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[98,86]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[98,82],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[98,83]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[98,87],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[98,118]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[98,87],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[98,118]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[98,89],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[98,91]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[98,87],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[98,88]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[98,92],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[98,118]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[98,92],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[98,118]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[98,94],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[98,96]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[98,92],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[98,93]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[98,97],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[98,118]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[98,97],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[98,118]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[98,99],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[98,101]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[98,97],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[98,98]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[98,102],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[98,118]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[98,102],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[98,118]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[98,104],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[98,106]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[98,102],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[98,103]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[98,107],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[98,118]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[98,107],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[98,118]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[98,109],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[98,111]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[98,107],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[98,108]},[]],"tag":"TypeVar","contents":"g"}]},{"annotation":[{"start":[98,112],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[98,118]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[98,112],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[98,118]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[98,114],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[98,116]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[98,112],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[98,113]},[]],"tag":"TypeVar","contents":"h"}]},{"annotation":[{"start":[98,117],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[98,118]},[]],"tag":"TypeVar","contents":"i"}]}]}]}]}]}]}]}]}]},null]},null]},null]},null]},null]},null]},null]},null]},null]}}},{"EDValue":{"edValueName":{"Ident":"runFn9"},"edValueType":{"annotation":[{"start":[101,26],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[101,127]},[]],"tag":"ForAll","contents":["j",{"annotation":[{"start":[101,33],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[101,127]},[]],"tag":"ForAll","contents":["i",{"annotation":[{"start":[101,33],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[101,127]},[]],"tag":"ForAll","contents":["h",{"annotation":[{"start":[101,33],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[101,127]},[]],"tag":"ForAll","contents":["g",{"annotation":[{"start":[101,33],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[101,127]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[101,33],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[101,127]},[]],"tag":"ForAll","contents":["e",{"annotation":[{"start":[101,33],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[101,127]},[]],"tag":"ForAll","contents":["d",{"annotation":[{"start":[101,33],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[101,127]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[101,33],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[101,127]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[101,33],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[101,127]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[101,54],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[101,127]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[101,54],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[101,127]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[101,78],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[101,80]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[101,54],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[101,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[101,54],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[101,75]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[101,54],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[101,73]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[101,54],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[101,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[101,54],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[101,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[101,54],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[101,67]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[101,54],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[101,65]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[101,54],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[101,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[101,54],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[101,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[101,54],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[101,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[101,54],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[101,57]},[]],"tag":"TypeConstructor","contents":[["Data","Function","Uncurried"],"Fn9"]},{"annotation":[{"start":[101,58],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[101,59]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[101,60],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[101,61]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[101,62],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[101,63]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[101,64],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[101,65]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[101,66],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[101,67]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[101,68],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[101,69]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[101,70],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[101,71]},[]],"tag":"TypeVar","contents":"g"}]},{"annotation":[{"start":[101,72],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[101,73]},[]],"tag":"TypeVar","contents":"h"}]},{"annotation":[{"start":[101,74],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[101,75]},[]],"tag":"TypeVar","contents":"i"}]},{"annotation":[{"start":[101,76],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[101,77]},[]],"tag":"TypeVar","contents":"j"}]}]},{"annotation":[{"start":[101,81],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[101,127]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[101,81],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[101,127]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[101,83],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[101,85]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[101,81],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[101,82]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[101,86],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[101,127]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[101,86],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[101,127]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[101,88],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[101,90]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[101,86],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[101,87]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[101,91],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[101,127]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[101,91],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[101,127]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[101,93],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[101,95]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[101,91],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[101,92]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[101,96],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[101,127]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[101,96],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[101,127]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[101,98],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[101,100]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[101,96],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[101,97]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[101,101],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[101,127]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[101,101],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[101,127]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[101,103],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[101,105]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[101,101],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[101,102]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[101,106],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[101,127]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[101,106],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[101,127]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[101,108],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[101,110]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[101,106],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[101,107]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[101,111],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[101,127]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[101,111],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[101,127]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[101,113],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[101,115]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[101,111],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[101,112]},[]],"tag":"TypeVar","contents":"g"}]},{"annotation":[{"start":[101,116],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[101,127]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[101,116],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[101,127]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[101,118],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[101,120]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[101,116],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[101,117]},[]],"tag":"TypeVar","contents":"h"}]},{"annotation":[{"start":[101,121],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[101,127]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[101,121],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[101,127]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[101,123],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[101,125]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[101,121],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[101,122]},[]],"tag":"TypeVar","contents":"i"}]},{"annotation":[{"start":[101,126],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[101,127]},[]],"tag":"TypeVar","contents":"j"}]}]}]}]}]}]}]}]}]}]},null]},null]},null]},null]},null]},null]},null]},null]},null]},null]}}},{"EDValue":{"edValueName":{"Ident":"runFn10"},"edValueType":{"annotation":[{"start":[104,27],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[104,138]},[]],"tag":"ForAll","contents":["k",{"annotation":[{"start":[104,34],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[104,138]},[]],"tag":"ForAll","contents":["j",{"annotation":[{"start":[104,34],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[104,138]},[]],"tag":"ForAll","contents":["i",{"annotation":[{"start":[104,34],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[104,138]},[]],"tag":"ForAll","contents":["h",{"annotation":[{"start":[104,34],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[104,138]},[]],"tag":"ForAll","contents":["g",{"annotation":[{"start":[104,34],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[104,138]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[104,34],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[104,138]},[]],"tag":"ForAll","contents":["e",{"annotation":[{"start":[104,34],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[104,138]},[]],"tag":"ForAll","contents":["d",{"annotation":[{"start":[104,34],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[104,138]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[104,34],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[104,138]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[104,34],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[104,138]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[104,57],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[104,138]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[104,57],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[104,138]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[104,84],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[104,86]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[104,57],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[104,83]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[104,57],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[104,81]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[104,57],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[104,79]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[104,57],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[104,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[104,57],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[104,75]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[104,57],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[104,73]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[104,57],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[104,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[104,57],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[104,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[104,57],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[104,67]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[104,57],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[104,65]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[104,57],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[104,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[104,57],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[104,61]},[]],"tag":"TypeConstructor","contents":[["Data","Function","Uncurried"],"Fn10"]},{"annotation":[{"start":[104,62],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[104,63]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[104,64],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[104,65]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[104,66],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[104,67]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[104,68],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[104,69]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[104,70],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[104,71]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[104,72],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[104,73]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[104,74],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[104,75]},[]],"tag":"TypeVar","contents":"g"}]},{"annotation":[{"start":[104,76],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[104,77]},[]],"tag":"TypeVar","contents":"h"}]},{"annotation":[{"start":[104,78],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[104,79]},[]],"tag":"TypeVar","contents":"i"}]},{"annotation":[{"start":[104,80],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[104,81]},[]],"tag":"TypeVar","contents":"j"}]},{"annotation":[{"start":[104,82],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[104,83]},[]],"tag":"TypeVar","contents":"k"}]}]},{"annotation":[{"start":[104,87],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[104,138]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[104,87],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[104,138]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[104,89],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[104,91]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[104,87],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[104,88]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[104,92],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[104,138]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[104,92],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[104,138]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[104,94],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[104,96]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[104,92],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[104,93]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[104,97],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[104,138]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[104,97],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[104,138]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[104,99],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[104,101]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[104,97],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[104,98]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[104,102],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[104,138]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[104,102],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[104,138]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[104,104],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[104,106]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[104,102],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[104,103]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[104,107],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[104,138]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[104,107],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[104,138]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[104,109],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[104,111]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[104,107],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[104,108]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[104,112],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[104,138]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[104,112],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[104,138]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[104,114],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[104,116]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[104,112],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[104,113]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[104,117],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[104,138]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[104,117],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[104,138]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[104,119],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[104,121]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[104,117],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[104,118]},[]],"tag":"TypeVar","contents":"g"}]},{"annotation":[{"start":[104,122],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[104,138]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[104,122],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[104,138]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[104,124],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[104,126]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[104,122],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[104,123]},[]],"tag":"TypeVar","contents":"h"}]},{"annotation":[{"start":[104,127],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[104,138]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[104,127],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[104,138]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[104,129],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[104,131]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[104,127],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[104,128]},[]],"tag":"TypeVar","contents":"i"}]},{"annotation":[{"start":[104,132],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[104,138]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[104,132],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[104,138]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[104,134],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[104,136]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[104,132],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[104,133]},[]],"tag":"TypeVar","contents":"j"}]},{"annotation":[{"start":[104,137],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[104,138]},[]],"tag":"TypeVar","contents":"k"}]}]}]}]}]}]}]}]}]}]}]},null]},null]},null]},null]},null]},null]},null]},null]},null]},null]},null]}}}],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-functions/src/Data/Function/Uncurried.purs","end":[104,138]}}
diff --git a/tests/purs/publish/basic-example/output/Data.Function/docs.json b/tests/purs/publish/basic-example/output/Data.Function/docs.json
--- a/tests/purs/publish/basic-example/output/Data.Function/docs.json
+++ b/tests/purs/publish/basic-example/output/Data.Function/docs.json
@@ -1,1 +1,1 @@
-{"reExports":[],"name":"Data.Function","comments":null,"declarations":[{"children":[],"comments":"Flips the order of the arguments to a function of two arguments.\n\n```purescript\nflip const 1 2 = const 2 1 = 2\n```\n","title":"flip","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]}]}]},null]},null]},null]}},"sourceSpan":{"start":[21,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[21,51]}},{"children":[],"comments":"Returns its first argument and ignores its second.\n\n```purescript\nconst 1 \"hello\" = 1\n```\n","title":"const","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},null]},null]}},"sourceSpan":{"start":[29,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[29,33]}},{"children":[],"comments":"Applies a function to an argument. This is primarily used as the operator\n`($)` which allows parentheses to be omitted in some cases, or as a\nnatural way to apply a chain of composed functions to a value.\n","title":"apply","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]},null]},null]}},"sourceSpan":{"start":[35,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[35,40]}},{"children":[],"comments":"Applies a function to an argument: the reverse of `(#)`.\n\n```purescript\nlength $ groupBy productCategory $ filter isInStock $ products\n```\n\nis equivalent to:\n\n```purescript\nlength (groupBy productCategory (filter isInStock products))\n```\n\nOr another alternative equivalent, applying chain of composed functions to\na value:\n\n```purescript\nlength <<< groupBy productCategory <<< filter isInStock $ products\n```\n","title":"($)","info":{"declType":"alias","alias":[["Data","Function"],{"Right":{"Left":{"Ident":"apply"}}}],"fixity":{"associativity":"infixr","precedence":0}},"sourceSpan":{"start":[56,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[56,20]}},{"children":[],"comments":"Applies an argument to a function. This is primarily used as the `(#)`\noperator, which allows parentheses to be ommitted in some cases, or as a\nnatural way to apply a value to a chain of composed functions.\n","title":"applyFlipped","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]},null]},null]}},"sourceSpan":{"start":[61,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[61,47]}},{"children":[],"comments":"Applies an argument to a function: the reverse of `($)`.\n\n```purescript\nproducts # filter isInStock # groupBy productCategory # length\n```\n\nis equivalent to:\n\n```purescript\nlength (groupBy productCategory (filter isInStock products))\n```\n\nOr another alternative equivalent, applying a value to a chain of composed\nfunctions:\n\n```purescript\nproducts # filter isInStock >>> groupBy productCategory >>> length\n```\n","title":"(#)","info":{"declType":"alias","alias":[["Data","Function"],{"Right":{"Left":{"Ident":"applyFlipped"}}}],"fixity":{"associativity":"infixl","precedence":1}},"sourceSpan":{"start":[82,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[82,27]}},{"children":[],"comments":"`applyN f n` applies the function `f` to its argument `n` times.\n\nIf n is less than or equal to 0, the function is not applied.\n\n```purescript\napplyN (_ + 1) 10 0 == 10\n```\n","title":"applyN","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]},null]}},"sourceSpan":{"start":[91,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[91,46]}},{"children":[],"comments":"The `on` function is used to change the domain of a binary operator.\n\nFor example, we can create a function which compares two records based on the values of their `x` properties:\n\n```purescript\ncompareX :: forall r. { x :: Number | r } -> { x :: Number | r } -> Ordering\ncompareX = compare `on` _.x\n```\n","title":"on","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]}]}]}]},null]},null]},null]}},"sourceSpan":{"start":[106,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[106,61]}}]}
+{"comments":null,"declarations":[{"children":[],"comments":"Given a function that takes two arguments, applies the arguments\nto the function in a swapped order.\n\n```purescript\nflip append \"1\" \"2\" == append \"2\" \"1\" == \"21\"\n\nconst 1 \"two\" == 1\n\nflip const 1 \"two\" == const \"two\" 1 == \"two\"\n```\n","info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"b","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"c","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"c","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},"tag":"ParensInType"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"c","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[28,51],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","start":[28,1]},"title":"flip"},{"children":[],"comments":"Returns its first argument and ignores its second.\n\n```purescript\nconst 1 \"hello\" = 1\n```\n\nIt can also be thought of as creating a function that ignores its argument:\n\n```purescript\nconst 1 = \\_ -> 1\n```\n","info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"b","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[42,33],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","start":[42,1]},"title":"const"},{"children":[],"comments":"Applies a function to an argument. This is primarily used as the operator\n`($)` which allows parentheses to be omitted in some cases, or as a\nnatural way to apply a chain of composed functions to a value.\n","info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"b","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"},"tag":"ParensInType"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[48,40],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","start":[48,1]},"title":"apply"},{"children":[],"comments":"Applies a function to an argument: the reverse of `(#)`.\n\n```purescript\nlength $ groupBy productCategory $ filter isInStock $ products\n```\n\nis equivalent to:\n\n```purescript\nlength (groupBy productCategory (filter isInStock products))\n```\n\nOr another alternative equivalent, applying chain of composed functions to\na value:\n\n```purescript\nlength <<< groupBy productCategory <<< filter isInStock $ products\n```\n","info":{"alias":[["Data","Function"],{"Right":{"Left":{"Ident":"apply"}}}],"declType":"alias","fixity":{"associativity":"infixr","precedence":0}},"kind":null,"sourceSpan":{"end":[69,20],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","start":[69,1]},"title":"($)"},{"children":[],"comments":"Applies an argument to a function. This is primarily used as the `(#)`\noperator, which allows parentheses to be omitted in some cases, or as a\nnatural way to apply a value to a chain of composed functions.\n","info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"b","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"},"tag":"ParensInType"}],"tag":"TypeApp"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[74,47],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","start":[74,1]},"title":"applyFlipped"},{"children":[],"comments":"Applies an argument to a function: the reverse of `($)`.\n\n```purescript\nproducts # filter isInStock # groupBy productCategory # length\n```\n\nis equivalent to:\n\n```purescript\nlength (groupBy productCategory (filter isInStock products))\n```\n\nOr another alternative equivalent, applying a value to a chain of composed\nfunctions:\n\n```purescript\nproducts # filter isInStock >>> groupBy productCategory >>> length\n```\n","info":{"alias":[["Data","Function"],{"Right":{"Left":{"Ident":"applyFlipped"}}}],"declType":"alias","fixity":{"associativity":"infixl","precedence":1}},"kind":null,"sourceSpan":{"end":[95,27],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","start":[95,1]},"title":"(#)"},{"children":[],"comments":"`applyN f n` applies the function `f` to its argument `n` times.\n\nIf n is less than or equal to 0, the function is not applied.\n\n```purescript\napplyN (_ + 1) 10 0 == 10\n```\n","info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},"tag":"ParensInType"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[104,46],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","start":[104,1]},"title":"applyN"},{"children":[],"comments":"The `on` function is used to change the domain of a binary operator.\n\nFor example, we can create a function which compares two records based on the values of their `x` properties:\n\n```purescript\ncompareX :: forall r. { x :: Number | r } -> { x :: Number | r } -> Ordering\ncompareX = compare `on` _.x\n```\n","info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"b","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"c","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"c","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},"tag":"ParensInType"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"},"tag":"ParensInType"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"c","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[119,61],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","start":[119,1]},"title":"on"}],"name":"Data.Function","reExports":[]}
diff --git a/tests/purs/publish/basic-example/output/Data.Function/externs.json b/tests/purs/publish/basic-example/output/Data.Function/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.Function/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Data","Function"],"efExports":[{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[107,25]},{"exportSourceImportedFrom":["Control","Category"],"exportSourceDefinedIn":["Control","Semigroupoid"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[107,25]},{"Ident":"compose"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[107,25]},{"exportSourceImportedFrom":["Control","Category"],"exportSourceDefinedIn":["Control","Category"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[107,25]},{"Ident":"identity"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[107,25]},{"exportSourceImportedFrom":["Control","Category"],"exportSourceDefinedIn":["Control","Semigroupoid"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[107,25]},"<<<"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[107,25]},{"exportSourceImportedFrom":["Control","Category"],"exportSourceDefinedIn":["Control","Semigroupoid"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[107,25]},">>>"]}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[107,25]},{"Ident":"flip"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[107,25]},{"Ident":"const"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[107,25]},{"Ident":"apply"}]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[107,25]},"$"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[107,25]},{"Ident":"applyFlipped"}]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[107,25]},"#"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[107,25]},{"Ident":"applyN"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[107,25]},{"Ident":"on"}]},{"ModuleRef":[{"start":[8,5],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[8,28]},["Control","Category"]]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Control","Category"],"eiImportType":{"Explicit":[{"ValueRef":[{"start":[11,26],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[11,34]},{"Ident":"identity"}]},{"ValueRef":[{"start":[11,36],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[11,43]},{"Ident":"compose"}]},{"ValueOpRef":[{"start":[11,45],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[11,50]},"<<<"]},{"ValueOpRef":[{"start":[11,52],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[11,57]},">>>"]}]},"eiImportedAs":null},{"eiModule":["Data","Boolean"],"eiImportType":{"Explicit":[{"ValueRef":[{"start":[12,22],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[12,31]},{"Ident":"otherwise"}]}]},"eiImportedAs":null},{"eiModule":["Data","Ord"],"eiImportType":{"Explicit":[{"ValueOpRef":[{"start":[13,18],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[13,22]},"<="]}]},"eiImportedAs":null},{"eiModule":["Data","Ring"],"eiImportType":{"Explicit":[{"ValueOpRef":[{"start":[14,19],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[14,22]},"-"]}]},"eiImportedAs":null}],"efFixities":[{"efAssociativity":"infixr","efPrecedence":0,"efOperator":"$","efAlias":[["Data","Function"],{"Left":{"Ident":"apply"}}]},{"efAssociativity":"infixl","efPrecedence":1,"efOperator":"#","efAlias":[["Data","Function"],{"Left":{"Ident":"applyFlipped"}}]}],"efTypeFixities":[],"efDeclarations":[{"EDValue":{"edValueName":{"Ident":"flip"},"edValueType":{"annotation":[{"start":[21,9],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[21,51]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[21,16],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[21,51]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[21,16],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[21,51]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[21,23],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[21,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[21,23],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[21,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[21,37],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[21,39]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[21,24],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[21,35]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[21,24],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[21,35]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[21,26],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[21,28]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[21,24],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[21,25]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[21,29],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[21,35]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[21,29],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[21,35]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[21,31],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[21,33]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[21,29],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[21,30]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[21,34],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[21,35]},[]],"tag":"TypeVar","contents":"c"}]}]}]},{"annotation":[{"start":[21,40],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[21,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[21,40],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[21,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[21,42],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[21,44]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[21,40],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[21,41]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[21,45],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[21,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[21,45],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[21,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[21,47],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[21,49]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[21,45],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[21,46]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[21,50],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[21,51]},[]],"tag":"TypeVar","contents":"c"}]}]}]},6]},7]},8]}}},{"EDValue":{"edValueName":{"Ident":"const"},"edValueType":{"annotation":[{"start":[29,10],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[29,33]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[29,17],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[29,33]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[29,22],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[29,33]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[29,22],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[29,33]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[29,24],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[29,26]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[29,22],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[29,23]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[29,27],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[29,33]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[29,27],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[29,33]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[29,29],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[29,31]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[29,27],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[29,28]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[29,32],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[29,33]},[]],"tag":"TypeVar","contents":"a"}]}]},12]},13]}}},{"EDValue":{"edValueName":{"Ident":"apply"},"edValueType":{"annotation":[{"start":[35,10],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[35,40]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[35,17],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[35,40]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[35,22],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[35,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[35,22],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[35,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[35,31],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[35,33]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[35,23],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[35,29]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[35,23],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[35,29]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[35,25],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[35,27]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[35,23],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[35,24]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[35,28],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[35,29]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[35,34],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[35,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[35,34],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[35,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[35,36],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[35,38]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[35,34],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[35,35]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[35,39],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[35,40]},[]],"tag":"TypeVar","contents":"b"}]}]},22]},23]}}},{"EDValue":{"edValueName":{"Ident":"applyFlipped"},"edValueType":{"annotation":[{"start":[61,17],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[61,47]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[61,24],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[61,47]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[61,29],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[61,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[61,29],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[61,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[61,31],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[61,33]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[61,29],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[61,30]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[61,34],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[61,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[61,34],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[61,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[61,43],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[61,45]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[61,35],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[61,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[61,35],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[61,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[61,37],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[61,39]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[61,35],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[61,36]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[61,40],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[61,41]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[61,46],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[61,47]},[]],"tag":"TypeVar","contents":"b"}]}]},18]},19]}}},{"EDValue":{"edValueName":{"Ident":"applyN"},"edValueType":{"annotation":[{"start":[91,11],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[91,46]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[91,21],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[91,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[91,21],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[91,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[91,30],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[91,32]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[91,22],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[91,28]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[91,22],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[91,28]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[91,24],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[91,26]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[91,22],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[91,23]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[91,27],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[91,28]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[91,33],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[91,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[91,33],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[91,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[91,37],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[91,39]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[91,33],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[91,36]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[91,40],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[91,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[91,40],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[91,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[91,42],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[91,44]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[91,40],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[91,41]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[91,45],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[91,46]},[]],"tag":"TypeVar","contents":"a"}]}]}]},16]}}},{"EDValue":{"edValueName":{"Ident":"on"},"edValueType":{"annotation":[{"start":[106,7],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[106,61]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[106,14],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[106,61]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[106,14],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[106,61]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[106,21],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[106,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[106,21],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[106,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[106,35],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[106,37]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[106,22],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[106,33]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[106,22],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[106,33]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[106,24],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[106,26]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[106,22],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[106,23]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[106,27],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[106,33]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[106,27],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[106,33]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[106,29],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[106,31]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[106,27],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[106,28]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[106,32],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[106,33]},[]],"tag":"TypeVar","contents":"c"}]}]}]},{"annotation":[{"start":[106,38],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[106,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[106,38],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[106,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[106,47],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[106,49]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[106,39],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[106,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[106,39],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[106,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[106,41],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[106,43]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[106,39],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[106,40]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[106,44],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[106,45]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[106,50],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[106,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[106,50],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[106,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[106,52],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[106,54]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[106,50],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[106,51]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[106,55],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[106,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[106,55],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[106,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[106,57],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[106,59]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[106,55],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[106,56]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[106,60],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[106,61]},[]],"tag":"TypeVar","contents":"c"}]}]}]}]},0]},1]},2]}}}],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Function.purs","end":[107,25]}}
diff --git a/tests/purs/publish/basic-example/output/Data.Functor.Invariant/docs.json b/tests/purs/publish/basic-example/output/Data.Functor.Invariant/docs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.Functor.Invariant/docs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"reExports":[],"name":"Data.Functor.Invariant","comments":null,"declarations":[{"children":[{"comments":null,"title":"imap","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}]}]},null]},null]}},"sourceSpan":{"start":[15,3],"name":"../../../support/bower_components/purescript-invariant/src/Data/Functor/Invariant.purs","end":[15,57]}},{"comments":null,"title":"invariantFn","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Functor","Invariant"],"Invariant"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[17,1],"name":"../../../support/bower_components/purescript-invariant/src/Data/Functor/Invariant.purs","end":[18,15]}},{"comments":null,"title":"invariantArray","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Functor","Invariant"],"Invariant"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]}]}},"sourceSpan":{"start":[20,1],"name":"../../../support/bower_components/purescript-invariant/src/Data/Functor/Invariant.purs","end":[21,15]}}],"comments":"A type of functor that can be used to adapt the type of a wrapped function\nwhere the parameterised type occurs in both the positive and negative\nposition, for example, `F (a -> a)`.\n\nAn `Invariant` instance should satisfy the following laws:\n\n- Identity: `imap id id = id`\n- Composition: `imap g1 g2 <<< imap f1 f2 = imap (g1 <<< f1) (f2 <<< g2)`\n\n","title":"Invariant","info":{"fundeps":[],"arguments":[["f",null]],"declType":"typeClass","superclasses":[]},"sourceSpan":{"start":[14,1],"name":"../../../support/bower_components/purescript-invariant/src/Data/Functor/Invariant.purs","end":[15,57]}},{"children":[],"comments":"As all `Functor`s are also trivially `Invariant`, this function can be\nused as the `imap` implementation for any types that has an existing\n`Functor` instance.\n","title":"imapF","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Functor"],"Functor"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}]}]}]},null]},null]},null]}},"sourceSpan":{"start":[26,1],"name":"../../../support/bower_components/purescript-invariant/src/Data/Functor/Invariant.purs","end":[26,71]}}]}
diff --git a/tests/purs/publish/basic-example/output/Data.Functor.Invariant/externs.json b/tests/purs/publish/basic-example/output/Data.Functor.Invariant/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.Functor.Invariant/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Data","Functor","Invariant"],"efExports":[{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-invariant/src/Data/Functor/Invariant.purs","end":[27,18]},{"Ident":"imap"}]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-invariant/src/Data/Functor/Invariant.purs","end":[27,18]},"Invariant"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-invariant/src/Data/Functor/Invariant.purs","end":[27,18]},{"Ident":"imapF"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"invariantFn"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"invariantArray"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Data","Functor"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[3,22],"name":"../../../support/bower_components/purescript-invariant/src/Data/Functor/Invariant.purs","end":[3,35]},"Functor"]},{"ValueRef":[{"start":[3,37],"name":"../../../support/bower_components/purescript-invariant/src/Data/Functor/Invariant.purs","end":[3,40]},{"Ident":"map"}]}]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDValue":{"edValueName":{"Ident":"imap"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[15,11],"name":"../../../support/bower_components/purescript-invariant/src/Data/Functor/Invariant.purs","end":[15,57]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[15,18],"name":"../../../support/bower_components/purescript-invariant/src/Data/Functor/Invariant.purs","end":[15,57]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["Data","Functor","Invariant"],"Invariant"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[15,23],"name":"../../../support/bower_components/purescript-invariant/src/Data/Functor/Invariant.purs","end":[15,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[15,23],"name":"../../../support/bower_components/purescript-invariant/src/Data/Functor/Invariant.purs","end":[15,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[15,32],"name":"../../../support/bower_components/purescript-invariant/src/Data/Functor/Invariant.purs","end":[15,34]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[15,24],"name":"../../../support/bower_components/purescript-invariant/src/Data/Functor/Invariant.purs","end":[15,30]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[15,24],"name":"../../../support/bower_components/purescript-invariant/src/Data/Functor/Invariant.purs","end":[15,30]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[15,26],"name":"../../../support/bower_components/purescript-invariant/src/Data/Functor/Invariant.purs","end":[15,28]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[15,24],"name":"../../../support/bower_components/purescript-invariant/src/Data/Functor/Invariant.purs","end":[15,25]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[15,29],"name":"../../../support/bower_components/purescript-invariant/src/Data/Functor/Invariant.purs","end":[15,30]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[15,35],"name":"../../../support/bower_components/purescript-invariant/src/Data/Functor/Invariant.purs","end":[15,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[15,35],"name":"../../../support/bower_components/purescript-invariant/src/Data/Functor/Invariant.purs","end":[15,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[15,44],"name":"../../../support/bower_components/purescript-invariant/src/Data/Functor/Invariant.purs","end":[15,46]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[15,36],"name":"../../../support/bower_components/purescript-invariant/src/Data/Functor/Invariant.purs","end":[15,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[15,36],"name":"../../../support/bower_components/purescript-invariant/src/Data/Functor/Invariant.purs","end":[15,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[15,38],"name":"../../../support/bower_components/purescript-invariant/src/Data/Functor/Invariant.purs","end":[15,40]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[15,36],"name":"../../../support/bower_components/purescript-invariant/src/Data/Functor/Invariant.purs","end":[15,37]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[15,41],"name":"../../../support/bower_components/purescript-invariant/src/Data/Functor/Invariant.purs","end":[15,42]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[15,47],"name":"../../../support/bower_components/purescript-invariant/src/Data/Functor/Invariant.purs","end":[15,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[15,47],"name":"../../../support/bower_components/purescript-invariant/src/Data/Functor/Invariant.purs","end":[15,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[15,51],"name":"../../../support/bower_components/purescript-invariant/src/Data/Functor/Invariant.purs","end":[15,53]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[15,47],"name":"../../../support/bower_components/purescript-invariant/src/Data/Functor/Invariant.purs","end":[15,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[15,47],"name":"../../../support/bower_components/purescript-invariant/src/Data/Functor/Invariant.purs","end":[15,48]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[15,49],"name":"../../../support/bower_components/purescript-invariant/src/Data/Functor/Invariant.purs","end":[15,50]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[15,54],"name":"../../../support/bower_components/purescript-invariant/src/Data/Functor/Invariant.purs","end":[15,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[15,54],"name":"../../../support/bower_components/purescript-invariant/src/Data/Functor/Invariant.purs","end":[15,55]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[15,56],"name":"../../../support/bower_components/purescript-invariant/src/Data/Functor/Invariant.purs","end":[15,57]},[]],"tag":"TypeVar","contents":"b"}]}]}]}]}]},16]},17]},18]}}},{"EDType":{"edTypeName":"Invariant","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[15,47],"name":"../../../support/bower_components/purescript-invariant/src/Data/Functor/Invariant.purs","end":[15,50]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[15,26],"name":"../../../support/bower_components/purescript-invariant/src/Data/Functor/Invariant.purs","end":[15,28]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[15,51],"name":"../../../support/bower_components/purescript-invariant/src/Data/Functor/Invariant.purs","end":[15,53]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"Invariant","edTypeSynonymArguments":[["f",null]],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["imap",{"annotation":[{"start":[15,11],"name":"../../../support/bower_components/purescript-invariant/src/Data/Functor/Invariant.purs","end":[15,57]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[15,18],"name":"../../../support/bower_components/purescript-invariant/src/Data/Functor/Invariant.purs","end":[15,57]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[15,23],"name":"../../../support/bower_components/purescript-invariant/src/Data/Functor/Invariant.purs","end":[15,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[15,23],"name":"../../../support/bower_components/purescript-invariant/src/Data/Functor/Invariant.purs","end":[15,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[15,32],"name":"../../../support/bower_components/purescript-invariant/src/Data/Functor/Invariant.purs","end":[15,34]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[15,24],"name":"../../../support/bower_components/purescript-invariant/src/Data/Functor/Invariant.purs","end":[15,30]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[15,24],"name":"../../../support/bower_components/purescript-invariant/src/Data/Functor/Invariant.purs","end":[15,30]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[15,26],"name":"../../../support/bower_components/purescript-invariant/src/Data/Functor/Invariant.purs","end":[15,28]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[15,24],"name":"../../../support/bower_components/purescript-invariant/src/Data/Functor/Invariant.purs","end":[15,25]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[15,29],"name":"../../../support/bower_components/purescript-invariant/src/Data/Functor/Invariant.purs","end":[15,30]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[15,35],"name":"../../../support/bower_components/purescript-invariant/src/Data/Functor/Invariant.purs","end":[15,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[15,35],"name":"../../../support/bower_components/purescript-invariant/src/Data/Functor/Invariant.purs","end":[15,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[15,44],"name":"../../../support/bower_components/purescript-invariant/src/Data/Functor/Invariant.purs","end":[15,46]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[15,36],"name":"../../../support/bower_components/purescript-invariant/src/Data/Functor/Invariant.purs","end":[15,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[15,36],"name":"../../../support/bower_components/purescript-invariant/src/Data/Functor/Invariant.purs","end":[15,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[15,38],"name":"../../../support/bower_components/purescript-invariant/src/Data/Functor/Invariant.purs","end":[15,40]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[15,36],"name":"../../../support/bower_components/purescript-invariant/src/Data/Functor/Invariant.purs","end":[15,37]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[15,41],"name":"../../../support/bower_components/purescript-invariant/src/Data/Functor/Invariant.purs","end":[15,42]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[15,47],"name":"../../../support/bower_components/purescript-invariant/src/Data/Functor/Invariant.purs","end":[15,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[15,47],"name":"../../../support/bower_components/purescript-invariant/src/Data/Functor/Invariant.purs","end":[15,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[15,51],"name":"../../../support/bower_components/purescript-invariant/src/Data/Functor/Invariant.purs","end":[15,53]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[15,47],"name":"../../../support/bower_components/purescript-invariant/src/Data/Functor/Invariant.purs","end":[15,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[15,47],"name":"../../../support/bower_components/purescript-invariant/src/Data/Functor/Invariant.purs","end":[15,48]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[15,49],"name":"../../../support/bower_components/purescript-invariant/src/Data/Functor/Invariant.purs","end":[15,50]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[15,54],"name":"../../../support/bower_components/purescript-invariant/src/Data/Functor/Invariant.purs","end":[15,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[15,54],"name":"../../../support/bower_components/purescript-invariant/src/Data/Functor/Invariant.purs","end":[15,55]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[15,56],"name":"../../../support/bower_components/purescript-invariant/src/Data/Functor/Invariant.purs","end":[15,57]},[]],"tag":"TypeVar","contents":"b"}]}]}]}]},null]},null]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]}}},{"EDClass":{"edClassName":"Invariant","edClassTypeArguments":[["f",null]],"edClassMembers":[[{"Ident":"imap"},{"annotation":[{"start":[15,11],"name":"../../../support/bower_components/purescript-invariant/src/Data/Functor/Invariant.purs","end":[15,57]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[15,18],"name":"../../../support/bower_components/purescript-invariant/src/Data/Functor/Invariant.purs","end":[15,57]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[15,23],"name":"../../../support/bower_components/purescript-invariant/src/Data/Functor/Invariant.purs","end":[15,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[15,23],"name":"../../../support/bower_components/purescript-invariant/src/Data/Functor/Invariant.purs","end":[15,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[15,32],"name":"../../../support/bower_components/purescript-invariant/src/Data/Functor/Invariant.purs","end":[15,34]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[15,24],"name":"../../../support/bower_components/purescript-invariant/src/Data/Functor/Invariant.purs","end":[15,30]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[15,24],"name":"../../../support/bower_components/purescript-invariant/src/Data/Functor/Invariant.purs","end":[15,30]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[15,26],"name":"../../../support/bower_components/purescript-invariant/src/Data/Functor/Invariant.purs","end":[15,28]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[15,24],"name":"../../../support/bower_components/purescript-invariant/src/Data/Functor/Invariant.purs","end":[15,25]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[15,29],"name":"../../../support/bower_components/purescript-invariant/src/Data/Functor/Invariant.purs","end":[15,30]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[15,35],"name":"../../../support/bower_components/purescript-invariant/src/Data/Functor/Invariant.purs","end":[15,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[15,35],"name":"../../../support/bower_components/purescript-invariant/src/Data/Functor/Invariant.purs","end":[15,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[15,44],"name":"../../../support/bower_components/purescript-invariant/src/Data/Functor/Invariant.purs","end":[15,46]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[15,36],"name":"../../../support/bower_components/purescript-invariant/src/Data/Functor/Invariant.purs","end":[15,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[15,36],"name":"../../../support/bower_components/purescript-invariant/src/Data/Functor/Invariant.purs","end":[15,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[15,38],"name":"../../../support/bower_components/purescript-invariant/src/Data/Functor/Invariant.purs","end":[15,40]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[15,36],"name":"../../../support/bower_components/purescript-invariant/src/Data/Functor/Invariant.purs","end":[15,37]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[15,41],"name":"../../../support/bower_components/purescript-invariant/src/Data/Functor/Invariant.purs","end":[15,42]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[15,47],"name":"../../../support/bower_components/purescript-invariant/src/Data/Functor/Invariant.purs","end":[15,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[15,47],"name":"../../../support/bower_components/purescript-invariant/src/Data/Functor/Invariant.purs","end":[15,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[15,51],"name":"../../../support/bower_components/purescript-invariant/src/Data/Functor/Invariant.purs","end":[15,53]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[15,47],"name":"../../../support/bower_components/purescript-invariant/src/Data/Functor/Invariant.purs","end":[15,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[15,47],"name":"../../../support/bower_components/purescript-invariant/src/Data/Functor/Invariant.purs","end":[15,48]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[15,49],"name":"../../../support/bower_components/purescript-invariant/src/Data/Functor/Invariant.purs","end":[15,50]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[15,54],"name":"../../../support/bower_components/purescript-invariant/src/Data/Functor/Invariant.purs","end":[15,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[15,54],"name":"../../../support/bower_components/purescript-invariant/src/Data/Functor/Invariant.purs","end":[15,55]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[15,56],"name":"../../../support/bower_components/purescript-invariant/src/Data/Functor/Invariant.purs","end":[15,57]},[]],"tag":"TypeVar","contents":"b"}]}]}]}]},null]},null]}]],"edClassConstraints":[],"edFunctionalDependencies":[]}},{"EDValue":{"edValueName":{"Ident":"imapF"},"edValueType":{"annotation":[{"start":[26,10],"name":"../../../support/bower_components/purescript-invariant/src/Data/Functor/Invariant.purs","end":[26,71]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[26,17],"name":"../../../support/bower_components/purescript-invariant/src/Data/Functor/Invariant.purs","end":[26,71]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[26,17],"name":"../../../support/bower_components/purescript-invariant/src/Data/Functor/Invariant.purs","end":[26,71]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[26,24],"name":"../../../support/bower_components/purescript-invariant/src/Data/Functor/Invariant.purs","end":[26,71]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[26,24],"name":"../../../support/bower_components/purescript-invariant/src/Data/Functor/Invariant.purs","end":[26,33]},[]],"constraintClass":[["Data","Functor"],"Functor"],"constraintArgs":[{"annotation":[{"start":[26,32],"name":"../../../support/bower_components/purescript-invariant/src/Data/Functor/Invariant.purs","end":[26,33]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[26,37],"name":"../../../support/bower_components/purescript-invariant/src/Data/Functor/Invariant.purs","end":[26,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[26,37],"name":"../../../support/bower_components/purescript-invariant/src/Data/Functor/Invariant.purs","end":[26,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[26,46],"name":"../../../support/bower_components/purescript-invariant/src/Data/Functor/Invariant.purs","end":[26,48]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[26,38],"name":"../../../support/bower_components/purescript-invariant/src/Data/Functor/Invariant.purs","end":[26,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[26,38],"name":"../../../support/bower_components/purescript-invariant/src/Data/Functor/Invariant.purs","end":[26,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[26,40],"name":"../../../support/bower_components/purescript-invariant/src/Data/Functor/Invariant.purs","end":[26,42]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[26,38],"name":"../../../support/bower_components/purescript-invariant/src/Data/Functor/Invariant.purs","end":[26,39]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[26,43],"name":"../../../support/bower_components/purescript-invariant/src/Data/Functor/Invariant.purs","end":[26,44]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[26,49],"name":"../../../support/bower_components/purescript-invariant/src/Data/Functor/Invariant.purs","end":[26,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[26,49],"name":"../../../support/bower_components/purescript-invariant/src/Data/Functor/Invariant.purs","end":[26,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[26,58],"name":"../../../support/bower_components/purescript-invariant/src/Data/Functor/Invariant.purs","end":[26,60]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[26,50],"name":"../../../support/bower_components/purescript-invariant/src/Data/Functor/Invariant.purs","end":[26,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[26,50],"name":"../../../support/bower_components/purescript-invariant/src/Data/Functor/Invariant.purs","end":[26,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[26,52],"name":"../../../support/bower_components/purescript-invariant/src/Data/Functor/Invariant.purs","end":[26,54]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[26,50],"name":"../../../support/bower_components/purescript-invariant/src/Data/Functor/Invariant.purs","end":[26,51]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[26,55],"name":"../../../support/bower_components/purescript-invariant/src/Data/Functor/Invariant.purs","end":[26,56]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[26,61],"name":"../../../support/bower_components/purescript-invariant/src/Data/Functor/Invariant.purs","end":[26,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[26,61],"name":"../../../support/bower_components/purescript-invariant/src/Data/Functor/Invariant.purs","end":[26,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[26,65],"name":"../../../support/bower_components/purescript-invariant/src/Data/Functor/Invariant.purs","end":[26,67]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[26,61],"name":"../../../support/bower_components/purescript-invariant/src/Data/Functor/Invariant.purs","end":[26,64]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[26,61],"name":"../../../support/bower_components/purescript-invariant/src/Data/Functor/Invariant.purs","end":[26,62]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[26,63],"name":"../../../support/bower_components/purescript-invariant/src/Data/Functor/Invariant.purs","end":[26,64]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[26,68],"name":"../../../support/bower_components/purescript-invariant/src/Data/Functor/Invariant.purs","end":[26,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[26,68],"name":"../../../support/bower_components/purescript-invariant/src/Data/Functor/Invariant.purs","end":[26,69]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[26,70],"name":"../../../support/bower_components/purescript-invariant/src/Data/Functor/Invariant.purs","end":[26,71]},[]],"tag":"TypeVar","contents":"b"}]}]}]}]}]},0]},1]},2]}}},{"EDInstance":{"edInstanceClassName":[["Data","Functor","Invariant"],"Invariant"],"edInstanceName":{"Ident":"invariantFn"},"edInstanceTypes":[{"annotation":[{"start":[17,36],"name":"../../../support/bower_components/purescript-invariant/src/Data/Functor/Invariant.purs","end":[17,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[17,36],"name":"../../../support/bower_components/purescript-invariant/src/Data/Functor/Invariant.purs","end":[17,40]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[17,41],"name":"../../../support/bower_components/purescript-invariant/src/Data/Functor/Invariant.purs","end":[17,42]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Functor","Invariant"],{"Ident":"invariantFn"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Functor","Invariant"],"Invariant"],"edInstanceName":{"Ident":"invariantArray"},"edInstanceTypes":[{"annotation":[{"start":[20,38],"name":"../../../support/bower_components/purescript-invariant/src/Data/Functor/Invariant.purs","end":[20,43]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Functor","Invariant"],{"Ident":"invariantArray"}]],"edInstanceChainIndex":0}}],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-invariant/src/Data/Functor/Invariant.purs","end":[27,18]}}
diff --git a/tests/purs/publish/basic-example/output/Data.Functor/docs.json b/tests/purs/publish/basic-example/output/Data.Functor/docs.json
--- a/tests/purs/publish/basic-example/output/Data.Functor/docs.json
+++ b/tests/purs/publish/basic-example/output/Data.Functor/docs.json
@@ -1,1 +1,1 @@
-{"reExports":[],"name":"Data.Functor","comments":null,"declarations":[{"children":[{"comments":null,"title":"map","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}]},null]},null]}},"sourceSpan":{"start":[25,3],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[25,44]}},{"comments":null,"title":"functorFn","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Functor"],"Functor"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}]}},"sourceSpan":{"start":[39,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[40,16]}},{"comments":null,"title":"functorArray","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Functor"],"Functor"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]}]}},"sourceSpan":{"start":[42,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[43,17]}}],"comments":"A `Functor` is a type constructor which supports a mapping operation\n`map`.\n\n`map` can be used to turn functions `a -> b` into functions\n`f a -> f b` whose argument and return types use the type constructor `f`\nto represent some computational context.\n\nInstances must satisfy the following laws:\n\n- Identity: `map identity = identity`\n- Composition: `map (f <<< g) = map f <<< map g`\n","title":"Functor","info":{"fundeps":[],"arguments":[["f",null]],"declType":"typeClass","superclasses":[]},"sourceSpan":{"start":[24,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[25,44]}},{"children":[],"comments":null,"title":"(<$>)","info":{"declType":"alias","alias":[["Data","Functor"],{"Right":{"Left":{"Ident":"map"}}}],"fixity":{"associativity":"infixl","precedence":4}},"sourceSpan":{"start":[27,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[27,20]}},{"children":[],"comments":"`mapFlipped` is `map` with its arguments reversed. For example:\n\n```purescript\n[1, 2, 3] <#> \\n -> n * n\n```\n","title":"mapFlipped","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Functor"],"Functor"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}]}]},null]},null]},null]}},"sourceSpan":{"start":[34,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[34,64]}},{"children":[],"comments":null,"title":"(<#>)","info":{"declType":"alias","alias":[["Data","Functor"],{"Right":{"Left":{"Ident":"mapFlipped"}}}],"fixity":{"associativity":"infixl","precedence":1}},"sourceSpan":{"start":[37,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[37,27]}},{"children":[],"comments":"The `void` function is used to ignore the type wrapped by a\n[`Functor`](#functor), replacing it with `Unit` and keeping only the type\ninformation provided by the type constructor itself.\n\n`void` is often useful when using `do` notation to change the return type\nof a monadic computation:\n\n```purescript\nmain = forE 1 10 \\n -> void do\n  print n\n  print (n * n)\n```\n","title":"void","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Functor"],"Functor"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}]},null]},null]}},"sourceSpan":{"start":[59,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[59,47]}},{"children":[],"comments":"Ignore the return value of a computation, using the specified return value\ninstead.\n","title":"voidRight","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Functor"],"Functor"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]}]},null]},null]},null]}},"sourceSpan":{"start":[64,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[64,56]}},{"children":[],"comments":null,"title":"(<$)","info":{"declType":"alias","alias":[["Data","Functor"],{"Right":{"Left":{"Ident":"voidRight"}}}],"fixity":{"associativity":"infixl","precedence":4}},"sourceSpan":{"start":[67,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[67,25]}},{"children":[],"comments":"A version of `voidRight` with its arguments flipped.\n","title":"voidLeft","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Functor"],"Functor"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}]}]},null]},null]},null]}},"sourceSpan":{"start":[70,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[70,55]}},{"children":[],"comments":null,"title":"($>)","info":{"declType":"alias","alias":[["Data","Functor"],{"Right":{"Left":{"Ident":"voidLeft"}}}],"fixity":{"associativity":"infixl","precedence":4}},"sourceSpan":{"start":[73,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[73,24]}},{"children":[],"comments":"Apply a value in a computational context to a value in no context.\n\nGeneralizes `flip`.\n\n```purescript\nlongEnough :: String -> Bool\nhasSymbol :: String -> Bool\nhasDigit :: String -> Bool\npassword :: String\n\nvalidate :: String -> Array Bool\nvalidate = flap [longEnough, hasSymbol, hasDigit]\n```\n\n```purescript\nflap (-) 3 4 == 1\nthreeve <$> Just 1 <@> 'a' <*> Just true == Just (threeve 1 'a' true)\n```\n","title":"flap","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Functor"],"Functor"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}]}]},null]},null]},null]}},"sourceSpan":{"start":[93,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[93,58]}},{"children":[],"comments":null,"title":"(<@>)","info":{"declType":"alias","alias":[["Data","Functor"],{"Right":{"Left":{"Ident":"flap"}}}],"fixity":{"associativity":"infixl","precedence":4}},"sourceSpan":{"start":[96,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[96,21]}}]}
+{"comments":null,"declarations":[{"children":[{"comments":null,"info":{"declType":"typeClassMember","type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"b","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"},"tag":"ParensInType"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":"f","tag":"TypeVar"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":"f","tag":"TypeVar"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"sourceSpan":{"end":[32,44],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","start":[32,3]},"title":"map"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Functor"],"Functor"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"r","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[47,16],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","start":[46,1]},"title":"functorFn"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Functor"],"Functor"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Array"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[50,17],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","start":[49,1]},"title":"functorArray"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Functor"],"Functor"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Type","Proxy"],"Proxy"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[53,18],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","start":[52,1]},"title":"functorProxy"}],"comments":"A `Functor` is a type constructor which supports a mapping operation\n`map`.\n\n`map` can be used to turn functions `a -> b` into functions\n`f a -> f b` whose argument and return types use the type constructor `f`\nto represent some computational context.\n\nInstances must satisfy the following laws:\n\n- Identity: `map identity = identity`\n- Composition: `map (f <<< g) = map f <<< map g`\n","info":{"arguments":[["f",null]],"declType":"typeClass","fundeps":[],"superclasses":[]},"kind":{"keyword":"class","kind":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim"],"Constraint"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[32,44],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","start":[31,1]},"title":"Functor"},{"children":[],"comments":null,"info":{"alias":[["Data","Functor"],{"Right":{"Left":{"Ident":"map"}}}],"declType":"alias","fixity":{"associativity":"infixl","precedence":4}},"kind":null,"sourceSpan":{"end":[34,20],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","start":[34,1]},"title":"(<$>)"},{"children":[],"comments":"`mapFlipped` is `map` with its arguments reversed. For example:\n\n```purescript\n[1, 2, 3] <#> \\n -> n * n\n```\n","info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"f","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"b","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"f","tag":"TypeVar"}],"constraintClass":[["Data","Functor"],"Functor"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":"f","tag":"TypeVar"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"},"tag":"ParensInType"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":"f","tag":"TypeVar"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[41,64],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","start":[41,1]},"title":"mapFlipped"},{"children":[],"comments":null,"info":{"alias":[["Data","Functor"],{"Right":{"Left":{"Ident":"mapFlipped"}}}],"declType":"alias","fixity":{"associativity":"infixl","precedence":1}},"kind":null,"sourceSpan":{"end":[44,27],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","start":[44,1]},"title":"(<#>)"},{"children":[],"comments":"The `void` function is used to ignore the type wrapped by a\n[`Functor`](#functor), replacing it with `Unit` and keeping only the type\ninformation provided by the type constructor itself.\n\n`void` is often useful when using `do` notation to change the return type\nof a monadic computation:\n\n```purescript\nmain = forE 1 10 \\n -> void do\n  print n\n  print (n * n)\n```\n","info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"f","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"f","tag":"TypeVar"}],"constraintClass":[["Data","Functor"],"Functor"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":"f","tag":"TypeVar"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":"f","tag":"TypeVar"},{"annotation":[],"contents":[["Data","Unit"],"Unit"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[69,47],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","start":[69,1]},"title":"void"},{"children":[],"comments":"Ignore the return value of a computation, using the specified return value\ninstead.\n","info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"f","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"b","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"f","tag":"TypeVar"}],"constraintClass":[["Data","Functor"],"Functor"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":"f","tag":"TypeVar"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":"f","tag":"TypeVar"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[74,56],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","start":[74,1]},"title":"voidRight"},{"children":[],"comments":null,"info":{"alias":[["Data","Functor"],{"Right":{"Left":{"Ident":"voidRight"}}}],"declType":"alias","fixity":{"associativity":"infixl","precedence":4}},"kind":null,"sourceSpan":{"end":[77,25],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","start":[77,1]},"title":"(<$)"},{"children":[],"comments":"A version of `voidRight` with its arguments flipped.\n","info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"f","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"b","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"f","tag":"TypeVar"}],"constraintClass":[["Data","Functor"],"Functor"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":"f","tag":"TypeVar"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":"f","tag":"TypeVar"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[80,55],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","start":[80,1]},"title":"voidLeft"},{"children":[],"comments":null,"info":{"alias":[["Data","Functor"],{"Right":{"Left":{"Ident":"voidLeft"}}}],"declType":"alias","fixity":{"associativity":"infixl","precedence":4}},"kind":null,"sourceSpan":{"end":[83,24],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","start":[83,1]},"title":"($>)"},{"children":[],"comments":"Apply a value in a computational context to a value in no context.\n\nGeneralizes `flip`.\n\n```purescript\nlongEnough :: String -> Bool\nhasSymbol :: String -> Bool\nhasDigit :: String -> Bool\npassword :: String\n\nvalidate :: String -> Array Bool\nvalidate = flap [longEnough, hasSymbol, hasDigit]\n```\n\n```purescript\nflap (-) 3 4 == 1\nthreeve <$> Just 1 <@> 'a' <*> Just true == Just (threeve 1 'a' true)\n```\n","info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"f","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"b","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"f","tag":"TypeVar"}],"constraintClass":[["Data","Functor"],"Functor"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":"f","tag":"TypeVar"},{"annotation":[],"contents":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"},"tag":"ParensInType"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":"f","tag":"TypeVar"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[103,58],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","start":[103,1]},"title":"flap"},{"children":[],"comments":null,"info":{"alias":[["Data","Functor"],{"Right":{"Left":{"Ident":"flap"}}}],"declType":"alias","fixity":{"associativity":"infixl","precedence":4}},"kind":null,"sourceSpan":{"end":[106,21],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","start":[106,1]},"title":"(<@>)"}],"name":"Data.Functor","reExports":[]}
diff --git a/tests/purs/publish/basic-example/output/Data.Functor/externs.json b/tests/purs/publish/basic-example/output/Data.Functor/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.Functor/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Data","Functor"],"efExports":[{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[96,21]},"Functor"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[96,21]},{"Ident":"map"}]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[96,21]},"<$>"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[96,21]},{"Ident":"mapFlipped"}]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[96,21]},"<#>"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[96,21]},{"Ident":"void"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[96,21]},{"Ident":"voidRight"}]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[96,21]},"<$"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[96,21]},{"Ident":"voidLeft"}]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[96,21]},"$>"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[96,21]},{"Ident":"flap"}]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[96,21]},"<@>"]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"functorFn"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"functorArray"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Data","Function"],"eiImportType":{"Explicit":[{"ValueRef":[{"start":[10,23],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[10,28]},{"Ident":"const"}]},{"ValueRef":[{"start":[10,30],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[10,37]},{"Ident":"compose"}]}]},"eiImportedAs":null},{"eiModule":["Data","Unit"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[11,19],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[11,23]},"Unit",[]]},{"ValueRef":[{"start":[11,25],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[11,29]},{"Ident":"unit"}]}]},"eiImportedAs":null}],"efFixities":[{"efAssociativity":"infixl","efPrecedence":4,"efOperator":"<$>","efAlias":[["Data","Functor"],{"Left":{"Ident":"map"}}]},{"efAssociativity":"infixl","efPrecedence":1,"efOperator":"<#>","efAlias":[["Data","Functor"],{"Left":{"Ident":"mapFlipped"}}]},{"efAssociativity":"infixl","efPrecedence":4,"efOperator":"<$","efAlias":[["Data","Functor"],{"Left":{"Ident":"voidRight"}}]},{"efAssociativity":"infixl","efPrecedence":4,"efOperator":"$>","efAlias":[["Data","Functor"],{"Left":{"Ident":"voidLeft"}}]},{"efAssociativity":"infixl","efPrecedence":4,"efOperator":"<@>","efAlias":[["Data","Functor"],{"Left":{"Ident":"flap"}}]}],"efTypeFixities":[],"efDeclarations":[{"EDType":{"edTypeName":"Functor","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[25,34],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[25,37]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[25,25],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[25,27]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[25,38],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[25,40]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"Functor","edTypeSynonymArguments":[["f",null]],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["map",{"annotation":[{"start":[25,10],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[25,44]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[25,17],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[25,44]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[25,22],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[25,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[25,22],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[25,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[25,31],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[25,33]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[25,23],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[25,29]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[25,23],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[25,29]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[25,25],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[25,27]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[25,23],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[25,24]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[25,28],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[25,29]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[25,34],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[25,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[25,34],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[25,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[25,38],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[25,40]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[25,34],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[25,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[25,34],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[25,35]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[25,36],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[25,37]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[25,41],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[25,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[25,41],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[25,42]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[25,43],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[25,44]},[]],"tag":"TypeVar","contents":"b"}]}]}]},null]},null]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]}}},{"EDClass":{"edClassName":"Functor","edClassTypeArguments":[["f",null]],"edClassMembers":[[{"Ident":"map"},{"annotation":[{"start":[25,10],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[25,44]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[25,17],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[25,44]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[25,22],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[25,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[25,22],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[25,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[25,31],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[25,33]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[25,23],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[25,29]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[25,23],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[25,29]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[25,25],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[25,27]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[25,23],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[25,24]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[25,28],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[25,29]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[25,34],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[25,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[25,34],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[25,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[25,38],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[25,40]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[25,34],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[25,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[25,34],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[25,35]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[25,36],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[25,37]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[25,41],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[25,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[25,41],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[25,42]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[25,43],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[25,44]},[]],"tag":"TypeVar","contents":"b"}]}]}]},null]},null]}]],"edClassConstraints":[],"edFunctionalDependencies":[]}},{"EDValue":{"edValueName":{"Ident":"map"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[25,10],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[25,44]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[25,17],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[25,44]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["Data","Functor"],"Functor"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[25,22],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[25,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[25,22],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[25,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[25,31],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[25,33]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[25,23],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[25,29]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[25,23],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[25,29]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[25,25],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[25,27]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[25,23],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[25,24]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[25,28],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[25,29]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[25,34],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[25,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[25,34],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[25,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[25,38],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[25,40]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[25,34],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[25,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[25,34],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[25,35]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[25,36],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[25,37]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[25,41],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[25,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[25,41],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[25,42]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[25,43],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[25,44]},[]],"tag":"TypeVar","contents":"b"}]}]}]}]},0]},1]},2]}}},{"EDValue":{"edValueName":{"Ident":"mapFlipped"},"edValueType":{"annotation":[{"start":[34,15],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[34,64]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[34,22],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[34,64]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[34,22],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[34,64]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[34,29],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[34,64]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[34,29],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[34,38]},[]],"constraintClass":[["Data","Functor"],"Functor"],"constraintArgs":[{"annotation":[{"start":[34,37],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[34,38]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[34,42],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[34,64]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[34,42],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[34,64]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[34,46],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[34,48]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[34,42],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[34,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[34,42],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[34,43]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[34,44],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[34,45]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[34,49],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[34,64]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[34,49],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[34,64]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[34,58],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[34,60]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[34,50],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[34,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[34,50],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[34,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[34,52],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[34,54]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[34,50],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[34,51]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[34,55],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[34,56]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[34,61],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[34,64]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[34,61],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[34,62]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[34,63],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[34,64]},[]],"tag":"TypeVar","contents":"b"}]}]}]}]},3]},4]},5]}}},{"EDValue":{"edValueName":{"Ident":"void"},"edValueType":{"annotation":[{"start":[59,9],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[59,47]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[59,16],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[59,47]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[59,21],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[59,47]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[59,21],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[59,30]},[]],"constraintClass":[["Data","Functor"],"Functor"],"constraintArgs":[{"annotation":[{"start":[59,29],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[59,30]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[59,34],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[59,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[59,34],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[59,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[59,38],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[59,40]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[59,34],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[59,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[59,34],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[59,35]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[59,36],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[59,37]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[59,41],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[59,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[59,41],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[59,42]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[59,43],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[59,47]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}]},9]},10]}}},{"EDValue":{"edValueName":{"Ident":"voidRight"},"edValueType":{"annotation":[{"start":[64,14],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[64,56]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[64,21],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[64,56]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[64,21],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[64,56]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[64,28],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[64,56]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[64,28],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[64,37]},[]],"constraintClass":[["Data","Functor"],"Functor"],"constraintArgs":[{"annotation":[{"start":[64,36],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[64,37]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[64,41],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[64,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[64,41],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[64,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[64,43],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[64,45]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[64,41],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[64,42]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[64,46],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[64,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[64,46],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[64,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[64,50],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[64,52]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[64,46],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[64,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[64,46],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[64,47]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[64,48],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[64,49]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[64,53],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[64,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[64,53],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[64,54]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[64,55],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[64,56]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]},19]},20]},21]}}},{"EDValue":{"edValueName":{"Ident":"voidLeft"},"edValueType":{"annotation":[{"start":[70,13],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[70,55]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[70,20],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[70,55]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[70,20],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[70,55]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[70,27],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[70,55]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[70,27],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[70,36]},[]],"constraintClass":[["Data","Functor"],"Functor"],"constraintArgs":[{"annotation":[{"start":[70,35],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[70,36]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[70,40],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[70,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[70,40],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[70,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[70,44],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[70,46]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[70,40],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[70,43]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[70,40],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[70,41]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[70,42],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[70,43]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[70,47],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[70,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[70,47],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[70,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[70,49],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[70,51]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[70,47],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[70,48]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[70,52],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[70,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[70,52],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[70,53]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[70,54],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[70,55]},[]],"tag":"TypeVar","contents":"b"}]}]}]}]},13]},14]},15]}}},{"EDValue":{"edValueName":{"Ident":"flap"},"edValueType":{"annotation":[{"start":[93,9],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[93,58]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[93,16],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[93,58]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[93,16],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[93,58]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[93,23],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[93,58]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[93,23],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[93,32]},[]],"constraintClass":[["Data","Functor"],"Functor"],"constraintArgs":[{"annotation":[{"start":[93,31],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[93,32]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[93,36],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[93,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[93,36],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[93,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[93,47],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[93,49]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[93,36],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[93,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[93,36],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[93,37]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[93,39],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[93,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[93,39],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[93,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[93,41],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[93,43]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[93,39],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[93,40]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[93,44],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[93,45]},[]],"tag":"TypeVar","contents":"b"}]}]}]},{"annotation":[{"start":[93,50],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[93,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[93,50],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[93,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[93,52],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[93,54]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[93,50],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[93,51]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[93,55],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[93,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[93,55],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[93,56]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[93,57],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[93,58]},[]],"tag":"TypeVar","contents":"b"}]}]}]}]},37]},38]},39]}}},{"EDInstance":{"edInstanceClassName":[["Data","Functor"],"Functor"],"edInstanceName":{"Ident":"functorFn"},"edInstanceTypes":[{"annotation":[{"start":[39,32],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[39,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[39,32],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[39,36]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[39,37],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[39,38]},[]],"tag":"TypeVar","contents":"r"}]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Functor"],{"Ident":"functorFn"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Functor"],"Functor"],"edInstanceName":{"Ident":"functorArray"},"edInstanceTypes":[{"annotation":[{"start":[42,34],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[42,39]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Functor"],{"Ident":"functorArray"}]],"edInstanceChainIndex":0}}],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs","end":[96,21]}}
diff --git a/tests/purs/publish/basic-example/output/Data.FunctorWithIndex/docs.json b/tests/purs/publish/basic-example/output/Data.FunctorWithIndex/docs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.FunctorWithIndex/docs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"reExports":[],"name":"Data.FunctorWithIndex","comments":null,"declarations":[{"children":[{"comments":null,"title":"mapWithIndex","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"i"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}]},null]},null]}},"sourceSpan":{"start":[27,3],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FunctorWithIndex.purs","end":[27,58]}},{"comments":null,"title":"functorWithIndexArray","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","FunctorWithIndex"],"FunctorWithIndex"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]}]}},"sourceSpan":{"start":[31,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FunctorWithIndex.purs","end":[32,35]}},{"comments":null,"title":"functorWithIndexMaybe","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","FunctorWithIndex"],"FunctorWithIndex"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]}]}},"sourceSpan":{"start":[34,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FunctorWithIndex.purs","end":[35,32]}},{"comments":null,"title":"functorWithIndexFirst","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","FunctorWithIndex"],"FunctorWithIndex"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe","First"],"First"]}]}},"sourceSpan":{"start":[37,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FunctorWithIndex.purs","end":[38,32]}},{"comments":null,"title":"functorWithIndexLast","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","FunctorWithIndex"],"FunctorWithIndex"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe","Last"],"Last"]}]}},"sourceSpan":{"start":[40,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FunctorWithIndex.purs","end":[41,32]}},{"comments":null,"title":"functorWithIndexAdditive","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","FunctorWithIndex"],"FunctorWithIndex"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Additive"],"Additive"]}]}},"sourceSpan":{"start":[43,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FunctorWithIndex.purs","end":[44,32]}},{"comments":null,"title":"functorWithIndexDual","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","FunctorWithIndex"],"FunctorWithIndex"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Dual"],"Dual"]}]}},"sourceSpan":{"start":[46,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FunctorWithIndex.purs","end":[47,32]}},{"comments":null,"title":"functorWithIndexConj","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","FunctorWithIndex"],"FunctorWithIndex"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Conj"],"Conj"]}]}},"sourceSpan":{"start":[49,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FunctorWithIndex.purs","end":[50,32]}},{"comments":null,"title":"functorWithIndexDisj","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","FunctorWithIndex"],"FunctorWithIndex"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Disj"],"Disj"]}]}},"sourceSpan":{"start":[52,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FunctorWithIndex.purs","end":[53,32]}},{"comments":null,"title":"functorWithIndexMultiplicative","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","FunctorWithIndex"],"FunctorWithIndex"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Multiplicative"],"Multiplicative"]}]}},"sourceSpan":{"start":[55,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FunctorWithIndex.purs","end":[56,32]}}],"comments":"A `Functor` with an additional index.\nInstances must satisfy a modified form of the `Functor` laws\n```purescript\nmapWithIndex (\\_ a -> a) = identity\nmapWithIndex f . mapWithIndex g = mapWithIndex (\\i -> f i <<< g i)\n```\nand be compatible with the `Functor` instance\n```purescript\nmap f = mapWithIndex (const f)\n```\n","title":"FunctorWithIndex","info":{"fundeps":[[["f"],["i"]]],"arguments":[["i",null],["f",null]],"declType":"typeClass","superclasses":[{"constraintAnn":[],"constraintClass":[["Data","Functor"],"Functor"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null}]},"sourceSpan":{"start":[26,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FunctorWithIndex.purs","end":[27,58]}},{"children":[],"comments":"A default implementation of Functor's `map` in terms of `mapWithIndex`\n","title":"mapDefault","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["i",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","FunctorWithIndex"],"FunctorWithIndex"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"i"},{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}]}]},null]},null]},null]},null]}},"sourceSpan":{"start":[59,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FunctorWithIndex.purs","end":[59,77]}}]}
diff --git a/tests/purs/publish/basic-example/output/Data.FunctorWithIndex/externs.json b/tests/purs/publish/basic-example/output/Data.FunctorWithIndex/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.FunctorWithIndex/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Data","FunctorWithIndex"],"efExports":[{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FunctorWithIndex.purs","end":[60,38]},"FunctorWithIndex"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FunctorWithIndex.purs","end":[60,38]},{"Ident":"mapWithIndex"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FunctorWithIndex.purs","end":[60,38]},{"Ident":"mapDefault"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"functorWithIndexArray"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"functorWithIndexMaybe"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"functorWithIndexFirst"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"functorWithIndexLast"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"functorWithIndexAdditive"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"functorWithIndexDual"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"functorWithIndexConj"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"functorWithIndexDisj"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"functorWithIndexMultiplicative"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Prelude"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Data","Maybe"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[7,20],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FunctorWithIndex.purs","end":[7,25]},"Maybe",[]]}]},"eiImportedAs":null},{"eiModule":["Data","Maybe","First"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[8,26],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FunctorWithIndex.purs","end":[8,31]},"First",[]]}]},"eiImportedAs":null},{"eiModule":["Data","Maybe","Last"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[9,25],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FunctorWithIndex.purs","end":[9,29]},"Last",[]]}]},"eiImportedAs":null},{"eiModule":["Data","Monoid","Additive"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[10,30],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FunctorWithIndex.purs","end":[10,38]},"Additive",[]]}]},"eiImportedAs":null},{"eiModule":["Data","Monoid","Conj"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[11,26],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FunctorWithIndex.purs","end":[11,30]},"Conj",[]]}]},"eiImportedAs":null},{"eiModule":["Data","Monoid","Disj"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[12,26],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FunctorWithIndex.purs","end":[12,30]},"Disj",[]]}]},"eiImportedAs":null},{"eiModule":["Data","Monoid","Dual"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[13,26],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FunctorWithIndex.purs","end":[13,30]},"Dual",[]]}]},"eiImportedAs":null},{"eiModule":["Data","Monoid","Multiplicative"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[14,36],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FunctorWithIndex.purs","end":[14,50]},"Multiplicative",[]]}]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDType":{"edTypeName":"FunctorWithIndex","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[27,34],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FunctorWithIndex.purs","end":[27,36]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[27,48],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FunctorWithIndex.purs","end":[27,51]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[27,39],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FunctorWithIndex.purs","end":[27,41]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[27,52],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FunctorWithIndex.purs","end":[27,54]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"FunctorWithIndex","edTypeSynonymArguments":[["i",null],["f",null]],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["mapWithIndex",{"annotation":[{"start":[27,19],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FunctorWithIndex.purs","end":[27,58]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[27,26],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FunctorWithIndex.purs","end":[27,58]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[27,31],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FunctorWithIndex.purs","end":[27,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[27,31],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FunctorWithIndex.purs","end":[27,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[27,45],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FunctorWithIndex.purs","end":[27,47]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[27,32],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FunctorWithIndex.purs","end":[27,43]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[27,32],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FunctorWithIndex.purs","end":[27,43]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[27,34],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FunctorWithIndex.purs","end":[27,36]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[27,32],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FunctorWithIndex.purs","end":[27,33]},[]],"tag":"TypeVar","contents":"i"}]},{"annotation":[{"start":[27,37],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FunctorWithIndex.purs","end":[27,43]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[27,37],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FunctorWithIndex.purs","end":[27,43]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[27,39],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FunctorWithIndex.purs","end":[27,41]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[27,37],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FunctorWithIndex.purs","end":[27,38]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[27,42],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FunctorWithIndex.purs","end":[27,43]},[]],"tag":"TypeVar","contents":"b"}]}]}]},{"annotation":[{"start":[27,48],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FunctorWithIndex.purs","end":[27,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[27,48],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FunctorWithIndex.purs","end":[27,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[27,52],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FunctorWithIndex.purs","end":[27,54]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[27,48],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FunctorWithIndex.purs","end":[27,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[27,48],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FunctorWithIndex.purs","end":[27,49]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[27,50],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FunctorWithIndex.purs","end":[27,51]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[27,55],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FunctorWithIndex.purs","end":[27,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[27,55],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FunctorWithIndex.purs","end":[27,56]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[27,57],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FunctorWithIndex.purs","end":[27,58]},[]],"tag":"TypeVar","contents":"b"}]}]}]},null]},null]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["Functor0",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Functor"],"Functor"]},{"annotation":[{"start":[26,15],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FunctorWithIndex.purs","end":[26,16]},[]],"tag":"TypeVar","contents":"f"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]}]}}},{"EDClass":{"edClassName":"FunctorWithIndex","edClassTypeArguments":[["i",null],["f",null]],"edClassMembers":[[{"Ident":"mapWithIndex"},{"annotation":[{"start":[27,19],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FunctorWithIndex.purs","end":[27,58]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[27,26],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FunctorWithIndex.purs","end":[27,58]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[27,31],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FunctorWithIndex.purs","end":[27,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[27,31],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FunctorWithIndex.purs","end":[27,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[27,45],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FunctorWithIndex.purs","end":[27,47]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[27,32],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FunctorWithIndex.purs","end":[27,43]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[27,32],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FunctorWithIndex.purs","end":[27,43]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[27,34],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FunctorWithIndex.purs","end":[27,36]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[27,32],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FunctorWithIndex.purs","end":[27,33]},[]],"tag":"TypeVar","contents":"i"}]},{"annotation":[{"start":[27,37],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FunctorWithIndex.purs","end":[27,43]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[27,37],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FunctorWithIndex.purs","end":[27,43]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[27,39],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FunctorWithIndex.purs","end":[27,41]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[27,37],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FunctorWithIndex.purs","end":[27,38]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[27,42],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FunctorWithIndex.purs","end":[27,43]},[]],"tag":"TypeVar","contents":"b"}]}]}]},{"annotation":[{"start":[27,48],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FunctorWithIndex.purs","end":[27,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[27,48],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FunctorWithIndex.purs","end":[27,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[27,52],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FunctorWithIndex.purs","end":[27,54]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[27,48],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FunctorWithIndex.purs","end":[27,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[27,48],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FunctorWithIndex.purs","end":[27,49]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[27,50],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FunctorWithIndex.purs","end":[27,51]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[27,55],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FunctorWithIndex.purs","end":[27,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[27,55],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FunctorWithIndex.purs","end":[27,56]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[27,57],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FunctorWithIndex.purs","end":[27,58]},[]],"tag":"TypeVar","contents":"b"}]}]}]},null]},null]}]],"edClassConstraints":[{"constraintAnn":[{"start":[26,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FunctorWithIndex.purs","end":[26,16]},[]],"constraintClass":[["Data","Functor"],"Functor"],"constraintArgs":[{"annotation":[{"start":[26,15],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FunctorWithIndex.purs","end":[26,16]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null}],"edFunctionalDependencies":[{"determiners":[1],"determined":[0]}]}},{"EDValue":{"edValueName":{"Ident":"mapWithIndex"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["i",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[27,19],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FunctorWithIndex.purs","end":[27,58]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[27,26],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FunctorWithIndex.purs","end":[27,58]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["Data","FunctorWithIndex"],"FunctorWithIndex"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"i"},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[27,31],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FunctorWithIndex.purs","end":[27,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[27,31],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FunctorWithIndex.purs","end":[27,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[27,45],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FunctorWithIndex.purs","end":[27,47]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[27,32],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FunctorWithIndex.purs","end":[27,43]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[27,32],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FunctorWithIndex.purs","end":[27,43]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[27,34],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FunctorWithIndex.purs","end":[27,36]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[27,32],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FunctorWithIndex.purs","end":[27,33]},[]],"tag":"TypeVar","contents":"i"}]},{"annotation":[{"start":[27,37],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FunctorWithIndex.purs","end":[27,43]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[27,37],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FunctorWithIndex.purs","end":[27,43]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[27,39],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FunctorWithIndex.purs","end":[27,41]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[27,37],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FunctorWithIndex.purs","end":[27,38]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[27,42],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FunctorWithIndex.purs","end":[27,43]},[]],"tag":"TypeVar","contents":"b"}]}]}]},{"annotation":[{"start":[27,48],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FunctorWithIndex.purs","end":[27,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[27,48],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FunctorWithIndex.purs","end":[27,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[27,52],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FunctorWithIndex.purs","end":[27,54]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[27,48],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FunctorWithIndex.purs","end":[27,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[27,48],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FunctorWithIndex.purs","end":[27,49]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[27,50],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FunctorWithIndex.purs","end":[27,51]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[27,55],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FunctorWithIndex.purs","end":[27,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[27,55],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FunctorWithIndex.purs","end":[27,56]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[27,57],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FunctorWithIndex.purs","end":[27,58]},[]],"tag":"TypeVar","contents":"b"}]}]}]}]},0]},1]},2]},3]}}},{"EDValue":{"edValueName":{"Ident":"mapDefault"},"edValueType":{"annotation":[{"start":[59,15],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FunctorWithIndex.purs","end":[59,77]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[59,22],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FunctorWithIndex.purs","end":[59,77]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[59,22],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FunctorWithIndex.purs","end":[59,77]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[59,22],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FunctorWithIndex.purs","end":[59,77]},[]],"tag":"ForAll","contents":["i",{"annotation":[{"start":[59,31],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FunctorWithIndex.purs","end":[59,77]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[59,31],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FunctorWithIndex.purs","end":[59,51]},[]],"constraintClass":[["Data","FunctorWithIndex"],"FunctorWithIndex"],"constraintArgs":[{"annotation":[{"start":[59,48],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FunctorWithIndex.purs","end":[59,49]},[]],"tag":"TypeVar","contents":"i"},{"annotation":[{"start":[59,50],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FunctorWithIndex.purs","end":[59,51]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[59,55],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FunctorWithIndex.purs","end":[59,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[59,55],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FunctorWithIndex.purs","end":[59,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[59,64],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FunctorWithIndex.purs","end":[59,66]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[59,56],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FunctorWithIndex.purs","end":[59,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[59,56],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FunctorWithIndex.purs","end":[59,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[59,58],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FunctorWithIndex.purs","end":[59,60]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[59,56],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FunctorWithIndex.purs","end":[59,57]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[59,61],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FunctorWithIndex.purs","end":[59,62]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[59,67],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FunctorWithIndex.purs","end":[59,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[59,67],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FunctorWithIndex.purs","end":[59,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[59,71],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FunctorWithIndex.purs","end":[59,73]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[59,67],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FunctorWithIndex.purs","end":[59,70]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[59,67],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FunctorWithIndex.purs","end":[59,68]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[59,69],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FunctorWithIndex.purs","end":[59,70]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[59,74],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FunctorWithIndex.purs","end":[59,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[59,74],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FunctorWithIndex.purs","end":[59,75]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[59,76],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FunctorWithIndex.purs","end":[59,77]},[]],"tag":"TypeVar","contents":"b"}]}]}]}]},4]},5]},6]},7]}}},{"EDInstance":{"edInstanceClassName":[["Data","FunctorWithIndex"],"FunctorWithIndex"],"edInstanceName":{"Ident":"functorWithIndexArray"},"edInstanceTypes":[{"annotation":[{"start":[31,52],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FunctorWithIndex.purs","end":[31,55]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]},{"annotation":[{"start":[31,56],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FunctorWithIndex.purs","end":[31,61]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","FunctorWithIndex"],{"Ident":"functorWithIndexArray"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","FunctorWithIndex"],"FunctorWithIndex"],"edInstanceName":{"Ident":"functorWithIndexMaybe"},"edInstanceTypes":[{"annotation":[{"start":[34,52],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FunctorWithIndex.purs","end":[34,56]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]},{"annotation":[{"start":[34,57],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FunctorWithIndex.purs","end":[34,62]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","FunctorWithIndex"],{"Ident":"functorWithIndexMaybe"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","FunctorWithIndex"],"FunctorWithIndex"],"edInstanceName":{"Ident":"functorWithIndexFirst"},"edInstanceTypes":[{"annotation":[{"start":[37,52],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FunctorWithIndex.purs","end":[37,56]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]},{"annotation":[{"start":[37,57],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FunctorWithIndex.purs","end":[37,62]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe","First"],"First"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","FunctorWithIndex"],{"Ident":"functorWithIndexFirst"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","FunctorWithIndex"],"FunctorWithIndex"],"edInstanceName":{"Ident":"functorWithIndexLast"},"edInstanceTypes":[{"annotation":[{"start":[40,51],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FunctorWithIndex.purs","end":[40,55]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]},{"annotation":[{"start":[40,56],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FunctorWithIndex.purs","end":[40,60]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe","Last"],"Last"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","FunctorWithIndex"],{"Ident":"functorWithIndexLast"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","FunctorWithIndex"],"FunctorWithIndex"],"edInstanceName":{"Ident":"functorWithIndexAdditive"},"edInstanceTypes":[{"annotation":[{"start":[43,55],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FunctorWithIndex.purs","end":[43,59]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]},{"annotation":[{"start":[43,60],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FunctorWithIndex.purs","end":[43,68]},[]],"tag":"TypeConstructor","contents":[["Data","Monoid","Additive"],"Additive"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","FunctorWithIndex"],{"Ident":"functorWithIndexAdditive"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","FunctorWithIndex"],"FunctorWithIndex"],"edInstanceName":{"Ident":"functorWithIndexDual"},"edInstanceTypes":[{"annotation":[{"start":[46,51],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FunctorWithIndex.purs","end":[46,55]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]},{"annotation":[{"start":[46,56],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FunctorWithIndex.purs","end":[46,60]},[]],"tag":"TypeConstructor","contents":[["Data","Monoid","Dual"],"Dual"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","FunctorWithIndex"],{"Ident":"functorWithIndexDual"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","FunctorWithIndex"],"FunctorWithIndex"],"edInstanceName":{"Ident":"functorWithIndexConj"},"edInstanceTypes":[{"annotation":[{"start":[49,51],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FunctorWithIndex.purs","end":[49,55]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]},{"annotation":[{"start":[49,56],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FunctorWithIndex.purs","end":[49,60]},[]],"tag":"TypeConstructor","contents":[["Data","Monoid","Conj"],"Conj"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","FunctorWithIndex"],{"Ident":"functorWithIndexConj"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","FunctorWithIndex"],"FunctorWithIndex"],"edInstanceName":{"Ident":"functorWithIndexDisj"},"edInstanceTypes":[{"annotation":[{"start":[52,51],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FunctorWithIndex.purs","end":[52,55]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]},{"annotation":[{"start":[52,56],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FunctorWithIndex.purs","end":[52,60]},[]],"tag":"TypeConstructor","contents":[["Data","Monoid","Disj"],"Disj"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","FunctorWithIndex"],{"Ident":"functorWithIndexDisj"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","FunctorWithIndex"],"FunctorWithIndex"],"edInstanceName":{"Ident":"functorWithIndexMultiplicative"},"edInstanceTypes":[{"annotation":[{"start":[55,61],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FunctorWithIndex.purs","end":[55,65]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]},{"annotation":[{"start":[55,66],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FunctorWithIndex.purs","end":[55,80]},[]],"tag":"TypeConstructor","contents":[["Data","Monoid","Multiplicative"],"Multiplicative"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","FunctorWithIndex"],{"Ident":"functorWithIndexMultiplicative"}]],"edInstanceChainIndex":0}}],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/FunctorWithIndex.purs","end":[60,38]}}
diff --git a/tests/purs/publish/basic-example/output/Data.Generic.Rep.Bounded/docs.json b/tests/purs/publish/basic-example/output/Data.Generic.Rep.Bounded/docs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.Generic.Rep.Bounded/docs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"reExports":[],"name":"Data.Generic.Rep.Bounded","comments":null,"declarations":[{"children":[{"comments":null,"title":"genericBottom'","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeVar","contents":"a"}},"sourceSpan":{"start":[15,3],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Bounded.purs","end":[15,22]}},{"comments":null,"title":"genericBottomNoArguments","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep","Bounded"],"GenericBottom"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"NoArguments"]}]}},"sourceSpan":{"start":[17,1],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Bounded.purs","end":[18,31]}},{"comments":null,"title":"genericBottomArgument","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Bounded"],"Bounded"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep","Bounded"],"GenericBottom"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"Argument"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[20,1],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Bounded.purs","end":[21,35]}},{"comments":null,"title":"genericBottomSum","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Generic","Rep","Bounded"],"GenericBottom"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep","Bounded"],"GenericBottom"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"Sum"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}},"sourceSpan":{"start":[23,1],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Bounded.purs","end":[24,38]}},{"comments":null,"title":"genericBottomProduct","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Generic","Rep","Bounded"],"GenericBottom"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","Generic","Rep","Bounded"],"GenericBottom"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"b"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep","Bounded"],"GenericBottom"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"Product"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}},"sourceSpan":{"start":[26,1],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Bounded.purs","end":[27,57]}},{"comments":null,"title":"genericBottomConstructor","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Generic","Rep","Bounded"],"GenericBottom"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep","Bounded"],"GenericBottom"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"Constructor"]},{"annotation":[],"tag":"TypeVar","contents":"name"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[29,1],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Bounded.purs","end":[30,46]}}],"comments":null,"title":"GenericBottom","info":{"fundeps":[],"arguments":[["a",null]],"declType":"typeClass","superclasses":[]},"sourceSpan":{"start":[14,1],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Bounded.purs","end":[15,22]}},{"children":[],"comments":"A `Generic` implementation of the `bottom` member from the `Bounded` type class.\n","title":"genericBottom","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["rep",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Generic","Rep"],"Generic"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"},{"annotation":[],"tag":"TypeVar","contents":"rep"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Generic","Rep","Bounded"],"GenericBottom"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"rep"}],"constraintData":null},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},null]},null]}},"sourceSpan":{"start":[51,1],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Bounded.purs","end":[51,71]}},{"children":[{"comments":null,"title":"genericTop'","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeVar","contents":"a"}},"sourceSpan":{"start":[33,3],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Bounded.purs","end":[33,19]}},{"comments":null,"title":"genericTopNoArguments","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep","Bounded"],"GenericTop"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"NoArguments"]}]}},"sourceSpan":{"start":[35,1],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Bounded.purs","end":[36,28]}},{"comments":null,"title":"genericTopArgument","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Bounded"],"Bounded"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep","Bounded"],"GenericTop"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"Argument"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[38,1],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Bounded.purs","end":[39,29]}},{"comments":null,"title":"genericTopSum","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Generic","Rep","Bounded"],"GenericTop"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"b"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep","Bounded"],"GenericTop"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"Sum"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}},"sourceSpan":{"start":[41,1],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Bounded.purs","end":[42,32]}},{"comments":null,"title":"genericTopProduct","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Generic","Rep","Bounded"],"GenericTop"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","Generic","Rep","Bounded"],"GenericTop"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"b"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep","Bounded"],"GenericTop"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"Product"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}},"sourceSpan":{"start":[44,1],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Bounded.purs","end":[45,48]}},{"comments":null,"title":"genericTopConstructor","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Generic","Rep","Bounded"],"GenericTop"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep","Bounded"],"GenericTop"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"Constructor"]},{"annotation":[],"tag":"TypeVar","contents":"name"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[47,1],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Bounded.purs","end":[48,40]}}],"comments":null,"title":"GenericTop","info":{"fundeps":[],"arguments":[["a",null]],"declType":"typeClass","superclasses":[]},"sourceSpan":{"start":[32,1],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Bounded.purs","end":[33,19]}},{"children":[],"comments":"A `Generic` implementation of the `top` member from the `Bounded` type class.\n","title":"genericTop","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["rep",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Generic","Rep"],"Generic"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"},{"annotation":[],"tag":"TypeVar","contents":"rep"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Generic","Rep","Bounded"],"GenericTop"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"rep"}],"constraintData":null},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},null]},null]}},"sourceSpan":{"start":[55,1],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Bounded.purs","end":[55,65]}}]}
diff --git a/tests/purs/publish/basic-example/output/Data.Generic.Rep.Bounded/externs.json b/tests/purs/publish/basic-example/output/Data.Generic.Rep.Bounded/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.Generic.Rep.Bounded/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Data","Generic","Rep","Bounded"],"efExports":[{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Bounded.purs","end":[56,28]},"GenericBottom"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Bounded.purs","end":[56,28]},{"Ident":"genericBottom'"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Bounded.purs","end":[56,28]},{"Ident":"genericBottom"}]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Bounded.purs","end":[56,28]},"GenericTop"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Bounded.purs","end":[56,28]},{"Ident":"genericTop'"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Bounded.purs","end":[56,28]},{"Ident":"genericTop"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"genericBottomNoArguments"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"genericBottomArgument"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"genericBottomSum"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"genericBottomProduct"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"genericBottomConstructor"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"genericTopNoArguments"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"genericTopArgument"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"genericTopSum"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"genericTopProduct"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"genericTopConstructor"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Data","Generic","Rep"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Data","Bounded"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[12,22],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Bounded.purs","end":[12,35]},"Bounded"]},{"ValueRef":[{"start":[12,37],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Bounded.purs","end":[12,43]},{"Ident":"bottom"}]},{"ValueRef":[{"start":[12,45],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Bounded.purs","end":[12,48]},{"Ident":"top"}]}]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDType":{"edTypeName":"GenericBottom","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"GenericBottom","edTypeSynonymArguments":[["a",null]],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["genericBottom'",{"annotation":[{"start":[15,21],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Bounded.purs","end":[15,22]},[]],"tag":"TypeVar","contents":"a"},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]}}},{"EDClass":{"edClassName":"GenericBottom","edClassTypeArguments":[["a",null]],"edClassMembers":[[{"Ident":"genericBottom'"},{"annotation":[{"start":[15,21],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Bounded.purs","end":[15,22]},[]],"tag":"TypeVar","contents":"a"}]],"edClassConstraints":[],"edFunctionalDependencies":[]}},{"EDValue":{"edValueName":{"Ident":"genericBottom'"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["Data","Generic","Rep","Bounded"],"GenericBottom"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[15,21],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Bounded.purs","end":[15,22]},[]],"tag":"TypeVar","contents":"a"}]},21]}}},{"EDValue":{"edValueName":{"Ident":"genericBottom"},"edValueType":{"annotation":[{"start":[51,18],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Bounded.purs","end":[51,71]},[]],"tag":"ForAll","contents":["rep",{"annotation":[{"start":[51,25],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Bounded.purs","end":[51,71]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[51,32],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Bounded.purs","end":[51,71]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[51,32],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Bounded.purs","end":[51,45]},[]],"constraintClass":[["Data","Generic","Rep"],"Generic"],"constraintArgs":[{"annotation":[{"start":[51,40],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Bounded.purs","end":[51,41]},[]],"tag":"TypeVar","contents":"a"},{"annotation":[{"start":[51,42],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Bounded.purs","end":[51,45]},[]],"tag":"TypeVar","contents":"rep"}],"constraintData":null},{"annotation":[{"start":[51,49],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Bounded.purs","end":[51,71]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[51,49],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Bounded.purs","end":[51,66]},[]],"constraintClass":[["Data","Generic","Rep","Bounded"],"GenericBottom"],"constraintArgs":[{"annotation":[{"start":[51,63],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Bounded.purs","end":[51,66]},[]],"tag":"TypeVar","contents":"rep"}],"constraintData":null},{"annotation":[{"start":[51,70],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Bounded.purs","end":[51,71]},[]],"tag":"TypeVar","contents":"a"}]}]},34]},35]}}},{"EDType":{"edTypeName":"GenericTop","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"GenericTop","edTypeSynonymArguments":[["a",null]],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["genericTop'",{"annotation":[{"start":[33,18],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Bounded.purs","end":[33,19]},[]],"tag":"TypeVar","contents":"a"},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]}}},{"EDClass":{"edClassName":"GenericTop","edClassTypeArguments":[["a",null]],"edClassMembers":[[{"Ident":"genericTop'"},{"annotation":[{"start":[33,18],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Bounded.purs","end":[33,19]},[]],"tag":"TypeVar","contents":"a"}]],"edClassConstraints":[],"edFunctionalDependencies":[]}},{"EDValue":{"edValueName":{"Ident":"genericTop'"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["Data","Generic","Rep","Bounded"],"GenericTop"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[33,18],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Bounded.purs","end":[33,19]},[]],"tag":"TypeVar","contents":"a"}]},2]}}},{"EDValue":{"edValueName":{"Ident":"genericTop"},"edValueType":{"annotation":[{"start":[55,15],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Bounded.purs","end":[55,65]},[]],"tag":"ForAll","contents":["rep",{"annotation":[{"start":[55,22],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Bounded.purs","end":[55,65]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[55,29],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Bounded.purs","end":[55,65]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[55,29],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Bounded.purs","end":[55,42]},[]],"constraintClass":[["Data","Generic","Rep"],"Generic"],"constraintArgs":[{"annotation":[{"start":[55,37],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Bounded.purs","end":[55,38]},[]],"tag":"TypeVar","contents":"a"},{"annotation":[{"start":[55,39],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Bounded.purs","end":[55,42]},[]],"tag":"TypeVar","contents":"rep"}],"constraintData":null},{"annotation":[{"start":[55,46],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Bounded.purs","end":[55,65]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[55,46],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Bounded.purs","end":[55,60]},[]],"constraintClass":[["Data","Generic","Rep","Bounded"],"GenericTop"],"constraintArgs":[{"annotation":[{"start":[55,57],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Bounded.purs","end":[55,60]},[]],"tag":"TypeVar","contents":"rep"}],"constraintData":null},{"annotation":[{"start":[55,64],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Bounded.purs","end":[55,65]},[]],"tag":"TypeVar","contents":"a"}]}]},15]},16]}}},{"EDInstance":{"edInstanceClassName":[["Data","Generic","Rep","Bounded"],"GenericBottom"],"edInstanceName":{"Ident":"genericBottomNoArguments"},"edInstanceTypes":[{"annotation":[{"start":[17,52],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Bounded.purs","end":[17,63]},[]],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"NoArguments"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Generic","Rep","Bounded"],{"Ident":"genericBottomNoArguments"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Generic","Rep","Bounded"],"GenericBottom"],"edInstanceName":{"Ident":"genericBottomArgument"},"edInstanceTypes":[{"annotation":[{"start":[20,63],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Bounded.purs","end":[20,73]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[20,63],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Bounded.purs","end":[20,71]},[]],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"Argument"]},{"annotation":[{"start":[20,72],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Bounded.purs","end":[20,73]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[20,35],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Bounded.purs","end":[20,44]},[]],"constraintClass":[["Data","Bounded"],"Bounded"],"constraintArgs":[{"annotation":[{"start":[20,43],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Bounded.purs","end":[20,44]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","Generic","Rep","Bounded"],{"Ident":"genericBottomArgument"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Generic","Rep","Bounded"],"GenericBottom"],"edInstanceName":{"Ident":"genericBottomSum"},"edInstanceTypes":[{"annotation":[{"start":[23,64],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Bounded.purs","end":[23,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[23,64],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Bounded.purs","end":[23,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[23,64],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Bounded.purs","end":[23,67]},[]],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"Sum"]},{"annotation":[{"start":[23,68],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Bounded.purs","end":[23,69]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[23,70],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Bounded.purs","end":[23,71]},[]],"tag":"TypeVar","contents":"b"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[23,30],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Bounded.purs","end":[23,45]},[]],"constraintClass":[["Data","Generic","Rep","Bounded"],"GenericBottom"],"constraintArgs":[{"annotation":[{"start":[23,44],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Bounded.purs","end":[23,45]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","Generic","Rep","Bounded"],{"Ident":"genericBottomSum"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Generic","Rep","Bounded"],"GenericBottom"],"edInstanceName":{"Ident":"genericBottomProduct"},"edInstanceTypes":[{"annotation":[{"start":[26,87],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Bounded.purs","end":[26,98]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[26,87],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Bounded.purs","end":[26,96]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[26,87],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Bounded.purs","end":[26,94]},[]],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"Product"]},{"annotation":[{"start":[26,95],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Bounded.purs","end":[26,96]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[26,97],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Bounded.purs","end":[26,98]},[]],"tag":"TypeVar","contents":"b"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[26,35],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Bounded.purs","end":[26,50]},[]],"constraintClass":[["Data","Generic","Rep","Bounded"],"GenericBottom"],"constraintArgs":[{"annotation":[{"start":[26,49],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Bounded.purs","end":[26,50]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"constraintAnn":[{"start":[26,52],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Bounded.purs","end":[26,67]},[]],"constraintClass":[["Data","Generic","Rep","Bounded"],"GenericBottom"],"constraintArgs":[{"annotation":[{"start":[26,66],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Bounded.purs","end":[26,67]},[]],"tag":"TypeVar","contents":"b"}],"constraintData":null}],"edInstanceChain":[[["Data","Generic","Rep","Bounded"],{"Ident":"genericBottomProduct"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Generic","Rep","Bounded"],"GenericBottom"],"edInstanceName":{"Ident":"genericBottomConstructor"},"edInstanceTypes":[{"annotation":[{"start":[29,72],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Bounded.purs","end":[29,90]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[29,72],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Bounded.purs","end":[29,88]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[29,72],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Bounded.purs","end":[29,83]},[]],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"Constructor"]},{"annotation":[{"start":[29,84],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Bounded.purs","end":[29,88]},[]],"tag":"TypeVar","contents":"name"}]},{"annotation":[{"start":[29,89],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Bounded.purs","end":[29,90]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[29,38],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Bounded.purs","end":[29,53]},[]],"constraintClass":[["Data","Generic","Rep","Bounded"],"GenericBottom"],"constraintArgs":[{"annotation":[{"start":[29,52],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Bounded.purs","end":[29,53]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","Generic","Rep","Bounded"],{"Ident":"genericBottomConstructor"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Generic","Rep","Bounded"],"GenericTop"],"edInstanceName":{"Ident":"genericTopNoArguments"},"edInstanceTypes":[{"annotation":[{"start":[35,46],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Bounded.purs","end":[35,57]},[]],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"NoArguments"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Generic","Rep","Bounded"],{"Ident":"genericTopNoArguments"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Generic","Rep","Bounded"],"GenericTop"],"edInstanceName":{"Ident":"genericTopArgument"},"edInstanceTypes":[{"annotation":[{"start":[38,57],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Bounded.purs","end":[38,67]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[38,57],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Bounded.purs","end":[38,65]},[]],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"Argument"]},{"annotation":[{"start":[38,66],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Bounded.purs","end":[38,67]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[38,32],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Bounded.purs","end":[38,41]},[]],"constraintClass":[["Data","Bounded"],"Bounded"],"constraintArgs":[{"annotation":[{"start":[38,40],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Bounded.purs","end":[38,41]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","Generic","Rep","Bounded"],{"Ident":"genericTopArgument"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Generic","Rep","Bounded"],"GenericTop"],"edInstanceName":{"Ident":"genericTopSum"},"edInstanceTypes":[{"annotation":[{"start":[41,55],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Bounded.purs","end":[41,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[41,55],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Bounded.purs","end":[41,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[41,55],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Bounded.purs","end":[41,58]},[]],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"Sum"]},{"annotation":[{"start":[41,59],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Bounded.purs","end":[41,60]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[41,61],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Bounded.purs","end":[41,62]},[]],"tag":"TypeVar","contents":"b"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[41,27],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Bounded.purs","end":[41,39]},[]],"constraintClass":[["Data","Generic","Rep","Bounded"],"GenericTop"],"constraintArgs":[{"annotation":[{"start":[41,38],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Bounded.purs","end":[41,39]},[]],"tag":"TypeVar","contents":"b"}],"constraintData":null}],"edInstanceChain":[[["Data","Generic","Rep","Bounded"],{"Ident":"genericTopSum"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Generic","Rep","Bounded"],"GenericTop"],"edInstanceName":{"Ident":"genericTopProduct"},"edInstanceTypes":[{"annotation":[{"start":[44,75],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Bounded.purs","end":[44,86]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[44,75],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Bounded.purs","end":[44,84]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[44,75],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Bounded.purs","end":[44,82]},[]],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"Product"]},{"annotation":[{"start":[44,83],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Bounded.purs","end":[44,84]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[44,85],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Bounded.purs","end":[44,86]},[]],"tag":"TypeVar","contents":"b"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[44,32],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Bounded.purs","end":[44,44]},[]],"constraintClass":[["Data","Generic","Rep","Bounded"],"GenericTop"],"constraintArgs":[{"annotation":[{"start":[44,43],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Bounded.purs","end":[44,44]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"constraintAnn":[{"start":[44,46],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Bounded.purs","end":[44,58]},[]],"constraintClass":[["Data","Generic","Rep","Bounded"],"GenericTop"],"constraintArgs":[{"annotation":[{"start":[44,57],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Bounded.purs","end":[44,58]},[]],"tag":"TypeVar","contents":"b"}],"constraintData":null}],"edInstanceChain":[[["Data","Generic","Rep","Bounded"],{"Ident":"genericTopProduct"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Generic","Rep","Bounded"],"GenericTop"],"edInstanceName":{"Ident":"genericTopConstructor"},"edInstanceTypes":[{"annotation":[{"start":[47,63],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Bounded.purs","end":[47,81]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[47,63],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Bounded.purs","end":[47,79]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[47,63],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Bounded.purs","end":[47,74]},[]],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"Constructor"]},{"annotation":[{"start":[47,75],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Bounded.purs","end":[47,79]},[]],"tag":"TypeVar","contents":"name"}]},{"annotation":[{"start":[47,80],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Bounded.purs","end":[47,81]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[47,35],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Bounded.purs","end":[47,47]},[]],"constraintClass":[["Data","Generic","Rep","Bounded"],"GenericTop"],"constraintArgs":[{"annotation":[{"start":[47,46],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Bounded.purs","end":[47,47]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","Generic","Rep","Bounded"],{"Ident":"genericTopConstructor"}]],"edInstanceChainIndex":0}}],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Bounded.purs","end":[56,28]}}
diff --git a/tests/purs/publish/basic-example/output/Data.Generic.Rep.Enum/docs.json b/tests/purs/publish/basic-example/output/Data.Generic.Rep.Enum/docs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.Generic.Rep.Enum/docs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"reExports":[],"name":"Data.Generic.Rep.Enum","comments":null,"declarations":[{"children":[{"comments":null,"title":"genericPred'","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[12,3],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[12,31]}},{"comments":null,"title":"genericSucc'","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[13,3],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[13,31]}},{"comments":null,"title":"genericEnumNoArguments","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep","Enum"],"GenericEnum"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"NoArguments"]}]}},"sourceSpan":{"start":[15,1],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[17,27]}},{"comments":null,"title":"genericEnumArgument","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Enum"],"Enum"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep","Enum"],"GenericEnum"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"Argument"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[19,1],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[21,50]}},{"comments":null,"title":"genericEnumConstructor","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Generic","Rep","Enum"],"GenericEnum"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep","Enum"],"GenericEnum"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"Constructor"]},{"annotation":[],"tag":"TypeVar","contents":"name"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[23,1],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[25,64]}},{"comments":null,"title":"genericEnumSum","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Generic","Rep","Enum"],"GenericEnum"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","Generic","Rep","Bounded"],"GenericTop"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","Generic","Rep","Enum"],"GenericEnum"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"b"}],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","Generic","Rep","Bounded"],"GenericBottom"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"b"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep","Enum"],"GenericEnum"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"Sum"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}},"sourceSpan":{"start":[27,1],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[37,36]}},{"comments":null,"title":"genericEnumProduct","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Generic","Rep","Enum"],"GenericEnum"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","Generic","Rep","Bounded"],"GenericTop"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","Generic","Rep","Bounded"],"GenericBottom"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","Generic","Rep","Enum"],"GenericEnum"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"b"}],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","Generic","Rep","Bounded"],"GenericTop"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"b"}],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","Generic","Rep","Bounded"],"GenericBottom"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"b"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep","Enum"],"GenericEnum"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"Product"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}},"sourceSpan":{"start":[39,1],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[45,62]}}],"comments":null,"title":"GenericEnum","info":{"fundeps":[],"arguments":[["a",null]],"declType":"typeClass","superclasses":[]},"sourceSpan":{"start":[11,1],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[13,31]}},{"children":[],"comments":"A `Generic` implementation of the `pred` member from the `Enum` type class.\n","title":"genericPred","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["rep",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Generic","Rep"],"Generic"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"},{"annotation":[],"tag":"TypeVar","contents":"rep"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Generic","Rep","Enum"],"GenericEnum"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"rep"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]}]},null]},null]}},"sourceSpan":{"start":[49,1],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[49,78]}},{"children":[],"comments":"A `Generic` implementation of the `succ` member from the `Enum` type class.\n","title":"genericSucc","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["rep",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Generic","Rep"],"Generic"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"},{"annotation":[],"tag":"TypeVar","contents":"rep"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Generic","Rep","Enum"],"GenericEnum"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"rep"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]}]},null]},null]}},"sourceSpan":{"start":[53,1],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[53,78]}},{"children":[{"comments":null,"title":"genericCardinality'","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Enum"],"Cardinality"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}},"sourceSpan":{"start":[57,3],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[57,39]}},{"comments":null,"title":"genericToEnum'","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[58,3],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[58,35]}},{"comments":null,"title":"genericFromEnum'","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}},"sourceSpan":{"start":[59,3],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[59,31]}},{"comments":null,"title":"genericBoundedEnumNoArguments","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep","Enum"],"GenericBoundedEnum"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"NoArguments"]}]}},"sourceSpan":{"start":[61,1],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[64,25]}},{"comments":null,"title":"genericBoundedEnumArgument","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Enum"],"BoundedEnum"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep","Enum"],"GenericBoundedEnum"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"Argument"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[66,1],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[69,45]}},{"comments":null,"title":"genericBoundedEnumConstructor","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Generic","Rep","Enum"],"GenericBoundedEnum"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep","Enum"],"GenericBoundedEnum"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"Constructor"]},{"annotation":[],"tag":"TypeVar","contents":"name"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[71,1],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[74,56]}},{"comments":null,"title":"genericBoundedEnumSum","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Generic","Rep","Enum"],"GenericBoundedEnum"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","Generic","Rep","Enum"],"GenericBoundedEnum"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"b"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep","Enum"],"GenericBoundedEnum"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"Sum"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}},"sourceSpan":{"start":[76,1],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[89,80]}},{"comments":null,"title":"genericBoundedEnumProduct","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Generic","Rep","Enum"],"GenericBoundedEnum"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","Generic","Rep","Enum"],"GenericBoundedEnum"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"b"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep","Enum"],"GenericBoundedEnum"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"Product"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}},"sourceSpan":{"start":[92,1],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[102,93]}}],"comments":null,"title":"GenericBoundedEnum","info":{"fundeps":[],"arguments":[["a",null]],"declType":"typeClass","superclasses":[]},"sourceSpan":{"start":[56,1],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[59,31]}},{"children":[],"comments":"A `Generic` implementation of the `cardinality` member from the\n`BoundedEnum` type class.\n","title":"genericCardinality","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["rep",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Generic","Rep"],"Generic"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"},{"annotation":[],"tag":"TypeVar","contents":"rep"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Generic","Rep","Enum"],"GenericBoundedEnum"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"rep"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Enum"],"Cardinality"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]},null]},null]}},"sourceSpan":{"start":[107,1],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[107,93]}},{"children":[],"comments":"A `Generic` implementation of the `toEnum` member from the `BoundedEnum`\ntype class.\n","title":"genericToEnum","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["rep",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Generic","Rep"],"Generic"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"},{"annotation":[],"tag":"TypeVar","contents":"rep"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Generic","Rep","Enum"],"GenericBoundedEnum"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"rep"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]}]},null]},null]}},"sourceSpan":{"start":[112,1],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[112,89]}},{"children":[],"comments":"A `Generic` implementation of the `fromEnum` member from the `BoundedEnum`\ntype class.\n","title":"genericFromEnum","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["rep",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Generic","Rep"],"Generic"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"},{"annotation":[],"tag":"TypeVar","contents":"rep"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Generic","Rep","Enum"],"GenericBoundedEnum"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"rep"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]}]},null]},null]}},"sourceSpan":{"start":[117,1],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[117,85]}}]}
diff --git a/tests/purs/publish/basic-example/output/Data.Generic.Rep.Enum/externs.json b/tests/purs/publish/basic-example/output/Data.Generic.Rep.Enum/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.Generic.Rep.Enum/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Data","Generic","Rep","Enum"],"efExports":[{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[118,44]},{"Ident":"genericCardinality'"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[118,44]},{"Ident":"genericFromEnum'"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[118,44]},{"Ident":"genericPred'"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[118,44]},{"Ident":"genericSucc'"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[118,44]},{"Ident":"genericToEnum'"}]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[118,44]},"GenericEnum"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[118,44]},{"Ident":"genericPred"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[118,44]},{"Ident":"genericSucc"}]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[118,44]},"GenericBoundedEnum"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[118,44]},{"Ident":"genericCardinality"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[118,44]},{"Ident":"genericToEnum"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[118,44]},{"Ident":"genericFromEnum"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"genericEnumNoArguments"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"genericEnumArgument"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"genericEnumConstructor"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"genericEnumSum"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"genericEnumProduct"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"genericBoundedEnumNoArguments"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"genericBoundedEnumArgument"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"genericBoundedEnumConstructor"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"genericBoundedEnumSum"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"genericBoundedEnumProduct"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Prelude"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Data","Enum"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[5,19],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[5,36]},"BoundedEnum"]},{"TypeClassRef":[{"start":[5,38],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[5,48]},"Enum"]},{"TypeRef":[{"start":[5,50],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[5,65]},"Cardinality",null]},{"ValueRef":[{"start":[5,67],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[5,78]},{"Ident":"cardinality"}]},{"ValueRef":[{"start":[5,80],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[5,88]},{"Ident":"fromEnum"}]},{"ValueRef":[{"start":[5,90],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[5,94]},{"Ident":"pred"}]},{"ValueRef":[{"start":[5,96],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[5,100]},{"Ident":"succ"}]},{"ValueRef":[{"start":[5,102],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[5,108]},{"Ident":"toEnum"}]}]},"eiImportedAs":null},{"eiModule":["Data","Generic","Rep"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[6,26],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[6,39]},"Generic"]},{"TypeRef":[{"start":[6,41],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[6,53]},"Argument",null]},{"TypeRef":[{"start":[6,55],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[6,70]},"Constructor",null]},{"TypeRef":[{"start":[6,72],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[6,87]},"NoArguments",null]},{"TypeRef":[{"start":[6,89],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[6,100]},"Product",null]},{"TypeRef":[{"start":[6,102],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[6,109]},"Sum",null]},{"ValueRef":[{"start":[6,111],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[6,115]},{"Ident":"from"}]},{"ValueRef":[{"start":[6,117],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[6,119]},{"Ident":"to"}]}]},"eiImportedAs":null},{"eiModule":["Data","Generic","Rep","Bounded"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[7,34],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[7,53]},"GenericBottom"]},{"TypeClassRef":[{"start":[7,55],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[7,71]},"GenericTop"]},{"ValueRef":[{"start":[7,73],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[7,87]},{"Ident":"genericBottom'"}]},{"ValueRef":[{"start":[7,89],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[7,100]},{"Ident":"genericTop'"}]}]},"eiImportedAs":null},{"eiModule":["Data","Maybe"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[8,20],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[8,29]},"Maybe",null]}]},"eiImportedAs":null},{"eiModule":["Data","Newtype"],"eiImportType":{"Explicit":[{"ValueRef":[{"start":[9,22],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[9,28]},{"Ident":"unwrap"}]}]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDValue":{"edValueName":{"Ident":"genericCardinality'"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["Data","Generic","Rep","Enum"],"GenericBoundedEnum"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[57,26],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[57,39]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[57,26],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[57,37]},[]],"tag":"TypeConstructor","contents":[["Data","Enum"],"Cardinality"]},{"annotation":[{"start":[57,38],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[57,39]},[]],"tag":"TypeVar","contents":"a"}]}]},52]}}},{"EDValue":{"edValueName":{"Ident":"genericFromEnum'"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["Data","Generic","Rep","Enum"],"GenericBoundedEnum"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[59,23],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[59,31]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[59,23],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[59,31]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[59,25],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[59,27]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[59,23],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[59,24]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[59,28],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[59,31]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]},15]}}},{"EDValue":{"edValueName":{"Ident":"genericPred'"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["Data","Generic","Rep","Enum"],"GenericEnum"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[12,19],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[12,31]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[12,19],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[12,31]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[12,21],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[12,23]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[12,19],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[12,20]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[12,24],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[12,31]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[12,24],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[12,29]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[12,30],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[12,31]},[]],"tag":"TypeVar","contents":"a"}]}]}]},10]}}},{"EDValue":{"edValueName":{"Ident":"genericSucc'"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["Data","Generic","Rep","Enum"],"GenericEnum"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[13,19],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[13,31]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[13,19],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[13,31]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[13,21],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[13,23]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[13,19],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[13,20]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[13,24],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[13,31]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[13,24],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[13,29]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[13,30],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[13,31]},[]],"tag":"TypeVar","contents":"a"}]}]}]},5]}}},{"EDValue":{"edValueName":{"Ident":"genericToEnum'"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["Data","Generic","Rep","Enum"],"GenericBoundedEnum"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[58,21],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[58,35]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[58,21],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[58,35]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[58,25],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[58,27]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[58,21],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[58,24]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[58,28],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[58,35]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[58,28],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[58,33]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[58,34],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[58,35]},[]],"tag":"TypeVar","contents":"a"}]}]}]},0]}}},{"EDType":{"edTypeName":"GenericEnum","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[12,21],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[12,23]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"GenericEnum","edTypeSynonymArguments":[["a",null]],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["genericPred'",{"annotation":[{"start":[12,19],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[12,31]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[12,19],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[12,31]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[12,21],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[12,23]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[12,19],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[12,20]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[12,24],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[12,31]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[12,24],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[12,29]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[12,30],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[12,31]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["genericSucc'",{"annotation":[{"start":[13,19],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[13,31]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[13,19],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[13,31]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[13,21],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[13,23]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[13,19],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[13,20]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[13,24],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[13,31]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[13,24],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[13,29]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[13,30],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[13,31]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]}]}}},{"EDClass":{"edClassName":"GenericEnum","edClassTypeArguments":[["a",null]],"edClassMembers":[[{"Ident":"genericPred'"},{"annotation":[{"start":[12,19],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[12,31]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[12,19],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[12,31]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[12,21],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[12,23]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[12,19],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[12,20]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[12,24],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[12,31]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[12,24],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[12,29]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[12,30],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[12,31]},[]],"tag":"TypeVar","contents":"a"}]}]}],[{"Ident":"genericSucc'"},{"annotation":[{"start":[13,19],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[13,31]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[13,19],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[13,31]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[13,21],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[13,23]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[13,19],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[13,20]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[13,24],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[13,31]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[13,24],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[13,29]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[13,30],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[13,31]},[]],"tag":"TypeVar","contents":"a"}]}]}]],"edClassConstraints":[],"edFunctionalDependencies":[]}},{"EDValue":{"edValueName":{"Ident":"genericPred"},"edValueType":{"annotation":[{"start":[49,16],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[49,78]},[]],"tag":"ForAll","contents":["rep",{"annotation":[{"start":[49,23],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[49,78]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[49,30],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[49,78]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[49,30],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[49,43]},[]],"constraintClass":[["Data","Generic","Rep"],"Generic"],"constraintArgs":[{"annotation":[{"start":[49,38],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[49,39]},[]],"tag":"TypeVar","contents":"a"},{"annotation":[{"start":[49,40],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[49,43]},[]],"tag":"TypeVar","contents":"rep"}],"constraintData":null},{"annotation":[{"start":[49,47],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[49,78]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[49,47],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[49,62]},[]],"constraintClass":[["Data","Generic","Rep","Enum"],"GenericEnum"],"constraintArgs":[{"annotation":[{"start":[49,59],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[49,62]},[]],"tag":"TypeVar","contents":"rep"}],"constraintData":null},{"annotation":[{"start":[49,66],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[49,78]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,66],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[49,78]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,68],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[49,70]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[49,66],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[49,67]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[49,71],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[49,78]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,71],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[49,76]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[49,77],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[49,78]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]},11]},12]}}},{"EDValue":{"edValueName":{"Ident":"genericSucc"},"edValueType":{"annotation":[{"start":[53,16],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[53,78]},[]],"tag":"ForAll","contents":["rep",{"annotation":[{"start":[53,23],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[53,78]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[53,30],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[53,78]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[53,30],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[53,43]},[]],"constraintClass":[["Data","Generic","Rep"],"Generic"],"constraintArgs":[{"annotation":[{"start":[53,38],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[53,39]},[]],"tag":"TypeVar","contents":"a"},{"annotation":[{"start":[53,40],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[53,43]},[]],"tag":"TypeVar","contents":"rep"}],"constraintData":null},{"annotation":[{"start":[53,47],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[53,78]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[53,47],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[53,62]},[]],"constraintClass":[["Data","Generic","Rep","Enum"],"GenericEnum"],"constraintArgs":[{"annotation":[{"start":[53,59],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[53,62]},[]],"tag":"TypeVar","contents":"rep"}],"constraintData":null},{"annotation":[{"start":[53,66],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[53,78]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,66],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[53,78]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,68],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[53,70]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[53,66],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[53,67]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[53,71],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[53,78]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,71],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[53,76]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[53,77],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[53,78]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]},6]},7]}}},{"EDType":{"edTypeName":"GenericBoundedEnum","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[57,26],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[57,37]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"GenericBoundedEnum","edTypeSynonymArguments":[["a",null]],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["genericCardinality'",{"annotation":[{"start":[57,26],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[57,39]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[57,26],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[57,37]},[]],"tag":"TypeConstructor","contents":[["Data","Enum"],"Cardinality"]},{"annotation":[{"start":[57,38],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[57,39]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["genericToEnum'",{"annotation":[{"start":[58,21],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[58,35]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[58,21],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[58,35]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[58,25],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[58,27]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[58,21],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[58,24]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[58,28],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[58,35]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[58,28],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[58,33]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[58,34],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[58,35]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["genericFromEnum'",{"annotation":[{"start":[59,23],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[59,31]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[59,23],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[59,31]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[59,25],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[59,27]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[59,23],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[59,24]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[59,28],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[59,31]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]}]}]}}},{"EDClass":{"edClassName":"GenericBoundedEnum","edClassTypeArguments":[["a",null]],"edClassMembers":[[{"Ident":"genericCardinality'"},{"annotation":[{"start":[57,26],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[57,39]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[57,26],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[57,37]},[]],"tag":"TypeConstructor","contents":[["Data","Enum"],"Cardinality"]},{"annotation":[{"start":[57,38],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[57,39]},[]],"tag":"TypeVar","contents":"a"}]}],[{"Ident":"genericToEnum'"},{"annotation":[{"start":[58,21],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[58,35]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[58,21],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[58,35]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[58,25],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[58,27]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[58,21],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[58,24]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[58,28],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[58,35]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[58,28],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[58,33]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[58,34],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[58,35]},[]],"tag":"TypeVar","contents":"a"}]}]}],[{"Ident":"genericFromEnum'"},{"annotation":[{"start":[59,23],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[59,31]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[59,23],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[59,31]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[59,25],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[59,27]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[59,23],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[59,24]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[59,28],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[59,31]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]],"edClassConstraints":[],"edFunctionalDependencies":[]}},{"EDValue":{"edValueName":{"Ident":"genericCardinality"},"edValueType":{"annotation":[{"start":[107,23],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[107,93]},[]],"tag":"ForAll","contents":["rep",{"annotation":[{"start":[107,30],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[107,93]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[107,37],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[107,93]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[107,37],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[107,50]},[]],"constraintClass":[["Data","Generic","Rep"],"Generic"],"constraintArgs":[{"annotation":[{"start":[107,45],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[107,46]},[]],"tag":"TypeVar","contents":"a"},{"annotation":[{"start":[107,47],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[107,50]},[]],"tag":"TypeVar","contents":"rep"}],"constraintData":null},{"annotation":[{"start":[107,54],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[107,93]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[107,54],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[107,76]},[]],"constraintClass":[["Data","Generic","Rep","Enum"],"GenericBoundedEnum"],"constraintArgs":[{"annotation":[{"start":[107,73],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[107,76]},[]],"tag":"TypeVar","contents":"rep"}],"constraintData":null},{"annotation":[{"start":[107,80],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[107,93]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[107,80],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[107,91]},[]],"tag":"TypeConstructor","contents":[["Data","Enum"],"Cardinality"]},{"annotation":[{"start":[107,92],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[107,93]},[]],"tag":"TypeVar","contents":"a"}]}]}]},53]},54]}}},{"EDValue":{"edValueName":{"Ident":"genericToEnum"},"edValueType":{"annotation":[{"start":[112,18],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[112,89]},[]],"tag":"ForAll","contents":["rep",{"annotation":[{"start":[112,25],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[112,89]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[112,32],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[112,89]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[112,32],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[112,45]},[]],"constraintClass":[["Data","Generic","Rep"],"Generic"],"constraintArgs":[{"annotation":[{"start":[112,40],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[112,41]},[]],"tag":"TypeVar","contents":"a"},{"annotation":[{"start":[112,42],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[112,45]},[]],"tag":"TypeVar","contents":"rep"}],"constraintData":null},{"annotation":[{"start":[112,49],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[112,89]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[112,49],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[112,71]},[]],"constraintClass":[["Data","Generic","Rep","Enum"],"GenericBoundedEnum"],"constraintArgs":[{"annotation":[{"start":[112,68],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[112,71]},[]],"tag":"TypeVar","contents":"rep"}],"constraintData":null},{"annotation":[{"start":[112,75],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[112,89]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[112,75],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[112,89]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[112,79],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[112,81]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[112,75],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[112,78]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[112,82],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[112,89]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[112,82],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[112,87]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[112,88],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[112,89]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]},1]},2]}}},{"EDValue":{"edValueName":{"Ident":"genericFromEnum"},"edValueType":{"annotation":[{"start":[117,20],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[117,85]},[]],"tag":"ForAll","contents":["rep",{"annotation":[{"start":[117,27],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[117,85]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[117,34],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[117,85]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[117,34],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[117,47]},[]],"constraintClass":[["Data","Generic","Rep"],"Generic"],"constraintArgs":[{"annotation":[{"start":[117,42],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[117,43]},[]],"tag":"TypeVar","contents":"a"},{"annotation":[{"start":[117,44],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[117,47]},[]],"tag":"TypeVar","contents":"rep"}],"constraintData":null},{"annotation":[{"start":[117,51],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[117,85]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[117,51],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[117,73]},[]],"constraintClass":[["Data","Generic","Rep","Enum"],"GenericBoundedEnum"],"constraintArgs":[{"annotation":[{"start":[117,70],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[117,73]},[]],"tag":"TypeVar","contents":"rep"}],"constraintData":null},{"annotation":[{"start":[117,77],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[117,85]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[117,77],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[117,85]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[117,79],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[117,81]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[117,77],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[117,78]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[117,82],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[117,85]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]}]},16]},17]}}},{"EDInstance":{"edInstanceClassName":[["Data","Generic","Rep","Enum"],"GenericEnum"],"edInstanceName":{"Ident":"genericEnumNoArguments"},"edInstanceTypes":[{"annotation":[{"start":[15,48],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[15,59]},[]],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"NoArguments"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Generic","Rep","Enum"],{"Ident":"genericEnumNoArguments"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Generic","Rep","Enum"],"GenericEnum"],"edInstanceName":{"Ident":"genericEnumArgument"},"edInstanceTypes":[{"annotation":[{"start":[19,56],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[19,66]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[19,56],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[19,64]},[]],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"Argument"]},{"annotation":[{"start":[19,65],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[19,66]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[19,33],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[19,39]},[]],"constraintClass":[["Data","Enum"],"Enum"],"constraintArgs":[{"annotation":[{"start":[19,38],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[19,39]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","Generic","Rep","Enum"],{"Ident":"genericEnumArgument"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Generic","Rep","Enum"],"GenericEnum"],"edInstanceName":{"Ident":"genericEnumConstructor"},"edInstanceTypes":[{"annotation":[{"start":[23,66],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[23,84]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[23,66],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[23,82]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[23,66],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[23,77]},[]],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"Constructor"]},{"annotation":[{"start":[23,78],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[23,82]},[]],"tag":"TypeVar","contents":"name"}]},{"annotation":[{"start":[23,83],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[23,84]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[23,36],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[23,49]},[]],"constraintClass":[["Data","Generic","Rep","Enum"],"GenericEnum"],"constraintArgs":[{"annotation":[{"start":[23,48],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[23,49]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","Generic","Rep","Enum"],{"Ident":"genericEnumConstructor"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Generic","Rep","Enum"],"GenericEnum"],"edInstanceName":{"Ident":"genericEnumSum"},"edInstanceTypes":[{"annotation":[{"start":[27,106],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[27,113]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[27,106],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[27,111]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[27,106],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[27,109]},[]],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"Sum"]},{"annotation":[{"start":[27,110],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[27,111]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[27,112],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[27,113]},[]],"tag":"TypeVar","contents":"b"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[27,29],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[27,42]},[]],"constraintClass":[["Data","Generic","Rep","Enum"],"GenericEnum"],"constraintArgs":[{"annotation":[{"start":[27,41],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[27,42]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"constraintAnn":[{"start":[27,44],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[27,56]},[]],"constraintClass":[["Data","Generic","Rep","Bounded"],"GenericTop"],"constraintArgs":[{"annotation":[{"start":[27,55],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[27,56]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"constraintAnn":[{"start":[27,58],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[27,71]},[]],"constraintClass":[["Data","Generic","Rep","Enum"],"GenericEnum"],"constraintArgs":[{"annotation":[{"start":[27,70],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[27,71]},[]],"tag":"TypeVar","contents":"b"}],"constraintData":null},{"constraintAnn":[{"start":[27,73],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[27,88]},[]],"constraintClass":[["Data","Generic","Rep","Bounded"],"GenericBottom"],"constraintArgs":[{"annotation":[{"start":[27,87],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[27,88]},[]],"tag":"TypeVar","contents":"b"}],"constraintData":null}],"edInstanceChain":[[["Data","Generic","Rep","Enum"],{"Ident":"genericEnumSum"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Generic","Rep","Enum"],"GenericEnum"],"edInstanceName":{"Ident":"genericEnumProduct"},"edInstanceTypes":[{"annotation":[{"start":[39,141],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[39,152]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[39,141],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[39,150]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[39,141],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[39,148]},[]],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"Product"]},{"annotation":[{"start":[39,149],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[39,150]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[39,151],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[39,152]},[]],"tag":"TypeVar","contents":"b"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[39,33],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[39,46]},[]],"constraintClass":[["Data","Generic","Rep","Enum"],"GenericEnum"],"constraintArgs":[{"annotation":[{"start":[39,45],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[39,46]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"constraintAnn":[{"start":[39,48],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[39,60]},[]],"constraintClass":[["Data","Generic","Rep","Bounded"],"GenericTop"],"constraintArgs":[{"annotation":[{"start":[39,59],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[39,60]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"constraintAnn":[{"start":[39,62],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[39,77]},[]],"constraintClass":[["Data","Generic","Rep","Bounded"],"GenericBottom"],"constraintArgs":[{"annotation":[{"start":[39,76],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[39,77]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"constraintAnn":[{"start":[39,79],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[39,92]},[]],"constraintClass":[["Data","Generic","Rep","Enum"],"GenericEnum"],"constraintArgs":[{"annotation":[{"start":[39,91],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[39,92]},[]],"tag":"TypeVar","contents":"b"}],"constraintData":null},{"constraintAnn":[{"start":[39,94],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[39,106]},[]],"constraintClass":[["Data","Generic","Rep","Bounded"],"GenericTop"],"constraintArgs":[{"annotation":[{"start":[39,105],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[39,106]},[]],"tag":"TypeVar","contents":"b"}],"constraintData":null},{"constraintAnn":[{"start":[39,108],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[39,123]},[]],"constraintClass":[["Data","Generic","Rep","Bounded"],"GenericBottom"],"constraintArgs":[{"annotation":[{"start":[39,122],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[39,123]},[]],"tag":"TypeVar","contents":"b"}],"constraintData":null}],"edInstanceChain":[[["Data","Generic","Rep","Enum"],{"Ident":"genericEnumProduct"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Generic","Rep","Enum"],"GenericBoundedEnum"],"edInstanceName":{"Ident":"genericBoundedEnumNoArguments"},"edInstanceTypes":[{"annotation":[{"start":[61,62],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[61,73]},[]],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"NoArguments"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Generic","Rep","Enum"],{"Ident":"genericBoundedEnumNoArguments"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Generic","Rep","Enum"],"GenericBoundedEnum"],"edInstanceName":{"Ident":"genericBoundedEnumArgument"},"edInstanceTypes":[{"annotation":[{"start":[66,77],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[66,87]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[66,77],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[66,85]},[]],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"Argument"]},{"annotation":[{"start":[66,86],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[66,87]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[66,40],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[66,53]},[]],"constraintClass":[["Data","Enum"],"BoundedEnum"],"constraintArgs":[{"annotation":[{"start":[66,52],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[66,53]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","Generic","Rep","Enum"],{"Ident":"genericBoundedEnumArgument"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Generic","Rep","Enum"],"GenericBoundedEnum"],"edInstanceName":{"Ident":"genericBoundedEnumConstructor"},"edInstanceTypes":[{"annotation":[{"start":[71,87],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[71,105]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[71,87],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[71,103]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[71,87],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[71,98]},[]],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"Constructor"]},{"annotation":[{"start":[71,99],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[71,103]},[]],"tag":"TypeVar","contents":"name"}]},{"annotation":[{"start":[71,104],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[71,105]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[71,43],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[71,63]},[]],"constraintClass":[["Data","Generic","Rep","Enum"],"GenericBoundedEnum"],"constraintArgs":[{"annotation":[{"start":[71,62],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[71,63]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","Generic","Rep","Enum"],{"Ident":"genericBoundedEnumConstructor"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Generic","Rep","Enum"],"GenericBoundedEnum"],"edInstanceName":{"Ident":"genericBoundedEnumSum"},"edInstanceTypes":[{"annotation":[{"start":[76,103],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[76,110]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[76,103],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[76,108]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[76,103],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[76,106]},[]],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"Sum"]},{"annotation":[{"start":[76,107],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[76,108]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[76,109],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[76,110]},[]],"tag":"TypeVar","contents":"b"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[76,36],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[76,56]},[]],"constraintClass":[["Data","Generic","Rep","Enum"],"GenericBoundedEnum"],"constraintArgs":[{"annotation":[{"start":[76,55],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[76,56]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"constraintAnn":[{"start":[76,58],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[76,78]},[]],"constraintClass":[["Data","Generic","Rep","Enum"],"GenericBoundedEnum"],"constraintArgs":[{"annotation":[{"start":[76,77],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[76,78]},[]],"tag":"TypeVar","contents":"b"}],"constraintData":null}],"edInstanceChain":[[["Data","Generic","Rep","Enum"],{"Ident":"genericBoundedEnumSum"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Generic","Rep","Enum"],"GenericBoundedEnum"],"edInstanceName":{"Ident":"genericBoundedEnumProduct"},"edInstanceTypes":[{"annotation":[{"start":[92,107],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[92,118]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[92,107],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[92,116]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[92,107],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[92,114]},[]],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"Product"]},{"annotation":[{"start":[92,115],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[92,116]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[92,117],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[92,118]},[]],"tag":"TypeVar","contents":"b"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[92,40],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[92,60]},[]],"constraintClass":[["Data","Generic","Rep","Enum"],"GenericBoundedEnum"],"constraintArgs":[{"annotation":[{"start":[92,59],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[92,60]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"constraintAnn":[{"start":[92,62],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[92,82]},[]],"constraintClass":[["Data","Generic","Rep","Enum"],"GenericBoundedEnum"],"constraintArgs":[{"annotation":[{"start":[92,81],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[92,82]},[]],"tag":"TypeVar","contents":"b"}],"constraintData":null}],"edInstanceChain":[[["Data","Generic","Rep","Enum"],{"Ident":"genericBoundedEnumProduct"}]],"edInstanceChainIndex":0}}],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Enum.purs","end":[118,44]}}
diff --git a/tests/purs/publish/basic-example/output/Data.Generic.Rep.Eq/docs.json b/tests/purs/publish/basic-example/output/Data.Generic.Rep.Eq/docs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.Generic.Rep.Eq/docs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"reExports":[],"name":"Data.Generic.Rep.Eq","comments":null,"declarations":[{"children":[{"comments":null,"title":"genericEq'","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]}},"sourceSpan":{"start":[11,3],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Eq.purs","end":[11,34]}},{"comments":null,"title":"genericEqNoConstructors","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep","Eq"],"GenericEq"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"NoConstructors"]}]}},"sourceSpan":{"start":[13,1],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Eq.purs","end":[14,24]}},{"comments":null,"title":"genericEqNoArguments","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep","Eq"],"GenericEq"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"NoArguments"]}]}},"sourceSpan":{"start":[16,1],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Eq.purs","end":[17,24]}},{"comments":null,"title":"genericEqSum","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Generic","Rep","Eq"],"GenericEq"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","Generic","Rep","Eq"],"GenericEq"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"b"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep","Eq"],"GenericEq"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"Sum"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}},"sourceSpan":{"start":[19,1],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Eq.purs","end":[22,25]}},{"comments":null,"title":"genericEqProduct","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Generic","Rep","Eq"],"GenericEq"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","Generic","Rep","Eq"],"GenericEq"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"b"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep","Eq"],"GenericEq"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"Product"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}},"sourceSpan":{"start":[24,1],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Eq.purs","end":[25,84]}},{"comments":null,"title":"genericEqConstructor","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Generic","Rep","Eq"],"GenericEq"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep","Eq"],"GenericEq"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"Constructor"]},{"annotation":[],"tag":"TypeVar","contents":"name"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[27,1],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Eq.purs","end":[28,66]}},{"comments":null,"title":"genericEqArgument","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep","Eq"],"GenericEq"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"Argument"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[30,1],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Eq.purs","end":[31,52]}}],"comments":null,"title":"GenericEq","info":{"fundeps":[],"arguments":[["a",null]],"declType":"typeClass","superclasses":[]},"sourceSpan":{"start":[10,1],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Eq.purs","end":[11,34]}},{"children":[],"comments":"A `Generic` implementation of the `eq` member from the `Eq` type class.\n","title":"genericEq","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["rep",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Generic","Rep"],"Generic"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"},{"annotation":[],"tag":"TypeVar","contents":"rep"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Generic","Rep","Eq"],"GenericEq"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"rep"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]}]}]},null]},null]}},"sourceSpan":{"start":[34,1],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Eq.purs","end":[34,79]}}]}
diff --git a/tests/purs/publish/basic-example/output/Data.Generic.Rep.Eq/externs.json b/tests/purs/publish/basic-example/output/Data.Generic.Rep.Eq/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.Generic.Rep.Eq/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Data","Generic","Rep","Eq"],"efExports":[{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Eq.purs","end":[35,45]},"GenericEq"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Eq.purs","end":[35,45]},{"Ident":"genericEq'"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Eq.purs","end":[35,45]},{"Ident":"genericEq"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"genericEqNoConstructors"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"genericEqNoArguments"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"genericEqSum"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"genericEqProduct"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"genericEqConstructor"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"genericEqArgument"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Prelude"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[7,17],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Eq.purs","end":[7,25]},"Eq"]},{"ValueOpRef":[{"start":[7,27],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Eq.purs","end":[7,31]},"=="]},{"ValueOpRef":[{"start":[7,33],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Eq.purs","end":[7,37]},"&&"]}]},"eiImportedAs":null},{"eiModule":["Data","Generic","Rep"],"eiImportType":{"Implicit":[]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDType":{"edTypeName":"GenericEq","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[11,19],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Eq.purs","end":[11,21]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"GenericEq","edTypeSynonymArguments":[["a",null]],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["genericEq'",{"annotation":[{"start":[11,17],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Eq.purs","end":[11,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[11,17],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Eq.purs","end":[11,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[11,19],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Eq.purs","end":[11,21]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[11,17],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Eq.purs","end":[11,18]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[11,22],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Eq.purs","end":[11,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[11,22],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Eq.purs","end":[11,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[11,24],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Eq.purs","end":[11,26]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[11,22],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Eq.purs","end":[11,23]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[11,27],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Eq.purs","end":[11,34]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]}}},{"EDClass":{"edClassName":"GenericEq","edClassTypeArguments":[["a",null]],"edClassMembers":[[{"Ident":"genericEq'"},{"annotation":[{"start":[11,17],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Eq.purs","end":[11,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[11,17],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Eq.purs","end":[11,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[11,19],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Eq.purs","end":[11,21]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[11,17],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Eq.purs","end":[11,18]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[11,22],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Eq.purs","end":[11,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[11,22],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Eq.purs","end":[11,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[11,24],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Eq.purs","end":[11,26]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[11,22],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Eq.purs","end":[11,23]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[11,27],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Eq.purs","end":[11,34]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]}]],"edClassConstraints":[],"edFunctionalDependencies":[]}},{"EDValue":{"edValueName":{"Ident":"genericEq'"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["Data","Generic","Rep","Eq"],"GenericEq"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[11,17],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Eq.purs","end":[11,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[11,17],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Eq.purs","end":[11,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[11,19],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Eq.purs","end":[11,21]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[11,17],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Eq.purs","end":[11,18]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[11,22],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Eq.purs","end":[11,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[11,22],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Eq.purs","end":[11,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[11,24],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Eq.purs","end":[11,26]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[11,22],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Eq.purs","end":[11,23]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[11,27],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Eq.purs","end":[11,34]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]}]},2]}}},{"EDValue":{"edValueName":{"Ident":"genericEq"},"edValueType":{"annotation":[{"start":[34,14],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Eq.purs","end":[34,79]},[]],"tag":"ForAll","contents":["rep",{"annotation":[{"start":[34,21],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Eq.purs","end":[34,79]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[34,28],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Eq.purs","end":[34,79]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[34,28],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Eq.purs","end":[34,41]},[]],"constraintClass":[["Data","Generic","Rep"],"Generic"],"constraintArgs":[{"annotation":[{"start":[34,36],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Eq.purs","end":[34,37]},[]],"tag":"TypeVar","contents":"a"},{"annotation":[{"start":[34,38],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Eq.purs","end":[34,41]},[]],"tag":"TypeVar","contents":"rep"}],"constraintData":null},{"annotation":[{"start":[34,45],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Eq.purs","end":[34,79]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[34,45],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Eq.purs","end":[34,58]},[]],"constraintClass":[["Data","Generic","Rep","Eq"],"GenericEq"],"constraintArgs":[{"annotation":[{"start":[34,55],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Eq.purs","end":[34,58]},[]],"tag":"TypeVar","contents":"rep"}],"constraintData":null},{"annotation":[{"start":[34,62],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Eq.purs","end":[34,79]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[34,62],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Eq.purs","end":[34,79]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[34,64],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Eq.purs","end":[34,66]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[34,62],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Eq.purs","end":[34,63]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[34,67],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Eq.purs","end":[34,79]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[34,67],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Eq.purs","end":[34,79]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[34,69],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Eq.purs","end":[34,71]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[34,67],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Eq.purs","end":[34,68]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[34,72],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Eq.purs","end":[34,79]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]}]}]},15]},16]}}},{"EDInstance":{"edInstanceClassName":[["Data","Generic","Rep","Eq"],"GenericEq"],"edInstanceName":{"Ident":"genericEqNoConstructors"},"edInstanceTypes":[{"annotation":[{"start":[13,47],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Eq.purs","end":[13,61]},[]],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"NoConstructors"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Generic","Rep","Eq"],{"Ident":"genericEqNoConstructors"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Generic","Rep","Eq"],"GenericEq"],"edInstanceName":{"Ident":"genericEqNoArguments"},"edInstanceTypes":[{"annotation":[{"start":[16,44],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Eq.purs","end":[16,55]},[]],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"NoArguments"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Generic","Rep","Eq"],{"Ident":"genericEqNoArguments"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Generic","Rep","Eq"],"GenericEq"],"edInstanceName":{"Ident":"genericEqSum"},"edInstanceTypes":[{"annotation":[{"start":[19,67],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Eq.purs","end":[19,74]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[19,67],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Eq.purs","end":[19,72]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[19,67],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Eq.purs","end":[19,70]},[]],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"Sum"]},{"annotation":[{"start":[19,71],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Eq.purs","end":[19,72]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[19,73],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Eq.purs","end":[19,74]},[]],"tag":"TypeVar","contents":"b"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[19,27],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Eq.purs","end":[19,38]},[]],"constraintClass":[["Data","Generic","Rep","Eq"],"GenericEq"],"constraintArgs":[{"annotation":[{"start":[19,37],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Eq.purs","end":[19,38]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"constraintAnn":[{"start":[19,40],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Eq.purs","end":[19,51]},[]],"constraintClass":[["Data","Generic","Rep","Eq"],"GenericEq"],"constraintArgs":[{"annotation":[{"start":[19,50],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Eq.purs","end":[19,51]},[]],"tag":"TypeVar","contents":"b"}],"constraintData":null}],"edInstanceChain":[[["Data","Generic","Rep","Eq"],{"Ident":"genericEqSum"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Generic","Rep","Eq"],"GenericEq"],"edInstanceName":{"Ident":"genericEqProduct"},"edInstanceTypes":[{"annotation":[{"start":[24,71],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Eq.purs","end":[24,82]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[24,71],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Eq.purs","end":[24,80]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[24,71],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Eq.purs","end":[24,78]},[]],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"Product"]},{"annotation":[{"start":[24,79],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Eq.purs","end":[24,80]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[24,81],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Eq.purs","end":[24,82]},[]],"tag":"TypeVar","contents":"b"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[24,31],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Eq.purs","end":[24,42]},[]],"constraintClass":[["Data","Generic","Rep","Eq"],"GenericEq"],"constraintArgs":[{"annotation":[{"start":[24,41],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Eq.purs","end":[24,42]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"constraintAnn":[{"start":[24,44],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Eq.purs","end":[24,55]},[]],"constraintClass":[["Data","Generic","Rep","Eq"],"GenericEq"],"constraintArgs":[{"annotation":[{"start":[24,54],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Eq.purs","end":[24,55]},[]],"tag":"TypeVar","contents":"b"}],"constraintData":null}],"edInstanceChain":[[["Data","Generic","Rep","Eq"],{"Ident":"genericEqProduct"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Generic","Rep","Eq"],"GenericEq"],"edInstanceName":{"Ident":"genericEqConstructor"},"edInstanceTypes":[{"annotation":[{"start":[27,60],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Eq.purs","end":[27,78]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[27,60],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Eq.purs","end":[27,76]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[27,60],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Eq.purs","end":[27,71]},[]],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"Constructor"]},{"annotation":[{"start":[27,72],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Eq.purs","end":[27,76]},[]],"tag":"TypeVar","contents":"name"}]},{"annotation":[{"start":[27,77],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Eq.purs","end":[27,78]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[27,34],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Eq.purs","end":[27,45]},[]],"constraintClass":[["Data","Generic","Rep","Eq"],"GenericEq"],"constraintArgs":[{"annotation":[{"start":[27,44],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Eq.purs","end":[27,45]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","Generic","Rep","Eq"],{"Ident":"genericEqConstructor"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Generic","Rep","Eq"],"GenericEq"],"edInstanceName":{"Ident":"genericEqArgument"},"edInstanceTypes":[{"annotation":[{"start":[30,50],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Eq.purs","end":[30,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[30,50],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Eq.purs","end":[30,58]},[]],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"Argument"]},{"annotation":[{"start":[30,59],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Eq.purs","end":[30,60]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[30,31],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Eq.purs","end":[30,35]},[]],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[{"start":[30,34],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Eq.purs","end":[30,35]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","Generic","Rep","Eq"],{"Ident":"genericEqArgument"}]],"edInstanceChainIndex":0}}],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Eq.purs","end":[35,45]}}
diff --git a/tests/purs/publish/basic-example/output/Data.Generic.Rep.Monoid/docs.json b/tests/purs/publish/basic-example/output/Data.Generic.Rep.Monoid/docs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.Generic.Rep.Monoid/docs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"reExports":[],"name":"Data.Generic.Rep.Monoid","comments":null,"declarations":[{"children":[{"comments":null,"title":"genericMempty'","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeVar","contents":"a"}},"sourceSpan":{"start":[11,3],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Monoid.purs","end":[11,22]}},{"comments":null,"title":"genericMonoidNoArguments","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep","Monoid"],"GenericMonoid"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"NoArguments"]}]}},"sourceSpan":{"start":[13,1],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Monoid.purs","end":[14,31]}},{"comments":null,"title":"genericMonoidProduct","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Generic","Rep","Monoid"],"GenericMonoid"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","Generic","Rep","Monoid"],"GenericMonoid"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"b"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep","Monoid"],"GenericMonoid"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"Product"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}},"sourceSpan":{"start":[16,1],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Monoid.purs","end":[17,57]}},{"comments":null,"title":"genericMonoidConstructor","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Generic","Rep","Monoid"],"GenericMonoid"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep","Monoid"],"GenericMonoid"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"Constructor"]},{"annotation":[],"tag":"TypeVar","contents":"name"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[19,1],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Monoid.purs","end":[20,46]}},{"comments":null,"title":"genericMonoidArgument","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Monoid"],"Monoid"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep","Monoid"],"GenericMonoid"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"Argument"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[22,1],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Monoid.purs","end":[23,35]}}],"comments":null,"title":"GenericMonoid","info":{"fundeps":[],"arguments":[["a",null]],"declType":"typeClass","superclasses":[]},"sourceSpan":{"start":[10,1],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Monoid.purs","end":[11,22]}},{"children":[],"comments":"A `Generic` implementation of the `mempty` member from the `Monoid` type class.\n","title":"genericMempty","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["rep",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Generic","Rep"],"Generic"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"},{"annotation":[],"tag":"TypeVar","contents":"rep"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Generic","Rep","Monoid"],"GenericMonoid"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"rep"}],"constraintData":null},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},null]},null]}},"sourceSpan":{"start":[26,1],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Monoid.purs","end":[26,71]}}]}
diff --git a/tests/purs/publish/basic-example/output/Data.Generic.Rep.Monoid/externs.json b/tests/purs/publish/basic-example/output/Data.Generic.Rep.Monoid/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.Generic.Rep.Monoid/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Data","Generic","Rep","Monoid"],"efExports":[{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Monoid.purs","end":[27,34]},"GenericMonoid"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Monoid.purs","end":[27,34]},{"Ident":"genericMempty'"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Monoid.purs","end":[27,34]},{"Ident":"genericMempty"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"genericMonoidNoArguments"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"genericMonoidProduct"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"genericMonoidConstructor"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"genericMonoidArgument"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Data","Monoid"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[7,21],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Monoid.purs","end":[7,33]},"Monoid"]},{"ValueRef":[{"start":[7,35],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Monoid.purs","end":[7,41]},{"Ident":"mempty"}]}]},"eiImportedAs":null},{"eiModule":["Data","Generic","Rep"],"eiImportType":{"Implicit":[]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDType":{"edTypeName":"GenericMonoid","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"GenericMonoid","edTypeSynonymArguments":[["a",null]],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["genericMempty'",{"annotation":[{"start":[11,21],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Monoid.purs","end":[11,22]},[]],"tag":"TypeVar","contents":"a"},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]}}},{"EDClass":{"edClassName":"GenericMonoid","edClassTypeArguments":[["a",null]],"edClassMembers":[[{"Ident":"genericMempty'"},{"annotation":[{"start":[11,21],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Monoid.purs","end":[11,22]},[]],"tag":"TypeVar","contents":"a"}]],"edClassConstraints":[],"edFunctionalDependencies":[]}},{"EDValue":{"edValueName":{"Ident":"genericMempty'"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["Data","Generic","Rep","Monoid"],"GenericMonoid"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[11,21],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Monoid.purs","end":[11,22]},[]],"tag":"TypeVar","contents":"a"}]},2]}}},{"EDValue":{"edValueName":{"Ident":"genericMempty"},"edValueType":{"annotation":[{"start":[26,18],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Monoid.purs","end":[26,71]},[]],"tag":"ForAll","contents":["rep",{"annotation":[{"start":[26,25],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Monoid.purs","end":[26,71]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[26,32],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Monoid.purs","end":[26,71]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[26,32],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Monoid.purs","end":[26,45]},[]],"constraintClass":[["Data","Generic","Rep"],"Generic"],"constraintArgs":[{"annotation":[{"start":[26,40],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Monoid.purs","end":[26,41]},[]],"tag":"TypeVar","contents":"a"},{"annotation":[{"start":[26,42],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Monoid.purs","end":[26,45]},[]],"tag":"TypeVar","contents":"rep"}],"constraintData":null},{"annotation":[{"start":[26,49],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Monoid.purs","end":[26,71]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[26,49],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Monoid.purs","end":[26,66]},[]],"constraintClass":[["Data","Generic","Rep","Monoid"],"GenericMonoid"],"constraintArgs":[{"annotation":[{"start":[26,63],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Monoid.purs","end":[26,66]},[]],"tag":"TypeVar","contents":"rep"}],"constraintData":null},{"annotation":[{"start":[26,70],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Monoid.purs","end":[26,71]},[]],"tag":"TypeVar","contents":"a"}]}]},11]},12]}}},{"EDInstance":{"edInstanceClassName":[["Data","Generic","Rep","Monoid"],"GenericMonoid"],"edInstanceName":{"Ident":"genericMonoidNoArguments"},"edInstanceTypes":[{"annotation":[{"start":[13,52],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Monoid.purs","end":[13,63]},[]],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"NoArguments"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Generic","Rep","Monoid"],{"Ident":"genericMonoidNoArguments"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Generic","Rep","Monoid"],"GenericMonoid"],"edInstanceName":{"Ident":"genericMonoidProduct"},"edInstanceTypes":[{"annotation":[{"start":[16,87],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Monoid.purs","end":[16,98]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[16,87],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Monoid.purs","end":[16,96]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[16,87],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Monoid.purs","end":[16,94]},[]],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"Product"]},{"annotation":[{"start":[16,95],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Monoid.purs","end":[16,96]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[16,97],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Monoid.purs","end":[16,98]},[]],"tag":"TypeVar","contents":"b"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[16,35],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Monoid.purs","end":[16,50]},[]],"constraintClass":[["Data","Generic","Rep","Monoid"],"GenericMonoid"],"constraintArgs":[{"annotation":[{"start":[16,49],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Monoid.purs","end":[16,50]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"constraintAnn":[{"start":[16,52],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Monoid.purs","end":[16,67]},[]],"constraintClass":[["Data","Generic","Rep","Monoid"],"GenericMonoid"],"constraintArgs":[{"annotation":[{"start":[16,66],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Monoid.purs","end":[16,67]},[]],"tag":"TypeVar","contents":"b"}],"constraintData":null}],"edInstanceChain":[[["Data","Generic","Rep","Monoid"],{"Ident":"genericMonoidProduct"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Generic","Rep","Monoid"],"GenericMonoid"],"edInstanceName":{"Ident":"genericMonoidConstructor"},"edInstanceTypes":[{"annotation":[{"start":[19,72],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Monoid.purs","end":[19,90]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[19,72],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Monoid.purs","end":[19,88]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[19,72],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Monoid.purs","end":[19,83]},[]],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"Constructor"]},{"annotation":[{"start":[19,84],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Monoid.purs","end":[19,88]},[]],"tag":"TypeVar","contents":"name"}]},{"annotation":[{"start":[19,89],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Monoid.purs","end":[19,90]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[19,38],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Monoid.purs","end":[19,53]},[]],"constraintClass":[["Data","Generic","Rep","Monoid"],"GenericMonoid"],"constraintArgs":[{"annotation":[{"start":[19,52],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Monoid.purs","end":[19,53]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","Generic","Rep","Monoid"],{"Ident":"genericMonoidConstructor"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Generic","Rep","Monoid"],"GenericMonoid"],"edInstanceName":{"Ident":"genericMonoidArgument"},"edInstanceTypes":[{"annotation":[{"start":[22,62],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Monoid.purs","end":[22,72]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[22,62],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Monoid.purs","end":[22,70]},[]],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"Argument"]},{"annotation":[{"start":[22,71],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Monoid.purs","end":[22,72]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[22,35],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Monoid.purs","end":[22,43]},[]],"constraintClass":[["Data","Monoid"],"Monoid"],"constraintArgs":[{"annotation":[{"start":[22,42],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Monoid.purs","end":[22,43]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","Generic","Rep","Monoid"],{"Ident":"genericMonoidArgument"}]],"edInstanceChainIndex":0}}],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Monoid.purs","end":[27,34]}}
diff --git a/tests/purs/publish/basic-example/output/Data.Generic.Rep.Ord/docs.json b/tests/purs/publish/basic-example/output/Data.Generic.Rep.Ord/docs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.Generic.Rep.Ord/docs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"reExports":[],"name":"Data.Generic.Rep.Ord","comments":null,"declarations":[{"children":[{"comments":null,"title":"genericCompare'","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ordering"],"Ordering"]}]}]}},"sourceSpan":{"start":[11,3],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Ord.purs","end":[11,40]}},{"comments":null,"title":"genericOrdNoConstructors","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep","Ord"],"GenericOrd"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"NoConstructors"]}]}},"sourceSpan":{"start":[13,1],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Ord.purs","end":[14,27]}},{"comments":null,"title":"genericOrdNoArguments","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep","Ord"],"GenericOrd"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"NoArguments"]}]}},"sourceSpan":{"start":[16,1],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Ord.purs","end":[17,27]}},{"comments":null,"title":"genericOrdSum","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Generic","Rep","Ord"],"GenericOrd"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","Generic","Rep","Ord"],"GenericOrd"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"b"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep","Ord"],"GenericOrd"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"Sum"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}},"sourceSpan":{"start":[19,1],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Ord.purs","end":[23,41]}},{"comments":null,"title":"genericOrdProduct","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Generic","Rep","Ord"],"GenericOrd"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","Generic","Rep","Ord"],"GenericOrd"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"b"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep","Ord"],"GenericOrd"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"Product"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}},"sourceSpan":{"start":[25,1],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Ord.purs","end":[29,21]}},{"comments":null,"title":"genericOrdConstructor","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Generic","Rep","Ord"],"GenericOrd"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep","Ord"],"GenericOrd"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"Constructor"]},{"annotation":[],"tag":"TypeVar","contents":"name"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[31,1],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Ord.purs","end":[32,76]}},{"comments":null,"title":"genericOrdArgument","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep","Ord"],"GenericOrd"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"Argument"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[34,1],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Ord.purs","end":[35,62]}}],"comments":null,"title":"GenericOrd","info":{"fundeps":[],"arguments":[["a",null]],"declType":"typeClass","superclasses":[]},"sourceSpan":{"start":[10,1],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Ord.purs","end":[11,40]}},{"children":[],"comments":"A `Generic` implementation of the `compare` member from the `Ord` type class.\n","title":"genericCompare","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["rep",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Generic","Rep"],"Generic"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"},{"annotation":[],"tag":"TypeVar","contents":"rep"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Generic","Rep","Ord"],"GenericOrd"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"rep"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ordering"],"Ordering"]}]}]}]}]},null]},null]}},"sourceSpan":{"start":[38,1],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Ord.purs","end":[38,86]}}]}
diff --git a/tests/purs/publish/basic-example/output/Data.Generic.Rep.Ord/externs.json b/tests/purs/publish/basic-example/output/Data.Generic.Rep.Ord/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.Generic.Rep.Ord/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Data","Generic","Rep","Ord"],"efExports":[{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Ord.purs","end":[39,55]},"GenericOrd"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Ord.purs","end":[39,55]},{"Ident":"genericCompare'"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Ord.purs","end":[39,55]},{"Ident":"genericCompare"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"genericOrdNoConstructors"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"genericOrdNoArguments"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"genericOrdSum"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"genericOrdProduct"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"genericOrdConstructor"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"genericOrdArgument"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Prelude"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[7,17],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Ord.purs","end":[7,26]},"Ord"]},{"ValueRef":[{"start":[7,28],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Ord.purs","end":[7,35]},{"Ident":"compare"}]},{"TypeRef":[{"start":[7,37],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Ord.purs","end":[7,49]},"Ordering",null]}]},"eiImportedAs":null},{"eiModule":["Data","Generic","Rep"],"eiImportType":{"Implicit":[]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDType":{"edTypeName":"GenericOrd","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[11,24],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Ord.purs","end":[11,26]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"GenericOrd","edTypeSynonymArguments":[["a",null]],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["genericCompare'",{"annotation":[{"start":[11,22],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Ord.purs","end":[11,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[11,22],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Ord.purs","end":[11,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[11,24],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Ord.purs","end":[11,26]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[11,22],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Ord.purs","end":[11,23]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[11,27],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Ord.purs","end":[11,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[11,27],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Ord.purs","end":[11,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[11,29],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Ord.purs","end":[11,31]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[11,27],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Ord.purs","end":[11,28]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[11,32],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Ord.purs","end":[11,40]},[]],"tag":"TypeConstructor","contents":[["Data","Ordering"],"Ordering"]}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]}}},{"EDClass":{"edClassName":"GenericOrd","edClassTypeArguments":[["a",null]],"edClassMembers":[[{"Ident":"genericCompare'"},{"annotation":[{"start":[11,22],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Ord.purs","end":[11,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[11,22],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Ord.purs","end":[11,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[11,24],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Ord.purs","end":[11,26]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[11,22],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Ord.purs","end":[11,23]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[11,27],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Ord.purs","end":[11,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[11,27],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Ord.purs","end":[11,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[11,29],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Ord.purs","end":[11,31]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[11,27],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Ord.purs","end":[11,28]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[11,32],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Ord.purs","end":[11,40]},[]],"tag":"TypeConstructor","contents":[["Data","Ordering"],"Ordering"]}]}]}]],"edClassConstraints":[],"edFunctionalDependencies":[]}},{"EDValue":{"edValueName":{"Ident":"genericCompare'"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["Data","Generic","Rep","Ord"],"GenericOrd"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[11,22],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Ord.purs","end":[11,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[11,22],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Ord.purs","end":[11,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[11,24],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Ord.purs","end":[11,26]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[11,22],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Ord.purs","end":[11,23]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[11,27],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Ord.purs","end":[11,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[11,27],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Ord.purs","end":[11,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[11,29],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Ord.purs","end":[11,31]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[11,27],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Ord.purs","end":[11,28]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[11,32],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Ord.purs","end":[11,40]},[]],"tag":"TypeConstructor","contents":[["Data","Ordering"],"Ordering"]}]}]}]},2]}}},{"EDValue":{"edValueName":{"Ident":"genericCompare"},"edValueType":{"annotation":[{"start":[38,19],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Ord.purs","end":[38,86]},[]],"tag":"ForAll","contents":["rep",{"annotation":[{"start":[38,26],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Ord.purs","end":[38,86]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[38,33],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Ord.purs","end":[38,86]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[38,33],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Ord.purs","end":[38,46]},[]],"constraintClass":[["Data","Generic","Rep"],"Generic"],"constraintArgs":[{"annotation":[{"start":[38,41],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Ord.purs","end":[38,42]},[]],"tag":"TypeVar","contents":"a"},{"annotation":[{"start":[38,43],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Ord.purs","end":[38,46]},[]],"tag":"TypeVar","contents":"rep"}],"constraintData":null},{"annotation":[{"start":[38,50],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Ord.purs","end":[38,86]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[38,50],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Ord.purs","end":[38,64]},[]],"constraintClass":[["Data","Generic","Rep","Ord"],"GenericOrd"],"constraintArgs":[{"annotation":[{"start":[38,61],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Ord.purs","end":[38,64]},[]],"tag":"TypeVar","contents":"rep"}],"constraintData":null},{"annotation":[{"start":[38,68],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Ord.purs","end":[38,86]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[38,68],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Ord.purs","end":[38,86]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[38,70],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Ord.purs","end":[38,72]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[38,68],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Ord.purs","end":[38,69]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[38,73],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Ord.purs","end":[38,86]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[38,73],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Ord.purs","end":[38,86]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[38,75],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Ord.purs","end":[38,77]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[38,73],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Ord.purs","end":[38,74]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[38,78],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Ord.purs","end":[38,86]},[]],"tag":"TypeConstructor","contents":[["Data","Ordering"],"Ordering"]}]}]}]}]},15]},16]}}},{"EDInstance":{"edInstanceClassName":[["Data","Generic","Rep","Ord"],"GenericOrd"],"edInstanceName":{"Ident":"genericOrdNoConstructors"},"edInstanceTypes":[{"annotation":[{"start":[13,49],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Ord.purs","end":[13,63]},[]],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"NoConstructors"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Generic","Rep","Ord"],{"Ident":"genericOrdNoConstructors"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Generic","Rep","Ord"],"GenericOrd"],"edInstanceName":{"Ident":"genericOrdNoArguments"},"edInstanceTypes":[{"annotation":[{"start":[16,46],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Ord.purs","end":[16,57]},[]],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"NoArguments"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Generic","Rep","Ord"],{"Ident":"genericOrdNoArguments"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Generic","Rep","Ord"],"GenericOrd"],"edInstanceName":{"Ident":"genericOrdSum"},"edInstanceTypes":[{"annotation":[{"start":[19,71],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Ord.purs","end":[19,78]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[19,71],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Ord.purs","end":[19,76]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[19,71],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Ord.purs","end":[19,74]},[]],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"Sum"]},{"annotation":[{"start":[19,75],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Ord.purs","end":[19,76]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[19,77],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Ord.purs","end":[19,78]},[]],"tag":"TypeVar","contents":"b"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[19,28],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Ord.purs","end":[19,40]},[]],"constraintClass":[["Data","Generic","Rep","Ord"],"GenericOrd"],"constraintArgs":[{"annotation":[{"start":[19,39],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Ord.purs","end":[19,40]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"constraintAnn":[{"start":[19,42],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Ord.purs","end":[19,54]},[]],"constraintClass":[["Data","Generic","Rep","Ord"],"GenericOrd"],"constraintArgs":[{"annotation":[{"start":[19,53],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Ord.purs","end":[19,54]},[]],"tag":"TypeVar","contents":"b"}],"constraintData":null}],"edInstanceChain":[[["Data","Generic","Rep","Ord"],{"Ident":"genericOrdSum"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Generic","Rep","Ord"],"GenericOrd"],"edInstanceName":{"Ident":"genericOrdProduct"},"edInstanceTypes":[{"annotation":[{"start":[25,75],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Ord.purs","end":[25,86]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[25,75],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Ord.purs","end":[25,84]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[25,75],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Ord.purs","end":[25,82]},[]],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"Product"]},{"annotation":[{"start":[25,83],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Ord.purs","end":[25,84]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[25,85],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Ord.purs","end":[25,86]},[]],"tag":"TypeVar","contents":"b"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[25,32],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Ord.purs","end":[25,44]},[]],"constraintClass":[["Data","Generic","Rep","Ord"],"GenericOrd"],"constraintArgs":[{"annotation":[{"start":[25,43],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Ord.purs","end":[25,44]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"constraintAnn":[{"start":[25,46],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Ord.purs","end":[25,58]},[]],"constraintClass":[["Data","Generic","Rep","Ord"],"GenericOrd"],"constraintArgs":[{"annotation":[{"start":[25,57],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Ord.purs","end":[25,58]},[]],"tag":"TypeVar","contents":"b"}],"constraintData":null}],"edInstanceChain":[[["Data","Generic","Rep","Ord"],{"Ident":"genericOrdProduct"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Generic","Rep","Ord"],"GenericOrd"],"edInstanceName":{"Ident":"genericOrdConstructor"},"edInstanceTypes":[{"annotation":[{"start":[31,63],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Ord.purs","end":[31,81]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[31,63],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Ord.purs","end":[31,79]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[31,63],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Ord.purs","end":[31,74]},[]],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"Constructor"]},{"annotation":[{"start":[31,75],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Ord.purs","end":[31,79]},[]],"tag":"TypeVar","contents":"name"}]},{"annotation":[{"start":[31,80],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Ord.purs","end":[31,81]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[31,35],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Ord.purs","end":[31,47]},[]],"constraintClass":[["Data","Generic","Rep","Ord"],"GenericOrd"],"constraintArgs":[{"annotation":[{"start":[31,46],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Ord.purs","end":[31,47]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","Generic","Rep","Ord"],{"Ident":"genericOrdConstructor"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Generic","Rep","Ord"],"GenericOrd"],"edInstanceName":{"Ident":"genericOrdArgument"},"edInstanceTypes":[{"annotation":[{"start":[34,53],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Ord.purs","end":[34,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[34,53],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Ord.purs","end":[34,61]},[]],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"Argument"]},{"annotation":[{"start":[34,62],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Ord.purs","end":[34,63]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[34,32],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Ord.purs","end":[34,37]},[]],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[{"start":[34,36],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Ord.purs","end":[34,37]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","Generic","Rep","Ord"],{"Ident":"genericOrdArgument"}]],"edInstanceChainIndex":0}}],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Ord.purs","end":[39,55]}}
diff --git a/tests/purs/publish/basic-example/output/Data.Generic.Rep.Semigroup/docs.json b/tests/purs/publish/basic-example/output/Data.Generic.Rep.Semigroup/docs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.Generic.Rep.Semigroup/docs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"reExports":[],"name":"Data.Generic.Rep.Semigroup","comments":null,"declarations":[{"children":[{"comments":null,"title":"genericAppend'","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[11,3],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Semigroup.purs","end":[11,32]}},{"comments":null,"title":"genericSemigroupNoConstructors","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep","Semigroup"],"GenericSemigroup"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"NoConstructors"]}]}},"sourceSpan":{"start":[13,1],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Semigroup.purs","end":[14,25]}},{"comments":null,"title":"genericSemigroupNoArguments","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep","Semigroup"],"GenericSemigroup"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"NoArguments"]}]}},"sourceSpan":{"start":[16,1],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Semigroup.purs","end":[17,25]}},{"comments":null,"title":"genericSemigroupProduct","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Generic","Rep","Semigroup"],"GenericSemigroup"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","Generic","Rep","Semigroup"],"GenericSemigroup"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"b"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep","Semigroup"],"GenericSemigroup"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"Product"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}},"sourceSpan":{"start":[19,1],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Semigroup.purs","end":[21,58]}},{"comments":null,"title":"genericSemigroupConstructor","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Generic","Rep","Semigroup"],"GenericSemigroup"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep","Semigroup"],"GenericSemigroup"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"Constructor"]},{"annotation":[],"tag":"TypeVar","contents":"name"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[23,1],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Semigroup.purs","end":[24,88]}},{"comments":null,"title":"genericSemigroupArgument","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Semigroup"],"Semigroup"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep","Semigroup"],"GenericSemigroup"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"Argument"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[26,1],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Semigroup.purs","end":[27,71]}}],"comments":null,"title":"GenericSemigroup","info":{"fundeps":[],"arguments":[["a",null]],"declType":"typeClass","superclasses":[]},"sourceSpan":{"start":[10,1],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Semigroup.purs","end":[11,32]}},{"children":[],"comments":"A `Generic` implementation of the `append` member from the `Semigroup` type class.\n","title":"genericAppend","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["rep",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Generic","Rep"],"Generic"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"},{"annotation":[],"tag":"TypeVar","contents":"rep"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Generic","Rep","Semigroup"],"GenericSemigroup"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"rep"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]}]},null]},null]}},"sourceSpan":{"start":[30,1],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Semigroup.purs","end":[30,84]}}]}
diff --git a/tests/purs/publish/basic-example/output/Data.Generic.Rep.Semigroup/externs.json b/tests/purs/publish/basic-example/output/Data.Generic.Rep.Semigroup/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.Generic.Rep.Semigroup/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Data","Generic","Rep","Semigroup"],"efExports":[{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Semigroup.purs","end":[31,58]},"GenericSemigroup"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Semigroup.purs","end":[31,58]},{"Ident":"genericAppend'"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Semigroup.purs","end":[31,58]},{"Ident":"genericAppend"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"genericSemigroupNoConstructors"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"genericSemigroupNoArguments"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"genericSemigroupProduct"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"genericSemigroupConstructor"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"genericSemigroupArgument"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Prelude"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[7,17],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Semigroup.purs","end":[7,32]},"Semigroup"]},{"ValueRef":[{"start":[7,34],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Semigroup.purs","end":[7,40]},{"Ident":"append"}]}]},"eiImportedAs":null},{"eiModule":["Data","Generic","Rep"],"eiImportType":{"Implicit":[]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDType":{"edTypeName":"GenericSemigroup","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[11,23],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Semigroup.purs","end":[11,25]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"GenericSemigroup","edTypeSynonymArguments":[["a",null]],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["genericAppend'",{"annotation":[{"start":[11,21],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Semigroup.purs","end":[11,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[11,21],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Semigroup.purs","end":[11,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[11,23],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Semigroup.purs","end":[11,25]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[11,21],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Semigroup.purs","end":[11,22]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[11,26],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Semigroup.purs","end":[11,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[11,26],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Semigroup.purs","end":[11,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[11,28],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Semigroup.purs","end":[11,30]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[11,26],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Semigroup.purs","end":[11,27]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[11,31],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Semigroup.purs","end":[11,32]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]}}},{"EDClass":{"edClassName":"GenericSemigroup","edClassTypeArguments":[["a",null]],"edClassMembers":[[{"Ident":"genericAppend'"},{"annotation":[{"start":[11,21],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Semigroup.purs","end":[11,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[11,21],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Semigroup.purs","end":[11,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[11,23],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Semigroup.purs","end":[11,25]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[11,21],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Semigroup.purs","end":[11,22]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[11,26],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Semigroup.purs","end":[11,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[11,26],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Semigroup.purs","end":[11,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[11,28],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Semigroup.purs","end":[11,30]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[11,26],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Semigroup.purs","end":[11,27]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[11,31],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Semigroup.purs","end":[11,32]},[]],"tag":"TypeVar","contents":"a"}]}]}]],"edClassConstraints":[],"edFunctionalDependencies":[]}},{"EDValue":{"edValueName":{"Ident":"genericAppend'"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["Data","Generic","Rep","Semigroup"],"GenericSemigroup"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[11,21],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Semigroup.purs","end":[11,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[11,21],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Semigroup.purs","end":[11,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[11,23],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Semigroup.purs","end":[11,25]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[11,21],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Semigroup.purs","end":[11,22]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[11,26],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Semigroup.purs","end":[11,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[11,26],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Semigroup.purs","end":[11,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[11,28],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Semigroup.purs","end":[11,30]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[11,26],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Semigroup.purs","end":[11,27]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[11,31],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Semigroup.purs","end":[11,32]},[]],"tag":"TypeVar","contents":"a"}]}]}]},2]}}},{"EDValue":{"edValueName":{"Ident":"genericAppend"},"edValueType":{"annotation":[{"start":[30,18],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Semigroup.purs","end":[30,84]},[]],"tag":"ForAll","contents":["rep",{"annotation":[{"start":[30,25],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Semigroup.purs","end":[30,84]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[30,32],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Semigroup.purs","end":[30,84]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[30,32],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Semigroup.purs","end":[30,45]},[]],"constraintClass":[["Data","Generic","Rep"],"Generic"],"constraintArgs":[{"annotation":[{"start":[30,40],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Semigroup.purs","end":[30,41]},[]],"tag":"TypeVar","contents":"a"},{"annotation":[{"start":[30,42],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Semigroup.purs","end":[30,45]},[]],"tag":"TypeVar","contents":"rep"}],"constraintData":null},{"annotation":[{"start":[30,49],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Semigroup.purs","end":[30,84]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[30,49],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Semigroup.purs","end":[30,69]},[]],"constraintClass":[["Data","Generic","Rep","Semigroup"],"GenericSemigroup"],"constraintArgs":[{"annotation":[{"start":[30,66],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Semigroup.purs","end":[30,69]},[]],"tag":"TypeVar","contents":"rep"}],"constraintData":null},{"annotation":[{"start":[30,73],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Semigroup.purs","end":[30,84]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[30,73],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Semigroup.purs","end":[30,84]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[30,75],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Semigroup.purs","end":[30,77]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[30,73],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Semigroup.purs","end":[30,74]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[30,78],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Semigroup.purs","end":[30,84]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[30,78],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Semigroup.purs","end":[30,84]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[30,80],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Semigroup.purs","end":[30,82]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[30,78],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Semigroup.purs","end":[30,79]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[30,83],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Semigroup.purs","end":[30,84]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]},11]},12]}}},{"EDInstance":{"edInstanceClassName":[["Data","Generic","Rep","Semigroup"],"GenericSemigroup"],"edInstanceName":{"Ident":"genericSemigroupNoConstructors"},"edInstanceTypes":[{"annotation":[{"start":[13,61],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Semigroup.purs","end":[13,75]},[]],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"NoConstructors"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Generic","Rep","Semigroup"],{"Ident":"genericSemigroupNoConstructors"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Generic","Rep","Semigroup"],"GenericSemigroup"],"edInstanceName":{"Ident":"genericSemigroupNoArguments"},"edInstanceTypes":[{"annotation":[{"start":[16,58],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Semigroup.purs","end":[16,69]},[]],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"NoArguments"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Generic","Rep","Semigroup"],{"Ident":"genericSemigroupNoArguments"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Generic","Rep","Semigroup"],"GenericSemigroup"],"edInstanceName":{"Ident":"genericSemigroupProduct"},"edInstanceTypes":[{"annotation":[{"start":[19,99],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Semigroup.purs","end":[19,110]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[19,99],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Semigroup.purs","end":[19,108]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[19,99],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Semigroup.purs","end":[19,106]},[]],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"Product"]},{"annotation":[{"start":[19,107],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Semigroup.purs","end":[19,108]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[19,109],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Semigroup.purs","end":[19,110]},[]],"tag":"TypeVar","contents":"b"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[19,38],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Semigroup.purs","end":[19,56]},[]],"constraintClass":[["Data","Generic","Rep","Semigroup"],"GenericSemigroup"],"constraintArgs":[{"annotation":[{"start":[19,55],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Semigroup.purs","end":[19,56]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"constraintAnn":[{"start":[19,58],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Semigroup.purs","end":[19,76]},[]],"constraintClass":[["Data","Generic","Rep","Semigroup"],"GenericSemigroup"],"constraintArgs":[{"annotation":[{"start":[19,75],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Semigroup.purs","end":[19,76]},[]],"tag":"TypeVar","contents":"b"}],"constraintData":null}],"edInstanceChain":[[["Data","Generic","Rep","Semigroup"],{"Ident":"genericSemigroupProduct"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Generic","Rep","Semigroup"],"GenericSemigroup"],"edInstanceName":{"Ident":"genericSemigroupConstructor"},"edInstanceTypes":[{"annotation":[{"start":[23,81],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Semigroup.purs","end":[23,99]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[23,81],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Semigroup.purs","end":[23,97]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[23,81],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Semigroup.purs","end":[23,92]},[]],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"Constructor"]},{"annotation":[{"start":[23,93],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Semigroup.purs","end":[23,97]},[]],"tag":"TypeVar","contents":"name"}]},{"annotation":[{"start":[23,98],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Semigroup.purs","end":[23,99]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[23,41],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Semigroup.purs","end":[23,59]},[]],"constraintClass":[["Data","Generic","Rep","Semigroup"],"GenericSemigroup"],"constraintArgs":[{"annotation":[{"start":[23,58],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Semigroup.purs","end":[23,59]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","Generic","Rep","Semigroup"],{"Ident":"genericSemigroupConstructor"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Generic","Rep","Semigroup"],"GenericSemigroup"],"edInstanceName":{"Ident":"genericSemigroupArgument"},"edInstanceTypes":[{"annotation":[{"start":[26,71],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Semigroup.purs","end":[26,81]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[26,71],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Semigroup.purs","end":[26,79]},[]],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"Argument"]},{"annotation":[{"start":[26,80],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Semigroup.purs","end":[26,81]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[26,38],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Semigroup.purs","end":[26,49]},[]],"constraintClass":[["Data","Semigroup"],"Semigroup"],"constraintArgs":[{"annotation":[{"start":[26,48],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Semigroup.purs","end":[26,49]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","Generic","Rep","Semigroup"],{"Ident":"genericSemigroupArgument"}]],"edInstanceChainIndex":0}}],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Semigroup.purs","end":[31,58]}}
diff --git a/tests/purs/publish/basic-example/output/Data.Generic.Rep.Show/docs.json b/tests/purs/publish/basic-example/output/Data.Generic.Rep.Show/docs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.Generic.Rep.Show/docs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"reExports":[],"name":"Data.Generic.Rep.Show","comments":null,"declarations":[{"children":[{"comments":null,"title":"genericShow'","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}},"sourceSpan":{"start":[15,3],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Show.purs","end":[15,30]}},{"comments":null,"title":"genericShowNoConstructors","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep","Show"],"GenericShow"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"NoConstructors"]}]}},"sourceSpan":{"start":[20,1],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Show.purs","end":[21,34]}},{"comments":null,"title":"genericShowSum","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Generic","Rep","Show"],"GenericShow"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","Generic","Rep","Show"],"GenericShow"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"b"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep","Show"],"GenericShow"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"Sum"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}},"sourceSpan":{"start":[26,1],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Show.purs","end":[28,40]}},{"comments":null,"title":"genericShowConstructor","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Generic","Rep","Show"],"GenericShowArgs"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","Symbol"],"IsSymbol"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"name"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep","Show"],"GenericShow"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"Constructor"]},{"annotation":[],"tag":"TypeVar","contents":"name"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[35,1],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Show.purs","end":[44,51]}}],"comments":null,"title":"GenericShow","info":{"fundeps":[],"arguments":[["a",null]],"declType":"typeClass","superclasses":[]},"sourceSpan":{"start":[14,1],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Show.purs","end":[15,30]}},{"children":[],"comments":"A `Generic` implementation of the `show` member from the `Show` type class.\n","title":"genericShow","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["rep",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Generic","Rep"],"Generic"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"},{"annotation":[],"tag":"TypeVar","contents":"rep"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Generic","Rep","Show"],"GenericShow"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"rep"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}]}]},null]},null]}},"sourceSpan":{"start":[50,1],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Show.purs","end":[50,77]}},{"children":[{"comments":null,"title":"genericShowArgs","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}]}},"sourceSpan":{"start":[18,3],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Show.purs","end":[18,39]}},{"comments":null,"title":"genericShowArgsNoArguments","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep","Show"],"GenericShowArgs"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"NoArguments"]}]}},"sourceSpan":{"start":[23,1],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Show.purs","end":[24,25]}},{"comments":null,"title":"genericShowArgsProduct","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Generic","Rep","Show"],"GenericShowArgs"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","Generic","Rep","Show"],"GenericShowArgs"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"b"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep","Show"],"GenericShowArgs"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"Product"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}},"sourceSpan":{"start":[30,1],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Show.purs","end":[33,73]}},{"comments":null,"title":"genericShowArgsArgument","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Show"],"Show"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep","Show"],"GenericShowArgs"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"Argument"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[46,1],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Show.purs","end":[47,42]}}],"comments":null,"title":"GenericShowArgs","info":{"fundeps":[],"arguments":[["a",null]],"declType":"typeClass","superclasses":[]},"sourceSpan":{"start":[17,1],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Show.purs","end":[18,39]}}]}
diff --git a/tests/purs/publish/basic-example/output/Data.Generic.Rep.Show/externs.json b/tests/purs/publish/basic-example/output/Data.Generic.Rep.Show/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.Generic.Rep.Show/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Data","Generic","Rep","Show"],"efExports":[{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Show.purs","end":[51,38]},"GenericShow"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Show.purs","end":[51,38]},{"Ident":"genericShow'"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Show.purs","end":[51,38]},{"Ident":"genericShow"}]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Show.purs","end":[51,38]},"GenericShowArgs"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Show.purs","end":[51,38]},{"Ident":"genericShowArgs"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"genericShowNoConstructors"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"genericShowArgsNoArguments"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"genericShowSum"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"genericShowArgsProduct"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"genericShowConstructor"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"genericShowArgsArgument"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Prelude"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[9,17],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Show.purs","end":[9,27]},"Show"]},{"ValueRef":[{"start":[9,29],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Show.purs","end":[9,33]},{"Ident":"show"}]},{"ValueOpRef":[{"start":[9,35],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Show.purs","end":[9,39]},"<>"]}]},"eiImportedAs":null},{"eiModule":["Data","Foldable"],"eiImportType":{"Explicit":[{"ValueRef":[{"start":[10,23],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Show.purs","end":[10,34]},{"Ident":"intercalate"}]}]},"eiImportedAs":null},{"eiModule":["Data","Generic","Rep"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Data","Symbol"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[12,21],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Show.purs","end":[12,35]},"IsSymbol"]},{"TypeRef":[{"start":[12,37],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Show.purs","end":[12,47]},"SProxy",null]},{"ValueRef":[{"start":[12,49],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Show.purs","end":[12,62]},{"Ident":"reflectSymbol"}]}]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDType":{"edTypeName":"GenericShow","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[15,21],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Show.purs","end":[15,23]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"GenericShow","edTypeSynonymArguments":[["a",null]],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["genericShow'",{"annotation":[{"start":[15,19],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Show.purs","end":[15,30]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[15,19],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Show.purs","end":[15,30]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[15,21],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Show.purs","end":[15,23]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[15,19],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Show.purs","end":[15,20]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[15,24],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Show.purs","end":[15,30]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]}}},{"EDClass":{"edClassName":"GenericShow","edClassTypeArguments":[["a",null]],"edClassMembers":[[{"Ident":"genericShow'"},{"annotation":[{"start":[15,19],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Show.purs","end":[15,30]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[15,19],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Show.purs","end":[15,30]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[15,21],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Show.purs","end":[15,23]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[15,19],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Show.purs","end":[15,20]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[15,24],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Show.purs","end":[15,30]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}]],"edClassConstraints":[],"edFunctionalDependencies":[]}},{"EDValue":{"edValueName":{"Ident":"genericShow'"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["Data","Generic","Rep","Show"],"GenericShow"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[15,19],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Show.purs","end":[15,30]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[15,19],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Show.purs","end":[15,30]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[15,21],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Show.purs","end":[15,23]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[15,19],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Show.purs","end":[15,20]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[15,24],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Show.purs","end":[15,30]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}]},12]}}},{"EDValue":{"edValueName":{"Ident":"genericShow"},"edValueType":{"annotation":[{"start":[50,16],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Show.purs","end":[50,77]},[]],"tag":"ForAll","contents":["rep",{"annotation":[{"start":[50,23],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Show.purs","end":[50,77]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[50,30],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Show.purs","end":[50,77]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[50,30],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Show.purs","end":[50,43]},[]],"constraintClass":[["Data","Generic","Rep"],"Generic"],"constraintArgs":[{"annotation":[{"start":[50,38],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Show.purs","end":[50,39]},[]],"tag":"TypeVar","contents":"a"},{"annotation":[{"start":[50,40],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Show.purs","end":[50,43]},[]],"tag":"TypeVar","contents":"rep"}],"constraintData":null},{"annotation":[{"start":[50,47],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Show.purs","end":[50,77]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[50,47],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Show.purs","end":[50,62]},[]],"constraintClass":[["Data","Generic","Rep","Show"],"GenericShow"],"constraintArgs":[{"annotation":[{"start":[50,59],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Show.purs","end":[50,62]},[]],"tag":"TypeVar","contents":"rep"}],"constraintData":null},{"annotation":[{"start":[50,66],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Show.purs","end":[50,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,66],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Show.purs","end":[50,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,68],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Show.purs","end":[50,70]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[50,66],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Show.purs","end":[50,67]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[50,71],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Show.purs","end":[50,77]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}]}]},17]},18]}}},{"EDType":{"edTypeName":"GenericShowArgs","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[18,24],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Show.purs","end":[18,26]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"GenericShowArgs","edTypeSynonymArguments":[["a",null]],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["genericShowArgs",{"annotation":[{"start":[18,22],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Show.purs","end":[18,39]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,22],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Show.purs","end":[18,39]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,24],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Show.purs","end":[18,26]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[18,22],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Show.purs","end":[18,23]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[18,27],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Show.purs","end":[18,39]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,27],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Show.purs","end":[18,32]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[18,33],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Show.purs","end":[18,39]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]}}},{"EDClass":{"edClassName":"GenericShowArgs","edClassTypeArguments":[["a",null]],"edClassMembers":[[{"Ident":"genericShowArgs"},{"annotation":[{"start":[18,22],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Show.purs","end":[18,39]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,22],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Show.purs","end":[18,39]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,24],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Show.purs","end":[18,26]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[18,22],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Show.purs","end":[18,23]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[18,27],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Show.purs","end":[18,39]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,27],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Show.purs","end":[18,32]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[18,33],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Show.purs","end":[18,39]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}]}]],"edClassConstraints":[],"edFunctionalDependencies":[]}},{"EDValue":{"edValueName":{"Ident":"genericShowArgs"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["Data","Generic","Rep","Show"],"GenericShowArgs"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[18,22],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Show.purs","end":[18,39]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,22],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Show.purs","end":[18,39]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,24],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Show.purs","end":[18,26]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[18,22],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Show.purs","end":[18,23]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[18,27],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Show.purs","end":[18,39]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,27],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Show.purs","end":[18,32]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[18,33],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Show.purs","end":[18,39]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}]}]},2]}}},{"EDInstance":{"edInstanceClassName":[["Data","Generic","Rep","Show"],"GenericShow"],"edInstanceName":{"Ident":"genericShowNoConstructors"},"edInstanceTypes":[{"annotation":[{"start":[20,51],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Show.purs","end":[20,65]},[]],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"NoConstructors"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Generic","Rep","Show"],{"Ident":"genericShowNoConstructors"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Generic","Rep","Show"],"GenericShowArgs"],"edInstanceName":{"Ident":"genericShowArgsNoArguments"},"edInstanceTypes":[{"annotation":[{"start":[23,56],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Show.purs","end":[23,67]},[]],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"NoArguments"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Generic","Rep","Show"],{"Ident":"genericShowArgsNoArguments"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Generic","Rep","Show"],"GenericShow"],"edInstanceName":{"Ident":"genericShowSum"},"edInstanceTypes":[{"annotation":[{"start":[26,75],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Show.purs","end":[26,82]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[26,75],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Show.purs","end":[26,80]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[26,75],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Show.purs","end":[26,78]},[]],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"Sum"]},{"annotation":[{"start":[26,79],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Show.purs","end":[26,80]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[26,81],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Show.purs","end":[26,82]},[]],"tag":"TypeVar","contents":"b"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[26,29],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Show.purs","end":[26,42]},[]],"constraintClass":[["Data","Generic","Rep","Show"],"GenericShow"],"constraintArgs":[{"annotation":[{"start":[26,41],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Show.purs","end":[26,42]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"constraintAnn":[{"start":[26,44],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Show.purs","end":[26,57]},[]],"constraintClass":[["Data","Generic","Rep","Show"],"GenericShow"],"constraintArgs":[{"annotation":[{"start":[26,56],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Show.purs","end":[26,57]},[]],"tag":"TypeVar","contents":"b"}],"constraintData":null}],"edInstanceChain":[[["Data","Generic","Rep","Show"],{"Ident":"genericShowSum"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Generic","Rep","Show"],"GenericShowArgs"],"edInstanceName":{"Ident":"genericShowArgsProduct"},"edInstanceTypes":[{"annotation":[{"start":[32,25],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Show.purs","end":[32,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[32,25],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Show.purs","end":[32,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[32,25],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Show.purs","end":[32,32]},[]],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"Product"]},{"annotation":[{"start":[32,33],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Show.purs","end":[32,34]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[32,35],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Show.purs","end":[32,36]},[]],"tag":"TypeVar","contents":"b"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[31,9],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Show.purs","end":[31,26]},[]],"constraintClass":[["Data","Generic","Rep","Show"],"GenericShowArgs"],"constraintArgs":[{"annotation":[{"start":[31,25],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Show.purs","end":[31,26]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"constraintAnn":[{"start":[31,28],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Show.purs","end":[31,45]},[]],"constraintClass":[["Data","Generic","Rep","Show"],"GenericShowArgs"],"constraintArgs":[{"annotation":[{"start":[31,44],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Show.purs","end":[31,45]},[]],"tag":"TypeVar","contents":"b"}],"constraintData":null}],"edInstanceChain":[[["Data","Generic","Rep","Show"],{"Ident":"genericShowArgsProduct"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Generic","Rep","Show"],"GenericShow"],"edInstanceName":{"Ident":"genericShowConstructor"},"edInstanceTypes":[{"annotation":[{"start":[37,19],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Show.purs","end":[37,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[37,19],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Show.purs","end":[37,35]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[37,19],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Show.purs","end":[37,30]},[]],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"Constructor"]},{"annotation":[{"start":[37,31],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Show.purs","end":[37,35]},[]],"tag":"TypeVar","contents":"name"}]},{"annotation":[{"start":[37,36],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Show.purs","end":[37,37]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[36,7],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Show.purs","end":[36,24]},[]],"constraintClass":[["Data","Generic","Rep","Show"],"GenericShowArgs"],"constraintArgs":[{"annotation":[{"start":[36,23],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Show.purs","end":[36,24]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"constraintAnn":[{"start":[36,26],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Show.purs","end":[36,39]},[]],"constraintClass":[["Data","Symbol"],"IsSymbol"],"constraintArgs":[{"annotation":[{"start":[36,35],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Show.purs","end":[36,39]},[]],"tag":"TypeVar","contents":"name"}],"constraintData":null}],"edInstanceChain":[[["Data","Generic","Rep","Show"],{"Ident":"genericShowConstructor"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Generic","Rep","Show"],"GenericShowArgs"],"edInstanceName":{"Ident":"genericShowArgsArgument"},"edInstanceTypes":[{"annotation":[{"start":[46,64],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Show.purs","end":[46,74]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[46,64],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Show.purs","end":[46,72]},[]],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"Argument"]},{"annotation":[{"start":[46,73],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Show.purs","end":[46,74]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[46,37],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Show.purs","end":[46,43]},[]],"constraintClass":[["Data","Show"],"Show"],"constraintArgs":[{"annotation":[{"start":[46,42],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Show.purs","end":[46,43]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","Generic","Rep","Show"],{"Ident":"genericShowArgsArgument"}]],"edInstanceChainIndex":0}}],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep/Show.purs","end":[51,38]}}
diff --git a/tests/purs/publish/basic-example/output/Data.Generic.Rep/docs.json b/tests/purs/publish/basic-example/output/Data.Generic.Rep/docs.json
--- a/tests/purs/publish/basic-example/output/Data.Generic.Rep/docs.json
+++ b/tests/purs/publish/basic-example/output/Data.Generic.Rep/docs.json
@@ -1,1 +1,1 @@
-{"reExports":[],"name":"Data.Generic.Rep","comments":null,"declarations":[{"children":[{"comments":null,"title":"to","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"rep"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}},"sourceSpan":{"start":[37,3],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep.purs","end":[37,17]}},{"comments":null,"title":"from","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"rep"}]}},"sourceSpan":{"start":[38,3],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep.purs","end":[38,19]}},{"comments":null,"title":"genericMaybe","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"Generic"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"Sum"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"Constructor"]},{"annotation":[],"tag":"TypeLevelString","contents":"Nothing"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"NoArguments"]}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"Constructor"]},{"annotation":[],"tag":"TypeLevelString","contents":"Just"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"Argument"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]}]}},"sourceSpan":{"start":[40,1],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep.purs","end":[47,49]}}],"comments":"The `Generic` class asserts the existence of a type function from types\nto their representations using the type constructors defined in this module.\n","title":"Generic","info":{"fundeps":[[["a"],["rep"]]],"arguments":[["a",null],["rep",null]],"declType":"typeClass","superclasses":[]},"sourceSpan":{"start":[36,1],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep.purs","end":[38,19]}},{"children":[],"comments":"A representation for types with no constructors.\n","title":"NoConstructors","info":{"declType":"data","dataDeclType":"data","typeArguments":[]},"sourceSpan":{"start":[16,1],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep.purs","end":[16,20]}},{"children":[{"comments":null,"title":"NoArguments","info":{"arguments":[],"declType":"dataConstructor"},"sourceSpan":null},{"comments":null,"title":"genericMaybe","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"Generic"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"Sum"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"Constructor"]},{"annotation":[],"tag":"TypeLevelString","contents":"Nothing"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"NoArguments"]}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"Constructor"]},{"annotation":[],"tag":"TypeLevelString","contents":"Just"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"Argument"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]}]}},"sourceSpan":{"start":[40,1],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep.purs","end":[47,49]}}],"comments":"A representation for constructors with no arguments.\n","title":"NoArguments","info":{"declType":"data","dataDeclType":"data","typeArguments":[]},"sourceSpan":{"start":[19,1],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep.purs","end":[19,31]}},{"children":[{"comments":null,"title":"Inl","info":{"arguments":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"declType":"dataConstructor"},"sourceSpan":null},{"comments":null,"title":"Inr","info":{"arguments":[{"annotation":[],"tag":"TypeVar","contents":"b"}],"declType":"dataConstructor"},"sourceSpan":null},{"comments":null,"title":"genericMaybe","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"Generic"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"Sum"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"Constructor"]},{"annotation":[],"tag":"TypeLevelString","contents":"Nothing"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"NoArguments"]}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"Constructor"]},{"annotation":[],"tag":"TypeLevelString","contents":"Just"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"Argument"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]}]}},"sourceSpan":{"start":[40,1],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep.purs","end":[47,49]}}],"comments":"A representation for types with multiple constructors.\n","title":"Sum","info":{"declType":"data","dataDeclType":"data","typeArguments":[["a",null],["b",null]]},"sourceSpan":{"start":[22,1],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep.purs","end":[22,29]}},{"children":[{"comments":null,"title":"Product","info":{"arguments":[{"annotation":[],"tag":"TypeVar","contents":"a"},{"annotation":[],"tag":"TypeVar","contents":"b"}],"declType":"dataConstructor"},"sourceSpan":null}],"comments":"A representation for constructors with multiple fields.\n","title":"Product","info":{"declType":"data","dataDeclType":"data","typeArguments":[["a",null],["b",null]]},"sourceSpan":{"start":[25,1],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep.purs","end":[25,31]}},{"children":[{"comments":null,"title":"Constructor","info":{"arguments":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"declType":"dataConstructor"},"sourceSpan":null},{"comments":null,"title":"genericMaybe","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"Generic"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"Sum"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"Constructor"]},{"annotation":[],"tag":"TypeLevelString","contents":"Nothing"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"NoArguments"]}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"Constructor"]},{"annotation":[],"tag":"TypeLevelString","contents":"Just"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"Argument"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]}]}},"sourceSpan":{"start":[40,1],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep.purs","end":[47,49]}}],"comments":"A representation for constructors which includes the data constructor name\nas a type-level string.\n","title":"Constructor","info":{"declType":"data","dataDeclType":"newtype","typeArguments":[["name",{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Symbol"]}],["a",null]]},"sourceSpan":{"start":[29,1],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep.purs","end":[29,55]}},{"children":[{"comments":null,"title":"Argument","info":{"arguments":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"declType":"dataConstructor"},"sourceSpan":null},{"comments":null,"title":"genericMaybe","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"Generic"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"Sum"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"Constructor"]},{"annotation":[],"tag":"TypeLevelString","contents":"Nothing"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"NoArguments"]}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"Constructor"]},{"annotation":[],"tag":"TypeLevelString","contents":"Just"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"Argument"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]}]}},"sourceSpan":{"start":[40,1],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep.purs","end":[47,49]}}],"comments":"A representation for an argument in a data constructor.\n","title":"Argument","info":{"declType":"data","dataDeclType":"newtype","typeArguments":[["a",null]]},"sourceSpan":{"start":[32,1],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep.purs","end":[32,32]}}]}
+{"comments":null,"declarations":[{"children":[{"comments":null,"info":{"declType":"typeClassMember","type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"rep","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}},"sourceSpan":{"end":[58,17],"name":"../../../support/bower_components/purescript-prelude/src/Data/Generic/Rep.purs","start":[58,3]},"title":"to"},{"comments":null,"info":{"declType":"typeClassMember","type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"rep","tag":"TypeVar"}],"tag":"TypeApp"}},"sourceSpan":{"end":[59,19],"name":"../../../support/bower_components/purescript-prelude/src/Data/Generic/Rep.purs","start":[59,3]},"title":"from"}],"comments":"The `Generic` class asserts the existence of a type function from types\nto their representations using the type constructors defined in this module.\n","info":{"arguments":[["a",null],["rep",null]],"declType":"typeClass","fundeps":[[["a"],["rep"]]],"superclasses":[]},"kind":null,"sourceSpan":{"end":[59,19],"name":"../../../support/bower_components/purescript-prelude/src/Data/Generic/Rep.purs","start":[57,1]},"title":"Generic"},{"children":[],"comments":null,"info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"rep","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"},{"annotation":[],"contents":"rep","tag":"TypeVar"}],"constraintClass":[["Data","Generic","Rep"],"Generic"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Type","Proxy"],"Proxy"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Type","Proxy"],"Proxy"],"tag":"TypeConstructor"},{"annotation":[],"contents":"rep","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[61,61],"name":"../../../support/bower_components/purescript-prelude/src/Data/Generic/Rep.purs","start":[61,1]},"title":"repOf"},{"children":[],"comments":"A representation for types with no constructors.\n","info":{"dataDeclType":"newtype","declType":"data","roles":[],"typeArguments":[]},"kind":null,"sourceSpan":{"end":[21,45],"name":"../../../support/bower_components/purescript-prelude/src/Data/Generic/Rep.purs","start":[21,1]},"title":"NoConstructors"},{"children":[{"comments":null,"info":{"arguments":[],"declType":"dataConstructor"},"sourceSpan":{"end":[24,31],"name":"../../../support/bower_components/purescript-prelude/src/Data/Generic/Rep.purs","start":[24,18]},"title":"NoArguments"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Show"],"Show"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Generic","Rep"],"NoArguments"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[27,25],"name":"../../../support/bower_components/purescript-prelude/src/Data/Generic/Rep.purs","start":[26,1]},"title":"showNoArguments"}],"comments":"A representation for constructors with no arguments.\n","info":{"dataDeclType":"data","declType":"data","roles":[],"typeArguments":[]},"kind":null,"sourceSpan":{"end":[24,31],"name":"../../../support/bower_components/purescript-prelude/src/Data/Generic/Rep.purs","start":[24,1]},"title":"NoArguments"},{"children":[{"comments":null,"info":{"arguments":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"declType":"dataConstructor"},"sourceSpan":{"end":[30,19],"name":"../../../support/bower_components/purescript-prelude/src/Data/Generic/Rep.purs","start":[30,14]},"title":"Inl"},{"comments":null,"info":{"arguments":[{"annotation":[],"contents":"b","tag":"TypeVar"}],"declType":"dataConstructor"},"sourceSpan":{"end":[30,27],"name":"../../../support/bower_components/purescript-prelude/src/Data/Generic/Rep.purs","start":[30,22]},"title":"Inr"},{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","Show"],"Show"],"constraintData":null,"constraintKindArgs":[]},{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"b","tag":"TypeVar"}],"constraintClass":[["Data","Show"],"Show"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Show"],"Show"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Generic","Rep"],"Sum"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[34,42],"name":"../../../support/bower_components/purescript-prelude/src/Data/Generic/Rep.purs","start":[32,1]},"title":"showSum"}],"comments":"A representation for types with multiple constructors.\n","info":{"dataDeclType":"data","declType":"data","roles":["Representational","Representational"],"typeArguments":[["a",null],["b",null]]},"kind":null,"sourceSpan":{"end":[30,29],"name":"../../../support/bower_components/purescript-prelude/src/Data/Generic/Rep.purs","start":[30,1]},"title":"Sum"},{"children":[{"comments":null,"info":{"arguments":[{"annotation":[],"contents":"a","tag":"TypeVar"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"declType":"dataConstructor"},"sourceSpan":{"end":[37,27],"name":"../../../support/bower_components/purescript-prelude/src/Data/Generic/Rep.purs","start":[37,18]},"title":"Product"},{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","Show"],"Show"],"constraintData":null,"constraintKindArgs":[]},{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"b","tag":"TypeVar"}],"constraintClass":[["Data","Show"],"Show"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Show"],"Show"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Generic","Rep"],"Product"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[40,69],"name":"../../../support/bower_components/purescript-prelude/src/Data/Generic/Rep.purs","start":[39,1]},"title":"showProduct"}],"comments":"A representation for constructors with multiple fields.\n","info":{"dataDeclType":"data","declType":"data","roles":["Representational","Representational"],"typeArguments":[["a",null],["b",null]]},"kind":null,"sourceSpan":{"end":[37,31],"name":"../../../support/bower_components/purescript-prelude/src/Data/Generic/Rep.purs","start":[37,1]},"title":"Product"},{"children":[{"comments":null,"info":{"arguments":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"declType":"dataConstructor"},"sourceSpan":{"end":[44,55],"name":"../../../support/bower_components/purescript-prelude/src/Data/Generic/Rep.purs","start":[44,40]},"title":"Constructor"},{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"name","tag":"TypeVar"}],"constraintClass":[["Data","Symbol"],"IsSymbol"],"constraintData":null,"constraintKindArgs":[]},{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","Show"],"Show"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Show"],"Show"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Generic","Rep"],"Constructor"],"tag":"TypeConstructor"},{"annotation":[],"contents":"name","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[47,112],"name":"../../../support/bower_components/purescript-prelude/src/Data/Generic/Rep.purs","start":[46,1]},"title":"showConstructor"}],"comments":"A representation for constructors which includes the data constructor name\nas a type-level string.\n","info":{"dataDeclType":"newtype","declType":"data","roles":["Phantom","Representational"],"typeArguments":[["name",{"annotation":[],"contents":[["Prim"],"Symbol"],"tag":"TypeConstructor"}],["a",null]]},"kind":{"keyword":"newtype","kind":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Symbol"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[44,55],"name":"../../../support/bower_components/purescript-prelude/src/Data/Generic/Rep.purs","start":[44,1]},"title":"Constructor"},{"children":[{"comments":null,"info":{"arguments":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"declType":"dataConstructor"},"sourceSpan":{"end":[50,32],"name":"../../../support/bower_components/purescript-prelude/src/Data/Generic/Rep.purs","start":[50,20]},"title":"Argument"},{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","Show"],"Show"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Show"],"Show"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Generic","Rep"],"Argument"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[53,52],"name":"../../../support/bower_components/purescript-prelude/src/Data/Generic/Rep.purs","start":[52,1]},"title":"showArgument"}],"comments":"A representation for an argument in a data constructor.\n","info":{"dataDeclType":"newtype","declType":"data","roles":["Representational"],"typeArguments":[["a",null]]},"kind":null,"sourceSpan":{"end":[50,32],"name":"../../../support/bower_components/purescript-prelude/src/Data/Generic/Rep.purs","start":[50,1]},"title":"Argument"}],"name":"Data.Generic.Rep","reExports":[]}
diff --git a/tests/purs/publish/basic-example/output/Data.Generic.Rep/externs.json b/tests/purs/publish/basic-example/output/Data.Generic.Rep/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.Generic.Rep/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Data","Generic","Rep"],"efExports":[{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep.purs","end":[47,49]},"Generic"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep.purs","end":[47,49]},{"Ident":"to"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep.purs","end":[47,49]},{"Ident":"from"}]},{"TypeRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep.purs","end":[47,49]},"NoConstructors",[]]},{"TypeRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep.purs","end":[47,49]},"NoArguments",["NoArguments"]]},{"TypeRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep.purs","end":[47,49]},"Sum",["Inl","Inr"]]},{"TypeRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep.purs","end":[47,49]},"Product",["Product"]]},{"TypeRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep.purs","end":[47,49]},"Constructor",["Constructor"]]},{"TypeRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep.purs","end":[47,49]},"Argument",["Argument"]]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"genericMaybe"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Data","Maybe"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[13,20],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep.purs","end":[13,29]},"Maybe",null]}]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDType":{"edTypeName":"Generic","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[37,13],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep.purs","end":[37,15]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[37,13],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep.purs","end":[37,15]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"Generic","edTypeSynonymArguments":[["a",null],["rep",null]],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["to",{"annotation":[{"start":[37,9],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep.purs","end":[37,17]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[37,9],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep.purs","end":[37,17]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[37,13],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep.purs","end":[37,15]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[37,9],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep.purs","end":[37,12]},[]],"tag":"TypeVar","contents":"rep"}]},{"annotation":[{"start":[37,16],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep.purs","end":[37,17]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["from",{"annotation":[{"start":[38,11],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep.purs","end":[38,19]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[38,11],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep.purs","end":[38,19]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[38,13],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep.purs","end":[38,15]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[38,11],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep.purs","end":[38,12]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[38,16],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep.purs","end":[38,19]},[]],"tag":"TypeVar","contents":"rep"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]}]}}},{"EDClass":{"edClassName":"Generic","edClassTypeArguments":[["a",null],["rep",null]],"edClassMembers":[[{"Ident":"to"},{"annotation":[{"start":[37,9],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep.purs","end":[37,17]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[37,9],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep.purs","end":[37,17]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[37,13],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep.purs","end":[37,15]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[37,9],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep.purs","end":[37,12]},[]],"tag":"TypeVar","contents":"rep"}]},{"annotation":[{"start":[37,16],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep.purs","end":[37,17]},[]],"tag":"TypeVar","contents":"a"}]}],[{"Ident":"from"},{"annotation":[{"start":[38,11],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep.purs","end":[38,19]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[38,11],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep.purs","end":[38,19]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[38,13],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep.purs","end":[38,15]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[38,11],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep.purs","end":[38,12]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[38,16],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep.purs","end":[38,19]},[]],"tag":"TypeVar","contents":"rep"}]}]],"edClassConstraints":[],"edFunctionalDependencies":[{"determiners":[0],"determined":[1]}]}},{"EDValue":{"edValueName":{"Ident":"to"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["rep",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["Data","Generic","Rep"],"Generic"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"a"},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"rep"}],"constraintData":null},{"annotation":[{"start":[37,9],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep.purs","end":[37,17]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[37,9],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep.purs","end":[37,17]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[37,13],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep.purs","end":[37,15]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[37,9],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep.purs","end":[37,12]},[]],"tag":"TypeVar","contents":"rep"}]},{"annotation":[{"start":[37,16],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep.purs","end":[37,17]},[]],"tag":"TypeVar","contents":"a"}]}]},0]},1]}}},{"EDValue":{"edValueName":{"Ident":"from"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["rep",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["Data","Generic","Rep"],"Generic"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"a"},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"rep"}],"constraintData":null},{"annotation":[{"start":[38,11],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep.purs","end":[38,19]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[38,11],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep.purs","end":[38,19]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[38,13],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep.purs","end":[38,15]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[38,11],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep.purs","end":[38,12]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[38,16],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep.purs","end":[38,19]},[]],"tag":"TypeVar","contents":"rep"}]}]},5]},6]}}},{"EDType":{"edTypeName":"NoConstructors","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},"edTypeDeclarationKind":{"DataType":{"args":[],"ctors":[]}}}},{"EDType":{"edTypeName":"NoArguments","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},"edTypeDeclarationKind":{"DataType":{"args":[],"ctors":[["NoArguments",[]]]}}}},{"EDDataConstructor":{"edDataCtorName":"NoArguments","edDataCtorOrigin":"data","edDataCtorTypeCtor":"NoArguments","edDataCtorType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"NoArguments"]},"edDataCtorFields":[]}},{"EDType":{"edTypeName":"Sum","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[22,20],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep.purs","end":[22,21]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[22,28],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep.purs","end":[22,29]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]},"edTypeDeclarationKind":{"DataType":{"args":[["a",{"annotation":[{"start":[22,20],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep.purs","end":[22,21]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["b",{"annotation":[{"start":[22,28],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep.purs","end":[22,29]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]],"ctors":[["Inl",[{"annotation":[{"start":[22,20],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep.purs","end":[22,21]},[]],"tag":"TypeVar","contents":"a"}]],["Inr",[{"annotation":[{"start":[22,28],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep.purs","end":[22,29]},[]],"tag":"TypeVar","contents":"b"}]]]}}}},{"EDDataConstructor":{"edDataCtorName":"Inl","edDataCtorOrigin":"data","edDataCtorTypeCtor":"Sum","edDataCtorType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[22,20],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep.purs","end":[22,21]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"Sum"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"b"}]}]},null]},null]},"edDataCtorFields":[{"Ident":"value0"}]}},{"EDDataConstructor":{"edDataCtorName":"Inr","edDataCtorOrigin":"data","edDataCtorTypeCtor":"Sum","edDataCtorType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[22,28],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep.purs","end":[22,29]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"Sum"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"b"}]}]},null]},null]},"edDataCtorFields":[{"Ident":"value0"}]}},{"EDType":{"edTypeName":"Product","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[25,28],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep.purs","end":[25,29]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[25,30],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep.purs","end":[25,31]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]},"edTypeDeclarationKind":{"DataType":{"args":[["a",{"annotation":[{"start":[25,28],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep.purs","end":[25,29]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["b",{"annotation":[{"start":[25,30],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep.purs","end":[25,31]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]],"ctors":[["Product",[{"annotation":[{"start":[25,28],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep.purs","end":[25,29]},[]],"tag":"TypeVar","contents":"a"},{"annotation":[{"start":[25,30],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep.purs","end":[25,31]},[]],"tag":"TypeVar","contents":"b"}]]]}}}},{"EDDataConstructor":{"edDataCtorName":"Product","edDataCtorOrigin":"data","edDataCtorTypeCtor":"Product","edDataCtorType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[25,28],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep.purs","end":[25,29]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[25,30],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep.purs","end":[25,31]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"Product"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"b"}]}]}]},null]},null]},"edDataCtorFields":[{"Ident":"value0"},{"Ident":"value1"}]}},{"EDType":{"edTypeName":"Constructor","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[29,30],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep.purs","end":[29,36]},[]],"tag":"NamedKind","contents":[["Prim"],"Symbol"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[29,54],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep.purs","end":[29,55]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]},"edTypeDeclarationKind":{"DataType":{"args":[["name",{"annotation":[{"start":[29,30],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep.purs","end":[29,36]},[]],"tag":"NamedKind","contents":[["Prim"],"Symbol"]}],["a",{"annotation":[{"start":[29,54],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep.purs","end":[29,55]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]],"ctors":[["Constructor",[{"annotation":[{"start":[29,54],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep.purs","end":[29,55]},[]],"tag":"TypeVar","contents":"a"}]]]}}}},{"EDDataConstructor":{"edDataCtorName":"Constructor","edDataCtorOrigin":"newtype","edDataCtorTypeCtor":"Constructor","edDataCtorType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["name",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[29,54],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep.purs","end":[29,55]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"Constructor"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"name"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"a"}]}]},null]},null]},"edDataCtorFields":[{"Ident":"value0"}]}},{"EDType":{"edTypeName":"Argument","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[32,31],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep.purs","end":[32,32]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},"edTypeDeclarationKind":{"DataType":{"args":[["a",{"annotation":[{"start":[32,31],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep.purs","end":[32,32]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]],"ctors":[["Argument",[{"annotation":[{"start":[32,31],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep.purs","end":[32,32]},[]],"tag":"TypeVar","contents":"a"}]]]}}}},{"EDDataConstructor":{"edDataCtorName":"Argument","edDataCtorOrigin":"newtype","edDataCtorTypeCtor":"Argument","edDataCtorType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[32,31],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep.purs","end":[32,32]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"Argument"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"a"}]}]},null]},"edDataCtorFields":[{"Ident":"value0"}]}},{"EDInstance":{"edInstanceClassName":[["Data","Generic","Rep"],"Generic"],"edInstanceName":{"Ident":"genericMaybe"},"edInstanceTypes":[{"annotation":[{"start":[41,15],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep.purs","end":[41,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[41,15],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep.purs","end":[41,20]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[41,21],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep.purs","end":[41,22]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[41,25],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep.purs","end":[42,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[41,25],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep.purs","end":[41,64]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[41,25],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep.purs","end":[41,28]},[]],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"Sum"]},{"annotation":[{"start":[41,30],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep.purs","end":[41,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[41,30],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep.purs","end":[41,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[41,30],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep.purs","end":[41,41]},[]],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"Constructor"]},{"annotation":[{"start":[41,42],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep.purs","end":[41,51]},[]],"tag":"TypeLevelString","contents":"Nothing"}]},{"annotation":[{"start":[41,52],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep.purs","end":[41,63]},[]],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"NoArguments"]}]}]},{"annotation":[{"start":[42,30],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep.purs","end":[42,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[42,30],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep.purs","end":[42,48]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[42,30],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep.purs","end":[42,41]},[]],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"Constructor"]},{"annotation":[{"start":[42,42],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep.purs","end":[42,48]},[]],"tag":"TypeLevelString","contents":"Just"}]},{"annotation":[{"start":[42,50],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep.purs","end":[42,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[42,50],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep.purs","end":[42,58]},[]],"tag":"TypeConstructor","contents":[["Data","Generic","Rep"],"Argument"]},{"annotation":[{"start":[42,59],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep.purs","end":[42,60]},[]],"tag":"TypeVar","contents":"a"}]}]}]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Generic","Rep"],{"Ident":"genericMaybe"}]],"edInstanceChainIndex":0}}],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-generics-rep/src/Data/Generic/Rep.purs","end":[47,49]}}
diff --git a/tests/purs/publish/basic-example/output/Data.HeytingAlgebra.Generic/docs.json b/tests/purs/publish/basic-example/output/Data.HeytingAlgebra.Generic/docs.json
new file mode 100644
--- /dev/null
+++ b/tests/purs/publish/basic-example/output/Data.HeytingAlgebra.Generic/docs.json
@@ -0,0 +1,1 @@
+{"comments":null,"declarations":[{"children":[{"comments":null,"info":{"declType":"typeClassMember","type":{"annotation":[],"contents":"a","tag":"TypeVar"}},"sourceSpan":{"end":[9,18],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra/Generic.purs","start":[9,3]},"title":"genericFF'"},{"comments":null,"info":{"declType":"typeClassMember","type":{"annotation":[],"contents":"a","tag":"TypeVar"}},"sourceSpan":{"end":[10,18],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra/Generic.purs","start":[10,3]},"title":"genericTT'"},{"comments":null,"info":{"declType":"typeClassMember","type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[11,33],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra/Generic.purs","start":[11,3]},"title":"genericImplies'"},{"comments":null,"info":{"declType":"typeClassMember","type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[12,30],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra/Generic.purs","start":[12,3]},"title":"genericConj'"},{"comments":null,"info":{"declType":"typeClassMember","type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[13,30],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra/Generic.purs","start":[13,3]},"title":"genericDisj'"},{"comments":null,"info":{"declType":"typeClassMember","type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}},"sourceSpan":{"end":[14,24],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra/Generic.purs","start":[14,3]},"title":"genericNot'"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","HeytingAlgebra","Generic"],"GenericHeytingAlgebra"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Generic","Rep"],"NoArguments"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[22,30],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra/Generic.purs","start":[16,1]},"title":"genericHeytingAlgebraNoArguments"},{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","HeytingAlgebra"],"HeytingAlgebra"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","HeytingAlgebra","Generic"],"GenericHeytingAlgebra"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Generic","Rep"],"Argument"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[30,46],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra/Generic.purs","start":[24,1]},"title":"genericHeytingAlgebraArgument"},{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","HeytingAlgebra","Generic"],"GenericHeytingAlgebra"],"constraintData":null,"constraintKindArgs":[]},{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"b","tag":"TypeVar"}],"constraintClass":[["Data","HeytingAlgebra","Generic"],"GenericHeytingAlgebra"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","HeytingAlgebra","Generic"],"GenericHeytingAlgebra"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Generic","Rep"],"Product"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[38,70],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra/Generic.purs","start":[32,1]},"title":"genericHeytingAlgebraProduct"},{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","HeytingAlgebra","Generic"],"GenericHeytingAlgebra"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","HeytingAlgebra","Generic"],"GenericHeytingAlgebra"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Generic","Rep"],"Constructor"],"tag":"TypeConstructor"},{"annotation":[],"contents":"name","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[46,60],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra/Generic.purs","start":[40,1]},"title":"genericHeytingAlgebraConstructor"}],"comments":null,"info":{"arguments":[["a",null]],"declType":"typeClass","fundeps":[],"superclasses":[]},"kind":null,"sourceSpan":{"end":[14,24],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra/Generic.purs","start":[8,1]},"title":"GenericHeytingAlgebra"},{"children":[],"comments":"A `Generic` implementation of the `ff` member from the `HeytingAlgebra` type class.\n","info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"rep","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"},{"annotation":[],"contents":"rep","tag":"TypeVar"}],"constraintClass":[["Data","Generic","Rep"],"Generic"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"rep","tag":"TypeVar"}],"constraintClass":[["Data","HeytingAlgebra","Generic"],"GenericHeytingAlgebra"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"ConstrainedType"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[49,75],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra/Generic.purs","start":[49,1]},"title":"genericFF"},{"children":[],"comments":"A `Generic` implementation of the `tt` member from the `HeytingAlgebra` type class.\n","info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"rep","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"},{"annotation":[],"contents":"rep","tag":"TypeVar"}],"constraintClass":[["Data","Generic","Rep"],"Generic"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"rep","tag":"TypeVar"}],"constraintClass":[["Data","HeytingAlgebra","Generic"],"GenericHeytingAlgebra"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"ConstrainedType"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[53,75],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra/Generic.purs","start":[53,1]},"title":"genericTT"},{"children":[],"comments":"A `Generic` implementation of the `implies` member from the `HeytingAlgebra` type class.\n","info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"rep","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"},{"annotation":[],"contents":"rep","tag":"TypeVar"}],"constraintClass":[["Data","Generic","Rep"],"Generic"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"rep","tag":"TypeVar"}],"constraintClass":[["Data","HeytingAlgebra","Generic"],"GenericHeytingAlgebra"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"ConstrainedType"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[57,90],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra/Generic.purs","start":[57,1]},"title":"genericImplies"},{"children":[],"comments":"A `Generic` implementation of the `conj` member from the `HeytingAlgebra` type class.\n","info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"rep","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"},{"annotation":[],"contents":"rep","tag":"TypeVar"}],"constraintClass":[["Data","Generic","Rep"],"Generic"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"rep","tag":"TypeVar"}],"constraintClass":[["Data","HeytingAlgebra","Generic"],"GenericHeytingAlgebra"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"ConstrainedType"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[61,87],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra/Generic.purs","start":[61,1]},"title":"genericConj"},{"children":[],"comments":"A `Generic` implementation of the `disj` member from the `HeytingAlgebra` type class.\n","info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"rep","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"},{"annotation":[],"contents":"rep","tag":"TypeVar"}],"constraintClass":[["Data","Generic","Rep"],"Generic"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"rep","tag":"TypeVar"}],"constraintClass":[["Data","HeytingAlgebra","Generic"],"GenericHeytingAlgebra"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"ConstrainedType"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[65,87],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra/Generic.purs","start":[65,1]},"title":"genericDisj"},{"children":[],"comments":"A `Generic` implementation of the `not` member from the `HeytingAlgebra` type class.\n","info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"rep","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"},{"annotation":[],"contents":"rep","tag":"TypeVar"}],"constraintClass":[["Data","Generic","Rep"],"Generic"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"rep","tag":"TypeVar"}],"constraintClass":[["Data","HeytingAlgebra","Generic"],"GenericHeytingAlgebra"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"ConstrainedType"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[69,81],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra/Generic.purs","start":[69,1]},"title":"genericNot"}],"name":"Data.HeytingAlgebra.Generic","reExports":[]}
diff --git a/tests/purs/publish/basic-example/output/Data.HeytingAlgebra/docs.json b/tests/purs/publish/basic-example/output/Data.HeytingAlgebra/docs.json
--- a/tests/purs/publish/basic-example/output/Data.HeytingAlgebra/docs.json
+++ b/tests/purs/publish/basic-example/output/Data.HeytingAlgebra/docs.json
@@ -1,1 +1,1 @@
-{"reExports":[],"name":"Data.HeytingAlgebra","comments":null,"declarations":[{"children":[{"comments":null,"title":"ff","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeVar","contents":"a"}},"sourceSpan":{"start":[40,3],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[40,10]}},{"comments":null,"title":"tt","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeVar","contents":"a"}},"sourceSpan":{"start":[41,3],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[41,10]}},{"comments":null,"title":"implies","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[42,3],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[42,25]}},{"comments":null,"title":"conj","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[43,3],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[43,22]}},{"comments":null,"title":"disj","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[44,3],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[44,22]}},{"comments":null,"title":"not","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}},"sourceSpan":{"start":[45,3],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[45,16]}},{"comments":null,"title":"heytingAlgebraBoolean","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","HeytingAlgebra"],"HeytingAlgebra"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}},"sourceSpan":{"start":[50,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[56,16]}},{"comments":null,"title":"heytingAlgebraUnit","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","HeytingAlgebra"],"HeytingAlgebra"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}},"sourceSpan":{"start":[58,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[64,15]}},{"comments":null,"title":"heytingAlgebraFunction","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","HeytingAlgebra"],"HeytingAlgebra"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"b"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","HeytingAlgebra"],"HeytingAlgebra"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}},"sourceSpan":{"start":[66,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[72,22]}},{"comments":null,"title":"heytingAlgebraRecord","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Prim","RowList"],"RowToList"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"row"},{"annotation":[],"tag":"TypeVar","contents":"list"}],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","HeytingAlgebra"],"HeytingAlgebraRecord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"list"},{"annotation":[],"tag":"TypeVar","contents":"row"},{"annotation":[],"tag":"TypeVar","contents":"row"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","HeytingAlgebra"],"HeytingAlgebra"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"TypeVar","contents":"row"}]}]}},"sourceSpan":{"start":[74,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[80,45]}}],"comments":"The `HeytingAlgebra` type class represents types that are bounded lattices with\nan implication operator such that the following laws hold:\n\n- Associativity:\n  - `a || (b || c) = (a || b) || c`\n  - `a && (b && c) = (a && b) && c`\n- Commutativity:\n  - `a || b = b || a`\n  - `a && b = b && a`\n- Absorption:\n  - `a || (a && b) = a`\n  - `a && (a || b) = a`\n- Idempotent:\n  - `a || a = a`\n  - `a && a = a`\n- Identity:\n  - `a || ff = a`\n  - `a && tt = a`\n- Implication:\n  - ``a `implies` a = tt``\n  - ``a && (a `implies` b) = a && b``\n  - ``b && (a `implies` b) = b``\n  - ``a `implies` (b && c) = (a `implies` b) && (a `implies` c)``\n- Complemented:\n  - ``not a = a `implies` ff``\n","title":"HeytingAlgebra","info":{"fundeps":[],"arguments":[["a",null]],"declType":"typeClass","superclasses":[]},"sourceSpan":{"start":[39,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[45,16]}},{"children":[],"comments":null,"title":"(&&)","info":{"declType":"alias","alias":[["Data","HeytingAlgebra"],{"Right":{"Left":{"Ident":"conj"}}}],"fixity":{"associativity":"infixr","precedence":3}},"sourceSpan":{"start":[47,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[47,20]}},{"children":[],"comments":null,"title":"(||)","info":{"declType":"alias","alias":[["Data","HeytingAlgebra"],{"Right":{"Left":{"Ident":"disj"}}}],"fixity":{"associativity":"infixr","precedence":2}},"sourceSpan":{"start":[48,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[48,20]}},{"children":[{"comments":null,"title":"ffRecord","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Data","RowList"],"RLProxy"]},{"annotation":[],"tag":"TypeVar","contents":"rowlist"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Data","Row"],"RProxy"]},{"annotation":[],"tag":"TypeVar","contents":"row"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"TypeVar","contents":"subrow"}]}]}]}},"sourceSpan":{"start":[89,3],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[89,61]}},{"comments":null,"title":"ttRecord","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Data","RowList"],"RLProxy"]},{"annotation":[],"tag":"TypeVar","contents":"rowlist"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Data","Row"],"RProxy"]},{"annotation":[],"tag":"TypeVar","contents":"row"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"TypeVar","contents":"subrow"}]}]}]}},"sourceSpan":{"start":[90,3],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[90,61]}},{"comments":null,"title":"impliesRecord","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Data","RowList"],"RLProxy"]},{"annotation":[],"tag":"TypeVar","contents":"rowlist"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"TypeVar","contents":"row"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"TypeVar","contents":"row"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"TypeVar","contents":"subrow"}]}]}]}]}},"sourceSpan":{"start":[91,3],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[91,80]}},{"comments":null,"title":"disjRecord","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Data","RowList"],"RLProxy"]},{"annotation":[],"tag":"TypeVar","contents":"rowlist"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"TypeVar","contents":"row"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"TypeVar","contents":"row"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"TypeVar","contents":"subrow"}]}]}]}]}},"sourceSpan":{"start":[92,3],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[92,77]}},{"comments":null,"title":"conjRecord","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Data","RowList"],"RLProxy"]},{"annotation":[],"tag":"TypeVar","contents":"rowlist"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"TypeVar","contents":"row"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"TypeVar","contents":"row"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"TypeVar","contents":"subrow"}]}]}]}]}},"sourceSpan":{"start":[93,3],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[93,77]}},{"comments":null,"title":"notRecord","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Data","RowList"],"RLProxy"]},{"annotation":[],"tag":"TypeVar","contents":"rowlist"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"TypeVar","contents":"row"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"TypeVar","contents":"subrow"}]}]}]}},"sourceSpan":{"start":[94,3],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[94,62]}},{"comments":null,"title":"heytingAlgebraRecordNil","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","HeytingAlgebra"],"HeytingAlgebraRecord"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim","RowList"],"Nil"]}]},{"annotation":[],"tag":"TypeVar","contents":"row"}]},{"annotation":[],"tag":"REmpty"}]}},"sourceSpan":{"start":[96,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[102,20]}},{"comments":null,"title":"heytingAlgebraRecordCons","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Symbol"],"IsSymbol"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"key"}],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Prim","Row"],"Cons"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"key"},{"annotation":[],"tag":"TypeVar","contents":"focus"},{"annotation":[],"tag":"TypeVar","contents":"subrowTail"},{"annotation":[],"tag":"TypeVar","contents":"subrow"}],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","HeytingAlgebra"],"HeytingAlgebraRecord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"rowlistTail"},{"annotation":[],"tag":"TypeVar","contents":"row"},{"annotation":[],"tag":"TypeVar","contents":"subrowTail"}],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","HeytingAlgebra"],"HeytingAlgebra"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"focus"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","HeytingAlgebra"],"HeytingAlgebraRecord"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim","RowList"],"Cons"]},{"annotation":[],"tag":"TypeVar","contents":"key"}]},{"annotation":[],"tag":"TypeVar","contents":"focus"}]},{"annotation":[],"tag":"TypeVar","contents":"rowlistTail"}]}]},{"annotation":[],"tag":"TypeVar","contents":"row"}]},{"annotation":[],"tag":"TypeVar","contents":"subrow"}]}},"sourceSpan":{"start":[104,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[150,59]}}],"comments":"A class for records where all fields have `HeytingAlgebra` instances, used\nto implement the `HeytingAlgebra` instance for records.\n","title":"HeytingAlgebraRecord","info":{"fundeps":[[["rowlist"],["subrow"]]],"arguments":[["rowlist",null],["row",null],["subrow",null]],"declType":"typeClass","superclasses":[]},"sourceSpan":{"start":[88,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[94,62]}}]}
+{"comments":null,"declarations":[{"children":[{"comments":null,"info":{"declType":"typeClassMember","type":{"annotation":[],"contents":"a","tag":"TypeVar"}},"sourceSpan":{"end":[53,10],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","start":[53,3]},"title":"ff"},{"comments":null,"info":{"declType":"typeClassMember","type":{"annotation":[],"contents":"a","tag":"TypeVar"}},"sourceSpan":{"end":[54,10],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","start":[54,3]},"title":"tt"},{"comments":null,"info":{"declType":"typeClassMember","type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[55,25],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","start":[55,3]},"title":"implies"},{"comments":null,"info":{"declType":"typeClassMember","type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[56,22],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","start":[56,3]},"title":"conj"},{"comments":null,"info":{"declType":"typeClassMember","type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[57,22],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","start":[57,3]},"title":"disj"},{"comments":null,"info":{"declType":"typeClassMember","type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}},"sourceSpan":{"end":[58,16],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","start":[58,3]},"title":"not"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","HeytingAlgebra"],"HeytingAlgebra"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Boolean"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[69,16],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","start":[63,1]},"title":"heytingAlgebraBoolean"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","HeytingAlgebra"],"HeytingAlgebra"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Unit"],"Unit"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[77,15],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","start":[71,1]},"title":"heytingAlgebraUnit"},{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"b","tag":"TypeVar"}],"constraintClass":[["Data","HeytingAlgebra"],"HeytingAlgebra"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","HeytingAlgebra"],"HeytingAlgebra"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[85,22],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","start":[79,1]},"title":"heytingAlgebraFunction"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","HeytingAlgebra"],"HeytingAlgebra"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Type","Proxy"],"Proxy"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[93,13],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","start":[87,1]},"title":"heytingAlgebraProxy"},{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"row","tag":"TypeVar"},{"annotation":[],"contents":"list","tag":"TypeVar"}],"constraintClass":[["Prim","RowList"],"RowToList"],"constraintData":null,"constraintKindArgs":[]},{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"list","tag":"TypeVar"},{"annotation":[],"contents":"row","tag":"TypeVar"},{"annotation":[],"contents":"row","tag":"TypeVar"}],"constraintClass":[["Data","HeytingAlgebra"],"HeytingAlgebraRecord"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","HeytingAlgebra"],"HeytingAlgebra"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Record"],"tag":"TypeConstructor"},{"annotation":[],"contents":"row","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[101,40],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","start":[95,1]},"title":"heytingAlgebraRecord"}],"comments":"The `HeytingAlgebra` type class represents types that are bounded lattices with\nan implication operator such that the following laws hold:\n\n- Associativity:\n  - `a || (b || c) = (a || b) || c`\n  - `a && (b && c) = (a && b) && c`\n- Commutativity:\n  - `a || b = b || a`\n  - `a && b = b && a`\n- Absorption:\n  - `a || (a && b) = a`\n  - `a && (a || b) = a`\n- Idempotent:\n  - `a || a = a`\n  - `a && a = a`\n- Identity:\n  - `a || ff = a`\n  - `a && tt = a`\n- Implication:\n  - ``a `implies` a = tt``\n  - ``a && (a `implies` b) = a && b``\n  - ``b && (a `implies` b) = b``\n  - ``a `implies` (b && c) = (a `implies` b) && (a `implies` c)``\n- Complemented:\n  - ``not a = a `implies` ff``\n","info":{"arguments":[["a",null]],"declType":"typeClass","fundeps":[],"superclasses":[]},"kind":null,"sourceSpan":{"end":[58,16],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","start":[52,1]},"title":"HeytingAlgebra"},{"children":[],"comments":null,"info":{"alias":[["Data","HeytingAlgebra"],{"Right":{"Left":{"Ident":"conj"}}}],"declType":"alias","fixity":{"associativity":"infixr","precedence":3}},"kind":null,"sourceSpan":{"end":[60,20],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","start":[60,1]},"title":"(&&)"},{"children":[],"comments":null,"info":{"alias":[["Data","HeytingAlgebra"],{"Right":{"Left":{"Ident":"disj"}}}],"declType":"alias","fixity":{"associativity":"infixr","precedence":2}},"kind":null,"sourceSpan":{"end":[61,20],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","start":[61,1]},"title":"(||)"},{"children":[{"comments":null,"info":{"declType":"typeClassMember","type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Type","Proxy"],"Proxy"],"tag":"TypeConstructor"},{"annotation":[],"contents":"rowlist","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Type","Proxy"],"Proxy"],"tag":"TypeConstructor"},{"annotation":[],"contents":"row","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Record"],"tag":"TypeConstructor"},{"annotation":[],"contents":"subrow","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[111,58],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","start":[111,3]},"title":"ffRecord"},{"comments":null,"info":{"declType":"typeClassMember","type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Type","Proxy"],"Proxy"],"tag":"TypeConstructor"},{"annotation":[],"contents":"rowlist","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Type","Proxy"],"Proxy"],"tag":"TypeConstructor"},{"annotation":[],"contents":"row","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Record"],"tag":"TypeConstructor"},{"annotation":[],"contents":"subrow","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[112,58],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","start":[112,3]},"title":"ttRecord"},{"comments":null,"info":{"declType":"typeClassMember","type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Type","Proxy"],"Proxy"],"tag":"TypeConstructor"},{"annotation":[],"contents":"rowlist","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Record"],"tag":"TypeConstructor"},{"annotation":[],"contents":"row","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Record"],"tag":"TypeConstructor"},{"annotation":[],"contents":"row","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Record"],"tag":"TypeConstructor"},{"annotation":[],"contents":"subrow","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[113,78],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","start":[113,3]},"title":"impliesRecord"},{"comments":null,"info":{"declType":"typeClassMember","type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Type","Proxy"],"Proxy"],"tag":"TypeConstructor"},{"annotation":[],"contents":"rowlist","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Record"],"tag":"TypeConstructor"},{"annotation":[],"contents":"row","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Record"],"tag":"TypeConstructor"},{"annotation":[],"contents":"row","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Record"],"tag":"TypeConstructor"},{"annotation":[],"contents":"subrow","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[114,75],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","start":[114,3]},"title":"disjRecord"},{"comments":null,"info":{"declType":"typeClassMember","type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Type","Proxy"],"Proxy"],"tag":"TypeConstructor"},{"annotation":[],"contents":"rowlist","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Record"],"tag":"TypeConstructor"},{"annotation":[],"contents":"row","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Record"],"tag":"TypeConstructor"},{"annotation":[],"contents":"row","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Record"],"tag":"TypeConstructor"},{"annotation":[],"contents":"subrow","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[115,75],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","start":[115,3]},"title":"conjRecord"},{"comments":null,"info":{"declType":"typeClassMember","type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Type","Proxy"],"Proxy"],"tag":"TypeConstructor"},{"annotation":[],"contents":"rowlist","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Record"],"tag":"TypeConstructor"},{"annotation":[],"contents":"row","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Record"],"tag":"TypeConstructor"},{"annotation":[],"contents":"subrow","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[116,60],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","start":[116,3]},"title":"notRecord"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","HeytingAlgebra"],"HeytingAlgebraRecord"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim","RowList"],"Nil"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":"row","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"tag":"REmpty"}],"tag":"TypeApp"}},"sourceSpan":{"end":[124,20],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","start":[118,1]},"title":"heytingAlgebraRecordNil"},{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"key","tag":"TypeVar"}],"constraintClass":[["Data","Symbol"],"IsSymbol"],"constraintData":null,"constraintKindArgs":[]},{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"key","tag":"TypeVar"},{"annotation":[],"contents":"focus","tag":"TypeVar"},{"annotation":[],"contents":"subrowTail","tag":"TypeVar"},{"annotation":[],"contents":"subrow","tag":"TypeVar"}],"constraintClass":[["Prim","Row"],"Cons"],"constraintData":null,"constraintKindArgs":[]},{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"rowlistTail","tag":"TypeVar"},{"annotation":[],"contents":"row","tag":"TypeVar"},{"annotation":[],"contents":"subrowTail","tag":"TypeVar"}],"constraintClass":[["Data","HeytingAlgebra"],"HeytingAlgebraRecord"],"constraintData":null,"constraintKindArgs":[]},{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"focus","tag":"TypeVar"}],"constraintClass":[["Data","HeytingAlgebra"],"HeytingAlgebra"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","HeytingAlgebra"],"HeytingAlgebraRecord"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim","RowList"],"Cons"],"tag":"TypeConstructor"},{"annotation":[],"contents":"key","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"focus","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"rowlistTail","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":"row","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"subrow","tag":"TypeVar"}],"tag":"TypeApp"}},"sourceSpan":{"end":[171,53],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","start":[126,1]},"title":"heytingAlgebraRecordCons"}],"comments":"A class for records where all fields have `HeytingAlgebra` instances, used\nto implement the `HeytingAlgebra` instance for records.\n","info":{"arguments":[["rowlist",null],["row",null],["subrow",null]],"declType":"typeClass","fundeps":[[["rowlist"],["subrow"]]],"superclasses":[]},"kind":{"keyword":"class","kind":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim","RowList"],"RowList"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Row"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Row"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim"],"Constraint"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[116,60],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","start":[110,1]},"title":"HeytingAlgebraRecord"}],"name":"Data.HeytingAlgebra","reExports":[]}
diff --git a/tests/purs/publish/basic-example/output/Data.HeytingAlgebra/externs.json b/tests/purs/publish/basic-example/output/Data.HeytingAlgebra/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.HeytingAlgebra/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Data","HeytingAlgebra"],"efExports":[{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[150,59]},"HeytingAlgebra"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[150,59]},{"Ident":"tt"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[150,59]},{"Ident":"ff"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[150,59]},{"Ident":"implies"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[150,59]},{"Ident":"conj"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[150,59]},{"Ident":"disj"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[150,59]},{"Ident":"not"}]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[150,59]},"&&"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[150,59]},"||"]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[150,59]},"HeytingAlgebraRecord"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[150,59]},{"Ident":"ffRecord"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[150,59]},{"Ident":"ttRecord"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[150,59]},{"Ident":"impliesRecord"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[150,59]},{"Ident":"conjRecord"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[150,59]},{"Ident":"disjRecord"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[150,59]},{"Ident":"notRecord"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"heytingAlgebraBoolean"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"heytingAlgebraUnit"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"heytingAlgebraFunction"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"heytingAlgebraRecord"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"heytingAlgebraRecordNil"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"heytingAlgebraRecordCons"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Data","Symbol"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[6,21],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[6,35]},"IsSymbol"]},{"TypeRef":[{"start":[6,37],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[6,47]},"SProxy",null]},{"ValueRef":[{"start":[6,49],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[6,62]},{"Ident":"reflectSymbol"}]}]},"eiImportedAs":null},{"eiModule":["Data","Unit"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[7,19],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[7,23]},"Unit",[]]},{"ValueRef":[{"start":[7,25],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[7,29]},{"Ident":"unit"}]}]},"eiImportedAs":null},{"eiModule":["Prim","Row"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Row"]},{"eiModule":["Prim","RowList"],"eiImportType":{"Implicit":[]},"eiImportedAs":["RL"]},{"eiModule":["Record","Unsafe"],"eiImportType":{"Explicit":[{"ValueRef":[{"start":[10,23],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[10,32]},{"Ident":"unsafeGet"}]},{"ValueRef":[{"start":[10,34],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[10,43]},{"Ident":"unsafeSet"}]}]},"eiImportedAs":null},{"eiModule":["Type","Data","Row"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[11,23],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[11,33]},"RProxy",null]}]},"eiImportedAs":null},{"eiModule":["Type","Data","RowList"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[12,27],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[12,38]},"RLProxy",null]}]},"eiImportedAs":null}],"efFixities":[{"efAssociativity":"infixr","efPrecedence":3,"efOperator":"&&","efAlias":[["Data","HeytingAlgebra"],{"Left":{"Ident":"conj"}}]},{"efAssociativity":"infixr","efPrecedence":2,"efOperator":"||","efAlias":[["Data","HeytingAlgebra"],{"Left":{"Ident":"disj"}}]}],"efTypeFixities":[],"efDeclarations":[{"EDType":{"edTypeName":"HeytingAlgebra","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[42,16],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[42,18]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"HeytingAlgebra","edTypeSynonymArguments":[["a",null]],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["ff",{"annotation":[{"start":[40,9],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[40,10]},[]],"tag":"TypeVar","contents":"a"},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["tt",{"annotation":[{"start":[41,9],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[41,10]},[]],"tag":"TypeVar","contents":"a"},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["implies",{"annotation":[{"start":[42,14],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[42,25]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[42,14],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[42,25]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[42,16],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[42,18]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[42,14],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[42,15]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[42,19],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[42,25]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[42,19],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[42,25]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[42,21],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[42,23]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[42,19],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[42,20]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[42,24],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[42,25]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["conj",{"annotation":[{"start":[43,11],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[43,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[43,11],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[43,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[43,13],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[43,15]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[43,11],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[43,12]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[43,16],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[43,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[43,16],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[43,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[43,18],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[43,20]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[43,16],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[43,17]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[43,21],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[43,22]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["disj",{"annotation":[{"start":[44,11],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[44,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[44,11],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[44,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[44,13],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[44,15]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[44,11],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[44,12]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[44,16],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[44,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[44,16],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[44,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[44,18],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[44,20]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[44,16],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[44,17]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[44,21],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[44,22]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["not",{"annotation":[{"start":[45,10],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[45,16]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[45,10],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[45,16]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[45,12],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[45,14]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[45,10],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[45,11]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[45,15],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[45,16]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]}]}]}]}]}]}}},{"EDClass":{"edClassName":"HeytingAlgebra","edClassTypeArguments":[["a",null]],"edClassMembers":[[{"Ident":"ff"},{"annotation":[{"start":[40,9],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[40,10]},[]],"tag":"TypeVar","contents":"a"}],[{"Ident":"tt"},{"annotation":[{"start":[41,9],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[41,10]},[]],"tag":"TypeVar","contents":"a"}],[{"Ident":"implies"},{"annotation":[{"start":[42,14],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[42,25]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[42,14],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[42,25]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[42,16],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[42,18]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[42,14],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[42,15]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[42,19],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[42,25]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[42,19],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[42,25]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[42,21],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[42,23]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[42,19],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[42,20]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[42,24],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[42,25]},[]],"tag":"TypeVar","contents":"a"}]}]}],[{"Ident":"conj"},{"annotation":[{"start":[43,11],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[43,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[43,11],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[43,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[43,13],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[43,15]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[43,11],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[43,12]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[43,16],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[43,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[43,16],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[43,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[43,18],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[43,20]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[43,16],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[43,17]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[43,21],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[43,22]},[]],"tag":"TypeVar","contents":"a"}]}]}],[{"Ident":"disj"},{"annotation":[{"start":[44,11],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[44,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[44,11],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[44,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[44,13],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[44,15]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[44,11],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[44,12]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[44,16],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[44,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[44,16],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[44,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[44,18],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[44,20]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[44,16],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[44,17]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[44,21],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[44,22]},[]],"tag":"TypeVar","contents":"a"}]}]}],[{"Ident":"not"},{"annotation":[{"start":[45,10],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[45,16]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[45,10],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[45,16]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[45,12],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[45,14]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[45,10],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[45,11]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[45,15],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[45,16]},[]],"tag":"TypeVar","contents":"a"}]}]],"edClassConstraints":[],"edFunctionalDependencies":[]}},{"EDValue":{"edValueName":{"Ident":"tt"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["Data","HeytingAlgebra"],"HeytingAlgebra"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[41,9],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[41,10]},[]],"tag":"TypeVar","contents":"a"}]},3]}}},{"EDValue":{"edValueName":{"Ident":"ff"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["Data","HeytingAlgebra"],"HeytingAlgebra"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[40,9],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[40,10]},[]],"tag":"TypeVar","contents":"a"}]},17]}}},{"EDValue":{"edValueName":{"Ident":"implies"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["Data","HeytingAlgebra"],"HeytingAlgebra"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[42,14],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[42,25]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[42,14],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[42,25]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[42,16],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[42,18]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[42,14],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[42,15]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[42,19],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[42,25]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[42,19],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[42,25]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[42,21],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[42,23]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[42,19],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[42,20]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[42,24],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[42,25]},[]],"tag":"TypeVar","contents":"a"}]}]}]},11]}}},{"EDValue":{"edValueName":{"Ident":"conj"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["Data","HeytingAlgebra"],"HeytingAlgebra"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[43,11],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[43,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[43,11],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[43,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[43,13],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[43,15]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[43,11],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[43,12]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[43,16],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[43,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[43,16],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[43,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[43,18],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[43,20]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[43,16],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[43,17]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[43,21],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[43,22]},[]],"tag":"TypeVar","contents":"a"}]}]}]},37]}}},{"EDValue":{"edValueName":{"Ident":"disj"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["Data","HeytingAlgebra"],"HeytingAlgebra"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[44,11],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[44,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[44,11],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[44,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[44,13],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[44,15]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[44,11],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[44,12]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[44,16],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[44,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[44,16],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[44,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[44,18],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[44,20]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[44,16],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[44,17]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[44,21],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[44,22]},[]],"tag":"TypeVar","contents":"a"}]}]}]},21]}}},{"EDValue":{"edValueName":{"Ident":"not"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["Data","HeytingAlgebra"],"HeytingAlgebra"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[45,10],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[45,16]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[45,10],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[45,16]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[45,12],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[45,14]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[45,10],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[45,11]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[45,15],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[45,16]},[]],"tag":"TypeVar","contents":"a"}]}]},7]}}},{"EDType":{"edTypeName":"HeytingAlgebraRecord","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[89,15],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[89,22]},[]],"tag":"NamedKind","contents":[["Prim","RowList"],"RowList"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[89,34],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[89,40]},[]],"tag":"Row","contents":{"annotation":[{"start":[89,34],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[89,40]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[89,48],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[89,54]},[]],"tag":"Row","contents":{"annotation":[{"start":[89,48],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[89,54]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"HeytingAlgebraRecord","edTypeSynonymArguments":[["rowlist",null],["row",null],["subrow",null]],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["ffRecord",{"annotation":[{"start":[89,15],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[89,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[89,15],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[89,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[89,31],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[89,33]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[89,15],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[89,30]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[89,15],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[89,22]},[]],"tag":"TypeConstructor","contents":[["Type","Data","RowList"],"RLProxy"]},{"annotation":[{"start":[89,23],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[89,30]},[]],"tag":"TypeVar","contents":"rowlist"}]}]},{"annotation":[{"start":[89,34],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[89,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[89,34],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[89,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[89,45],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[89,47]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[89,34],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[89,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[89,34],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[89,40]},[]],"tag":"TypeConstructor","contents":[["Type","Data","Row"],"RProxy"]},{"annotation":[{"start":[89,41],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[89,44]},[]],"tag":"TypeVar","contents":"row"}]}]},{"annotation":[{"start":[89,48],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[89,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[89,48],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[89,54]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[89,55],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[89,61]},[]],"tag":"TypeVar","contents":"subrow"}]}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["ttRecord",{"annotation":[{"start":[90,15],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[90,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[90,15],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[90,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[90,31],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[90,33]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[90,15],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[90,30]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[90,15],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[90,22]},[]],"tag":"TypeConstructor","contents":[["Type","Data","RowList"],"RLProxy"]},{"annotation":[{"start":[90,23],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[90,30]},[]],"tag":"TypeVar","contents":"rowlist"}]}]},{"annotation":[{"start":[90,34],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[90,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[90,34],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[90,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[90,45],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[90,47]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[90,34],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[90,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[90,34],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[90,40]},[]],"tag":"TypeConstructor","contents":[["Type","Data","Row"],"RProxy"]},{"annotation":[{"start":[90,41],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[90,44]},[]],"tag":"TypeVar","contents":"row"}]}]},{"annotation":[{"start":[90,48],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[90,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[90,48],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[90,54]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[90,55],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[90,61]},[]],"tag":"TypeVar","contents":"subrow"}]}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["impliesRecord",{"annotation":[{"start":[91,20],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[91,80]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[91,20],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[91,80]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[91,36],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[91,38]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[91,20],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[91,35]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[91,20],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[91,27]},[]],"tag":"TypeConstructor","contents":[["Type","Data","RowList"],"RLProxy"]},{"annotation":[{"start":[91,28],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[91,35]},[]],"tag":"TypeVar","contents":"rowlist"}]}]},{"annotation":[{"start":[91,39],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[91,80]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[91,39],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[91,80]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[91,50],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[91,52]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[91,39],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[91,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[91,39],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[91,45]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[91,46],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[91,49]},[]],"tag":"TypeVar","contents":"row"}]}]},{"annotation":[{"start":[91,53],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[91,80]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[91,53],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[91,80]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[91,64],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[91,66]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[91,53],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[91,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[91,53],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[91,59]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[91,60],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[91,63]},[]],"tag":"TypeVar","contents":"row"}]}]},{"annotation":[{"start":[91,67],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[91,80]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[91,67],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[91,73]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[91,74],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[91,80]},[]],"tag":"TypeVar","contents":"subrow"}]}]}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["disjRecord",{"annotation":[{"start":[92,17],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[92,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[92,17],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[92,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[92,33],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[92,35]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[92,17],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[92,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[92,17],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[92,24]},[]],"tag":"TypeConstructor","contents":[["Type","Data","RowList"],"RLProxy"]},{"annotation":[{"start":[92,25],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[92,32]},[]],"tag":"TypeVar","contents":"rowlist"}]}]},{"annotation":[{"start":[92,36],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[92,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[92,36],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[92,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[92,47],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[92,49]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[92,36],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[92,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[92,36],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[92,42]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[92,43],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[92,46]},[]],"tag":"TypeVar","contents":"row"}]}]},{"annotation":[{"start":[92,50],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[92,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[92,50],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[92,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[92,61],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[92,63]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[92,50],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[92,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[92,50],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[92,56]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[92,57],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[92,60]},[]],"tag":"TypeVar","contents":"row"}]}]},{"annotation":[{"start":[92,64],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[92,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[92,64],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[92,70]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[92,71],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[92,77]},[]],"tag":"TypeVar","contents":"subrow"}]}]}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["conjRecord",{"annotation":[{"start":[93,17],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[93,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[93,17],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[93,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[93,33],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[93,35]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[93,17],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[93,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[93,17],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[93,24]},[]],"tag":"TypeConstructor","contents":[["Type","Data","RowList"],"RLProxy"]},{"annotation":[{"start":[93,25],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[93,32]},[]],"tag":"TypeVar","contents":"rowlist"}]}]},{"annotation":[{"start":[93,36],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[93,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[93,36],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[93,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[93,47],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[93,49]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[93,36],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[93,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[93,36],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[93,42]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[93,43],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[93,46]},[]],"tag":"TypeVar","contents":"row"}]}]},{"annotation":[{"start":[93,50],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[93,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[93,50],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[93,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[93,61],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[93,63]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[93,50],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[93,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[93,50],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[93,56]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[93,57],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[93,60]},[]],"tag":"TypeVar","contents":"row"}]}]},{"annotation":[{"start":[93,64],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[93,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[93,64],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[93,70]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[93,71],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[93,77]},[]],"tag":"TypeVar","contents":"subrow"}]}]}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["notRecord",{"annotation":[{"start":[94,16],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[94,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[94,16],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[94,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[94,32],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[94,34]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[94,16],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[94,31]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[94,16],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[94,23]},[]],"tag":"TypeConstructor","contents":[["Type","Data","RowList"],"RLProxy"]},{"annotation":[{"start":[94,24],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[94,31]},[]],"tag":"TypeVar","contents":"rowlist"}]}]},{"annotation":[{"start":[94,35],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[94,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[94,35],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[94,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[94,46],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[94,48]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[94,35],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[94,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[94,35],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[94,41]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[94,42],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[94,45]},[]],"tag":"TypeVar","contents":"row"}]}]},{"annotation":[{"start":[94,49],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[94,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[94,49],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[94,55]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[94,56],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[94,62]},[]],"tag":"TypeVar","contents":"subrow"}]}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]}]}]}]}]}]}}},{"EDClass":{"edClassName":"HeytingAlgebraRecord","edClassTypeArguments":[["rowlist",null],["row",null],["subrow",null]],"edClassMembers":[[{"Ident":"ffRecord"},{"annotation":[{"start":[89,15],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[89,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[89,15],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[89,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[89,31],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[89,33]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[89,15],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[89,30]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[89,15],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[89,22]},[]],"tag":"TypeConstructor","contents":[["Type","Data","RowList"],"RLProxy"]},{"annotation":[{"start":[89,23],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[89,30]},[]],"tag":"TypeVar","contents":"rowlist"}]}]},{"annotation":[{"start":[89,34],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[89,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[89,34],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[89,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[89,45],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[89,47]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[89,34],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[89,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[89,34],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[89,40]},[]],"tag":"TypeConstructor","contents":[["Type","Data","Row"],"RProxy"]},{"annotation":[{"start":[89,41],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[89,44]},[]],"tag":"TypeVar","contents":"row"}]}]},{"annotation":[{"start":[89,48],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[89,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[89,48],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[89,54]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[89,55],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[89,61]},[]],"tag":"TypeVar","contents":"subrow"}]}]}]}],[{"Ident":"ttRecord"},{"annotation":[{"start":[90,15],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[90,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[90,15],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[90,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[90,31],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[90,33]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[90,15],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[90,30]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[90,15],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[90,22]},[]],"tag":"TypeConstructor","contents":[["Type","Data","RowList"],"RLProxy"]},{"annotation":[{"start":[90,23],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[90,30]},[]],"tag":"TypeVar","contents":"rowlist"}]}]},{"annotation":[{"start":[90,34],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[90,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[90,34],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[90,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[90,45],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[90,47]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[90,34],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[90,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[90,34],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[90,40]},[]],"tag":"TypeConstructor","contents":[["Type","Data","Row"],"RProxy"]},{"annotation":[{"start":[90,41],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[90,44]},[]],"tag":"TypeVar","contents":"row"}]}]},{"annotation":[{"start":[90,48],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[90,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[90,48],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[90,54]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[90,55],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[90,61]},[]],"tag":"TypeVar","contents":"subrow"}]}]}]}],[{"Ident":"impliesRecord"},{"annotation":[{"start":[91,20],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[91,80]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[91,20],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[91,80]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[91,36],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[91,38]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[91,20],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[91,35]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[91,20],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[91,27]},[]],"tag":"TypeConstructor","contents":[["Type","Data","RowList"],"RLProxy"]},{"annotation":[{"start":[91,28],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[91,35]},[]],"tag":"TypeVar","contents":"rowlist"}]}]},{"annotation":[{"start":[91,39],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[91,80]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[91,39],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[91,80]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[91,50],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[91,52]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[91,39],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[91,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[91,39],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[91,45]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[91,46],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[91,49]},[]],"tag":"TypeVar","contents":"row"}]}]},{"annotation":[{"start":[91,53],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[91,80]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[91,53],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[91,80]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[91,64],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[91,66]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[91,53],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[91,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[91,53],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[91,59]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[91,60],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[91,63]},[]],"tag":"TypeVar","contents":"row"}]}]},{"annotation":[{"start":[91,67],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[91,80]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[91,67],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[91,73]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[91,74],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[91,80]},[]],"tag":"TypeVar","contents":"subrow"}]}]}]}]}],[{"Ident":"disjRecord"},{"annotation":[{"start":[92,17],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[92,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[92,17],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[92,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[92,33],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[92,35]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[92,17],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[92,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[92,17],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[92,24]},[]],"tag":"TypeConstructor","contents":[["Type","Data","RowList"],"RLProxy"]},{"annotation":[{"start":[92,25],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[92,32]},[]],"tag":"TypeVar","contents":"rowlist"}]}]},{"annotation":[{"start":[92,36],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[92,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[92,36],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[92,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[92,47],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[92,49]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[92,36],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[92,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[92,36],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[92,42]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[92,43],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[92,46]},[]],"tag":"TypeVar","contents":"row"}]}]},{"annotation":[{"start":[92,50],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[92,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[92,50],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[92,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[92,61],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[92,63]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[92,50],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[92,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[92,50],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[92,56]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[92,57],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[92,60]},[]],"tag":"TypeVar","contents":"row"}]}]},{"annotation":[{"start":[92,64],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[92,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[92,64],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[92,70]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[92,71],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[92,77]},[]],"tag":"TypeVar","contents":"subrow"}]}]}]}]}],[{"Ident":"conjRecord"},{"annotation":[{"start":[93,17],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[93,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[93,17],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[93,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[93,33],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[93,35]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[93,17],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[93,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[93,17],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[93,24]},[]],"tag":"TypeConstructor","contents":[["Type","Data","RowList"],"RLProxy"]},{"annotation":[{"start":[93,25],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[93,32]},[]],"tag":"TypeVar","contents":"rowlist"}]}]},{"annotation":[{"start":[93,36],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[93,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[93,36],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[93,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[93,47],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[93,49]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[93,36],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[93,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[93,36],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[93,42]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[93,43],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[93,46]},[]],"tag":"TypeVar","contents":"row"}]}]},{"annotation":[{"start":[93,50],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[93,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[93,50],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[93,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[93,61],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[93,63]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[93,50],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[93,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[93,50],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[93,56]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[93,57],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[93,60]},[]],"tag":"TypeVar","contents":"row"}]}]},{"annotation":[{"start":[93,64],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[93,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[93,64],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[93,70]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[93,71],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[93,77]},[]],"tag":"TypeVar","contents":"subrow"}]}]}]}]}],[{"Ident":"notRecord"},{"annotation":[{"start":[94,16],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[94,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[94,16],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[94,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[94,32],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[94,34]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[94,16],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[94,31]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[94,16],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[94,23]},[]],"tag":"TypeConstructor","contents":[["Type","Data","RowList"],"RLProxy"]},{"annotation":[{"start":[94,24],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[94,31]},[]],"tag":"TypeVar","contents":"rowlist"}]}]},{"annotation":[{"start":[94,35],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[94,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[94,35],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[94,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[94,46],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[94,48]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[94,35],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[94,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[94,35],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[94,41]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[94,42],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[94,45]},[]],"tag":"TypeVar","contents":"row"}]}]},{"annotation":[{"start":[94,49],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[94,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[94,49],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[94,55]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[94,56],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[94,62]},[]],"tag":"TypeVar","contents":"subrow"}]}]}]}]],"edClassConstraints":[],"edFunctionalDependencies":[{"determiners":[0],"determined":[2]}]}},{"EDValue":{"edValueName":{"Ident":"ffRecord"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["rowlist",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["row",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["subrow",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["Data","HeytingAlgebra"],"HeytingAlgebraRecord"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"rowlist"},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"row"},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"subrow"}],"constraintData":null},{"annotation":[{"start":[89,15],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[89,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[89,15],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[89,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[89,31],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[89,33]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[89,15],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[89,30]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[89,15],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[89,22]},[]],"tag":"TypeConstructor","contents":[["Type","Data","RowList"],"RLProxy"]},{"annotation":[{"start":[89,23],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[89,30]},[]],"tag":"TypeVar","contents":"rowlist"}]}]},{"annotation":[{"start":[89,34],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[89,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[89,34],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[89,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[89,45],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[89,47]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[89,34],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[89,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[89,34],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[89,40]},[]],"tag":"TypeConstructor","contents":[["Type","Data","Row"],"RProxy"]},{"annotation":[{"start":[89,41],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[89,44]},[]],"tag":"TypeVar","contents":"row"}]}]},{"annotation":[{"start":[89,48],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[89,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[89,48],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[89,54]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[89,55],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[89,61]},[]],"tag":"TypeVar","contents":"subrow"}]}]}]}]},14]},15]},16]}}},{"EDValue":{"edValueName":{"Ident":"ttRecord"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["rowlist",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["row",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["subrow",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["Data","HeytingAlgebra"],"HeytingAlgebraRecord"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"rowlist"},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"row"},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"subrow"}],"constraintData":null},{"annotation":[{"start":[90,15],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[90,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[90,15],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[90,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[90,31],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[90,33]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[90,15],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[90,30]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[90,15],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[90,22]},[]],"tag":"TypeConstructor","contents":[["Type","Data","RowList"],"RLProxy"]},{"annotation":[{"start":[90,23],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[90,30]},[]],"tag":"TypeVar","contents":"rowlist"}]}]},{"annotation":[{"start":[90,34],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[90,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[90,34],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[90,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[90,45],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[90,47]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[90,34],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[90,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[90,34],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[90,40]},[]],"tag":"TypeConstructor","contents":[["Type","Data","Row"],"RProxy"]},{"annotation":[{"start":[90,41],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[90,44]},[]],"tag":"TypeVar","contents":"row"}]}]},{"annotation":[{"start":[90,48],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[90,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[90,48],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[90,54]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[90,55],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[90,61]},[]],"tag":"TypeVar","contents":"subrow"}]}]}]}]},0]},1]},2]}}},{"EDValue":{"edValueName":{"Ident":"impliesRecord"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["rowlist",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["row",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["subrow",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["Data","HeytingAlgebra"],"HeytingAlgebraRecord"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"rowlist"},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"row"},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"subrow"}],"constraintData":null},{"annotation":[{"start":[91,20],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[91,80]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[91,20],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[91,80]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[91,36],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[91,38]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[91,20],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[91,35]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[91,20],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[91,27]},[]],"tag":"TypeConstructor","contents":[["Type","Data","RowList"],"RLProxy"]},{"annotation":[{"start":[91,28],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[91,35]},[]],"tag":"TypeVar","contents":"rowlist"}]}]},{"annotation":[{"start":[91,39],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[91,80]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[91,39],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[91,80]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[91,50],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[91,52]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[91,39],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[91,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[91,39],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[91,45]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[91,46],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[91,49]},[]],"tag":"TypeVar","contents":"row"}]}]},{"annotation":[{"start":[91,53],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[91,80]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[91,53],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[91,80]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[91,64],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[91,66]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[91,53],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[91,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[91,53],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[91,59]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[91,60],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[91,63]},[]],"tag":"TypeVar","contents":"row"}]}]},{"annotation":[{"start":[91,67],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[91,80]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[91,67],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[91,73]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[91,74],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[91,80]},[]],"tag":"TypeVar","contents":"subrow"}]}]}]}]}]},8]},9]},10]}}},{"EDValue":{"edValueName":{"Ident":"conjRecord"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["rowlist",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["row",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["subrow",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["Data","HeytingAlgebra"],"HeytingAlgebraRecord"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"rowlist"},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"row"},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"subrow"}],"constraintData":null},{"annotation":[{"start":[93,17],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[93,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[93,17],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[93,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[93,33],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[93,35]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[93,17],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[93,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[93,17],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[93,24]},[]],"tag":"TypeConstructor","contents":[["Type","Data","RowList"],"RLProxy"]},{"annotation":[{"start":[93,25],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[93,32]},[]],"tag":"TypeVar","contents":"rowlist"}]}]},{"annotation":[{"start":[93,36],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[93,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[93,36],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[93,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[93,47],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[93,49]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[93,36],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[93,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[93,36],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[93,42]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[93,43],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[93,46]},[]],"tag":"TypeVar","contents":"row"}]}]},{"annotation":[{"start":[93,50],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[93,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[93,50],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[93,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[93,61],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[93,63]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[93,50],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[93,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[93,50],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[93,56]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[93,57],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[93,60]},[]],"tag":"TypeVar","contents":"row"}]}]},{"annotation":[{"start":[93,64],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[93,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[93,64],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[93,70]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[93,71],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[93,77]},[]],"tag":"TypeVar","contents":"subrow"}]}]}]}]}]},22]},23]},24]}}},{"EDValue":{"edValueName":{"Ident":"disjRecord"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["rowlist",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["row",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["subrow",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["Data","HeytingAlgebra"],"HeytingAlgebraRecord"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"rowlist"},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"row"},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"subrow"}],"constraintData":null},{"annotation":[{"start":[92,17],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[92,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[92,17],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[92,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[92,33],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[92,35]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[92,17],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[92,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[92,17],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[92,24]},[]],"tag":"TypeConstructor","contents":[["Type","Data","RowList"],"RLProxy"]},{"annotation":[{"start":[92,25],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[92,32]},[]],"tag":"TypeVar","contents":"rowlist"}]}]},{"annotation":[{"start":[92,36],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[92,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[92,36],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[92,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[92,47],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[92,49]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[92,36],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[92,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[92,36],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[92,42]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[92,43],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[92,46]},[]],"tag":"TypeVar","contents":"row"}]}]},{"annotation":[{"start":[92,50],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[92,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[92,50],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[92,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[92,61],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[92,63]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[92,50],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[92,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[92,50],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[92,56]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[92,57],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[92,60]},[]],"tag":"TypeVar","contents":"row"}]}]},{"annotation":[{"start":[92,64],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[92,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[92,64],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[92,70]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[92,71],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[92,77]},[]],"tag":"TypeVar","contents":"subrow"}]}]}]}]}]},18]},19]},20]}}},{"EDValue":{"edValueName":{"Ident":"notRecord"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["rowlist",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["row",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["subrow",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["Data","HeytingAlgebra"],"HeytingAlgebraRecord"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"rowlist"},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"row"},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"subrow"}],"constraintData":null},{"annotation":[{"start":[94,16],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[94,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[94,16],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[94,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[94,32],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[94,34]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[94,16],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[94,31]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[94,16],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[94,23]},[]],"tag":"TypeConstructor","contents":[["Type","Data","RowList"],"RLProxy"]},{"annotation":[{"start":[94,24],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[94,31]},[]],"tag":"TypeVar","contents":"rowlist"}]}]},{"annotation":[{"start":[94,35],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[94,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[94,35],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[94,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[94,46],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[94,48]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[94,35],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[94,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[94,35],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[94,41]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[94,42],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[94,45]},[]],"tag":"TypeVar","contents":"row"}]}]},{"annotation":[{"start":[94,49],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[94,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[94,49],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[94,55]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[94,56],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[94,62]},[]],"tag":"TypeVar","contents":"subrow"}]}]}]}]},4]},5]},6]}}},{"EDInstance":{"edInstanceClassName":[["Data","HeytingAlgebra"],"HeytingAlgebra"],"edInstanceName":{"Ident":"heytingAlgebraBoolean"},"edInstanceTypes":[{"annotation":[{"start":[50,50],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[50,57]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","HeytingAlgebra"],{"Ident":"heytingAlgebraBoolean"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","HeytingAlgebra"],"HeytingAlgebra"],"edInstanceName":{"Ident":"heytingAlgebraUnit"},"edInstanceTypes":[{"annotation":[{"start":[58,47],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[58,51]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","HeytingAlgebra"],{"Ident":"heytingAlgebraUnit"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","HeytingAlgebra"],"HeytingAlgebra"],"edInstanceName":{"Ident":"heytingAlgebraFunction"},"edInstanceTypes":[{"annotation":[{"start":[66,72],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[66,78]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[66,72],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[66,78]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[66,74],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[66,76]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[66,72],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[66,73]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[66,77],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[66,78]},[]],"tag":"TypeVar","contents":"b"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[66,36],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[66,52]},[]],"constraintClass":[["Data","HeytingAlgebra"],"HeytingAlgebra"],"constraintArgs":[{"annotation":[{"start":[66,51],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[66,52]},[]],"tag":"TypeVar","contents":"b"}],"constraintData":null}],"edInstanceChain":[[["Data","HeytingAlgebra"],{"Ident":"heytingAlgebraFunction"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","HeytingAlgebra"],"HeytingAlgebra"],"edInstanceName":{"Ident":"heytingAlgebraRecord"},"edInstanceTypes":[{"annotation":[{"start":[74,112],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[74,122]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[74,112],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[74,118]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[74,119],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[74,122]},[]],"tag":"TypeVar","contents":"row"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[74,35],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[74,56]},[]],"constraintClass":[["Prim","RowList"],"RowToList"],"constraintArgs":[{"annotation":[{"start":[74,48],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[74,51]},[]],"tag":"TypeVar","contents":"row"},{"annotation":[{"start":[74,52],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[74,56]},[]],"tag":"TypeVar","contents":"list"}],"constraintData":null},{"constraintAnn":[{"start":[74,58],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[74,91]},[]],"constraintClass":[["Data","HeytingAlgebra"],"HeytingAlgebraRecord"],"constraintArgs":[{"annotation":[{"start":[74,79],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[74,83]},[]],"tag":"TypeVar","contents":"list"},{"annotation":[{"start":[74,84],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[74,87]},[]],"tag":"TypeVar","contents":"row"},{"annotation":[{"start":[74,88],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[74,91]},[]],"tag":"TypeVar","contents":"row"}],"constraintData":null}],"edInstanceChain":[[["Data","HeytingAlgebra"],{"Ident":"heytingAlgebraRecord"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","HeytingAlgebra"],"HeytingAlgebraRecord"],"edInstanceName":{"Ident":"heytingAlgebraRecordNil"},"edInstanceTypes":[{"annotation":[{"start":[96,58],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[96,64]},[]],"tag":"TypeConstructor","contents":[["Prim","RowList"],"Nil"]},{"annotation":[{"start":[96,65],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[96,68]},[]],"tag":"TypeVar","contents":"row"},{"annotation":[{"start":[96,70],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[96,71]},[]],"tag":"REmpty"}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","HeytingAlgebra"],{"Ident":"heytingAlgebraRecordNil"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","HeytingAlgebra"],"HeytingAlgebraRecord"],"edInstanceName":{"Ident":"heytingAlgebraRecordCons"},"edInstanceTypes":[{"annotation":[{"start":[110,30],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[110,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[110,30],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[110,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[110,30],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[110,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[110,30],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[110,37]},[]],"tag":"TypeConstructor","contents":[["Prim","RowList"],"Cons"]},{"annotation":[{"start":[110,38],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[110,41]},[]],"tag":"TypeVar","contents":"key"}]},{"annotation":[{"start":[110,42],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[110,47]},[]],"tag":"TypeVar","contents":"focus"}]},{"annotation":[{"start":[110,48],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[110,59]},[]],"tag":"TypeVar","contents":"rowlistTail"}]},{"annotation":[{"start":[110,61],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[110,64]},[]],"tag":"TypeVar","contents":"row"},{"annotation":[{"start":[110,65],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[110,71]},[]],"tag":"TypeVar","contents":"subrow"}],"edInstanceConstraints":[{"constraintAnn":[{"start":[105,10],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[105,22]},[]],"constraintClass":[["Data","Symbol"],"IsSymbol"],"constraintArgs":[{"annotation":[{"start":[105,19],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[105,22]},[]],"tag":"TypeVar","contents":"key"}],"constraintData":null},{"constraintAnn":[{"start":[106,10],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[106,46]},[]],"constraintClass":[["Prim","Row"],"Cons"],"constraintArgs":[{"annotation":[{"start":[106,19],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[106,22]},[]],"tag":"TypeVar","contents":"key"},{"annotation":[{"start":[106,23],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[106,28]},[]],"tag":"TypeVar","contents":"focus"},{"annotation":[{"start":[106,29],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[106,39]},[]],"tag":"TypeVar","contents":"subrowTail"},{"annotation":[{"start":[106,40],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[106,46]},[]],"tag":"TypeVar","contents":"subrow"}],"constraintData":null},{"constraintAnn":[{"start":[107,10],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[107,57]},[]],"constraintClass":[["Data","HeytingAlgebra"],"HeytingAlgebraRecord"],"constraintArgs":[{"annotation":[{"start":[107,31],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[107,42]},[]],"tag":"TypeVar","contents":"rowlistTail"},{"annotation":[{"start":[107,43],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[107,46]},[]],"tag":"TypeVar","contents":"row"},{"annotation":[{"start":[107,47],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[107,57]},[]],"tag":"TypeVar","contents":"subrowTail"}],"constraintData":null},{"constraintAnn":[{"start":[108,10],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[108,30]},[]],"constraintClass":[["Data","HeytingAlgebra"],"HeytingAlgebra"],"constraintArgs":[{"annotation":[{"start":[108,25],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[108,30]},[]],"tag":"TypeVar","contents":"focus"}],"constraintData":null}],"edInstanceChain":[[["Data","HeytingAlgebra"],{"Ident":"heytingAlgebraRecordCons"}]],"edInstanceChainIndex":0}}],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs","end":[150,59]}}
diff --git a/tests/purs/publish/basic-example/output/Data.Identity/docs.json b/tests/purs/publish/basic-example/output/Data.Identity/docs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.Identity/docs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"reExports":[],"name":"Data.Identity","comments":null,"declarations":[{"children":[{"comments":null,"title":"Identity","info":{"arguments":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"declType":"dataConstructor"},"sourceSpan":null},{"comments":null,"title":"newtypeIdentity","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Newtype"],"Newtype"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Identity"],"Identity"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeWildcard","contents":null}]}},"sourceSpan":{"start":[18,1],"name":"../../../support/bower_components/purescript-identity/src/Data/Identity.purs","end":[18,58]}},{"comments":null,"title":"eqIdentity","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Eq"],"Eq"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Identity"],"Identity"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[20,1],"name":"../../../support/bower_components/purescript-identity/src/Data/Identity.purs","end":[20,62]}},{"comments":null,"title":"ordIdentity","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord"],"Ord"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Identity"],"Identity"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[22,1],"name":"../../../support/bower_components/purescript-identity/src/Data/Identity.purs","end":[22,65]}},{"comments":null,"title":"boundedIdentity","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Bounded"],"Bounded"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Bounded"],"Bounded"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Identity"],"Identity"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[24,1],"name":"../../../support/bower_components/purescript-identity/src/Data/Identity.purs","end":[24,77]}},{"comments":null,"title":"heytingAlgebraIdentity","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","HeytingAlgebra"],"HeytingAlgebra"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","HeytingAlgebra"],"HeytingAlgebra"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Identity"],"Identity"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[26,1],"name":"../../../support/bower_components/purescript-identity/src/Data/Identity.purs","end":[26,98]}},{"comments":null,"title":"booleanAlgebraIdentity","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","BooleanAlgebra"],"BooleanAlgebra"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","BooleanAlgebra"],"BooleanAlgebra"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Identity"],"Identity"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[28,1],"name":"../../../support/bower_components/purescript-identity/src/Data/Identity.purs","end":[28,98]}},{"comments":null,"title":"semigroupIdenity","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Semigroup"],"Semigroup"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup"],"Semigroup"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Identity"],"Identity"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[30,1],"name":"../../../support/bower_components/purescript-identity/src/Data/Identity.purs","end":[30,82]}},{"comments":null,"title":"monoidIdentity","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Monoid"],"Monoid"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid"],"Monoid"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Identity"],"Identity"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[32,1],"name":"../../../support/bower_components/purescript-identity/src/Data/Identity.purs","end":[32,74]}},{"comments":null,"title":"semiringIdentity","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Semiring"],"Semiring"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semiring"],"Semiring"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Identity"],"Identity"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[34,1],"name":"../../../support/bower_components/purescript-identity/src/Data/Identity.purs","end":[34,80]}},{"comments":null,"title":"euclideanRingIdentity","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","EuclideanRing"],"EuclideanRing"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","EuclideanRing"],"EuclideanRing"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Identity"],"Identity"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[36,1],"name":"../../../support/bower_components/purescript-identity/src/Data/Identity.purs","end":[36,95]}},{"comments":null,"title":"ringIdentity","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Ring"],"Ring"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ring"],"Ring"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Identity"],"Identity"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[38,1],"name":"../../../support/bower_components/purescript-identity/src/Data/Identity.purs","end":[38,68]}},{"comments":null,"title":"commutativeRingIdentity","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","CommutativeRing"],"CommutativeRing"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","CommutativeRing"],"CommutativeRing"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Identity"],"Identity"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[40,1],"name":"../../../support/bower_components/purescript-identity/src/Data/Identity.purs","end":[40,101]}},{"comments":null,"title":"lazyIdentity","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Control","Lazy"],"Lazy"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Lazy"],"Lazy"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Identity"],"Identity"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[42,1],"name":"../../../support/bower_components/purescript-identity/src/Data/Identity.purs","end":[42,68]}},{"comments":null,"title":"showIdentity","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Show"],"Show"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Show"],"Show"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Identity"],"Identity"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[44,1],"name":"../../../support/bower_components/purescript-identity/src/Data/Identity.purs","end":[45,52]}},{"comments":null,"title":"eq1Identity","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Eq"],"Eq1"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Identity"],"Identity"]}]}},"sourceSpan":{"start":[47,1],"name":"../../../support/bower_components/purescript-identity/src/Data/Identity.purs","end":[47,44]}},{"comments":null,"title":"ord1Identity","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord"],"Ord1"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Identity"],"Identity"]}]}},"sourceSpan":{"start":[49,1],"name":"../../../support/bower_components/purescript-identity/src/Data/Identity.purs","end":[49,46]}},{"comments":null,"title":"functorIdentity","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Functor"],"Functor"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Identity"],"Identity"]}]}},"sourceSpan":{"start":[51,1],"name":"../../../support/bower_components/purescript-identity/src/Data/Identity.purs","end":[51,52]}},{"comments":null,"title":"invariantIdentity","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Functor","Invariant"],"Invariant"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Identity"],"Identity"]}]}},"sourceSpan":{"start":[53,1],"name":"../../../support/bower_components/purescript-identity/src/Data/Identity.purs","end":[54,15]}},{"comments":null,"title":"altIdentity","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Alt"],"Alt"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Identity"],"Identity"]}]}},"sourceSpan":{"start":[56,1],"name":"../../../support/bower_components/purescript-identity/src/Data/Identity.purs","end":[57,14]}},{"comments":null,"title":"applyIdentity","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Apply"],"Apply"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Identity"],"Identity"]}]}},"sourceSpan":{"start":[59,1],"name":"../../../support/bower_components/purescript-identity/src/Data/Identity.purs","end":[60,51]}},{"comments":null,"title":"applicativeIdentity","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Applicative"],"Applicative"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Identity"],"Identity"]}]}},"sourceSpan":{"start":[62,1],"name":"../../../support/bower_components/purescript-identity/src/Data/Identity.purs","end":[63,18]}},{"comments":null,"title":"bindIdentity","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Bind"],"Bind"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Identity"],"Identity"]}]}},"sourceSpan":{"start":[65,1],"name":"../../../support/bower_components/purescript-identity/src/Data/Identity.purs","end":[66,28]}},{"comments":null,"title":"monadIdentity","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Monad"],"Monad"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Identity"],"Identity"]}]}},"sourceSpan":{"start":[68,1],"name":"../../../support/bower_components/purescript-identity/src/Data/Identity.purs","end":[68,41]}},{"comments":null,"title":"extendIdentity","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Extend"],"Extend"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Identity"],"Identity"]}]}},"sourceSpan":{"start":[70,1],"name":"../../../support/bower_components/purescript-identity/src/Data/Identity.purs","end":[71,30]}},{"comments":null,"title":"comonadIdentity","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Comonad"],"Comonad"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Identity"],"Identity"]}]}},"sourceSpan":{"start":[73,1],"name":"../../../support/bower_components/purescript-identity/src/Data/Identity.purs","end":[74,27]}},{"comments":null,"title":"foldableIdentity","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Foldable"],"Foldable"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Identity"],"Identity"]}]}},"sourceSpan":{"start":[76,1],"name":"../../../support/bower_components/purescript-identity/src/Data/Identity.purs","end":[79,31]}},{"comments":null,"title":"traversableIdentity","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Traversable"],"Traversable"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Identity"],"Identity"]}]}},"sourceSpan":{"start":[81,1],"name":"../../../support/bower_components/purescript-identity/src/Data/Identity.purs","end":[83,41]}}],"comments":null,"title":"Identity","info":{"declType":"data","dataDeclType":"newtype","typeArguments":[["a",null]]},"sourceSpan":{"start":[16,1],"name":"../../../support/bower_components/purescript-identity/src/Data/Identity.purs","end":[16,32]}}]}
diff --git a/tests/purs/publish/basic-example/output/Data.Identity/externs.json b/tests/purs/publish/basic-example/output/Data.Identity/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.Identity/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Data","Identity"],"efExports":[{"TypeRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-identity/src/Data/Identity.purs","end":[83,41]},"Identity",["Identity"]]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"newtypeIdentity"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"eqIdentity"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"ordIdentity"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"boundedIdentity"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"heytingAlgebraIdentity"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"booleanAlgebraIdentity"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"semigroupIdenity"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"monoidIdentity"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"semiringIdentity"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"euclideanRingIdentity"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"ringIdentity"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"commutativeRingIdentity"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"lazyIdentity"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"showIdentity"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"eq1Identity"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"ord1Identity"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"functorIdentity"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"invariantIdentity"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"altIdentity"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"applyIdentity"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"applicativeIdentity"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"bindIdentity"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"monadIdentity"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"extendIdentity"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"comonadIdentity"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"foldableIdentity"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"traversableIdentity"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Prelude"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Control","Alt"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[5,21],"name":"../../../support/bower_components/purescript-identity/src/Data/Identity.purs","end":[5,30]},"Alt"]}]},"eiImportedAs":null},{"eiModule":["Control","Comonad"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[6,25],"name":"../../../support/bower_components/purescript-identity/src/Data/Identity.purs","end":[6,38]},"Comonad"]}]},"eiImportedAs":null},{"eiModule":["Control","Extend"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[7,24],"name":"../../../support/bower_components/purescript-identity/src/Data/Identity.purs","end":[7,36]},"Extend"]}]},"eiImportedAs":null},{"eiModule":["Control","Lazy"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[8,22],"name":"../../../support/bower_components/purescript-identity/src/Data/Identity.purs","end":[8,32]},"Lazy"]}]},"eiImportedAs":null},{"eiModule":["Data","Eq"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[9,17],"name":"../../../support/bower_components/purescript-identity/src/Data/Identity.purs","end":[9,26]},"Eq1"]}]},"eiImportedAs":null},{"eiModule":["Data","Foldable"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[10,23],"name":"../../../support/bower_components/purescript-identity/src/Data/Identity.purs","end":[10,37]},"Foldable"]}]},"eiImportedAs":null},{"eiModule":["Data","Functor","Invariant"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[11,32],"name":"../../../support/bower_components/purescript-identity/src/Data/Identity.purs","end":[11,47]},"Invariant"]},{"ValueRef":[{"start":[11,49],"name":"../../../support/bower_components/purescript-identity/src/Data/Identity.purs","end":[11,54]},{"Ident":"imapF"}]}]},"eiImportedAs":null},{"eiModule":["Data","Newtype"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[12,22],"name":"../../../support/bower_components/purescript-identity/src/Data/Identity.purs","end":[12,35]},"Newtype"]}]},"eiImportedAs":null},{"eiModule":["Data","Ord"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[13,18],"name":"../../../support/bower_components/purescript-identity/src/Data/Identity.purs","end":[13,28]},"Ord1"]}]},"eiImportedAs":null},{"eiModule":["Data","Traversable"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[14,26],"name":"../../../support/bower_components/purescript-identity/src/Data/Identity.purs","end":[14,43]},"Traversable"]}]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDType":{"edTypeName":"Identity","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[16,31],"name":"../../../support/bower_components/purescript-identity/src/Data/Identity.purs","end":[16,32]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},"edTypeDeclarationKind":{"DataType":{"args":[["a",{"annotation":[{"start":[16,31],"name":"../../../support/bower_components/purescript-identity/src/Data/Identity.purs","end":[16,32]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]],"ctors":[["Identity",[{"annotation":[{"start":[16,31],"name":"../../../support/bower_components/purescript-identity/src/Data/Identity.purs","end":[16,32]},[]],"tag":"TypeVar","contents":"a"}]]]}}}},{"EDDataConstructor":{"edDataCtorName":"Identity","edDataCtorOrigin":"newtype","edDataCtorTypeCtor":"Identity","edDataCtorType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[16,31],"name":"../../../support/bower_components/purescript-identity/src/Data/Identity.purs","end":[16,32]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Identity"],"Identity"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"a"}]}]},null]},"edDataCtorFields":[{"Ident":"value0"}]}},{"EDInstance":{"edInstanceClassName":[["Data","Newtype"],"Newtype"],"edInstanceName":{"Ident":"newtypeIdentity"},"edInstanceTypes":[{"annotation":[{"start":[18,45],"name":"../../../support/bower_components/purescript-identity/src/Data/Identity.purs","end":[18,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,45],"name":"../../../support/bower_components/purescript-identity/src/Data/Identity.purs","end":[18,53]},[]],"tag":"TypeConstructor","contents":[["Data","Identity"],"Identity"]},{"annotation":[{"start":[18,54],"name":"../../../support/bower_components/purescript-identity/src/Data/Identity.purs","end":[18,55]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[18,54],"name":"../../../support/bower_components/purescript-identity/src/Data/Identity.purs","end":[18,55]},[]],"tag":"TypeVar","contents":"a"}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Identity"],{"Ident":"newtypeIdentity"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Eq"],"Eq"],"edInstanceName":{"Ident":"eqIdentity"},"edInstanceTypes":[{"annotation":[{"start":[20,51],"name":"../../../support/bower_components/purescript-identity/src/Data/Identity.purs","end":[20,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[20,51],"name":"../../../support/bower_components/purescript-identity/src/Data/Identity.purs","end":[20,59]},[]],"tag":"TypeConstructor","contents":[["Data","Identity"],"Identity"]},{"annotation":[{"start":[20,60],"name":"../../../support/bower_components/purescript-identity/src/Data/Identity.purs","end":[20,61]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[20,39],"name":"../../../support/bower_components/purescript-identity/src/Data/Identity.purs","end":[20,43]},[]],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[{"start":[20,42],"name":"../../../support/bower_components/purescript-identity/src/Data/Identity.purs","end":[20,43]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","Identity"],{"Ident":"eqIdentity"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Ord"],"Ord"],"edInstanceName":{"Ident":"ordIdentity"},"edInstanceTypes":[{"annotation":[{"start":[22,54],"name":"../../../support/bower_components/purescript-identity/src/Data/Identity.purs","end":[22,64]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[22,54],"name":"../../../support/bower_components/purescript-identity/src/Data/Identity.purs","end":[22,62]},[]],"tag":"TypeConstructor","contents":[["Data","Identity"],"Identity"]},{"annotation":[{"start":[22,63],"name":"../../../support/bower_components/purescript-identity/src/Data/Identity.purs","end":[22,64]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[22,40],"name":"../../../support/bower_components/purescript-identity/src/Data/Identity.purs","end":[22,45]},[]],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[{"start":[22,44],"name":"../../../support/bower_components/purescript-identity/src/Data/Identity.purs","end":[22,45]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","Identity"],{"Ident":"ordIdentity"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Bounded"],"Bounded"],"edInstanceName":{"Ident":"boundedIdentity"},"edInstanceTypes":[{"annotation":[{"start":[24,66],"name":"../../../support/bower_components/purescript-identity/src/Data/Identity.purs","end":[24,76]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[24,66],"name":"../../../support/bower_components/purescript-identity/src/Data/Identity.purs","end":[24,74]},[]],"tag":"TypeConstructor","contents":[["Data","Identity"],"Identity"]},{"annotation":[{"start":[24,75],"name":"../../../support/bower_components/purescript-identity/src/Data/Identity.purs","end":[24,76]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[24,44],"name":"../../../support/bower_components/purescript-identity/src/Data/Identity.purs","end":[24,53]},[]],"constraintClass":[["Data","Bounded"],"Bounded"],"constraintArgs":[{"annotation":[{"start":[24,52],"name":"../../../support/bower_components/purescript-identity/src/Data/Identity.purs","end":[24,53]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","Identity"],{"Ident":"boundedIdentity"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","HeytingAlgebra"],"HeytingAlgebra"],"edInstanceName":{"Ident":"heytingAlgebraIdentity"},"edInstanceTypes":[{"annotation":[{"start":[26,87],"name":"../../../support/bower_components/purescript-identity/src/Data/Identity.purs","end":[26,97]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[26,87],"name":"../../../support/bower_components/purescript-identity/src/Data/Identity.purs","end":[26,95]},[]],"tag":"TypeConstructor","contents":[["Data","Identity"],"Identity"]},{"annotation":[{"start":[26,96],"name":"../../../support/bower_components/purescript-identity/src/Data/Identity.purs","end":[26,97]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[26,51],"name":"../../../support/bower_components/purescript-identity/src/Data/Identity.purs","end":[26,67]},[]],"constraintClass":[["Data","HeytingAlgebra"],"HeytingAlgebra"],"constraintArgs":[{"annotation":[{"start":[26,66],"name":"../../../support/bower_components/purescript-identity/src/Data/Identity.purs","end":[26,67]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","Identity"],{"Ident":"heytingAlgebraIdentity"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","BooleanAlgebra"],"BooleanAlgebra"],"edInstanceName":{"Ident":"booleanAlgebraIdentity"},"edInstanceTypes":[{"annotation":[{"start":[28,87],"name":"../../../support/bower_components/purescript-identity/src/Data/Identity.purs","end":[28,97]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[28,87],"name":"../../../support/bower_components/purescript-identity/src/Data/Identity.purs","end":[28,95]},[]],"tag":"TypeConstructor","contents":[["Data","Identity"],"Identity"]},{"annotation":[{"start":[28,96],"name":"../../../support/bower_components/purescript-identity/src/Data/Identity.purs","end":[28,97]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[28,51],"name":"../../../support/bower_components/purescript-identity/src/Data/Identity.purs","end":[28,67]},[]],"constraintClass":[["Data","BooleanAlgebra"],"BooleanAlgebra"],"constraintArgs":[{"annotation":[{"start":[28,66],"name":"../../../support/bower_components/purescript-identity/src/Data/Identity.purs","end":[28,67]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","Identity"],{"Ident":"booleanAlgebraIdentity"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Semigroup"],"Semigroup"],"edInstanceName":{"Ident":"semigroupIdenity"},"edInstanceTypes":[{"annotation":[{"start":[30,71],"name":"../../../support/bower_components/purescript-identity/src/Data/Identity.purs","end":[30,81]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[30,71],"name":"../../../support/bower_components/purescript-identity/src/Data/Identity.purs","end":[30,79]},[]],"tag":"TypeConstructor","contents":[["Data","Identity"],"Identity"]},{"annotation":[{"start":[30,80],"name":"../../../support/bower_components/purescript-identity/src/Data/Identity.purs","end":[30,81]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[30,45],"name":"../../../support/bower_components/purescript-identity/src/Data/Identity.purs","end":[30,56]},[]],"constraintClass":[["Data","Semigroup"],"Semigroup"],"constraintArgs":[{"annotation":[{"start":[30,55],"name":"../../../support/bower_components/purescript-identity/src/Data/Identity.purs","end":[30,56]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","Identity"],{"Ident":"semigroupIdenity"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Monoid"],"Monoid"],"edInstanceName":{"Ident":"monoidIdentity"},"edInstanceTypes":[{"annotation":[{"start":[32,63],"name":"../../../support/bower_components/purescript-identity/src/Data/Identity.purs","end":[32,73]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[32,63],"name":"../../../support/bower_components/purescript-identity/src/Data/Identity.purs","end":[32,71]},[]],"tag":"TypeConstructor","contents":[["Data","Identity"],"Identity"]},{"annotation":[{"start":[32,72],"name":"../../../support/bower_components/purescript-identity/src/Data/Identity.purs","end":[32,73]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[32,43],"name":"../../../support/bower_components/purescript-identity/src/Data/Identity.purs","end":[32,51]},[]],"constraintClass":[["Data","Monoid"],"Monoid"],"constraintArgs":[{"annotation":[{"start":[32,50],"name":"../../../support/bower_components/purescript-identity/src/Data/Identity.purs","end":[32,51]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","Identity"],{"Ident":"monoidIdentity"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Semiring"],"Semiring"],"edInstanceName":{"Ident":"semiringIdentity"},"edInstanceTypes":[{"annotation":[{"start":[34,69],"name":"../../../support/bower_components/purescript-identity/src/Data/Identity.purs","end":[34,79]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[34,69],"name":"../../../support/bower_components/purescript-identity/src/Data/Identity.purs","end":[34,77]},[]],"tag":"TypeConstructor","contents":[["Data","Identity"],"Identity"]},{"annotation":[{"start":[34,78],"name":"../../../support/bower_components/purescript-identity/src/Data/Identity.purs","end":[34,79]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[34,45],"name":"../../../support/bower_components/purescript-identity/src/Data/Identity.purs","end":[34,55]},[]],"constraintClass":[["Data","Semiring"],"Semiring"],"constraintArgs":[{"annotation":[{"start":[34,54],"name":"../../../support/bower_components/purescript-identity/src/Data/Identity.purs","end":[34,55]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","Identity"],{"Ident":"semiringIdentity"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","EuclideanRing"],"EuclideanRing"],"edInstanceName":{"Ident":"euclideanRingIdentity"},"edInstanceTypes":[{"annotation":[{"start":[36,84],"name":"../../../support/bower_components/purescript-identity/src/Data/Identity.purs","end":[36,94]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,84],"name":"../../../support/bower_components/purescript-identity/src/Data/Identity.purs","end":[36,92]},[]],"tag":"TypeConstructor","contents":[["Data","Identity"],"Identity"]},{"annotation":[{"start":[36,93],"name":"../../../support/bower_components/purescript-identity/src/Data/Identity.purs","end":[36,94]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[36,50],"name":"../../../support/bower_components/purescript-identity/src/Data/Identity.purs","end":[36,65]},[]],"constraintClass":[["Data","EuclideanRing"],"EuclideanRing"],"constraintArgs":[{"annotation":[{"start":[36,64],"name":"../../../support/bower_components/purescript-identity/src/Data/Identity.purs","end":[36,65]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","Identity"],{"Ident":"euclideanRingIdentity"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Ring"],"Ring"],"edInstanceName":{"Ident":"ringIdentity"},"edInstanceTypes":[{"annotation":[{"start":[38,57],"name":"../../../support/bower_components/purescript-identity/src/Data/Identity.purs","end":[38,67]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[38,57],"name":"../../../support/bower_components/purescript-identity/src/Data/Identity.purs","end":[38,65]},[]],"tag":"TypeConstructor","contents":[["Data","Identity"],"Identity"]},{"annotation":[{"start":[38,66],"name":"../../../support/bower_components/purescript-identity/src/Data/Identity.purs","end":[38,67]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[38,41],"name":"../../../support/bower_components/purescript-identity/src/Data/Identity.purs","end":[38,47]},[]],"constraintClass":[["Data","Ring"],"Ring"],"constraintArgs":[{"annotation":[{"start":[38,46],"name":"../../../support/bower_components/purescript-identity/src/Data/Identity.purs","end":[38,47]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","Identity"],{"Ident":"ringIdentity"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","CommutativeRing"],"CommutativeRing"],"edInstanceName":{"Ident":"commutativeRingIdentity"},"edInstanceTypes":[{"annotation":[{"start":[40,90],"name":"../../../support/bower_components/purescript-identity/src/Data/Identity.purs","end":[40,100]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[40,90],"name":"../../../support/bower_components/purescript-identity/src/Data/Identity.purs","end":[40,98]},[]],"tag":"TypeConstructor","contents":[["Data","Identity"],"Identity"]},{"annotation":[{"start":[40,99],"name":"../../../support/bower_components/purescript-identity/src/Data/Identity.purs","end":[40,100]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[40,52],"name":"../../../support/bower_components/purescript-identity/src/Data/Identity.purs","end":[40,69]},[]],"constraintClass":[["Data","CommutativeRing"],"CommutativeRing"],"constraintArgs":[{"annotation":[{"start":[40,68],"name":"../../../support/bower_components/purescript-identity/src/Data/Identity.purs","end":[40,69]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","Identity"],{"Ident":"commutativeRingIdentity"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Lazy"],"Lazy"],"edInstanceName":{"Ident":"lazyIdentity"},"edInstanceTypes":[{"annotation":[{"start":[42,57],"name":"../../../support/bower_components/purescript-identity/src/Data/Identity.purs","end":[42,67]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[42,57],"name":"../../../support/bower_components/purescript-identity/src/Data/Identity.purs","end":[42,65]},[]],"tag":"TypeConstructor","contents":[["Data","Identity"],"Identity"]},{"annotation":[{"start":[42,66],"name":"../../../support/bower_components/purescript-identity/src/Data/Identity.purs","end":[42,67]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[42,41],"name":"../../../support/bower_components/purescript-identity/src/Data/Identity.purs","end":[42,47]},[]],"constraintClass":[["Control","Lazy"],"Lazy"],"constraintArgs":[{"annotation":[{"start":[42,46],"name":"../../../support/bower_components/purescript-identity/src/Data/Identity.purs","end":[42,47]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","Identity"],{"Ident":"lazyIdentity"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Show"],"Show"],"edInstanceName":{"Ident":"showIdentity"},"edInstanceTypes":[{"annotation":[{"start":[44,42],"name":"../../../support/bower_components/purescript-identity/src/Data/Identity.purs","end":[44,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[44,42],"name":"../../../support/bower_components/purescript-identity/src/Data/Identity.purs","end":[44,50]},[]],"tag":"TypeConstructor","contents":[["Data","Identity"],"Identity"]},{"annotation":[{"start":[44,51],"name":"../../../support/bower_components/purescript-identity/src/Data/Identity.purs","end":[44,52]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[44,26],"name":"../../../support/bower_components/purescript-identity/src/Data/Identity.purs","end":[44,32]},[]],"constraintClass":[["Data","Show"],"Show"],"constraintArgs":[{"annotation":[{"start":[44,31],"name":"../../../support/bower_components/purescript-identity/src/Data/Identity.purs","end":[44,32]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","Identity"],{"Ident":"showIdentity"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Eq"],"Eq1"],"edInstanceName":{"Ident":"eq1Identity"},"edInstanceTypes":[{"annotation":[{"start":[47,36],"name":"../../../support/bower_components/purescript-identity/src/Data/Identity.purs","end":[47,44]},[]],"tag":"TypeConstructor","contents":[["Data","Identity"],"Identity"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Identity"],{"Ident":"eq1Identity"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Ord"],"Ord1"],"edInstanceName":{"Ident":"ord1Identity"},"edInstanceTypes":[{"annotation":[{"start":[49,38],"name":"../../../support/bower_components/purescript-identity/src/Data/Identity.purs","end":[49,46]},[]],"tag":"TypeConstructor","contents":[["Data","Identity"],"Identity"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Identity"],{"Ident":"ord1Identity"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Functor"],"Functor"],"edInstanceName":{"Ident":"functorIdentity"},"edInstanceTypes":[{"annotation":[{"start":[51,44],"name":"../../../support/bower_components/purescript-identity/src/Data/Identity.purs","end":[51,52]},[]],"tag":"TypeConstructor","contents":[["Data","Identity"],"Identity"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Identity"],{"Ident":"functorIdentity"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Functor","Invariant"],"Invariant"],"edInstanceName":{"Ident":"invariantIdentity"},"edInstanceTypes":[{"annotation":[{"start":[53,41],"name":"../../../support/bower_components/purescript-identity/src/Data/Identity.purs","end":[53,49]},[]],"tag":"TypeConstructor","contents":[["Data","Identity"],"Identity"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Identity"],{"Ident":"invariantIdentity"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Alt"],"Alt"],"edInstanceName":{"Ident":"altIdentity"},"edInstanceTypes":[{"annotation":[{"start":[56,29],"name":"../../../support/bower_components/purescript-identity/src/Data/Identity.purs","end":[56,37]},[]],"tag":"TypeConstructor","contents":[["Data","Identity"],"Identity"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Identity"],{"Ident":"altIdentity"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Apply"],"Apply"],"edInstanceName":{"Ident":"applyIdentity"},"edInstanceTypes":[{"annotation":[{"start":[59,33],"name":"../../../support/bower_components/purescript-identity/src/Data/Identity.purs","end":[59,41]},[]],"tag":"TypeConstructor","contents":[["Data","Identity"],"Identity"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Identity"],{"Ident":"applyIdentity"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Applicative"],"Applicative"],"edInstanceName":{"Ident":"applicativeIdentity"},"edInstanceTypes":[{"annotation":[{"start":[62,45],"name":"../../../support/bower_components/purescript-identity/src/Data/Identity.purs","end":[62,53]},[]],"tag":"TypeConstructor","contents":[["Data","Identity"],"Identity"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Identity"],{"Ident":"applicativeIdentity"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Bind"],"Bind"],"edInstanceName":{"Ident":"bindIdentity"},"edInstanceTypes":[{"annotation":[{"start":[65,31],"name":"../../../support/bower_components/purescript-identity/src/Data/Identity.purs","end":[65,39]},[]],"tag":"TypeConstructor","contents":[["Data","Identity"],"Identity"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Identity"],{"Ident":"bindIdentity"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Monad"],"Monad"],"edInstanceName":{"Ident":"monadIdentity"},"edInstanceTypes":[{"annotation":[{"start":[68,33],"name":"../../../support/bower_components/purescript-identity/src/Data/Identity.purs","end":[68,41]},[]],"tag":"TypeConstructor","contents":[["Data","Identity"],"Identity"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Identity"],{"Ident":"monadIdentity"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Extend"],"Extend"],"edInstanceName":{"Ident":"extendIdentity"},"edInstanceTypes":[{"annotation":[{"start":[70,35],"name":"../../../support/bower_components/purescript-identity/src/Data/Identity.purs","end":[70,43]},[]],"tag":"TypeConstructor","contents":[["Data","Identity"],"Identity"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Identity"],{"Ident":"extendIdentity"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Comonad"],"Comonad"],"edInstanceName":{"Ident":"comonadIdentity"},"edInstanceTypes":[{"annotation":[{"start":[73,37],"name":"../../../support/bower_components/purescript-identity/src/Data/Identity.purs","end":[73,45]},[]],"tag":"TypeConstructor","contents":[["Data","Identity"],"Identity"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Identity"],{"Ident":"comonadIdentity"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Foldable"],"Foldable"],"edInstanceName":{"Ident":"foldableIdentity"},"edInstanceTypes":[{"annotation":[{"start":[76,39],"name":"../../../support/bower_components/purescript-identity/src/Data/Identity.purs","end":[76,47]},[]],"tag":"TypeConstructor","contents":[["Data","Identity"],"Identity"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Identity"],{"Ident":"foldableIdentity"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Traversable"],"Traversable"],"edInstanceName":{"Ident":"traversableIdentity"},"edInstanceTypes":[{"annotation":[{"start":[81,45],"name":"../../../support/bower_components/purescript-identity/src/Data/Identity.purs","end":[81,53]},[]],"tag":"TypeConstructor","contents":[["Data","Identity"],"Identity"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Identity"],{"Ident":"traversableIdentity"}]],"edInstanceChainIndex":0}}],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-identity/src/Data/Identity.purs","end":[83,41]}}
diff --git a/tests/purs/publish/basic-example/output/Data.Int.Bits/docs.json b/tests/purs/publish/basic-example/output/Data.Int.Bits/docs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.Int.Bits/docs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"reExports":[],"name":"Data.Int.Bits","comments":"This module defines bitwise operations for the `Int` type.\n","declarations":[{"children":[],"comments":"Bitwise AND.\n","title":"and","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]}},"sourceSpan":{"start":[13,1],"name":"../../../support/bower_components/purescript-integers/src/Data/Int/Bits.purs","end":[13,40]}},{"children":[],"comments":null,"title":"(.&.)","info":{"declType":"alias","alias":[["Data","Int","Bits"],{"Right":{"Left":{"Ident":"and"}}}],"fixity":{"associativity":"infixl","precedence":10}},"sourceSpan":{"start":[15,1],"name":"../../../support/bower_components/purescript-integers/src/Data/Int/Bits.purs","end":[15,21]}},{"children":[],"comments":"Bitwise OR.\n","title":"or","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]}},"sourceSpan":{"start":[18,1],"name":"../../../support/bower_components/purescript-integers/src/Data/Int/Bits.purs","end":[18,39]}},{"children":[],"comments":null,"title":"(.|.)","info":{"declType":"alias","alias":[["Data","Int","Bits"],{"Right":{"Left":{"Ident":"or"}}}],"fixity":{"associativity":"infixl","precedence":10}},"sourceSpan":{"start":[20,1],"name":"../../../support/bower_components/purescript-integers/src/Data/Int/Bits.purs","end":[20,20]}},{"children":[],"comments":"Bitwise XOR.\n","title":"xor","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]}},"sourceSpan":{"start":[23,1],"name":"../../../support/bower_components/purescript-integers/src/Data/Int/Bits.purs","end":[23,40]}},{"children":[],"comments":null,"title":"(.^.)","info":{"declType":"alias","alias":[["Data","Int","Bits"],{"Right":{"Left":{"Ident":"xor"}}}],"fixity":{"associativity":"infixl","precedence":10}},"sourceSpan":{"start":[25,1],"name":"../../../support/bower_components/purescript-integers/src/Data/Int/Bits.purs","end":[25,21]}},{"children":[],"comments":"Bitwise shift left.\n","title":"shl","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]}},"sourceSpan":{"start":[28,1],"name":"../../../support/bower_components/purescript-integers/src/Data/Int/Bits.purs","end":[28,40]}},{"children":[],"comments":"Bitwise shift right.\n","title":"shr","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]}},"sourceSpan":{"start":[31,1],"name":"../../../support/bower_components/purescript-integers/src/Data/Int/Bits.purs","end":[31,40]}},{"children":[],"comments":"Bitwise zero-fill shift right.\n","title":"zshr","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]}},"sourceSpan":{"start":[34,1],"name":"../../../support/bower_components/purescript-integers/src/Data/Int/Bits.purs","end":[34,41]}},{"children":[],"comments":"Bitwise NOT.\n","title":"complement","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}},"sourceSpan":{"start":[37,1],"name":"../../../support/bower_components/purescript-integers/src/Data/Int/Bits.purs","end":[37,40]}}]}
diff --git a/tests/purs/publish/basic-example/output/Data.Int.Bits/externs.json b/tests/purs/publish/basic-example/output/Data.Int.Bits/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.Int.Bits/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Data","Int","Bits"],"efExports":[{"ValueRef":[{"start":[2,1],"name":"../../../support/bower_components/purescript-integers/src/Data/Int/Bits.purs","end":[37,40]},{"Ident":"and"}]},{"ValueOpRef":[{"start":[2,1],"name":"../../../support/bower_components/purescript-integers/src/Data/Int/Bits.purs","end":[37,40]},".&."]},{"ValueRef":[{"start":[2,1],"name":"../../../support/bower_components/purescript-integers/src/Data/Int/Bits.purs","end":[37,40]},{"Ident":"or"}]},{"ValueOpRef":[{"start":[2,1],"name":"../../../support/bower_components/purescript-integers/src/Data/Int/Bits.purs","end":[37,40]},".|."]},{"ValueRef":[{"start":[2,1],"name":"../../../support/bower_components/purescript-integers/src/Data/Int/Bits.purs","end":[37,40]},{"Ident":"xor"}]},{"ValueOpRef":[{"start":[2,1],"name":"../../../support/bower_components/purescript-integers/src/Data/Int/Bits.purs","end":[37,40]},".^."]},{"ValueRef":[{"start":[2,1],"name":"../../../support/bower_components/purescript-integers/src/Data/Int/Bits.purs","end":[37,40]},{"Ident":"shl"}]},{"ValueRef":[{"start":[2,1],"name":"../../../support/bower_components/purescript-integers/src/Data/Int/Bits.purs","end":[37,40]},{"Ident":"shr"}]},{"ValueRef":[{"start":[2,1],"name":"../../../support/bower_components/purescript-integers/src/Data/Int/Bits.purs","end":[37,40]},{"Ident":"zshr"}]},{"ValueRef":[{"start":[2,1],"name":"../../../support/bower_components/purescript-integers/src/Data/Int/Bits.purs","end":[37,40]},{"Ident":"complement"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null}],"efFixities":[{"efAssociativity":"infixl","efPrecedence":10,"efOperator":".&.","efAlias":[["Data","Int","Bits"],{"Left":{"Ident":"and"}}]},{"efAssociativity":"infixl","efPrecedence":10,"efOperator":".|.","efAlias":[["Data","Int","Bits"],{"Left":{"Ident":"or"}}]},{"efAssociativity":"infixl","efPrecedence":10,"efOperator":".^.","efAlias":[["Data","Int","Bits"],{"Left":{"Ident":"xor"}}]}],"efTypeFixities":[],"efDeclarations":[{"EDValue":{"edValueName":{"Ident":"and"},"edValueType":{"annotation":[{"start":[13,23],"name":"../../../support/bower_components/purescript-integers/src/Data/Int/Bits.purs","end":[13,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[13,23],"name":"../../../support/bower_components/purescript-integers/src/Data/Int/Bits.purs","end":[13,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[13,27],"name":"../../../support/bower_components/purescript-integers/src/Data/Int/Bits.purs","end":[13,29]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[13,23],"name":"../../../support/bower_components/purescript-integers/src/Data/Int/Bits.purs","end":[13,26]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[13,30],"name":"../../../support/bower_components/purescript-integers/src/Data/Int/Bits.purs","end":[13,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[13,30],"name":"../../../support/bower_components/purescript-integers/src/Data/Int/Bits.purs","end":[13,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[13,34],"name":"../../../support/bower_components/purescript-integers/src/Data/Int/Bits.purs","end":[13,36]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[13,30],"name":"../../../support/bower_components/purescript-integers/src/Data/Int/Bits.purs","end":[13,33]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[13,37],"name":"../../../support/bower_components/purescript-integers/src/Data/Int/Bits.purs","end":[13,40]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]}}},{"EDValue":{"edValueName":{"Ident":"or"},"edValueType":{"annotation":[{"start":[18,22],"name":"../../../support/bower_components/purescript-integers/src/Data/Int/Bits.purs","end":[18,39]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,22],"name":"../../../support/bower_components/purescript-integers/src/Data/Int/Bits.purs","end":[18,39]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,26],"name":"../../../support/bower_components/purescript-integers/src/Data/Int/Bits.purs","end":[18,28]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[18,22],"name":"../../../support/bower_components/purescript-integers/src/Data/Int/Bits.purs","end":[18,25]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[18,29],"name":"../../../support/bower_components/purescript-integers/src/Data/Int/Bits.purs","end":[18,39]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,29],"name":"../../../support/bower_components/purescript-integers/src/Data/Int/Bits.purs","end":[18,39]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,33],"name":"../../../support/bower_components/purescript-integers/src/Data/Int/Bits.purs","end":[18,35]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[18,29],"name":"../../../support/bower_components/purescript-integers/src/Data/Int/Bits.purs","end":[18,32]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[18,36],"name":"../../../support/bower_components/purescript-integers/src/Data/Int/Bits.purs","end":[18,39]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]}}},{"EDValue":{"edValueName":{"Ident":"xor"},"edValueType":{"annotation":[{"start":[23,23],"name":"../../../support/bower_components/purescript-integers/src/Data/Int/Bits.purs","end":[23,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[23,23],"name":"../../../support/bower_components/purescript-integers/src/Data/Int/Bits.purs","end":[23,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[23,27],"name":"../../../support/bower_components/purescript-integers/src/Data/Int/Bits.purs","end":[23,29]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[23,23],"name":"../../../support/bower_components/purescript-integers/src/Data/Int/Bits.purs","end":[23,26]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[23,30],"name":"../../../support/bower_components/purescript-integers/src/Data/Int/Bits.purs","end":[23,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[23,30],"name":"../../../support/bower_components/purescript-integers/src/Data/Int/Bits.purs","end":[23,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[23,34],"name":"../../../support/bower_components/purescript-integers/src/Data/Int/Bits.purs","end":[23,36]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[23,30],"name":"../../../support/bower_components/purescript-integers/src/Data/Int/Bits.purs","end":[23,33]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[23,37],"name":"../../../support/bower_components/purescript-integers/src/Data/Int/Bits.purs","end":[23,40]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]}}},{"EDValue":{"edValueName":{"Ident":"shl"},"edValueType":{"annotation":[{"start":[28,23],"name":"../../../support/bower_components/purescript-integers/src/Data/Int/Bits.purs","end":[28,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[28,23],"name":"../../../support/bower_components/purescript-integers/src/Data/Int/Bits.purs","end":[28,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[28,27],"name":"../../../support/bower_components/purescript-integers/src/Data/Int/Bits.purs","end":[28,29]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[28,23],"name":"../../../support/bower_components/purescript-integers/src/Data/Int/Bits.purs","end":[28,26]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[28,30],"name":"../../../support/bower_components/purescript-integers/src/Data/Int/Bits.purs","end":[28,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[28,30],"name":"../../../support/bower_components/purescript-integers/src/Data/Int/Bits.purs","end":[28,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[28,34],"name":"../../../support/bower_components/purescript-integers/src/Data/Int/Bits.purs","end":[28,36]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[28,30],"name":"../../../support/bower_components/purescript-integers/src/Data/Int/Bits.purs","end":[28,33]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[28,37],"name":"../../../support/bower_components/purescript-integers/src/Data/Int/Bits.purs","end":[28,40]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]}}},{"EDValue":{"edValueName":{"Ident":"shr"},"edValueType":{"annotation":[{"start":[31,23],"name":"../../../support/bower_components/purescript-integers/src/Data/Int/Bits.purs","end":[31,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[31,23],"name":"../../../support/bower_components/purescript-integers/src/Data/Int/Bits.purs","end":[31,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[31,27],"name":"../../../support/bower_components/purescript-integers/src/Data/Int/Bits.purs","end":[31,29]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[31,23],"name":"../../../support/bower_components/purescript-integers/src/Data/Int/Bits.purs","end":[31,26]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[31,30],"name":"../../../support/bower_components/purescript-integers/src/Data/Int/Bits.purs","end":[31,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[31,30],"name":"../../../support/bower_components/purescript-integers/src/Data/Int/Bits.purs","end":[31,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[31,34],"name":"../../../support/bower_components/purescript-integers/src/Data/Int/Bits.purs","end":[31,36]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[31,30],"name":"../../../support/bower_components/purescript-integers/src/Data/Int/Bits.purs","end":[31,33]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[31,37],"name":"../../../support/bower_components/purescript-integers/src/Data/Int/Bits.purs","end":[31,40]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]}}},{"EDValue":{"edValueName":{"Ident":"zshr"},"edValueType":{"annotation":[{"start":[34,24],"name":"../../../support/bower_components/purescript-integers/src/Data/Int/Bits.purs","end":[34,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[34,24],"name":"../../../support/bower_components/purescript-integers/src/Data/Int/Bits.purs","end":[34,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[34,28],"name":"../../../support/bower_components/purescript-integers/src/Data/Int/Bits.purs","end":[34,30]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[34,24],"name":"../../../support/bower_components/purescript-integers/src/Data/Int/Bits.purs","end":[34,27]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[34,31],"name":"../../../support/bower_components/purescript-integers/src/Data/Int/Bits.purs","end":[34,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[34,31],"name":"../../../support/bower_components/purescript-integers/src/Data/Int/Bits.purs","end":[34,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[34,35],"name":"../../../support/bower_components/purescript-integers/src/Data/Int/Bits.purs","end":[34,37]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[34,31],"name":"../../../support/bower_components/purescript-integers/src/Data/Int/Bits.purs","end":[34,34]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[34,38],"name":"../../../support/bower_components/purescript-integers/src/Data/Int/Bits.purs","end":[34,41]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]}}},{"EDValue":{"edValueName":{"Ident":"complement"},"edValueType":{"annotation":[{"start":[37,30],"name":"../../../support/bower_components/purescript-integers/src/Data/Int/Bits.purs","end":[37,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[37,30],"name":"../../../support/bower_components/purescript-integers/src/Data/Int/Bits.purs","end":[37,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[37,34],"name":"../../../support/bower_components/purescript-integers/src/Data/Int/Bits.purs","end":[37,36]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[37,30],"name":"../../../support/bower_components/purescript-integers/src/Data/Int/Bits.purs","end":[37,33]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[37,37],"name":"../../../support/bower_components/purescript-integers/src/Data/Int/Bits.purs","end":[37,40]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}}}],"efSourceSpan":{"start":[2,1],"name":"../../../support/bower_components/purescript-integers/src/Data/Int/Bits.purs","end":[37,40]}}
diff --git a/tests/purs/publish/basic-example/output/Data.Int/docs.json b/tests/purs/publish/basic-example/output/Data.Int/docs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.Int/docs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"reExports":[],"name":"Data.Int","comments":null,"declarations":[{"children":[],"comments":"Creates an `Int` from a `Number` value. The number must already be an\ninteger and fall within the valid range of values for the `Int` type\notherwise `Nothing` is returned.\n","title":"fromNumber","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]}},"sourceSpan":{"start":[37,1],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[37,34]}},{"children":[],"comments":"Convert a `Number` to an `Int`, by taking the closest integer equal to or\ngreater than the argument. Values outside the `Int` range are clamped,\n`NaN` and `Infinity` values return 0.\n","title":"ceil","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}},"sourceSpan":{"start":[55,1],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[55,22]}},{"children":[],"comments":"Convert a `Number` to an `Int`, by taking the closest integer equal to or\nless than the argument. Values outside the `Int` range are clamped, `NaN`\nand `Infinity` values return 0.\n","title":"floor","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}},"sourceSpan":{"start":[49,1],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[49,23]}},{"children":[],"comments":"Convert a `Number` to an `Int`, by taking the nearest integer to the\nargument. Values outside the `Int` range are clamped, `NaN` and `Infinity`\nvalues return 0.\n","title":"round","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}},"sourceSpan":{"start":[61,1],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[61,23]}},{"children":[],"comments":"Converts an `Int` value back into a `Number`. Any `Int` is a valid `Number`\nso there is no loss of precision with this function.\n","title":"toNumber","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]}},"sourceSpan":{"start":[76,1],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[76,41]}},{"children":[],"comments":"Reads an `Int` from a `String` value. The number must parse as an integer\nand fall within the valid range of values for the `Int` type, otherwise\n`Nothing` is returned.\n","title":"fromString","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]}},"sourceSpan":{"start":[81,1],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[81,34]}},{"children":[],"comments":"The number of unique digits (including zero) used to represent integers in\na specific base.\n","title":"Radix","info":{"declType":"data","dataDeclType":"newtype","typeArguments":[]},"sourceSpan":{"start":[170,1],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[170,26]}},{"children":[],"comments":"Create a `Radix` from a number between 2 and 36.\n","title":"radix","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Int"],"Radix"]}]}]}},"sourceSpan":{"start":[193,1],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[193,28]}},{"children":[],"comments":"The base-2 system.\n","title":"binary","info":{"declType":"value","type":{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Int"],"Radix"]}},"sourceSpan":{"start":[173,1],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[173,16]}},{"children":[],"comments":"The base-8 system.\n","title":"octal","info":{"declType":"value","type":{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Int"],"Radix"]}},"sourceSpan":{"start":[177,1],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[177,15]}},{"children":[],"comments":"The base-10 system.\n","title":"decimal","info":{"declType":"value","type":{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Int"],"Radix"]}},"sourceSpan":{"start":[181,1],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[181,17]}},{"children":[],"comments":"The base-16 system.\n","title":"hexadecimal","info":{"declType":"value","type":{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Int"],"Radix"]}},"sourceSpan":{"start":[185,1],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[185,21]}},{"children":[],"comments":"The base-36 system.\n","title":"base36","info":{"declType":"value","type":{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Int"],"Radix"]}},"sourceSpan":{"start":[189,1],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[189,16]}},{"children":[],"comments":"Like `fromString`, but the integer can be specified in a different base.\n\nExample:\n``` purs\nfromStringAs binary      \"100\" == Just 4\nfromStringAs hexadecimal \"ff\"  == Just 255\n```\n","title":"fromStringAs","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Int"],"Radix"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]}]}},"sourceSpan":{"start":[204,1],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[204,45]}},{"children":[],"comments":null,"title":"toStringAs","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Int"],"Radix"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}]}},"sourceSpan":{"start":[252,1],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[252,52]}},{"children":[{"comments":null,"title":"Even","info":{"arguments":[],"declType":"dataConstructor"},"sourceSpan":null},{"comments":null,"title":"Odd","info":{"arguments":[],"declType":"dataConstructor"},"sourceSpan":null},{"comments":null,"title":"eqParity","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Eq"],"Eq"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Int"],"Parity"]}]}},"sourceSpan":{"start":[109,1],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[109,38]}},{"comments":null,"title":"ordParity","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord"],"Ord"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Int"],"Parity"]}]}},"sourceSpan":{"start":[110,1],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[110,40]}},{"comments":null,"title":"showParity","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Show"],"Show"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Int"],"Parity"]}]}},"sourceSpan":{"start":[112,1],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[114,19]}},{"comments":null,"title":"boundedParity","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Bounded"],"Bounded"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Int"],"Parity"]}]}},"sourceSpan":{"start":[116,1],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[118,12]}},{"comments":null,"title":"semiringParity","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semiring"],"Semiring"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Int"],"Parity"]}]}},"sourceSpan":{"start":[120,1],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[125,17]}},{"comments":null,"title":"ringParity","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ring"],"Ring"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Int"],"Parity"]}]}},"sourceSpan":{"start":[127,1],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[128,12]}},{"comments":null,"title":"commutativeRingParity","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","CommutativeRing"],"CommutativeRing"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Int"],"Parity"]}]}},"sourceSpan":{"start":[130,1],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[130,57]}},{"comments":null,"title":"euclideanRingParity","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","EuclideanRing"],"EuclideanRing"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Int"],"Parity"]}]}},"sourceSpan":{"start":[132,1],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[136,17]}},{"comments":null,"title":"divisionRingParity","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","DivisionRing"],"DivisionRing"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Int"],"Parity"]}]}},"sourceSpan":{"start":[138,1],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[139,19]}}],"comments":"A type for describing whether an integer is even or odd.\n\nThe `Ord` instance considers `Even` to be less than `Odd`.\n\nThe `Semiring` instance allows you to ask about the parity of the results\nof arithmetical operations, given only the parities of the inputs. For\nexample, the sum of an odd number and an even number is odd, so\n`Odd + Even == Odd`. This also works for multiplication, eg. the product\nof two odd numbers is odd, and therefore `Odd * Odd == Odd`.\n\nMore generally, we have that\n\n```purescript\nparity x + parity y == parity (x + y)\nparity x * parity y == parity (x * y)\n```\n\nfor any integers `x`, `y`. (A mathematician would say that `parity` is a\n*ring homomorphism*.)\n\nAfter defining addition and multiplication on `Parity` in this way, the\n`Semiring` laws now force us to choose `zero = Even` and `one = Odd`.\nThis `Semiring` instance actually turns out to be a `Field`.\n","title":"Parity","info":{"declType":"data","dataDeclType":"data","typeArguments":[]},"sourceSpan":{"start":[107,1],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[107,25]}},{"children":[],"comments":"Returns whether an `Int` is `Even` or `Odd`.\n\n``` purescript\nparity 0 == Even\nparity 1 == Odd\n```\n","title":"parity","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Int"],"Parity"]}]}},"sourceSpan":{"start":[147,1],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[147,24]}},{"children":[],"comments":"Returns whether an `Int` is an even number.\n\n``` purescript\neven 0 == true\neven 1 == false\n```\n","title":"even","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}},"sourceSpan":{"start":[156,1],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[156,23]}},{"children":[],"comments":"The negation of `even`.\n\n``` purescript\nodd 0 == false\nodd 1 == true\n```\n","title":"odd","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}},"sourceSpan":{"start":[165,1],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[165,22]}},{"children":[],"comments":"The `quot` function provides _truncating_ integer division (see the\ndocumentation for the `EuclideanRing` class). It is identical to `div` in\nthe `EuclideanRing Int` instance if the dividend is positive, but will be\nslightly different if the dividend is negative. For example:\n\n```purescript\ndiv 2 3 == 0\nquot 2 3 == 0\n\ndiv (-2) 3 == (-1)\nquot (-2) 3 == 0\n\ndiv 2 (-3) == 0\nquot 2 (-3) == 0\n```\n","title":"quot","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]}},"sourceSpan":{"start":[222,1],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[222,41]}},{"children":[],"comments":"The `rem` function provides the remainder after _truncating_ integer\ndivision (see the documentation for the `EuclideanRing` class). It is\nidentical to `mod` in the `EuclideanRing Int` instance if the dividend is\npositive, but will be slightly different if the dividend is negative. For\nexample:\n\n```purescript\nmod 2 3 == 2\nrem 2 3 == 2\n\nmod (-2) 3 == 1\nrem (-2) 3 == (-2)\n\nmod 2 (-3) == 2\nrem 2 (-3) == 2\n```\n","title":"rem","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]}},"sourceSpan":{"start":[240,1],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[240,40]}},{"children":[],"comments":"Raise an Int to the power of another Int.\n","title":"pow","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]}},"sourceSpan":{"start":[243,1],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[243,40]}}]}
diff --git a/tests/purs/publish/basic-example/output/Data.Int/externs.json b/tests/purs/publish/basic-example/output/Data.Int/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.Int/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Data","Int"],"efExports":[{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[252,52]},{"Ident":"fromNumber"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[252,52]},{"Ident":"ceil"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[252,52]},{"Ident":"floor"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[252,52]},{"Ident":"round"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[252,52]},{"Ident":"toNumber"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[252,52]},{"Ident":"fromString"}]},{"TypeRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[252,52]},"Radix",[]]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[252,52]},{"Ident":"radix"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[252,52]},{"Ident":"binary"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[252,52]},{"Ident":"octal"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[252,52]},{"Ident":"decimal"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[252,52]},{"Ident":"hexadecimal"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[252,52]},{"Ident":"base36"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[252,52]},{"Ident":"fromStringAs"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[252,52]},{"Ident":"toStringAs"}]},{"TypeRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[252,52]},"Parity",["Even","Odd"]]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[252,52]},{"Ident":"parity"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[252,52]},{"Ident":"even"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[252,52]},{"Ident":"odd"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[252,52]},{"Ident":"quot"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[252,52]},{"Ident":"rem"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[252,52]},{"Ident":"pow"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"eqParity"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"ordParity"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"showParity"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"boundedParity"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"semiringParity"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"ringParity"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"commutativeRingParity"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"euclideanRingParity"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"divisionRingParity"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Prelude"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Data","Int","Bits"],"eiImportType":{"Explicit":[{"ValueOpRef":[{"start":[28,23],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[28,28]},".&."]}]},"eiImportedAs":null},{"eiModule":["Data","Maybe"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[29,20],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[29,29]},"Maybe",null]},{"ValueRef":[{"start":[29,31],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[29,40]},{"Ident":"fromMaybe"}]}]},"eiImportedAs":null},{"eiModule":["Global"],"eiImportType":{"Explicit":[{"ValueRef":[{"start":[30,16],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[30,24]},{"Ident":"infinity"}]}]},"eiImportedAs":null},{"eiModule":["Math"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Math"]}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDValue":{"edValueName":{"Ident":"fromNumber"},"edValueType":{"annotation":[{"start":[37,15],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[37,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[37,15],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[37,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[37,22],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[37,24]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[37,15],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[37,21]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]},{"annotation":[{"start":[37,25],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[37,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[37,25],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[37,30]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[37,31],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[37,34]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]}}},{"EDValue":{"edValueName":{"Ident":"ceil"},"edValueType":{"annotation":[{"start":[55,9],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[55,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,9],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[55,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,16],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[55,18]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[55,9],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[55,15]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]},{"annotation":[{"start":[55,19],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[55,22]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}}},{"EDValue":{"edValueName":{"Ident":"floor"},"edValueType":{"annotation":[{"start":[49,10],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[49,23]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,10],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[49,23]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,17],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[49,19]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[49,10],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[49,16]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]},{"annotation":[{"start":[49,20],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[49,23]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}}},{"EDValue":{"edValueName":{"Ident":"round"},"edValueType":{"annotation":[{"start":[61,10],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[61,23]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[61,10],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[61,23]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[61,17],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[61,19]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[61,10],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[61,16]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]},{"annotation":[{"start":[61,20],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[61,23]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}}},{"EDValue":{"edValueName":{"Ident":"toNumber"},"edValueType":{"annotation":[{"start":[76,28],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[76,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[76,28],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[76,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[76,32],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[76,34]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[76,28],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[76,31]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[76,35],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[76,41]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]}}},{"EDValue":{"edValueName":{"Ident":"fromString"},"edValueType":{"annotation":[{"start":[81,15],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[81,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[81,15],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[81,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[81,22],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[81,24]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[81,15],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[81,21]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[{"start":[81,25],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[81,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[81,25],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[81,30]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[81,31],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[81,34]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]}}},{"EDType":{"edTypeName":"Radix","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},"edTypeDeclarationKind":{"DataType":{"args":[],"ctors":[["Radix",[{"annotation":[{"start":[170,23],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[170,26]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]]]}}}},{"EDValue":{"edValueName":{"Ident":"radix"},"edValueType":{"annotation":[{"start":[193,10],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[193,28]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[193,10],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[193,28]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[193,14],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[193,16]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[193,10],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[193,13]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[193,17],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[193,28]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[193,17],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[193,22]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[193,23],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[193,28]},[]],"tag":"TypeConstructor","contents":[["Data","Int"],"Radix"]}]}]}}},{"EDValue":{"edValueName":{"Ident":"binary"},"edValueType":{"annotation":[{"start":[173,11],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[173,16]},[]],"tag":"TypeConstructor","contents":[["Data","Int"],"Radix"]}}},{"EDValue":{"edValueName":{"Ident":"octal"},"edValueType":{"annotation":[{"start":[177,10],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[177,15]},[]],"tag":"TypeConstructor","contents":[["Data","Int"],"Radix"]}}},{"EDValue":{"edValueName":{"Ident":"decimal"},"edValueType":{"annotation":[{"start":[181,12],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[181,17]},[]],"tag":"TypeConstructor","contents":[["Data","Int"],"Radix"]}}},{"EDValue":{"edValueName":{"Ident":"hexadecimal"},"edValueType":{"annotation":[{"start":[185,16],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[185,21]},[]],"tag":"TypeConstructor","contents":[["Data","Int"],"Radix"]}}},{"EDValue":{"edValueName":{"Ident":"base36"},"edValueType":{"annotation":[{"start":[189,11],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[189,16]},[]],"tag":"TypeConstructor","contents":[["Data","Int"],"Radix"]}}},{"EDValue":{"edValueName":{"Ident":"fromStringAs"},"edValueType":{"annotation":[{"start":[204,17],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[204,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[204,17],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[204,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[204,23],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[204,25]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[204,17],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[204,22]},[]],"tag":"TypeConstructor","contents":[["Data","Int"],"Radix"]}]},{"annotation":[{"start":[204,26],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[204,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[204,26],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[204,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[204,33],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[204,35]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[204,26],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[204,32]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[{"start":[204,36],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[204,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[204,36],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[204,41]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[204,42],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[204,45]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]}]}}},{"EDValue":{"edValueName":{"Ident":"toStringAs"},"edValueType":{"annotation":[{"start":[252,30],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[252,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[252,30],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[252,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[252,36],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[252,38]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[252,30],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[252,35]},[]],"tag":"TypeConstructor","contents":[["Data","Int"],"Radix"]}]},{"annotation":[{"start":[252,39],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[252,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[252,39],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[252,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[252,43],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[252,45]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[252,39],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[252,42]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[252,46],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[252,52]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}]}}},{"EDType":{"edTypeName":"Parity","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},"edTypeDeclarationKind":{"DataType":{"args":[],"ctors":[["Even",[]],["Odd",[]]]}}}},{"EDDataConstructor":{"edDataCtorName":"Even","edDataCtorOrigin":"data","edDataCtorTypeCtor":"Parity","edDataCtorType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Int"],"Parity"]},"edDataCtorFields":[]}},{"EDDataConstructor":{"edDataCtorName":"Odd","edDataCtorOrigin":"data","edDataCtorTypeCtor":"Parity","edDataCtorType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Int"],"Parity"]},"edDataCtorFields":[]}},{"EDValue":{"edValueName":{"Ident":"parity"},"edValueType":{"annotation":[{"start":[147,11],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[147,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[147,11],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[147,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[147,15],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[147,17]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[147,11],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[147,14]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[147,18],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[147,24]},[]],"tag":"TypeConstructor","contents":[["Data","Int"],"Parity"]}]}}},{"EDValue":{"edValueName":{"Ident":"even"},"edValueType":{"annotation":[{"start":[156,9],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[156,23]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[156,9],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[156,23]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[156,13],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[156,15]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[156,9],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[156,12]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[156,16],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[156,23]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}}},{"EDValue":{"edValueName":{"Ident":"odd"},"edValueType":{"annotation":[{"start":[165,8],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[165,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[165,8],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[165,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[165,12],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[165,14]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[165,8],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[165,11]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[165,15],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[165,22]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}}},{"EDValue":{"edValueName":{"Ident":"quot"},"edValueType":{"annotation":[{"start":[222,24],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[222,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[222,24],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[222,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[222,28],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[222,30]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[222,24],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[222,27]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[222,31],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[222,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[222,31],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[222,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[222,35],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[222,37]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[222,31],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[222,34]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[222,38],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[222,41]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]}}},{"EDValue":{"edValueName":{"Ident":"rem"},"edValueType":{"annotation":[{"start":[240,23],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[240,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[240,23],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[240,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[240,27],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[240,29]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[240,23],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[240,26]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[240,30],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[240,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[240,30],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[240,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[240,34],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[240,36]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[240,30],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[240,33]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[240,37],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[240,40]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]}}},{"EDValue":{"edValueName":{"Ident":"pow"},"edValueType":{"annotation":[{"start":[243,23],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[243,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[243,23],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[243,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[243,27],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[243,29]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[243,23],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[243,26]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[243,30],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[243,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[243,30],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[243,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[243,34],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[243,36]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[243,30],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[243,33]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[243,37],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[243,40]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]}}},{"EDInstance":{"edInstanceClassName":[["Data","Eq"],"Eq"],"edInstanceName":{"Ident":"eqParity"},"edInstanceTypes":[{"annotation":[{"start":[109,32],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[109,38]},[]],"tag":"TypeConstructor","contents":[["Data","Int"],"Parity"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Int"],{"Ident":"eqParity"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Ord"],"Ord"],"edInstanceName":{"Ident":"ordParity"},"edInstanceTypes":[{"annotation":[{"start":[110,34],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[110,40]},[]],"tag":"TypeConstructor","contents":[["Data","Int"],"Parity"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Int"],{"Ident":"ordParity"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Show"],"Show"],"edInstanceName":{"Ident":"showParity"},"edInstanceTypes":[{"annotation":[{"start":[112,29],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[112,35]},[]],"tag":"TypeConstructor","contents":[["Data","Int"],"Parity"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Int"],{"Ident":"showParity"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Bounded"],"Bounded"],"edInstanceName":{"Ident":"boundedParity"},"edInstanceTypes":[{"annotation":[{"start":[116,35],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[116,41]},[]],"tag":"TypeConstructor","contents":[["Data","Int"],"Parity"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Int"],{"Ident":"boundedParity"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Semiring"],"Semiring"],"edInstanceName":{"Ident":"semiringParity"},"edInstanceTypes":[{"annotation":[{"start":[120,37],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[120,43]},[]],"tag":"TypeConstructor","contents":[["Data","Int"],"Parity"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Int"],{"Ident":"semiringParity"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Ring"],"Ring"],"edInstanceName":{"Ident":"ringParity"},"edInstanceTypes":[{"annotation":[{"start":[127,29],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[127,35]},[]],"tag":"TypeConstructor","contents":[["Data","Int"],"Parity"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Int"],{"Ident":"ringParity"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","CommutativeRing"],"CommutativeRing"],"edInstanceName":{"Ident":"commutativeRingParity"},"edInstanceTypes":[{"annotation":[{"start":[130,51],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[130,57]},[]],"tag":"TypeConstructor","contents":[["Data","Int"],"Parity"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Int"],{"Ident":"commutativeRingParity"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","EuclideanRing"],"EuclideanRing"],"edInstanceName":{"Ident":"euclideanRingParity"},"edInstanceTypes":[{"annotation":[{"start":[132,47],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[132,53]},[]],"tag":"TypeConstructor","contents":[["Data","Int"],"Parity"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Int"],{"Ident":"euclideanRingParity"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","DivisionRing"],"DivisionRing"],"edInstanceName":{"Ident":"divisionRingParity"},"edInstanceTypes":[{"annotation":[{"start":[138,45],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[138,51]},[]],"tag":"TypeConstructor","contents":[["Data","Int"],"Parity"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Int"],{"Ident":"divisionRingParity"}]],"edInstanceChainIndex":0}}],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-integers/src/Data/Int.purs","end":[252,52]}}
diff --git a/tests/purs/publish/basic-example/output/Data.Lazy/docs.json b/tests/purs/publish/basic-example/output/Data.Lazy/docs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.Lazy/docs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"reExports":[],"name":"Data.Lazy","comments":null,"declarations":[{"children":[{"comments":null,"title":"semiringLazy","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Semiring"],"Semiring"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semiring"],"Semiring"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Lazy"],"Lazy"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[38,1],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[42,24]}},{"comments":null,"title":"ringLazy","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Ring"],"Ring"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ring"],"Ring"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Lazy"],"Lazy"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[44,1],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[45,42]}},{"comments":null,"title":"commutativeRingLazy","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","CommutativeRing"],"CommutativeRing"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","CommutativeRing"],"CommutativeRing"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Lazy"],"Lazy"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[47,1],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[47,78]}},{"comments":null,"title":"euclideanRingLazy","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","EuclideanRing"],"EuclideanRing"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","EuclideanRing"],"EuclideanRing"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Lazy"],"Lazy"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[49,1],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[52,46]}},{"comments":null,"title":"eqLazy","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Eq"],"Eq"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Lazy"],"Lazy"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[54,1],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[55,34]}},{"comments":null,"title":"eq1Lazy","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Eq"],"Eq1"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Lazy"],"Lazy"]}]}},"sourceSpan":{"start":[57,1],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[57,36]}},{"comments":null,"title":"ordLazy","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord"],"Ord"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Lazy"],"Lazy"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[59,1],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[60,44]}},{"comments":null,"title":"ord1Lazy","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord"],"Ord1"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Lazy"],"Lazy"]}]}},"sourceSpan":{"start":[62,1],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[62,38]}},{"comments":null,"title":"boundedLazy","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Bounded"],"Bounded"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Bounded"],"Bounded"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Lazy"],"Lazy"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[64,1],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[66,30]}},{"comments":null,"title":"semigroupLazy","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Semigroup"],"Semigroup"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup"],"Semigroup"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Lazy"],"Lazy"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[68,1],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[69,46]}},{"comments":null,"title":"monoidLazy","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Monoid"],"Monoid"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid"],"Monoid"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Lazy"],"Lazy"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[71,1],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[72,30]}},{"comments":null,"title":"heytingAlgebraLazy","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","HeytingAlgebra"],"HeytingAlgebra"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","HeytingAlgebra"],"HeytingAlgebra"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Lazy"],"Lazy"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[74,1],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[80,20]}},{"comments":null,"title":"booleanAlgebraLazy","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","BooleanAlgebra"],"BooleanAlgebra"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","BooleanAlgebra"],"BooleanAlgebra"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Lazy"],"Lazy"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[82,1],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[82,75]}},{"comments":null,"title":"functorLazy","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Functor"],"Functor"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Lazy"],"Lazy"]}]}},"sourceSpan":{"start":[84,1],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[85,36]}},{"comments":null,"title":"functorWithIndexLazy","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","FunctorWithIndex"],"FunctorWithIndex"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Lazy"],"Lazy"]}]}},"sourceSpan":{"start":[87,1],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[88,32]}},{"comments":null,"title":"foldableLazy","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Foldable"],"Foldable"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Lazy"],"Lazy"]}]}},"sourceSpan":{"start":[90,1],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[93,28]}},{"comments":null,"title":"foldableWithIndexLazy","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","FoldableWithIndex"],"FoldableWithIndex"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Lazy"],"Lazy"]}]}},"sourceSpan":{"start":[95,1],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[98,40]}},{"comments":null,"title":"foldable1Lazy","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup","Foldable"],"Foldable1"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Lazy"],"Lazy"]}]}},"sourceSpan":{"start":[100,1],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[102,23]}},{"comments":null,"title":"traversableLazy","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Traversable"],"Traversable"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Lazy"],"Lazy"]}]}},"sourceSpan":{"start":[104,1],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[106,43]}},{"comments":null,"title":"traversableWithIndexLazy","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","TraversableWithIndex"],"TraversableWithIndex"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Lazy"],"Lazy"]}]}},"sourceSpan":{"start":[108,1],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[109,42]}},{"comments":null,"title":"traversable1Lazy","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup","Traversable"],"Traversable1"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Lazy"],"Lazy"]}]}},"sourceSpan":{"start":[111,1],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[113,44]}},{"comments":null,"title":"invariantLazy","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Functor","Invariant"],"Invariant"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Lazy"],"Lazy"]}]}},"sourceSpan":{"start":[115,1],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[116,15]}},{"comments":null,"title":"applyLazy","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Apply"],"Apply"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Lazy"],"Lazy"]}]}},"sourceSpan":{"start":[118,1],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[119,44]}},{"comments":null,"title":"applicativeLazy","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Applicative"],"Applicative"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Lazy"],"Lazy"]}]}},"sourceSpan":{"start":[121,1],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[122,25]}},{"comments":null,"title":"bindLazy","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Bind"],"Bind"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Lazy"],"Lazy"]}]}},"sourceSpan":{"start":[124,1],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[125,45]}},{"comments":null,"title":"monadLazy","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Monad"],"Monad"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Lazy"],"Lazy"]}]}},"sourceSpan":{"start":[127,1],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[127,33]}},{"comments":null,"title":"extendLazy","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Extend"],"Extend"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Lazy"],"Lazy"]}]}},"sourceSpan":{"start":[129,1],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[130,31]}},{"comments":null,"title":"comonadLazy","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Comonad"],"Comonad"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Lazy"],"Lazy"]}]}},"sourceSpan":{"start":[132,1],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[133,18]}},{"comments":null,"title":"showLazy","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Show"],"Show"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Show"],"Show"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Lazy"],"Lazy"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[135,1],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[136,53]}},{"comments":null,"title":"lazyLazy","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Lazy"],"Lazy"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Lazy"],"Lazy"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[138,1],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[139,39]}}],"comments":"`Lazy a` represents lazily-computed values of type `a`.\n\nA lazy value is computed at most once - the result is saved\nafter the first computation, and subsequent attempts to read\nthe value simply return the saved value.\n\n`Lazy` values can be created with `defer`, or by using the provided\ntype class instances.\n\n`Lazy` values can be evaluated by using the `force` function.\n","title":"Lazy","info":{"kind":{"annotation":[],"tag":"FunKind","contents":[{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},"declType":"externData"},"sourceSpan":{"start":[30,1],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[30,41]}},{"children":[],"comments":"Defer a computation, creating a `Lazy` value.\n","title":"defer","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Lazy"],"Lazy"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},null]}},"sourceSpan":{"start":[33,1],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[33,56]}},{"children":[],"comments":"Force evaluation of a `Lazy` value.\n","title":"force","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Lazy"],"Lazy"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},null]}},"sourceSpan":{"start":[36,1],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[36,46]}}]}
diff --git a/tests/purs/publish/basic-example/output/Data.Lazy/externs.json b/tests/purs/publish/basic-example/output/Data.Lazy/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.Lazy/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Data","Lazy"],"efExports":[{"TypeRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[139,39]},"Lazy",[]]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[139,39]},{"Ident":"defer"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[139,39]},{"Ident":"force"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"semiringLazy"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"ringLazy"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"commutativeRingLazy"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"euclideanRingLazy"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"eqLazy"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"eq1Lazy"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"ordLazy"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"ord1Lazy"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"boundedLazy"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"semigroupLazy"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"monoidLazy"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"heytingAlgebraLazy"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"booleanAlgebraLazy"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"functorLazy"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"functorWithIndexLazy"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"foldableLazy"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"foldableWithIndexLazy"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"foldable1Lazy"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"traversableLazy"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"traversableWithIndexLazy"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"traversable1Lazy"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"invariantLazy"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"applyLazy"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"applicativeLazy"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"bindLazy"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"monadLazy"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"extendLazy"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"comonadLazy"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"showLazy"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"lazyLazy"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Prelude"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Control","Comonad"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[5,25],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[5,38]},"Comonad"]}]},"eiImportedAs":null},{"eiModule":["Control","Extend"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[6,24],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[6,36]},"Extend"]}]},"eiImportedAs":null},{"eiModule":["Control","Lazy"],"eiImportType":{"Implicit":[]},"eiImportedAs":["CL"]},{"eiModule":["Data","Eq"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[8,17],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[8,26]},"Eq1"]}]},"eiImportedAs":null},{"eiModule":["Data","Foldable"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[9,23],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[9,37]},"Foldable"]},{"ValueRef":[{"start":[9,39],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[9,46]},{"Ident":"foldMap"}]},{"ValueRef":[{"start":[9,48],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[9,53]},{"Ident":"foldl"}]},{"ValueRef":[{"start":[9,55],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[9,60]},{"Ident":"foldr"}]}]},"eiImportedAs":null},{"eiModule":["Data","FoldableWithIndex"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[10,32],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[10,55]},"FoldableWithIndex"]}]},"eiImportedAs":null},{"eiModule":["Data","Functor","Invariant"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[11,32],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[11,47]},"Invariant"]},{"ValueRef":[{"start":[11,49],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[11,54]},{"Ident":"imapF"}]}]},"eiImportedAs":null},{"eiModule":["Data","FunctorWithIndex"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[12,31],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[12,53]},"FunctorWithIndex"]}]},"eiImportedAs":null},{"eiModule":["Data","HeytingAlgebra"],"eiImportType":{"Explicit":[{"ValueRef":[{"start":[13,29],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[13,36]},{"Ident":"implies"}]},{"ValueRef":[{"start":[13,38],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[13,40]},{"Ident":"ff"}]},{"ValueRef":[{"start":[13,42],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[13,44]},{"Ident":"tt"}]}]},"eiImportedAs":null},{"eiModule":["Data","Ord"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[14,18],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[14,28]},"Ord1"]}]},"eiImportedAs":null},{"eiModule":["Data","Semigroup","Foldable"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[15,33],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[15,48]},"Foldable1"]},{"ValueRef":[{"start":[15,50],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[15,62]},{"Ident":"fold1Default"}]}]},"eiImportedAs":null},{"eiModule":["Data","Semigroup","Traversable"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[16,36],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[16,54]},"Traversable1"]}]},"eiImportedAs":null},{"eiModule":["Data","Traversable"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[17,26],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[17,43]},"Traversable"]},{"ValueRef":[{"start":[17,45],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[17,53]},{"Ident":"traverse"}]}]},"eiImportedAs":null},{"eiModule":["Data","TraversableWithIndex"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[18,35],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[18,61]},"TraversableWithIndex"]}]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDType":{"edTypeName":"Lazy","edTypeKind":{"annotation":[{"start":[30,29],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[30,41]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[30,29],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[30,33]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[30,37],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[30,41]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},"edTypeDeclarationKind":"ExternData"}},{"EDValue":{"edValueName":{"Ident":"defer"},"edValueType":{"annotation":[{"start":[33,25],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[33,56]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[33,35],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[33,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[33,35],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[33,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[33,47],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[33,49]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[33,36],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[33,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[33,36],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[33,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[33,41],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[33,43]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[33,36],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[33,40]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]},{"annotation":[{"start":[33,44],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[33,45]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[33,50],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[33,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[33,50],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[33,54]},[]],"tag":"TypeConstructor","contents":[["Data","Lazy"],"Lazy"]},{"annotation":[{"start":[33,55],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[33,56]},[]],"tag":"TypeVar","contents":"a"}]}]},null]}}},{"EDValue":{"edValueName":{"Ident":"force"},"edValueType":{"annotation":[{"start":[36,25],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[36,46]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[36,35],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[36,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,35],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[36,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,42],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[36,44]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[36,35],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[36,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,35],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[36,39]},[]],"tag":"TypeConstructor","contents":[["Data","Lazy"],"Lazy"]},{"annotation":[{"start":[36,40],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[36,41]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[36,45],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[36,46]},[]],"tag":"TypeVar","contents":"a"}]},null]}}},{"EDInstance":{"edInstanceClassName":[["Data","Semiring"],"Semiring"],"edInstanceName":{"Ident":"semiringLazy"},"edInstanceTypes":[{"annotation":[{"start":[38,50],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[38,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[38,50],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[38,54]},[]],"tag":"TypeConstructor","contents":[["Data","Lazy"],"Lazy"]},{"annotation":[{"start":[38,55],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[38,56]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[38,26],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[38,36]},[]],"constraintClass":[["Data","Semiring"],"Semiring"],"constraintArgs":[{"annotation":[{"start":[38,35],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[38,36]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","Lazy"],{"Ident":"semiringLazy"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Ring"],"Ring"],"edInstanceName":{"Ident":"ringLazy"},"edInstanceTypes":[{"annotation":[{"start":[44,38],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[44,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[44,38],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[44,42]},[]],"tag":"TypeConstructor","contents":[["Data","Lazy"],"Lazy"]},{"annotation":[{"start":[44,43],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[44,44]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[44,22],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[44,28]},[]],"constraintClass":[["Data","Ring"],"Ring"],"constraintArgs":[{"annotation":[{"start":[44,27],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[44,28]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","Lazy"],{"Ident":"ringLazy"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","CommutativeRing"],"CommutativeRing"],"edInstanceName":{"Ident":"commutativeRingLazy"},"edInstanceTypes":[{"annotation":[{"start":[47,71],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[47,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[47,71],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[47,75]},[]],"tag":"TypeConstructor","contents":[["Data","Lazy"],"Lazy"]},{"annotation":[{"start":[47,76],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[47,77]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[47,33],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[47,50]},[]],"constraintClass":[["Data","CommutativeRing"],"CommutativeRing"],"constraintArgs":[{"annotation":[{"start":[47,49],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[47,50]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","Lazy"],{"Ident":"commutativeRingLazy"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","EuclideanRing"],"EuclideanRing"],"edInstanceName":{"Ident":"euclideanRingLazy"},"edInstanceTypes":[{"annotation":[{"start":[49,65],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[49,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,65],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[49,69]},[]],"tag":"TypeConstructor","contents":[["Data","Lazy"],"Lazy"]},{"annotation":[{"start":[49,70],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[49,71]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[49,31],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[49,46]},[]],"constraintClass":[["Data","EuclideanRing"],"EuclideanRing"],"constraintArgs":[{"annotation":[{"start":[49,45],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[49,46]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","Lazy"],{"Ident":"euclideanRingLazy"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Eq"],"Eq"],"edInstanceName":{"Ident":"eqLazy"},"edInstanceTypes":[{"annotation":[{"start":[54,32],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[54,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[54,32],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[54,36]},[]],"tag":"TypeConstructor","contents":[["Data","Lazy"],"Lazy"]},{"annotation":[{"start":[54,37],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[54,38]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[54,20],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[54,24]},[]],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[{"start":[54,23],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[54,24]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","Lazy"],{"Ident":"eqLazy"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Eq"],"Eq1"],"edInstanceName":{"Ident":"eq1Lazy"},"edInstanceTypes":[{"annotation":[{"start":[57,32],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[57,36]},[]],"tag":"TypeConstructor","contents":[["Data","Lazy"],"Lazy"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Lazy"],{"Ident":"eq1Lazy"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Ord"],"Ord"],"edInstanceName":{"Ident":"ordLazy"},"edInstanceTypes":[{"annotation":[{"start":[59,35],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[59,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[59,35],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[59,39]},[]],"tag":"TypeConstructor","contents":[["Data","Lazy"],"Lazy"]},{"annotation":[{"start":[59,40],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[59,41]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[59,21],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[59,26]},[]],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[{"start":[59,25],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[59,26]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","Lazy"],{"Ident":"ordLazy"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Ord"],"Ord1"],"edInstanceName":{"Ident":"ord1Lazy"},"edInstanceTypes":[{"annotation":[{"start":[62,34],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[62,38]},[]],"tag":"TypeConstructor","contents":[["Data","Lazy"],"Lazy"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Lazy"],{"Ident":"ord1Lazy"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Bounded"],"Bounded"],"edInstanceName":{"Ident":"boundedLazy"},"edInstanceTypes":[{"annotation":[{"start":[64,47],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[64,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[64,47],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[64,51]},[]],"tag":"TypeConstructor","contents":[["Data","Lazy"],"Lazy"]},{"annotation":[{"start":[64,52],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[64,53]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[64,25],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[64,34]},[]],"constraintClass":[["Data","Bounded"],"Bounded"],"constraintArgs":[{"annotation":[{"start":[64,33],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[64,34]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","Lazy"],{"Ident":"boundedLazy"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Semigroup"],"Semigroup"],"edInstanceName":{"Ident":"semigroupLazy"},"edInstanceTypes":[{"annotation":[{"start":[68,53],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[68,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[68,53],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[68,57]},[]],"tag":"TypeConstructor","contents":[["Data","Lazy"],"Lazy"]},{"annotation":[{"start":[68,58],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[68,59]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[68,27],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[68,38]},[]],"constraintClass":[["Data","Semigroup"],"Semigroup"],"constraintArgs":[{"annotation":[{"start":[68,37],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[68,38]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","Lazy"],{"Ident":"semigroupLazy"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Monoid"],"Monoid"],"edInstanceName":{"Ident":"monoidLazy"},"edInstanceTypes":[{"annotation":[{"start":[71,44],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[71,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[71,44],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[71,48]},[]],"tag":"TypeConstructor","contents":[["Data","Lazy"],"Lazy"]},{"annotation":[{"start":[71,49],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[71,50]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[71,24],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[71,32]},[]],"constraintClass":[["Data","Monoid"],"Monoid"],"constraintArgs":[{"annotation":[{"start":[71,31],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[71,32]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","Lazy"],{"Ident":"monoidLazy"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","HeytingAlgebra"],"HeytingAlgebra"],"edInstanceName":{"Ident":"heytingAlgebraLazy"},"edInstanceTypes":[{"annotation":[{"start":[74,68],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[74,74]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[74,68],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[74,72]},[]],"tag":"TypeConstructor","contents":[["Data","Lazy"],"Lazy"]},{"annotation":[{"start":[74,73],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[74,74]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[74,32],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[74,48]},[]],"constraintClass":[["Data","HeytingAlgebra"],"HeytingAlgebra"],"constraintArgs":[{"annotation":[{"start":[74,47],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[74,48]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","Lazy"],{"Ident":"heytingAlgebraLazy"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","BooleanAlgebra"],"BooleanAlgebra"],"edInstanceName":{"Ident":"booleanAlgebraLazy"},"edInstanceTypes":[{"annotation":[{"start":[82,68],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[82,74]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[82,68],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[82,72]},[]],"tag":"TypeConstructor","contents":[["Data","Lazy"],"Lazy"]},{"annotation":[{"start":[82,73],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[82,74]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[82,32],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[82,48]},[]],"constraintClass":[["Data","BooleanAlgebra"],"BooleanAlgebra"],"constraintArgs":[{"annotation":[{"start":[82,47],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[82,48]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","Lazy"],{"Ident":"booleanAlgebraLazy"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Functor"],"Functor"],"edInstanceName":{"Ident":"functorLazy"},"edInstanceTypes":[{"annotation":[{"start":[84,33],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[84,37]},[]],"tag":"TypeConstructor","contents":[["Data","Lazy"],"Lazy"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Lazy"],{"Ident":"functorLazy"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","FunctorWithIndex"],"FunctorWithIndex"],"edInstanceName":{"Ident":"functorWithIndexLazy"},"edInstanceTypes":[{"annotation":[{"start":[87,51],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[87,55]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]},{"annotation":[{"start":[87,56],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[87,60]},[]],"tag":"TypeConstructor","contents":[["Data","Lazy"],"Lazy"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Lazy"],{"Ident":"functorWithIndexLazy"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Foldable"],"Foldable"],"edInstanceName":{"Ident":"foldableLazy"},"edInstanceTypes":[{"annotation":[{"start":[90,35],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[90,39]},[]],"tag":"TypeConstructor","contents":[["Data","Lazy"],"Lazy"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Lazy"],{"Ident":"foldableLazy"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","FoldableWithIndex"],"FoldableWithIndex"],"edInstanceName":{"Ident":"foldableWithIndexLazy"},"edInstanceTypes":[{"annotation":[{"start":[95,53],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[95,57]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]},{"annotation":[{"start":[95,58],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[95,62]},[]],"tag":"TypeConstructor","contents":[["Data","Lazy"],"Lazy"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Lazy"],{"Ident":"foldableWithIndexLazy"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Semigroup","Foldable"],"Foldable1"],"edInstanceName":{"Ident":"foldable1Lazy"},"edInstanceTypes":[{"annotation":[{"start":[100,37],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[100,41]},[]],"tag":"TypeConstructor","contents":[["Data","Lazy"],"Lazy"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Lazy"],{"Ident":"foldable1Lazy"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Traversable"],"Traversable"],"edInstanceName":{"Ident":"traversableLazy"},"edInstanceTypes":[{"annotation":[{"start":[104,41],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[104,45]},[]],"tag":"TypeConstructor","contents":[["Data","Lazy"],"Lazy"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Lazy"],{"Ident":"traversableLazy"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","TraversableWithIndex"],"TraversableWithIndex"],"edInstanceName":{"Ident":"traversableWithIndexLazy"},"edInstanceTypes":[{"annotation":[{"start":[108,59],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[108,63]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]},{"annotation":[{"start":[108,64],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[108,68]},[]],"tag":"TypeConstructor","contents":[["Data","Lazy"],"Lazy"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Lazy"],{"Ident":"traversableWithIndexLazy"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Semigroup","Traversable"],"Traversable1"],"edInstanceName":{"Ident":"traversable1Lazy"},"edInstanceTypes":[{"annotation":[{"start":[111,43],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[111,47]},[]],"tag":"TypeConstructor","contents":[["Data","Lazy"],"Lazy"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Lazy"],{"Ident":"traversable1Lazy"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Functor","Invariant"],"Invariant"],"edInstanceName":{"Ident":"invariantLazy"},"edInstanceTypes":[{"annotation":[{"start":[115,37],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[115,41]},[]],"tag":"TypeConstructor","contents":[["Data","Lazy"],"Lazy"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Lazy"],{"Ident":"invariantLazy"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Apply"],"Apply"],"edInstanceName":{"Ident":"applyLazy"},"edInstanceTypes":[{"annotation":[{"start":[118,29],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[118,33]},[]],"tag":"TypeConstructor","contents":[["Data","Lazy"],"Lazy"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Lazy"],{"Ident":"applyLazy"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Applicative"],"Applicative"],"edInstanceName":{"Ident":"applicativeLazy"},"edInstanceTypes":[{"annotation":[{"start":[121,41],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[121,45]},[]],"tag":"TypeConstructor","contents":[["Data","Lazy"],"Lazy"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Lazy"],{"Ident":"applicativeLazy"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Bind"],"Bind"],"edInstanceName":{"Ident":"bindLazy"},"edInstanceTypes":[{"annotation":[{"start":[124,27],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[124,31]},[]],"tag":"TypeConstructor","contents":[["Data","Lazy"],"Lazy"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Lazy"],{"Ident":"bindLazy"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Monad"],"Monad"],"edInstanceName":{"Ident":"monadLazy"},"edInstanceTypes":[{"annotation":[{"start":[127,29],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[127,33]},[]],"tag":"TypeConstructor","contents":[["Data","Lazy"],"Lazy"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Lazy"],{"Ident":"monadLazy"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Extend"],"Extend"],"edInstanceName":{"Ident":"extendLazy"},"edInstanceTypes":[{"annotation":[{"start":[129,31],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[129,35]},[]],"tag":"TypeConstructor","contents":[["Data","Lazy"],"Lazy"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Lazy"],{"Ident":"extendLazy"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Comonad"],"Comonad"],"edInstanceName":{"Ident":"comonadLazy"},"edInstanceTypes":[{"annotation":[{"start":[132,33],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[132,37]},[]],"tag":"TypeConstructor","contents":[["Data","Lazy"],"Lazy"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Lazy"],{"Ident":"comonadLazy"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Show"],"Show"],"edInstanceName":{"Ident":"showLazy"},"edInstanceTypes":[{"annotation":[{"start":[135,38],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[135,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[135,38],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[135,42]},[]],"tag":"TypeConstructor","contents":[["Data","Lazy"],"Lazy"]},{"annotation":[{"start":[135,43],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[135,44]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[135,22],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[135,28]},[]],"constraintClass":[["Data","Show"],"Show"],"constraintArgs":[{"annotation":[{"start":[135,27],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[135,28]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","Lazy"],{"Ident":"showLazy"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Lazy"],"Lazy"],"edInstanceName":{"Ident":"lazyLazy"},"edInstanceTypes":[{"annotation":[{"start":[138,31],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[138,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[138,31],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[138,35]},[]],"tag":"TypeConstructor","contents":[["Data","Lazy"],"Lazy"]},{"annotation":[{"start":[138,36],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[138,37]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Lazy"],{"Ident":"lazyLazy"}]],"edInstanceChainIndex":0}}],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-lazy/src/Data/Lazy.purs","end":[139,39]}}
diff --git a/tests/purs/publish/basic-example/output/Data.List.Lazy.NonEmpty/docs.json b/tests/purs/publish/basic-example/output/Data.List.Lazy.NonEmpty/docs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.List.Lazy.NonEmpty/docs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"reExports":[],"name":"Data.List.Lazy.NonEmpty","comments":null,"declarations":[{"children":[],"comments":null,"title":"toUnfoldable","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Unfoldable"],"Unfoldable"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","NaturalTransformation"],"~>"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"NonEmptyList"]},{"annotation":[],"tag":"TypeVar","contents":"f"}]}]},null]}},"sourceSpan":{"start":[32,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[32,60]}},{"children":[],"comments":null,"title":"fromFoldable","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Foldable"],"Foldable"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"NonEmptyList"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]}]}]},null]},null]}},"sourceSpan":{"start":[36,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[36,72]}},{"children":[],"comments":null,"title":"fromList","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"NonEmptyList"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]}]},null]}},"sourceSpan":{"start":[39,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[39,57]}},{"children":[],"comments":null,"title":"toList","info":{"declType":"value","type":{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","NaturalTransformation"],"~>"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"NonEmptyList"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]}]}},"sourceSpan":{"start":[45,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[45,33]}},{"children":[],"comments":null,"title":"singleton","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"NonEmptyList"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},null]}},"sourceSpan":{"start":[48,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[48,43]}},{"children":[],"comments":null,"title":"repeat","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"NonEmptyList"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},null]}},"sourceSpan":{"start":[51,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[51,40]}},{"children":[],"comments":null,"title":"iterate","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"NonEmptyList"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]},null]}},"sourceSpan":{"start":[54,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[54,53]}},{"children":[],"comments":null,"title":"head","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"NonEmptyList"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},null]}},"sourceSpan":{"start":[57,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[57,38]}},{"children":[],"comments":null,"title":"last","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"NonEmptyList"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},null]}},"sourceSpan":{"start":[60,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[60,38]}},{"children":[],"comments":null,"title":"tail","info":{"declType":"value","type":{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","NaturalTransformation"],"~>"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"NonEmptyList"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]}]}},"sourceSpan":{"start":[63,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[63,31]}},{"children":[],"comments":null,"title":"init","info":{"declType":"value","type":{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","NaturalTransformation"],"~>"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"NonEmptyList"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]}]}},"sourceSpan":{"start":[66,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[66,31]}},{"children":[],"comments":null,"title":"uncons","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"NonEmptyList"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"RCons","contents":["head",{"annotation":[],"tag":"TypeVar","contents":"a"},{"annotation":[],"tag":"RCons","contents":["tail",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"REmpty"}]}]}]}]},null]}},"sourceSpan":{"start":[72,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[72,70]}},{"children":[],"comments":null,"title":"length","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"NonEmptyList"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},null]}},"sourceSpan":{"start":[75,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[75,42]}},{"children":[],"comments":null,"title":"concatMap","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"NonEmptyList"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"NonEmptyList"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"NonEmptyList"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}]},null]},null]}},"sourceSpan":{"start":[78,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[78,83]}},{"children":[],"comments":null,"title":"appendFoldable","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["t",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Foldable"],"Foldable"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"t"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"NonEmptyList"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"t"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"NonEmptyList"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]}]},null]},null]}},"sourceSpan":{"start":[81,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[81,84]}}]}
diff --git a/tests/purs/publish/basic-example/output/Data.List.Lazy.NonEmpty/externs.json b/tests/purs/publish/basic-example/output/Data.List.Lazy.NonEmpty/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.List.Lazy.NonEmpty/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Data","List","Lazy","NonEmpty"],"efExports":[{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[83,71]},{"exportSourceImportedFrom":["Data","List","Lazy","Types"],"exportSourceDefinedIn":["Data","List","Lazy","Types"]},{"TypeRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[83,71]},"NonEmptyList",["NonEmptyList"]]}]},{"ModuleRef":[{"start":[2,5],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[2,32]},["Data","List","Lazy","Types"]]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[83,71]},{"Ident":"toUnfoldable"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[83,71]},{"Ident":"fromFoldable"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[83,71]},{"Ident":"fromList"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[83,71]},{"Ident":"toList"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[83,71]},{"Ident":"singleton"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[83,71]},{"Ident":"repeat"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[83,71]},{"Ident":"iterate"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[83,71]},{"Ident":"head"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[83,71]},{"Ident":"last"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[83,71]},{"Ident":"tail"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[83,71]},{"Ident":"init"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[83,71]},{"Ident":"uncons"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[83,71]},{"Ident":"length"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[83,71]},{"Ident":"concatMap"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[83,71]},{"Ident":"appendFoldable"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Prelude"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Data","Foldable"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[22,23],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[22,37]},"Foldable"]}]},"eiImportedAs":null},{"eiModule":["Data","Lazy"],"eiImportType":{"Explicit":[{"ValueRef":[{"start":[23,19],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[23,24]},{"Ident":"force"}]},{"ValueRef":[{"start":[23,26],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[23,31]},{"Ident":"defer"}]}]},"eiImportedAs":null},{"eiModule":["Data","List","Lazy"],"eiImportType":{"Explicit":[{"ValueOpRef":[{"start":[24,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[24,27]},":"]}]},"eiImportedAs":null},{"eiModule":["Data","List","Lazy"],"eiImportType":{"Implicit":[]},"eiImportedAs":["L"]},{"eiModule":["Data","List","Lazy","Types"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[26,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[26,46]},"NonEmptyList",null]}]},"eiImportedAs":null},{"eiModule":["Data","Maybe"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[27,20],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[27,29]},"Maybe",null]},{"ValueRef":[{"start":[27,31],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[27,36]},{"Ident":"maybe"}]},{"ValueRef":[{"start":[27,38],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[27,47]},{"Ident":"fromMaybe"}]}]},"eiImportedAs":null},{"eiModule":["Data","NonEmpty"],"eiImportType":{"Explicit":[{"ValueOpRef":[{"start":[28,23],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[28,27]},":|"]}]},"eiImportedAs":null},{"eiModule":["Data","Tuple"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[29,20],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[29,29]},"Tuple",null]}]},"eiImportedAs":null},{"eiModule":["Data","Unfoldable"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[30,25],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[30,41]},"Unfoldable"]},{"ValueRef":[{"start":[30,43],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[30,50]},{"Ident":"unfoldr"}]}]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDValue":{"edValueName":{"Ident":"toUnfoldable"},"edValueType":{"annotation":[{"start":[32,17],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[32,60]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[32,27],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[32,60]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[32,27],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[32,39]},[]],"constraintClass":[["Data","Unfoldable"],"Unfoldable"],"constraintArgs":[{"annotation":[{"start":[32,38],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[32,39]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[17,34],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,54]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[17,44],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[17,44],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[17,48],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,50]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[17,44],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[32,43],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[32,55]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"NonEmptyList"]},{"annotation":[{"start":[17,46],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,47]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[17,51],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[32,59],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[32,60]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[17,53],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,54]},[]],"tag":"TypeVar","contents":"a"}]}]},6]}]},7]}}},{"EDValue":{"edValueName":{"Ident":"fromFoldable"},"edValueType":{"annotation":[{"start":[36,17],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[36,72]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[36,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[36,72]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[36,29],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[36,72]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[36,29],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[36,39]},[]],"constraintClass":[["Data","Foldable"],"Foldable"],"constraintArgs":[{"annotation":[{"start":[36,38],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[36,39]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[36,43],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[36,72]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,43],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[36,72]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,47],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[36,49]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[36,43],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[36,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,43],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[36,44]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[36,45],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[36,46]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[36,50],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[36,72]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,50],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[36,55]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[36,57],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[36,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,57],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[36,69]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"NonEmptyList"]},{"annotation":[{"start":[36,70],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[36,71]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]},39]},40]}}},{"EDValue":{"edValueName":{"Ident":"fromList"},"edValueType":{"annotation":[{"start":[39,13],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[39,57]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[39,23],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[39,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[39,23],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[39,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[39,32],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[39,34]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[39,23],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[39,31]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[39,23],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[39,29]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[39,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[39,31]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[39,35],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[39,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[39,35],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[39,40]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[39,42],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[39,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[39,42],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[39,54]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"NonEmptyList"]},{"annotation":[{"start":[39,55],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[39,56]},[]],"tag":"TypeVar","contents":"a"}]}]}]},35]}}},{"EDValue":{"edValueName":{"Ident":"toList"},"edValueType":{"annotation":[{"start":[17,34],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,54]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[17,44],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[17,44],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[17,48],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,50]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[17,44],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[45,11],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[45,23]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"NonEmptyList"]},{"annotation":[{"start":[17,46],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,47]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[17,51],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[45,27],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[45,33]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[17,53],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,54]},[]],"tag":"TypeVar","contents":"a"}]}]},3]}}},{"EDValue":{"edValueName":{"Ident":"singleton"},"edValueType":{"annotation":[{"start":[48,14],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[48,43]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[48,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[48,43]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[48,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[48,43]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[48,26],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[48,28]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[48,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[48,25]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[48,29],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[48,43]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[48,29],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[48,41]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"NonEmptyList"]},{"annotation":[{"start":[48,42],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[48,43]},[]],"tag":"TypeVar","contents":"a"}]}]},13]}}},{"EDValue":{"edValueName":{"Ident":"repeat"},"edValueType":{"annotation":[{"start":[51,11],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[51,40]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[51,21],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[51,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,21],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[51,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,23],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[51,25]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[51,21],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[51,22]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[51,26],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[51,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,26],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[51,38]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"NonEmptyList"]},{"annotation":[{"start":[51,39],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[51,40]},[]],"tag":"TypeVar","contents":"a"}]}]},15]}}},{"EDValue":{"edValueName":{"Ident":"iterate"},"edValueType":{"annotation":[{"start":[54,12],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[54,53]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[54,22],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[54,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[54,22],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[54,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[54,31],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[54,33]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[54,23],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[54,29]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[54,23],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[54,29]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[54,25],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[54,27]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[54,23],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[54,24]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[54,28],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[54,29]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[54,34],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[54,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[54,34],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[54,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[54,36],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[54,38]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[54,34],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[54,35]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[54,39],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[54,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[54,39],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[54,51]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"NonEmptyList"]},{"annotation":[{"start":[54,52],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[54,53]},[]],"tag":"TypeVar","contents":"a"}]}]}]},25]}}},{"EDValue":{"edValueName":{"Ident":"head"},"edValueType":{"annotation":[{"start":[57,9],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[57,38]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[57,19],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[57,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[57,19],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[57,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[57,34],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[57,36]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[57,19],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[57,33]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[57,19],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[57,31]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"NonEmptyList"]},{"annotation":[{"start":[57,32],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[57,33]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[57,37],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[57,38]},[]],"tag":"TypeVar","contents":"a"}]},32]}}},{"EDValue":{"edValueName":{"Ident":"last"},"edValueType":{"annotation":[{"start":[60,9],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[60,38]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[60,19],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[60,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[60,19],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[60,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[60,34],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[60,36]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[60,19],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[60,33]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[60,19],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[60,31]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"NonEmptyList"]},{"annotation":[{"start":[60,32],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[60,33]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[60,37],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[60,38]},[]],"tag":"TypeVar","contents":"a"}]},22]}}},{"EDValue":{"edValueName":{"Ident":"tail"},"edValueType":{"annotation":[{"start":[17,34],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,54]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[17,44],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[17,44],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[17,48],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,50]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[17,44],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[63,9],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[63,21]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"NonEmptyList"]},{"annotation":[{"start":[17,46],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,47]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[17,51],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[63,25],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[63,31]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[17,53],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,54]},[]],"tag":"TypeVar","contents":"a"}]}]},10]}}},{"EDValue":{"edValueName":{"Ident":"init"},"edValueType":{"annotation":[{"start":[17,34],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,54]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[17,44],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[17,44],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[17,48],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,50]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[17,44],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[66,9],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[66,21]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"NonEmptyList"]},{"annotation":[{"start":[17,46],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,47]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[17,51],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[66,25],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[66,31]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[17,53],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,54]},[]],"tag":"TypeVar","contents":"a"}]}]},29]}}},{"EDValue":{"edValueName":{"Ident":"uncons"},"edValueType":{"annotation":[{"start":[72,11],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[72,70]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[72,21],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[72,70]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[72,21],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[72,70]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[72,36],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[72,38]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[72,21],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[72,35]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[72,21],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[72,33]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"NonEmptyList"]},{"annotation":[{"start":[72,34],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[72,35]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[72,39],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[72,70]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[72,39],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[72,40]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[72,41],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[72,50]},[]],"tag":"RCons","contents":["head",{"annotation":[{"start":[72,49],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[72,50]},[]],"tag":"TypeVar","contents":"a"},{"annotation":[{"start":[72,52],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[72,68]},[]],"tag":"RCons","contents":["tail",{"annotation":[{"start":[72,60],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[72,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[72,60],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[72,66]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[72,67],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[72,68]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[72,69],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[72,70]},[]],"tag":"REmpty"}]}]}]}]},0]}}},{"EDValue":{"edValueName":{"Ident":"length"},"edValueType":{"annotation":[{"start":[75,11],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[75,42]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[75,21],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[75,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[75,21],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[75,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[75,36],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[75,38]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[75,21],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[75,35]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[75,21],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[75,33]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"NonEmptyList"]},{"annotation":[{"start":[75,34],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[75,35]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[75,39],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[75,42]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},19]}}},{"EDValue":{"edValueName":{"Ident":"concatMap"},"edValueType":{"annotation":[{"start":[78,14],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[78,83]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[78,21],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[78,83]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[78,26],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[78,83]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[78,26],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[78,83]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[78,48],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[78,50]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[78,27],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[78,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[78,27],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[78,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[78,29],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[78,31]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[78,27],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[78,28]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[78,32],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[78,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[78,32],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[78,44]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"NonEmptyList"]},{"annotation":[{"start":[78,45],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[78,46]},[]],"tag":"TypeVar","contents":"b"}]}]}]},{"annotation":[{"start":[78,51],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[78,83]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[78,51],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[78,83]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[78,66],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[78,68]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[78,51],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[78,65]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[78,51],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[78,63]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"NonEmptyList"]},{"annotation":[{"start":[78,64],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[78,65]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[78,69],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[78,83]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[78,69],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[78,81]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"NonEmptyList"]},{"annotation":[{"start":[78,82],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[78,83]},[]],"tag":"TypeVar","contents":"b"}]}]}]},43]},44]}}},{"EDValue":{"edValueName":{"Ident":"appendFoldable"},"edValueType":{"annotation":[{"start":[81,19],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[81,84]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[81,26],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[81,84]},[]],"tag":"ForAll","contents":["t",{"annotation":[{"start":[81,31],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[81,84]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[81,31],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[81,41]},[]],"constraintClass":[["Data","Foldable"],"Foldable"],"constraintArgs":[{"annotation":[{"start":[81,40],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[81,41]},[]],"tag":"TypeVar","contents":"t"}],"constraintData":null},{"annotation":[{"start":[81,45],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[81,84]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[81,45],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[81,84]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[81,60],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[81,62]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[81,45],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[81,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[81,45],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[81,57]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"NonEmptyList"]},{"annotation":[{"start":[81,58],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[81,59]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[81,63],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[81,84]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[81,63],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[81,84]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[81,67],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[81,69]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[81,63],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[81,66]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[81,63],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[81,64]},[]],"tag":"TypeVar","contents":"t"},{"annotation":[{"start":[81,65],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[81,66]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[81,70],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[81,84]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[81,70],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[81,82]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"NonEmptyList"]},{"annotation":[{"start":[81,83],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[81,84]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]},47]},48]}}}],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/NonEmpty.purs","end":[83,71]}}
diff --git a/tests/purs/publish/basic-example/output/Data.List.Lazy.Types/docs.json b/tests/purs/publish/basic-example/output/Data.List.Lazy.Types/docs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.List.Lazy.Types/docs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"reExports":[],"name":"Data.List.Lazy.Types","comments":null,"declarations":[{"children":[{"comments":null,"title":"List","info":{"arguments":[{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Lazy"],"Lazy"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"Step"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]}}],"declType":"dataConstructor"},"sourceSpan":null},{"comments":null,"title":"newtypeList","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Newtype"],"Newtype"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeWildcard","contents":null}]}},"sourceSpan":{"start":[59,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[59,50]}},{"comments":null,"title":"showList","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Show"],"Show"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Show"],"Show"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[61,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[65,72]}},{"comments":null,"title":"eqList","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Eq"],"Eq"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[67,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[68,11]}},{"comments":null,"title":"eq1List","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Eq"],"Eq1"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]}]}},"sourceSpan":{"start":[70,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[76,19]}},{"comments":null,"title":"ordList","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord"],"Ord"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[78,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[79,21]}},{"comments":null,"title":"ord1List","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord"],"Ord1"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]}]}},"sourceSpan":{"start":[81,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[90,23]}},{"comments":null,"title":"lazyList","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Lazy"],"Lazy"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[92,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[93,38]}},{"comments":null,"title":"semigroupList","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup"],"Semigroup"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[95,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[99,41]}},{"comments":null,"title":"monoidList","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid"],"Monoid"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[101,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[102,15]}},{"comments":null,"title":"functorList","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Functor"],"Functor"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]}]}},"sourceSpan":{"start":[104,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[108,45]}},{"comments":null,"title":"functorWithIndexList","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","FunctorWithIndex"],"FunctorWithIndex"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]}]}},"sourceSpan":{"start":[110,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[111,64]}},{"comments":null,"title":"foldableList","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Foldable"],"Foldable"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]}]}},"sourceSpan":{"start":[113,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[126,46]}},{"comments":null,"title":"foldableWithIndexList","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","FoldableWithIndex"],"FoldableWithIndex"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]}]}},"sourceSpan":{"start":[128,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[142,76]}},{"comments":null,"title":"unfoldable1List","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unfoldable1"],"Unfoldable1"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]}]}},"sourceSpan":{"start":[144,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[148,33]}},{"comments":null,"title":"unfoldableList","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unfoldable"],"Unfoldable"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]}]}},"sourceSpan":{"start":[150,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[154,39]}},{"comments":null,"title":"traversableList","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Traversable"],"Traversable"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]}]}},"sourceSpan":{"start":[156,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[160,31]}},{"comments":null,"title":"traversableWithIndexList","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","TraversableWithIndex"],"TraversableWithIndex"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]}]}},"sourceSpan":{"start":[162,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[164,63]}},{"comments":null,"title":"applyList","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Apply"],"Apply"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]}]}},"sourceSpan":{"start":[166,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[167,13]}},{"comments":null,"title":"applicativeList","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Applicative"],"Applicative"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]}]}},"sourceSpan":{"start":[169,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[170,19]}},{"comments":null,"title":"bindList","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Bind"],"Bind"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]}]}},"sourceSpan":{"start":[172,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[176,47]}},{"comments":null,"title":"monadList","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Monad"],"Monad"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]}]}},"sourceSpan":{"start":[178,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[178,33]}},{"comments":null,"title":"altList","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Alt"],"Alt"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]}]}},"sourceSpan":{"start":[180,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[181,15]}},{"comments":null,"title":"plusList","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Plus"],"Plus"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]}]}},"sourceSpan":{"start":[183,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[184,14]}},{"comments":null,"title":"alternativeList","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Alternative"],"Alternative"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]}]}},"sourceSpan":{"start":[186,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[186,45]}},{"comments":null,"title":"monadZeroList","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","MonadZero"],"MonadZero"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]}]}},"sourceSpan":{"start":[188,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[188,41]}},{"comments":null,"title":"monadPlusList","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","MonadPlus"],"MonadPlus"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]}]}},"sourceSpan":{"start":[190,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[190,41]}},{"comments":null,"title":"extendList","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Extend"],"Extend"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]}]}},"sourceSpan":{"start":[192,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[201,46]}}],"comments":"A lazy linked list.\n","title":"List","info":{"declType":"data","dataDeclType":"newtype","typeArguments":[["a",null]]},"sourceSpan":{"start":[30,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[30,38]}},{"children":[{"comments":null,"title":"Nil","info":{"arguments":[],"declType":"dataConstructor"},"sourceSpan":null},{"comments":null,"title":"Cons","info":{"arguments":[{"annotation":[],"tag":"TypeVar","contents":"a"},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}],"declType":"dataConstructor"},"sourceSpan":null}],"comments":"A list is either empty (represented by the `Nil` constructor) or non-empty, in\nwhich case it consists of a head element, and another list (represented by the\n`Cons` constructor).\n","title":"Step","info":{"declType":"data","dataDeclType":"data","typeArguments":[["a",null]]},"sourceSpan":{"start":[35,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[35,36]}},{"children":[],"comments":"Unwrap a lazy linked list\n","title":"step","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"Step"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},null]}},"sourceSpan":{"start":[38,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[38,35]}},{"children":[],"comments":"The empty list.\n\nRunning time: `O(1)`\n","title":"nil","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},null]}},"sourceSpan":{"start":[44,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[44,24]}},{"children":[],"comments":"Attach an element to the front of a lazy list.\n\nRunning time: `O(1)`\n","title":"cons","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]},null]}},"sourceSpan":{"start":[50,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[50,40]}},{"children":[],"comments":"An infix alias for `cons`; attaches an element to the front of\na list.\n\nRunning time: `O(1)`\n","title":"(:)","info":{"declType":"alias","alias":[["Data","List","Lazy","Types"],{"Right":{"Left":{"Ident":"cons"}}}],"fixity":{"associativity":"infixr","precedence":6}},"sourceSpan":{"start":[57,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[57,19]}},{"children":[{"comments":null,"title":"NonEmptyList","info":{"arguments":[{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Lazy"],"Lazy"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","NonEmpty"],"NonEmpty"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]}}],"declType":"dataConstructor"},"sourceSpan":null},{"comments":null,"title":"newtypeNonEmptyList","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Newtype"],"Newtype"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"NonEmptyList"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeWildcard","contents":null}]}},"sourceSpan":{"start":[209,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[209,66]}},{"comments":null,"title":"eqNonEmptyList","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Eq"],"Eq"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"NonEmptyList"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[211,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[211,70]}},{"comments":null,"title":"ordNonEmptyList","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord"],"Ord"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"NonEmptyList"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[212,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[212,73]}},{"comments":null,"title":"showNonEmptyList","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Show"],"Show"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Show"],"Show"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"NonEmptyList"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[214,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[215,64]}},{"comments":null,"title":"functorNonEmptyList","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Functor"],"Functor"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"NonEmptyList"]}]}},"sourceSpan":{"start":[217,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[218,58]}},{"comments":null,"title":"applyNonEmptyList","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Apply"],"Apply"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"NonEmptyList"]}]}},"sourceSpan":{"start":[220,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[224,80]}},{"comments":null,"title":"applicativeNonEmptyList","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Applicative"],"Applicative"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"NonEmptyList"]}]}},"sourceSpan":{"start":[226,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[227,53]}},{"comments":null,"title":"bindNonEmptyList","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Bind"],"Bind"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"NonEmptyList"]}]}},"sourceSpan":{"start":[229,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[235,73]}},{"comments":null,"title":"monadNonEmptyList","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Monad"],"Monad"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"NonEmptyList"]}]}},"sourceSpan":{"start":[237,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[237,49]}},{"comments":null,"title":"altNonEmptyList","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Alt"],"Alt"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"NonEmptyList"]}]}},"sourceSpan":{"start":[239,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[240,15]}},{"comments":null,"title":"extendNonEmptyList","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Extend"],"Extend"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"NonEmptyList"]}]}},"sourceSpan":{"start":[242,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[252,8]}},{"comments":null,"title":"comonadNonEmptyList","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Comonad"],"Comonad"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"NonEmptyList"]}]}},"sourceSpan":{"start":[254,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[255,51]}},{"comments":null,"title":"semigroupNonEmptyList","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup"],"Semigroup"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"NonEmptyList"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[257,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[260,66]}},{"comments":null,"title":"foldableNonEmptyList","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Foldable"],"Foldable"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"NonEmptyList"]}]}},"sourceSpan":{"start":[262,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[265,55]}},{"comments":null,"title":"traversableNonEmptyList","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Traversable"],"Traversable"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"NonEmptyList"]}]}},"sourceSpan":{"start":[267,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[271,72]}}],"comments":null,"title":"NonEmptyList","info":{"declType":"data","dataDeclType":"newtype","typeArguments":[["a",null]]},"sourceSpan":{"start":[203,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[203,63]}},{"children":[],"comments":null,"title":"toList","info":{"declType":"value","type":{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","NaturalTransformation"],"~>"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"NonEmptyList"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]}]}},"sourceSpan":{"start":[205,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[205,31]}}]}
diff --git a/tests/purs/publish/basic-example/output/Data.List.Lazy.Types/externs.json b/tests/purs/publish/basic-example/output/Data.List.Lazy.Types/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.List.Lazy.Types/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Data","List","Lazy","Types"],"efExports":[{"TypeRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[271,72]},"List",["List"]]},{"TypeRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[271,72]},"Step",["Nil","Cons"]]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[271,72]},{"Ident":"step"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[271,72]},{"Ident":"nil"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[271,72]},{"Ident":"cons"}]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[271,72]},":"]},{"TypeRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[271,72]},"NonEmptyList",["NonEmptyList"]]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[271,72]},{"Ident":"toList"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"newtypeList"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"showList"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"eqList"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"eq1List"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"ordList"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"ord1List"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"lazyList"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"semigroupList"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"monoidList"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"functorList"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"functorWithIndexList"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"foldableList"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"foldableWithIndexList"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"unfoldable1List"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"unfoldableList"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"traversableList"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"traversableWithIndexList"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"applyList"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"applicativeList"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"bindList"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"monadList"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"altList"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"plusList"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"alternativeList"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"monadZeroList"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"monadPlusList"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"extendList"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"newtypeNonEmptyList"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"eqNonEmptyList"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"ordNonEmptyList"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"showNonEmptyList"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"functorNonEmptyList"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"applyNonEmptyList"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"applicativeNonEmptyList"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"bindNonEmptyList"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"monadNonEmptyList"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"altNonEmptyList"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"extendNonEmptyList"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"comonadNonEmptyList"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"semigroupNonEmptyList"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"foldableNonEmptyList"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"traversableNonEmptyList"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Prelude"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Control","Alt"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[5,21],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[5,30]},"Alt"]}]},"eiImportedAs":null},{"eiModule":["Control","Alternative"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[6,29],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[6,46]},"Alternative"]}]},"eiImportedAs":null},{"eiModule":["Control","Comonad"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[7,25],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[7,38]},"Comonad"]}]},"eiImportedAs":null},{"eiModule":["Control","Extend"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[8,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[8,36]},"Extend"]}]},"eiImportedAs":null},{"eiModule":["Control","Lazy"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Z"]},{"eiModule":["Control","MonadPlus"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[10,27],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[10,42]},"MonadPlus"]}]},"eiImportedAs":null},{"eiModule":["Control","MonadZero"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[11,27],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[11,42]},"MonadZero"]}]},"eiImportedAs":null},{"eiModule":["Control","Plus"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[12,22],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[12,32]},"Plus"]}]},"eiImportedAs":null},{"eiModule":["Data","Eq"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[13,17],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[13,26]},"Eq1"]},{"ValueRef":[{"start":[13,28],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[13,31]},{"Ident":"eq1"}]}]},"eiImportedAs":null},{"eiModule":["Data","Foldable"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[14,23],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[14,37]},"Foldable"]},{"ValueRef":[{"start":[14,39],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[14,46]},{"Ident":"foldMap"}]},{"ValueRef":[{"start":[14,48],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[14,53]},{"Ident":"foldl"}]},{"ValueRef":[{"start":[14,55],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[14,60]},{"Ident":"foldr"}]}]},"eiImportedAs":null},{"eiModule":["Data","FoldableWithIndex"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[15,32],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[15,55]},"FoldableWithIndex"]},{"ValueRef":[{"start":[15,57],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[15,71]},{"Ident":"foldlWithIndex"}]},{"ValueRef":[{"start":[15,73],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[15,87]},{"Ident":"foldrWithIndex"}]}]},"eiImportedAs":null},{"eiModule":["Data","FunctorWithIndex"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[16,31],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[16,53]},"FunctorWithIndex"]}]},"eiImportedAs":null},{"eiModule":["Data","Lazy"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[17,19],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[17,23]},"Lazy",[]]},{"ValueRef":[{"start":[17,25],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[17,30]},{"Ident":"defer"}]},{"ValueRef":[{"start":[17,32],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[17,37]},{"Ident":"force"}]}]},"eiImportedAs":null},{"eiModule":["Data","Maybe"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[18,20],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[18,29]},"Maybe",null]}]},"eiImportedAs":null},{"eiModule":["Data","Newtype"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[19,22],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[19,35]},"Newtype"]},{"ValueRef":[{"start":[19,37],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[19,43]},{"Ident":"unwrap"}]}]},"eiImportedAs":null},{"eiModule":["Data","NonEmpty"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[20,23],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[20,31]},"NonEmpty",[]]},{"ValueOpRef":[{"start":[20,33],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[20,37]},":|"]}]},"eiImportedAs":null},{"eiModule":["Data","NonEmpty"],"eiImportType":{"Implicit":[]},"eiImportedAs":["NE"]},{"eiModule":["Data","Ord"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[22,18],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[22,28]},"Ord1"]},{"ValueRef":[{"start":[22,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[22,38]},{"Ident":"compare1"}]}]},"eiImportedAs":null},{"eiModule":["Data","Traversable"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[23,26],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[23,43]},"Traversable"]},{"ValueRef":[{"start":[23,45],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[23,53]},{"Ident":"traverse"}]},{"ValueRef":[{"start":[23,55],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[23,63]},{"Ident":"sequence"}]}]},"eiImportedAs":null},{"eiModule":["Data","TraversableWithIndex"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[24,35],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[24,61]},"TraversableWithIndex"]}]},"eiImportedAs":null},{"eiModule":["Data","Tuple"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[25,20],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[25,29]},"Tuple",null]},{"ValueRef":[{"start":[25,31],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[25,34]},{"Ident":"snd"}]}]},"eiImportedAs":null},{"eiModule":["Data","Unfoldable"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[26,25],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[26,41]},"Unfoldable"]}]},"eiImportedAs":null},{"eiModule":["Data","Unfoldable1"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[27,26],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[27,43]},"Unfoldable1"]}]},"eiImportedAs":null}],"efFixities":[{"efAssociativity":"infixr","efPrecedence":6,"efOperator":":","efAlias":[["Data","List","Lazy","Types"],{"Left":{"Ident":"cons"}}]}],"efTypeFixities":[],"efDeclarations":[{"EDType":{"edTypeName":"List","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[35,26],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[35,27]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},"edTypeDeclarationKind":{"DataType":{"args":[["a",{"annotation":[{"start":[35,26],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[35,27]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]],"ctors":[["List",[{"annotation":[{"start":[30,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[30,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[30,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[30,28]},[]],"tag":"TypeConstructor","contents":[["Data","Lazy"],"Lazy"]},{"annotation":[{"start":[30,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[30,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[30,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[30,34]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"Step"]},{"annotation":[{"start":[30,35],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[30,36]},[]],"tag":"TypeVar","contents":"a"}]}]}]]]}}}},{"EDDataConstructor":{"edDataCtorName":"List","edDataCtorOrigin":"newtype","edDataCtorTypeCtor":"List","edDataCtorType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[30,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[30,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[30,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[30,28]},[]],"tag":"TypeConstructor","contents":[["Data","Lazy"],"Lazy"]},{"annotation":[{"start":[30,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[30,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[30,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[30,34]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"Step"]},{"annotation":[{"start":[30,35],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[30,36]},[]],"tag":"TypeVar","contents":"a"}]}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"a"}]}]},null]},"edDataCtorFields":[{"Ident":"value0"}]}},{"EDType":{"edTypeName":"Step","edTypeKind":{"annotation":[{"start":[30,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[30,36]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[35,26],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[35,27]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[30,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[30,28]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},"edTypeDeclarationKind":{"DataType":{"args":[["a",{"annotation":[{"start":[35,26],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[35,27]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]],"ctors":[["Nil",[]],["Cons",[{"annotation":[{"start":[35,26],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[35,27]},[]],"tag":"TypeVar","contents":"a"},{"annotation":[{"start":[35,29],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[35,35]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[35,29],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[35,33]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[35,34],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[35,35]},[]],"tag":"TypeVar","contents":"a"}]}]]]}}}},{"EDDataConstructor":{"edDataCtorName":"Nil","edDataCtorOrigin":"data","edDataCtorTypeCtor":"Step","edDataCtorType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"Step"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"a"}]},null]},"edDataCtorFields":[]}},{"EDDataConstructor":{"edDataCtorName":"Cons","edDataCtorOrigin":"data","edDataCtorTypeCtor":"Step","edDataCtorType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[35,26],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[35,27]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[35,29],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[35,35]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[35,29],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[35,33]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[35,34],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[35,35]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"Step"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"a"}]}]}]},null]},"edDataCtorFields":[{"Ident":"value0"},{"Ident":"value1"}]}},{"EDValue":{"edValueName":{"Ident":"step"},"edValueType":{"annotation":[{"start":[38,9],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[38,35]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[38,19],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[38,35]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[38,19],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[38,35]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[38,26],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[38,28]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[38,19],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[38,25]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[38,19],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[38,23]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[38,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[38,25]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[38,29],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[38,35]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[38,29],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[38,33]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"Step"]},{"annotation":[{"start":[38,34],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[38,35]},[]],"tag":"TypeVar","contents":"a"}]}]},24]}}},{"EDValue":{"edValueName":{"Ident":"nil"},"edValueType":{"annotation":[{"start":[44,8],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[44,24]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[44,18],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[44,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[44,18],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[44,22]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[44,23],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[44,24]},[]],"tag":"TypeVar","contents":"a"}]},40]}}},{"EDValue":{"edValueName":{"Ident":"cons"},"edValueType":{"annotation":[{"start":[50,9],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[50,40]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[50,19],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[50,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,19],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[50,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,21],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[50,23]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[50,19],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[50,20]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[50,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[50,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[50,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,31],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[50,33]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[50,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[50,30]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[50,28]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[50,29],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[50,30]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[50,34],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[50,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,34],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[50,38]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[50,39],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[50,40]},[]],"tag":"TypeVar","contents":"a"}]}]}]},152]}}},{"EDType":{"edTypeName":"NonEmptyList","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[203,46],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[203,54]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},"edTypeDeclarationKind":{"DataType":{"args":[["a",{"annotation":[{"start":[203,46],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[203,54]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]],"ctors":[["NonEmptyList",[{"annotation":[{"start":[203,40],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[203,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[203,40],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[203,44]},[]],"tag":"TypeConstructor","contents":[["Data","Lazy"],"Lazy"]},{"annotation":[{"start":[203,46],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[203,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[203,46],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[203,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[203,46],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[203,54]},[]],"tag":"TypeConstructor","contents":[["Data","NonEmpty"],"NonEmpty"]},{"annotation":[{"start":[203,55],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[203,59]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]}]},{"annotation":[{"start":[203,60],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[203,61]},[]],"tag":"TypeVar","contents":"a"}]}]}]]]}}}},{"EDDataConstructor":{"edDataCtorName":"NonEmptyList","edDataCtorOrigin":"newtype","edDataCtorTypeCtor":"NonEmptyList","edDataCtorType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[203,40],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[203,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[203,40],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[203,44]},[]],"tag":"TypeConstructor","contents":[["Data","Lazy"],"Lazy"]},{"annotation":[{"start":[203,46],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[203,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[203,46],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[203,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[203,46],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[203,54]},[]],"tag":"TypeConstructor","contents":[["Data","NonEmpty"],"NonEmpty"]},{"annotation":[{"start":[203,55],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[203,59]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]}]},{"annotation":[{"start":[203,60],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[203,61]},[]],"tag":"TypeVar","contents":"a"}]}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"NonEmptyList"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"a"}]}]},null]},"edDataCtorFields":[{"Ident":"value0"}]}},{"EDValue":{"edValueName":{"Ident":"toList"},"edValueType":{"annotation":[{"start":[17,34],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,54]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[17,44],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[17,44],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[17,48],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,50]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[17,44],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[205,11],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[205,23]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"NonEmptyList"]},{"annotation":[{"start":[17,46],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,47]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[17,51],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[205,27],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[205,31]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[17,53],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,54]},[]],"tag":"TypeVar","contents":"a"}]}]},208]}}},{"EDInstance":{"edInstanceClassName":[["Data","Newtype"],"Newtype"],"edInstanceName":{"Ident":"newtypeList"},"edInstanceTypes":[{"annotation":[{"start":[59,41],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[59,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[59,41],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[59,45]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[59,46],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[59,47]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[30,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[30,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[30,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[30,28]},[]],"tag":"TypeConstructor","contents":[["Data","Lazy"],"Lazy"]},{"annotation":[{"start":[30,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[30,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[30,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[30,34]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"Step"]},{"annotation":[{"start":[59,46],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[59,47]},[]],"tag":"TypeVar","contents":"a"}]}]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","List","Lazy","Types"],{"Ident":"newtypeList"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Show"],"Show"],"edInstanceName":{"Ident":"showList"},"edInstanceTypes":[{"annotation":[{"start":[61,38],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[61,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[61,38],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[61,42]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[61,43],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[61,44]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[61,22],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[61,28]},[]],"constraintClass":[["Data","Show"],"Show"],"constraintArgs":[{"annotation":[{"start":[61,27],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[61,28]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","List","Lazy","Types"],{"Ident":"showList"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Eq"],"Eq"],"edInstanceName":{"Ident":"eqList"},"edInstanceTypes":[{"annotation":[{"start":[67,32],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[67,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[67,32],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[67,36]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[67,37],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[67,38]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[67,20],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[67,24]},[]],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[{"start":[67,23],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[67,24]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","List","Lazy","Types"],{"Ident":"eqList"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Eq"],"Eq1"],"edInstanceName":{"Ident":"eq1List"},"edInstanceTypes":[{"annotation":[{"start":[70,25],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[70,29]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","List","Lazy","Types"],{"Ident":"eq1List"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Ord"],"Ord"],"edInstanceName":{"Ident":"ordList"},"edInstanceTypes":[{"annotation":[{"start":[78,35],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[78,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[78,35],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[78,39]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[78,40],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[78,41]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[78,21],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[78,26]},[]],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[{"start":[78,25],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[78,26]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","List","Lazy","Types"],{"Ident":"ordList"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Ord"],"Ord1"],"edInstanceName":{"Ident":"ord1List"},"edInstanceTypes":[{"annotation":[{"start":[81,27],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[81,31]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","List","Lazy","Types"],{"Ident":"ord1List"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Lazy"],"Lazy"],"edInstanceName":{"Ident":"lazyList"},"edInstanceTypes":[{"annotation":[{"start":[92,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[92,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[92,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[92,34]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[92,35],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[92,36]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","List","Lazy","Types"],{"Ident":"lazyList"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Semigroup"],"Semigroup"],"edInstanceName":{"Ident":"semigroupList"},"edInstanceTypes":[{"annotation":[{"start":[95,38],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[95,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[95,38],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[95,42]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[95,43],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[95,44]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","List","Lazy","Types"],{"Ident":"semigroupList"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Monoid"],"Monoid"],"edInstanceName":{"Ident":"monoidList"},"edInstanceTypes":[{"annotation":[{"start":[101,32],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[101,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[101,32],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[101,36]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[101,37],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[101,38]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","List","Lazy","Types"],{"Ident":"monoidList"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Functor"],"Functor"],"edInstanceName":{"Ident":"functorList"},"edInstanceTypes":[{"annotation":[{"start":[104,33],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[104,37]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","List","Lazy","Types"],{"Ident":"functorList"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","FunctorWithIndex"],"FunctorWithIndex"],"edInstanceName":{"Ident":"functorWithIndexList"},"edInstanceTypes":[{"annotation":[{"start":[110,51],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[110,54]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]},{"annotation":[{"start":[110,55],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[110,59]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","List","Lazy","Types"],{"Ident":"functorWithIndexList"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Foldable"],"Foldable"],"edInstanceName":{"Ident":"foldableList"},"edInstanceTypes":[{"annotation":[{"start":[113,35],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[113,39]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","List","Lazy","Types"],{"Ident":"foldableList"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","FoldableWithIndex"],"FoldableWithIndex"],"edInstanceName":{"Ident":"foldableWithIndexList"},"edInstanceTypes":[{"annotation":[{"start":[128,53],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[128,56]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]},{"annotation":[{"start":[128,57],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[128,61]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","List","Lazy","Types"],{"Ident":"foldableWithIndexList"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Unfoldable1"],"Unfoldable1"],"edInstanceName":{"Ident":"unfoldable1List"},"edInstanceTypes":[{"annotation":[{"start":[144,41],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[144,45]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","List","Lazy","Types"],{"Ident":"unfoldable1List"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Unfoldable"],"Unfoldable"],"edInstanceName":{"Ident":"unfoldableList"},"edInstanceTypes":[{"annotation":[{"start":[150,39],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[150,43]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","List","Lazy","Types"],{"Ident":"unfoldableList"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Traversable"],"Traversable"],"edInstanceName":{"Ident":"traversableList"},"edInstanceTypes":[{"annotation":[{"start":[156,41],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[156,45]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","List","Lazy","Types"],{"Ident":"traversableList"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","TraversableWithIndex"],"TraversableWithIndex"],"edInstanceName":{"Ident":"traversableWithIndexList"},"edInstanceTypes":[{"annotation":[{"start":[162,59],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[162,62]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]},{"annotation":[{"start":[162,63],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[162,67]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","List","Lazy","Types"],{"Ident":"traversableWithIndexList"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Apply"],"Apply"],"edInstanceName":{"Ident":"applyList"},"edInstanceTypes":[{"annotation":[{"start":[166,29],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[166,33]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","List","Lazy","Types"],{"Ident":"applyList"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Applicative"],"Applicative"],"edInstanceName":{"Ident":"applicativeList"},"edInstanceTypes":[{"annotation":[{"start":[169,41],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[169,45]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","List","Lazy","Types"],{"Ident":"applicativeList"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Bind"],"Bind"],"edInstanceName":{"Ident":"bindList"},"edInstanceTypes":[{"annotation":[{"start":[172,27],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[172,31]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","List","Lazy","Types"],{"Ident":"bindList"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Monad"],"Monad"],"edInstanceName":{"Ident":"monadList"},"edInstanceTypes":[{"annotation":[{"start":[178,29],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[178,33]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","List","Lazy","Types"],{"Ident":"monadList"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Alt"],"Alt"],"edInstanceName":{"Ident":"altList"},"edInstanceTypes":[{"annotation":[{"start":[180,25],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[180,29]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","List","Lazy","Types"],{"Ident":"altList"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Plus"],"Plus"],"edInstanceName":{"Ident":"plusList"},"edInstanceTypes":[{"annotation":[{"start":[183,27],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[183,31]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","List","Lazy","Types"],{"Ident":"plusList"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Alternative"],"Alternative"],"edInstanceName":{"Ident":"alternativeList"},"edInstanceTypes":[{"annotation":[{"start":[186,41],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[186,45]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","List","Lazy","Types"],{"Ident":"alternativeList"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","MonadZero"],"MonadZero"],"edInstanceName":{"Ident":"monadZeroList"},"edInstanceTypes":[{"annotation":[{"start":[188,37],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[188,41]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","List","Lazy","Types"],{"Ident":"monadZeroList"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","MonadPlus"],"MonadPlus"],"edInstanceName":{"Ident":"monadPlusList"},"edInstanceTypes":[{"annotation":[{"start":[190,37],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[190,41]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","List","Lazy","Types"],{"Ident":"monadPlusList"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Extend"],"Extend"],"edInstanceName":{"Ident":"extendList"},"edInstanceTypes":[{"annotation":[{"start":[192,31],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[192,35]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","List","Lazy","Types"],{"Ident":"extendList"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Newtype"],"Newtype"],"edInstanceName":{"Ident":"newtypeNonEmptyList"},"edInstanceTypes":[{"annotation":[{"start":[209,49],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[209,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[209,49],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[209,61]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"NonEmptyList"]},{"annotation":[{"start":[209,62],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[209,63]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[203,40],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[203,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[203,40],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[203,44]},[]],"tag":"TypeConstructor","contents":[["Data","Lazy"],"Lazy"]},{"annotation":[{"start":[203,46],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[203,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[203,46],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[203,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[203,46],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[203,54]},[]],"tag":"TypeConstructor","contents":[["Data","NonEmpty"],"NonEmpty"]},{"annotation":[{"start":[203,55],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[203,59]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]}]},{"annotation":[{"start":[209,62],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[209,63]},[]],"tag":"TypeVar","contents":"a"}]}]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","List","Lazy","Types"],{"Ident":"newtypeNonEmptyList"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Eq"],"Eq"],"edInstanceName":{"Ident":"eqNonEmptyList"},"edInstanceTypes":[{"annotation":[{"start":[211,55],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[211,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[211,55],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[211,67]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"NonEmptyList"]},{"annotation":[{"start":[211,68],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[211,69]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[211,43],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[211,47]},[]],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[{"start":[211,46],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[211,47]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","List","Lazy","Types"],{"Ident":"eqNonEmptyList"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Ord"],"Ord"],"edInstanceName":{"Ident":"ordNonEmptyList"},"edInstanceTypes":[{"annotation":[{"start":[212,58],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[212,72]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[212,58],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[212,70]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"NonEmptyList"]},{"annotation":[{"start":[212,71],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[212,72]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[212,44],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[212,49]},[]],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[{"start":[212,48],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[212,49]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","List","Lazy","Types"],{"Ident":"ordNonEmptyList"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Show"],"Show"],"edInstanceName":{"Ident":"showNonEmptyList"},"edInstanceTypes":[{"annotation":[{"start":[214,46],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[214,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[214,46],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[214,58]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"NonEmptyList"]},{"annotation":[{"start":[214,59],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[214,60]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[214,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[214,36]},[]],"constraintClass":[["Data","Show"],"Show"],"constraintArgs":[{"annotation":[{"start":[214,35],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[214,36]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","List","Lazy","Types"],{"Ident":"showNonEmptyList"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Functor"],"Functor"],"edInstanceName":{"Ident":"functorNonEmptyList"},"edInstanceTypes":[{"annotation":[{"start":[217,41],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[217,53]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"NonEmptyList"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","List","Lazy","Types"],{"Ident":"functorNonEmptyList"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Apply"],"Apply"],"edInstanceName":{"Ident":"applyNonEmptyList"},"edInstanceTypes":[{"annotation":[{"start":[220,37],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[220,49]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"NonEmptyList"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","List","Lazy","Types"],{"Ident":"applyNonEmptyList"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Applicative"],"Applicative"],"edInstanceName":{"Ident":"applicativeNonEmptyList"},"edInstanceTypes":[{"annotation":[{"start":[226,49],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[226,61]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"NonEmptyList"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","List","Lazy","Types"],{"Ident":"applicativeNonEmptyList"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Bind"],"Bind"],"edInstanceName":{"Ident":"bindNonEmptyList"},"edInstanceTypes":[{"annotation":[{"start":[229,35],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[229,47]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"NonEmptyList"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","List","Lazy","Types"],{"Ident":"bindNonEmptyList"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Monad"],"Monad"],"edInstanceName":{"Ident":"monadNonEmptyList"},"edInstanceTypes":[{"annotation":[{"start":[237,37],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[237,49]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"NonEmptyList"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","List","Lazy","Types"],{"Ident":"monadNonEmptyList"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Alt"],"Alt"],"edInstanceName":{"Ident":"altNonEmptyList"},"edInstanceTypes":[{"annotation":[{"start":[239,33],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[239,45]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"NonEmptyList"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","List","Lazy","Types"],{"Ident":"altNonEmptyList"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Extend"],"Extend"],"edInstanceName":{"Ident":"extendNonEmptyList"},"edInstanceTypes":[{"annotation":[{"start":[242,39],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[242,51]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"NonEmptyList"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","List","Lazy","Types"],{"Ident":"extendNonEmptyList"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Comonad"],"Comonad"],"edInstanceName":{"Ident":"comonadNonEmptyList"},"edInstanceTypes":[{"annotation":[{"start":[254,41],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[254,53]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"NonEmptyList"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","List","Lazy","Types"],{"Ident":"comonadNonEmptyList"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Semigroup"],"Semigroup"],"edInstanceName":{"Ident":"semigroupNonEmptyList"},"edInstanceTypes":[{"annotation":[{"start":[257,46],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[257,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[257,46],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[257,58]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"NonEmptyList"]},{"annotation":[{"start":[257,59],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[257,60]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","List","Lazy","Types"],{"Ident":"semigroupNonEmptyList"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Foldable"],"Foldable"],"edInstanceName":{"Ident":"foldableNonEmptyList"},"edInstanceTypes":[{"annotation":[{"start":[262,43],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[262,55]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"NonEmptyList"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","List","Lazy","Types"],{"Ident":"foldableNonEmptyList"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Traversable"],"Traversable"],"edInstanceName":{"Ident":"traversableNonEmptyList"},"edInstanceTypes":[{"annotation":[{"start":[267,49],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[267,61]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"NonEmptyList"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","List","Lazy","Types"],{"Ident":"traversableNonEmptyList"}]],"edInstanceChainIndex":0}}],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy/Types.purs","end":[271,72]}}
diff --git a/tests/purs/publish/basic-example/output/Data.List.Lazy/docs.json b/tests/purs/publish/basic-example/output/Data.List.Lazy/docs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.List.Lazy/docs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"reExports":[],"name":"Data.List.Lazy","comments":"This module defines a type of _lazy_ linked lists, and associated helper\nfunctions and type class instances.\n\n_Note_: Depending on your use-case, you may prefer to use\n`Data.Sequence` instead, which might give better performance for certain\nuse cases. This module is an improvement over `Data.Array` when working with\nimmutable lists of data in a purely-functional setting, but does not have\ngood random-access performance.\n","declarations":[{"children":[],"comments":"Convert a list into any unfoldable structure.\n\nRunning time: `O(n)`\n","title":"toUnfoldable","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Unfoldable"],"Unfoldable"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","NaturalTransformation"],"~>"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"f"}]}]},null]}},"sourceSpan":{"start":[118,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[118,52]}},{"children":[],"comments":"Construct a list from a foldable structure.\n\nRunning time: `O(n)`\n","title":"fromFoldable","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Foldable"],"Foldable"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","NaturalTransformation"],"~>"]},{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]}]}]},null]}},"sourceSpan":{"start":[124,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[124,50]}},{"children":[],"comments":"Create a list with a single element.\n\nRunning time: `O(1)`\n","title":"singleton","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},null]}},"sourceSpan":{"start":[137,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[137,35]}},{"children":[],"comments":"An infix synonym for `range`.\n","title":"(..)","info":{"declType":"alias","alias":[["Data","List","Lazy"],{"Right":{"Left":{"Ident":"range"}}}],"fixity":{"associativity":"infix","precedence":8}},"sourceSpan":{"start":[141,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[141,20]}},{"children":[],"comments":"Create a list containing a range of integers, including both endpoints.\n","title":"range","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]}]}},"sourceSpan":{"start":[144,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[144,32]}},{"children":[],"comments":"Create a list with repeated instances of a value.\n","title":"replicate","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]},null]}},"sourceSpan":{"start":[156,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[156,42]}},{"children":[],"comments":"Perform a monadic action `n` times collecting all of the results.\n","title":"replicateM","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Monad"],"Monad"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]}]}]}]},null]},null]}},"sourceSpan":{"start":[160,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[160,62]}},{"children":[],"comments":"Attempt a computation multiple times, requiring at least one success.\n\nThe `Lazy` constraint is used to generate the result lazily, to ensure\ntermination.\n","title":"some","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Alternative"],"Alternative"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Lazy"],"Lazy"],"constraintArgs":[{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]}}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]}]}]}]},null]},null]}},"sourceSpan":{"start":[172,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[172,80]}},{"children":[],"comments":"Attempt a computation multiple times, returning as many successful results\nas possible (possibly zero).\n\nThe `Lazy` constraint is used to generate the result lazily, to ensure\ntermination.\n","title":"many","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Alternative"],"Alternative"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Lazy"],"Lazy"],"constraintArgs":[{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]}}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]}]}]}]},null]},null]}},"sourceSpan":{"start":[180,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[180,78]}},{"children":[],"comments":"Create a list by repeating an element\n","title":"repeat","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},null]}},"sourceSpan":{"start":[184,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[184,32]}},{"children":[],"comments":"Create a list by iterating a function\n","title":"iterate","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]},null]}},"sourceSpan":{"start":[188,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[188,45]}},{"children":[],"comments":"Create a list by repeating another list\n","title":"cycle","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},null]}},"sourceSpan":{"start":[192,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[192,36]}},{"children":[],"comments":"Test whether a list is empty.\n\nRunning time: `O(1)`\n","title":"null","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]},null]}},"sourceSpan":{"start":[202,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[202,36]}},{"children":[],"comments":"Get the length of a list\n\nRunning time: `O(n)`\n","title":"length","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},null]}},"sourceSpan":{"start":[208,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[208,34]}},{"children":[],"comments":"Append an element to the end of a list, creating a new list.\n\nRunning time: `O(n)`\n","title":"snoc","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]},null]}},"sourceSpan":{"start":[218,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[218,40]}},{"children":[],"comments":"Insert an element into a sorted list.\n\nRunning time: `O(n)`\n","title":"insert","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]}]},null]}},"sourceSpan":{"start":[224,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[224,51]}},{"children":[],"comments":"Insert an element into a sorted list, using the specified function to determine the ordering\nof elements.\n\nRunning time: `O(n)`\n","title":"insertBy","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ordering"],"Ordering"]}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]}]},null]}},"sourceSpan":{"start":[231,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[231,68]}},{"children":[],"comments":"Get the first element in a list, or `Nothing` if the list is empty.\n\nRunning time: `O(1)`.\n","title":"head","info":{"declType":"value","type":{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","NaturalTransformation"],"~>"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]}]}},"sourceSpan":{"start":[247,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[247,22]}},{"children":[],"comments":"Get the last element in a list, or `Nothing` if the list is empty.\n\nRunning time: `O(n)`.\n","title":"last","info":{"declType":"value","type":{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","NaturalTransformation"],"~>"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]}]}},"sourceSpan":{"start":[253,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[253,22]}},{"children":[],"comments":"Get all but the first element of a list, or `Nothing` if the list is empty.\n\nRunning time: `O(1)`\n","title":"tail","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]}]},null]}},"sourceSpan":{"start":[264,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[264,43]}},{"children":[],"comments":"Get all but the last element of a list, or `Nothing` if the list is empty.\n\nRunning time: `O(n)`\n","title":"init","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]}]},null]}},"sourceSpan":{"start":[270,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[270,43]}},{"children":[],"comments":"Break a list into its first element, and the remaining elements,\nor `Nothing` if the list is empty.\n\nRunning time: `O(1)`\n","title":"uncons","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"RCons","contents":["head",{"annotation":[],"tag":"TypeVar","contents":"a"},{"annotation":[],"tag":"RCons","contents":["tail",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"REmpty"}]}]}]}]}]},null]}},"sourceSpan":{"start":[283,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[283,66]}},{"children":[],"comments":"An infix synonym for `index`.\n","title":"(!!)","info":{"declType":"alias","alias":[["Data","List","Lazy"],{"Right":{"Left":{"Ident":"index"}}}],"fixity":{"associativity":"infixl","precedence":8}},"sourceSpan":{"start":[303,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[303,21]}},{"children":[],"comments":"Get the element at the specified index, or `Nothing` if the index is out-of-bounds.\n\nRunning time: `O(n)` where `n` is the required index.\n","title":"index","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]},null]}},"sourceSpan":{"start":[295,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[295,44]}},{"children":[],"comments":"Find the index of the first element equal to the specified element.\n","title":"elemIndex","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]}]}]},null]}},"sourceSpan":{"start":[306,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[306,56]}},{"children":[],"comments":"Find the index of the last element equal to the specified element.\n","title":"elemLastIndex","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]}]}]},null]}},"sourceSpan":{"start":[310,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[310,60]}},{"children":[],"comments":"Find the first index for which a predicate holds.\n","title":"findIndex","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]}]},null]}},"sourceSpan":{"start":[314,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[314,61]}},{"children":[],"comments":"Find the last index for which a predicate holds.\n","title":"findLastIndex","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]}]},null]}},"sourceSpan":{"start":[325,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[325,65]}},{"children":[],"comments":"Insert an element into a list at the specified index, returning a new\nlist or `Nothing` if the index is out-of-bounds.\n\nThis function differs from the strict equivalent in that out-of-bounds arguments\nresult in the element being appended at the _end_ of the list.\n\nRunning time: `O(n)`\n","title":"insertAt","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]}]},null]}},"sourceSpan":{"start":[335,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[335,51]}},{"children":[],"comments":"Delete an element from a list at the specified index, returning a new\nlist or `Nothing` if the index is out-of-bounds.\n\nThis function differs from the strict equivalent in that out-of-bounds arguments\nresult in the original list being returned unchanged.\n\nRunning time: `O(n)`\n","title":"deleteAt","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]},null]}},"sourceSpan":{"start":[349,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[349,46]}},{"children":[],"comments":"Update the element at the specified index, returning a new\nlist or `Nothing` if the index is out-of-bounds.\n\nThis function differs from the strict equivalent in that out-of-bounds arguments\nresult in the original list being returned unchanged.\n\nRunning time: `O(n)`\n","title":"updateAt","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]}]},null]}},"sourceSpan":{"start":[363,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[363,51]}},{"children":[],"comments":"Update the element at the specified index by applying a function to\nthe current value, returning a new list or `Nothing` if the index is\nout-of-bounds.\n\nThis function differs from the strict equivalent in that out-of-bounds arguments\nresult in the original list being returned unchanged.\n\nRunning time: `O(n)`\n","title":"modifyAt","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]}]},null]}},"sourceSpan":{"start":[378,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[378,58]}},{"children":[],"comments":"Update or delete the element at the specified index by applying a\nfunction to the current value, returning a new list or `Nothing` if the\nindex is out-of-bounds.\n\nThis function differs from the strict equivalent in that out-of-bounds arguments\nresult in the original list being returned unchanged.\n\nRunning time: `O(n)`\n","title":"alterAt","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]}]},null]}},"sourceSpan":{"start":[389,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[389,63]}},{"children":[],"comments":"Reverse a list.\n\nRunning time: `O(n)`\n","title":"reverse","info":{"declType":"value","type":{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","NaturalTransformation"],"~>"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]}]}},"sourceSpan":{"start":[405,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[405,24]}},{"children":[],"comments":"Flatten a list of lists.\n\nRunning time: `O(n)`, where `n` is the total number of elements.\n","title":"concat","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},null]}},"sourceSpan":{"start":[411,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[411,44]}},{"children":[],"comments":"Apply a function to each element in a list, and flatten the results\ninto a single, new list.\n\nRunning time: `O(n)`, where `n` is the total number of elements.\n","title":"concatMap","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}]},null]},null]}},"sourceSpan":{"start":[418,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[418,59]}},{"children":[],"comments":"Filter a list, keeping the elements which satisfy a predicate function.\n\nRunning time: `O(n)`\n","title":"filter","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]},null]}},"sourceSpan":{"start":[424,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[424,55]}},{"children":[],"comments":"Filter where the predicate returns a monadic `Boolean`.\n\nFor example:\n\n```purescript\npowerSet :: forall a. [a] -> [[a]]\npowerSet = filterM (const [true, false])\n```\n","title":"filterM","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Monad"],"Monad"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]}]}]}]},null]},null]}},"sourceSpan":{"start":[440,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[440,75]}},{"children":[],"comments":"Apply a function to each element in a list, keeping only the results which\ncontain a value.\n\nRunning time: `O(n)`\n","title":"mapMaybe","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}]},null]},null]}},"sourceSpan":{"start":[454,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[454,59]}},{"children":[],"comments":"Filter a list of optional values, keeping only the elements which contain\na value.\n","title":"catMaybes","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},null]}},"sourceSpan":{"start":[465,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[465,48]}},{"children":[{"comments":null,"title":"Pattern","info":{"arguments":[{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}],"declType":"dataConstructor"},"sourceSpan":null},{"comments":null,"title":"eqPattern","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Eq"],"Eq"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy"],"Pattern"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[480,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[480,52]}},{"comments":null,"title":"ordPattern","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord"],"Ord"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy"],"Pattern"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[481,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[481,55]}},{"comments":null,"title":"newtypePattern","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Newtype"],"Newtype"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy"],"Pattern"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeWildcard","contents":null}]}},"sourceSpan":{"start":[482,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[482,56]}},{"comments":null,"title":"showPattern","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Show"],"Show"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Show"],"Show"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy"],"Pattern"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[484,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[485,50]}}],"comments":"A newtype used in cases where there is a list to be matched.\n","title":"Pattern","info":{"declType":"data","dataDeclType":"newtype","typeArguments":[["a",null]]},"sourceSpan":{"start":[478,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[478,37]}},{"children":[],"comments":"If the list starts with the given prefix, return the portion of the\nlist left after removing it, as a Just value. Otherwise, return Nothing.\n* `stripPrefix (Pattern (fromFoldable [1])) (fromFoldable [1,2]) == Just (fromFoldable [2])`\n* `stripPrefix (Pattern (fromFoldable [])) (fromFoldable [1]) == Just (fromFoldable [1])`\n* `stripPrefix (Pattern (fromFoldable [2])) (fromFoldable [1]) == Nothing`\n\nRunning time: `O(n)` where `n` is the number of elements to strip.\n","title":"stripPrefix","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy"],"Pattern"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]}]}]}]},null]}},"sourceSpan":{"start":[495,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[495,71]}},{"children":[],"comments":"Extract a sublist by a start and end index.\n","title":"slice","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","NaturalTransformation"],"~>"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]}]}]}]}},"sourceSpan":{"start":[505,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[505,36]}},{"children":[],"comments":"Take the specified number of elements from the front of a list.\n\nRunning time: `O(n)` where `n` is the number of elements to take.\n","title":"take","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]},null]}},"sourceSpan":{"start":[511,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[511,42]}},{"children":[],"comments":"Take those elements from the front of a list which match a predicate.\n\nRunning time (worst case): `O(n)`\n","title":"takeWhile","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]},null]}},"sourceSpan":{"start":[523,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[523,58]}},{"children":[],"comments":"Drop the specified number of elements from the front of a list.\n\nRunning time: `O(n)` where `n` is the number of elements to drop.\n","title":"drop","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]},null]}},"sourceSpan":{"start":[532,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[532,42]}},{"children":[],"comments":"Drop those elements from the front of a list which match a predicate.\n\nRunning time (worst case): `O(n)`\n","title":"dropWhile","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]},null]}},"sourceSpan":{"start":[542,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[542,58]}},{"children":[],"comments":"Split a list into two parts:\n\n1. the longest initial segment for which all elements satisfy the specified predicate\n2. the remaining elements\n\nFor example,\n\n```purescript\nspan (\\n -> n % 2 == 1) (1 : 3 : 2 : 4 : 5 : Nil) == Tuple (1 : 3 : Nil) (2 : 4 : 5 : Nil)\n```\n\nRunning time: `O(n)`\n","title":"span","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"RCons","contents":["init",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"RCons","contents":["rest",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"REmpty"}]}]}]}]}]},null]}},"sourceSpan":{"start":[560,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[560,81]}},{"children":[],"comments":"Group equal, consecutive elements of a list into lists.\n\nFor example,\n\n```purescript\ngroup (1 : 1 : 2 : 2 : 1 : Nil) == (1 : 1 : Nil) : (2 : 2 : Nil) : (1 : Nil) : Nil\n```\n\nRunning time: `O(n)`\n","title":"group","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"NonEmptyList"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]}]}]},null]}},"sourceSpan":{"start":[577,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[577,63]}},{"children":[],"comments":"Group equal, consecutive elements of a list into lists, using the specified\nequivalence relation to determine equality.\n\nRunning time: `O(n)`\n","title":"groupBy","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"NonEmptyList"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]}]}]},null]}},"sourceSpan":{"start":[584,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[584,80]}},{"children":[],"comments":"Returns a tuple of lists of elements which do\nand do not satisfy a predicate, respectively.\n\nRunning time: `O(n)`\n","title":"partition","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"RCons","contents":["yes",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"RCons","contents":["no",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"REmpty"}]}]}]}]}]},null]}},"sourceSpan":{"start":[597,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[597,83]}},{"children":[],"comments":"Remove duplicate elements from a list.\n\nRunning time: `O(n^2)`\n","title":"nub","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]},null]}},"sourceSpan":{"start":[610,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[610,42]}},{"children":[],"comments":"Remove duplicate elements from a list, using the specified\nfunction to determine equality of elements.\n\nRunning time: `O(n^2)`\n","title":"nubBy","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]},null]}},"sourceSpan":{"start":[617,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[617,59]}},{"children":[],"comments":"Calculate the union of two lists.\n\nRunning time: `O(n^2)`\n","title":"union","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]}]},null]}},"sourceSpan":{"start":[626,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[626,54]}},{"children":[],"comments":"Calculate the union of two lists, using the specified\nfunction to determine equality of elements.\n\nRunning time: `O(n^2)`\n","title":"unionBy","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]}]},null]}},"sourceSpan":{"start":[633,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[633,71]}},{"children":[],"comments":"Delete the first occurrence of an element from a list.\n\nRunning time: `O(n)`\n","title":"delete","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]}]},null]}},"sourceSpan":{"start":[639,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[639,50]}},{"children":[],"comments":"Delete the first occurrence of an element from a list, using the specified\nfunction to determine equality of elements.\n\nRunning time: `O(n)`\n","title":"deleteBy","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]}]},null]}},"sourceSpan":{"start":[646,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[646,67]}},{"children":[],"comments":null,"title":"(\\\\)","info":{"declType":"alias","alias":[["Data","List","Lazy"],{"Right":{"Left":{"Ident":"difference"}}}],"fixity":{"associativity":"infix","precedence":5}},"sourceSpan":{"start":[658,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[658,25]}},{"children":[],"comments":"Delete the first occurrence of each element in the second list from the first list.\n\nRunning time: `O(n^2)`\n","title":"difference","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]}]},null]}},"sourceSpan":{"start":[656,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[656,59]}},{"children":[],"comments":"Calculate the intersection of two lists.\n\nRunning time: `O(n^2)`\n","title":"intersect","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]}]},null]}},"sourceSpan":{"start":[663,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[663,58]}},{"children":[],"comments":"Calculate the intersection of two lists, using the specified\nfunction to determine equality of elements.\n\nRunning time: `O(n^2)`\n","title":"intersectBy","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]}]},null]}},"sourceSpan":{"start":[670,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[670,75]}},{"children":[],"comments":"Apply a function to pairs of elements at the same positions in two lists,\ncollecting the results in a new list.\n\nIf one list is longer, elements will be discarded from the longer list.\n\nFor example\n\n```purescript\nzipWith (*) (1 : 2 : 3 : Nil) (4 : 5 : 6 : 7 Nil) == 4 : 10 : 18 : Nil\n```\n\nRunning time: `O(min(m, n))`\n","title":"zipWith","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"c"}]}]}]}]},null]},null]},null]}},"sourceSpan":{"start":[689,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[689,69]}},{"children":[],"comments":"A generalization of `zipWith` which accumulates results in some `Applicative`\nfunctor.\n","title":"zipWithA","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Applicative"],"Applicative"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"c"}]}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"c"}]}}]}]}]}]}]},null]},null]},null]},null]}},"sourceSpan":{"start":[699,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[699,95]}},{"children":[],"comments":"Collect pairs of elements at the same positions in two lists.\n\nRunning time: `O(min(m, n))`\n","title":"zip","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}}]}]}]},null]},null]}},"sourceSpan":{"start":[705,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[705,56]}},{"children":[],"comments":"Transforms a list of pairs into a list of first components and a list of\nsecond components.\n","title":"unzip","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}}]}]},null]},null]}},"sourceSpan":{"start":[710,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[710,65]}},{"children":[],"comments":"The 'transpose' function transposes the rows and columns of its argument.\nFor example,\n\n    transpose ((1:2:3:nil) : (4:5:6:nil) : nil) ==\n      ((1:4:nil) : (2:5:nil) : (3:6:nil) : nil)\n\nIf some of the rows are shorter than the following rows, their elements are skipped:\n\n    transpose ((10:11:nil) : (20:nil) : nil : (30:31:32:nil) : nil) ==\n      ((10:20:30:nil) : (11:31:nil) : (32:nil) : nil)\n","title":"transpose","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]}]},null]}},"sourceSpan":{"start":[727,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[727,54]}},{"children":[],"comments":"Perform a fold using a monadic step function.\n","title":"foldM","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Monad"],"Monad"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]}]}]},null]},null]},null]}},"sourceSpan":{"start":[744,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[744,72]}},{"children":[],"comments":"Perform a right fold lazily\n","title":"foldrLazy","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Lazy"],"Lazy"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"b"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}]}]},null]},null]}},"sourceSpan":{"start":[752,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[752,71]}}]}
diff --git a/tests/purs/publish/basic-example/output/Data.List.Lazy/externs.json b/tests/purs/publish/basic-example/output/Data.List.Lazy/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.List.Lazy/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Data","List","Lazy"],"efExports":[{"ReExportRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[757,15]},{"exportSourceImportedFrom":["Data","List","Lazy","Types"],"exportSourceDefinedIn":["Data","List","Lazy","Types"]},{"TypeRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[757,15]},"List",["List"]]}]},{"ReExportRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[757,15]},{"exportSourceImportedFrom":["Data","List","Lazy","Types"],"exportSourceDefinedIn":["Data","List","Lazy","Types"]},{"TypeRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[757,15]},"Step",["Cons","Nil"]]}]},{"ReExportRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[757,15]},{"exportSourceImportedFrom":["Data","Foldable"],"exportSourceDefinedIn":["Data","Foldable"]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[757,15]},{"Ident":"all"}]}]},{"ReExportRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[757,15]},{"exportSourceImportedFrom":["Data","Foldable"],"exportSourceDefinedIn":["Data","Foldable"]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[757,15]},{"Ident":"any"}]}]},{"ReExportRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[757,15]},{"exportSourceImportedFrom":["Data","List","Lazy","Types"],"exportSourceDefinedIn":["Data","List","Lazy","Types"]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[757,15]},{"Ident":"cons"}]}]},{"ReExportRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[757,15]},{"exportSourceImportedFrom":["Data","Foldable"],"exportSourceDefinedIn":["Data","Foldable"]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[757,15]},{"Ident":"elem"}]}]},{"ReExportRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[757,15]},{"exportSourceImportedFrom":["Data","Foldable"],"exportSourceDefinedIn":["Data","Foldable"]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[757,15]},{"Ident":"find"}]}]},{"ReExportRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[757,15]},{"exportSourceImportedFrom":["Data","Foldable"],"exportSourceDefinedIn":["Data","Foldable"]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[757,15]},{"Ident":"findMap"}]}]},{"ReExportRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[757,15]},{"exportSourceImportedFrom":["Data","Foldable"],"exportSourceDefinedIn":["Data","Foldable"]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[757,15]},{"Ident":"fold"}]}]},{"ReExportRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[757,15]},{"exportSourceImportedFrom":["Data","Foldable"],"exportSourceDefinedIn":["Data","Foldable"]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[757,15]},{"Ident":"foldMap"}]}]},{"ReExportRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[757,15]},{"exportSourceImportedFrom":["Data","Foldable"],"exportSourceDefinedIn":["Data","Foldable"]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[757,15]},{"Ident":"foldl"}]}]},{"ReExportRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[757,15]},{"exportSourceImportedFrom":["Data","Foldable"],"exportSourceDefinedIn":["Data","Foldable"]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[757,15]},{"Ident":"foldr"}]}]},{"ReExportRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[757,15]},{"exportSourceImportedFrom":["Data","Foldable"],"exportSourceDefinedIn":["Data","Foldable"]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[757,15]},{"Ident":"intercalate"}]}]},{"ReExportRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[757,15]},{"exportSourceImportedFrom":["Data","List","Lazy","Types"],"exportSourceDefinedIn":["Data","List","Lazy","Types"]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[757,15]},{"Ident":"nil"}]}]},{"ReExportRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[757,15]},{"exportSourceImportedFrom":["Data","Foldable"],"exportSourceDefinedIn":["Data","Foldable"]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[757,15]},{"Ident":"notElem"}]}]},{"ReExportRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[757,15]},{"exportSourceImportedFrom":["Data","Traversable"],"exportSourceDefinedIn":["Data","Traversable"]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[757,15]},{"Ident":"scanl"}]}]},{"ReExportRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[757,15]},{"exportSourceImportedFrom":["Data","Traversable"],"exportSourceDefinedIn":["Data","Traversable"]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[757,15]},{"Ident":"scanr"}]}]},{"ReExportRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[757,15]},{"exportSourceImportedFrom":["Data","List","Lazy","Types"],"exportSourceDefinedIn":["Data","List","Lazy","Types"]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[757,15]},{"Ident":"step"}]}]},{"ReExportRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[757,15]},{"exportSourceImportedFrom":["Data","List","Lazy","Types"],"exportSourceDefinedIn":["Data","List","Lazy","Types"]},{"ValueOpRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[757,15]},":"]}]},{"ModuleRef":[{"start":[11,5],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[11,32]},["Data","List","Lazy","Types"]]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[757,15]},{"Ident":"toUnfoldable"}]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[757,15]},{"Ident":"fromFoldable"}]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[757,15]},{"Ident":"singleton"}]},{"ValueOpRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[757,15]},".."]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[757,15]},{"Ident":"range"}]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[757,15]},{"Ident":"replicate"}]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[757,15]},{"Ident":"replicateM"}]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[757,15]},{"Ident":"some"}]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[757,15]},{"Ident":"many"}]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[757,15]},{"Ident":"repeat"}]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[757,15]},{"Ident":"iterate"}]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[757,15]},{"Ident":"cycle"}]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[757,15]},{"Ident":"null"}]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[757,15]},{"Ident":"length"}]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[757,15]},{"Ident":"snoc"}]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[757,15]},{"Ident":"insert"}]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[757,15]},{"Ident":"insertBy"}]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[757,15]},{"Ident":"head"}]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[757,15]},{"Ident":"last"}]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[757,15]},{"Ident":"tail"}]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[757,15]},{"Ident":"init"}]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[757,15]},{"Ident":"uncons"}]},{"ValueOpRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[757,15]},"!!"]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[757,15]},{"Ident":"index"}]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[757,15]},{"Ident":"elemIndex"}]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[757,15]},{"Ident":"elemLastIndex"}]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[757,15]},{"Ident":"findIndex"}]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[757,15]},{"Ident":"findLastIndex"}]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[757,15]},{"Ident":"insertAt"}]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[757,15]},{"Ident":"deleteAt"}]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[757,15]},{"Ident":"updateAt"}]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[757,15]},{"Ident":"modifyAt"}]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[757,15]},{"Ident":"alterAt"}]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[757,15]},{"Ident":"reverse"}]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[757,15]},{"Ident":"concat"}]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[757,15]},{"Ident":"concatMap"}]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[757,15]},{"Ident":"filter"}]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[757,15]},{"Ident":"filterM"}]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[757,15]},{"Ident":"mapMaybe"}]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[757,15]},{"Ident":"catMaybes"}]},{"TypeRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[757,15]},"Pattern",["Pattern"]]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[757,15]},{"Ident":"stripPrefix"}]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[757,15]},{"Ident":"slice"}]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[757,15]},{"Ident":"take"}]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[757,15]},{"Ident":"takeWhile"}]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[757,15]},{"Ident":"drop"}]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[757,15]},{"Ident":"dropWhile"}]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[757,15]},{"Ident":"span"}]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[757,15]},{"Ident":"group"}]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[757,15]},{"Ident":"groupBy"}]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[757,15]},{"Ident":"partition"}]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[757,15]},{"Ident":"nub"}]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[757,15]},{"Ident":"nubBy"}]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[757,15]},{"Ident":"union"}]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[757,15]},{"Ident":"unionBy"}]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[757,15]},{"Ident":"delete"}]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[757,15]},{"Ident":"deleteBy"}]},{"ValueOpRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[757,15]},"\\\\"]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[757,15]},{"Ident":"difference"}]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[757,15]},{"Ident":"intersect"}]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[757,15]},{"Ident":"intersectBy"}]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[757,15]},{"Ident":"zipWith"}]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[757,15]},{"Ident":"zipWithA"}]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[757,15]},{"Ident":"zip"}]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[757,15]},{"Ident":"unzip"}]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[757,15]},{"Ident":"transpose"}]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[757,15]},{"Ident":"foldM"}]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[757,15]},{"Ident":"foldrLazy"}]},{"ModuleRef":[{"start":[93,5],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[93,19]},["Exports"]]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"eqPattern"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"ordPattern"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"newtypePattern"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"showPattern"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Prelude"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Control","Alt"],"eiImportType":{"Explicit":[{"ValueOpRef":[{"start":[98,21],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[98,26]},"<|>"]}]},"eiImportedAs":null},{"eiModule":["Control","Alternative"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[99,29],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[99,46]},"Alternative"]}]},"eiImportedAs":null},{"eiModule":["Control","Lazy"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Z"]},{"eiModule":["Control","Monad","Rec","Class"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Rec"]},{"eiModule":["Data","Foldable"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[102,23],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[102,37]},"Foldable"]},{"ValueRef":[{"start":[102,39],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[102,44]},{"Ident":"foldr"}]},{"ValueRef":[{"start":[102,46],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[102,49]},{"Ident":"any"}]},{"ValueRef":[{"start":[102,51],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[102,56]},{"Ident":"foldl"}]}]},"eiImportedAs":null},{"eiModule":["Data","Foldable"],"eiImportType":{"Explicit":[{"ValueRef":[{"start":[103,23],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[103,28]},{"Ident":"foldl"}]},{"ValueRef":[{"start":[103,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[103,35]},{"Ident":"foldr"}]},{"ValueRef":[{"start":[103,37],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[103,44]},{"Ident":"foldMap"}]},{"ValueRef":[{"start":[103,46],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[103,50]},{"Ident":"fold"}]},{"ValueRef":[{"start":[103,52],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[103,63]},{"Ident":"intercalate"}]},{"ValueRef":[{"start":[103,65],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[103,69]},{"Ident":"elem"}]},{"ValueRef":[{"start":[103,71],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[103,78]},{"Ident":"notElem"}]},{"ValueRef":[{"start":[103,80],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[103,84]},{"Ident":"find"}]},{"ValueRef":[{"start":[103,86],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[103,93]},{"Ident":"findMap"}]},{"ValueRef":[{"start":[103,95],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[103,98]},{"Ident":"any"}]},{"ValueRef":[{"start":[103,100],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[103,103]},{"Ident":"all"}]}]},"eiImportedAs":["Exports"]},{"eiModule":["Data","Lazy"],"eiImportType":{"Explicit":[{"ValueRef":[{"start":[104,19],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[104,24]},{"Ident":"defer"}]}]},"eiImportedAs":null},{"eiModule":["Data","List","Lazy","Types"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[105,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[105,38]},"List",null]},{"TypeRef":[{"start":[105,40],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[105,48]},"Step",null]},{"ValueRef":[{"start":[105,50],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[105,54]},{"Ident":"step"}]},{"ValueRef":[{"start":[105,56],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[105,59]},{"Ident":"nil"}]},{"ValueRef":[{"start":[105,61],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[105,65]},{"Ident":"cons"}]},{"ValueOpRef":[{"start":[105,67],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[105,70]},":"]}]},"eiImportedAs":null},{"eiModule":["Data","List","Lazy","Types"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[106,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[106,46]},"NonEmptyList",null]}]},"eiImportedAs":["NEL"]},{"eiModule":["Data","Maybe"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[107,20],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[107,29]},"Maybe",null]},{"ValueRef":[{"start":[107,31],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[107,40]},{"Ident":"isNothing"}]}]},"eiImportedAs":null},{"eiModule":["Data","Newtype"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[108,22],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[108,35]},"Newtype"]},{"ValueRef":[{"start":[108,37],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[108,43]},{"Ident":"unwrap"}]}]},"eiImportedAs":null},{"eiModule":["Data","NonEmpty"],"eiImportType":{"Explicit":[{"ValueOpRef":[{"start":[109,23],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[109,27]},":|"]}]},"eiImportedAs":null},{"eiModule":["Data","Traversable"],"eiImportType":{"Explicit":[{"ValueRef":[{"start":[110,26],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[110,31]},{"Ident":"scanl"}]},{"ValueRef":[{"start":[110,33],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[110,38]},{"Ident":"scanr"}]}]},"eiImportedAs":["Exports"]},{"eiModule":["Data","Traversable"],"eiImportType":{"Explicit":[{"ValueRef":[{"start":[111,26],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[111,34]},{"Ident":"sequence"}]}]},"eiImportedAs":null},{"eiModule":["Data","Tuple"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[112,20],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[112,29]},"Tuple",null]}]},"eiImportedAs":null},{"eiModule":["Data","Unfoldable"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[113,25],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[113,41]},"Unfoldable"]},{"ValueRef":[{"start":[113,43],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[113,50]},{"Ident":"unfoldr"}]}]},"eiImportedAs":null}],"efFixities":[{"efAssociativity":"infix","efPrecedence":8,"efOperator":"..","efAlias":[["Data","List","Lazy"],{"Left":{"Ident":"range"}}]},{"efAssociativity":"infixl","efPrecedence":8,"efOperator":"!!","efAlias":[["Data","List","Lazy"],{"Left":{"Ident":"index"}}]},{"efAssociativity":"infix","efPrecedence":5,"efOperator":"\\\\","efAlias":[["Data","List","Lazy"],{"Left":{"Ident":"difference"}}]}],"efTypeFixities":[],"efDeclarations":[{"EDValue":{"edValueName":{"Ident":"toUnfoldable"},"edValueType":{"annotation":[{"start":[118,17],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[118,52]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[118,27],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[118,52]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[118,27],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[118,39]},[]],"constraintClass":[["Data","Unfoldable"],"Unfoldable"],"constraintArgs":[{"annotation":[{"start":[118,38],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[118,39]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[17,34],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,54]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[17,44],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[17,44],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[17,48],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,50]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[17,44],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[118,43],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[118,47]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[17,46],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,47]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[17,51],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[118,51],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[118,52]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[17,53],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,54]},[]],"tag":"TypeVar","contents":"a"}]}]},35]}]},36]}}},{"EDValue":{"edValueName":{"Ident":"fromFoldable"},"edValueType":{"annotation":[{"start":[124,17],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[124,50]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[124,27],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[124,50]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[124,27],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[124,37]},[]],"constraintClass":[["Data","Foldable"],"Foldable"],"constraintArgs":[{"annotation":[{"start":[124,36],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[124,37]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[17,34],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,54]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[17,44],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[17,44],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[17,48],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,50]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[17,44],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[124,41],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[124,42]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[17,46],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,47]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[17,51],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[124,46],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[124,50]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[17,53],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,54]},[]],"tag":"TypeVar","contents":"a"}]}]},138]}]},139]}}},{"EDValue":{"edValueName":{"Ident":"singleton"},"edValueType":{"annotation":[{"start":[137,14],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[137,35]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[137,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[137,35]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[137,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[137,35]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[137,26],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[137,28]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[137,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[137,25]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[137,29],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[137,35]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[137,29],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[137,33]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[137,34],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[137,35]},[]],"tag":"TypeVar","contents":"a"}]}]},59]}}},{"EDValue":{"edValueName":{"Ident":"range"},"edValueType":{"annotation":[{"start":[144,10],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[144,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[144,10],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[144,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[144,14],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[144,16]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[144,10],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[144,13]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[144,17],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[144,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[144,17],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[144,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[144,21],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[144,23]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[144,17],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[144,20]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[144,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[144,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[144,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[144,28]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[144,29],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[144,32]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]}]}}},{"EDValue":{"edValueName":{"Ident":"replicate"},"edValueType":{"annotation":[{"start":[156,14],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[156,42]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[156,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[156,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[156,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[156,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[156,28],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[156,30]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[156,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[156,27]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[156,31],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[156,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[156,31],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[156,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[156,33],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[156,35]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[156,31],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[156,32]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[156,36],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[156,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[156,36],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[156,40]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[156,41],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[156,42]},[]],"tag":"TypeVar","contents":"a"}]}]}]},73]}}},{"EDValue":{"edValueName":{"Ident":"replicateM"},"edValueType":{"annotation":[{"start":[160,15],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[160,62]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[160,22],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[160,62]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[160,27],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[160,62]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[160,27],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[160,34]},[]],"constraintClass":[["Control","Monad"],"Monad"],"constraintArgs":[{"annotation":[{"start":[160,33],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[160,34]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[160,38],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[160,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[160,38],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[160,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[160,42],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[160,44]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[160,38],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[160,41]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[160,45],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[160,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[160,45],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[160,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[160,49],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[160,51]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[160,45],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[160,48]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[160,45],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[160,46]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[160,47],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[160,48]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[160,52],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[160,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[160,52],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[160,53]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[160,55],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[160,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[160,55],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[160,59]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[160,60],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[160,61]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]}]},65]},66]}}},{"EDValue":{"edValueName":{"Ident":"some"},"edValueType":{"annotation":[{"start":[172,9],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[172,80]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[172,16],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[172,80]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[172,21],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[172,80]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[172,21],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[172,34]},[]],"constraintClass":[["Control","Alternative"],"Alternative"],"constraintArgs":[{"annotation":[{"start":[172,33],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[172,34]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[172,38],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[172,80]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[172,38],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[172,58]},[]],"constraintClass":[["Control","Lazy"],"Lazy"],"constraintArgs":[{"annotation":[{"start":[172,46],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[172,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[172,46],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[172,47]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[172,49],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[172,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[172,49],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[172,53]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[172,55],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[172,56]},[]],"tag":"TypeVar","contents":"a"}]}]}],"constraintData":null},{"annotation":[{"start":[172,62],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[172,80]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[172,62],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[172,80]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[172,66],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[172,68]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[172,62],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[172,65]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[172,62],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[172,63]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[172,64],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[172,65]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[172,69],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[172,80]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[172,69],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[172,70]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[172,72],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[172,79]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[172,72],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[172,76]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[172,78],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[172,79]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]}]},91]},92]}}},{"EDValue":{"edValueName":{"Ident":"many"},"edValueType":{"annotation":[{"start":[180,9],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[180,78]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[180,16],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[180,78]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[180,21],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[180,78]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[180,21],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[180,34]},[]],"constraintClass":[["Control","Alternative"],"Alternative"],"constraintArgs":[{"annotation":[{"start":[180,33],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[180,34]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[180,38],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[180,78]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[180,38],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[180,57]},[]],"constraintClass":[["Control","Lazy"],"Lazy"],"constraintArgs":[{"annotation":[{"start":[180,46],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[180,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[180,46],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[180,47]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[180,49],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[180,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[180,49],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[180,53]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[180,54],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[180,55]},[]],"tag":"TypeVar","contents":"a"}]}]}],"constraintData":null},{"annotation":[{"start":[180,61],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[180,78]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[180,61],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[180,78]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[180,65],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[180,67]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[180,61],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[180,64]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[180,61],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[180,62]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[180,63],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[180,64]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[180,68],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[180,78]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[180,68],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[180,69]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[180,71],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[180,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[180,71],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[180,75]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[180,76],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[180,77]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]}]},97]},98]}}},{"EDValue":{"edValueName":{"Ident":"repeat"},"edValueType":{"annotation":[{"start":[184,11],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[184,32]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[184,21],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[184,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[184,21],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[184,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[184,23],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[184,25]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[184,21],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[184,22]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[184,26],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[184,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[184,26],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[184,30]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[184,31],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[184,32]},[]],"tag":"TypeVar","contents":"a"}]}]},71]}}},{"EDValue":{"edValueName":{"Ident":"iterate"},"edValueType":{"annotation":[{"start":[188,12],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[188,45]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[188,22],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[188,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[188,22],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[188,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[188,31],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[188,33]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[188,23],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[188,29]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[188,23],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[188,29]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[188,25],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[188,27]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[188,23],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[188,24]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[188,28],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[188,29]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[188,34],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[188,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[188,34],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[188,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[188,36],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[188,38]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[188,34],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[188,35]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[188,39],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[188,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[188,39],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[188,43]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[188,44],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[188,45]},[]],"tag":"TypeVar","contents":"a"}]}]}]},107]}}},{"EDValue":{"edValueName":{"Ident":"cycle"},"edValueType":{"annotation":[{"start":[192,10],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[192,36]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[192,20],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[192,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[192,20],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[192,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[192,27],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[192,29]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[192,20],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[192,26]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[192,20],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[192,24]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[192,25],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[192,26]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[192,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[192,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[192,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[192,34]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[192,35],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[192,36]},[]],"tag":"TypeVar","contents":"a"}]}]},206]}}},{"EDValue":{"edValueName":{"Ident":"null"},"edValueType":{"annotation":[{"start":[202,9],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[202,36]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[202,19],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[202,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[202,19],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[202,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[202,26],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[202,28]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[202,19],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[202,25]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[202,19],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[202,23]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[202,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[202,25]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[202,29],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[202,36]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]},79]}}},{"EDValue":{"edValueName":{"Ident":"length"},"edValueType":{"annotation":[{"start":[208,11],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[208,34]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[208,21],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[208,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[208,21],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[208,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[208,28],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[208,30]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[208,21],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[208,27]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[208,21],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[208,25]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[208,26],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[208,27]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[208,31],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[208,34]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},103]}}},{"EDValue":{"edValueName":{"Ident":"snoc"},"edValueType":{"annotation":[{"start":[218,9],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[218,40]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[218,19],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[218,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[218,19],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[218,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[218,26],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[218,28]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[218,19],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[218,25]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[218,19],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[218,23]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[218,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[218,25]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[218,29],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[218,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[218,29],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[218,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[218,31],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[218,33]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[218,29],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[218,30]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[218,34],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[218,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[218,34],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[218,38]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[218,39],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[218,40]},[]],"tag":"TypeVar","contents":"a"}]}]}]},57]}}},{"EDValue":{"edValueName":{"Ident":"insert"},"edValueType":{"annotation":[{"start":[224,11],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[224,51]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[224,21],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[224,51]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[224,21],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[224,26]},[]],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[{"start":[224,25],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[224,26]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[224,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[224,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[224,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[224,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[224,32],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[224,34]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[224,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[224,31]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[224,35],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[224,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[224,35],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[224,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[224,42],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[224,44]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[224,35],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[224,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[224,35],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[224,39]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[224,40],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[224,41]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[224,45],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[224,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[224,45],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[224,49]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[224,50],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[224,51]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]},136]}}},{"EDValue":{"edValueName":{"Ident":"insertBy"},"edValueType":{"annotation":[{"start":[231,13],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[231,68]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[231,23],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[231,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[231,23],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[231,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[231,44],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[231,46]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[231,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[231,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[231,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[231,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[231,26],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[231,28]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[231,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[231,25]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[231,29],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[231,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[231,29],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[231,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[231,31],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[231,33]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[231,29],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[231,30]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[231,34],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[231,42]},[]],"tag":"TypeConstructor","contents":[["Data","Ordering"],"Ordering"]}]}]}]},{"annotation":[{"start":[231,47],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[231,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[231,47],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[231,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[231,49],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[231,51]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[231,47],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[231,48]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[231,52],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[231,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[231,52],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[231,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[231,59],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[231,61]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[231,52],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[231,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[231,52],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[231,56]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[231,57],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[231,58]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[231,62],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[231,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[231,62],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[231,66]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[231,67],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[231,68]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]},133]}}},{"EDValue":{"edValueName":{"Ident":"head"},"edValueType":{"annotation":[{"start":[17,34],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,54]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[17,44],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[17,44],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[17,48],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,50]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[17,44],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[247,9],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[247,13]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[17,46],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,47]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[17,51],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[247,17],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[247,22]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[17,53],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,54]},[]],"tag":"TypeVar","contents":"a"}]}]},117]}}},{"EDValue":{"edValueName":{"Ident":"last"},"edValueType":{"annotation":[{"start":[17,34],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,54]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[17,44],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[17,44],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[17,48],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,50]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[17,44],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[253,9],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[253,13]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[17,46],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,47]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[17,51],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[253,17],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[253,22]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[17,53],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,54]},[]],"tag":"TypeVar","contents":"a"}]}]},105]}}},{"EDValue":{"edValueName":{"Ident":"tail"},"edValueType":{"annotation":[{"start":[264,9],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[264,43]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[264,19],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[264,43]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[264,19],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[264,43]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[264,26],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[264,28]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[264,19],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[264,25]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[264,19],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[264,23]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[264,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[264,25]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[264,29],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[264,43]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[264,29],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[264,34]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[264,36],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[264,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[264,36],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[264,40]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[264,41],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[264,42]},[]],"tag":"TypeVar","contents":"a"}]}]}]},48]}}},{"EDValue":{"edValueName":{"Ident":"init"},"edValueType":{"annotation":[{"start":[270,9],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[270,43]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[270,19],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[270,43]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[270,19],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[270,43]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[270,26],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[270,28]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[270,19],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[270,25]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[270,19],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[270,23]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[270,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[270,25]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[270,29],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[270,43]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[270,29],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[270,34]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[270,36],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[270,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[270,36],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[270,40]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[270,41],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[270,42]},[]],"tag":"TypeVar","contents":"a"}]}]}]},112]}}},{"EDValue":{"edValueName":{"Ident":"uncons"},"edValueType":{"annotation":[{"start":[283,11],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[283,66]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[283,21],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[283,66]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[283,21],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[283,66]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[283,28],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[283,30]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[283,21],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[283,27]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[283,21],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[283,25]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[283,26],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[283,27]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[283,31],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[283,66]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[283,31],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[283,36]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[283,37],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[283,66]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[283,37],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[283,38]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[283,39],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[283,48]},[]],"tag":"RCons","contents":["head",{"annotation":[{"start":[283,47],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[283,48]},[]],"tag":"TypeVar","contents":"a"},{"annotation":[{"start":[283,50],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[283,64]},[]],"tag":"RCons","contents":["tail",{"annotation":[{"start":[283,58],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[283,64]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[283,58],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[283,62]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[283,63],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[283,64]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[283,65],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[283,66]},[]],"tag":"REmpty"}]}]}]}]}]},32]}}},{"EDValue":{"edValueName":{"Ident":"index"},"edValueType":{"annotation":[{"start":[295,10],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[295,44]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[295,20],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[295,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[295,20],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[295,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[295,27],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[295,29]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[295,20],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[295,26]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[295,20],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[295,24]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[295,25],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[295,26]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[295,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[295,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[295,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[295,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[295,34],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[295,36]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[295,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[295,33]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[295,37],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[295,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[295,37],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[295,42]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[295,43],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[295,44]},[]],"tag":"TypeVar","contents":"a"}]}]}]},115]}}},{"EDValue":{"edValueName":{"Ident":"elemIndex"},"edValueType":{"annotation":[{"start":[306,14],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[306,56]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[306,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[306,56]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[306,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[306,28]},[]],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[{"start":[306,27],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[306,28]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[306,32],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[306,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[306,32],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[306,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[306,34],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[306,36]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[306,32],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[306,33]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[306,37],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[306,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[306,37],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[306,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[306,44],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[306,46]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[306,37],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[306,43]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[306,37],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[306,41]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[306,42],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[306,43]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[306,47],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[306,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[306,47],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[306,52]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[306,53],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[306,56]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]}]}]},183]}}},{"EDValue":{"edValueName":{"Ident":"elemLastIndex"},"edValueType":{"annotation":[{"start":[310,18],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[310,60]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[310,28],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[310,60]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[310,28],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[310,32]},[]],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[{"start":[310,31],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[310,32]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[310,36],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[310,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[310,36],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[310,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[310,38],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[310,40]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[310,36],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[310,37]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[310,41],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[310,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[310,41],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[310,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[310,48],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[310,50]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[310,41],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[310,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[310,41],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[310,45]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[310,46],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[310,47]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[310,51],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[310,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[310,51],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[310,56]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[310,57],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[310,60]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]}]}]},181]}}},{"EDValue":{"edValueName":{"Ident":"findIndex"},"edValueType":{"annotation":[{"start":[314,14],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[314,61]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[314,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[314,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[314,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[314,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[314,39],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[314,41]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[314,25],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[314,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[314,25],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[314,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[314,27],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[314,29]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[314,25],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[314,26]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[314,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[314,37]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]},{"annotation":[{"start":[314,42],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[314,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[314,42],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[314,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[314,49],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[314,51]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[314,42],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[314,48]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[314,42],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[314,46]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[314,47],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[314,48]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[314,52],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[314,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[314,52],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[314,57]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[314,58],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[314,61]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]}]},155]}}},{"EDValue":{"edValueName":{"Ident":"findLastIndex"},"edValueType":{"annotation":[{"start":[325,18],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[325,65]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[325,28],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[325,65]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[325,28],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[325,65]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[325,43],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[325,45]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[325,29],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[325,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[325,29],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[325,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[325,31],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[325,33]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[325,29],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[325,30]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[325,34],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[325,41]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]},{"annotation":[{"start":[325,46],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[325,65]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[325,46],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[325,65]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[325,53],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[325,55]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[325,46],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[325,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[325,46],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[325,50]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[325,51],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[325,52]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[325,56],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[325,65]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[325,56],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[325,61]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[325,62],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[325,65]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]}]},157]}}},{"EDValue":{"edValueName":{"Ident":"insertAt"},"edValueType":{"annotation":[{"start":[335,13],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[335,51]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[335,23],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[335,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[335,23],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[335,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[335,27],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[335,29]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[335,23],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[335,26]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[335,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[335,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[335,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[335,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[335,32],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[335,34]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[335,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[335,31]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[335,35],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[335,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[335,35],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[335,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[335,42],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[335,44]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[335,35],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[335,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[335,35],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[335,39]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[335,40],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[335,41]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[335,45],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[335,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[335,45],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[335,49]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[335,50],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[335,51]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]},109]}}},{"EDValue":{"edValueName":{"Ident":"deleteAt"},"edValueType":{"annotation":[{"start":[349,13],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[349,46]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[349,23],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[349,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[349,23],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[349,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[349,27],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[349,29]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[349,23],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[349,26]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[349,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[349,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[349,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[349,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[349,37],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[349,39]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[349,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[349,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[349,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[349,34]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[349,35],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[349,36]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[349,40],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[349,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[349,40],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[349,44]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[349,45],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[349,46]},[]],"tag":"TypeVar","contents":"a"}]}]}]},199]}}},{"EDValue":{"edValueName":{"Ident":"updateAt"},"edValueType":{"annotation":[{"start":[363,13],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[363,51]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[363,23],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[363,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[363,23],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[363,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[363,27],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[363,29]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[363,23],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[363,26]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[363,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[363,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[363,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[363,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[363,32],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[363,34]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[363,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[363,31]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[363,35],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[363,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[363,35],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[363,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[363,42],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[363,44]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[363,35],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[363,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[363,35],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[363,39]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[363,40],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[363,41]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[363,45],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[363,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[363,45],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[363,49]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[363,50],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[363,51]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]},25]}}},{"EDValue":{"edValueName":{"Ident":"modifyAt"},"edValueType":{"annotation":[{"start":[378,13],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[378,58]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[378,23],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[378,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[378,23],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[378,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[378,27],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[378,29]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[378,23],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[378,26]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[378,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[378,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[378,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[378,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[378,39],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[378,41]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[378,31],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[378,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[378,31],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[378,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[378,33],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[378,35]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[378,31],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[378,32]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[378,36],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[378,37]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[378,42],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[378,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[378,42],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[378,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[378,49],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[378,51]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[378,42],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[378,48]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[378,42],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[378,46]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[378,47],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[378,48]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[378,52],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[378,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[378,52],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[378,56]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[378,57],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[378,58]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]},219]}}},{"EDValue":{"edValueName":{"Ident":"alterAt"},"edValueType":{"annotation":[{"start":[389,12],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[389,63]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[389,22],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[389,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[389,22],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[389,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[389,26],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[389,28]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[389,22],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[389,25]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[389,29],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[389,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[389,29],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[389,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[389,44],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[389,46]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[389,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[389,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[389,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[389,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[389,32],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[389,34]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[389,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[389,31]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[389,35],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[389,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[389,35],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[389,40]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[389,41],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[389,42]},[]],"tag":"TypeVar","contents":"a"}]}]}]},{"annotation":[{"start":[389,47],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[389,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[389,47],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[389,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[389,54],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[389,56]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[389,47],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[389,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[389,47],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[389,51]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[389,52],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[389,53]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[389,57],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[389,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[389,57],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[389,61]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[389,62],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[389,63]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]},216]}}},{"EDValue":{"edValueName":{"Ident":"reverse"},"edValueType":{"annotation":[{"start":[17,34],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,54]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[17,44],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[17,44],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[17,48],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,50]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[17,44],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[405,12],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[405,16]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[17,46],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,47]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[17,51],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[405,20],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[405,24]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[17,53],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,54]},[]],"tag":"TypeVar","contents":"a"}]}]},63]}}},{"EDValue":{"edValueName":{"Ident":"concat"},"edValueType":{"annotation":[{"start":[411,11],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[411,44]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[411,21],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[411,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[411,21],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[411,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[411,35],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[411,37]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[411,21],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[411,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[411,21],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[411,25]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[411,27],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[411,33]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[411,27],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[411,31]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[411,32],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[411,33]},[]],"tag":"TypeVar","contents":"a"}]}]}]},{"annotation":[{"start":[411,38],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[411,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[411,38],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[411,42]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[411,43],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[411,44]},[]],"tag":"TypeVar","contents":"a"}]}]},212]}}},{"EDValue":{"edValueName":{"Ident":"concatMap"},"edValueType":{"annotation":[{"start":[418,14],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[418,59]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[418,21],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[418,59]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[418,26],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[418,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[418,26],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[418,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[418,40],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[418,42]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[418,27],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[418,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[418,27],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[418,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[418,29],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[418,31]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[418,27],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[418,28]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[418,32],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[418,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[418,32],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[418,36]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[418,37],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[418,38]},[]],"tag":"TypeVar","contents":"b"}]}]}]},{"annotation":[{"start":[418,43],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[418,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[418,43],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[418,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[418,50],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[418,52]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[418,43],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[418,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[418,43],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[418,47]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[418,48],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[418,49]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[418,53],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[418,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[418,53],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[418,57]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[418,58],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[418,59]},[]],"tag":"TypeVar","contents":"b"}]}]}]},208]},209]}}},{"EDValue":{"edValueName":{"Ident":"filter"},"edValueType":{"annotation":[{"start":[424,11],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[424,55]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[424,21],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[424,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[424,21],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[424,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[424,36],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[424,38]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[424,22],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[424,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[424,22],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[424,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[424,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[424,26]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[424,22],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[424,23]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[424,27],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[424,34]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]},{"annotation":[{"start":[424,39],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[424,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[424,39],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[424,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[424,46],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[424,48]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[424,39],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[424,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[424,39],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[424,43]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[424,44],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[424,45]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[424,49],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[424,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[424,49],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[424,53]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[424,54],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[424,55]},[]],"tag":"TypeVar","contents":"a"}]}]}]},165]}}},{"EDValue":{"edValueName":{"Ident":"filterM"},"edValueType":{"annotation":[{"start":[440,12],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[440,75]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[440,19],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[440,75]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[440,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[440,75]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[440,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[440,31]},[]],"constraintClass":[["Control","Monad"],"Monad"],"constraintArgs":[{"annotation":[{"start":[440,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[440,31]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[440,35],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[440,75]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[440,35],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[440,75]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[440,52],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[440,54]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[440,36],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[440,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[440,36],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[440,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[440,38],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[440,40]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[440,36],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[440,37]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[440,41],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[440,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[440,41],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[440,42]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[440,43],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[440,50]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]}]},{"annotation":[{"start":[440,55],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[440,75]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[440,55],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[440,75]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[440,62],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[440,64]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[440,55],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[440,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[440,55],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[440,59]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[440,60],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[440,61]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[440,65],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[440,75]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[440,65],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[440,66]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[440,68],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[440,74]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[440,68],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[440,72]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[440,73],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[440,74]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]}]},159]},160]}}},{"EDValue":{"edValueName":{"Ident":"mapMaybe"},"edValueType":{"annotation":[{"start":[454,13],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[454,59]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[454,20],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[454,59]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[454,25],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[454,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[454,25],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[454,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[454,40],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[454,42]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[454,26],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[454,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[454,26],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[454,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[454,28],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[454,30]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[454,26],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[454,27]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[454,31],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[454,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[454,31],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[454,36]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[454,37],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[454,38]},[]],"tag":"TypeVar","contents":"b"}]}]}]},{"annotation":[{"start":[454,43],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[454,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[454,43],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[454,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[454,50],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[454,52]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[454,43],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[454,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[454,43],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[454,47]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[454,48],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[454,49]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[454,53],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[454,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[454,53],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[454,57]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[454,58],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[454,59]},[]],"tag":"TypeVar","contents":"b"}]}]}]},84]},85]}}},{"EDValue":{"edValueName":{"Ident":"catMaybes"},"edValueType":{"annotation":[{"start":[465,14],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[465,48]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[465,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[465,48]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[465,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[465,48]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[465,39],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[465,41]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[465,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[465,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[465,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[465,28]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[465,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[465,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[465,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[465,35]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[465,36],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[465,37]},[]],"tag":"TypeVar","contents":"a"}]}]}]},{"annotation":[{"start":[465,42],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[465,48]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[465,42],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[465,46]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[465,47],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[465,48]},[]],"tag":"TypeVar","contents":"a"}]}]},214]}}},{"EDType":{"edTypeName":"Pattern","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[478,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[478,34]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},"edTypeDeclarationKind":{"DataType":{"args":[["a",{"annotation":[{"start":[478,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[478,34]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]],"ctors":[["Pattern",[{"annotation":[{"start":[478,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[478,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[478,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[478,34]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[478,35],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[478,36]},[]],"tag":"TypeVar","contents":"a"}]}]]]}}}},{"EDDataConstructor":{"edDataCtorName":"Pattern","edDataCtorOrigin":"newtype","edDataCtorTypeCtor":"Pattern","edDataCtorType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[478,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[478,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[478,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[478,34]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[478,35],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[478,36]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy"],"Pattern"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"a"}]}]},null]},"edDataCtorFields":[{"Ident":"value0"}]}},{"EDValue":{"edValueName":{"Ident":"stripPrefix"},"edValueType":{"annotation":[{"start":[495,16],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[495,71]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[495,26],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[495,71]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[495,26],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[495,30]},[]],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[{"start":[495,29],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[495,30]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[495,34],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[495,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[495,34],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[495,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[495,44],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[495,46]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[495,34],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[495,43]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[495,34],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[495,41]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy"],"Pattern"]},{"annotation":[{"start":[495,42],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[495,43]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[495,47],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[495,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[495,47],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[495,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[495,54],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[495,56]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[495,47],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[495,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[495,47],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[495,51]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[495,52],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[495,53]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[495,57],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[495,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[495,57],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[495,62]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[495,64],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[495,70]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[495,64],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[495,68]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[495,69],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[495,70]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]}]},50]}}},{"EDValue":{"edValueName":{"Ident":"slice"},"edValueType":{"annotation":[{"start":[505,10],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[505,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[505,10],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[505,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[505,14],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[505,16]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[505,10],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[505,13]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[505,17],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[505,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[505,17],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[505,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[505,21],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[505,23]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[505,17],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[505,20]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[17,34],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,54]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[17,44],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[17,44],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[17,48],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,50]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[17,44],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[505,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[505,28]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[17,46],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,47]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[17,51],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[505,32],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[505,36]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[17,53],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,54]},[]],"tag":"TypeVar","contents":"a"}]}]},190]}]}]}}},{"EDValue":{"edValueName":{"Ident":"take"},"edValueType":{"annotation":[{"start":[511,9],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[511,42]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[511,19],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[511,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[511,19],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[511,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[511,23],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[511,25]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[511,19],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[511,22]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[511,26],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[511,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[511,26],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[511,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[511,33],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[511,35]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[511,26],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[511,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[511,26],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[511,30]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[511,31],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[511,32]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[511,36],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[511,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[511,36],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[511,40]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[511,41],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[511,42]},[]],"tag":"TypeVar","contents":"a"}]}]}]},43]}}},{"EDValue":{"edValueName":{"Ident":"takeWhile"},"edValueType":{"annotation":[{"start":[523,14],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[523,58]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[523,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[523,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[523,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[523,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[523,39],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[523,41]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[523,25],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[523,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[523,25],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[523,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[523,27],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[523,29]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[523,25],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[523,26]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[523,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[523,37]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]},{"annotation":[{"start":[523,42],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[523,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[523,42],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[523,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[523,49],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[523,51]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[523,42],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[523,48]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[523,42],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[523,46]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[523,47],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[523,48]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[523,52],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[523,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[523,52],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[523,56]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[523,57],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[523,58]},[]],"tag":"TypeVar","contents":"a"}]}]}]},39]}}},{"EDValue":{"edValueName":{"Ident":"drop"},"edValueType":{"annotation":[{"start":[532,9],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[532,42]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[532,19],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[532,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[532,19],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[532,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[532,23],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[532,25]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[532,19],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[532,22]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[532,26],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[532,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[532,26],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[532,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[532,33],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[532,35]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[532,26],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[532,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[532,26],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[532,30]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[532,31],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[532,32]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[532,36],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[532,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[532,36],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[532,40]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[532,41],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[532,42]},[]],"tag":"TypeVar","contents":"a"}]}]}]},187]}}},{"EDValue":{"edValueName":{"Ident":"dropWhile"},"edValueType":{"annotation":[{"start":[542,14],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[542,58]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[542,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[542,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[542,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[542,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[542,39],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[542,41]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[542,25],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[542,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[542,25],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[542,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[542,27],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[542,29]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[542,25],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[542,26]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[542,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[542,37]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]},{"annotation":[{"start":[542,42],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[542,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[542,42],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[542,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[542,49],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[542,51]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[542,42],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[542,48]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[542,42],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[542,46]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[542,47],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[542,48]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[542,52],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[542,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[542,52],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[542,56]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[542,57],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[542,58]},[]],"tag":"TypeVar","contents":"a"}]}]}]},185]}}},{"EDValue":{"edValueName":{"Ident":"span"},"edValueType":{"annotation":[{"start":[560,9],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[560,81]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[560,19],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[560,81]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[560,19],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[560,81]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[560,34],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[560,36]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[560,20],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[560,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[560,20],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[560,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[560,22],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[560,24]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[560,20],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[560,21]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[560,25],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[560,32]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]},{"annotation":[{"start":[560,37],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[560,81]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[560,37],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[560,81]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[560,44],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[560,46]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[560,37],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[560,43]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[560,37],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[560,41]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[560,42],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[560,43]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[560,47],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[560,81]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[560,47],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[560,48]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[560,49],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[560,63]},[]],"tag":"RCons","contents":["init",{"annotation":[{"start":[560,57],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[560,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[560,57],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[560,61]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[560,62],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[560,63]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[560,65],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[560,79]},[]],"tag":"RCons","contents":["rest",{"annotation":[{"start":[560,73],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[560,79]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[560,73],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[560,77]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[560,78],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[560,79]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[560,80],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[560,81]},[]],"tag":"REmpty"}]}]}]}]}]},54]}}},{"EDValue":{"edValueName":{"Ident":"group"},"edValueType":{"annotation":[{"start":[577,10],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[577,63]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[577,20],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[577,63]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[577,20],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[577,24]},[]],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[{"start":[577,23],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[577,24]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[577,28],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[577,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[577,28],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[577,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[577,35],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[577,37]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[577,28],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[577,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[577,28],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[577,32]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[577,33],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[577,34]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[577,38],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[577,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[577,38],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[577,42]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[577,44],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[577,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[577,44],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[577,60]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"NonEmptyList"]},{"annotation":[{"start":[577,61],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[577,62]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]},128]}}},{"EDValue":{"edValueName":{"Ident":"groupBy"},"edValueType":{"annotation":[{"start":[584,12],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[584,80]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[584,22],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[584,80]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[584,22],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[584,80]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[584,42],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[584,44]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[584,23],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[584,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[584,23],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[584,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[584,25],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[584,27]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[584,23],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[584,24]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[584,28],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[584,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[584,28],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[584,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[584,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[584,32]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[584,28],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[584,29]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[584,33],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[584,40]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]}]},{"annotation":[{"start":[584,45],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[584,80]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[584,45],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[584,80]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[584,52],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[584,54]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[584,45],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[584,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[584,45],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[584,49]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[584,50],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[584,51]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[584,55],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[584,80]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[584,55],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[584,59]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[584,61],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[584,79]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[584,61],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[584,77]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"NonEmptyList"]},{"annotation":[{"start":[584,78],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[584,79]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]},123]}}},{"EDValue":{"edValueName":{"Ident":"partition"},"edValueType":{"annotation":[{"start":[597,14],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[597,83]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[597,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[597,83]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[597,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[597,83]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[597,39],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[597,41]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[597,25],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[597,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[597,25],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[597,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[597,27],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[597,29]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[597,25],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[597,26]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[597,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[597,37]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]},{"annotation":[{"start":[597,42],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[597,83]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[597,42],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[597,83]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[597,49],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[597,51]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[597,42],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[597,48]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[597,42],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[597,46]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[597,47],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[597,48]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[597,52],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[597,83]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[597,52],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[597,53]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[597,54],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[597,67]},[]],"tag":"RCons","contents":["yes",{"annotation":[{"start":[597,61],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[597,67]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[597,61],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[597,65]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[597,66],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[597,67]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[597,69],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[597,81]},[]],"tag":"RCons","contents":["no",{"annotation":[{"start":[597,75],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[597,81]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[597,75],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[597,79]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[597,80],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[597,81]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[597,82],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[597,83]},[]],"tag":"REmpty"}]}]}]}]}]},75]}}},{"EDValue":{"edValueName":{"Ident":"nub"},"edValueType":{"annotation":[{"start":[610,8],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[610,42]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[610,18],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[610,42]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[610,18],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[610,22]},[]],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[{"start":[610,21],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[610,22]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[610,26],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[610,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[610,26],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[610,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[610,33],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[610,35]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[610,26],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[610,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[610,26],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[610,30]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[610,31],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[610,32]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[610,36],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[610,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[610,36],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[610,40]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[610,41],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[610,42]},[]],"tag":"TypeVar","contents":"a"}]}]}]},177]}}},{"EDValue":{"edValueName":{"Ident":"nubBy"},"edValueType":{"annotation":[{"start":[617,10],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[617,59]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[617,20],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[617,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[617,20],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[617,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[617,40],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[617,42]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[617,21],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[617,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[617,21],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[617,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[617,23],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[617,25]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[617,21],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[617,22]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[617,26],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[617,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[617,26],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[617,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[617,28],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[617,30]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[617,26],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[617,27]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[617,31],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[617,38]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]}]},{"annotation":[{"start":[617,43],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[617,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[617,43],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[617,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[617,50],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[617,52]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[617,43],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[617,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[617,43],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[617,47]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[617,48],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[617,49]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[617,53],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[617,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[617,53],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[617,57]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[617,58],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[617,59]},[]],"tag":"TypeVar","contents":"a"}]}]}]},173]}}},{"EDValue":{"edValueName":{"Ident":"union"},"edValueType":{"annotation":[{"start":[626,10],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[626,54]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[626,20],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[626,54]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[626,20],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[626,24]},[]],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[{"start":[626,23],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[626,24]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[626,28],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[626,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[626,28],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[626,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[626,35],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[626,37]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[626,28],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[626,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[626,28],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[626,32]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[626,33],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[626,34]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[626,38],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[626,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[626,38],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[626,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[626,45],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[626,47]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[626,38],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[626,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[626,38],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[626,42]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[626,43],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[626,44]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[626,48],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[626,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[626,48],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[626,52]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[626,53],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[626,54]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]},197]}}},{"EDValue":{"edValueName":{"Ident":"unionBy"},"edValueType":{"annotation":[{"start":[633,12],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[633,71]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[633,22],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[633,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[633,22],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[633,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[633,42],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[633,44]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[633,23],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[633,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[633,23],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[633,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[633,25],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[633,27]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[633,23],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[633,24]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[633,28],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[633,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[633,28],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[633,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[633,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[633,32]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[633,28],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[633,29]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[633,33],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[633,40]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]}]},{"annotation":[{"start":[633,45],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[633,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[633,45],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[633,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[633,52],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[633,54]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[633,45],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[633,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[633,45],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[633,49]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[633,50],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[633,51]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[633,55],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[633,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[633,55],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[633,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[633,62],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[633,64]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[633,55],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[633,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[633,55],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[633,59]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[633,60],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[633,61]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[633,65],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[633,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[633,65],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[633,69]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[633,70],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[633,71]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]},195]}}},{"EDValue":{"edValueName":{"Ident":"delete"},"edValueType":{"annotation":[{"start":[639,11],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[639,50]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[639,21],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[639,50]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[639,21],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[639,25]},[]],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[{"start":[639,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[639,25]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[639,29],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[639,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[639,29],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[639,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[639,31],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[639,33]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[639,29],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[639,30]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[639,34],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[639,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[639,34],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[639,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[639,41],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[639,43]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[639,34],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[639,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[639,34],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[639,38]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[639,39],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[639,40]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[639,44],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[639,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[639,44],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[639,48]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[639,49],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[639,50]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]},202]}}},{"EDValue":{"edValueName":{"Ident":"deleteBy"},"edValueType":{"annotation":[{"start":[646,13],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[646,67]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[646,23],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[646,67]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[646,23],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[646,67]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[646,43],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[646,45]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[646,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[646,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[646,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[646,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[646,26],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[646,28]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[646,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[646,25]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[646,29],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[646,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[646,29],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[646,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[646,31],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[646,33]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[646,29],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[646,30]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[646,34],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[646,41]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]}]},{"annotation":[{"start":[646,46],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[646,67]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[646,46],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[646,67]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[646,48],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[646,50]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[646,46],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[646,47]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[646,51],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[646,67]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[646,51],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[646,67]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[646,58],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[646,60]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[646,51],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[646,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[646,51],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[646,55]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[646,56],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[646,57]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[646,61],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[646,67]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[646,61],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[646,65]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[646,66],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[646,67]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]},192]}}},{"EDValue":{"edValueName":{"Ident":"difference"},"edValueType":{"annotation":[{"start":[656,15],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[656,59]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[656,25],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[656,59]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[656,25],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[656,29]},[]],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[{"start":[656,28],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[656,29]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[656,33],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[656,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[656,33],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[656,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[656,40],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[656,42]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[656,33],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[656,39]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[656,33],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[656,37]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[656,38],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[656,39]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[656,43],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[656,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[656,43],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[656,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[656,50],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[656,52]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[656,43],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[656,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[656,43],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[656,47]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[656,48],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[656,49]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[656,53],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[656,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[656,53],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[656,57]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[656,58],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[656,59]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]},204]}}},{"EDValue":{"edValueName":{"Ident":"intersect"},"edValueType":{"annotation":[{"start":[663,14],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[663,58]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[663,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[663,58]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[663,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[663,28]},[]],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[{"start":[663,27],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[663,28]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[663,32],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[663,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[663,32],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[663,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[663,39],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[663,41]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[663,32],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[663,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[663,32],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[663,36]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[663,37],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[663,38]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[663,42],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[663,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[663,42],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[663,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[663,49],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[663,51]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[663,42],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[663,48]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[663,42],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[663,46]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[663,47],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[663,48]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[663,52],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[663,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[663,52],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[663,56]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[663,57],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[663,58]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]},171]}}},{"EDValue":{"edValueName":{"Ident":"intersectBy"},"edValueType":{"annotation":[{"start":[670,16],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[670,75]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[670,26],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[670,75]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[670,26],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[670,75]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[670,46],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[670,48]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[670,27],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[670,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[670,27],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[670,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[670,29],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[670,31]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[670,27],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[670,28]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[670,32],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[670,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[670,32],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[670,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[670,34],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[670,36]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[670,32],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[670,33]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[670,37],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[670,44]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]}]},{"annotation":[{"start":[670,49],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[670,75]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[670,49],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[670,75]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[670,56],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[670,58]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[670,49],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[670,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[670,49],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[670,53]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[670,54],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[670,55]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[670,59],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[670,75]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[670,59],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[670,75]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[670,66],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[670,68]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[670,59],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[670,65]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[670,59],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[670,63]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[670,64],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[670,65]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[670,69],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[670,75]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[670,69],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[670,73]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[670,74],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[670,75]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]},169]}}},{"EDValue":{"edValueName":{"Ident":"zipWith"},"edValueType":{"annotation":[{"start":[689,12],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[689,69]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[689,19],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[689,69]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[689,19],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[689,69]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[689,26],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[689,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[689,26],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[689,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[689,40],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[689,42]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[689,27],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[689,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[689,27],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[689,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[689,29],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[689,31]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[689,27],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[689,28]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[689,32],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[689,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[689,32],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[689,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[689,34],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[689,36]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[689,32],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[689,33]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[689,37],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[689,38]},[]],"tag":"TypeVar","contents":"c"}]}]}]},{"annotation":[{"start":[689,43],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[689,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[689,43],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[689,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[689,50],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[689,52]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[689,43],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[689,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[689,43],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[689,47]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[689,48],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[689,49]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[689,53],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[689,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[689,53],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[689,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[689,60],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[689,62]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[689,53],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[689,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[689,53],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[689,57]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[689,58],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[689,59]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[689,63],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[689,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[689,63],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[689,67]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[689,68],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[689,69]},[]],"tag":"TypeVar","contents":"c"}]}]}]}]},0]},1]},2]}}},{"EDValue":{"edValueName":{"Ident":"zipWithA"},"edValueType":{"annotation":[{"start":[699,13],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[699,95]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[699,20],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[699,95]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[699,20],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[699,95]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[699,20],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[699,95]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[699,29],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[699,95]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[699,29],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[699,42]},[]],"constraintClass":[["Control","Applicative"],"Applicative"],"constraintArgs":[{"annotation":[{"start":[699,41],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[699,42]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[699,46],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[699,95]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[699,46],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[699,95]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[699,62],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[699,64]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[699,47],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[699,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[699,47],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[699,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[699,49],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[699,51]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[699,47],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[699,48]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[699,52],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[699,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[699,52],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[699,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[699,54],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[699,56]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[699,52],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[699,53]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[699,57],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[699,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[699,57],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[699,58]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[699,59],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[699,60]},[]],"tag":"TypeVar","contents":"c"}]}]}]}]},{"annotation":[{"start":[699,65],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[699,95]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[699,65],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[699,95]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[699,72],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[699,74]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[699,65],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[699,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[699,65],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[699,69]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[699,70],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[699,71]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[699,75],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[699,95]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[699,75],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[699,95]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[699,82],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[699,84]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[699,75],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[699,81]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[699,75],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[699,79]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[699,80],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[699,81]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[699,85],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[699,95]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[699,85],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[699,86]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[699,88],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[699,94]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[699,88],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[699,92]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[699,93],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[699,94]},[]],"tag":"TypeVar","contents":"c"}]}]}]}]}]}]},11]},12]},13]},14]}}},{"EDValue":{"edValueName":{"Ident":"zip"},"edValueType":{"annotation":[{"start":[705,8],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[705,56]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[705,15],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[705,56]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[705,20],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[705,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[705,20],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[705,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[705,27],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[705,29]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[705,20],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[705,26]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[705,20],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[705,24]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[705,25],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[705,26]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[705,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[705,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[705,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[705,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[705,37],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[705,39]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[705,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[705,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[705,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[705,34]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[705,35],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[705,36]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[705,40],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[705,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[705,40],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[705,44]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[705,46],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[705,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[705,46],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[705,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[705,46],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[705,51]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[705,52],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[705,53]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[705,54],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[705,55]},[]],"tag":"TypeVar","contents":"b"}]}]}]}]},19]},20]}}},{"EDValue":{"edValueName":{"Ident":"unzip"},"edValueType":{"annotation":[{"start":[710,10],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[710,65]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[710,17],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[710,65]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[710,22],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[710,65]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[710,22],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[710,65]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[710,39],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[710,41]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[710,22],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[710,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[710,22],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[710,26]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[710,28],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[710,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[710,28],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[710,35]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[710,28],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[710,33]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[710,34],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[710,35]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[710,36],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[710,37]},[]],"tag":"TypeVar","contents":"b"}]}]}]},{"annotation":[{"start":[710,42],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[710,65]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[710,42],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[710,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[710,42],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[710,47]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[710,49],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[710,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[710,49],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[710,53]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[710,54],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[710,55]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[710,58],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[710,64]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[710,58],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[710,62]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[710,63],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[710,64]},[]],"tag":"TypeVar","contents":"b"}]}]}]},28]},29]}}},{"EDValue":{"edValueName":{"Ident":"transpose"},"edValueType":{"annotation":[{"start":[727,14],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[727,54]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[727,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[727,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[727,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[727,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[727,38],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[727,40]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[727,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[727,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[727,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[727,28]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[727,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[727,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[727,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[727,34]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[727,35],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[727,36]},[]],"tag":"TypeVar","contents":"a"}]}]}]},{"annotation":[{"start":[727,41],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[727,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[727,41],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[727,45]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[727,47],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[727,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[727,47],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[727,51]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[727,52],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[727,53]},[]],"tag":"TypeVar","contents":"a"}]}]}]},119]}}},{"EDValue":{"edValueName":{"Ident":"foldM"},"edValueType":{"annotation":[{"start":[744,10],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[744,72]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[744,17],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[744,72]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[744,17],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[744,72]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[744,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[744,72]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[744,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[744,31]},[]],"constraintClass":[["Control","Monad"],"Monad"],"constraintArgs":[{"annotation":[{"start":[744,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[744,31]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[744,35],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[744,72]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[744,35],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[744,72]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[744,51],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[744,53]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[744,36],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[744,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[744,36],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[744,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[744,38],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[744,40]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[744,36],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[744,37]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[744,41],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[744,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[744,41],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[744,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[744,43],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[744,45]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[744,41],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[744,42]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[744,46],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[744,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[744,46],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[744,47]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[744,48],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[744,49]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]},{"annotation":[{"start":[744,54],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[744,72]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[744,54],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[744,72]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[744,56],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[744,58]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[744,54],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[744,55]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[744,59],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[744,72]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[744,59],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[744,72]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[744,66],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[744,68]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[744,59],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[744,65]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[744,59],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[744,63]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[744,64],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[744,65]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[744,69],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[744,72]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[744,69],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[744,70]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[744,71],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[744,72]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]}]},146]},147]},148]}}},{"EDValue":{"edValueName":{"Ident":"foldrLazy"},"edValueType":{"annotation":[{"start":[752,14],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[752,71]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[752,21],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[752,71]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[752,26],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[752,71]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[752,26],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[752,34]},[]],"constraintClass":[["Control","Lazy"],"Lazy"],"constraintArgs":[{"annotation":[{"start":[752,33],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[752,34]},[]],"tag":"TypeVar","contents":"b"}],"constraintData":null},{"annotation":[{"start":[752,38],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[752,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[752,38],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[752,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[752,52],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[752,54]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[752,39],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[752,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[752,39],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[752,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[752,41],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[752,43]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[752,39],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[752,40]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[752,44],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[752,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[752,44],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[752,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[752,46],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[752,48]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[752,44],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[752,45]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[752,49],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[752,50]},[]],"tag":"TypeVar","contents":"b"}]}]}]},{"annotation":[{"start":[752,55],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[752,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[752,55],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[752,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[752,57],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[752,59]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[752,55],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[752,56]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[752,60],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[752,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[752,60],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[752,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[752,67],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[752,69]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[752,60],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[752,66]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[752,60],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[752,64]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[752,65],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[752,66]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[752,70],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[752,71]},[]],"tag":"TypeVar","contents":"b"}]}]}]}]},142]},143]}}},{"EDInstance":{"edInstanceClassName":[["Data","Eq"],"Eq"],"edInstanceName":{"Ident":"eqPattern"},"edInstanceTypes":[{"annotation":[{"start":[480,42],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[480,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[480,42],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[480,49]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy"],"Pattern"]},{"annotation":[{"start":[480,50],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[480,51]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[480,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[480,34]},[]],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[{"start":[480,33],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[480,34]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","List","Lazy"],{"Ident":"eqPattern"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Ord"],"Ord"],"edInstanceName":{"Ident":"ordPattern"},"edInstanceTypes":[{"annotation":[{"start":[481,45],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[481,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[481,45],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[481,52]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy"],"Pattern"]},{"annotation":[{"start":[481,53],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[481,54]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[481,31],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[481,36]},[]],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[{"start":[481,35],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[481,36]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","List","Lazy"],{"Ident":"ordPattern"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Newtype"],"Newtype"],"edInstanceName":{"Ident":"newtypePattern"},"edInstanceTypes":[{"annotation":[{"start":[482,44],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[482,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[482,44],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[482,51]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy"],"Pattern"]},{"annotation":[{"start":[482,52],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[482,53]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[478,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[478,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[478,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[478,34]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[482,52],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[482,53]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","List","Lazy"],{"Ident":"newtypePattern"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Show"],"Show"],"edInstanceName":{"Ident":"showPattern"},"edInstanceTypes":[{"annotation":[{"start":[484,41],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[484,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[484,41],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[484,48]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy"],"Pattern"]},{"annotation":[{"start":[484,49],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[484,50]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[484,25],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[484,31]},[]],"constraintClass":[["Data","Show"],"Show"],"constraintArgs":[{"annotation":[{"start":[484,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[484,31]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","List","Lazy"],{"Ident":"showPattern"}]],"edInstanceChainIndex":0}}],"efSourceSpan":{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Lazy.purs","end":[757,15]}}
diff --git a/tests/purs/publish/basic-example/output/Data.List.NonEmpty/docs.json b/tests/purs/publish/basic-example/output/Data.List.NonEmpty/docs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.List.NonEmpty/docs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"reExports":[],"name":"Data.List.NonEmpty","comments":null,"declarations":[{"children":[],"comments":null,"title":"toUnfoldable","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Unfoldable"],"Unfoldable"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","NaturalTransformation"],"~>"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[],"tag":"TypeVar","contents":"f"}]}]},null]}},"sourceSpan":{"start":[110,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[110,60]}},{"children":[],"comments":null,"title":"fromFoldable","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Foldable"],"Foldable"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]}]}]},null]},null]}},"sourceSpan":{"start":[114,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[114,72]}},{"children":[],"comments":null,"title":"fromList","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]}]},null]}},"sourceSpan":{"start":[117,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[117,57]}},{"children":[],"comments":null,"title":"toList","info":{"declType":"value","type":{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","NaturalTransformation"],"~>"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]}]}},"sourceSpan":{"start":[121,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[121,33]}},{"children":[],"comments":null,"title":"singleton","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},null]}},"sourceSpan":{"start":[124,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[124,43]}},{"children":[],"comments":null,"title":"length","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},null]}},"sourceSpan":{"start":[153,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[153,42]}},{"children":[],"comments":null,"title":"cons","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]},null]}},"sourceSpan":{"start":[127,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[127,56]}},{"children":[],"comments":null,"title":"snoc","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]},null]}},"sourceSpan":{"start":[130,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[130,56]}},{"children":[],"comments":null,"title":"head","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},null]}},"sourceSpan":{"start":[133,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[133,38]}},{"children":[],"comments":null,"title":"last","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},null]}},"sourceSpan":{"start":[136,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[136,38]}},{"children":[],"comments":null,"title":"tail","info":{"declType":"value","type":{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","NaturalTransformation"],"~>"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]}]}},"sourceSpan":{"start":[139,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[139,31]}},{"children":[],"comments":null,"title":"init","info":{"declType":"value","type":{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","NaturalTransformation"],"~>"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]}]}},"sourceSpan":{"start":[142,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[142,31]}},{"children":[],"comments":null,"title":"uncons","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"RCons","contents":["head",{"annotation":[],"tag":"TypeVar","contents":"a"},{"annotation":[],"tag":"RCons","contents":["tail",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"REmpty"}]}]}]}]},null]}},"sourceSpan":{"start":[145,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[145,70]}},{"children":[],"comments":null,"title":"unsnoc","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"RCons","contents":["init",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"RCons","contents":["last",{"annotation":[],"tag":"TypeVar","contents":"a"},{"annotation":[],"tag":"REmpty"}]}]}]}]},null]}},"sourceSpan":{"start":[148,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[148,70]}},{"children":[],"comments":null,"title":"(!!)","info":{"declType":"alias","alias":[["Data","List","NonEmpty"],{"Right":{"Left":{"Ident":"index"}}}],"fixity":{"associativity":"infixl","precedence":8}},"sourceSpan":{"start":[161,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[161,21]}},{"children":[],"comments":null,"title":"index","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]},null]}},"sourceSpan":{"start":[156,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[156,52]}},{"children":[],"comments":null,"title":"elemIndex","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]}]}]},null]}},"sourceSpan":{"start":[163,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[163,64]}},{"children":[],"comments":null,"title":"elemLastIndex","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]}]}]},null]}},"sourceSpan":{"start":[166,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[166,68]}},{"children":[],"comments":null,"title":"findIndex","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]}]},null]}},"sourceSpan":{"start":[169,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[169,69]}},{"children":[],"comments":null,"title":"findLastIndex","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]}]},null]}},"sourceSpan":{"start":[174,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[174,73]}},{"children":[],"comments":null,"title":"insertAt","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]}]}]}]},null]}},"sourceSpan":{"start":[182,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[182,75]}},{"children":[],"comments":null,"title":"updateAt","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]}]}]}]},null]}},"sourceSpan":{"start":[187,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[187,75]}},{"children":[],"comments":null,"title":"modifyAt","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]}]}]}]},null]}},"sourceSpan":{"start":[192,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[192,82]}},{"children":[],"comments":null,"title":"reverse","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},null]}},"sourceSpan":{"start":[197,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[197,54]}},{"children":[],"comments":null,"title":"concat","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},null]}},"sourceSpan":{"start":[212,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[212,68]}},{"children":[],"comments":null,"title":"concatMap","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}]},null]},null]}},"sourceSpan":{"start":[215,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[215,83]}},{"children":[],"comments":null,"title":"filter","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]},null]}},"sourceSpan":{"start":[200,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[200,65]}},{"children":[],"comments":null,"title":"filterM","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Monad"],"Monad"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]}]}]}]},null]},null]}},"sourceSpan":{"start":[203,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[203,85]}},{"children":[],"comments":null,"title":"mapMaybe","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}]},null]},null]}},"sourceSpan":{"start":[206,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[206,69]}},{"children":[],"comments":null,"title":"catMaybes","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},null]}},"sourceSpan":{"start":[209,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[209,58]}},{"children":[],"comments":null,"title":"appendFoldable","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["t",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Foldable"],"Foldable"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"t"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"t"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]}]},null]},null]}},"sourceSpan":{"start":[218,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[218,84]}},{"children":[],"comments":null,"title":"mapWithIndex","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}]},null]},null]}},"sourceSpan":{"start":[222,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[222,80]}},{"children":[],"comments":null,"title":"sort","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]},null]}},"sourceSpan":{"start":[225,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[225,60]}},{"children":[],"comments":null,"title":"sortBy","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ordering"],"Ordering"]}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]},null]}},"sourceSpan":{"start":[228,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[228,77]}},{"children":[],"comments":null,"title":"take","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]},null]}},"sourceSpan":{"start":[231,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[231,52]}},{"children":[],"comments":null,"title":"takeWhile","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]},null]}},"sourceSpan":{"start":[234,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[234,68]}},{"children":[],"comments":null,"title":"drop","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]},null]}},"sourceSpan":{"start":[237,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[237,52]}},{"children":[],"comments":null,"title":"dropWhile","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]},null]}},"sourceSpan":{"start":[240,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[240,68]}},{"children":[],"comments":null,"title":"span","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"RCons","contents":["init",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"RCons","contents":["rest",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"REmpty"}]}]}]}]}]},null]}},"sourceSpan":{"start":[243,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[243,93]}},{"children":[],"comments":null,"title":"group","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]}]}]},null]}},"sourceSpan":{"start":[246,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[246,75]}},{"children":[],"comments":null,"title":"group'","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]}]}]},null]}},"sourceSpan":{"start":[249,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[249,77]}},{"children":[],"comments":null,"title":"groupBy","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]}]}]},null]}},"sourceSpan":{"start":[252,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[252,92]}},{"children":[],"comments":null,"title":"partition","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"RCons","contents":["yes",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"RCons","contents":["no",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"REmpty"}]}]}]}]}]},null]}},"sourceSpan":{"start":[255,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[255,95]}},{"children":[],"comments":null,"title":"nub","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]},null]}},"sourceSpan":{"start":[258,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[258,58]}},{"children":[],"comments":null,"title":"nubBy","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]},null]}},"sourceSpan":{"start":[261,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[261,75]}},{"children":[],"comments":null,"title":"union","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]}]},null]}},"sourceSpan":{"start":[264,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[264,78]}},{"children":[],"comments":null,"title":"unionBy","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]}]},null]}},"sourceSpan":{"start":[267,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[267,95]}},{"children":[],"comments":null,"title":"intersect","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]}]},null]}},"sourceSpan":{"start":[270,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[270,82]}},{"children":[],"comments":null,"title":"intersectBy","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]}]},null]}},"sourceSpan":{"start":[273,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[273,99]}},{"children":[],"comments":null,"title":"zipWith","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[],"tag":"TypeVar","contents":"c"}]}]}]}]},null]},null]},null]}},"sourceSpan":{"start":[276,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[276,93]}},{"children":[],"comments":null,"title":"zipWithA","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Applicative"],"Applicative"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"c"}]}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[],"tag":"TypeVar","contents":"c"}]}}]}]}]}]}]},null]},null]},null]},null]}},"sourceSpan":{"start":[280,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[280,119]}},{"children":[],"comments":null,"title":"zip","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}}]}]}]},null]},null]}},"sourceSpan":{"start":[283,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[283,80]}},{"children":[],"comments":null,"title":"unzip","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}}]}]},null]},null]}},"sourceSpan":{"start":[286,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[286,89]}},{"children":[],"comments":null,"title":"foldM","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Monad"],"Monad"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]}]}]},null]},null]},null]}},"sourceSpan":{"start":[289,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[289,80]}}]}
diff --git a/tests/purs/publish/basic-example/output/Data.List.NonEmpty/externs.json b/tests/purs/publish/basic-example/output/Data.List.NonEmpty/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.List.NonEmpty/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Data","List","NonEmpty"],"efExports":[{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[290,70]},{"exportSourceImportedFrom":["Data","List","Types"],"exportSourceDefinedIn":["Data","List","Types"]},{"TypeRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[290,70]},"NonEmptyList",["NonEmptyList"]]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[290,70]},{"exportSourceImportedFrom":["Data","Foldable"],"exportSourceDefinedIn":["Data","Foldable"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[290,70]},{"Ident":"all"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[290,70]},{"exportSourceImportedFrom":["Data","Foldable"],"exportSourceDefinedIn":["Data","Foldable"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[290,70]},{"Ident":"any"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[290,70]},{"exportSourceImportedFrom":["Data","Foldable"],"exportSourceDefinedIn":["Data","Foldable"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[290,70]},{"Ident":"elem"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[290,70]},{"exportSourceImportedFrom":["Data","Foldable"],"exportSourceDefinedIn":["Data","Foldable"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[290,70]},{"Ident":"find"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[290,70]},{"exportSourceImportedFrom":["Data","Foldable"],"exportSourceDefinedIn":["Data","Foldable"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[290,70]},{"Ident":"findMap"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[290,70]},{"exportSourceImportedFrom":["Data","Foldable"],"exportSourceDefinedIn":["Data","Foldable"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[290,70]},{"Ident":"fold"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[290,70]},{"exportSourceImportedFrom":["Data","Semigroup","Foldable"],"exportSourceDefinedIn":["Data","Semigroup","Foldable"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[290,70]},{"Ident":"fold1"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[290,70]},{"exportSourceImportedFrom":["Data","Foldable"],"exportSourceDefinedIn":["Data","Foldable"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[290,70]},{"Ident":"foldMap"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[290,70]},{"exportSourceImportedFrom":["Data","Semigroup","Foldable"],"exportSourceDefinedIn":["Data","Semigroup","Foldable"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[290,70]},{"Ident":"foldMap1"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[290,70]},{"exportSourceImportedFrom":["Data","Foldable"],"exportSourceDefinedIn":["Data","Foldable"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[290,70]},{"Ident":"foldl"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[290,70]},{"exportSourceImportedFrom":["Data","Foldable"],"exportSourceDefinedIn":["Data","Foldable"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[290,70]},{"Ident":"foldr"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[290,70]},{"exportSourceImportedFrom":["Data","Semigroup","Foldable"],"exportSourceDefinedIn":["Data","Semigroup","Foldable"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[290,70]},{"Ident":"for1_"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[290,70]},{"exportSourceImportedFrom":["Data","Foldable"],"exportSourceDefinedIn":["Data","Foldable"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[290,70]},{"Ident":"intercalate"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[290,70]},{"exportSourceImportedFrom":["Data","Foldable"],"exportSourceDefinedIn":["Data","Foldable"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[290,70]},{"Ident":"notElem"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[290,70]},{"exportSourceImportedFrom":["Data","Traversable"],"exportSourceDefinedIn":["Data","Traversable"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[290,70]},{"Ident":"scanl"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[290,70]},{"exportSourceImportedFrom":["Data","Traversable"],"exportSourceDefinedIn":["Data","Traversable"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[290,70]},{"Ident":"scanr"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[290,70]},{"exportSourceImportedFrom":["Data","Semigroup","Traversable"],"exportSourceDefinedIn":["Data","Semigroup","Traversable"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[290,70]},{"Ident":"sequence1"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[290,70]},{"exportSourceImportedFrom":["Data","Semigroup","Foldable"],"exportSourceDefinedIn":["Data","Semigroup","Foldable"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[290,70]},{"Ident":"sequence1_"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[290,70]},{"exportSourceImportedFrom":["Data","Semigroup","Traversable"],"exportSourceDefinedIn":["Data","Semigroup","Traversable"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[290,70]},{"Ident":"traverse1"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[290,70]},{"exportSourceImportedFrom":["Data","Semigroup","Traversable"],"exportSourceDefinedIn":["Data","Semigroup","Traversable"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[290,70]},{"Ident":"traverse1Default"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[290,70]},{"exportSourceImportedFrom":["Data","Semigroup","Foldable"],"exportSourceDefinedIn":["Data","Semigroup","Foldable"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[290,70]},{"Ident":"traverse1_"}]}]},{"ModuleRef":[{"start":[2,5],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[2,27]},["Data","List","Types"]]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[290,70]},{"Ident":"toUnfoldable"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[290,70]},{"Ident":"fromFoldable"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[290,70]},{"Ident":"fromList"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[290,70]},{"Ident":"toList"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[290,70]},{"Ident":"singleton"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[290,70]},{"Ident":"length"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[290,70]},{"Ident":"cons"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[290,70]},{"Ident":"snoc"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[290,70]},{"Ident":"head"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[290,70]},{"Ident":"last"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[290,70]},{"Ident":"tail"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[290,70]},{"Ident":"init"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[290,70]},{"Ident":"uncons"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[290,70]},{"Ident":"unsnoc"}]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[290,70]},"!!"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[290,70]},{"Ident":"index"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[290,70]},{"Ident":"elemIndex"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[290,70]},{"Ident":"elemLastIndex"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[290,70]},{"Ident":"findIndex"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[290,70]},{"Ident":"findLastIndex"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[290,70]},{"Ident":"insertAt"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[290,70]},{"Ident":"updateAt"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[290,70]},{"Ident":"modifyAt"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[290,70]},{"Ident":"reverse"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[290,70]},{"Ident":"concat"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[290,70]},{"Ident":"concatMap"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[290,70]},{"Ident":"filter"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[290,70]},{"Ident":"filterM"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[290,70]},{"Ident":"mapMaybe"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[290,70]},{"Ident":"catMaybes"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[290,70]},{"Ident":"appendFoldable"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[290,70]},{"Ident":"mapWithIndex"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[290,70]},{"Ident":"sort"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[290,70]},{"Ident":"sortBy"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[290,70]},{"Ident":"take"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[290,70]},{"Ident":"takeWhile"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[290,70]},{"Ident":"drop"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[290,70]},{"Ident":"dropWhile"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[290,70]},{"Ident":"span"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[290,70]},{"Ident":"group"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[290,70]},{"Ident":"group'"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[290,70]},{"Ident":"groupBy"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[290,70]},{"Ident":"partition"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[290,70]},{"Ident":"nub"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[290,70]},{"Ident":"nubBy"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[290,70]},{"Ident":"union"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[290,70]},{"Ident":"unionBy"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[290,70]},{"Ident":"intersect"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[290,70]},{"Ident":"intersectBy"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[290,70]},{"Ident":"zipWith"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[290,70]},{"Ident":"zipWithA"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[290,70]},{"Ident":"zip"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[290,70]},{"Ident":"unzip"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[290,70]},{"Ident":"foldM"}]},{"ModuleRef":[{"start":[56,5],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[56,19]},["Exports"]]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Prelude"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Data","Foldable"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[61,23],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[61,37]},"Foldable"]}]},"eiImportedAs":null},{"eiModule":["Data","List"],"eiImportType":{"Explicit":[{"ValueOpRef":[{"start":[62,19],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[62,22]},":"]}]},"eiImportedAs":null},{"eiModule":["Data","List"],"eiImportType":{"Implicit":[]},"eiImportedAs":["L"]},{"eiModule":["Data","List","Types"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[64,25],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[64,41]},"NonEmptyList",null]}]},"eiImportedAs":null},{"eiModule":["Data","Maybe"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[65,20],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[65,29]},"Maybe",null]},{"ValueRef":[{"start":[65,31],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[65,40]},{"Ident":"fromMaybe"}]},{"ValueRef":[{"start":[65,42],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[65,47]},{"Ident":"maybe"}]}]},"eiImportedAs":null},{"eiModule":["Data","NonEmpty"],"eiImportType":{"Explicit":[{"ValueOpRef":[{"start":[66,23],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[66,27]},":|"]}]},"eiImportedAs":null},{"eiModule":["Data","NonEmpty"],"eiImportType":{"Implicit":[]},"eiImportedAs":["NE"]},{"eiModule":["Data","Semigroup","Traversable"],"eiImportType":{"Explicit":[{"ValueRef":[{"start":[68,36],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[68,45]},{"Ident":"sequence1"}]}]},"eiImportedAs":null},{"eiModule":["Data","Tuple"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[69,20],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[69,29]},"Tuple",null]},{"ValueRef":[{"start":[69,31],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[69,34]},{"Ident":"fst"}]},{"ValueRef":[{"start":[69,36],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[69,39]},{"Ident":"snd"}]}]},"eiImportedAs":null},{"eiModule":["Data","Unfoldable"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[70,25],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[70,41]},"Unfoldable"]},{"ValueRef":[{"start":[70,43],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[70,50]},{"Ident":"unfoldr"}]}]},"eiImportedAs":null},{"eiModule":["Partial","Unsafe"],"eiImportType":{"Explicit":[{"ValueRef":[{"start":[71,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[71,39]},{"Ident":"unsafeCrashWith"}]}]},"eiImportedAs":null},{"eiModule":["Data","Foldable"],"eiImportType":{"Explicit":[{"ValueRef":[{"start":[73,23],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[73,28]},{"Ident":"foldl"}]},{"ValueRef":[{"start":[73,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[73,35]},{"Ident":"foldr"}]},{"ValueRef":[{"start":[73,37],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[73,44]},{"Ident":"foldMap"}]},{"ValueRef":[{"start":[73,46],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[73,50]},{"Ident":"fold"}]},{"ValueRef":[{"start":[73,52],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[73,63]},{"Ident":"intercalate"}]},{"ValueRef":[{"start":[73,65],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[73,69]},{"Ident":"elem"}]},{"ValueRef":[{"start":[73,71],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[73,78]},{"Ident":"notElem"}]},{"ValueRef":[{"start":[73,80],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[73,84]},{"Ident":"find"}]},{"ValueRef":[{"start":[73,86],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[73,93]},{"Ident":"findMap"}]},{"ValueRef":[{"start":[73,95],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[73,98]},{"Ident":"any"}]},{"ValueRef":[{"start":[73,100],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[73,103]},{"Ident":"all"}]}]},"eiImportedAs":["Exports"]},{"eiModule":["Data","Semigroup","Foldable"],"eiImportType":{"Explicit":[{"ValueRef":[{"start":[74,33],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[74,38]},{"Ident":"fold1"}]},{"ValueRef":[{"start":[74,40],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[74,48]},{"Ident":"foldMap1"}]},{"ValueRef":[{"start":[74,50],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[74,55]},{"Ident":"for1_"}]},{"ValueRef":[{"start":[74,57],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[74,67]},{"Ident":"sequence1_"}]},{"ValueRef":[{"start":[74,69],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[74,79]},{"Ident":"traverse1_"}]}]},"eiImportedAs":["Exports"]},{"eiModule":["Data","Semigroup","Traversable"],"eiImportType":{"Explicit":[{"ValueRef":[{"start":[75,36],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[75,45]},{"Ident":"sequence1"}]},{"ValueRef":[{"start":[75,47],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[75,56]},{"Ident":"traverse1"}]},{"ValueRef":[{"start":[75,58],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[75,74]},{"Ident":"traverse1Default"}]}]},"eiImportedAs":["Exports"]},{"eiModule":["Data","Traversable"],"eiImportType":{"Explicit":[{"ValueRef":[{"start":[76,26],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[76,31]},{"Ident":"scanl"}]},{"ValueRef":[{"start":[76,33],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[76,38]},{"Ident":"scanr"}]}]},"eiImportedAs":["Exports"]}],"efFixities":[{"efAssociativity":"infixl","efPrecedence":8,"efOperator":"!!","efAlias":[["Data","List","NonEmpty"],{"Left":{"Ident":"index"}}]}],"efTypeFixities":[],"efDeclarations":[{"EDValue":{"edValueName":{"Ident":"toUnfoldable"},"edValueType":{"annotation":[{"start":[110,17],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[110,60]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[110,27],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[110,60]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[110,27],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[110,39]},[]],"constraintClass":[["Data","Unfoldable"],"Unfoldable"],"constraintArgs":[{"annotation":[{"start":[110,38],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[110,39]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[17,34],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,54]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[17,44],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[17,44],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[17,48],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,50]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[17,44],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[110,43],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[110,55]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[{"start":[17,46],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,47]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[17,51],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[110,59],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[110,60]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[17,53],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,54]},[]],"tag":"TypeVar","contents":"a"}]}]},48]}]},49]}}},{"EDValue":{"edValueName":{"Ident":"fromFoldable"},"edValueType":{"annotation":[{"start":[114,17],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[114,72]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[114,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[114,72]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[114,29],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[114,72]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[114,29],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[114,39]},[]],"constraintClass":[["Data","Foldable"],"Foldable"],"constraintArgs":[{"annotation":[{"start":[114,38],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[114,39]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[114,43],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[114,72]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[114,43],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[114,72]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[114,47],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[114,49]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[114,43],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[114,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[114,43],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[114,44]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[114,45],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[114,46]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[114,50],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[114,72]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[114,50],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[114,55]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[114,57],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[114,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[114,57],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[114,69]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[{"start":[114,70],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[114,71]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]},118]},119]}}},{"EDValue":{"edValueName":{"Ident":"fromList"},"edValueType":{"annotation":[{"start":[117,13],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[117,57]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[117,23],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[117,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[117,23],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[117,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[117,32],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[117,34]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[117,23],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[117,31]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[117,23],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[117,29]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[117,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[117,31]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[117,35],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[117,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[117,35],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[117,40]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[117,42],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[117,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[117,42],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[117,54]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[{"start":[117,55],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[117,56]},[]],"tag":"TypeVar","contents":"a"}]}]}]},115]}}},{"EDValue":{"edValueName":{"Ident":"toList"},"edValueType":{"annotation":[{"start":[17,34],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,54]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[17,44],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[17,44],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[17,48],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,50]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[17,44],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[121,11],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[121,23]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[{"start":[17,46],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,47]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[17,51],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[121,27],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[121,33]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[17,53],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,54]},[]],"tag":"TypeVar","contents":"a"}]}]},46]}}},{"EDValue":{"edValueName":{"Ident":"singleton"},"edValueType":{"annotation":[{"start":[124,14],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[124,43]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[124,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[124,43]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[124,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[124,43]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[124,26],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[124,28]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[124,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[124,25]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[124,29],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[124,43]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[124,29],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[124,41]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[{"start":[124,42],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[124,43]},[]],"tag":"TypeVar","contents":"a"}]}]},60]}}},{"EDValue":{"edValueName":{"Ident":"length"},"edValueType":{"annotation":[{"start":[153,11],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[153,42]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[153,21],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[153,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[153,21],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[153,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[153,36],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[153,38]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[153,21],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[153,35]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[153,21],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[153,33]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[{"start":[153,34],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[153,35]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[153,39],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[153,42]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},92]}}},{"EDValue":{"edValueName":{"Ident":"cons"},"edValueType":{"annotation":[{"start":[127,9],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[127,56]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[127,19],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[127,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[127,19],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[127,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[127,21],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[127,23]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[127,19],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[127,20]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[127,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[127,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[127,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[127,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[127,39],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[127,41]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[127,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[127,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[127,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[127,36]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[{"start":[127,37],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[127,38]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[127,42],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[127,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[127,42],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[127,54]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[{"start":[127,55],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[127,56]},[]],"tag":"TypeVar","contents":"a"}]}]}]},147]}}},{"EDValue":{"edValueName":{"Ident":"snoc"},"edValueType":{"annotation":[{"start":[130,9],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[130,56]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[130,19],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[130,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[130,19],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[130,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[130,34],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[130,36]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[130,19],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[130,33]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[130,19],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[130,31]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[{"start":[130,32],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[130,33]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[130,37],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[130,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[130,37],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[130,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[130,39],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[130,41]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[130,37],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[130,38]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[130,42],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[130,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[130,42],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[130,54]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[{"start":[130,55],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[130,56]},[]],"tag":"TypeVar","contents":"a"}]}]}]},58]}}},{"EDValue":{"edValueName":{"Ident":"head"},"edValueType":{"annotation":[{"start":[133,9],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[133,38]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[133,19],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[133,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[133,19],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[133,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[133,34],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[133,36]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[133,19],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[133,33]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[133,19],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[133,31]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[{"start":[133,32],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[133,33]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[133,37],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[133,38]},[]],"tag":"TypeVar","contents":"a"}]},107]}}},{"EDValue":{"edValueName":{"Ident":"last"},"edValueType":{"annotation":[{"start":[136,9],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[136,38]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[136,19],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[136,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[136,19],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[136,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[136,34],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[136,36]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[136,19],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[136,33]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[136,19],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[136,31]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[{"start":[136,32],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[136,33]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[136,37],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[136,38]},[]],"tag":"TypeVar","contents":"a"}]},94]}}},{"EDValue":{"edValueName":{"Ident":"tail"},"edValueType":{"annotation":[{"start":[17,34],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,54]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[17,44],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[17,44],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[17,48],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,50]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[17,44],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[139,9],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[139,21]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[{"start":[17,46],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,47]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[17,51],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[139,25],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[139,31]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[17,53],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,54]},[]],"tag":"TypeVar","contents":"a"}]}]},52]}}},{"EDValue":{"edValueName":{"Ident":"init"},"edValueType":{"annotation":[{"start":[17,34],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,54]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[17,44],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[17,44],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[17,48],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,50]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[17,44],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[142,9],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[142,21]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[{"start":[17,46],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,47]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[17,51],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[142,25],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[142,31]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[17,53],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,54]},[]],"tag":"TypeVar","contents":"a"}]}]},103]}}},{"EDValue":{"edValueName":{"Ident":"uncons"},"edValueType":{"annotation":[{"start":[145,11],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[145,70]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[145,21],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[145,70]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[145,21],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[145,70]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[145,36],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[145,38]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[145,21],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[145,35]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[145,21],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[145,33]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[{"start":[145,34],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[145,35]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[145,39],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[145,70]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[145,39],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[145,40]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[145,41],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[145,50]},[]],"tag":"RCons","contents":["head",{"annotation":[{"start":[145,49],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[145,50]},[]],"tag":"TypeVar","contents":"a"},{"annotation":[{"start":[145,52],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[145,68]},[]],"tag":"RCons","contents":["tail",{"annotation":[{"start":[145,60],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[145,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[145,60],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[145,66]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[145,67],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[145,68]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[145,69],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[145,70]},[]],"tag":"REmpty"}]}]}]}]},44]}}},{"EDValue":{"edValueName":{"Ident":"unsnoc"},"edValueType":{"annotation":[{"start":[148,11],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[148,70]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[148,21],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[148,70]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[148,21],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[148,70]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[148,36],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[148,38]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[148,21],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[148,35]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[148,21],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[148,33]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[{"start":[148,34],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[148,35]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[148,39],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[148,70]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[148,39],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[148,40]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[148,41],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[148,57]},[]],"tag":"RCons","contents":["init",{"annotation":[{"start":[148,49],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[148,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[148,49],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[148,55]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[148,56],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[148,57]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[148,59],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[148,68]},[]],"tag":"RCons","contents":["last",{"annotation":[{"start":[148,67],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[148,68]},[]],"tag":"TypeVar","contents":"a"},{"annotation":[{"start":[148,69],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[148,70]},[]],"tag":"REmpty"}]}]}]}]},37]}}},{"EDValue":{"edValueName":{"Ident":"index"},"edValueType":{"annotation":[{"start":[156,10],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[156,52]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[156,20],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[156,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[156,20],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[156,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[156,35],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[156,37]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[156,20],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[156,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[156,20],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[156,32]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[{"start":[156,33],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[156,34]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[156,38],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[156,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[156,38],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[156,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[156,42],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[156,44]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[156,38],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[156,41]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[156,45],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[156,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[156,45],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[156,50]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[156,51],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[156,52]},[]],"tag":"TypeVar","contents":"a"}]}]}]},105]}}},{"EDValue":{"edValueName":{"Ident":"elemIndex"},"edValueType":{"annotation":[{"start":[163,14],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[163,64]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[163,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[163,64]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[163,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[163,28]},[]],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[{"start":[163,27],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[163,28]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[163,32],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[163,64]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[163,32],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[163,64]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[163,34],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[163,36]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[163,32],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[163,33]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[163,37],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[163,64]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[163,37],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[163,64]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[163,52],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[163,54]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[163,37],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[163,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[163,37],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[163,49]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[{"start":[163,50],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[163,51]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[163,55],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[163,64]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[163,55],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[163,60]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[163,61],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[163,64]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]}]}]},141]}}},{"EDValue":{"edValueName":{"Ident":"elemLastIndex"},"edValueType":{"annotation":[{"start":[166,18],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[166,68]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[166,28],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[166,68]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[166,28],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[166,32]},[]],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[{"start":[166,31],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[166,32]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[166,36],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[166,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[166,36],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[166,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[166,38],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[166,40]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[166,36],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[166,37]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[166,41],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[166,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[166,41],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[166,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[166,56],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[166,58]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[166,41],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[166,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[166,41],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[166,53]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[{"start":[166,54],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[166,55]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[166,59],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[166,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[166,59],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[166,64]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[166,65],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[166,68]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]}]}]},139]}}},{"EDValue":{"edValueName":{"Ident":"findIndex"},"edValueType":{"annotation":[{"start":[169,14],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[169,69]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[169,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[169,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[169,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[169,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[169,39],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[169,41]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[169,25],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[169,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[169,25],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[169,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[169,27],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[169,29]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[169,25],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[169,26]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[169,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[169,37]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]},{"annotation":[{"start":[169,42],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[169,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[169,42],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[169,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[169,57],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[169,59]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[169,42],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[169,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[169,42],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[169,54]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[{"start":[169,55],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[169,56]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[169,60],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[169,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[169,60],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[169,65]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[169,66],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[169,69]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]}]},131]}}},{"EDValue":{"edValueName":{"Ident":"findLastIndex"},"edValueType":{"annotation":[{"start":[174,18],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[174,73]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[174,28],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[174,73]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[174,28],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[174,73]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[174,43],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[174,45]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[174,29],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[174,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[174,29],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[174,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[174,31],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[174,33]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[174,29],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[174,30]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[174,34],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[174,41]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]},{"annotation":[{"start":[174,46],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[174,73]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[174,46],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[174,73]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[174,61],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[174,63]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[174,46],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[174,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[174,46],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[174,58]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[{"start":[174,59],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[174,60]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[174,64],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[174,73]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[174,64],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[174,69]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[174,70],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[174,73]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]}]},128]}}},{"EDValue":{"edValueName":{"Ident":"insertAt"},"edValueType":{"annotation":[{"start":[182,13],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[182,75]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[182,23],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[182,75]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[182,23],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[182,75]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[182,27],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[182,29]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[182,23],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[182,26]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[182,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[182,75]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[182,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[182,75]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[182,32],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[182,34]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[182,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[182,31]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[182,35],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[182,75]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[182,35],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[182,75]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[182,50],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[182,52]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[182,35],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[182,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[182,35],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[182,47]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[{"start":[182,48],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[182,49]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[182,53],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[182,75]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[182,53],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[182,58]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[182,60],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[182,74]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[182,60],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[182,72]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[{"start":[182,73],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[182,74]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]}]},100]}}},{"EDValue":{"edValueName":{"Ident":"updateAt"},"edValueType":{"annotation":[{"start":[187,13],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[187,75]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[187,23],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[187,75]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[187,23],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[187,75]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[187,27],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[187,29]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[187,23],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[187,26]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[187,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[187,75]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[187,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[187,75]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[187,32],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[187,34]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[187,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[187,31]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[187,35],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[187,75]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[187,35],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[187,75]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[187,50],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[187,52]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[187,35],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[187,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[187,35],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[187,47]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[{"start":[187,48],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[187,49]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[187,53],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[187,75]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[187,53],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[187,58]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[187,60],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[187,74]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[187,60],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[187,72]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[{"start":[187,73],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[187,74]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]}]},30]}}},{"EDValue":{"edValueName":{"Ident":"modifyAt"},"edValueType":{"annotation":[{"start":[192,13],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[192,82]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[192,23],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[192,82]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[192,23],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[192,82]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[192,27],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[192,29]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[192,23],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[192,26]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[192,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[192,82]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[192,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[192,82]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[192,39],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[192,41]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[192,31],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[192,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[192,31],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[192,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[192,33],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[192,35]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[192,31],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[192,32]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[192,36],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[192,37]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[192,42],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[192,82]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[192,42],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[192,82]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[192,57],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[192,59]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[192,42],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[192,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[192,42],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[192,54]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[{"start":[192,55],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[192,56]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[192,60],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[192,82]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[192,60],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[192,65]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[192,67],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[192,81]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[192,67],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[192,79]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[{"start":[192,80],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[192,81]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]}]},69]}}},{"EDValue":{"edValueName":{"Ident":"reverse"},"edValueType":{"annotation":[{"start":[197,12],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[197,54]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[197,22],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[197,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[197,22],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[197,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[197,37],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[197,39]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[197,22],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[197,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[197,22],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[197,34]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[{"start":[197,35],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[197,36]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[197,40],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[197,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[197,40],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[197,52]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[{"start":[197,53],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[197,54]},[]],"tag":"TypeVar","contents":"a"}]}]},63]}}},{"EDValue":{"edValueName":{"Ident":"concat"},"edValueType":{"annotation":[{"start":[212,11],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[212,68]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[212,21],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[212,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[212,21],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[212,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[212,51],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[212,53]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[212,21],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[212,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[212,21],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[212,33]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[{"start":[212,35],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[212,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[212,35],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[212,47]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[{"start":[212,48],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[212,49]},[]],"tag":"TypeVar","contents":"a"}]}]}]},{"annotation":[{"start":[212,54],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[212,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[212,54],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[212,66]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[{"start":[212,67],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[212,68]},[]],"tag":"TypeVar","contents":"a"}]}]},153]}}},{"EDValue":{"edValueName":{"Ident":"concatMap"},"edValueType":{"annotation":[{"start":[215,14],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[215,83]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[215,21],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[215,83]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[215,26],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[215,83]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[215,26],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[215,83]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[215,48],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[215,50]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[215,27],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[215,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[215,27],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[215,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[215,29],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[215,31]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[215,27],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[215,28]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[215,32],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[215,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[215,32],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[215,44]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[{"start":[215,45],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[215,46]},[]],"tag":"TypeVar","contents":"b"}]}]}]},{"annotation":[{"start":[215,51],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[215,83]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[215,51],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[215,83]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[215,66],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[215,68]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[215,51],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[215,65]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[215,51],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[215,63]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[{"start":[215,64],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[215,65]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[215,69],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[215,83]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[215,69],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[215,81]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[{"start":[215,82],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[215,83]},[]],"tag":"TypeVar","contents":"b"}]}]}]},149]},150]}}},{"EDValue":{"edValueName":{"Ident":"filter"},"edValueType":{"annotation":[{"start":[200,11],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[200,65]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[200,21],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[200,65]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[200,21],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[200,65]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[200,36],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[200,38]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[200,22],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[200,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[200,22],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[200,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[200,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[200,26]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[200,22],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[200,23]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[200,27],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[200,34]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]},{"annotation":[{"start":[200,39],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[200,65]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[200,39],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[200,65]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[200,54],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[200,56]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[200,39],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[200,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[200,39],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[200,51]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[{"start":[200,52],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[200,53]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[200,57],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[200,65]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[200,57],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[200,63]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[200,64],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[200,65]},[]],"tag":"TypeVar","contents":"a"}]}]}]},137]}}},{"EDValue":{"edValueName":{"Ident":"filterM"},"edValueType":{"annotation":[{"start":[203,12],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[203,85]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[203,19],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[203,85]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[203,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[203,85]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[203,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[203,31]},[]],"constraintClass":[["Control","Monad"],"Monad"],"constraintArgs":[{"annotation":[{"start":[203,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[203,31]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[203,35],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[203,85]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[203,35],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[203,85]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[203,52],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[203,54]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[203,36],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[203,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[203,36],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[203,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[203,38],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[203,40]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[203,36],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[203,37]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[203,41],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[203,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[203,41],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[203,42]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[203,43],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[203,50]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]}]},{"annotation":[{"start":[203,55],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[203,85]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[203,55],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[203,85]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[203,70],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[203,72]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[203,55],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[203,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[203,55],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[203,67]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[{"start":[203,68],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[203,69]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[203,73],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[203,85]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[203,73],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[203,74]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[203,76],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[203,84]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[203,76],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[203,82]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[203,83],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[203,84]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]}]},133]},134]}}},{"EDValue":{"edValueName":{"Ident":"mapMaybe"},"edValueType":{"annotation":[{"start":[206,13],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[206,69]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[206,20],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[206,69]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[206,25],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[206,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[206,25],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[206,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[206,40],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[206,42]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[206,26],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[206,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[206,26],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[206,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[206,28],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[206,30]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[206,26],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[206,27]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[206,31],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[206,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[206,31],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[206,36]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[206,37],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[206,38]},[]],"tag":"TypeVar","contents":"b"}]}]}]},{"annotation":[{"start":[206,43],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[206,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[206,43],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[206,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[206,58],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[206,60]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[206,43],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[206,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[206,43],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[206,55]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[{"start":[206,56],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[206,57]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[206,61],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[206,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[206,61],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[206,67]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[206,68],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[206,69]},[]],"tag":"TypeVar","contents":"b"}]}]}]},80]},81]}}},{"EDValue":{"edValueName":{"Ident":"catMaybes"},"edValueType":{"annotation":[{"start":[209,14],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[209,58]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[209,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[209,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[209,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[209,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[209,47],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[209,49]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[209,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[209,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[209,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[209,36]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[{"start":[209,38],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[209,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[209,38],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[209,43]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[209,44],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[209,45]},[]],"tag":"TypeVar","contents":"a"}]}]}]},{"annotation":[{"start":[209,50],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[209,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[209,50],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[209,56]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[209,57],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[209,58]},[]],"tag":"TypeVar","contents":"a"}]}]},155]}}},{"EDValue":{"edValueName":{"Ident":"appendFoldable"},"edValueType":{"annotation":[{"start":[218,19],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[218,84]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[218,26],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[218,84]},[]],"tag":"ForAll","contents":["t",{"annotation":[{"start":[218,31],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[218,84]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[218,31],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[218,41]},[]],"constraintClass":[["Data","Foldable"],"Foldable"],"constraintArgs":[{"annotation":[{"start":[218,40],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[218,41]},[]],"tag":"TypeVar","contents":"t"}],"constraintData":null},{"annotation":[{"start":[218,45],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[218,84]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[218,45],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[218,84]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[218,60],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[218,62]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[218,45],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[218,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[218,45],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[218,57]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[{"start":[218,58],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[218,59]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[218,63],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[218,84]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[218,63],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[218,84]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[218,67],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[218,69]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[218,63],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[218,66]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[218,63],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[218,64]},[]],"tag":"TypeVar","contents":"t"},{"annotation":[{"start":[218,65],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[218,66]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[218,70],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[218,84]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[218,70],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[218,82]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[{"start":[218,83],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[218,84]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]},157]},158]}}},{"EDValue":{"edValueName":{"Ident":"mapWithIndex"},"edValueType":{"annotation":[{"start":[222,17],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[222,80]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[222,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[222,80]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[222,29],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[222,80]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[222,29],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[222,80]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[222,45],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[222,47]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[222,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[222,43]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[222,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[222,43]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[222,34],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[222,36]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[222,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[222,33]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[222,37],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[222,43]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[222,37],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[222,43]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[222,39],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[222,41]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[222,37],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[222,38]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[222,42],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[222,43]},[]],"tag":"TypeVar","contents":"b"}]}]}]},{"annotation":[{"start":[222,48],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[222,80]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[222,48],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[222,80]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[222,63],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[222,65]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[222,48],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[222,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[222,48],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[222,60]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[{"start":[222,61],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[222,62]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[222,66],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[222,80]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[222,66],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[222,78]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[{"start":[222,79],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[222,80]},[]],"tag":"TypeVar","contents":"b"}]}]}]},72]},73]}}},{"EDValue":{"edValueName":{"Ident":"sort"},"edValueType":{"annotation":[{"start":[225,9],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[225,60]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[225,19],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[225,60]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[225,19],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[225,24]},[]],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[{"start":[225,23],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[225,24]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[225,28],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[225,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[225,28],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[225,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[225,43],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[225,45]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[225,28],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[225,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[225,28],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[225,40]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[{"start":[225,41],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[225,42]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[225,46],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[225,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[225,46],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[225,58]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[{"start":[225,59],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[225,60]},[]],"tag":"TypeVar","contents":"a"}]}]}]},56]}}},{"EDValue":{"edValueName":{"Ident":"sortBy"},"edValueType":{"annotation":[{"start":[228,11],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[228,77]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[228,21],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[228,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[228,21],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[228,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[228,42],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[228,44]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[228,22],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[228,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[228,22],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[228,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[228,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[228,26]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[228,22],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[228,23]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[228,27],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[228,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[228,27],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[228,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[228,29],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[228,31]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[228,27],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[228,28]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[228,32],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[228,40]},[]],"tag":"TypeConstructor","contents":[["Data","Ordering"],"Ordering"]}]}]}]},{"annotation":[{"start":[228,45],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[228,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[228,45],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[228,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[228,60],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[228,62]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[228,45],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[228,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[228,45],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[228,57]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[{"start":[228,58],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[228,59]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[228,63],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[228,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[228,63],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[228,75]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[{"start":[228,76],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[228,77]},[]],"tag":"TypeVar","contents":"a"}]}]}]},54]}}},{"EDValue":{"edValueName":{"Ident":"take"},"edValueType":{"annotation":[{"start":[231,9],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[231,52]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[231,19],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[231,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[231,19],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[231,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[231,23],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[231,25]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[231,19],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[231,22]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[231,26],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[231,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[231,26],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[231,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[231,41],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[231,43]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[231,26],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[231,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[231,26],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[231,38]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[{"start":[231,39],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[231,40]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[231,44],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[231,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[231,44],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[231,50]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[231,51],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[231,52]},[]],"tag":"TypeVar","contents":"a"}]}]}]},88]}}},{"EDValue":{"edValueName":{"Ident":"takeWhile"},"edValueType":{"annotation":[{"start":[234,14],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[234,68]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[234,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[234,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[234,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[234,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[234,39],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[234,41]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[234,25],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[234,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[234,25],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[234,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[234,27],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[234,29]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[234,25],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[234,26]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[234,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[234,37]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]},{"annotation":[{"start":[234,42],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[234,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[234,42],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[234,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[234,57],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[234,59]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[234,42],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[234,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[234,42],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[234,54]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[{"start":[234,55],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[234,56]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[234,60],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[234,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[234,60],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[234,66]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[234,67],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[234,68]},[]],"tag":"TypeVar","contents":"a"}]}]}]},90]}}},{"EDValue":{"edValueName":{"Ident":"drop"},"edValueType":{"annotation":[{"start":[237,9],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[237,52]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[237,19],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[237,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[237,19],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[237,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[237,23],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[237,25]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[237,19],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[237,22]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[237,26],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[237,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[237,26],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[237,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[237,41],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[237,43]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[237,26],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[237,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[237,26],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[237,38]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[{"start":[237,39],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[237,40]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[237,44],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[237,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[237,44],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[237,50]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[237,51],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[237,52]},[]],"tag":"TypeVar","contents":"a"}]}]}]},145]}}},{"EDValue":{"edValueName":{"Ident":"dropWhile"},"edValueType":{"annotation":[{"start":[240,14],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[240,68]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[240,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[240,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[240,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[240,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[240,39],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[240,41]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[240,25],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[240,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[240,25],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[240,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[240,27],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[240,29]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[240,25],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[240,26]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[240,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[240,37]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]},{"annotation":[{"start":[240,42],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[240,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[240,42],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[240,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[240,57],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[240,59]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[240,42],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[240,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[240,42],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[240,54]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[{"start":[240,55],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[240,56]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[240,60],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[240,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[240,60],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[240,66]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[240,67],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[240,68]},[]],"tag":"TypeVar","contents":"a"}]}]}]},143]}}},{"EDValue":{"edValueName":{"Ident":"span"},"edValueType":{"annotation":[{"start":[243,9],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[243,93]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[243,19],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[243,93]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[243,19],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[243,93]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[243,34],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[243,36]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[243,20],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[243,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[243,20],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[243,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[243,22],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[243,24]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[243,20],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[243,21]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[243,25],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[243,32]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]},{"annotation":[{"start":[243,37],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[243,93]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[243,37],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[243,93]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[243,52],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[243,54]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[243,37],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[243,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[243,37],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[243,49]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[{"start":[243,50],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[243,51]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[243,55],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[243,93]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[243,55],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[243,56]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[243,57],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[243,73]},[]],"tag":"RCons","contents":["init",{"annotation":[{"start":[243,65],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[243,73]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[243,65],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[243,71]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[243,72],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[243,73]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[243,75],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[243,91]},[]],"tag":"RCons","contents":["rest",{"annotation":[{"start":[243,83],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[243,91]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[243,83],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[243,89]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[243,90],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[243,91]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[243,92],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[243,93]},[]],"tag":"REmpty"}]}]}]}]}]},86]}}},{"EDValue":{"edValueName":{"Ident":"group"},"edValueType":{"annotation":[{"start":[246,10],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[246,75]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[246,20],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[246,75]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[246,20],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[246,24]},[]],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[{"start":[246,23],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[246,24]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[246,28],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[246,75]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[246,28],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[246,75]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[246,43],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[246,45]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[246,28],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[246,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[246,28],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[246,40]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[{"start":[246,41],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[246,42]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[246,46],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[246,75]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[246,46],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[246,58]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[{"start":[246,60],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[246,74]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[246,60],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[246,72]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[{"start":[246,73],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[246,74]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]},113]}}},{"EDValue":{"edValueName":{"Ident":"group'"},"edValueType":{"annotation":[{"start":[249,11],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[249,77]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[249,21],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[249,77]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[249,21],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[249,26]},[]],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[{"start":[249,25],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[249,26]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[249,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[249,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[249,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[249,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[249,45],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[249,47]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[249,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[249,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[249,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[249,42]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[{"start":[249,43],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[249,44]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[249,48],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[249,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[249,48],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[249,60]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[{"start":[249,62],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[249,76]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[249,62],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[249,74]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[{"start":[249,75],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[249,76]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]},111]}}},{"EDValue":{"edValueName":{"Ident":"groupBy"},"edValueType":{"annotation":[{"start":[252,12],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[252,92]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[252,22],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[252,92]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[252,22],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[252,92]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[252,42],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[252,44]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[252,23],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[252,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[252,23],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[252,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[252,25],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[252,27]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[252,23],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[252,24]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[252,28],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[252,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[252,28],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[252,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[252,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[252,32]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[252,28],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[252,29]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[252,33],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[252,40]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]}]},{"annotation":[{"start":[252,45],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[252,92]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[252,45],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[252,92]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[252,60],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[252,62]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[252,45],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[252,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[252,45],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[252,57]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[{"start":[252,58],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[252,59]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[252,63],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[252,92]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[252,63],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[252,75]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[{"start":[252,77],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[252,91]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[252,77],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[252,89]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[{"start":[252,90],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[252,91]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]},109]}}},{"EDValue":{"edValueName":{"Ident":"partition"},"edValueType":{"annotation":[{"start":[255,14],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[255,95]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[255,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[255,95]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[255,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[255,95]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[255,39],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[255,41]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[255,25],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[255,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[255,25],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[255,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[255,27],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[255,29]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[255,25],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[255,26]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[255,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[255,37]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]},{"annotation":[{"start":[255,42],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[255,95]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[255,42],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[255,95]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[255,57],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[255,59]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[255,42],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[255,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[255,42],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[255,54]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[{"start":[255,55],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[255,56]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[255,60],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[255,95]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[255,60],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[255,61]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[255,62],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[255,77]},[]],"tag":"RCons","contents":["yes",{"annotation":[{"start":[255,69],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[255,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[255,69],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[255,75]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[255,76],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[255,77]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[255,79],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[255,93]},[]],"tag":"RCons","contents":["no",{"annotation":[{"start":[255,85],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[255,93]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[255,85],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[255,91]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[255,92],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[255,93]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[255,94],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[255,95]},[]],"tag":"REmpty"}]}]}]}]}]},84]}}},{"EDValue":{"edValueName":{"Ident":"nub"},"edValueType":{"annotation":[{"start":[258,8],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[258,58]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[258,18],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[258,58]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[258,18],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[258,22]},[]],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[{"start":[258,21],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[258,22]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[258,26],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[258,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[258,26],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[258,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[258,41],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[258,43]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[258,26],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[258,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[258,26],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[258,38]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[{"start":[258,39],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[258,40]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[258,44],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[258,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[258,44],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[258,56]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[{"start":[258,57],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[258,58]},[]],"tag":"TypeVar","contents":"a"}]}]}]},67]}}},{"EDValue":{"edValueName":{"Ident":"nubBy"},"edValueType":{"annotation":[{"start":[261,10],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[261,75]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[261,20],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[261,75]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[261,20],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[261,75]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[261,40],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[261,42]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[261,21],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[261,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[261,21],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[261,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[261,23],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[261,25]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[261,21],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[261,22]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[261,26],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[261,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[261,26],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[261,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[261,28],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[261,30]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[261,26],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[261,27]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[261,31],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[261,38]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]}]},{"annotation":[{"start":[261,43],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[261,75]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[261,43],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[261,75]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[261,58],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[261,60]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[261,43],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[261,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[261,43],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[261,55]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[{"start":[261,56],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[261,57]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[261,61],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[261,75]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[261,61],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[261,73]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[{"start":[261,74],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[261,75]},[]],"tag":"TypeVar","contents":"a"}]}]}]},65]}}},{"EDValue":{"edValueName":{"Ident":"union"},"edValueType":{"annotation":[{"start":[264,10],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[264,78]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[264,20],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[264,78]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[264,20],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[264,24]},[]],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[{"start":[264,23],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[264,24]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[264,28],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[264,78]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[264,28],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[264,78]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[264,43],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[264,45]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[264,28],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[264,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[264,28],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[264,40]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[{"start":[264,41],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[264,42]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[264,46],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[264,78]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[264,46],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[264,78]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[264,61],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[264,63]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[264,46],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[264,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[264,46],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[264,58]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[{"start":[264,59],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[264,60]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[264,64],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[264,78]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[264,64],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[264,76]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[{"start":[264,77],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[264,78]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]},42]}}},{"EDValue":{"edValueName":{"Ident":"unionBy"},"edValueType":{"annotation":[{"start":[267,12],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[267,95]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[267,22],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[267,95]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[267,22],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[267,95]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[267,42],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[267,44]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[267,23],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[267,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[267,23],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[267,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[267,25],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[267,27]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[267,23],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[267,24]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[267,28],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[267,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[267,28],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[267,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[267,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[267,32]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[267,28],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[267,29]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[267,33],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[267,40]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]}]},{"annotation":[{"start":[267,45],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[267,95]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[267,45],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[267,95]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[267,60],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[267,62]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[267,45],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[267,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[267,45],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[267,57]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[{"start":[267,58],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[267,59]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[267,63],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[267,95]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[267,63],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[267,95]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[267,78],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[267,80]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[267,63],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[267,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[267,63],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[267,75]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[{"start":[267,76],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[267,77]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[267,81],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[267,95]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[267,81],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[267,93]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[{"start":[267,94],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[267,95]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]},40]}}},{"EDValue":{"edValueName":{"Ident":"intersect"},"edValueType":{"annotation":[{"start":[270,14],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[270,82]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[270,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[270,82]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[270,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[270,28]},[]],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[{"start":[270,27],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[270,28]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[270,32],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[270,82]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[270,32],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[270,82]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[270,47],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[270,49]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[270,32],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[270,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[270,32],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[270,44]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[{"start":[270,45],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[270,46]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[270,50],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[270,82]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[270,50],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[270,82]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[270,65],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[270,67]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[270,50],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[270,64]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[270,50],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[270,62]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[{"start":[270,63],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[270,64]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[270,68],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[270,82]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[270,68],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[270,80]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[{"start":[270,81],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[270,82]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]},98]}}},{"EDValue":{"edValueName":{"Ident":"intersectBy"},"edValueType":{"annotation":[{"start":[273,16],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[273,99]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[273,26],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[273,99]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[273,26],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[273,99]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[273,46],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[273,48]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[273,27],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[273,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[273,27],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[273,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[273,29],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[273,31]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[273,27],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[273,28]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[273,32],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[273,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[273,32],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[273,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[273,34],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[273,36]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[273,32],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[273,33]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[273,37],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[273,44]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]}]},{"annotation":[{"start":[273,49],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[273,99]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[273,49],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[273,99]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[273,64],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[273,66]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[273,49],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[273,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[273,49],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[273,61]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[{"start":[273,62],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[273,63]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[273,67],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[273,99]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[273,67],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[273,99]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[273,82],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[273,84]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[273,67],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[273,81]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[273,67],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[273,79]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[{"start":[273,80],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[273,81]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[273,85],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[273,99]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[273,85],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[273,97]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[{"start":[273,98],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[273,99]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]},96]}}},{"EDValue":{"edValueName":{"Ident":"zipWith"},"edValueType":{"annotation":[{"start":[276,12],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[276,93]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[276,19],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[276,93]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[276,19],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[276,93]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[276,26],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[276,93]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[276,26],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[276,93]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[276,40],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[276,42]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[276,27],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[276,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[276,27],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[276,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[276,29],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[276,31]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[276,27],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[276,28]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[276,32],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[276,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[276,32],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[276,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[276,34],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[276,36]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[276,32],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[276,33]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[276,37],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[276,38]},[]],"tag":"TypeVar","contents":"c"}]}]}]},{"annotation":[{"start":[276,43],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[276,93]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[276,43],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[276,93]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[276,58],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[276,60]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[276,43],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[276,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[276,43],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[276,55]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[{"start":[276,56],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[276,57]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[276,61],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[276,93]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[276,61],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[276,93]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[276,76],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[276,78]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[276,61],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[276,75]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[276,61],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[276,73]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[{"start":[276,74],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[276,75]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[276,79],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[276,93]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[276,79],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[276,91]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[{"start":[276,92],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[276,93]},[]],"tag":"TypeVar","contents":"c"}]}]}]}]},0]},1]},2]}}},{"EDValue":{"edValueName":{"Ident":"zipWithA"},"edValueType":{"annotation":[{"start":[280,13],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[280,119]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[280,20],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[280,119]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[280,20],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[280,119]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[280,20],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[280,119]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[280,29],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[280,119]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[280,29],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[280,42]},[]],"constraintClass":[["Control","Applicative"],"Applicative"],"constraintArgs":[{"annotation":[{"start":[280,41],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[280,42]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[280,46],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[280,119]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[280,46],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[280,119]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[280,62],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[280,64]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[280,47],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[280,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[280,47],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[280,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[280,49],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[280,51]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[280,47],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[280,48]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[280,52],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[280,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[280,52],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[280,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[280,54],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[280,56]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[280,52],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[280,53]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[280,57],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[280,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[280,57],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[280,58]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[280,59],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[280,60]},[]],"tag":"TypeVar","contents":"c"}]}]}]}]},{"annotation":[{"start":[280,65],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[280,119]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[280,65],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[280,119]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[280,80],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[280,82]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[280,65],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[280,79]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[280,65],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[280,77]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[{"start":[280,78],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[280,79]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[280,83],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[280,119]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[280,83],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[280,119]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[280,98],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[280,100]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[280,83],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[280,97]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[280,83],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[280,95]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[{"start":[280,96],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[280,97]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[280,101],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[280,119]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[280,101],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[280,102]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[280,104],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[280,118]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[280,104],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[280,116]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[{"start":[280,117],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[280,118]},[]],"tag":"TypeVar","contents":"c"}]}]}]}]}]}]},6]},7]},8]},9]}}},{"EDValue":{"edValueName":{"Ident":"zip"},"edValueType":{"annotation":[{"start":[283,8],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[283,80]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[283,15],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[283,80]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[283,20],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[283,80]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[283,20],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[283,80]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[283,35],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[283,37]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[283,20],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[283,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[283,20],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[283,32]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[{"start":[283,33],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[283,34]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[283,38],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[283,80]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[283,38],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[283,80]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[283,53],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[283,55]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[283,38],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[283,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[283,38],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[283,50]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[{"start":[283,51],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[283,52]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[283,56],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[283,80]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[283,56],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[283,68]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[{"start":[283,70],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[283,79]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[283,70],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[283,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[283,70],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[283,75]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[283,76],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[283,77]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[283,78],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[283,79]},[]],"tag":"TypeVar","contents":"b"}]}]}]}]},14]},15]}}},{"EDValue":{"edValueName":{"Ident":"unzip"},"edValueType":{"annotation":[{"start":[286,10],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[286,89]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[286,17],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[286,89]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[286,22],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[286,89]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[286,22],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[286,89]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[286,47],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[286,49]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[286,22],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[286,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[286,22],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[286,34]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[{"start":[286,36],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[286,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[286,36],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[286,43]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[286,36],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[286,41]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[286,42],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[286,43]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[286,44],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[286,45]},[]],"tag":"TypeVar","contents":"b"}]}]}]},{"annotation":[{"start":[286,50],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[286,89]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[286,50],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[286,72]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[286,50],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[286,55]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[286,57],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[286,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[286,57],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[286,69]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[{"start":[286,70],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[286,71]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[286,74],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[286,88]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[286,74],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[286,86]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[{"start":[286,87],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[286,88]},[]],"tag":"TypeVar","contents":"b"}]}]}]},33]},34]}}},{"EDValue":{"edValueName":{"Ident":"foldM"},"edValueType":{"annotation":[{"start":[289,10],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[289,80]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[289,17],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[289,80]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[289,17],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[289,80]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[289,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[289,80]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[289,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[289,31]},[]],"constraintClass":[["Control","Monad"],"Monad"],"constraintArgs":[{"annotation":[{"start":[289,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[289,31]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[289,35],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[289,80]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[289,35],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[289,80]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[289,51],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[289,53]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[289,36],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[289,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[289,36],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[289,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[289,38],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[289,40]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[289,36],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[289,37]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[289,41],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[289,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[289,41],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[289,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[289,43],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[289,45]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[289,41],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[289,42]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[289,46],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[289,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[289,46],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[289,47]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[289,48],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[289,49]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]},{"annotation":[{"start":[289,54],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[289,80]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[289,54],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[289,80]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[289,56],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[289,58]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[289,54],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[289,55]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[289,59],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[289,80]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[289,59],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[289,80]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[289,74],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[289,76]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[289,59],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[289,73]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[289,59],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[289,71]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[{"start":[289,72],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[289,73]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[289,77],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[289,80]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[289,77],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[289,78]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[289,79],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[289,80]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]}]},122]},123]},124]}}}],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/NonEmpty.purs","end":[290,70]}}
diff --git a/tests/purs/publish/basic-example/output/Data.List.Partial/docs.json b/tests/purs/publish/basic-example/output/Data.List.Partial/docs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.List.Partial/docs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"reExports":[],"name":"Data.List.Partial","comments":"Partial helper functions for working with strict linked lists.\n","declarations":[{"children":[],"comments":"Get the first element of a non-empty list.\n\nRunning time: `O(1)`.\n","title":"head","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Prim"],"Partial"],"constraintArgs":[],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},null]}},"sourceSpan":{"start":[9,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Partial.purs","end":[9,41]}},{"children":[],"comments":"Get all but the first element of a non-empty list.\n\nRunning time: `O(1)`\n","title":"tail","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Prim"],"Partial"],"constraintArgs":[],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]},null]}},"sourceSpan":{"start":[15,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Partial.purs","end":[15,46]}},{"children":[],"comments":"Get the last element of a non-empty list.\n\nRunning time: `O(n)`\n","title":"last","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Prim"],"Partial"],"constraintArgs":[],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},null]}},"sourceSpan":{"start":[21,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Partial.purs","end":[21,41]}},{"children":[],"comments":"Get all but the last element of a non-empty list.\n\nRunning time: `O(n)`\n","title":"init","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Prim"],"Partial"],"constraintArgs":[],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]},null]}},"sourceSpan":{"start":[28,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Partial.purs","end":[28,46]}}]}
diff --git a/tests/purs/publish/basic-example/output/Data.List.Partial/externs.json b/tests/purs/publish/basic-example/output/Data.List.Partial/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.List.Partial/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Data","List","Partial"],"efExports":[{"ValueRef":[{"start":[2,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Partial.purs","end":[30,37]},{"Ident":"head"}]},{"ValueRef":[{"start":[2,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Partial.purs","end":[30,37]},{"Ident":"tail"}]},{"ValueRef":[{"start":[2,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Partial.purs","end":[30,37]},{"Ident":"last"}]},{"ValueRef":[{"start":[2,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Partial.purs","end":[30,37]},{"Ident":"init"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Data","List"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[4,19],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Partial.purs","end":[4,27]},"List",null]}]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDValue":{"edValueName":{"Ident":"head"},"edValueType":{"annotation":[{"start":[9,9],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Partial.purs","end":[9,41]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[9,19],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Partial.purs","end":[9,41]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[9,19],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Partial.purs","end":[9,26]},[]],"constraintClass":[["Prim"],"Partial"],"constraintArgs":[],"constraintData":null},{"annotation":[{"start":[9,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Partial.purs","end":[9,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[9,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Partial.purs","end":[9,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[9,37],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Partial.purs","end":[9,39]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[9,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Partial.purs","end":[9,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[9,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Partial.purs","end":[9,34]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[9,35],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Partial.purs","end":[9,36]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[9,40],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Partial.purs","end":[9,41]},[]],"tag":"TypeVar","contents":"a"}]}]},14]}}},{"EDValue":{"edValueName":{"Ident":"tail"},"edValueType":{"annotation":[{"start":[15,9],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Partial.purs","end":[15,46]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[15,19],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Partial.purs","end":[15,46]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[15,19],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Partial.purs","end":[15,26]},[]],"constraintClass":[["Prim"],"Partial"],"constraintArgs":[],"constraintData":null},{"annotation":[{"start":[15,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Partial.purs","end":[15,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[15,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Partial.purs","end":[15,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[15,37],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Partial.purs","end":[15,39]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[15,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Partial.purs","end":[15,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[15,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Partial.purs","end":[15,34]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[15,35],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Partial.purs","end":[15,36]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[15,40],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Partial.purs","end":[15,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[15,40],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Partial.purs","end":[15,44]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[15,45],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Partial.purs","end":[15,46]},[]],"tag":"TypeVar","contents":"a"}]}]}]},0]}}},{"EDValue":{"edValueName":{"Ident":"last"},"edValueType":{"annotation":[{"start":[21,9],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Partial.purs","end":[21,41]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[21,19],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Partial.purs","end":[21,41]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[21,19],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Partial.purs","end":[21,26]},[]],"constraintClass":[["Prim"],"Partial"],"constraintArgs":[],"constraintData":null},{"annotation":[{"start":[21,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Partial.purs","end":[21,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[21,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Partial.purs","end":[21,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[21,37],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Partial.purs","end":[21,39]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[21,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Partial.purs","end":[21,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[21,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Partial.purs","end":[21,34]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[21,35],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Partial.purs","end":[21,36]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[21,40],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Partial.purs","end":[21,41]},[]],"tag":"TypeVar","contents":"a"}]}]},4]}}},{"EDValue":{"edValueName":{"Ident":"init"},"edValueType":{"annotation":[{"start":[28,9],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Partial.purs","end":[28,46]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[28,19],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Partial.purs","end":[28,46]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[28,19],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Partial.purs","end":[28,26]},[]],"constraintClass":[["Prim"],"Partial"],"constraintArgs":[],"constraintData":null},{"annotation":[{"start":[28,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Partial.purs","end":[28,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[28,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Partial.purs","end":[28,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[28,37],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Partial.purs","end":[28,39]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[28,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Partial.purs","end":[28,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[28,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Partial.purs","end":[28,34]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[28,35],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Partial.purs","end":[28,36]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[28,40],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Partial.purs","end":[28,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[28,40],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Partial.purs","end":[28,44]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[28,45],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Partial.purs","end":[28,46]},[]],"tag":"TypeVar","contents":"a"}]}]}]},9]}}}],"efSourceSpan":{"start":[2,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Partial.purs","end":[30,37]}}
diff --git a/tests/purs/publish/basic-example/output/Data.List.Types/docs.json b/tests/purs/publish/basic-example/output/Data.List.Types/docs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.List.Types/docs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"reExports":[],"name":"Data.List.Types","comments":null,"declarations":[{"children":[{"comments":null,"title":"Nil","info":{"arguments":[],"declType":"dataConstructor"},"sourceSpan":null},{"comments":null,"title":"Cons","info":{"arguments":[{"annotation":[],"tag":"TypeVar","contents":"a"},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}],"declType":"dataConstructor"},"sourceSpan":null},{"comments":null,"title":"showList","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Show"],"Show"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Show"],"Show"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[34,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[36,64]}},{"comments":null,"title":"eqList","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Eq"],"Eq"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[38,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[39,11]}},{"comments":null,"title":"eq1List","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Eq"],"Eq1"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]}]}},"sourceSpan":{"start":[41,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[47,23]}},{"comments":null,"title":"ordList","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord"],"Ord"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[49,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[50,21]}},{"comments":null,"title":"ord1List","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord"],"Ord1"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]}]}},"sourceSpan":{"start":[52,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[61,23]}},{"comments":null,"title":"semigroupList","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup"],"Semigroup"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[63,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[64,33]}},{"comments":null,"title":"monoidList","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid"],"Monoid"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[66,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[67,15]}},{"comments":null,"title":"functorList","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Functor"],"Functor"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]}]}},"sourceSpan":{"start":[69,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[70,42]}},{"comments":null,"title":"functorWithIndexList","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","FunctorWithIndex"],"FunctorWithIndex"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]}]}},"sourceSpan":{"start":[72,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[73,64]}},{"comments":null,"title":"foldableList","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Foldable"],"Foldable"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]}]}},"sourceSpan":{"start":[75,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[84,54]}},{"comments":null,"title":"foldableWithIndexList","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","FoldableWithIndex"],"FoldableWithIndex"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]}]}},"sourceSpan":{"start":[86,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[100,76]}},{"comments":null,"title":"unfoldable1List","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unfoldable1"],"Unfoldable1"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]}]}},"sourceSpan":{"start":[102,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[107,61]}},{"comments":null,"title":"unfoldableList","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unfoldable"],"Unfoldable"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]}]}},"sourceSpan":{"start":[109,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[114,52]}},{"comments":null,"title":"traversableList","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Traversable"],"Traversable"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]}]}},"sourceSpan":{"start":[116,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[118,31]}},{"comments":null,"title":"traversableWithIndexList","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","TraversableWithIndex"],"TraversableWithIndex"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]}]}},"sourceSpan":{"start":[120,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[125,32]}},{"comments":null,"title":"applyList","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Apply"],"Apply"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]}]}},"sourceSpan":{"start":[127,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[129,48]}},{"comments":null,"title":"applicativeList","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Applicative"],"Applicative"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]}]}},"sourceSpan":{"start":[131,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[132,19]}},{"comments":null,"title":"bindList","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Bind"],"Bind"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]}]}},"sourceSpan":{"start":[134,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[136,37]}},{"comments":null,"title":"monadList","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Monad"],"Monad"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]}]}},"sourceSpan":{"start":[138,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[138,33]}},{"comments":null,"title":"altList","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Alt"],"Alt"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]}]}},"sourceSpan":{"start":[140,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[141,15]}},{"comments":null,"title":"plusList","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Plus"],"Plus"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]}]}},"sourceSpan":{"start":[143,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[144,14]}},{"comments":null,"title":"alternativeList","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Alternative"],"Alternative"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]}]}},"sourceSpan":{"start":[146,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[146,45]}},{"comments":null,"title":"monadZeroList","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","MonadZero"],"MonadZero"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]}]}},"sourceSpan":{"start":[148,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[148,41]}},{"comments":null,"title":"monadPlusList","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","MonadPlus"],"MonadPlus"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]}]}},"sourceSpan":{"start":[150,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[150,41]}},{"comments":null,"title":"extendList","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Extend"],"Extend"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]}]}},"sourceSpan":{"start":[152,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[159,42]}}],"comments":null,"title":"List","info":{"declType":"data","dataDeclType":"data","typeArguments":[["a",null]]},"sourceSpan":{"start":[30,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[30,36]}},{"children":[],"comments":null,"title":"(:)","info":{"declType":"alias","alias":[["Data","List","Types"],{"Right":{"Right":"Cons"}}],"fixity":{"associativity":"infixr","precedence":6}},"sourceSpan":{"start":[32,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[32,19]}},{"children":[{"comments":null,"title":"NonEmptyList","info":{"arguments":[{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","NonEmpty"],"NonEmpty"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}],"declType":"dataConstructor"},"sourceSpan":null},{"comments":null,"title":"newtypeNonEmptyList","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Newtype"],"Newtype"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeWildcard","contents":null}]}},"sourceSpan":{"start":[169,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[169,66]}},{"comments":null,"title":"eqNonEmptyList","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Eq"],"Eq"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[171,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[171,70]}},{"comments":null,"title":"ordNonEmptyList","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord"],"Ord"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[172,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[172,73]}},{"comments":null,"title":"showNonEmptyList","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Show"],"Show"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Show"],"Show"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[174,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[175,64]}},{"comments":null,"title":"functorNonEmptyList","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Functor"],"Functor"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]}]}},"sourceSpan":{"start":[177,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[177,68]}},{"comments":null,"title":"applyNonEmptyList","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Apply"],"Apply"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]}]}},"sourceSpan":{"start":[179,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[181,64]}},{"comments":null,"title":"applicativeNonEmptyList","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Applicative"],"Applicative"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]}]}},"sourceSpan":{"start":[183,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[184,39]}},{"comments":null,"title":"bindNonEmptyList","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Bind"],"Bind"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]}]}},"sourceSpan":{"start":[186,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[190,57]}},{"comments":null,"title":"monadNonEmptyList","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Monad"],"Monad"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]}]}},"sourceSpan":{"start":[192,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[192,49]}},{"comments":null,"title":"altNonEmptyList","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Alt"],"Alt"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]}]}},"sourceSpan":{"start":[194,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[195,15]}},{"comments":null,"title":"extendNonEmptyList","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Extend"],"Extend"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]}]}},"sourceSpan":{"start":[197,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[201,81]}},{"comments":null,"title":"comonadNonEmptyList","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Comonad"],"Comonad"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]}]}},"sourceSpan":{"start":[203,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[204,38]}},{"comments":null,"title":"semigroupNonEmptyList","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup"],"Semigroup"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[206,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[208,41]}},{"comments":null,"title":"foldableNonEmptyList","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Foldable"],"Foldable"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]}]}},"sourceSpan":{"start":[210,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[210,70]}},{"comments":null,"title":"traversableNonEmptyList","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Traversable"],"Traversable"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]}]}},"sourceSpan":{"start":[212,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[212,76]}},{"comments":null,"title":"foldable1NonEmptyList","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup","Foldable"],"Foldable1"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]}]}},"sourceSpan":{"start":[214,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[214,72]}},{"comments":null,"title":"traversable1NonEmptyList","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup","Traversable"],"Traversable1"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]}]}},"sourceSpan":{"start":[216,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[220,33]}}],"comments":null,"title":"NonEmptyList","info":{"declType":"data","dataDeclType":"newtype","typeArguments":[["a",null]]},"sourceSpan":{"start":[161,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[161,56]}},{"children":[],"comments":null,"title":"toList","info":{"declType":"value","type":{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","NaturalTransformation"],"~>"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]}]}},"sourceSpan":{"start":[163,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[163,31]}},{"children":[],"comments":null,"title":"nelCons","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]},null]}},"sourceSpan":{"start":[166,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[166,59]}}]}
diff --git a/tests/purs/publish/basic-example/output/Data.List.Types/externs.json b/tests/purs/publish/basic-example/output/Data.List.Types/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.List.Types/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Data","List","Types"],"efExports":[{"TypeRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[220,33]},"List",["Nil","Cons"]]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[220,33]},":"]},{"TypeRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[220,33]},"NonEmptyList",["NonEmptyList"]]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[220,33]},{"Ident":"toList"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[220,33]},{"Ident":"nelCons"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"showList"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"eqList"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"eq1List"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"ordList"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"ord1List"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"semigroupList"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"monoidList"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"functorList"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"functorWithIndexList"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"foldableList"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"foldableWithIndexList"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"unfoldable1List"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"unfoldableList"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"traversableList"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"traversableWithIndexList"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"applyList"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"applicativeList"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"bindList"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"monadList"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"altList"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"plusList"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"alternativeList"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"monadZeroList"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"monadPlusList"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"extendList"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"newtypeNonEmptyList"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"eqNonEmptyList"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"ordNonEmptyList"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"showNonEmptyList"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"functorNonEmptyList"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"applyNonEmptyList"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"applicativeNonEmptyList"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"bindNonEmptyList"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"monadNonEmptyList"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"altNonEmptyList"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"extendNonEmptyList"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"comonadNonEmptyList"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"semigroupNonEmptyList"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"foldableNonEmptyList"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"traversableNonEmptyList"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"foldable1NonEmptyList"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"traversable1NonEmptyList"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Prelude"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Control","Alt"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[5,21],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[5,30]},"Alt"]}]},"eiImportedAs":null},{"eiModule":["Control","Alternative"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[6,29],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[6,46]},"Alternative"]}]},"eiImportedAs":null},{"eiModule":["Control","Apply"],"eiImportType":{"Explicit":[{"ValueRef":[{"start":[7,23],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[7,28]},{"Ident":"lift2"}]}]},"eiImportedAs":null},{"eiModule":["Control","Comonad"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[8,25],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[8,38]},"Comonad"]}]},"eiImportedAs":null},{"eiModule":["Control","Extend"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[9,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[9,36]},"Extend"]}]},"eiImportedAs":null},{"eiModule":["Control","MonadPlus"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[10,27],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[10,42]},"MonadPlus"]}]},"eiImportedAs":null},{"eiModule":["Control","MonadZero"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[11,27],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[11,42]},"MonadZero"]}]},"eiImportedAs":null},{"eiModule":["Control","Plus"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[12,22],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[12,32]},"Plus"]}]},"eiImportedAs":null},{"eiModule":["Data","Eq"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[13,17],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[13,26]},"Eq1"]},{"ValueRef":[{"start":[13,28],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[13,31]},{"Ident":"eq1"}]}]},"eiImportedAs":null},{"eiModule":["Data","Foldable"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[14,23],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[14,37]},"Foldable"]},{"ValueRef":[{"start":[14,39],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[14,44]},{"Ident":"foldl"}]},{"ValueRef":[{"start":[14,46],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[14,51]},{"Ident":"foldr"}]},{"ValueRef":[{"start":[14,53],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[14,64]},{"Ident":"intercalate"}]}]},"eiImportedAs":null},{"eiModule":["Data","FoldableWithIndex"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[15,32],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[15,55]},"FoldableWithIndex"]},{"ValueRef":[{"start":[15,57],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[15,71]},{"Ident":"foldlWithIndex"}]},{"ValueRef":[{"start":[15,73],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[15,87]},{"Ident":"foldrWithIndex"}]}]},"eiImportedAs":null},{"eiModule":["Data","FunctorWithIndex"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[16,31],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[16,53]},"FunctorWithIndex"]}]},"eiImportedAs":null},{"eiModule":["Data","Maybe"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[17,20],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[17,29]},"Maybe",null]}]},"eiImportedAs":null},{"eiModule":["Data","Newtype"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[18,22],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[18,35]},"Newtype"]}]},"eiImportedAs":null},{"eiModule":["Data","NonEmpty"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[19,23],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[19,31]},"NonEmpty",[]]},{"ValueOpRef":[{"start":[19,33],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[19,37]},":|"]}]},"eiImportedAs":null},{"eiModule":["Data","NonEmpty"],"eiImportType":{"Implicit":[]},"eiImportedAs":["NE"]},{"eiModule":["Data","Ord"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[21,18],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[21,28]},"Ord1"]},{"ValueRef":[{"start":[21,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[21,38]},{"Ident":"compare1"}]}]},"eiImportedAs":null},{"eiModule":["Data","Semigroup","Foldable"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[22,33],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[22,48]},"Foldable1"]}]},"eiImportedAs":null},{"eiModule":["Data","Semigroup","Traversable"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[23,36],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[23,54]},"Traversable1"]},{"ValueRef":[{"start":[23,56],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[23,65]},{"Ident":"traverse1"}]}]},"eiImportedAs":null},{"eiModule":["Data","Traversable"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[24,26],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[24,43]},"Traversable"]},{"ValueRef":[{"start":[24,45],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[24,53]},{"Ident":"traverse"}]}]},"eiImportedAs":null},{"eiModule":["Data","TraversableWithIndex"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[25,35],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[25,61]},"TraversableWithIndex"]}]},"eiImportedAs":null},{"eiModule":["Data","Tuple"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[26,20],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[26,29]},"Tuple",null]},{"ValueRef":[{"start":[26,31],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[26,34]},{"Ident":"snd"}]}]},"eiImportedAs":null},{"eiModule":["Data","Unfoldable"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[27,25],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[27,41]},"Unfoldable"]}]},"eiImportedAs":null},{"eiModule":["Data","Unfoldable1"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[28,26],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[28,43]},"Unfoldable1"]}]},"eiImportedAs":null}],"efFixities":[{"efAssociativity":"infixr","efPrecedence":6,"efOperator":":","efAlias":[["Data","List","Types"],{"Right":"Cons"}]}],"efTypeFixities":[],"efDeclarations":[{"EDType":{"edTypeName":"List","edTypeKind":{"annotation":[{"start":[30,29],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[30,35]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[30,26],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[30,27]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},"edTypeDeclarationKind":{"DataType":{"args":[["a",{"annotation":[{"start":[30,26],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[30,27]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]],"ctors":[["Nil",[]],["Cons",[{"annotation":[{"start":[30,26],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[30,27]},[]],"tag":"TypeVar","contents":"a"},{"annotation":[{"start":[30,29],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[30,35]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[30,29],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[30,33]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[30,34],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[30,35]},[]],"tag":"TypeVar","contents":"a"}]}]]]}}}},{"EDDataConstructor":{"edDataCtorName":"Nil","edDataCtorOrigin":"data","edDataCtorTypeCtor":"List","edDataCtorType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"a"}]},null]},"edDataCtorFields":[]}},{"EDDataConstructor":{"edDataCtorName":"Cons","edDataCtorOrigin":"data","edDataCtorTypeCtor":"List","edDataCtorType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[30,26],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[30,27]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[30,29],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[30,35]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[30,29],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[30,33]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[30,34],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[30,35]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"a"}]}]}]},null]},"edDataCtorFields":[{"Ident":"value0"},{"Ident":"value1"}]}},{"EDType":{"edTypeName":"NonEmptyList","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[161,40],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[161,48]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},"edTypeDeclarationKind":{"DataType":{"args":[["a",{"annotation":[{"start":[161,40],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[161,48]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]],"ctors":[["NonEmptyList",[{"annotation":[{"start":[161,40],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[161,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[161,40],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[161,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[161,40],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[161,48]},[]],"tag":"TypeConstructor","contents":[["Data","NonEmpty"],"NonEmpty"]},{"annotation":[{"start":[161,49],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[161,53]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]}]},{"annotation":[{"start":[161,54],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[161,55]},[]],"tag":"TypeVar","contents":"a"}]}]]]}}}},{"EDDataConstructor":{"edDataCtorName":"NonEmptyList","edDataCtorOrigin":"newtype","edDataCtorTypeCtor":"NonEmptyList","edDataCtorType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[161,40],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[161,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[161,40],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[161,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[161,40],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[161,48]},[]],"tag":"TypeConstructor","contents":[["Data","NonEmpty"],"NonEmpty"]},{"annotation":[{"start":[161,49],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[161,53]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]}]},{"annotation":[{"start":[161,54],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[161,55]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"a"}]}]},null]},"edDataCtorFields":[{"Ident":"value0"}]}},{"EDValue":{"edValueName":{"Ident":"toList"},"edValueType":{"annotation":[{"start":[17,34],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,54]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[17,44],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[17,44],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[17,48],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,50]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[17,44],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[163,11],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[163,23]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[{"start":[17,46],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,47]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[17,51],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[163,27],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[163,31]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[17,53],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,54]},[]],"tag":"TypeVar","contents":"a"}]}]},88]}}},{"EDValue":{"edValueName":{"Ident":"nelCons"},"edValueType":{"annotation":[{"start":[166,12],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[166,59]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[166,22],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[166,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[166,22],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[166,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[166,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[166,26]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[166,22],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[166,23]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[166,27],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[166,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[166,27],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[166,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[166,42],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[166,44]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[166,27],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[166,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[166,27],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[166,39]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[{"start":[166,40],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[166,41]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[166,45],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[166,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[166,45],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[166,57]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[{"start":[166,58],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[166,59]},[]],"tag":"TypeVar","contents":"a"}]}]}]},115]}}},{"EDInstance":{"edInstanceClassName":[["Data","Show"],"Show"],"edInstanceName":{"Ident":"showList"},"edInstanceTypes":[{"annotation":[{"start":[34,38],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[34,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[34,38],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[34,42]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[34,43],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[34,44]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[34,22],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[34,28]},[]],"constraintClass":[["Data","Show"],"Show"],"constraintArgs":[{"annotation":[{"start":[34,27],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[34,28]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","List","Types"],{"Ident":"showList"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Eq"],"Eq"],"edInstanceName":{"Ident":"eqList"},"edInstanceTypes":[{"annotation":[{"start":[38,32],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[38,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[38,32],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[38,36]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[38,37],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[38,38]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[38,20],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[38,24]},[]],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[{"start":[38,23],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[38,24]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","List","Types"],{"Ident":"eqList"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Eq"],"Eq1"],"edInstanceName":{"Ident":"eq1List"},"edInstanceTypes":[{"annotation":[{"start":[41,25],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[41,29]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","List","Types"],{"Ident":"eq1List"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Ord"],"Ord"],"edInstanceName":{"Ident":"ordList"},"edInstanceTypes":[{"annotation":[{"start":[49,35],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[49,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,35],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[49,39]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[49,40],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[49,41]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[49,21],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[49,26]},[]],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[{"start":[49,25],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[49,26]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","List","Types"],{"Ident":"ordList"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Ord"],"Ord1"],"edInstanceName":{"Ident":"ord1List"},"edInstanceTypes":[{"annotation":[{"start":[52,27],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[52,31]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","List","Types"],{"Ident":"ord1List"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Semigroup"],"Semigroup"],"edInstanceName":{"Ident":"semigroupList"},"edInstanceTypes":[{"annotation":[{"start":[63,38],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[63,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[63,38],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[63,42]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[63,43],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[63,44]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","List","Types"],{"Ident":"semigroupList"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Monoid"],"Monoid"],"edInstanceName":{"Ident":"monoidList"},"edInstanceTypes":[{"annotation":[{"start":[66,32],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[66,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[66,32],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[66,36]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[66,37],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[66,38]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","List","Types"],{"Ident":"monoidList"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Functor"],"Functor"],"edInstanceName":{"Ident":"functorList"},"edInstanceTypes":[{"annotation":[{"start":[69,33],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[69,37]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","List","Types"],{"Ident":"functorList"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","FunctorWithIndex"],"FunctorWithIndex"],"edInstanceName":{"Ident":"functorWithIndexList"},"edInstanceTypes":[{"annotation":[{"start":[72,51],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[72,54]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]},{"annotation":[{"start":[72,55],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[72,59]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","List","Types"],{"Ident":"functorWithIndexList"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Foldable"],"Foldable"],"edInstanceName":{"Ident":"foldableList"},"edInstanceTypes":[{"annotation":[{"start":[75,35],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[75,39]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","List","Types"],{"Ident":"foldableList"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","FoldableWithIndex"],"FoldableWithIndex"],"edInstanceName":{"Ident":"foldableWithIndexList"},"edInstanceTypes":[{"annotation":[{"start":[86,53],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[86,56]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]},{"annotation":[{"start":[86,57],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[86,61]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","List","Types"],{"Ident":"foldableWithIndexList"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Unfoldable1"],"Unfoldable1"],"edInstanceName":{"Ident":"unfoldable1List"},"edInstanceTypes":[{"annotation":[{"start":[102,41],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[102,45]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","List","Types"],{"Ident":"unfoldable1List"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Unfoldable"],"Unfoldable"],"edInstanceName":{"Ident":"unfoldableList"},"edInstanceTypes":[{"annotation":[{"start":[109,39],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[109,43]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","List","Types"],{"Ident":"unfoldableList"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Traversable"],"Traversable"],"edInstanceName":{"Ident":"traversableList"},"edInstanceTypes":[{"annotation":[{"start":[116,41],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[116,45]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","List","Types"],{"Ident":"traversableList"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","TraversableWithIndex"],"TraversableWithIndex"],"edInstanceName":{"Ident":"traversableWithIndexList"},"edInstanceTypes":[{"annotation":[{"start":[120,59],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[120,62]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]},{"annotation":[{"start":[120,63],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[120,67]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","List","Types"],{"Ident":"traversableWithIndexList"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Apply"],"Apply"],"edInstanceName":{"Ident":"applyList"},"edInstanceTypes":[{"annotation":[{"start":[127,29],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[127,33]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","List","Types"],{"Ident":"applyList"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Applicative"],"Applicative"],"edInstanceName":{"Ident":"applicativeList"},"edInstanceTypes":[{"annotation":[{"start":[131,41],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[131,45]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","List","Types"],{"Ident":"applicativeList"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Bind"],"Bind"],"edInstanceName":{"Ident":"bindList"},"edInstanceTypes":[{"annotation":[{"start":[134,27],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[134,31]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","List","Types"],{"Ident":"bindList"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Monad"],"Monad"],"edInstanceName":{"Ident":"monadList"},"edInstanceTypes":[{"annotation":[{"start":[138,29],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[138,33]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","List","Types"],{"Ident":"monadList"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Alt"],"Alt"],"edInstanceName":{"Ident":"altList"},"edInstanceTypes":[{"annotation":[{"start":[140,25],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[140,29]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","List","Types"],{"Ident":"altList"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Plus"],"Plus"],"edInstanceName":{"Ident":"plusList"},"edInstanceTypes":[{"annotation":[{"start":[143,27],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[143,31]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","List","Types"],{"Ident":"plusList"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Alternative"],"Alternative"],"edInstanceName":{"Ident":"alternativeList"},"edInstanceTypes":[{"annotation":[{"start":[146,41],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[146,45]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","List","Types"],{"Ident":"alternativeList"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","MonadZero"],"MonadZero"],"edInstanceName":{"Ident":"monadZeroList"},"edInstanceTypes":[{"annotation":[{"start":[148,37],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[148,41]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","List","Types"],{"Ident":"monadZeroList"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","MonadPlus"],"MonadPlus"],"edInstanceName":{"Ident":"monadPlusList"},"edInstanceTypes":[{"annotation":[{"start":[150,37],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[150,41]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","List","Types"],{"Ident":"monadPlusList"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Extend"],"Extend"],"edInstanceName":{"Ident":"extendList"},"edInstanceTypes":[{"annotation":[{"start":[152,31],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[152,35]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","List","Types"],{"Ident":"extendList"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Newtype"],"Newtype"],"edInstanceName":{"Ident":"newtypeNonEmptyList"},"edInstanceTypes":[{"annotation":[{"start":[169,49],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[169,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[169,49],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[169,61]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[{"start":[169,62],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[169,63]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[161,40],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[161,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[161,40],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[161,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[161,40],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[161,48]},[]],"tag":"TypeConstructor","contents":[["Data","NonEmpty"],"NonEmpty"]},{"annotation":[{"start":[161,49],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[161,53]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]}]},{"annotation":[{"start":[169,62],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[169,63]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","List","Types"],{"Ident":"newtypeNonEmptyList"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Eq"],"Eq"],"edInstanceName":{"Ident":"eqNonEmptyList"},"edInstanceTypes":[{"annotation":[{"start":[171,55],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[171,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[171,55],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[171,67]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[{"start":[171,68],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[171,69]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[171,43],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[171,47]},[]],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[{"start":[171,46],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[171,47]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","List","Types"],{"Ident":"eqNonEmptyList"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Ord"],"Ord"],"edInstanceName":{"Ident":"ordNonEmptyList"},"edInstanceTypes":[{"annotation":[{"start":[172,58],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[172,72]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[172,58],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[172,70]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[{"start":[172,71],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[172,72]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[172,44],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[172,49]},[]],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[{"start":[172,48],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[172,49]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","List","Types"],{"Ident":"ordNonEmptyList"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Show"],"Show"],"edInstanceName":{"Ident":"showNonEmptyList"},"edInstanceTypes":[{"annotation":[{"start":[174,46],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[174,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[174,46],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[174,58]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[{"start":[174,59],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[174,60]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[174,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[174,36]},[]],"constraintClass":[["Data","Show"],"Show"],"constraintArgs":[{"annotation":[{"start":[174,35],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[174,36]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","List","Types"],{"Ident":"showNonEmptyList"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Functor"],"Functor"],"edInstanceName":{"Ident":"functorNonEmptyList"},"edInstanceTypes":[{"annotation":[{"start":[177,56],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[177,68]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","List","Types"],{"Ident":"functorNonEmptyList"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Apply"],"Apply"],"edInstanceName":{"Ident":"applyNonEmptyList"},"edInstanceTypes":[{"annotation":[{"start":[179,37],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[179,49]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","List","Types"],{"Ident":"applyNonEmptyList"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Applicative"],"Applicative"],"edInstanceName":{"Ident":"applicativeNonEmptyList"},"edInstanceTypes":[{"annotation":[{"start":[183,49],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[183,61]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","List","Types"],{"Ident":"applicativeNonEmptyList"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Bind"],"Bind"],"edInstanceName":{"Ident":"bindNonEmptyList"},"edInstanceTypes":[{"annotation":[{"start":[186,35],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[186,47]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","List","Types"],{"Ident":"bindNonEmptyList"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Monad"],"Monad"],"edInstanceName":{"Ident":"monadNonEmptyList"},"edInstanceTypes":[{"annotation":[{"start":[192,37],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[192,49]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","List","Types"],{"Ident":"monadNonEmptyList"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Alt"],"Alt"],"edInstanceName":{"Ident":"altNonEmptyList"},"edInstanceTypes":[{"annotation":[{"start":[194,33],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[194,45]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","List","Types"],{"Ident":"altNonEmptyList"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Extend"],"Extend"],"edInstanceName":{"Ident":"extendNonEmptyList"},"edInstanceTypes":[{"annotation":[{"start":[197,39],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[197,51]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","List","Types"],{"Ident":"extendNonEmptyList"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Comonad"],"Comonad"],"edInstanceName":{"Ident":"comonadNonEmptyList"},"edInstanceTypes":[{"annotation":[{"start":[203,41],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[203,53]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","List","Types"],{"Ident":"comonadNonEmptyList"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Semigroup"],"Semigroup"],"edInstanceName":{"Ident":"semigroupNonEmptyList"},"edInstanceTypes":[{"annotation":[{"start":[206,46],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[206,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[206,46],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[206,58]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[{"start":[206,59],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[206,60]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","List","Types"],{"Ident":"semigroupNonEmptyList"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Foldable"],"Foldable"],"edInstanceName":{"Ident":"foldableNonEmptyList"},"edInstanceTypes":[{"annotation":[{"start":[210,58],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[210,70]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","List","Types"],{"Ident":"foldableNonEmptyList"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Traversable"],"Traversable"],"edInstanceName":{"Ident":"traversableNonEmptyList"},"edInstanceTypes":[{"annotation":[{"start":[212,64],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[212,76]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","List","Types"],{"Ident":"traversableNonEmptyList"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Semigroup","Foldable"],"Foldable1"],"edInstanceName":{"Ident":"foldable1NonEmptyList"},"edInstanceTypes":[{"annotation":[{"start":[214,60],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[214,72]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","List","Types"],{"Ident":"foldable1NonEmptyList"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Semigroup","Traversable"],"Traversable1"],"edInstanceName":{"Ident":"traversable1NonEmptyList"},"edInstanceTypes":[{"annotation":[{"start":[216,51],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[216,63]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","List","Types"],{"Ident":"traversable1NonEmptyList"}]],"edInstanceChainIndex":0}}],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/Types.purs","end":[220,33]}}
diff --git a/tests/purs/publish/basic-example/output/Data.List.ZipList/docs.json b/tests/purs/publish/basic-example/output/Data.List.ZipList/docs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.List.ZipList/docs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"reExports":[],"name":"Data.List.ZipList","comments":"This module defines the type of _zip lists_, i.e. linked lists\nwith a zippy `Applicative` instance.\n","declarations":[{"children":[{"comments":null,"title":"ZipList","info":{"arguments":[{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}],"declType":"dataConstructor"},"sourceSpan":null},{"comments":null,"title":"showZipList","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Show"],"Show"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Show"],"Show"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","ZipList"],"ZipList"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[23,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/ZipList.purs","end":[24,52]}},{"comments":null,"title":"newtypeZipList","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Newtype"],"Newtype"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","ZipList"],"ZipList"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeWildcard","contents":null}]}},"sourceSpan":{"start":[26,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/ZipList.purs","end":[26,56]}},{"comments":null,"title":"eqZipList","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Eq"],"Eq"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","ZipList"],"ZipList"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[28,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/ZipList.purs","end":[28,60]}},{"comments":null,"title":"ordZipList","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord"],"Ord"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","ZipList"],"ZipList"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[30,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/ZipList.purs","end":[30,63]}},{"comments":null,"title":"semigroupZipList","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup"],"Semigroup"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","ZipList"],"ZipList"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[32,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/ZipList.purs","end":[32,66]}},{"comments":null,"title":"monoidZipList","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid"],"Monoid"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","ZipList"],"ZipList"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[34,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/ZipList.purs","end":[34,60]}},{"comments":null,"title":"foldableZipList","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Foldable"],"Foldable"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","ZipList"],"ZipList"]}]}},"sourceSpan":{"start":[36,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/ZipList.purs","end":[36,60]}},{"comments":null,"title":"traversableZipList","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Traversable"],"Traversable"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","ZipList"],"ZipList"]}]}},"sourceSpan":{"start":[38,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/ZipList.purs","end":[38,66]}},{"comments":null,"title":"functorZipList","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Functor"],"Functor"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","ZipList"],"ZipList"]}]}},"sourceSpan":{"start":[40,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/ZipList.purs","end":[40,58]}},{"comments":null,"title":"applyZipList","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Apply"],"Apply"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","ZipList"],"ZipList"]}]}},"sourceSpan":{"start":[42,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/ZipList.purs","end":[43,64]}},{"comments":null,"title":"applicativeZipList","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Applicative"],"Applicative"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","ZipList"],"ZipList"]}]}},"sourceSpan":{"start":[45,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/ZipList.purs","end":[46,28]}},{"comments":null,"title":"altZipList","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Alt"],"Alt"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","ZipList"],"ZipList"]}]}},"sourceSpan":{"start":[48,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/ZipList.purs","end":[49,15]}},{"comments":null,"title":"plusZipList","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Plus"],"Plus"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","ZipList"],"ZipList"]}]}},"sourceSpan":{"start":[51,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/ZipList.purs","end":[52,17]}},{"comments":null,"title":"alternativeZipList","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Alternative"],"Alternative"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","ZipList"],"ZipList"]}]}},"sourceSpan":{"start":[54,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/ZipList.purs","end":[54,51]}},{"comments":null,"title":"zipListIsNotBind","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Prim","TypeError"],"Fail"],"constraintArgs":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim","TypeError"],"Text"]},{"annotation":[],"tag":"TypeLevelString","contents":"\n    ZipList is not Bind. Any implementation would break the associativity law.\n\n    Possible alternatives:\n        Data.List.List\n        Data.List.Lazy.List\n    "}]}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Bind"],"Bind"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","ZipList"],"ZipList"]}]}},"sourceSpan":{"start":[56,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/ZipList.purs","end":[65,47]}}],"comments":"`ZipList` is a newtype around `List` which provides a zippy\n`Applicative` instance.\n","title":"ZipList","info":{"declType":"data","dataDeclType":"newtype","typeArguments":[["a",null]]},"sourceSpan":{"start":[21,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/ZipList.purs","end":[21,37]}}]}
diff --git a/tests/purs/publish/basic-example/output/Data.List.ZipList/externs.json b/tests/purs/publish/basic-example/output/Data.List.ZipList/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.List.ZipList/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Data","List","ZipList"],"efExports":[{"TypeRef":[{"start":[4,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/ZipList.purs","end":[65,47]},"ZipList",["ZipList"]]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"showZipList"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"newtypeZipList"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"eqZipList"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"ordZipList"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"semigroupZipList"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"monoidZipList"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"foldableZipList"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"traversableZipList"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"functorZipList"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"applyZipList"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"applicativeZipList"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"altZipList"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"plusZipList"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"alternativeZipList"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"zipListIsNotBind"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Prelude"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Prim","TypeError"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[9,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List/ZipList.purs","end":[9,34]},"Fail"]},{"TypeRef":[{"start":[9,36],"name":"../../../support/bower_components/purescript-lists/src/Data/List/ZipList.purs","end":[9,40]},"Text",[]]}]},"eiImportedAs":null},{"eiModule":["Control","Alt"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[10,21],"name":"../../../support/bower_components/purescript-lists/src/Data/List/ZipList.purs","end":[10,30]},"Alt"]}]},"eiImportedAs":null},{"eiModule":["Control","Alternative"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[11,29],"name":"../../../support/bower_components/purescript-lists/src/Data/List/ZipList.purs","end":[11,46]},"Alternative"]}]},"eiImportedAs":null},{"eiModule":["Control","Plus"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[12,22],"name":"../../../support/bower_components/purescript-lists/src/Data/List/ZipList.purs","end":[12,32]},"Plus"]}]},"eiImportedAs":null},{"eiModule":["Data","Foldable"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[13,23],"name":"../../../support/bower_components/purescript-lists/src/Data/List/ZipList.purs","end":[13,37]},"Foldable"]}]},"eiImportedAs":null},{"eiModule":["Data","List","Lazy"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[14,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List/ZipList.purs","end":[14,28]},"List",[]]},{"ValueRef":[{"start":[14,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List/ZipList.purs","end":[14,36]},{"Ident":"repeat"}]},{"ValueRef":[{"start":[14,38],"name":"../../../support/bower_components/purescript-lists/src/Data/List/ZipList.purs","end":[14,45]},{"Ident":"zipWith"}]}]},"eiImportedAs":null},{"eiModule":["Data","Newtype"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[15,22],"name":"../../../support/bower_components/purescript-lists/src/Data/List/ZipList.purs","end":[15,35]},"Newtype"]}]},"eiImportedAs":null},{"eiModule":["Data","Traversable"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[16,26],"name":"../../../support/bower_components/purescript-lists/src/Data/List/ZipList.purs","end":[16,43]},"Traversable"]}]},"eiImportedAs":null},{"eiModule":["Partial","Unsafe"],"eiImportType":{"Explicit":[{"ValueRef":[{"start":[17,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List/ZipList.purs","end":[17,39]},{"Ident":"unsafeCrashWith"}]}]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDType":{"edTypeName":"ZipList","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[21,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List/ZipList.purs","end":[21,34]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},"edTypeDeclarationKind":{"DataType":{"args":[["a",{"annotation":[{"start":[21,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List/ZipList.purs","end":[21,34]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]],"ctors":[["ZipList",[{"annotation":[{"start":[21,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List/ZipList.purs","end":[21,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[21,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List/ZipList.purs","end":[21,34]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[21,35],"name":"../../../support/bower_components/purescript-lists/src/Data/List/ZipList.purs","end":[21,36]},[]],"tag":"TypeVar","contents":"a"}]}]]]}}}},{"EDDataConstructor":{"edDataCtorName":"ZipList","edDataCtorOrigin":"newtype","edDataCtorTypeCtor":"ZipList","edDataCtorType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[21,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List/ZipList.purs","end":[21,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[21,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List/ZipList.purs","end":[21,34]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[21,35],"name":"../../../support/bower_components/purescript-lists/src/Data/List/ZipList.purs","end":[21,36]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","List","ZipList"],"ZipList"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"a"}]}]},null]},"edDataCtorFields":[{"Ident":"value0"}]}},{"EDInstance":{"edInstanceClassName":[["Data","Show"],"Show"],"edInstanceName":{"Ident":"showZipList"},"edInstanceTypes":[{"annotation":[{"start":[23,41],"name":"../../../support/bower_components/purescript-lists/src/Data/List/ZipList.purs","end":[23,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[23,41],"name":"../../../support/bower_components/purescript-lists/src/Data/List/ZipList.purs","end":[23,48]},[]],"tag":"TypeConstructor","contents":[["Data","List","ZipList"],"ZipList"]},{"annotation":[{"start":[23,49],"name":"../../../support/bower_components/purescript-lists/src/Data/List/ZipList.purs","end":[23,50]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[23,25],"name":"../../../support/bower_components/purescript-lists/src/Data/List/ZipList.purs","end":[23,31]},[]],"constraintClass":[["Data","Show"],"Show"],"constraintArgs":[{"annotation":[{"start":[23,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List/ZipList.purs","end":[23,31]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","List","ZipList"],{"Ident":"showZipList"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Newtype"],"Newtype"],"edInstanceName":{"Ident":"newtypeZipList"},"edInstanceTypes":[{"annotation":[{"start":[26,44],"name":"../../../support/bower_components/purescript-lists/src/Data/List/ZipList.purs","end":[26,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[26,44],"name":"../../../support/bower_components/purescript-lists/src/Data/List/ZipList.purs","end":[26,51]},[]],"tag":"TypeConstructor","contents":[["Data","List","ZipList"],"ZipList"]},{"annotation":[{"start":[26,52],"name":"../../../support/bower_components/purescript-lists/src/Data/List/ZipList.purs","end":[26,53]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[21,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List/ZipList.purs","end":[21,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[21,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List/ZipList.purs","end":[21,34]},[]],"tag":"TypeConstructor","contents":[["Data","List","Lazy","Types"],"List"]},{"annotation":[{"start":[26,52],"name":"../../../support/bower_components/purescript-lists/src/Data/List/ZipList.purs","end":[26,53]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","List","ZipList"],{"Ident":"newtypeZipList"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Eq"],"Eq"],"edInstanceName":{"Ident":"eqZipList"},"edInstanceTypes":[{"annotation":[{"start":[28,50],"name":"../../../support/bower_components/purescript-lists/src/Data/List/ZipList.purs","end":[28,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[28,50],"name":"../../../support/bower_components/purescript-lists/src/Data/List/ZipList.purs","end":[28,57]},[]],"tag":"TypeConstructor","contents":[["Data","List","ZipList"],"ZipList"]},{"annotation":[{"start":[28,58],"name":"../../../support/bower_components/purescript-lists/src/Data/List/ZipList.purs","end":[28,59]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[28,38],"name":"../../../support/bower_components/purescript-lists/src/Data/List/ZipList.purs","end":[28,42]},[]],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[{"start":[28,41],"name":"../../../support/bower_components/purescript-lists/src/Data/List/ZipList.purs","end":[28,42]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","List","ZipList"],{"Ident":"eqZipList"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Ord"],"Ord"],"edInstanceName":{"Ident":"ordZipList"},"edInstanceTypes":[{"annotation":[{"start":[30,53],"name":"../../../support/bower_components/purescript-lists/src/Data/List/ZipList.purs","end":[30,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[30,53],"name":"../../../support/bower_components/purescript-lists/src/Data/List/ZipList.purs","end":[30,60]},[]],"tag":"TypeConstructor","contents":[["Data","List","ZipList"],"ZipList"]},{"annotation":[{"start":[30,61],"name":"../../../support/bower_components/purescript-lists/src/Data/List/ZipList.purs","end":[30,62]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[30,39],"name":"../../../support/bower_components/purescript-lists/src/Data/List/ZipList.purs","end":[30,44]},[]],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[{"start":[30,43],"name":"../../../support/bower_components/purescript-lists/src/Data/List/ZipList.purs","end":[30,44]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","List","ZipList"],{"Ident":"ordZipList"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Semigroup"],"Semigroup"],"edInstanceName":{"Ident":"semigroupZipList"},"edInstanceTypes":[{"annotation":[{"start":[32,56],"name":"../../../support/bower_components/purescript-lists/src/Data/List/ZipList.purs","end":[32,65]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[32,56],"name":"../../../support/bower_components/purescript-lists/src/Data/List/ZipList.purs","end":[32,63]},[]],"tag":"TypeConstructor","contents":[["Data","List","ZipList"],"ZipList"]},{"annotation":[{"start":[32,64],"name":"../../../support/bower_components/purescript-lists/src/Data/List/ZipList.purs","end":[32,65]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","List","ZipList"],{"Ident":"semigroupZipList"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Monoid"],"Monoid"],"edInstanceName":{"Ident":"monoidZipList"},"edInstanceTypes":[{"annotation":[{"start":[34,50],"name":"../../../support/bower_components/purescript-lists/src/Data/List/ZipList.purs","end":[34,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[34,50],"name":"../../../support/bower_components/purescript-lists/src/Data/List/ZipList.purs","end":[34,57]},[]],"tag":"TypeConstructor","contents":[["Data","List","ZipList"],"ZipList"]},{"annotation":[{"start":[34,58],"name":"../../../support/bower_components/purescript-lists/src/Data/List/ZipList.purs","end":[34,59]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","List","ZipList"],{"Ident":"monoidZipList"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Foldable"],"Foldable"],"edInstanceName":{"Ident":"foldableZipList"},"edInstanceTypes":[{"annotation":[{"start":[36,53],"name":"../../../support/bower_components/purescript-lists/src/Data/List/ZipList.purs","end":[36,60]},[]],"tag":"TypeConstructor","contents":[["Data","List","ZipList"],"ZipList"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","List","ZipList"],{"Ident":"foldableZipList"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Traversable"],"Traversable"],"edInstanceName":{"Ident":"traversableZipList"},"edInstanceTypes":[{"annotation":[{"start":[38,59],"name":"../../../support/bower_components/purescript-lists/src/Data/List/ZipList.purs","end":[38,66]},[]],"tag":"TypeConstructor","contents":[["Data","List","ZipList"],"ZipList"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","List","ZipList"],{"Ident":"traversableZipList"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Functor"],"Functor"],"edInstanceName":{"Ident":"functorZipList"},"edInstanceTypes":[{"annotation":[{"start":[40,51],"name":"../../../support/bower_components/purescript-lists/src/Data/List/ZipList.purs","end":[40,58]},[]],"tag":"TypeConstructor","contents":[["Data","List","ZipList"],"ZipList"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","List","ZipList"],{"Ident":"functorZipList"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Apply"],"Apply"],"edInstanceName":{"Ident":"applyZipList"},"edInstanceTypes":[{"annotation":[{"start":[42,32],"name":"../../../support/bower_components/purescript-lists/src/Data/List/ZipList.purs","end":[42,39]},[]],"tag":"TypeConstructor","contents":[["Data","List","ZipList"],"ZipList"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","List","ZipList"],{"Ident":"applyZipList"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Applicative"],"Applicative"],"edInstanceName":{"Ident":"applicativeZipList"},"edInstanceTypes":[{"annotation":[{"start":[45,44],"name":"../../../support/bower_components/purescript-lists/src/Data/List/ZipList.purs","end":[45,51]},[]],"tag":"TypeConstructor","contents":[["Data","List","ZipList"],"ZipList"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","List","ZipList"],{"Ident":"applicativeZipList"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Alt"],"Alt"],"edInstanceName":{"Ident":"altZipList"},"edInstanceTypes":[{"annotation":[{"start":[48,28],"name":"../../../support/bower_components/purescript-lists/src/Data/List/ZipList.purs","end":[48,35]},[]],"tag":"TypeConstructor","contents":[["Data","List","ZipList"],"ZipList"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","List","ZipList"],{"Ident":"altZipList"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Plus"],"Plus"],"edInstanceName":{"Ident":"plusZipList"},"edInstanceTypes":[{"annotation":[{"start":[51,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List/ZipList.purs","end":[51,37]},[]],"tag":"TypeConstructor","contents":[["Data","List","ZipList"],"ZipList"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","List","ZipList"],{"Ident":"plusZipList"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Alternative"],"Alternative"],"edInstanceName":{"Ident":"alternativeZipList"},"edInstanceTypes":[{"annotation":[{"start":[54,44],"name":"../../../support/bower_components/purescript-lists/src/Data/List/ZipList.purs","end":[54,51]},[]],"tag":"TypeConstructor","contents":[["Data","List","ZipList"],"ZipList"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","List","ZipList"],{"Ident":"alternativeZipList"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Bind"],"Bind"],"edInstanceName":{"Ident":"zipListIsNotBind"},"edInstanceTypes":[{"annotation":[{"start":[64,11],"name":"../../../support/bower_components/purescript-lists/src/Data/List/ZipList.purs","end":[64,18]},[]],"tag":"TypeConstructor","contents":[["Data","List","ZipList"],"ZipList"]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[57,6],"name":"../../../support/bower_components/purescript-lists/src/Data/List/ZipList.purs","end":[63,9]},[]],"constraintClass":[["Prim","TypeError"],"Fail"],"constraintArgs":[{"annotation":[{"start":[57,12],"name":"../../../support/bower_components/purescript-lists/src/Data/List/ZipList.purs","end":[63,8]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[57,12],"name":"../../../support/bower_components/purescript-lists/src/Data/List/ZipList.purs","end":[57,16]},[]],"tag":"TypeConstructor","contents":[["Prim","TypeError"],"Text"]},{"annotation":[{"start":[57,17],"name":"../../../support/bower_components/purescript-lists/src/Data/List/ZipList.purs","end":[63,8]},[]],"tag":"TypeLevelString","contents":"\n    ZipList is not Bind. Any implementation would break the associativity law.\n\n    Possible alternatives:\n        Data.List.List\n        Data.List.Lazy.List\n    "}]}],"constraintData":null}],"edInstanceChain":[[["Data","List","ZipList"],{"Ident":"zipListIsNotBind"}]],"edInstanceChainIndex":0}}],"efSourceSpan":{"start":[4,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List/ZipList.purs","end":[65,47]}}
diff --git a/tests/purs/publish/basic-example/output/Data.List/docs.json b/tests/purs/publish/basic-example/output/Data.List/docs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.List/docs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"reExports":[],"name":"Data.List","comments":"This module defines a type of _strict_ linked lists, and associated helper\nfunctions and type class instances.\n\n_Note_: Depending on your use-case, you may prefer to use\n`Data.Sequence` instead, which might give better performance for certain\nuse cases. This module is an improvement over `Data.Array` when working with\nimmutable lists of data in a purely-functional setting, but does not have\ngood random-access performance.\n","declarations":[{"children":[],"comments":"Convert a list into any unfoldable structure.\n\nRunning time: `O(n)`\n","title":"toUnfoldable","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Unfoldable"],"Unfoldable"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","NaturalTransformation"],"~>"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"f"}]}]},null]}},"sourceSpan":{"start":[121,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[121,52]}},{"children":[],"comments":"Construct a list from a foldable structure.\n\nRunning time: `O(n)`\n","title":"fromFoldable","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Foldable"],"Foldable"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","NaturalTransformation"],"~>"]},{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]}]}]},null]}},"sourceSpan":{"start":[127,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[127,50]}},{"children":[],"comments":"Create a list with a single element.\n\nRunning time: `O(1)`\n","title":"singleton","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},null]}},"sourceSpan":{"start":[137,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[137,35]}},{"children":[],"comments":"An infix synonym for `range`.\n","title":"(..)","info":{"declType":"alias","alias":[["Data","List"],{"Right":{"Left":{"Ident":"range"}}}],"fixity":{"associativity":"infix","precedence":8}},"sourceSpan":{"start":[141,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[141,20]}},{"children":[],"comments":"Create a list containing a range of integers, including both endpoints.\n","title":"range","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]}]}},"sourceSpan":{"start":[144,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[144,32]}},{"children":[],"comments":"Attempt a computation multiple times, requiring at least one success.\n\nThe `Lazy` constraint is used to generate the result lazily, to ensure\ntermination.\n","title":"some","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Alternative"],"Alternative"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Lazy"],"Lazy"],"constraintArgs":[{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]}}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]}]}]}]},null]},null]}},"sourceSpan":{"start":[155,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[155,76]}},{"children":[],"comments":"A stack-safe version of `some`, at the cost of a `MonadRec` constraint.\n","title":"someRec","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Monad","Rec","Class"],"MonadRec"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Alternative"],"Alternative"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]}]}]}]},null]},null]}},"sourceSpan":{"start":[159,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[159,72]}},{"children":[],"comments":"Attempt a computation multiple times, returning as many successful results\nas possible (possibly zero).\n\nThe `Lazy` constraint is used to generate the result lazily, to ensure\ntermination.\n","title":"many","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Alternative"],"Alternative"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Lazy"],"Lazy"],"constraintArgs":[{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]}}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]}]}]}]},null]},null]}},"sourceSpan":{"start":[167,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[167,76]}},{"children":[],"comments":"A stack-safe version of `many`, at the cost of a `MonadRec` constraint.\n","title":"manyRec","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Monad","Rec","Class"],"MonadRec"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Alternative"],"Alternative"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]}]}]}]},null]},null]}},"sourceSpan":{"start":[171,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[171,72]}},{"children":[],"comments":"Test whether a list is empty.\n\nRunning time: `O(1)`\n","title":"null","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]},null]}},"sourceSpan":{"start":[186,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[186,36]}},{"children":[],"comments":"Get the length of a list\n\nRunning time: `O(n)`\n","title":"length","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},null]}},"sourceSpan":{"start":[193,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[193,34]}},{"children":[],"comments":"Append an element to the end of a list, creating a new list.\n\nRunning time: `O(n)`\n","title":"snoc","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]},null]}},"sourceSpan":{"start":[203,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[203,40]}},{"children":[],"comments":"Insert an element into a sorted list.\n\nRunning time: `O(n)`\n","title":"insert","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]}]},null]}},"sourceSpan":{"start":[209,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[209,51]}},{"children":[],"comments":"Insert an element into a sorted list, using the specified function to\ndetermine the ordering of elements.\n\nRunning time: `O(n)`\n","title":"insertBy","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ordering"],"Ordering"]}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]}]},null]}},"sourceSpan":{"start":[216,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[216,68]}},{"children":[],"comments":"Get the first element in a list, or `Nothing` if the list is empty.\n\nRunning time: `O(1)`.\n","title":"head","info":{"declType":"value","type":{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","NaturalTransformation"],"~>"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]}]}},"sourceSpan":{"start":[230,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[230,22]}},{"children":[],"comments":"Get the last element in a list, or `Nothing` if the list is empty.\n\nRunning time: `O(n)`.\n","title":"last","info":{"declType":"value","type":{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","NaturalTransformation"],"~>"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]}]}},"sourceSpan":{"start":[237,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[237,22]}},{"children":[],"comments":"Get all but the first element of a list, or `Nothing` if the list is empty.\n\nRunning time: `O(1)`\n","title":"tail","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]}]},null]}},"sourceSpan":{"start":[245,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[245,43]}},{"children":[],"comments":"Get all but the last element of a list, or `Nothing` if the list is empty.\n\nRunning time: `O(n)`\n","title":"init","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]}]},null]}},"sourceSpan":{"start":[252,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[252,43]}},{"children":[],"comments":"Break a list into its first element, and the remaining elements,\nor `Nothing` if the list is empty.\n\nRunning time: `O(1)`\n","title":"uncons","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"RCons","contents":["head",{"annotation":[],"tag":"TypeVar","contents":"a"},{"annotation":[],"tag":"RCons","contents":["tail",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"REmpty"}]}]}]}]}]},null]}},"sourceSpan":{"start":[259,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[259,66]}},{"children":[],"comments":"Break a list into its last element, and the preceding elements,\nor `Nothing` if the list is empty.\n\nRunning time: `O(n)`\n","title":"unsnoc","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"RCons","contents":["init",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"RCons","contents":["last",{"annotation":[],"tag":"TypeVar","contents":"a"},{"annotation":[],"tag":"REmpty"}]}]}]}]}]},null]}},"sourceSpan":{"start":[267,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[267,66]}},{"children":[],"comments":"An infix synonym for `index`.\n","title":"(!!)","info":{"declType":"alias","alias":[["Data","List"],{"Right":{"Left":{"Ident":"index"}}}],"fixity":{"associativity":"infixl","precedence":8}},"sourceSpan":{"start":[287,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[287,21]}},{"children":[],"comments":"Get the element at the specified index, or `Nothing` if the index is out-of-bounds.\n\nRunning time: `O(n)` where `n` is the required index.\n","title":"index","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]},null]}},"sourceSpan":{"start":[281,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[281,44]}},{"children":[],"comments":"Find the index of the first element equal to the specified element.\n","title":"elemIndex","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]}]}]},null]}},"sourceSpan":{"start":[290,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[290,56]}},{"children":[],"comments":"Find the index of the last element equal to the specified element.\n","title":"elemLastIndex","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]}]}]},null]}},"sourceSpan":{"start":[294,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[294,60]}},{"children":[],"comments":"Find the first index for which a predicate holds.\n","title":"findIndex","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]}]},null]}},"sourceSpan":{"start":[298,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[298,61]}},{"children":[],"comments":"Find the last index for which a predicate holds.\n","title":"findLastIndex","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]}]},null]}},"sourceSpan":{"start":[307,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[307,65]}},{"children":[],"comments":"Insert an element into a list at the specified index, returning a new\nlist or `Nothing` if the index is out-of-bounds.\n\nRunning time: `O(n)`\n","title":"insertAt","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]}]}]}]},null]}},"sourceSpan":{"start":[314,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[314,59]}},{"children":[],"comments":"Delete an element from a list at the specified index, returning a new\nlist or `Nothing` if the index is out-of-bounds.\n\nRunning time: `O(n)`\n","title":"deleteAt","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]}]}]},null]}},"sourceSpan":{"start":[323,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[323,54]}},{"children":[],"comments":"Update the element at the specified index, returning a new\nlist or `Nothing` if the index is out-of-bounds.\n\nRunning time: `O(n)`\n","title":"updateAt","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]}]}]}]},null]}},"sourceSpan":{"start":[332,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[332,59]}},{"children":[],"comments":"Update the element at the specified index by applying a function to\nthe current value, returning a new list or `Nothing` if the index is\nout-of-bounds.\n\nRunning time: `O(n)`\n","title":"modifyAt","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]}]}]}]},null]}},"sourceSpan":{"start":[342,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[342,66]}},{"children":[],"comments":"Update or delete the element at the specified index by applying a\nfunction to the current value, returning a new list or `Nothing` if the\nindex is out-of-bounds.\n\nRunning time: `O(n)`\n","title":"alterAt","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]}]}]}]},null]}},"sourceSpan":{"start":[350,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[350,71]}},{"children":[],"comments":"Reverse a list.\n\nRunning time: `O(n)`\n","title":"reverse","info":{"declType":"value","type":{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","NaturalTransformation"],"~>"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]}]}},"sourceSpan":{"start":[365,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[365,24]}},{"children":[],"comments":"Flatten a list of lists.\n\nRunning time: `O(n)`, where `n` is the total number of elements.\n","title":"concat","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},null]}},"sourceSpan":{"start":[374,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[374,44]}},{"children":[],"comments":"Apply a function to each element in a list, and flatten the results\ninto a single, new list.\n\nRunning time: `O(n)`, where `n` is the total number of elements.\n","title":"concatMap","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}]},null]},null]}},"sourceSpan":{"start":[381,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[381,59]}},{"children":[],"comments":"Filter a list, keeping the elements which satisfy a predicate function.\n\nRunning time: `O(n)`\n","title":"filter","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]},null]}},"sourceSpan":{"start":[387,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[387,55]}},{"children":[],"comments":"Filter where the predicate returns a monadic `Boolean`.\n\nFor example:\n\n```purescript\npowerSet :: forall a. [a] -> [[a]]\npowerSet = filterM (const [true, false])\n```\n","title":"filterM","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Monad"],"Monad"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]}]}]}]},null]},null]}},"sourceSpan":{"start":[403,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[403,75]}},{"children":[],"comments":"Apply a function to each element in a list, keeping only the results which\ncontain a value.\n\nRunning time: `O(n)`\n","title":"mapMaybe","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}]},null]},null]}},"sourceSpan":{"start":[414,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[414,59]}},{"children":[],"comments":"Filter a list of optional values, keeping only the elements which contain\na value.\n","title":"catMaybes","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},null]}},"sourceSpan":{"start":[425,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[425,48]}},{"children":[],"comments":"Apply a function to each element and its index in a list starting at 0.\n\nDeprecated. Use Data.FunctorWithIndex instead.\n","title":"mapWithIndex","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}]},null]},null]}},"sourceSpan":{"start":[432,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[432,64]}},{"children":[],"comments":"Sort the elements of an list in increasing order.\n","title":"sort","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]},null]}},"sourceSpan":{"start":[440,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[440,44]}},{"children":[],"comments":"Sort the elements of a list in increasing order, where elements are\ncompared using the specified ordering.\n","title":"sortBy","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ordering"],"Ordering"]}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]},null]}},"sourceSpan":{"start":[445,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[445,61]}},{"children":[{"comments":null,"title":"Pattern","info":{"arguments":[{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}],"declType":"dataConstructor"},"sourceSpan":null},{"comments":null,"title":"eqPattern","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Eq"],"Eq"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List"],"Pattern"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[487,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[487,52]}},{"comments":null,"title":"ordPattern","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord"],"Ord"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List"],"Pattern"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[488,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[488,55]}},{"comments":null,"title":"newtypePattern","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Newtype"],"Newtype"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List"],"Pattern"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeWildcard","contents":null}]}},"sourceSpan":{"start":[489,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[489,56]}},{"comments":null,"title":"showPattern","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Show"],"Show"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Show"],"Show"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List"],"Pattern"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[491,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[492,50]}}],"comments":"A newtype used in cases where there is a list to be matched.\n","title":"Pattern","info":{"declType":"data","dataDeclType":"newtype","typeArguments":[["a",null]]},"sourceSpan":{"start":[485,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[485,37]}},{"children":[],"comments":"If the list starts with the given prefix, return the portion of the\nlist left after removing it, as a Just value. Otherwise, return Nothing.\n* `stripPrefix (Pattern (1:Nil)) (1:2:Nil) == Just (2:Nil)`\n* `stripPrefix (Pattern Nil) (1:Nil) == Just (1:Nil)`\n* `stripPrefix (Pattern (2:Nil)) (1:Nil) == Nothing`\n\nRunning time: `O(n)` where `n` is the number of elements to strip.\n","title":"stripPrefix","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List"],"Pattern"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]}]}]}]},null]}},"sourceSpan":{"start":[502,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[502,71]}},{"children":[],"comments":"Extract a sublist by a start and end index.\n","title":"slice","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["Data","NaturalTransformation"],"~>"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]}]}]}]}},"sourceSpan":{"start":[511,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[511,36]}},{"children":[],"comments":"Take the specified number of elements from the front of a list.\n\nRunning time: `O(n)` where `n` is the number of elements to take.\n","title":"take","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]},null]}},"sourceSpan":{"start":[517,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[517,42]}},{"children":[],"comments":"Take the specified number of elements from the end of a list.\n\nRunning time: `O(2n - m)` where `n` is the number of elements in list\nand `m` is number of elements to take.\n","title":"takeEnd","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]},null]}},"sourceSpan":{"start":[528,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[528,45]}},{"children":[],"comments":"Take those elements from the front of a list which match a predicate.\n\nRunning time (worst case): `O(n)`\n","title":"takeWhile","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]},null]}},"sourceSpan":{"start":[534,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[534,58]}},{"children":[],"comments":"Drop the specified number of elements from the front of a list.\n\nRunning time: `O(n)` where `n` is the number of elements to drop.\n","title":"drop","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]},null]}},"sourceSpan":{"start":[543,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[543,42]}},{"children":[],"comments":"Drop the specified number of elements from the end of a list.\n\nRunning time: `O(2n - m)` where `n` is the number of elements in list\nand `m` is number of elements to drop.\n","title":"dropEnd","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]},null]}},"sourceSpan":{"start":[552,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[552,45]}},{"children":[],"comments":"Drop those elements from the front of a list which match a predicate.\n\nRunning time (worst case): `O(n)`\n","title":"dropWhile","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]},null]}},"sourceSpan":{"start":[558,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[558,58]}},{"children":[],"comments":"Split a list into two parts:\n\n1. the longest initial segment for which all elements satisfy the specified predicate\n2. the remaining elements\n\nFor example,\n\n```purescript\nspan (\\n -> n % 2 == 1) (1 : 3 : 2 : 4 : 5 : Nil) == { init: (1 : 3 : Nil), rest: (2 : 4 : 5 : Nil) }\n```\n\nRunning time: `O(n)`\n","title":"span","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"RCons","contents":["init",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"RCons","contents":["rest",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"REmpty"}]}]}]}]}]},null]}},"sourceSpan":{"start":[576,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[576,81]}},{"children":[],"comments":"Group equal, consecutive elements of a list into lists.\n\nFor example,\n\n```purescript\ngroup (1 : 1 : 2 : 2 : 1 : Nil) == (1 : 1 : Nil) : (2 : 2 : Nil) : (1 : Nil) : Nil\n```\n\nRunning time: `O(n)`\n","title":"group","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]}]}]},null]}},"sourceSpan":{"start":[590,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[590,63]}},{"children":[],"comments":"Sort and then group the elements of a list into lists.\n\n```purescript\ngroup' [1,1,2,2,1] == [[1,1,1],[2,2]]\n```\n","title":"group'","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]}]}]},null]}},"sourceSpan":{"start":[598,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[598,65]}},{"children":[],"comments":"Group equal, consecutive elements of a list into lists, using the specified\nequivalence relation to determine equality.\n\nRunning time: `O(n)`\n","title":"groupBy","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]}]}]},null]}},"sourceSpan":{"start":[605,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[605,80]}},{"children":[],"comments":"Returns a lists of elements which do and do not satisfy a predicate.\n\nRunning time: `O(n)`\n","title":"partition","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"RCons","contents":["yes",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"RCons","contents":["no",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"REmpty"}]}]}]}]}]},null]}},"sourceSpan":{"start":[613,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[613,83]}},{"children":[],"comments":"Remove duplicate elements from a list.\n\nRunning time: `O(n^2)`\n","title":"nub","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]},null]}},"sourceSpan":{"start":[637,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[637,42]}},{"children":[],"comments":"Remove duplicate elements from a list, using the specified\nfunction to determine equality of elements.\n\nRunning time: `O(n^2)`\n","title":"nubBy","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]},null]}},"sourceSpan":{"start":[644,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[644,59]}},{"children":[],"comments":"Calculate the union of two lists.\n\nRunning time: `O(n^2)`\n","title":"union","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]}]},null]}},"sourceSpan":{"start":[651,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[651,54]}},{"children":[],"comments":"Calculate the union of two lists, using the specified\nfunction to determine equality of elements.\n\nRunning time: `O(n^2)`\n","title":"unionBy","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]}]},null]}},"sourceSpan":{"start":[658,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[658,71]}},{"children":[],"comments":"Delete the first occurrence of an element from a list.\n\nRunning time: `O(n)`\n","title":"delete","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]}]},null]}},"sourceSpan":{"start":[664,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[664,50]}},{"children":[],"comments":"Delete the first occurrence of an element from a list, using the specified\nfunction to determine equality of elements.\n\nRunning time: `O(n)`\n","title":"deleteBy","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]}]},null]}},"sourceSpan":{"start":[671,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[671,67]}},{"children":[],"comments":null,"title":"(\\\\)","info":{"declType":"alias","alias":[["Data","List"],{"Right":{"Left":{"Ident":"difference"}}}],"fixity":{"associativity":"infix","precedence":5}},"sourceSpan":{"start":[676,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[676,25]}},{"children":[],"comments":"Delete the first occurrence of each element in the second list from the first list.\n\nRunning time: `O(n^2)`\n","title":"difference","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]}]},null]}},"sourceSpan":{"start":[681,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[681,59]}},{"children":[],"comments":"Calculate the intersection of two lists.\n\nRunning time: `O(n^2)`\n","title":"intersect","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]}]},null]}},"sourceSpan":{"start":[687,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[687,58]}},{"children":[],"comments":"Calculate the intersection of two lists, using the specified\nfunction to determine equality of elements.\n\nRunning time: `O(n^2)`\n","title":"intersectBy","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]}]},null]}},"sourceSpan":{"start":[694,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[694,75]}},{"children":[],"comments":"Apply a function to pairs of elements at the same positions in two lists,\ncollecting the results in a new list.\n\nIf one list is longer, elements will be discarded from the longer list.\n\nFor example\n\n```purescript\nzipWith (*) (1 : 2 : 3 : Nil) (4 : 5 : 6 : 7 Nil) == 4 : 10 : 18 : Nil\n```\n\nRunning time: `O(min(m, n))`\n","title":"zipWith","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"c"}]}]}]}]},null]},null]},null]}},"sourceSpan":{"start":[715,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[715,69]}},{"children":[],"comments":"A generalization of `zipWith` which accumulates results in some `Applicative`\nfunctor.\n","title":"zipWithA","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Applicative"],"Applicative"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"c"}]}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"c"}]}}]}]}]}]}]},null]},null]},null]},null]}},"sourceSpan":{"start":[724,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[724,95]}},{"children":[],"comments":"Collect pairs of elements at the same positions in two lists.\n\nRunning time: `O(min(m, n))`\n","title":"zip","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}}]}]}]},null]},null]}},"sourceSpan":{"start":[730,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[730,56]}},{"children":[],"comments":"Transforms a list of pairs into a list of first components and a list of\nsecond components.\n","title":"unzip","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}}]}]},null]},null]}},"sourceSpan":{"start":[735,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[735,65]}},{"children":[],"comments":"The 'transpose' function transposes the rows and columns of its argument.\nFor example,\n\n    transpose ((1:2:3:Nil) : (4:5:6:Nil) : Nil) ==\n      ((1:4:Nil) : (2:5:Nil) : (3:6:Nil) : Nil)\n\nIf some of the rows are shorter than the following rows, their elements are skipped:\n\n    transpose ((10:11:Nil) : (20:Nil) : Nil : (30:31:32:Nil) : Nil) ==\n      ((10:20:30:Nil) : (11:31:Nil) : (32:Nil) : Nil)\n","title":"transpose","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]}]},null]}},"sourceSpan":{"start":[752,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[752,54]}},{"children":[],"comments":"Perform a fold using a monadic step function.\n","title":"foldM","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Monad"],"Monad"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]}]}]},null]},null]},null]}},"sourceSpan":{"start":[763,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[763,72]}}]}
diff --git a/tests/purs/publish/basic-example/output/Data.List/externs.json b/tests/purs/publish/basic-example/output/Data.List/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.List/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Data","List"],"efExports":[{"ReExportRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[765,52]},{"exportSourceImportedFrom":["Data","List","Types"],"exportSourceDefinedIn":["Data","List","Types"]},{"TypeRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[765,52]},"List",["Cons","Nil"]]}]},{"ReExportRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[765,52]},{"exportSourceImportedFrom":["Data","Foldable"],"exportSourceDefinedIn":["Data","Foldable"]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[765,52]},{"Ident":"all"}]}]},{"ReExportRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[765,52]},{"exportSourceImportedFrom":["Data","Foldable"],"exportSourceDefinedIn":["Data","Foldable"]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[765,52]},{"Ident":"any"}]}]},{"ReExportRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[765,52]},{"exportSourceImportedFrom":["Data","Foldable"],"exportSourceDefinedIn":["Data","Foldable"]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[765,52]},{"Ident":"elem"}]}]},{"ReExportRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[765,52]},{"exportSourceImportedFrom":["Data","Foldable"],"exportSourceDefinedIn":["Data","Foldable"]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[765,52]},{"Ident":"find"}]}]},{"ReExportRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[765,52]},{"exportSourceImportedFrom":["Data","Foldable"],"exportSourceDefinedIn":["Data","Foldable"]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[765,52]},{"Ident":"findMap"}]}]},{"ReExportRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[765,52]},{"exportSourceImportedFrom":["Data","Foldable"],"exportSourceDefinedIn":["Data","Foldable"]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[765,52]},{"Ident":"fold"}]}]},{"ReExportRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[765,52]},{"exportSourceImportedFrom":["Data","Foldable"],"exportSourceDefinedIn":["Data","Foldable"]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[765,52]},{"Ident":"foldMap"}]}]},{"ReExportRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[765,52]},{"exportSourceImportedFrom":["Data","Foldable"],"exportSourceDefinedIn":["Data","Foldable"]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[765,52]},{"Ident":"foldl"}]}]},{"ReExportRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[765,52]},{"exportSourceImportedFrom":["Data","Foldable"],"exportSourceDefinedIn":["Data","Foldable"]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[765,52]},{"Ident":"foldr"}]}]},{"ReExportRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[765,52]},{"exportSourceImportedFrom":["Data","Foldable"],"exportSourceDefinedIn":["Data","Foldable"]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[765,52]},{"Ident":"intercalate"}]}]},{"ReExportRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[765,52]},{"exportSourceImportedFrom":["Data","Foldable"],"exportSourceDefinedIn":["Data","Foldable"]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[765,52]},{"Ident":"notElem"}]}]},{"ReExportRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[765,52]},{"exportSourceImportedFrom":["Data","Traversable"],"exportSourceDefinedIn":["Data","Traversable"]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[765,52]},{"Ident":"scanl"}]}]},{"ReExportRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[765,52]},{"exportSourceImportedFrom":["Data","Traversable"],"exportSourceDefinedIn":["Data","Traversable"]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[765,52]},{"Ident":"scanr"}]}]},{"ReExportRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[765,52]},{"exportSourceImportedFrom":["Data","List","Types"],"exportSourceDefinedIn":["Data","List","Types"]},{"ValueOpRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[765,52]},":"]}]},{"ModuleRef":[{"start":[11,5],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[11,27]},["Data","List","Types"]]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[765,52]},{"Ident":"toUnfoldable"}]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[765,52]},{"Ident":"fromFoldable"}]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[765,52]},{"Ident":"singleton"}]},{"ValueOpRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[765,52]},".."]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[765,52]},{"Ident":"range"}]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[765,52]},{"Ident":"some"}]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[765,52]},{"Ident":"someRec"}]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[765,52]},{"Ident":"many"}]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[765,52]},{"Ident":"manyRec"}]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[765,52]},{"Ident":"null"}]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[765,52]},{"Ident":"length"}]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[765,52]},{"Ident":"snoc"}]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[765,52]},{"Ident":"insert"}]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[765,52]},{"Ident":"insertBy"}]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[765,52]},{"Ident":"head"}]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[765,52]},{"Ident":"last"}]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[765,52]},{"Ident":"tail"}]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[765,52]},{"Ident":"init"}]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[765,52]},{"Ident":"uncons"}]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[765,52]},{"Ident":"unsnoc"}]},{"ValueOpRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[765,52]},"!!"]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[765,52]},{"Ident":"index"}]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[765,52]},{"Ident":"elemIndex"}]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[765,52]},{"Ident":"elemLastIndex"}]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[765,52]},{"Ident":"findIndex"}]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[765,52]},{"Ident":"findLastIndex"}]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[765,52]},{"Ident":"insertAt"}]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[765,52]},{"Ident":"deleteAt"}]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[765,52]},{"Ident":"updateAt"}]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[765,52]},{"Ident":"modifyAt"}]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[765,52]},{"Ident":"alterAt"}]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[765,52]},{"Ident":"reverse"}]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[765,52]},{"Ident":"concat"}]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[765,52]},{"Ident":"concatMap"}]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[765,52]},{"Ident":"filter"}]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[765,52]},{"Ident":"filterM"}]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[765,52]},{"Ident":"mapMaybe"}]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[765,52]},{"Ident":"catMaybes"}]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[765,52]},{"Ident":"mapWithIndex"}]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[765,52]},{"Ident":"sort"}]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[765,52]},{"Ident":"sortBy"}]},{"TypeRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[765,52]},"Pattern",["Pattern"]]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[765,52]},{"Ident":"stripPrefix"}]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[765,52]},{"Ident":"slice"}]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[765,52]},{"Ident":"take"}]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[765,52]},{"Ident":"takeEnd"}]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[765,52]},{"Ident":"takeWhile"}]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[765,52]},{"Ident":"drop"}]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[765,52]},{"Ident":"dropEnd"}]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[765,52]},{"Ident":"dropWhile"}]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[765,52]},{"Ident":"span"}]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[765,52]},{"Ident":"group"}]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[765,52]},{"Ident":"group'"}]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[765,52]},{"Ident":"groupBy"}]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[765,52]},{"Ident":"partition"}]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[765,52]},{"Ident":"nub"}]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[765,52]},{"Ident":"nubBy"}]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[765,52]},{"Ident":"union"}]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[765,52]},{"Ident":"unionBy"}]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[765,52]},{"Ident":"delete"}]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[765,52]},{"Ident":"deleteBy"}]},{"ValueOpRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[765,52]},"\\\\"]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[765,52]},{"Ident":"difference"}]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[765,52]},{"Ident":"intersect"}]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[765,52]},{"Ident":"intersectBy"}]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[765,52]},{"Ident":"zipWith"}]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[765,52]},{"Ident":"zipWithA"}]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[765,52]},{"Ident":"zip"}]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[765,52]},{"Ident":"unzip"}]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[765,52]},{"Ident":"transpose"}]},{"ValueRef":[{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[765,52]},{"Ident":"foldM"}]},{"ModuleRef":[{"start":[93,5],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[93,19]},["Exports"]]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"eqPattern"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"ordPattern"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"newtypePattern"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"showPattern"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Prelude"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Control","Alt"],"eiImportType":{"Explicit":[{"ValueOpRef":[{"start":[98,21],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[98,26]},"<|>"]}]},"eiImportedAs":null},{"eiModule":["Control","Alternative"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[99,29],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[99,46]},"Alternative"]}]},"eiImportedAs":null},{"eiModule":["Control","Lazy"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[100,22],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[100,32]},"Lazy"]},{"ValueRef":[{"start":[100,34],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[100,39]},{"Ident":"defer"}]}]},"eiImportedAs":null},{"eiModule":["Control","Monad","Rec","Class"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[101,33],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[101,47]},"MonadRec"]},{"TypeRef":[{"start":[101,49],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[101,57]},"Step",null]},{"ValueRef":[{"start":[101,59],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[101,67]},{"Ident":"tailRecM"}]},{"ValueRef":[{"start":[101,69],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[101,78]},{"Ident":"tailRecM2"}]}]},"eiImportedAs":null},{"eiModule":["Data","Bifunctor"],"eiImportType":{"Explicit":[{"ValueRef":[{"start":[103,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[103,29]},{"Ident":"bimap"}]}]},"eiImportedAs":null},{"eiModule":["Data","Foldable"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[104,23],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[104,37]},"Foldable"]},{"ValueRef":[{"start":[104,39],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[104,44]},{"Ident":"foldr"}]},{"ValueRef":[{"start":[104,46],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[104,49]},{"Ident":"any"}]},{"ValueRef":[{"start":[104,51],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[104,56]},{"Ident":"foldl"}]}]},"eiImportedAs":null},{"eiModule":["Data","FunctorWithIndex"],"eiImportType":{"Explicit":[{"ValueRef":[{"start":[105,31],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[105,43]},{"Ident":"mapWithIndex"}]}]},"eiImportedAs":["FWI"]},{"eiModule":["Data","List","Types"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[106,25],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[106,33]},"List",null]},{"ValueOpRef":[{"start":[106,35],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[106,38]},":"]}]},"eiImportedAs":null},{"eiModule":["Data","List","Types"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[107,25],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[107,41]},"NonEmptyList",null]}]},"eiImportedAs":["NEL"]},{"eiModule":["Data","Maybe"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[108,20],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[108,29]},"Maybe",null]}]},"eiImportedAs":null},{"eiModule":["Data","Newtype"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[109,22],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[109,35]},"Newtype"]}]},"eiImportedAs":null},{"eiModule":["Data","NonEmpty"],"eiImportType":{"Explicit":[{"ValueOpRef":[{"start":[110,23],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[110,27]},":|"]}]},"eiImportedAs":null},{"eiModule":["Data","Traversable"],"eiImportType":{"Explicit":[{"ValueRef":[{"start":[111,26],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[111,34]},{"Ident":"sequence"}]}]},"eiImportedAs":null},{"eiModule":["Data","Tuple"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[112,20],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[112,29]},"Tuple",null]}]},"eiImportedAs":null},{"eiModule":["Data","Unfoldable"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[113,25],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[113,41]},"Unfoldable"]},{"ValueRef":[{"start":[113,43],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[113,50]},{"Ident":"unfoldr"}]}]},"eiImportedAs":null},{"eiModule":["Data","Foldable"],"eiImportType":{"Explicit":[{"ValueRef":[{"start":[115,23],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[115,28]},{"Ident":"foldl"}]},{"ValueRef":[{"start":[115,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[115,35]},{"Ident":"foldr"}]},{"ValueRef":[{"start":[115,37],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[115,44]},{"Ident":"foldMap"}]},{"ValueRef":[{"start":[115,46],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[115,50]},{"Ident":"fold"}]},{"ValueRef":[{"start":[115,52],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[115,63]},{"Ident":"intercalate"}]},{"ValueRef":[{"start":[115,65],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[115,69]},{"Ident":"elem"}]},{"ValueRef":[{"start":[115,71],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[115,78]},{"Ident":"notElem"}]},{"ValueRef":[{"start":[115,80],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[115,84]},{"Ident":"find"}]},{"ValueRef":[{"start":[115,86],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[115,93]},{"Ident":"findMap"}]},{"ValueRef":[{"start":[115,95],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[115,98]},{"Ident":"any"}]},{"ValueRef":[{"start":[115,100],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[115,103]},{"Ident":"all"}]}]},"eiImportedAs":["Exports"]},{"eiModule":["Data","Traversable"],"eiImportType":{"Explicit":[{"ValueRef":[{"start":[116,26],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[116,31]},{"Ident":"scanl"}]},{"ValueRef":[{"start":[116,33],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[116,38]},{"Ident":"scanr"}]}]},"eiImportedAs":["Exports"]}],"efFixities":[{"efAssociativity":"infix","efPrecedence":8,"efOperator":"..","efAlias":[["Data","List"],{"Left":{"Ident":"range"}}]},{"efAssociativity":"infixl","efPrecedence":8,"efOperator":"!!","efAlias":[["Data","List"],{"Left":{"Ident":"index"}}]},{"efAssociativity":"infix","efPrecedence":5,"efOperator":"\\\\","efAlias":[["Data","List"],{"Left":{"Ident":"difference"}}]}],"efTypeFixities":[],"efDeclarations":[{"EDValue":{"edValueName":{"Ident":"toUnfoldable"},"edValueType":{"annotation":[{"start":[121,17],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[121,52]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[121,27],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[121,52]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[121,27],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[121,39]},[]],"constraintClass":[["Data","Unfoldable"],"Unfoldable"],"constraintArgs":[{"annotation":[{"start":[121,38],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[121,39]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[17,34],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,54]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[17,44],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[17,44],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[17,48],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,50]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[17,44],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[121,43],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[121,47]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[17,46],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,47]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[17,51],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[121,51],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[121,52]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[17,53],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,54]},[]],"tag":"TypeVar","contents":"a"}]}]},11]}]},12]}}},{"EDValue":{"edValueName":{"Ident":"fromFoldable"},"edValueType":{"annotation":[{"start":[127,17],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[127,50]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[127,27],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[127,50]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[127,27],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[127,37]},[]],"constraintClass":[["Data","Foldable"],"Foldable"],"constraintArgs":[{"annotation":[{"start":[127,36],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[127,37]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[17,34],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,54]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[17,44],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[17,44],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[17,48],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,50]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[17,44],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[127,41],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[127,42]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[17,46],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,47]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[17,51],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[127,46],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[127,50]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[17,53],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,54]},[]],"tag":"TypeVar","contents":"a"}]}]},158]}]},159]}}},{"EDValue":{"edValueName":{"Ident":"singleton"},"edValueType":{"annotation":[{"start":[137,14],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[137,35]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[137,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[137,35]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[137,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[137,35]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[137,26],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[137,28]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[137,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[137,25]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[137,29],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[137,35]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[137,29],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[137,33]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[137,34],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[137,35]},[]],"tag":"TypeVar","contents":"a"}]}]},30]}}},{"EDValue":{"edValueName":{"Ident":"range"},"edValueType":{"annotation":[{"start":[144,10],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[144,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[144,10],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[144,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[144,14],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[144,16]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[144,10],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[144,13]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[144,17],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[144,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[144,17],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[144,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[144,21],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[144,23]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[144,17],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[144,20]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[144,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[144,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[144,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[144,28]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[144,29],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[144,32]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]}]}}},{"EDValue":{"edValueName":{"Ident":"some"},"edValueType":{"annotation":[{"start":[155,9],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[155,76]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[155,16],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[155,76]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[155,21],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[155,76]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[155,21],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[155,34]},[]],"constraintClass":[["Control","Alternative"],"Alternative"],"constraintArgs":[{"annotation":[{"start":[155,33],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[155,34]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[155,38],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[155,76]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[155,38],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[155,55]},[]],"constraintClass":[["Control","Lazy"],"Lazy"],"constraintArgs":[{"annotation":[{"start":[155,44],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[155,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[155,44],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[155,45]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[155,47],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[155,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[155,47],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[155,51]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[155,52],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[155,53]},[]],"tag":"TypeVar","contents":"a"}]}]}],"constraintData":null},{"annotation":[{"start":[155,59],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[155,76]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[155,59],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[155,76]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[155,63],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[155,65]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[155,59],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[155,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[155,59],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[155,60]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[155,61],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[155,62]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[155,66],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[155,76]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[155,66],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[155,67]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[155,69],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[155,75]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[155,69],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[155,73]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[155,74],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[155,75]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]}]},108]},109]}}},{"EDValue":{"edValueName":{"Ident":"someRec"},"edValueType":{"annotation":[{"start":[159,12],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[159,72]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[159,19],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[159,72]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[159,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[159,72]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[159,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[159,34]},[]],"constraintClass":[["Control","Monad","Rec","Class"],"MonadRec"],"constraintArgs":[{"annotation":[{"start":[159,33],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[159,34]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[159,38],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[159,72]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[159,38],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[159,51]},[]],"constraintClass":[["Control","Alternative"],"Alternative"],"constraintArgs":[{"annotation":[{"start":[159,50],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[159,51]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[159,55],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[159,72]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[159,55],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[159,72]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[159,59],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[159,61]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[159,55],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[159,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[159,55],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[159,56]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[159,57],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[159,58]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[159,62],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[159,72]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[159,62],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[159,63]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[159,65],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[159,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[159,65],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[159,69]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[159,70],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[159,71]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]}]},103]},104]}}},{"EDValue":{"edValueName":{"Ident":"many"},"edValueType":{"annotation":[{"start":[167,9],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[167,76]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[167,16],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[167,76]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[167,21],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[167,76]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[167,21],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[167,34]},[]],"constraintClass":[["Control","Alternative"],"Alternative"],"constraintArgs":[{"annotation":[{"start":[167,33],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[167,34]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[167,38],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[167,76]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[167,38],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[167,55]},[]],"constraintClass":[["Control","Lazy"],"Lazy"],"constraintArgs":[{"annotation":[{"start":[167,44],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[167,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[167,44],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[167,45]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[167,47],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[167,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[167,47],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[167,51]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[167,52],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[167,53]},[]],"tag":"TypeVar","contents":"a"}]}]}],"constraintData":null},{"annotation":[{"start":[167,59],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[167,76]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[167,59],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[167,76]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[167,63],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[167,65]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[167,59],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[167,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[167,59],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[167,60]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[167,61],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[167,62]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[167,66],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[167,76]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[167,66],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[167,67]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[167,69],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[167,75]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[167,69],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[167,73]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[167,74],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[167,75]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]}]},115]},116]}}},{"EDValue":{"edValueName":{"Ident":"manyRec"},"edValueType":{"annotation":[{"start":[171,12],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[171,72]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[171,19],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[171,72]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[171,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[171,72]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[171,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[171,34]},[]],"constraintClass":[["Control","Monad","Rec","Class"],"MonadRec"],"constraintArgs":[{"annotation":[{"start":[171,33],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[171,34]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[171,38],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[171,72]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[171,38],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[171,51]},[]],"constraintClass":[["Control","Alternative"],"Alternative"],"constraintArgs":[{"annotation":[{"start":[171,50],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[171,51]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[171,55],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[171,72]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[171,55],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[171,72]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[171,59],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[171,61]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[171,55],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[171,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[171,55],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[171,56]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[171,57],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[171,58]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[171,62],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[171,72]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[171,62],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[171,63]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[171,65],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[171,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[171,65],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[171,69]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[171,70],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[171,71]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]}]},96]},97]}}},{"EDValue":{"edValueName":{"Ident":"null"},"edValueType":{"annotation":[{"start":[186,9],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[186,36]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[186,19],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[186,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[186,19],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[186,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[186,26],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[186,28]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[186,19],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[186,25]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[186,19],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[186,23]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[186,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[186,25]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[186,29],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[186,36]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]},82]}}},{"EDValue":{"edValueName":{"Ident":"length"},"edValueType":{"annotation":[{"start":[193,11],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[193,34]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[193,21],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[193,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[193,21],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[193,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[193,28],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[193,30]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[193,21],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[193,27]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[193,21],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[193,25]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[193,26],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[193,27]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[193,31],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[193,34]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},121]}}},{"EDValue":{"edValueName":{"Ident":"snoc"},"edValueType":{"annotation":[{"start":[203,9],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[203,40]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[203,19],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[203,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[203,19],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[203,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[203,26],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[203,28]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[203,19],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[203,25]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[203,19],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[203,23]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[203,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[203,25]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[203,29],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[203,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[203,29],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[203,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[203,31],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[203,33]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[203,29],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[203,30]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[203,34],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[203,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[203,34],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[203,38]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[203,39],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[203,40]},[]],"tag":"TypeVar","contents":"a"}]}]}]},26]}}},{"EDValue":{"edValueName":{"Ident":"insert"},"edValueType":{"annotation":[{"start":[209,11],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[209,51]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[209,21],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[209,51]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[209,21],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[209,26]},[]],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[{"start":[209,25],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[209,26]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[209,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[209,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[209,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[209,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[209,32],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[209,34]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[209,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[209,31]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[209,35],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[209,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[209,35],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[209,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[209,42],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[209,44]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[209,35],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[209,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[209,35],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[209,39]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[209,40],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[209,41]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[209,45],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[209,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[209,45],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[209,49]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[209,50],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[209,51]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]},134]}}},{"EDValue":{"edValueName":{"Ident":"insertBy"},"edValueType":{"annotation":[{"start":[216,13],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[216,68]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[216,23],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[216,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[216,23],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[216,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[216,44],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[216,46]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[216,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[216,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[216,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[216,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[216,26],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[216,28]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[216,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[216,25]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[216,29],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[216,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[216,29],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[216,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[216,31],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[216,33]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[216,29],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[216,30]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[216,34],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[216,42]},[]],"tag":"TypeConstructor","contents":[["Data","Ordering"],"Ordering"]}]}]}]},{"annotation":[{"start":[216,47],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[216,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[216,47],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[216,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[216,49],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[216,51]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[216,47],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[216,48]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[216,52],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[216,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[216,52],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[216,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[216,59],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[216,61]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[216,52],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[216,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[216,52],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[216,56]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[216,57],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[216,58]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[216,62],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[216,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[216,62],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[216,66]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[216,67],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[216,68]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]},127]}}},{"EDValue":{"edValueName":{"Ident":"head"},"edValueType":{"annotation":[{"start":[17,34],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,54]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[17,44],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[17,44],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[17,48],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,50]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[17,44],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[230,9],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[230,13]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[17,46],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,47]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[17,51],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[230,17],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[230,22]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[17,53],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,54]},[]],"tag":"TypeVar","contents":"a"}]}]},142]}}},{"EDValue":{"edValueName":{"Ident":"last"},"edValueType":{"annotation":[{"start":[17,34],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,54]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[17,44],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[17,44],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[17,48],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,50]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[17,44],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[237,9],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[237,13]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[17,46],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,47]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[17,51],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[237,17],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[237,22]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[17,53],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,54]},[]],"tag":"TypeVar","contents":"a"}]}]},123]}}},{"EDValue":{"edValueName":{"Ident":"tail"},"edValueType":{"annotation":[{"start":[245,9],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[245,43]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[245,19],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[245,43]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[245,19],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[245,43]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[245,26],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[245,28]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[245,19],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[245,25]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[245,19],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[245,23]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[245,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[245,25]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[245,29],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[245,43]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[245,29],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[245,34]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[245,36],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[245,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[245,36],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[245,40]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[245,41],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[245,42]},[]],"tag":"TypeVar","contents":"a"}]}]}]},15]}}},{"EDValue":{"edValueName":{"Ident":"init"},"edValueType":{"annotation":[{"start":[252,9],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[252,43]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[252,19],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[252,43]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[252,19],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[252,43]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[252,26],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[252,28]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[252,19],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[252,25]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[252,19],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[252,23]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[252,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[252,25]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[252,29],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[252,43]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[252,29],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[252,34]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[252,36],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[252,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[252,36],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[252,40]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[252,41],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[252,42]},[]],"tag":"TypeVar","contents":"a"}]}]}]},136]}}},{"EDValue":{"edValueName":{"Ident":"uncons"},"edValueType":{"annotation":[{"start":[259,11],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[259,66]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[259,21],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[259,66]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[259,21],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[259,66]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[259,28],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[259,30]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[259,21],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[259,27]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[259,21],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[259,25]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[259,26],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[259,27]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[259,31],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[259,66]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[259,31],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[259,36]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[259,37],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[259,66]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[259,37],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[259,38]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[259,39],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[259,48]},[]],"tag":"RCons","contents":["head",{"annotation":[{"start":[259,47],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[259,48]},[]],"tag":"TypeVar","contents":"a"},{"annotation":[{"start":[259,50],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[259,64]},[]],"tag":"RCons","contents":["tail",{"annotation":[{"start":[259,58],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[259,64]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[259,58],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[259,62]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[259,63],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[259,64]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[259,65],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[259,66]},[]],"tag":"REmpty"}]}]}]}]}]},8]}}},{"EDValue":{"edValueName":{"Ident":"unsnoc"},"edValueType":{"annotation":[{"start":[267,11],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[267,66]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[267,21],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[267,66]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[267,21],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[267,66]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[267,28],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[267,30]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[267,21],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[267,27]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[267,21],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[267,25]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[267,26],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[267,27]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[267,31],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[267,66]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[267,31],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[267,36]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[267,37],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[267,66]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[267,37],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[267,38]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[267,39],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[267,53]},[]],"tag":"RCons","contents":["init",{"annotation":[{"start":[267,47],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[267,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[267,47],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[267,51]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[267,52],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[267,53]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[267,55],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[267,64]},[]],"tag":"RCons","contents":["last",{"annotation":[{"start":[267,63],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[267,64]},[]],"tag":"TypeVar","contents":"a"},{"annotation":[{"start":[267,65],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[267,66]},[]],"tag":"REmpty"}]}]}]}]}]},51]}}},{"EDValue":{"edValueName":{"Ident":"index"},"edValueType":{"annotation":[{"start":[281,10],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[281,44]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[281,20],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[281,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[281,20],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[281,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[281,27],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[281,29]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[281,20],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[281,26]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[281,20],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[281,24]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[281,25],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[281,26]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[281,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[281,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[281,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[281,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[281,34],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[281,36]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[281,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[281,33]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[281,37],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[281,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[281,37],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[281,42]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[281,43],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[281,44]},[]],"tag":"TypeVar","contents":"a"}]}]}]},138]}}},{"EDValue":{"edValueName":{"Ident":"elemIndex"},"edValueType":{"annotation":[{"start":[290,14],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[290,56]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[290,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[290,56]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[290,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[290,28]},[]],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[{"start":[290,27],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[290,28]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[290,32],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[290,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[290,32],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[290,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[290,34],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[290,36]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[290,32],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[290,33]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[290,37],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[290,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[290,37],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[290,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[290,44],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[290,46]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[290,37],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[290,43]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[290,37],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[290,41]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[290,42],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[290,43]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[290,47],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[290,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[290,47],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[290,52]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[290,53],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[290,56]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]}]}]},203]}}},{"EDValue":{"edValueName":{"Ident":"elemLastIndex"},"edValueType":{"annotation":[{"start":[294,18],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[294,60]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[294,28],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[294,60]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[294,28],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[294,32]},[]],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[{"start":[294,31],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[294,32]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[294,36],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[294,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[294,36],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[294,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[294,38],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[294,40]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[294,36],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[294,37]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[294,41],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[294,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[294,41],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[294,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[294,48],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[294,50]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[294,41],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[294,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[294,41],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[294,45]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[294,46],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[294,47]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[294,51],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[294,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[294,51],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[294,56]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[294,57],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[294,60]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]}]}]},201]}}},{"EDValue":{"edValueName":{"Ident":"findIndex"},"edValueType":{"annotation":[{"start":[298,14],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[298,61]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[298,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[298,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[298,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[298,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[298,39],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[298,41]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[298,25],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[298,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[298,25],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[298,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[298,27],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[298,29]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[298,25],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[298,26]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[298,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[298,37]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]},{"annotation":[{"start":[298,42],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[298,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[298,42],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[298,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[298,49],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[298,51]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[298,42],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[298,48]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[298,42],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[298,46]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[298,47],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[298,48]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[298,52],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[298,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[298,52],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[298,57]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[298,58],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[298,61]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]}]},173]}}},{"EDValue":{"edValueName":{"Ident":"findLastIndex"},"edValueType":{"annotation":[{"start":[307,18],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[307,65]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[307,28],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[307,65]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[307,28],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[307,65]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[307,43],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[307,45]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[307,29],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[307,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[307,29],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[307,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[307,31],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[307,33]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[307,29],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[307,30]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[307,34],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[307,41]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]},{"annotation":[{"start":[307,46],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[307,65]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[307,46],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[307,65]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[307,53],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[307,55]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[307,46],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[307,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[307,46],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[307,50]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[307,51],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[307,52]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[307,56],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[307,65]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[307,56],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[307,61]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[307,62],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[307,65]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]}]},176]}}},{"EDValue":{"edValueName":{"Ident":"insertAt"},"edValueType":{"annotation":[{"start":[314,13],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[314,59]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[314,23],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[314,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[314,23],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[314,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[314,27],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[314,29]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[314,23],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[314,26]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[314,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[314,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[314,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[314,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[314,32],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[314,34]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[314,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[314,31]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[314,35],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[314,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[314,35],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[314,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[314,42],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[314,44]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[314,35],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[314,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[314,35],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[314,39]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[314,40],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[314,41]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[314,45],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[314,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[314,45],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[314,50]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[314,52],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[314,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[314,52],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[314,56]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[314,57],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[314,58]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]}]},130]}}},{"EDValue":{"edValueName":{"Ident":"deleteAt"},"edValueType":{"annotation":[{"start":[323,13],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[323,54]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[323,23],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[323,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[323,23],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[323,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[323,27],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[323,29]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[323,23],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[323,26]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[323,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[323,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[323,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[323,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[323,37],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[323,39]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[323,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[323,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[323,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[323,34]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[323,35],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[323,36]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[323,40],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[323,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[323,40],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[323,45]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[323,47],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[323,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[323,47],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[323,51]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[323,52],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[323,53]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]},225]}}},{"EDValue":{"edValueName":{"Ident":"updateAt"},"edValueType":{"annotation":[{"start":[332,13],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[332,59]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[332,23],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[332,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[332,23],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[332,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[332,27],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[332,29]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[332,23],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[332,26]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[332,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[332,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[332,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[332,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[332,32],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[332,34]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[332,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[332,31]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[332,35],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[332,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[332,35],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[332,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[332,42],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[332,44]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[332,35],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[332,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[332,35],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[332,39]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[332,40],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[332,41]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[332,45],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[332,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[332,45],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[332,50]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[332,52],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[332,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[332,52],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[332,56]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[332,57],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[332,58]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]}]},0]}}},{"EDValue":{"edValueName":{"Ident":"modifyAt"},"edValueType":{"annotation":[{"start":[342,13],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[342,66]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[342,23],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[342,66]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[342,23],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[342,66]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[342,27],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[342,29]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[342,23],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[342,26]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[342,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[342,66]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[342,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[342,66]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[342,39],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[342,41]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[342,31],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[342,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[342,31],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[342,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[342,33],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[342,35]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[342,31],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[342,32]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[342,36],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[342,37]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[342,42],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[342,66]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[342,42],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[342,66]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[342,49],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[342,51]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[342,42],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[342,48]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[342,42],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[342,46]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[342,47],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[342,48]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[342,52],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[342,66]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[342,52],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[342,57]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[342,59],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[342,65]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[342,59],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[342,63]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[342,64],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[342,65]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]}]},246]}}},{"EDValue":{"edValueName":{"Ident":"alterAt"},"edValueType":{"annotation":[{"start":[350,12],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[350,71]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[350,22],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[350,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[350,22],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[350,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[350,26],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[350,28]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[350,22],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[350,25]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[350,29],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[350,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[350,29],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[350,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[350,44],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[350,46]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[350,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[350,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[350,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[350,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[350,32],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[350,34]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[350,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[350,31]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[350,35],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[350,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[350,35],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[350,40]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[350,41],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[350,42]},[]],"tag":"TypeVar","contents":"a"}]}]}]},{"annotation":[{"start":[350,47],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[350,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[350,47],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[350,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[350,54],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[350,56]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[350,47],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[350,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[350,47],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[350,51]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[350,52],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[350,53]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[350,57],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[350,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[350,57],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[350,62]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[350,64],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[350,70]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[350,64],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[350,68]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[350,69],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[350,70]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]}]},241]}}},{"EDValue":{"edValueName":{"Ident":"reverse"},"edValueType":{"annotation":[{"start":[17,34],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,54]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[17,44],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[17,44],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[17,48],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,50]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[17,44],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[365,12],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[365,16]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[17,46],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,47]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[17,51],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[365,20],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[365,24]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[17,53],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,54]},[]],"tag":"TypeVar","contents":"a"}]}]},42]}}},{"EDValue":{"edValueName":{"Ident":"concat"},"edValueType":{"annotation":[{"start":[374,11],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[374,44]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[374,21],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[374,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[374,21],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[374,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[374,35],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[374,37]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[374,21],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[374,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[374,21],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[374,25]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[374,27],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[374,33]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[374,27],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[374,31]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[374,32],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[374,33]},[]],"tag":"TypeVar","contents":"a"}]}]}]},{"annotation":[{"start":[374,38],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[374,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[374,38],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[374,42]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[374,43],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[374,44]},[]],"tag":"TypeVar","contents":"a"}]}]},237]}}},{"EDValue":{"edValueName":{"Ident":"concatMap"},"edValueType":{"annotation":[{"start":[381,14],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[381,59]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[381,21],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[381,59]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[381,26],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[381,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[381,26],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[381,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[381,40],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[381,42]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[381,27],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[381,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[381,27],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[381,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[381,29],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[381,31]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[381,27],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[381,28]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[381,32],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[381,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[381,32],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[381,36]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[381,37],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[381,38]},[]],"tag":"TypeVar","contents":"b"}]}]}]},{"annotation":[{"start":[381,43],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[381,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[381,43],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[381,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[381,50],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[381,52]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[381,43],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[381,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[381,43],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[381,47]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[381,48],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[381,49]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[381,53],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[381,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[381,53],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[381,57]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[381,58],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[381,59]},[]],"tag":"TypeVar","contents":"b"}]}]}]},233]},234]}}},{"EDValue":{"edValueName":{"Ident":"filter"},"edValueType":{"annotation":[{"start":[387,11],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[387,55]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[387,21],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[387,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[387,21],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[387,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[387,36],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[387,38]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[387,22],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[387,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[387,22],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[387,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[387,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[387,26]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[387,22],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[387,23]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[387,27],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[387,34]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]},{"annotation":[{"start":[387,39],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[387,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[387,39],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[387,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[387,46],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[387,48]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[387,39],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[387,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[387,39],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[387,43]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[387,44],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[387,45]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[387,49],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[387,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[387,49],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[387,53]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[387,54],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[387,55]},[]],"tag":"TypeVar","contents":"a"}]}]}]},184]}}},{"EDValue":{"edValueName":{"Ident":"filterM"},"edValueType":{"annotation":[{"start":[403,12],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[403,75]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[403,19],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[403,75]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[403,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[403,75]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[403,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[403,31]},[]],"constraintClass":[["Control","Monad"],"Monad"],"constraintArgs":[{"annotation":[{"start":[403,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[403,31]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[403,35],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[403,75]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[403,35],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[403,75]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[403,52],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[403,54]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[403,36],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[403,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[403,36],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[403,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[403,38],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[403,40]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[403,36],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[403,37]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[403,41],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[403,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[403,41],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[403,42]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[403,43],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[403,50]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]}]},{"annotation":[{"start":[403,55],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[403,75]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[403,55],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[403,75]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[403,62],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[403,64]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[403,55],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[403,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[403,55],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[403,59]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[403,60],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[403,61]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[403,65],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[403,75]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[403,65],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[403,66]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[403,68],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[403,74]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[403,68],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[403,72]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[403,73],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[403,74]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]}]},178]},179]}}},{"EDValue":{"edValueName":{"Ident":"mapMaybe"},"edValueType":{"annotation":[{"start":[414,13],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[414,59]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[414,20],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[414,59]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[414,25],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[414,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[414,25],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[414,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[414,40],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[414,42]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[414,26],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[414,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[414,26],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[414,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[414,28],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[414,30]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[414,26],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[414,27]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[414,31],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[414,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[414,31],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[414,36]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[414,37],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[414,38]},[]],"tag":"TypeVar","contents":"b"}]}]}]},{"annotation":[{"start":[414,43],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[414,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[414,43],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[414,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[414,50],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[414,52]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[414,43],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[414,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[414,43],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[414,47]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[414,48],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[414,49]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[414,53],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[414,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[414,53],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[414,57]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[414,58],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[414,59]},[]],"tag":"TypeVar","contents":"b"}]}]}]},91]},92]}}},{"EDValue":{"edValueName":{"Ident":"catMaybes"},"edValueType":{"annotation":[{"start":[425,14],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[425,48]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[425,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[425,48]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[425,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[425,48]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[425,39],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[425,41]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[425,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[425,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[425,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[425,28]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[425,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[425,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[425,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[425,35]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[425,36],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[425,37]},[]],"tag":"TypeVar","contents":"a"}]}]}]},{"annotation":[{"start":[425,42],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[425,48]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[425,42],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[425,46]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[425,47],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[425,48]},[]],"tag":"TypeVar","contents":"a"}]}]},239]}}},{"EDValue":{"edValueName":{"Ident":"mapWithIndex"},"edValueType":{"annotation":[{"start":[432,17],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[432,64]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[432,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[432,64]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[432,29],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[432,64]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[432,29],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[432,64]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[432,45],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[432,47]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[432,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[432,43]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[432,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[432,43]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[432,34],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[432,36]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[432,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[432,33]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[432,37],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[432,43]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[432,37],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[432,43]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[432,39],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[432,41]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[432,37],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[432,38]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[432,42],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[432,43]},[]],"tag":"TypeVar","contents":"b"}]}]}]},{"annotation":[{"start":[432,48],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[432,64]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[432,48],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[432,64]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[432,55],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[432,57]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[432,48],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[432,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[432,48],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[432,52]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[432,53],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[432,54]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[432,58],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[432,64]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[432,58],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[432,62]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[432,63],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[432,64]},[]],"tag":"TypeVar","contents":"b"}]}]}]},87]},88]}}},{"EDValue":{"edValueName":{"Ident":"sort"},"edValueType":{"annotation":[{"start":[440,9],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[440,44]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[440,19],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[440,44]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[440,19],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[440,24]},[]],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[{"start":[440,23],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[440,24]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[440,28],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[440,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[440,28],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[440,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[440,35],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[440,37]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[440,28],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[440,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[440,28],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[440,32]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[440,33],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[440,34]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[440,38],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[440,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[440,38],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[440,42]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[440,43],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[440,44]},[]],"tag":"TypeVar","contents":"a"}]}]}]},35]}}},{"EDValue":{"edValueName":{"Ident":"sortBy"},"edValueType":{"annotation":[{"start":[445,11],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[445,61]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[445,21],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[445,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[445,21],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[445,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[445,42],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[445,44]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[445,22],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[445,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[445,22],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[445,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[445,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[445,26]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[445,22],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[445,23]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[445,27],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[445,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[445,27],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[445,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[445,29],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[445,31]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[445,27],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[445,28]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[445,32],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[445,40]},[]],"tag":"TypeConstructor","contents":[["Data","Ordering"],"Ordering"]}]}]}]},{"annotation":[{"start":[445,45],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[445,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[445,45],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[445,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[445,52],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[445,54]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[445,45],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[445,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[445,45],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[445,49]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[445,50],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[445,51]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[445,55],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[445,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[445,55],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[445,59]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[445,60],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[445,61]},[]],"tag":"TypeVar","contents":"a"}]}]}]},33]}}},{"EDType":{"edTypeName":"Pattern","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[485,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[485,34]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},"edTypeDeclarationKind":{"DataType":{"args":[["a",{"annotation":[{"start":[485,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[485,34]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]],"ctors":[["Pattern",[{"annotation":[{"start":[485,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[485,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[485,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[485,34]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[485,35],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[485,36]},[]],"tag":"TypeVar","contents":"a"}]}]]]}}}},{"EDDataConstructor":{"edDataCtorName":"Pattern","edDataCtorOrigin":"newtype","edDataCtorTypeCtor":"Pattern","edDataCtorType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[485,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[485,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[485,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[485,34]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[485,35],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[485,36]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","List"],"Pattern"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"a"}]}]},null]},"edDataCtorFields":[{"Ident":"value0"}]}},{"EDValue":{"edValueName":{"Ident":"stripPrefix"},"edValueType":{"annotation":[{"start":[502,16],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[502,71]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[502,26],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[502,71]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[502,26],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[502,30]},[]],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[{"start":[502,29],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[502,30]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[502,34],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[502,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[502,34],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[502,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[502,44],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[502,46]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[502,34],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[502,43]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[502,34],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[502,41]},[]],"tag":"TypeConstructor","contents":[["Data","List"],"Pattern"]},{"annotation":[{"start":[502,42],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[502,43]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[502,47],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[502,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[502,47],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[502,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[502,54],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[502,56]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[502,47],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[502,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[502,47],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[502,51]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[502,52],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[502,53]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[502,57],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[502,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[502,57],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[502,62]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[502,64],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[502,70]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[502,64],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[502,68]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[502,69],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[502,70]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]}]},18]}}},{"EDValue":{"edValueName":{"Ident":"slice"},"edValueType":{"annotation":[{"start":[511,10],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[511,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[511,10],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[511,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[511,14],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[511,16]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[511,10],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[511,13]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[511,17],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[511,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[511,17],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[511,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[511,21],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[511,23]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[511,17],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[511,20]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[17,34],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,54]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[17,44],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[17,44],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[17,48],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,50]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[17,44],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[511,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[511,28]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[17,46],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,47]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[17,51],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[511,32],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[511,36]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[17,53],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,54]},[]],"tag":"TypeVar","contents":"a"}]}]},213]}]}]}}},{"EDValue":{"edValueName":{"Ident":"take"},"edValueType":{"annotation":[{"start":[517,9],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[517,42]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[517,19],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[517,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[517,19],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[517,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[517,23],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[517,25]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[517,19],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[517,22]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[517,26],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[517,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[517,26],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[517,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[517,33],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[517,35]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[517,26],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[517,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[517,26],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[517,30]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[517,31],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[517,32]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[517,36],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[517,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[517,36],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[517,40]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[517,41],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[517,42]},[]],"tag":"TypeVar","contents":"a"}]}]}]},45]}}},{"EDValue":{"edValueName":{"Ident":"takeEnd"},"edValueType":{"annotation":[{"start":[528,12],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[528,45]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[528,22],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[528,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[528,22],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[528,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[528,26],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[528,28]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[528,22],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[528,25]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[528,29],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[528,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[528,29],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[528,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[528,36],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[528,38]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[528,29],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[528,35]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[528,29],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[528,33]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[528,34],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[528,35]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[528,39],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[528,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[528,39],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[528,43]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[528,44],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[528,45]},[]],"tag":"TypeVar","contents":"a"}]}]}]},215]}}},{"EDValue":{"edValueName":{"Ident":"takeWhile"},"edValueType":{"annotation":[{"start":[534,14],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[534,58]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[534,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[534,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[534,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[534,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[534,39],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[534,41]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[534,25],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[534,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[534,25],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[534,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[534,27],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[534,29]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[534,25],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[534,26]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[534,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[534,37]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]},{"annotation":[{"start":[534,42],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[534,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[534,42],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[534,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[534,49],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[534,51]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[534,42],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[534,48]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[534,42],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[534,46]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[534,47],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[534,48]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[534,52],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[534,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[534,52],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[534,56]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[534,57],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[534,58]},[]],"tag":"TypeVar","contents":"a"}]}]}]},48]}}},{"EDValue":{"edValueName":{"Ident":"drop"},"edValueType":{"annotation":[{"start":[543,9],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[543,42]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[543,19],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[543,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[543,19],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[543,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[543,23],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[543,25]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[543,19],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[543,22]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[543,26],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[543,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[543,26],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[543,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[543,33],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[543,35]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[543,26],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[543,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[543,26],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[543,30]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[543,31],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[543,32]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[543,36],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[543,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[543,36],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[543,40]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[543,41],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[543,42]},[]],"tag":"TypeVar","contents":"a"}]}]}]},209]}}},{"EDValue":{"edValueName":{"Ident":"dropEnd"},"edValueType":{"annotation":[{"start":[552,12],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[552,45]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[552,22],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[552,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[552,22],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[552,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[552,26],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[552,28]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[552,22],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[552,25]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[552,29],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[552,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[552,29],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[552,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[552,36],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[552,38]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[552,29],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[552,35]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[552,29],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[552,33]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[552,34],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[552,35]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[552,39],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[552,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[552,39],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[552,43]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[552,44],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[552,45]},[]],"tag":"TypeVar","contents":"a"}]}]}]},207]}}},{"EDValue":{"edValueName":{"Ident":"dropWhile"},"edValueType":{"annotation":[{"start":[558,14],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[558,58]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[558,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[558,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[558,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[558,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[558,39],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[558,41]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[558,25],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[558,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[558,25],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[558,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[558,27],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[558,29]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[558,25],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[558,26]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[558,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[558,37]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]},{"annotation":[{"start":[558,42],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[558,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[558,42],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[558,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[558,49],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[558,51]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[558,42],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[558,48]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[558,42],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[558,46]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[558,47],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[558,48]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[558,52],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[558,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[558,52],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[558,56]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[558,57],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[558,58]},[]],"tag":"TypeVar","contents":"a"}]}]}]},205]}}},{"EDValue":{"edValueName":{"Ident":"span"},"edValueType":{"annotation":[{"start":[576,9],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[576,81]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[576,19],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[576,81]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[576,19],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[576,81]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[576,34],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[576,36]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[576,20],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[576,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[576,20],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[576,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[576,22],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[576,24]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[576,20],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[576,21]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[576,25],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[576,32]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]},{"annotation":[{"start":[576,37],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[576,81]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[576,37],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[576,81]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[576,44],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[576,46]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[576,37],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[576,43]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[576,37],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[576,41]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[576,42],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[576,43]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[576,47],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[576,81]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[576,47],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[576,48]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[576,49],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[576,63]},[]],"tag":"RCons","contents":["init",{"annotation":[{"start":[576,57],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[576,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[576,57],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[576,61]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[576,62],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[576,63]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[576,65],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[576,79]},[]],"tag":"RCons","contents":["rest",{"annotation":[{"start":[576,73],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[576,79]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[576,73],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[576,77]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[576,78],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[576,79]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[576,80],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[576,81]},[]],"tag":"REmpty"}]}]}]}]}]},22]}}},{"EDValue":{"edValueName":{"Ident":"group"},"edValueType":{"annotation":[{"start":[590,10],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[590,63]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[590,20],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[590,63]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[590,20],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[590,24]},[]],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[{"start":[590,23],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[590,24]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[590,28],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[590,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[590,28],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[590,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[590,35],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[590,37]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[590,28],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[590,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[590,28],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[590,32]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[590,33],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[590,34]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[590,38],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[590,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[590,38],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[590,42]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[590,44],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[590,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[590,44],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[590,60]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[{"start":[590,61],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[590,62]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]},154]}}},{"EDValue":{"edValueName":{"Ident":"group'"},"edValueType":{"annotation":[{"start":[598,11],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[598,65]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[598,21],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[598,65]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[598,21],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[598,26]},[]],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[{"start":[598,25],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[598,26]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[598,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[598,65]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[598,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[598,65]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[598,37],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[598,39]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[598,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[598,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[598,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[598,34]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[598,35],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[598,36]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[598,40],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[598,65]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[598,40],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[598,44]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[598,46],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[598,64]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[598,46],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[598,62]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[{"start":[598,63],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[598,64]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]},156]}}},{"EDValue":{"edValueName":{"Ident":"groupBy"},"edValueType":{"annotation":[{"start":[605,12],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[605,80]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[605,22],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[605,80]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[605,22],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[605,80]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[605,42],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[605,44]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[605,23],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[605,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[605,23],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[605,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[605,25],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[605,27]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[605,23],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[605,24]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[605,28],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[605,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[605,28],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[605,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[605,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[605,32]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[605,28],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[605,29]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[605,33],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[605,40]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]}]},{"annotation":[{"start":[605,45],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[605,80]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[605,45],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[605,80]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[605,52],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[605,54]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[605,45],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[605,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[605,45],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[605,49]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[605,50],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[605,51]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[605,55],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[605,80]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[605,55],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[605,59]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[605,61],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[605,79]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[605,61],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[605,77]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"NonEmptyList"]},{"annotation":[{"start":[605,78],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[605,79]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]},150]}}},{"EDValue":{"edValueName":{"Ident":"partition"},"edValueType":{"annotation":[{"start":[613,14],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[613,83]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[613,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[613,83]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[613,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[613,83]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[613,39],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[613,41]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[613,25],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[613,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[613,25],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[613,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[613,27],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[613,29]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[613,25],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[613,26]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[613,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[613,37]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]},{"annotation":[{"start":[613,42],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[613,83]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[613,42],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[613,83]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[613,49],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[613,51]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[613,42],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[613,48]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[613,42],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[613,46]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[613,47],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[613,48]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[613,52],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[613,83]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[613,52],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[613,53]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[613,54],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[613,67]},[]],"tag":"RCons","contents":["yes",{"annotation":[{"start":[613,61],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[613,67]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[613,61],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[613,65]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[613,66],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[613,67]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[613,69],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[613,81]},[]],"tag":"RCons","contents":["no",{"annotation":[{"start":[613,75],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[613,81]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[613,75],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[613,79]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[613,80],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[613,81]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[613,82],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[613,83]},[]],"tag":"REmpty"}]}]}]}]}]},76]}}},{"EDValue":{"edValueName":{"Ident":"nub"},"edValueType":{"annotation":[{"start":[637,8],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[637,42]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[637,18],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[637,42]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[637,18],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[637,22]},[]],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[{"start":[637,21],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[637,22]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[637,26],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[637,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[637,26],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[637,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[637,33],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[637,35]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[637,26],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[637,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[637,26],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[637,30]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[637,31],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[637,32]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[637,36],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[637,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[637,36],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[637,40]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[637,41],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[637,42]},[]],"tag":"TypeVar","contents":"a"}]}]}]},197]}}},{"EDValue":{"edValueName":{"Ident":"nubBy"},"edValueType":{"annotation":[{"start":[644,10],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[644,59]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[644,20],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[644,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[644,20],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[644,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[644,40],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[644,42]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[644,21],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[644,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[644,21],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[644,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[644,23],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[644,25]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[644,21],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[644,22]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[644,26],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[644,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[644,26],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[644,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[644,28],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[644,30]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[644,26],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[644,27]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[644,31],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[644,38]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]}]},{"annotation":[{"start":[644,43],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[644,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[644,43],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[644,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[644,50],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[644,52]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[644,43],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[644,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[644,43],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[644,47]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[644,48],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[644,49]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[644,53],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[644,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[644,53],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[644,57]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[644,58],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[644,59]},[]],"tag":"TypeVar","contents":"a"}]}]}]},193]}}},{"EDValue":{"edValueName":{"Ident":"union"},"edValueType":{"annotation":[{"start":[651,10],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[651,54]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[651,20],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[651,54]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[651,20],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[651,24]},[]],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[{"start":[651,23],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[651,24]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[651,28],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[651,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[651,28],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[651,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[651,35],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[651,37]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[651,28],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[651,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[651,28],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[651,32]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[651,33],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[651,34]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[651,38],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[651,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[651,38],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[651,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[651,45],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[651,47]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[651,38],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[651,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[651,38],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[651,42]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[651,43],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[651,44]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[651,48],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[651,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[651,48],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[651,52]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[651,53],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[651,54]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]},223]}}},{"EDValue":{"edValueName":{"Ident":"unionBy"},"edValueType":{"annotation":[{"start":[658,12],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[658,71]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[658,22],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[658,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[658,22],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[658,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[658,42],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[658,44]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[658,23],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[658,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[658,23],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[658,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[658,25],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[658,27]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[658,23],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[658,24]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[658,28],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[658,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[658,28],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[658,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[658,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[658,32]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[658,28],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[658,29]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[658,33],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[658,40]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]}]},{"annotation":[{"start":[658,45],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[658,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[658,45],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[658,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[658,52],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[658,54]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[658,45],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[658,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[658,45],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[658,49]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[658,50],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[658,51]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[658,55],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[658,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[658,55],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[658,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[658,62],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[658,64]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[658,55],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[658,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[658,55],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[658,59]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[658,60],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[658,61]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[658,65],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[658,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[658,65],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[658,69]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[658,70],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[658,71]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]},221]}}},{"EDValue":{"edValueName":{"Ident":"delete"},"edValueType":{"annotation":[{"start":[664,11],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[664,50]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[664,21],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[664,50]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[664,21],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[664,25]},[]],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[{"start":[664,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[664,25]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[664,29],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[664,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[664,29],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[664,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[664,31],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[664,33]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[664,29],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[664,30]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[664,34],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[664,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[664,34],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[664,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[664,41],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[664,43]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[664,34],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[664,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[664,34],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[664,38]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[664,39],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[664,40]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[664,44],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[664,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[664,44],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[664,48]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[664,49],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[664,50]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]},229]}}},{"EDValue":{"edValueName":{"Ident":"deleteBy"},"edValueType":{"annotation":[{"start":[671,13],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[671,67]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[671,23],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[671,67]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[671,23],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[671,67]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[671,43],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[671,45]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[671,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[671,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[671,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[671,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[671,26],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[671,28]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[671,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[671,25]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[671,29],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[671,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[671,29],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[671,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[671,31],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[671,33]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[671,29],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[671,30]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[671,34],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[671,41]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]}]},{"annotation":[{"start":[671,46],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[671,67]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[671,46],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[671,67]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[671,48],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[671,50]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[671,46],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[671,47]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[671,51],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[671,67]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[671,51],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[671,67]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[671,58],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[671,60]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[671,51],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[671,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[671,51],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[671,55]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[671,56],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[671,57]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[671,61],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[671,67]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[671,61],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[671,65]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[671,66],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[671,67]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]},217]}}},{"EDValue":{"edValueName":{"Ident":"difference"},"edValueType":{"annotation":[{"start":[681,15],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[681,59]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[681,25],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[681,59]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[681,25],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[681,29]},[]],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[{"start":[681,28],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[681,29]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[681,33],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[681,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[681,33],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[681,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[681,40],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[681,42]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[681,33],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[681,39]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[681,33],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[681,37]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[681,38],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[681,39]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[681,43],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[681,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[681,43],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[681,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[681,50],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[681,52]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[681,43],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[681,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[681,43],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[681,47]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[681,48],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[681,49]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[681,53],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[681,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[681,53],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[681,57]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[681,58],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[681,59]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]},231]}}},{"EDValue":{"edValueName":{"Ident":"intersect"},"edValueType":{"annotation":[{"start":[687,14],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[687,58]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[687,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[687,58]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[687,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[687,28]},[]],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[{"start":[687,27],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[687,28]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[687,32],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[687,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[687,32],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[687,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[687,39],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[687,41]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[687,32],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[687,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[687,32],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[687,36]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[687,37],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[687,38]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[687,42],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[687,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[687,42],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[687,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[687,49],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[687,51]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[687,42],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[687,48]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[687,42],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[687,46]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[687,47],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[687,48]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[687,52],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[687,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[687,52],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[687,56]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[687,57],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[687,58]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]},191]}}},{"EDValue":{"edValueName":{"Ident":"intersectBy"},"edValueType":{"annotation":[{"start":[694,16],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[694,75]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[694,26],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[694,75]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[694,26],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[694,75]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[694,46],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[694,48]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[694,27],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[694,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[694,27],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[694,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[694,29],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[694,31]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[694,27],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[694,28]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[694,32],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[694,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[694,32],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[694,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[694,34],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[694,36]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[694,32],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[694,33]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[694,37],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[694,44]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]}]},{"annotation":[{"start":[694,49],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[694,75]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[694,49],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[694,75]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[694,56],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[694,58]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[694,49],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[694,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[694,49],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[694,53]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[694,54],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[694,55]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[694,59],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[694,75]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[694,59],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[694,75]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[694,66],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[694,68]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[694,59],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[694,65]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[694,59],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[694,63]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[694,64],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[694,65]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[694,69],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[694,75]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[694,69],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[694,73]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[694,74],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[694,75]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]},187]}}},{"EDValue":{"edValueName":{"Ident":"zipWith"},"edValueType":{"annotation":[{"start":[715,12],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[715,69]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[715,19],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[715,69]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[715,19],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[715,69]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[715,26],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[715,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[715,26],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[715,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[715,40],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[715,42]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[715,27],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[715,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[715,27],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[715,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[715,29],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[715,31]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[715,27],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[715,28]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[715,32],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[715,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[715,32],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[715,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[715,34],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[715,36]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[715,32],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[715,33]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[715,37],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[715,38]},[]],"tag":"TypeVar","contents":"c"}]}]}]},{"annotation":[{"start":[715,43],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[715,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[715,43],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[715,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[715,50],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[715,52]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[715,43],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[715,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[715,43],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[715,47]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[715,48],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[715,49]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[715,53],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[715,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[715,53],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[715,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[715,60],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[715,62]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[715,53],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[715,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[715,53],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[715,57]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[715,58],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[715,59]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[715,63],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[715,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[715,63],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[715,67]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[715,68],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[715,69]},[]],"tag":"TypeVar","contents":"c"}]}]}]}]},54]},55]},56]}}},{"EDValue":{"edValueName":{"Ident":"zipWithA"},"edValueType":{"annotation":[{"start":[724,13],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[724,95]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[724,20],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[724,95]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[724,20],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[724,95]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[724,20],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[724,95]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[724,29],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[724,95]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[724,29],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[724,42]},[]],"constraintClass":[["Control","Applicative"],"Applicative"],"constraintArgs":[{"annotation":[{"start":[724,41],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[724,42]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[724,46],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[724,95]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[724,46],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[724,95]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[724,62],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[724,64]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[724,47],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[724,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[724,47],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[724,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[724,49],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[724,51]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[724,47],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[724,48]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[724,52],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[724,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[724,52],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[724,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[724,54],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[724,56]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[724,52],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[724,53]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[724,57],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[724,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[724,57],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[724,58]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[724,59],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[724,60]},[]],"tag":"TypeVar","contents":"c"}]}]}]}]},{"annotation":[{"start":[724,65],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[724,95]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[724,65],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[724,95]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[724,72],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[724,74]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[724,65],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[724,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[724,65],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[724,69]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[724,70],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[724,71]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[724,75],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[724,95]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[724,75],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[724,95]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[724,82],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[724,84]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[724,75],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[724,81]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[724,75],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[724,79]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[724,80],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[724,81]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[724,85],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[724,95]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[724,85],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[724,86]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[724,88],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[724,94]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[724,88],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[724,92]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[724,93],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[724,94]},[]],"tag":"TypeVar","contents":"c"}]}]}]}]}]}]},67]},68]},69]},70]}}},{"EDValue":{"edValueName":{"Ident":"zip"},"edValueType":{"annotation":[{"start":[730,8],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[730,56]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[730,15],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[730,56]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[730,20],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[730,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[730,20],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[730,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[730,27],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[730,29]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[730,20],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[730,26]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[730,20],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[730,24]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[730,25],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[730,26]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[730,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[730,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[730,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[730,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[730,37],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[730,39]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[730,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[730,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[730,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[730,34]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[730,35],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[730,36]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[730,40],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[730,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[730,40],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[730,44]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[730,46],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[730,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[730,46],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[730,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[730,46],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[730,51]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[730,52],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[730,53]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[730,54],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[730,55]},[]],"tag":"TypeVar","contents":"b"}]}]}]}]},61]},62]}}},{"EDValue":{"edValueName":{"Ident":"unzip"},"edValueType":{"annotation":[{"start":[735,10],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[735,65]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[735,17],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[735,65]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[735,22],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[735,65]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[735,22],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[735,65]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[735,39],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[735,41]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[735,22],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[735,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[735,22],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[735,26]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[735,28],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[735,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[735,28],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[735,35]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[735,28],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[735,33]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[735,34],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[735,35]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[735,36],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[735,37]},[]],"tag":"TypeVar","contents":"b"}]}]}]},{"annotation":[{"start":[735,42],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[735,65]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[735,42],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[735,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[735,42],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[735,47]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[735,49],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[735,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[735,49],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[735,53]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[735,54],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[735,55]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[735,58],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[735,64]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[735,58],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[735,62]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[735,63],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[735,64]},[]],"tag":"TypeVar","contents":"b"}]}]}]},4]},5]}}},{"EDValue":{"edValueName":{"Ident":"transpose"},"edValueType":{"annotation":[{"start":[752,14],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[752,54]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[752,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[752,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[752,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[752,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[752,38],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[752,40]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[752,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[752,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[752,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[752,28]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[752,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[752,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[752,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[752,34]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[752,35],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[752,36]},[]],"tag":"TypeVar","contents":"a"}]}]}]},{"annotation":[{"start":[752,41],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[752,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[752,41],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[752,45]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[752,47],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[752,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[752,47],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[752,51]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[752,52],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[752,53]},[]],"tag":"TypeVar","contents":"a"}]}]}]},145]}}},{"EDValue":{"edValueName":{"Ident":"foldM"},"edValueType":{"annotation":[{"start":[763,10],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[763,72]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[763,17],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[763,72]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[763,17],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[763,72]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[763,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[763,72]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[763,24],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[763,31]},[]],"constraintClass":[["Control","Monad"],"Monad"],"constraintArgs":[{"annotation":[{"start":[763,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[763,31]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[763,35],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[763,72]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[763,35],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[763,72]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[763,51],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[763,53]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[763,36],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[763,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[763,36],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[763,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[763,38],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[763,40]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[763,36],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[763,37]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[763,41],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[763,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[763,41],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[763,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[763,43],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[763,45]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[763,41],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[763,42]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[763,46],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[763,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[763,46],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[763,47]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[763,48],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[763,49]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]},{"annotation":[{"start":[763,54],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[763,72]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[763,54],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[763,72]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[763,56],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[763,58]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[763,54],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[763,55]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[763,59],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[763,72]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[763,59],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[763,72]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[763,66],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[763,68]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[763,59],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[763,65]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[763,59],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[763,63]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[763,64],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[763,65]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[763,69],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[763,72]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[763,69],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[763,70]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[763,71],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[763,72]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]}]},164]},165]},166]}}},{"EDInstance":{"edInstanceClassName":[["Data","Eq"],"Eq"],"edInstanceName":{"Ident":"eqPattern"},"edInstanceTypes":[{"annotation":[{"start":[487,42],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[487,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[487,42],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[487,49]},[]],"tag":"TypeConstructor","contents":[["Data","List"],"Pattern"]},{"annotation":[{"start":[487,50],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[487,51]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[487,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[487,34]},[]],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[{"start":[487,33],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[487,34]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","List"],{"Ident":"eqPattern"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Ord"],"Ord"],"edInstanceName":{"Ident":"ordPattern"},"edInstanceTypes":[{"annotation":[{"start":[488,45],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[488,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[488,45],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[488,52]},[]],"tag":"TypeConstructor","contents":[["Data","List"],"Pattern"]},{"annotation":[{"start":[488,53],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[488,54]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[488,31],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[488,36]},[]],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[{"start":[488,35],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[488,36]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","List"],{"Ident":"ordPattern"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Newtype"],"Newtype"],"edInstanceName":{"Ident":"newtypePattern"},"edInstanceTypes":[{"annotation":[{"start":[489,44],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[489,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[489,44],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[489,51]},[]],"tag":"TypeConstructor","contents":[["Data","List"],"Pattern"]},{"annotation":[{"start":[489,52],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[489,53]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[485,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[485,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[485,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[485,34]},[]],"tag":"TypeConstructor","contents":[["Data","List","Types"],"List"]},{"annotation":[{"start":[489,52],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[489,53]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","List"],{"Ident":"newtypePattern"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Show"],"Show"],"edInstanceName":{"Ident":"showPattern"},"edInstanceTypes":[{"annotation":[{"start":[491,41],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[491,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[491,41],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[491,48]},[]],"tag":"TypeConstructor","contents":[["Data","List"],"Pattern"]},{"annotation":[{"start":[491,49],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[491,50]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[491,25],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[491,31]},[]],"constraintClass":[["Data","Show"],"Show"],"constraintArgs":[{"annotation":[{"start":[491,30],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[491,31]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","List"],{"Ident":"showPattern"}]],"edInstanceChainIndex":0}}],"efSourceSpan":{"start":[10,1],"name":"../../../support/bower_components/purescript-lists/src/Data/List.purs","end":[765,52]}}
diff --git a/tests/purs/publish/basic-example/output/Data.Maybe.First/docs.json b/tests/purs/publish/basic-example/output/Data.Maybe.First/docs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.Maybe.First/docs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"reExports":[],"name":"Data.Maybe.First","comments":null,"declarations":[{"children":[{"comments":null,"title":"First","info":{"arguments":[{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}],"declType":"dataConstructor"},"sourceSpan":null},{"comments":null,"title":"newtypeFirst","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Newtype"],"Newtype"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe","First"],"First"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeWildcard","contents":null}]}},"sourceSpan":{"start":[23,1],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/First.purs","end":[23,52]}},{"comments":null,"title":"eqFirst","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Eq"],"Eq"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe","First"],"First"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[25,1],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/First.purs","end":[25,58]}},{"comments":null,"title":"eq1First","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Eq"],"Eq1"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe","First"],"First"]}]}},"sourceSpan":{"start":[27,1],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/First.purs","end":[27,46]}},{"comments":null,"title":"ordFirst","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord"],"Ord"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe","First"],"First"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[29,1],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/First.purs","end":[29,61]}},{"comments":null,"title":"ord1First","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord"],"Ord1"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe","First"],"First"]}]}},"sourceSpan":{"start":[31,1],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/First.purs","end":[31,48]}},{"comments":null,"title":"boundedFirst","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Bounded"],"Bounded"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Bounded"],"Bounded"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe","First"],"First"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[33,1],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/First.purs","end":[33,73]}},{"comments":null,"title":"functorFirst","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Functor"],"Functor"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe","First"],"First"]}]}},"sourceSpan":{"start":[35,1],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/First.purs","end":[35,54]}},{"comments":null,"title":"invariantFirst","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Functor","Invariant"],"Invariant"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe","First"],"First"]}]}},"sourceSpan":{"start":[37,1],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/First.purs","end":[37,58]}},{"comments":null,"title":"applyFirst","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Apply"],"Apply"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe","First"],"First"]}]}},"sourceSpan":{"start":[39,1],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/First.purs","end":[39,50]}},{"comments":null,"title":"applicativeFirst","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Applicative"],"Applicative"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe","First"],"First"]}]}},"sourceSpan":{"start":[41,1],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/First.purs","end":[41,62]}},{"comments":null,"title":"bindFirst","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Bind"],"Bind"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe","First"],"First"]}]}},"sourceSpan":{"start":[43,1],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/First.purs","end":[43,48]}},{"comments":null,"title":"monadFirst","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Monad"],"Monad"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe","First"],"First"]}]}},"sourceSpan":{"start":[45,1],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/First.purs","end":[45,50]}},{"comments":null,"title":"extendFirst","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Extend"],"Extend"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe","First"],"First"]}]}},"sourceSpan":{"start":[47,1],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/First.purs","end":[47,52]}},{"comments":null,"title":"showFirst","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Show"],"Show"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Show"],"Show"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe","First"],"First"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[49,1],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/First.purs","end":[50,46]}},{"comments":null,"title":"semigroupFirst","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup"],"Semigroup"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe","First"],"First"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[52,1],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/First.purs","end":[54,27]}},{"comments":null,"title":"monoidFirst","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid"],"Monoid"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe","First"],"First"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[56,1],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/First.purs","end":[57,25]}},{"comments":null,"title":"altFirst","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Alt"],"Alt"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe","First"],"First"]}]}},"sourceSpan":{"start":[59,1],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/First.purs","end":[60,15]}},{"comments":null,"title":"plusFirst","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Plus"],"Plus"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe","First"],"First"]}]}},"sourceSpan":{"start":[62,1],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/First.purs","end":[63,17]}},{"comments":null,"title":"alternativeFirst","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Alternative"],"Alternative"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe","First"],"First"]}]}},"sourceSpan":{"start":[65,1],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/First.purs","end":[65,47]}},{"comments":null,"title":"monadZeroFirst","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","MonadZero"],"MonadZero"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe","First"],"First"]}]}},"sourceSpan":{"start":[67,1],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/First.purs","end":[67,43]}}],"comments":"Monoid returning the first (left-most) non-`Nothing` value.\n\n``` purescript\nFirst (Just x) <> First (Just y) == First (Just x)\nFirst Nothing <> First (Just y) == First (Just y)\nFirst Nothing <> Nothing == First Nothing\nmempty :: First _ == First Nothing\n```\n","title":"First","info":{"declType":"data","dataDeclType":"newtype","typeArguments":[["a",null]]},"sourceSpan":{"start":[21,1],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/First.purs","end":[21,34]}}]}
diff --git a/tests/purs/publish/basic-example/output/Data.Maybe.First/externs.json b/tests/purs/publish/basic-example/output/Data.Maybe.First/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.Maybe.First/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Data","Maybe","First"],"efExports":[{"TypeRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/First.purs","end":[67,43]},"First",["First"]]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"newtypeFirst"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"eqFirst"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"eq1First"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"ordFirst"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"ord1First"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"boundedFirst"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"functorFirst"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"invariantFirst"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"applyFirst"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"applicativeFirst"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"bindFirst"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"monadFirst"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"extendFirst"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"showFirst"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"semigroupFirst"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"monoidFirst"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"altFirst"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"plusFirst"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"alternativeFirst"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"monadZeroFirst"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Prelude"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Control","Extend"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[5,24],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/First.purs","end":[5,36]},"Extend"]}]},"eiImportedAs":null},{"eiModule":["Control","MonadZero"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[6,27],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/First.purs","end":[6,42]},"MonadZero"]},{"TypeClassRef":[{"start":[6,44],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/First.purs","end":[6,61]},"Alternative"]},{"TypeClassRef":[{"start":[6,63],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/First.purs","end":[6,73]},"Plus"]},{"TypeClassRef":[{"start":[6,75],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/First.purs","end":[6,84]},"Alt"]}]},"eiImportedAs":null},{"eiModule":["Data","Eq"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[7,17],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/First.purs","end":[7,26]},"Eq1"]}]},"eiImportedAs":null},{"eiModule":["Data","Functor","Invariant"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[8,32],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/First.purs","end":[8,47]},"Invariant"]}]},"eiImportedAs":null},{"eiModule":["Data","Maybe"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[9,20],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/First.purs","end":[9,29]},"Maybe",null]}]},"eiImportedAs":null},{"eiModule":["Data","Newtype"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[10,22],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/First.purs","end":[10,35]},"Newtype"]}]},"eiImportedAs":null},{"eiModule":["Data","Ord"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[11,18],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/First.purs","end":[11,28]},"Ord1"]}]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDType":{"edTypeName":"First","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[21,26],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/First.purs","end":[21,31]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},"edTypeDeclarationKind":{"DataType":{"args":[["a",{"annotation":[{"start":[21,26],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/First.purs","end":[21,31]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]],"ctors":[["First",[{"annotation":[{"start":[21,26],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/First.purs","end":[21,33]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[21,26],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/First.purs","end":[21,31]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[21,32],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/First.purs","end":[21,33]},[]],"tag":"TypeVar","contents":"a"}]}]]]}}}},{"EDDataConstructor":{"edDataCtorName":"First","edDataCtorOrigin":"newtype","edDataCtorTypeCtor":"First","edDataCtorType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[21,26],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/First.purs","end":[21,33]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[21,26],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/First.purs","end":[21,31]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[21,32],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/First.purs","end":[21,33]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe","First"],"First"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"a"}]}]},null]},"edDataCtorFields":[{"Ident":"value0"}]}},{"EDInstance":{"edInstanceClassName":[["Data","Newtype"],"Newtype"],"edInstanceName":{"Ident":"newtypeFirst"},"edInstanceTypes":[{"annotation":[{"start":[23,42],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/First.purs","end":[23,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[23,42],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/First.purs","end":[23,47]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe","First"],"First"]},{"annotation":[{"start":[23,48],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/First.purs","end":[23,49]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[21,26],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/First.purs","end":[21,33]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[21,26],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/First.purs","end":[21,31]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[23,48],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/First.purs","end":[23,49]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Maybe","First"],{"Ident":"newtypeFirst"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Eq"],"Eq"],"edInstanceName":{"Ident":"eqFirst"},"edInstanceTypes":[{"annotation":[{"start":[25,50],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/First.purs","end":[25,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[25,50],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/First.purs","end":[25,55]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe","First"],"First"]},{"annotation":[{"start":[25,56],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/First.purs","end":[25,57]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[25,37],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/First.purs","end":[25,41]},[]],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[{"start":[25,40],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/First.purs","end":[25,41]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","Maybe","First"],{"Ident":"eqFirst"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Eq"],"Eq1"],"edInstanceName":{"Ident":"eq1First"},"edInstanceTypes":[{"annotation":[{"start":[27,41],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/First.purs","end":[27,46]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe","First"],"First"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Maybe","First"],{"Ident":"eq1First"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Ord"],"Ord"],"edInstanceName":{"Ident":"ordFirst"},"edInstanceTypes":[{"annotation":[{"start":[29,53],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/First.purs","end":[29,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[29,53],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/First.purs","end":[29,58]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe","First"],"First"]},{"annotation":[{"start":[29,59],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/First.purs","end":[29,60]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[29,38],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/First.purs","end":[29,43]},[]],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[{"start":[29,42],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/First.purs","end":[29,43]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","Maybe","First"],{"Ident":"ordFirst"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Ord"],"Ord1"],"edInstanceName":{"Ident":"ord1First"},"edInstanceTypes":[{"annotation":[{"start":[31,43],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/First.purs","end":[31,48]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe","First"],"First"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Maybe","First"],{"Ident":"ord1First"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Bounded"],"Bounded"],"edInstanceName":{"Ident":"boundedFirst"},"edInstanceTypes":[{"annotation":[{"start":[33,65],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/First.purs","end":[33,72]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[33,65],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/First.purs","end":[33,70]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe","First"],"First"]},{"annotation":[{"start":[33,71],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/First.purs","end":[33,72]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[33,42],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/First.purs","end":[33,51]},[]],"constraintClass":[["Data","Bounded"],"Bounded"],"constraintArgs":[{"annotation":[{"start":[33,50],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/First.purs","end":[33,51]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","Maybe","First"],{"Ident":"boundedFirst"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Functor"],"Functor"],"edInstanceName":{"Ident":"functorFirst"},"edInstanceTypes":[{"annotation":[{"start":[35,49],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/First.purs","end":[35,54]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe","First"],"First"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Maybe","First"],{"Ident":"functorFirst"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Functor","Invariant"],"Invariant"],"edInstanceName":{"Ident":"invariantFirst"},"edInstanceTypes":[{"annotation":[{"start":[37,53],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/First.purs","end":[37,58]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe","First"],"First"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Maybe","First"],{"Ident":"invariantFirst"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Apply"],"Apply"],"edInstanceName":{"Ident":"applyFirst"},"edInstanceTypes":[{"annotation":[{"start":[39,45],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/First.purs","end":[39,50]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe","First"],"First"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Maybe","First"],{"Ident":"applyFirst"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Applicative"],"Applicative"],"edInstanceName":{"Ident":"applicativeFirst"},"edInstanceTypes":[{"annotation":[{"start":[41,57],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/First.purs","end":[41,62]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe","First"],"First"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Maybe","First"],{"Ident":"applicativeFirst"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Bind"],"Bind"],"edInstanceName":{"Ident":"bindFirst"},"edInstanceTypes":[{"annotation":[{"start":[43,43],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/First.purs","end":[43,48]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe","First"],"First"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Maybe","First"],{"Ident":"bindFirst"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Monad"],"Monad"],"edInstanceName":{"Ident":"monadFirst"},"edInstanceTypes":[{"annotation":[{"start":[45,45],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/First.purs","end":[45,50]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe","First"],"First"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Maybe","First"],{"Ident":"monadFirst"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Extend"],"Extend"],"edInstanceName":{"Ident":"extendFirst"},"edInstanceTypes":[{"annotation":[{"start":[47,47],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/First.purs","end":[47,52]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe","First"],"First"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Maybe","First"],{"Ident":"extendFirst"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Show"],"Show"],"edInstanceName":{"Ident":"showFirst"},"edInstanceTypes":[{"annotation":[{"start":[49,41],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/First.purs","end":[49,48]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,41],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/First.purs","end":[49,46]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe","First"],"First"]},{"annotation":[{"start":[49,47],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/First.purs","end":[49,48]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[49,24],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/First.purs","end":[49,30]},[]],"constraintClass":[["Data","Show"],"Show"],"constraintArgs":[{"annotation":[{"start":[49,29],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/First.purs","end":[49,30]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","Maybe","First"],{"Ident":"showFirst"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Semigroup"],"Semigroup"],"edInstanceName":{"Ident":"semigroupFirst"},"edInstanceTypes":[{"annotation":[{"start":[52,39],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/First.purs","end":[52,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,39],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/First.purs","end":[52,44]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe","First"],"First"]},{"annotation":[{"start":[52,45],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/First.purs","end":[52,46]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Maybe","First"],{"Ident":"semigroupFirst"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Monoid"],"Monoid"],"edInstanceName":{"Ident":"monoidFirst"},"edInstanceTypes":[{"annotation":[{"start":[56,33],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/First.purs","end":[56,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[56,33],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/First.purs","end":[56,38]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe","First"],"First"]},{"annotation":[{"start":[56,39],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/First.purs","end":[56,40]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Maybe","First"],{"Ident":"monoidFirst"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Alt"],"Alt"],"edInstanceName":{"Ident":"altFirst"},"edInstanceTypes":[{"annotation":[{"start":[59,26],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/First.purs","end":[59,31]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe","First"],"First"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Maybe","First"],{"Ident":"altFirst"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Plus"],"Plus"],"edInstanceName":{"Ident":"plusFirst"},"edInstanceTypes":[{"annotation":[{"start":[62,28],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/First.purs","end":[62,33]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe","First"],"First"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Maybe","First"],{"Ident":"plusFirst"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Alternative"],"Alternative"],"edInstanceName":{"Ident":"alternativeFirst"},"edInstanceTypes":[{"annotation":[{"start":[65,42],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/First.purs","end":[65,47]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe","First"],"First"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Maybe","First"],{"Ident":"alternativeFirst"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","MonadZero"],"MonadZero"],"edInstanceName":{"Ident":"monadZeroFirst"},"edInstanceTypes":[{"annotation":[{"start":[67,38],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/First.purs","end":[67,43]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe","First"],"First"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Maybe","First"],{"Ident":"monadZeroFirst"}]],"edInstanceChainIndex":0}}],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/First.purs","end":[67,43]}}
diff --git a/tests/purs/publish/basic-example/output/Data.Maybe.Last/docs.json b/tests/purs/publish/basic-example/output/Data.Maybe.Last/docs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.Maybe.Last/docs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"reExports":[],"name":"Data.Maybe.Last","comments":null,"declarations":[{"children":[{"comments":null,"title":"Last","info":{"arguments":[{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}],"declType":"dataConstructor"},"sourceSpan":null},{"comments":null,"title":"newtypeLast","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Newtype"],"Newtype"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe","Last"],"Last"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeWildcard","contents":null}]}},"sourceSpan":{"start":[23,1],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/Last.purs","end":[23,50]}},{"comments":null,"title":"eqLast","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Eq"],"Eq"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe","Last"],"Last"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[25,1],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/Last.purs","end":[25,56]}},{"comments":null,"title":"eq1Last","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Eq"],"Eq1"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe","Last"],"Last"]}]}},"sourceSpan":{"start":[27,1],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/Last.purs","end":[27,44]}},{"comments":null,"title":"ordLast","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord"],"Ord"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe","Last"],"Last"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[29,1],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/Last.purs","end":[29,59]}},{"comments":null,"title":"ord1Last","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord"],"Ord1"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe","Last"],"Last"]}]}},"sourceSpan":{"start":[31,1],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/Last.purs","end":[31,46]}},{"comments":null,"title":"boundedLast","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Bounded"],"Bounded"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Bounded"],"Bounded"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe","Last"],"Last"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[33,1],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/Last.purs","end":[33,71]}},{"comments":null,"title":"functorLast","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Functor"],"Functor"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe","Last"],"Last"]}]}},"sourceSpan":{"start":[35,1],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/Last.purs","end":[35,52]}},{"comments":null,"title":"invariantLast","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Functor","Invariant"],"Invariant"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe","Last"],"Last"]}]}},"sourceSpan":{"start":[37,1],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/Last.purs","end":[37,56]}},{"comments":null,"title":"applyLast","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Apply"],"Apply"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe","Last"],"Last"]}]}},"sourceSpan":{"start":[39,1],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/Last.purs","end":[39,48]}},{"comments":null,"title":"applicativeLast","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Applicative"],"Applicative"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe","Last"],"Last"]}]}},"sourceSpan":{"start":[41,1],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/Last.purs","end":[41,60]}},{"comments":null,"title":"bindLast","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Bind"],"Bind"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe","Last"],"Last"]}]}},"sourceSpan":{"start":[43,1],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/Last.purs","end":[43,46]}},{"comments":null,"title":"monadLast","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Monad"],"Monad"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe","Last"],"Last"]}]}},"sourceSpan":{"start":[45,1],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/Last.purs","end":[45,48]}},{"comments":null,"title":"extendLast","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Extend"],"Extend"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe","Last"],"Last"]}]}},"sourceSpan":{"start":[47,1],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/Last.purs","end":[47,50]}},{"comments":null,"title":"showLast","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Show"],"Show"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Show"],"Show"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe","Last"],"Last"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[49,1],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/Last.purs","end":[50,44]}},{"comments":null,"title":"semigroupLast","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup"],"Semigroup"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe","Last"],"Last"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[52,1],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/Last.purs","end":[54,36]}},{"comments":null,"title":"monoidLast","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid"],"Monoid"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe","Last"],"Last"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[56,1],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/Last.purs","end":[57,24]}},{"comments":null,"title":"altLast","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Alt"],"Alt"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe","Last"],"Last"]}]}},"sourceSpan":{"start":[59,1],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/Last.purs","end":[60,15]}},{"comments":null,"title":"plusLast","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Plus"],"Plus"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe","Last"],"Last"]}]}},"sourceSpan":{"start":[62,1],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/Last.purs","end":[63,17]}},{"comments":null,"title":"alternativeLast","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Alternative"],"Alternative"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe","Last"],"Last"]}]}},"sourceSpan":{"start":[65,1],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/Last.purs","end":[65,45]}},{"comments":null,"title":"monadZeroLast","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","MonadZero"],"MonadZero"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe","Last"],"Last"]}]}},"sourceSpan":{"start":[67,1],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/Last.purs","end":[67,41]}}],"comments":"Monoid returning the last (right-most) non-`Nothing` value.\n\n``` purescript\nLast (Just x) <> Last (Just y) == Last (Just y)\nLast (Just x) <> Nothing == Last (Just x)\nLast Nothing <> Nothing == Last Nothing\nmempty :: Last _ == Last Nothing\n```\n","title":"Last","info":{"declType":"data","dataDeclType":"newtype","typeArguments":[["a",null]]},"sourceSpan":{"start":[21,1],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/Last.purs","end":[21,32]}}]}
diff --git a/tests/purs/publish/basic-example/output/Data.Maybe.Last/externs.json b/tests/purs/publish/basic-example/output/Data.Maybe.Last/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.Maybe.Last/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Data","Maybe","Last"],"efExports":[{"TypeRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/Last.purs","end":[67,41]},"Last",["Last"]]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"newtypeLast"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"eqLast"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"eq1Last"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"ordLast"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"ord1Last"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"boundedLast"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"functorLast"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"invariantLast"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"applyLast"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"applicativeLast"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"bindLast"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"monadLast"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"extendLast"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"showLast"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"semigroupLast"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"monoidLast"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"altLast"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"plusLast"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"alternativeLast"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"monadZeroLast"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Prelude"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Control","Extend"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[5,24],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/Last.purs","end":[5,36]},"Extend"]}]},"eiImportedAs":null},{"eiModule":["Control","MonadZero"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[6,27],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/Last.purs","end":[6,42]},"MonadZero"]},{"TypeClassRef":[{"start":[6,44],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/Last.purs","end":[6,61]},"Alternative"]},{"TypeClassRef":[{"start":[6,63],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/Last.purs","end":[6,73]},"Plus"]},{"TypeClassRef":[{"start":[6,75],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/Last.purs","end":[6,84]},"Alt"]}]},"eiImportedAs":null},{"eiModule":["Data","Eq"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[7,17],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/Last.purs","end":[7,26]},"Eq1"]}]},"eiImportedAs":null},{"eiModule":["Data","Functor","Invariant"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[8,32],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/Last.purs","end":[8,47]},"Invariant"]}]},"eiImportedAs":null},{"eiModule":["Data","Maybe"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[9,20],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/Last.purs","end":[9,29]},"Maybe",null]}]},"eiImportedAs":null},{"eiModule":["Data","Newtype"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[10,22],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/Last.purs","end":[10,35]},"Newtype"]}]},"eiImportedAs":null},{"eiModule":["Data","Ord"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[11,18],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/Last.purs","end":[11,28]},"Ord1"]}]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDType":{"edTypeName":"Last","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[21,24],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/Last.purs","end":[21,29]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},"edTypeDeclarationKind":{"DataType":{"args":[["a",{"annotation":[{"start":[21,24],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/Last.purs","end":[21,29]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]],"ctors":[["Last",[{"annotation":[{"start":[21,24],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/Last.purs","end":[21,31]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[21,24],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/Last.purs","end":[21,29]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[21,30],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/Last.purs","end":[21,31]},[]],"tag":"TypeVar","contents":"a"}]}]]]}}}},{"EDDataConstructor":{"edDataCtorName":"Last","edDataCtorOrigin":"newtype","edDataCtorTypeCtor":"Last","edDataCtorType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[21,24],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/Last.purs","end":[21,31]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[21,24],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/Last.purs","end":[21,29]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[21,30],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/Last.purs","end":[21,31]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe","Last"],"Last"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"a"}]}]},null]},"edDataCtorFields":[{"Ident":"value0"}]}},{"EDInstance":{"edInstanceClassName":[["Data","Newtype"],"Newtype"],"edInstanceName":{"Ident":"newtypeLast"},"edInstanceTypes":[{"annotation":[{"start":[23,41],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/Last.purs","end":[23,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[23,41],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/Last.purs","end":[23,45]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe","Last"],"Last"]},{"annotation":[{"start":[23,46],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/Last.purs","end":[23,47]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[21,24],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/Last.purs","end":[21,31]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[21,24],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/Last.purs","end":[21,29]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[23,46],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/Last.purs","end":[23,47]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Maybe","Last"],{"Ident":"newtypeLast"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Eq"],"Eq"],"edInstanceName":{"Ident":"eqLast"},"edInstanceTypes":[{"annotation":[{"start":[25,49],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/Last.purs","end":[25,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[25,49],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/Last.purs","end":[25,53]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe","Last"],"Last"]},{"annotation":[{"start":[25,54],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/Last.purs","end":[25,55]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[25,36],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/Last.purs","end":[25,40]},[]],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[{"start":[25,39],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/Last.purs","end":[25,40]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","Maybe","Last"],{"Ident":"eqLast"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Eq"],"Eq1"],"edInstanceName":{"Ident":"eq1Last"},"edInstanceTypes":[{"annotation":[{"start":[27,40],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/Last.purs","end":[27,44]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe","Last"],"Last"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Maybe","Last"],{"Ident":"eq1Last"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Ord"],"Ord"],"edInstanceName":{"Ident":"ordLast"},"edInstanceTypes":[{"annotation":[{"start":[29,52],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/Last.purs","end":[29,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[29,52],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/Last.purs","end":[29,56]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe","Last"],"Last"]},{"annotation":[{"start":[29,57],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/Last.purs","end":[29,58]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[29,37],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/Last.purs","end":[29,42]},[]],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[{"start":[29,41],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/Last.purs","end":[29,42]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","Maybe","Last"],{"Ident":"ordLast"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Ord"],"Ord1"],"edInstanceName":{"Ident":"ord1Last"},"edInstanceTypes":[{"annotation":[{"start":[31,42],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/Last.purs","end":[31,46]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe","Last"],"Last"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Maybe","Last"],{"Ident":"ord1Last"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Bounded"],"Bounded"],"edInstanceName":{"Ident":"boundedLast"},"edInstanceTypes":[{"annotation":[{"start":[33,64],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/Last.purs","end":[33,70]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[33,64],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/Last.purs","end":[33,68]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe","Last"],"Last"]},{"annotation":[{"start":[33,69],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/Last.purs","end":[33,70]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[33,41],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/Last.purs","end":[33,50]},[]],"constraintClass":[["Data","Bounded"],"Bounded"],"constraintArgs":[{"annotation":[{"start":[33,49],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/Last.purs","end":[33,50]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","Maybe","Last"],{"Ident":"boundedLast"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Functor"],"Functor"],"edInstanceName":{"Ident":"functorLast"},"edInstanceTypes":[{"annotation":[{"start":[35,48],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/Last.purs","end":[35,52]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe","Last"],"Last"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Maybe","Last"],{"Ident":"functorLast"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Functor","Invariant"],"Invariant"],"edInstanceName":{"Ident":"invariantLast"},"edInstanceTypes":[{"annotation":[{"start":[37,52],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/Last.purs","end":[37,56]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe","Last"],"Last"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Maybe","Last"],{"Ident":"invariantLast"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Apply"],"Apply"],"edInstanceName":{"Ident":"applyLast"},"edInstanceTypes":[{"annotation":[{"start":[39,44],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/Last.purs","end":[39,48]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe","Last"],"Last"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Maybe","Last"],{"Ident":"applyLast"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Applicative"],"Applicative"],"edInstanceName":{"Ident":"applicativeLast"},"edInstanceTypes":[{"annotation":[{"start":[41,56],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/Last.purs","end":[41,60]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe","Last"],"Last"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Maybe","Last"],{"Ident":"applicativeLast"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Bind"],"Bind"],"edInstanceName":{"Ident":"bindLast"},"edInstanceTypes":[{"annotation":[{"start":[43,42],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/Last.purs","end":[43,46]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe","Last"],"Last"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Maybe","Last"],{"Ident":"bindLast"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Monad"],"Monad"],"edInstanceName":{"Ident":"monadLast"},"edInstanceTypes":[{"annotation":[{"start":[45,44],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/Last.purs","end":[45,48]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe","Last"],"Last"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Maybe","Last"],{"Ident":"monadLast"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Extend"],"Extend"],"edInstanceName":{"Ident":"extendLast"},"edInstanceTypes":[{"annotation":[{"start":[47,46],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/Last.purs","end":[47,50]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe","Last"],"Last"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Maybe","Last"],{"Ident":"extendLast"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Show"],"Show"],"edInstanceName":{"Ident":"showLast"},"edInstanceTypes":[{"annotation":[{"start":[49,38],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/Last.purs","end":[49,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,38],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/Last.purs","end":[49,42]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe","Last"],"Last"]},{"annotation":[{"start":[49,43],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/Last.purs","end":[49,44]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[49,22],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/Last.purs","end":[49,28]},[]],"constraintClass":[["Data","Show"],"Show"],"constraintArgs":[{"annotation":[{"start":[49,27],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/Last.purs","end":[49,28]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","Maybe","Last"],{"Ident":"showLast"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Semigroup"],"Semigroup"],"edInstanceName":{"Ident":"semigroupLast"},"edInstanceTypes":[{"annotation":[{"start":[52,38],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/Last.purs","end":[52,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,38],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/Last.purs","end":[52,42]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe","Last"],"Last"]},{"annotation":[{"start":[52,43],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/Last.purs","end":[52,44]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Maybe","Last"],{"Ident":"semigroupLast"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Monoid"],"Monoid"],"edInstanceName":{"Ident":"monoidLast"},"edInstanceTypes":[{"annotation":[{"start":[56,32],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/Last.purs","end":[56,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[56,32],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/Last.purs","end":[56,36]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe","Last"],"Last"]},{"annotation":[{"start":[56,37],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/Last.purs","end":[56,38]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Maybe","Last"],{"Ident":"monoidLast"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Alt"],"Alt"],"edInstanceName":{"Ident":"altLast"},"edInstanceTypes":[{"annotation":[{"start":[59,25],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/Last.purs","end":[59,29]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe","Last"],"Last"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Maybe","Last"],{"Ident":"altLast"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Plus"],"Plus"],"edInstanceName":{"Ident":"plusLast"},"edInstanceTypes":[{"annotation":[{"start":[62,27],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/Last.purs","end":[62,31]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe","Last"],"Last"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Maybe","Last"],{"Ident":"plusLast"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Alternative"],"Alternative"],"edInstanceName":{"Ident":"alternativeLast"},"edInstanceTypes":[{"annotation":[{"start":[65,41],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/Last.purs","end":[65,45]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe","Last"],"Last"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Maybe","Last"],{"Ident":"alternativeLast"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","MonadZero"],"MonadZero"],"edInstanceName":{"Ident":"monadZeroLast"},"edInstanceTypes":[{"annotation":[{"start":[67,37],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/Last.purs","end":[67,41]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe","Last"],"Last"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Maybe","Last"],{"Ident":"monadZeroLast"}]],"edInstanceChainIndex":0}}],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe/Last.purs","end":[67,41]}}
diff --git a/tests/purs/publish/basic-example/output/Data.Maybe/docs.json b/tests/purs/publish/basic-example/output/Data.Maybe/docs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.Maybe/docs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"reExports":[],"name":"Data.Maybe","comments":null,"declarations":[{"children":[{"comments":null,"title":"Nothing","info":{"arguments":[],"declType":"dataConstructor"},"sourceSpan":null},{"comments":null,"title":"Just","info":{"arguments":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"declType":"dataConstructor"},"sourceSpan":null},{"comments":"The `Functor` instance allows functions to transform the contents of a\n`Just` with the `<$>` operator:\n\n``` purescript\nf <$> Just x == Just (f x)\n```\n\n`Nothing` values are left untouched:\n\n``` purescript\nf <$> Nothing == Nothing\n```\n","title":"functorMaybe","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Functor"],"Functor"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]}]}},"sourceSpan":{"start":[32,1],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[34,28]}},{"comments":"The `Apply` instance allows functions contained within a `Just` to\ntransform a value contained within a `Just` using the `apply` operator:\n\n``` purescript\nJust f <*> Just x == Just (f x)\n```\n\n`Nothing` values are left untouched:\n\n``` purescript\nJust f <*> Nothing == Nothing\nNothing <*> Just x == Nothing\n```\n\nCombining `Functor`'s `<$>` with `Apply`'s `<*>` can be used transform a\npure function to take `Maybe`-typed arguments so `f :: a -> b -> c`\nbecomes `f :: Maybe a -> Maybe b -> Maybe c`:\n\n``` purescript\nf <$> Just x <*> Just y == Just (f x y)\n```\n\nThe `Nothing`-preserving behaviour of both operators means the result of\nan expression like the above but where any one of the values is `Nothing`\nmeans the whole result becomes `Nothing` also:\n\n``` purescript\nf <$> Nothing <*> Just y == Nothing\nf <$> Just x <*> Nothing == Nothing\nf <$> Nothing <*> Nothing == Nothing\n```\n","title":"applyMaybe","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Apply"],"Apply"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]}]}},"sourceSpan":{"start":[67,1],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[69,30]}},{"comments":"The `Applicative` instance enables lifting of values into `Maybe` with the\n`pure` or `return` function (`return` is an alias for `pure`):\n\n``` purescript\npure x :: Maybe _ == Just x\nreturn x :: Maybe _ == Just x\n```\n\nCombining `Functor`'s `<$>` with `Apply`'s `<*>` and `Applicative`'s\n`pure` can be used to pass a mixture of `Maybe` and non-`Maybe` typed\nvalues to a function that does not usually expect them, by using `pure`\nfor any value that is not already `Maybe` typed:\n\n``` purescript\nf <$> Just x <*> pure y == Just (f x y)\n```\n\nEven though `pure = Just` it is recommended to use `pure` in situations\nlike this as it allows the choice of `Applicative` to be changed later\nwithout having to go through and replace `Just` with a new constructor.\n","title":"applicativeMaybe","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Applicative"],"Applicative"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]}]}},"sourceSpan":{"start":[91,1],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[92,14]}},{"comments":"The `Alt` instance allows for a choice to be made between two `Maybe`\nvalues with the `<|>` operator, where the first `Just` encountered\nis taken.\n\n``` purescript\nJust x <|> Just y == Just x\nNothing <|> Just y == Just y\nNothing <|> Nothing == Nothing\n```\n","title":"altMaybe","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Alt"],"Alt"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]}]}},"sourceSpan":{"start":[103,1],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[105,20]}},{"comments":"The `Plus` instance provides a default `Maybe` value:\n\n``` purescript\nempty :: Maybe _ == Nothing\n```\n","title":"plusMaybe","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Plus"],"Plus"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]}]}},"sourceSpan":{"start":[112,1],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[113,18]}},{"comments":"The `Alternative` instance guarantees that there are both `Applicative` and\n`Plus` instances for `Maybe`.\n","title":"alternativeMaybe","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Alternative"],"Alternative"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]}]}},"sourceSpan":{"start":[117,1],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[117,47]}},{"comments":"The `Bind` instance allows sequencing of `Maybe` values and functions that\nreturn a `Maybe` by using the `>>=` operator:\n\n``` purescript\nJust x >>= f = f x\nNothing >>= f = Nothing\n```\n","title":"bindMaybe","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Bind"],"Bind"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]}]}},"sourceSpan":{"start":[126,1],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[128,28]}},{"comments":"The `Monad` instance guarantees that there are both `Applicative` and\n`Bind` instances for `Maybe`. This also enables the `do` syntactic sugar:\n\n``` purescript\ndo\n  x' <- x\n  y' <- y\n  pure (f x' y')\n```\n\nWhich is equivalent to:\n\n``` purescript\nx >>= (\\x' -> y >>= (\\y' -> pure (f x' y')))\n```\n","title":"monadMaybe","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Monad"],"Monad"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]}]}},"sourceSpan":{"start":[145,1],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[145,35]}},{"comments":null,"title":"monadZeroMaybe","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","MonadZero"],"MonadZero"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]}]}},"sourceSpan":{"start":[147,1],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[147,43]}},{"comments":"The `Extend` instance allows sequencing of `Maybe` values and functions\nthat accept a `Maybe a` and return a non-`Maybe` result using the\n`<<=` operator.\n\n``` purescript\nf <<= Nothing = Nothing\nf <<= x = Just (f x)\n```\n","title":"extendMaybe","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Extend"],"Extend"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]}]}},"sourceSpan":{"start":[157,1],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[159,33]}},{"comments":null,"title":"invariantMaybe","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Functor","Invariant"],"Invariant"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]}]}},"sourceSpan":{"start":[161,1],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[162,15]}},{"comments":"The `Semigroup` instance enables use of the operator `<>` on `Maybe` values\nwhenever there is a `Semigroup` instance for the type the `Maybe` contains.\nThe exact behaviour of `<>` depends on the \"inner\" `Semigroup` instance,\nbut generally captures the notion of appending or combining things.\n\n``` purescript\nJust x <> Just y = Just (x <> y)\nJust x <> Nothing = Just x\nNothing <> Just y = Just y\nNothing <> Nothing = Nothing\n```\n","title":"semigroupMaybe","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Semigroup"],"Semigroup"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup"],"Semigroup"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[175,1],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[178,43]}},{"comments":null,"title":"monoidMaybe","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Semigroup"],"Semigroup"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid"],"Monoid"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[180,1],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[181,19]}},{"comments":"The `Eq` instance allows `Maybe` values to be checked for equality with\n`==` and inequality with `/=` whenever there is an `Eq` instance for the\ntype the `Maybe` contains.\n","title":"eqMaybe","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Eq"],"Eq"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[186,1],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[186,48]}},{"comments":null,"title":"eq1Maybe","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Eq"],"Eq1"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]}]}},"sourceSpan":{"start":[188,1],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[188,46]}},{"comments":"The `Ord` instance allows `Maybe` values to be compared with\n`compare`, `>`, `>=`, `<` and `<=` whenever there is an `Ord` instance for\nthe type the `Maybe` contains.\n\n`Nothing` is considered to be less than any `Just` value.\n","title":"ordMaybe","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord"],"Ord"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[195,1],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[195,51]}},{"comments":null,"title":"ord1Maybe","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord"],"Ord1"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]}]}},"sourceSpan":{"start":[197,1],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[197,58]}},{"comments":null,"title":"boundedMaybe","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Bounded"],"Bounded"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Bounded"],"Bounded"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[199,1],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[201,19]}},{"comments":"The `Show` instance allows `Maybe` values to be rendered as a string with\n`show` whenever there is an `Show` instance for the type the `Maybe`\ncontains.\n","title":"showMaybe","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Show"],"Show"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Show"],"Show"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[206,1],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[208,28]}}],"comments":"The `Maybe` type is used to represent optional values and can be seen as\nsomething like a type-safe `null`, where `Nothing` is `null` and `Just x`\nis the non-null value `x`.\n","title":"Maybe","info":{"declType":"data","dataDeclType":"data","typeArguments":[["a",null]]},"sourceSpan":{"start":[18,1],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[18,32]}},{"children":[],"comments":"Takes a default value, a function, and a `Maybe` value. If the `Maybe`\nvalue is `Nothing` the default value is returned, otherwise the function\nis applied to the value inside the `Just` and the result is returned.\n\n``` purescript\nmaybe x f Nothing == x\nmaybe x f (Just y) == f y\n```\n","title":"maybe","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}]},null]},null]}},"sourceSpan":{"start":[218,1],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[218,51]}},{"children":[],"comments":"Similar to `maybe` but for use in cases where the default value may be\nexpensive to compute. As PureScript is not lazy, the standard `maybe` has\nto evaluate the default value before returning the result, whereas here\nthe value is only computed when the `Maybe` is known to be `Nothing`.\n\n``` purescript\nmaybe' (\\_ -> x) f Nothing == x\nmaybe' (\\_ -> x) f (Just y) == f y\n```\n","title":"maybe'","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}]},null]},null]}},"sourceSpan":{"start":[231,1],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[231,62]}},{"children":[],"comments":"Takes a default value, and a `Maybe` value. If the `Maybe` value is\n`Nothing` the default value is returned, otherwise the value inside the\n`Just` is returned.\n\n``` purescript\nfromMaybe x Nothing == x\nfromMaybe x (Just y) == y\n```\n","title":"fromMaybe","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},null]}},"sourceSpan":{"start":[243,1],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[243,41]}},{"children":[],"comments":"Similar to `fromMaybe` but for use in cases where the default value may be\nexpensive to compute. As PureScript is not lazy, the standard `fromMaybe`\nhas to evaluate the default value before returning the result, whereas here\nthe value is only computed when the `Maybe` is known to be `Nothing`.\n\n``` purescript\nfromMaybe' (\\_ -> x) Nothing == x\nfromMaybe' (\\_ -> x) (Just y) == y\n```\n","title":"fromMaybe'","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},null]}},"sourceSpan":{"start":[255,1],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[255,52]}},{"children":[],"comments":"Returns `true` when the `Maybe` value was constructed with `Just`.\n","title":"isJust","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]},null]}},"sourceSpan":{"start":[259,1],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[259,39]}},{"children":[],"comments":"Returns `true` when the `Maybe` value is `Nothing`.\n","title":"isNothing","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]},null]}},"sourceSpan":{"start":[263,1],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[263,42]}},{"children":[],"comments":"A partial function that extracts the value from the `Just` data\nconstructor. Passing `Nothing` to `fromJust` will throw an error at\nruntime.\n","title":"fromJust","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Prim"],"Partial"],"constraintArgs":[],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},null]}},"sourceSpan":{"start":[269,1],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[269,46]}},{"children":[],"comments":"One or none.\n\n``` purescript\noptional empty = pure Nothing\noptional (pure x) = pure (Just x)\n```\n","title":"optional","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Alternative"],"Alternative"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]}]}]},null]},null]}},"sourceSpan":{"start":[278,1],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[278,60]}}]}
diff --git a/tests/purs/publish/basic-example/output/Data.Maybe/externs.json b/tests/purs/publish/basic-example/output/Data.Maybe/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.Maybe/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Data","Maybe"],"efExports":[{"TypeRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[279,41]},"Maybe",["Nothing","Just"]]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[279,41]},{"Ident":"maybe"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[279,41]},{"Ident":"maybe'"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[279,41]},{"Ident":"fromMaybe"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[279,41]},{"Ident":"fromMaybe'"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[279,41]},{"Ident":"isJust"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[279,41]},{"Ident":"isNothing"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[279,41]},{"Ident":"fromJust"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[279,41]},{"Ident":"optional"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"functorMaybe"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"applyMaybe"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"applicativeMaybe"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"altMaybe"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"plusMaybe"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"alternativeMaybe"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"bindMaybe"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"monadMaybe"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"monadZeroMaybe"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"extendMaybe"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"invariantMaybe"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"semigroupMaybe"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"monoidMaybe"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"eqMaybe"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"eq1Maybe"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"ordMaybe"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"ord1Maybe"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"boundedMaybe"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"showMaybe"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Prelude"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Control","Alt"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[5,21],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[5,30]},"Alt"]},{"ValueOpRef":[{"start":[5,32],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[5,37]},"<|>"]}]},"eiImportedAs":null},{"eiModule":["Control","Alternative"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[6,29],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[6,46]},"Alternative"]}]},"eiImportedAs":null},{"eiModule":["Control","Extend"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[7,24],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[7,36]},"Extend"]}]},"eiImportedAs":null},{"eiModule":["Control","MonadZero"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[8,27],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[8,42]},"MonadZero"]}]},"eiImportedAs":null},{"eiModule":["Control","Plus"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[9,22],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[9,32]},"Plus"]}]},"eiImportedAs":null},{"eiModule":["Data","Eq"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[11,17],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[11,26]},"Eq1"]}]},"eiImportedAs":null},{"eiModule":["Data","Functor","Invariant"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[12,32],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[12,47]},"Invariant"]},{"ValueRef":[{"start":[12,49],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[12,54]},{"Ident":"imapF"}]}]},"eiImportedAs":null},{"eiModule":["Data","Ord"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[13,18],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[13,28]},"Ord1"]}]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDType":{"edTypeName":"Maybe","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[18,31],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[18,32]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},"edTypeDeclarationKind":{"DataType":{"args":[["a",{"annotation":[{"start":[18,31],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[18,32]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]],"ctors":[["Nothing",[]],["Just",[{"annotation":[{"start":[18,31],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[18,32]},[]],"tag":"TypeVar","contents":"a"}]]]}}}},{"EDDataConstructor":{"edDataCtorName":"Nothing","edDataCtorOrigin":"data","edDataCtorTypeCtor":"Maybe","edDataCtorType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"a"}]},null]},"edDataCtorFields":[]}},{"EDDataConstructor":{"edDataCtorName":"Just","edDataCtorOrigin":"data","edDataCtorTypeCtor":"Maybe","edDataCtorType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[18,31],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[18,32]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"a"}]}]},null]},"edDataCtorFields":[{"Ident":"value0"}]}},{"EDValue":{"edValueName":{"Ident":"maybe"},"edValueType":{"annotation":[{"start":[218,10],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[218,51]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[218,17],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[218,51]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[218,22],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[218,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[218,22],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[218,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[218,24],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[218,26]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[218,22],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[218,23]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[218,27],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[218,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[218,27],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[218,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[218,36],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[218,38]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[218,28],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[218,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[218,28],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[218,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[218,30],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[218,32]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[218,28],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[218,29]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[218,33],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[218,34]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[218,39],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[218,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[218,39],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[218,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[218,47],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[218,49]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[218,39],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[218,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[218,39],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[218,44]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[218,45],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[218,46]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[218,50],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[218,51]},[]],"tag":"TypeVar","contents":"b"}]}]}]},58]},59]}}},{"EDValue":{"edValueName":{"Ident":"maybe'"},"edValueType":{"annotation":[{"start":[231,11],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[231,62]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[231,18],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[231,62]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[231,23],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[231,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[231,23],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[231,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[231,35],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[231,37]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[231,24],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[231,33]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[231,24],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[231,33]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[231,29],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[231,31]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[231,24],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[231,28]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]},{"annotation":[{"start":[231,32],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[231,33]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[231,38],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[231,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[231,38],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[231,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[231,47],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[231,49]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[231,39],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[231,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[231,39],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[231,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[231,41],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[231,43]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[231,39],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[231,40]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[231,44],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[231,45]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[231,50],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[231,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[231,50],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[231,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[231,58],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[231,60]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[231,50],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[231,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[231,50],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[231,55]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[231,56],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[231,57]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[231,61],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[231,62]},[]],"tag":"TypeVar","contents":"b"}]}]}]},54]},55]}}},{"EDValue":{"edValueName":{"Ident":"fromMaybe"},"edValueType":{"annotation":[{"start":[243,14],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[243,41]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[243,24],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[243,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[243,24],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[243,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[243,26],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[243,28]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[243,24],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[243,25]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[243,29],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[243,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[243,29],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[243,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[243,37],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[243,39]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[243,29],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[243,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[243,29],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[243,34]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[243,35],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[243,36]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[243,40],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[243,41]},[]],"tag":"TypeVar","contents":"a"}]}]},77]}}},{"EDValue":{"edValueName":{"Ident":"fromMaybe'"},"edValueType":{"annotation":[{"start":[255,15],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[255,52]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[255,25],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[255,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[255,25],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[255,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[255,37],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[255,39]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[255,26],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[255,35]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[255,26],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[255,35]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[255,31],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[255,33]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[255,26],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[255,30]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]},{"annotation":[{"start":[255,34],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[255,35]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[255,40],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[255,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[255,40],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[255,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[255,48],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[255,50]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[255,40],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[255,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[255,40],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[255,45]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[255,46],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[255,47]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[255,51],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[255,52]},[]],"tag":"TypeVar","contents":"a"}]}]},75]}}},{"EDValue":{"edValueName":{"Ident":"isJust"},"edValueType":{"annotation":[{"start":[259,11],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[259,39]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[259,21],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[259,39]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[259,21],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[259,39]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[259,29],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[259,31]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[259,21],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[259,28]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[259,21],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[259,26]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[259,27],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[259,28]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[259,32],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[259,39]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]},64]}}},{"EDValue":{"edValueName":{"Ident":"isNothing"},"edValueType":{"annotation":[{"start":[263,14],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[263,42]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[263,24],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[263,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[263,24],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[263,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[263,32],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[263,34]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[263,24],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[263,31]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[263,24],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[263,29]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[263,30],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[263,31]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[263,35],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[263,42]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]},62]}}},{"EDValue":{"edValueName":{"Ident":"fromJust"},"edValueType":{"annotation":[{"start":[269,13],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[269,46]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[269,23],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[269,46]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[269,23],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[269,30]},[]],"constraintClass":[["Prim"],"Partial"],"constraintArgs":[],"constraintData":null},{"annotation":[{"start":[269,34],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[269,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[269,34],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[269,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[269,42],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[269,44]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[269,34],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[269,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[269,34],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[269,39]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[269,40],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[269,41]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[269,45],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[269,46]},[]],"tag":"TypeVar","contents":"a"}]}]},79]}}},{"EDValue":{"edValueName":{"Ident":"optional"},"edValueType":{"annotation":[{"start":[278,13],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[278,60]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[278,20],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[278,60]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[278,25],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[278,60]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[278,25],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[278,38]},[]],"constraintClass":[["Control","Alternative"],"Alternative"],"constraintArgs":[{"annotation":[{"start":[278,37],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[278,38]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[278,42],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[278,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[278,42],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[278,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[278,46],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[278,48]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[278,42],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[278,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[278,42],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[278,43]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[278,44],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[278,45]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[278,49],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[278,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[278,49],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[278,50]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[278,52],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[278,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[278,52],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[278,57]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[278,58],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[278,59]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]},15]},16]}}},{"EDInstance":{"edInstanceClassName":[["Data","Functor"],"Functor"],"edInstanceName":{"Ident":"functorMaybe"},"edInstanceTypes":[{"annotation":[{"start":[32,34],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[32,39]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Maybe"],{"Ident":"functorMaybe"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Apply"],"Apply"],"edInstanceName":{"Ident":"applyMaybe"},"edInstanceTypes":[{"annotation":[{"start":[67,30],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[67,35]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Maybe"],{"Ident":"applyMaybe"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Applicative"],"Applicative"],"edInstanceName":{"Ident":"applicativeMaybe"},"edInstanceTypes":[{"annotation":[{"start":[91,42],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[91,47]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Maybe"],{"Ident":"applicativeMaybe"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Alt"],"Alt"],"edInstanceName":{"Ident":"altMaybe"},"edInstanceTypes":[{"annotation":[{"start":[103,26],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[103,31]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Maybe"],{"Ident":"altMaybe"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Plus"],"Plus"],"edInstanceName":{"Ident":"plusMaybe"},"edInstanceTypes":[{"annotation":[{"start":[112,28],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[112,33]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Maybe"],{"Ident":"plusMaybe"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Alternative"],"Alternative"],"edInstanceName":{"Ident":"alternativeMaybe"},"edInstanceTypes":[{"annotation":[{"start":[117,42],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[117,47]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Maybe"],{"Ident":"alternativeMaybe"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Bind"],"Bind"],"edInstanceName":{"Ident":"bindMaybe"},"edInstanceTypes":[{"annotation":[{"start":[126,28],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[126,33]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Maybe"],{"Ident":"bindMaybe"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Monad"],"Monad"],"edInstanceName":{"Ident":"monadMaybe"},"edInstanceTypes":[{"annotation":[{"start":[145,30],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[145,35]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Maybe"],{"Ident":"monadMaybe"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","MonadZero"],"MonadZero"],"edInstanceName":{"Ident":"monadZeroMaybe"},"edInstanceTypes":[{"annotation":[{"start":[147,38],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[147,43]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Maybe"],{"Ident":"monadZeroMaybe"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Extend"],"Extend"],"edInstanceName":{"Ident":"extendMaybe"},"edInstanceTypes":[{"annotation":[{"start":[157,32],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[157,37]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Maybe"],{"Ident":"extendMaybe"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Functor","Invariant"],"Invariant"],"edInstanceName":{"Ident":"invariantMaybe"},"edInstanceTypes":[{"annotation":[{"start":[161,38],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[161,43]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Maybe"],{"Ident":"invariantMaybe"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Semigroup"],"Semigroup"],"edInstanceName":{"Ident":"semigroupMaybe"},"edInstanceTypes":[{"annotation":[{"start":[175,54],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[175,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[175,54],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[175,59]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[175,60],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[175,61]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[175,28],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[175,39]},[]],"constraintClass":[["Data","Semigroup"],"Semigroup"],"constraintArgs":[{"annotation":[{"start":[175,38],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[175,39]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","Maybe"],{"Ident":"semigroupMaybe"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Monoid"],"Monoid"],"edInstanceName":{"Ident":"monoidMaybe"},"edInstanceTypes":[{"annotation":[{"start":[180,48],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[180,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[180,48],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[180,53]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[180,54],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[180,55]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[180,25],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[180,36]},[]],"constraintClass":[["Data","Semigroup"],"Semigroup"],"constraintArgs":[{"annotation":[{"start":[180,35],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[180,36]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","Maybe"],{"Ident":"monoidMaybe"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Eq"],"Eq"],"edInstanceName":{"Ident":"eqMaybe"},"edInstanceTypes":[{"annotation":[{"start":[186,40],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[186,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[186,40],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[186,45]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[186,46],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[186,47]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[186,28],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[186,32]},[]],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[{"start":[186,31],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[186,32]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","Maybe"],{"Ident":"eqMaybe"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Eq"],"Eq1"],"edInstanceName":{"Ident":"eq1Maybe"},"edInstanceTypes":[{"annotation":[{"start":[188,26],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[188,31]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Maybe"],{"Ident":"eq1Maybe"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Ord"],"Ord"],"edInstanceName":{"Ident":"ordMaybe"},"edInstanceTypes":[{"annotation":[{"start":[195,43],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[195,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[195,43],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[195,48]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[195,49],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[195,50]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[195,29],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[195,34]},[]],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[{"start":[195,33],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[195,34]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","Maybe"],{"Ident":"ordMaybe"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Ord"],"Ord1"],"edInstanceName":{"Ident":"ord1Maybe"},"edInstanceTypes":[{"annotation":[{"start":[197,28],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[197,33]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Maybe"],{"Ident":"ord1Maybe"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Bounded"],"Bounded"],"edInstanceName":{"Ident":"boundedMaybe"},"edInstanceTypes":[{"annotation":[{"start":[199,48],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[199,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[199,48],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[199,53]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[199,54],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[199,55]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[199,26],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[199,35]},[]],"constraintClass":[["Data","Bounded"],"Bounded"],"constraintArgs":[{"annotation":[{"start":[199,34],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[199,35]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","Maybe"],{"Ident":"boundedMaybe"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Show"],"Show"],"edInstanceName":{"Ident":"showMaybe"},"edInstanceTypes":[{"annotation":[{"start":[206,39],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[206,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[206,39],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[206,44]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[206,45],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[206,46]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[206,23],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[206,29]},[]],"constraintClass":[["Data","Show"],"Show"],"constraintArgs":[{"annotation":[{"start":[206,28],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[206,29]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","Maybe"],{"Ident":"showMaybe"}]],"edInstanceChainIndex":0}}],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-maybe/src/Data/Maybe.purs","end":[279,41]}}
diff --git a/tests/purs/publish/basic-example/output/Data.Monoid.Additive/docs.json b/tests/purs/publish/basic-example/output/Data.Monoid.Additive/docs.json
--- a/tests/purs/publish/basic-example/output/Data.Monoid.Additive/docs.json
+++ b/tests/purs/publish/basic-example/output/Data.Monoid.Additive/docs.json
@@ -1,1 +1,1 @@
-{"reExports":[],"name":"Data.Monoid.Additive","comments":null,"declarations":[{"children":[{"comments":null,"title":"Additive","info":{"arguments":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"declType":"dataConstructor"},"sourceSpan":null},{"comments":null,"title":"eqAdditive","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Eq"],"Eq"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Additive"],"Additive"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[16,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Additive.purs","end":[16,62]}},{"comments":null,"title":"eq1Additive","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Eq"],"Eq1"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Additive"],"Additive"]}]}},"sourceSpan":{"start":[17,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Additive.purs","end":[17,44]}},{"comments":null,"title":"ordAdditive","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord"],"Ord"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Additive"],"Additive"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[19,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Additive.purs","end":[19,65]}},{"comments":null,"title":"ord1Additive","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord"],"Ord1"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Additive"],"Additive"]}]}},"sourceSpan":{"start":[20,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Additive.purs","end":[20,46]}},{"comments":null,"title":"boundedAdditive","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Bounded"],"Bounded"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Bounded"],"Bounded"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Additive"],"Additive"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[22,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Additive.purs","end":[22,77]}},{"comments":null,"title":"showAdditive","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Show"],"Show"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Show"],"Show"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Additive"],"Additive"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[24,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Additive.purs","end":[25,52]}},{"comments":null,"title":"functorAdditive","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Functor"],"Functor"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Additive"],"Additive"]}]}},"sourceSpan":{"start":[27,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Additive.purs","end":[27,52]}},{"comments":null,"title":"applyAdditive","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Apply"],"Apply"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Additive"],"Additive"]}]}},"sourceSpan":{"start":[29,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Additive.purs","end":[30,51]}},{"comments":null,"title":"applicativeAdditive","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Applicative"],"Applicative"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Additive"],"Additive"]}]}},"sourceSpan":{"start":[32,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Additive.purs","end":[33,18]}},{"comments":null,"title":"bindAdditive","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Bind"],"Bind"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Additive"],"Additive"]}]}},"sourceSpan":{"start":[35,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Additive.purs","end":[36,28]}},{"comments":null,"title":"monadAdditive","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Monad"],"Monad"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Additive"],"Additive"]}]}},"sourceSpan":{"start":[38,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Additive.purs","end":[38,41]}},{"comments":null,"title":"semigroupAdditive","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Semiring"],"Semiring"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup"],"Semigroup"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Additive"],"Additive"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[40,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Additive.purs","end":[41,54]}},{"comments":null,"title":"monoidAdditive","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Semiring"],"Semiring"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid"],"Monoid"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Additive"],"Additive"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[43,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Additive.purs","end":[44,25]}}],"comments":"Monoid and semigroup for semirings under addition.\n\n``` purescript\nAdditive x <> Additive y == Additive (x + y)\nmempty :: Additive _ == Additive zero\n```\n","title":"Additive","info":{"declType":"data","dataDeclType":"newtype","typeArguments":[["a",null]]},"sourceSpan":{"start":[14,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Additive.purs","end":[14,32]}}]}
+{"comments":null,"declarations":[{"children":[{"comments":null,"info":{"arguments":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"declType":"dataConstructor"},"sourceSpan":{"end":[14,32],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Additive.purs","start":[14,20]},"title":"Additive"},{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","Eq"],"Eq"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Eq"],"Eq"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Monoid","Additive"],"Additive"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[16,62],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Additive.purs","start":[16,1]},"title":"eqAdditive"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Eq"],"Eq1"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Monoid","Additive"],"Additive"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[17,44],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Additive.purs","start":[17,1]},"title":"eq1Additive"},{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","Ord"],"Ord"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Ord"],"Ord"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Monoid","Additive"],"Additive"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[19,65],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Additive.purs","start":[19,1]},"title":"ordAdditive"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Ord"],"Ord1"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Monoid","Additive"],"Additive"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[20,46],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Additive.purs","start":[20,1]},"title":"ord1Additive"},{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","Bounded"],"Bounded"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Bounded"],"Bounded"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Monoid","Additive"],"Additive"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[22,77],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Additive.purs","start":[22,1]},"title":"boundedAdditive"},{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","Show"],"Show"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Show"],"Show"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Monoid","Additive"],"Additive"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[25,52],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Additive.purs","start":[24,1]},"title":"showAdditive"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Functor"],"Functor"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Monoid","Additive"],"Additive"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[27,52],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Additive.purs","start":[27,1]},"title":"functorAdditive"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Control","Apply"],"Apply"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Monoid","Additive"],"Additive"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[30,51],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Additive.purs","start":[29,1]},"title":"applyAdditive"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Control","Applicative"],"Applicative"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Monoid","Additive"],"Additive"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[33,18],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Additive.purs","start":[32,1]},"title":"applicativeAdditive"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Control","Bind"],"Bind"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Monoid","Additive"],"Additive"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[36,28],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Additive.purs","start":[35,1]},"title":"bindAdditive"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Control","Monad"],"Monad"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Monoid","Additive"],"Additive"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[38,41],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Additive.purs","start":[38,1]},"title":"monadAdditive"},{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","Semiring"],"Semiring"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Semigroup"],"Semigroup"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Monoid","Additive"],"Additive"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[41,54],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Additive.purs","start":[40,1]},"title":"semigroupAdditive"},{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","Semiring"],"Semiring"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Monoid"],"Monoid"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Monoid","Additive"],"Additive"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[44,25],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Additive.purs","start":[43,1]},"title":"monoidAdditive"}],"comments":"Monoid and semigroup for semirings under addition.\n\n``` purescript\nAdditive x <> Additive y == Additive (x + y)\n(mempty :: Additive _) == Additive zero\n```\n","info":{"dataDeclType":"newtype","declType":"data","roles":["Representational"],"typeArguments":[["a",null]]},"kind":null,"sourceSpan":{"end":[14,32],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Additive.purs","start":[14,1]},"title":"Additive"}],"name":"Data.Monoid.Additive","reExports":[]}
diff --git a/tests/purs/publish/basic-example/output/Data.Monoid.Additive/externs.json b/tests/purs/publish/basic-example/output/Data.Monoid.Additive/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.Monoid.Additive/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Data","Monoid","Additive"],"efExports":[{"TypeRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Additive.purs","end":[44,25]},"Additive",["Additive"]]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"eqAdditive"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"eq1Additive"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"ordAdditive"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"ord1Additive"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"boundedAdditive"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"showAdditive"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"functorAdditive"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"applyAdditive"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"applicativeAdditive"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"bindAdditive"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"monadAdditive"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"semigroupAdditive"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"monoidAdditive"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Prelude"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Data","Eq"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[5,17],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Additive.purs","end":[5,26]},"Eq1"]}]},"eiImportedAs":null},{"eiModule":["Data","Ord"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[6,18],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Additive.purs","end":[6,28]},"Ord1"]}]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDType":{"edTypeName":"Additive","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[14,31],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Additive.purs","end":[14,32]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},"edTypeDeclarationKind":{"DataType":{"args":[["a",{"annotation":[{"start":[14,31],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Additive.purs","end":[14,32]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]],"ctors":[["Additive",[{"annotation":[{"start":[14,31],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Additive.purs","end":[14,32]},[]],"tag":"TypeVar","contents":"a"}]]]}}}},{"EDDataConstructor":{"edDataCtorName":"Additive","edDataCtorOrigin":"newtype","edDataCtorTypeCtor":"Additive","edDataCtorType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[14,31],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Additive.purs","end":[14,32]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Monoid","Additive"],"Additive"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"a"}]}]},null]},"edDataCtorFields":[{"Ident":"value0"}]}},{"EDInstance":{"edInstanceClassName":[["Data","Eq"],"Eq"],"edInstanceName":{"Ident":"eqAdditive"},"edInstanceTypes":[{"annotation":[{"start":[16,51],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Additive.purs","end":[16,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[16,51],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Additive.purs","end":[16,59]},[]],"tag":"TypeConstructor","contents":[["Data","Monoid","Additive"],"Additive"]},{"annotation":[{"start":[16,60],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Additive.purs","end":[16,61]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[16,39],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Additive.purs","end":[16,43]},[]],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[{"start":[16,42],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Additive.purs","end":[16,43]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","Monoid","Additive"],{"Ident":"eqAdditive"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Eq"],"Eq1"],"edInstanceName":{"Ident":"eq1Additive"},"edInstanceTypes":[{"annotation":[{"start":[17,36],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Additive.purs","end":[17,44]},[]],"tag":"TypeConstructor","contents":[["Data","Monoid","Additive"],"Additive"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Monoid","Additive"],{"Ident":"eq1Additive"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Ord"],"Ord"],"edInstanceName":{"Ident":"ordAdditive"},"edInstanceTypes":[{"annotation":[{"start":[19,54],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Additive.purs","end":[19,64]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[19,54],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Additive.purs","end":[19,62]},[]],"tag":"TypeConstructor","contents":[["Data","Monoid","Additive"],"Additive"]},{"annotation":[{"start":[19,63],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Additive.purs","end":[19,64]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[19,40],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Additive.purs","end":[19,45]},[]],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[{"start":[19,44],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Additive.purs","end":[19,45]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","Monoid","Additive"],{"Ident":"ordAdditive"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Ord"],"Ord1"],"edInstanceName":{"Ident":"ord1Additive"},"edInstanceTypes":[{"annotation":[{"start":[20,38],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Additive.purs","end":[20,46]},[]],"tag":"TypeConstructor","contents":[["Data","Monoid","Additive"],"Additive"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Monoid","Additive"],{"Ident":"ord1Additive"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Bounded"],"Bounded"],"edInstanceName":{"Ident":"boundedAdditive"},"edInstanceTypes":[{"annotation":[{"start":[22,66],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Additive.purs","end":[22,76]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[22,66],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Additive.purs","end":[22,74]},[]],"tag":"TypeConstructor","contents":[["Data","Monoid","Additive"],"Additive"]},{"annotation":[{"start":[22,75],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Additive.purs","end":[22,76]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[22,44],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Additive.purs","end":[22,53]},[]],"constraintClass":[["Data","Bounded"],"Bounded"],"constraintArgs":[{"annotation":[{"start":[22,52],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Additive.purs","end":[22,53]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","Monoid","Additive"],{"Ident":"boundedAdditive"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Show"],"Show"],"edInstanceName":{"Ident":"showAdditive"},"edInstanceTypes":[{"annotation":[{"start":[24,42],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Additive.purs","end":[24,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[24,42],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Additive.purs","end":[24,50]},[]],"tag":"TypeConstructor","contents":[["Data","Monoid","Additive"],"Additive"]},{"annotation":[{"start":[24,51],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Additive.purs","end":[24,52]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[24,26],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Additive.purs","end":[24,32]},[]],"constraintClass":[["Data","Show"],"Show"],"constraintArgs":[{"annotation":[{"start":[24,31],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Additive.purs","end":[24,32]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","Monoid","Additive"],{"Ident":"showAdditive"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Functor"],"Functor"],"edInstanceName":{"Ident":"functorAdditive"},"edInstanceTypes":[{"annotation":[{"start":[27,44],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Additive.purs","end":[27,52]},[]],"tag":"TypeConstructor","contents":[["Data","Monoid","Additive"],"Additive"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Monoid","Additive"],{"Ident":"functorAdditive"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Apply"],"Apply"],"edInstanceName":{"Ident":"applyAdditive"},"edInstanceTypes":[{"annotation":[{"start":[29,33],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Additive.purs","end":[29,41]},[]],"tag":"TypeConstructor","contents":[["Data","Monoid","Additive"],"Additive"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Monoid","Additive"],{"Ident":"applyAdditive"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Applicative"],"Applicative"],"edInstanceName":{"Ident":"applicativeAdditive"},"edInstanceTypes":[{"annotation":[{"start":[32,45],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Additive.purs","end":[32,53]},[]],"tag":"TypeConstructor","contents":[["Data","Monoid","Additive"],"Additive"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Monoid","Additive"],{"Ident":"applicativeAdditive"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Bind"],"Bind"],"edInstanceName":{"Ident":"bindAdditive"},"edInstanceTypes":[{"annotation":[{"start":[35,31],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Additive.purs","end":[35,39]},[]],"tag":"TypeConstructor","contents":[["Data","Monoid","Additive"],"Additive"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Monoid","Additive"],{"Ident":"bindAdditive"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Monad"],"Monad"],"edInstanceName":{"Ident":"monadAdditive"},"edInstanceTypes":[{"annotation":[{"start":[38,33],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Additive.purs","end":[38,41]},[]],"tag":"TypeConstructor","contents":[["Data","Monoid","Additive"],"Additive"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Monoid","Additive"],{"Ident":"monadAdditive"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Semigroup"],"Semigroup"],"edInstanceName":{"Ident":"semigroupAdditive"},"edInstanceTypes":[{"annotation":[{"start":[40,56],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Additive.purs","end":[40,66]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[40,56],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Additive.purs","end":[40,64]},[]],"tag":"TypeConstructor","contents":[["Data","Monoid","Additive"],"Additive"]},{"annotation":[{"start":[40,65],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Additive.purs","end":[40,66]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[40,31],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Additive.purs","end":[40,41]},[]],"constraintClass":[["Data","Semiring"],"Semiring"],"constraintArgs":[{"annotation":[{"start":[40,40],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Additive.purs","end":[40,41]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","Monoid","Additive"],{"Ident":"semigroupAdditive"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Monoid"],"Monoid"],"edInstanceName":{"Ident":"monoidAdditive"},"edInstanceTypes":[{"annotation":[{"start":[43,50],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Additive.purs","end":[43,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[43,50],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Additive.purs","end":[43,58]},[]],"tag":"TypeConstructor","contents":[["Data","Monoid","Additive"],"Additive"]},{"annotation":[{"start":[43,59],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Additive.purs","end":[43,60]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[43,28],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Additive.purs","end":[43,38]},[]],"constraintClass":[["Data","Semiring"],"Semiring"],"constraintArgs":[{"annotation":[{"start":[43,37],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Additive.purs","end":[43,38]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","Monoid","Additive"],{"Ident":"monoidAdditive"}]],"edInstanceChainIndex":0}}],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Additive.purs","end":[44,25]}}
diff --git a/tests/purs/publish/basic-example/output/Data.Monoid.Conj/docs.json b/tests/purs/publish/basic-example/output/Data.Monoid.Conj/docs.json
--- a/tests/purs/publish/basic-example/output/Data.Monoid.Conj/docs.json
+++ b/tests/purs/publish/basic-example/output/Data.Monoid.Conj/docs.json
@@ -1,1 +1,1 @@
-{"reExports":[],"name":"Data.Monoid.Conj","comments":null,"declarations":[{"children":[{"comments":null,"title":"Conj","info":{"arguments":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"declType":"dataConstructor"},"sourceSpan":null},{"comments":null,"title":"eqConj","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Eq"],"Eq"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Conj"],"Conj"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[17,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Conj.purs","end":[17,54]}},{"comments":null,"title":"eq1Conj","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Eq"],"Eq1"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Conj"],"Conj"]}]}},"sourceSpan":{"start":[18,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Conj.purs","end":[18,36]}},{"comments":null,"title":"ordConj","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord"],"Ord"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Conj"],"Conj"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[20,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Conj.purs","end":[20,57]}},{"comments":null,"title":"ord1Conj","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord"],"Ord1"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Conj"],"Conj"]}]}},"sourceSpan":{"start":[21,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Conj.purs","end":[21,38]}},{"comments":null,"title":"boundedConj","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Bounded"],"Bounded"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Bounded"],"Bounded"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Conj"],"Conj"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[23,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Conj.purs","end":[23,69]}},{"comments":null,"title":"showConj","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Show"],"Show"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Show"],"Show"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Conj"],"Conj"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[25,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Conj.purs","end":[26,44]}},{"comments":null,"title":"functorConj","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Functor"],"Functor"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Conj"],"Conj"]}]}},"sourceSpan":{"start":[28,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Conj.purs","end":[28,44]}},{"comments":null,"title":"applyConj","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Apply"],"Apply"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Conj"],"Conj"]}]}},"sourceSpan":{"start":[30,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Conj.purs","end":[31,39]}},{"comments":null,"title":"applicativeConj","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Applicative"],"Applicative"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Conj"],"Conj"]}]}},"sourceSpan":{"start":[33,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Conj.purs","end":[34,14]}},{"comments":null,"title":"bindConj","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Bind"],"Bind"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Conj"],"Conj"]}]}},"sourceSpan":{"start":[36,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Conj.purs","end":[37,24]}},{"comments":null,"title":"monadConj","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Monad"],"Monad"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Conj"],"Conj"]}]}},"sourceSpan":{"start":[39,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Conj.purs","end":[39,33]}},{"comments":null,"title":"semigroupConj","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","HeytingAlgebra"],"HeytingAlgebra"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup"],"Semigroup"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Conj"],"Conj"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[41,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Conj.purs","end":[42,45]}},{"comments":null,"title":"monoidConj","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","HeytingAlgebra"],"HeytingAlgebra"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid"],"Monoid"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Conj"],"Conj"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[44,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Conj.purs","end":[45,19]}},{"comments":null,"title":"semiringConj","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","HeytingAlgebra"],"HeytingAlgebra"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semiring"],"Semiring"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Conj"],"Conj"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[47,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Conj.purs","end":[51,42]}}],"comments":"Monoid and semigroup for conjuntion.\n\n``` purescript\nConj x <> Conj y == Conj (x && y)\nmempty :: Conj _ == Conj top\n```\n","title":"Conj","info":{"declType":"data","dataDeclType":"newtype","typeArguments":[["a",null]]},"sourceSpan":{"start":[15,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Conj.purs","end":[15,24]}}]}
+{"comments":null,"declarations":[{"children":[{"comments":null,"info":{"arguments":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"declType":"dataConstructor"},"sourceSpan":{"end":[15,24],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Conj.purs","start":[15,16]},"title":"Conj"},{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","Eq"],"Eq"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Eq"],"Eq"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Monoid","Conj"],"Conj"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[17,54],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Conj.purs","start":[17,1]},"title":"eqConj"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Eq"],"Eq1"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Monoid","Conj"],"Conj"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[18,36],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Conj.purs","start":[18,1]},"title":"eq1Conj"},{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","Ord"],"Ord"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Ord"],"Ord"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Monoid","Conj"],"Conj"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[20,57],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Conj.purs","start":[20,1]},"title":"ordConj"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Ord"],"Ord1"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Monoid","Conj"],"Conj"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[21,38],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Conj.purs","start":[21,1]},"title":"ord1Conj"},{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","Bounded"],"Bounded"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Bounded"],"Bounded"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Monoid","Conj"],"Conj"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[23,69],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Conj.purs","start":[23,1]},"title":"boundedConj"},{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","Show"],"Show"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Show"],"Show"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Monoid","Conj"],"Conj"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[26,44],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Conj.purs","start":[25,1]},"title":"showConj"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Functor"],"Functor"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Monoid","Conj"],"Conj"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[28,44],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Conj.purs","start":[28,1]},"title":"functorConj"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Control","Apply"],"Apply"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Monoid","Conj"],"Conj"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[31,39],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Conj.purs","start":[30,1]},"title":"applyConj"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Control","Applicative"],"Applicative"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Monoid","Conj"],"Conj"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[34,14],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Conj.purs","start":[33,1]},"title":"applicativeConj"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Control","Bind"],"Bind"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Monoid","Conj"],"Conj"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[37,24],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Conj.purs","start":[36,1]},"title":"bindConj"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Control","Monad"],"Monad"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Monoid","Conj"],"Conj"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[39,33],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Conj.purs","start":[39,1]},"title":"monadConj"},{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","HeytingAlgebra"],"HeytingAlgebra"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Semigroup"],"Semigroup"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Monoid","Conj"],"Conj"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[42,45],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Conj.purs","start":[41,1]},"title":"semigroupConj"},{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","HeytingAlgebra"],"HeytingAlgebra"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Monoid"],"Monoid"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Monoid","Conj"],"Conj"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[45,19],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Conj.purs","start":[44,1]},"title":"monoidConj"},{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","HeytingAlgebra"],"HeytingAlgebra"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Semiring"],"Semiring"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Monoid","Conj"],"Conj"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[51,42],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Conj.purs","start":[47,1]},"title":"semiringConj"}],"comments":"Monoid and semigroup for conjunction.\n\n``` purescript\nConj x <> Conj y == Conj (x && y)\n(mempty :: Conj _) == Conj tt\n```\n","info":{"dataDeclType":"newtype","declType":"data","roles":["Representational"],"typeArguments":[["a",null]]},"kind":null,"sourceSpan":{"end":[15,24],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Conj.purs","start":[15,1]},"title":"Conj"}],"name":"Data.Monoid.Conj","reExports":[]}
diff --git a/tests/purs/publish/basic-example/output/Data.Monoid.Conj/externs.json b/tests/purs/publish/basic-example/output/Data.Monoid.Conj/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.Monoid.Conj/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Data","Monoid","Conj"],"efExports":[{"TypeRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Conj.purs","end":[51,42]},"Conj",["Conj"]]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"eqConj"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"eq1Conj"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"ordConj"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"ord1Conj"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"boundedConj"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"showConj"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"functorConj"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"applyConj"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"applicativeConj"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"bindConj"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"monadConj"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"semigroupConj"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"monoidConj"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"semiringConj"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Prelude"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Data","Eq"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[5,17],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Conj.purs","end":[5,26]},"Eq1"]}]},"eiImportedAs":null},{"eiModule":["Data","HeytingAlgebra"],"eiImportType":{"Explicit":[{"ValueRef":[{"start":[6,29],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Conj.purs","end":[6,31]},{"Ident":"ff"}]},{"ValueRef":[{"start":[6,33],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Conj.purs","end":[6,35]},{"Ident":"tt"}]}]},"eiImportedAs":null},{"eiModule":["Data","Ord"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[7,18],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Conj.purs","end":[7,28]},"Ord1"]}]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDType":{"edTypeName":"Conj","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[15,23],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Conj.purs","end":[15,24]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},"edTypeDeclarationKind":{"DataType":{"args":[["a",{"annotation":[{"start":[15,23],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Conj.purs","end":[15,24]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]],"ctors":[["Conj",[{"annotation":[{"start":[15,23],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Conj.purs","end":[15,24]},[]],"tag":"TypeVar","contents":"a"}]]]}}}},{"EDDataConstructor":{"edDataCtorName":"Conj","edDataCtorOrigin":"newtype","edDataCtorTypeCtor":"Conj","edDataCtorType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[15,23],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Conj.purs","end":[15,24]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Monoid","Conj"],"Conj"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"a"}]}]},null]},"edDataCtorFields":[{"Ident":"value0"}]}},{"EDInstance":{"edInstanceClassName":[["Data","Eq"],"Eq"],"edInstanceName":{"Ident":"eqConj"},"edInstanceTypes":[{"annotation":[{"start":[17,47],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Conj.purs","end":[17,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[17,47],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Conj.purs","end":[17,51]},[]],"tag":"TypeConstructor","contents":[["Data","Monoid","Conj"],"Conj"]},{"annotation":[{"start":[17,52],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Conj.purs","end":[17,53]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[17,35],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Conj.purs","end":[17,39]},[]],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[{"start":[17,38],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Conj.purs","end":[17,39]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","Monoid","Conj"],{"Ident":"eqConj"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Eq"],"Eq1"],"edInstanceName":{"Ident":"eq1Conj"},"edInstanceTypes":[{"annotation":[{"start":[18,32],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Conj.purs","end":[18,36]},[]],"tag":"TypeConstructor","contents":[["Data","Monoid","Conj"],"Conj"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Monoid","Conj"],{"Ident":"eq1Conj"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Ord"],"Ord"],"edInstanceName":{"Ident":"ordConj"},"edInstanceTypes":[{"annotation":[{"start":[20,50],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Conj.purs","end":[20,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[20,50],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Conj.purs","end":[20,54]},[]],"tag":"TypeConstructor","contents":[["Data","Monoid","Conj"],"Conj"]},{"annotation":[{"start":[20,55],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Conj.purs","end":[20,56]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[20,36],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Conj.purs","end":[20,41]},[]],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[{"start":[20,40],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Conj.purs","end":[20,41]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","Monoid","Conj"],{"Ident":"ordConj"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Ord"],"Ord1"],"edInstanceName":{"Ident":"ord1Conj"},"edInstanceTypes":[{"annotation":[{"start":[21,34],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Conj.purs","end":[21,38]},[]],"tag":"TypeConstructor","contents":[["Data","Monoid","Conj"],"Conj"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Monoid","Conj"],{"Ident":"ord1Conj"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Bounded"],"Bounded"],"edInstanceName":{"Ident":"boundedConj"},"edInstanceTypes":[{"annotation":[{"start":[23,62],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Conj.purs","end":[23,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[23,62],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Conj.purs","end":[23,66]},[]],"tag":"TypeConstructor","contents":[["Data","Monoid","Conj"],"Conj"]},{"annotation":[{"start":[23,67],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Conj.purs","end":[23,68]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[23,40],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Conj.purs","end":[23,49]},[]],"constraintClass":[["Data","Bounded"],"Bounded"],"constraintArgs":[{"annotation":[{"start":[23,48],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Conj.purs","end":[23,49]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","Monoid","Conj"],{"Ident":"boundedConj"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Show"],"Show"],"edInstanceName":{"Ident":"showConj"},"edInstanceTypes":[{"annotation":[{"start":[25,40],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Conj.purs","end":[25,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[25,40],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Conj.purs","end":[25,44]},[]],"tag":"TypeConstructor","contents":[["Data","Monoid","Conj"],"Conj"]},{"annotation":[{"start":[25,45],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Conj.purs","end":[25,46]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[25,23],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Conj.purs","end":[25,29]},[]],"constraintClass":[["Data","Show"],"Show"],"constraintArgs":[{"annotation":[{"start":[25,28],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Conj.purs","end":[25,29]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","Monoid","Conj"],{"Ident":"showConj"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Functor"],"Functor"],"edInstanceName":{"Ident":"functorConj"},"edInstanceTypes":[{"annotation":[{"start":[28,40],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Conj.purs","end":[28,44]},[]],"tag":"TypeConstructor","contents":[["Data","Monoid","Conj"],"Conj"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Monoid","Conj"],{"Ident":"functorConj"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Apply"],"Apply"],"edInstanceName":{"Ident":"applyConj"},"edInstanceTypes":[{"annotation":[{"start":[30,29],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Conj.purs","end":[30,33]},[]],"tag":"TypeConstructor","contents":[["Data","Monoid","Conj"],"Conj"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Monoid","Conj"],{"Ident":"applyConj"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Applicative"],"Applicative"],"edInstanceName":{"Ident":"applicativeConj"},"edInstanceTypes":[{"annotation":[{"start":[33,41],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Conj.purs","end":[33,45]},[]],"tag":"TypeConstructor","contents":[["Data","Monoid","Conj"],"Conj"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Monoid","Conj"],{"Ident":"applicativeConj"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Bind"],"Bind"],"edInstanceName":{"Ident":"bindConj"},"edInstanceTypes":[{"annotation":[{"start":[36,27],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Conj.purs","end":[36,31]},[]],"tag":"TypeConstructor","contents":[["Data","Monoid","Conj"],"Conj"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Monoid","Conj"],{"Ident":"bindConj"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Monad"],"Monad"],"edInstanceName":{"Ident":"monadConj"},"edInstanceTypes":[{"annotation":[{"start":[39,29],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Conj.purs","end":[39,33]},[]],"tag":"TypeConstructor","contents":[["Data","Monoid","Conj"],"Conj"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Monoid","Conj"],{"Ident":"monadConj"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Semigroup"],"Semigroup"],"edInstanceName":{"Ident":"semigroupConj"},"edInstanceTypes":[{"annotation":[{"start":[41,58],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Conj.purs","end":[41,64]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[41,58],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Conj.purs","end":[41,62]},[]],"tag":"TypeConstructor","contents":[["Data","Monoid","Conj"],"Conj"]},{"annotation":[{"start":[41,63],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Conj.purs","end":[41,64]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[41,27],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Conj.purs","end":[41,43]},[]],"constraintClass":[["Data","HeytingAlgebra"],"HeytingAlgebra"],"constraintArgs":[{"annotation":[{"start":[41,42],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Conj.purs","end":[41,43]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","Monoid","Conj"],{"Ident":"semigroupConj"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Monoid"],"Monoid"],"edInstanceName":{"Ident":"monoidConj"},"edInstanceTypes":[{"annotation":[{"start":[44,52],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Conj.purs","end":[44,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[44,52],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Conj.purs","end":[44,56]},[]],"tag":"TypeConstructor","contents":[["Data","Monoid","Conj"],"Conj"]},{"annotation":[{"start":[44,57],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Conj.purs","end":[44,58]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[44,24],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Conj.purs","end":[44,40]},[]],"constraintClass":[["Data","HeytingAlgebra"],"HeytingAlgebra"],"constraintArgs":[{"annotation":[{"start":[44,39],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Conj.purs","end":[44,40]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","Monoid","Conj"],{"Ident":"monoidConj"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Semiring"],"Semiring"],"edInstanceName":{"Ident":"semiringConj"},"edInstanceTypes":[{"annotation":[{"start":[47,56],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Conj.purs","end":[47,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[47,56],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Conj.purs","end":[47,60]},[]],"tag":"TypeConstructor","contents":[["Data","Monoid","Conj"],"Conj"]},{"annotation":[{"start":[47,61],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Conj.purs","end":[47,62]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[47,26],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Conj.purs","end":[47,42]},[]],"constraintClass":[["Data","HeytingAlgebra"],"HeytingAlgebra"],"constraintArgs":[{"annotation":[{"start":[47,41],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Conj.purs","end":[47,42]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","Monoid","Conj"],{"Ident":"semiringConj"}]],"edInstanceChainIndex":0}}],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Conj.purs","end":[51,42]}}
diff --git a/tests/purs/publish/basic-example/output/Data.Monoid.Disj/docs.json b/tests/purs/publish/basic-example/output/Data.Monoid.Disj/docs.json
--- a/tests/purs/publish/basic-example/output/Data.Monoid.Disj/docs.json
+++ b/tests/purs/publish/basic-example/output/Data.Monoid.Disj/docs.json
@@ -1,1 +1,1 @@
-{"reExports":[],"name":"Data.Monoid.Disj","comments":null,"declarations":[{"children":[{"comments":null,"title":"Disj","info":{"arguments":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"declType":"dataConstructor"},"sourceSpan":null},{"comments":null,"title":"eqDisj","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Eq"],"Eq"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Disj"],"Disj"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[17,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Disj.purs","end":[17,54]}},{"comments":null,"title":"eq1Disj","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Eq"],"Eq1"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Disj"],"Disj"]}]}},"sourceSpan":{"start":[18,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Disj.purs","end":[18,36]}},{"comments":null,"title":"ordDisj","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord"],"Ord"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Disj"],"Disj"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[20,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Disj.purs","end":[20,57]}},{"comments":null,"title":"ord1Disj","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord"],"Ord1"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Disj"],"Disj"]}]}},"sourceSpan":{"start":[21,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Disj.purs","end":[21,38]}},{"comments":null,"title":"boundedDisj","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Bounded"],"Bounded"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Bounded"],"Bounded"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Disj"],"Disj"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[23,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Disj.purs","end":[23,69]}},{"comments":null,"title":"showDisj","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Show"],"Show"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Show"],"Show"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Disj"],"Disj"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[25,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Disj.purs","end":[26,44]}},{"comments":null,"title":"functorDisj","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Functor"],"Functor"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Disj"],"Disj"]}]}},"sourceSpan":{"start":[28,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Disj.purs","end":[28,44]}},{"comments":null,"title":"applyDisj","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Apply"],"Apply"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Disj"],"Disj"]}]}},"sourceSpan":{"start":[30,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Disj.purs","end":[31,39]}},{"comments":null,"title":"applicativeDisj","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Applicative"],"Applicative"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Disj"],"Disj"]}]}},"sourceSpan":{"start":[33,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Disj.purs","end":[34,14]}},{"comments":null,"title":"bindDisj","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Bind"],"Bind"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Disj"],"Disj"]}]}},"sourceSpan":{"start":[36,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Disj.purs","end":[37,24]}},{"comments":null,"title":"monadDisj","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Monad"],"Monad"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Disj"],"Disj"]}]}},"sourceSpan":{"start":[39,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Disj.purs","end":[39,33]}},{"comments":null,"title":"semigroupDisj","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","HeytingAlgebra"],"HeytingAlgebra"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup"],"Semigroup"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Disj"],"Disj"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[41,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Disj.purs","end":[42,45]}},{"comments":null,"title":"monoidDisj","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","HeytingAlgebra"],"HeytingAlgebra"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid"],"Monoid"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Disj"],"Disj"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[44,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Disj.purs","end":[45,19]}},{"comments":null,"title":"semiringDisj","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","HeytingAlgebra"],"HeytingAlgebra"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semiring"],"Semiring"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Disj"],"Disj"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[47,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Disj.purs","end":[51,42]}}],"comments":"Monoid and semigroup for disjuntion.\n\n``` purescript\nDisj x <> Disj y == Disj (x || y)\nmempty :: Disj _ == Disj bottom\n```\n","title":"Disj","info":{"declType":"data","dataDeclType":"newtype","typeArguments":[["a",null]]},"sourceSpan":{"start":[15,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Disj.purs","end":[15,24]}}]}
+{"comments":null,"declarations":[{"children":[{"comments":null,"info":{"arguments":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"declType":"dataConstructor"},"sourceSpan":{"end":[15,24],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Disj.purs","start":[15,16]},"title":"Disj"},{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","Eq"],"Eq"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Eq"],"Eq"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Monoid","Disj"],"Disj"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[17,54],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Disj.purs","start":[17,1]},"title":"eqDisj"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Eq"],"Eq1"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Monoid","Disj"],"Disj"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[18,36],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Disj.purs","start":[18,1]},"title":"eq1Disj"},{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","Ord"],"Ord"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Ord"],"Ord"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Monoid","Disj"],"Disj"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[20,57],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Disj.purs","start":[20,1]},"title":"ordDisj"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Ord"],"Ord1"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Monoid","Disj"],"Disj"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[21,38],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Disj.purs","start":[21,1]},"title":"ord1Disj"},{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","Bounded"],"Bounded"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Bounded"],"Bounded"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Monoid","Disj"],"Disj"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[23,69],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Disj.purs","start":[23,1]},"title":"boundedDisj"},{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","Show"],"Show"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Show"],"Show"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Monoid","Disj"],"Disj"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[26,44],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Disj.purs","start":[25,1]},"title":"showDisj"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Functor"],"Functor"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Monoid","Disj"],"Disj"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[28,44],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Disj.purs","start":[28,1]},"title":"functorDisj"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Control","Apply"],"Apply"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Monoid","Disj"],"Disj"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[31,39],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Disj.purs","start":[30,1]},"title":"applyDisj"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Control","Applicative"],"Applicative"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Monoid","Disj"],"Disj"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[34,14],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Disj.purs","start":[33,1]},"title":"applicativeDisj"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Control","Bind"],"Bind"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Monoid","Disj"],"Disj"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[37,24],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Disj.purs","start":[36,1]},"title":"bindDisj"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Control","Monad"],"Monad"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Monoid","Disj"],"Disj"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[39,33],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Disj.purs","start":[39,1]},"title":"monadDisj"},{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","HeytingAlgebra"],"HeytingAlgebra"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Semigroup"],"Semigroup"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Monoid","Disj"],"Disj"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[42,45],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Disj.purs","start":[41,1]},"title":"semigroupDisj"},{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","HeytingAlgebra"],"HeytingAlgebra"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Monoid"],"Monoid"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Monoid","Disj"],"Disj"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[45,19],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Disj.purs","start":[44,1]},"title":"monoidDisj"},{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","HeytingAlgebra"],"HeytingAlgebra"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Semiring"],"Semiring"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Monoid","Disj"],"Disj"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[51,42],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Disj.purs","start":[47,1]},"title":"semiringDisj"}],"comments":"Monoid and semigroup for disjunction.\n\n``` purescript\nDisj x <> Disj y == Disj (x || y)\n(mempty :: Disj _) == Disj bottom\n```\n","info":{"dataDeclType":"newtype","declType":"data","roles":["Representational"],"typeArguments":[["a",null]]},"kind":null,"sourceSpan":{"end":[15,24],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Disj.purs","start":[15,1]},"title":"Disj"}],"name":"Data.Monoid.Disj","reExports":[]}
diff --git a/tests/purs/publish/basic-example/output/Data.Monoid.Disj/externs.json b/tests/purs/publish/basic-example/output/Data.Monoid.Disj/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.Monoid.Disj/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Data","Monoid","Disj"],"efExports":[{"TypeRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Disj.purs","end":[51,42]},"Disj",["Disj"]]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"eqDisj"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"eq1Disj"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"ordDisj"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"ord1Disj"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"boundedDisj"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"showDisj"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"functorDisj"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"applyDisj"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"applicativeDisj"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"bindDisj"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"monadDisj"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"semigroupDisj"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"monoidDisj"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"semiringDisj"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Prelude"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Data","Eq"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[5,17],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Disj.purs","end":[5,26]},"Eq1"]}]},"eiImportedAs":null},{"eiModule":["Data","HeytingAlgebra"],"eiImportType":{"Explicit":[{"ValueRef":[{"start":[6,29],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Disj.purs","end":[6,31]},{"Ident":"ff"}]},{"ValueRef":[{"start":[6,33],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Disj.purs","end":[6,35]},{"Ident":"tt"}]}]},"eiImportedAs":null},{"eiModule":["Data","Ord"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[7,18],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Disj.purs","end":[7,28]},"Ord1"]}]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDType":{"edTypeName":"Disj","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[15,23],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Disj.purs","end":[15,24]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},"edTypeDeclarationKind":{"DataType":{"args":[["a",{"annotation":[{"start":[15,23],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Disj.purs","end":[15,24]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]],"ctors":[["Disj",[{"annotation":[{"start":[15,23],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Disj.purs","end":[15,24]},[]],"tag":"TypeVar","contents":"a"}]]]}}}},{"EDDataConstructor":{"edDataCtorName":"Disj","edDataCtorOrigin":"newtype","edDataCtorTypeCtor":"Disj","edDataCtorType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[15,23],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Disj.purs","end":[15,24]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Monoid","Disj"],"Disj"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"a"}]}]},null]},"edDataCtorFields":[{"Ident":"value0"}]}},{"EDInstance":{"edInstanceClassName":[["Data","Eq"],"Eq"],"edInstanceName":{"Ident":"eqDisj"},"edInstanceTypes":[{"annotation":[{"start":[17,47],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Disj.purs","end":[17,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[17,47],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Disj.purs","end":[17,51]},[]],"tag":"TypeConstructor","contents":[["Data","Monoid","Disj"],"Disj"]},{"annotation":[{"start":[17,52],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Disj.purs","end":[17,53]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[17,35],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Disj.purs","end":[17,39]},[]],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[{"start":[17,38],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Disj.purs","end":[17,39]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","Monoid","Disj"],{"Ident":"eqDisj"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Eq"],"Eq1"],"edInstanceName":{"Ident":"eq1Disj"},"edInstanceTypes":[{"annotation":[{"start":[18,32],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Disj.purs","end":[18,36]},[]],"tag":"TypeConstructor","contents":[["Data","Monoid","Disj"],"Disj"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Monoid","Disj"],{"Ident":"eq1Disj"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Ord"],"Ord"],"edInstanceName":{"Ident":"ordDisj"},"edInstanceTypes":[{"annotation":[{"start":[20,50],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Disj.purs","end":[20,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[20,50],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Disj.purs","end":[20,54]},[]],"tag":"TypeConstructor","contents":[["Data","Monoid","Disj"],"Disj"]},{"annotation":[{"start":[20,55],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Disj.purs","end":[20,56]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[20,36],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Disj.purs","end":[20,41]},[]],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[{"start":[20,40],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Disj.purs","end":[20,41]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","Monoid","Disj"],{"Ident":"ordDisj"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Ord"],"Ord1"],"edInstanceName":{"Ident":"ord1Disj"},"edInstanceTypes":[{"annotation":[{"start":[21,34],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Disj.purs","end":[21,38]},[]],"tag":"TypeConstructor","contents":[["Data","Monoid","Disj"],"Disj"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Monoid","Disj"],{"Ident":"ord1Disj"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Bounded"],"Bounded"],"edInstanceName":{"Ident":"boundedDisj"},"edInstanceTypes":[{"annotation":[{"start":[23,62],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Disj.purs","end":[23,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[23,62],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Disj.purs","end":[23,66]},[]],"tag":"TypeConstructor","contents":[["Data","Monoid","Disj"],"Disj"]},{"annotation":[{"start":[23,67],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Disj.purs","end":[23,68]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[23,40],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Disj.purs","end":[23,49]},[]],"constraintClass":[["Data","Bounded"],"Bounded"],"constraintArgs":[{"annotation":[{"start":[23,48],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Disj.purs","end":[23,49]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","Monoid","Disj"],{"Ident":"boundedDisj"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Show"],"Show"],"edInstanceName":{"Ident":"showDisj"},"edInstanceTypes":[{"annotation":[{"start":[25,38],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Disj.purs","end":[25,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[25,38],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Disj.purs","end":[25,42]},[]],"tag":"TypeConstructor","contents":[["Data","Monoid","Disj"],"Disj"]},{"annotation":[{"start":[25,43],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Disj.purs","end":[25,44]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[25,22],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Disj.purs","end":[25,28]},[]],"constraintClass":[["Data","Show"],"Show"],"constraintArgs":[{"annotation":[{"start":[25,27],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Disj.purs","end":[25,28]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","Monoid","Disj"],{"Ident":"showDisj"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Functor"],"Functor"],"edInstanceName":{"Ident":"functorDisj"},"edInstanceTypes":[{"annotation":[{"start":[28,40],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Disj.purs","end":[28,44]},[]],"tag":"TypeConstructor","contents":[["Data","Monoid","Disj"],"Disj"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Monoid","Disj"],{"Ident":"functorDisj"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Apply"],"Apply"],"edInstanceName":{"Ident":"applyDisj"},"edInstanceTypes":[{"annotation":[{"start":[30,29],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Disj.purs","end":[30,33]},[]],"tag":"TypeConstructor","contents":[["Data","Monoid","Disj"],"Disj"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Monoid","Disj"],{"Ident":"applyDisj"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Applicative"],"Applicative"],"edInstanceName":{"Ident":"applicativeDisj"},"edInstanceTypes":[{"annotation":[{"start":[33,41],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Disj.purs","end":[33,45]},[]],"tag":"TypeConstructor","contents":[["Data","Monoid","Disj"],"Disj"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Monoid","Disj"],{"Ident":"applicativeDisj"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Bind"],"Bind"],"edInstanceName":{"Ident":"bindDisj"},"edInstanceTypes":[{"annotation":[{"start":[36,27],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Disj.purs","end":[36,31]},[]],"tag":"TypeConstructor","contents":[["Data","Monoid","Disj"],"Disj"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Monoid","Disj"],{"Ident":"bindDisj"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Monad"],"Monad"],"edInstanceName":{"Ident":"monadDisj"},"edInstanceTypes":[{"annotation":[{"start":[39,29],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Disj.purs","end":[39,33]},[]],"tag":"TypeConstructor","contents":[["Data","Monoid","Disj"],"Disj"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Monoid","Disj"],{"Ident":"monadDisj"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Semigroup"],"Semigroup"],"edInstanceName":{"Ident":"semigroupDisj"},"edInstanceTypes":[{"annotation":[{"start":[41,58],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Disj.purs","end":[41,64]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[41,58],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Disj.purs","end":[41,62]},[]],"tag":"TypeConstructor","contents":[["Data","Monoid","Disj"],"Disj"]},{"annotation":[{"start":[41,63],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Disj.purs","end":[41,64]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[41,27],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Disj.purs","end":[41,43]},[]],"constraintClass":[["Data","HeytingAlgebra"],"HeytingAlgebra"],"constraintArgs":[{"annotation":[{"start":[41,42],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Disj.purs","end":[41,43]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","Monoid","Disj"],{"Ident":"semigroupDisj"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Monoid"],"Monoid"],"edInstanceName":{"Ident":"monoidDisj"},"edInstanceTypes":[{"annotation":[{"start":[44,52],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Disj.purs","end":[44,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[44,52],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Disj.purs","end":[44,56]},[]],"tag":"TypeConstructor","contents":[["Data","Monoid","Disj"],"Disj"]},{"annotation":[{"start":[44,57],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Disj.purs","end":[44,58]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[44,24],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Disj.purs","end":[44,40]},[]],"constraintClass":[["Data","HeytingAlgebra"],"HeytingAlgebra"],"constraintArgs":[{"annotation":[{"start":[44,39],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Disj.purs","end":[44,40]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","Monoid","Disj"],{"Ident":"monoidDisj"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Semiring"],"Semiring"],"edInstanceName":{"Ident":"semiringDisj"},"edInstanceTypes":[{"annotation":[{"start":[47,56],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Disj.purs","end":[47,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[47,56],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Disj.purs","end":[47,60]},[]],"tag":"TypeConstructor","contents":[["Data","Monoid","Disj"],"Disj"]},{"annotation":[{"start":[47,61],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Disj.purs","end":[47,62]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[47,26],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Disj.purs","end":[47,42]},[]],"constraintClass":[["Data","HeytingAlgebra"],"HeytingAlgebra"],"constraintArgs":[{"annotation":[{"start":[47,41],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Disj.purs","end":[47,42]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","Monoid","Disj"],{"Ident":"semiringDisj"}]],"edInstanceChainIndex":0}}],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Disj.purs","end":[51,42]}}
diff --git a/tests/purs/publish/basic-example/output/Data.Monoid.Dual/docs.json b/tests/purs/publish/basic-example/output/Data.Monoid.Dual/docs.json
--- a/tests/purs/publish/basic-example/output/Data.Monoid.Dual/docs.json
+++ b/tests/purs/publish/basic-example/output/Data.Monoid.Dual/docs.json
@@ -1,1 +1,1 @@
-{"reExports":[],"name":"Data.Monoid.Dual","comments":null,"declarations":[{"children":[{"comments":null,"title":"Dual","info":{"arguments":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"declType":"dataConstructor"},"sourceSpan":null},{"comments":null,"title":"eqDual","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Eq"],"Eq"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Dual"],"Dual"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[16,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Dual.purs","end":[16,54]}},{"comments":null,"title":"eq1Dual","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Eq"],"Eq1"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Dual"],"Dual"]}]}},"sourceSpan":{"start":[17,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Dual.purs","end":[17,36]}},{"comments":null,"title":"ordDual","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord"],"Ord"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Dual"],"Dual"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[19,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Dual.purs","end":[19,57]}},{"comments":null,"title":"ord1Dual","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord"],"Ord1"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Dual"],"Dual"]}]}},"sourceSpan":{"start":[20,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Dual.purs","end":[20,38]}},{"comments":null,"title":"boundedDual","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Bounded"],"Bounded"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Bounded"],"Bounded"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Dual"],"Dual"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[22,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Dual.purs","end":[22,69]}},{"comments":null,"title":"showDual","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Show"],"Show"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Show"],"Show"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Dual"],"Dual"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[24,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Dual.purs","end":[25,44]}},{"comments":null,"title":"functorDual","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Functor"],"Functor"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Dual"],"Dual"]}]}},"sourceSpan":{"start":[27,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Dual.purs","end":[27,44]}},{"comments":null,"title":"applyDual","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Apply"],"Apply"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Dual"],"Dual"]}]}},"sourceSpan":{"start":[29,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Dual.purs","end":[30,39]}},{"comments":null,"title":"applicativeDual","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Applicative"],"Applicative"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Dual"],"Dual"]}]}},"sourceSpan":{"start":[32,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Dual.purs","end":[33,14]}},{"comments":null,"title":"bindDual","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Bind"],"Bind"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Dual"],"Dual"]}]}},"sourceSpan":{"start":[35,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Dual.purs","end":[36,24]}},{"comments":null,"title":"monadDual","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Monad"],"Monad"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Dual"],"Dual"]}]}},"sourceSpan":{"start":[38,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Dual.purs","end":[38,33]}},{"comments":null,"title":"semigroupDual","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Semigroup"],"Semigroup"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup"],"Semigroup"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Dual"],"Dual"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[40,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Dual.purs","end":[41,43]}},{"comments":null,"title":"monoidDual","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Monoid"],"Monoid"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid"],"Monoid"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Dual"],"Dual"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[43,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Dual.purs","end":[44,23]}}],"comments":"The dual of a monoid.\n\n``` purescript\nDual x <> Dual y == Dual (y <> x)\nmempty :: Dual _ == Dual mempty\n```\n","title":"Dual","info":{"declType":"data","dataDeclType":"newtype","typeArguments":[["a",null]]},"sourceSpan":{"start":[14,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Dual.purs","end":[14,24]}}]}
+{"comments":null,"declarations":[{"children":[{"comments":null,"info":{"arguments":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"declType":"dataConstructor"},"sourceSpan":{"end":[14,24],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Dual.purs","start":[14,16]},"title":"Dual"},{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","Eq"],"Eq"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Eq"],"Eq"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Monoid","Dual"],"Dual"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[16,54],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Dual.purs","start":[16,1]},"title":"eqDual"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Eq"],"Eq1"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Monoid","Dual"],"Dual"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[17,36],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Dual.purs","start":[17,1]},"title":"eq1Dual"},{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","Ord"],"Ord"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Ord"],"Ord"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Monoid","Dual"],"Dual"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[19,57],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Dual.purs","start":[19,1]},"title":"ordDual"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Ord"],"Ord1"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Monoid","Dual"],"Dual"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[20,38],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Dual.purs","start":[20,1]},"title":"ord1Dual"},{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","Bounded"],"Bounded"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Bounded"],"Bounded"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Monoid","Dual"],"Dual"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[22,69],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Dual.purs","start":[22,1]},"title":"boundedDual"},{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","Show"],"Show"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Show"],"Show"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Monoid","Dual"],"Dual"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[25,44],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Dual.purs","start":[24,1]},"title":"showDual"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Functor"],"Functor"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Monoid","Dual"],"Dual"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[27,44],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Dual.purs","start":[27,1]},"title":"functorDual"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Control","Apply"],"Apply"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Monoid","Dual"],"Dual"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[30,39],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Dual.purs","start":[29,1]},"title":"applyDual"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Control","Applicative"],"Applicative"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Monoid","Dual"],"Dual"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[33,14],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Dual.purs","start":[32,1]},"title":"applicativeDual"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Control","Bind"],"Bind"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Monoid","Dual"],"Dual"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[36,24],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Dual.purs","start":[35,1]},"title":"bindDual"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Control","Monad"],"Monad"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Monoid","Dual"],"Dual"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[38,33],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Dual.purs","start":[38,1]},"title":"monadDual"},{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","Semigroup"],"Semigroup"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Semigroup"],"Semigroup"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Monoid","Dual"],"Dual"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[41,43],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Dual.purs","start":[40,1]},"title":"semigroupDual"},{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","Monoid"],"Monoid"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Monoid"],"Monoid"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Monoid","Dual"],"Dual"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[44,23],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Dual.purs","start":[43,1]},"title":"monoidDual"}],"comments":"The dual of a monoid.\n\n``` purescript\nDual x <> Dual y == Dual (y <> x)\n(mempty :: Dual _) == Dual mempty\n```\n","info":{"dataDeclType":"newtype","declType":"data","roles":["Representational"],"typeArguments":[["a",null]]},"kind":null,"sourceSpan":{"end":[14,24],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Dual.purs","start":[14,1]},"title":"Dual"}],"name":"Data.Monoid.Dual","reExports":[]}
diff --git a/tests/purs/publish/basic-example/output/Data.Monoid.Dual/externs.json b/tests/purs/publish/basic-example/output/Data.Monoid.Dual/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.Monoid.Dual/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Data","Monoid","Dual"],"efExports":[{"TypeRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Dual.purs","end":[44,23]},"Dual",["Dual"]]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"eqDual"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"eq1Dual"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"ordDual"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"ord1Dual"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"boundedDual"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"showDual"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"functorDual"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"applyDual"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"applicativeDual"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"bindDual"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"monadDual"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"semigroupDual"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"monoidDual"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Prelude"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Data","Eq"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[5,17],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Dual.purs","end":[5,26]},"Eq1"]}]},"eiImportedAs":null},{"eiModule":["Data","Ord"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[6,18],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Dual.purs","end":[6,28]},"Ord1"]}]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDType":{"edTypeName":"Dual","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[14,23],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Dual.purs","end":[14,24]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},"edTypeDeclarationKind":{"DataType":{"args":[["a",{"annotation":[{"start":[14,23],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Dual.purs","end":[14,24]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]],"ctors":[["Dual",[{"annotation":[{"start":[14,23],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Dual.purs","end":[14,24]},[]],"tag":"TypeVar","contents":"a"}]]]}}}},{"EDDataConstructor":{"edDataCtorName":"Dual","edDataCtorOrigin":"newtype","edDataCtorTypeCtor":"Dual","edDataCtorType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[14,23],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Dual.purs","end":[14,24]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Monoid","Dual"],"Dual"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"a"}]}]},null]},"edDataCtorFields":[{"Ident":"value0"}]}},{"EDInstance":{"edInstanceClassName":[["Data","Eq"],"Eq"],"edInstanceName":{"Ident":"eqDual"},"edInstanceTypes":[{"annotation":[{"start":[16,47],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Dual.purs","end":[16,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[16,47],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Dual.purs","end":[16,51]},[]],"tag":"TypeConstructor","contents":[["Data","Monoid","Dual"],"Dual"]},{"annotation":[{"start":[16,52],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Dual.purs","end":[16,53]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[16,35],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Dual.purs","end":[16,39]},[]],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[{"start":[16,38],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Dual.purs","end":[16,39]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","Monoid","Dual"],{"Ident":"eqDual"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Eq"],"Eq1"],"edInstanceName":{"Ident":"eq1Dual"},"edInstanceTypes":[{"annotation":[{"start":[17,32],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Dual.purs","end":[17,36]},[]],"tag":"TypeConstructor","contents":[["Data","Monoid","Dual"],"Dual"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Monoid","Dual"],{"Ident":"eq1Dual"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Ord"],"Ord"],"edInstanceName":{"Ident":"ordDual"},"edInstanceTypes":[{"annotation":[{"start":[19,50],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Dual.purs","end":[19,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[19,50],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Dual.purs","end":[19,54]},[]],"tag":"TypeConstructor","contents":[["Data","Monoid","Dual"],"Dual"]},{"annotation":[{"start":[19,55],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Dual.purs","end":[19,56]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[19,36],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Dual.purs","end":[19,41]},[]],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[{"start":[19,40],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Dual.purs","end":[19,41]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","Monoid","Dual"],{"Ident":"ordDual"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Ord"],"Ord1"],"edInstanceName":{"Ident":"ord1Dual"},"edInstanceTypes":[{"annotation":[{"start":[20,34],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Dual.purs","end":[20,38]},[]],"tag":"TypeConstructor","contents":[["Data","Monoid","Dual"],"Dual"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Monoid","Dual"],{"Ident":"ord1Dual"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Bounded"],"Bounded"],"edInstanceName":{"Ident":"boundedDual"},"edInstanceTypes":[{"annotation":[{"start":[22,62],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Dual.purs","end":[22,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[22,62],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Dual.purs","end":[22,66]},[]],"tag":"TypeConstructor","contents":[["Data","Monoid","Dual"],"Dual"]},{"annotation":[{"start":[22,67],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Dual.purs","end":[22,68]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[22,40],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Dual.purs","end":[22,49]},[]],"constraintClass":[["Data","Bounded"],"Bounded"],"constraintArgs":[{"annotation":[{"start":[22,48],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Dual.purs","end":[22,49]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","Monoid","Dual"],{"Ident":"boundedDual"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Show"],"Show"],"edInstanceName":{"Ident":"showDual"},"edInstanceTypes":[{"annotation":[{"start":[24,38],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Dual.purs","end":[24,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[24,38],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Dual.purs","end":[24,42]},[]],"tag":"TypeConstructor","contents":[["Data","Monoid","Dual"],"Dual"]},{"annotation":[{"start":[24,43],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Dual.purs","end":[24,44]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[24,22],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Dual.purs","end":[24,28]},[]],"constraintClass":[["Data","Show"],"Show"],"constraintArgs":[{"annotation":[{"start":[24,27],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Dual.purs","end":[24,28]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","Monoid","Dual"],{"Ident":"showDual"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Functor"],"Functor"],"edInstanceName":{"Ident":"functorDual"},"edInstanceTypes":[{"annotation":[{"start":[27,40],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Dual.purs","end":[27,44]},[]],"tag":"TypeConstructor","contents":[["Data","Monoid","Dual"],"Dual"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Monoid","Dual"],{"Ident":"functorDual"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Apply"],"Apply"],"edInstanceName":{"Ident":"applyDual"},"edInstanceTypes":[{"annotation":[{"start":[29,29],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Dual.purs","end":[29,33]},[]],"tag":"TypeConstructor","contents":[["Data","Monoid","Dual"],"Dual"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Monoid","Dual"],{"Ident":"applyDual"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Applicative"],"Applicative"],"edInstanceName":{"Ident":"applicativeDual"},"edInstanceTypes":[{"annotation":[{"start":[32,41],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Dual.purs","end":[32,45]},[]],"tag":"TypeConstructor","contents":[["Data","Monoid","Dual"],"Dual"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Monoid","Dual"],{"Ident":"applicativeDual"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Bind"],"Bind"],"edInstanceName":{"Ident":"bindDual"},"edInstanceTypes":[{"annotation":[{"start":[35,27],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Dual.purs","end":[35,31]},[]],"tag":"TypeConstructor","contents":[["Data","Monoid","Dual"],"Dual"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Monoid","Dual"],{"Ident":"bindDual"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Monad"],"Monad"],"edInstanceName":{"Ident":"monadDual"},"edInstanceTypes":[{"annotation":[{"start":[38,29],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Dual.purs","end":[38,33]},[]],"tag":"TypeConstructor","contents":[["Data","Monoid","Dual"],"Dual"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Monoid","Dual"],{"Ident":"monadDual"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Semigroup"],"Semigroup"],"edInstanceName":{"Ident":"semigroupDual"},"edInstanceTypes":[{"annotation":[{"start":[40,53],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Dual.purs","end":[40,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[40,53],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Dual.purs","end":[40,57]},[]],"tag":"TypeConstructor","contents":[["Data","Monoid","Dual"],"Dual"]},{"annotation":[{"start":[40,58],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Dual.purs","end":[40,59]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[40,27],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Dual.purs","end":[40,38]},[]],"constraintClass":[["Data","Semigroup"],"Semigroup"],"constraintArgs":[{"annotation":[{"start":[40,37],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Dual.purs","end":[40,38]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","Monoid","Dual"],{"Ident":"semigroupDual"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Monoid"],"Monoid"],"edInstanceName":{"Ident":"monoidDual"},"edInstanceTypes":[{"annotation":[{"start":[43,44],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Dual.purs","end":[43,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[43,44],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Dual.purs","end":[43,48]},[]],"tag":"TypeConstructor","contents":[["Data","Monoid","Dual"],"Dual"]},{"annotation":[{"start":[43,49],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Dual.purs","end":[43,50]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[43,24],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Dual.purs","end":[43,32]},[]],"constraintClass":[["Data","Monoid"],"Monoid"],"constraintArgs":[{"annotation":[{"start":[43,31],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Dual.purs","end":[43,32]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","Monoid","Dual"],{"Ident":"monoidDual"}]],"edInstanceChainIndex":0}}],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Dual.purs","end":[44,23]}}
diff --git a/tests/purs/publish/basic-example/output/Data.Monoid.Endo/docs.json b/tests/purs/publish/basic-example/output/Data.Monoid.Endo/docs.json
--- a/tests/purs/publish/basic-example/output/Data.Monoid.Endo/docs.json
+++ b/tests/purs/publish/basic-example/output/Data.Monoid.Endo/docs.json
@@ -1,1 +1,1 @@
-{"reExports":[],"name":"Data.Monoid.Endo","comments":null,"declarations":[{"children":[{"comments":null,"title":"Endo","info":{"arguments":[{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"c"},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}],"declType":"dataConstructor"},"sourceSpan":null},{"comments":null,"title":"eqEndo","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"c"},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Eq"],"Eq"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Endo"],"Endo"]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[16,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Endo.purs","end":[16,62]}},{"comments":null,"title":"ordEndo","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"c"},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord"],"Ord"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Endo"],"Endo"]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[18,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Endo.purs","end":[18,65]}},{"comments":null,"title":"boundedEndo","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Bounded"],"Bounded"],"constraintArgs":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"c"},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Bounded"],"Bounded"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Endo"],"Endo"]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[20,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Endo.purs","end":[20,77]}},{"comments":null,"title":"showEndo","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Show"],"Show"],"constraintArgs":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"c"},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Show"],"Show"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Endo"],"Endo"]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[22,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Endo.purs","end":[23,44]}},{"comments":null,"title":"semigroupEndo","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Control","Semigroupoid"],"Semigroupoid"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"c"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup"],"Semigroup"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Endo"],"Endo"]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[25,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Endo.purs","end":[26,44]}},{"comments":null,"title":"monoidEndo","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Control","Category"],"Category"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"c"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid"],"Monoid"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Endo"],"Endo"]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[28,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Endo.purs","end":[29,25]}}],"comments":"Monoid and semigroup for category endomorphisms.\n\nWhen `c` is instantiated with `->` this composes functions of type\n`a -> a`:\n\n``` purescript\nEndo f <> Endo g == Endo (f <<< g)\nmempty :: Endo _ == Endo identity\n```\n","title":"Endo","info":{"declType":"data","dataDeclType":"newtype","typeArguments":[["c",null],["a",null]]},"sourceSpan":{"start":[14,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Endo.purs","end":[14,32]}}]}
+{"comments":null,"declarations":[{"children":[{"comments":null,"info":{"arguments":[{"annotation":[],"contents":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":"c","tag":"TypeVar"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},"tag":"ParensInType"}],"declType":"dataConstructor"},"sourceSpan":{"end":[15,32],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Endo.purs","start":[15,18]},"title":"Endo"},{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":"c","tag":"TypeVar"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"constraintClass":[["Data","Eq"],"Eq"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Eq"],"Eq"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Monoid","Endo"],"Endo"],"tag":"TypeConstructor"},{"annotation":[],"contents":"c","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[17,62],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Endo.purs","start":[17,1]},"title":"eqEndo"},{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":"c","tag":"TypeVar"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"constraintClass":[["Data","Ord"],"Ord"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Ord"],"Ord"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Monoid","Endo"],"Endo"],"tag":"TypeConstructor"},{"annotation":[],"contents":"c","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[19,65],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Endo.purs","start":[19,1]},"title":"ordEndo"},{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":"c","tag":"TypeVar"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"constraintClass":[["Data","Bounded"],"Bounded"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Bounded"],"Bounded"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Monoid","Endo"],"Endo"],"tag":"TypeConstructor"},{"annotation":[],"contents":"c","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[21,77],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Endo.purs","start":[21,1]},"title":"boundedEndo"},{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":"c","tag":"TypeVar"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"constraintClass":[["Data","Show"],"Show"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Show"],"Show"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Monoid","Endo"],"Endo"],"tag":"TypeConstructor"},{"annotation":[],"contents":"c","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[24,44],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Endo.purs","start":[23,1]},"title":"showEndo"},{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"c","tag":"TypeVar"}],"constraintClass":[["Control","Semigroupoid"],"Semigroupoid"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Semigroup"],"Semigroup"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Monoid","Endo"],"Endo"],"tag":"TypeConstructor"},{"annotation":[],"contents":"c","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[27,44],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Endo.purs","start":[26,1]},"title":"semigroupEndo"},{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"c","tag":"TypeVar"}],"constraintClass":[["Control","Category"],"Category"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Monoid"],"Monoid"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Monoid","Endo"],"Endo"],"tag":"TypeConstructor"},{"annotation":[],"contents":"c","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[30,25],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Endo.purs","start":[29,1]},"title":"monoidEndo"}],"comments":"Monoid and semigroup for category endomorphisms.\n\nWhen `c` is instantiated with `->` this composes functions of type\n`a -> a`:\n\n``` purescript\nEndo f <> Endo g == Endo (f <<< g)\n(mempty :: Endo _) == Endo identity\n```\n","info":{"dataDeclType":"newtype","declType":"data","roles":["Representational","Nominal"],"typeArguments":[["c",null],["a",null]]},"kind":{"keyword":"newtype","kind":{"annotation":[],"contents":{"identifier":"k","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"k","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"k","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"},"tag":"ParensInType"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"k","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"sourceSpan":{"end":[15,32],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Endo.purs","start":[15,1]},"title":"Endo"}],"name":"Data.Monoid.Endo","reExports":[]}
diff --git a/tests/purs/publish/basic-example/output/Data.Monoid.Endo/externs.json b/tests/purs/publish/basic-example/output/Data.Monoid.Endo/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.Monoid.Endo/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Data","Monoid","Endo"],"efExports":[{"TypeRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Endo.purs","end":[29,25]},"Endo",["Endo"]]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"eqEndo"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"ordEndo"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"boundedEndo"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"showEndo"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"semigroupEndo"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"monoidEndo"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Prelude"],"eiImportType":{"Implicit":[]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDType":{"edTypeName":"Endo","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[14,26],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Endo.purs","end":[14,29]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[14,28],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Endo.purs","end":[14,29]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[14,26],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Endo.purs","end":[14,31]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[14,30],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Endo.purs","end":[14,31]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[14,26],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Endo.purs","end":[14,31]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]},"edTypeDeclarationKind":{"DataType":{"args":[["c",{"annotation":[{"start":[14,26],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Endo.purs","end":[14,29]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[14,28],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Endo.purs","end":[14,29]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[14,26],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Endo.purs","end":[14,31]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[14,30],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Endo.purs","end":[14,31]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[14,26],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Endo.purs","end":[14,31]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]}],["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]],"ctors":[["Endo",[{"annotation":[{"start":[14,26],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Endo.purs","end":[14,31]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[14,26],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Endo.purs","end":[14,29]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[14,26],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Endo.purs","end":[14,27]},[]],"tag":"TypeVar","contents":"c"},{"annotation":[{"start":[14,28],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Endo.purs","end":[14,29]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[14,30],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Endo.purs","end":[14,31]},[]],"tag":"TypeVar","contents":"a"}]}]]]}}}},{"EDDataConstructor":{"edDataCtorName":"Endo","edDataCtorOrigin":"newtype","edDataCtorTypeCtor":"Endo","edDataCtorType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[14,26],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Endo.purs","end":[14,31]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[14,26],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Endo.purs","end":[14,29]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[14,26],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Endo.purs","end":[14,27]},[]],"tag":"TypeVar","contents":"c"},{"annotation":[{"start":[14,28],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Endo.purs","end":[14,29]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[14,30],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Endo.purs","end":[14,31]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Monoid","Endo"],"Endo"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"a"}]}]},null]},null]},"edDataCtorFields":[{"Ident":"value0"}]}},{"EDInstance":{"edInstanceClassName":[["Data","Eq"],"Eq"],"edInstanceName":{"Ident":"eqEndo"},"edInstanceTypes":[{"annotation":[{"start":[16,53],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Endo.purs","end":[16,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[16,53],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Endo.purs","end":[16,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[16,53],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Endo.purs","end":[16,57]},[]],"tag":"TypeConstructor","contents":[["Data","Monoid","Endo"],"Endo"]},{"annotation":[{"start":[16,58],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Endo.purs","end":[16,59]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[16,60],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Endo.purs","end":[16,61]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[16,35],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Endo.purs","end":[16,45]},[]],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[{"start":[16,39],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Endo.purs","end":[16,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[16,39],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Endo.purs","end":[16,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[16,39],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Endo.purs","end":[16,40]},[]],"tag":"TypeVar","contents":"c"},{"annotation":[{"start":[16,41],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Endo.purs","end":[16,42]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[16,43],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Endo.purs","end":[16,44]},[]],"tag":"TypeVar","contents":"a"}]}],"constraintData":null}],"edInstanceChain":[[["Data","Monoid","Endo"],{"Ident":"eqEndo"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Ord"],"Ord"],"edInstanceName":{"Ident":"ordEndo"},"edInstanceTypes":[{"annotation":[{"start":[18,56],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Endo.purs","end":[18,64]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,56],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Endo.purs","end":[18,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,56],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Endo.purs","end":[18,60]},[]],"tag":"TypeConstructor","contents":[["Data","Monoid","Endo"],"Endo"]},{"annotation":[{"start":[18,61],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Endo.purs","end":[18,62]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[18,63],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Endo.purs","end":[18,64]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[18,36],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Endo.purs","end":[18,47]},[]],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[{"start":[18,41],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Endo.purs","end":[18,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,41],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Endo.purs","end":[18,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,41],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Endo.purs","end":[18,42]},[]],"tag":"TypeVar","contents":"c"},{"annotation":[{"start":[18,43],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Endo.purs","end":[18,44]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[18,45],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Endo.purs","end":[18,46]},[]],"tag":"TypeVar","contents":"a"}]}],"constraintData":null}],"edInstanceChain":[[["Data","Monoid","Endo"],{"Ident":"ordEndo"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Bounded"],"Bounded"],"edInstanceName":{"Ident":"boundedEndo"},"edInstanceTypes":[{"annotation":[{"start":[20,68],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Endo.purs","end":[20,76]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[20,68],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Endo.purs","end":[20,74]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[20,68],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Endo.purs","end":[20,72]},[]],"tag":"TypeConstructor","contents":[["Data","Monoid","Endo"],"Endo"]},{"annotation":[{"start":[20,73],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Endo.purs","end":[20,74]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[20,75],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Endo.purs","end":[20,76]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[20,40],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Endo.purs","end":[20,55]},[]],"constraintClass":[["Data","Bounded"],"Bounded"],"constraintArgs":[{"annotation":[{"start":[20,49],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Endo.purs","end":[20,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[20,49],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Endo.purs","end":[20,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[20,49],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Endo.purs","end":[20,50]},[]],"tag":"TypeVar","contents":"c"},{"annotation":[{"start":[20,51],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Endo.purs","end":[20,52]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[20,53],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Endo.purs","end":[20,54]},[]],"tag":"TypeVar","contents":"a"}]}],"constraintData":null}],"edInstanceChain":[[["Data","Monoid","Endo"],{"Ident":"boundedEndo"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Show"],"Show"],"edInstanceName":{"Ident":"showEndo"},"edInstanceTypes":[{"annotation":[{"start":[22,44],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Endo.purs","end":[22,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[22,44],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Endo.purs","end":[22,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[22,44],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Endo.purs","end":[22,48]},[]],"tag":"TypeConstructor","contents":[["Data","Monoid","Endo"],"Endo"]},{"annotation":[{"start":[22,49],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Endo.purs","end":[22,50]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[22,51],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Endo.purs","end":[22,52]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[22,22],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Endo.purs","end":[22,34]},[]],"constraintClass":[["Data","Show"],"Show"],"constraintArgs":[{"annotation":[{"start":[22,28],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Endo.purs","end":[22,33]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[22,28],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Endo.purs","end":[22,31]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[22,28],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Endo.purs","end":[22,29]},[]],"tag":"TypeVar","contents":"c"},{"annotation":[{"start":[22,30],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Endo.purs","end":[22,31]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[22,32],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Endo.purs","end":[22,33]},[]],"tag":"TypeVar","contents":"a"}]}],"constraintData":null}],"edInstanceChain":[[["Data","Monoid","Endo"],{"Ident":"showEndo"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Semigroup"],"Semigroup"],"edInstanceName":{"Ident":"semigroupEndo"},"edInstanceTypes":[{"annotation":[{"start":[25,56],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Endo.purs","end":[25,64]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[25,56],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Endo.purs","end":[25,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[25,56],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Endo.purs","end":[25,60]},[]],"tag":"TypeConstructor","contents":[["Data","Monoid","Endo"],"Endo"]},{"annotation":[{"start":[25,61],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Endo.purs","end":[25,62]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[25,63],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Endo.purs","end":[25,64]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[25,27],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Endo.purs","end":[25,41]},[]],"constraintClass":[["Control","Semigroupoid"],"Semigroupoid"],"constraintArgs":[{"annotation":[{"start":[25,40],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Endo.purs","end":[25,41]},[]],"tag":"TypeVar","contents":"c"}],"constraintData":null}],"edInstanceChain":[[["Data","Monoid","Endo"],{"Ident":"semigroupEndo"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Monoid"],"Monoid"],"edInstanceName":{"Ident":"monoidEndo"},"edInstanceTypes":[{"annotation":[{"start":[28,46],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Endo.purs","end":[28,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[28,46],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Endo.purs","end":[28,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[28,46],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Endo.purs","end":[28,50]},[]],"tag":"TypeConstructor","contents":[["Data","Monoid","Endo"],"Endo"]},{"annotation":[{"start":[28,51],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Endo.purs","end":[28,52]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[28,53],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Endo.purs","end":[28,54]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[28,24],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Endo.purs","end":[28,34]},[]],"constraintClass":[["Control","Category"],"Category"],"constraintArgs":[{"annotation":[{"start":[28,33],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Endo.purs","end":[28,34]},[]],"tag":"TypeVar","contents":"c"}],"constraintData":null}],"edInstanceChain":[[["Data","Monoid","Endo"],{"Ident":"monoidEndo"}]],"edInstanceChainIndex":0}}],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Endo.purs","end":[29,25]}}
diff --git a/tests/purs/publish/basic-example/output/Data.Monoid.Generic/docs.json b/tests/purs/publish/basic-example/output/Data.Monoid.Generic/docs.json
new file mode 100644
--- /dev/null
+++ b/tests/purs/publish/basic-example/output/Data.Monoid.Generic/docs.json
@@ -0,0 +1,1 @@
+{"comments":null,"declarations":[{"children":[{"comments":null,"info":{"declType":"typeClassMember","type":{"annotation":[],"contents":"a","tag":"TypeVar"}},"sourceSpan":{"end":[11,22],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Generic.purs","start":[11,3]},"title":"genericMempty'"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Monoid","Generic"],"GenericMonoid"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Generic","Rep"],"NoArguments"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[14,31],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Generic.purs","start":[13,1]},"title":"genericMonoidNoArguments"},{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","Monoid","Generic"],"GenericMonoid"],"constraintData":null,"constraintKindArgs":[]},{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"b","tag":"TypeVar"}],"constraintClass":[["Data","Monoid","Generic"],"GenericMonoid"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Monoid","Generic"],"GenericMonoid"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Generic","Rep"],"Product"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[17,57],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Generic.purs","start":[16,1]},"title":"genericMonoidProduct"},{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","Monoid","Generic"],"GenericMonoid"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Monoid","Generic"],"GenericMonoid"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Generic","Rep"],"Constructor"],"tag":"TypeConstructor"},{"annotation":[],"contents":"name","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[20,46],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Generic.purs","start":[19,1]},"title":"genericMonoidConstructor"},{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","Monoid"],"Monoid"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Monoid","Generic"],"GenericMonoid"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Generic","Rep"],"Argument"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[23,35],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Generic.purs","start":[22,1]},"title":"genericMonoidArgument"}],"comments":null,"info":{"arguments":[["a",null]],"declType":"typeClass","fundeps":[],"superclasses":[]},"kind":null,"sourceSpan":{"end":[11,22],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Generic.purs","start":[10,1]},"title":"GenericMonoid"},{"children":[],"comments":"A `Generic` implementation of the `mempty` member from the `Monoid` type class.\n","info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"rep","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"},{"annotation":[],"contents":"rep","tag":"TypeVar"}],"constraintClass":[["Data","Generic","Rep"],"Generic"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"rep","tag":"TypeVar"}],"constraintClass":[["Data","Monoid","Generic"],"GenericMonoid"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"ConstrainedType"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[26,71],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Generic.purs","start":[26,1]},"title":"genericMempty"}],"name":"Data.Monoid.Generic","reExports":[]}
diff --git a/tests/purs/publish/basic-example/output/Data.Monoid.Multiplicative/docs.json b/tests/purs/publish/basic-example/output/Data.Monoid.Multiplicative/docs.json
--- a/tests/purs/publish/basic-example/output/Data.Monoid.Multiplicative/docs.json
+++ b/tests/purs/publish/basic-example/output/Data.Monoid.Multiplicative/docs.json
@@ -1,1 +1,1 @@
-{"reExports":[],"name":"Data.Monoid.Multiplicative","comments":null,"declarations":[{"children":[{"comments":null,"title":"Multiplicative","info":{"arguments":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"declType":"dataConstructor"},"sourceSpan":null},{"comments":null,"title":"eqMultiplicative","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Eq"],"Eq"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Multiplicative"],"Multiplicative"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[16,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Multiplicative.purs","end":[16,74]}},{"comments":null,"title":"eq1Multiplicative","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Eq"],"Eq1"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Multiplicative"],"Multiplicative"]}]}},"sourceSpan":{"start":[17,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Multiplicative.purs","end":[17,56]}},{"comments":null,"title":"ordMultiplicative","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord"],"Ord"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Multiplicative"],"Multiplicative"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[19,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Multiplicative.purs","end":[19,77]}},{"comments":null,"title":"ord1Multiplicative","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord"],"Ord1"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Multiplicative"],"Multiplicative"]}]}},"sourceSpan":{"start":[20,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Multiplicative.purs","end":[20,58]}},{"comments":null,"title":"boundedMultiplicative","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Bounded"],"Bounded"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Bounded"],"Bounded"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Multiplicative"],"Multiplicative"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[22,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Multiplicative.purs","end":[22,89]}},{"comments":null,"title":"showMultiplicative","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Show"],"Show"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Show"],"Show"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Multiplicative"],"Multiplicative"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[24,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Multiplicative.purs","end":[25,64]}},{"comments":null,"title":"functorMultiplicative","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Functor"],"Functor"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Multiplicative"],"Multiplicative"]}]}},"sourceSpan":{"start":[27,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Multiplicative.purs","end":[27,64]}},{"comments":null,"title":"applyMultiplicative","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Apply"],"Apply"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Multiplicative"],"Multiplicative"]}]}},"sourceSpan":{"start":[29,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Multiplicative.purs","end":[30,69]}},{"comments":null,"title":"applicativeMultiplicative","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Applicative"],"Applicative"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Multiplicative"],"Multiplicative"]}]}},"sourceSpan":{"start":[32,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Multiplicative.purs","end":[33,24]}},{"comments":null,"title":"bindMultiplicative","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Bind"],"Bind"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Multiplicative"],"Multiplicative"]}]}},"sourceSpan":{"start":[35,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Multiplicative.purs","end":[36,34]}},{"comments":null,"title":"monadMultiplicative","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Monad"],"Monad"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Multiplicative"],"Multiplicative"]}]}},"sourceSpan":{"start":[38,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Multiplicative.purs","end":[38,53]}},{"comments":null,"title":"semigroupMultiplicative","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Semiring"],"Semiring"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup"],"Semigroup"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Multiplicative"],"Multiplicative"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[40,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Multiplicative.purs","end":[41,72]}},{"comments":null,"title":"monoidMultiplicative","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Semiring"],"Semiring"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid"],"Monoid"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Multiplicative"],"Multiplicative"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[43,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Multiplicative.purs","end":[44,30]}}],"comments":"Monoid and semigroup for semirings under multiplication.\n\n``` purescript\nMultiplicative x <> Multiplicative y == Multiplicative (x * y)\nmempty :: Multiplicative _ == Multiplicative one\n```\n","title":"Multiplicative","info":{"declType":"data","dataDeclType":"newtype","typeArguments":[["a",null]]},"sourceSpan":{"start":[14,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Multiplicative.purs","end":[14,44]}}]}
+{"comments":null,"declarations":[{"children":[{"comments":null,"info":{"arguments":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"declType":"dataConstructor"},"sourceSpan":{"end":[14,44],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Multiplicative.purs","start":[14,26]},"title":"Multiplicative"},{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","Eq"],"Eq"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Eq"],"Eq"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Monoid","Multiplicative"],"Multiplicative"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[16,74],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Multiplicative.purs","start":[16,1]},"title":"eqMultiplicative"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Eq"],"Eq1"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Monoid","Multiplicative"],"Multiplicative"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[17,56],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Multiplicative.purs","start":[17,1]},"title":"eq1Multiplicative"},{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","Ord"],"Ord"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Ord"],"Ord"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Monoid","Multiplicative"],"Multiplicative"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[19,77],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Multiplicative.purs","start":[19,1]},"title":"ordMultiplicative"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Ord"],"Ord1"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Monoid","Multiplicative"],"Multiplicative"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[20,58],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Multiplicative.purs","start":[20,1]},"title":"ord1Multiplicative"},{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","Bounded"],"Bounded"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Bounded"],"Bounded"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Monoid","Multiplicative"],"Multiplicative"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[22,89],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Multiplicative.purs","start":[22,1]},"title":"boundedMultiplicative"},{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","Show"],"Show"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Show"],"Show"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Monoid","Multiplicative"],"Multiplicative"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[25,64],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Multiplicative.purs","start":[24,1]},"title":"showMultiplicative"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Functor"],"Functor"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Monoid","Multiplicative"],"Multiplicative"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[27,64],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Multiplicative.purs","start":[27,1]},"title":"functorMultiplicative"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Control","Apply"],"Apply"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Monoid","Multiplicative"],"Multiplicative"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[30,69],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Multiplicative.purs","start":[29,1]},"title":"applyMultiplicative"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Control","Applicative"],"Applicative"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Monoid","Multiplicative"],"Multiplicative"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[33,24],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Multiplicative.purs","start":[32,1]},"title":"applicativeMultiplicative"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Control","Bind"],"Bind"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Monoid","Multiplicative"],"Multiplicative"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[36,34],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Multiplicative.purs","start":[35,1]},"title":"bindMultiplicative"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Control","Monad"],"Monad"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Monoid","Multiplicative"],"Multiplicative"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[38,53],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Multiplicative.purs","start":[38,1]},"title":"monadMultiplicative"},{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","Semiring"],"Semiring"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Semigroup"],"Semigroup"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Monoid","Multiplicative"],"Multiplicative"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[41,72],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Multiplicative.purs","start":[40,1]},"title":"semigroupMultiplicative"},{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","Semiring"],"Semiring"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Monoid"],"Monoid"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Monoid","Multiplicative"],"Multiplicative"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[44,30],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Multiplicative.purs","start":[43,1]},"title":"monoidMultiplicative"}],"comments":"Monoid and semigroup for semirings under multiplication.\n\n``` purescript\nMultiplicative x <> Multiplicative y == Multiplicative (x * y)\n(mempty :: Multiplicative _) == Multiplicative one\n```\n","info":{"dataDeclType":"newtype","declType":"data","roles":["Representational"],"typeArguments":[["a",null]]},"kind":null,"sourceSpan":{"end":[14,44],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Multiplicative.purs","start":[14,1]},"title":"Multiplicative"}],"name":"Data.Monoid.Multiplicative","reExports":[]}
diff --git a/tests/purs/publish/basic-example/output/Data.Monoid.Multiplicative/externs.json b/tests/purs/publish/basic-example/output/Data.Monoid.Multiplicative/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.Monoid.Multiplicative/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Data","Monoid","Multiplicative"],"efExports":[{"TypeRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Multiplicative.purs","end":[44,30]},"Multiplicative",["Multiplicative"]]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"eqMultiplicative"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"eq1Multiplicative"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"ordMultiplicative"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"ord1Multiplicative"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"boundedMultiplicative"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"showMultiplicative"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"functorMultiplicative"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"applyMultiplicative"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"applicativeMultiplicative"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"bindMultiplicative"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"monadMultiplicative"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"semigroupMultiplicative"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"monoidMultiplicative"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Prelude"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Data","Eq"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[5,17],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Multiplicative.purs","end":[5,26]},"Eq1"]}]},"eiImportedAs":null},{"eiModule":["Data","Ord"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[6,18],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Multiplicative.purs","end":[6,28]},"Ord1"]}]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDType":{"edTypeName":"Multiplicative","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[14,43],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Multiplicative.purs","end":[14,44]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},"edTypeDeclarationKind":{"DataType":{"args":[["a",{"annotation":[{"start":[14,43],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Multiplicative.purs","end":[14,44]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]],"ctors":[["Multiplicative",[{"annotation":[{"start":[14,43],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Multiplicative.purs","end":[14,44]},[]],"tag":"TypeVar","contents":"a"}]]]}}}},{"EDDataConstructor":{"edDataCtorName":"Multiplicative","edDataCtorOrigin":"newtype","edDataCtorTypeCtor":"Multiplicative","edDataCtorType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[14,43],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Multiplicative.purs","end":[14,44]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Monoid","Multiplicative"],"Multiplicative"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"a"}]}]},null]},"edDataCtorFields":[{"Ident":"value0"}]}},{"EDInstance":{"edInstanceClassName":[["Data","Eq"],"Eq"],"edInstanceName":{"Ident":"eqMultiplicative"},"edInstanceTypes":[{"annotation":[{"start":[16,57],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Multiplicative.purs","end":[16,73]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[16,57],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Multiplicative.purs","end":[16,71]},[]],"tag":"TypeConstructor","contents":[["Data","Monoid","Multiplicative"],"Multiplicative"]},{"annotation":[{"start":[16,72],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Multiplicative.purs","end":[16,73]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[16,45],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Multiplicative.purs","end":[16,49]},[]],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[{"start":[16,48],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Multiplicative.purs","end":[16,49]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","Monoid","Multiplicative"],{"Ident":"eqMultiplicative"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Eq"],"Eq1"],"edInstanceName":{"Ident":"eq1Multiplicative"},"edInstanceTypes":[{"annotation":[{"start":[17,42],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Multiplicative.purs","end":[17,56]},[]],"tag":"TypeConstructor","contents":[["Data","Monoid","Multiplicative"],"Multiplicative"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Monoid","Multiplicative"],{"Ident":"eq1Multiplicative"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Ord"],"Ord"],"edInstanceName":{"Ident":"ordMultiplicative"},"edInstanceTypes":[{"annotation":[{"start":[19,60],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Multiplicative.purs","end":[19,76]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[19,60],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Multiplicative.purs","end":[19,74]},[]],"tag":"TypeConstructor","contents":[["Data","Monoid","Multiplicative"],"Multiplicative"]},{"annotation":[{"start":[19,75],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Multiplicative.purs","end":[19,76]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[19,46],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Multiplicative.purs","end":[19,51]},[]],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[{"start":[19,50],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Multiplicative.purs","end":[19,51]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","Monoid","Multiplicative"],{"Ident":"ordMultiplicative"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Ord"],"Ord1"],"edInstanceName":{"Ident":"ord1Multiplicative"},"edInstanceTypes":[{"annotation":[{"start":[20,44],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Multiplicative.purs","end":[20,58]},[]],"tag":"TypeConstructor","contents":[["Data","Monoid","Multiplicative"],"Multiplicative"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Monoid","Multiplicative"],{"Ident":"ord1Multiplicative"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Bounded"],"Bounded"],"edInstanceName":{"Ident":"boundedMultiplicative"},"edInstanceTypes":[{"annotation":[{"start":[22,72],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Multiplicative.purs","end":[22,88]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[22,72],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Multiplicative.purs","end":[22,86]},[]],"tag":"TypeConstructor","contents":[["Data","Monoid","Multiplicative"],"Multiplicative"]},{"annotation":[{"start":[22,87],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Multiplicative.purs","end":[22,88]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[22,50],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Multiplicative.purs","end":[22,59]},[]],"constraintClass":[["Data","Bounded"],"Bounded"],"constraintArgs":[{"annotation":[{"start":[22,58],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Multiplicative.purs","end":[22,59]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","Monoid","Multiplicative"],{"Ident":"boundedMultiplicative"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Show"],"Show"],"edInstanceName":{"Ident":"showMultiplicative"},"edInstanceTypes":[{"annotation":[{"start":[24,48],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Multiplicative.purs","end":[24,64]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[24,48],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Multiplicative.purs","end":[24,62]},[]],"tag":"TypeConstructor","contents":[["Data","Monoid","Multiplicative"],"Multiplicative"]},{"annotation":[{"start":[24,63],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Multiplicative.purs","end":[24,64]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[24,32],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Multiplicative.purs","end":[24,38]},[]],"constraintClass":[["Data","Show"],"Show"],"constraintArgs":[{"annotation":[{"start":[24,37],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Multiplicative.purs","end":[24,38]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","Monoid","Multiplicative"],{"Ident":"showMultiplicative"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Functor"],"Functor"],"edInstanceName":{"Ident":"functorMultiplicative"},"edInstanceTypes":[{"annotation":[{"start":[27,50],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Multiplicative.purs","end":[27,64]},[]],"tag":"TypeConstructor","contents":[["Data","Monoid","Multiplicative"],"Multiplicative"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Monoid","Multiplicative"],{"Ident":"functorMultiplicative"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Apply"],"Apply"],"edInstanceName":{"Ident":"applyMultiplicative"},"edInstanceTypes":[{"annotation":[{"start":[29,39],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Multiplicative.purs","end":[29,53]},[]],"tag":"TypeConstructor","contents":[["Data","Monoid","Multiplicative"],"Multiplicative"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Monoid","Multiplicative"],{"Ident":"applyMultiplicative"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Applicative"],"Applicative"],"edInstanceName":{"Ident":"applicativeMultiplicative"},"edInstanceTypes":[{"annotation":[{"start":[32,51],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Multiplicative.purs","end":[32,65]},[]],"tag":"TypeConstructor","contents":[["Data","Monoid","Multiplicative"],"Multiplicative"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Monoid","Multiplicative"],{"Ident":"applicativeMultiplicative"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Bind"],"Bind"],"edInstanceName":{"Ident":"bindMultiplicative"},"edInstanceTypes":[{"annotation":[{"start":[35,37],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Multiplicative.purs","end":[35,51]},[]],"tag":"TypeConstructor","contents":[["Data","Monoid","Multiplicative"],"Multiplicative"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Monoid","Multiplicative"],{"Ident":"bindMultiplicative"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Monad"],"Monad"],"edInstanceName":{"Ident":"monadMultiplicative"},"edInstanceTypes":[{"annotation":[{"start":[38,39],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Multiplicative.purs","end":[38,53]},[]],"tag":"TypeConstructor","contents":[["Data","Monoid","Multiplicative"],"Multiplicative"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Monoid","Multiplicative"],{"Ident":"monadMultiplicative"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Semigroup"],"Semigroup"],"edInstanceName":{"Ident":"semigroupMultiplicative"},"edInstanceTypes":[{"annotation":[{"start":[40,62],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Multiplicative.purs","end":[40,78]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[40,62],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Multiplicative.purs","end":[40,76]},[]],"tag":"TypeConstructor","contents":[["Data","Monoid","Multiplicative"],"Multiplicative"]},{"annotation":[{"start":[40,77],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Multiplicative.purs","end":[40,78]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[40,37],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Multiplicative.purs","end":[40,47]},[]],"constraintClass":[["Data","Semiring"],"Semiring"],"constraintArgs":[{"annotation":[{"start":[40,46],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Multiplicative.purs","end":[40,47]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","Monoid","Multiplicative"],{"Ident":"semigroupMultiplicative"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Monoid"],"Monoid"],"edInstanceName":{"Ident":"monoidMultiplicative"},"edInstanceTypes":[{"annotation":[{"start":[43,56],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Multiplicative.purs","end":[43,72]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[43,56],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Multiplicative.purs","end":[43,70]},[]],"tag":"TypeConstructor","contents":[["Data","Monoid","Multiplicative"],"Multiplicative"]},{"annotation":[{"start":[43,71],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Multiplicative.purs","end":[43,72]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[43,34],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Multiplicative.purs","end":[43,44]},[]],"constraintClass":[["Data","Semiring"],"Semiring"],"constraintArgs":[{"annotation":[{"start":[43,43],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Multiplicative.purs","end":[43,44]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","Monoid","Multiplicative"],{"Ident":"monoidMultiplicative"}]],"edInstanceChainIndex":0}}],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Multiplicative.purs","end":[44,30]}}
diff --git a/tests/purs/publish/basic-example/output/Data.Monoid/docs.json b/tests/purs/publish/basic-example/output/Data.Monoid/docs.json
--- a/tests/purs/publish/basic-example/output/Data.Monoid/docs.json
+++ b/tests/purs/publish/basic-example/output/Data.Monoid/docs.json
@@ -1,1 +1,1 @@
-{"reExports":[],"name":"Data.Monoid","comments":null,"declarations":[{"children":[{"comments":null,"title":"mempty","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeVar","contents":"m"}},"sourceSpan":{"start":[33,3],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[33,14]}},{"comments":null,"title":"monoidUnit","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid"],"Monoid"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}},"sourceSpan":{"start":[35,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[36,16]}},{"comments":null,"title":"monoidOrdering","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid"],"Monoid"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ordering"],"Ordering"]}]}},"sourceSpan":{"start":[38,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[39,14]}},{"comments":null,"title":"monoidFn","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Monoid"],"Monoid"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"b"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid"],"Monoid"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}},"sourceSpan":{"start":[41,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[42,20]}},{"comments":null,"title":"monoidString","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid"],"Monoid"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}},"sourceSpan":{"start":[44,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[45,14]}},{"comments":null,"title":"monoidArray","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid"],"Monoid"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[47,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[48,14]}},{"comments":null,"title":"monoidRecord","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Prim","RowList"],"RowToList"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"row"},{"annotation":[],"tag":"TypeVar","contents":"list"}],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","Monoid"],"MonoidRecord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"list"},{"annotation":[],"tag":"TypeVar","contents":"row"},{"annotation":[],"tag":"TypeVar","contents":"row"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid"],"Monoid"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"TypeVar","contents":"row"}]}]}},"sourceSpan":{"start":[50,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[51,50]}}],"comments":"A `Monoid` is a `Semigroup` with a value `mempty`, which is both a\nleft and right unit for the associative operation `<>`:\n\n```\nforall x. mempty <> x = x <> mempty = x\n```\n\n`Monoid`s are commonly used as the result of fold operations, where\n`<>` is used to combine individual results, and `mempty` gives the result\nof folding an empty collection of elements.\n","title":"Monoid","info":{"fundeps":[],"arguments":[["m",null]],"declType":"typeClass","superclasses":[{"constraintAnn":[],"constraintClass":[["Data","Semigroup"],"Semigroup"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null}]},"sourceSpan":{"start":[32,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[33,14]}},{"children":[],"comments":"Append a value to itself a certain number of times. For the\n`Multiplicative` type, and for a non-negative power, this is the same as\nnormal number exponentiation.\n\nIf the second argument is negative this function will return `mempty`\n(*unlike* normal number exponentiation). The `Monoid` constraint alone\nis not enough to write a `power` function with the property that `power x\nn` cancels with `power x (-n)`, i.e. `power x n <> power x (-n) = mempty`.\nFor that, we would additionally need the ability to invert elements, i.e.\na Group.\n","title":"power","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Monoid"],"Monoid"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"m"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeVar","contents":"m"}]}]}]},null]}},"sourceSpan":{"start":[63,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[63,45]}},{"children":[],"comments":"Allow or \"truncate\" a Monoid to its `mempty` value based on a condition.\n","title":"guard","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Monoid"],"Monoid"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"m"}]},{"annotation":[],"tag":"TypeVar","contents":"m"}]}]}]},null]}},"sourceSpan":{"start":[74,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[74,49]}},{"children":[{"comments":null,"title":"memptyRecord","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Data","RowList"],"RLProxy"]},{"annotation":[],"tag":"TypeVar","contents":"rowlist"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"TypeVar","contents":"subrow"}]}]}},"sourceSpan":{"start":[81,3],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[81,51]}},{"comments":null,"title":"monoidRecordNil","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid"],"MonoidRecord"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim","RowList"],"Nil"]}]},{"annotation":[],"tag":"TypeVar","contents":"row"}]},{"annotation":[],"tag":"REmpty"}]}},"sourceSpan":{"start":[83,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[84,22]}},{"comments":null,"title":"monoidRecordCons","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Symbol"],"IsSymbol"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"key"}],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","Monoid"],"Monoid"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"focus"}],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Prim","Row"],"Cons"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"key"},{"annotation":[],"tag":"TypeVar","contents":"focus"},{"annotation":[],"tag":"TypeVar","contents":"subrowTail"},{"annotation":[],"tag":"TypeVar","contents":"subrow"}],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","Monoid"],"MonoidRecord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"rowlistTail"},{"annotation":[],"tag":"TypeVar","contents":"row"},{"annotation":[],"tag":"TypeVar","contents":"subrowTail"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid"],"MonoidRecord"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim","RowList"],"Cons"]},{"annotation":[],"tag":"TypeVar","contents":"key"}]},{"annotation":[],"tag":"TypeVar","contents":"focus"}]},{"annotation":[],"tag":"TypeVar","contents":"rowlistTail"}]}]},{"annotation":[],"tag":"TypeVar","contents":"row"}]},{"annotation":[],"tag":"TypeVar","contents":"subrow"}]}},"sourceSpan":{"start":[86,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[98,59]}}],"comments":"A class for records where all fields have `Monoid` instances, used to\nimplement the `Monoid` instance for records.\n","title":"MonoidRecord","info":{"fundeps":[[["rowlist"],["row","subrow"]]],"arguments":[["rowlist",null],["row",null],["subrow",null]],"declType":"typeClass","superclasses":[{"constraintAnn":[],"constraintClass":[["Data","Semigroup"],"SemigroupRecord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"rowlist"},{"annotation":[],"tag":"TypeVar","contents":"row"},{"annotation":[],"tag":"TypeVar","contents":"subrow"}],"constraintData":null}]},"sourceSpan":{"start":[80,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[81,51]}}]}
+{"comments":null,"declarations":[{"children":[{"comments":null,"info":{"declType":"typeClassMember","type":{"annotation":[],"contents":"m","tag":"TypeVar"}},"sourceSpan":{"end":[47,14],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","start":[47,3]},"title":"mempty"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Monoid"],"Monoid"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Unit"],"Unit"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[50,16],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","start":[49,1]},"title":"monoidUnit"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Monoid"],"Monoid"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Ordering"],"Ordering"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[53,14],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","start":[52,1]},"title":"monoidOrdering"},{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"b","tag":"TypeVar"}],"constraintClass":[["Data","Monoid"],"Monoid"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Monoid"],"Monoid"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[56,20],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","start":[55,1]},"title":"monoidFn"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Monoid"],"Monoid"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"String"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[59,14],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","start":[58,1]},"title":"monoidString"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Monoid"],"Monoid"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Array"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[62,14],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","start":[61,1]},"title":"monoidArray"},{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"row","tag":"TypeVar"},{"annotation":[],"contents":"list","tag":"TypeVar"}],"constraintClass":[["Prim","RowList"],"RowToList"],"constraintData":null,"constraintKindArgs":[]},{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"list","tag":"TypeVar"},{"annotation":[],"contents":"row","tag":"TypeVar"},{"annotation":[],"contents":"row","tag":"TypeVar"}],"constraintClass":[["Data","Monoid"],"MonoidRecord"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Monoid"],"Monoid"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Record"],"tag":"TypeConstructor"},{"annotation":[],"contents":"row","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[65,46],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","start":[64,1]},"title":"monoidRecord"}],"comments":"A `Monoid` is a `Semigroup` with a value `mempty`, which is both a\nleft and right unit for the associative operation `<>`:\n\n- Left unit: `(mempty <> x) = x`\n- Right unit: `(x <> mempty) = x`\n\n`Monoid`s are commonly used as the result of fold operations, where\n`<>` is used to combine individual results, and `mempty` gives the result\nof folding an empty collection of elements.\n\n### Newtypes for Monoid\n\nSome types (e.g. `Int`, `Boolean`) can implement multiple law-abiding\ninstances for `Monoid`. Let's use `Int` as an example\n1. `<>` could be `+` and `mempty` could be `0`\n2. `<>` could be `*` and `mempty` could be `1`.\n\nTo clarify these ambiguous situations, one should use the newtypes\ndefined in `Data.Monoid.<NewtypeName>` modules.\n\nIn the above ambiguous situation, we could use `Additive`\nfor the first situation or `Multiplicative` for the second one.\n","info":{"arguments":[["m",null]],"declType":"typeClass","fundeps":[],"superclasses":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"m","tag":"TypeVar"}],"constraintClass":[["Data","Semigroup"],"Semigroup"],"constraintData":null,"constraintKindArgs":[]}]},"kind":null,"sourceSpan":{"end":[47,14],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","start":[46,1]},"title":"Monoid"},{"children":[],"comments":"Append a value to itself a certain number of times. For the\n`Multiplicative` type, and for a non-negative power, this is the same as\nnormal number exponentiation.\n\nIf the second argument is negative this function will return `mempty`\n(*unlike* normal number exponentiation). The `Monoid` constraint alone\nis not enough to write a `power` function with the property that `power x\nn` cancels with `power x (-n)`, i.e. `power x n <> power x (-n) = mempty`.\nFor that, we would additionally need the ability to invert elements, i.e.\na Group.\n\n```purescript\npower [1,2] 3    == [1,2,1,2,1,2]\npower [1,2] 1    == [1,2]\npower [1,2] 0    == []\npower [1,2] (-3) == []\n```\n\n","info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"m","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"m","tag":"TypeVar"}],"constraintClass":[["Data","Monoid"],"Monoid"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"m","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":"m","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[85,45],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","start":[85,1]},"title":"power"},{"children":[],"comments":"Allow or \"truncate\" a Monoid to its `mempty` value based on a condition.\n","info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"m","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"m","tag":"TypeVar"}],"constraintClass":[["Data","Monoid"],"Monoid"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Boolean"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"m","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"m","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[96,49],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","start":[96,1]},"title":"guard"},{"children":[{"comments":null,"info":{"declType":"typeClassMember","type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Type","Proxy"],"Proxy"],"tag":"TypeConstructor"},{"annotation":[],"contents":"rowlist","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Record"],"tag":"TypeConstructor"},{"annotation":[],"contents":"subrow","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[104,49],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","start":[104,3]},"title":"memptyRecord"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Monoid"],"MonoidRecord"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim","RowList"],"Nil"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":"row","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"tag":"REmpty"}],"tag":"TypeApp"}},"sourceSpan":{"end":[107,22],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","start":[106,1]},"title":"monoidRecordNil"},{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"key","tag":"TypeVar"}],"constraintClass":[["Data","Symbol"],"IsSymbol"],"constraintData":null,"constraintKindArgs":[]},{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"focus","tag":"TypeVar"}],"constraintClass":[["Data","Monoid"],"Monoid"],"constraintData":null,"constraintKindArgs":[]},{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"key","tag":"TypeVar"},{"annotation":[],"contents":"focus","tag":"TypeVar"},{"annotation":[],"contents":"subrowTail","tag":"TypeVar"},{"annotation":[],"contents":"subrow","tag":"TypeVar"}],"constraintClass":[["Prim","Row"],"Cons"],"constraintData":null,"constraintKindArgs":[]},{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"rowlistTail","tag":"TypeVar"},{"annotation":[],"contents":"row","tag":"TypeVar"},{"annotation":[],"contents":"subrowTail","tag":"TypeVar"}],"constraintClass":[["Data","Monoid"],"MonoidRecord"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Monoid"],"MonoidRecord"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim","RowList"],"Cons"],"tag":"TypeConstructor"},{"annotation":[],"contents":"key","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"focus","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"rowlistTail","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":"row","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"subrow","tag":"TypeVar"}],"tag":"TypeApp"}},"sourceSpan":{"end":[120,53],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","start":[109,1]},"title":"monoidRecordCons"}],"comments":"A class for records where all fields have `Monoid` instances, used to\nimplement the `Monoid` instance for records.\n","info":{"arguments":[["rowlist",null],["row",null],["subrow",null]],"declType":"typeClass","fundeps":[[["rowlist"],["row","subrow"]]],"superclasses":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"rowlist","tag":"TypeVar"},{"annotation":[],"contents":"row","tag":"TypeVar"},{"annotation":[],"contents":"subrow","tag":"TypeVar"}],"constraintClass":[["Data","Semigroup"],"SemigroupRecord"],"constraintData":null,"constraintKindArgs":[]}]},"kind":{"keyword":"class","kind":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim","RowList"],"RowList"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Row"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Row"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim"],"Constraint"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[104,49],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","start":[103,1]},"title":"MonoidRecord"}],"name":"Data.Monoid","reExports":[]}
diff --git a/tests/purs/publish/basic-example/output/Data.Monoid/externs.json b/tests/purs/publish/basic-example/output/Data.Monoid/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.Monoid/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Data","Monoid"],"efExports":[{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[98,59]},{"exportSourceImportedFrom":["Data","Semigroup"],"exportSourceDefinedIn":["Data","Semigroup"]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[98,59]},"Semigroup"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[98,59]},{"exportSourceImportedFrom":["Data","Semigroup"],"exportSourceDefinedIn":["Data","Semigroup"]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[98,59]},"SemigroupRecord"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[98,59]},{"exportSourceImportedFrom":["Data","Semigroup"],"exportSourceDefinedIn":["Data","Semigroup"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[98,59]},"<>"]}]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[98,59]},"Monoid"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[98,59]},{"Ident":"mempty"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[98,59]},{"Ident":"power"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[98,59]},{"Ident":"guard"}]},{"ModuleRef":[{"start":[5,5],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[5,26]},["Data","Semigroup"]]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[98,59]},"MonoidRecord"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[98,59]},{"Ident":"memptyRecord"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"monoidUnit"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"monoidOrdering"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"monoidFn"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"monoidString"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"monoidArray"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"monoidRecord"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"monoidRecordNil"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"monoidRecordCons"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Data","Boolean"],"eiImportType":{"Explicit":[{"ValueRef":[{"start":[9,22],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[9,31]},{"Ident":"otherwise"}]}]},"eiImportedAs":null},{"eiModule":["Data","Eq"],"eiImportType":{"Explicit":[{"ValueOpRef":[{"start":[10,17],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[10,21]},"=="]}]},"eiImportedAs":null},{"eiModule":["Data","EuclideanRing"],"eiImportType":{"Explicit":[{"ValueRef":[{"start":[11,28],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[11,31]},{"Ident":"mod"}]},{"ValueOpRef":[{"start":[11,33],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[11,36]},"/"]}]},"eiImportedAs":null},{"eiModule":["Data","Ord"],"eiImportType":{"Explicit":[{"ValueOpRef":[{"start":[12,18],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[12,22]},"<="]}]},"eiImportedAs":null},{"eiModule":["Data","Ordering"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[13,23],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[13,35]},"Ordering",null]}]},"eiImportedAs":null},{"eiModule":["Data","Semigroup"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[14,24],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[14,39]},"Semigroup"]},{"TypeClassRef":[{"start":[14,41],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[14,62]},"SemigroupRecord"]},{"ValueOpRef":[{"start":[14,64],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[14,68]},"<>"]}]},"eiImportedAs":null},{"eiModule":["Data","Symbol"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[15,21],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[15,35]},"IsSymbol"]},{"TypeRef":[{"start":[15,37],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[15,47]},"SProxy",null]},{"ValueRef":[{"start":[15,49],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[15,62]},{"Ident":"reflectSymbol"}]}]},"eiImportedAs":null},{"eiModule":["Data","Unit"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[16,19],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[16,23]},"Unit",[]]},{"ValueRef":[{"start":[16,25],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[16,29]},{"Ident":"unit"}]}]},"eiImportedAs":null},{"eiModule":["Prim","Row"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Row"]},{"eiModule":["Prim","RowList"],"eiImportType":{"Implicit":[]},"eiImportedAs":["RL"]},{"eiModule":["Record","Unsafe"],"eiImportType":{"Explicit":[{"ValueRef":[{"start":[19,23],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[19,32]},{"Ident":"unsafeSet"}]}]},"eiImportedAs":null},{"eiModule":["Type","Data","RowList"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[20,27],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[20,38]},"RLProxy",null]}]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDType":{"edTypeName":"Monoid","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"Monoid","edTypeSynonymArguments":[["m",null]],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["mempty",{"annotation":[{"start":[33,13],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[33,14]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["Semigroup0",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Semigroup"],"Semigroup"]},{"annotation":[{"start":[32,17],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[32,18]},[]],"tag":"TypeVar","contents":"m"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]}]}}},{"EDClass":{"edClassName":"Monoid","edClassTypeArguments":[["m",null]],"edClassMembers":[[{"Ident":"mempty"},{"annotation":[{"start":[33,13],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[33,14]},[]],"tag":"TypeVar","contents":"m"}]],"edClassConstraints":[{"constraintAnn":[{"start":[32,7],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[32,18]},[]],"constraintClass":[["Data","Semigroup"],"Semigroup"],"constraintArgs":[{"annotation":[{"start":[32,17],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[32,18]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null}],"edFunctionalDependencies":[]}},{"EDValue":{"edValueName":{"Ident":"mempty"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["Data","Monoid"],"Monoid"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[33,13],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[33,14]},[]],"tag":"TypeVar","contents":"m"}]},12]}}},{"EDValue":{"edValueName":{"Ident":"power"},"edValueType":{"annotation":[{"start":[63,10],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[63,45]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[63,20],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[63,45]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[63,20],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[63,28]},[]],"constraintClass":[["Data","Monoid"],"Monoid"],"constraintArgs":[{"annotation":[{"start":[63,27],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[63,28]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[63,32],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[63,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[63,32],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[63,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[63,34],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[63,36]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[63,32],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[63,33]},[]],"tag":"TypeVar","contents":"m"}]},{"annotation":[{"start":[63,37],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[63,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[63,37],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[63,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[63,41],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[63,43]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[63,37],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[63,40]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[63,44],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[63,45]},[]],"tag":"TypeVar","contents":"m"}]}]}]},34]}}},{"EDValue":{"edValueName":{"Ident":"guard"},"edValueType":{"annotation":[{"start":[74,10],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[74,49]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[74,20],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[74,49]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[74,20],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[74,28]},[]],"constraintClass":[["Data","Monoid"],"Monoid"],"constraintArgs":[{"annotation":[{"start":[74,27],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[74,28]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[74,32],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[74,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[74,32],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[74,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[74,40],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[74,42]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[74,32],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[74,39]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]},{"annotation":[{"start":[74,43],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[74,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[74,43],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[74,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[74,45],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[74,47]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[74,43],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[74,44]},[]],"tag":"TypeVar","contents":"m"}]},{"annotation":[{"start":[74,48],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[74,49]},[]],"tag":"TypeVar","contents":"m"}]}]}]},36]}}},{"EDType":{"edTypeName":"MonoidRecord","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[81,19],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[81,26]},[]],"tag":"NamedKind","contents":[["Prim","RowList"],"RowList"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"Row","contents":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[81,38],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[81,44]},[]],"tag":"Row","contents":{"annotation":[{"start":[81,38],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[81,44]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"MonoidRecord","edTypeSynonymArguments":[["rowlist",null],["row",null],["subrow",null]],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["memptyRecord",{"annotation":[{"start":[81,19],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[81,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[81,19],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[81,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[81,35],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[81,37]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[81,19],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[81,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[81,19],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[81,26]},[]],"tag":"TypeConstructor","contents":[["Type","Data","RowList"],"RLProxy"]},{"annotation":[{"start":[81,27],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[81,34]},[]],"tag":"TypeVar","contents":"rowlist"}]}]},{"annotation":[{"start":[81,38],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[81,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[81,38],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[81,44]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[81,45],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[81,51]},[]],"tag":"TypeVar","contents":"subrow"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["SemigroupRecord0",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Semigroup"],"SemigroupRecord"]},{"annotation":[{"start":[80,23],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[80,30]},[]],"tag":"TypeVar","contents":"rowlist"}]},{"annotation":[{"start":[80,31],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[80,34]},[]],"tag":"TypeVar","contents":"row"}]},{"annotation":[{"start":[80,35],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[80,41]},[]],"tag":"TypeVar","contents":"subrow"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]}]}}},{"EDClass":{"edClassName":"MonoidRecord","edClassTypeArguments":[["rowlist",null],["row",null],["subrow",null]],"edClassMembers":[[{"Ident":"memptyRecord"},{"annotation":[{"start":[81,19],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[81,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[81,19],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[81,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[81,35],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[81,37]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[81,19],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[81,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[81,19],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[81,26]},[]],"tag":"TypeConstructor","contents":[["Type","Data","RowList"],"RLProxy"]},{"annotation":[{"start":[81,27],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[81,34]},[]],"tag":"TypeVar","contents":"rowlist"}]}]},{"annotation":[{"start":[81,38],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[81,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[81,38],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[81,44]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[81,45],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[81,51]},[]],"tag":"TypeVar","contents":"subrow"}]}]}]],"edClassConstraints":[{"constraintAnn":[{"start":[80,7],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[80,41]},[]],"constraintClass":[["Data","Semigroup"],"SemigroupRecord"],"constraintArgs":[{"annotation":[{"start":[80,23],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[80,30]},[]],"tag":"TypeVar","contents":"rowlist"},{"annotation":[{"start":[80,31],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[80,34]},[]],"tag":"TypeVar","contents":"row"},{"annotation":[{"start":[80,35],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[80,41]},[]],"tag":"TypeVar","contents":"subrow"}],"constraintData":null}],"edFunctionalDependencies":[{"determiners":[0],"determined":[1,2]}]}},{"EDValue":{"edValueName":{"Ident":"memptyRecord"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["rowlist",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["row",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["subrow",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["Data","Monoid"],"MonoidRecord"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"rowlist"},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"row"},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"subrow"}],"constraintData":null},{"annotation":[{"start":[81,19],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[81,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[81,19],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[81,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[81,35],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[81,37]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[81,19],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[81,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[81,19],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[81,26]},[]],"tag":"TypeConstructor","contents":[["Type","Data","RowList"],"RLProxy"]},{"annotation":[{"start":[81,27],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[81,34]},[]],"tag":"TypeVar","contents":"rowlist"}]}]},{"annotation":[{"start":[81,38],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[81,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[81,38],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[81,44]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[81,45],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[81,51]},[]],"tag":"TypeVar","contents":"subrow"}]}]}]},4]},5]},6]}}},{"EDInstance":{"edInstanceClassName":[["Data","Monoid"],"Monoid"],"edInstanceName":{"Ident":"monoidUnit"},"edInstanceTypes":[{"annotation":[{"start":[35,31],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[35,35]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Monoid"],{"Ident":"monoidUnit"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Monoid"],"Monoid"],"edInstanceName":{"Ident":"monoidOrdering"},"edInstanceTypes":[{"annotation":[{"start":[38,35],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[38,43]},[]],"tag":"TypeConstructor","contents":[["Data","Ordering"],"Ordering"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Monoid"],{"Ident":"monoidOrdering"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Monoid"],"Monoid"],"edInstanceName":{"Ident":"monoidFn"},"edInstanceTypes":[{"annotation":[{"start":[41,42],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[41,48]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[41,42],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[41,48]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[41,44],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[41,46]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[41,42],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[41,43]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[41,47],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[41,48]},[]],"tag":"TypeVar","contents":"b"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[41,22],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[41,30]},[]],"constraintClass":[["Data","Monoid"],"Monoid"],"constraintArgs":[{"annotation":[{"start":[41,29],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[41,30]},[]],"tag":"TypeVar","contents":"b"}],"constraintData":null}],"edInstanceChain":[[["Data","Monoid"],{"Ident":"monoidFn"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Monoid"],"Monoid"],"edInstanceName":{"Ident":"monoidString"},"edInstanceTypes":[{"annotation":[{"start":[44,33],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[44,39]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Monoid"],{"Ident":"monoidString"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Monoid"],"Monoid"],"edInstanceName":{"Ident":"monoidArray"},"edInstanceTypes":[{"annotation":[{"start":[47,33],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[47,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[47,33],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[47,38]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[47,39],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[47,40]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Monoid"],{"Ident":"monoidArray"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Monoid"],"Monoid"],"edInstanceName":{"Ident":"monoidRecord"},"edInstanceTypes":[{"annotation":[{"start":[50,88],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[50,98]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,88],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[50,94]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[50,95],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[50,98]},[]],"tag":"TypeVar","contents":"row"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[50,27],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[50,48]},[]],"constraintClass":[["Prim","RowList"],"RowToList"],"constraintArgs":[{"annotation":[{"start":[50,40],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[50,43]},[]],"tag":"TypeVar","contents":"row"},{"annotation":[{"start":[50,44],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[50,48]},[]],"tag":"TypeVar","contents":"list"}],"constraintData":null},{"constraintAnn":[{"start":[50,50],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[50,75]},[]],"constraintClass":[["Data","Monoid"],"MonoidRecord"],"constraintArgs":[{"annotation":[{"start":[50,63],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[50,67]},[]],"tag":"TypeVar","contents":"list"},{"annotation":[{"start":[50,68],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[50,71]},[]],"tag":"TypeVar","contents":"row"},{"annotation":[{"start":[50,72],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[50,75]},[]],"tag":"TypeVar","contents":"row"}],"constraintData":null}],"edInstanceChain":[[["Data","Monoid"],{"Ident":"monoidRecord"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Monoid"],"MonoidRecord"],"edInstanceName":{"Ident":"monoidRecordNil"},"edInstanceTypes":[{"annotation":[{"start":[83,42],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[83,48]},[]],"tag":"TypeConstructor","contents":[["Prim","RowList"],"Nil"]},{"annotation":[{"start":[83,49],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[83,52]},[]],"tag":"TypeVar","contents":"row"},{"annotation":[{"start":[83,54],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[83,55]},[]],"tag":"REmpty"}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Monoid"],{"Ident":"monoidRecordNil"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Monoid"],"MonoidRecord"],"edInstanceName":{"Ident":"monoidRecordCons"},"edInstanceTypes":[{"annotation":[{"start":[92,22],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[92,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[92,22],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[92,39]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[92,22],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[92,33]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[92,22],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[92,29]},[]],"tag":"TypeConstructor","contents":[["Prim","RowList"],"Cons"]},{"annotation":[{"start":[92,30],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[92,33]},[]],"tag":"TypeVar","contents":"key"}]},{"annotation":[{"start":[92,34],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[92,39]},[]],"tag":"TypeVar","contents":"focus"}]},{"annotation":[{"start":[92,40],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[92,51]},[]],"tag":"TypeVar","contents":"rowlistTail"}]},{"annotation":[{"start":[92,53],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[92,56]},[]],"tag":"TypeVar","contents":"row"},{"annotation":[{"start":[92,57],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[92,63]},[]],"tag":"TypeVar","contents":"subrow"}],"edInstanceConstraints":[{"constraintAnn":[{"start":[87,10],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[87,22]},[]],"constraintClass":[["Data","Symbol"],"IsSymbol"],"constraintArgs":[{"annotation":[{"start":[87,19],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[87,22]},[]],"tag":"TypeVar","contents":"key"}],"constraintData":null},{"constraintAnn":[{"start":[88,10],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[88,22]},[]],"constraintClass":[["Data","Monoid"],"Monoid"],"constraintArgs":[{"annotation":[{"start":[88,17],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[88,22]},[]],"tag":"TypeVar","contents":"focus"}],"constraintData":null},{"constraintAnn":[{"start":[89,10],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[89,46]},[]],"constraintClass":[["Prim","Row"],"Cons"],"constraintArgs":[{"annotation":[{"start":[89,19],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[89,22]},[]],"tag":"TypeVar","contents":"key"},{"annotation":[{"start":[89,23],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[89,28]},[]],"tag":"TypeVar","contents":"focus"},{"annotation":[{"start":[89,29],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[89,39]},[]],"tag":"TypeVar","contents":"subrowTail"},{"annotation":[{"start":[89,40],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[89,46]},[]],"tag":"TypeVar","contents":"subrow"}],"constraintData":null},{"constraintAnn":[{"start":[90,10],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[90,49]},[]],"constraintClass":[["Data","Monoid"],"MonoidRecord"],"constraintArgs":[{"annotation":[{"start":[90,23],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[90,34]},[]],"tag":"TypeVar","contents":"rowlistTail"},{"annotation":[{"start":[90,35],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[90,38]},[]],"tag":"TypeVar","contents":"row"},{"annotation":[{"start":[90,39],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[90,49]},[]],"tag":"TypeVar","contents":"subrowTail"}],"constraintData":null}],"edInstanceChain":[[["Data","Monoid"],{"Ident":"monoidRecordCons"}]],"edInstanceChainIndex":0}}],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","end":[98,59]}}
diff --git a/tests/purs/publish/basic-example/output/Data.NaturalTransformation/docs.json b/tests/purs/publish/basic-example/output/Data.NaturalTransformation/docs.json
--- a/tests/purs/publish/basic-example/output/Data.NaturalTransformation/docs.json
+++ b/tests/purs/publish/basic-example/output/Data.NaturalTransformation/docs.json
@@ -1,1 +1,1 @@
-{"reExports":[],"name":"Data.NaturalTransformation","comments":null,"declarations":[{"children":[],"comments":"A type for natural transformations.\n\nA natural transformation is a mapping between type constructors of kind\n`* -> *` where the mapping operation has no ability to manipulate the\ninner values.\n\nAn example of this is the `fromFoldable` function provided in\n`purescript-lists`, where some foldable structure containing values of\ntype `a` is converted into a `List a`.\n\nThe definition of a natural transformation in category theory states that\n`f` and `g` should be functors, but the `Functor` constraint is not\nenforced here; that the types are of kind `* -> *` is enough for our\npurposes.\n","title":"NaturalTransformation","info":{"arguments":[["f",null],["g",null]],"declType":"typeSynonym","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"g"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},null]}},"sourceSpan":{"start":[17,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,54]}},{"children":[],"comments":null,"title":"type (~>)","info":{"declType":"alias","alias":[["Data","NaturalTransformation"],{"Left":"NaturalTransformation"}],"fixity":{"associativity":"infixr","precedence":4}},"sourceSpan":{"start":[19,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[19,42]}}]}
+{"comments":null,"declarations":[{"children":[],"comments":"A type for natural transformations.\n\nA natural transformation is a mapping between type constructors of kind\n`k -> Type`, for any kind `k`, where the mapping operation has no ability\nto manipulate the inner values.\n\nAn example of this is the `fromFoldable` function provided in\n`purescript-lists`, where some foldable structure containing values of\ntype `a` is converted into a `List a`.\n\nThe definition of a natural transformation in category theory states that\n`f` and `g` should be functors, but the `Functor` constraint is not\nenforced here; that the types are of kind `k -> Type` is enough for our\npurposes.\n","info":{"arguments":[["f",null],["g",null]],"declType":"typeSynonym","type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":"f","tag":"TypeVar"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":"g","tag":"TypeVar"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":{"keyword":"type","kind":{"annotation":[],"contents":{"identifier":"k","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"k","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"},"tag":"ParensInType"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"k","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"},"tag":"ParensInType"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"sourceSpan":{"end":[18,54],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","start":[18,1]},"title":"NaturalTransformation"},{"children":[],"comments":null,"info":{"alias":[["Data","NaturalTransformation"],{"Left":"NaturalTransformation"}],"declType":"alias","fixity":{"associativity":"infixr","precedence":4}},"kind":null,"sourceSpan":{"end":[20,42],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","start":[20,1]},"title":"type (~>)"}],"name":"Data.NaturalTransformation","reExports":[]}
diff --git a/tests/purs/publish/basic-example/output/Data.NaturalTransformation/externs.json b/tests/purs/publish/basic-example/output/Data.NaturalTransformation/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.NaturalTransformation/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Data","NaturalTransformation"],"efExports":[{"TypeRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[19,42]},"NaturalTransformation",[]]},{"TypeOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[19,42]},"~>"]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[{"efTypeAssociativity":"infixr","efTypePrecedence":4,"efTypeOperator":"~>","efTypeAlias":[["Data","NaturalTransformation"],"NaturalTransformation"]}],"efDeclarations":[{"EDType":{"edTypeName":"NaturalTransformation","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[17,44],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,47]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[17,46],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,47]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[17,48],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,50]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[17,51],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,54]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[17,53],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,54]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[17,48],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,50]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"NaturalTransformation","edTypeSynonymArguments":[["f",{"annotation":[{"start":[17,44],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,47]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[17,46],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,47]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[17,48],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,50]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}],["g",{"annotation":[{"start":[17,51],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,54]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[17,53],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,54]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[17,48],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,50]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]],"edTypeSynonymType":{"annotation":[{"start":[17,34],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,54]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[17,44],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[17,44],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[17,48],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,50]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[17,44],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[17,44],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,45]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[17,46],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,47]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[17,51],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[17,51],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,52]},[]],"tag":"TypeVar","contents":"g"},{"annotation":[{"start":[17,53],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[17,54]},[]],"tag":"TypeVar","contents":"a"}]}]},null]}}}],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs","end":[19,42]}}
diff --git a/tests/purs/publish/basic-example/output/Data.Newtype/docs.json b/tests/purs/publish/basic-example/output/Data.Newtype/docs.json
--- a/tests/purs/publish/basic-example/output/Data.Newtype/docs.json
+++ b/tests/purs/publish/basic-example/output/Data.Newtype/docs.json
@@ -1,1 +1,1 @@
-{"reExports":[],"name":"Data.Newtype","comments":null,"declarations":[{"children":[{"comments":null,"title":"wrap","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"t"}]}},"sourceSpan":{"start":[37,3],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[37,17]}},{"comments":null,"title":"unwrap","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"t"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}},"sourceSpan":{"start":[38,3],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[38,19]}},{"comments":null,"title":"newtypeAdditive","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Newtype"],"Newtype"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Additive"],"Additive"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}},"sourceSpan":{"start":[40,1],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[42,26]}},{"comments":null,"title":"newtypeMultiplicative","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Newtype"],"Newtype"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Multiplicative"],"Multiplicative"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}},"sourceSpan":{"start":[44,1],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[46,32]}},{"comments":null,"title":"newtypeConj","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Newtype"],"Newtype"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Conj"],"Conj"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}},"sourceSpan":{"start":[48,1],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[50,22]}},{"comments":null,"title":"newtypeDisj","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Newtype"],"Newtype"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Disj"],"Disj"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}},"sourceSpan":{"start":[52,1],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[54,22]}},{"comments":null,"title":"newtypeDual","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Newtype"],"Newtype"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Dual"],"Dual"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}},"sourceSpan":{"start":[56,1],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[58,22]}},{"comments":null,"title":"newtypeEndo","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Newtype"],"Newtype"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Endo"],"Endo"]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"c"},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[60,1],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[62,22]}},{"comments":null,"title":"newtypeFirst","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Newtype"],"Newtype"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup","First"],"First"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}},"sourceSpan":{"start":[64,1],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[66,23]}},{"comments":null,"title":"newtypeLast","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Newtype"],"Newtype"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup","Last"],"Last"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}},"sourceSpan":{"start":[68,1],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[70,22]}}],"comments":"A type class for `newtype`s to enable convenient wrapping and unwrapping,\nand the use of the other functions in this module.\n\nThe compiler can derive instances of `Newtype` automatically:\n\n``` purescript\nnewtype EmailAddress = EmailAddress String\n\nderive instance newtypeEmailAddress :: Newtype EmailAddress _\n```\n\nNote that deriving for `Newtype` instances requires that the type be\ndefined as `newtype` rather than `data` declaration (even if the `data`\nstructurally fits the rules of a `newtype`), and the use of a wildcard for\nthe wrapped type.\n\nInstances must obey the following laws:\n``` purescript\nunwrap <<< wrap = id\nwrap <<< unwrap = id\n```\n","title":"Newtype","info":{"fundeps":[[["t"],["a"]]],"arguments":[["t",null],["a",null]],"declType":"typeClass","superclasses":[]},"sourceSpan":{"start":[36,1],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[38,19]}},{"children":[],"comments":"Given a constructor for a `Newtype`, this returns the appropriate `unwrap`\nfunction.\n","title":"un","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["t",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Newtype"],"Newtype"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"t"},{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"t"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"t"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]},null]},null]}},"sourceSpan":{"start":[74,1],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[74,52]}},{"children":[],"comments":"Deprecated previous name of `un`.\n","title":"op","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["t",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Newtype"],"Newtype"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"t"},{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"t"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"t"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]},null]},null]}},"sourceSpan":{"start":[78,1],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[78,52]}},{"children":[],"comments":"This combinator is for when you have a higher order function that you want\nto use in the context of some newtype - `foldMap` being a common example:\n\n``` purescript\nala Additive foldMap [1,2,3,4] -- 10\nala Multiplicative foldMap [1,2,3,4] -- 24\nala Conj foldMap [true, false] -- false\nala Disj foldMap [true, false] -- true\n```\n","title":"ala","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["s",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["t",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Functor"],"Functor"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Newtype"],"Newtype"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"t"},{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Newtype"],"Newtype"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"s"},{"annotation":[],"tag":"TypeVar","contents":"b"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"t"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"s"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"t"}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]}]}]}]},null]},null]},null]},null]},null]}},"sourceSpan":{"start":[90,1],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[97,9]}},{"children":[],"comments":"Similar to `ala` but useful for cases where you want to use an additional\nprojection with the higher order function:\n\n``` purescript\nalaF Additive foldMap String.length [\"hello\", \"world\"] -- 10\nalaF Multiplicative foldMap Math.abs [1.0, -2.0, 3.0, -4.0] -- 24.0\n```\n\nThe type admits other possibilities due to the polymorphic `Functor`\nconstraints, but the case described above works because ((->) a) is a\n`Functor`.\n","title":"alaF","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["s",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["t",{"annotation":[],"tag":"ForAll","contents":["g",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Functor"],"Functor"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Functor"],"Functor"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"g"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Newtype"],"Newtype"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"t"},{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Newtype"],"Newtype"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"s"},{"annotation":[],"tag":"TypeVar","contents":"b"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"t"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"t"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"g"},{"annotation":[],"tag":"TypeVar","contents":"s"}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"g"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}]}]}]}]}]}]},null]},null]},null]},null]},null]},null]}},"sourceSpan":{"start":[111,1],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[120,9]}},{"children":[],"comments":"Lifts a function operate over newtypes. This can be used to lift a\nfunction to manipulate the contents of a single newtype, somewhat like\n`map` does for a `Functor`:\n\n``` purescript\nnewtype Label = Label String\nderive instance newtypeLabel :: Newtype Label _\n\ntoUpperLabel :: Label -> Label\ntoUpperLabel = over Label String.toUpper\n```\n\nBut the result newtype is polymorphic, meaning the result can be returned\nas an alternative newtype:\n\n``` purescript\nnewtype UppercaseLabel = UppercaseLabel String\nderive instance newtypeUppercaseLabel :: Newtype UppercaseLabel _\n\ntoUpperLabel' :: Label -> UppercaseLabel\ntoUpperLabel' = over Label String.toUpper\n```\n","title":"over","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["s",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["t",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Newtype"],"Newtype"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"t"},{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Newtype"],"Newtype"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"s"},{"annotation":[],"tag":"TypeVar","contents":"b"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"t"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"t"}]},{"annotation":[],"tag":"TypeVar","contents":"s"}]}]}]}]}]},null]},null]},null]},null]}},"sourceSpan":{"start":[145,1],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[152,7]}},{"children":[],"comments":"Much like `over`, but where the lifted function operates on values in a\n`Functor`:\n\n``` purescript\nfindLabel :: String -> Array Label -> Maybe Label\nfindLabel s = overF Label (Foldable.find (_ == s))\n```\n\nThe above example also demonstrates that the functor type is polymorphic\nhere too, the input is an `Array` but the result is a `Maybe`.\n","title":"overF","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["s",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["t",{"annotation":[],"tag":"ForAll","contents":["g",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Functor"],"Functor"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Functor"],"Functor"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"g"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Newtype"],"Newtype"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"t"},{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Newtype"],"Newtype"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"s"},{"annotation":[],"tag":"TypeVar","contents":"b"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"t"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"g"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"t"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"g"},{"annotation":[],"tag":"TypeVar","contents":"s"}]}]}]}]}]}]}]}]},null]},null]},null]},null]},null]},null]}},"sourceSpan":{"start":[165,1],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[174,9]}},{"children":[],"comments":"The opposite of `over`: lowers a function that operates on `Newtype`d\nvalues to operate on the wrapped value instead.\n\n``` purescript\nnewtype Degrees = Degrees Number\nderive instance newtypeDegrees :: Newtype Degrees _\n\nnewtype NormalDegrees = NormalDegrees Number\nderive instance newtypeNormalDegrees :: Newtype NormalDegrees _\n\nnormaliseDegrees :: Degrees -> NormalDegrees\nnormaliseDegrees (Degrees deg) = NormalDegrees (deg % 360.0)\n\nasNormalDegrees :: Number -> Number\nasNormalDegrees = under Degrees normaliseDegrees\n```\n\nAs with `over` the `Newtype` is polymorphic, as illustrated in the example\nabove - both `Degrees` and `NormalDegrees` are instances of `Newtype`,\nso even though `normaliseDegrees` changes the result type we can still put\na `Number` in and get a `Number` out via `under`.\n","title":"under","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["s",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["t",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Newtype"],"Newtype"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"t"},{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Newtype"],"Newtype"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"s"},{"annotation":[],"tag":"TypeVar","contents":"b"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"t"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"t"}]},{"annotation":[],"tag":"TypeVar","contents":"s"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}]}]}]},null]},null]},null]},null]}},"sourceSpan":{"start":[198,1],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[205,7]}},{"children":[],"comments":"Much like `under`, but where the lifted function operates on values in a\n`Functor`:\n\n``` purescript\nnewtype EmailAddress = EmailAddress String\nderive instance newtypeEmailAddress :: Newtype EmailAddress _\n\nisValid :: EmailAddress -> Boolean\nisValid x = false -- imagine a slightly less strict predicate here\n\nfindValidEmailString :: Array String -> Maybe String\nfindValidEmailString = underF EmailAddress (Foldable.find isValid)\n```\n\nThe above example also demonstrates that the functor type is polymorphic\nhere too, the input is an `Array` but the result is a `Maybe`.\n","title":"underF","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["s",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["t",{"annotation":[],"tag":"ForAll","contents":["g",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Functor"],"Functor"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Functor"],"Functor"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"g"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Newtype"],"Newtype"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"t"},{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Newtype"],"Newtype"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"s"},{"annotation":[],"tag":"TypeVar","contents":"b"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"t"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"t"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"g"},{"annotation":[],"tag":"TypeVar","contents":"s"}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"g"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}]}]}]}]}]}]},null]},null]},null]},null]},null]},null]}},"sourceSpan":{"start":[224,1],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[233,9]}},{"children":[],"comments":"Lifts a binary function to operate over newtypes.\n\n``` purescript\nnewtype Meter = Meter Int\nderive newtype instance newtypeMeter :: Newtype Meter _\nnewtype SquareMeter = SquareMeter Int\nderive newtype instance newtypeSquareMeter :: Newtype SquareMeter _\n\narea :: Meter -> Meter -> SquareMeter\narea = over2 Meter (*)\n```\n\nThe above example also demonstrates that the return type is polymorphic\nhere too.\n","title":"over2","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["s",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["t",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Newtype"],"Newtype"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"t"},{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Newtype"],"Newtype"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"s"},{"annotation":[],"tag":"TypeVar","contents":"b"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"t"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"t"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"t"}]},{"annotation":[],"tag":"TypeVar","contents":"s"}]}]}]}]}]}]},null]},null]},null]},null]}},"sourceSpan":{"start":[250,1],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[258,7]}},{"children":[],"comments":"Much like `over2`, but where the lifted binary function operates on\nvalues in a `Functor`.\n","title":"overF2","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["s",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["t",{"annotation":[],"tag":"ForAll","contents":["g",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Functor"],"Functor"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Functor"],"Functor"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"g"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Newtype"],"Newtype"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"t"},{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Newtype"],"Newtype"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"s"},{"annotation":[],"tag":"TypeVar","contents":"b"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"t"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"g"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"t"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"t"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"g"},{"annotation":[],"tag":"TypeVar","contents":"s"}]}]}]}]}]}]}]}]}]},null]},null]},null]},null]},null]},null]}},"sourceSpan":{"start":[263,1],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[273,9]}},{"children":[],"comments":"The opposite of `over2`: lowers a binary function that operates on `Newtype`d\nvalues to operate on the wrapped value instead.\n","title":"under2","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["s",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["t",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Newtype"],"Newtype"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"t"},{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Newtype"],"Newtype"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"s"},{"annotation":[],"tag":"TypeVar","contents":"b"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"t"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"t"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"t"}]},{"annotation":[],"tag":"TypeVar","contents":"s"}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}]}]}]}]},null]},null]},null]},null]}},"sourceSpan":{"start":[278,1],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[286,7]}},{"children":[],"comments":"Much like `under2`, but where the lifted binary function operates on\nvalues in a `Functor`.\n","title":"underF2","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["s",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["t",{"annotation":[],"tag":"ForAll","contents":["g",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Functor"],"Functor"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Functor"],"Functor"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"g"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Newtype"],"Newtype"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"t"},{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Newtype"],"Newtype"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"s"},{"annotation":[],"tag":"TypeVar","contents":"b"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"t"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"t"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"t"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"g"},{"annotation":[],"tag":"TypeVar","contents":"s"}]}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"g"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}]}]}]}]}]}]}]},null]},null]},null]},null]},null]},null]}},"sourceSpan":{"start":[291,1],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[301,9]}},{"children":[],"comments":"Similar to the function from the `Traversable` class, but operating within\na newtype instead.\n","title":"traverse","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["t",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Functor"],"Functor"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Newtype"],"Newtype"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"t"},{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"t"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"t"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"t"}]}]}]}]}]}]},null]},null]},null]}},"sourceSpan":{"start":[306,1],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[313,9]}},{"children":[],"comments":"Similar to the function from the `Distributive` class, but operating within\na newtype instead.\n","title":"collect","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["t",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Functor"],"Functor"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Newtype"],"Newtype"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"t"},{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"t"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"t"}]}]},{"annotation":[],"tag":"TypeVar","contents":"t"}]}]}]}]}]},null]},null]},null]}},"sourceSpan":{"start":[318,1],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[325,7]}}]}
+{"comments":null,"declarations":[{"children":[{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Newtype"],"Newtype"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Monoid","Additive"],"Additive"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}},"sourceSpan":{"end":[37,51],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","start":[37,1]},"title":"newtypeAdditive"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Newtype"],"Newtype"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Monoid","Multiplicative"],"Multiplicative"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}},"sourceSpan":{"end":[39,63],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","start":[39,1]},"title":"newtypeMultiplicative"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Newtype"],"Newtype"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Monoid","Conj"],"Conj"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}},"sourceSpan":{"end":[41,43],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","start":[41,1]},"title":"newtypeConj"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Newtype"],"Newtype"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Monoid","Disj"],"Disj"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}},"sourceSpan":{"end":[43,43],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","start":[43,1]},"title":"newtypeDisj"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Newtype"],"Newtype"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Monoid","Dual"],"Dual"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}},"sourceSpan":{"end":[45,43],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","start":[45,1]},"title":"newtypeDual"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Newtype"],"Newtype"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Monoid","Endo"],"Endo"],"tag":"TypeConstructor"},{"annotation":[],"contents":"c","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":"c","tag":"TypeVar"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[47,51],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","start":[47,1]},"title":"newtypeEndo"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Newtype"],"Newtype"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Semigroup","First"],"First"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}},"sourceSpan":{"end":[49,45],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","start":[49,1]},"title":"newtypeFirst"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Newtype"],"Newtype"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Semigroup","Last"],"Last"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}},"sourceSpan":{"end":[51,43],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","start":[51,1]},"title":"newtypeLast"}],"comments":"A type class for `newtype`s to enable convenient wrapping and unwrapping,\nand the use of the other functions in this module.\n\nThe compiler can derive instances of `Newtype` automatically:\n\n``` purescript\nnewtype EmailAddress = EmailAddress String\n\nderive instance newtypeEmailAddress :: Newtype EmailAddress _\n```\n\nNote that deriving for `Newtype` instances requires that the type be\ndefined as `newtype` rather than `data` declaration (even if the `data`\nstructurally fits the rules of a `newtype`), and the use of a wildcard for\nthe wrapped type.\n","info":{"arguments":[["t",null],["a",null]],"declType":"typeClass","fundeps":[[["t"],["a"]]],"superclasses":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"t","tag":"TypeVar"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Prim","Coerce"],"Coercible"],"constraintData":null,"constraintKindArgs":[]}]},"kind":null,"sourceSpan":{"end":[29,44],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","start":[29,1]},"title":"Newtype"},{"children":[],"comments":null,"info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"t","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"t","tag":"TypeVar"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","Newtype"],"Newtype"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"t","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[31,42],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","start":[31,1]},"title":"wrap"},{"children":[],"comments":null,"info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"t","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"t","tag":"TypeVar"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","Newtype"],"Newtype"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"t","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[34,44],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","start":[34,1]},"title":"unwrap"},{"children":[],"comments":"Given a constructor for a `Newtype`, this returns the appropriate `unwrap`\nfunction.\n","info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"t","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"t","tag":"TypeVar"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","Newtype"],"Newtype"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"t","tag":"TypeVar"}],"tag":"TypeApp"},"tag":"ParensInType"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"t","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[55,52],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","start":[55,1]},"title":"un"},{"children":[],"comments":"This combinator unwraps the newtype, applies a monomorphic function to the \ncontained value and wraps the result back in the newtype\n","info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"t","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"t","tag":"TypeVar"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","Newtype"],"Newtype"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},"tag":"ParensInType"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"t","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"t","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[60,56],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","start":[60,1]},"title":"modify"},{"children":[],"comments":"This combinator is for when you have a higher order function that you want\nto use in the context of some newtype - `foldMap` being a common example:\n\n``` purescript\nala Additive foldMap [1,2,3,4] -- 10\nala Multiplicative foldMap [1,2,3,4] -- 24\nala Conj foldMap [true, false] -- false\nala Disj foldMap [true, false] -- true\n```\n","info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"f","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"t","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"s","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"b","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":{"annotation":[],"contents":[{"annotation":[],"contents":"f","tag":"TypeVar"},{"annotation":[],"contents":"t","tag":"TypeVar"}],"tag":"TypeApp"},"tag":"ParensInType"},{"annotation":[],"contents":{"annotation":[],"contents":[{"annotation":[],"contents":"f","tag":"TypeVar"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},"tag":"ParensInType"}],"constraintClass":[["Prim","Coerce"],"Coercible"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"t","tag":"TypeVar"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","Newtype"],"Newtype"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"s","tag":"TypeVar"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"constraintClass":[["Data","Newtype"],"Newtype"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"t","tag":"TypeVar"}],"tag":"TypeApp"},"tag":"ParensInType"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"s","tag":"TypeVar"}],"tag":"TypeApp"},"tag":"ParensInType"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":"f","tag":"TypeVar"},{"annotation":[],"contents":"t","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},"tag":"ParensInType"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":"f","tag":"TypeVar"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"ConstrainedType"}],"tag":"ConstrainedType"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[79,9],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","start":[72,1]},"title":"ala"},{"children":[],"comments":"Similar to `ala` but useful for cases where you want to use an additional\nprojection with the higher order function:\n\n``` purescript\nalaF Additive foldMap String.length [\"hello\", \"world\"] -- 10\nalaF Multiplicative foldMap Math.abs [1.0, -2.0, 3.0, -4.0] -- 24.0\n```\n\nThe type admits other possibilities due to the polymorphic `Functor`\nconstraints, but the case described above works because ((->) a) is a\n`Functor`.\n","info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"f","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"g","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"t","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"s","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"b","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":{"annotation":[],"contents":[{"annotation":[],"contents":"f","tag":"TypeVar"},{"annotation":[],"contents":"t","tag":"TypeVar"}],"tag":"TypeApp"},"tag":"ParensInType"},{"annotation":[],"contents":{"annotation":[],"contents":[{"annotation":[],"contents":"f","tag":"TypeVar"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},"tag":"ParensInType"}],"constraintClass":[["Prim","Coerce"],"Coercible"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":{"annotation":[],"contents":[{"annotation":[],"contents":"g","tag":"TypeVar"},{"annotation":[],"contents":"s","tag":"TypeVar"}],"tag":"TypeApp"},"tag":"ParensInType"},{"annotation":[],"contents":{"annotation":[],"contents":[{"annotation":[],"contents":"g","tag":"TypeVar"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"},"tag":"ParensInType"}],"constraintClass":[["Prim","Coerce"],"Coercible"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"t","tag":"TypeVar"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","Newtype"],"Newtype"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"s","tag":"TypeVar"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"constraintClass":[["Data","Newtype"],"Newtype"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"t","tag":"TypeVar"}],"tag":"TypeApp"},"tag":"ParensInType"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":"f","tag":"TypeVar"},{"annotation":[],"contents":"t","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":"g","tag":"TypeVar"},{"annotation":[],"contents":"s","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},"tag":"ParensInType"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":"f","tag":"TypeVar"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":"g","tag":"TypeVar"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"ConstrainedType"}],"tag":"ConstrainedType"}],"tag":"ConstrainedType"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[102,9],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","start":[93,1]},"title":"alaF"},{"children":[],"comments":"Lifts a function operate over newtypes. This can be used to lift a\nfunction to manipulate the contents of a single newtype, somewhat like\n`map` does for a `Functor`:\n\n``` purescript\nnewtype Label = Label String\nderive instance newtypeLabel :: Newtype Label _\n\ntoUpperLabel :: Label -> Label\ntoUpperLabel = over Label String.toUpper\n```\n\nBut the result newtype is polymorphic, meaning the result can be returned\nas an alternative newtype:\n\n``` purescript\nnewtype UppercaseLabel = UppercaseLabel String\nderive instance newtypeUppercaseLabel :: Newtype UppercaseLabel _\n\ntoUpperLabel' :: Label -> UppercaseLabel\ntoUpperLabel' = over Label String.toUpper\n```\n","info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"t","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"s","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"b","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"t","tag":"TypeVar"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","Newtype"],"Newtype"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"s","tag":"TypeVar"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"constraintClass":[["Data","Newtype"],"Newtype"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"t","tag":"TypeVar"}],"tag":"TypeApp"},"tag":"ParensInType"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"},"tag":"ParensInType"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"t","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"s","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"ConstrainedType"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[134,7],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","start":[127,1]},"title":"over"},{"children":[],"comments":"Much like `over`, but where the lifted function operates on values in a\n`Functor`:\n\n``` purescript\nfindLabel :: String -> Array Label -> Maybe Label\nfindLabel s = overF Label (Foldable.find (_ == s))\n```\n\nThe above example also demonstrates that the functor type is polymorphic\nhere too, the input is an `Array` but the result is a `Maybe`.\n","info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"f","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"g","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"t","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"s","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"b","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":{"annotation":[],"contents":[{"annotation":[],"contents":"f","tag":"TypeVar"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},"tag":"ParensInType"},{"annotation":[],"contents":{"annotation":[],"contents":[{"annotation":[],"contents":"f","tag":"TypeVar"},{"annotation":[],"contents":"t","tag":"TypeVar"}],"tag":"TypeApp"},"tag":"ParensInType"}],"constraintClass":[["Prim","Coerce"],"Coercible"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":{"annotation":[],"contents":[{"annotation":[],"contents":"g","tag":"TypeVar"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"},"tag":"ParensInType"},{"annotation":[],"contents":{"annotation":[],"contents":[{"annotation":[],"contents":"g","tag":"TypeVar"},{"annotation":[],"contents":"s","tag":"TypeVar"}],"tag":"TypeApp"},"tag":"ParensInType"}],"constraintClass":[["Prim","Coerce"],"Coercible"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"t","tag":"TypeVar"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","Newtype"],"Newtype"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"s","tag":"TypeVar"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"constraintClass":[["Data","Newtype"],"Newtype"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"t","tag":"TypeVar"}],"tag":"TypeApp"},"tag":"ParensInType"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":"f","tag":"TypeVar"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":"g","tag":"TypeVar"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},"tag":"ParensInType"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":"f","tag":"TypeVar"},{"annotation":[],"contents":"t","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":"g","tag":"TypeVar"},{"annotation":[],"contents":"s","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"ConstrainedType"}],"tag":"ConstrainedType"}],"tag":"ConstrainedType"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[156,9],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","start":[147,1]},"title":"overF"},{"children":[],"comments":"The opposite of `over`: lowers a function that operates on `Newtype`d\nvalues to operate on the wrapped value instead.\n\n``` purescript\nnewtype Degrees = Degrees Number\nderive instance newtypeDegrees :: Newtype Degrees _\n\nnewtype NormalDegrees = NormalDegrees Number\nderive instance newtypeNormalDegrees :: Newtype NormalDegrees _\n\nnormaliseDegrees :: Degrees -> NormalDegrees\nnormaliseDegrees (Degrees deg) = NormalDegrees (deg % 360.0)\n\nasNormalDegrees :: Number -> Number\nasNormalDegrees = under Degrees normaliseDegrees\n```\n\nAs with `over` the `Newtype` is polymorphic, as illustrated in the example\nabove - both `Degrees` and `NormalDegrees` are instances of `Newtype`,\nso even though `normaliseDegrees` changes the result type we can still put\na `Number` in and get a `Number` out via `under`.\n","info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"t","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"s","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"b","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"t","tag":"TypeVar"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","Newtype"],"Newtype"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"s","tag":"TypeVar"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"constraintClass":[["Data","Newtype"],"Newtype"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"t","tag":"TypeVar"}],"tag":"TypeApp"},"tag":"ParensInType"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"t","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"s","tag":"TypeVar"}],"tag":"TypeApp"},"tag":"ParensInType"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"ConstrainedType"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[187,7],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","start":[180,1]},"title":"under"},{"children":[],"comments":"Much like `under`, but where the lifted function operates on values in a\n`Functor`:\n\n``` purescript\nnewtype EmailAddress = EmailAddress String\nderive instance newtypeEmailAddress :: Newtype EmailAddress _\n\nisValid :: EmailAddress -> Boolean\nisValid x = false -- imagine a slightly less strict predicate here\n\nfindValidEmailString :: Array String -> Maybe String\nfindValidEmailString = underF EmailAddress (Foldable.find isValid)\n```\n\nThe above example also demonstrates that the functor type is polymorphic\nhere too, the input is an `Array` but the result is a `Maybe`.\n","info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"f","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"g","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"t","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"s","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"b","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":{"annotation":[],"contents":[{"annotation":[],"contents":"f","tag":"TypeVar"},{"annotation":[],"contents":"t","tag":"TypeVar"}],"tag":"TypeApp"},"tag":"ParensInType"},{"annotation":[],"contents":{"annotation":[],"contents":[{"annotation":[],"contents":"f","tag":"TypeVar"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},"tag":"ParensInType"}],"constraintClass":[["Prim","Coerce"],"Coercible"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":{"annotation":[],"contents":[{"annotation":[],"contents":"g","tag":"TypeVar"},{"annotation":[],"contents":"s","tag":"TypeVar"}],"tag":"TypeApp"},"tag":"ParensInType"},{"annotation":[],"contents":{"annotation":[],"contents":[{"annotation":[],"contents":"g","tag":"TypeVar"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"},"tag":"ParensInType"}],"constraintClass":[["Prim","Coerce"],"Coercible"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"t","tag":"TypeVar"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","Newtype"],"Newtype"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"s","tag":"TypeVar"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"constraintClass":[["Data","Newtype"],"Newtype"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"t","tag":"TypeVar"}],"tag":"TypeApp"},"tag":"ParensInType"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":"f","tag":"TypeVar"},{"annotation":[],"contents":"t","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":"g","tag":"TypeVar"},{"annotation":[],"contents":"s","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},"tag":"ParensInType"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":"f","tag":"TypeVar"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":"g","tag":"TypeVar"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"ConstrainedType"}],"tag":"ConstrainedType"}],"tag":"ConstrainedType"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[215,9],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","start":[206,1]},"title":"underF"},{"children":[],"comments":"Lifts a binary function to operate over newtypes.\n\n``` purescript\nnewtype Meter = Meter Int\nderive newtype instance newtypeMeter :: Newtype Meter _\nnewtype SquareMeter = SquareMeter Int\nderive newtype instance newtypeSquareMeter :: Newtype SquareMeter _\n\narea :: Meter -> Meter -> SquareMeter\narea = over2 Meter (*)\n```\n\nThe above example also demonstrates that the return type is polymorphic\nhere too.\n","info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"t","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"s","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"b","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"t","tag":"TypeVar"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","Newtype"],"Newtype"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"s","tag":"TypeVar"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"constraintClass":[["Data","Newtype"],"Newtype"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"t","tag":"TypeVar"}],"tag":"TypeApp"},"tag":"ParensInType"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},"tag":"ParensInType"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"t","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"t","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"s","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"ConstrainedType"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[240,7],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","start":[232,1]},"title":"over2"},{"children":[],"comments":"Much like `over2`, but where the lifted binary function operates on\nvalues in a `Functor`.\n","info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"f","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"g","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"t","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"s","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"b","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":{"annotation":[],"contents":[{"annotation":[],"contents":"f","tag":"TypeVar"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},"tag":"ParensInType"},{"annotation":[],"contents":{"annotation":[],"contents":[{"annotation":[],"contents":"f","tag":"TypeVar"},{"annotation":[],"contents":"t","tag":"TypeVar"}],"tag":"TypeApp"},"tag":"ParensInType"}],"constraintClass":[["Prim","Coerce"],"Coercible"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":{"annotation":[],"contents":[{"annotation":[],"contents":"g","tag":"TypeVar"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"},"tag":"ParensInType"},{"annotation":[],"contents":{"annotation":[],"contents":[{"annotation":[],"contents":"g","tag":"TypeVar"},{"annotation":[],"contents":"s","tag":"TypeVar"}],"tag":"TypeApp"},"tag":"ParensInType"}],"constraintClass":[["Prim","Coerce"],"Coercible"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"t","tag":"TypeVar"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","Newtype"],"Newtype"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"s","tag":"TypeVar"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"constraintClass":[["Data","Newtype"],"Newtype"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"t","tag":"TypeVar"}],"tag":"TypeApp"},"tag":"ParensInType"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":"f","tag":"TypeVar"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":"f","tag":"TypeVar"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":"g","tag":"TypeVar"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"},"tag":"ParensInType"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":"f","tag":"TypeVar"},{"annotation":[],"contents":"t","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":"f","tag":"TypeVar"},{"annotation":[],"contents":"t","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":"g","tag":"TypeVar"},{"annotation":[],"contents":"s","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"ConstrainedType"}],"tag":"ConstrainedType"}],"tag":"ConstrainedType"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[255,9],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","start":[245,1]},"title":"overF2"},{"children":[],"comments":"The opposite of `over2`: lowers a binary function that operates on `Newtype`d\nvalues to operate on the wrapped value instead.\n","info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"t","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"s","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"b","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"t","tag":"TypeVar"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","Newtype"],"Newtype"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"s","tag":"TypeVar"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"constraintClass":[["Data","Newtype"],"Newtype"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"t","tag":"TypeVar"}],"tag":"TypeApp"},"tag":"ParensInType"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"t","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"t","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"s","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},"tag":"ParensInType"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"ConstrainedType"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[268,7],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","start":[260,1]},"title":"under2"},{"children":[],"comments":"Much like `under2`, but where the lifted binary function operates on\nvalues in a `Functor`.\n","info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"f","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"g","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"t","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"s","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"b","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":{"annotation":[],"contents":[{"annotation":[],"contents":"f","tag":"TypeVar"},{"annotation":[],"contents":"t","tag":"TypeVar"}],"tag":"TypeApp"},"tag":"ParensInType"},{"annotation":[],"contents":{"annotation":[],"contents":[{"annotation":[],"contents":"f","tag":"TypeVar"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},"tag":"ParensInType"}],"constraintClass":[["Prim","Coerce"],"Coercible"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":{"annotation":[],"contents":[{"annotation":[],"contents":"g","tag":"TypeVar"},{"annotation":[],"contents":"s","tag":"TypeVar"}],"tag":"TypeApp"},"tag":"ParensInType"},{"annotation":[],"contents":{"annotation":[],"contents":[{"annotation":[],"contents":"g","tag":"TypeVar"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"},"tag":"ParensInType"}],"constraintClass":[["Prim","Coerce"],"Coercible"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"t","tag":"TypeVar"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","Newtype"],"Newtype"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"s","tag":"TypeVar"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"constraintClass":[["Data","Newtype"],"Newtype"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"t","tag":"TypeVar"}],"tag":"TypeApp"},"tag":"ParensInType"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":"f","tag":"TypeVar"},{"annotation":[],"contents":"t","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":"f","tag":"TypeVar"},{"annotation":[],"contents":"t","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":"g","tag":"TypeVar"},{"annotation":[],"contents":"s","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"},"tag":"ParensInType"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":"f","tag":"TypeVar"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":"f","tag":"TypeVar"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":"g","tag":"TypeVar"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"ConstrainedType"}],"tag":"ConstrainedType"}],"tag":"ConstrainedType"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[283,9],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","start":[273,1]},"title":"underF2"},{"children":[],"comments":"Similar to the function from the `Traversable` class, but operating within\na newtype instead.\n","info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"f","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"t","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":{"annotation":[],"contents":[{"annotation":[],"contents":"f","tag":"TypeVar"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},"tag":"ParensInType"},{"annotation":[],"contents":{"annotation":[],"contents":[{"annotation":[],"contents":"f","tag":"TypeVar"},{"annotation":[],"contents":"t","tag":"TypeVar"}],"tag":"TypeApp"},"tag":"ParensInType"}],"constraintClass":[["Prim","Coerce"],"Coercible"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"t","tag":"TypeVar"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","Newtype"],"Newtype"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"t","tag":"TypeVar"}],"tag":"TypeApp"},"tag":"ParensInType"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":"f","tag":"TypeVar"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},"tag":"ParensInType"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"t","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":"f","tag":"TypeVar"},{"annotation":[],"contents":"t","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"ConstrainedType"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[295,9],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","start":[288,1]},"title":"traverse"},{"children":[],"comments":"Similar to the function from the `Distributive` class, but operating within\na newtype instead.\n","info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"f","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"t","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":{"annotation":[],"contents":[{"annotation":[],"contents":"f","tag":"TypeVar"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},"tag":"ParensInType"},{"annotation":[],"contents":{"annotation":[],"contents":[{"annotation":[],"contents":"f","tag":"TypeVar"},{"annotation":[],"contents":"t","tag":"TypeVar"}],"tag":"TypeApp"},"tag":"ParensInType"}],"constraintClass":[["Prim","Coerce"],"Coercible"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"t","tag":"TypeVar"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","Newtype"],"Newtype"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"t","tag":"TypeVar"}],"tag":"TypeApp"},"tag":"ParensInType"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":"f","tag":"TypeVar"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},"tag":"ParensInType"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":"f","tag":"TypeVar"},{"annotation":[],"contents":"t","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":"t","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"ConstrainedType"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[307,7],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","start":[300,1]},"title":"collect"}],"name":"Data.Newtype","reExports":[]}
diff --git a/tests/purs/publish/basic-example/output/Data.Newtype/externs.json b/tests/purs/publish/basic-example/output/Data.Newtype/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.Newtype/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Data","Newtype"],"efExports":[{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[326,40]},{"Ident":"unwrap"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[326,40]},{"Ident":"wrap"}]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[326,40]},"Newtype"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[326,40]},{"Ident":"un"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[326,40]},{"Ident":"op"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[326,40]},{"Ident":"ala"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[326,40]},{"Ident":"alaF"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[326,40]},{"Ident":"over"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[326,40]},{"Ident":"overF"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[326,40]},{"Ident":"under"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[326,40]},{"Ident":"underF"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[326,40]},{"Ident":"over2"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[326,40]},{"Ident":"overF2"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[326,40]},{"Ident":"under2"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[326,40]},{"Ident":"underF2"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[326,40]},{"Ident":"traverse"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[326,40]},{"Ident":"collect"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"newtypeAdditive"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"newtypeMultiplicative"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"newtypeConj"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"newtypeDisj"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"newtypeDual"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"newtypeEndo"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"newtypeFirst"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"newtypeLast"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Prelude"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Data","Function"],"eiImportType":{"Explicit":[{"ValueRef":[{"start":[5,23],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[5,25]},{"Ident":"on"}]}]},"eiImportedAs":null},{"eiModule":["Data","Monoid","Additive"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[6,30],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[6,42]},"Additive",null]}]},"eiImportedAs":null},{"eiModule":["Data","Monoid","Conj"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[7,26],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[7,34]},"Conj",null]}]},"eiImportedAs":null},{"eiModule":["Data","Monoid","Disj"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[8,26],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[8,34]},"Disj",null]}]},"eiImportedAs":null},{"eiModule":["Data","Monoid","Dual"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[9,26],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[9,34]},"Dual",null]}]},"eiImportedAs":null},{"eiModule":["Data","Monoid","Endo"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[10,26],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[10,34]},"Endo",null]}]},"eiImportedAs":null},{"eiModule":["Data","Monoid","Multiplicative"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[11,36],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[11,54]},"Multiplicative",null]}]},"eiImportedAs":null},{"eiModule":["Data","Semigroup","First"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[12,30],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[12,39]},"First",null]}]},"eiImportedAs":null},{"eiModule":["Data","Semigroup","Last"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[13,29],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[13,37]},"Last",null]}]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDValue":{"edValueName":{"Ident":"unwrap"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["t",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["Data","Newtype"],"Newtype"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"t"},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[38,13],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[38,19]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[38,13],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[38,19]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[38,15],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[38,17]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[38,13],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[38,14]},[]],"tag":"TypeVar","contents":"t"}]},{"annotation":[{"start":[38,18],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[38,19]},[]],"tag":"TypeVar","contents":"a"}]}]},2]},3]}}},{"EDValue":{"edValueName":{"Ident":"wrap"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["t",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["Data","Newtype"],"Newtype"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"t"},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[37,11],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[37,17]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[37,11],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[37,17]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[37,13],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[37,15]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[37,11],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[37,12]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[37,16],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[37,17]},[]],"tag":"TypeVar","contents":"t"}]}]},0]},1]}}},{"EDType":{"edTypeName":"Newtype","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[37,13],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[37,15]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[37,13],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[37,15]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"Newtype","edTypeSynonymArguments":[["t",null],["a",null]],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["wrap",{"annotation":[{"start":[37,11],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[37,17]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[37,11],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[37,17]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[37,13],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[37,15]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[37,11],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[37,12]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[37,16],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[37,17]},[]],"tag":"TypeVar","contents":"t"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["unwrap",{"annotation":[{"start":[38,13],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[38,19]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[38,13],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[38,19]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[38,15],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[38,17]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[38,13],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[38,14]},[]],"tag":"TypeVar","contents":"t"}]},{"annotation":[{"start":[38,18],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[38,19]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]}]}}},{"EDClass":{"edClassName":"Newtype","edClassTypeArguments":[["t",null],["a",null]],"edClassMembers":[[{"Ident":"wrap"},{"annotation":[{"start":[37,11],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[37,17]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[37,11],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[37,17]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[37,13],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[37,15]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[37,11],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[37,12]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[37,16],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[37,17]},[]],"tag":"TypeVar","contents":"t"}]}],[{"Ident":"unwrap"},{"annotation":[{"start":[38,13],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[38,19]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[38,13],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[38,19]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[38,15],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[38,17]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[38,13],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[38,14]},[]],"tag":"TypeVar","contents":"t"}]},{"annotation":[{"start":[38,18],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[38,19]},[]],"tag":"TypeVar","contents":"a"}]}]],"edClassConstraints":[],"edFunctionalDependencies":[{"determiners":[0],"determined":[1]}]}},{"EDValue":{"edValueName":{"Ident":"un"},"edValueType":{"annotation":[{"start":[74,7],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[74,52]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[74,14],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[74,52]},[]],"tag":"ForAll","contents":["t",{"annotation":[{"start":[74,19],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[74,52]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[74,19],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[74,30]},[]],"constraintClass":[["Data","Newtype"],"Newtype"],"constraintArgs":[{"annotation":[{"start":[74,27],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[74,28]},[]],"tag":"TypeVar","contents":"t"},{"annotation":[{"start":[74,29],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[74,30]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[74,34],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[74,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[74,34],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[74,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[74,43],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[74,45]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[74,35],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[74,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[74,35],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[74,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[74,37],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[74,39]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[74,35],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[74,36]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[74,40],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[74,41]},[]],"tag":"TypeVar","contents":"t"}]}]},{"annotation":[{"start":[74,46],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[74,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[74,46],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[74,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[74,48],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[74,50]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[74,46],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[74,47]},[]],"tag":"TypeVar","contents":"t"}]},{"annotation":[{"start":[74,51],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[74,52]},[]],"tag":"TypeVar","contents":"a"}]}]}]},44]},45]}}},{"EDValue":{"edValueName":{"Ident":"op"},"edValueType":{"annotation":[{"start":[78,7],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[78,52]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[78,14],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[78,52]},[]],"tag":"ForAll","contents":["t",{"annotation":[{"start":[78,19],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[78,52]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[78,19],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[78,30]},[]],"constraintClass":[["Data","Newtype"],"Newtype"],"constraintArgs":[{"annotation":[{"start":[78,27],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[78,28]},[]],"tag":"TypeVar","contents":"t"},{"annotation":[{"start":[78,29],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[78,30]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[78,34],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[78,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[78,34],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[78,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[78,43],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[78,45]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[78,35],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[78,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[78,35],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[78,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[78,37],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[78,39]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[78,35],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[78,36]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[78,40],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[78,41]},[]],"tag":"TypeVar","contents":"t"}]}]},{"annotation":[{"start":[78,46],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[78,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[78,46],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[78,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[78,48],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[78,50]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[78,46],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[78,47]},[]],"tag":"TypeVar","contents":"t"}]},{"annotation":[{"start":[78,51],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[78,52]},[]],"tag":"TypeVar","contents":"a"}]}]}]},94]},95]}}},{"EDValue":{"edValueName":{"Ident":"ala"},"edValueType":{"annotation":[{"start":[91,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[97,9]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[91,13],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[97,9]},[]],"tag":"ForAll","contents":["s",{"annotation":[{"start":[91,13],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[97,9]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[91,13],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[97,9]},[]],"tag":"ForAll","contents":["t",{"annotation":[{"start":[91,13],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[97,9]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[92,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[97,9]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[92,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[92,15]},[]],"constraintClass":[["Data","Functor"],"Functor"],"constraintArgs":[{"annotation":[{"start":[92,14],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[92,15]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[93,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[97,9]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[93,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[93,17]},[]],"constraintClass":[["Data","Newtype"],"Newtype"],"constraintArgs":[{"annotation":[{"start":[93,14],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[93,15]},[]],"tag":"TypeVar","contents":"t"},{"annotation":[{"start":[93,16],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[93,17]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[94,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[97,9]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[94,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[94,17]},[]],"constraintClass":[["Data","Newtype"],"Newtype"],"constraintArgs":[{"annotation":[{"start":[94,14],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[94,15]},[]],"tag":"TypeVar","contents":"s"},{"annotation":[{"start":[94,16],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[94,17]},[]],"tag":"TypeVar","contents":"b"}],"constraintData":null},{"annotation":[{"start":[95,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[97,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[95,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[97,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[96,3],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[96,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[95,7],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[95,13]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[95,7],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[95,13]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[95,9],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[95,11]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[95,7],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[95,8]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[95,12],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[95,13]},[]],"tag":"TypeVar","contents":"t"}]}]},{"annotation":[{"start":[96,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[97,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[96,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[97,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[97,3],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[97,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[96,7],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[96,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[96,7],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[96,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[96,16],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[96,18]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[96,8],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[96,14]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[96,8],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[96,14]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[96,10],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[96,12]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[96,8],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[96,9]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[96,13],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[96,14]},[]],"tag":"TypeVar","contents":"s"}]}]},{"annotation":[{"start":[96,19],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[96,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[96,19],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[96,20]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[96,21],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[96,22]},[]],"tag":"TypeVar","contents":"t"}]}]}]},{"annotation":[{"start":[97,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[97,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[97,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[97,7]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[97,8],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[97,9]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]}]}]},143]},144]},145]},146]},147]}}},{"EDValue":{"edValueName":{"Ident":"alaF"},"edValueType":{"annotation":[{"start":[112,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[120,9]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[112,13],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[120,9]},[]],"tag":"ForAll","contents":["s",{"annotation":[{"start":[112,13],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[120,9]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[112,13],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[120,9]},[]],"tag":"ForAll","contents":["t",{"annotation":[{"start":[112,13],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[120,9]},[]],"tag":"ForAll","contents":["g",{"annotation":[{"start":[112,13],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[120,9]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[113,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[120,9]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[113,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[113,15]},[]],"constraintClass":[["Data","Functor"],"Functor"],"constraintArgs":[{"annotation":[{"start":[113,14],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[113,15]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[114,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[120,9]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[114,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[114,15]},[]],"constraintClass":[["Data","Functor"],"Functor"],"constraintArgs":[{"annotation":[{"start":[114,14],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[114,15]},[]],"tag":"TypeVar","contents":"g"}],"constraintData":null},{"annotation":[{"start":[115,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[120,9]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[115,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[115,17]},[]],"constraintClass":[["Data","Newtype"],"Newtype"],"constraintArgs":[{"annotation":[{"start":[115,14],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[115,15]},[]],"tag":"TypeVar","contents":"t"},{"annotation":[{"start":[115,16],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[115,17]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[116,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[120,9]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[116,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[116,17]},[]],"constraintClass":[["Data","Newtype"],"Newtype"],"constraintArgs":[{"annotation":[{"start":[116,14],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[116,15]},[]],"tag":"TypeVar","contents":"s"},{"annotation":[{"start":[116,16],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[116,17]},[]],"tag":"TypeVar","contents":"b"}],"constraintData":null},{"annotation":[{"start":[117,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[120,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[117,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[120,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[118,3],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[118,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[117,7],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[117,13]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[117,7],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[117,13]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[117,9],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[117,11]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[117,7],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[117,8]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[117,12],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[117,13]},[]],"tag":"TypeVar","contents":"t"}]}]},{"annotation":[{"start":[118,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[120,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[118,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[120,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[119,3],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[119,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[118,7],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[118,17]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[118,7],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[118,17]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[118,11],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[118,13]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[118,7],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[118,10]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[118,7],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[118,8]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[118,9],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[118,10]},[]],"tag":"TypeVar","contents":"t"}]}]},{"annotation":[{"start":[118,14],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[118,17]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[118,14],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[118,15]},[]],"tag":"TypeVar","contents":"g"},{"annotation":[{"start":[118,16],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[118,17]},[]],"tag":"TypeVar","contents":"s"}]}]}]},{"annotation":[{"start":[119,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[120,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[119,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[120,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[120,3],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[120,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[119,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[119,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[119,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[119,7]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[119,8],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[119,9]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[120,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[120,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[120,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[120,7]},[]],"tag":"TypeVar","contents":"g"},{"annotation":[{"start":[120,8],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[120,9]},[]],"tag":"TypeVar","contents":"b"}]}]}]}]}]}]}]}]},131]},132]},133]},134]},135]},136]}}},{"EDValue":{"edValueName":{"Ident":"over"},"edValueType":{"annotation":[{"start":[146,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[152,7]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[146,13],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[152,7]},[]],"tag":"ForAll","contents":["s",{"annotation":[{"start":[146,13],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[152,7]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[146,13],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[152,7]},[]],"tag":"ForAll","contents":["t",{"annotation":[{"start":[147,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[152,7]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[147,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[147,17]},[]],"constraintClass":[["Data","Newtype"],"Newtype"],"constraintArgs":[{"annotation":[{"start":[147,14],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[147,15]},[]],"tag":"TypeVar","contents":"t"},{"annotation":[{"start":[147,16],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[147,17]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[148,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[152,7]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[148,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[148,17]},[]],"constraintClass":[["Data","Newtype"],"Newtype"],"constraintArgs":[{"annotation":[{"start":[148,14],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[148,15]},[]],"tag":"TypeVar","contents":"s"},{"annotation":[{"start":[148,16],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[148,17]},[]],"tag":"TypeVar","contents":"b"}],"constraintData":null},{"annotation":[{"start":[149,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[152,7]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[149,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[152,7]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[150,3],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[150,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[149,7],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[149,13]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[149,7],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[149,13]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[149,9],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[149,11]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[149,7],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[149,8]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[149,12],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[149,13]},[]],"tag":"TypeVar","contents":"t"}]}]},{"annotation":[{"start":[150,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[152,7]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[150,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[152,7]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[151,3],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[151,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[150,7],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[150,13]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[150,7],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[150,13]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[150,9],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[150,11]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[150,7],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[150,8]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[150,12],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[150,13]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[151,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[152,7]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[151,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[152,7]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[152,3],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[152,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[151,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[151,7]},[]],"tag":"TypeVar","contents":"t"}]},{"annotation":[{"start":[152,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[152,7]},[]],"tag":"TypeVar","contents":"s"}]}]}]}]}]},86]},87]},88]},89]}}},{"EDValue":{"edValueName":{"Ident":"overF"},"edValueType":{"annotation":[{"start":[166,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[174,9]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[166,13],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[174,9]},[]],"tag":"ForAll","contents":["s",{"annotation":[{"start":[166,13],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[174,9]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[166,13],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[174,9]},[]],"tag":"ForAll","contents":["t",{"annotation":[{"start":[166,13],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[174,9]},[]],"tag":"ForAll","contents":["g",{"annotation":[{"start":[166,13],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[174,9]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[167,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[174,9]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[167,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[167,15]},[]],"constraintClass":[["Data","Functor"],"Functor"],"constraintArgs":[{"annotation":[{"start":[167,14],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[167,15]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[168,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[174,9]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[168,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[168,15]},[]],"constraintClass":[["Data","Functor"],"Functor"],"constraintArgs":[{"annotation":[{"start":[168,14],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[168,15]},[]],"tag":"TypeVar","contents":"g"}],"constraintData":null},{"annotation":[{"start":[169,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[174,9]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[169,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[169,17]},[]],"constraintClass":[["Data","Newtype"],"Newtype"],"constraintArgs":[{"annotation":[{"start":[169,14],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[169,15]},[]],"tag":"TypeVar","contents":"t"},{"annotation":[{"start":[169,16],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[169,17]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[170,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[174,9]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[170,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[170,17]},[]],"constraintClass":[["Data","Newtype"],"Newtype"],"constraintArgs":[{"annotation":[{"start":[170,14],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[170,15]},[]],"tag":"TypeVar","contents":"s"},{"annotation":[{"start":[170,16],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[170,17]},[]],"tag":"TypeVar","contents":"b"}],"constraintData":null},{"annotation":[{"start":[171,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[174,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[171,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[174,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[172,3],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[172,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[171,7],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[171,13]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[171,7],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[171,13]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[171,9],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[171,11]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[171,7],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[171,8]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[171,12],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[171,13]},[]],"tag":"TypeVar","contents":"t"}]}]},{"annotation":[{"start":[172,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[174,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[172,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[174,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[173,3],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[173,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[172,7],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[172,17]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[172,7],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[172,17]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[172,11],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[172,13]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[172,7],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[172,10]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[172,7],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[172,8]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[172,9],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[172,10]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[172,14],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[172,17]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[172,14],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[172,15]},[]],"tag":"TypeVar","contents":"g"},{"annotation":[{"start":[172,16],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[172,17]},[]],"tag":"TypeVar","contents":"b"}]}]}]},{"annotation":[{"start":[173,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[174,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[173,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[174,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[174,3],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[174,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[173,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[173,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[173,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[173,7]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[173,8],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[173,9]},[]],"tag":"TypeVar","contents":"t"}]}]},{"annotation":[{"start":[174,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[174,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[174,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[174,7]},[]],"tag":"TypeVar","contents":"g"},{"annotation":[{"start":[174,8],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[174,9]},[]],"tag":"TypeVar","contents":"s"}]}]}]}]}]}]}]}]},66]},67]},68]},69]},70]},71]}}},{"EDValue":{"edValueName":{"Ident":"under"},"edValueType":{"annotation":[{"start":[199,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[205,7]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[199,13],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[205,7]},[]],"tag":"ForAll","contents":["s",{"annotation":[{"start":[199,13],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[205,7]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[199,13],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[205,7]},[]],"tag":"ForAll","contents":["t",{"annotation":[{"start":[200,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[205,7]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[200,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[200,17]},[]],"constraintClass":[["Data","Newtype"],"Newtype"],"constraintArgs":[{"annotation":[{"start":[200,14],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[200,15]},[]],"tag":"TypeVar","contents":"t"},{"annotation":[{"start":[200,16],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[200,17]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[201,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[205,7]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[201,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[201,17]},[]],"constraintClass":[["Data","Newtype"],"Newtype"],"constraintArgs":[{"annotation":[{"start":[201,14],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[201,15]},[]],"tag":"TypeVar","contents":"s"},{"annotation":[{"start":[201,16],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[201,17]},[]],"tag":"TypeVar","contents":"b"}],"constraintData":null},{"annotation":[{"start":[202,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[205,7]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[202,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[205,7]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[203,3],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[203,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[202,7],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[202,13]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[202,7],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[202,13]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[202,9],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[202,11]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[202,7],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[202,8]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[202,12],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[202,13]},[]],"tag":"TypeVar","contents":"t"}]}]},{"annotation":[{"start":[203,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[205,7]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[203,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[205,7]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[204,3],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[204,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[203,7],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[203,13]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[203,7],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[203,13]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[203,9],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[203,11]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[203,7],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[203,8]},[]],"tag":"TypeVar","contents":"t"}]},{"annotation":[{"start":[203,12],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[203,13]},[]],"tag":"TypeVar","contents":"s"}]}]},{"annotation":[{"start":[204,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[205,7]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[204,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[205,7]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[205,3],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[205,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[204,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[204,7]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[205,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[205,7]},[]],"tag":"TypeVar","contents":"b"}]}]}]}]}]},36]},37]},38]},39]}}},{"EDValue":{"edValueName":{"Ident":"underF"},"edValueType":{"annotation":[{"start":[225,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[233,9]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[225,13],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[233,9]},[]],"tag":"ForAll","contents":["s",{"annotation":[{"start":[225,13],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[233,9]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[225,13],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[233,9]},[]],"tag":"ForAll","contents":["t",{"annotation":[{"start":[225,13],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[233,9]},[]],"tag":"ForAll","contents":["g",{"annotation":[{"start":[225,13],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[233,9]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[226,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[233,9]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[226,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[226,15]},[]],"constraintClass":[["Data","Functor"],"Functor"],"constraintArgs":[{"annotation":[{"start":[226,14],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[226,15]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[227,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[233,9]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[227,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[227,15]},[]],"constraintClass":[["Data","Functor"],"Functor"],"constraintArgs":[{"annotation":[{"start":[227,14],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[227,15]},[]],"tag":"TypeVar","contents":"g"}],"constraintData":null},{"annotation":[{"start":[228,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[233,9]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[228,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[228,17]},[]],"constraintClass":[["Data","Newtype"],"Newtype"],"constraintArgs":[{"annotation":[{"start":[228,14],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[228,15]},[]],"tag":"TypeVar","contents":"t"},{"annotation":[{"start":[228,16],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[228,17]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[229,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[233,9]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[229,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[229,17]},[]],"constraintClass":[["Data","Newtype"],"Newtype"],"constraintArgs":[{"annotation":[{"start":[229,14],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[229,15]},[]],"tag":"TypeVar","contents":"s"},{"annotation":[{"start":[229,16],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[229,17]},[]],"tag":"TypeVar","contents":"b"}],"constraintData":null},{"annotation":[{"start":[230,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[233,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[230,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[233,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[231,3],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[231,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[230,7],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[230,13]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[230,7],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[230,13]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[230,9],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[230,11]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[230,7],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[230,8]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[230,12],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[230,13]},[]],"tag":"TypeVar","contents":"t"}]}]},{"annotation":[{"start":[231,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[233,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[231,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[233,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[232,3],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[232,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[231,7],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[231,17]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[231,7],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[231,17]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[231,11],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[231,13]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[231,7],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[231,10]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[231,7],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[231,8]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[231,9],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[231,10]},[]],"tag":"TypeVar","contents":"t"}]}]},{"annotation":[{"start":[231,14],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[231,17]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[231,14],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[231,15]},[]],"tag":"TypeVar","contents":"g"},{"annotation":[{"start":[231,16],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[231,17]},[]],"tag":"TypeVar","contents":"s"}]}]}]},{"annotation":[{"start":[232,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[233,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[232,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[233,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[233,3],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[233,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[232,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[232,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[232,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[232,7]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[232,8],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[232,9]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[233,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[233,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[233,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[233,7]},[]],"tag":"TypeVar","contents":"g"},{"annotation":[{"start":[233,8],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[233,9]},[]],"tag":"TypeVar","contents":"b"}]}]}]}]}]}]}]}]},16]},17]},18]},19]},20]},21]}}},{"EDValue":{"edValueName":{"Ident":"over2"},"edValueType":{"annotation":[{"start":[251,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[258,7]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[251,13],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[258,7]},[]],"tag":"ForAll","contents":["s",{"annotation":[{"start":[251,13],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[258,7]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[251,13],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[258,7]},[]],"tag":"ForAll","contents":["t",{"annotation":[{"start":[252,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[258,7]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[252,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[252,17]},[]],"constraintClass":[["Data","Newtype"],"Newtype"],"constraintArgs":[{"annotation":[{"start":[252,14],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[252,15]},[]],"tag":"TypeVar","contents":"t"},{"annotation":[{"start":[252,16],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[252,17]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[253,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[258,7]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[253,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[253,17]},[]],"constraintClass":[["Data","Newtype"],"Newtype"],"constraintArgs":[{"annotation":[{"start":[253,14],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[253,15]},[]],"tag":"TypeVar","contents":"s"},{"annotation":[{"start":[253,16],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[253,17]},[]],"tag":"TypeVar","contents":"b"}],"constraintData":null},{"annotation":[{"start":[254,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[258,7]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[254,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[258,7]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[255,3],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[255,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[254,7],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[254,13]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[254,7],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[254,13]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[254,9],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[254,11]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[254,7],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[254,8]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[254,12],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[254,13]},[]],"tag":"TypeVar","contents":"t"}]}]},{"annotation":[{"start":[255,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[258,7]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[255,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[258,7]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[256,3],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[256,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[255,7],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[255,18]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[255,7],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[255,18]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[255,9],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[255,11]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[255,7],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[255,8]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[255,12],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[255,18]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[255,12],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[255,18]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[255,14],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[255,16]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[255,12],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[255,13]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[255,17],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[255,18]},[]],"tag":"TypeVar","contents":"b"}]}]}]},{"annotation":[{"start":[256,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[258,7]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[256,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[258,7]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[257,3],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[257,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[256,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[256,7]},[]],"tag":"TypeVar","contents":"t"}]},{"annotation":[{"start":[257,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[258,7]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[257,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[258,7]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[258,3],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[258,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[257,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[257,7]},[]],"tag":"TypeVar","contents":"t"}]},{"annotation":[{"start":[258,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[258,7]},[]],"tag":"TypeVar","contents":"s"}]}]}]}]}]}]},78]},79]},80]},81]}}},{"EDValue":{"edValueName":{"Ident":"overF2"},"edValueType":{"annotation":[{"start":[264,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[273,9]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[264,13],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[273,9]},[]],"tag":"ForAll","contents":["s",{"annotation":[{"start":[264,13],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[273,9]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[264,13],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[273,9]},[]],"tag":"ForAll","contents":["t",{"annotation":[{"start":[264,13],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[273,9]},[]],"tag":"ForAll","contents":["g",{"annotation":[{"start":[264,13],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[273,9]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[265,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[273,9]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[265,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[265,15]},[]],"constraintClass":[["Data","Functor"],"Functor"],"constraintArgs":[{"annotation":[{"start":[265,14],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[265,15]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[266,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[273,9]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[266,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[266,15]},[]],"constraintClass":[["Data","Functor"],"Functor"],"constraintArgs":[{"annotation":[{"start":[266,14],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[266,15]},[]],"tag":"TypeVar","contents":"g"}],"constraintData":null},{"annotation":[{"start":[267,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[273,9]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[267,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[267,17]},[]],"constraintClass":[["Data","Newtype"],"Newtype"],"constraintArgs":[{"annotation":[{"start":[267,14],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[267,15]},[]],"tag":"TypeVar","contents":"t"},{"annotation":[{"start":[267,16],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[267,17]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[268,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[273,9]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[268,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[268,17]},[]],"constraintClass":[["Data","Newtype"],"Newtype"],"constraintArgs":[{"annotation":[{"start":[268,14],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[268,15]},[]],"tag":"TypeVar","contents":"s"},{"annotation":[{"start":[268,16],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[268,17]},[]],"tag":"TypeVar","contents":"b"}],"constraintData":null},{"annotation":[{"start":[269,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[273,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[269,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[273,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[270,3],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[270,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[269,7],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[269,13]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[269,7],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[269,13]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[269,9],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[269,11]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[269,7],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[269,8]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[269,12],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[269,13]},[]],"tag":"TypeVar","contents":"t"}]}]},{"annotation":[{"start":[270,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[273,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[270,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[273,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[271,3],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[271,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[270,7],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[270,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[270,7],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[270,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[270,11],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[270,13]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[270,7],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[270,10]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[270,7],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[270,8]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[270,9],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[270,10]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[270,14],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[270,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[270,14],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[270,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[270,18],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[270,20]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[270,14],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[270,17]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[270,14],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[270,15]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[270,16],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[270,17]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[270,21],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[270,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[270,21],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[270,22]},[]],"tag":"TypeVar","contents":"g"},{"annotation":[{"start":[270,23],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[270,24]},[]],"tag":"TypeVar","contents":"b"}]}]}]}]},{"annotation":[{"start":[271,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[273,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[271,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[273,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[272,3],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[272,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[271,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[271,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[271,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[271,7]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[271,8],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[271,9]},[]],"tag":"TypeVar","contents":"t"}]}]},{"annotation":[{"start":[272,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[273,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[272,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[273,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[273,3],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[273,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[272,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[272,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[272,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[272,7]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[272,8],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[272,9]},[]],"tag":"TypeVar","contents":"t"}]}]},{"annotation":[{"start":[273,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[273,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[273,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[273,7]},[]],"tag":"TypeVar","contents":"g"},{"annotation":[{"start":[273,8],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[273,9]},[]],"tag":"TypeVar","contents":"s"}]}]}]}]}]}]}]}]}]},54]},55]},56]},57]},58]},59]}}},{"EDValue":{"edValueName":{"Ident":"under2"},"edValueType":{"annotation":[{"start":[279,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[286,7]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[279,13],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[286,7]},[]],"tag":"ForAll","contents":["s",{"annotation":[{"start":[279,13],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[286,7]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[279,13],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[286,7]},[]],"tag":"ForAll","contents":["t",{"annotation":[{"start":[280,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[286,7]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[280,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[280,17]},[]],"constraintClass":[["Data","Newtype"],"Newtype"],"constraintArgs":[{"annotation":[{"start":[280,14],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[280,15]},[]],"tag":"TypeVar","contents":"t"},{"annotation":[{"start":[280,16],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[280,17]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[281,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[286,7]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[281,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[281,17]},[]],"constraintClass":[["Data","Newtype"],"Newtype"],"constraintArgs":[{"annotation":[{"start":[281,14],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[281,15]},[]],"tag":"TypeVar","contents":"s"},{"annotation":[{"start":[281,16],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[281,17]},[]],"tag":"TypeVar","contents":"b"}],"constraintData":null},{"annotation":[{"start":[282,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[286,7]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[282,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[286,7]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[283,3],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[283,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[282,7],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[282,13]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[282,7],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[282,13]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[282,9],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[282,11]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[282,7],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[282,8]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[282,12],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[282,13]},[]],"tag":"TypeVar","contents":"t"}]}]},{"annotation":[{"start":[283,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[286,7]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[283,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[286,7]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[284,3],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[284,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[283,7],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[283,18]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[283,7],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[283,18]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[283,9],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[283,11]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[283,7],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[283,8]},[]],"tag":"TypeVar","contents":"t"}]},{"annotation":[{"start":[283,12],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[283,18]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[283,12],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[283,18]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[283,14],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[283,16]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[283,12],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[283,13]},[]],"tag":"TypeVar","contents":"t"}]},{"annotation":[{"start":[283,17],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[283,18]},[]],"tag":"TypeVar","contents":"s"}]}]}]},{"annotation":[{"start":[284,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[286,7]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[284,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[286,7]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[285,3],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[285,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[284,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[284,7]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[285,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[286,7]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[285,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[286,7]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[286,3],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[286,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[285,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[285,7]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[286,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[286,7]},[]],"tag":"TypeVar","contents":"b"}]}]}]}]}]}]},28]},29]},30]},31]}}},{"EDValue":{"edValueName":{"Ident":"underF2"},"edValueType":{"annotation":[{"start":[292,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[301,9]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[292,13],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[301,9]},[]],"tag":"ForAll","contents":["s",{"annotation":[{"start":[292,13],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[301,9]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[292,13],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[301,9]},[]],"tag":"ForAll","contents":["t",{"annotation":[{"start":[292,13],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[301,9]},[]],"tag":"ForAll","contents":["g",{"annotation":[{"start":[292,13],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[301,9]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[293,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[301,9]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[293,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[293,15]},[]],"constraintClass":[["Data","Functor"],"Functor"],"constraintArgs":[{"annotation":[{"start":[293,14],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[293,15]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[294,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[301,9]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[294,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[294,15]},[]],"constraintClass":[["Data","Functor"],"Functor"],"constraintArgs":[{"annotation":[{"start":[294,14],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[294,15]},[]],"tag":"TypeVar","contents":"g"}],"constraintData":null},{"annotation":[{"start":[295,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[301,9]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[295,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[295,17]},[]],"constraintClass":[["Data","Newtype"],"Newtype"],"constraintArgs":[{"annotation":[{"start":[295,14],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[295,15]},[]],"tag":"TypeVar","contents":"t"},{"annotation":[{"start":[295,16],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[295,17]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[296,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[301,9]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[296,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[296,17]},[]],"constraintClass":[["Data","Newtype"],"Newtype"],"constraintArgs":[{"annotation":[{"start":[296,14],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[296,15]},[]],"tag":"TypeVar","contents":"s"},{"annotation":[{"start":[296,16],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[296,17]},[]],"tag":"TypeVar","contents":"b"}],"constraintData":null},{"annotation":[{"start":[297,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[301,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[297,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[301,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[298,3],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[298,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[297,7],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[297,13]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[297,7],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[297,13]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[297,9],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[297,11]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[297,7],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[297,8]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[297,12],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[297,13]},[]],"tag":"TypeVar","contents":"t"}]}]},{"annotation":[{"start":[298,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[301,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[298,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[301,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[299,3],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[299,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[298,7],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[298,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[298,7],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[298,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[298,11],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[298,13]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[298,7],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[298,10]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[298,7],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[298,8]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[298,9],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[298,10]},[]],"tag":"TypeVar","contents":"t"}]}]},{"annotation":[{"start":[298,14],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[298,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[298,14],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[298,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[298,18],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[298,20]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[298,14],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[298,17]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[298,14],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[298,15]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[298,16],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[298,17]},[]],"tag":"TypeVar","contents":"t"}]}]},{"annotation":[{"start":[298,21],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[298,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[298,21],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[298,22]},[]],"tag":"TypeVar","contents":"g"},{"annotation":[{"start":[298,23],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[298,24]},[]],"tag":"TypeVar","contents":"s"}]}]}]}]},{"annotation":[{"start":[299,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[301,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[299,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[301,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[300,3],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[300,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[299,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[299,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[299,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[299,7]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[299,8],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[299,9]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[300,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[301,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[300,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[301,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[301,3],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[301,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[300,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[300,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[300,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[300,7]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[300,8],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[300,9]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[301,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[301,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[301,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[301,7]},[]],"tag":"TypeVar","contents":"g"},{"annotation":[{"start":[301,8],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[301,9]},[]],"tag":"TypeVar","contents":"b"}]}]}]}]}]}]}]}]}]},4]},5]},6]},7]},8]},9]}}},{"EDValue":{"edValueName":{"Ident":"traverse"},"edValueType":{"annotation":[{"start":[307,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[313,9]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[307,13],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[313,9]},[]],"tag":"ForAll","contents":["t",{"annotation":[{"start":[307,13],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[313,9]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[308,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[313,9]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[308,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[308,15]},[]],"constraintClass":[["Data","Functor"],"Functor"],"constraintArgs":[{"annotation":[{"start":[308,14],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[308,15]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[309,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[313,9]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[309,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[309,17]},[]],"constraintClass":[["Data","Newtype"],"Newtype"],"constraintArgs":[{"annotation":[{"start":[309,14],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[309,15]},[]],"tag":"TypeVar","contents":"t"},{"annotation":[{"start":[309,16],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[309,17]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[310,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[313,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[310,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[313,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[311,3],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[311,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[310,7],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[310,13]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[310,7],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[310,13]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[310,9],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[310,11]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[310,7],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[310,8]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[310,12],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[310,13]},[]],"tag":"TypeVar","contents":"t"}]}]},{"annotation":[{"start":[311,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[313,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[311,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[313,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[312,3],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[312,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[311,7],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[311,15]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[311,7],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[311,15]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[311,9],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[311,11]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[311,7],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[311,8]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[311,12],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[311,15]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[311,12],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[311,13]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[311,14],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[311,15]},[]],"tag":"TypeVar","contents":"a"}]}]}]},{"annotation":[{"start":[312,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[313,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[312,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[313,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[313,3],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[313,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[312,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[312,7]},[]],"tag":"TypeVar","contents":"t"}]},{"annotation":[{"start":[313,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[313,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[313,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[313,7]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[313,8],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[313,9]},[]],"tag":"TypeVar","contents":"t"}]}]}]}]}]}]},48]},49]},50]}}},{"EDValue":{"edValueName":{"Ident":"collect"},"edValueType":{"annotation":[{"start":[319,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[325,7]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[319,13],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[325,7]},[]],"tag":"ForAll","contents":["t",{"annotation":[{"start":[319,13],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[325,7]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[320,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[325,7]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[320,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[320,15]},[]],"constraintClass":[["Data","Functor"],"Functor"],"constraintArgs":[{"annotation":[{"start":[320,14],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[320,15]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[321,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[325,7]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[321,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[321,17]},[]],"constraintClass":[["Data","Newtype"],"Newtype"],"constraintArgs":[{"annotation":[{"start":[321,14],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[321,15]},[]],"tag":"TypeVar","contents":"t"},{"annotation":[{"start":[321,16],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[321,17]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[322,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[325,7]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[322,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[325,7]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[323,3],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[323,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[322,7],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[322,13]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[322,7],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[322,13]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[322,9],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[322,11]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[322,7],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[322,8]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[322,12],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[322,13]},[]],"tag":"TypeVar","contents":"t"}]}]},{"annotation":[{"start":[323,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[325,7]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[323,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[325,7]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[324,3],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[324,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[323,7],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[323,15]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[323,7],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[323,15]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[323,11],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[323,13]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[323,7],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[323,10]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[323,7],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[323,8]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[323,9],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[323,10]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[323,14],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[323,15]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[324,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[325,7]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[324,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[325,7]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[325,3],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[325,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[324,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[324,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[324,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[324,7]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[324,8],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[324,9]},[]],"tag":"TypeVar","contents":"t"}]}]},{"annotation":[{"start":[325,6],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[325,7]},[]],"tag":"TypeVar","contents":"t"}]}]}]}]}]},125]},126]},127]}}},{"EDInstance":{"edInstanceClassName":[["Data","Newtype"],"Newtype"],"edInstanceName":{"Ident":"newtypeAdditive"},"edInstanceTypes":[{"annotation":[{"start":[40,38],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[40,48]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[40,38],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[40,46]},[]],"tag":"TypeConstructor","contents":[["Data","Monoid","Additive"],"Additive"]},{"annotation":[{"start":[40,47],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[40,48]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[40,50],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[40,51]},[]],"tag":"TypeVar","contents":"a"}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Newtype"],{"Ident":"newtypeAdditive"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Newtype"],"Newtype"],"edInstanceName":{"Ident":"newtypeMultiplicative"},"edInstanceTypes":[{"annotation":[{"start":[44,44],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[44,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[44,44],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[44,58]},[]],"tag":"TypeConstructor","contents":[["Data","Monoid","Multiplicative"],"Multiplicative"]},{"annotation":[{"start":[44,59],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[44,60]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[44,62],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[44,63]},[]],"tag":"TypeVar","contents":"a"}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Newtype"],{"Ident":"newtypeMultiplicative"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Newtype"],"Newtype"],"edInstanceName":{"Ident":"newtypeConj"},"edInstanceTypes":[{"annotation":[{"start":[48,34],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[48,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[48,34],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[48,38]},[]],"tag":"TypeConstructor","contents":[["Data","Monoid","Conj"],"Conj"]},{"annotation":[{"start":[48,39],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[48,40]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[48,42],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[48,43]},[]],"tag":"TypeVar","contents":"a"}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Newtype"],{"Ident":"newtypeConj"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Newtype"],"Newtype"],"edInstanceName":{"Ident":"newtypeDisj"},"edInstanceTypes":[{"annotation":[{"start":[52,34],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[52,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,34],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[52,38]},[]],"tag":"TypeConstructor","contents":[["Data","Monoid","Disj"],"Disj"]},{"annotation":[{"start":[52,39],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[52,40]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[52,42],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[52,43]},[]],"tag":"TypeVar","contents":"a"}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Newtype"],{"Ident":"newtypeDisj"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Newtype"],"Newtype"],"edInstanceName":{"Ident":"newtypeDual"},"edInstanceTypes":[{"annotation":[{"start":[56,34],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[56,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[56,34],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[56,38]},[]],"tag":"TypeConstructor","contents":[["Data","Monoid","Dual"],"Dual"]},{"annotation":[{"start":[56,39],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[56,40]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[56,42],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[56,43]},[]],"tag":"TypeVar","contents":"a"}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Newtype"],{"Ident":"newtypeDual"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Newtype"],"Newtype"],"edInstanceName":{"Ident":"newtypeEndo"},"edInstanceTypes":[{"annotation":[{"start":[60,34],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[60,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[60,34],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[60,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[60,34],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[60,38]},[]],"tag":"TypeConstructor","contents":[["Data","Monoid","Endo"],"Endo"]},{"annotation":[{"start":[60,39],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[60,40]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[60,41],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[60,42]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[60,45],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[60,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[60,45],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[60,48]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[60,45],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[60,46]},[]],"tag":"TypeVar","contents":"c"},{"annotation":[{"start":[60,47],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[60,48]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[60,49],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[60,50]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Newtype"],{"Ident":"newtypeEndo"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Newtype"],"Newtype"],"edInstanceName":{"Ident":"newtypeFirst"},"edInstanceTypes":[{"annotation":[{"start":[64,35],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[64,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[64,35],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[64,40]},[]],"tag":"TypeConstructor","contents":[["Data","Semigroup","First"],"First"]},{"annotation":[{"start":[64,41],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[64,42]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[64,44],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[64,45]},[]],"tag":"TypeVar","contents":"a"}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Newtype"],{"Ident":"newtypeFirst"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Newtype"],"Newtype"],"edInstanceName":{"Ident":"newtypeLast"},"edInstanceTypes":[{"annotation":[{"start":[68,34],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[68,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[68,34],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[68,38]},[]],"tag":"TypeConstructor","contents":[["Data","Semigroup","Last"],"Last"]},{"annotation":[{"start":[68,39],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[68,40]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[68,42],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[68,43]},[]],"tag":"TypeVar","contents":"a"}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Newtype"],{"Ident":"newtypeLast"}]],"edInstanceChainIndex":0}}],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs","end":[326,40]}}
diff --git a/tests/purs/publish/basic-example/output/Data.NonEmpty/docs.json b/tests/purs/publish/basic-example/output/Data.NonEmpty/docs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.NonEmpty/docs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"reExports":[],"name":"Data.NonEmpty","comments":"This module defines a generic non-empty data structure, which adds an\nadditional element to any container type.\n","declarations":[{"children":[{"comments":null,"title":"NonEmpty","info":{"arguments":[{"annotation":[],"tag":"TypeVar","contents":"a"},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}],"declType":"dataConstructor"},"sourceSpan":null},{"comments":null,"title":"showNonEmpty","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Show"],"Show"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","Show"],"Show"],"constraintArgs":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Show"],"Show"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","NonEmpty"],"NonEmpty"]},{"annotation":[],"tag":"TypeVar","contents":"f"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[67,1],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[68,67]}},{"comments":null,"title":"eqNonEmpty","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Eq"],"Eq1"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Eq"],"Eq"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","NonEmpty"],"NonEmpty"]},{"annotation":[],"tag":"TypeVar","contents":"f"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[70,1],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[70,65]}},{"comments":null,"title":"eq1NonEmpty","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Eq"],"Eq1"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Eq"],"Eq1"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","NonEmpty"],"NonEmpty"]},{"annotation":[],"tag":"TypeVar","contents":"f"}]}]}},"sourceSpan":{"start":[72,1],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[72,57]}},{"comments":null,"title":"ordNonEmpty","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Ord"],"Ord1"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord"],"Ord"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","NonEmpty"],"NonEmpty"]},{"annotation":[],"tag":"TypeVar","contents":"f"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[74,1],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[74,69]}},{"comments":null,"title":"ord1NonEmpty","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Ord"],"Ord1"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord"],"Ord1"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","NonEmpty"],"NonEmpty"]},{"annotation":[],"tag":"TypeVar","contents":"f"}]}]}},"sourceSpan":{"start":[76,1],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[76,60]}},{"comments":null,"title":"functorNonEmpty","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Functor"],"Functor"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Functor"],"Functor"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","NonEmpty"],"NonEmpty"]},{"annotation":[],"tag":"TypeVar","contents":"f"}]}]}},"sourceSpan":{"start":[78,1],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[78,69]}},{"comments":null,"title":"functorWithIndex","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","FunctorWithIndex"],"FunctorWithIndex"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"i"},{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","FunctorWithIndex"],"FunctorWithIndex"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeVar","contents":"i"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","NonEmpty"],"NonEmpty"]},{"annotation":[],"tag":"TypeVar","contents":"f"}]}]}},"sourceSpan":{"start":[80,1],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[83,73]}},{"comments":null,"title":"foldableNonEmpty","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Foldable"],"Foldable"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Foldable"],"Foldable"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","NonEmpty"],"NonEmpty"]},{"annotation":[],"tag":"TypeVar","contents":"f"}]}]}},"sourceSpan":{"start":[85,1],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[88,43]}},{"comments":null,"title":"foldableWithIndexNonEmpty","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","FoldableWithIndex"],"FoldableWithIndex"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"i"},{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","FoldableWithIndex"],"FoldableWithIndex"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeVar","contents":"i"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","NonEmpty"],"NonEmpty"]},{"annotation":[],"tag":"TypeVar","contents":"f"}]}]}},"sourceSpan":{"start":[90,1],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[95,80]}},{"comments":null,"title":"traversableNonEmpty","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Traversable"],"Traversable"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Traversable"],"Traversable"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","NonEmpty"],"NonEmpty"]},{"annotation":[],"tag":"TypeVar","contents":"f"}]}]}},"sourceSpan":{"start":[97,1],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[99,60]}},{"comments":null,"title":"traversableWithIndexNonEmpty","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","TraversableWithIndex"],"TraversableWithIndex"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"i"},{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","TraversableWithIndex"],"TraversableWithIndex"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeVar","contents":"i"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","NonEmpty"],"NonEmpty"]},{"annotation":[],"tag":"TypeVar","contents":"f"}]}]}},"sourceSpan":{"start":[101,1],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[105,67]}},{"comments":null,"title":"foldable1NonEmpty","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Foldable"],"Foldable"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup","Foldable"],"Foldable1"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","NonEmpty"],"NonEmpty"]},{"annotation":[],"tag":"TypeVar","contents":"f"}]}]}},"sourceSpan":{"start":[107,1],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[109,61]}},{"comments":null,"title":"unfoldable1NonEmpty","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Unfoldable"],"Unfoldable"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unfoldable1"],"Unfoldable1"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","NonEmpty"],"NonEmpty"]},{"annotation":[],"tag":"TypeVar","contents":"f"}]}]}},"sourceSpan":{"start":[111,1],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[112,56]}}],"comments":"A non-empty container of elements of type a.\n\nFor example:\n\n```purescript\nnonEmptyList :: NonEmpty List Int\nnonEmptyList = 0 :| empty\n```\n","title":"NonEmpty","info":{"declType":"data","dataDeclType":"data","typeArguments":[["f",null],["a",null]]},"sourceSpan":{"start":[40,1],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[40,37]}},{"children":[],"comments":"Create a non-empty structure with a single value.\n","title":"singleton","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Plus"],"Plus"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","NonEmpty"],"NonEmpty"]},{"annotation":[],"tag":"TypeVar","contents":"f"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]},null]},null]}},"sourceSpan":{"start":[46,1],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[46,53]}},{"children":[],"comments":"An infix synonym for `NonEmpty`.\n","title":"(:|)","info":{"declType":"alias","alias":[["Data","NonEmpty"],{"Right":{"Right":"NonEmpty"}}],"fixity":{"associativity":"infixr","precedence":5}},"sourceSpan":{"start":[43,1],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[43,24]}},{"children":[],"comments":"Fold a non-empty structure, collecting results using a binary operation.\n","title":"foldl1","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Foldable"],"Foldable"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","NonEmpty"],"NonEmpty"]},{"annotation":[],"tag":"TypeVar","contents":"f"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]},null]},null]}},"sourceSpan":{"start":[50,1],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[50,71]}},{"children":[],"comments":null,"title":"fromNonEmpty","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["r",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","NonEmpty"],"NonEmpty"]},{"annotation":[],"tag":"TypeVar","contents":"f"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}]},null]},null]},null]}},"sourceSpan":{"start":[53,1],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[53,67]}},{"children":[],"comments":null,"title":"oneOf","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Alternative"],"Alternative"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","NonEmpty"],"NonEmpty"]},{"annotation":[],"tag":"TypeVar","contents":"f"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]},null]},null]}},"sourceSpan":{"start":[56,1],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[56,58]}},{"children":[],"comments":"Get the 'first' element of a non-empty container.\n","title":"head","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","NonEmpty"],"NonEmpty"]},{"annotation":[],"tag":"TypeVar","contents":"f"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},null]},null]}},"sourceSpan":{"start":[60,1],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[60,38]}},{"children":[],"comments":"Get everything but the 'first' element of a non-empty container.\n","title":"tail","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","NonEmpty"],"NonEmpty"]},{"annotation":[],"tag":"TypeVar","contents":"f"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},null]},null]}},"sourceSpan":{"start":[64,1],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[64,40]}}]}
diff --git a/tests/purs/publish/basic-example/output/Data.NonEmpty/externs.json b/tests/purs/publish/basic-example/output/Data.NonEmpty/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.NonEmpty/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Data","NonEmpty"],"efExports":[{"TypeRef":[{"start":[3,1],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[112,56]},"NonEmpty",["NonEmpty"]]},{"ValueRef":[{"start":[3,1],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[112,56]},{"Ident":"singleton"}]},{"ValueOpRef":[{"start":[3,1],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[112,56]},":|"]},{"ValueRef":[{"start":[3,1],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[112,56]},{"Ident":"foldl1"}]},{"ValueRef":[{"start":[3,1],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[112,56]},{"Ident":"fromNonEmpty"}]},{"ValueRef":[{"start":[3,1],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[112,56]},{"Ident":"oneOf"}]},{"ValueRef":[{"start":[3,1],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[112,56]},{"Ident":"head"}]},{"ValueRef":[{"start":[3,1],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[112,56]},{"Ident":"tail"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"showNonEmpty"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"eqNonEmpty"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"eq1NonEmpty"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"ordNonEmpty"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"ord1NonEmpty"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"functorNonEmpty"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"functorWithIndex"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"foldableNonEmpty"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"foldableWithIndexNonEmpty"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"traversableNonEmpty"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"traversableWithIndexNonEmpty"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"foldable1NonEmpty"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"unfoldable1NonEmpty"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Prelude"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Control","Alt"],"eiImportType":{"Explicit":[{"ValueOpRef":[{"start":[16,21],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[16,26]},"<|>"]}]},"eiImportedAs":null},{"eiModule":["Control","Alternative"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[17,29],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[17,46]},"Alternative"]}]},"eiImportedAs":null},{"eiModule":["Control","Plus"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[18,22],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[18,32]},"Plus"]},{"ValueRef":[{"start":[18,34],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[18,39]},{"Ident":"empty"}]}]},"eiImportedAs":null},{"eiModule":["Data","Eq"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[19,17],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[19,26]},"Eq1"]}]},"eiImportedAs":null},{"eiModule":["Data","Foldable"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[20,23],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[20,37]},"Foldable"]},{"ValueRef":[{"start":[20,39],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[20,44]},{"Ident":"foldl"}]},{"ValueRef":[{"start":[20,46],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[20,51]},{"Ident":"foldr"}]},{"ValueRef":[{"start":[20,53],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[20,60]},{"Ident":"foldMap"}]}]},"eiImportedAs":null},{"eiModule":["Data","FoldableWithIndex"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[21,32],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[21,55]},"FoldableWithIndex"]},{"ValueRef":[{"start":[21,57],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[21,73]},{"Ident":"foldMapWithIndex"}]},{"ValueRef":[{"start":[21,75],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[21,89]},{"Ident":"foldlWithIndex"}]},{"ValueRef":[{"start":[21,91],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[21,105]},{"Ident":"foldrWithIndex"}]}]},"eiImportedAs":null},{"eiModule":["Data","FunctorWithIndex"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[22,31],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[22,53]},"FunctorWithIndex"]},{"ValueRef":[{"start":[22,55],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[22,67]},{"Ident":"mapWithIndex"}]}]},"eiImportedAs":null},{"eiModule":["Data","Maybe"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[23,20],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[23,29]},"Maybe",null]}]},"eiImportedAs":null},{"eiModule":["Data","Ord"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[24,18],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[24,28]},"Ord1"]}]},"eiImportedAs":null},{"eiModule":["Data","Semigroup","Foldable"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[25,33],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[25,48]},"Foldable1"]},{"ValueRef":[{"start":[25,50],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[25,58]},{"Ident":"foldMap1"}]}]},"eiImportedAs":null},{"eiModule":["Data","Traversable"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[26,26],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[26,43]},"Traversable"]},{"ValueRef":[{"start":[26,45],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[26,53]},{"Ident":"traverse"}]},{"ValueRef":[{"start":[26,55],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[26,63]},{"Ident":"sequence"}]}]},"eiImportedAs":null},{"eiModule":["Data","TraversableWithIndex"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[27,35],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[27,61]},"TraversableWithIndex"]},{"ValueRef":[{"start":[27,63],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[27,80]},{"Ident":"traverseWithIndex"}]}]},"eiImportedAs":null},{"eiModule":["Data","Tuple"],"eiImportType":{"Explicit":[{"ValueRef":[{"start":[28,20],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[28,27]},{"Ident":"uncurry"}]}]},"eiImportedAs":null},{"eiModule":["Data","Unfoldable"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[29,25],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[29,41]},"Unfoldable"]},{"ValueRef":[{"start":[29,43],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[29,50]},{"Ident":"unfoldr"}]}]},"eiImportedAs":null},{"eiModule":["Data","Unfoldable1"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[30,26],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[30,43]},"Unfoldable1"]}]},"eiImportedAs":null}],"efFixities":[{"efAssociativity":"infixr","efPrecedence":5,"efOperator":":|","efAlias":[["Data","NonEmpty"],{"Right":"NonEmpty"}]}],"efTypeFixities":[],"efDeclarations":[{"EDType":{"edTypeName":"NonEmpty","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[40,33],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[40,36]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[40,30],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[40,31]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[40,33],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[40,36]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[40,30],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[40,31]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]},"edTypeDeclarationKind":{"DataType":{"args":[["f",{"annotation":[{"start":[40,33],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[40,36]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[40,30],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[40,31]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[40,33],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[40,36]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}],["a",{"annotation":[{"start":[40,30],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[40,31]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]],"ctors":[["NonEmpty",[{"annotation":[{"start":[40,30],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[40,31]},[]],"tag":"TypeVar","contents":"a"},{"annotation":[{"start":[40,33],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[40,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[40,33],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[40,34]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[40,35],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[40,36]},[]],"tag":"TypeVar","contents":"a"}]}]]]}}}},{"EDDataConstructor":{"edDataCtorName":"NonEmpty","edDataCtorOrigin":"data","edDataCtorTypeCtor":"NonEmpty","edDataCtorType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[40,30],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[40,31]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[40,33],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[40,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[40,33],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[40,34]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[40,35],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[40,36]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","NonEmpty"],"NonEmpty"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"a"}]}]}]},null]},null]},"edDataCtorFields":[{"Ident":"value0"},{"Ident":"value1"}]}},{"EDValue":{"edValueName":{"Ident":"singleton"},"edValueType":{"annotation":[{"start":[46,14],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[46,53]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[46,21],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[46,53]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[46,26],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[46,53]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[46,26],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[46,32]},[]],"constraintClass":[["Control","Plus"],"Plus"],"constraintArgs":[{"annotation":[{"start":[46,31],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[46,32]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[46,36],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[46,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[46,36],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[46,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[46,38],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[46,40]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[46,36],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[46,37]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[46,41],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[46,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[46,41],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[46,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[46,41],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[46,49]},[]],"tag":"TypeConstructor","contents":[["Data","NonEmpty"],"NonEmpty"]},{"annotation":[{"start":[46,50],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[46,51]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[46,52],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[46,53]},[]],"tag":"TypeVar","contents":"a"}]}]}]},79]},80]}}},{"EDValue":{"edValueName":{"Ident":"foldl1"},"edValueType":{"annotation":[{"start":[50,11],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[50,71]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[50,18],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[50,71]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[50,23],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[50,71]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[50,23],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[50,33]},[]],"constraintClass":[["Data","Foldable"],"Foldable"],"constraintArgs":[{"annotation":[{"start":[50,32],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[50,33]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[50,37],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[50,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,37],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[50,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,51],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[50,53]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[50,38],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[50,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,38],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[50,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,40],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[50,42]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[50,38],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[50,39]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[50,43],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[50,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,43],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[50,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,45],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[50,47]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[50,43],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[50,44]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[50,48],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[50,49]},[]],"tag":"TypeVar","contents":"a"}]}]}]},{"annotation":[{"start":[50,54],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[50,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,54],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[50,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,67],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[50,69]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[50,54],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[50,66]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,54],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[50,64]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,54],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[50,62]},[]],"tag":"TypeConstructor","contents":[["Data","NonEmpty"],"NonEmpty"]},{"annotation":[{"start":[50,63],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[50,64]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[50,65],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[50,66]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[50,70],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[50,71]},[]],"tag":"TypeVar","contents":"a"}]}]}]},128]},129]}}},{"EDValue":{"edValueName":{"Ident":"fromNonEmpty"},"edValueType":{"annotation":[{"start":[53,17],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[53,67]},[]],"tag":"ForAll","contents":["r",{"annotation":[{"start":[53,24],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[53,67]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[53,24],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[53,67]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[53,31],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[53,67]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,31],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[53,67]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,47],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[53,49]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[53,32],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[53,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,32],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[53,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,34],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[53,36]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[53,32],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[53,33]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[53,37],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[53,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,37],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[53,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,41],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[53,43]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[53,37],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[53,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,37],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[53,38]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[53,39],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[53,40]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[53,44],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[53,45]},[]],"tag":"TypeVar","contents":"r"}]}]}]},{"annotation":[{"start":[53,50],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[53,67]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,50],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[53,67]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,63],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[53,65]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[53,50],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[53,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,50],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[53,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,50],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[53,58]},[]],"tag":"TypeConstructor","contents":[["Data","NonEmpty"],"NonEmpty"]},{"annotation":[{"start":[53,59],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[53,60]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[53,61],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[53,62]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[53,66],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[53,67]},[]],"tag":"TypeVar","contents":"r"}]}]},122]},123]},124]}}},{"EDValue":{"edValueName":{"Ident":"oneOf"},"edValueType":{"annotation":[{"start":[56,10],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[56,58]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[56,17],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[56,58]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[56,22],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[56,58]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[56,22],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[56,35]},[]],"constraintClass":[["Control","Alternative"],"Alternative"],"constraintArgs":[{"annotation":[{"start":[56,34],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[56,35]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[56,39],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[56,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[56,39],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[56,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[56,52],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[56,54]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[56,39],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[56,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[56,39],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[56,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[56,39],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[56,47]},[]],"tag":"TypeConstructor","contents":[["Data","NonEmpty"],"NonEmpty"]},{"annotation":[{"start":[56,48],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[56,49]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[56,50],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[56,51]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[56,55],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[56,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[56,55],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[56,56]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[56,57],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[56,58]},[]],"tag":"TypeVar","contents":"a"}]}]}]},96]},97]}}},{"EDValue":{"edValueName":{"Ident":"head"},"edValueType":{"annotation":[{"start":[60,9],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[60,38]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[60,16],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[60,38]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[60,21],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[60,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[60,21],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[60,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[60,34],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[60,36]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[60,21],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[60,33]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[60,21],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[60,31]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[60,21],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[60,29]},[]],"tag":"TypeConstructor","contents":[["Data","NonEmpty"],"NonEmpty"]},{"annotation":[{"start":[60,30],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[60,31]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[60,32],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[60,33]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[60,37],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[60,38]},[]],"tag":"TypeVar","contents":"a"}]},100]},101]}}},{"EDValue":{"edValueName":{"Ident":"tail"},"edValueType":{"annotation":[{"start":[64,9],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[64,40]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[64,16],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[64,40]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[64,21],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[64,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[64,21],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[64,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[64,34],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[64,36]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[64,21],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[64,33]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[64,21],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[64,31]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[64,21],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[64,29]},[]],"tag":"TypeConstructor","contents":[["Data","NonEmpty"],"NonEmpty"]},{"annotation":[{"start":[64,30],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[64,31]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[64,32],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[64,33]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[64,37],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[64,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[64,37],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[64,38]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[64,39],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[64,40]},[]],"tag":"TypeVar","contents":"a"}]}]},75]},76]}}},{"EDInstance":{"edInstanceClassName":[["Data","Show"],"Show"],"edInstanceName":{"Ident":"showNonEmpty"},"edInstanceTypes":[{"annotation":[{"start":[67,56],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[67,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[67,56],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[67,66]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[67,56],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[67,64]},[]],"tag":"TypeConstructor","contents":[["Data","NonEmpty"],"NonEmpty"]},{"annotation":[{"start":[67,65],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[67,66]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[67,67],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[67,68]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[67,27],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[67,33]},[]],"constraintClass":[["Data","Show"],"Show"],"constraintArgs":[{"annotation":[{"start":[67,32],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[67,33]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"constraintAnn":[{"start":[67,35],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[67,45]},[]],"constraintClass":[["Data","Show"],"Show"],"constraintArgs":[{"annotation":[{"start":[67,41],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[67,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[67,41],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[67,42]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[67,43],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[67,44]},[]],"tag":"TypeVar","contents":"a"}]}],"constraintData":null}],"edInstanceChain":[[["Data","NonEmpty"],{"Ident":"showNonEmpty"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Eq"],"Eq"],"edInstanceName":{"Ident":"eqNonEmpty"},"edInstanceTypes":[{"annotation":[{"start":[70,52],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[70,64]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[70,52],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[70,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[70,52],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[70,60]},[]],"tag":"TypeConstructor","contents":[["Data","NonEmpty"],"NonEmpty"]},{"annotation":[{"start":[70,61],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[70,62]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[70,63],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[70,64]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[70,32],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[70,37]},[]],"constraintClass":[["Data","Eq"],"Eq1"],"constraintArgs":[{"annotation":[{"start":[70,36],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[70,37]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"constraintAnn":[{"start":[70,39],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[70,43]},[]],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[{"start":[70,42],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[70,43]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","NonEmpty"],{"Ident":"eqNonEmpty"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Eq"],"Eq1"],"edInstanceName":{"Ident":"eq1NonEmpty"},"edInstanceTypes":[{"annotation":[{"start":[72,46],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[72,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[72,46],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[72,54]},[]],"tag":"TypeConstructor","contents":[["Data","NonEmpty"],"NonEmpty"]},{"annotation":[{"start":[72,55],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[72,56]},[]],"tag":"TypeVar","contents":"f"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[72,32],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[72,37]},[]],"constraintClass":[["Data","Eq"],"Eq1"],"constraintArgs":[{"annotation":[{"start":[72,36],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[72,37]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null}],"edInstanceChain":[[["Data","NonEmpty"],{"Ident":"eq1NonEmpty"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Ord"],"Ord"],"edInstanceName":{"Ident":"ordNonEmpty"},"edInstanceTypes":[{"annotation":[{"start":[74,56],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[74,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[74,56],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[74,66]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[74,56],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[74,64]},[]],"tag":"TypeConstructor","contents":[["Data","NonEmpty"],"NonEmpty"]},{"annotation":[{"start":[74,65],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[74,66]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[74,67],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[74,68]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[74,33],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[74,39]},[]],"constraintClass":[["Data","Ord"],"Ord1"],"constraintArgs":[{"annotation":[{"start":[74,38],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[74,39]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"constraintAnn":[{"start":[74,41],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[74,46]},[]],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[{"start":[74,45],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[74,46]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","NonEmpty"],{"Ident":"ordNonEmpty"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Ord"],"Ord1"],"edInstanceName":{"Ident":"ord1NonEmpty"},"edInstanceTypes":[{"annotation":[{"start":[76,49],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[76,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[76,49],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[76,57]},[]],"tag":"TypeConstructor","contents":[["Data","NonEmpty"],"NonEmpty"]},{"annotation":[{"start":[76,58],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[76,59]},[]],"tag":"TypeVar","contents":"f"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[76,33],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[76,39]},[]],"constraintClass":[["Data","Ord"],"Ord1"],"constraintArgs":[{"annotation":[{"start":[76,38],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[76,39]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null}],"edInstanceChain":[[["Data","NonEmpty"],{"Ident":"ord1NonEmpty"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Functor"],"Functor"],"edInstanceName":{"Ident":"functorNonEmpty"},"edInstanceTypes":[{"annotation":[{"start":[78,58],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[78,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[78,58],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[78,66]},[]],"tag":"TypeConstructor","contents":[["Data","NonEmpty"],"NonEmpty"]},{"annotation":[{"start":[78,67],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[78,68]},[]],"tag":"TypeVar","contents":"f"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[78,36],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[78,45]},[]],"constraintClass":[["Data","Functor"],"Functor"],"constraintArgs":[{"annotation":[{"start":[78,44],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[78,45]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null}],"edInstanceChain":[[["Data","NonEmpty"],{"Ident":"functorNonEmpty"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","FunctorWithIndex"],"FunctorWithIndex"],"edInstanceName":{"Ident":"functorWithIndex"},"edInstanceTypes":[{"annotation":[{"start":[82,24],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[82,31]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[82,24],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[82,29]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[82,30],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[82,31]},[]],"tag":"TypeVar","contents":"i"}]},{"annotation":[{"start":[82,34],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[82,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[82,34],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[82,42]},[]],"tag":"TypeConstructor","contents":[["Data","NonEmpty"],"NonEmpty"]},{"annotation":[{"start":[82,43],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[82,44]},[]],"tag":"TypeVar","contents":"f"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[81,6],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[81,26]},[]],"constraintClass":[["Data","FunctorWithIndex"],"FunctorWithIndex"],"constraintArgs":[{"annotation":[{"start":[81,23],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[81,24]},[]],"tag":"TypeVar","contents":"i"},{"annotation":[{"start":[81,25],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[81,26]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null}],"edInstanceChain":[[["Data","NonEmpty"],{"Ident":"functorWithIndex"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Foldable"],"Foldable"],"edInstanceName":{"Ident":"foldableNonEmpty"},"edInstanceTypes":[{"annotation":[{"start":[85,54],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[85,64]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[85,54],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[85,62]},[]],"tag":"TypeConstructor","contents":[["Data","NonEmpty"],"NonEmpty"]},{"annotation":[{"start":[85,63],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[85,64]},[]],"tag":"TypeVar","contents":"f"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[85,30],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[85,40]},[]],"constraintClass":[["Data","Foldable"],"Foldable"],"constraintArgs":[{"annotation":[{"start":[85,39],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[85,40]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null}],"edInstanceChain":[[["Data","NonEmpty"],{"Ident":"foldableNonEmpty"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","FoldableWithIndex"],"FoldableWithIndex"],"edInstanceName":{"Ident":"foldableWithIndexNonEmpty"},"edInstanceTypes":[{"annotation":[{"start":[92,25],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[92,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[92,25],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[92,30]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[92,31],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[92,32]},[]],"tag":"TypeVar","contents":"i"}]},{"annotation":[{"start":[92,35],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[92,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[92,35],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[92,43]},[]],"tag":"TypeConstructor","contents":[["Data","NonEmpty"],"NonEmpty"]},{"annotation":[{"start":[92,44],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[92,45]},[]],"tag":"TypeVar","contents":"f"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[91,7],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[91,28]},[]],"constraintClass":[["Data","FoldableWithIndex"],"FoldableWithIndex"],"constraintArgs":[{"annotation":[{"start":[91,25],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[91,26]},[]],"tag":"TypeVar","contents":"i"},{"annotation":[{"start":[91,27],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[91,28]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null}],"edInstanceChain":[[["Data","NonEmpty"],{"Ident":"foldableWithIndexNonEmpty"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Traversable"],"Traversable"],"edInstanceName":{"Ident":"traversableNonEmpty"},"edInstanceTypes":[{"annotation":[{"start":[97,63],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[97,73]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[97,63],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[97,71]},[]],"tag":"TypeConstructor","contents":[["Data","NonEmpty"],"NonEmpty"]},{"annotation":[{"start":[97,72],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[97,73]},[]],"tag":"TypeVar","contents":"f"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[97,33],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[97,46]},[]],"constraintClass":[["Data","Traversable"],"Traversable"],"constraintArgs":[{"annotation":[{"start":[97,45],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[97,46]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null}],"edInstanceChain":[[["Data","NonEmpty"],{"Ident":"traversableNonEmpty"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","TraversableWithIndex"],"TraversableWithIndex"],"edInstanceName":{"Ident":"traversableWithIndexNonEmpty"},"edInstanceTypes":[{"annotation":[{"start":[103,28],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[103,35]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[103,28],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[103,33]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[103,34],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[103,35]},[]],"tag":"TypeVar","contents":"i"}]},{"annotation":[{"start":[103,38],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[103,48]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[103,38],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[103,46]},[]],"tag":"TypeConstructor","contents":[["Data","NonEmpty"],"NonEmpty"]},{"annotation":[{"start":[103,47],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[103,48]},[]],"tag":"TypeVar","contents":"f"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[102,7],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[102,31]},[]],"constraintClass":[["Data","TraversableWithIndex"],"TraversableWithIndex"],"constraintArgs":[{"annotation":[{"start":[102,28],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[102,29]},[]],"tag":"TypeVar","contents":"i"},{"annotation":[{"start":[102,30],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[102,31]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null}],"edInstanceChain":[[["Data","NonEmpty"],{"Ident":"traversableWithIndexNonEmpty"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Semigroup","Foldable"],"Foldable1"],"edInstanceName":{"Ident":"foldable1NonEmpty"},"edInstanceTypes":[{"annotation":[{"start":[107,56],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[107,66]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[107,56],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[107,64]},[]],"tag":"TypeConstructor","contents":[["Data","NonEmpty"],"NonEmpty"]},{"annotation":[{"start":[107,65],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[107,66]},[]],"tag":"TypeVar","contents":"f"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[107,31],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[107,41]},[]],"constraintClass":[["Data","Foldable"],"Foldable"],"constraintArgs":[{"annotation":[{"start":[107,40],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[107,41]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null}],"edInstanceChain":[[["Data","NonEmpty"],{"Ident":"foldable1NonEmpty"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Unfoldable1"],"Unfoldable1"],"edInstanceName":{"Ident":"unfoldable1NonEmpty"},"edInstanceTypes":[{"annotation":[{"start":[111,62],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[111,72]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[111,62],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[111,70]},[]],"tag":"TypeConstructor","contents":[["Data","NonEmpty"],"NonEmpty"]},{"annotation":[{"start":[111,71],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[111,72]},[]],"tag":"TypeVar","contents":"f"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[111,33],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[111,45]},[]],"constraintClass":[["Data","Unfoldable"],"Unfoldable"],"constraintArgs":[{"annotation":[{"start":[111,44],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[111,45]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null}],"edInstanceChain":[[["Data","NonEmpty"],{"Ident":"unfoldable1NonEmpty"}]],"edInstanceChainIndex":0}}],"efSourceSpan":{"start":[3,1],"name":"../../../support/bower_components/purescript-nonempty/src/Data/NonEmpty.purs","end":[112,56]}}
diff --git a/tests/purs/publish/basic-example/output/Data.Ord.Down/docs.json b/tests/purs/publish/basic-example/output/Data.Ord.Down/docs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.Ord.Down/docs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"reExports":[],"name":"Data.Ord.Down","comments":null,"declarations":[{"children":[{"comments":null,"title":"Down","info":{"arguments":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"declType":"dataConstructor"},"sourceSpan":null},{"comments":null,"title":"newtypeDown","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Newtype"],"Newtype"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord","Down"],"Down"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeWildcard","contents":null}]}},"sourceSpan":{"start":[14,1],"name":"../../../support/bower_components/purescript-orders/src/Data/Ord/Down.purs","end":[14,50]}},{"comments":null,"title":"eqDown","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Eq"],"Eq"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord","Down"],"Down"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[16,1],"name":"../../../support/bower_components/purescript-orders/src/Data/Ord/Down.purs","end":[16,54]}},{"comments":null,"title":"ordDown","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord"],"Ord"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord","Down"],"Down"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[18,1],"name":"../../../support/bower_components/purescript-orders/src/Data/Ord/Down.purs","end":[19,51]}},{"comments":null,"title":"boundedDown","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Bounded"],"Bounded"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Bounded"],"Bounded"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord","Down"],"Down"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[21,1],"name":"../../../support/bower_components/purescript-orders/src/Data/Ord/Down.purs","end":[23,20]}},{"comments":null,"title":"showDown","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Show"],"Show"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Show"],"Show"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord","Down"],"Down"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[25,1],"name":"../../../support/bower_components/purescript-orders/src/Data/Ord/Down.purs","end":[26,44]}}],"comments":"A newtype wrapper which provides a reversed `Ord` instance. For example:\n\n    sortBy (comparing Down) [1,2,3] = [3,2,1]\n\n","title":"Down","info":{"declType":"data","dataDeclType":"newtype","typeArguments":[["a",null]]},"sourceSpan":{"start":[12,1],"name":"../../../support/bower_components/purescript-orders/src/Data/Ord/Down.purs","end":[12,24]}}]}
diff --git a/tests/purs/publish/basic-example/output/Data.Ord.Down/externs.json b/tests/purs/publish/basic-example/output/Data.Ord.Down/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.Ord.Down/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Data","Ord","Down"],"efExports":[{"TypeRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-orders/src/Data/Ord/Down.purs","end":[26,44]},"Down",["Down"]]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"newtypeDown"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"eqDown"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"ordDown"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"boundedDown"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"showDown"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Prelude"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Data","Newtype"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[5,22],"name":"../../../support/bower_components/purescript-orders/src/Data/Ord/Down.purs","end":[5,35]},"Newtype"]}]},"eiImportedAs":null},{"eiModule":["Data","Ordering"],"eiImportType":{"Explicit":[{"ValueRef":[{"start":[6,23],"name":"../../../support/bower_components/purescript-orders/src/Data/Ord/Down.purs","end":[6,29]},{"Ident":"invert"}]}]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDType":{"edTypeName":"Down","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[12,23],"name":"../../../support/bower_components/purescript-orders/src/Data/Ord/Down.purs","end":[12,24]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},"edTypeDeclarationKind":{"DataType":{"args":[["a",{"annotation":[{"start":[12,23],"name":"../../../support/bower_components/purescript-orders/src/Data/Ord/Down.purs","end":[12,24]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]],"ctors":[["Down",[{"annotation":[{"start":[12,23],"name":"../../../support/bower_components/purescript-orders/src/Data/Ord/Down.purs","end":[12,24]},[]],"tag":"TypeVar","contents":"a"}]]]}}}},{"EDDataConstructor":{"edDataCtorName":"Down","edDataCtorOrigin":"newtype","edDataCtorTypeCtor":"Down","edDataCtorType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[12,23],"name":"../../../support/bower_components/purescript-orders/src/Data/Ord/Down.purs","end":[12,24]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Ord","Down"],"Down"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"a"}]}]},null]},"edDataCtorFields":[{"Ident":"value0"}]}},{"EDInstance":{"edInstanceClassName":[["Data","Newtype"],"Newtype"],"edInstanceName":{"Ident":"newtypeDown"},"edInstanceTypes":[{"annotation":[{"start":[14,41],"name":"../../../support/bower_components/purescript-orders/src/Data/Ord/Down.purs","end":[14,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[14,41],"name":"../../../support/bower_components/purescript-orders/src/Data/Ord/Down.purs","end":[14,45]},[]],"tag":"TypeConstructor","contents":[["Data","Ord","Down"],"Down"]},{"annotation":[{"start":[14,46],"name":"../../../support/bower_components/purescript-orders/src/Data/Ord/Down.purs","end":[14,47]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[14,46],"name":"../../../support/bower_components/purescript-orders/src/Data/Ord/Down.purs","end":[14,47]},[]],"tag":"TypeVar","contents":"a"}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Ord","Down"],{"Ident":"newtypeDown"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Eq"],"Eq"],"edInstanceName":{"Ident":"eqDown"},"edInstanceTypes":[{"annotation":[{"start":[16,47],"name":"../../../support/bower_components/purescript-orders/src/Data/Ord/Down.purs","end":[16,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[16,47],"name":"../../../support/bower_components/purescript-orders/src/Data/Ord/Down.purs","end":[16,51]},[]],"tag":"TypeConstructor","contents":[["Data","Ord","Down"],"Down"]},{"annotation":[{"start":[16,52],"name":"../../../support/bower_components/purescript-orders/src/Data/Ord/Down.purs","end":[16,53]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[16,35],"name":"../../../support/bower_components/purescript-orders/src/Data/Ord/Down.purs","end":[16,39]},[]],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[{"start":[16,38],"name":"../../../support/bower_components/purescript-orders/src/Data/Ord/Down.purs","end":[16,39]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","Ord","Down"],{"Ident":"eqDown"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Ord"],"Ord"],"edInstanceName":{"Ident":"ordDown"},"edInstanceTypes":[{"annotation":[{"start":[18,35],"name":"../../../support/bower_components/purescript-orders/src/Data/Ord/Down.purs","end":[18,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,35],"name":"../../../support/bower_components/purescript-orders/src/Data/Ord/Down.purs","end":[18,39]},[]],"tag":"TypeConstructor","contents":[["Data","Ord","Down"],"Down"]},{"annotation":[{"start":[18,40],"name":"../../../support/bower_components/purescript-orders/src/Data/Ord/Down.purs","end":[18,41]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[18,21],"name":"../../../support/bower_components/purescript-orders/src/Data/Ord/Down.purs","end":[18,26]},[]],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[{"start":[18,25],"name":"../../../support/bower_components/purescript-orders/src/Data/Ord/Down.purs","end":[18,26]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","Ord","Down"],{"Ident":"ordDown"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Bounded"],"Bounded"],"edInstanceName":{"Ident":"boundedDown"},"edInstanceTypes":[{"annotation":[{"start":[21,47],"name":"../../../support/bower_components/purescript-orders/src/Data/Ord/Down.purs","end":[21,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[21,47],"name":"../../../support/bower_components/purescript-orders/src/Data/Ord/Down.purs","end":[21,51]},[]],"tag":"TypeConstructor","contents":[["Data","Ord","Down"],"Down"]},{"annotation":[{"start":[21,52],"name":"../../../support/bower_components/purescript-orders/src/Data/Ord/Down.purs","end":[21,53]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[21,25],"name":"../../../support/bower_components/purescript-orders/src/Data/Ord/Down.purs","end":[21,34]},[]],"constraintClass":[["Data","Bounded"],"Bounded"],"constraintArgs":[{"annotation":[{"start":[21,33],"name":"../../../support/bower_components/purescript-orders/src/Data/Ord/Down.purs","end":[21,34]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","Ord","Down"],{"Ident":"boundedDown"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Show"],"Show"],"edInstanceName":{"Ident":"showDown"},"edInstanceTypes":[{"annotation":[{"start":[25,38],"name":"../../../support/bower_components/purescript-orders/src/Data/Ord/Down.purs","end":[25,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[25,38],"name":"../../../support/bower_components/purescript-orders/src/Data/Ord/Down.purs","end":[25,42]},[]],"tag":"TypeConstructor","contents":[["Data","Ord","Down"],"Down"]},{"annotation":[{"start":[25,43],"name":"../../../support/bower_components/purescript-orders/src/Data/Ord/Down.purs","end":[25,44]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[25,22],"name":"../../../support/bower_components/purescript-orders/src/Data/Ord/Down.purs","end":[25,28]},[]],"constraintClass":[["Data","Show"],"Show"],"constraintArgs":[{"annotation":[{"start":[25,27],"name":"../../../support/bower_components/purescript-orders/src/Data/Ord/Down.purs","end":[25,28]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","Ord","Down"],{"Ident":"showDown"}]],"edInstanceChainIndex":0}}],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-orders/src/Data/Ord/Down.purs","end":[26,44]}}
diff --git a/tests/purs/publish/basic-example/output/Data.Ord.Generic/docs.json b/tests/purs/publish/basic-example/output/Data.Ord.Generic/docs.json
new file mode 100644
--- /dev/null
+++ b/tests/purs/publish/basic-example/output/Data.Ord.Generic/docs.json
@@ -0,0 +1,1 @@
+{"comments":null,"declarations":[{"children":[{"comments":null,"info":{"declType":"typeClassMember","type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Data","Ordering"],"Ordering"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[11,40],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord/Generic.purs","start":[11,3]},"title":"genericCompare'"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Ord","Generic"],"GenericOrd"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Generic","Rep"],"NoConstructors"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[14,27],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord/Generic.purs","start":[13,1]},"title":"genericOrdNoConstructors"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Ord","Generic"],"GenericOrd"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Generic","Rep"],"NoArguments"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[17,27],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord/Generic.purs","start":[16,1]},"title":"genericOrdNoArguments"},{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","Ord","Generic"],"GenericOrd"],"constraintData":null,"constraintKindArgs":[]},{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"b","tag":"TypeVar"}],"constraintClass":[["Data","Ord","Generic"],"GenericOrd"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Ord","Generic"],"GenericOrd"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Generic","Rep"],"Sum"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[23,39],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord/Generic.purs","start":[19,1]},"title":"genericOrdSum"},{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","Ord","Generic"],"GenericOrd"],"constraintData":null,"constraintKindArgs":[]},{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"b","tag":"TypeVar"}],"constraintClass":[["Data","Ord","Generic"],"GenericOrd"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Ord","Generic"],"GenericOrd"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Generic","Rep"],"Product"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[29,21],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord/Generic.purs","start":[25,1]},"title":"genericOrdProduct"},{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","Ord","Generic"],"GenericOrd"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Ord","Generic"],"GenericOrd"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Generic","Rep"],"Constructor"],"tag":"TypeConstructor"},{"annotation":[],"contents":"name","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[32,76],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord/Generic.purs","start":[31,1]},"title":"genericOrdConstructor"},{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","Ord"],"Ord"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Ord","Generic"],"GenericOrd"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Generic","Rep"],"Argument"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[35,62],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord/Generic.purs","start":[34,1]},"title":"genericOrdArgument"}],"comments":null,"info":{"arguments":[["a",null]],"declType":"typeClass","fundeps":[],"superclasses":[]},"kind":null,"sourceSpan":{"end":[11,40],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord/Generic.purs","start":[10,1]},"title":"GenericOrd"},{"children":[],"comments":"A `Generic` implementation of the `compare` member from the `Ord` type class.\n","info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"rep","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"},{"annotation":[],"contents":"rep","tag":"TypeVar"}],"constraintClass":[["Data","Generic","Rep"],"Generic"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"rep","tag":"TypeVar"}],"constraintClass":[["Data","Ord","Generic"],"GenericOrd"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Data","Ordering"],"Ordering"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"ConstrainedType"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[38,86],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord/Generic.purs","start":[38,1]},"title":"genericCompare"}],"name":"Data.Ord.Generic","reExports":[]}
diff --git a/tests/purs/publish/basic-example/output/Data.Ord.Max/docs.json b/tests/purs/publish/basic-example/output/Data.Ord.Max/docs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.Ord.Max/docs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"reExports":[],"name":"Data.Ord.Max","comments":null,"declarations":[{"children":[{"comments":null,"title":"Max","info":{"arguments":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"declType":"dataConstructor"},"sourceSpan":null},{"comments":null,"title":"newtypeMax","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Newtype"],"Newtype"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord","Max"],"Max"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeWildcard","contents":null}]}},"sourceSpan":{"start":[15,1],"name":"../../../support/bower_components/purescript-orders/src/Data/Ord/Max.purs","end":[15,48]}},{"comments":null,"title":"eqMax","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Eq"],"Eq"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord","Max"],"Max"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[17,1],"name":"../../../support/bower_components/purescript-orders/src/Data/Ord/Max.purs","end":[17,52]}},{"comments":null,"title":"ordMax","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord"],"Ord"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord","Max"],"Max"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[19,1],"name":"../../../support/bower_components/purescript-orders/src/Data/Ord/Max.purs","end":[20,40]}},{"comments":null,"title":"semigroupMax","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup"],"Semigroup"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord","Max"],"Max"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[22,1],"name":"../../../support/bower_components/purescript-orders/src/Data/Ord/Max.purs","end":[23,41]}},{"comments":null,"title":"monoidMax","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Bounded"],"Bounded"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid"],"Monoid"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord","Max"],"Max"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[25,1],"name":"../../../support/bower_components/purescript-orders/src/Data/Ord/Max.purs","end":[26,22]}},{"comments":null,"title":"showMax","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Show"],"Show"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Show"],"Show"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord","Max"],"Max"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[28,1],"name":"../../../support/bower_components/purescript-orders/src/Data/Ord/Max.purs","end":[29,42]}}],"comments":"Provides a `Semigroup` based on the `max` function. If the type has a\n`Bounded` instance, then a `Monoid` instance is provided too. For example:\n\n    unwrap (Max 5 <> Max 6) = 6\n    mempty :: Max Ordering = Max LT\n\n","title":"Max","info":{"declType":"data","dataDeclType":"newtype","typeArguments":[["a",null]]},"sourceSpan":{"start":[13,1],"name":"../../../support/bower_components/purescript-orders/src/Data/Ord/Max.purs","end":[13,22]}}]}
diff --git a/tests/purs/publish/basic-example/output/Data.Ord.Max/externs.json b/tests/purs/publish/basic-example/output/Data.Ord.Max/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.Ord.Max/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Data","Ord","Max"],"efExports":[{"TypeRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-orders/src/Data/Ord/Max.purs","end":[29,42]},"Max",["Max"]]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"newtypeMax"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"eqMax"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"ordMax"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"semigroupMax"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"monoidMax"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"showMax"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Prelude"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Data","Newtype"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[5,22],"name":"../../../support/bower_components/purescript-orders/src/Data/Ord/Max.purs","end":[5,35]},"Newtype"]}]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDType":{"edTypeName":"Max","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[13,21],"name":"../../../support/bower_components/purescript-orders/src/Data/Ord/Max.purs","end":[13,22]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},"edTypeDeclarationKind":{"DataType":{"args":[["a",{"annotation":[{"start":[13,21],"name":"../../../support/bower_components/purescript-orders/src/Data/Ord/Max.purs","end":[13,22]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]],"ctors":[["Max",[{"annotation":[{"start":[13,21],"name":"../../../support/bower_components/purescript-orders/src/Data/Ord/Max.purs","end":[13,22]},[]],"tag":"TypeVar","contents":"a"}]]]}}}},{"EDDataConstructor":{"edDataCtorName":"Max","edDataCtorOrigin":"newtype","edDataCtorTypeCtor":"Max","edDataCtorType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[13,21],"name":"../../../support/bower_components/purescript-orders/src/Data/Ord/Max.purs","end":[13,22]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Ord","Max"],"Max"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"a"}]}]},null]},"edDataCtorFields":[{"Ident":"value0"}]}},{"EDInstance":{"edInstanceClassName":[["Data","Newtype"],"Newtype"],"edInstanceName":{"Ident":"newtypeMax"},"edInstanceTypes":[{"annotation":[{"start":[15,40],"name":"../../../support/bower_components/purescript-orders/src/Data/Ord/Max.purs","end":[15,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[15,40],"name":"../../../support/bower_components/purescript-orders/src/Data/Ord/Max.purs","end":[15,43]},[]],"tag":"TypeConstructor","contents":[["Data","Ord","Max"],"Max"]},{"annotation":[{"start":[15,44],"name":"../../../support/bower_components/purescript-orders/src/Data/Ord/Max.purs","end":[15,45]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[15,44],"name":"../../../support/bower_components/purescript-orders/src/Data/Ord/Max.purs","end":[15,45]},[]],"tag":"TypeVar","contents":"a"}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Ord","Max"],{"Ident":"newtypeMax"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Eq"],"Eq"],"edInstanceName":{"Ident":"eqMax"},"edInstanceTypes":[{"annotation":[{"start":[17,46],"name":"../../../support/bower_components/purescript-orders/src/Data/Ord/Max.purs","end":[17,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[17,46],"name":"../../../support/bower_components/purescript-orders/src/Data/Ord/Max.purs","end":[17,49]},[]],"tag":"TypeConstructor","contents":[["Data","Ord","Max"],"Max"]},{"annotation":[{"start":[17,50],"name":"../../../support/bower_components/purescript-orders/src/Data/Ord/Max.purs","end":[17,51]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[17,34],"name":"../../../support/bower_components/purescript-orders/src/Data/Ord/Max.purs","end":[17,38]},[]],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[{"start":[17,37],"name":"../../../support/bower_components/purescript-orders/src/Data/Ord/Max.purs","end":[17,38]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","Ord","Max"],{"Ident":"eqMax"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Ord"],"Ord"],"edInstanceName":{"Ident":"ordMax"},"edInstanceTypes":[{"annotation":[{"start":[19,34],"name":"../../../support/bower_components/purescript-orders/src/Data/Ord/Max.purs","end":[19,39]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[19,34],"name":"../../../support/bower_components/purescript-orders/src/Data/Ord/Max.purs","end":[19,37]},[]],"tag":"TypeConstructor","contents":[["Data","Ord","Max"],"Max"]},{"annotation":[{"start":[19,38],"name":"../../../support/bower_components/purescript-orders/src/Data/Ord/Max.purs","end":[19,39]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[19,20],"name":"../../../support/bower_components/purescript-orders/src/Data/Ord/Max.purs","end":[19,25]},[]],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[{"start":[19,24],"name":"../../../support/bower_components/purescript-orders/src/Data/Ord/Max.purs","end":[19,25]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","Ord","Max"],{"Ident":"ordMax"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Semigroup"],"Semigroup"],"edInstanceName":{"Ident":"semigroupMax"},"edInstanceTypes":[{"annotation":[{"start":[22,46],"name":"../../../support/bower_components/purescript-orders/src/Data/Ord/Max.purs","end":[22,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[22,46],"name":"../../../support/bower_components/purescript-orders/src/Data/Ord/Max.purs","end":[22,49]},[]],"tag":"TypeConstructor","contents":[["Data","Ord","Max"],"Max"]},{"annotation":[{"start":[22,50],"name":"../../../support/bower_components/purescript-orders/src/Data/Ord/Max.purs","end":[22,51]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[22,26],"name":"../../../support/bower_components/purescript-orders/src/Data/Ord/Max.purs","end":[22,31]},[]],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[{"start":[22,30],"name":"../../../support/bower_components/purescript-orders/src/Data/Ord/Max.purs","end":[22,31]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","Ord","Max"],{"Ident":"semigroupMax"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Monoid"],"Monoid"],"edInstanceName":{"Ident":"monoidMax"},"edInstanceTypes":[{"annotation":[{"start":[25,44],"name":"../../../support/bower_components/purescript-orders/src/Data/Ord/Max.purs","end":[25,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[25,44],"name":"../../../support/bower_components/purescript-orders/src/Data/Ord/Max.purs","end":[25,47]},[]],"tag":"TypeConstructor","contents":[["Data","Ord","Max"],"Max"]},{"annotation":[{"start":[25,48],"name":"../../../support/bower_components/purescript-orders/src/Data/Ord/Max.purs","end":[25,49]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[25,23],"name":"../../../support/bower_components/purescript-orders/src/Data/Ord/Max.purs","end":[25,32]},[]],"constraintClass":[["Data","Bounded"],"Bounded"],"constraintArgs":[{"annotation":[{"start":[25,31],"name":"../../../support/bower_components/purescript-orders/src/Data/Ord/Max.purs","end":[25,32]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","Ord","Max"],{"Ident":"monoidMax"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Show"],"Show"],"edInstanceName":{"Ident":"showMax"},"edInstanceTypes":[{"annotation":[{"start":[28,37],"name":"../../../support/bower_components/purescript-orders/src/Data/Ord/Max.purs","end":[28,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[28,37],"name":"../../../support/bower_components/purescript-orders/src/Data/Ord/Max.purs","end":[28,40]},[]],"tag":"TypeConstructor","contents":[["Data","Ord","Max"],"Max"]},{"annotation":[{"start":[28,41],"name":"../../../support/bower_components/purescript-orders/src/Data/Ord/Max.purs","end":[28,42]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[28,21],"name":"../../../support/bower_components/purescript-orders/src/Data/Ord/Max.purs","end":[28,27]},[]],"constraintClass":[["Data","Show"],"Show"],"constraintArgs":[{"annotation":[{"start":[28,26],"name":"../../../support/bower_components/purescript-orders/src/Data/Ord/Max.purs","end":[28,27]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","Ord","Max"],{"Ident":"showMax"}]],"edInstanceChainIndex":0}}],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-orders/src/Data/Ord/Max.purs","end":[29,42]}}
diff --git a/tests/purs/publish/basic-example/output/Data.Ord.Min/docs.json b/tests/purs/publish/basic-example/output/Data.Ord.Min/docs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.Ord.Min/docs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"reExports":[],"name":"Data.Ord.Min","comments":null,"declarations":[{"children":[{"comments":null,"title":"Min","info":{"arguments":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"declType":"dataConstructor"},"sourceSpan":null},{"comments":null,"title":"newtypeMin","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Newtype"],"Newtype"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord","Min"],"Min"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeWildcard","contents":null}]}},"sourceSpan":{"start":[15,1],"name":"../../../support/bower_components/purescript-orders/src/Data/Ord/Min.purs","end":[15,48]}},{"comments":null,"title":"eqMin","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Eq"],"Eq"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord","Min"],"Min"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[17,1],"name":"../../../support/bower_components/purescript-orders/src/Data/Ord/Min.purs","end":[17,52]}},{"comments":null,"title":"ordMin","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord"],"Ord"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord","Min"],"Min"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[19,1],"name":"../../../support/bower_components/purescript-orders/src/Data/Ord/Min.purs","end":[20,40]}},{"comments":null,"title":"semigroupMin","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup"],"Semigroup"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord","Min"],"Min"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[22,1],"name":"../../../support/bower_components/purescript-orders/src/Data/Ord/Min.purs","end":[23,41]}},{"comments":null,"title":"monoidMin","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Bounded"],"Bounded"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid"],"Monoid"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord","Min"],"Min"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[25,1],"name":"../../../support/bower_components/purescript-orders/src/Data/Ord/Min.purs","end":[26,19]}},{"comments":null,"title":"showMin","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Show"],"Show"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Show"],"Show"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord","Min"],"Min"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[28,1],"name":"../../../support/bower_components/purescript-orders/src/Data/Ord/Min.purs","end":[29,42]}}],"comments":"Provides a `Semigroup` based on the `min` function. If the type has a\n`Bounded` instance, then a `Monoid` instance is provided too. For example:\n\n    unwrap (Min 5 <> Min 6) = 5\n    mempty :: Min Ordering = Min GT\n\n","title":"Min","info":{"declType":"data","dataDeclType":"newtype","typeArguments":[["a",null]]},"sourceSpan":{"start":[13,1],"name":"../../../support/bower_components/purescript-orders/src/Data/Ord/Min.purs","end":[13,22]}}]}
diff --git a/tests/purs/publish/basic-example/output/Data.Ord.Min/externs.json b/tests/purs/publish/basic-example/output/Data.Ord.Min/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.Ord.Min/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Data","Ord","Min"],"efExports":[{"TypeRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-orders/src/Data/Ord/Min.purs","end":[29,42]},"Min",["Min"]]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"newtypeMin"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"eqMin"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"ordMin"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"semigroupMin"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"monoidMin"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"showMin"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Prelude"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Data","Newtype"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[5,22],"name":"../../../support/bower_components/purescript-orders/src/Data/Ord/Min.purs","end":[5,35]},"Newtype"]}]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDType":{"edTypeName":"Min","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[13,21],"name":"../../../support/bower_components/purescript-orders/src/Data/Ord/Min.purs","end":[13,22]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},"edTypeDeclarationKind":{"DataType":{"args":[["a",{"annotation":[{"start":[13,21],"name":"../../../support/bower_components/purescript-orders/src/Data/Ord/Min.purs","end":[13,22]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]],"ctors":[["Min",[{"annotation":[{"start":[13,21],"name":"../../../support/bower_components/purescript-orders/src/Data/Ord/Min.purs","end":[13,22]},[]],"tag":"TypeVar","contents":"a"}]]]}}}},{"EDDataConstructor":{"edDataCtorName":"Min","edDataCtorOrigin":"newtype","edDataCtorTypeCtor":"Min","edDataCtorType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[13,21],"name":"../../../support/bower_components/purescript-orders/src/Data/Ord/Min.purs","end":[13,22]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Ord","Min"],"Min"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"a"}]}]},null]},"edDataCtorFields":[{"Ident":"value0"}]}},{"EDInstance":{"edInstanceClassName":[["Data","Newtype"],"Newtype"],"edInstanceName":{"Ident":"newtypeMin"},"edInstanceTypes":[{"annotation":[{"start":[15,40],"name":"../../../support/bower_components/purescript-orders/src/Data/Ord/Min.purs","end":[15,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[15,40],"name":"../../../support/bower_components/purescript-orders/src/Data/Ord/Min.purs","end":[15,43]},[]],"tag":"TypeConstructor","contents":[["Data","Ord","Min"],"Min"]},{"annotation":[{"start":[15,44],"name":"../../../support/bower_components/purescript-orders/src/Data/Ord/Min.purs","end":[15,45]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[15,44],"name":"../../../support/bower_components/purescript-orders/src/Data/Ord/Min.purs","end":[15,45]},[]],"tag":"TypeVar","contents":"a"}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Ord","Min"],{"Ident":"newtypeMin"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Eq"],"Eq"],"edInstanceName":{"Ident":"eqMin"},"edInstanceTypes":[{"annotation":[{"start":[17,46],"name":"../../../support/bower_components/purescript-orders/src/Data/Ord/Min.purs","end":[17,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[17,46],"name":"../../../support/bower_components/purescript-orders/src/Data/Ord/Min.purs","end":[17,49]},[]],"tag":"TypeConstructor","contents":[["Data","Ord","Min"],"Min"]},{"annotation":[{"start":[17,50],"name":"../../../support/bower_components/purescript-orders/src/Data/Ord/Min.purs","end":[17,51]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[17,34],"name":"../../../support/bower_components/purescript-orders/src/Data/Ord/Min.purs","end":[17,38]},[]],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[{"start":[17,37],"name":"../../../support/bower_components/purescript-orders/src/Data/Ord/Min.purs","end":[17,38]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","Ord","Min"],{"Ident":"eqMin"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Ord"],"Ord"],"edInstanceName":{"Ident":"ordMin"},"edInstanceTypes":[{"annotation":[{"start":[19,34],"name":"../../../support/bower_components/purescript-orders/src/Data/Ord/Min.purs","end":[19,39]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[19,34],"name":"../../../support/bower_components/purescript-orders/src/Data/Ord/Min.purs","end":[19,37]},[]],"tag":"TypeConstructor","contents":[["Data","Ord","Min"],"Min"]},{"annotation":[{"start":[19,38],"name":"../../../support/bower_components/purescript-orders/src/Data/Ord/Min.purs","end":[19,39]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[19,20],"name":"../../../support/bower_components/purescript-orders/src/Data/Ord/Min.purs","end":[19,25]},[]],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[{"start":[19,24],"name":"../../../support/bower_components/purescript-orders/src/Data/Ord/Min.purs","end":[19,25]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","Ord","Min"],{"Ident":"ordMin"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Semigroup"],"Semigroup"],"edInstanceName":{"Ident":"semigroupMin"},"edInstanceTypes":[{"annotation":[{"start":[22,46],"name":"../../../support/bower_components/purescript-orders/src/Data/Ord/Min.purs","end":[22,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[22,46],"name":"../../../support/bower_components/purescript-orders/src/Data/Ord/Min.purs","end":[22,49]},[]],"tag":"TypeConstructor","contents":[["Data","Ord","Min"],"Min"]},{"annotation":[{"start":[22,50],"name":"../../../support/bower_components/purescript-orders/src/Data/Ord/Min.purs","end":[22,51]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[22,26],"name":"../../../support/bower_components/purescript-orders/src/Data/Ord/Min.purs","end":[22,31]},[]],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[{"start":[22,30],"name":"../../../support/bower_components/purescript-orders/src/Data/Ord/Min.purs","end":[22,31]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","Ord","Min"],{"Ident":"semigroupMin"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Monoid"],"Monoid"],"edInstanceName":{"Ident":"monoidMin"},"edInstanceTypes":[{"annotation":[{"start":[25,44],"name":"../../../support/bower_components/purescript-orders/src/Data/Ord/Min.purs","end":[25,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[25,44],"name":"../../../support/bower_components/purescript-orders/src/Data/Ord/Min.purs","end":[25,47]},[]],"tag":"TypeConstructor","contents":[["Data","Ord","Min"],"Min"]},{"annotation":[{"start":[25,48],"name":"../../../support/bower_components/purescript-orders/src/Data/Ord/Min.purs","end":[25,49]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[25,23],"name":"../../../support/bower_components/purescript-orders/src/Data/Ord/Min.purs","end":[25,32]},[]],"constraintClass":[["Data","Bounded"],"Bounded"],"constraintArgs":[{"annotation":[{"start":[25,31],"name":"../../../support/bower_components/purescript-orders/src/Data/Ord/Min.purs","end":[25,32]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","Ord","Min"],{"Ident":"monoidMin"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Show"],"Show"],"edInstanceName":{"Ident":"showMin"},"edInstanceTypes":[{"annotation":[{"start":[28,37],"name":"../../../support/bower_components/purescript-orders/src/Data/Ord/Min.purs","end":[28,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[28,37],"name":"../../../support/bower_components/purescript-orders/src/Data/Ord/Min.purs","end":[28,40]},[]],"tag":"TypeConstructor","contents":[["Data","Ord","Min"],"Min"]},{"annotation":[{"start":[28,41],"name":"../../../support/bower_components/purescript-orders/src/Data/Ord/Min.purs","end":[28,42]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[28,21],"name":"../../../support/bower_components/purescript-orders/src/Data/Ord/Min.purs","end":[28,27]},[]],"constraintClass":[["Data","Show"],"Show"],"constraintArgs":[{"annotation":[{"start":[28,26],"name":"../../../support/bower_components/purescript-orders/src/Data/Ord/Min.purs","end":[28,27]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","Ord","Min"],{"Ident":"showMin"}]],"edInstanceChainIndex":0}}],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-orders/src/Data/Ord/Min.purs","end":[29,42]}}
diff --git a/tests/purs/publish/basic-example/output/Data.Ord.Unsafe/docs.json b/tests/purs/publish/basic-example/output/Data.Ord.Unsafe/docs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.Ord.Unsafe/docs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"reExports":[],"name":"Data.Ord.Unsafe","comments":null,"declarations":[{"children":[],"comments":null,"title":"unsafeCompare","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ordering"],"Ordering"]}]}]},null]}},"sourceSpan":{"start":[5,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord/Unsafe.purs","end":[5,46]}}]}
diff --git a/tests/purs/publish/basic-example/output/Data.Ord.Unsafe/externs.json b/tests/purs/publish/basic-example/output/Data.Ord.Unsafe/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.Ord.Unsafe/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Data","Ord","Unsafe"],"efExports":[{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord/Unsafe.purs","end":[15,14]},{"Ident":"unsafeCompare"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Data","Ordering"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[3,23],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord/Unsafe.purs","end":[3,35]},"Ordering",null]}]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDValue":{"edValueName":{"Ident":"unsafeCompare"},"edValueType":{"annotation":[{"start":[5,18],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord/Unsafe.purs","end":[5,46]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[5,28],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord/Unsafe.purs","end":[5,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[5,28],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord/Unsafe.purs","end":[5,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[5,30],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord/Unsafe.purs","end":[5,32]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[5,28],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord/Unsafe.purs","end":[5,29]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[5,33],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord/Unsafe.purs","end":[5,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[5,33],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord/Unsafe.purs","end":[5,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[5,35],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord/Unsafe.purs","end":[5,37]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[5,33],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord/Unsafe.purs","end":[5,34]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[5,38],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord/Unsafe.purs","end":[5,46]},[]],"tag":"TypeConstructor","contents":[["Data","Ordering"],"Ordering"]}]}]},0]}}}],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord/Unsafe.purs","end":[15,14]}}
diff --git a/tests/purs/publish/basic-example/output/Data.Ord/docs.json b/tests/purs/publish/basic-example/output/Data.Ord/docs.json
--- a/tests/purs/publish/basic-example/output/Data.Ord/docs.json
+++ b/tests/purs/publish/basic-example/output/Data.Ord/docs.json
@@ -1,1 +1,1 @@
-{"reExports":[],"name":"Data.Ord","comments":null,"declarations":[{"children":[{"comments":null,"title":"compare","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ordering"],"Ordering"]}]}]}},"sourceSpan":{"start":[33,3],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[33,32]}},{"comments":null,"title":"ordBoolean","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord"],"Ord"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}},"sourceSpan":{"start":[35,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[36,26]}},{"comments":null,"title":"ordInt","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord"],"Ord"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}},"sourceSpan":{"start":[38,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[39,26]}},{"comments":null,"title":"ordNumber","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord"],"Ord"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]}},"sourceSpan":{"start":[41,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[42,26]}},{"comments":null,"title":"ordString","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord"],"Ord"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}},"sourceSpan":{"start":[44,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[45,26]}},{"comments":null,"title":"ordChar","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord"],"Ord"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Char"]}]}},"sourceSpan":{"start":[47,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[48,26]}},{"comments":null,"title":"ordUnit","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord"],"Ord"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}},"sourceSpan":{"start":[50,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[51,19]}},{"comments":null,"title":"ordVoid","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord"],"Ord"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Void"],"Void"]}]}},"sourceSpan":{"start":[53,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[54,19]}},{"comments":null,"title":"ordArray","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord"],"Ord"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[56,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[63,17]}},{"comments":null,"title":"ordOrdering","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord"],"Ord"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ordering"],"Ordering"]}]}},"sourceSpan":{"start":[67,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[74,21]}}],"comments":"The `Ord` type class represents types which support comparisons with a\n_total order_.\n\n`Ord` instances should satisfy the laws of total orderings:\n\n- Reflexivity: `a <= a`\n- Antisymmetry: if `a <= b` and `b <= a` then `a = b`\n- Transitivity: if `a <= b` and `b <= c` then `a <= c`\n","title":"Ord","info":{"fundeps":[],"arguments":[["a",null]],"declType":"typeClass","superclasses":[{"constraintAnn":[],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}]},"sourceSpan":{"start":[32,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[33,32]}},{"children":[{"comments":null,"title":"compare1","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ordering"],"Ordering"]}]}]}]},null]}},"sourceSpan":{"start":[167,3],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[167,56]}},{"comments":null,"title":"ord1Array","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord"],"Ord1"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]}]}},"sourceSpan":{"start":[169,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[170,21]}}],"comments":"The `Ord1` type class represents totally ordered type constructors.\n","title":"Ord1","info":{"fundeps":[],"arguments":[["f",null]],"declType":"typeClass","superclasses":[{"constraintAnn":[],"constraintClass":[["Data","Eq"],"Eq1"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null}]},"sourceSpan":{"start":[166,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[167,56]}},{"children":[],"comments":"Test whether one value is _strictly less than_ another.\n","title":"lessThan","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]}]},null]}},"sourceSpan":{"start":[77,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[77,49]}},{"children":[],"comments":null,"title":"(<)","info":{"declType":"alias","alias":[["Data","Ord"],{"Right":{"Left":{"Ident":"lessThan"}}}],"fixity":{"associativity":"infixl","precedence":4}},"sourceSpan":{"start":[100,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[100,23]}},{"children":[],"comments":"Test whether one value is _non-strictly less than_ another.\n","title":"lessThanOrEq","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]}]},null]}},"sourceSpan":{"start":[89,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[89,53]}},{"children":[],"comments":null,"title":"(<=)","info":{"declType":"alias","alias":[["Data","Ord"],{"Right":{"Left":{"Ident":"lessThanOrEq"}}}],"fixity":{"associativity":"infixl","precedence":4}},"sourceSpan":{"start":[101,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[101,28]}},{"children":[],"comments":"Test whether one value is _strictly greater than_ another.\n","title":"greaterThan","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]}]},null]}},"sourceSpan":{"start":[83,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[83,52]}},{"children":[],"comments":null,"title":"(>)","info":{"declType":"alias","alias":[["Data","Ord"],{"Right":{"Left":{"Ident":"greaterThan"}}}],"fixity":{"associativity":"infixl","precedence":4}},"sourceSpan":{"start":[102,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[102,26]}},{"children":[],"comments":"Test whether one value is _non-strictly greater than_ another.\n","title":"greaterThanOrEq","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]}]},null]}},"sourceSpan":{"start":[95,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[95,56]}},{"children":[],"comments":null,"title":"(>=)","info":{"declType":"alias","alias":[["Data","Ord"],{"Right":{"Left":{"Ident":"greaterThanOrEq"}}}],"fixity":{"associativity":"infixl","precedence":4}},"sourceSpan":{"start":[103,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[103,31]}},{"children":[],"comments":"Compares two values by mapping them to a type with an `Ord` instance.\n","title":"comparing","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"b"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}}]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ordering"],"Ordering"]}]}]}}]}]},null]},null]}},"sourceSpan":{"start":[106,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[106,67]}},{"children":[],"comments":"Take the minimum of two values. If they are considered equal, the first\nargument is chosen.\n","title":"min","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]},null]}},"sourceSpan":{"start":[111,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[111,38]}},{"children":[],"comments":"Take the maximum of two values. If they are considered equal, the first\nargument is chosen.\n","title":"max","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]},null]}},"sourceSpan":{"start":[120,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[120,38]}},{"children":[],"comments":"Clamp a value between a minimum and a maximum. For example:\n\n``` purescript\nlet f = clamp 0 10\nf (-5) == 0\nf 5    == 5\nf 15   == 10\n```\n","title":"clamp","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]}]},null]}},"sourceSpan":{"start":[135,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[135,45]}},{"children":[],"comments":"Test whether a value is between a minimum and a maximum (inclusive).\nFor example:\n\n``` purescript\nlet f = between 0 10\nf 0    == true\nf (-5) == false\nf 5    == true\nf 10   == true\nf 15   == false\n```\n","title":"between","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]}]}]},null]}},"sourceSpan":{"start":[149,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[149,53]}},{"children":[],"comments":"The absolute value function. `abs x` is defined as `if x >= zero then x\nelse negate x`.\n","title":"abs","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Ring"],"Ring"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]},null]}},"sourceSpan":{"start":[157,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[157,43]}},{"children":[],"comments":"The sign function; always evaluates to either `one` or `negate one`. For\nany `x`, we should have `signum x * abs x == x`.\n","title":"signum","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Ring"],"Ring"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]},null]}},"sourceSpan":{"start":[162,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[162,46]}}]}
+{"comments":null,"declarations":[{"children":[{"comments":null,"info":{"declType":"typeClassMember","type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Data","Ordering"],"Ordering"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[49,32],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","start":[49,3]},"title":"compare"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Ord"],"Ord"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Boolean"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[52,36],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","start":[51,1]},"title":"ordBoolean"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Ord"],"Ord"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[55,32],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","start":[54,1]},"title":"ordInt"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Ord"],"Ord"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Number"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[58,35],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","start":[57,1]},"title":"ordNumber"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Ord"],"Ord"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"String"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[61,35],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","start":[60,1]},"title":"ordString"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Ord"],"Ord"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Char"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[64,33],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","start":[63,1]},"title":"ordChar"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Ord"],"Ord"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Unit"],"Unit"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[67,19],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","start":[66,1]},"title":"ordUnit"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Ord"],"Ord"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Void"],"Void"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[70,19],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","start":[69,1]},"title":"ordVoid"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Ord"],"Ord"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Type","Proxy"],"Proxy"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[73,19],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","start":[72,1]},"title":"ordProxy"},{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","Ord"],"Ord"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Ord"],"Ord"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Array"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[82,17],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","start":[75,1]},"title":"ordArray"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Ord"],"Ord"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Ordering"],"Ordering"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[133,20],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","start":[126,1]},"title":"ordOrdering"},{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"row","tag":"TypeVar"},{"annotation":[],"contents":"list","tag":"TypeVar"}],"constraintClass":[["Prim","RowList"],"RowToList"],"constraintData":null,"constraintKindArgs":[]},{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"list","tag":"TypeVar"},{"annotation":[],"contents":"row","tag":"TypeVar"}],"constraintClass":[["Data","Ord"],"OrdRecord"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Ord"],"Ord"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Record"],"tag":"TypeConstructor"},{"annotation":[],"contents":"row","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[264,48],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","start":[259,1]},"title":"ordRecord"}],"comments":"The `Ord` type class represents types which support comparisons with a\n_total order_.\n\n`Ord` instances should satisfy the laws of total orderings:\n\n- Reflexivity: `a <= a`\n- Antisymmetry: if `a <= b` and `b <= a` then `a == b`\n- Transitivity: if `a <= b` and `b <= c` then `a <= c`\n\n**Note:** The `Number` type is not an entirely law abiding member of this\nclass due to the presence of `NaN`, since `NaN <= NaN` evaluates to `false`\n","info":{"arguments":[["a",null]],"declType":"typeClass","fundeps":[],"superclasses":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","Eq"],"Eq"],"constraintData":null,"constraintKindArgs":[]}]},"kind":null,"sourceSpan":{"end":[49,32],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","start":[48,1]},"title":"Ord"},{"children":[{"comments":null,"info":{"declType":"typeClassMember","type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","Ord"],"Ord"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":"f","tag":"TypeVar"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":"f","tag":"TypeVar"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Data","Ordering"],"Ordering"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"sourceSpan":{"end":[232,56],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","start":[232,3]},"title":"compare1"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Ord"],"Ord1"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Array"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[235,21],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","start":[234,1]},"title":"ord1Array"}],"comments":"The `Ord1` type class represents totally ordered type constructors.\n","info":{"arguments":[["f",null]],"declType":"typeClass","fundeps":[],"superclasses":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"f","tag":"TypeVar"}],"constraintClass":[["Data","Eq"],"Eq1"],"constraintData":null,"constraintKindArgs":[]}]},"kind":{"keyword":"class","kind":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim"],"Constraint"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[232,56],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","start":[231,1]},"title":"Ord1"},{"children":[],"comments":"Test whether one value is _strictly less than_ another.\n","info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","Ord"],"Ord"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim"],"Boolean"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[136,49],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","start":[136,1]},"title":"lessThan"},{"children":[],"comments":null,"info":{"alias":[["Data","Ord"],{"Right":{"Left":{"Ident":"lessThan"}}}],"declType":"alias","fixity":{"associativity":"infixl","precedence":4}},"kind":null,"sourceSpan":{"end":[159,23],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","start":[159,1]},"title":"(<)"},{"children":[],"comments":"Test whether one value is _non-strictly less than_ another.\n","info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","Ord"],"Ord"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim"],"Boolean"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[148,53],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","start":[148,1]},"title":"lessThanOrEq"},{"children":[],"comments":null,"info":{"alias":[["Data","Ord"],{"Right":{"Left":{"Ident":"lessThanOrEq"}}}],"declType":"alias","fixity":{"associativity":"infixl","precedence":4}},"kind":null,"sourceSpan":{"end":[160,28],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","start":[160,1]},"title":"(<=)"},{"children":[],"comments":"Test whether one value is _strictly greater than_ another.\n","info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","Ord"],"Ord"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim"],"Boolean"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[142,52],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","start":[142,1]},"title":"greaterThan"},{"children":[],"comments":null,"info":{"alias":[["Data","Ord"],{"Right":{"Left":{"Ident":"greaterThan"}}}],"declType":"alias","fixity":{"associativity":"infixl","precedence":4}},"kind":null,"sourceSpan":{"end":[161,26],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","start":[161,1]},"title":"(>)"},{"children":[],"comments":"Test whether one value is _non-strictly greater than_ another.\n","info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","Ord"],"Ord"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim"],"Boolean"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[154,56],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","start":[154,1]},"title":"greaterThanOrEq"},{"children":[],"comments":null,"info":{"alias":[["Data","Ord"],{"Right":{"Left":{"Ident":"greaterThanOrEq"}}}],"declType":"alias","fixity":{"associativity":"infixl","precedence":4}},"kind":null,"sourceSpan":{"end":[162,31],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","start":[162,1]},"title":"(>=)"},{"children":[],"comments":"Compares two values by mapping them to a type with an `Ord` instance.\n","info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"b","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"b","tag":"TypeVar"}],"constraintClass":[["Data","Ord"],"Ord"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"},"tag":"ParensInType"}],"tag":"TypeApp"},{"annotation":[],"contents":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Data","Ordering"],"Ordering"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"},"tag":"ParensInType"}],"tag":"TypeApp"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[165,67],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","start":[165,1]},"title":"comparing"},{"children":[],"comments":"Take the minimum of two values. If they are considered equal, the first\nargument is chosen.\n","info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","Ord"],"Ord"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[170,38],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","start":[170,1]},"title":"min"},{"children":[],"comments":"Take the maximum of two values. If they are considered equal, the first\nargument is chosen.\n","info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","Ord"],"Ord"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[179,38],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","start":[179,1]},"title":"max"},{"children":[],"comments":"Clamp a value between a minimum and a maximum. For example:\n\n``` purescript\nlet f = clamp 0 10\nf (-5) == 0\nf 5    == 5\nf 15   == 10\n```\n","info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","Ord"],"Ord"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[194,45],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","start":[194,1]},"title":"clamp"},{"children":[],"comments":"Test whether a value is between a minimum and a maximum (inclusive).\nFor example:\n\n``` purescript\nlet f = between 0 10\nf 0    == true\nf (-5) == false\nf 5    == true\nf 10   == true\nf 15   == false\n```\n","info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","Ord"],"Ord"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim"],"Boolean"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[208,53],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","start":[208,1]},"title":"between"},{"children":[],"comments":"The absolute value function. `abs x` is defined as `if x >= zero then x\nelse negate x`.\n","info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","Ord"],"Ord"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","Ring"],"Ring"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"ConstrainedType"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[216,43],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","start":[216,1]},"title":"abs"},{"children":[],"comments":"The sign function; returns `one` if the argument is positive,\n`negate one` if the argument is negative, or `zero` if the argument is `zero`.\nFor floating point numbers with signed zeroes, when called with a zero,\nthis function returns the argument in order to preserve the sign.\nFor any `x`, we should have `signum x * abs x == x`.\n","info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","Ord"],"Ord"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","Ring"],"Ring"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"ConstrainedType"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[224,46],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","start":[224,1]},"title":"signum"},{"children":[{"comments":null,"info":{"declType":"typeClassMember","type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Type","Proxy"],"Proxy"],"tag":"TypeConstructor"},{"annotation":[],"contents":"rowlist","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Record"],"tag":"TypeConstructor"},{"annotation":[],"contents":"row","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Record"],"tag":"TypeConstructor"},{"annotation":[],"contents":"row","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Data","Ordering"],"Ordering"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[239,73],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","start":[239,3]},"title":"compareRecord"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Ord"],"OrdRecord"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim","RowList"],"Nil"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":"row","tag":"TypeVar"}],"tag":"TypeApp"}},"sourceSpan":{"end":[242,27],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","start":[241,1]},"title":"ordRecordNil"},{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"rowlistTail","tag":"TypeVar"},{"annotation":[],"contents":"row","tag":"TypeVar"}],"constraintClass":[["Data","Ord"],"OrdRecord"],"constraintData":null,"constraintKindArgs":[]},{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"key","tag":"TypeVar"},{"annotation":[],"contents":"focus","tag":"TypeVar"},{"annotation":[],"contents":"rowTail","tag":"TypeVar"},{"annotation":[],"contents":"row","tag":"TypeVar"}],"constraintClass":[["Prim","Row"],"Cons"],"constraintData":null,"constraintKindArgs":[]},{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"key","tag":"TypeVar"}],"constraintClass":[["Data","Symbol"],"IsSymbol"],"constraintData":null,"constraintKindArgs":[]},{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"focus","tag":"TypeVar"}],"constraintClass":[["Data","Ord"],"Ord"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Ord"],"OrdRecord"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim","RowList"],"Cons"],"tag":"TypeConstructor"},{"annotation":[],"contents":"key","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"focus","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"rowlistTail","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":"row","tag":"TypeVar"}],"tag":"TypeApp"}},"sourceSpan":{"end":[257,57],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","start":[244,1]},"title":"ordRecordCons"}],"comments":null,"info":{"arguments":[["rowlist",null],["row",null]],"declType":"typeClass","fundeps":[],"superclasses":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"rowlist","tag":"TypeVar"},{"annotation":[],"contents":"row","tag":"TypeVar"}],"constraintClass":[["Data","Eq"],"EqRecord"],"constraintData":null,"constraintKindArgs":[]}]},"kind":{"keyword":"class","kind":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim","RowList"],"RowList"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Row"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim"],"Constraint"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[239,73],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","start":[238,1]},"title":"OrdRecord"}],"name":"Data.Ord","reExports":[]}
diff --git a/tests/purs/publish/basic-example/output/Data.Ord/externs.json b/tests/purs/publish/basic-example/output/Data.Ord/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.Ord/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Data","Ord"],"efExports":[{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[170,21]},{"exportSourceImportedFrom":["Data","Ordering"],"exportSourceDefinedIn":["Data","Ordering"]},{"TypeRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[170,21]},"Ordering",["EQ","GT","LT"]]}]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[170,21]},"Ord"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[170,21]},{"Ident":"compare"}]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[170,21]},"Ord1"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[170,21]},{"Ident":"compare1"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[170,21]},{"Ident":"lessThan"}]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[170,21]},"<"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[170,21]},{"Ident":"lessThanOrEq"}]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[170,21]},"<="]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[170,21]},{"Ident":"greaterThan"}]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[170,21]},">"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[170,21]},{"Ident":"greaterThanOrEq"}]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[170,21]},">="]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[170,21]},{"Ident":"comparing"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[170,21]},{"Ident":"min"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[170,21]},{"Ident":"max"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[170,21]},{"Ident":"clamp"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[170,21]},{"Ident":"between"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[170,21]},{"Ident":"abs"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[170,21]},{"Ident":"signum"}]},{"ModuleRef":[{"start":[14,5],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[14,25]},["Data","Ordering"]]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"ordBoolean"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"ordInt"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"ordNumber"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"ordString"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"ordChar"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"ordUnit"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"ordVoid"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"ordArray"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"ordOrdering"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"ord1Array"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Data","Eq"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[17,17],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[17,25]},"Eq"]},{"TypeClassRef":[{"start":[17,27],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[17,36]},"Eq1"]}]},"eiImportedAs":null},{"eiModule":["Data","Ord","Unsafe"],"eiImportType":{"Explicit":[{"ValueRef":[{"start":[18,25],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[18,38]},{"Ident":"unsafeCompare"}]}]},"eiImportedAs":null},{"eiModule":["Data","Ordering"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[19,23],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[19,35]},"Ordering",null]}]},"eiImportedAs":null},{"eiModule":["Data","Ring"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[20,19],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[20,29]},"Ring"]},{"ValueRef":[{"start":[20,31],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[20,35]},{"Ident":"zero"}]},{"ValueRef":[{"start":[20,37],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[20,40]},{"Ident":"one"}]},{"ValueRef":[{"start":[20,42],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[20,48]},{"Ident":"negate"}]}]},"eiImportedAs":null},{"eiModule":["Data","Unit"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[21,19],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[21,23]},"Unit",[]]}]},"eiImportedAs":null},{"eiModule":["Data","Void"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[22,19],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[22,23]},"Void",[]]}]},"eiImportedAs":null}],"efFixities":[{"efAssociativity":"infixl","efPrecedence":4,"efOperator":"<","efAlias":[["Data","Ord"],{"Left":{"Ident":"lessThan"}}]},{"efAssociativity":"infixl","efPrecedence":4,"efOperator":"<=","efAlias":[["Data","Ord"],{"Left":{"Ident":"lessThanOrEq"}}]},{"efAssociativity":"infixl","efPrecedence":4,"efOperator":">","efAlias":[["Data","Ord"],{"Left":{"Ident":"greaterThan"}}]},{"efAssociativity":"infixl","efPrecedence":4,"efOperator":">=","efAlias":[["Data","Ord"],{"Left":{"Ident":"greaterThanOrEq"}}]}],"efTypeFixities":[],"efDeclarations":[{"EDType":{"edTypeName":"Ord","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[33,16],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[33,18]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"Ord","edTypeSynonymArguments":[["a",null]],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["compare",{"annotation":[{"start":[33,14],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[33,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[33,14],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[33,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[33,16],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[33,18]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[33,14],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[33,15]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[33,19],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[33,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[33,19],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[33,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[33,21],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[33,23]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[33,19],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[33,20]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[33,24],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[33,32]},[]],"tag":"TypeConstructor","contents":[["Data","Ordering"],"Ordering"]}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["Eq0",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Eq"],"Eq"]},{"annotation":[{"start":[32,10],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[32,11]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]}]}}},{"EDClass":{"edClassName":"Ord","edClassTypeArguments":[["a",null]],"edClassMembers":[[{"Ident":"compare"},{"annotation":[{"start":[33,14],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[33,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[33,14],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[33,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[33,16],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[33,18]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[33,14],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[33,15]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[33,19],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[33,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[33,19],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[33,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[33,21],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[33,23]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[33,19],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[33,20]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[33,24],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[33,32]},[]],"tag":"TypeConstructor","contents":[["Data","Ordering"],"Ordering"]}]}]}]],"edClassConstraints":[{"constraintAnn":[{"start":[32,7],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[32,11]},[]],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[{"start":[32,10],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[32,11]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edFunctionalDependencies":[]}},{"EDValue":{"edValueName":{"Ident":"compare"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[33,14],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[33,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[33,14],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[33,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[33,16],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[33,18]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[33,14],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[33,15]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[33,19],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[33,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[33,19],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[33,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[33,21],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[33,23]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[33,19],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[33,20]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[33,24],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[33,32]},[]],"tag":"TypeConstructor","contents":[["Data","Ordering"],"Ordering"]}]}]}]},2]}}},{"EDType":{"edTypeName":"Ord1","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[167,34],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[167,37]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[167,25],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[167,30]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[167,38],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[167,40]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"Ord1","edTypeSynonymArguments":[["f",null]],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["compare1",{"annotation":[{"start":[167,15],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[167,56]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[167,25],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[167,56]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[167,25],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[167,30]},[]],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[{"start":[167,29],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[167,30]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[167,34],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[167,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[167,34],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[167,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[167,38],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[167,40]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[167,34],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[167,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[167,34],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[167,35]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[167,36],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[167,37]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[167,41],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[167,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[167,41],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[167,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[167,45],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[167,47]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[167,41],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[167,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[167,41],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[167,42]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[167,43],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[167,44]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[167,48],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[167,56]},[]],"tag":"TypeConstructor","contents":[["Data","Ordering"],"Ordering"]}]}]}]},null]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["Eq10",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Eq"],"Eq1"]},{"annotation":[{"start":[166,11],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[166,12]},[]],"tag":"TypeVar","contents":"f"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]}]}}},{"EDClass":{"edClassName":"Ord1","edClassTypeArguments":[["f",null]],"edClassMembers":[[{"Ident":"compare1"},{"annotation":[{"start":[167,15],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[167,56]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[167,25],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[167,56]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[167,25],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[167,30]},[]],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[{"start":[167,29],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[167,30]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[167,34],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[167,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[167,34],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[167,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[167,38],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[167,40]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[167,34],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[167,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[167,34],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[167,35]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[167,36],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[167,37]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[167,41],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[167,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[167,41],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[167,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[167,45],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[167,47]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[167,41],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[167,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[167,41],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[167,42]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[167,43],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[167,44]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[167,48],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[167,56]},[]],"tag":"TypeConstructor","contents":[["Data","Ordering"],"Ordering"]}]}]}]},null]}]],"edClassConstraints":[{"constraintAnn":[{"start":[166,7],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[166,12]},[]],"constraintClass":[["Data","Eq"],"Eq1"],"constraintArgs":[{"annotation":[{"start":[166,11],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[166,12]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null}],"edFunctionalDependencies":[]}},{"EDValue":{"edValueName":{"Ident":"compare1"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[167,15],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[167,56]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["Data","Ord"],"Ord1"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[167,25],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[167,56]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[167,25],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[167,30]},[]],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[{"start":[167,29],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[167,30]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[167,34],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[167,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[167,34],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[167,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[167,38],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[167,40]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[167,34],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[167,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[167,34],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[167,35]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[167,36],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[167,37]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[167,41],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[167,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[167,41],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[167,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[167,45],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[167,47]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[167,41],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[167,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[167,41],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[167,42]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[167,43],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[167,44]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[167,48],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[167,56]},[]],"tag":"TypeConstructor","contents":[["Data","Ordering"],"Ordering"]}]}]}]}]},0]},1]}}},{"EDValue":{"edValueName":{"Ident":"lessThan"},"edValueType":{"annotation":[{"start":[77,13],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[77,49]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[77,23],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[77,49]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[77,23],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[77,28]},[]],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[{"start":[77,27],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[77,28]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[77,32],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[77,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[77,32],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[77,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[77,34],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[77,36]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[77,32],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[77,33]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[77,37],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[77,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[77,37],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[77,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[77,39],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[77,41]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[77,37],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[77,38]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[77,42],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[77,49]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]}]},13]}}},{"EDValue":{"edValueName":{"Ident":"lessThanOrEq"},"edValueType":{"annotation":[{"start":[89,17],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[89,53]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[89,27],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[89,53]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[89,27],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[89,32]},[]],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[{"start":[89,31],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[89,32]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[89,36],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[89,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[89,36],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[89,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[89,38],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[89,40]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[89,36],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[89,37]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[89,41],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[89,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[89,41],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[89,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[89,43],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[89,45]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[89,41],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[89,42]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[89,46],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[89,53]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]}]},15]}}},{"EDValue":{"edValueName":{"Ident":"greaterThan"},"edValueType":{"annotation":[{"start":[83,16],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[83,52]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[83,26],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[83,52]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[83,26],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[83,31]},[]],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[{"start":[83,30],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[83,31]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[83,35],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[83,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[83,35],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[83,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[83,37],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[83,39]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[83,35],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[83,36]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[83,40],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[83,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[83,40],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[83,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[83,42],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[83,44]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[83,40],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[83,41]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[83,45],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[83,52]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]}]},7]}}},{"EDValue":{"edValueName":{"Ident":"greaterThanOrEq"},"edValueType":{"annotation":[{"start":[95,20],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[95,56]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[95,30],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[95,56]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[95,30],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[95,35]},[]],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[{"start":[95,34],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[95,35]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[95,39],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[95,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[95,39],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[95,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[95,41],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[95,43]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[95,39],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[95,40]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[95,44],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[95,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[95,44],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[95,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[95,46],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[95,48]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[95,44],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[95,45]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[95,49],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[95,56]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]}]},9]}}},{"EDValue":{"edValueName":{"Ident":"comparing"},"edValueType":{"annotation":[{"start":[106,14],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[106,67]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[106,21],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[106,67]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[106,26],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[106,67]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[106,26],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[106,31]},[]],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[{"start":[106,30],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[106,31]},[]],"tag":"TypeVar","contents":"b"}],"constraintData":null},{"annotation":[{"start":[106,35],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[106,67]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[106,35],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[106,67]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[106,44],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[106,46]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[106,36],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[106,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[106,36],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[106,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[106,38],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[106,40]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[106,36],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[106,37]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[106,41],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[106,42]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[106,48],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[106,66]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[106,48],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[106,66]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[106,50],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[106,52]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[106,48],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[106,49]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[106,53],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[106,66]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[106,53],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[106,66]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[106,55],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[106,57]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[106,53],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[106,54]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[106,58],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[106,66]},[]],"tag":"TypeConstructor","contents":[["Data","Ordering"],"Ordering"]}]}]}]}]},3]},4]}}},{"EDValue":{"edValueName":{"Ident":"min"},"edValueType":{"annotation":[{"start":[111,8],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[111,38]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[111,18],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[111,38]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[111,18],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[111,23]},[]],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[{"start":[111,22],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[111,23]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[111,27],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[111,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[111,27],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[111,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[111,29],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[111,31]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[111,27],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[111,28]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[111,32],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[111,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[111,32],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[111,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[111,34],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[111,36]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[111,32],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[111,33]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[111,37],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[111,38]},[]],"tag":"TypeVar","contents":"a"}]}]}]},19]}}},{"EDValue":{"edValueName":{"Ident":"max"},"edValueType":{"annotation":[{"start":[120,8],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[120,38]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[120,18],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[120,38]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[120,18],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[120,23]},[]],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[{"start":[120,22],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[120,23]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[120,27],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[120,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[120,27],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[120,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[120,29],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[120,31]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[120,27],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[120,28]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[120,32],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[120,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[120,32],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[120,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[120,34],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[120,36]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[120,32],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[120,33]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[120,37],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[120,38]},[]],"tag":"TypeVar","contents":"a"}]}]}]},17]}}},{"EDValue":{"edValueName":{"Ident":"clamp"},"edValueType":{"annotation":[{"start":[135,10],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[135,45]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[135,20],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[135,45]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[135,20],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[135,25]},[]],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[{"start":[135,24],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[135,25]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[135,29],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[135,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[135,29],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[135,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[135,31],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[135,33]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[135,29],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[135,30]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[135,34],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[135,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[135,34],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[135,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[135,36],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[135,38]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[135,34],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[135,35]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[135,39],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[135,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[135,39],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[135,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[135,41],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[135,43]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[135,39],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[135,40]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[135,44],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[135,45]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]},27]}}},{"EDValue":{"edValueName":{"Ident":"between"},"edValueType":{"annotation":[{"start":[149,12],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[149,53]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[149,22],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[149,53]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[149,22],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[149,27]},[]],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[{"start":[149,26],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[149,27]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[149,31],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[149,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[149,31],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[149,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[149,33],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[149,35]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[149,31],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[149,32]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[149,36],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[149,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[149,36],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[149,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[149,38],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[149,40]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[149,36],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[149,37]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[149,41],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[149,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[149,41],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[149,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[149,43],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[149,45]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[149,41],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[149,42]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[149,46],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[149,53]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]}]}]},29]}}},{"EDValue":{"edValueName":{"Ident":"abs"},"edValueType":{"annotation":[{"start":[157,8],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[157,43]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[157,18],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[157,43]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[157,18],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[157,23]},[]],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[{"start":[157,22],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[157,23]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[157,27],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[157,43]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[157,27],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[157,33]},[]],"constraintClass":[["Data","Ring"],"Ring"],"constraintArgs":[{"annotation":[{"start":[157,32],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[157,33]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[157,37],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[157,43]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[157,37],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[157,43]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[157,39],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[157,41]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[157,37],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[157,38]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[157,42],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[157,43]},[]],"tag":"TypeVar","contents":"a"}]}]}]},31]}}},{"EDValue":{"edValueName":{"Ident":"signum"},"edValueType":{"annotation":[{"start":[162,11],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[162,46]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[162,21],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[162,46]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[162,21],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[162,26]},[]],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[{"start":[162,25],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[162,26]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[162,30],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[162,46]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[162,30],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[162,36]},[]],"constraintClass":[["Data","Ring"],"Ring"],"constraintArgs":[{"annotation":[{"start":[162,35],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[162,36]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[162,40],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[162,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[162,40],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[162,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[162,42],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[162,44]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[162,40],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[162,41]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[162,45],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[162,46]},[]],"tag":"TypeVar","contents":"a"}]}]}]},11]}}},{"EDInstance":{"edInstanceClassName":[["Data","Ord"],"Ord"],"edInstanceName":{"Ident":"ordBoolean"},"edInstanceTypes":[{"annotation":[{"start":[35,28],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[35,35]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Ord"],{"Ident":"ordBoolean"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Ord"],"Ord"],"edInstanceName":{"Ident":"ordInt"},"edInstanceTypes":[{"annotation":[{"start":[38,24],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[38,27]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Ord"],{"Ident":"ordInt"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Ord"],"Ord"],"edInstanceName":{"Ident":"ordNumber"},"edInstanceTypes":[{"annotation":[{"start":[41,27],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[41,33]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Ord"],{"Ident":"ordNumber"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Ord"],"Ord"],"edInstanceName":{"Ident":"ordString"},"edInstanceTypes":[{"annotation":[{"start":[44,27],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[44,33]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Ord"],{"Ident":"ordString"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Ord"],"Ord"],"edInstanceName":{"Ident":"ordChar"},"edInstanceTypes":[{"annotation":[{"start":[47,25],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[47,29]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Char"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Ord"],{"Ident":"ordChar"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Ord"],"Ord"],"edInstanceName":{"Ident":"ordUnit"},"edInstanceTypes":[{"annotation":[{"start":[50,25],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[50,29]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Ord"],{"Ident":"ordUnit"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Ord"],"Ord"],"edInstanceName":{"Ident":"ordVoid"},"edInstanceTypes":[{"annotation":[{"start":[53,25],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[53,29]},[]],"tag":"TypeConstructor","contents":[["Data","Void"],"Void"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Ord"],{"Ident":"ordVoid"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Ord"],"Ord"],"edInstanceName":{"Ident":"ordArray"},"edInstanceTypes":[{"annotation":[{"start":[56,36],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[56,43]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[56,36],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[56,41]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[56,42],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[56,43]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[56,22],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[56,27]},[]],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[{"start":[56,26],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[56,27]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","Ord"],{"Ident":"ordArray"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Ord"],"Ord"],"edInstanceName":{"Ident":"ordOrdering"},"edInstanceTypes":[{"annotation":[{"start":[67,29],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[67,37]},[]],"tag":"TypeConstructor","contents":[["Data","Ordering"],"Ordering"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Ord"],{"Ident":"ordOrdering"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Ord"],"Ord1"],"edInstanceName":{"Ident":"ord1Array"},"edInstanceTypes":[{"annotation":[{"start":[169,28],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[169,33]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Ord"],{"Ident":"ord1Array"}]],"edInstanceChainIndex":0}}],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs","end":[170,21]}}
diff --git a/tests/purs/publish/basic-example/output/Data.Ordering/docs.json b/tests/purs/publish/basic-example/output/Data.Ordering/docs.json
--- a/tests/purs/publish/basic-example/output/Data.Ordering/docs.json
+++ b/tests/purs/publish/basic-example/output/Data.Ordering/docs.json
@@ -1,1 +1,1 @@
-{"reExports":[],"name":"Data.Ordering","comments":null,"declarations":[{"children":[{"comments":null,"title":"LT","info":{"arguments":[],"declType":"dataConstructor"},"sourceSpan":null},{"comments":null,"title":"GT","info":{"arguments":[],"declType":"dataConstructor"},"sourceSpan":null},{"comments":null,"title":"EQ","info":{"arguments":[],"declType":"dataConstructor"},"sourceSpan":null},{"comments":null,"title":"eqOrdering","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Eq"],"Eq"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ordering"],"Ordering"]}]}},"sourceSpan":{"start":[15,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ordering.purs","end":[19,19]}},{"comments":null,"title":"semigroupOrdering","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup"],"Semigroup"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ordering"],"Ordering"]}]}},"sourceSpan":{"start":[21,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ordering.purs","end":[24,18]}},{"comments":null,"title":"showOrdering","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Show"],"Show"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ordering"],"Ordering"]}]}},"sourceSpan":{"start":[26,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ordering.purs","end":[29,17]}}],"comments":"The `Ordering` data type represents the three possible outcomes of\ncomparing two values:\n\n`LT` - The first value is _less than_ the second.\n`GT` - The first value is _greater than_ the second.\n`EQ` - The first value is _equal to_ the second.\n","title":"Ordering","info":{"declType":"data","dataDeclType":"data","typeArguments":[]},"sourceSpan":{"start":[13,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ordering.purs","end":[13,29]}},{"children":[],"comments":"Reverses an `Ordering` value, flipping greater than for less than while\npreserving equality.\n","title":"invert","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ordering"],"Ordering"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ordering"],"Ordering"]}]}},"sourceSpan":{"start":[33,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ordering.purs","end":[33,31]}}]}
+{"comments":null,"declarations":[{"children":[{"comments":null,"info":{"arguments":[],"declType":"dataConstructor"},"sourceSpan":{"end":[13,19],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ordering.purs","start":[13,15]},"title":"LT"},{"comments":null,"info":{"arguments":[],"declType":"dataConstructor"},"sourceSpan":{"end":[13,24],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ordering.purs","start":[13,20]},"title":"GT"},{"comments":null,"info":{"arguments":[],"declType":"dataConstructor"},"sourceSpan":{"end":[13,29],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ordering.purs","start":[13,25]},"title":"EQ"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Eq"],"Eq"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Ordering"],"Ordering"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[19,17],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ordering.purs","start":[15,1]},"title":"eqOrdering"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Semigroup"],"Semigroup"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Ordering"],"Ordering"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[24,18],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ordering.purs","start":[21,1]},"title":"semigroupOrdering"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Show"],"Show"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Ordering"],"Ordering"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[29,17],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ordering.purs","start":[26,1]},"title":"showOrdering"}],"comments":"The `Ordering` data type represents the three possible outcomes of\ncomparing two values:\n\n`LT` - The first value is _less than_ the second.\n`GT` - The first value is _greater than_ the second.\n`EQ` - The first value is _equal to_ the second.\n","info":{"dataDeclType":"data","declType":"data","roles":[],"typeArguments":[]},"kind":null,"sourceSpan":{"end":[13,29],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ordering.purs","start":[13,1]},"title":"Ordering"},{"children":[],"comments":"Reverses an `Ordering` value, flipping greater than for less than while\npreserving equality.\n","info":{"declType":"value","type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Ordering"],"Ordering"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Data","Ordering"],"Ordering"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"kind":null,"sourceSpan":{"end":[33,31],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ordering.purs","start":[33,1]},"title":"invert"}],"name":"Data.Ordering","reExports":[]}
diff --git a/tests/purs/publish/basic-example/output/Data.Ordering/externs.json b/tests/purs/publish/basic-example/output/Data.Ordering/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.Ordering/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Data","Ordering"],"efExports":[{"TypeRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ordering.purs","end":[36,15]},"Ordering",["LT","GT","EQ"]]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ordering.purs","end":[36,15]},{"Ident":"invert"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"eqOrdering"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"semigroupOrdering"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"showOrdering"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Data","Eq"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[3,17],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ordering.purs","end":[3,25]},"Eq"]}]},"eiImportedAs":null},{"eiModule":["Data","Semigroup"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[4,24],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ordering.purs","end":[4,39]},"Semigroup"]}]},"eiImportedAs":null},{"eiModule":["Data","Show"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[5,19],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ordering.purs","end":[5,29]},"Show"]}]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDType":{"edTypeName":"Ordering","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},"edTypeDeclarationKind":{"DataType":{"args":[],"ctors":[["LT",[]],["GT",[]],["EQ",[]]]}}}},{"EDDataConstructor":{"edDataCtorName":"LT","edDataCtorOrigin":"data","edDataCtorTypeCtor":"Ordering","edDataCtorType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Ordering"],"Ordering"]},"edDataCtorFields":[]}},{"EDDataConstructor":{"edDataCtorName":"GT","edDataCtorOrigin":"data","edDataCtorTypeCtor":"Ordering","edDataCtorType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Ordering"],"Ordering"]},"edDataCtorFields":[]}},{"EDDataConstructor":{"edDataCtorName":"EQ","edDataCtorOrigin":"data","edDataCtorTypeCtor":"Ordering","edDataCtorType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Ordering"],"Ordering"]},"edDataCtorFields":[]}},{"EDValue":{"edValueName":{"Ident":"invert"},"edValueType":{"annotation":[{"start":[33,11],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ordering.purs","end":[33,31]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[33,11],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ordering.purs","end":[33,31]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[33,20],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ordering.purs","end":[33,22]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[33,11],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ordering.purs","end":[33,19]},[]],"tag":"TypeConstructor","contents":[["Data","Ordering"],"Ordering"]}]},{"annotation":[{"start":[33,23],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ordering.purs","end":[33,31]},[]],"tag":"TypeConstructor","contents":[["Data","Ordering"],"Ordering"]}]}}},{"EDInstance":{"edInstanceClassName":[["Data","Eq"],"Eq"],"edInstanceName":{"Ident":"eqOrdering"},"edInstanceTypes":[{"annotation":[{"start":[15,27],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ordering.purs","end":[15,35]},[]],"tag":"TypeConstructor","contents":[["Data","Ordering"],"Ordering"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Ordering"],{"Ident":"eqOrdering"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Semigroup"],"Semigroup"],"edInstanceName":{"Ident":"semigroupOrdering"},"edInstanceTypes":[{"annotation":[{"start":[21,41],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ordering.purs","end":[21,49]},[]],"tag":"TypeConstructor","contents":[["Data","Ordering"],"Ordering"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Ordering"],{"Ident":"semigroupOrdering"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Show"],"Show"],"edInstanceName":{"Ident":"showOrdering"},"edInstanceTypes":[{"annotation":[{"start":[26,31],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ordering.purs","end":[26,39]},[]],"tag":"TypeConstructor","contents":[["Data","Ordering"],"Ordering"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Ordering"],{"Ident":"showOrdering"}]],"edInstanceChainIndex":0}}],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ordering.purs","end":[36,15]}}
diff --git a/tests/purs/publish/basic-example/output/Data.Reflectable/docs.json b/tests/purs/publish/basic-example/output/Data.Reflectable/docs.json
new file mode 100644
--- /dev/null
+++ b/tests/purs/publish/basic-example/output/Data.Reflectable/docs.json
@@ -0,0 +1,1 @@
+{"comments":null,"declarations":[{"children":[{"comments":"Reflect a type `v` to its term-level representation.\n","info":{"declType":"typeClassMember","type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Type","Proxy"],"Proxy"],"tag":"TypeConstructor"},{"annotation":[],"contents":"v","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":"t","tag":"TypeVar"}],"tag":"TypeApp"}},"sourceSpan":{"end":[21,30],"name":"../../../support/bower_components/purescript-prelude/src/Data/Reflectable.purs","start":[21,3]},"title":"reflectType"}],"comments":"A type-class for reflectable types.\n\nInstances for the following kinds are solved by the compiler:\n* Boolean\n* Int\n* Ordering\n* Symbol\n","info":{"arguments":[["v",null],["t",null]],"declType":"typeClass","fundeps":[[["v"],["t"]]],"superclasses":[]},"kind":{"keyword":"class","kind":{"annotation":[],"contents":{"identifier":"k","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"k","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim"],"Constraint"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"sourceSpan":{"end":[21,30],"name":"../../../support/bower_components/purescript-prelude/src/Data/Reflectable.purs","start":[19,1]},"title":"Reflectable"},{"children":[{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Reflectable"],"Reifiable"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Boolean"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[30,27],"name":"../../../support/bower_components/purescript-prelude/src/Data/Reflectable.purs","start":[30,1]},"title":"<anonymous>"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Reflectable"],"Reifiable"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[31,23],"name":"../../../support/bower_components/purescript-prelude/src/Data/Reflectable.purs","start":[31,1]},"title":"<anonymous>"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Reflectable"],"Reifiable"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Ordering"],"Ordering"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[32,28],"name":"../../../support/bower_components/purescript-prelude/src/Data/Reflectable.purs","start":[32,1]},"title":"<anonymous>"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Reflectable"],"Reifiable"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"String"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[33,26],"name":"../../../support/bower_components/purescript-prelude/src/Data/Reflectable.purs","start":[33,1]},"title":"<anonymous>"}],"comments":"A type class for reifiable types.\n\nInstances of this type class correspond to the `t` synthesized\nby the compiler when solving the `Reflectable` type class.\n","info":{"arguments":[["t",null]],"declType":"typeClass","fundeps":[],"superclasses":[]},"kind":null,"sourceSpan":{"end":[28,18],"name":"../../../support/bower_components/purescript-prelude/src/Data/Reflectable.purs","start":[28,1]},"title":"Reifiable"},{"children":[],"comments":"Reify a value of type `t` such that it can be consumed by a\nfunction constrained by the `Reflectable` type class. For\nexample:\n\n```purs\ntwiceFromType :: forall v. Reflectable v Int => Proxy v -> Int\ntwiceFromType = (_ * 2) <<< reflectType\n\ntwiceOfTerm :: Int\ntwiceOfTerm = reifyType 21 twiceFromType\n```\n","info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"t","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"r","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"t","tag":"TypeVar"}],"constraintClass":[["Data","Reflectable"],"Reifiable"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"t","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":{"annotation":[],"contents":{"identifier":"v","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"v","tag":"TypeVar"},{"annotation":[],"contents":"t","tag":"TypeVar"}],"constraintClass":[["Data","Reflectable"],"Reflectable"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Type","Proxy"],"Proxy"],"tag":"TypeConstructor"},{"annotation":[],"contents":"v","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":"r","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"tag":"ParensInType"}],"tag":"TypeApp"},{"annotation":[],"contents":"r","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[49,94],"name":"../../../support/bower_components/purescript-prelude/src/Data/Reflectable.purs","start":[49,1]},"title":"reifyType"}],"name":"Data.Reflectable","reExports":[]}
diff --git a/tests/purs/publish/basic-example/output/Data.Ring.Generic/docs.json b/tests/purs/publish/basic-example/output/Data.Ring.Generic/docs.json
new file mode 100644
--- /dev/null
+++ b/tests/purs/publish/basic-example/output/Data.Ring.Generic/docs.json
@@ -0,0 +1,1 @@
+{"comments":null,"declarations":[{"children":[{"comments":null,"info":{"declType":"typeClassMember","type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[8,29],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring/Generic.purs","start":[8,3]},"title":"genericSub'"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Ring","Generic"],"GenericRing"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Generic","Rep"],"NoArguments"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[11,32],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring/Generic.purs","start":[10,1]},"title":"genericRingNoArguments"},{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","Ring"],"Ring"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Ring","Generic"],"GenericRing"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Generic","Rep"],"Argument"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[14,61],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring/Generic.purs","start":[13,1]},"title":"genericRingArgument"},{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","Ring","Generic"],"GenericRing"],"constraintData":null,"constraintKindArgs":[]},{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"b","tag":"TypeVar"}],"constraintClass":[["Data","Ring","Generic"],"GenericRing"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Ring","Generic"],"GenericRing"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Generic","Rep"],"Product"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[17,96],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring/Generic.purs","start":[16,1]},"title":"genericRingProduct"},{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","Ring","Generic"],"GenericRing"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Ring","Generic"],"GenericRing"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Generic","Rep"],"Constructor"],"tag":"TypeConstructor"},{"annotation":[],"contents":"name","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[20,82],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring/Generic.purs","start":[19,1]},"title":"genericRingConstructor"}],"comments":null,"info":{"arguments":[["a",null]],"declType":"typeClass","fundeps":[],"superclasses":[]},"kind":null,"sourceSpan":{"end":[8,29],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring/Generic.purs","start":[7,1]},"title":"GenericRing"},{"children":[],"comments":"A `Generic` implementation of the `sub` member from the `Ring` type class.\n","info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"rep","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"},{"annotation":[],"contents":"rep","tag":"TypeVar"}],"constraintClass":[["Data","Generic","Rep"],"Generic"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"rep","tag":"TypeVar"}],"constraintClass":[["Data","Ring","Generic"],"GenericRing"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"ConstrainedType"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[23,76],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring/Generic.purs","start":[23,1]},"title":"genericSub"}],"name":"Data.Ring.Generic","reExports":[]}
diff --git a/tests/purs/publish/basic-example/output/Data.Ring/docs.json b/tests/purs/publish/basic-example/output/Data.Ring/docs.json
--- a/tests/purs/publish/basic-example/output/Data.Ring/docs.json
+++ b/tests/purs/publish/basic-example/output/Data.Ring/docs.json
@@ -1,1 +1,1 @@
-{"reExports":[],"name":"Data.Ring","comments":null,"declarations":[{"children":[{"comments":null,"title":"sub","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[23,3],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[23,21]}},{"comments":null,"title":"ringInt","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ring"],"Ring"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}},"sourceSpan":{"start":[27,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[28,15]}},{"comments":null,"title":"ringNumber","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ring"],"Ring"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]}},"sourceSpan":{"start":[30,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[31,15]}},{"comments":null,"title":"ringUnit","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ring"],"Ring"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}},"sourceSpan":{"start":[33,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[34,17]}},{"comments":null,"title":"ringFn","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Ring"],"Ring"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"b"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ring"],"Ring"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}},"sourceSpan":{"start":[36,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[37,24]}},{"comments":null,"title":"ringRecord","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Prim","RowList"],"RowToList"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"row"},{"annotation":[],"tag":"TypeVar","contents":"list"}],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","Ring"],"RingRecord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"list"},{"annotation":[],"tag":"TypeVar","contents":"row"},{"annotation":[],"tag":"TypeVar","contents":"row"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ring"],"Ring"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"TypeVar","contents":"row"}]}]}},"sourceSpan":{"start":[39,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[40,44]}}],"comments":"The `Ring` class is for types that support addition, multiplication,\nand subtraction operations.\n\nInstances must satisfy the following law in addition to the `Semiring`\nlaws:\n\n- Additive inverse: `a - a = (zero - a) + a = zero`\n","title":"Ring","info":{"fundeps":[],"arguments":[["a",null]],"declType":"typeClass","superclasses":[{"constraintAnn":[],"constraintClass":[["Data","Semiring"],"Semiring"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}]},"sourceSpan":{"start":[22,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[23,21]}},{"children":[],"comments":"`negate x` can be used as a shorthand for `zero - x`.\n","title":"negate","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Ring"],"Ring"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},null]}},"sourceSpan":{"start":[43,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[43,37]}},{"children":[],"comments":null,"title":"(-)","info":{"declType":"alias","alias":[["Data","Ring"],{"Right":{"Left":{"Ident":"sub"}}}],"fixity":{"associativity":"infixl","precedence":6}},"sourceSpan":{"start":[25,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[25,18]}},{"children":[{"comments":null,"title":"subRecord","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Data","RowList"],"RLProxy"]},{"annotation":[],"tag":"TypeVar","contents":"rowlist"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"TypeVar","contents":"row"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"TypeVar","contents":"row"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"TypeVar","contents":"subrow"}]}]}]}]}},"sourceSpan":{"start":[52,3],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[52,76]}},{"comments":null,"title":"ringRecordNil","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ring"],"RingRecord"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim","RowList"],"Nil"]}]},{"annotation":[],"tag":"TypeVar","contents":"row"}]},{"annotation":[],"tag":"REmpty"}]}},"sourceSpan":{"start":[54,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[55,23]}},{"comments":null,"title":"ringRecordCons","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Symbol"],"IsSymbol"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"key"}],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Prim","Row"],"Cons"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"key"},{"annotation":[],"tag":"TypeVar","contents":"focus"},{"annotation":[],"tag":"TypeVar","contents":"subrowTail"},{"annotation":[],"tag":"TypeVar","contents":"subrow"}],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","Ring"],"RingRecord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"rowlistTail"},{"annotation":[],"tag":"TypeVar","contents":"row"},{"annotation":[],"tag":"TypeVar","contents":"subrowTail"}],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","Ring"],"Ring"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"focus"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ring"],"RingRecord"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim","RowList"],"Cons"]},{"annotation":[],"tag":"TypeVar","contents":"key"}]},{"annotation":[],"tag":"TypeVar","contents":"focus"}]},{"annotation":[],"tag":"TypeVar","contents":"rowlistTail"}]}]},{"annotation":[],"tag":"TypeVar","contents":"row"}]},{"annotation":[],"tag":"TypeVar","contents":"subrow"}]}},"sourceSpan":{"start":[57,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[69,62]}}],"comments":"A class for records where all fields have `Ring` instances, used to\nimplement the `Ring` instance for records.\n","title":"RingRecord","info":{"fundeps":[[["rowlist"],["subrow"]]],"arguments":[["rowlist",null],["row",null],["subrow",null]],"declType":"typeClass","superclasses":[{"constraintAnn":[],"constraintClass":[["Data","Semiring"],"SemiringRecord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"rowlist"},{"annotation":[],"tag":"TypeVar","contents":"row"},{"annotation":[],"tag":"TypeVar","contents":"subrow"}],"constraintData":null}]},"sourceSpan":{"start":[51,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[52,76]}}]}
+{"comments":null,"declarations":[{"children":[{"comments":null,"info":{"declType":"typeClassMember","type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[28,21],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","start":[28,3]},"title":"sub"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Ring"],"Ring"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[33,15],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","start":[32,1]},"title":"ringInt"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Ring"],"Ring"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Number"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[36,15],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","start":[35,1]},"title":"ringNumber"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Ring"],"Ring"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Unit"],"Unit"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[39,17],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","start":[38,1]},"title":"ringUnit"},{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"b","tag":"TypeVar"}],"constraintClass":[["Data","Ring"],"Ring"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Ring"],"Ring"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[42,24],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","start":[41,1]},"title":"ringFn"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Ring"],"Ring"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Type","Proxy"],"Proxy"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[45,18],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","start":[44,1]},"title":"ringProxy"},{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"row","tag":"TypeVar"},{"annotation":[],"contents":"list","tag":"TypeVar"}],"constraintClass":[["Prim","RowList"],"RowToList"],"constraintData":null,"constraintKindArgs":[]},{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"list","tag":"TypeVar"},{"annotation":[],"contents":"row","tag":"TypeVar"},{"annotation":[],"contents":"row","tag":"TypeVar"}],"constraintClass":[["Data","Ring"],"RingRecord"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Ring"],"Ring"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Record"],"tag":"TypeConstructor"},{"annotation":[],"contents":"row","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[48,40],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","start":[47,1]},"title":"ringRecord"}],"comments":"The `Ring` class is for types that support addition, multiplication,\nand subtraction operations.\n\nInstances must satisfy the following laws in addition to the `Semiring`\nlaws:\n\n- Additive inverse: `a - a = zero`\n- Compatibility of `sub` and `negate`: `a - b = a + (zero - b)`\n","info":{"arguments":[["a",null]],"declType":"typeClass","fundeps":[],"superclasses":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","Semiring"],"Semiring"],"constraintData":null,"constraintKindArgs":[]}]},"kind":null,"sourceSpan":{"end":[28,21],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","start":[27,1]},"title":"Ring"},{"children":[],"comments":"`negate x` can be used as a shorthand for `zero - x`.\n","info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","Ring"],"Ring"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[51,37],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","start":[51,1]},"title":"negate"},{"children":[],"comments":null,"info":{"alias":[["Data","Ring"],{"Right":{"Left":{"Ident":"sub"}}}],"declType":"alias","fixity":{"associativity":"infixl","precedence":6}},"kind":null,"sourceSpan":{"end":[30,18],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","start":[30,1]},"title":"(-)"},{"children":[{"comments":null,"info":{"declType":"typeClassMember","type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Type","Proxy"],"Proxy"],"tag":"TypeConstructor"},{"annotation":[],"contents":"rowlist","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Record"],"tag":"TypeConstructor"},{"annotation":[],"contents":"row","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Record"],"tag":"TypeConstructor"},{"annotation":[],"contents":"row","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Record"],"tag":"TypeConstructor"},{"annotation":[],"contents":"subrow","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[61,74],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","start":[61,3]},"title":"subRecord"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Ring"],"RingRecord"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim","RowList"],"Nil"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":"row","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"tag":"REmpty"}],"tag":"TypeApp"}},"sourceSpan":{"end":[64,23],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","start":[63,1]},"title":"ringRecordNil"},{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"key","tag":"TypeVar"}],"constraintClass":[["Data","Symbol"],"IsSymbol"],"constraintData":null,"constraintKindArgs":[]},{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"key","tag":"TypeVar"},{"annotation":[],"contents":"focus","tag":"TypeVar"},{"annotation":[],"contents":"subrowTail","tag":"TypeVar"},{"annotation":[],"contents":"subrow","tag":"TypeVar"}],"constraintClass":[["Prim","Row"],"Cons"],"constraintData":null,"constraintKindArgs":[]},{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"rowlistTail","tag":"TypeVar"},{"annotation":[],"contents":"row","tag":"TypeVar"},{"annotation":[],"contents":"subrowTail","tag":"TypeVar"}],"constraintClass":[["Data","Ring"],"RingRecord"],"constraintData":null,"constraintKindArgs":[]},{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"focus","tag":"TypeVar"}],"constraintClass":[["Data","Ring"],"Ring"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Ring"],"RingRecord"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim","RowList"],"Cons"],"tag":"TypeConstructor"},{"annotation":[],"contents":"key","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"focus","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"rowlistTail","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":"row","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"subrow","tag":"TypeVar"}],"tag":"TypeApp"}},"sourceSpan":{"end":[78,56],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","start":[66,1]},"title":"ringRecordCons"}],"comments":"A class for records where all fields have `Ring` instances, used to\nimplement the `Ring` instance for records.\n","info":{"arguments":[["rowlist",null],["row",null],["subrow",null]],"declType":"typeClass","fundeps":[[["rowlist"],["subrow"]]],"superclasses":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"rowlist","tag":"TypeVar"},{"annotation":[],"contents":"row","tag":"TypeVar"},{"annotation":[],"contents":"subrow","tag":"TypeVar"}],"constraintClass":[["Data","Semiring"],"SemiringRecord"],"constraintData":null,"constraintKindArgs":[]}]},"kind":{"keyword":"class","kind":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim","RowList"],"RowList"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Row"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Row"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim"],"Constraint"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[61,74],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","start":[60,1]},"title":"RingRecord"}],"name":"Data.Ring","reExports":[]}
diff --git a/tests/purs/publish/basic-example/output/Data.Ring/externs.json b/tests/purs/publish/basic-example/output/Data.Ring/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.Ring/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Data","Ring"],"efExports":[{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[69,62]},{"exportSourceImportedFrom":["Data","Semiring"],"exportSourceDefinedIn":["Data","Semiring"]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[69,62]},"Semiring"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[69,62]},{"exportSourceImportedFrom":["Data","Semiring"],"exportSourceDefinedIn":["Data","Semiring"]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[69,62]},"SemiringRecord"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[69,62]},{"exportSourceImportedFrom":["Data","Semiring"],"exportSourceDefinedIn":["Data","Semiring"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[69,62]},{"Ident":"add"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[69,62]},{"exportSourceImportedFrom":["Data","Semiring"],"exportSourceDefinedIn":["Data","Semiring"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[69,62]},{"Ident":"mul"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[69,62]},{"exportSourceImportedFrom":["Data","Semiring"],"exportSourceDefinedIn":["Data","Semiring"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[69,62]},{"Ident":"one"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[69,62]},{"exportSourceImportedFrom":["Data","Semiring"],"exportSourceDefinedIn":["Data","Semiring"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[69,62]},{"Ident":"zero"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[69,62]},{"exportSourceImportedFrom":["Data","Semiring"],"exportSourceDefinedIn":["Data","Semiring"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[69,62]},"*"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[69,62]},{"exportSourceImportedFrom":["Data","Semiring"],"exportSourceDefinedIn":["Data","Semiring"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[69,62]},"+"]}]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[69,62]},"Ring"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[69,62]},{"Ident":"sub"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[69,62]},{"Ident":"negate"}]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[69,62]},"-"]},{"ModuleRef":[{"start":[3,5],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[3,25]},["Data","Semiring"]]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[69,62]},"RingRecord"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[69,62]},{"Ident":"subRecord"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"ringInt"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"ringNumber"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"ringUnit"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"ringFn"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"ringRecord"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"ringRecordNil"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"ringRecordCons"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Data","Semiring"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[7,23],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[7,37]},"Semiring"]},{"TypeClassRef":[{"start":[7,39],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[7,59]},"SemiringRecord"]},{"ValueRef":[{"start":[7,61],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[7,64]},{"Ident":"add"}]},{"ValueRef":[{"start":[7,66],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[7,69]},{"Ident":"mul"}]},{"ValueRef":[{"start":[7,71],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[7,74]},{"Ident":"one"}]},{"ValueRef":[{"start":[7,76],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[7,80]},{"Ident":"zero"}]},{"ValueOpRef":[{"start":[7,82],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[7,85]},"*"]},{"ValueOpRef":[{"start":[7,87],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[7,90]},"+"]}]},"eiImportedAs":null},{"eiModule":["Data","Symbol"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[8,21],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[8,35]},"IsSymbol"]},{"TypeRef":[{"start":[8,37],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[8,47]},"SProxy",null]},{"ValueRef":[{"start":[8,49],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[8,62]},{"Ident":"reflectSymbol"}]}]},"eiImportedAs":null},{"eiModule":["Data","Unit"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[9,19],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[9,23]},"Unit",[]]},{"ValueRef":[{"start":[9,25],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[9,29]},{"Ident":"unit"}]}]},"eiImportedAs":null},{"eiModule":["Prim","Row"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Row"]},{"eiModule":["Prim","RowList"],"eiImportType":{"Implicit":[]},"eiImportedAs":["RL"]},{"eiModule":["Record","Unsafe"],"eiImportType":{"Explicit":[{"ValueRef":[{"start":[12,23],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[12,32]},{"Ident":"unsafeGet"}]},{"ValueRef":[{"start":[12,34],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[12,43]},{"Ident":"unsafeSet"}]}]},"eiImportedAs":null},{"eiModule":["Type","Data","RowList"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[13,27],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[13,38]},"RLProxy",null]}]},"eiImportedAs":null}],"efFixities":[{"efAssociativity":"infixl","efPrecedence":6,"efOperator":"-","efAlias":[["Data","Ring"],{"Left":{"Ident":"sub"}}]}],"efTypeFixities":[],"efDeclarations":[{"EDType":{"edTypeName":"Ring","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[23,12],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[23,14]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"Ring","edTypeSynonymArguments":[["a",null]],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["sub",{"annotation":[{"start":[23,10],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[23,21]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[23,10],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[23,21]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[23,12],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[23,14]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[23,10],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[23,11]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[23,15],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[23,21]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[23,15],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[23,21]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[23,17],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[23,19]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[23,15],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[23,16]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[23,20],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[23,21]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["Semiring0",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Semiring"],"Semiring"]},{"annotation":[{"start":[22,16],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[22,17]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]}]}}},{"EDClass":{"edClassName":"Ring","edClassTypeArguments":[["a",null]],"edClassMembers":[[{"Ident":"sub"},{"annotation":[{"start":[23,10],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[23,21]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[23,10],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[23,21]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[23,12],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[23,14]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[23,10],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[23,11]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[23,15],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[23,21]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[23,15],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[23,21]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[23,17],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[23,19]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[23,15],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[23,16]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[23,20],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[23,21]},[]],"tag":"TypeVar","contents":"a"}]}]}]],"edClassConstraints":[{"constraintAnn":[{"start":[22,7],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[22,17]},[]],"constraintClass":[["Data","Semiring"],"Semiring"],"constraintArgs":[{"annotation":[{"start":[22,16],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[22,17]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edFunctionalDependencies":[]}},{"EDValue":{"edValueName":{"Ident":"sub"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["Data","Ring"],"Ring"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[23,10],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[23,21]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[23,10],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[23,21]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[23,12],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[23,14]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[23,10],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[23,11]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[23,15],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[23,21]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[23,15],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[23,21]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[23,17],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[23,19]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[23,15],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[23,16]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[23,20],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[23,21]},[]],"tag":"TypeVar","contents":"a"}]}]}]},3]}}},{"EDValue":{"edValueName":{"Ident":"negate"},"edValueType":{"annotation":[{"start":[43,11],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[43,37]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[43,21],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[43,37]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[43,21],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[43,27]},[]],"constraintClass":[["Data","Ring"],"Ring"],"constraintArgs":[{"annotation":[{"start":[43,26],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[43,27]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[43,31],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[43,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[43,31],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[43,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[43,33],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[43,35]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[43,31],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[43,32]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[43,36],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[43,37]},[]],"tag":"TypeVar","contents":"a"}]}]},34]}}},{"EDType":{"edTypeName":"RingRecord","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[52,16],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[52,23]},[]],"tag":"NamedKind","contents":[["Prim","RowList"],"RowList"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[52,35],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[52,41]},[]],"tag":"Row","contents":{"annotation":[{"start":[52,35],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[52,41]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[52,63],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[52,69]},[]],"tag":"Row","contents":{"annotation":[{"start":[52,63],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[52,69]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"RingRecord","edTypeSynonymArguments":[["rowlist",null],["row",null],["subrow",null]],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["subRecord",{"annotation":[{"start":[52,16],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[52,76]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,16],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[52,76]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,32],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[52,34]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[52,16],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[52,31]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,16],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[52,23]},[]],"tag":"TypeConstructor","contents":[["Type","Data","RowList"],"RLProxy"]},{"annotation":[{"start":[52,24],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[52,31]},[]],"tag":"TypeVar","contents":"rowlist"}]}]},{"annotation":[{"start":[52,35],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[52,76]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,35],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[52,76]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,46],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[52,48]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[52,35],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[52,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,35],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[52,41]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[52,42],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[52,45]},[]],"tag":"TypeVar","contents":"row"}]}]},{"annotation":[{"start":[52,49],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[52,76]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,49],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[52,76]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,60],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[52,62]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[52,49],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[52,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,49],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[52,55]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[52,56],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[52,59]},[]],"tag":"TypeVar","contents":"row"}]}]},{"annotation":[{"start":[52,63],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[52,76]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,63],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[52,69]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[52,70],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[52,76]},[]],"tag":"TypeVar","contents":"subrow"}]}]}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["SemiringRecord0",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Semiring"],"SemiringRecord"]},{"annotation":[{"start":[51,22],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[51,29]},[]],"tag":"TypeVar","contents":"rowlist"}]},{"annotation":[{"start":[51,30],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[51,33]},[]],"tag":"TypeVar","contents":"row"}]},{"annotation":[{"start":[51,34],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[51,40]},[]],"tag":"TypeVar","contents":"subrow"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]}]}}},{"EDClass":{"edClassName":"RingRecord","edClassTypeArguments":[["rowlist",null],["row",null],["subrow",null]],"edClassMembers":[[{"Ident":"subRecord"},{"annotation":[{"start":[52,16],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[52,76]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,16],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[52,76]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,32],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[52,34]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[52,16],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[52,31]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,16],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[52,23]},[]],"tag":"TypeConstructor","contents":[["Type","Data","RowList"],"RLProxy"]},{"annotation":[{"start":[52,24],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[52,31]},[]],"tag":"TypeVar","contents":"rowlist"}]}]},{"annotation":[{"start":[52,35],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[52,76]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,35],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[52,76]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,46],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[52,48]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[52,35],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[52,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,35],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[52,41]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[52,42],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[52,45]},[]],"tag":"TypeVar","contents":"row"}]}]},{"annotation":[{"start":[52,49],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[52,76]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,49],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[52,76]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,60],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[52,62]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[52,49],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[52,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,49],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[52,55]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[52,56],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[52,59]},[]],"tag":"TypeVar","contents":"row"}]}]},{"annotation":[{"start":[52,63],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[52,76]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,63],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[52,69]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[52,70],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[52,76]},[]],"tag":"TypeVar","contents":"subrow"}]}]}]}]}]],"edClassConstraints":[{"constraintAnn":[{"start":[51,7],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[51,40]},[]],"constraintClass":[["Data","Semiring"],"SemiringRecord"],"constraintArgs":[{"annotation":[{"start":[51,22],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[51,29]},[]],"tag":"TypeVar","contents":"rowlist"},{"annotation":[{"start":[51,30],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[51,33]},[]],"tag":"TypeVar","contents":"row"},{"annotation":[{"start":[51,34],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[51,40]},[]],"tag":"TypeVar","contents":"subrow"}],"constraintData":null}],"edFunctionalDependencies":[{"determiners":[0],"determined":[2]}]}},{"EDValue":{"edValueName":{"Ident":"subRecord"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["rowlist",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["row",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["subrow",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["Data","Ring"],"RingRecord"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"rowlist"},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"row"},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"subrow"}],"constraintData":null},{"annotation":[{"start":[52,16],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[52,76]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,16],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[52,76]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,32],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[52,34]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[52,16],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[52,31]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,16],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[52,23]},[]],"tag":"TypeConstructor","contents":[["Type","Data","RowList"],"RLProxy"]},{"annotation":[{"start":[52,24],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[52,31]},[]],"tag":"TypeVar","contents":"rowlist"}]}]},{"annotation":[{"start":[52,35],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[52,76]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,35],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[52,76]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,46],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[52,48]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[52,35],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[52,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,35],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[52,41]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[52,42],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[52,45]},[]],"tag":"TypeVar","contents":"row"}]}]},{"annotation":[{"start":[52,49],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[52,76]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,49],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[52,76]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,60],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[52,62]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[52,49],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[52,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,49],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[52,55]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[52,56],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[52,59]},[]],"tag":"TypeVar","contents":"row"}]}]},{"annotation":[{"start":[52,63],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[52,76]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,63],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[52,69]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[52,70],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[52,76]},[]],"tag":"TypeVar","contents":"subrow"}]}]}]}]}]},0]},1]},2]}}},{"EDInstance":{"edInstanceClassName":[["Data","Ring"],"Ring"],"edInstanceName":{"Ident":"ringInt"},"edInstanceTypes":[{"annotation":[{"start":[27,26],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[27,29]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Ring"],{"Ident":"ringInt"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Ring"],"Ring"],"edInstanceName":{"Ident":"ringNumber"},"edInstanceTypes":[{"annotation":[{"start":[30,29],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[30,35]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Ring"],{"Ident":"ringNumber"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Ring"],"Ring"],"edInstanceName":{"Ident":"ringUnit"},"edInstanceTypes":[{"annotation":[{"start":[33,27],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[33,31]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Ring"],{"Ident":"ringUnit"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Ring"],"Ring"],"edInstanceName":{"Ident":"ringFn"},"edInstanceTypes":[{"annotation":[{"start":[36,36],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[36,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,36],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[36,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,38],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[36,40]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[36,36],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[36,37]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[36,41],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[36,42]},[]],"tag":"TypeVar","contents":"b"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[36,20],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[36,26]},[]],"constraintClass":[["Data","Ring"],"Ring"],"constraintArgs":[{"annotation":[{"start":[36,25],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[36,26]},[]],"tag":"TypeVar","contents":"b"}],"constraintData":null}],"edInstanceChain":[[["Data","Ring"],{"Ident":"ringFn"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Ring"],"Ring"],"edInstanceName":{"Ident":"ringRecord"},"edInstanceTypes":[{"annotation":[{"start":[39,82],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[39,92]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[39,82],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[39,88]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[39,89],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[39,92]},[]],"tag":"TypeVar","contents":"row"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[39,25],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[39,46]},[]],"constraintClass":[["Prim","RowList"],"RowToList"],"constraintArgs":[{"annotation":[{"start":[39,38],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[39,41]},[]],"tag":"TypeVar","contents":"row"},{"annotation":[{"start":[39,42],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[39,46]},[]],"tag":"TypeVar","contents":"list"}],"constraintData":null},{"constraintAnn":[{"start":[39,48],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[39,71]},[]],"constraintClass":[["Data","Ring"],"RingRecord"],"constraintArgs":[{"annotation":[{"start":[39,59],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[39,63]},[]],"tag":"TypeVar","contents":"list"},{"annotation":[{"start":[39,64],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[39,67]},[]],"tag":"TypeVar","contents":"row"},{"annotation":[{"start":[39,68],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[39,71]},[]],"tag":"TypeVar","contents":"row"}],"constraintData":null}],"edInstanceChain":[[["Data","Ring"],{"Ident":"ringRecord"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Ring"],"RingRecord"],"edInstanceName":{"Ident":"ringRecordNil"},"edInstanceTypes":[{"annotation":[{"start":[54,38],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[54,44]},[]],"tag":"TypeConstructor","contents":[["Prim","RowList"],"Nil"]},{"annotation":[{"start":[54,45],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[54,48]},[]],"tag":"TypeVar","contents":"row"},{"annotation":[{"start":[54,50],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[54,51]},[]],"tag":"REmpty"}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Ring"],{"Ident":"ringRecordNil"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Ring"],"RingRecord"],"edInstanceName":{"Ident":"ringRecordCons"},"edInstanceTypes":[{"annotation":[{"start":[63,20],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[63,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[63,20],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[63,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[63,20],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[63,31]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[63,20],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[63,27]},[]],"tag":"TypeConstructor","contents":[["Prim","RowList"],"Cons"]},{"annotation":[{"start":[63,28],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[63,31]},[]],"tag":"TypeVar","contents":"key"}]},{"annotation":[{"start":[63,32],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[63,37]},[]],"tag":"TypeVar","contents":"focus"}]},{"annotation":[{"start":[63,38],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[63,49]},[]],"tag":"TypeVar","contents":"rowlistTail"}]},{"annotation":[{"start":[63,51],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[63,54]},[]],"tag":"TypeVar","contents":"row"},{"annotation":[{"start":[63,55],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[63,61]},[]],"tag":"TypeVar","contents":"subrow"}],"edInstanceConstraints":[{"constraintAnn":[{"start":[58,10],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[58,22]},[]],"constraintClass":[["Data","Symbol"],"IsSymbol"],"constraintArgs":[{"annotation":[{"start":[58,19],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[58,22]},[]],"tag":"TypeVar","contents":"key"}],"constraintData":null},{"constraintAnn":[{"start":[59,10],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[59,46]},[]],"constraintClass":[["Prim","Row"],"Cons"],"constraintArgs":[{"annotation":[{"start":[59,19],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[59,22]},[]],"tag":"TypeVar","contents":"key"},{"annotation":[{"start":[59,23],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[59,28]},[]],"tag":"TypeVar","contents":"focus"},{"annotation":[{"start":[59,29],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[59,39]},[]],"tag":"TypeVar","contents":"subrowTail"},{"annotation":[{"start":[59,40],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[59,46]},[]],"tag":"TypeVar","contents":"subrow"}],"constraintData":null},{"constraintAnn":[{"start":[60,10],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[60,47]},[]],"constraintClass":[["Data","Ring"],"RingRecord"],"constraintArgs":[{"annotation":[{"start":[60,21],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[60,32]},[]],"tag":"TypeVar","contents":"rowlistTail"},{"annotation":[{"start":[60,33],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[60,36]},[]],"tag":"TypeVar","contents":"row"},{"annotation":[{"start":[60,37],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[60,47]},[]],"tag":"TypeVar","contents":"subrowTail"}],"constraintData":null},{"constraintAnn":[{"start":[61,10],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[61,20]},[]],"constraintClass":[["Data","Ring"],"Ring"],"constraintArgs":[{"annotation":[{"start":[61,15],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[61,20]},[]],"tag":"TypeVar","contents":"focus"}],"constraintData":null}],"edInstanceChain":[[["Data","Ring"],{"Ident":"ringRecordCons"}]],"edInstanceChainIndex":0}}],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs","end":[69,62]}}
diff --git a/tests/purs/publish/basic-example/output/Data.Semigroup.First/docs.json b/tests/purs/publish/basic-example/output/Data.Semigroup.First/docs.json
--- a/tests/purs/publish/basic-example/output/Data.Semigroup.First/docs.json
+++ b/tests/purs/publish/basic-example/output/Data.Semigroup.First/docs.json
@@ -1,1 +1,1 @@
-{"reExports":[],"name":"Data.Semigroup.First","comments":null,"declarations":[{"children":[{"comments":null,"title":"First","info":{"arguments":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"declType":"dataConstructor"},"sourceSpan":null},{"comments":null,"title":"eqFirst","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Eq"],"Eq"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup","First"],"First"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[15,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/First.purs","end":[15,56]}},{"comments":null,"title":"eq1First","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Eq"],"Eq1"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup","First"],"First"]}]}},"sourceSpan":{"start":[16,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/First.purs","end":[16,38]}},{"comments":null,"title":"ordFirst","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord"],"Ord"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup","First"],"First"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[18,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/First.purs","end":[18,59]}},{"comments":null,"title":"ord1First","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord"],"Ord1"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup","First"],"First"]}]}},"sourceSpan":{"start":[19,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/First.purs","end":[19,40]}},{"comments":null,"title":"boundedFirst","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Bounded"],"Bounded"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Bounded"],"Bounded"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup","First"],"First"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[21,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/First.purs","end":[21,71]}},{"comments":null,"title":"showFirst","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Show"],"Show"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Show"],"Show"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup","First"],"First"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[23,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/First.purs","end":[24,46]}},{"comments":null,"title":"functorFirst","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Functor"],"Functor"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup","First"],"First"]}]}},"sourceSpan":{"start":[26,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/First.purs","end":[26,46]}},{"comments":null,"title":"applyFirst","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Apply"],"Apply"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup","First"],"First"]}]}},"sourceSpan":{"start":[28,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/First.purs","end":[29,42]}},{"comments":null,"title":"applicativeFirst","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Applicative"],"Applicative"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup","First"],"First"]}]}},"sourceSpan":{"start":[31,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/First.purs","end":[32,15]}},{"comments":null,"title":"bindFirst","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Bind"],"Bind"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup","First"],"First"]}]}},"sourceSpan":{"start":[34,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/First.purs","end":[35,25]}},{"comments":null,"title":"monadFirst","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Monad"],"Monad"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup","First"],"First"]}]}},"sourceSpan":{"start":[37,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/First.purs","end":[37,35]}},{"comments":null,"title":"semigroupFirst","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup"],"Semigroup"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup","First"],"First"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[39,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/First.purs","end":[40,17]}}],"comments":"Semigroup where `append` always takes the first option.\n\n``` purescript\nFirst x <> First y == First x\n```\n","title":"First","info":{"declType":"data","dataDeclType":"newtype","typeArguments":[["a",null]]},"sourceSpan":{"start":[13,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/First.purs","end":[13,26]}}]}
+{"comments":null,"declarations":[{"children":[{"comments":null,"info":{"arguments":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"declType":"dataConstructor"},"sourceSpan":{"end":[13,26],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/First.purs","start":[13,17]},"title":"First"},{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","Eq"],"Eq"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Eq"],"Eq"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Semigroup","First"],"First"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[15,56],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/First.purs","start":[15,1]},"title":"eqFirst"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Eq"],"Eq1"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Semigroup","First"],"First"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[16,38],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/First.purs","start":[16,1]},"title":"eq1First"},{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","Ord"],"Ord"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Ord"],"Ord"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Semigroup","First"],"First"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[18,59],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/First.purs","start":[18,1]},"title":"ordFirst"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Ord"],"Ord1"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Semigroup","First"],"First"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[19,40],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/First.purs","start":[19,1]},"title":"ord1First"},{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","Bounded"],"Bounded"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Bounded"],"Bounded"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Semigroup","First"],"First"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[21,71],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/First.purs","start":[21,1]},"title":"boundedFirst"},{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","Show"],"Show"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Show"],"Show"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Semigroup","First"],"First"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[24,46],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/First.purs","start":[23,1]},"title":"showFirst"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Functor"],"Functor"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Semigroup","First"],"First"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[26,46],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/First.purs","start":[26,1]},"title":"functorFirst"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Control","Apply"],"Apply"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Semigroup","First"],"First"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[29,42],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/First.purs","start":[28,1]},"title":"applyFirst"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Control","Applicative"],"Applicative"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Semigroup","First"],"First"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[32,15],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/First.purs","start":[31,1]},"title":"applicativeFirst"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Control","Bind"],"Bind"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Semigroup","First"],"First"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[35,25],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/First.purs","start":[34,1]},"title":"bindFirst"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Control","Monad"],"Monad"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Semigroup","First"],"First"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[37,35],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/First.purs","start":[37,1]},"title":"monadFirst"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Semigroup"],"Semigroup"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Semigroup","First"],"First"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[40,17],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/First.purs","start":[39,1]},"title":"semigroupFirst"}],"comments":"Semigroup where `append` always takes the first option.\n\n``` purescript\nFirst x <> First y == First x\n```\n","info":{"dataDeclType":"newtype","declType":"data","roles":["Representational"],"typeArguments":[["a",null]]},"kind":null,"sourceSpan":{"end":[13,26],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/First.purs","start":[13,1]},"title":"First"}],"name":"Data.Semigroup.First","reExports":[]}
diff --git a/tests/purs/publish/basic-example/output/Data.Semigroup.First/externs.json b/tests/purs/publish/basic-example/output/Data.Semigroup.First/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.Semigroup.First/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Data","Semigroup","First"],"efExports":[{"TypeRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/First.purs","end":[40,17]},"First",["First"]]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"eqFirst"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"eq1First"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"ordFirst"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"ord1First"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"boundedFirst"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"showFirst"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"functorFirst"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"applyFirst"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"applicativeFirst"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"bindFirst"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"monadFirst"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"semigroupFirst"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Prelude"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Data","Eq"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[5,17],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/First.purs","end":[5,26]},"Eq1"]}]},"eiImportedAs":null},{"eiModule":["Data","Ord"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[6,18],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/First.purs","end":[6,28]},"Ord1"]}]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDType":{"edTypeName":"First","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[13,25],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/First.purs","end":[13,26]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},"edTypeDeclarationKind":{"DataType":{"args":[["a",{"annotation":[{"start":[13,25],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/First.purs","end":[13,26]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]],"ctors":[["First",[{"annotation":[{"start":[13,25],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/First.purs","end":[13,26]},[]],"tag":"TypeVar","contents":"a"}]]]}}}},{"EDDataConstructor":{"edDataCtorName":"First","edDataCtorOrigin":"newtype","edDataCtorTypeCtor":"First","edDataCtorType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[13,25],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/First.purs","end":[13,26]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Semigroup","First"],"First"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"a"}]}]},null]},"edDataCtorFields":[{"Ident":"value0"}]}},{"EDInstance":{"edInstanceClassName":[["Data","Eq"],"Eq"],"edInstanceName":{"Ident":"eqFirst"},"edInstanceTypes":[{"annotation":[{"start":[15,48],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/First.purs","end":[15,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[15,48],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/First.purs","end":[15,53]},[]],"tag":"TypeConstructor","contents":[["Data","Semigroup","First"],"First"]},{"annotation":[{"start":[15,54],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/First.purs","end":[15,55]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[15,36],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/First.purs","end":[15,40]},[]],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[{"start":[15,39],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/First.purs","end":[15,40]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","Semigroup","First"],{"Ident":"eqFirst"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Eq"],"Eq1"],"edInstanceName":{"Ident":"eq1First"},"edInstanceTypes":[{"annotation":[{"start":[16,33],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/First.purs","end":[16,38]},[]],"tag":"TypeConstructor","contents":[["Data","Semigroup","First"],"First"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Semigroup","First"],{"Ident":"eq1First"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Ord"],"Ord"],"edInstanceName":{"Ident":"ordFirst"},"edInstanceTypes":[{"annotation":[{"start":[18,51],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/First.purs","end":[18,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,51],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/First.purs","end":[18,56]},[]],"tag":"TypeConstructor","contents":[["Data","Semigroup","First"],"First"]},{"annotation":[{"start":[18,57],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/First.purs","end":[18,58]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[18,37],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/First.purs","end":[18,42]},[]],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[{"start":[18,41],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/First.purs","end":[18,42]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","Semigroup","First"],{"Ident":"ordFirst"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Ord"],"Ord1"],"edInstanceName":{"Ident":"ord1First"},"edInstanceTypes":[{"annotation":[{"start":[19,35],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/First.purs","end":[19,40]},[]],"tag":"TypeConstructor","contents":[["Data","Semigroup","First"],"First"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Semigroup","First"],{"Ident":"ord1First"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Bounded"],"Bounded"],"edInstanceName":{"Ident":"boundedFirst"},"edInstanceTypes":[{"annotation":[{"start":[21,63],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/First.purs","end":[21,70]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[21,63],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/First.purs","end":[21,68]},[]],"tag":"TypeConstructor","contents":[["Data","Semigroup","First"],"First"]},{"annotation":[{"start":[21,69],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/First.purs","end":[21,70]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[21,41],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/First.purs","end":[21,50]},[]],"constraintClass":[["Data","Bounded"],"Bounded"],"constraintArgs":[{"annotation":[{"start":[21,49],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/First.purs","end":[21,50]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","Semigroup","First"],{"Ident":"boundedFirst"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Show"],"Show"],"edInstanceName":{"Ident":"showFirst"},"edInstanceTypes":[{"annotation":[{"start":[23,39],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/First.purs","end":[23,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[23,39],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/First.purs","end":[23,44]},[]],"tag":"TypeConstructor","contents":[["Data","Semigroup","First"],"First"]},{"annotation":[{"start":[23,45],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/First.purs","end":[23,46]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[23,23],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/First.purs","end":[23,29]},[]],"constraintClass":[["Data","Show"],"Show"],"constraintArgs":[{"annotation":[{"start":[23,28],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/First.purs","end":[23,29]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","Semigroup","First"],{"Ident":"showFirst"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Functor"],"Functor"],"edInstanceName":{"Ident":"functorFirst"},"edInstanceTypes":[{"annotation":[{"start":[26,41],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/First.purs","end":[26,46]},[]],"tag":"TypeConstructor","contents":[["Data","Semigroup","First"],"First"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Semigroup","First"],{"Ident":"functorFirst"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Apply"],"Apply"],"edInstanceName":{"Ident":"applyFirst"},"edInstanceTypes":[{"annotation":[{"start":[28,30],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/First.purs","end":[28,35]},[]],"tag":"TypeConstructor","contents":[["Data","Semigroup","First"],"First"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Semigroup","First"],{"Ident":"applyFirst"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Applicative"],"Applicative"],"edInstanceName":{"Ident":"applicativeFirst"},"edInstanceTypes":[{"annotation":[{"start":[31,42],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/First.purs","end":[31,47]},[]],"tag":"TypeConstructor","contents":[["Data","Semigroup","First"],"First"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Semigroup","First"],{"Ident":"applicativeFirst"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Bind"],"Bind"],"edInstanceName":{"Ident":"bindFirst"},"edInstanceTypes":[{"annotation":[{"start":[34,28],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/First.purs","end":[34,33]},[]],"tag":"TypeConstructor","contents":[["Data","Semigroup","First"],"First"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Semigroup","First"],{"Ident":"bindFirst"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Monad"],"Monad"],"edInstanceName":{"Ident":"monadFirst"},"edInstanceTypes":[{"annotation":[{"start":[37,30],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/First.purs","end":[37,35]},[]],"tag":"TypeConstructor","contents":[["Data","Semigroup","First"],"First"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Semigroup","First"],{"Ident":"monadFirst"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Semigroup"],"Semigroup"],"edInstanceName":{"Ident":"semigroupFirst"},"edInstanceTypes":[{"annotation":[{"start":[39,39],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/First.purs","end":[39,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[39,39],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/First.purs","end":[39,44]},[]],"tag":"TypeConstructor","contents":[["Data","Semigroup","First"],"First"]},{"annotation":[{"start":[39,45],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/First.purs","end":[39,46]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Semigroup","First"],{"Ident":"semigroupFirst"}]],"edInstanceChainIndex":0}}],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/First.purs","end":[40,17]}}
diff --git a/tests/purs/publish/basic-example/output/Data.Semigroup.Foldable/docs.json b/tests/purs/publish/basic-example/output/Data.Semigroup.Foldable/docs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.Semigroup.Foldable/docs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"reExports":[],"name":"Data.Semigroup.Foldable","comments":null,"declarations":[{"children":[{"comments":null,"title":"foldMap1","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Semigroup"],"Semigroup"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"m"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"t"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeVar","contents":"m"}]}]}]},null]},null]}},"sourceSpan":{"start":[37,3],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[37,62]}},{"comments":null,"title":"fold1","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Semigroup"],"Semigroup"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"t"},{"annotation":[],"tag":"TypeVar","contents":"m"}]}]},{"annotation":[],"tag":"TypeVar","contents":"m"}]}]},null]}},"sourceSpan":{"start":[38,3],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[38,45]}},{"comments":null,"title":"foldableDual","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup","Foldable"],"Foldable1"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Dual"],"Dual"]}]}},"sourceSpan":{"start":[48,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[50,23]}},{"comments":null,"title":"foldableMultiplicative","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup","Foldable"],"Foldable1"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Multiplicative"],"Multiplicative"]}]}},"sourceSpan":{"start":[52,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[54,23]}}],"comments":"`Foldable1` represents data structures with a minimum of one element that can be _folded_.\n\n- `fold1` folds a structure using a `Semigroup` instance\n- `foldMap1` folds a structure by accumulating values in a `Semigroup`\n\nDefault implementations are provided by the following functions:\n\n- `fold1Default`\n- `foldMap1Default`\n\nNote: some combinations of the default implementations are unsafe to\nuse together - causing a non-terminating mutually recursive cycle.\nThese combinations are documented per function.\n","title":"Foldable1","info":{"fundeps":[],"arguments":[["t",null]],"declType":"typeClass","superclasses":[{"constraintAnn":[],"constraintClass":[["Data","Foldable"],"Foldable"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"t"}],"constraintData":null}]},"sourceSpan":{"start":[36,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[38,45]}},{"children":[],"comments":"Traverse a data structure, performing some effects encoded by an\n`Apply` instance at each value, ignoring the final result.\n","title":"traverse1_","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["t",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Semigroup","Foldable"],"Foldable1"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"t"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Apply"],"Apply"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"t"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}]}]}]},null]},null]},null]},null]}},"sourceSpan":{"start":[66,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[66,84]}},{"children":[],"comments":"A version of `traverse1_` with its arguments flipped.\n\nThis can be useful when running an action written using do notation\nfor every element in a data structure:\n","title":"for1_","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["t",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Semigroup","Foldable"],"Foldable1"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"t"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Apply"],"Apply"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"t"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}]}]}]},null]},null]},null]},null]}},"sourceSpan":{"start":[73,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[73,79]}},{"children":[],"comments":"Perform all of the effects in some data structure in the order\ngiven by the `Foldable1` instance, ignoring the final result.\n","title":"sequence1_","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["t",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Semigroup","Foldable"],"Foldable1"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"t"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Apply"],"Apply"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"t"},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}]}]},null]},null]},null]}},"sourceSpan":{"start":[78,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[78,72]}},{"children":[],"comments":"A default implementation of `foldMap1` using `fold1`.\n","title":"foldMap1Default","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ForAll","contents":["t",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Semigroup","Foldable"],"Foldable1"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"t"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Functor"],"Functor"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"t"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Semigroup"],"Semigroup"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"m"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"t"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeVar","contents":"m"}]}]}]}]}]},null]},null]},null]}},"sourceSpan":{"start":[45,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[45,97]}},{"children":[],"comments":"A default implementation of `fold1` using `foldMap1`.\n","title":"fold1Default","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ForAll","contents":["t",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Semigroup","Foldable"],"Foldable1"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"t"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Semigroup"],"Semigroup"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"t"},{"annotation":[],"tag":"TypeVar","contents":"m"}]}]},{"annotation":[],"tag":"TypeVar","contents":"m"}]}]}]},null]},null]}},"sourceSpan":{"start":[41,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[41,67]}},{"children":[],"comments":"Fold a data structure using a `Semigroup` instance,\ncombining adjacent elements using the specified separator.\n","title":"intercalate","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Semigroup","Foldable"],"Foldable1"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Semigroup"],"Semigroup"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"m"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"m"}]}]},{"annotation":[],"tag":"TypeVar","contents":"m"}]}]}]}]},null]},null]}},"sourceSpan":{"start":[98,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[98,71]}},{"children":[],"comments":"Fold a data structure, accumulating values in some `Semigroup`,\ncombining adjacent elements using the specified separator.\n","title":"intercalateMap","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Semigroup","Foldable"],"Foldable1"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Semigroup"],"Semigroup"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"m"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"m"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeVar","contents":"m"}]}]}]}]}]},null]},null]},null]}},"sourceSpan":{"start":[103,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[107,31]}}]}
diff --git a/tests/purs/publish/basic-example/output/Data.Semigroup.Foldable/externs.json b/tests/purs/publish/basic-example/output/Data.Semigroup.Foldable/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.Semigroup.Foldable/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Data","Semigroup","Foldable"],"efExports":[{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[109,58]},"Foldable1"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[109,58]},{"Ident":"foldMap1"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[109,58]},{"Ident":"fold1"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[109,58]},{"Ident":"traverse1_"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[109,58]},{"Ident":"for1_"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[109,58]},{"Ident":"sequence1_"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[109,58]},{"Ident":"foldMap1Default"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[109,58]},{"Ident":"fold1Default"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[109,58]},{"Ident":"intercalate"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[109,58]},{"Ident":"intercalateMap"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"foldableDual"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"foldableMultiplicative"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Prelude"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Data","Foldable"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[16,23],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[16,37]},"Foldable"]}]},"eiImportedAs":null},{"eiModule":["Data","Monoid","Dual"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[17,26],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[17,34]},"Dual",null]}]},"eiImportedAs":null},{"eiModule":["Data","Monoid","Multiplicative"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[18,36],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[18,54]},"Multiplicative",null]}]},"eiImportedAs":null},{"eiModule":["Data","Newtype"],"eiImportType":{"Explicit":[{"ValueRef":[{"start":[19,22],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[19,25]},{"Ident":"ala"}]}]},"eiImportedAs":null},{"eiModule":["Data","Ord","Max"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[20,22],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[20,29]},"Max",null]}]},"eiImportedAs":null},{"eiModule":["Data","Ord","Min"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[21,22],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[21,29]},"Min",null]}]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDType":{"edTypeName":"Foldable1","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[37,54],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[37,57]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[37,45],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[37,47]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[37,58],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[37,60]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"Foldable1","edTypeSynonymArguments":[["t",null]],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["foldMap1",{"annotation":[{"start":[37,15],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[37,62]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[37,22],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[37,62]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[37,27],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[37,62]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[37,27],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[37,38]},[]],"constraintClass":[["Data","Semigroup"],"Semigroup"],"constraintArgs":[{"annotation":[{"start":[37,37],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[37,38]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[37,42],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[37,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[37,42],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[37,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[37,51],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[37,53]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[37,43],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[37,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[37,43],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[37,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[37,45],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[37,47]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[37,43],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[37,44]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[37,48],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[37,49]},[]],"tag":"TypeVar","contents":"m"}]}]},{"annotation":[{"start":[37,54],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[37,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[37,54],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[37,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[37,58],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[37,60]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[37,54],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[37,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[37,54],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[37,55]},[]],"tag":"TypeVar","contents":"t"},{"annotation":[{"start":[37,56],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[37,57]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[37,61],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[37,62]},[]],"tag":"TypeVar","contents":"m"}]}]}]},null]},null]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["fold1",{"annotation":[{"start":[38,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[38,45]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[38,22],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[38,45]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[38,22],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[38,33]},[]],"constraintClass":[["Data","Semigroup"],"Semigroup"],"constraintArgs":[{"annotation":[{"start":[38,32],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[38,33]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[38,37],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[38,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[38,37],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[38,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[38,41],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[38,43]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[38,37],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[38,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[38,37],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[38,38]},[]],"tag":"TypeVar","contents":"t"},{"annotation":[{"start":[38,39],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[38,40]},[]],"tag":"TypeVar","contents":"m"}]}]},{"annotation":[{"start":[38,44],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[38,45]},[]],"tag":"TypeVar","contents":"m"}]}]},null]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["Foldable0",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Foldable"],"Foldable"]},{"annotation":[{"start":[36,16],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[36,17]},[]],"tag":"TypeVar","contents":"t"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]}]}]}}},{"EDClass":{"edClassName":"Foldable1","edClassTypeArguments":[["t",null]],"edClassMembers":[[{"Ident":"foldMap1"},{"annotation":[{"start":[37,15],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[37,62]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[37,22],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[37,62]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[37,27],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[37,62]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[37,27],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[37,38]},[]],"constraintClass":[["Data","Semigroup"],"Semigroup"],"constraintArgs":[{"annotation":[{"start":[37,37],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[37,38]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[37,42],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[37,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[37,42],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[37,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[37,51],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[37,53]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[37,43],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[37,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[37,43],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[37,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[37,45],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[37,47]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[37,43],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[37,44]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[37,48],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[37,49]},[]],"tag":"TypeVar","contents":"m"}]}]},{"annotation":[{"start":[37,54],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[37,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[37,54],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[37,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[37,58],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[37,60]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[37,54],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[37,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[37,54],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[37,55]},[]],"tag":"TypeVar","contents":"t"},{"annotation":[{"start":[37,56],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[37,57]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[37,61],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[37,62]},[]],"tag":"TypeVar","contents":"m"}]}]}]},null]},null]}],[{"Ident":"fold1"},{"annotation":[{"start":[38,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[38,45]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[38,22],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[38,45]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[38,22],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[38,33]},[]],"constraintClass":[["Data","Semigroup"],"Semigroup"],"constraintArgs":[{"annotation":[{"start":[38,32],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[38,33]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[38,37],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[38,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[38,37],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[38,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[38,41],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[38,43]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[38,37],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[38,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[38,37],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[38,38]},[]],"tag":"TypeVar","contents":"t"},{"annotation":[{"start":[38,39],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[38,40]},[]],"tag":"TypeVar","contents":"m"}]}]},{"annotation":[{"start":[38,44],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[38,45]},[]],"tag":"TypeVar","contents":"m"}]}]},null]}]],"edClassConstraints":[{"constraintAnn":[{"start":[36,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[36,17]},[]],"constraintClass":[["Data","Foldable"],"Foldable"],"constraintArgs":[{"annotation":[{"start":[36,16],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[36,17]},[]],"tag":"TypeVar","contents":"t"}],"constraintData":null}],"edFunctionalDependencies":[]}},{"EDValue":{"edValueName":{"Ident":"foldMap1"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["t",{"annotation":[{"start":[37,15],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[37,62]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[37,22],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[37,62]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["Data","Semigroup","Foldable"],"Foldable1"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"t"}],"constraintData":null},{"annotation":[{"start":[37,27],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[37,62]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[37,27],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[37,38]},[]],"constraintClass":[["Data","Semigroup"],"Semigroup"],"constraintArgs":[{"annotation":[{"start":[37,37],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[37,38]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[37,42],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[37,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[37,42],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[37,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[37,51],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[37,53]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[37,43],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[37,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[37,43],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[37,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[37,45],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[37,47]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[37,43],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[37,44]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[37,48],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[37,49]},[]],"tag":"TypeVar","contents":"m"}]}]},{"annotation":[{"start":[37,54],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[37,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[37,54],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[37,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[37,58],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[37,60]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[37,54],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[37,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[37,54],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[37,55]},[]],"tag":"TypeVar","contents":"t"},{"annotation":[{"start":[37,56],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[37,57]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[37,61],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[37,62]},[]],"tag":"TypeVar","contents":"m"}]}]}]}]},13]},14]},15]}}},{"EDValue":{"edValueName":{"Ident":"fold1"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["t",{"annotation":[{"start":[38,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[38,45]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["Data","Semigroup","Foldable"],"Foldable1"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"t"}],"constraintData":null},{"annotation":[{"start":[38,22],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[38,45]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[38,22],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[38,33]},[]],"constraintClass":[["Data","Semigroup"],"Semigroup"],"constraintArgs":[{"annotation":[{"start":[38,32],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[38,33]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[38,37],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[38,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[38,37],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[38,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[38,41],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[38,43]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[38,37],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[38,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[38,37],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[38,38]},[]],"tag":"TypeVar","contents":"t"},{"annotation":[{"start":[38,39],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[38,40]},[]],"tag":"TypeVar","contents":"m"}]}]},{"annotation":[{"start":[38,44],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[38,45]},[]],"tag":"TypeVar","contents":"m"}]}]}]},89]},90]}}},{"EDValue":{"edValueName":{"Ident":"traverse1_"},"edValueType":{"annotation":[{"start":[66,15],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[66,84]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[66,22],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[66,84]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[66,22],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[66,84]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[66,22],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[66,84]},[]],"tag":"ForAll","contents":["t",{"annotation":[{"start":[66,31],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[66,84]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[66,31],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[66,42]},[]],"constraintClass":[["Data","Semigroup","Foldable"],"Foldable1"],"constraintArgs":[{"annotation":[{"start":[66,41],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[66,42]},[]],"tag":"TypeVar","contents":"t"}],"constraintData":null},{"annotation":[{"start":[66,46],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[66,84]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[66,46],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[66,53]},[]],"constraintClass":[["Control","Apply"],"Apply"],"constraintArgs":[{"annotation":[{"start":[66,52],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[66,53]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[66,57],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[66,84]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[66,57],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[66,84]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[66,68],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[66,70]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[66,58],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[66,66]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[66,58],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[66,66]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[66,60],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[66,62]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[66,58],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[66,59]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[66,63],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[66,66]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[66,63],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[66,64]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[66,65],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[66,66]},[]],"tag":"TypeVar","contents":"b"}]}]}]},{"annotation":[{"start":[66,71],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[66,84]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[66,71],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[66,84]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[66,75],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[66,77]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[66,71],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[66,74]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[66,71],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[66,72]},[]],"tag":"TypeVar","contents":"t"},{"annotation":[{"start":[66,73],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[66,74]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[66,78],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[66,84]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[66,78],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[66,79]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[66,80],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[66,84]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}]}]}]},37]},38]},39]},40]}}},{"EDValue":{"edValueName":{"Ident":"for1_"},"edValueType":{"annotation":[{"start":[73,10],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[73,79]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[73,17],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[73,79]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[73,17],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[73,79]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[73,17],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[73,79]},[]],"tag":"ForAll","contents":["t",{"annotation":[{"start":[73,26],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[73,79]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[73,26],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[73,37]},[]],"constraintClass":[["Data","Semigroup","Foldable"],"Foldable1"],"constraintArgs":[{"annotation":[{"start":[73,36],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[73,37]},[]],"tag":"TypeVar","contents":"t"}],"constraintData":null},{"annotation":[{"start":[73,41],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[73,79]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[73,41],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[73,48]},[]],"constraintClass":[["Control","Apply"],"Apply"],"constraintArgs":[{"annotation":[{"start":[73,47],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[73,48]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[73,52],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[73,79]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[73,52],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[73,79]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[73,56],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[73,58]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[73,52],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[73,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[73,52],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[73,53]},[]],"tag":"TypeVar","contents":"t"},{"annotation":[{"start":[73,54],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[73,55]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[73,59],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[73,79]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[73,59],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[73,79]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[73,70],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[73,72]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[73,60],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[73,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[73,60],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[73,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[73,62],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[73,64]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[73,60],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[73,61]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[73,65],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[73,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[73,65],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[73,66]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[73,67],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[73,68]},[]],"tag":"TypeVar","contents":"b"}]}]}]},{"annotation":[{"start":[73,73],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[73,79]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[73,73],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[73,74]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[73,75],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[73,79]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}]}]}]},47]},48]},49]},50]}}},{"EDValue":{"edValueName":{"Ident":"sequence1_"},"edValueType":{"annotation":[{"start":[78,15],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[78,72]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[78,22],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[78,72]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[78,22],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[78,72]},[]],"tag":"ForAll","contents":["t",{"annotation":[{"start":[78,29],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[78,72]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[78,29],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[78,40]},[]],"constraintClass":[["Data","Semigroup","Foldable"],"Foldable1"],"constraintArgs":[{"annotation":[{"start":[78,39],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[78,40]},[]],"tag":"TypeVar","contents":"t"}],"constraintData":null},{"annotation":[{"start":[78,44],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[78,72]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[78,44],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[78,51]},[]],"constraintClass":[["Control","Apply"],"Apply"],"constraintArgs":[{"annotation":[{"start":[78,50],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[78,51]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[78,55],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[78,72]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[78,55],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[78,72]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[78,63],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[78,65]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[78,55],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[78,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[78,55],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[78,56]},[]],"tag":"TypeVar","contents":"t"},{"annotation":[{"start":[78,58],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[78,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[78,58],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[78,59]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[78,60],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[78,61]},[]],"tag":"TypeVar","contents":"a"}]}]}]},{"annotation":[{"start":[78,66],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[78,72]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[78,66],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[78,67]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[78,68],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[78,72]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}]}]},55]},56]},57]}}},{"EDValue":{"edValueName":{"Ident":"foldMap1Default"},"edValueType":{"annotation":[{"start":[45,20],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[45,97]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[45,27],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[45,97]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[45,27],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[45,97]},[]],"tag":"ForAll","contents":["t",{"annotation":[{"start":[45,34],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[45,97]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[45,34],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[45,45]},[]],"constraintClass":[["Data","Semigroup","Foldable"],"Foldable1"],"constraintArgs":[{"annotation":[{"start":[45,44],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[45,45]},[]],"tag":"TypeVar","contents":"t"}],"constraintData":null},{"annotation":[{"start":[45,49],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[45,97]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[45,49],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[45,58]},[]],"constraintClass":[["Data","Functor"],"Functor"],"constraintArgs":[{"annotation":[{"start":[45,57],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[45,58]},[]],"tag":"TypeVar","contents":"t"}],"constraintData":null},{"annotation":[{"start":[45,62],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[45,97]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[45,62],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[45,73]},[]],"constraintClass":[["Data","Semigroup"],"Semigroup"],"constraintArgs":[{"annotation":[{"start":[45,72],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[45,73]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[45,77],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[45,97]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[45,77],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[45,97]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[45,86],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[45,88]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[45,78],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[45,84]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[45,78],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[45,84]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[45,80],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[45,82]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[45,78],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[45,79]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[45,83],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[45,84]},[]],"tag":"TypeVar","contents":"m"}]}]},{"annotation":[{"start":[45,89],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[45,97]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[45,89],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[45,97]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[45,93],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[45,95]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[45,89],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[45,92]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[45,89],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[45,90]},[]],"tag":"TypeVar","contents":"t"},{"annotation":[{"start":[45,91],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[45,92]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[45,96],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[45,97]},[]],"tag":"TypeVar","contents":"m"}]}]}]}]}]},91]},92]},93]}}},{"EDValue":{"edValueName":{"Ident":"fold1Default"},"edValueType":{"annotation":[{"start":[41,17],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[41,67]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[41,24],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[41,67]},[]],"tag":"ForAll","contents":["t",{"annotation":[{"start":[41,29],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[41,67]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[41,29],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[41,40]},[]],"constraintClass":[["Data","Semigroup","Foldable"],"Foldable1"],"constraintArgs":[{"annotation":[{"start":[41,39],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[41,40]},[]],"tag":"TypeVar","contents":"t"}],"constraintData":null},{"annotation":[{"start":[41,44],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[41,67]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[41,44],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[41,55]},[]],"constraintClass":[["Data","Semigroup"],"Semigroup"],"constraintArgs":[{"annotation":[{"start":[41,54],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[41,55]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[41,59],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[41,67]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[41,59],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[41,67]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[41,63],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[41,65]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[41,59],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[41,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[41,59],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[41,60]},[]],"tag":"TypeVar","contents":"t"},{"annotation":[{"start":[41,61],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[41,62]},[]],"tag":"TypeVar","contents":"m"}]}]},{"annotation":[{"start":[41,66],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[41,67]},[]],"tag":"TypeVar","contents":"m"}]}]}]},61]},62]}}},{"EDValue":{"edValueName":{"Ident":"intercalate"},"edValueType":{"annotation":[{"start":[98,16],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[98,71]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[98,23],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[98,71]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[98,28],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[98,71]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[98,28],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[98,39]},[]],"constraintClass":[["Data","Semigroup","Foldable"],"Foldable1"],"constraintArgs":[{"annotation":[{"start":[98,38],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[98,39]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[98,43],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[98,71]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[98,43],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[98,54]},[]],"constraintClass":[["Data","Semigroup"],"Semigroup"],"constraintArgs":[{"annotation":[{"start":[98,53],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[98,54]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[98,58],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[98,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[98,58],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[98,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[98,60],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[98,62]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[98,58],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[98,59]},[]],"tag":"TypeVar","contents":"m"}]},{"annotation":[{"start":[98,63],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[98,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[98,63],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[98,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[98,67],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[98,69]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[98,63],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[98,66]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[98,63],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[98,64]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[98,65],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[98,66]},[]],"tag":"TypeVar","contents":"m"}]}]},{"annotation":[{"start":[98,70],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[98,71]},[]],"tag":"TypeVar","contents":"m"}]}]}]}]},23]},24]}}},{"EDValue":{"edValueName":{"Ident":"intercalateMap"},"edValueType":{"annotation":[{"start":[104,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[107,31]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[104,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[107,31]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[104,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[107,31]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[105,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[107,31]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[105,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[105,17]},[]],"constraintClass":[["Data","Semigroup","Foldable"],"Foldable1"],"constraintArgs":[{"annotation":[{"start":[105,16],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[105,17]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[106,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[107,31]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[106,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[106,17]},[]],"constraintClass":[["Data","Semigroup"],"Semigroup"],"constraintArgs":[{"annotation":[{"start":[106,16],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[106,17]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[107,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[107,31]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[107,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[107,31]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[107,8],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[107,10]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[107,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[107,7]},[]],"tag":"TypeVar","contents":"m"}]},{"annotation":[{"start":[107,11],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[107,31]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[107,11],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[107,31]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[107,20],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[107,22]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[107,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[107,18]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[107,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[107,18]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[107,14],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[107,16]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[107,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[107,13]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[107,17],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[107,18]},[]],"tag":"TypeVar","contents":"m"}]}]},{"annotation":[{"start":[107,23],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[107,31]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[107,23],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[107,31]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[107,27],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[107,29]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[107,23],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[107,26]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[107,23],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[107,24]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[107,25],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[107,26]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[107,30],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[107,31]},[]],"tag":"TypeVar","contents":"m"}]}]}]}]}]},16]},17]},18]}}},{"EDInstance":{"edInstanceClassName":[["Data","Semigroup","Foldable"],"Foldable1"],"edInstanceName":{"Ident":"foldableDual"},"edInstanceTypes":[{"annotation":[{"start":[48,36],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[48,40]},[]],"tag":"TypeConstructor","contents":[["Data","Monoid","Dual"],"Dual"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Semigroup","Foldable"],{"Ident":"foldableDual"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Semigroup","Foldable"],"Foldable1"],"edInstanceName":{"Ident":"foldableMultiplicative"},"edInstanceTypes":[{"annotation":[{"start":[52,46],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[52,60]},[]],"tag":"TypeConstructor","contents":[["Data","Monoid","Multiplicative"],"Multiplicative"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Semigroup","Foldable"],{"Ident":"foldableMultiplicative"}]],"edInstanceChainIndex":0}}],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Foldable.purs","end":[109,58]}}
diff --git a/tests/purs/publish/basic-example/output/Data.Semigroup.Generic/docs.json b/tests/purs/publish/basic-example/output/Data.Semigroup.Generic/docs.json
new file mode 100644
--- /dev/null
+++ b/tests/purs/publish/basic-example/output/Data.Semigroup.Generic/docs.json
@@ -0,0 +1,1 @@
+{"comments":null,"declarations":[{"children":[{"comments":null,"info":{"declType":"typeClassMember","type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[11,32],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/Generic.purs","start":[11,3]},"title":"genericAppend'"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Semigroup","Generic"],"GenericSemigroup"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Generic","Rep"],"NoConstructors"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[14,25],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/Generic.purs","start":[13,1]},"title":"genericSemigroupNoConstructors"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Semigroup","Generic"],"GenericSemigroup"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Generic","Rep"],"NoArguments"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[17,25],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/Generic.purs","start":[16,1]},"title":"genericSemigroupNoArguments"},{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","Semigroup","Generic"],"GenericSemigroup"],"constraintData":null,"constraintKindArgs":[]},{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"b","tag":"TypeVar"}],"constraintClass":[["Data","Semigroup","Generic"],"GenericSemigroup"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Semigroup","Generic"],"GenericSemigroup"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Generic","Rep"],"Product"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[21,58],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/Generic.purs","start":[19,1]},"title":"genericSemigroupProduct"},{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","Semigroup","Generic"],"GenericSemigroup"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Semigroup","Generic"],"GenericSemigroup"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Generic","Rep"],"Constructor"],"tag":"TypeConstructor"},{"annotation":[],"contents":"name","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[24,88],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/Generic.purs","start":[23,1]},"title":"genericSemigroupConstructor"},{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","Semigroup"],"Semigroup"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Semigroup","Generic"],"GenericSemigroup"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Generic","Rep"],"Argument"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[27,71],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/Generic.purs","start":[26,1]},"title":"genericSemigroupArgument"}],"comments":null,"info":{"arguments":[["a",null]],"declType":"typeClass","fundeps":[],"superclasses":[]},"kind":null,"sourceSpan":{"end":[11,32],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/Generic.purs","start":[10,1]},"title":"GenericSemigroup"},{"children":[],"comments":"A `Generic` implementation of the `append` member from the `Semigroup` type class.\n","info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"rep","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"},{"annotation":[],"contents":"rep","tag":"TypeVar"}],"constraintClass":[["Data","Generic","Rep"],"Generic"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"rep","tag":"TypeVar"}],"constraintClass":[["Data","Semigroup","Generic"],"GenericSemigroup"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"ConstrainedType"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[30,84],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/Generic.purs","start":[30,1]},"title":"genericAppend"}],"name":"Data.Semigroup.Generic","reExports":[]}
diff --git a/tests/purs/publish/basic-example/output/Data.Semigroup.Last/docs.json b/tests/purs/publish/basic-example/output/Data.Semigroup.Last/docs.json
--- a/tests/purs/publish/basic-example/output/Data.Semigroup.Last/docs.json
+++ b/tests/purs/publish/basic-example/output/Data.Semigroup.Last/docs.json
@@ -1,1 +1,1 @@
-{"reExports":[],"name":"Data.Semigroup.Last","comments":null,"declarations":[{"children":[{"comments":null,"title":"Last","info":{"arguments":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"declType":"dataConstructor"},"sourceSpan":null},{"comments":null,"title":"eqLast","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Eq"],"Eq"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup","Last"],"Last"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[15,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/Last.purs","end":[15,54]}},{"comments":null,"title":"eq1Last","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Eq"],"Eq1"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup","Last"],"Last"]}]}},"sourceSpan":{"start":[16,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/Last.purs","end":[16,36]}},{"comments":null,"title":"ordLast","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord"],"Ord"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup","Last"],"Last"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[18,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/Last.purs","end":[18,57]}},{"comments":null,"title":"ord1Last","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord"],"Ord1"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup","Last"],"Last"]}]}},"sourceSpan":{"start":[19,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/Last.purs","end":[19,38]}},{"comments":null,"title":"boundedLast","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Bounded"],"Bounded"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Bounded"],"Bounded"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup","Last"],"Last"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[21,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/Last.purs","end":[21,69]}},{"comments":null,"title":"showLast","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Show"],"Show"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Show"],"Show"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup","Last"],"Last"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[23,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/Last.purs","end":[24,44]}},{"comments":null,"title":"functorLast","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Functor"],"Functor"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup","Last"],"Last"]}]}},"sourceSpan":{"start":[26,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/Last.purs","end":[26,44]}},{"comments":null,"title":"applyLast","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Apply"],"Apply"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup","Last"],"Last"]}]}},"sourceSpan":{"start":[28,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/Last.purs","end":[29,39]}},{"comments":null,"title":"applicativeLast","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Applicative"],"Applicative"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup","Last"],"Last"]}]}},"sourceSpan":{"start":[31,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/Last.purs","end":[32,14]}},{"comments":null,"title":"bindLast","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Bind"],"Bind"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup","Last"],"Last"]}]}},"sourceSpan":{"start":[34,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/Last.purs","end":[35,24]}},{"comments":null,"title":"monadLast","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Monad"],"Monad"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup","Last"],"Last"]}]}},"sourceSpan":{"start":[37,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/Last.purs","end":[37,33]}},{"comments":null,"title":"semigroupLast","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup"],"Semigroup"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup","Last"],"Last"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[39,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/Last.purs","end":[40,17]}}],"comments":"Semigroup where `append` always takes the second option.\n\n``` purescript\nLast x <> Last y == Last x\n```\n","title":"Last","info":{"declType":"data","dataDeclType":"newtype","typeArguments":[["a",null]]},"sourceSpan":{"start":[13,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/Last.purs","end":[13,24]}}]}
+{"comments":null,"declarations":[{"children":[{"comments":null,"info":{"arguments":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"declType":"dataConstructor"},"sourceSpan":{"end":[13,24],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/Last.purs","start":[13,16]},"title":"Last"},{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","Eq"],"Eq"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Eq"],"Eq"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Semigroup","Last"],"Last"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[15,54],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/Last.purs","start":[15,1]},"title":"eqLast"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Eq"],"Eq1"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Semigroup","Last"],"Last"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[16,36],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/Last.purs","start":[16,1]},"title":"eq1Last"},{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","Ord"],"Ord"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Ord"],"Ord"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Semigroup","Last"],"Last"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[18,57],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/Last.purs","start":[18,1]},"title":"ordLast"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Ord"],"Ord1"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Semigroup","Last"],"Last"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[19,38],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/Last.purs","start":[19,1]},"title":"ord1Last"},{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","Bounded"],"Bounded"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Bounded"],"Bounded"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Semigroup","Last"],"Last"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[21,69],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/Last.purs","start":[21,1]},"title":"boundedLast"},{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","Show"],"Show"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Show"],"Show"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Semigroup","Last"],"Last"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[24,44],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/Last.purs","start":[23,1]},"title":"showLast"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Functor"],"Functor"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Semigroup","Last"],"Last"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[26,44],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/Last.purs","start":[26,1]},"title":"functorLast"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Control","Apply"],"Apply"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Semigroup","Last"],"Last"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[29,39],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/Last.purs","start":[28,1]},"title":"applyLast"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Control","Applicative"],"Applicative"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Semigroup","Last"],"Last"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[32,14],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/Last.purs","start":[31,1]},"title":"applicativeLast"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Control","Bind"],"Bind"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Semigroup","Last"],"Last"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[35,24],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/Last.purs","start":[34,1]},"title":"bindLast"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Control","Monad"],"Monad"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Semigroup","Last"],"Last"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[37,33],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/Last.purs","start":[37,1]},"title":"monadLast"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Semigroup"],"Semigroup"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Semigroup","Last"],"Last"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[40,17],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/Last.purs","start":[39,1]},"title":"semigroupLast"}],"comments":"Semigroup where `append` always takes the second option.\n\n``` purescript\nLast x <> Last y == Last y\n```\n","info":{"dataDeclType":"newtype","declType":"data","roles":["Representational"],"typeArguments":[["a",null]]},"kind":null,"sourceSpan":{"end":[13,24],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/Last.purs","start":[13,1]},"title":"Last"}],"name":"Data.Semigroup.Last","reExports":[]}
diff --git a/tests/purs/publish/basic-example/output/Data.Semigroup.Last/externs.json b/tests/purs/publish/basic-example/output/Data.Semigroup.Last/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.Semigroup.Last/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Data","Semigroup","Last"],"efExports":[{"TypeRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/Last.purs","end":[40,17]},"Last",["Last"]]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"eqLast"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"eq1Last"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"ordLast"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"ord1Last"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"boundedLast"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"showLast"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"functorLast"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"applyLast"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"applicativeLast"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"bindLast"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"monadLast"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"semigroupLast"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Prelude"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Data","Eq"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[5,17],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/Last.purs","end":[5,26]},"Eq1"]}]},"eiImportedAs":null},{"eiModule":["Data","Ord"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[6,18],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/Last.purs","end":[6,28]},"Ord1"]}]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDType":{"edTypeName":"Last","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[13,23],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/Last.purs","end":[13,24]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},"edTypeDeclarationKind":{"DataType":{"args":[["a",{"annotation":[{"start":[13,23],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/Last.purs","end":[13,24]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]],"ctors":[["Last",[{"annotation":[{"start":[13,23],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/Last.purs","end":[13,24]},[]],"tag":"TypeVar","contents":"a"}]]]}}}},{"EDDataConstructor":{"edDataCtorName":"Last","edDataCtorOrigin":"newtype","edDataCtorTypeCtor":"Last","edDataCtorType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[13,23],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/Last.purs","end":[13,24]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Semigroup","Last"],"Last"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"a"}]}]},null]},"edDataCtorFields":[{"Ident":"value0"}]}},{"EDInstance":{"edInstanceClassName":[["Data","Eq"],"Eq"],"edInstanceName":{"Ident":"eqLast"},"edInstanceTypes":[{"annotation":[{"start":[15,47],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/Last.purs","end":[15,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[15,47],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/Last.purs","end":[15,51]},[]],"tag":"TypeConstructor","contents":[["Data","Semigroup","Last"],"Last"]},{"annotation":[{"start":[15,52],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/Last.purs","end":[15,53]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[15,35],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/Last.purs","end":[15,39]},[]],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[{"start":[15,38],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/Last.purs","end":[15,39]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","Semigroup","Last"],{"Ident":"eqLast"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Eq"],"Eq1"],"edInstanceName":{"Ident":"eq1Last"},"edInstanceTypes":[{"annotation":[{"start":[16,32],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/Last.purs","end":[16,36]},[]],"tag":"TypeConstructor","contents":[["Data","Semigroup","Last"],"Last"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Semigroup","Last"],{"Ident":"eq1Last"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Ord"],"Ord"],"edInstanceName":{"Ident":"ordLast"},"edInstanceTypes":[{"annotation":[{"start":[18,50],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/Last.purs","end":[18,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,50],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/Last.purs","end":[18,54]},[]],"tag":"TypeConstructor","contents":[["Data","Semigroup","Last"],"Last"]},{"annotation":[{"start":[18,55],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/Last.purs","end":[18,56]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[18,36],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/Last.purs","end":[18,41]},[]],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[{"start":[18,40],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/Last.purs","end":[18,41]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","Semigroup","Last"],{"Ident":"ordLast"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Ord"],"Ord1"],"edInstanceName":{"Ident":"ord1Last"},"edInstanceTypes":[{"annotation":[{"start":[19,34],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/Last.purs","end":[19,38]},[]],"tag":"TypeConstructor","contents":[["Data","Semigroup","Last"],"Last"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Semigroup","Last"],{"Ident":"ord1Last"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Bounded"],"Bounded"],"edInstanceName":{"Ident":"boundedLast"},"edInstanceTypes":[{"annotation":[{"start":[21,62],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/Last.purs","end":[21,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[21,62],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/Last.purs","end":[21,66]},[]],"tag":"TypeConstructor","contents":[["Data","Semigroup","Last"],"Last"]},{"annotation":[{"start":[21,67],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/Last.purs","end":[21,68]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[21,40],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/Last.purs","end":[21,49]},[]],"constraintClass":[["Data","Bounded"],"Bounded"],"constraintArgs":[{"annotation":[{"start":[21,48],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/Last.purs","end":[21,49]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","Semigroup","Last"],{"Ident":"boundedLast"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Show"],"Show"],"edInstanceName":{"Ident":"showLast"},"edInstanceTypes":[{"annotation":[{"start":[23,38],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/Last.purs","end":[23,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[23,38],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/Last.purs","end":[23,42]},[]],"tag":"TypeConstructor","contents":[["Data","Semigroup","Last"],"Last"]},{"annotation":[{"start":[23,43],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/Last.purs","end":[23,44]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[23,22],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/Last.purs","end":[23,28]},[]],"constraintClass":[["Data","Show"],"Show"],"constraintArgs":[{"annotation":[{"start":[23,27],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/Last.purs","end":[23,28]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","Semigroup","Last"],{"Ident":"showLast"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Functor"],"Functor"],"edInstanceName":{"Ident":"functorLast"},"edInstanceTypes":[{"annotation":[{"start":[26,40],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/Last.purs","end":[26,44]},[]],"tag":"TypeConstructor","contents":[["Data","Semigroup","Last"],"Last"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Semigroup","Last"],{"Ident":"functorLast"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Apply"],"Apply"],"edInstanceName":{"Ident":"applyLast"},"edInstanceTypes":[{"annotation":[{"start":[28,29],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/Last.purs","end":[28,33]},[]],"tag":"TypeConstructor","contents":[["Data","Semigroup","Last"],"Last"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Semigroup","Last"],{"Ident":"applyLast"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Applicative"],"Applicative"],"edInstanceName":{"Ident":"applicativeLast"},"edInstanceTypes":[{"annotation":[{"start":[31,41],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/Last.purs","end":[31,45]},[]],"tag":"TypeConstructor","contents":[["Data","Semigroup","Last"],"Last"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Semigroup","Last"],{"Ident":"applicativeLast"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Bind"],"Bind"],"edInstanceName":{"Ident":"bindLast"},"edInstanceTypes":[{"annotation":[{"start":[34,27],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/Last.purs","end":[34,31]},[]],"tag":"TypeConstructor","contents":[["Data","Semigroup","Last"],"Last"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Semigroup","Last"],{"Ident":"bindLast"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Monad"],"Monad"],"edInstanceName":{"Ident":"monadLast"},"edInstanceTypes":[{"annotation":[{"start":[37,29],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/Last.purs","end":[37,33]},[]],"tag":"TypeConstructor","contents":[["Data","Semigroup","Last"],"Last"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Semigroup","Last"],{"Ident":"monadLast"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Semigroup"],"Semigroup"],"edInstanceName":{"Ident":"semigroupLast"},"edInstanceTypes":[{"annotation":[{"start":[39,38],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/Last.purs","end":[39,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[39,38],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/Last.purs","end":[39,42]},[]],"tag":"TypeConstructor","contents":[["Data","Semigroup","Last"],"Last"]},{"annotation":[{"start":[39,43],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/Last.purs","end":[39,44]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Semigroup","Last"],{"Ident":"semigroupLast"}]],"edInstanceChainIndex":0}}],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/Last.purs","end":[40,17]}}
diff --git a/tests/purs/publish/basic-example/output/Data.Semigroup.Traversable/docs.json b/tests/purs/publish/basic-example/output/Data.Semigroup.Traversable/docs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.Semigroup.Traversable/docs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"reExports":[],"name":"Data.Semigroup.Traversable","comments":null,"declarations":[{"children":[{"comments":null,"title":"traverse1","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Apply"],"Apply"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"t"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"t"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}}]}]}]}]},null]},null]},null]}},"sourceSpan":{"start":[34,3],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[34,69]}},{"comments":null,"title":"sequence1","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Apply"],"Apply"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"t"},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"t"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}}]}]}]},null]},null]}},"sourceSpan":{"start":[35,3],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[35,57]}},{"comments":null,"title":"traversableDual","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup","Traversable"],"Traversable1"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Dual"],"Dual"]}]}},"sourceSpan":{"start":[37,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[39,31]}},{"comments":null,"title":"traversableMultiplicative","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup","Traversable"],"Traversable1"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Multiplicative"],"Multiplicative"]}]}},"sourceSpan":{"start":[41,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[43,31]}}],"comments":"`Traversable1` represents data structures with a minimum of one element that can be _traversed_,\naccumulating results and effects in some `Applicative` functor.\n\n- `traverse1` runs an action for every element in a data structure,\n  and accumulates the results.\n- `sequence1` runs the actions _contained_ in a data structure,\n  and accumulates the results.\n\nThe `traverse1` and `sequence1` functions should be compatible in the\nfollowing sense:\n\n- `traverse1 f xs = sequence1 (f <$> xs)`\n- `sequence1 = traverse1 identity`\n\n`Traversable1` instances should also be compatible with the corresponding\n`Foldable1` instances, in the following sense:\n\n- `foldMap1 f = runConst <<< traverse1 (Const <<< f)`\n\nDefault implementations are provided by the following functions:\n\n- `traverse1Default`\n- `sequence1Default`\n","title":"Traversable1","info":{"fundeps":[],"arguments":[["t",null]],"declType":"typeClass","superclasses":[{"constraintAnn":[],"constraintClass":[["Data","Semigroup","Foldable"],"Foldable1"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"t"}],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","Traversable"],"Traversable"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"t"}],"constraintData":null}]},"sourceSpan":{"start":[33,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[35,57]}},{"children":[],"comments":"A default implementation of `traverse1` using `sequence1`.\n","title":"traverse1Default","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["t",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Semigroup","Traversable"],"Traversable1"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"t"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Apply"],"Apply"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"t"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"t"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}}]}]}]}]}]},null]},null]},null]},null]}},"sourceSpan":{"start":[46,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[52,13]}},{"children":[],"comments":"A default implementation of `sequence1` using `traverse1`.\n","title":"sequence1Default","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["t",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Semigroup","Traversable"],"Traversable1"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"t"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Apply"],"Apply"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"t"},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"t"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]}]}]}]},null]},null]},null]}},"sourceSpan":{"start":[56,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[61,13]}}]}
diff --git a/tests/purs/publish/basic-example/output/Data.Semigroup.Traversable/externs.json b/tests/purs/publish/basic-example/output/Data.Semigroup.Traversable/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.Semigroup.Traversable/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Data","Semigroup","Traversable"],"efExports":[{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[62,38]},{"Ident":"sequence1"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[62,38]},{"Ident":"traverse1"}]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[62,38]},"Traversable1"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[62,38]},{"Ident":"traverse1Default"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[62,38]},{"Ident":"sequence1Default"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"traversableDual"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"traversableMultiplicative"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Prelude"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Data","Monoid","Dual"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[5,26],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[5,34]},"Dual",null]}]},"eiImportedAs":null},{"eiModule":["Data","Monoid","Multiplicative"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[6,36],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[6,54]},"Multiplicative",null]}]},"eiImportedAs":null},{"eiModule":["Data","Semigroup","Foldable"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[7,33],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[7,48]},"Foldable1"]}]},"eiImportedAs":null},{"eiModule":["Data","Traversable"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[8,26],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[8,43]},"Traversable"]}]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDValue":{"edValueName":{"Ident":"sequence1"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["t",{"annotation":[{"start":[35,16],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[35,57]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[35,23],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[35,57]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["Data","Semigroup","Traversable"],"Traversable1"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"t"}],"constraintData":null},{"annotation":[{"start":[35,28],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[35,57]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[35,28],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[35,35]},[]],"constraintClass":[["Control","Apply"],"Apply"],"constraintArgs":[{"annotation":[{"start":[35,34],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[35,35]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[35,39],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[35,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[35,39],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[35,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[35,47],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[35,49]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[35,39],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[35,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[35,39],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[35,40]},[]],"tag":"TypeVar","contents":"t"},{"annotation":[{"start":[35,42],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[35,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[35,42],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[35,43]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[35,44],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[35,45]},[]],"tag":"TypeVar","contents":"b"}]}]}]},{"annotation":[{"start":[35,50],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[35,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[35,50],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[35,51]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[35,53],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[35,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[35,53],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[35,54]},[]],"tag":"TypeVar","contents":"t"},{"annotation":[{"start":[35,55],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[35,56]},[]],"tag":"TypeVar","contents":"b"}]}]}]}]}]},76]},77]},78]}}},{"EDValue":{"edValueName":{"Ident":"traverse1"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["t",{"annotation":[{"start":[34,16],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[34,69]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[34,23],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[34,69]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[34,23],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[34,69]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["Data","Semigroup","Traversable"],"Traversable1"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"t"}],"constraintData":null},{"annotation":[{"start":[34,30],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[34,69]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[34,30],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[34,37]},[]],"constraintClass":[["Control","Apply"],"Apply"],"constraintArgs":[{"annotation":[{"start":[34,36],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[34,37]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[34,41],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[34,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[34,41],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[34,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[34,52],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[34,54]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[34,42],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[34,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[34,42],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[34,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[34,44],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[34,46]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[34,42],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[34,43]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[34,47],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[34,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[34,47],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[34,48]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[34,49],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[34,50]},[]],"tag":"TypeVar","contents":"b"}]}]}]},{"annotation":[{"start":[34,55],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[34,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[34,55],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[34,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[34,59],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[34,61]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[34,55],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[34,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[34,55],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[34,56]},[]],"tag":"TypeVar","contents":"t"},{"annotation":[{"start":[34,57],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[34,58]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[34,62],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[34,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[34,62],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[34,63]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[34,65],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[34,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[34,65],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[34,66]},[]],"tag":"TypeVar","contents":"t"},{"annotation":[{"start":[34,67],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[34,68]},[]],"tag":"TypeVar","contents":"b"}]}]}]}]}]}]},0]},1]},2]},3]}}},{"EDType":{"edTypeName":"Traversable1","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[34,55],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[34,58]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[34,44],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[34,46]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[34,59],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[34,61]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"Traversable1","edTypeSynonymArguments":[["t",null]],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["traverse1",{"annotation":[{"start":[34,16],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[34,69]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[34,23],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[34,69]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[34,23],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[34,69]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[34,30],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[34,69]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[34,30],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[34,37]},[]],"constraintClass":[["Control","Apply"],"Apply"],"constraintArgs":[{"annotation":[{"start":[34,36],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[34,37]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[34,41],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[34,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[34,41],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[34,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[34,52],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[34,54]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[34,42],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[34,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[34,42],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[34,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[34,44],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[34,46]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[34,42],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[34,43]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[34,47],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[34,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[34,47],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[34,48]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[34,49],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[34,50]},[]],"tag":"TypeVar","contents":"b"}]}]}]},{"annotation":[{"start":[34,55],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[34,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[34,55],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[34,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[34,59],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[34,61]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[34,55],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[34,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[34,55],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[34,56]},[]],"tag":"TypeVar","contents":"t"},{"annotation":[{"start":[34,57],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[34,58]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[34,62],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[34,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[34,62],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[34,63]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[34,65],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[34,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[34,65],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[34,66]},[]],"tag":"TypeVar","contents":"t"},{"annotation":[{"start":[34,67],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[34,68]},[]],"tag":"TypeVar","contents":"b"}]}]}]}]}]},null]},null]},null]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["sequence1",{"annotation":[{"start":[35,16],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[35,57]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[35,23],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[35,57]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[35,28],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[35,57]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[35,28],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[35,35]},[]],"constraintClass":[["Control","Apply"],"Apply"],"constraintArgs":[{"annotation":[{"start":[35,34],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[35,35]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[35,39],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[35,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[35,39],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[35,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[35,47],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[35,49]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[35,39],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[35,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[35,39],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[35,40]},[]],"tag":"TypeVar","contents":"t"},{"annotation":[{"start":[35,42],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[35,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[35,42],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[35,43]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[35,44],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[35,45]},[]],"tag":"TypeVar","contents":"b"}]}]}]},{"annotation":[{"start":[35,50],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[35,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[35,50],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[35,51]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[35,53],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[35,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[35,53],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[35,54]},[]],"tag":"TypeVar","contents":"t"},{"annotation":[{"start":[35,55],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[35,56]},[]],"tag":"TypeVar","contents":"b"}]}]}]}]},null]},null]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["Foldable10",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Semigroup","Foldable"],"Foldable1"]},{"annotation":[{"start":[33,18],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[33,19]},[]],"tag":"TypeVar","contents":"t"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["Traversable1",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Traversable"],"Traversable"]},{"annotation":[{"start":[33,33],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[33,34]},[]],"tag":"TypeVar","contents":"t"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]}]}]}]}}},{"EDClass":{"edClassName":"Traversable1","edClassTypeArguments":[["t",null]],"edClassMembers":[[{"Ident":"traverse1"},{"annotation":[{"start":[34,16],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[34,69]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[34,23],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[34,69]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[34,23],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[34,69]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[34,30],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[34,69]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[34,30],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[34,37]},[]],"constraintClass":[["Control","Apply"],"Apply"],"constraintArgs":[{"annotation":[{"start":[34,36],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[34,37]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[34,41],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[34,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[34,41],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[34,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[34,52],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[34,54]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[34,42],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[34,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[34,42],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[34,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[34,44],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[34,46]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[34,42],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[34,43]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[34,47],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[34,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[34,47],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[34,48]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[34,49],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[34,50]},[]],"tag":"TypeVar","contents":"b"}]}]}]},{"annotation":[{"start":[34,55],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[34,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[34,55],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[34,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[34,59],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[34,61]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[34,55],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[34,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[34,55],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[34,56]},[]],"tag":"TypeVar","contents":"t"},{"annotation":[{"start":[34,57],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[34,58]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[34,62],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[34,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[34,62],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[34,63]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[34,65],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[34,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[34,65],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[34,66]},[]],"tag":"TypeVar","contents":"t"},{"annotation":[{"start":[34,67],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[34,68]},[]],"tag":"TypeVar","contents":"b"}]}]}]}]}]},null]},null]},null]}],[{"Ident":"sequence1"},{"annotation":[{"start":[35,16],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[35,57]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[35,23],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[35,57]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[35,28],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[35,57]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[35,28],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[35,35]},[]],"constraintClass":[["Control","Apply"],"Apply"],"constraintArgs":[{"annotation":[{"start":[35,34],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[35,35]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[35,39],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[35,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[35,39],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[35,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[35,47],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[35,49]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[35,39],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[35,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[35,39],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[35,40]},[]],"tag":"TypeVar","contents":"t"},{"annotation":[{"start":[35,42],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[35,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[35,42],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[35,43]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[35,44],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[35,45]},[]],"tag":"TypeVar","contents":"b"}]}]}]},{"annotation":[{"start":[35,50],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[35,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[35,50],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[35,51]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[35,53],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[35,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[35,53],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[35,54]},[]],"tag":"TypeVar","contents":"t"},{"annotation":[{"start":[35,55],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[35,56]},[]],"tag":"TypeVar","contents":"b"}]}]}]}]},null]},null]}]],"edClassConstraints":[{"constraintAnn":[{"start":[33,8],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[33,19]},[]],"constraintClass":[["Data","Semigroup","Foldable"],"Foldable1"],"constraintArgs":[{"annotation":[{"start":[33,18],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[33,19]},[]],"tag":"TypeVar","contents":"t"}],"constraintData":null},{"constraintAnn":[{"start":[33,21],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[33,34]},[]],"constraintClass":[["Data","Traversable"],"Traversable"],"constraintArgs":[{"annotation":[{"start":[33,33],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[33,34]},[]],"tag":"TypeVar","contents":"t"}],"constraintData":null}],"edFunctionalDependencies":[]}},{"EDValue":{"edValueName":{"Ident":"traverse1Default"},"edValueType":{"annotation":[{"start":[47,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[52,13]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[47,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[52,13]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[47,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[52,13]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[47,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[52,13]},[]],"tag":"ForAll","contents":["t",{"annotation":[{"start":[48,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[52,13]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[48,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[48,20]},[]],"constraintClass":[["Data","Semigroup","Traversable"],"Traversable1"],"constraintArgs":[{"annotation":[{"start":[48,19],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[48,20]},[]],"tag":"TypeVar","contents":"t"}],"constraintData":null},{"annotation":[{"start":[49,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[52,13]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[49,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[49,13]},[]],"constraintClass":[["Control","Apply"],"Apply"],"constraintArgs":[{"annotation":[{"start":[49,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[49,13]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[50,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[52,13]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[52,13]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,3],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[51,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[50,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[50,15]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[50,15]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,9],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[50,11]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[50,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[50,8]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[50,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[50,15]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[50,13]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[50,14],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[50,15]},[]],"tag":"TypeVar","contents":"b"}]}]}]},{"annotation":[{"start":[51,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[52,13]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[52,13]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,3],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[52,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[51,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[51,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[51,7]},[]],"tag":"TypeVar","contents":"t"},{"annotation":[{"start":[51,8],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[51,9]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[52,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[52,13]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[52,7]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[52,9],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[52,12]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,9],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[52,10]},[]],"tag":"TypeVar","contents":"t"},{"annotation":[{"start":[52,11],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[52,12]},[]],"tag":"TypeVar","contents":"b"}]}]}]}]}]}]},79]},80]},81]},82]}}},{"EDValue":{"edValueName":{"Ident":"sequence1Default"},"edValueType":{"annotation":[{"start":[57,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[61,13]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[57,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[61,13]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[57,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[61,13]},[]],"tag":"ForAll","contents":["t",{"annotation":[{"start":[58,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[61,13]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[58,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[58,20]},[]],"constraintClass":[["Data","Semigroup","Traversable"],"Traversable1"],"constraintArgs":[{"annotation":[{"start":[58,19],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[58,20]},[]],"tag":"TypeVar","contents":"t"}],"constraintData":null},{"annotation":[{"start":[59,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[61,13]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[59,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[59,13]},[]],"constraintClass":[["Control","Apply"],"Apply"],"constraintArgs":[{"annotation":[{"start":[59,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[59,13]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[60,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[61,13]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[60,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[61,13]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[61,3],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[61,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[60,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[60,13]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[60,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[60,7]},[]],"tag":"TypeVar","contents":"t"},{"annotation":[{"start":[60,9],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[60,12]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[60,9],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[60,10]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[60,11],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[60,12]},[]],"tag":"TypeVar","contents":"a"}]}]}]},{"annotation":[{"start":[61,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[61,13]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[61,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[61,7]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[61,9],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[61,12]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[61,9],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[61,10]},[]],"tag":"TypeVar","contents":"t"},{"annotation":[{"start":[61,11],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[61,12]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]}]},4]},5]},6]}}},{"EDInstance":{"edInstanceClassName":[["Data","Semigroup","Traversable"],"Traversable1"],"edInstanceName":{"Ident":"traversableDual"},"edInstanceTypes":[{"annotation":[{"start":[37,42],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[37,46]},[]],"tag":"TypeConstructor","contents":[["Data","Monoid","Dual"],"Dual"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Semigroup","Traversable"],{"Ident":"traversableDual"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Semigroup","Traversable"],"Traversable1"],"edInstanceName":{"Ident":"traversableMultiplicative"},"edInstanceTypes":[{"annotation":[{"start":[41,52],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[41,66]},[]],"tag":"TypeConstructor","contents":[["Data","Monoid","Multiplicative"],"Multiplicative"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Semigroup","Traversable"],{"Ident":"traversableMultiplicative"}]],"edInstanceChainIndex":0}}],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Semigroup/Traversable.purs","end":[62,38]}}
diff --git a/tests/purs/publish/basic-example/output/Data.Semigroup/docs.json b/tests/purs/publish/basic-example/output/Data.Semigroup/docs.json
--- a/tests/purs/publish/basic-example/output/Data.Semigroup/docs.json
+++ b/tests/purs/publish/basic-example/output/Data.Semigroup/docs.json
@@ -1,1 +1,1 @@
-{"reExports":[],"name":"Data.Semigroup","comments":null,"declarations":[{"children":[{"comments":null,"title":"append","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[23,3],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[23,24]}},{"comments":null,"title":"semigroupString","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup"],"Semigroup"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}},"sourceSpan":{"start":[27,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[28,24]}},{"comments":null,"title":"semigroupUnit","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup"],"Semigroup"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}},"sourceSpan":{"start":[30,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[31,20]}},{"comments":null,"title":"semigroupVoid","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup"],"Semigroup"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Void"],"Void"]}]}},"sourceSpan":{"start":[33,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[34,20]}},{"comments":null,"title":"semigroupFn","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Semigroup"],"Semigroup"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"s'"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup"],"Semigroup"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"s"}]},{"annotation":[],"tag":"TypeVar","contents":"s'"}]}]}},"sourceSpan":{"start":[36,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[37,28]}},{"comments":null,"title":"semigroupArray","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup"],"Semigroup"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[39,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[40,23]}},{"comments":null,"title":"semigroupRecord","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Prim","RowList"],"RowToList"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"row"},{"annotation":[],"tag":"TypeVar","contents":"list"}],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","Semigroup"],"SemigroupRecord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"list"},{"annotation":[],"tag":"TypeVar","contents":"row"},{"annotation":[],"tag":"TypeVar","contents":"row"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup"],"Semigroup"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"TypeVar","contents":"row"}]}]}},"sourceSpan":{"start":[42,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[43,50]}}],"comments":"The `Semigroup` type class identifies an associative operation on a type.\n\nInstances are required to satisfy the following law:\n\n- Associativity: `(x <> y) <> z = x <> (y <> z)`\n\nOne example of a `Semigroup` is `String`, with `(<>)` defined as string\nconcatenation.\n","title":"Semigroup","info":{"fundeps":[],"arguments":[["a",null]],"declType":"typeClass","superclasses":[]},"sourceSpan":{"start":[22,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[23,24]}},{"children":[],"comments":null,"title":"(<>)","info":{"declType":"alias","alias":[["Data","Semigroup"],{"Right":{"Left":{"Ident":"append"}}}],"fixity":{"associativity":"infixr","precedence":5}},"sourceSpan":{"start":[25,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[25,22]}},{"children":[{"comments":null,"title":"appendRecord","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Data","RowList"],"RLProxy"]},{"annotation":[],"tag":"TypeVar","contents":"rowlist"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"TypeVar","contents":"row"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"TypeVar","contents":"row"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"TypeVar","contents":"subrow"}]}]}]}]}},"sourceSpan":{"start":[51,3],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[51,79]}},{"comments":null,"title":"semigroupRecordNil","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup"],"SemigroupRecord"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim","RowList"],"Nil"]}]},{"annotation":[],"tag":"TypeVar","contents":"row"}]},{"annotation":[],"tag":"REmpty"}]}},"sourceSpan":{"start":[53,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[54,26]}},{"comments":null,"title":"semigroupRecordCons","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Symbol"],"IsSymbol"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"key"}],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Prim","Row"],"Cons"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"key"},{"annotation":[],"tag":"TypeVar","contents":"focus"},{"annotation":[],"tag":"TypeVar","contents":"subrowTail"},{"annotation":[],"tag":"TypeVar","contents":"subrow"}],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","Semigroup"],"SemigroupRecord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"rowlistTail"},{"annotation":[],"tag":"TypeVar","contents":"row"},{"annotation":[],"tag":"TypeVar","contents":"subrowTail"}],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","Semigroup"],"Semigroup"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"focus"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup"],"SemigroupRecord"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim","RowList"],"Cons"]},{"annotation":[],"tag":"TypeVar","contents":"key"}]},{"annotation":[],"tag":"TypeVar","contents":"focus"}]},{"annotation":[],"tag":"TypeVar","contents":"rowlistTail"}]}]},{"annotation":[],"tag":"TypeVar","contents":"row"}]},{"annotation":[],"tag":"TypeVar","contents":"subrow"}]}},"sourceSpan":{"start":[56,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[68,65]}}],"comments":"A class for records where all fields have `Semigroup` instances, used to\nimplement the `Semigroup` instance for records.\n","title":"SemigroupRecord","info":{"fundeps":[[["rowlist"],["subrow"]]],"arguments":[["rowlist",null],["row",null],["subrow",null]],"declType":"typeClass","superclasses":[]},"sourceSpan":{"start":[50,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[51,79]}}]}
+{"comments":null,"declarations":[{"children":[{"comments":null,"info":{"declType":"typeClassMember","type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[35,24],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","start":[35,3]},"title":"append"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Semigroup"],"Semigroup"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"String"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[40,24],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","start":[39,1]},"title":"semigroupString"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Semigroup"],"Semigroup"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Unit"],"Unit"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[43,20],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","start":[42,1]},"title":"semigroupUnit"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Semigroup"],"Semigroup"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Void"],"Void"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[46,20],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","start":[45,1]},"title":"semigroupVoid"},{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"s'","tag":"TypeVar"}],"constraintClass":[["Data","Semigroup"],"Semigroup"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Semigroup"],"Semigroup"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"s","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"s'","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[49,28],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","start":[48,1]},"title":"semigroupFn"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Semigroup"],"Semigroup"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Array"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[52,23],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","start":[51,1]},"title":"semigroupArray"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Semigroup"],"Semigroup"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Type","Proxy"],"Proxy"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[55,21],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","start":[54,1]},"title":"semigroupProxy"},{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"row","tag":"TypeVar"},{"annotation":[],"contents":"list","tag":"TypeVar"}],"constraintClass":[["Prim","RowList"],"RowToList"],"constraintData":null,"constraintKindArgs":[]},{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"list","tag":"TypeVar"},{"annotation":[],"contents":"row","tag":"TypeVar"},{"annotation":[],"contents":"row","tag":"TypeVar"}],"constraintClass":[["Data","Semigroup"],"SemigroupRecord"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Semigroup"],"Semigroup"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Record"],"tag":"TypeConstructor"},{"annotation":[],"contents":"row","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[58,46],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","start":[57,1]},"title":"semigroupRecord"}],"comments":"The `Semigroup` type class identifies an associative operation on a type.\n\nInstances are required to satisfy the following law:\n\n- Associativity: `(x <> y) <> z = x <> (y <> z)`\n\nOne example of a `Semigroup` is `String`, with `(<>)` defined as string\nconcatenation. Another example is `List a`, with `(<>)` defined as\nlist concatenation.\n\n### Newtypes for Semigroup\n\nThere are two other ways to implement an instance for this type class\nregardless of which type is used. These instances can be used by\nwrapping the values in one of the two newtypes below:\n1. `First` - Use the first argument every time: `append first _ = first`.\n2. `Last` - Use the last argument every time: `append _ last = last`.\n","info":{"arguments":[["a",null]],"declType":"typeClass","fundeps":[],"superclasses":[]},"kind":null,"sourceSpan":{"end":[35,24],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","start":[34,1]},"title":"Semigroup"},{"children":[],"comments":null,"info":{"alias":[["Data","Semigroup"],{"Right":{"Left":{"Ident":"append"}}}],"declType":"alias","fixity":{"associativity":"infixr","precedence":5}},"kind":null,"sourceSpan":{"end":[37,22],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","start":[37,1]},"title":"(<>)"},{"children":[{"comments":null,"info":{"declType":"typeClassMember","type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Type","Proxy"],"Proxy"],"tag":"TypeConstructor"},{"annotation":[],"contents":"rowlist","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Record"],"tag":"TypeConstructor"},{"annotation":[],"contents":"row","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Record"],"tag":"TypeConstructor"},{"annotation":[],"contents":"row","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Record"],"tag":"TypeConstructor"},{"annotation":[],"contents":"subrow","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[67,77],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","start":[67,3]},"title":"appendRecord"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Semigroup"],"SemigroupRecord"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim","RowList"],"Nil"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":"row","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"tag":"REmpty"}],"tag":"TypeApp"}},"sourceSpan":{"end":[70,26],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","start":[69,1]},"title":"semigroupRecordNil"},{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"key","tag":"TypeVar"}],"constraintClass":[["Data","Symbol"],"IsSymbol"],"constraintData":null,"constraintKindArgs":[]},{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"key","tag":"TypeVar"},{"annotation":[],"contents":"focus","tag":"TypeVar"},{"annotation":[],"contents":"subrowTail","tag":"TypeVar"},{"annotation":[],"contents":"subrow","tag":"TypeVar"}],"constraintClass":[["Prim","Row"],"Cons"],"constraintData":null,"constraintKindArgs":[]},{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"rowlistTail","tag":"TypeVar"},{"annotation":[],"contents":"row","tag":"TypeVar"},{"annotation":[],"contents":"subrowTail","tag":"TypeVar"}],"constraintClass":[["Data","Semigroup"],"SemigroupRecord"],"constraintData":null,"constraintKindArgs":[]},{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"focus","tag":"TypeVar"}],"constraintClass":[["Data","Semigroup"],"Semigroup"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Semigroup"],"SemigroupRecord"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim","RowList"],"Cons"],"tag":"TypeConstructor"},{"annotation":[],"contents":"key","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"focus","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"rowlistTail","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":"row","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"subrow","tag":"TypeVar"}],"tag":"TypeApp"}},"sourceSpan":{"end":[84,59],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","start":[72,1]},"title":"semigroupRecordCons"}],"comments":"A class for records where all fields have `Semigroup` instances, used to\nimplement the `Semigroup` instance for records.\n","info":{"arguments":[["rowlist",null],["row",null],["subrow",null]],"declType":"typeClass","fundeps":[[["rowlist"],["subrow"]]],"superclasses":[]},"kind":{"keyword":"class","kind":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim","RowList"],"RowList"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Row"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Row"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim"],"Constraint"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[67,77],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","start":[66,1]},"title":"SemigroupRecord"}],"name":"Data.Semigroup","reExports":[]}
diff --git a/tests/purs/publish/basic-example/output/Data.Semigroup/externs.json b/tests/purs/publish/basic-example/output/Data.Semigroup/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.Semigroup/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Data","Semigroup"],"efExports":[{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[68,65]},"Semigroup"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[68,65]},{"Ident":"append"}]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[68,65]},"<>"]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[68,65]},"SemigroupRecord"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[68,65]},{"Ident":"appendRecord"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"semigroupString"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"semigroupUnit"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"semigroupVoid"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"semigroupFn"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"semigroupArray"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"semigroupRecord"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"semigroupRecordNil"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"semigroupRecordCons"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Data","Symbol"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[6,21],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[6,35]},"IsSymbol"]},{"TypeRef":[{"start":[6,37],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[6,47]},"SProxy",null]},{"ValueRef":[{"start":[6,49],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[6,62]},{"Ident":"reflectSymbol"}]}]},"eiImportedAs":null},{"eiModule":["Data","Unit"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[7,19],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[7,23]},"Unit",[]]},{"ValueRef":[{"start":[7,25],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[7,29]},{"Ident":"unit"}]}]},"eiImportedAs":null},{"eiModule":["Data","Void"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[8,19],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[8,23]},"Void",[]]},{"ValueRef":[{"start":[8,25],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[8,31]},{"Ident":"absurd"}]}]},"eiImportedAs":null},{"eiModule":["Prim","Row"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Row"]},{"eiModule":["Prim","RowList"],"eiImportType":{"Implicit":[]},"eiImportedAs":["RL"]},{"eiModule":["Record","Unsafe"],"eiImportType":{"Explicit":[{"ValueRef":[{"start":[11,23],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[11,32]},{"Ident":"unsafeGet"}]},{"ValueRef":[{"start":[11,34],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[11,43]},{"Ident":"unsafeSet"}]}]},"eiImportedAs":null},{"eiModule":["Type","Data","RowList"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[12,27],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[12,38]},"RLProxy",null]}]},"eiImportedAs":null}],"efFixities":[{"efAssociativity":"infixr","efPrecedence":5,"efOperator":"<>","efAlias":[["Data","Semigroup"],{"Left":{"Ident":"append"}}]}],"efTypeFixities":[],"efDeclarations":[{"EDType":{"edTypeName":"Semigroup","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[23,15],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[23,17]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"Semigroup","edTypeSynonymArguments":[["a",null]],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["append",{"annotation":[{"start":[23,13],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[23,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[23,13],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[23,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[23,15],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[23,17]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[23,13],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[23,14]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[23,18],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[23,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[23,18],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[23,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[23,20],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[23,22]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[23,18],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[23,19]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[23,23],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[23,24]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]}}},{"EDClass":{"edClassName":"Semigroup","edClassTypeArguments":[["a",null]],"edClassMembers":[[{"Ident":"append"},{"annotation":[{"start":[23,13],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[23,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[23,13],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[23,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[23,15],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[23,17]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[23,13],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[23,14]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[23,18],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[23,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[23,18],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[23,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[23,20],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[23,22]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[23,18],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[23,19]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[23,23],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[23,24]},[]],"tag":"TypeVar","contents":"a"}]}]}]],"edClassConstraints":[],"edFunctionalDependencies":[]}},{"EDValue":{"edValueName":{"Ident":"append"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["Data","Semigroup"],"Semigroup"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[23,13],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[23,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[23,13],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[23,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[23,15],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[23,17]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[23,13],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[23,14]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[23,18],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[23,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[23,18],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[23,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[23,20],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[23,22]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[23,18],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[23,19]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[23,23],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[23,24]},[]],"tag":"TypeVar","contents":"a"}]}]}]},13]}}},{"EDType":{"edTypeName":"SemigroupRecord","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[51,26]},[]],"tag":"NamedKind","contents":[["Prim","RowList"],"RowList"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[51,38],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[51,44]},[]],"tag":"Row","contents":{"annotation":[{"start":[51,38],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[51,44]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[51,66],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[51,72]},[]],"tag":"Row","contents":{"annotation":[{"start":[51,66],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[51,72]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"SemigroupRecord","edTypeSynonymArguments":[["rowlist",null],["row",null],["subrow",null]],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["appendRecord",{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[51,79]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[51,79]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,35],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[51,37]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[51,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[51,26]},[]],"tag":"TypeConstructor","contents":[["Type","Data","RowList"],"RLProxy"]},{"annotation":[{"start":[51,27],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[51,34]},[]],"tag":"TypeVar","contents":"rowlist"}]}]},{"annotation":[{"start":[51,38],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[51,79]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,38],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[51,79]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,49],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[51,51]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[51,38],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[51,48]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,38],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[51,44]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[51,45],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[51,48]},[]],"tag":"TypeVar","contents":"row"}]}]},{"annotation":[{"start":[51,52],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[51,79]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,52],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[51,79]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,63],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[51,65]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[51,52],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[51,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,52],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[51,58]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[51,59],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[51,62]},[]],"tag":"TypeVar","contents":"row"}]}]},{"annotation":[{"start":[51,66],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[51,79]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,66],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[51,72]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[51,73],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[51,79]},[]],"tag":"TypeVar","contents":"subrow"}]}]}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]}}},{"EDClass":{"edClassName":"SemigroupRecord","edClassTypeArguments":[["rowlist",null],["row",null],["subrow",null]],"edClassMembers":[[{"Ident":"appendRecord"},{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[51,79]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[51,79]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,35],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[51,37]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[51,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[51,26]},[]],"tag":"TypeConstructor","contents":[["Type","Data","RowList"],"RLProxy"]},{"annotation":[{"start":[51,27],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[51,34]},[]],"tag":"TypeVar","contents":"rowlist"}]}]},{"annotation":[{"start":[51,38],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[51,79]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,38],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[51,79]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,49],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[51,51]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[51,38],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[51,48]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,38],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[51,44]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[51,45],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[51,48]},[]],"tag":"TypeVar","contents":"row"}]}]},{"annotation":[{"start":[51,52],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[51,79]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,52],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[51,79]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,63],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[51,65]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[51,52],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[51,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,52],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[51,58]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[51,59],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[51,62]},[]],"tag":"TypeVar","contents":"row"}]}]},{"annotation":[{"start":[51,66],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[51,79]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,66],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[51,72]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[51,73],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[51,79]},[]],"tag":"TypeVar","contents":"subrow"}]}]}]}]}]],"edClassConstraints":[],"edFunctionalDependencies":[{"determiners":[0],"determined":[2]}]}},{"EDValue":{"edValueName":{"Ident":"appendRecord"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["rowlist",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["row",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["subrow",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["Data","Semigroup"],"SemigroupRecord"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"rowlist"},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"row"},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"subrow"}],"constraintData":null},{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[51,79]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[51,79]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,35],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[51,37]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[51,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[51,26]},[]],"tag":"TypeConstructor","contents":[["Type","Data","RowList"],"RLProxy"]},{"annotation":[{"start":[51,27],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[51,34]},[]],"tag":"TypeVar","contents":"rowlist"}]}]},{"annotation":[{"start":[51,38],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[51,79]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,38],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[51,79]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,49],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[51,51]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[51,38],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[51,48]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,38],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[51,44]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[51,45],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[51,48]},[]],"tag":"TypeVar","contents":"row"}]}]},{"annotation":[{"start":[51,52],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[51,79]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,52],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[51,79]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,63],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[51,65]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[51,52],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[51,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,52],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[51,58]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[51,59],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[51,62]},[]],"tag":"TypeVar","contents":"row"}]}]},{"annotation":[{"start":[51,66],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[51,79]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,66],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[51,72]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[51,73],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[51,79]},[]],"tag":"TypeVar","contents":"subrow"}]}]}]}]}]},5]},6]},7]}}},{"EDInstance":{"edInstanceClassName":[["Data","Semigroup"],"Semigroup"],"edInstanceName":{"Ident":"semigroupString"},"edInstanceTypes":[{"annotation":[{"start":[27,39],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[27,45]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Semigroup"],{"Ident":"semigroupString"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Semigroup"],"Semigroup"],"edInstanceName":{"Ident":"semigroupUnit"},"edInstanceTypes":[{"annotation":[{"start":[30,37],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[30,41]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Semigroup"],{"Ident":"semigroupUnit"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Semigroup"],"Semigroup"],"edInstanceName":{"Ident":"semigroupVoid"},"edInstanceTypes":[{"annotation":[{"start":[33,37],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[33,41]},[]],"tag":"TypeConstructor","contents":[["Data","Void"],"Void"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Semigroup"],{"Ident":"semigroupVoid"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Semigroup"],"Semigroup"],"edInstanceName":{"Ident":"semigroupFn"},"edInstanceTypes":[{"annotation":[{"start":[36,52],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[36,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,52],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[36,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,54],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[36,56]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[36,52],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[36,53]},[]],"tag":"TypeVar","contents":"s"}]},{"annotation":[{"start":[36,57],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[36,59]},[]],"tag":"TypeVar","contents":"s'"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[36,25],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[36,37]},[]],"constraintClass":[["Data","Semigroup"],"Semigroup"],"constraintArgs":[{"annotation":[{"start":[36,35],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[36,37]},[]],"tag":"TypeVar","contents":"s'"}],"constraintData":null}],"edInstanceChain":[[["Data","Semigroup"],{"Ident":"semigroupFn"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Semigroup"],"Semigroup"],"edInstanceName":{"Ident":"semigroupArray"},"edInstanceTypes":[{"annotation":[{"start":[39,39],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[39,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[39,39],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[39,44]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[39,45],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[39,46]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Semigroup"],{"Ident":"semigroupArray"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Semigroup"],"Semigroup"],"edInstanceName":{"Ident":"semigroupRecord"},"edInstanceTypes":[{"annotation":[{"start":[42,97],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[42,107]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[42,97],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[42,103]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[42,104],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[42,107]},[]],"tag":"TypeVar","contents":"row"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[42,30],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[42,51]},[]],"constraintClass":[["Prim","RowList"],"RowToList"],"constraintArgs":[{"annotation":[{"start":[42,43],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[42,46]},[]],"tag":"TypeVar","contents":"row"},{"annotation":[{"start":[42,47],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[42,51]},[]],"tag":"TypeVar","contents":"list"}],"constraintData":null},{"constraintAnn":[{"start":[42,53],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[42,81]},[]],"constraintClass":[["Data","Semigroup"],"SemigroupRecord"],"constraintArgs":[{"annotation":[{"start":[42,69],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[42,73]},[]],"tag":"TypeVar","contents":"list"},{"annotation":[{"start":[42,74],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[42,77]},[]],"tag":"TypeVar","contents":"row"},{"annotation":[{"start":[42,78],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[42,81]},[]],"tag":"TypeVar","contents":"row"}],"constraintData":null}],"edInstanceChain":[[["Data","Semigroup"],{"Ident":"semigroupRecord"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Semigroup"],"SemigroupRecord"],"edInstanceName":{"Ident":"semigroupRecordNil"},"edInstanceTypes":[{"annotation":[{"start":[53,48],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[53,54]},[]],"tag":"TypeConstructor","contents":[["Prim","RowList"],"Nil"]},{"annotation":[{"start":[53,55],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[53,58]},[]],"tag":"TypeVar","contents":"row"},{"annotation":[{"start":[53,60],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[53,61]},[]],"tag":"REmpty"}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Semigroup"],{"Ident":"semigroupRecordNil"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Semigroup"],"SemigroupRecord"],"edInstanceName":{"Ident":"semigroupRecordCons"},"edInstanceTypes":[{"annotation":[{"start":[62,25],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[62,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[62,25],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[62,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[62,25],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[62,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[62,25],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[62,32]},[]],"tag":"TypeConstructor","contents":[["Prim","RowList"],"Cons"]},{"annotation":[{"start":[62,33],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[62,36]},[]],"tag":"TypeVar","contents":"key"}]},{"annotation":[{"start":[62,37],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[62,42]},[]],"tag":"TypeVar","contents":"focus"}]},{"annotation":[{"start":[62,43],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[62,54]},[]],"tag":"TypeVar","contents":"rowlistTail"}]},{"annotation":[{"start":[62,56],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[62,59]},[]],"tag":"TypeVar","contents":"row"},{"annotation":[{"start":[62,60],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[62,66]},[]],"tag":"TypeVar","contents":"subrow"}],"edInstanceConstraints":[{"constraintAnn":[{"start":[57,10],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[57,22]},[]],"constraintClass":[["Data","Symbol"],"IsSymbol"],"constraintArgs":[{"annotation":[{"start":[57,19],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[57,22]},[]],"tag":"TypeVar","contents":"key"}],"constraintData":null},{"constraintAnn":[{"start":[58,10],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[58,46]},[]],"constraintClass":[["Prim","Row"],"Cons"],"constraintArgs":[{"annotation":[{"start":[58,19],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[58,22]},[]],"tag":"TypeVar","contents":"key"},{"annotation":[{"start":[58,23],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[58,28]},[]],"tag":"TypeVar","contents":"focus"},{"annotation":[{"start":[58,29],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[58,39]},[]],"tag":"TypeVar","contents":"subrowTail"},{"annotation":[{"start":[58,40],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[58,46]},[]],"tag":"TypeVar","contents":"subrow"}],"constraintData":null},{"constraintAnn":[{"start":[59,10],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[59,52]},[]],"constraintClass":[["Data","Semigroup"],"SemigroupRecord"],"constraintArgs":[{"annotation":[{"start":[59,26],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[59,37]},[]],"tag":"TypeVar","contents":"rowlistTail"},{"annotation":[{"start":[59,38],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[59,41]},[]],"tag":"TypeVar","contents":"row"},{"annotation":[{"start":[59,42],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[59,52]},[]],"tag":"TypeVar","contents":"subrowTail"}],"constraintData":null},{"constraintAnn":[{"start":[60,10],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[60,25]},[]],"constraintClass":[["Data","Semigroup"],"Semigroup"],"constraintArgs":[{"annotation":[{"start":[60,20],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[60,25]},[]],"tag":"TypeVar","contents":"focus"}],"constraintData":null}],"edInstanceChain":[[["Data","Semigroup"],{"Ident":"semigroupRecordCons"}]],"edInstanceChainIndex":0}}],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs","end":[68,65]}}
diff --git a/tests/purs/publish/basic-example/output/Data.Semiring.Generic/docs.json b/tests/purs/publish/basic-example/output/Data.Semiring.Generic/docs.json
new file mode 100644
--- /dev/null
+++ b/tests/purs/publish/basic-example/output/Data.Semiring.Generic/docs.json
@@ -0,0 +1,1 @@
+{"comments":null,"declarations":[{"children":[{"comments":null,"info":{"declType":"typeClassMember","type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[8,29],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring/Generic.purs","start":[8,3]},"title":"genericAdd'"},{"comments":null,"info":{"declType":"typeClassMember","type":{"annotation":[],"contents":"a","tag":"TypeVar"}},"sourceSpan":{"end":[9,20],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring/Generic.purs","start":[9,3]},"title":"genericZero'"},{"comments":null,"info":{"declType":"typeClassMember","type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[10,29],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring/Generic.purs","start":[10,3]},"title":"genericMul'"},{"comments":null,"info":{"declType":"typeClassMember","type":{"annotation":[],"contents":"a","tag":"TypeVar"}},"sourceSpan":{"end":[11,19],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring/Generic.purs","start":[11,3]},"title":"genericOne'"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Semiring","Generic"],"GenericSemiring"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Generic","Rep"],"NoArguments"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[17,28],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring/Generic.purs","start":[13,1]},"title":"genericSemiringNoArguments"},{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","Semiring"],"Semiring"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Semiring","Generic"],"GenericSemiring"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Generic","Rep"],"Argument"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[23,29],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring/Generic.purs","start":[19,1]},"title":"genericSemiringArgument"},{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","Semiring","Generic"],"GenericSemiring"],"constraintData":null,"constraintKindArgs":[]},{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"b","tag":"TypeVar"}],"constraintClass":[["Data","Semiring","Generic"],"GenericSemiring"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Semiring","Generic"],"GenericSemiring"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Generic","Rep"],"Product"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[29,48],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring/Generic.purs","start":[25,1]},"title":"genericSemiringProduct"},{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","Semiring","Generic"],"GenericSemiring"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Semiring","Generic"],"GenericSemiring"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Generic","Rep"],"Constructor"],"tag":"TypeConstructor"},{"annotation":[],"contents":"name","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[35,40],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring/Generic.purs","start":[31,1]},"title":"genericSemiringConstructor"}],"comments":null,"info":{"arguments":[["a",null]],"declType":"typeClass","fundeps":[],"superclasses":[]},"kind":null,"sourceSpan":{"end":[11,19],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring/Generic.purs","start":[7,1]},"title":"GenericSemiring"},{"children":[],"comments":"A `Generic` implementation of the `zero` member from the `Semiring` type class.\n","info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"rep","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"},{"annotation":[],"contents":"rep","tag":"TypeVar"}],"constraintClass":[["Data","Generic","Rep"],"Generic"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"rep","tag":"TypeVar"}],"constraintClass":[["Data","Semiring","Generic"],"GenericSemiring"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"ConstrainedType"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[38,71],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring/Generic.purs","start":[38,1]},"title":"genericZero"},{"children":[],"comments":"A `Generic` implementation of the `one` member from the `Semiring` type class.\n","info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"rep","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"},{"annotation":[],"contents":"rep","tag":"TypeVar"}],"constraintClass":[["Data","Generic","Rep"],"Generic"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"rep","tag":"TypeVar"}],"constraintClass":[["Data","Semiring","Generic"],"GenericSemiring"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"ConstrainedType"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[42,70],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring/Generic.purs","start":[42,1]},"title":"genericOne"},{"children":[],"comments":"A `Generic` implementation of the `add` member from the `Semiring` type class.\n","info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"rep","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"},{"annotation":[],"contents":"rep","tag":"TypeVar"}],"constraintClass":[["Data","Generic","Rep"],"Generic"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"rep","tag":"TypeVar"}],"constraintClass":[["Data","Semiring","Generic"],"GenericSemiring"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"ConstrainedType"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[46,80],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring/Generic.purs","start":[46,1]},"title":"genericAdd"},{"children":[],"comments":"A `Generic` implementation of the `mul` member from the `Semiring` type class.\n","info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"rep","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"},{"annotation":[],"contents":"rep","tag":"TypeVar"}],"constraintClass":[["Data","Generic","Rep"],"Generic"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"rep","tag":"TypeVar"}],"constraintClass":[["Data","Semiring","Generic"],"GenericSemiring"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"ConstrainedType"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[50,80],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring/Generic.purs","start":[50,1]},"title":"genericMul"}],"name":"Data.Semiring.Generic","reExports":[]}
diff --git a/tests/purs/publish/basic-example/output/Data.Semiring/docs.json b/tests/purs/publish/basic-example/output/Data.Semiring/docs.json
--- a/tests/purs/publish/basic-example/output/Data.Semiring/docs.json
+++ b/tests/purs/publish/basic-example/output/Data.Semiring/docs.json
@@ -1,1 +1,1 @@
-{"reExports":[],"name":"Data.Semiring","comments":null,"declarations":[{"children":[{"comments":null,"title":"add","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[36,3],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[36,22]}},{"comments":null,"title":"zero","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeVar","contents":"a"}},"sourceSpan":{"start":[37,3],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[37,12]}},{"comments":null,"title":"mul","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[38,3],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[38,22]}},{"comments":null,"title":"one","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeVar","contents":"a"}},"sourceSpan":{"start":[39,3],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[39,12]}},{"comments":null,"title":"semiringInt","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semiring"],"Semiring"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}},"sourceSpan":{"start":[44,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[48,10]}},{"comments":null,"title":"semiringNumber","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semiring"],"Semiring"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]}},"sourceSpan":{"start":[50,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[54,12]}},{"comments":null,"title":"semiringFn","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Semiring"],"Semiring"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"b"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semiring"],"Semiring"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}},"sourceSpan":{"start":[56,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[60,18]}},{"comments":null,"title":"semiringUnit","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semiring"],"Semiring"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}},"sourceSpan":{"start":[62,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[66,13]}},{"comments":null,"title":"semiringRecord","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Prim","RowList"],"RowToList"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"row"},{"annotation":[],"tag":"TypeVar","contents":"list"}],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","Semiring"],"SemiringRecord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"list"},{"annotation":[],"tag":"TypeVar","contents":"row"},{"annotation":[],"tag":"TypeVar","contents":"row"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semiring"],"Semiring"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"TypeVar","contents":"row"}]}]}},"sourceSpan":{"start":[68,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[72,69]}}],"comments":"The `Semiring` class is for types that support an addition and\nmultiplication operation.\n\nInstances must satisfy the following laws:\n\n- Commutative monoid under addition:\n  - Associativity: `(a + b) + c = a + (b + c)`\n  - Identity: `zero + a = a + zero = a`\n  - Commutative: `a + b = b + a`\n- Monoid under multiplication:\n  - Associativity: `(a * b) * c = a * (b * c)`\n  - Identity: `one * a = a * one = a`\n- Multiplication distributes over addition:\n  - Left distributivity: `a * (b + c) = (a * b) + (a * c)`\n  - Right distributivity: `(a + b) * c = (a * c) + (b * c)`\n- Annihilation: `zero * a = a * zero = zero`\n\n**Note:** The `Number` and `Int` types are not fully law abiding\nmembers of this class hierarchy due to the potential for arithmetic\noverflows, and in the case of `Number`, the presence of `NaN` and\n`Infinity` values. The behaviour is unspecified in these cases.\n","title":"Semiring","info":{"fundeps":[],"arguments":[["a",null]],"declType":"typeClass","superclasses":[]},"sourceSpan":{"start":[35,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[39,12]}},{"children":[],"comments":null,"title":"(+)","info":{"declType":"alias","alias":[["Data","Semiring"],{"Right":{"Left":{"Ident":"add"}}}],"fixity":{"associativity":"infixl","precedence":6}},"sourceSpan":{"start":[41,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[41,18]}},{"children":[],"comments":null,"title":"(*)","info":{"declType":"alias","alias":[["Data","Semiring"],{"Right":{"Left":{"Ident":"mul"}}}],"fixity":{"associativity":"infixl","precedence":7}},"sourceSpan":{"start":[42,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[42,18]}},{"children":[{"comments":null,"title":"addRecord","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Data","RowList"],"RLProxy"]},{"annotation":[],"tag":"TypeVar","contents":"rowlist"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"TypeVar","contents":"row"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"TypeVar","contents":"row"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"TypeVar","contents":"subrow"}]}]}]}]}},"sourceSpan":{"start":[82,3],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[82,76]}},{"comments":null,"title":"mulRecord","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Data","RowList"],"RLProxy"]},{"annotation":[],"tag":"TypeVar","contents":"rowlist"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"TypeVar","contents":"row"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"TypeVar","contents":"row"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"TypeVar","contents":"subrow"}]}]}]}]}},"sourceSpan":{"start":[83,3],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[83,76]}},{"comments":null,"title":"oneRecord","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Data","RowList"],"RLProxy"]},{"annotation":[],"tag":"TypeVar","contents":"rowlist"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Data","Row"],"RProxy"]},{"annotation":[],"tag":"TypeVar","contents":"row"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"TypeVar","contents":"subrow"}]}]}]}},"sourceSpan":{"start":[84,3],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[84,62]}},{"comments":null,"title":"zeroRecord","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Data","RowList"],"RLProxy"]},{"annotation":[],"tag":"TypeVar","contents":"rowlist"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Data","Row"],"RProxy"]},{"annotation":[],"tag":"TypeVar","contents":"row"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"TypeVar","contents":"subrow"}]}]}]}},"sourceSpan":{"start":[85,3],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[85,63]}},{"comments":null,"title":"semiringRecordNil","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semiring"],"SemiringRecord"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim","RowList"],"Nil"]}]},{"annotation":[],"tag":"TypeVar","contents":"row"}]},{"annotation":[],"tag":"REmpty"}]}},"sourceSpan":{"start":[87,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[91,22]}},{"comments":null,"title":"semiringRecordCons","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Symbol"],"IsSymbol"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"key"}],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Prim","Row"],"Cons"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"key"},{"annotation":[],"tag":"TypeVar","contents":"focus"},{"annotation":[],"tag":"TypeVar","contents":"subrowTail"},{"annotation":[],"tag":"TypeVar","contents":"subrow"}],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","Semiring"],"SemiringRecord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"rowlistTail"},{"annotation":[],"tag":"TypeVar","contents":"row"},{"annotation":[],"tag":"TypeVar","contents":"subrowTail"}],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","Semiring"],"Semiring"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"focus"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semiring"],"SemiringRecord"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim","RowList"],"Cons"]},{"annotation":[],"tag":"TypeVar","contents":"key"}]},{"annotation":[],"tag":"TypeVar","contents":"focus"}]},{"annotation":[],"tag":"TypeVar","contents":"rowlistTail"}]}]},{"annotation":[],"tag":"TypeVar","contents":"row"}]},{"annotation":[],"tag":"TypeVar","contents":"subrow"}]}},"sourceSpan":{"start":[93,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[124,76]}}],"comments":"A class for records where all fields have `Semiring` instances, used to\nimplement the `Semiring` instance for records.\n","title":"SemiringRecord","info":{"fundeps":[[["rowlist"],["subrow"]]],"arguments":[["rowlist",null],["row",null],["subrow",null]],"declType":"typeClass","superclasses":[]},"sourceSpan":{"start":[81,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[85,63]}}]}
+{"comments":null,"declarations":[{"children":[{"comments":null,"info":{"declType":"typeClassMember","type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[45,21],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","start":[45,3]},"title":"add"},{"comments":null,"info":{"declType":"typeClassMember","type":{"annotation":[],"contents":"a","tag":"TypeVar"}},"sourceSpan":{"end":[46,12],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","start":[46,3]},"title":"zero"},{"comments":null,"info":{"declType":"typeClassMember","type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[47,21],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","start":[47,3]},"title":"mul"},{"comments":null,"info":{"declType":"typeClassMember","type":{"annotation":[],"contents":"a","tag":"TypeVar"}},"sourceSpan":{"end":[48,11],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","start":[48,3]},"title":"one"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Semiring"],"Semiring"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[57,10],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","start":[53,1]},"title":"semiringInt"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Semiring"],"Semiring"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Number"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[63,12],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","start":[59,1]},"title":"semiringNumber"},{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"b","tag":"TypeVar"}],"constraintClass":[["Data","Semiring"],"Semiring"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Semiring"],"Semiring"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[69,18],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","start":[65,1]},"title":"semiringFn"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Semiring"],"Semiring"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Unit"],"Unit"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[75,13],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","start":[71,1]},"title":"semiringUnit"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Semiring"],"Semiring"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Type","Proxy"],"Proxy"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[81,15],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","start":[77,1]},"title":"semiringProxy"},{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"row","tag":"TypeVar"},{"annotation":[],"contents":"list","tag":"TypeVar"}],"constraintClass":[["Prim","RowList"],"RowToList"],"constraintData":null,"constraintKindArgs":[]},{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"list","tag":"TypeVar"},{"annotation":[],"contents":"row","tag":"TypeVar"},{"annotation":[],"contents":"row","tag":"TypeVar"}],"constraintClass":[["Data","Semiring"],"SemiringRecord"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Semiring"],"Semiring"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Record"],"tag":"TypeConstructor"},{"annotation":[],"contents":"row","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[87,63],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","start":[83,1]},"title":"semiringRecord"}],"comments":"The `Semiring` class is for types that support an addition and\nmultiplication operation.\n\nInstances must satisfy the following laws:\n\n- Commutative monoid under addition:\n  - Associativity: `(a + b) + c = a + (b + c)`\n  - Identity: `zero + a = a + zero = a`\n  - Commutative: `a + b = b + a`\n- Monoid under multiplication:\n  - Associativity: `(a * b) * c = a * (b * c)`\n  - Identity: `one * a = a * one = a`\n- Multiplication distributes over addition:\n  - Left distributivity: `a * (b + c) = (a * b) + (a * c)`\n  - Right distributivity: `(a + b) * c = (a * c) + (b * c)`\n- Annihilation: `zero * a = a * zero = zero`\n\n**Note:** The `Number` and `Int` types are not fully law abiding\nmembers of this class hierarchy due to the potential for arithmetic\noverflows, and in the case of `Number`, the presence of `NaN` and\n`Infinity` values. The behaviour is unspecified in these cases.\n","info":{"arguments":[["a",null]],"declType":"typeClass","fundeps":[],"superclasses":[]},"kind":null,"sourceSpan":{"end":[48,11],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","start":[44,1]},"title":"Semiring"},{"children":[],"comments":null,"info":{"alias":[["Data","Semiring"],{"Right":{"Left":{"Ident":"add"}}}],"declType":"alias","fixity":{"associativity":"infixl","precedence":6}},"kind":null,"sourceSpan":{"end":[50,18],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","start":[50,1]},"title":"(+)"},{"children":[],"comments":null,"info":{"alias":[["Data","Semiring"],{"Right":{"Left":{"Ident":"mul"}}}],"declType":"alias","fixity":{"associativity":"infixl","precedence":7}},"kind":null,"sourceSpan":{"end":[51,18],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","start":[51,1]},"title":"(*)"},{"children":[{"comments":null,"info":{"declType":"typeClassMember","type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Type","Proxy"],"Proxy"],"tag":"TypeConstructor"},{"annotation":[],"contents":"rowlist","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Record"],"tag":"TypeConstructor"},{"annotation":[],"contents":"row","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Record"],"tag":"TypeConstructor"},{"annotation":[],"contents":"row","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Record"],"tag":"TypeConstructor"},{"annotation":[],"contents":"subrow","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[98,74],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","start":[98,3]},"title":"addRecord"},{"comments":null,"info":{"declType":"typeClassMember","type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Type","Proxy"],"Proxy"],"tag":"TypeConstructor"},{"annotation":[],"contents":"rowlist","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Record"],"tag":"TypeConstructor"},{"annotation":[],"contents":"row","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Record"],"tag":"TypeConstructor"},{"annotation":[],"contents":"row","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Record"],"tag":"TypeConstructor"},{"annotation":[],"contents":"subrow","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[99,74],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","start":[99,3]},"title":"mulRecord"},{"comments":null,"info":{"declType":"typeClassMember","type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Type","Proxy"],"Proxy"],"tag":"TypeConstructor"},{"annotation":[],"contents":"rowlist","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Type","Proxy"],"Proxy"],"tag":"TypeConstructor"},{"annotation":[],"contents":"row","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Record"],"tag":"TypeConstructor"},{"annotation":[],"contents":"subrow","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[100,59],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","start":[100,3]},"title":"oneRecord"},{"comments":null,"info":{"declType":"typeClassMember","type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Type","Proxy"],"Proxy"],"tag":"TypeConstructor"},{"annotation":[],"contents":"rowlist","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Type","Proxy"],"Proxy"],"tag":"TypeConstructor"},{"annotation":[],"contents":"row","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Record"],"tag":"TypeConstructor"},{"annotation":[],"contents":"subrow","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[101,60],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","start":[101,3]},"title":"zeroRecord"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Semiring"],"SemiringRecord"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim","RowList"],"Nil"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":"row","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"tag":"REmpty"}],"tag":"TypeApp"}},"sourceSpan":{"end":[107,22],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","start":[103,1]},"title":"semiringRecordNil"},{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"key","tag":"TypeVar"}],"constraintClass":[["Data","Symbol"],"IsSymbol"],"constraintData":null,"constraintKindArgs":[]},{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"key","tag":"TypeVar"},{"annotation":[],"contents":"focus","tag":"TypeVar"},{"annotation":[],"contents":"subrowTail","tag":"TypeVar"},{"annotation":[],"contents":"subrow","tag":"TypeVar"}],"constraintClass":[["Prim","Row"],"Cons"],"constraintData":null,"constraintKindArgs":[]},{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"rowlistTail","tag":"TypeVar"},{"annotation":[],"contents":"row","tag":"TypeVar"},{"annotation":[],"contents":"subrowTail","tag":"TypeVar"}],"constraintClass":[["Data","Semiring"],"SemiringRecord"],"constraintData":null,"constraintKindArgs":[]},{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"focus","tag":"TypeVar"}],"constraintClass":[["Data","Semiring"],"Semiring"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Semiring"],"SemiringRecord"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim","RowList"],"Cons"],"tag":"TypeConstructor"},{"annotation":[],"contents":"key","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"focus","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"rowlistTail","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":"row","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"subrow","tag":"TypeVar"}],"tag":"TypeApp"}},"sourceSpan":{"end":[140,74],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","start":[109,1]},"title":"semiringRecordCons"}],"comments":"A class for records where all fields have `Semiring` instances, used to\nimplement the `Semiring` instance for records.\n","info":{"arguments":[["rowlist",null],["row",null],["subrow",null]],"declType":"typeClass","fundeps":[[["rowlist"],["subrow"]]],"superclasses":[]},"kind":{"keyword":"class","kind":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim","RowList"],"RowList"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Row"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Row"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim"],"Constraint"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[101,60],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","start":[97,1]},"title":"SemiringRecord"}],"name":"Data.Semiring","reExports":[]}
diff --git a/tests/purs/publish/basic-example/output/Data.Semiring/externs.json b/tests/purs/publish/basic-example/output/Data.Semiring/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.Semiring/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Data","Semiring"],"efExports":[{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[124,76]},"Semiring"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[124,76]},{"Ident":"add"}]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[124,76]},"+"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[124,76]},{"Ident":"zero"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[124,76]},{"Ident":"mul"}]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[124,76]},"*"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[124,76]},{"Ident":"one"}]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[124,76]},"SemiringRecord"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[124,76]},{"Ident":"addRecord"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[124,76]},{"Ident":"mulRecord"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[124,76]},{"Ident":"oneRecord"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[124,76]},{"Ident":"zeroRecord"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"semiringInt"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"semiringNumber"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"semiringFn"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"semiringUnit"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"semiringRecord"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"semiringRecordNil"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"semiringRecordCons"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Data","Symbol"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[6,21],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[6,35]},"IsSymbol"]},{"TypeRef":[{"start":[6,37],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[6,47]},"SProxy",null]},{"ValueRef":[{"start":[6,49],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[6,62]},{"Ident":"reflectSymbol"}]}]},"eiImportedAs":null},{"eiModule":["Data","Unit"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[7,19],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[7,23]},"Unit",[]]},{"ValueRef":[{"start":[7,25],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[7,29]},{"Ident":"unit"}]}]},"eiImportedAs":null},{"eiModule":["Prim","Row"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Row"]},{"eiModule":["Prim","RowList"],"eiImportType":{"Implicit":[]},"eiImportedAs":["RL"]},{"eiModule":["Record","Unsafe"],"eiImportType":{"Explicit":[{"ValueRef":[{"start":[10,23],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[10,32]},{"Ident":"unsafeGet"}]},{"ValueRef":[{"start":[10,34],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[10,43]},{"Ident":"unsafeSet"}]}]},"eiImportedAs":null},{"eiModule":["Type","Data","Row"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[11,23],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[11,33]},"RProxy",null]}]},"eiImportedAs":null},{"eiModule":["Type","Data","RowList"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[12,27],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[12,38]},"RLProxy",null]}]},"eiImportedAs":null}],"efFixities":[{"efAssociativity":"infixl","efPrecedence":6,"efOperator":"+","efAlias":[["Data","Semiring"],{"Left":{"Ident":"add"}}]},{"efAssociativity":"infixl","efPrecedence":7,"efOperator":"*","efAlias":[["Data","Semiring"],{"Left":{"Ident":"mul"}}]}],"efTypeFixities":[],"efDeclarations":[{"EDType":{"edTypeName":"Semiring","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[36,13],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[36,15]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"Semiring","edTypeSynonymArguments":[["a",null]],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["add",{"annotation":[{"start":[36,11],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[36,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,11],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[36,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,13],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[36,15]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[36,11],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[36,12]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[36,16],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[36,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,16],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[36,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,18],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[36,20]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[36,16],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[36,17]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[36,21],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[36,22]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["zero",{"annotation":[{"start":[37,11],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[37,12]},[]],"tag":"TypeVar","contents":"a"},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["mul",{"annotation":[{"start":[38,11],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[38,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[38,11],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[38,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[38,13],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[38,15]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[38,11],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[38,12]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[38,16],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[38,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[38,16],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[38,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[38,18],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[38,20]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[38,16],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[38,17]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[38,21],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[38,22]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["one",{"annotation":[{"start":[39,11],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[39,12]},[]],"tag":"TypeVar","contents":"a"},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]}]}]}]}}},{"EDClass":{"edClassName":"Semiring","edClassTypeArguments":[["a",null]],"edClassMembers":[[{"Ident":"add"},{"annotation":[{"start":[36,11],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[36,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,11],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[36,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,13],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[36,15]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[36,11],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[36,12]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[36,16],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[36,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,16],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[36,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,18],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[36,20]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[36,16],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[36,17]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[36,21],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[36,22]},[]],"tag":"TypeVar","contents":"a"}]}]}],[{"Ident":"zero"},{"annotation":[{"start":[37,11],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[37,12]},[]],"tag":"TypeVar","contents":"a"}],[{"Ident":"mul"},{"annotation":[{"start":[38,11],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[38,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[38,11],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[38,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[38,13],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[38,15]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[38,11],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[38,12]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[38,16],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[38,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[38,16],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[38,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[38,18],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[38,20]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[38,16],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[38,17]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[38,21],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[38,22]},[]],"tag":"TypeVar","contents":"a"}]}]}],[{"Ident":"one"},{"annotation":[{"start":[39,11],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[39,12]},[]],"tag":"TypeVar","contents":"a"}]],"edClassConstraints":[],"edFunctionalDependencies":[]}},{"EDValue":{"edValueName":{"Ident":"add"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["Data","Semiring"],"Semiring"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[36,11],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[36,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,11],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[36,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,13],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[36,15]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[36,11],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[36,12]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[36,16],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[36,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,16],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[36,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,18],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[36,20]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[36,16],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[36,17]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[36,21],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[36,22]},[]],"tag":"TypeVar","contents":"a"}]}]}]},27]}}},{"EDValue":{"edValueName":{"Ident":"zero"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["Data","Semiring"],"Semiring"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[37,11],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[37,12]},[]],"tag":"TypeVar","contents":"a"}]},3]}}},{"EDValue":{"edValueName":{"Ident":"mul"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["Data","Semiring"],"Semiring"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[38,11],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[38,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[38,11],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[38,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[38,13],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[38,15]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[38,11],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[38,12]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[38,16],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[38,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[38,16],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[38,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[38,18],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[38,20]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[38,16],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[38,17]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[38,21],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[38,22]},[]],"tag":"TypeVar","contents":"a"}]}]}]},13]}}},{"EDValue":{"edValueName":{"Ident":"one"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["Data","Semiring"],"Semiring"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[39,11],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[39,12]},[]],"tag":"TypeVar","contents":"a"}]},9]}}},{"EDType":{"edTypeName":"SemiringRecord","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[82,16],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[82,23]},[]],"tag":"NamedKind","contents":[["Prim","RowList"],"RowList"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[82,35],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[82,41]},[]],"tag":"Row","contents":{"annotation":[{"start":[82,35],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[82,41]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[82,63],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[82,69]},[]],"tag":"Row","contents":{"annotation":[{"start":[82,63],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[82,69]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"SemiringRecord","edTypeSynonymArguments":[["rowlist",null],["row",null],["subrow",null]],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["addRecord",{"annotation":[{"start":[82,16],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[82,76]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[82,16],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[82,76]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[82,32],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[82,34]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[82,16],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[82,31]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[82,16],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[82,23]},[]],"tag":"TypeConstructor","contents":[["Type","Data","RowList"],"RLProxy"]},{"annotation":[{"start":[82,24],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[82,31]},[]],"tag":"TypeVar","contents":"rowlist"}]}]},{"annotation":[{"start":[82,35],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[82,76]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[82,35],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[82,76]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[82,46],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[82,48]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[82,35],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[82,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[82,35],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[82,41]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[82,42],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[82,45]},[]],"tag":"TypeVar","contents":"row"}]}]},{"annotation":[{"start":[82,49],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[82,76]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[82,49],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[82,76]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[82,60],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[82,62]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[82,49],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[82,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[82,49],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[82,55]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[82,56],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[82,59]},[]],"tag":"TypeVar","contents":"row"}]}]},{"annotation":[{"start":[82,63],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[82,76]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[82,63],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[82,69]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[82,70],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[82,76]},[]],"tag":"TypeVar","contents":"subrow"}]}]}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["mulRecord",{"annotation":[{"start":[83,16],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[83,76]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[83,16],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[83,76]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[83,32],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[83,34]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[83,16],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[83,31]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[83,16],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[83,23]},[]],"tag":"TypeConstructor","contents":[["Type","Data","RowList"],"RLProxy"]},{"annotation":[{"start":[83,24],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[83,31]},[]],"tag":"TypeVar","contents":"rowlist"}]}]},{"annotation":[{"start":[83,35],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[83,76]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[83,35],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[83,76]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[83,46],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[83,48]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[83,35],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[83,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[83,35],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[83,41]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[83,42],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[83,45]},[]],"tag":"TypeVar","contents":"row"}]}]},{"annotation":[{"start":[83,49],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[83,76]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[83,49],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[83,76]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[83,60],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[83,62]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[83,49],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[83,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[83,49],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[83,55]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[83,56],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[83,59]},[]],"tag":"TypeVar","contents":"row"}]}]},{"annotation":[{"start":[83,63],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[83,76]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[83,63],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[83,69]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[83,70],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[83,76]},[]],"tag":"TypeVar","contents":"subrow"}]}]}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["oneRecord",{"annotation":[{"start":[84,16],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[84,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[84,16],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[84,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[84,32],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[84,34]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[84,16],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[84,31]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[84,16],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[84,23]},[]],"tag":"TypeConstructor","contents":[["Type","Data","RowList"],"RLProxy"]},{"annotation":[{"start":[84,24],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[84,31]},[]],"tag":"TypeVar","contents":"rowlist"}]}]},{"annotation":[{"start":[84,35],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[84,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[84,35],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[84,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[84,46],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[84,48]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[84,35],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[84,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[84,35],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[84,41]},[]],"tag":"TypeConstructor","contents":[["Type","Data","Row"],"RProxy"]},{"annotation":[{"start":[84,42],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[84,45]},[]],"tag":"TypeVar","contents":"row"}]}]},{"annotation":[{"start":[84,49],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[84,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[84,49],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[84,55]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[84,56],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[84,62]},[]],"tag":"TypeVar","contents":"subrow"}]}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["zeroRecord",{"annotation":[{"start":[85,17],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[85,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[85,17],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[85,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[85,33],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[85,35]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[85,17],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[85,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[85,17],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[85,24]},[]],"tag":"TypeConstructor","contents":[["Type","Data","RowList"],"RLProxy"]},{"annotation":[{"start":[85,25],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[85,32]},[]],"tag":"TypeVar","contents":"rowlist"}]}]},{"annotation":[{"start":[85,36],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[85,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[85,36],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[85,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[85,47],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[85,49]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[85,36],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[85,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[85,36],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[85,42]},[]],"tag":"TypeConstructor","contents":[["Type","Data","Row"],"RProxy"]},{"annotation":[{"start":[85,43],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[85,46]},[]],"tag":"TypeVar","contents":"row"}]}]},{"annotation":[{"start":[85,50],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[85,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[85,50],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[85,56]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[85,57],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[85,63]},[]],"tag":"TypeVar","contents":"subrow"}]}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]}]}]}]}}},{"EDClass":{"edClassName":"SemiringRecord","edClassTypeArguments":[["rowlist",null],["row",null],["subrow",null]],"edClassMembers":[[{"Ident":"addRecord"},{"annotation":[{"start":[82,16],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[82,76]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[82,16],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[82,76]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[82,32],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[82,34]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[82,16],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[82,31]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[82,16],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[82,23]},[]],"tag":"TypeConstructor","contents":[["Type","Data","RowList"],"RLProxy"]},{"annotation":[{"start":[82,24],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[82,31]},[]],"tag":"TypeVar","contents":"rowlist"}]}]},{"annotation":[{"start":[82,35],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[82,76]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[82,35],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[82,76]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[82,46],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[82,48]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[82,35],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[82,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[82,35],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[82,41]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[82,42],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[82,45]},[]],"tag":"TypeVar","contents":"row"}]}]},{"annotation":[{"start":[82,49],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[82,76]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[82,49],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[82,76]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[82,60],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[82,62]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[82,49],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[82,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[82,49],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[82,55]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[82,56],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[82,59]},[]],"tag":"TypeVar","contents":"row"}]}]},{"annotation":[{"start":[82,63],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[82,76]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[82,63],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[82,69]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[82,70],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[82,76]},[]],"tag":"TypeVar","contents":"subrow"}]}]}]}]}],[{"Ident":"mulRecord"},{"annotation":[{"start":[83,16],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[83,76]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[83,16],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[83,76]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[83,32],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[83,34]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[83,16],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[83,31]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[83,16],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[83,23]},[]],"tag":"TypeConstructor","contents":[["Type","Data","RowList"],"RLProxy"]},{"annotation":[{"start":[83,24],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[83,31]},[]],"tag":"TypeVar","contents":"rowlist"}]}]},{"annotation":[{"start":[83,35],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[83,76]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[83,35],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[83,76]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[83,46],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[83,48]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[83,35],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[83,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[83,35],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[83,41]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[83,42],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[83,45]},[]],"tag":"TypeVar","contents":"row"}]}]},{"annotation":[{"start":[83,49],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[83,76]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[83,49],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[83,76]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[83,60],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[83,62]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[83,49],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[83,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[83,49],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[83,55]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[83,56],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[83,59]},[]],"tag":"TypeVar","contents":"row"}]}]},{"annotation":[{"start":[83,63],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[83,76]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[83,63],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[83,69]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[83,70],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[83,76]},[]],"tag":"TypeVar","contents":"subrow"}]}]}]}]}],[{"Ident":"oneRecord"},{"annotation":[{"start":[84,16],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[84,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[84,16],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[84,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[84,32],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[84,34]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[84,16],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[84,31]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[84,16],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[84,23]},[]],"tag":"TypeConstructor","contents":[["Type","Data","RowList"],"RLProxy"]},{"annotation":[{"start":[84,24],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[84,31]},[]],"tag":"TypeVar","contents":"rowlist"}]}]},{"annotation":[{"start":[84,35],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[84,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[84,35],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[84,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[84,46],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[84,48]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[84,35],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[84,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[84,35],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[84,41]},[]],"tag":"TypeConstructor","contents":[["Type","Data","Row"],"RProxy"]},{"annotation":[{"start":[84,42],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[84,45]},[]],"tag":"TypeVar","contents":"row"}]}]},{"annotation":[{"start":[84,49],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[84,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[84,49],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[84,55]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[84,56],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[84,62]},[]],"tag":"TypeVar","contents":"subrow"}]}]}]}],[{"Ident":"zeroRecord"},{"annotation":[{"start":[85,17],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[85,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[85,17],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[85,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[85,33],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[85,35]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[85,17],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[85,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[85,17],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[85,24]},[]],"tag":"TypeConstructor","contents":[["Type","Data","RowList"],"RLProxy"]},{"annotation":[{"start":[85,25],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[85,32]},[]],"tag":"TypeVar","contents":"rowlist"}]}]},{"annotation":[{"start":[85,36],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[85,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[85,36],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[85,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[85,47],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[85,49]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[85,36],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[85,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[85,36],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[85,42]},[]],"tag":"TypeConstructor","contents":[["Type","Data","Row"],"RProxy"]},{"annotation":[{"start":[85,43],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[85,46]},[]],"tag":"TypeVar","contents":"row"}]}]},{"annotation":[{"start":[85,50],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[85,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[85,50],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[85,56]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[85,57],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[85,63]},[]],"tag":"TypeVar","contents":"subrow"}]}]}]}]],"edClassConstraints":[],"edFunctionalDependencies":[{"determiners":[0],"determined":[2]}]}},{"EDValue":{"edValueName":{"Ident":"addRecord"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["rowlist",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["row",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["subrow",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["Data","Semiring"],"SemiringRecord"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"rowlist"},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"row"},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"subrow"}],"constraintData":null},{"annotation":[{"start":[82,16],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[82,76]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[82,16],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[82,76]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[82,32],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[82,34]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[82,16],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[82,31]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[82,16],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[82,23]},[]],"tag":"TypeConstructor","contents":[["Type","Data","RowList"],"RLProxy"]},{"annotation":[{"start":[82,24],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[82,31]},[]],"tag":"TypeVar","contents":"rowlist"}]}]},{"annotation":[{"start":[82,35],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[82,76]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[82,35],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[82,76]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[82,46],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[82,48]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[82,35],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[82,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[82,35],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[82,41]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[82,42],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[82,45]},[]],"tag":"TypeVar","contents":"row"}]}]},{"annotation":[{"start":[82,49],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[82,76]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[82,49],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[82,76]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[82,60],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[82,62]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[82,49],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[82,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[82,49],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[82,55]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[82,56],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[82,59]},[]],"tag":"TypeVar","contents":"row"}]}]},{"annotation":[{"start":[82,63],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[82,76]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[82,63],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[82,69]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[82,70],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[82,76]},[]],"tag":"TypeVar","contents":"subrow"}]}]}]}]}]},14]},15]},16]}}},{"EDValue":{"edValueName":{"Ident":"mulRecord"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["rowlist",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["row",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["subrow",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["Data","Semiring"],"SemiringRecord"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"rowlist"},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"row"},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"subrow"}],"constraintData":null},{"annotation":[{"start":[83,16],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[83,76]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[83,16],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[83,76]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[83,32],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[83,34]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[83,16],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[83,31]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[83,16],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[83,23]},[]],"tag":"TypeConstructor","contents":[["Type","Data","RowList"],"RLProxy"]},{"annotation":[{"start":[83,24],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[83,31]},[]],"tag":"TypeVar","contents":"rowlist"}]}]},{"annotation":[{"start":[83,35],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[83,76]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[83,35],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[83,76]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[83,46],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[83,48]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[83,35],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[83,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[83,35],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[83,41]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[83,42],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[83,45]},[]],"tag":"TypeVar","contents":"row"}]}]},{"annotation":[{"start":[83,49],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[83,76]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[83,49],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[83,76]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[83,60],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[83,62]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[83,49],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[83,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[83,49],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[83,55]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[83,56],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[83,59]},[]],"tag":"TypeVar","contents":"row"}]}]},{"annotation":[{"start":[83,63],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[83,76]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[83,63],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[83,69]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[83,70],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[83,76]},[]],"tag":"TypeVar","contents":"subrow"}]}]}]}]}]},10]},11]},12]}}},{"EDValue":{"edValueName":{"Ident":"oneRecord"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["rowlist",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["row",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["subrow",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["Data","Semiring"],"SemiringRecord"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"rowlist"},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"row"},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"subrow"}],"constraintData":null},{"annotation":[{"start":[84,16],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[84,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[84,16],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[84,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[84,32],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[84,34]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[84,16],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[84,31]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[84,16],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[84,23]},[]],"tag":"TypeConstructor","contents":[["Type","Data","RowList"],"RLProxy"]},{"annotation":[{"start":[84,24],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[84,31]},[]],"tag":"TypeVar","contents":"rowlist"}]}]},{"annotation":[{"start":[84,35],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[84,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[84,35],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[84,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[84,46],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[84,48]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[84,35],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[84,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[84,35],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[84,41]},[]],"tag":"TypeConstructor","contents":[["Type","Data","Row"],"RProxy"]},{"annotation":[{"start":[84,42],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[84,45]},[]],"tag":"TypeVar","contents":"row"}]}]},{"annotation":[{"start":[84,49],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[84,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[84,49],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[84,55]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[84,56],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[84,62]},[]],"tag":"TypeVar","contents":"subrow"}]}]}]}]},6]},7]},8]}}},{"EDValue":{"edValueName":{"Ident":"zeroRecord"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["rowlist",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["row",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["subrow",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["Data","Semiring"],"SemiringRecord"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"rowlist"},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"row"},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"subrow"}],"constraintData":null},{"annotation":[{"start":[85,17],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[85,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[85,17],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[85,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[85,33],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[85,35]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[85,17],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[85,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[85,17],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[85,24]},[]],"tag":"TypeConstructor","contents":[["Type","Data","RowList"],"RLProxy"]},{"annotation":[{"start":[85,25],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[85,32]},[]],"tag":"TypeVar","contents":"rowlist"}]}]},{"annotation":[{"start":[85,36],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[85,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[85,36],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[85,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[85,47],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[85,49]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[85,36],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[85,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[85,36],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[85,42]},[]],"tag":"TypeConstructor","contents":[["Type","Data","Row"],"RProxy"]},{"annotation":[{"start":[85,43],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[85,46]},[]],"tag":"TypeVar","contents":"row"}]}]},{"annotation":[{"start":[85,50],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[85,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[85,50],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[85,56]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[85,57],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[85,63]},[]],"tag":"TypeVar","contents":"subrow"}]}]}]}]},0]},1]},2]}}},{"EDInstance":{"edInstanceClassName":[["Data","Semiring"],"Semiring"],"edInstanceName":{"Ident":"semiringInt"},"edInstanceTypes":[{"annotation":[{"start":[44,34],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[44,37]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Semiring"],{"Ident":"semiringInt"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Semiring"],"Semiring"],"edInstanceName":{"Ident":"semiringNumber"},"edInstanceTypes":[{"annotation":[{"start":[50,37],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[50,43]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Semiring"],{"Ident":"semiringNumber"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Semiring"],"Semiring"],"edInstanceName":{"Ident":"semiringFn"},"edInstanceTypes":[{"annotation":[{"start":[56,48],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[56,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[56,48],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[56,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[56,50],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[56,52]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[56,48],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[56,49]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[56,53],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[56,54]},[]],"tag":"TypeVar","contents":"b"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[56,24],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[56,34]},[]],"constraintClass":[["Data","Semiring"],"Semiring"],"constraintArgs":[{"annotation":[{"start":[56,33],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[56,34]},[]],"tag":"TypeVar","contents":"b"}],"constraintData":null}],"edInstanceChain":[[["Data","Semiring"],{"Ident":"semiringFn"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Semiring"],"Semiring"],"edInstanceName":{"Ident":"semiringUnit"},"edInstanceTypes":[{"annotation":[{"start":[62,35],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[62,39]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Semiring"],{"Ident":"semiringUnit"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Semiring"],"Semiring"],"edInstanceName":{"Ident":"semiringRecord"},"edInstanceTypes":[{"annotation":[{"start":[68,94],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[68,104]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[68,94],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[68,100]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[68,101],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[68,104]},[]],"tag":"TypeVar","contents":"row"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[68,29],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[68,50]},[]],"constraintClass":[["Prim","RowList"],"RowToList"],"constraintArgs":[{"annotation":[{"start":[68,42],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[68,45]},[]],"tag":"TypeVar","contents":"row"},{"annotation":[{"start":[68,46],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[68,50]},[]],"tag":"TypeVar","contents":"list"}],"constraintData":null},{"constraintAnn":[{"start":[68,52],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[68,79]},[]],"constraintClass":[["Data","Semiring"],"SemiringRecord"],"constraintArgs":[{"annotation":[{"start":[68,67],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[68,71]},[]],"tag":"TypeVar","contents":"list"},{"annotation":[{"start":[68,72],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[68,75]},[]],"tag":"TypeVar","contents":"row"},{"annotation":[{"start":[68,76],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[68,79]},[]],"tag":"TypeVar","contents":"row"}],"constraintData":null}],"edInstanceChain":[[["Data","Semiring"],{"Ident":"semiringRecord"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Semiring"],"SemiringRecord"],"edInstanceName":{"Ident":"semiringRecordNil"},"edInstanceTypes":[{"annotation":[{"start":[87,46],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[87,52]},[]],"tag":"TypeConstructor","contents":[["Prim","RowList"],"Nil"]},{"annotation":[{"start":[87,53],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[87,56]},[]],"tag":"TypeVar","contents":"row"},{"annotation":[{"start":[87,58],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[87,59]},[]],"tag":"REmpty"}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Semiring"],{"Ident":"semiringRecordNil"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Semiring"],"SemiringRecord"],"edInstanceName":{"Ident":"semiringRecordCons"},"edInstanceTypes":[{"annotation":[{"start":[99,24],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[99,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[99,24],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[99,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[99,24],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[99,35]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[99,24],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[99,31]},[]],"tag":"TypeConstructor","contents":[["Prim","RowList"],"Cons"]},{"annotation":[{"start":[99,32],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[99,35]},[]],"tag":"TypeVar","contents":"key"}]},{"annotation":[{"start":[99,36],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[99,41]},[]],"tag":"TypeVar","contents":"focus"}]},{"annotation":[{"start":[99,42],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[99,53]},[]],"tag":"TypeVar","contents":"rowlistTail"}]},{"annotation":[{"start":[99,55],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[99,58]},[]],"tag":"TypeVar","contents":"row"},{"annotation":[{"start":[99,59],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[99,65]},[]],"tag":"TypeVar","contents":"subrow"}],"edInstanceConstraints":[{"constraintAnn":[{"start":[94,10],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[94,22]},[]],"constraintClass":[["Data","Symbol"],"IsSymbol"],"constraintArgs":[{"annotation":[{"start":[94,19],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[94,22]},[]],"tag":"TypeVar","contents":"key"}],"constraintData":null},{"constraintAnn":[{"start":[95,10],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[95,46]},[]],"constraintClass":[["Prim","Row"],"Cons"],"constraintArgs":[{"annotation":[{"start":[95,19],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[95,22]},[]],"tag":"TypeVar","contents":"key"},{"annotation":[{"start":[95,23],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[95,28]},[]],"tag":"TypeVar","contents":"focus"},{"annotation":[{"start":[95,29],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[95,39]},[]],"tag":"TypeVar","contents":"subrowTail"},{"annotation":[{"start":[95,40],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[95,46]},[]],"tag":"TypeVar","contents":"subrow"}],"constraintData":null},{"constraintAnn":[{"start":[96,10],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[96,51]},[]],"constraintClass":[["Data","Semiring"],"SemiringRecord"],"constraintArgs":[{"annotation":[{"start":[96,25],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[96,36]},[]],"tag":"TypeVar","contents":"rowlistTail"},{"annotation":[{"start":[96,37],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[96,40]},[]],"tag":"TypeVar","contents":"row"},{"annotation":[{"start":[96,41],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[96,51]},[]],"tag":"TypeVar","contents":"subrowTail"}],"constraintData":null},{"constraintAnn":[{"start":[97,10],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[97,24]},[]],"constraintClass":[["Data","Semiring"],"Semiring"],"constraintArgs":[{"annotation":[{"start":[97,19],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[97,24]},[]],"tag":"TypeVar","contents":"focus"}],"constraintData":null}],"edInstanceChain":[[["Data","Semiring"],{"Ident":"semiringRecordCons"}]],"edInstanceChainIndex":0}}],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs","end":[124,76]}}
diff --git a/tests/purs/publish/basic-example/output/Data.Show.Generic/docs.json b/tests/purs/publish/basic-example/output/Data.Show.Generic/docs.json
new file mode 100644
--- /dev/null
+++ b/tests/purs/publish/basic-example/output/Data.Show.Generic/docs.json
@@ -0,0 +1,1 @@
+{"comments":null,"declarations":[{"children":[{"comments":null,"info":{"declType":"typeClassMember","type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim"],"String"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[15,30],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show/Generic.purs","start":[15,3]},"title":"genericShow'"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Show","Generic"],"GenericShow"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Generic","Rep"],"NoConstructors"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[21,34],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show/Generic.purs","start":[20,1]},"title":"genericShowNoConstructors"},{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","Show","Generic"],"GenericShow"],"constraintData":null,"constraintKindArgs":[]},{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"b","tag":"TypeVar"}],"constraintClass":[["Data","Show","Generic"],"GenericShow"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Show","Generic"],"GenericShow"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Generic","Rep"],"Sum"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[28,40],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show/Generic.purs","start":[26,1]},"title":"genericShowSum"},{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","Show","Generic"],"GenericShowArgs"],"constraintData":null,"constraintKindArgs":[]},{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"name","tag":"TypeVar"}],"constraintClass":[["Data","Symbol"],"IsSymbol"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Show","Generic"],"GenericShow"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Generic","Rep"],"Constructor"],"tag":"TypeConstructor"},{"annotation":[],"contents":"name","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[48,47],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show/Generic.purs","start":[37,1]},"title":"genericShowConstructor"}],"comments":null,"info":{"arguments":[["a",null]],"declType":"typeClass","fundeps":[],"superclasses":[]},"kind":null,"sourceSpan":{"end":[15,30],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show/Generic.purs","start":[14,1]},"title":"GenericShow"},{"children":[],"comments":"A `Generic` implementation of the `show` member from the `Show` type class.\n","info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"rep","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"},{"annotation":[],"contents":"rep","tag":"TypeVar"}],"constraintClass":[["Data","Generic","Rep"],"Generic"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"rep","tag":"TypeVar"}],"constraintClass":[["Data","Show","Generic"],"GenericShow"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim"],"String"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"ConstrainedType"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[54,77],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show/Generic.purs","start":[54,1]},"title":"genericShow"},{"children":[{"comments":null,"info":{"declType":"typeClassMember","type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Array"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"String"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[18,39],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show/Generic.purs","start":[18,3]},"title":"genericShowArgs"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Show","Generic"],"GenericShowArgs"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Generic","Rep"],"NoArguments"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[24,25],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show/Generic.purs","start":[23,1]},"title":"genericShowArgsNoArguments"},{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","Show","Generic"],"GenericShowArgs"],"constraintData":null,"constraintKindArgs":[]},{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"b","tag":"TypeVar"}],"constraintClass":[["Data","Show","Generic"],"GenericShowArgs"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Show","Generic"],"GenericShowArgs"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Generic","Rep"],"Product"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[35,73],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show/Generic.purs","start":[30,1]},"title":"genericShowArgsProduct"},{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","Show"],"Show"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Show","Generic"],"GenericShowArgs"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Generic","Rep"],"Argument"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[51,44],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show/Generic.purs","start":[50,1]},"title":"genericShowArgsArgument"}],"comments":null,"info":{"arguments":[["a",null]],"declType":"typeClass","fundeps":[],"superclasses":[]},"kind":null,"sourceSpan":{"end":[18,39],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show/Generic.purs","start":[17,1]},"title":"GenericShowArgs"}],"name":"Data.Show.Generic","reExports":[]}
diff --git a/tests/purs/publish/basic-example/output/Data.Show/docs.json b/tests/purs/publish/basic-example/output/Data.Show/docs.json
--- a/tests/purs/publish/basic-example/output/Data.Show/docs.json
+++ b/tests/purs/publish/basic-example/output/Data.Show/docs.json
@@ -1,1 +1,1 @@
-{"reExports":[],"name":"Data.Show","comments":null,"declarations":[{"children":[{"comments":null,"title":"show","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}},"sourceSpan":{"start":[18,3],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show.purs","end":[18,22]}},{"comments":null,"title":"showBoolean","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Show"],"Show"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}},"sourceSpan":{"start":[20,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show.purs","end":[22,23]}},{"comments":null,"title":"showInt","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Show"],"Show"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}},"sourceSpan":{"start":[24,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show.purs","end":[25,21]}},{"comments":null,"title":"showNumber","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Show"],"Show"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]}},"sourceSpan":{"start":[27,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show.purs","end":[28,24]}},{"comments":null,"title":"showChar","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Show"],"Show"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Char"]}]}},"sourceSpan":{"start":[30,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show.purs","end":[31,22]}},{"comments":null,"title":"showString","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Show"],"Show"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}},"sourceSpan":{"start":[33,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show.purs","end":[34,24]}},{"comments":null,"title":"showArray","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Show"],"Show"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Show"],"Show"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[36,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show.purs","end":[37,28]}},{"comments":null,"title":"showRecord","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Prim","RowList"],"RowToList"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"rs"},{"annotation":[],"tag":"TypeVar","contents":"ls"}],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","Show"],"ShowRecordFields"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"ls"},{"annotation":[],"tag":"TypeVar","contents":"rs"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Show"],"Show"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"TypeVar","contents":"rs"}]}]}},"sourceSpan":{"start":[39,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show.purs","end":[42,52]}}],"comments":"The `Show` type class represents those types which can be converted into\na human-readable `String` representation.\n\nWhile not required, it is recommended that for any expression `x`, the\nstring `show x` be executable PureScript code which evaluates to the same\nvalue as the expression `x`.\n","title":"Show","info":{"fundeps":[],"arguments":[["a",null]],"declType":"typeClass","superclasses":[]},"sourceSpan":{"start":[17,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show.purs","end":[18,22]}},{"children":[{"comments":null,"title":"showRecordFields","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Data","RowList"],"RLProxy"]},{"annotation":[],"tag":"TypeVar","contents":"rowlist"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"TypeVar","contents":"row"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}]}]}},"sourceSpan":{"start":[47,3],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show.purs","end":[47,68]}},{"comments":null,"title":"showRecordFieldsNil","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Show"],"ShowRecordFields"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim","RowList"],"Nil"]}]},{"annotation":[],"tag":"TypeVar","contents":"row"}]}},"sourceSpan":{"start":[49,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show.purs","end":[50,28]}},{"comments":null,"title":"showRecordFieldsCons","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Symbol"],"IsSymbol"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"key"}],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","Show"],"ShowRecordFields"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"rowlistTail"},{"annotation":[],"tag":"TypeVar","contents":"row"}],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","Show"],"Show"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"focus"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Show"],"ShowRecordFields"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim","RowList"],"Cons"]},{"annotation":[],"tag":"TypeVar","contents":"key"}]},{"annotation":[],"tag":"TypeVar","contents":"focus"}]},{"annotation":[],"tag":"TypeVar","contents":"rowlistTail"}]}]},{"annotation":[],"tag":"TypeVar","contents":"row"}]}},"sourceSpan":{"start":[52,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show.purs","end":[63,70]}}],"comments":"A class for records where all fields have `Show` instances, used to\nimplement the `Show` instance for records.\n","title":"ShowRecordFields","info":{"fundeps":[],"arguments":[["rowlist",null],["row",null]],"declType":"typeClass","superclasses":[]},"sourceSpan":{"start":[46,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show.purs","end":[47,68]}}]}
+{"comments":null,"declarations":[{"children":[{"comments":null,"info":{"declType":"typeClassMember","type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim"],"String"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[24,22],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show.purs","start":[24,3]},"title":"show"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Show"],"Show"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Unit"],"Unit"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[27,18],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show.purs","start":[26,1]},"title":"showUnit"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Show"],"Show"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Boolean"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[31,23],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show.purs","start":[29,1]},"title":"showBoolean"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Show"],"Show"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[34,21],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show.purs","start":[33,1]},"title":"showInt"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Show"],"Show"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Number"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[37,24],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show.purs","start":[36,1]},"title":"showNumber"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Show"],"Show"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Char"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[40,22],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show.purs","start":[39,1]},"title":"showChar"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Show"],"Show"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"String"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[43,24],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show.purs","start":[42,1]},"title":"showString"},{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","Show"],"Show"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Show"],"Show"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Array"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[46,28],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show.purs","start":[45,1]},"title":"showArray"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Show"],"Show"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Type","Proxy"],"Proxy"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[49,19],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show.purs","start":[48,1]},"title":"showProxy"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Show"],"Show"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Void"],"Void"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[52,16],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show.purs","start":[51,1]},"title":"showVoid"},{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"rs","tag":"TypeVar"},{"annotation":[],"contents":"rs","tag":"TypeVar"}],"constraintClass":[["Prim","Row"],"Nub"],"constraintData":null,"constraintKindArgs":[]},{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"rs","tag":"TypeVar"},{"annotation":[],"contents":"ls","tag":"TypeVar"}],"constraintClass":[["Prim","RowList"],"RowToList"],"constraintData":null,"constraintKindArgs":[]},{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"ls","tag":"TypeVar"},{"annotation":[],"contents":"rs","tag":"TypeVar"}],"constraintClass":[["Data","Show"],"ShowRecordFields"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Show"],"Show"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Record"],"tag":"TypeConstructor"},{"annotation":[],"contents":"rs","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[60,74],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show.purs","start":[54,1]},"title":"showRecord"}],"comments":"The `Show` type class represents those types which can be converted into\na human-readable `String` representation.\n\nWhile not required, it is recommended that for any expression `x`, the\nstring `show x` be executable PureScript code which evaluates to the same\nvalue as the expression `x`.\n","info":{"arguments":[["a",null]],"declType":"typeClass","fundeps":[],"superclasses":[]},"kind":null,"sourceSpan":{"end":[24,22],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show.purs","start":[23,1]},"title":"Show"},{"children":[{"comments":null,"info":{"declType":"typeClassMember","type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Type","Proxy"],"Proxy"],"tag":"TypeConstructor"},{"annotation":[],"contents":"rowlist","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Record"],"tag":"TypeConstructor"},{"annotation":[],"contents":"row","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim"],"String"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[66,60],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show.purs","start":[66,3]},"title":"showRecordFields"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Show"],"ShowRecordFields"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim","RowList"],"Nil"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":"row","tag":"TypeVar"}],"tag":"TypeApp"}},"sourceSpan":{"end":[69,28],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show.purs","start":[68,1]},"title":"showRecordFieldsNil"},{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"key","tag":"TypeVar"}],"constraintClass":[["Data","Symbol"],"IsSymbol"],"constraintData":null,"constraintKindArgs":[]},{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"focus","tag":"TypeVar"}],"constraintClass":[["Data","Show"],"Show"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Show"],"ShowRecordFields"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim","RowList"],"Cons"],"tag":"TypeConstructor"},{"annotation":[],"contents":"key","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"focus","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim","RowList"],"Nil"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":"row","tag":"TypeVar"}],"tag":"TypeApp"}},"sourceSpan":{"end":[79,42],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show.purs","start":[71,1]},"title":"showRecordFieldsConsNil"},{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"key","tag":"TypeVar"}],"constraintClass":[["Data","Symbol"],"IsSymbol"],"constraintData":null,"constraintKindArgs":[]},{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"rowlistTail","tag":"TypeVar"},{"annotation":[],"contents":"row","tag":"TypeVar"}],"constraintClass":[["Data","Show"],"ShowRecordFields"],"constraintData":null,"constraintKindArgs":[]},{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"focus","tag":"TypeVar"}],"constraintClass":[["Data","Show"],"Show"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Show"],"ShowRecordFields"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim","RowList"],"Cons"],"tag":"TypeConstructor"},{"annotation":[],"contents":"key","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"focus","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"rowlistTail","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":"row","tag":"TypeVar"}],"tag":"TypeApp"}},"sourceSpan":{"end":[91,64],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show.purs","start":[81,1]},"title":"showRecordFieldsCons"}],"comments":"A class for records where all fields have `Show` instances, used to\nimplement the `Show` instance for records.\n","info":{"arguments":[["rowlist",null],["row",null]],"declType":"typeClass","fundeps":[],"superclasses":[]},"kind":{"keyword":"class","kind":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim","RowList"],"RowList"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Row"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim"],"Constraint"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[66,60],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show.purs","start":[65,1]},"title":"ShowRecordFields"}],"name":"Data.Show","reExports":[]}
diff --git a/tests/purs/publish/basic-example/output/Data.Show/externs.json b/tests/purs/publish/basic-example/output/Data.Show/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.Show/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Data","Show"],"efExports":[{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show.purs","end":[71,56]},"Show"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show.purs","end":[71,56]},{"Ident":"show"}]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show.purs","end":[71,56]},"ShowRecordFields"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show.purs","end":[71,56]},{"Ident":"showRecordFields"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"showBoolean"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"showInt"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"showNumber"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"showChar"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"showString"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"showArray"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"showRecord"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"showRecordFieldsNil"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"showRecordFieldsCons"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Data","Symbol"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[6,21],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show.purs","end":[6,35]},"IsSymbol"]},{"TypeRef":[{"start":[6,37],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show.purs","end":[6,47]},"SProxy",null]},{"ValueRef":[{"start":[6,49],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show.purs","end":[6,62]},{"Ident":"reflectSymbol"}]}]},"eiImportedAs":null},{"eiModule":["Prim","RowList"],"eiImportType":{"Implicit":[]},"eiImportedAs":["RL"]},{"eiModule":["Record","Unsafe"],"eiImportType":{"Explicit":[{"ValueRef":[{"start":[8,23],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show.purs","end":[8,32]},{"Ident":"unsafeGet"}]}]},"eiImportedAs":null},{"eiModule":["Type","Data","RowList"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[9,27],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show.purs","end":[9,38]},"RLProxy",null]}]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDType":{"edTypeName":"Show","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[18,13],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show.purs","end":[18,15]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"Show","edTypeSynonymArguments":[["a",null]],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["show",{"annotation":[{"start":[18,11],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show.purs","end":[18,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,11],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show.purs","end":[18,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,13],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show.purs","end":[18,15]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[18,11],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show.purs","end":[18,12]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[18,16],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show.purs","end":[18,22]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]}}},{"EDClass":{"edClassName":"Show","edClassTypeArguments":[["a",null]],"edClassMembers":[[{"Ident":"show"},{"annotation":[{"start":[18,11],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show.purs","end":[18,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,11],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show.purs","end":[18,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,13],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show.purs","end":[18,15]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[18,11],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show.purs","end":[18,12]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[18,16],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show.purs","end":[18,22]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}]],"edClassConstraints":[],"edFunctionalDependencies":[]}},{"EDValue":{"edValueName":{"Ident":"show"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["Data","Show"],"Show"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[18,11],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show.purs","end":[18,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,11],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show.purs","end":[18,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,13],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show.purs","end":[18,15]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[18,11],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show.purs","end":[18,12]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[18,16],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show.purs","end":[18,22]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}]},9]}}},{"EDType":{"edTypeName":"ShowRecordFields","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[47,23],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show.purs","end":[47,30]},[]],"tag":"NamedKind","contents":[["Prim","RowList"],"RowList"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[47,42],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show.purs","end":[47,48]},[]],"tag":"Row","contents":{"annotation":[{"start":[47,42],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show.purs","end":[47,48]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"ShowRecordFields","edTypeSynonymArguments":[["rowlist",null],["row",null]],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["showRecordFields",{"annotation":[{"start":[47,23],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show.purs","end":[47,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[47,23],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show.purs","end":[47,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[47,39],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show.purs","end":[47,41]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[47,23],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show.purs","end":[47,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[47,23],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show.purs","end":[47,30]},[]],"tag":"TypeConstructor","contents":[["Type","Data","RowList"],"RLProxy"]},{"annotation":[{"start":[47,31],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show.purs","end":[47,38]},[]],"tag":"TypeVar","contents":"rowlist"}]}]},{"annotation":[{"start":[47,42],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show.purs","end":[47,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[47,42],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show.purs","end":[47,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[47,53],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show.purs","end":[47,55]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[47,42],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show.purs","end":[47,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[47,42],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show.purs","end":[47,48]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[47,49],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show.purs","end":[47,52]},[]],"tag":"TypeVar","contents":"row"}]}]},{"annotation":[{"start":[47,56],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show.purs","end":[47,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[47,56],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show.purs","end":[47,61]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[47,62],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show.purs","end":[47,68]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]}}},{"EDClass":{"edClassName":"ShowRecordFields","edClassTypeArguments":[["rowlist",null],["row",null]],"edClassMembers":[[{"Ident":"showRecordFields"},{"annotation":[{"start":[47,23],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show.purs","end":[47,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[47,23],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show.purs","end":[47,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[47,39],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show.purs","end":[47,41]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[47,23],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show.purs","end":[47,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[47,23],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show.purs","end":[47,30]},[]],"tag":"TypeConstructor","contents":[["Type","Data","RowList"],"RLProxy"]},{"annotation":[{"start":[47,31],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show.purs","end":[47,38]},[]],"tag":"TypeVar","contents":"rowlist"}]}]},{"annotation":[{"start":[47,42],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show.purs","end":[47,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[47,42],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show.purs","end":[47,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[47,53],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show.purs","end":[47,55]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[47,42],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show.purs","end":[47,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[47,42],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show.purs","end":[47,48]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[47,49],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show.purs","end":[47,52]},[]],"tag":"TypeVar","contents":"row"}]}]},{"annotation":[{"start":[47,56],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show.purs","end":[47,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[47,56],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show.purs","end":[47,61]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[47,62],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show.purs","end":[47,68]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}]}]}]],"edClassConstraints":[],"edFunctionalDependencies":[]}},{"EDValue":{"edValueName":{"Ident":"showRecordFields"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["rowlist",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["row",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["Data","Show"],"ShowRecordFields"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"rowlist"},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"row"}],"constraintData":null},{"annotation":[{"start":[47,23],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show.purs","end":[47,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[47,23],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show.purs","end":[47,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[47,39],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show.purs","end":[47,41]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[47,23],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show.purs","end":[47,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[47,23],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show.purs","end":[47,30]},[]],"tag":"TypeConstructor","contents":[["Type","Data","RowList"],"RLProxy"]},{"annotation":[{"start":[47,31],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show.purs","end":[47,38]},[]],"tag":"TypeVar","contents":"rowlist"}]}]},{"annotation":[{"start":[47,42],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show.purs","end":[47,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[47,42],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show.purs","end":[47,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[47,53],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show.purs","end":[47,55]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[47,42],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show.purs","end":[47,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[47,42],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show.purs","end":[47,48]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[47,49],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show.purs","end":[47,52]},[]],"tag":"TypeVar","contents":"row"}]}]},{"annotation":[{"start":[47,56],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show.purs","end":[47,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[47,56],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show.purs","end":[47,61]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[47,62],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show.purs","end":[47,68]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}]}]}]},2]},3]}}},{"EDInstance":{"edInstanceClassName":[["Data","Show"],"Show"],"edInstanceName":{"Ident":"showBoolean"},"edInstanceTypes":[{"annotation":[{"start":[20,30],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show.purs","end":[20,37]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Show"],{"Ident":"showBoolean"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Show"],"Show"],"edInstanceName":{"Ident":"showInt"},"edInstanceTypes":[{"annotation":[{"start":[24,26],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show.purs","end":[24,29]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Show"],{"Ident":"showInt"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Show"],"Show"],"edInstanceName":{"Ident":"showNumber"},"edInstanceTypes":[{"annotation":[{"start":[27,29],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show.purs","end":[27,35]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Show"],{"Ident":"showNumber"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Show"],"Show"],"edInstanceName":{"Ident":"showChar"},"edInstanceTypes":[{"annotation":[{"start":[30,27],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show.purs","end":[30,31]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Char"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Show"],{"Ident":"showChar"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Show"],"Show"],"edInstanceName":{"Ident":"showString"},"edInstanceTypes":[{"annotation":[{"start":[33,29],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show.purs","end":[33,35]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Show"],{"Ident":"showString"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Show"],"Show"],"edInstanceName":{"Ident":"showArray"},"edInstanceTypes":[{"annotation":[{"start":[36,39],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show.purs","end":[36,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,39],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show.purs","end":[36,44]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[36,45],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show.purs","end":[36,46]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[36,23],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show.purs","end":[36,29]},[]],"constraintClass":[["Data","Show"],"Show"],"constraintArgs":[{"annotation":[{"start":[36,28],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show.purs","end":[36,29]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","Show"],{"Ident":"showArray"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Show"],"Show"],"edInstanceName":{"Ident":"showRecord"},"edInstanceTypes":[{"annotation":[{"start":[39,78],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show.purs","end":[39,87]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[39,78],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show.purs","end":[39,84]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[39,85],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show.purs","end":[39,87]},[]],"tag":"TypeVar","contents":"rs"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[39,25],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show.purs","end":[39,43]},[]],"constraintClass":[["Prim","RowList"],"RowToList"],"constraintArgs":[{"annotation":[{"start":[39,38],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show.purs","end":[39,40]},[]],"tag":"TypeVar","contents":"rs"},{"annotation":[{"start":[39,41],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show.purs","end":[39,43]},[]],"tag":"TypeVar","contents":"ls"}],"constraintData":null},{"constraintAnn":[{"start":[39,45],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show.purs","end":[39,67]},[]],"constraintClass":[["Data","Show"],"ShowRecordFields"],"constraintArgs":[{"annotation":[{"start":[39,62],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show.purs","end":[39,64]},[]],"tag":"TypeVar","contents":"ls"},{"annotation":[{"start":[39,65],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show.purs","end":[39,67]},[]],"tag":"TypeVar","contents":"rs"}],"constraintData":null}],"edInstanceChain":[[["Data","Show"],{"Ident":"showRecord"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Show"],"ShowRecordFields"],"edInstanceName":{"Ident":"showRecordFieldsNil"},"edInstanceTypes":[{"annotation":[{"start":[49,50],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show.purs","end":[49,56]},[]],"tag":"TypeConstructor","contents":[["Prim","RowList"],"Nil"]},{"annotation":[{"start":[49,57],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show.purs","end":[49,60]},[]],"tag":"TypeVar","contents":"row"}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Show"],{"Ident":"showRecordFieldsNil"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Show"],"ShowRecordFields"],"edInstanceName":{"Ident":"showRecordFieldsCons"},"edInstanceTypes":[{"annotation":[{"start":[57,26],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show.purs","end":[57,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[57,26],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show.purs","end":[57,43]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[57,26],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show.purs","end":[57,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[57,26],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show.purs","end":[57,33]},[]],"tag":"TypeConstructor","contents":[["Prim","RowList"],"Cons"]},{"annotation":[{"start":[57,34],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show.purs","end":[57,37]},[]],"tag":"TypeVar","contents":"key"}]},{"annotation":[{"start":[57,38],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show.purs","end":[57,43]},[]],"tag":"TypeVar","contents":"focus"}]},{"annotation":[{"start":[57,44],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show.purs","end":[57,55]},[]],"tag":"TypeVar","contents":"rowlistTail"}]},{"annotation":[{"start":[57,57],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show.purs","end":[57,60]},[]],"tag":"TypeVar","contents":"row"}],"edInstanceConstraints":[{"constraintAnn":[{"start":[53,10],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show.purs","end":[53,22]},[]],"constraintClass":[["Data","Symbol"],"IsSymbol"],"constraintArgs":[{"annotation":[{"start":[53,19],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show.purs","end":[53,22]},[]],"tag":"TypeVar","contents":"key"}],"constraintData":null},{"constraintAnn":[{"start":[54,10],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show.purs","end":[54,42]},[]],"constraintClass":[["Data","Show"],"ShowRecordFields"],"constraintArgs":[{"annotation":[{"start":[54,27],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show.purs","end":[54,38]},[]],"tag":"TypeVar","contents":"rowlistTail"},{"annotation":[{"start":[54,39],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show.purs","end":[54,42]},[]],"tag":"TypeVar","contents":"row"}],"constraintData":null},{"constraintAnn":[{"start":[55,10],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show.purs","end":[55,20]},[]],"constraintClass":[["Data","Show"],"Show"],"constraintArgs":[{"annotation":[{"start":[55,15],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show.purs","end":[55,20]},[]],"tag":"TypeVar","contents":"focus"}],"constraintData":null}],"edInstanceChain":[[["Data","Show"],{"Ident":"showRecordFieldsCons"}]],"edInstanceChainIndex":0}}],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Show.purs","end":[71,56]}}
diff --git a/tests/purs/publish/basic-example/output/Data.String.CaseInsensitive/docs.json b/tests/purs/publish/basic-example/output/Data.String.CaseInsensitive/docs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.String.CaseInsensitive/docs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"reExports":[],"name":"Data.String.CaseInsensitive","comments":null,"declarations":[{"children":[{"comments":null,"title":"CaseInsensitiveString","info":{"arguments":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}],"declType":"dataConstructor"},"sourceSpan":null},{"comments":null,"title":"eqCaseInsensitiveString","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Eq"],"Eq"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","CaseInsensitive"],"CaseInsensitiveString"]}]}},"sourceSpan":{"start":[11,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CaseInsensitive.purs","end":[13,29]}},{"comments":null,"title":"ordCaseInsensitiveString","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord"],"Ord"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","CaseInsensitive"],"CaseInsensitiveString"]}]}},"sourceSpan":{"start":[15,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CaseInsensitive.purs","end":[17,38]}},{"comments":null,"title":"showCaseInsensitiveString","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Show"],"Show"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","CaseInsensitive"],"CaseInsensitiveString"]}]}},"sourceSpan":{"start":[19,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CaseInsensitive.purs","end":[20,78]}},{"comments":null,"title":"newtypeCaseInsensitiveString","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Newtype"],"Newtype"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","CaseInsensitive"],"CaseInsensitiveString"]}]},{"annotation":[],"tag":"TypeWildcard","contents":null}]}},"sourceSpan":{"start":[22,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CaseInsensitive.purs","end":[22,80]}}],"comments":"A newtype for case insensitive string comparisons and ordering.\n","title":"CaseInsensitiveString","info":{"declType":"data","dataDeclType":"newtype","typeArguments":[]},"sourceSpan":{"start":[9,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CaseInsensitive.purs","end":[9,61]}}]}
diff --git a/tests/purs/publish/basic-example/output/Data.String.CaseInsensitive/externs.json b/tests/purs/publish/basic-example/output/Data.String.CaseInsensitive/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.String.CaseInsensitive/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Data","String","CaseInsensitive"],"efExports":[{"TypeRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CaseInsensitive.purs","end":[22,80]},"CaseInsensitiveString",["CaseInsensitiveString"]]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"eqCaseInsensitiveString"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"ordCaseInsensitiveString"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"showCaseInsensitiveString"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"newtypeCaseInsensitiveString"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Prelude"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Data","Newtype"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[5,22],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CaseInsensitive.purs","end":[5,35]},"Newtype"]}]},"eiImportedAs":null},{"eiModule":["Data","String"],"eiImportType":{"Explicit":[{"ValueRef":[{"start":[6,21],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CaseInsensitive.purs","end":[6,28]},{"Ident":"toLower"}]}]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDType":{"edTypeName":"CaseInsensitiveString","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},"edTypeDeclarationKind":{"DataType":{"args":[],"ctors":[["CaseInsensitiveString",[{"annotation":[{"start":[9,55],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CaseInsensitive.purs","end":[9,61]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]]]}}}},{"EDDataConstructor":{"edDataCtorName":"CaseInsensitiveString","edDataCtorOrigin":"newtype","edDataCtorTypeCtor":"CaseInsensitiveString","edDataCtorType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[9,55],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CaseInsensitive.purs","end":[9,61]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","String","CaseInsensitive"],"CaseInsensitiveString"]}]},"edDataCtorFields":[{"Ident":"value0"}]}},{"EDInstance":{"edInstanceClassName":[["Data","Eq"],"Eq"],"edInstanceName":{"Ident":"eqCaseInsensitiveString"},"edInstanceTypes":[{"annotation":[{"start":[11,40],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CaseInsensitive.purs","end":[11,61]},[]],"tag":"TypeConstructor","contents":[["Data","String","CaseInsensitive"],"CaseInsensitiveString"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","String","CaseInsensitive"],{"Ident":"eqCaseInsensitiveString"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Ord"],"Ord"],"edInstanceName":{"Ident":"ordCaseInsensitiveString"},"edInstanceTypes":[{"annotation":[{"start":[15,42],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CaseInsensitive.purs","end":[15,63]},[]],"tag":"TypeConstructor","contents":[["Data","String","CaseInsensitive"],"CaseInsensitiveString"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","String","CaseInsensitive"],{"Ident":"ordCaseInsensitiveString"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Show"],"Show"],"edInstanceName":{"Ident":"showCaseInsensitiveString"},"edInstanceTypes":[{"annotation":[{"start":[19,44],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CaseInsensitive.purs","end":[19,65]},[]],"tag":"TypeConstructor","contents":[["Data","String","CaseInsensitive"],"CaseInsensitiveString"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","String","CaseInsensitive"],{"Ident":"showCaseInsensitiveString"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Newtype"],"Newtype"],"edInstanceName":{"Ident":"newtypeCaseInsensitiveString"},"edInstanceTypes":[{"annotation":[{"start":[22,57],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CaseInsensitive.purs","end":[22,78]},[]],"tag":"TypeConstructor","contents":[["Data","String","CaseInsensitive"],"CaseInsensitiveString"]},{"annotation":[{"start":[9,55],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CaseInsensitive.purs","end":[9,61]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","String","CaseInsensitive"],{"Ident":"newtypeCaseInsensitiveString"}]],"edInstanceChainIndex":0}}],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CaseInsensitive.purs","end":[22,80]}}
diff --git a/tests/purs/publish/basic-example/output/Data.String.CodePoints/docs.json b/tests/purs/publish/basic-example/output/Data.String.CodePoints/docs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.String.CodePoints/docs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"reExports":[],"name":"Data.String.CodePoints","comments":"These functions allow PureScript strings to be treated as if they were\nsequences of Unicode code points instead of their true underlying\nimplementation (sequences of UTF-16 code units). For nearly all uses of\nstrings, these functions should be preferred over the ones in\n`Data.String.CodeUnits`.\n","declarations":[{"children":[{"comments":null,"title":"eqCodePoint","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Eq"],"Eq"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","CodePoints"],"CodePoint"]}]}},"sourceSpan":{"start":[49,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[49,44]}},{"comments":null,"title":"ordCodePoint","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord"],"Ord"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","CodePoints"],"CodePoint"]}]}},"sourceSpan":{"start":[50,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[50,46]}},{"comments":null,"title":"showCodePoint","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Show"],"Show"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","CodePoints"],"CodePoint"]}]}},"sourceSpan":{"start":[52,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[53,84]}},{"comments":null,"title":"boundedCodePoint","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Bounded"],"Bounded"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","CodePoints"],"CodePoint"]}]}},"sourceSpan":{"start":[55,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[57,27]}},{"comments":null,"title":"enumCodePoint","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Enum"],"Enum"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","CodePoints"],"CodePoint"]}]}},"sourceSpan":{"start":[59,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[61,37]}},{"comments":null,"title":"boundedEnumCodePoint","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Enum"],"BoundedEnum"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","CodePoints"],"CodePoint"]}]}},"sourceSpan":{"start":[63,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[68,26]}}],"comments":"CodePoint is an Int bounded between 0 and 0x10FFFF, corresponding to\nUnicode code points.\n","title":"CodePoint","info":{"declType":"data","dataDeclType":"newtype","typeArguments":[]},"sourceSpan":{"start":[47,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[47,34]}},{"children":[],"comments":"Creates a CodePoint from a given Char.\n\n```purescript\n>>> codePointFromChar 'B'\nCodePoint 0x42 -- represents 'B'\n```\n\n","title":"codePointFromChar","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Char"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","CodePoints"],"CodePoint"]}]}},"sourceSpan":{"start":[77,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[77,39]}},{"children":[],"comments":"Creates a string containing just the given code point. Operates in\nconstant space and time.\n\n```purescript\n>>> map singleton (codePointFromInt 0x1D400)\nJust \"𝐀\"\n```\n\n","title":"singleton","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","CodePoints"],"CodePoint"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}},"sourceSpan":{"start":[88,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[88,33]}},{"children":[],"comments":"Creates a string from an array of code points. Operates in space and time\nlinear to the length of the array.\n\n```purescript\n>>> codePointArray = toCodePointArray \"c 𝐀\"\n>>> codePointArray\n[CodePoint 0x63, CodePoint 0x20, CodePoint 0x1D400]\n>>> fromCodePointArray codePointArray\n\"c 𝐀\"\n```\n\n","title":"fromCodePointArray","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","CodePoints"],"CodePoint"]}]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}},"sourceSpan":{"start":[114,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[114,48]}},{"children":[],"comments":"Creates an array of code points from a string. Operates in space and time\nlinear to the length of the string.\n\n```purescript\n>>> codePointArray = toCodePointArray \"b 𝐀𝐀\"\n>>> codePointArray\n[CodePoint 0x62, CodePoint 0x20, CodePoint 0x1D400, CodePoint 0x1D400]\n>>> map singleton codePointArray\n[\"b\", \" \", \"𝐀\", \"𝐀\"]\n```\n\n","title":"toCodePointArray","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","CodePoints"],"CodePoint"]}]}]}},"sourceSpan":{"start":[133,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[133,46]}},{"children":[],"comments":"Returns the first code point of the string after dropping the given number\nof code points from the beginning, if there is such a code point. Operates\nin constant space and in time linear to the given index.\n\n```purescript\n>>> codePointAt 1 \"𝐀𝐀𝐀𝐀\"\nJust (CodePoint 0x1D400) -- represents \"𝐀\"\n-- compare to Data.String:\n>>> charAt 1 \"𝐀𝐀𝐀𝐀\"\nJust '�'\n```\n\n","title":"codePointAt","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","CodePoints"],"CodePoint"]}]}]}]}},"sourceSpan":{"start":[160,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[160,48]}},{"children":[],"comments":"Returns a record with the first code point and the remaining code points\nof the string. Returns Nothing if the string is empty. Operates in\nconstant space and time.\n\n```purescript\n>>> uncons \"𝐀𝐀 c 𝐀\"\nJust { head: CodePoint 0x1D400, tail: \"𝐀 c 𝐀\" }\n>>> uncons \"\"\nNothing\n```\n\n","title":"uncons","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"RCons","contents":["head",{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","CodePoints"],"CodePoint"]},{"annotation":[],"tag":"RCons","contents":["tail",{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]},{"annotation":[],"tag":"REmpty"}]}]}]}]}]}},"sourceSpan":{"start":[191,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[191,64]}},{"children":[],"comments":"Returns the number of code points in the string. Operates in constant\nspace and in time linear to the length of the string.\n\n```purescript\n>>> length \"b 𝐀𝐀 c 𝐀\"\n8\n-- compare to Data.String:\n>>> length \"b 𝐀𝐀 c 𝐀\"\n11\n```\n\n","title":"length","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}},"sourceSpan":{"start":[215,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[215,24]}},{"children":[],"comments":"Returns the number of code points in the leading sequence of code points\nwhich all match the given predicate. Operates in constant space and in\ntime linear to the length of the string.\n\n```purescript\n>>> countPrefix (\\c -> codePointToInt c == 0x1D400) \"𝐀𝐀 b c 𝐀\"\n2\n```\n\n","title":"countPrefix","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","CodePoints"],"CodePoint"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]}},"sourceSpan":{"start":[227,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[227,55]}},{"children":[],"comments":"Returns the number of code points preceding the first match of the given\npattern in the string. Returns Nothing when no matches are found.\n\n```purescript\n>>> indexOf (Pattern \"𝐀\") \"b 𝐀𝐀 c 𝐀\"\nJust 2\n>>> indexOf (Pattern \"o\") \"b 𝐀𝐀 c 𝐀\"\nNothing\n```\n\n","title":"indexOf","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","Pattern"],"Pattern"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]}]}},"sourceSpan":{"start":[255,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[255,42]}},{"children":[],"comments":"Returns the number of code points preceding the first match of the given\npattern in the string. Pattern matches preceding the given index will be\nignored. Returns Nothing when no matches are found.\n\n```purescript\n>>> indexOf' (Pattern \"𝐀\") 4 \"b 𝐀𝐀 c 𝐀\"\nJust 7\n>>> indexOf' (Pattern \"o\") 4 \"b 𝐀𝐀 c 𝐀\"\nNothing\n```\n\n","title":"indexOf'","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","Pattern"],"Pattern"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]}]}]}},"sourceSpan":{"start":[269,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[269,50]}},{"children":[],"comments":"Returns the number of code points preceding the last match of the given\npattern in the string. Returns Nothing when no matches are found.\n\n```purescript\n>>> lastIndexOf (Pattern \"𝐀\") \"b 𝐀𝐀 c 𝐀\"\nJust 7\n>>> lastIndexOf (Pattern \"o\") \"b 𝐀𝐀 c 𝐀\"\nNothing\n```\n\n","title":"lastIndexOf","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","Pattern"],"Pattern"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]}]}},"sourceSpan":{"start":[284,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[284,46]}},{"children":[],"comments":"Returns the number of code points preceding the first match of the given\npattern in the string. Pattern matches following the given index will be\nignored. Returns Nothing when no matches are found.\n\n```purescript\n>>> lastIndexOf' (Pattern \"𝐀\") 5 \"b 𝐀𝐀 c 𝐀\"\nJust 3\n>>> lastIndexOf' (Pattern \"o\") 5 \"b 𝐀𝐀 c 𝐀\"\nNothing\n```\n\n","title":"lastIndexOf'","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","Pattern"],"Pattern"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]}]}]}},"sourceSpan":{"start":[298,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[298,54]}},{"children":[],"comments":"Returns a string containing the given number of code points from the\nbeginning of the given string. If the string does not have that many code\npoints, returns the empty string. Operates in constant space and in time\nlinear to the given number.\n\n```purescript\n>>> take 3 \"b 𝐀𝐀 c 𝐀\"\n\"b 𝐀\"\n-- compare to Data.String:\n>>> take 3 \"b 𝐀𝐀 c 𝐀\"\n\"b �\"\n```\n\n","title":"take","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}]}},"sourceSpan":{"start":[316,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[316,32]}},{"children":[],"comments":"Returns a string containing the leading sequence of code points which all\nmatch the given predicate from the string. Operates in constant space and\nin time linear to the length of the string.\n\n```purescript\n>>> takeWhile (\\c -> codePointToInt c == 0x1D400) \"𝐀𝐀 b c 𝐀\"\n\"𝐀𝐀\"\n```\n\n","title":"takeWhile","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","CodePoints"],"CodePoint"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}]}},"sourceSpan":{"start":[336,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[336,56]}},{"children":[],"comments":"Drops the given number of code points from the beginning of the string. If\nthe string does not have that many code points, returns the empty string.\nOperates in constant space and in time linear to the given number.\n\n```purescript\n>>> drop 5 \"𝐀𝐀 b c\"\n\"c\"\n-- compared to Data.String:\n>>> drop 5 \"𝐀𝐀 b c\"\n\"b c\" -- because \"𝐀\" occupies 2 code units\n```\n\n","title":"drop","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}]}},"sourceSpan":{"start":[351,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[351,32]}},{"children":[],"comments":"Drops the leading sequence of code points which all match the given\npredicate from the string. Operates in constant space and in time linear\nto the length of the string.\n\n```purescript\n>>> dropWhile (\\c -> codePointToInt c == 0x1D400) \"𝐀𝐀 b c 𝐀\"\n\" b c 𝐀\"\n```\n\n","title":"dropWhile","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","CodePoints"],"CodePoint"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}]}},"sourceSpan":{"start":[363,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[363,56]}},{"children":[],"comments":"Splits a string into two substrings, where `before` contains the code\npoints up to (but not including) the given index, and `after` contains the\nrest of the string, from that index on.\n\n```purescript\n>>> splitAt 3 \"b 𝐀𝐀 c 𝐀\"\nJust { before: \"b 𝐀\", after: \"𝐀 c 𝐀\" }\n```\n\nThus the length of `(splitAt i s).before` will equal either `i` or\n`length s`, if that is shorter. (Or if `i` is negative the length will be\n0.)\n\nIn code:\n```purescript\nlength (splitAt i s).before == min (max i 0) (length s)\n(splitAt i s).before <> (splitAt i s).after == s\nsplitAt i s == {before: take i s, after: drop i s}\n```\n","title":"splitAt","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"RCons","contents":["before",{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]},{"annotation":[],"tag":"RCons","contents":["after",{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]},{"annotation":[],"tag":"REmpty"}]}]}]}]}]}},"sourceSpan":{"start":[385,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[385,66]}}]}
diff --git a/tests/purs/publish/basic-example/output/Data.String.CodePoints/externs.json b/tests/purs/publish/basic-example/output/Data.String.CodePoints/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.String.CodePoints/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Data","String","CodePoints"],"efExports":[{"ReExportRef":[{"start":[6,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[422,26]},{"exportSourceImportedFrom":["Data","String","CodeUnits"],"exportSourceDefinedIn":["Data","String","CodeUnits"]},{"ValueRef":[{"start":[6,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[422,26]},{"Ident":"contains"}]}]},{"ReExportRef":[{"start":[6,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[422,26]},{"exportSourceImportedFrom":["Data","String","CodeUnits"],"exportSourceDefinedIn":["Data","String","CodeUnits"]},{"ValueRef":[{"start":[6,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[422,26]},{"Ident":"stripPrefix"}]}]},{"ReExportRef":[{"start":[6,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[422,26]},{"exportSourceImportedFrom":["Data","String","CodeUnits"],"exportSourceDefinedIn":["Data","String","CodeUnits"]},{"ValueRef":[{"start":[6,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[422,26]},{"Ident":"stripSuffix"}]}]},{"ModuleRef":[{"start":[7,5],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[7,19]},["Exports"]]},{"TypeRef":[{"start":[6,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[422,26]},"CodePoint",[]]},{"ValueRef":[{"start":[6,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[422,26]},{"Ident":"codePointFromChar"}]},{"ValueRef":[{"start":[6,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[422,26]},{"Ident":"singleton"}]},{"ValueRef":[{"start":[6,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[422,26]},{"Ident":"fromCodePointArray"}]},{"ValueRef":[{"start":[6,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[422,26]},{"Ident":"toCodePointArray"}]},{"ValueRef":[{"start":[6,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[422,26]},{"Ident":"codePointAt"}]},{"ValueRef":[{"start":[6,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[422,26]},{"Ident":"uncons"}]},{"ValueRef":[{"start":[6,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[422,26]},{"Ident":"length"}]},{"ValueRef":[{"start":[6,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[422,26]},{"Ident":"countPrefix"}]},{"ValueRef":[{"start":[6,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[422,26]},{"Ident":"indexOf"}]},{"ValueRef":[{"start":[6,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[422,26]},{"Ident":"indexOf'"}]},{"ValueRef":[{"start":[6,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[422,26]},{"Ident":"lastIndexOf"}]},{"ValueRef":[{"start":[6,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[422,26]},{"Ident":"lastIndexOf'"}]},{"ValueRef":[{"start":[6,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[422,26]},{"Ident":"take"}]},{"ValueRef":[{"start":[6,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[422,26]},{"Ident":"takeWhile"}]},{"ValueRef":[{"start":[6,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[422,26]},{"Ident":"drop"}]},{"ValueRef":[{"start":[6,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[422,26]},{"Ident":"dropWhile"}]},{"ValueRef":[{"start":[6,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[422,26]},{"Ident":"splitAt"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"eqCodePoint"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"ordCodePoint"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"showCodePoint"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"boundedCodePoint"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"enumCodePoint"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"boundedEnumCodePoint"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Prelude"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Data","Array"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Array"]},{"eiModule":["Data","Enum"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[34,19],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[34,36]},"BoundedEnum"]},{"TypeClassRef":[{"start":[34,38],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[34,48]},"Enum"]},{"TypeRef":[{"start":[34,50],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[34,65]},"Cardinality",null]},{"ValueRef":[{"start":[34,67],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[34,78]},{"Ident":"defaultPred"}]},{"ValueRef":[{"start":[34,80],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[34,91]},{"Ident":"defaultSucc"}]},{"ValueRef":[{"start":[34,93],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[34,101]},{"Ident":"fromEnum"}]},{"ValueRef":[{"start":[34,103],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[34,109]},{"Ident":"toEnum"}]},{"ValueRef":[{"start":[34,111],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[34,129]},{"Ident":"toEnumWithDefaults"}]}]},"eiImportedAs":null},{"eiModule":["Data","Int"],"eiImportType":{"Explicit":[{"ValueRef":[{"start":[35,18],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[35,29]},{"Ident":"hexadecimal"}]},{"ValueRef":[{"start":[35,31],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[35,41]},{"Ident":"toStringAs"}]}]},"eiImportedAs":null},{"eiModule":["Data","Maybe"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[36,20],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[36,29]},"Maybe",null]}]},"eiImportedAs":null},{"eiModule":["Data","String","CodeUnits"],"eiImportType":{"Explicit":[{"ValueRef":[{"start":[37,31],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[37,39]},{"Ident":"contains"}]},{"ValueRef":[{"start":[37,41],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[37,52]},{"Ident":"stripPrefix"}]},{"ValueRef":[{"start":[37,54],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[37,65]},{"Ident":"stripSuffix"}]}]},"eiImportedAs":["Exports"]},{"eiModule":["Data","String","CodeUnits"],"eiImportType":{"Implicit":[]},"eiImportedAs":["CU"]},{"eiModule":["Data","String","Common"],"eiImportType":{"Explicit":[{"ValueRef":[{"start":[39,28],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[39,35]},{"Ident":"toUpper"}]}]},"eiImportedAs":null},{"eiModule":["Data","String","Pattern"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[40,29],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[40,36]},"Pattern",[]]}]},"eiImportedAs":null},{"eiModule":["Data","String","Unsafe"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Unsafe"]},{"eiModule":["Data","Tuple"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[42,20],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[42,29]},"Tuple",null]}]},"eiImportedAs":null},{"eiModule":["Data","Unfoldable"],"eiImportType":{"Explicit":[{"ValueRef":[{"start":[43,25],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[43,32]},{"Ident":"unfoldr"}]}]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDType":{"edTypeName":"CodePoint","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},"edTypeDeclarationKind":{"DataType":{"args":[],"ctors":[["CodePoint",[{"annotation":[{"start":[47,31],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[47,34]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]]]}}}},{"EDValue":{"edValueName":{"Ident":"codePointFromChar"},"edValueType":{"annotation":[{"start":[77,22],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[77,39]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[77,22],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[77,39]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[77,27],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[77,29]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[77,22],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[77,26]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Char"]}]},{"annotation":[{"start":[77,30],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[77,39]},[]],"tag":"TypeConstructor","contents":[["Data","String","CodePoints"],"CodePoint"]}]}}},{"EDValue":{"edValueName":{"Ident":"singleton"},"edValueType":{"annotation":[{"start":[88,14],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[88,33]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[88,14],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[88,33]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[88,24],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[88,26]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[88,14],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[88,23]},[]],"tag":"TypeConstructor","contents":[["Data","String","CodePoints"],"CodePoint"]}]},{"annotation":[{"start":[88,27],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[88,33]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}}},{"EDValue":{"edValueName":{"Ident":"fromCodePointArray"},"edValueType":{"annotation":[{"start":[114,23],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[114,48]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[114,23],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[114,48]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[114,39],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[114,41]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[114,23],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[114,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[114,23],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[114,28]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[114,29],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[114,38]},[]],"tag":"TypeConstructor","contents":[["Data","String","CodePoints"],"CodePoint"]}]}]},{"annotation":[{"start":[114,42],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[114,48]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}}},{"EDValue":{"edValueName":{"Ident":"toCodePointArray"},"edValueType":{"annotation":[{"start":[133,21],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[133,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[133,21],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[133,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[133,28],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[133,30]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[133,21],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[133,27]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[{"start":[133,31],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[133,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[133,31],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[133,36]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[133,37],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[133,46]},[]],"tag":"TypeConstructor","contents":[["Data","String","CodePoints"],"CodePoint"]}]}]}}},{"EDValue":{"edValueName":{"Ident":"codePointAt"},"edValueType":{"annotation":[{"start":[160,16],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[160,48]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[160,16],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[160,48]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[160,20],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[160,22]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[160,16],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[160,19]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[160,23],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[160,48]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[160,23],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[160,48]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[160,30],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[160,32]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[160,23],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[160,29]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[{"start":[160,33],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[160,48]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[160,33],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[160,38]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[160,39],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[160,48]},[]],"tag":"TypeConstructor","contents":[["Data","String","CodePoints"],"CodePoint"]}]}]}]}}},{"EDValue":{"edValueName":{"Ident":"uncons"},"edValueType":{"annotation":[{"start":[191,11],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[191,64]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[191,11],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[191,64]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[191,18],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[191,20]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[191,11],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[191,17]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[{"start":[191,21],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[191,64]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[191,21],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[191,26]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[191,27],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[191,64]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[191,27],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[191,28]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[191,29],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[191,46]},[]],"tag":"RCons","contents":["head",{"annotation":[{"start":[191,37],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[191,46]},[]],"tag":"TypeConstructor","contents":[["Data","String","CodePoints"],"CodePoint"]},{"annotation":[{"start":[191,48],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[191,62]},[]],"tag":"RCons","contents":["tail",{"annotation":[{"start":[191,56],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[191,62]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]},{"annotation":[{"start":[191,63],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[191,64]},[]],"tag":"REmpty"}]}]}]}]}]}}},{"EDValue":{"edValueName":{"Ident":"length"},"edValueType":{"annotation":[{"start":[215,11],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[215,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[215,11],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[215,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[215,18],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[215,20]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[215,11],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[215,17]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[{"start":[215,21],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[215,24]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}}},{"EDValue":{"edValueName":{"Ident":"countPrefix"},"edValueType":{"annotation":[{"start":[227,16],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[227,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[227,16],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[227,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[227,39],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[227,41]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[227,17],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[227,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[227,17],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[227,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[227,27],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[227,29]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[227,17],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[227,26]},[]],"tag":"TypeConstructor","contents":[["Data","String","CodePoints"],"CodePoint"]}]},{"annotation":[{"start":[227,30],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[227,37]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]},{"annotation":[{"start":[227,42],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[227,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[227,42],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[227,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[227,49],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[227,51]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[227,42],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[227,48]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[{"start":[227,52],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[227,55]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]}}},{"EDValue":{"edValueName":{"Ident":"indexOf"},"edValueType":{"annotation":[{"start":[255,12],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[255,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[255,12],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[255,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[255,20],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[255,22]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[255,12],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[255,19]},[]],"tag":"TypeConstructor","contents":[["Data","String","Pattern"],"Pattern"]}]},{"annotation":[{"start":[255,23],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[255,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[255,23],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[255,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[255,30],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[255,32]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[255,23],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[255,29]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[{"start":[255,33],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[255,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[255,33],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[255,38]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[255,39],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[255,42]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]}]}}},{"EDValue":{"edValueName":{"Ident":"indexOf'"},"edValueType":{"annotation":[{"start":[269,13],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[269,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[269,13],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[269,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[269,21],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[269,23]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[269,13],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[269,20]},[]],"tag":"TypeConstructor","contents":[["Data","String","Pattern"],"Pattern"]}]},{"annotation":[{"start":[269,24],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[269,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[269,24],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[269,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[269,28],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[269,30]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[269,24],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[269,27]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[269,31],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[269,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[269,31],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[269,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[269,38],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[269,40]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[269,31],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[269,37]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[{"start":[269,41],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[269,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[269,41],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[269,46]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[269,47],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[269,50]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]}]}]}}},{"EDValue":{"edValueName":{"Ident":"lastIndexOf"},"edValueType":{"annotation":[{"start":[284,16],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[284,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[284,16],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[284,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[284,24],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[284,26]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[284,16],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[284,23]},[]],"tag":"TypeConstructor","contents":[["Data","String","Pattern"],"Pattern"]}]},{"annotation":[{"start":[284,27],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[284,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[284,27],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[284,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[284,34],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[284,36]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[284,27],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[284,33]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[{"start":[284,37],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[284,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[284,37],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[284,42]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[284,43],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[284,46]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]}]}}},{"EDValue":{"edValueName":{"Ident":"lastIndexOf'"},"edValueType":{"annotation":[{"start":[298,17],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[298,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[298,17],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[298,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[298,25],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[298,27]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[298,17],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[298,24]},[]],"tag":"TypeConstructor","contents":[["Data","String","Pattern"],"Pattern"]}]},{"annotation":[{"start":[298,28],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[298,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[298,28],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[298,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[298,32],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[298,34]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[298,28],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[298,31]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[298,35],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[298,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[298,35],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[298,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[298,42],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[298,44]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[298,35],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[298,41]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[{"start":[298,45],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[298,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[298,45],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[298,50]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[298,51],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[298,54]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]}]}]}}},{"EDValue":{"edValueName":{"Ident":"take"},"edValueType":{"annotation":[{"start":[316,9],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[316,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[316,9],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[316,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[316,13],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[316,15]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[316,9],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[316,12]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[316,16],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[316,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[316,16],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[316,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[316,23],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[316,25]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[316,16],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[316,22]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[{"start":[316,26],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[316,32]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}]}}},{"EDValue":{"edValueName":{"Ident":"takeWhile"},"edValueType":{"annotation":[{"start":[336,14],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[336,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[336,14],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[336,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[336,37],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[336,39]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[336,15],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[336,35]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[336,15],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[336,35]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[336,25],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[336,27]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[336,15],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[336,24]},[]],"tag":"TypeConstructor","contents":[["Data","String","CodePoints"],"CodePoint"]}]},{"annotation":[{"start":[336,28],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[336,35]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]},{"annotation":[{"start":[336,40],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[336,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[336,40],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[336,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[336,47],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[336,49]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[336,40],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[336,46]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[{"start":[336,50],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[336,56]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}]}}},{"EDValue":{"edValueName":{"Ident":"drop"},"edValueType":{"annotation":[{"start":[351,9],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[351,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[351,9],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[351,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[351,13],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[351,15]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[351,9],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[351,12]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[351,16],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[351,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[351,16],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[351,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[351,23],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[351,25]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[351,16],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[351,22]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[{"start":[351,26],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[351,32]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}]}}},{"EDValue":{"edValueName":{"Ident":"dropWhile"},"edValueType":{"annotation":[{"start":[363,14],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[363,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[363,14],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[363,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[363,37],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[363,39]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[363,15],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[363,35]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[363,15],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[363,35]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[363,25],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[363,27]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[363,15],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[363,24]},[]],"tag":"TypeConstructor","contents":[["Data","String","CodePoints"],"CodePoint"]}]},{"annotation":[{"start":[363,28],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[363,35]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]},{"annotation":[{"start":[363,40],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[363,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[363,40],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[363,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[363,47],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[363,49]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[363,40],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[363,46]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[{"start":[363,50],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[363,56]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}]}}},{"EDValue":{"edValueName":{"Ident":"splitAt"},"edValueType":{"annotation":[{"start":[385,12],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[385,66]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[385,12],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[385,66]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[385,16],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[385,18]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[385,12],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[385,15]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[385,19],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[385,66]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[385,19],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[385,66]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[385,26],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[385,28]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[385,19],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[385,25]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[{"start":[385,29],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[385,66]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[385,29],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[385,30]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[385,31],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[385,47]},[]],"tag":"RCons","contents":["before",{"annotation":[{"start":[385,41],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[385,47]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]},{"annotation":[{"start":[385,49],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[385,64]},[]],"tag":"RCons","contents":["after",{"annotation":[{"start":[385,58],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[385,64]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]},{"annotation":[{"start":[385,65],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[385,66]},[]],"tag":"REmpty"}]}]}]}]}]}}},{"EDInstance":{"edInstanceClassName":[["Data","Eq"],"Eq"],"edInstanceName":{"Ident":"eqCodePoint"},"edInstanceTypes":[{"annotation":[{"start":[49,35],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[49,44]},[]],"tag":"TypeConstructor","contents":[["Data","String","CodePoints"],"CodePoint"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","String","CodePoints"],{"Ident":"eqCodePoint"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Ord"],"Ord"],"edInstanceName":{"Ident":"ordCodePoint"},"edInstanceTypes":[{"annotation":[{"start":[50,37],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[50,46]},[]],"tag":"TypeConstructor","contents":[["Data","String","CodePoints"],"CodePoint"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","String","CodePoints"],{"Ident":"ordCodePoint"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Show"],"Show"],"edInstanceName":{"Ident":"showCodePoint"},"edInstanceTypes":[{"annotation":[{"start":[52,32],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[52,41]},[]],"tag":"TypeConstructor","contents":[["Data","String","CodePoints"],"CodePoint"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","String","CodePoints"],{"Ident":"showCodePoint"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Bounded"],"Bounded"],"edInstanceName":{"Ident":"boundedCodePoint"},"edInstanceTypes":[{"annotation":[{"start":[55,38],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[55,47]},[]],"tag":"TypeConstructor","contents":[["Data","String","CodePoints"],"CodePoint"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","String","CodePoints"],{"Ident":"boundedCodePoint"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Enum"],"Enum"],"edInstanceName":{"Ident":"enumCodePoint"},"edInstanceTypes":[{"annotation":[{"start":[59,32],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[59,41]},[]],"tag":"TypeConstructor","contents":[["Data","String","CodePoints"],"CodePoint"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","String","CodePoints"],{"Ident":"enumCodePoint"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Enum"],"BoundedEnum"],"edInstanceName":{"Ident":"boundedEnumCodePoint"},"edInstanceTypes":[{"annotation":[{"start":[63,46],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[63,55]},[]],"tag":"TypeConstructor","contents":[["Data","String","CodePoints"],"CodePoint"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","String","CodePoints"],{"Ident":"boundedEnumCodePoint"}]],"edInstanceChainIndex":0}}],"efSourceSpan":{"start":[6,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodePoints.purs","end":[422,26]}}
diff --git a/tests/purs/publish/basic-example/output/Data.String.CodeUnits/docs.json b/tests/purs/publish/basic-example/output/Data.String.CodeUnits/docs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.String.CodeUnits/docs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"reExports":[],"name":"Data.String.CodeUnits","comments":null,"declarations":[{"children":[],"comments":"If the string starts with the given prefix, return the portion of the\nstring left after removing it, as a Just value. Otherwise, return Nothing.\n\n```purescript\nstripPrefix (Pattern \"http:\") \"http://purescript.org\" == Just \"//purescript.org\"\nstripPrefix (Pattern \"http:\") \"https://purescript.org\" == Nothing\n```\n","title":"stripPrefix","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","Pattern"],"Pattern"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}]}]}},"sourceSpan":{"start":[46,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[46,49]}},{"children":[],"comments":"If the string ends with the given suffix, return the portion of the\nstring left after removing it, as a `Just` value. Otherwise, return\n`Nothing`.\n\n```purescript\nstripSuffix (Pattern \".exe\") \"psc.exe\" == Just \"psc\"\nstripSuffix (Pattern \".exe\") \"psc\" == Nothing\n```\n","title":"stripSuffix","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","Pattern"],"Pattern"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}]}]}},"sourceSpan":{"start":[60,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[60,49]}},{"children":[],"comments":"Checks whether the pattern appears in the given string.\n\n```purescript\ncontains (Pattern \"needle\") \"haystack with needle\" == true\ncontains (Pattern \"needle\") \"haystack\" == false\n```\n","title":"contains","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","Pattern"],"Pattern"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]}},"sourceSpan":{"start":[72,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[72,41]}},{"children":[],"comments":"Returns a string of length `1` containing the given character.\n\n```purescript\nsingleton 'l' == \"l\"\n```\n\n","title":"singleton","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Char"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}},"sourceSpan":{"start":[85,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[85,43]}},{"children":[],"comments":"Converts an array of characters into a string.\n\n```purescript\nfromCharArray ['H', 'e', 'l', 'l', 'o'] == \"Hello\"\n```\n","title":"fromCharArray","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Char"]}]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}},"sourceSpan":{"start":[92,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[92,53]}},{"children":[],"comments":"Converts the string into an array of characters.\n\n```purescript\ntoCharArray \"Hello☺\\n\" == ['H','e','l','l','o','☺','\\n']\n```\n","title":"toCharArray","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Char"]}]}]}},"sourceSpan":{"start":[99,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[99,51]}},{"children":[],"comments":"Returns the character at the given index, if the index is within bounds.\n\n```purescript\ncharAt 2 \"Hello\" == Just 'l'\ncharAt 10 \"Hello\" == Nothing\n```\n\n","title":"charAt","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Char"]}]}]}]}},"sourceSpan":{"start":[108,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[108,38]}},{"children":[],"comments":"Converts the string to a character, if the length of the string is\nexactly `1`.\n\n```purescript\ntoChar \"l\" == Just 'l'\ntoChar \"Hi\" == Nothing -- since length is not 1\n```\n","title":"toChar","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Char"]}]}]}},"sourceSpan":{"start":[125,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[125,31]}},{"children":[],"comments":"Returns the first character and the rest of the string,\nif the string is not empty.\n\n```purescript\nuncons \"\" == Nothing\nuncons \"Hello World\" == Just { head: 'H', tail: \"ello World\" }\n```\n\n","title":"uncons","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"RCons","contents":["head",{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Char"]},{"annotation":[],"tag":"RCons","contents":["tail",{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]},{"annotation":[],"tag":"REmpty"}]}]}]}]}]}},"sourceSpan":{"start":[142,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[142,59]}},{"children":[],"comments":"Returns the number of characters the string is composed of.\n\n```purescript\nlength \"Hello World\" == 11\n```\n\n","title":"length","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}},"sourceSpan":{"start":[152,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[152,39]}},{"children":[],"comments":"Returns the number of contiguous characters at the beginning\nof the string for which the predicate holds.\n\n```purescript\ncountPrefix (_ /= ' ') \"Hello World\" == 5 -- since length \"Hello\" == 5\n```\n\n","title":"countPrefix","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Char"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]}},"sourceSpan":{"start":[161,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[161,65]}},{"children":[],"comments":"Returns the index of the first occurrence of the pattern in the\ngiven string. Returns `Nothing` if there is no match.\n\n```purescript\nindexOf (Pattern \"c\") \"abcdc\" == Just 2\nindexOf (Pattern \"c\") \"aaa\" == Nothing\n```\n\n","title":"indexOf","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","Pattern"],"Pattern"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]}]}},"sourceSpan":{"start":[171,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[171,42]}},{"children":[],"comments":"Returns the index of the first occurrence of the pattern in the\ngiven string, starting at the specified index. Returns `Nothing` if there is\nno match.\n\n```purescript\nindexOf' (Pattern \"a\") 2 \"ababa\" == Just 2\nindexOf' (Pattern \"a\") 3 \"ababa\" == Just 4\n```\n\n","title":"indexOf'","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","Pattern"],"Pattern"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]}]}]}},"sourceSpan":{"start":[190,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[190,50]}},{"children":[],"comments":"Returns the index of the last occurrence of the pattern in the\ngiven string. Returns `Nothing` if there is no match.\n\n```purescript\nlastIndexOf (Pattern \"c\") \"abcdc\" == Just 4\nlastIndexOf (Pattern \"c\") \"aaa\" == Nothing\n```\n\n","title":"lastIndexOf","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","Pattern"],"Pattern"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]}]}},"sourceSpan":{"start":[209,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[209,46]}},{"children":[],"comments":"Returns the index of the last occurrence of the pattern in the\ngiven string, starting at the specified index\nand searching backwards towards the beginning of the string.\nReturns `Nothing` if there is no match.\n\n```purescript\nlastIndexOf' (Pattern \"a\") 1 \"ababa\" == Just 0\nlastIndexOf' (Pattern \"a\") 3 \"ababa\" == Just 2\nlastIndexOf' (Pattern \"a\") 4 \"ababa\" == Just 4\n```\n\n","title":"lastIndexOf'","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","Pattern"],"Pattern"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]}]}]}},"sourceSpan":{"start":[230,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[230,54]}},{"children":[],"comments":"Returns the first `n` characters of the string.\n\n```purescript\ntake 5 \"Hello World\" == \"Hello\"\n```\n\n","title":"take","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}]}},"sourceSpan":{"start":[247,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[247,47]}},{"children":[],"comments":"Returns the last `n` characters of the string.\n\n```purescript\ntakeRight 5 \"Hello World\" == \"World\"\n```\n\n","title":"takeRight","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}]}},"sourceSpan":{"start":[255,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[255,37]}},{"children":[],"comments":"Returns the longest prefix (possibly empty) of characters that satisfy\nthe predicate.\n\n```purescript\ntakeWhile (_ /= ':') \"http://purescript.org\" == \"http\"\n```\n\n","title":"takeWhile","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Char"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}]}},"sourceSpan":{"start":[265,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[265,51]}},{"children":[],"comments":"Returns the string without the first `n` characters.\n\n```purescript\ndrop 6 \"Hello World\" == \"World\"\n```\n\n","title":"drop","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}]}},"sourceSpan":{"start":[274,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[274,47]}},{"children":[],"comments":"Returns the string without the last `n` characters.\n\n```purescript\ndropRight 6 \"Hello World\" == \"Hello\"\n```\n\n","title":"dropRight","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}]}},"sourceSpan":{"start":[282,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[282,37]}},{"children":[],"comments":"Returns the suffix remaining after `takeWhile`.\n\n```purescript\ndropWhile (_ /= '.') \"Test.purs\" == \".purs\"\n```\n\n","title":"dropWhile","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Char"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}]}},"sourceSpan":{"start":[291,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[291,51]}},{"children":[],"comments":"Returns the substring at indices `[begin, end)`.\nIf either index is negative, it is normalised to `length s - index`,\nwhere `s` is the input string. `Nothing` is returned if either\nindex is out of bounds or if `begin > end` after normalisation.\n\n```purescript\nslice 0 0   \"purescript\" == Just \"\"\nslice 0 1   \"purescript\" == Just \"p\"\nslice 3 6   \"purescript\" == Just \"esc\"\nslice (-4) (-1) \"purescript\" == Just \"rip\"\nslice (-4) 3  \"purescript\" == Nothing\n```\n","title":"slice","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}]}]}]}},"sourceSpan":{"start":[306,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[306,46]}},{"children":[],"comments":"Splits a string into two substrings, where `before` contains the\ncharacters up to (but not including) the given index, and `after` contains\nthe rest of the string, from that index on.\n\n```purescript\nsplitAt 2 \"Hello World\" == { before: \"He\", after: \"llo World\"}\nsplitAt 10 \"Hi\" == { before: \"Hi\", after: \"\"}\n```\n\nThus the length of `(splitAt i s).before` will equal either `i` or\n`length s`, if that is shorter. (Or if `i` is negative the length will be\n0.)\n\nIn code:\n```purescript\nlength (splitAt i s).before == min (max i 0) (length s)\n(splitAt i s).before <> (splitAt i s).after == s\nsplitAt i s == {before: take i s, after: drop i s}\n```\n","title":"splitAt","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"RCons","contents":["before",{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]},{"annotation":[],"tag":"RCons","contents":["after",{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]},{"annotation":[],"tag":"REmpty"}]}]}]}]}]}},"sourceSpan":{"start":[340,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[340,81]}}]}
diff --git a/tests/purs/publish/basic-example/output/Data.String.CodeUnits/externs.json b/tests/purs/publish/basic-example/output/Data.String.CodeUnits/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.String.CodeUnits/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Data","String","CodeUnits"],"efExports":[{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[340,81]},{"Ident":"stripPrefix"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[340,81]},{"Ident":"stripSuffix"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[340,81]},{"Ident":"contains"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[340,81]},{"Ident":"singleton"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[340,81]},{"Ident":"fromCharArray"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[340,81]},{"Ident":"toCharArray"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[340,81]},{"Ident":"charAt"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[340,81]},{"Ident":"toChar"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[340,81]},{"Ident":"uncons"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[340,81]},{"Ident":"length"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[340,81]},{"Ident":"countPrefix"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[340,81]},{"Ident":"indexOf"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[340,81]},{"Ident":"indexOf'"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[340,81]},{"Ident":"lastIndexOf"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[340,81]},{"Ident":"lastIndexOf'"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[340,81]},{"Ident":"take"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[340,81]},{"Ident":"takeRight"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[340,81]},{"Ident":"takeWhile"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[340,81]},{"Ident":"drop"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[340,81]},{"Ident":"dropRight"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[340,81]},{"Ident":"dropWhile"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[340,81]},{"Ident":"slice"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[340,81]},{"Ident":"splitAt"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Prelude"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Data","Maybe"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[29,20],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[29,29]},"Maybe",null]},{"ValueRef":[{"start":[29,31],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[29,37]},{"Ident":"isJust"}]}]},"eiImportedAs":null},{"eiModule":["Data","String","Pattern"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[30,29],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[30,40]},"Pattern",null]}]},"eiImportedAs":null},{"eiModule":["Data","String","Unsafe"],"eiImportType":{"Implicit":[]},"eiImportedAs":["U"]}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDValue":{"edValueName":{"Ident":"stripPrefix"},"edValueType":{"annotation":[{"start":[46,16],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[46,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[46,16],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[46,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[46,24],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[46,26]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[46,16],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[46,23]},[]],"tag":"TypeConstructor","contents":[["Data","String","Pattern"],"Pattern"]}]},{"annotation":[{"start":[46,27],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[46,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[46,27],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[46,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[46,34],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[46,36]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[46,27],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[46,33]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[{"start":[46,37],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[46,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[46,37],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[46,42]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[46,43],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[46,49]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}]}]}}},{"EDValue":{"edValueName":{"Ident":"stripSuffix"},"edValueType":{"annotation":[{"start":[60,16],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[60,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[60,16],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[60,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[60,24],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[60,26]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[60,16],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[60,23]},[]],"tag":"TypeConstructor","contents":[["Data","String","Pattern"],"Pattern"]}]},{"annotation":[{"start":[60,27],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[60,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[60,27],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[60,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[60,34],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[60,36]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[60,27],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[60,33]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[{"start":[60,37],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[60,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[60,37],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[60,42]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[60,43],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[60,49]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}]}]}}},{"EDValue":{"edValueName":{"Ident":"contains"},"edValueType":{"annotation":[{"start":[72,13],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[72,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[72,13],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[72,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[72,21],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[72,23]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[72,13],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[72,20]},[]],"tag":"TypeConstructor","contents":[["Data","String","Pattern"],"Pattern"]}]},{"annotation":[{"start":[72,24],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[72,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[72,24],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[72,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[72,31],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[72,33]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[72,24],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[72,30]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[{"start":[72,34],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[72,41]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]}}},{"EDValue":{"edValueName":{"Ident":"singleton"},"edValueType":{"annotation":[{"start":[85,29],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[85,43]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[85,29],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[85,43]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[85,34],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[85,36]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[85,29],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[85,33]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Char"]}]},{"annotation":[{"start":[85,37],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[85,43]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}}},{"EDValue":{"edValueName":{"Ident":"fromCharArray"},"edValueType":{"annotation":[{"start":[92,33],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[92,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[92,33],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[92,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[92,44],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[92,46]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[92,33],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[92,43]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[92,33],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[92,38]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[92,39],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[92,43]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Char"]}]}]},{"annotation":[{"start":[92,47],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[92,53]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}}},{"EDValue":{"edValueName":{"Ident":"toCharArray"},"edValueType":{"annotation":[{"start":[99,31],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[99,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[99,31],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[99,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[99,38],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[99,40]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[99,31],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[99,37]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[{"start":[99,41],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[99,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[99,41],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[99,46]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[99,47],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[99,51]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Char"]}]}]}}},{"EDValue":{"edValueName":{"Ident":"charAt"},"edValueType":{"annotation":[{"start":[108,11],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[108,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[108,11],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[108,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[108,15],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[108,17]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[108,11],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[108,14]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[108,18],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[108,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[108,18],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[108,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[108,25],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[108,27]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[108,18],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[108,24]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[{"start":[108,28],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[108,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[108,28],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[108,33]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[108,34],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[108,38]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Char"]}]}]}]}}},{"EDValue":{"edValueName":{"Ident":"toChar"},"edValueType":{"annotation":[{"start":[125,11],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[125,31]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[125,11],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[125,31]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[125,18],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[125,20]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[125,11],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[125,17]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[{"start":[125,21],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[125,31]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[125,21],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[125,26]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[125,27],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[125,31]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Char"]}]}]}}},{"EDValue":{"edValueName":{"Ident":"uncons"},"edValueType":{"annotation":[{"start":[142,11],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[142,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[142,11],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[142,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[142,18],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[142,20]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[142,11],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[142,17]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[{"start":[142,21],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[142,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[142,21],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[142,26]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[142,27],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[142,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[142,27],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[142,28]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[142,29],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[142,41]},[]],"tag":"RCons","contents":["head",{"annotation":[{"start":[142,37],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[142,41]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Char"]},{"annotation":[{"start":[142,43],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[142,57]},[]],"tag":"RCons","contents":["tail",{"annotation":[{"start":[142,51],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[142,57]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]},{"annotation":[{"start":[142,58],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[142,59]},[]],"tag":"REmpty"}]}]}]}]}]}}},{"EDValue":{"edValueName":{"Ident":"length"},"edValueType":{"annotation":[{"start":[152,26],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[152,39]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[152,26],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[152,39]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[152,33],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[152,35]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[152,26],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[152,32]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[{"start":[152,36],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[152,39]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}}},{"EDValue":{"edValueName":{"Ident":"countPrefix"},"edValueType":{"annotation":[{"start":[161,31],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[161,65]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[161,31],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[161,65]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[161,49],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[161,51]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[161,32],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[161,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[161,32],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[161,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[161,37],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[161,39]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[161,32],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[161,36]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Char"]}]},{"annotation":[{"start":[161,40],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[161,47]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]},{"annotation":[{"start":[161,52],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[161,65]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[161,52],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[161,65]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[161,59],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[161,61]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[161,52],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[161,58]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[{"start":[161,62],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[161,65]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]}}},{"EDValue":{"edValueName":{"Ident":"indexOf"},"edValueType":{"annotation":[{"start":[171,12],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[171,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[171,12],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[171,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[171,20],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[171,22]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[171,12],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[171,19]},[]],"tag":"TypeConstructor","contents":[["Data","String","Pattern"],"Pattern"]}]},{"annotation":[{"start":[171,23],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[171,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[171,23],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[171,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[171,30],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[171,32]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[171,23],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[171,29]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[{"start":[171,33],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[171,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[171,33],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[171,38]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[171,39],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[171,42]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]}]}}},{"EDValue":{"edValueName":{"Ident":"indexOf'"},"edValueType":{"annotation":[{"start":[190,13],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[190,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[190,13],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[190,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[190,21],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[190,23]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[190,13],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[190,20]},[]],"tag":"TypeConstructor","contents":[["Data","String","Pattern"],"Pattern"]}]},{"annotation":[{"start":[190,24],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[190,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[190,24],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[190,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[190,28],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[190,30]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[190,24],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[190,27]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[190,31],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[190,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[190,31],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[190,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[190,38],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[190,40]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[190,31],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[190,37]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[{"start":[190,41],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[190,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[190,41],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[190,46]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[190,47],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[190,50]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]}]}]}}},{"EDValue":{"edValueName":{"Ident":"lastIndexOf"},"edValueType":{"annotation":[{"start":[209,16],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[209,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[209,16],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[209,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[209,24],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[209,26]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[209,16],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[209,23]},[]],"tag":"TypeConstructor","contents":[["Data","String","Pattern"],"Pattern"]}]},{"annotation":[{"start":[209,27],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[209,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[209,27],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[209,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[209,34],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[209,36]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[209,27],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[209,33]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[{"start":[209,37],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[209,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[209,37],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[209,42]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[209,43],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[209,46]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]}]}}},{"EDValue":{"edValueName":{"Ident":"lastIndexOf'"},"edValueType":{"annotation":[{"start":[230,17],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[230,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[230,17],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[230,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[230,25],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[230,27]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[230,17],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[230,24]},[]],"tag":"TypeConstructor","contents":[["Data","String","Pattern"],"Pattern"]}]},{"annotation":[{"start":[230,28],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[230,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[230,28],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[230,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[230,32],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[230,34]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[230,28],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[230,31]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[230,35],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[230,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[230,35],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[230,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[230,42],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[230,44]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[230,35],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[230,41]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[{"start":[230,45],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[230,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[230,45],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[230,50]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[230,51],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[230,54]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]}]}]}}},{"EDValue":{"edValueName":{"Ident":"take"},"edValueType":{"annotation":[{"start":[247,24],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[247,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[247,24],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[247,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[247,28],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[247,30]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[247,24],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[247,27]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[247,31],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[247,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[247,31],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[247,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[247,38],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[247,40]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[247,31],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[247,37]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[{"start":[247,41],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[247,47]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}]}}},{"EDValue":{"edValueName":{"Ident":"takeRight"},"edValueType":{"annotation":[{"start":[255,14],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[255,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[255,14],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[255,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[255,18],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[255,20]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[255,14],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[255,17]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[255,21],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[255,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[255,21],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[255,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[255,28],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[255,30]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[255,21],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[255,27]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[{"start":[255,31],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[255,37]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}]}}},{"EDValue":{"edValueName":{"Ident":"takeWhile"},"edValueType":{"annotation":[{"start":[265,14],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[265,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[265,14],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[265,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[265,32],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[265,34]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[265,15],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[265,30]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[265,15],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[265,30]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[265,20],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[265,22]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[265,15],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[265,19]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Char"]}]},{"annotation":[{"start":[265,23],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[265,30]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]},{"annotation":[{"start":[265,35],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[265,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[265,35],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[265,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[265,42],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[265,44]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[265,35],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[265,41]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[{"start":[265,45],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[265,51]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}]}}},{"EDValue":{"edValueName":{"Ident":"drop"},"edValueType":{"annotation":[{"start":[274,24],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[274,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[274,24],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[274,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[274,28],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[274,30]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[274,24],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[274,27]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[274,31],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[274,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[274,31],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[274,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[274,38],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[274,40]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[274,31],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[274,37]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[{"start":[274,41],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[274,47]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}]}}},{"EDValue":{"edValueName":{"Ident":"dropRight"},"edValueType":{"annotation":[{"start":[282,14],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[282,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[282,14],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[282,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[282,18],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[282,20]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[282,14],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[282,17]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[282,21],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[282,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[282,21],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[282,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[282,28],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[282,30]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[282,21],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[282,27]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[{"start":[282,31],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[282,37]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}]}}},{"EDValue":{"edValueName":{"Ident":"dropWhile"},"edValueType":{"annotation":[{"start":[291,14],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[291,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[291,14],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[291,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[291,32],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[291,34]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[291,15],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[291,30]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[291,15],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[291,30]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[291,20],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[291,22]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[291,15],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[291,19]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Char"]}]},{"annotation":[{"start":[291,23],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[291,30]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]},{"annotation":[{"start":[291,35],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[291,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[291,35],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[291,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[291,42],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[291,44]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[291,35],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[291,41]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[{"start":[291,45],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[291,51]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}]}}},{"EDValue":{"edValueName":{"Ident":"slice"},"edValueType":{"annotation":[{"start":[306,10],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[306,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[306,10],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[306,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[306,14],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[306,16]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[306,10],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[306,13]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[306,17],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[306,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[306,17],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[306,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[306,21],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[306,23]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[306,17],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[306,20]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[306,24],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[306,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[306,24],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[306,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[306,31],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[306,33]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[306,24],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[306,30]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[{"start":[306,34],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[306,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[306,34],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[306,39]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[306,40],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[306,46]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}]}]}]}}},{"EDValue":{"edValueName":{"Ident":"splitAt"},"edValueType":{"annotation":[{"start":[340,27],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[340,81]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[340,27],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[340,81]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[340,31],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[340,33]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[340,27],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[340,30]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[340,34],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[340,81]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[340,34],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[340,81]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[340,41],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[340,43]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[340,34],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[340,40]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[{"start":[340,44],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[340,81]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[340,44],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[340,45]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[340,46],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[340,62]},[]],"tag":"RCons","contents":["before",{"annotation":[{"start":[340,56],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[340,62]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]},{"annotation":[{"start":[340,64],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[340,79]},[]],"tag":"RCons","contents":["after",{"annotation":[{"start":[340,73],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[340,79]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]},{"annotation":[{"start":[340,80],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[340,81]},[]],"tag":"REmpty"}]}]}]}]}]}}}],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/CodeUnits.purs","end":[340,81]}}
diff --git a/tests/purs/publish/basic-example/output/Data.String.Common/docs.json b/tests/purs/publish/basic-example/output/Data.String.Common/docs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.String.Common/docs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"reExports":[],"name":"Data.String.Common","comments":null,"declarations":[{"children":[],"comments":"Returns `true` if the given string is empty.\n\n```purescript\nnull \"\" == true\nnull \"Hi\" == false\n```\n","title":"null","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}},"sourceSpan":{"start":[23,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Common.purs","end":[23,26]}},{"children":[],"comments":"Compare two strings in a locale-aware fashion. This is in contrast to\nthe `Ord` instance on `String` which treats strings as arrays of code\nunits:\n\n```purescript\n\"ä\" `localeCompare` \"b\" == LT\n\"ä\" `compare` \"b\" == GT\n```\n","title":"localeCompare","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ordering"],"Ordering"]}]}]}},"sourceSpan":{"start":[34,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Common.purs","end":[34,46]}},{"children":[],"comments":"Replaces the first occurence of the pattern with the replacement string.\n\n```purescript\nreplace (Pattern \"<=\") (Replacement \"≤\") \"a <= b <= c\" == \"a ≤ b <= c\"\n```\n","title":"replace","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","Pattern"],"Pattern"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","Pattern"],"Replacement"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}]}]}},"sourceSpan":{"start":[50,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Common.purs","end":[50,69]}},{"children":[],"comments":"Replaces all occurences of the pattern with the replacement string.\n\n```purescript\nreplaceAll (Pattern \"<=\") (Replacement \"≤\") \"a <= b <= c\" == \"a ≤ b ≤ c\"\n```\n","title":"replaceAll","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","Pattern"],"Pattern"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","Pattern"],"Replacement"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}]}]}},"sourceSpan":{"start":[57,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Common.purs","end":[57,72]}},{"children":[],"comments":"Returns the substrings of the second string separated along occurences\nof the first string.\n\n```purescript\nsplit (Pattern \" \") \"hello world\" == [\"hello\", \"world\"]\n```\n","title":"split","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","Pattern"],"Pattern"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}]}]}},"sourceSpan":{"start":[65,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Common.purs","end":[65,58]}},{"children":[],"comments":"Returns the argument converted to lowercase.\n\n```purescript\ntoLower \"hElLo\" == \"hello\"\n```\n","title":"toLower","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}},"sourceSpan":{"start":[72,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Common.purs","end":[72,43]}},{"children":[],"comments":"Returns the argument converted to uppercase.\n\n```purescript\ntoUpper \"Hello\" == \"HELLO\"\n```\n","title":"toUpper","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}},"sourceSpan":{"start":[79,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Common.purs","end":[79,43]}},{"children":[],"comments":"Removes whitespace from the beginning and end of a string, including\n[whitespace characters](http://www.ecma-international.org/ecma-262/5.1/#sec-7.2)\nand [line terminators](http://www.ecma-international.org/ecma-262/5.1/#sec-7.3).\n\n```purescript\ntrim \"   Hello  \\n World\\n\\t    \" == \"Hello  \\n World\"\n```\n","title":"trim","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}},"sourceSpan":{"start":[88,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Common.purs","end":[88,40]}},{"children":[],"comments":"Joins the strings in the array together, inserting the first argument\nas separator between them.\n\n```purescript\njoinWith \", \" [\"apple\", \"banana\", \"orange\"] == \"apple, banana, orange\"\n```\n","title":"joinWith","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}]}},"sourceSpan":{"start":[96,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Common.purs","end":[96,60]}}]}
diff --git a/tests/purs/publish/basic-example/output/Data.String.Common/externs.json b/tests/purs/publish/basic-example/output/Data.String.Common/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.String.Common/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Data","String","Common"],"efExports":[{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Common.purs","end":[96,60]},{"Ident":"null"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Common.purs","end":[96,60]},{"Ident":"localeCompare"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Common.purs","end":[96,60]},{"Ident":"replace"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Common.purs","end":[96,60]},{"Ident":"replaceAll"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Common.purs","end":[96,60]},{"Ident":"split"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Common.purs","end":[96,60]},{"Ident":"toLower"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Common.purs","end":[96,60]},{"Ident":"toUpper"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Common.purs","end":[96,60]},{"Ident":"trim"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Common.purs","end":[96,60]},{"Ident":"joinWith"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Prelude"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Data","String","Pattern"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[15,29],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Common.purs","end":[15,36]},"Pattern",[]]},{"TypeRef":[{"start":[15,38],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Common.purs","end":[15,49]},"Replacement",[]]}]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDValue":{"edValueName":{"Ident":"null"},"edValueType":{"annotation":[{"start":[23,9],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Common.purs","end":[23,26]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[23,9],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Common.purs","end":[23,26]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[23,16],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Common.purs","end":[23,18]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[23,9],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Common.purs","end":[23,15]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[{"start":[23,19],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Common.purs","end":[23,26]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}}},{"EDValue":{"edValueName":{"Ident":"localeCompare"},"edValueType":{"annotation":[{"start":[34,18],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Common.purs","end":[34,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[34,18],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Common.purs","end":[34,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[34,25],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Common.purs","end":[34,27]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[34,18],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Common.purs","end":[34,24]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[{"start":[34,28],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Common.purs","end":[34,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[34,28],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Common.purs","end":[34,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[34,35],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Common.purs","end":[34,37]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[34,28],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Common.purs","end":[34,34]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[{"start":[34,38],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Common.purs","end":[34,46]},[]],"tag":"TypeConstructor","contents":[["Data","Ordering"],"Ordering"]}]}]}}},{"EDValue":{"edValueName":{"Ident":"replace"},"edValueType":{"annotation":[{"start":[50,27],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Common.purs","end":[50,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,27],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Common.purs","end":[50,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,35],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Common.purs","end":[50,37]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[50,27],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Common.purs","end":[50,34]},[]],"tag":"TypeConstructor","contents":[["Data","String","Pattern"],"Pattern"]}]},{"annotation":[{"start":[50,38],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Common.purs","end":[50,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,38],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Common.purs","end":[50,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,50],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Common.purs","end":[50,52]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[50,38],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Common.purs","end":[50,49]},[]],"tag":"TypeConstructor","contents":[["Data","String","Pattern"],"Replacement"]}]},{"annotation":[{"start":[50,53],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Common.purs","end":[50,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,53],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Common.purs","end":[50,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,60],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Common.purs","end":[50,62]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[50,53],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Common.purs","end":[50,59]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[{"start":[50,63],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Common.purs","end":[50,69]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}]}]}}},{"EDValue":{"edValueName":{"Ident":"replaceAll"},"edValueType":{"annotation":[{"start":[57,30],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Common.purs","end":[57,72]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[57,30],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Common.purs","end":[57,72]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[57,38],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Common.purs","end":[57,40]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[57,30],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Common.purs","end":[57,37]},[]],"tag":"TypeConstructor","contents":[["Data","String","Pattern"],"Pattern"]}]},{"annotation":[{"start":[57,41],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Common.purs","end":[57,72]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[57,41],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Common.purs","end":[57,72]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[57,53],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Common.purs","end":[57,55]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[57,41],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Common.purs","end":[57,52]},[]],"tag":"TypeConstructor","contents":[["Data","String","Pattern"],"Replacement"]}]},{"annotation":[{"start":[57,56],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Common.purs","end":[57,72]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[57,56],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Common.purs","end":[57,72]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[57,63],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Common.purs","end":[57,65]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[57,56],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Common.purs","end":[57,62]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[{"start":[57,66],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Common.purs","end":[57,72]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}]}]}}},{"EDValue":{"edValueName":{"Ident":"split"},"edValueType":{"annotation":[{"start":[65,25],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Common.purs","end":[65,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[65,25],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Common.purs","end":[65,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[65,33],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Common.purs","end":[65,35]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[65,25],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Common.purs","end":[65,32]},[]],"tag":"TypeConstructor","contents":[["Data","String","Pattern"],"Pattern"]}]},{"annotation":[{"start":[65,36],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Common.purs","end":[65,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[65,36],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Common.purs","end":[65,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[65,43],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Common.purs","end":[65,45]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[65,36],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Common.purs","end":[65,42]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[{"start":[65,46],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Common.purs","end":[65,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[65,46],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Common.purs","end":[65,51]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[65,52],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Common.purs","end":[65,58]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}]}]}}},{"EDValue":{"edValueName":{"Ident":"toLower"},"edValueType":{"annotation":[{"start":[72,27],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Common.purs","end":[72,43]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[72,27],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Common.purs","end":[72,43]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[72,34],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Common.purs","end":[72,36]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[72,27],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Common.purs","end":[72,33]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[{"start":[72,37],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Common.purs","end":[72,43]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}}},{"EDValue":{"edValueName":{"Ident":"toUpper"},"edValueType":{"annotation":[{"start":[79,27],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Common.purs","end":[79,43]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[79,27],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Common.purs","end":[79,43]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[79,34],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Common.purs","end":[79,36]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[79,27],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Common.purs","end":[79,33]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[{"start":[79,37],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Common.purs","end":[79,43]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}}},{"EDValue":{"edValueName":{"Ident":"trim"},"edValueType":{"annotation":[{"start":[88,24],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Common.purs","end":[88,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[88,24],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Common.purs","end":[88,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[88,31],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Common.purs","end":[88,33]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[88,24],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Common.purs","end":[88,30]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[{"start":[88,34],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Common.purs","end":[88,40]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}}},{"EDValue":{"edValueName":{"Ident":"joinWith"},"edValueType":{"annotation":[{"start":[96,28],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Common.purs","end":[96,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[96,28],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Common.purs","end":[96,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[96,35],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Common.purs","end":[96,37]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[96,28],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Common.purs","end":[96,34]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[{"start":[96,38],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Common.purs","end":[96,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[96,38],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Common.purs","end":[96,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[96,51],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Common.purs","end":[96,53]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[96,38],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Common.purs","end":[96,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[96,38],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Common.purs","end":[96,43]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[96,44],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Common.purs","end":[96,50]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}]},{"annotation":[{"start":[96,54],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Common.purs","end":[96,60]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}]}}}],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Common.purs","end":[96,60]}}
diff --git a/tests/purs/publish/basic-example/output/Data.String.Gen/docs.json b/tests/purs/publish/basic-example/output/Data.String.Gen/docs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.String.Gen/docs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"reExports":[],"name":"Data.String.Gen","comments":null,"declarations":[{"children":[],"comments":"Generates a string using the specified character generator.\n","title":"genString","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Monad","Rec","Class"],"MonadRec"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Monad","Gen","Class"],"MonadGen"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Char"]}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}]}]}]},null]}},"sourceSpan":{"start":[11,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Gen.purs","end":[11,70]}},{"children":[],"comments":"Generates a string using characters from the Unicode basic multilingual\nplain.\n","title":"genUnicodeString","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Monad","Rec","Class"],"MonadRec"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Monad","Gen","Class"],"MonadGen"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}]}]},null]}},"sourceSpan":{"start":[18,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Gen.purs","end":[18,67]}},{"children":[],"comments":"Generates a string using the ASCII character set, excluding control codes.\n","title":"genAsciiString","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Monad","Rec","Class"],"MonadRec"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Monad","Gen","Class"],"MonadGen"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}]}]},null]}},"sourceSpan":{"start":[22,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Gen.purs","end":[22,65]}},{"children":[],"comments":"Generates a string using the ASCII character set.\n","title":"genAsciiString'","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Monad","Rec","Class"],"MonadRec"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Monad","Gen","Class"],"MonadGen"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}]}]},null]}},"sourceSpan":{"start":[26,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Gen.purs","end":[26,66]}},{"children":[],"comments":"Generates a string made up of numeric digits.\n","title":"genDigitString","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Monad","Rec","Class"],"MonadRec"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Monad","Gen","Class"],"MonadGen"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}]}]},null]}},"sourceSpan":{"start":[30,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Gen.purs","end":[30,65]}},{"children":[],"comments":"Generates a string using characters from the basic Latin alphabet.\n","title":"genAlphaString","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Monad","Rec","Class"],"MonadRec"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Monad","Gen","Class"],"MonadGen"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}]}]},null]}},"sourceSpan":{"start":[34,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Gen.purs","end":[34,65]}},{"children":[],"comments":"Generates a string using lowercase characters from the basic Latin alphabet.\n","title":"genAlphaLowercaseString","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Monad","Rec","Class"],"MonadRec"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Monad","Gen","Class"],"MonadGen"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}]}]},null]}},"sourceSpan":{"start":[38,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Gen.purs","end":[38,74]}},{"children":[],"comments":"Generates a string using uppercase characters from the basic Latin alphabet.\n","title":"genAlphaUppercaseString","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Monad","Rec","Class"],"MonadRec"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Monad","Gen","Class"],"MonadGen"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}]}]},null]}},"sourceSpan":{"start":[42,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Gen.purs","end":[42,74]}}]}
diff --git a/tests/purs/publish/basic-example/output/Data.String.Gen/externs.json b/tests/purs/publish/basic-example/output/Data.String.Gen/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.String.Gen/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Data","String","Gen"],"efExports":[{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Gen.purs","end":[43,57]},{"Ident":"genString"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Gen.purs","end":[43,57]},{"Ident":"genUnicodeString"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Gen.purs","end":[43,57]},{"Ident":"genAsciiString"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Gen.purs","end":[43,57]},{"Ident":"genAsciiString'"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Gen.purs","end":[43,57]},{"Ident":"genDigitString"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Gen.purs","end":[43,57]},{"Ident":"genAlphaString"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Gen.purs","end":[43,57]},{"Ident":"genAlphaLowercaseString"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Gen.purs","end":[43,57]},{"Ident":"genAlphaUppercaseString"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Prelude"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Control","Monad","Gen"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[5,27],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Gen.purs","end":[5,41]},"MonadGen"]},{"ValueRef":[{"start":[5,43],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Gen.purs","end":[5,52]},{"Ident":"chooseInt"}]},{"ValueRef":[{"start":[5,54],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Gen.purs","end":[5,64]},{"Ident":"unfoldable"}]},{"ValueRef":[{"start":[5,66],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Gen.purs","end":[5,71]},{"Ident":"sized"}]},{"ValueRef":[{"start":[5,73],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Gen.purs","end":[5,79]},{"Ident":"resize"}]}]},"eiImportedAs":null},{"eiModule":["Control","Monad","Rec","Class"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[6,33],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Gen.purs","end":[6,47]},"MonadRec"]}]},"eiImportedAs":null},{"eiModule":["Data","Char","Gen"],"eiImportType":{"Implicit":[]},"eiImportedAs":["CG"]},{"eiModule":["Data","String","CodeUnits"],"eiImportType":{"Implicit":[]},"eiImportedAs":["SCU"]}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDValue":{"edValueName":{"Ident":"genString"},"edValueType":{"annotation":[{"start":[11,14],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Gen.purs","end":[11,70]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[11,24],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Gen.purs","end":[11,70]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[11,24],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Gen.purs","end":[11,34]},[]],"constraintClass":[["Control","Monad","Rec","Class"],"MonadRec"],"constraintArgs":[{"annotation":[{"start":[11,33],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Gen.purs","end":[11,34]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[11,38],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Gen.purs","end":[11,70]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[11,38],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Gen.purs","end":[11,48]},[]],"constraintClass":[["Control","Monad","Gen","Class"],"MonadGen"],"constraintArgs":[{"annotation":[{"start":[11,47],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Gen.purs","end":[11,48]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[11,52],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Gen.purs","end":[11,70]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[11,52],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Gen.purs","end":[11,70]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[11,59],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Gen.purs","end":[11,61]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[11,52],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Gen.purs","end":[11,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[11,52],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Gen.purs","end":[11,53]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[11,54],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Gen.purs","end":[11,58]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Char"]}]}]},{"annotation":[{"start":[11,62],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Gen.purs","end":[11,70]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[11,62],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Gen.purs","end":[11,63]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[11,64],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Gen.purs","end":[11,70]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}]}]}]},0]}}},{"EDValue":{"edValueName":{"Ident":"genUnicodeString"},"edValueType":{"annotation":[{"start":[18,21],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Gen.purs","end":[18,67]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[18,31],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Gen.purs","end":[18,67]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[18,31],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Gen.purs","end":[18,41]},[]],"constraintClass":[["Control","Monad","Rec","Class"],"MonadRec"],"constraintArgs":[{"annotation":[{"start":[18,40],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Gen.purs","end":[18,41]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[18,45],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Gen.purs","end":[18,67]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[18,45],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Gen.purs","end":[18,55]},[]],"constraintClass":[["Control","Monad","Gen","Class"],"MonadGen"],"constraintArgs":[{"annotation":[{"start":[18,54],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Gen.purs","end":[18,55]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[18,59],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Gen.purs","end":[18,67]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,59],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Gen.purs","end":[18,60]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[18,61],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Gen.purs","end":[18,67]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}]}]},2]}}},{"EDValue":{"edValueName":{"Ident":"genAsciiString"},"edValueType":{"annotation":[{"start":[22,19],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Gen.purs","end":[22,65]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[22,29],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Gen.purs","end":[22,65]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[22,29],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Gen.purs","end":[22,39]},[]],"constraintClass":[["Control","Monad","Rec","Class"],"MonadRec"],"constraintArgs":[{"annotation":[{"start":[22,38],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Gen.purs","end":[22,39]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[22,43],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Gen.purs","end":[22,65]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[22,43],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Gen.purs","end":[22,53]},[]],"constraintClass":[["Control","Monad","Gen","Class"],"MonadGen"],"constraintArgs":[{"annotation":[{"start":[22,52],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Gen.purs","end":[22,53]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[22,57],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Gen.purs","end":[22,65]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[22,57],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Gen.purs","end":[22,58]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[22,59],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Gen.purs","end":[22,65]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}]}]},8]}}},{"EDValue":{"edValueName":{"Ident":"genAsciiString'"},"edValueType":{"annotation":[{"start":[26,20],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Gen.purs","end":[26,66]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[26,30],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Gen.purs","end":[26,66]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[26,30],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Gen.purs","end":[26,40]},[]],"constraintClass":[["Control","Monad","Rec","Class"],"MonadRec"],"constraintArgs":[{"annotation":[{"start":[26,39],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Gen.purs","end":[26,40]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[26,44],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Gen.purs","end":[26,66]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[26,44],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Gen.purs","end":[26,54]},[]],"constraintClass":[["Control","Monad","Gen","Class"],"MonadGen"],"constraintArgs":[{"annotation":[{"start":[26,53],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Gen.purs","end":[26,54]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[26,58],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Gen.purs","end":[26,66]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[26,58],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Gen.purs","end":[26,59]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[26,60],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Gen.purs","end":[26,66]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}]}]},6]}}},{"EDValue":{"edValueName":{"Ident":"genDigitString"},"edValueType":{"annotation":[{"start":[30,19],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Gen.purs","end":[30,65]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[30,29],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Gen.purs","end":[30,65]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[30,29],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Gen.purs","end":[30,39]},[]],"constraintClass":[["Control","Monad","Rec","Class"],"MonadRec"],"constraintArgs":[{"annotation":[{"start":[30,38],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Gen.purs","end":[30,39]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[30,43],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Gen.purs","end":[30,65]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[30,43],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Gen.purs","end":[30,53]},[]],"constraintClass":[["Control","Monad","Gen","Class"],"MonadGen"],"constraintArgs":[{"annotation":[{"start":[30,52],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Gen.purs","end":[30,53]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[30,57],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Gen.purs","end":[30,65]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[30,57],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Gen.purs","end":[30,58]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[30,59],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Gen.purs","end":[30,65]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}]}]},4]}}},{"EDValue":{"edValueName":{"Ident":"genAlphaString"},"edValueType":{"annotation":[{"start":[34,19],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Gen.purs","end":[34,65]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[34,29],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Gen.purs","end":[34,65]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[34,29],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Gen.purs","end":[34,39]},[]],"constraintClass":[["Control","Monad","Rec","Class"],"MonadRec"],"constraintArgs":[{"annotation":[{"start":[34,38],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Gen.purs","end":[34,39]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[34,43],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Gen.purs","end":[34,65]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[34,43],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Gen.purs","end":[34,53]},[]],"constraintClass":[["Control","Monad","Gen","Class"],"MonadGen"],"constraintArgs":[{"annotation":[{"start":[34,52],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Gen.purs","end":[34,53]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[34,57],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Gen.purs","end":[34,65]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[34,57],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Gen.purs","end":[34,58]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[34,59],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Gen.purs","end":[34,65]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}]}]},12]}}},{"EDValue":{"edValueName":{"Ident":"genAlphaLowercaseString"},"edValueType":{"annotation":[{"start":[38,28],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Gen.purs","end":[38,74]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[38,38],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Gen.purs","end":[38,74]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[38,38],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Gen.purs","end":[38,48]},[]],"constraintClass":[["Control","Monad","Rec","Class"],"MonadRec"],"constraintArgs":[{"annotation":[{"start":[38,47],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Gen.purs","end":[38,48]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[38,52],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Gen.purs","end":[38,74]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[38,52],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Gen.purs","end":[38,62]},[]],"constraintClass":[["Control","Monad","Gen","Class"],"MonadGen"],"constraintArgs":[{"annotation":[{"start":[38,61],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Gen.purs","end":[38,62]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[38,66],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Gen.purs","end":[38,74]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[38,66],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Gen.purs","end":[38,67]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[38,68],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Gen.purs","end":[38,74]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}]}]},14]}}},{"EDValue":{"edValueName":{"Ident":"genAlphaUppercaseString"},"edValueType":{"annotation":[{"start":[42,28],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Gen.purs","end":[42,74]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[42,38],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Gen.purs","end":[42,74]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[42,38],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Gen.purs","end":[42,48]},[]],"constraintClass":[["Control","Monad","Rec","Class"],"MonadRec"],"constraintArgs":[{"annotation":[{"start":[42,47],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Gen.purs","end":[42,48]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[42,52],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Gen.purs","end":[42,74]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[42,52],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Gen.purs","end":[42,62]},[]],"constraintClass":[["Control","Monad","Gen","Class"],"MonadGen"],"constraintArgs":[{"annotation":[{"start":[42,61],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Gen.purs","end":[42,62]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[42,66],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Gen.purs","end":[42,74]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[42,66],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Gen.purs","end":[42,67]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[42,68],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Gen.purs","end":[42,74]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}]}]},10]}}}],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Gen.purs","end":[43,57]}}
diff --git a/tests/purs/publish/basic-example/output/Data.String.NonEmpty.CaseInsensitive/docs.json b/tests/purs/publish/basic-example/output/Data.String.NonEmpty.CaseInsensitive/docs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.String.NonEmpty.CaseInsensitive/docs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"reExports":[],"name":"Data.String.NonEmpty.CaseInsensitive","comments":null,"declarations":[{"children":[{"comments":null,"title":"CaseInsensitiveNonEmptyString","info":{"arguments":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}],"declType":"dataConstructor"},"sourceSpan":null},{"comments":null,"title":"eqCaseInsensitiveNonEmptyString","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Eq"],"Eq"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","CaseInsensitive"],"CaseInsensitiveNonEmptyString"]}]}},"sourceSpan":{"start":[11,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CaseInsensitive.purs","end":[13,29]}},{"comments":null,"title":"ordCaseInsensitiveNonEmptyString","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord"],"Ord"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","CaseInsensitive"],"CaseInsensitiveNonEmptyString"]}]}},"sourceSpan":{"start":[15,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CaseInsensitive.purs","end":[17,38]}},{"comments":null,"title":"showCaseInsensitiveNonEmptyString","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Show"],"Show"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","CaseInsensitive"],"CaseInsensitiveNonEmptyString"]}]}},"sourceSpan":{"start":[19,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CaseInsensitive.purs","end":[20,94]}},{"comments":null,"title":"newtypeCaseInsensitiveNonEmptyString","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Newtype"],"Newtype"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","CaseInsensitive"],"CaseInsensitiveNonEmptyString"]}]},{"annotation":[],"tag":"TypeWildcard","contents":null}]}},"sourceSpan":{"start":[22,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CaseInsensitive.purs","end":[22,96]}}],"comments":"A newtype for case insensitive string comparisons and ordering.\n","title":"CaseInsensitiveNonEmptyString","info":{"declType":"data","dataDeclType":"newtype","typeArguments":[]},"sourceSpan":{"start":[9,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CaseInsensitive.purs","end":[9,85]}}]}
diff --git a/tests/purs/publish/basic-example/output/Data.String.NonEmpty.CaseInsensitive/externs.json b/tests/purs/publish/basic-example/output/Data.String.NonEmpty.CaseInsensitive/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.String.NonEmpty.CaseInsensitive/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Data","String","NonEmpty","CaseInsensitive"],"efExports":[{"TypeRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CaseInsensitive.purs","end":[22,96]},"CaseInsensitiveNonEmptyString",["CaseInsensitiveNonEmptyString"]]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"eqCaseInsensitiveNonEmptyString"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"ordCaseInsensitiveNonEmptyString"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"showCaseInsensitiveNonEmptyString"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"newtypeCaseInsensitiveNonEmptyString"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Prelude"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Data","Newtype"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[5,22],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CaseInsensitive.purs","end":[5,35]},"Newtype"]}]},"eiImportedAs":null},{"eiModule":["Data","String","NonEmpty"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[6,30],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CaseInsensitive.purs","end":[6,44]},"NonEmptyString",[]]},{"ValueRef":[{"start":[6,46],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CaseInsensitive.purs","end":[6,53]},{"Ident":"toLower"}]}]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDType":{"edTypeName":"CaseInsensitiveNonEmptyString","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},"edTypeDeclarationKind":{"DataType":{"args":[],"ctors":[["CaseInsensitiveNonEmptyString",[{"annotation":[{"start":[9,71],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CaseInsensitive.purs","end":[9,85]},[]],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]]]}}}},{"EDDataConstructor":{"edDataCtorName":"CaseInsensitiveNonEmptyString","edDataCtorOrigin":"newtype","edDataCtorTypeCtor":"CaseInsensitiveNonEmptyString","edDataCtorType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[9,71],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CaseInsensitive.purs","end":[9,85]},[]],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","CaseInsensitive"],"CaseInsensitiveNonEmptyString"]}]},"edDataCtorFields":[{"Ident":"value0"}]}},{"EDInstance":{"edInstanceClassName":[["Data","Eq"],"Eq"],"edInstanceName":{"Ident":"eqCaseInsensitiveNonEmptyString"},"edInstanceTypes":[{"annotation":[{"start":[11,48],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CaseInsensitive.purs","end":[11,77]},[]],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","CaseInsensitive"],"CaseInsensitiveNonEmptyString"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","String","NonEmpty","CaseInsensitive"],{"Ident":"eqCaseInsensitiveNonEmptyString"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Ord"],"Ord"],"edInstanceName":{"Ident":"ordCaseInsensitiveNonEmptyString"},"edInstanceTypes":[{"annotation":[{"start":[15,50],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CaseInsensitive.purs","end":[15,79]},[]],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","CaseInsensitive"],"CaseInsensitiveNonEmptyString"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","String","NonEmpty","CaseInsensitive"],{"Ident":"ordCaseInsensitiveNonEmptyString"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Show"],"Show"],"edInstanceName":{"Ident":"showCaseInsensitiveNonEmptyString"},"edInstanceTypes":[{"annotation":[{"start":[19,52],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CaseInsensitive.purs","end":[19,81]},[]],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","CaseInsensitive"],"CaseInsensitiveNonEmptyString"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","String","NonEmpty","CaseInsensitive"],{"Ident":"showCaseInsensitiveNonEmptyString"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Newtype"],"Newtype"],"edInstanceName":{"Ident":"newtypeCaseInsensitiveNonEmptyString"},"edInstanceTypes":[{"annotation":[{"start":[22,65],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CaseInsensitive.purs","end":[22,94]},[]],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","CaseInsensitive"],"CaseInsensitiveNonEmptyString"]},{"annotation":[{"start":[9,71],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CaseInsensitive.purs","end":[9,85]},[]],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","String","NonEmpty","CaseInsensitive"],{"Ident":"newtypeCaseInsensitiveNonEmptyString"}]],"edInstanceChainIndex":0}}],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CaseInsensitive.purs","end":[22,96]}}
diff --git a/tests/purs/publish/basic-example/output/Data.String.NonEmpty.CodePoints/docs.json b/tests/purs/publish/basic-example/output/Data.String.NonEmpty.CodePoints/docs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.String.NonEmpty.CodePoints/docs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"reExports":[],"name":"Data.String.NonEmpty.CodePoints","comments":null,"declarations":[{"children":[],"comments":null,"title":"fromCodePointArray","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","CodePoints"],"CodePoint"]}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]}]}},"sourceSpan":{"start":[50,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[50,62]}},{"children":[],"comments":null,"title":"fromNonEmptyCodePointArray","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","CodePoints"],"CodePoint"]}]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]}},"sourceSpan":{"start":[55,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[55,72]}},{"children":[],"comments":null,"title":"singleton","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","CodePoints"],"CodePoint"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]}},"sourceSpan":{"start":[58,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[58,41]}},{"children":[],"comments":null,"title":"cons","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","CodePoints"],"CodePoint"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]}]}},"sourceSpan":{"start":[61,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[61,46]}},{"children":[],"comments":null,"title":"snoc","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","CodePoints"],"CodePoint"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]}]}},"sourceSpan":{"start":[64,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[64,46]}},{"children":[],"comments":null,"title":"fromFoldable1","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Semigroup","Foldable"],"Foldable1"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","CodePoints"],"CodePoint"]}]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]}]},null]}},"sourceSpan":{"start":[67,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[67,72]}},{"children":[],"comments":null,"title":"toCodePointArray","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","CodePoints"],"CodePoint"]}]}]}},"sourceSpan":{"start":[70,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[70,54]}},{"children":[],"comments":null,"title":"toNonEmptyCodePointArray","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","CodePoints"],"CodePoint"]}]}]}},"sourceSpan":{"start":[73,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[73,70]}},{"children":[],"comments":null,"title":"codePointAt","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","CodePoints"],"CodePoint"]}]}]}]}},"sourceSpan":{"start":[76,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[76,56]}},{"children":[],"comments":null,"title":"indexOf","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","Pattern"],"Pattern"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]}]}},"sourceSpan":{"start":[79,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[79,50]}},{"children":[],"comments":null,"title":"indexOf'","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","Pattern"],"Pattern"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]}]}]}},"sourceSpan":{"start":[82,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[82,58]}},{"children":[],"comments":null,"title":"lastIndexOf","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","Pattern"],"Pattern"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]}]}},"sourceSpan":{"start":[85,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[85,54]}},{"children":[],"comments":null,"title":"lastIndexOf'","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","Pattern"],"Pattern"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]}]}]}},"sourceSpan":{"start":[88,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[88,62]}},{"children":[],"comments":null,"title":"uncons","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"RCons","contents":["head",{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","CodePoints"],"CodePoint"]},{"annotation":[],"tag":"RCons","contents":["tail",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]},{"annotation":[],"tag":"REmpty"}]}]}]}]}},"sourceSpan":{"start":[91,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[91,80]}},{"children":[],"comments":null,"title":"length","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}},"sourceSpan":{"start":[100,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[100,32]}},{"children":[],"comments":null,"title":"take","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]}]}]}},"sourceSpan":{"start":[103,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[103,54]}},{"children":[],"comments":null,"title":"takeWhile","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","CodePoints"],"CodePoint"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]}]}]}},"sourceSpan":{"start":[112,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[112,78]}},{"children":[],"comments":null,"title":"drop","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]}]}]}},"sourceSpan":{"start":[115,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[115,54]}},{"children":[],"comments":null,"title":"dropWhile","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","CodePoints"],"CodePoint"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]}]}]}},"sourceSpan":{"start":[124,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[124,78]}},{"children":[],"comments":null,"title":"countPrefix","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","CodePoints"],"CodePoint"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]}},"sourceSpan":{"start":[127,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[127,63]}},{"children":[],"comments":null,"title":"splitAt","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"RCons","contents":["before",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]},{"annotation":[],"tag":"RCons","contents":["after",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]},{"annotation":[],"tag":"REmpty"}]}]}]}]}]}},"sourceSpan":{"start":[130,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[133,71]}}]}
diff --git a/tests/purs/publish/basic-example/output/Data.String.NonEmpty.CodePoints/externs.json b/tests/purs/publish/basic-example/output/Data.String.NonEmpty.CodePoints/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.String.NonEmpty.CodePoints/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Data","String","NonEmpty","CodePoints"],"efExports":[{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[136,80]},{"Ident":"fromCodePointArray"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[136,80]},{"Ident":"fromNonEmptyCodePointArray"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[136,80]},{"Ident":"singleton"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[136,80]},{"Ident":"cons"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[136,80]},{"Ident":"snoc"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[136,80]},{"Ident":"fromFoldable1"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[136,80]},{"Ident":"toCodePointArray"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[136,80]},{"Ident":"toNonEmptyCodePointArray"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[136,80]},{"Ident":"codePointAt"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[136,80]},{"Ident":"indexOf"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[136,80]},{"Ident":"indexOf'"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[136,80]},{"Ident":"lastIndexOf"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[136,80]},{"Ident":"lastIndexOf'"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[136,80]},{"Ident":"uncons"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[136,80]},{"Ident":"length"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[136,80]},{"Ident":"take"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[136,80]},{"Ident":"takeWhile"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[136,80]},{"Ident":"drop"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[136,80]},{"Ident":"dropWhile"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[136,80]},{"Ident":"countPrefix"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[136,80]},{"Ident":"splitAt"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Prelude"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Data","Array","NonEmpty"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[29,29],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[29,42]},"NonEmptyArray",[]]}]},"eiImportedAs":null},{"eiModule":["Data","Array","NonEmpty"],"eiImportType":{"Implicit":[]},"eiImportedAs":["NEA"]},{"eiModule":["Data","Maybe"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[31,20],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[31,29]},"Maybe",null]},{"ValueRef":[{"start":[31,31],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[31,39]},{"Ident":"fromJust"}]}]},"eiImportedAs":null},{"eiModule":["Data","Semigroup","Foldable"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[32,33],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[32,48]},"Foldable1"]}]},"eiImportedAs":null},{"eiModule":["Data","Semigroup","Foldable"],"eiImportType":{"Implicit":[]},"eiImportedAs":["F1"]},{"eiModule":["Data","String","CodePoints"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[34,32],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[34,41]},"CodePoint",[]]}]},"eiImportedAs":null},{"eiModule":["Data","String","CodePoints"],"eiImportType":{"Implicit":[]},"eiImportedAs":["CP"]},{"eiModule":["Data","String","NonEmpty","Internal"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[36,39],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[36,53]},"NonEmptyString",[]]},{"ValueRef":[{"start":[36,55],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[36,65]},{"Ident":"fromString"}]}]},"eiImportedAs":null},{"eiModule":["Data","String","Pattern"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[37,29],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[37,36]},"Pattern",[]]}]},"eiImportedAs":null},{"eiModule":["Partial","Unsafe"],"eiImportType":{"Explicit":[{"ValueRef":[{"start":[38,24],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[38,37]},{"Ident":"unsafePartial"}]}]},"eiImportedAs":null},{"eiModule":["Unsafe","Coerce"],"eiImportType":{"Explicit":[{"ValueRef":[{"start":[39,23],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[39,35]},{"Ident":"unsafeCoerce"}]}]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDValue":{"edValueName":{"Ident":"fromCodePointArray"},"edValueType":{"annotation":[{"start":[50,23],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[50,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,23],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[50,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,39],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[50,41]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[50,23],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[50,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,23],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[50,28]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[50,29],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[50,38]},[]],"tag":"TypeConstructor","contents":[["Data","String","CodePoints"],"CodePoint"]}]}]},{"annotation":[{"start":[50,42],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[50,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,42],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[50,47]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[50,48],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[50,62]},[]],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]}]}}},{"EDValue":{"edValueName":{"Ident":"fromNonEmptyCodePointArray"},"edValueType":{"annotation":[{"start":[55,31],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[55,72]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,31],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[55,72]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,55],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[55,57]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[55,31],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[55,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,31],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[55,44]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[{"start":[55,45],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[55,54]},[]],"tag":"TypeConstructor","contents":[["Data","String","CodePoints"],"CodePoint"]}]}]},{"annotation":[{"start":[55,58],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[55,72]},[]],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]}}},{"EDValue":{"edValueName":{"Ident":"singleton"},"edValueType":{"annotation":[{"start":[58,14],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[58,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[58,14],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[58,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[58,24],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[58,26]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[58,14],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[58,23]},[]],"tag":"TypeConstructor","contents":[["Data","String","CodePoints"],"CodePoint"]}]},{"annotation":[{"start":[58,27],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[58,41]},[]],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]}}},{"EDValue":{"edValueName":{"Ident":"cons"},"edValueType":{"annotation":[{"start":[61,9],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[61,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[61,9],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[61,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[61,19],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[61,21]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[61,9],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[61,18]},[]],"tag":"TypeConstructor","contents":[["Data","String","CodePoints"],"CodePoint"]}]},{"annotation":[{"start":[61,22],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[61,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[61,22],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[61,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[61,29],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[61,31]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[61,22],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[61,28]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[{"start":[61,32],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[61,46]},[]],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]}]}}},{"EDValue":{"edValueName":{"Ident":"snoc"},"edValueType":{"annotation":[{"start":[64,9],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[64,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[64,9],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[64,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[64,19],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[64,21]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[64,9],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[64,18]},[]],"tag":"TypeConstructor","contents":[["Data","String","CodePoints"],"CodePoint"]}]},{"annotation":[{"start":[64,22],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[64,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[64,22],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[64,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[64,29],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[64,31]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[64,22],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[64,28]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[{"start":[64,32],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[64,46]},[]],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]}]}}},{"EDValue":{"edValueName":{"Ident":"fromFoldable1"},"edValueType":{"annotation":[{"start":[67,18],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[67,72]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[67,28],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[67,72]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[67,28],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[67,39]},[]],"constraintClass":[["Data","Semigroup","Foldable"],"Foldable1"],"constraintArgs":[{"annotation":[{"start":[67,38],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[67,39]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[67,43],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[67,72]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[67,43],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[67,72]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[67,55],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[67,57]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[67,43],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[67,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[67,43],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[67,44]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[67,45],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[67,54]},[]],"tag":"TypeConstructor","contents":[["Data","String","CodePoints"],"CodePoint"]}]}]},{"annotation":[{"start":[67,58],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[67,72]},[]],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]}]},11]}}},{"EDValue":{"edValueName":{"Ident":"toCodePointArray"},"edValueType":{"annotation":[{"start":[70,21],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[70,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[70,21],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[70,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[70,36],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[70,38]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[70,21],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[70,35]},[]],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]},{"annotation":[{"start":[70,39],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[70,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[70,39],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[70,44]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[70,45],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[70,54]},[]],"tag":"TypeConstructor","contents":[["Data","String","CodePoints"],"CodePoint"]}]}]}}},{"EDValue":{"edValueName":{"Ident":"toNonEmptyCodePointArray"},"edValueType":{"annotation":[{"start":[73,29],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[73,70]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[73,29],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[73,70]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[73,44],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[73,46]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[73,29],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[73,43]},[]],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]},{"annotation":[{"start":[73,47],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[73,70]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[73,47],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[73,60]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[{"start":[73,61],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[73,70]},[]],"tag":"TypeConstructor","contents":[["Data","String","CodePoints"],"CodePoint"]}]}]}}},{"EDValue":{"edValueName":{"Ident":"codePointAt"},"edValueType":{"annotation":[{"start":[76,16],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[76,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[76,16],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[76,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[76,20],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[76,22]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[76,16],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[76,19]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[76,23],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[76,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[76,23],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[76,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[76,38],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[76,40]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[76,23],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[76,37]},[]],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]},{"annotation":[{"start":[76,41],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[76,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[76,41],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[76,46]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[76,47],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[76,56]},[]],"tag":"TypeConstructor","contents":[["Data","String","CodePoints"],"CodePoint"]}]}]}]}}},{"EDValue":{"edValueName":{"Ident":"indexOf"},"edValueType":{"annotation":[{"start":[79,12],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[79,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[79,12],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[79,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[79,20],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[79,22]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[79,12],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[79,19]},[]],"tag":"TypeConstructor","contents":[["Data","String","Pattern"],"Pattern"]}]},{"annotation":[{"start":[79,23],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[79,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[79,23],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[79,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[79,38],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[79,40]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[79,23],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[79,37]},[]],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]},{"annotation":[{"start":[79,41],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[79,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[79,41],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[79,46]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[79,47],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[79,50]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]}]}}},{"EDValue":{"edValueName":{"Ident":"indexOf'"},"edValueType":{"annotation":[{"start":[82,13],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[82,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[82,13],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[82,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[82,21],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[82,23]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[82,13],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[82,20]},[]],"tag":"TypeConstructor","contents":[["Data","String","Pattern"],"Pattern"]}]},{"annotation":[{"start":[82,24],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[82,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[82,24],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[82,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[82,28],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[82,30]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[82,24],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[82,27]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[82,31],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[82,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[82,31],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[82,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[82,46],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[82,48]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[82,31],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[82,45]},[]],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]},{"annotation":[{"start":[82,49],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[82,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[82,49],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[82,54]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[82,55],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[82,58]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]}]}]}}},{"EDValue":{"edValueName":{"Ident":"lastIndexOf"},"edValueType":{"annotation":[{"start":[85,16],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[85,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[85,16],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[85,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[85,24],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[85,26]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[85,16],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[85,23]},[]],"tag":"TypeConstructor","contents":[["Data","String","Pattern"],"Pattern"]}]},{"annotation":[{"start":[85,27],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[85,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[85,27],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[85,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[85,42],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[85,44]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[85,27],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[85,41]},[]],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]},{"annotation":[{"start":[85,45],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[85,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[85,45],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[85,50]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[85,51],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[85,54]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]}]}}},{"EDValue":{"edValueName":{"Ident":"lastIndexOf'"},"edValueType":{"annotation":[{"start":[88,17],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[88,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[88,17],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[88,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[88,25],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[88,27]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[88,17],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[88,24]},[]],"tag":"TypeConstructor","contents":[["Data","String","Pattern"],"Pattern"]}]},{"annotation":[{"start":[88,28],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[88,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[88,28],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[88,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[88,32],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[88,34]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[88,28],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[88,31]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[88,35],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[88,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[88,35],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[88,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[88,50],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[88,52]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[88,35],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[88,49]},[]],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]},{"annotation":[{"start":[88,53],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[88,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[88,53],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[88,58]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[88,59],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[88,62]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]}]}]}}},{"EDValue":{"edValueName":{"Ident":"uncons"},"edValueType":{"annotation":[{"start":[91,11],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[91,80]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[91,11],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[91,80]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[91,26],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[91,28]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[91,11],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[91,25]},[]],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]},{"annotation":[{"start":[91,29],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[91,80]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[91,29],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[91,30]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[91,31],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[91,48]},[]],"tag":"RCons","contents":["head",{"annotation":[{"start":[91,39],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[91,48]},[]],"tag":"TypeConstructor","contents":[["Data","String","CodePoints"],"CodePoint"]},{"annotation":[{"start":[91,50],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[91,78]},[]],"tag":"RCons","contents":["tail",{"annotation":[{"start":[91,58],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[91,78]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[91,58],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[91,63]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[91,64],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[91,78]},[]],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]},{"annotation":[{"start":[91,79],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[91,80]},[]],"tag":"REmpty"}]}]}]}]}}},{"EDValue":{"edValueName":{"Ident":"length"},"edValueType":{"annotation":[{"start":[100,11],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[100,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[100,11],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[100,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[100,26],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[100,28]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[100,11],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[100,25]},[]],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]},{"annotation":[{"start":[100,29],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[100,32]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}}},{"EDValue":{"edValueName":{"Ident":"take"},"edValueType":{"annotation":[{"start":[103,9],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[103,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[103,9],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[103,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[103,13],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[103,15]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[103,9],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[103,12]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[103,16],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[103,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[103,16],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[103,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[103,31],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[103,33]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[103,16],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[103,30]},[]],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]},{"annotation":[{"start":[103,34],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[103,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[103,34],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[103,39]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[103,40],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[103,54]},[]],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]}]}]}}},{"EDValue":{"edValueName":{"Ident":"takeWhile"},"edValueType":{"annotation":[{"start":[112,14],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[112,78]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[112,14],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[112,78]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[112,37],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[112,39]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[112,15],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[112,35]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[112,15],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[112,35]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[112,25],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[112,27]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[112,15],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[112,24]},[]],"tag":"TypeConstructor","contents":[["Data","String","CodePoints"],"CodePoint"]}]},{"annotation":[{"start":[112,28],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[112,35]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]},{"annotation":[{"start":[112,40],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[112,78]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[112,40],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[112,78]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[112,55],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[112,57]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[112,40],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[112,54]},[]],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]},{"annotation":[{"start":[112,58],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[112,78]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[112,58],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[112,63]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[112,64],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[112,78]},[]],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]}]}]}}},{"EDValue":{"edValueName":{"Ident":"drop"},"edValueType":{"annotation":[{"start":[115,9],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[115,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[115,9],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[115,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[115,13],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[115,15]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[115,9],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[115,12]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[115,16],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[115,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[115,16],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[115,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[115,31],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[115,33]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[115,16],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[115,30]},[]],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]},{"annotation":[{"start":[115,34],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[115,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[115,34],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[115,39]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[115,40],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[115,54]},[]],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]}]}]}}},{"EDValue":{"edValueName":{"Ident":"dropWhile"},"edValueType":{"annotation":[{"start":[124,14],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[124,78]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[124,14],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[124,78]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[124,37],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[124,39]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[124,15],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[124,35]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[124,15],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[124,35]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[124,25],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[124,27]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[124,15],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[124,24]},[]],"tag":"TypeConstructor","contents":[["Data","String","CodePoints"],"CodePoint"]}]},{"annotation":[{"start":[124,28],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[124,35]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]},{"annotation":[{"start":[124,40],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[124,78]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[124,40],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[124,78]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[124,55],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[124,57]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[124,40],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[124,54]},[]],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]},{"annotation":[{"start":[124,58],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[124,78]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[124,58],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[124,63]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[124,64],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[124,78]},[]],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]}]}]}}},{"EDValue":{"edValueName":{"Ident":"countPrefix"},"edValueType":{"annotation":[{"start":[127,16],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[127,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[127,16],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[127,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[127,39],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[127,41]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[127,17],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[127,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[127,17],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[127,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[127,27],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[127,29]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[127,17],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[127,26]},[]],"tag":"TypeConstructor","contents":[["Data","String","CodePoints"],"CodePoint"]}]},{"annotation":[{"start":[127,30],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[127,37]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]},{"annotation":[{"start":[127,42],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[127,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[127,42],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[127,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[127,57],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[127,59]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[127,42],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[127,56]},[]],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]},{"annotation":[{"start":[127,60],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[127,63]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]}}},{"EDValue":{"edValueName":{"Ident":"splitAt"},"edValueType":{"annotation":[{"start":[131,6],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[133,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[131,6],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[133,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[132,3],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[132,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[131,6],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[131,9]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[132,6],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[133,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[132,6],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[133,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[133,3],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[133,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[132,6],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[132,20]},[]],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]},{"annotation":[{"start":[133,6],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[133,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[133,6],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[133,7]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[133,8],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[133,38]},[]],"tag":"RCons","contents":["before",{"annotation":[{"start":[133,18],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[133,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[133,18],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[133,23]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[133,24],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[133,38]},[]],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]},{"annotation":[{"start":[133,40],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[133,69]},[]],"tag":"RCons","contents":["after",{"annotation":[{"start":[133,49],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[133,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[133,49],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[133,54]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[133,55],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[133,69]},[]],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]},{"annotation":[{"start":[133,70],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[133,71]},[]],"tag":"REmpty"}]}]}]}]}]}}}],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodePoints.purs","end":[136,80]}}
diff --git a/tests/purs/publish/basic-example/output/Data.String.NonEmpty.CodeUnits/docs.json b/tests/purs/publish/basic-example/output/Data.String.NonEmpty.CodeUnits/docs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.String.NonEmpty.CodeUnits/docs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"reExports":[],"name":"Data.String.NonEmpty.CodeUnits","comments":null,"declarations":[{"children":[],"comments":"Creates a `NonEmptyString` from a character array `String`, returning\n`Nothing` if the input is empty.\n\n```purescript\nfromCharArray [] = Nothing\nfromCharArray ['a', 'b', 'c'] = Just (NonEmptyString \"abc\")\n```\n","title":"fromCharArray","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Char"]}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]}]}},"sourceSpan":{"start":[58,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[58,52]}},{"children":[],"comments":null,"title":"fromNonEmptyCharArray","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Char"]}]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]}},"sourceSpan":{"start":[63,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[63,62]}},{"children":[],"comments":"Creates a `NonEmptyString` from a character.\n","title":"singleton","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Char"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]}},"sourceSpan":{"start":[67,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[67,36]}},{"children":[],"comments":"Creates a `NonEmptyString` from a string by prepending a character.\n\n```purescript\ncons 'a' \"bc\" = NonEmptyString \"abc\"\ncons 'a' \"\" = NonEmptyString \"a\"\n```\n","title":"cons","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Char"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]}]}},"sourceSpan":{"start":[76,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[76,41]}},{"children":[],"comments":"Creates a `NonEmptyString` from a string by appending a character.\n\n```purescript\nsnoc 'c' \"ab\" = NonEmptyString \"abc\"\nsnoc 'a' \"\" = NonEmptyString \"a\"\n```\n","title":"snoc","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Char"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]}]}},"sourceSpan":{"start":[85,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[85,41]}},{"children":[],"comments":"Creates a `NonEmptyString` from a `Foldable1` container carrying\ncharacters.\n","title":"fromFoldable1","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Semigroup","Foldable"],"Foldable1"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Char"]}]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]}]},null]}},"sourceSpan":{"start":[90,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[90,67]}},{"children":[],"comments":"Converts the `NonEmptyString` into an array of characters.\n\n```purescript\ntoCharArray (NonEmptyString \"Hello☺\\n\") == ['H','e','l','l','o','☺','\\n']\n```\n","title":"toCharArray","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Char"]}]}]}},"sourceSpan":{"start":[101,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[101,44]}},{"children":[],"comments":"Converts the `NonEmptyString` into a non-empty array of characters.\n","title":"toNonEmptyCharArray","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Char"]}]}]}},"sourceSpan":{"start":[105,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[105,60]}},{"children":[],"comments":"Returns the character at the given index, if the index is within bounds.\n\n```purescript\ncharAt 2 (NonEmptyString \"Hello\") == Just 'l'\ncharAt 10 (NonEmptyString \"Hello\") == Nothing\n```\n","title":"charAt","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Char"]}]}]}]}},"sourceSpan":{"start":[114,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[114,46]}},{"children":[],"comments":"Converts the `NonEmptyString` to a character, if the length of the string\nis exactly `1`.\n\n```purescript\ntoChar \"H\" == Just 'H'\ntoChar \"Hi\" == Nothing\n```\n","title":"toChar","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Char"]}]}]}},"sourceSpan":{"start":[124,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[124,39]}},{"children":[],"comments":"Returns the index of the first occurrence of the pattern in the\ngiven string. Returns `Nothing` if there is no match.\n\n```purescript\nindexOf (Pattern \"c\") (NonEmptyString \"abcdc\") == Just 2\nindexOf (Pattern \"c\") (NonEmptyString \"aaa\") == Nothing\n```\n","title":"indexOf","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","Pattern"],"Pattern"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]}]}},"sourceSpan":{"start":[134,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[134,50]}},{"children":[],"comments":"Returns the index of the first occurrence of the pattern in the\ngiven string, starting at the specified index. Returns `Nothing` if there is\nno match.\n\n```purescript\nindexOf' (Pattern \"a\") 2 (NonEmptyString \"ababa\") == Just 2\nindexOf' (Pattern \"a\") 3 (NonEmptyString \"ababa\") == Just 4\n```\n","title":"indexOf'","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","Pattern"],"Pattern"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]}]}]}},"sourceSpan":{"start":[145,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[145,58]}},{"children":[],"comments":"Returns the index of the last occurrence of the pattern in the\ngiven string. Returns `Nothing` if there is no match.\n\n```purescript\nlastIndexOf (Pattern \"c\") (NonEmptyString \"abcdc\") == Just 4\nlastIndexOf (Pattern \"c\") (NonEmptyString \"aaa\") == Nothing\n```\n","title":"lastIndexOf","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","Pattern"],"Pattern"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]}]}},"sourceSpan":{"start":[155,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[155,54]}},{"children":[],"comments":"Returns the index of the last occurrence of the pattern in the\ngiven string, starting at the specified index\nand searching backwards towards the beginning of the string.\nReturns `Nothing` if there is no match.\n\n```purescript\nlastIndexOf' (Pattern \"a\") 1 (NonEmptyString \"ababa\") == Just 0\nlastIndexOf' (Pattern \"a\") 3 (NonEmptyString \"ababa\") == Just 2\nlastIndexOf' (Pattern \"a\") 4 (NonEmptyString \"ababa\") == Just 4\n```\n","title":"lastIndexOf'","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","Pattern"],"Pattern"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]}]}]}},"sourceSpan":{"start":[168,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[168,62]}},{"children":[],"comments":"Returns the first character and the rest of the string.\n\n```purescript\nuncons \"a\" == { head: 'a', tail: Nothing }\nuncons \"Hello World\" == { head: 'H', tail: Just (NonEmptyString \"ello World\") }\n```\n","title":"uncons","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"RCons","contents":["head",{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Char"]},{"annotation":[],"tag":"RCons","contents":["tail",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]},{"annotation":[],"tag":"REmpty"}]}]}]}]}},"sourceSpan":{"start":[177,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[177,75]}},{"children":[],"comments":"Returns the number of characters the string is composed of.\n\n```purescript\nlength (NonEmptyString \"Hello World\") == 11\n```\n","title":"length","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}},"sourceSpan":{"start":[191,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[191,32]}},{"children":[],"comments":"Returns the first `n` characters of the string. Returns `Nothing` if `n` is\nless than 1.\n\n```purescript\ntake 5 (NonEmptyString \"Hello World\") == Just (NonEmptyString \"Hello\")\ntake 0 (NonEmptyString \"Hello World\") == Nothing\n```\n","title":"take","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]}]}]}},"sourceSpan":{"start":[201,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[201,54]}},{"children":[],"comments":"Returns the last `n` characters of the string. Returns `Nothing` if `n` is\nless than 1.\n\n```purescript\ntake 5 (NonEmptyString \"Hello World\") == Just (NonEmptyString \"World\")\ntake 0 (NonEmptyString \"Hello World\") == Nothing\n```\n","title":"takeRight","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]}]}]}},"sourceSpan":{"start":[217,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[217,59]}},{"children":[],"comments":"Returns the longest prefix of characters that satisfy the predicate.\n`Nothing` is returned if there is no matching prefix.\n\n```purescript\ntakeWhile (_ /= ':') (NonEmptyString \"http://purescript.org\") == Just (NonEmptyString \"http\")\ntakeWhile (_ == 'a') (NonEmptyString \"xyz\") == Nothing\n```\n","title":"takeWhile","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Char"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]}]}]}},"sourceSpan":{"start":[233,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[233,73]}},{"children":[],"comments":"Returns the string without the first `n` characters. Returns `Nothing` if\nmore characters are dropped than the string is long.\n\n```purescript\ndrop 6 (NonEmptyString \"Hello World\") == Just (NonEmptyString \"World\")\ndrop 20 (NonEmptyString \"Hello World\") == Nothing\n```\n","title":"drop","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]}]}]}},"sourceSpan":{"start":[243,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[243,54]}},{"children":[],"comments":"Returns the string without the last `n` characters. Returns `Nothing` if\nmore characters are dropped than the string is long.\n\n```purescript\ndropRight 6 (NonEmptyString \"Hello World\") == Just (NonEmptyString \"Hello\")\ndropRight 20 (NonEmptyString \"Hello World\") == Nothing\n```\n","title":"dropRight","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]}]}]}},"sourceSpan":{"start":[259,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[259,59]}},{"children":[],"comments":"Returns the suffix remaining after `takeWhile`.\n\n```purescript\ndropWhile (_ /= '.') (NonEmptyString \"Test.purs\") == Just (NonEmptyString \".purs\")\n```\n","title":"dropWhile","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Char"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]}]}]}},"sourceSpan":{"start":[273,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[273,73]}},{"children":[],"comments":"Returns the number of contiguous characters at the beginning of the string\nfor which the predicate holds.\n\n```purescript\ncountPrefix (_ /= 'o') (NonEmptyString \"Hello World\") == 4\n```\n","title":"countPrefix","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Char"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]}},"sourceSpan":{"start":[282,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[282,58]}},{"children":[],"comments":"Returns the substrings of a split at the given index, if the index is\nwithin bounds.\n\n```purescript\nsplitAt 2 (NonEmptyString \"Hello World\") == Just { before: Just (NonEmptyString \"He\"), after: Just (NonEmptyString \"llo World\") }\nsplitAt 10 (NonEmptyString \"Hi\") == Nothing\n```\n","title":"splitAt","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"RCons","contents":["before",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]},{"annotation":[],"tag":"RCons","contents":["after",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]},{"annotation":[],"tag":"REmpty"}]}]}]}]}]}},"sourceSpan":{"start":[292,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[295,71]}}]}
diff --git a/tests/purs/publish/basic-example/output/Data.String.NonEmpty.CodeUnits/externs.json b/tests/purs/publish/basic-example/output/Data.String.NonEmpty.CodeUnits/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.String.NonEmpty.CodeUnits/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Data","String","NonEmpty","CodeUnits"],"efExports":[{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[298,80]},{"Ident":"fromCharArray"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[298,80]},{"Ident":"fromNonEmptyCharArray"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[298,80]},{"Ident":"singleton"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[298,80]},{"Ident":"cons"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[298,80]},{"Ident":"snoc"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[298,80]},{"Ident":"fromFoldable1"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[298,80]},{"Ident":"toCharArray"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[298,80]},{"Ident":"toNonEmptyCharArray"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[298,80]},{"Ident":"charAt"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[298,80]},{"Ident":"toChar"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[298,80]},{"Ident":"indexOf"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[298,80]},{"Ident":"indexOf'"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[298,80]},{"Ident":"lastIndexOf"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[298,80]},{"Ident":"lastIndexOf'"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[298,80]},{"Ident":"uncons"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[298,80]},{"Ident":"length"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[298,80]},{"Ident":"take"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[298,80]},{"Ident":"takeRight"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[298,80]},{"Ident":"takeWhile"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[298,80]},{"Ident":"drop"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[298,80]},{"Ident":"dropRight"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[298,80]},{"Ident":"dropWhile"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[298,80]},{"Ident":"countPrefix"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[298,80]},{"Ident":"splitAt"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Prelude"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Data","Array","NonEmpty"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[30,29],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[30,42]},"NonEmptyArray",[]]}]},"eiImportedAs":null},{"eiModule":["Data","Array","NonEmpty"],"eiImportType":{"Implicit":[]},"eiImportedAs":["NEA"]},{"eiModule":["Data","Maybe"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[32,20],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[32,29]},"Maybe",null]},{"ValueRef":[{"start":[32,31],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[32,39]},{"Ident":"fromJust"}]}]},"eiImportedAs":null},{"eiModule":["Data","Semigroup","Foldable"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[33,33],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[33,48]},"Foldable1"]}]},"eiImportedAs":null},{"eiModule":["Data","Semigroup","Foldable"],"eiImportType":{"Implicit":[]},"eiImportedAs":["F1"]},{"eiModule":["Data","String","CodeUnits"],"eiImportType":{"Implicit":[]},"eiImportedAs":["CU"]},{"eiModule":["Data","String","NonEmpty","Internal"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[36,39],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[36,53]},"NonEmptyString",[]]},{"ValueRef":[{"start":[36,55],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[36,65]},{"Ident":"fromString"}]}]},"eiImportedAs":null},{"eiModule":["Data","String","Pattern"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[37,29],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[37,36]},"Pattern",[]]}]},"eiImportedAs":null},{"eiModule":["Data","String","Unsafe"],"eiImportType":{"Implicit":[]},"eiImportedAs":["U"]},{"eiModule":["Partial","Unsafe"],"eiImportType":{"Explicit":[{"ValueRef":[{"start":[39,24],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[39,37]},{"Ident":"unsafePartial"}]}]},"eiImportedAs":null},{"eiModule":["Unsafe","Coerce"],"eiImportType":{"Explicit":[{"ValueRef":[{"start":[40,23],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[40,35]},{"Ident":"unsafeCoerce"}]}]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDValue":{"edValueName":{"Ident":"fromCharArray"},"edValueType":{"annotation":[{"start":[58,18],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[58,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[58,18],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[58,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[58,29],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[58,31]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[58,18],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[58,28]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[58,18],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[58,23]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[58,24],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[58,28]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Char"]}]}]},{"annotation":[{"start":[58,32],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[58,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[58,32],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[58,37]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[58,38],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[58,52]},[]],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]}]}}},{"EDValue":{"edValueName":{"Ident":"fromNonEmptyCharArray"},"edValueType":{"annotation":[{"start":[63,26],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[63,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[63,26],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[63,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[63,45],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[63,47]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[63,26],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[63,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[63,26],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[63,39]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[{"start":[63,40],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[63,44]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Char"]}]}]},{"annotation":[{"start":[63,48],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[63,62]},[]],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]}}},{"EDValue":{"edValueName":{"Ident":"singleton"},"edValueType":{"annotation":[{"start":[67,14],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[67,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[67,14],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[67,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[67,19],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[67,21]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[67,14],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[67,18]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Char"]}]},{"annotation":[{"start":[67,22],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[67,36]},[]],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]}}},{"EDValue":{"edValueName":{"Ident":"cons"},"edValueType":{"annotation":[{"start":[76,9],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[76,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[76,9],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[76,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[76,14],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[76,16]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[76,9],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[76,13]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Char"]}]},{"annotation":[{"start":[76,17],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[76,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[76,17],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[76,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[76,24],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[76,26]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[76,17],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[76,23]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[{"start":[76,27],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[76,41]},[]],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]}]}}},{"EDValue":{"edValueName":{"Ident":"snoc"},"edValueType":{"annotation":[{"start":[85,9],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[85,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[85,9],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[85,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[85,14],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[85,16]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[85,9],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[85,13]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Char"]}]},{"annotation":[{"start":[85,17],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[85,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[85,17],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[85,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[85,24],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[85,26]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[85,17],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[85,23]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[{"start":[85,27],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[85,41]},[]],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]}]}}},{"EDValue":{"edValueName":{"Ident":"fromFoldable1"},"edValueType":{"annotation":[{"start":[90,18],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[90,67]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[90,28],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[90,67]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[90,28],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[90,39]},[]],"constraintClass":[["Data","Semigroup","Foldable"],"Foldable1"],"constraintArgs":[{"annotation":[{"start":[90,38],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[90,39]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[90,43],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[90,67]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[90,43],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[90,67]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[90,50],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[90,52]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[90,43],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[90,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[90,43],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[90,44]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[90,45],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[90,49]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Char"]}]}]},{"annotation":[{"start":[90,53],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[90,67]},[]],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]}]},11]}}},{"EDValue":{"edValueName":{"Ident":"toCharArray"},"edValueType":{"annotation":[{"start":[101,16],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[101,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[101,16],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[101,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[101,31],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[101,33]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[101,16],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[101,30]},[]],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]},{"annotation":[{"start":[101,34],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[101,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[101,34],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[101,39]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[101,40],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[101,44]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Char"]}]}]}}},{"EDValue":{"edValueName":{"Ident":"toNonEmptyCharArray"},"edValueType":{"annotation":[{"start":[105,24],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[105,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[105,24],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[105,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[105,39],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[105,41]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[105,24],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[105,38]},[]],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]},{"annotation":[{"start":[105,42],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[105,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[105,42],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[105,55]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[{"start":[105,56],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[105,60]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Char"]}]}]}}},{"EDValue":{"edValueName":{"Ident":"charAt"},"edValueType":{"annotation":[{"start":[114,11],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[114,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[114,11],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[114,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[114,15],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[114,17]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[114,11],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[114,14]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[114,18],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[114,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[114,18],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[114,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[114,33],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[114,35]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[114,18],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[114,32]},[]],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]},{"annotation":[{"start":[114,36],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[114,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[114,36],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[114,41]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[114,42],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[114,46]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Char"]}]}]}]}}},{"EDValue":{"edValueName":{"Ident":"toChar"},"edValueType":{"annotation":[{"start":[124,11],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[124,39]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[124,11],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[124,39]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[124,26],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[124,28]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[124,11],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[124,25]},[]],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]},{"annotation":[{"start":[124,29],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[124,39]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[124,29],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[124,34]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[124,35],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[124,39]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Char"]}]}]}}},{"EDValue":{"edValueName":{"Ident":"indexOf"},"edValueType":{"annotation":[{"start":[134,12],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[134,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[134,12],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[134,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[134,20],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[134,22]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[134,12],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[134,19]},[]],"tag":"TypeConstructor","contents":[["Data","String","Pattern"],"Pattern"]}]},{"annotation":[{"start":[134,23],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[134,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[134,23],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[134,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[134,38],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[134,40]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[134,23],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[134,37]},[]],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]},{"annotation":[{"start":[134,41],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[134,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[134,41],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[134,46]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[134,47],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[134,50]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]}]}}},{"EDValue":{"edValueName":{"Ident":"indexOf'"},"edValueType":{"annotation":[{"start":[145,13],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[145,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[145,13],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[145,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[145,21],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[145,23]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[145,13],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[145,20]},[]],"tag":"TypeConstructor","contents":[["Data","String","Pattern"],"Pattern"]}]},{"annotation":[{"start":[145,24],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[145,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[145,24],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[145,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[145,28],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[145,30]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[145,24],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[145,27]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[145,31],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[145,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[145,31],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[145,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[145,46],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[145,48]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[145,31],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[145,45]},[]],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]},{"annotation":[{"start":[145,49],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[145,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[145,49],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[145,54]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[145,55],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[145,58]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]}]}]}}},{"EDValue":{"edValueName":{"Ident":"lastIndexOf"},"edValueType":{"annotation":[{"start":[155,16],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[155,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[155,16],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[155,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[155,24],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[155,26]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[155,16],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[155,23]},[]],"tag":"TypeConstructor","contents":[["Data","String","Pattern"],"Pattern"]}]},{"annotation":[{"start":[155,27],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[155,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[155,27],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[155,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[155,42],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[155,44]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[155,27],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[155,41]},[]],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]},{"annotation":[{"start":[155,45],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[155,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[155,45],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[155,50]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[155,51],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[155,54]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]}]}}},{"EDValue":{"edValueName":{"Ident":"lastIndexOf'"},"edValueType":{"annotation":[{"start":[168,17],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[168,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[168,17],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[168,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[168,25],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[168,27]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[168,17],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[168,24]},[]],"tag":"TypeConstructor","contents":[["Data","String","Pattern"],"Pattern"]}]},{"annotation":[{"start":[168,28],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[168,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[168,28],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[168,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[168,32],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[168,34]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[168,28],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[168,31]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[168,35],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[168,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[168,35],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[168,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[168,50],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[168,52]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[168,35],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[168,49]},[]],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]},{"annotation":[{"start":[168,53],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[168,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[168,53],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[168,58]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[168,59],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[168,62]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]}]}]}}},{"EDValue":{"edValueName":{"Ident":"uncons"},"edValueType":{"annotation":[{"start":[177,11],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[177,75]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[177,11],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[177,75]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[177,26],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[177,28]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[177,11],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[177,25]},[]],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]},{"annotation":[{"start":[177,29],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[177,75]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[177,29],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[177,30]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[177,31],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[177,43]},[]],"tag":"RCons","contents":["head",{"annotation":[{"start":[177,39],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[177,43]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Char"]},{"annotation":[{"start":[177,45],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[177,73]},[]],"tag":"RCons","contents":["tail",{"annotation":[{"start":[177,53],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[177,73]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[177,53],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[177,58]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[177,59],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[177,73]},[]],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]},{"annotation":[{"start":[177,74],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[177,75]},[]],"tag":"REmpty"}]}]}]}]}}},{"EDValue":{"edValueName":{"Ident":"length"},"edValueType":{"annotation":[{"start":[191,11],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[191,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[191,11],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[191,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[191,26],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[191,28]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[191,11],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[191,25]},[]],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]},{"annotation":[{"start":[191,29],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[191,32]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}}},{"EDValue":{"edValueName":{"Ident":"take"},"edValueType":{"annotation":[{"start":[201,9],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[201,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[201,9],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[201,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[201,13],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[201,15]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[201,9],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[201,12]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[201,16],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[201,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[201,16],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[201,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[201,31],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[201,33]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[201,16],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[201,30]},[]],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]},{"annotation":[{"start":[201,34],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[201,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[201,34],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[201,39]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[201,40],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[201,54]},[]],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]}]}]}}},{"EDValue":{"edValueName":{"Ident":"takeRight"},"edValueType":{"annotation":[{"start":[217,14],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[217,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[217,14],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[217,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[217,18],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[217,20]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[217,14],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[217,17]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[217,21],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[217,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[217,21],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[217,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[217,36],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[217,38]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[217,21],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[217,35]},[]],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]},{"annotation":[{"start":[217,39],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[217,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[217,39],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[217,44]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[217,45],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[217,59]},[]],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]}]}]}}},{"EDValue":{"edValueName":{"Ident":"takeWhile"},"edValueType":{"annotation":[{"start":[233,14],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[233,73]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[233,14],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[233,73]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[233,32],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[233,34]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[233,15],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[233,30]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[233,15],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[233,30]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[233,20],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[233,22]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[233,15],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[233,19]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Char"]}]},{"annotation":[{"start":[233,23],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[233,30]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]},{"annotation":[{"start":[233,35],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[233,73]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[233,35],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[233,73]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[233,50],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[233,52]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[233,35],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[233,49]},[]],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]},{"annotation":[{"start":[233,53],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[233,73]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[233,53],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[233,58]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[233,59],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[233,73]},[]],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]}]}]}}},{"EDValue":{"edValueName":{"Ident":"drop"},"edValueType":{"annotation":[{"start":[243,9],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[243,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[243,9],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[243,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[243,13],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[243,15]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[243,9],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[243,12]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[243,16],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[243,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[243,16],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[243,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[243,31],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[243,33]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[243,16],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[243,30]},[]],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]},{"annotation":[{"start":[243,34],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[243,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[243,34],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[243,39]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[243,40],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[243,54]},[]],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]}]}]}}},{"EDValue":{"edValueName":{"Ident":"dropRight"},"edValueType":{"annotation":[{"start":[259,14],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[259,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[259,14],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[259,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[259,18],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[259,20]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[259,14],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[259,17]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[259,21],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[259,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[259,21],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[259,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[259,36],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[259,38]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[259,21],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[259,35]},[]],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]},{"annotation":[{"start":[259,39],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[259,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[259,39],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[259,44]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[259,45],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[259,59]},[]],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]}]}]}}},{"EDValue":{"edValueName":{"Ident":"dropWhile"},"edValueType":{"annotation":[{"start":[273,14],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[273,73]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[273,14],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[273,73]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[273,32],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[273,34]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[273,15],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[273,30]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[273,15],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[273,30]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[273,20],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[273,22]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[273,15],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[273,19]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Char"]}]},{"annotation":[{"start":[273,23],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[273,30]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]},{"annotation":[{"start":[273,35],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[273,73]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[273,35],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[273,73]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[273,50],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[273,52]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[273,35],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[273,49]},[]],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]},{"annotation":[{"start":[273,53],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[273,73]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[273,53],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[273,58]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[273,59],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[273,73]},[]],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]}]}]}}},{"EDValue":{"edValueName":{"Ident":"countPrefix"},"edValueType":{"annotation":[{"start":[282,16],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[282,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[282,16],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[282,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[282,34],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[282,36]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[282,17],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[282,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[282,17],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[282,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[282,22],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[282,24]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[282,17],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[282,21]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Char"]}]},{"annotation":[{"start":[282,25],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[282,32]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]},{"annotation":[{"start":[282,37],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[282,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[282,37],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[282,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[282,52],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[282,54]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[282,37],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[282,51]},[]],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]},{"annotation":[{"start":[282,55],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[282,58]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]}}},{"EDValue":{"edValueName":{"Ident":"splitAt"},"edValueType":{"annotation":[{"start":[293,6],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[295,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[293,6],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[295,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[294,3],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[294,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[293,6],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[293,9]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[294,6],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[295,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[294,6],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[295,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[295,3],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[295,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[294,6],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[294,20]},[]],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]},{"annotation":[{"start":[295,6],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[295,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[295,6],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[295,7]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[295,8],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[295,38]},[]],"tag":"RCons","contents":["before",{"annotation":[{"start":[295,18],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[295,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[295,18],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[295,23]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[295,24],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[295,38]},[]],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]},{"annotation":[{"start":[295,40],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[295,69]},[]],"tag":"RCons","contents":["after",{"annotation":[{"start":[295,49],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[295,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[295,49],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[295,54]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[295,55],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[295,69]},[]],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]},{"annotation":[{"start":[295,70],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[295,71]},[]],"tag":"REmpty"}]}]}]}]}]}}}],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/CodeUnits.purs","end":[298,80]}}
diff --git a/tests/purs/publish/basic-example/output/Data.String.NonEmpty.Internal/docs.json b/tests/purs/publish/basic-example/output/Data.String.NonEmpty.Internal/docs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.String.NonEmpty.Internal/docs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"reExports":[],"name":"Data.String.NonEmpty.Internal","comments":null,"declarations":[{"children":[{"comments":null,"title":"NonEmptyString","info":{"arguments":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}],"declType":"dataConstructor"},"sourceSpan":null},{"comments":null,"title":"eqNonEmptyString","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Eq"],"Eq"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]}},"sourceSpan":{"start":[18,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[18,61]}},{"comments":null,"title":"ordNonEmptyString","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord"],"Ord"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]}},"sourceSpan":{"start":[19,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[19,63]}},{"comments":null,"title":"semigroupNonEmptyString","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup"],"Semigroup"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]}},"sourceSpan":{"start":[20,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[20,75]}},{"comments":null,"title":"showNonEmptyString","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Show"],"Show"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]}},"sourceSpan":{"start":[22,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[23,81]}}],"comments":"A string that is known not to be empty.\n","title":"NonEmptyString","info":{"declType":"data","dataDeclType":"newtype","typeArguments":[]},"sourceSpan":{"start":[16,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[16,47]}},{"children":[{"comments":null,"title":"nes","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Symbol"],"SProxy"]},{"annotation":[],"tag":"TypeVar","contents":"s"}]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]}},"sourceSpan":{"start":[32,3],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[32,36]}},{"comments":null,"title":"makeNonEmptyBad","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Prim","TypeError"],"Fail"],"constraintArgs":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim","TypeError"],"Text"]},{"annotation":[],"tag":"TypeLevelString","contents":"Cannot create an NonEmptyString from an empty Symbol"}]}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"MakeNonEmpty"]},{"annotation":[],"tag":"TypeLevelString","contents":""}]}},"sourceSpan":{"start":[34,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[35,28]}},{"comments":null,"title":"nonEmptyNonEmpty","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Symbol"],"IsSymbol"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"s"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"MakeNonEmpty"]},{"annotation":[],"tag":"TypeVar","contents":"s"}]}},"sourceSpan":{"start":[37,6],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[38,43]}}],"comments":"A helper class for defining non-empty string values at compile time.\n\n``` purescript\nsomething :: NonEmptyString\nsomething = nes (SProxy :: SProxy \"something\")\n```\n","title":"MakeNonEmpty","info":{"fundeps":[],"arguments":[["s",{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Symbol"]}]],"declType":"typeClass","superclasses":[]},"sourceSpan":{"start":[31,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[32,36]}},{"children":[{"comments":null,"title":"NonEmptyReplacement","info":{"arguments":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}],"declType":"dataConstructor"},"sourceSpan":null},{"comments":null,"title":"eqNonEmptyReplacement","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Eq"],"Eq"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyReplacement"]}]}},"sourceSpan":{"start":[43,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[43,72]}},{"comments":null,"title":"ordNonEmptyReplacement","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord"],"Ord"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyReplacement"]}]}},"sourceSpan":{"start":[44,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[44,74]}},{"comments":null,"title":"semigroupNonEmptyReplacement","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup"],"Semigroup"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyReplacement"]}]}},"sourceSpan":{"start":[45,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[45,85]}},{"comments":null,"title":"showNonEmptyReplacement","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Show"],"Show"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyReplacement"]}]}},"sourceSpan":{"start":[47,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[48,74]}}],"comments":"A newtype used in cases to specify a non-empty replacement for a pattern.\n","title":"NonEmptyReplacement","info":{"declType":"data","dataDeclType":"newtype","typeArguments":[]},"sourceSpan":{"start":[41,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[41,65]}},{"children":[],"comments":"Creates a `NonEmptyString` from a `String`, returning `Nothing` if the\ninput is empty.\n\n```purescript\nfromString \"\" = Nothing\nfromString \"hello\" = Just (NES.unsafeFromString \"hello\")\n```\n","title":"fromString","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]}]}},"sourceSpan":{"start":[57,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[57,45]}},{"children":[],"comments":"A partial version of `fromString`.\n","title":"unsafeFromString","info":{"declType":"value","type":{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Prim"],"Partial"],"constraintArgs":[],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]}]}},"sourceSpan":{"start":[63,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[63,56]}},{"children":[],"comments":"Converts a `NonEmptyString` back into a standard `String`.\n","title":"toString","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}},"sourceSpan":{"start":[67,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[67,37]}},{"children":[],"comments":"Appends a string to this non-empty string. Since one of the strings is\nnon-empty we know the result will be too.\n\n```purescript\nappendString (NonEmptyString \"Hello\") \" world\" == NonEmptyString \"Hello world\"\nappendString (NonEmptyString \"Hello\") \"\" == NonEmptyString \"Hello\"\n```\n","title":"appendString","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]}]}},"sourceSpan":{"start":[77,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[77,59]}},{"children":[],"comments":"Prepends a string to this non-empty string. Since one of the strings is\nnon-empty we know the result will be too.\n\n```purescript\nprependString \"be\" (NonEmptyString \"fore\") == NonEmptyString \"before\"\nprependString \"\" (NonEmptyString \"fore\") == NonEmptyString \"fore\"\n```\n","title":"prependString","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]}]}},"sourceSpan":{"start":[87,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[87,60]}},{"children":[],"comments":"If the string starts with the given prefix, return the portion of the\nstring left after removing it. If the prefix does not match or there is no\nremainder, the result will be `Nothing`.\n\n```purescript\nstripPrefix (Pattern \"http:\") (NonEmptyString \"http://purescript.org\") == Just (NonEmptyString \"//purescript.org\")\nstripPrefix (Pattern \"http:\") (NonEmptyString \"https://purescript.org\") == Nothing\nstripPrefix (Pattern \"Hello!\") (NonEmptyString \"Hello!\") == Nothing\n```\n","title":"stripPrefix","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","Pattern"],"Pattern"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]}]}]}},"sourceSpan":{"start":[99,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[99,65]}},{"children":[],"comments":"If the string ends with the given suffix, return the portion of the\nstring left after removing it. If the suffix does not match or there is no\nremainder, the result will be `Nothing`.\n\n```purescript\nstripSuffix (Pattern \".exe\") (NonEmptyString \"purs.exe\") == Just (NonEmptyString \"purs\")\nstripSuffix (Pattern \".exe\") (NonEmptyString \"purs\") == Nothing\nstripSuffix (Pattern \"Hello!\") (NonEmptyString \"Hello!\") == Nothing\n```\n","title":"stripSuffix","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","Pattern"],"Pattern"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]}]}]}},"sourceSpan":{"start":[111,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[111,65]}},{"children":[],"comments":"Checks whether the pattern appears in the given string.\n\n```purescript\ncontains (Pattern \"needle\") (NonEmptyString \"haystack with needle\") == true\ncontains (Pattern \"needle\") (NonEmptyString \"haystack\") == false\n```\n","title":"contains","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","Pattern"],"Pattern"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]}},"sourceSpan":{"start":[120,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[120,49]}},{"children":[],"comments":"Compare two strings in a locale-aware fashion. This is in contrast to\nthe `Ord` instance on `String` which treats strings as arrays of code\nunits:\n\n```purescript\nNonEmptyString \"ä\" `localeCompare` NonEmptyString \"b\" == LT\nNonEmptyString \"ä\" `compare` NonEmptyString \"b\" == GT\n```\n","title":"localeCompare","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ordering"],"Ordering"]}]}]}},"sourceSpan":{"start":[131,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[131,62]}},{"children":[],"comments":"Replaces the first occurence of the pattern with the replacement string.\n\n```purescript\nreplace (Pattern \"<=\") (NonEmptyReplacement \"≤\") (NonEmptyString \"a <= b <= c\") == NonEmptyString \"a ≤ b <= c\"\n```\n","title":"replace","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","Pattern"],"Pattern"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyReplacement"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]}]}]}},"sourceSpan":{"start":[139,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[139,78]}},{"children":[],"comments":"Replaces all occurences of the pattern with the replacement string.\n\n```purescript\nreplaceAll (Pattern \"<=\") (NonEmptyReplacement \"≤\") (NonEmptyString \"a <= b <= c\") == NonEmptyString \"a ≤ b ≤ c\"\n```\n","title":"replaceAll","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","Pattern"],"Pattern"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyReplacement"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]}]}]}},"sourceSpan":{"start":[148,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[148,81]}},{"children":[],"comments":"Returns the argument converted to lowercase.\n\n```purescript\ntoLower (NonEmptyString \"hElLo\") == NonEmptyString \"hello\"\n```\n","title":"toLower","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]}},"sourceSpan":{"start":[157,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[157,44]}},{"children":[],"comments":"Returns the argument converted to uppercase.\n\n```purescript\ntoUpper (NonEmptyString \"Hello\") == NonEmptyString \"HELLO\"\n```\n","title":"toUpper","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]}},"sourceSpan":{"start":[165,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[165,44]}},{"children":[],"comments":"Removes whitespace from the beginning and end of a string, including\n[whitespace characters](http://www.ecma-international.org/ecma-262/5.1/#sec-7.2)\nand [line terminators](http://www.ecma-international.org/ecma-262/5.1/#sec-7.3).\nIf the string is entirely made up of whitespace the result will be Nothing.\n\n```purescript\ntrim (NonEmptyString \"   Hello  \\n World\\n\\t    \") == Just (NonEmptyString \"Hello  \\n World\")\ntrim (NonEmptyString \"   \\n\") == Nothing\n```\n","title":"trim","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]}]}},"sourceSpan":{"start":[177,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[177,47]}},{"children":[],"comments":"Joins the strings in a container together as a new string, inserting the\nfirst argument as separator between them. The result is not guaranteed to\nbe non-empty.\n\n```purescript\njoinWith \", \" [NonEmptyString \"apple\", NonEmptyString \"banana\"] == \"apple, banana\"\njoinWith \", \" [] == \"\"\n```\n","title":"joinWith","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Foldable"],"Foldable"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}]}]},null]}},"sourceSpan":{"start":[188,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[188,73]}},{"children":[],"comments":"Joins non-empty strings in a non-empty container together as a new\nnon-empty string, inserting a possibly empty string as separator between\nthem. The result is guaranteed to be non-empty.\n\n```purescript\n-- array syntax is used for demonstration here, it would need to be a real `Foldable1`\njoin1With \", \" [NonEmptyString \"apple\", NonEmptyString \"banana\"] == NonEmptyString \"apple, banana\"\njoin1With \"\" [NonEmptyString \"apple\", NonEmptyString \"banana\"] == NonEmptyString \"applebanana\"\n```\n","title":"join1With","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Semigroup","Foldable"],"Foldable1"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]}]}]},null]}},"sourceSpan":{"start":[203,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[203,83]}},{"children":[],"comments":"Joins possibly empty strings in a non-empty container together as a new\nnon-empty string, inserting a non-empty string as a separator between them.\nThe result is guaranteed to be non-empty.\n\n```purescript\n-- array syntax is used for demonstration here, it would need to be a real `Foldable1`\njoinWith1 (NonEmptyString \", \") [\"apple\", \"banana\"] == NonEmptyString \"apple, banana\"\njoinWith1 (NonEmptyString \"/\") [\"a\", \"b\", \"\", \"c\", \"\"] == NonEmptyString \"a/b//c/\"\n```\n","title":"joinWith1","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Semigroup","Foldable"],"Foldable1"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]}]}]},null]}},"sourceSpan":{"start":[215,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[215,83]}},{"children":[],"comments":null,"title":"liftS","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["r",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}]},null]}},"sourceSpan":{"start":[218,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[218,56]}}]}
diff --git a/tests/purs/publish/basic-example/output/Data.String.NonEmpty.Internal/externs.json b/tests/purs/publish/basic-example/output/Data.String.NonEmpty.Internal/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.String.NonEmpty.Internal/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Data","String","NonEmpty","Internal"],"efExports":[{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[219,33]},{"Ident":"nes"}]},{"TypeRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[219,33]},"NonEmptyString",["NonEmptyString"]]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[219,33]},"MakeNonEmpty"]},{"TypeRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[219,33]},"NonEmptyReplacement",["NonEmptyReplacement"]]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[219,33]},{"Ident":"fromString"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[219,33]},{"Ident":"unsafeFromString"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[219,33]},{"Ident":"toString"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[219,33]},{"Ident":"appendString"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[219,33]},{"Ident":"prependString"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[219,33]},{"Ident":"stripPrefix"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[219,33]},{"Ident":"stripSuffix"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[219,33]},{"Ident":"contains"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[219,33]},{"Ident":"localeCompare"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[219,33]},{"Ident":"replace"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[219,33]},{"Ident":"replaceAll"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[219,33]},{"Ident":"toLower"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[219,33]},{"Ident":"toUpper"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[219,33]},{"Ident":"trim"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[219,33]},{"Ident":"joinWith"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[219,33]},{"Ident":"join1With"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[219,33]},{"Ident":"joinWith1"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[219,33]},{"Ident":"liftS"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"eqNonEmptyString"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"ordNonEmptyString"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"semigroupNonEmptyString"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"showNonEmptyString"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"makeNonEmptyBad"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"nonEmptyNonEmpty"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"eqNonEmptyReplacement"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"ordNonEmptyReplacement"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"semigroupNonEmptyReplacement"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"showNonEmptyReplacement"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Prelude"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Data","Foldable"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[5,23],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[5,37]},"Foldable"]}]},"eiImportedAs":null},{"eiModule":["Data","Foldable"],"eiImportType":{"Implicit":[]},"eiImportedAs":["F"]},{"eiModule":["Data","Maybe"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[7,20],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[7,29]},"Maybe",null]},{"ValueRef":[{"start":[7,31],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[7,39]},{"Ident":"fromJust"}]}]},"eiImportedAs":null},{"eiModule":["Data","Semigroup","Foldable"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[8,33],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[8,48]},"Foldable1"]}]},"eiImportedAs":null},{"eiModule":["Data","String"],"eiImportType":{"Implicit":[]},"eiImportedAs":["String"]},{"eiModule":["Data","String","Pattern"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[10,29],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[10,36]},"Pattern",[]]}]},"eiImportedAs":null},{"eiModule":["Data","Symbol"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[11,21],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[11,35]},"IsSymbol"]},{"TypeRef":[{"start":[11,37],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[11,43]},"SProxy",[]]},{"ValueRef":[{"start":[11,45],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[11,58]},{"Ident":"reflectSymbol"}]}]},"eiImportedAs":null},{"eiModule":["Prim","TypeError"],"eiImportType":{"Implicit":[]},"eiImportedAs":["TE"]},{"eiModule":["Unsafe","Coerce"],"eiImportType":{"Explicit":[{"ValueRef":[{"start":[13,23],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[13,35]},{"Ident":"unsafeCoerce"}]}]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDValue":{"edValueName":{"Ident":"nes"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["s",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["Data","String","NonEmpty","Internal"],"MakeNonEmpty"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"s"}],"constraintData":null},{"annotation":[{"start":[32,10],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[32,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[32,10],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[32,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[32,19],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[32,21]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[32,10],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[32,18]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[32,10],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[32,16]},[]],"tag":"TypeConstructor","contents":[["Data","Symbol"],"SProxy"]},{"annotation":[{"start":[32,17],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[32,18]},[]],"tag":"TypeVar","contents":"s"}]}]},{"annotation":[{"start":[32,22],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[32,36]},[]],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]}]},2]}}},{"EDType":{"edTypeName":"NonEmptyString","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},"edTypeDeclarationKind":{"DataType":{"args":[],"ctors":[["NonEmptyString",[{"annotation":[{"start":[16,41],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[16,47]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]]]}}}},{"EDDataConstructor":{"edDataCtorName":"NonEmptyString","edDataCtorOrigin":"newtype","edDataCtorTypeCtor":"NonEmptyString","edDataCtorType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[16,41],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[16,47]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]},"edDataCtorFields":[{"Ident":"value0"}]}},{"EDType":{"edTypeName":"MakeNonEmpty","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[31,26],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[31,32]},[]],"tag":"NamedKind","contents":[["Prim"],"Symbol"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"MakeNonEmpty","edTypeSynonymArguments":[["s",{"annotation":[{"start":[31,26],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[31,32]},[]],"tag":"NamedKind","contents":[["Prim"],"Symbol"]}]],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["nes",{"annotation":[{"start":[32,10],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[32,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[32,10],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[32,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[32,19],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[32,21]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[32,10],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[32,18]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[32,10],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[32,16]},[]],"tag":"TypeConstructor","contents":[["Data","Symbol"],"SProxy"]},{"annotation":[{"start":[32,17],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[32,18]},[]],"tag":"TypeVar","contents":"s"}]}]},{"annotation":[{"start":[32,22],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[32,36]},[]],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]}}},{"EDClass":{"edClassName":"MakeNonEmpty","edClassTypeArguments":[["s",{"annotation":[{"start":[31,26],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[31,32]},[]],"tag":"NamedKind","contents":[["Prim"],"Symbol"]}]],"edClassMembers":[[{"Ident":"nes"},{"annotation":[{"start":[32,10],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[32,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[32,10],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[32,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[32,19],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[32,21]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[32,10],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[32,18]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[32,10],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[32,16]},[]],"tag":"TypeConstructor","contents":[["Data","Symbol"],"SProxy"]},{"annotation":[{"start":[32,17],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[32,18]},[]],"tag":"TypeVar","contents":"s"}]}]},{"annotation":[{"start":[32,22],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[32,36]},[]],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]}]],"edClassConstraints":[],"edFunctionalDependencies":[]}},{"EDType":{"edTypeName":"NonEmptyReplacement","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},"edTypeDeclarationKind":{"DataType":{"args":[],"ctors":[["NonEmptyReplacement",[{"annotation":[{"start":[41,51],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[41,65]},[]],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]]]}}}},{"EDDataConstructor":{"edDataCtorName":"NonEmptyReplacement","edDataCtorOrigin":"newtype","edDataCtorTypeCtor":"NonEmptyReplacement","edDataCtorType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[41,51],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[41,65]},[]],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyReplacement"]}]},"edDataCtorFields":[{"Ident":"value0"}]}},{"EDValue":{"edValueName":{"Ident":"fromString"},"edValueType":{"annotation":[{"start":[57,15],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[57,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[57,15],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[57,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[57,22],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[57,24]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[57,15],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[57,21]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[{"start":[57,25],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[57,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[57,25],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[57,30]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[57,31],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[57,45]},[]],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]}]}}},{"EDValue":{"edValueName":{"Ident":"unsafeFromString"},"edValueType":{"annotation":[{"start":[63,21],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[63,56]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[63,21],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[63,28]},[]],"constraintClass":[["Prim"],"Partial"],"constraintArgs":[],"constraintData":null},{"annotation":[{"start":[63,32],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[63,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[63,32],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[63,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[63,39],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[63,41]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[63,32],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[63,38]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[{"start":[63,42],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[63,56]},[]],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]}]}}},{"EDValue":{"edValueName":{"Ident":"toString"},"edValueType":{"annotation":[{"start":[67,13],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[67,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[67,13],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[67,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[67,28],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[67,30]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[67,13],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[67,27]},[]],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]},{"annotation":[{"start":[67,31],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[67,37]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}}},{"EDValue":{"edValueName":{"Ident":"appendString"},"edValueType":{"annotation":[{"start":[77,17],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[77,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[77,17],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[77,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[77,32],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[77,34]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[77,17],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[77,31]},[]],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]},{"annotation":[{"start":[77,35],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[77,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[77,35],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[77,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[77,42],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[77,44]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[77,35],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[77,41]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[{"start":[77,45],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[77,59]},[]],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]}]}}},{"EDValue":{"edValueName":{"Ident":"prependString"},"edValueType":{"annotation":[{"start":[87,18],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[87,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[87,18],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[87,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[87,25],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[87,27]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[87,18],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[87,24]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[{"start":[87,28],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[87,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[87,28],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[87,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[87,43],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[87,45]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[87,28],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[87,42]},[]],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]},{"annotation":[{"start":[87,46],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[87,60]},[]],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]}]}}},{"EDValue":{"edValueName":{"Ident":"stripPrefix"},"edValueType":{"annotation":[{"start":[99,16],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[99,65]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[99,16],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[99,65]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[99,24],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[99,26]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[99,16],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[99,23]},[]],"tag":"TypeConstructor","contents":[["Data","String","Pattern"],"Pattern"]}]},{"annotation":[{"start":[99,27],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[99,65]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[99,27],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[99,65]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[99,42],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[99,44]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[99,27],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[99,41]},[]],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]},{"annotation":[{"start":[99,45],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[99,65]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[99,45],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[99,50]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[99,51],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[99,65]},[]],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]}]}]}}},{"EDValue":{"edValueName":{"Ident":"stripSuffix"},"edValueType":{"annotation":[{"start":[111,16],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[111,65]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[111,16],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[111,65]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[111,24],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[111,26]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[111,16],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[111,23]},[]],"tag":"TypeConstructor","contents":[["Data","String","Pattern"],"Pattern"]}]},{"annotation":[{"start":[111,27],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[111,65]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[111,27],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[111,65]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[111,42],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[111,44]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[111,27],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[111,41]},[]],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]},{"annotation":[{"start":[111,45],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[111,65]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[111,45],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[111,50]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[111,51],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[111,65]},[]],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]}]}]}}},{"EDValue":{"edValueName":{"Ident":"contains"},"edValueType":{"annotation":[{"start":[120,13],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[120,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[120,13],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[120,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[120,21],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[120,23]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[120,13],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[120,20]},[]],"tag":"TypeConstructor","contents":[["Data","String","Pattern"],"Pattern"]}]},{"annotation":[{"start":[120,24],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[120,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[120,24],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[120,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[120,39],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[120,41]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[120,24],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[120,38]},[]],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]},{"annotation":[{"start":[120,42],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[120,49]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]}}},{"EDValue":{"edValueName":{"Ident":"localeCompare"},"edValueType":{"annotation":[{"start":[131,18],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[131,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[131,18],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[131,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[131,33],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[131,35]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[131,18],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[131,32]},[]],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]},{"annotation":[{"start":[131,36],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[131,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[131,36],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[131,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[131,51],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[131,53]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[131,36],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[131,50]},[]],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]},{"annotation":[{"start":[131,54],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[131,62]},[]],"tag":"TypeConstructor","contents":[["Data","Ordering"],"Ordering"]}]}]}}},{"EDValue":{"edValueName":{"Ident":"replace"},"edValueType":{"annotation":[{"start":[139,12],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[139,78]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[139,12],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[139,78]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[139,20],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[139,22]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[139,12],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[139,19]},[]],"tag":"TypeConstructor","contents":[["Data","String","Pattern"],"Pattern"]}]},{"annotation":[{"start":[139,23],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[139,78]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[139,23],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[139,78]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[139,43],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[139,45]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[139,23],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[139,42]},[]],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyReplacement"]}]},{"annotation":[{"start":[139,46],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[139,78]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[139,46],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[139,78]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[139,61],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[139,63]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[139,46],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[139,60]},[]],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]},{"annotation":[{"start":[139,64],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[139,78]},[]],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]}]}]}}},{"EDValue":{"edValueName":{"Ident":"replaceAll"},"edValueType":{"annotation":[{"start":[148,15],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[148,81]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[148,15],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[148,81]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[148,23],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[148,25]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[148,15],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[148,22]},[]],"tag":"TypeConstructor","contents":[["Data","String","Pattern"],"Pattern"]}]},{"annotation":[{"start":[148,26],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[148,81]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[148,26],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[148,81]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[148,46],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[148,48]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[148,26],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[148,45]},[]],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyReplacement"]}]},{"annotation":[{"start":[148,49],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[148,81]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[148,49],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[148,81]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[148,64],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[148,66]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[148,49],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[148,63]},[]],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]},{"annotation":[{"start":[148,67],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[148,81]},[]],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]}]}]}}},{"EDValue":{"edValueName":{"Ident":"toLower"},"edValueType":{"annotation":[{"start":[157,12],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[157,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[157,12],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[157,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[157,27],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[157,29]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[157,12],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[157,26]},[]],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]},{"annotation":[{"start":[157,30],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[157,44]},[]],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]}}},{"EDValue":{"edValueName":{"Ident":"toUpper"},"edValueType":{"annotation":[{"start":[165,12],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[165,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[165,12],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[165,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[165,27],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[165,29]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[165,12],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[165,26]},[]],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]},{"annotation":[{"start":[165,30],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[165,44]},[]],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]}}},{"EDValue":{"edValueName":{"Ident":"trim"},"edValueType":{"annotation":[{"start":[177,9],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[177,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[177,9],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[177,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[177,24],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[177,26]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[177,9],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[177,23]},[]],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]},{"annotation":[{"start":[177,27],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[177,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[177,27],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[177,32]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[177,33],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[177,47]},[]],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]}]}}},{"EDValue":{"edValueName":{"Ident":"joinWith"},"edValueType":{"annotation":[{"start":[188,13],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[188,73]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[188,23],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[188,73]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[188,23],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[188,33]},[]],"constraintClass":[["Data","Foldable"],"Foldable"],"constraintArgs":[{"annotation":[{"start":[188,32],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[188,33]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[188,37],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[188,73]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[188,37],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[188,73]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[188,44],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[188,46]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[188,37],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[188,43]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[{"start":[188,47],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[188,73]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[188,47],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[188,73]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[188,64],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[188,66]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[188,47],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[188,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[188,47],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[188,48]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[188,49],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[188,63]},[]],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]}]},{"annotation":[{"start":[188,67],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[188,73]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}]}]},7]}}},{"EDValue":{"edValueName":{"Ident":"join1With"},"edValueType":{"annotation":[{"start":[203,14],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[203,83]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[203,24],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[203,83]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[203,24],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[203,35]},[]],"constraintClass":[["Data","Semigroup","Foldable"],"Foldable1"],"constraintArgs":[{"annotation":[{"start":[203,34],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[203,35]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[203,39],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[203,83]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[203,39],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[203,83]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[203,46],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[203,48]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[203,39],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[203,45]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[{"start":[203,49],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[203,83]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[203,49],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[203,83]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[203,66],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[203,68]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[203,49],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[203,65]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[203,49],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[203,50]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[203,51],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[203,65]},[]],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]}]},{"annotation":[{"start":[203,69],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[203,83]},[]],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]}]}]},11]}}},{"EDValue":{"edValueName":{"Ident":"joinWith1"},"edValueType":{"annotation":[{"start":[215,14],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[215,83]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[215,24],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[215,83]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[215,24],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[215,35]},[]],"constraintClass":[["Data","Semigroup","Foldable"],"Foldable1"],"constraintArgs":[{"annotation":[{"start":[215,34],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[215,35]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[215,39],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[215,83]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[215,39],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[215,83]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[215,54],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[215,56]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[215,39],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[215,53]},[]],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]},{"annotation":[{"start":[215,57],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[215,83]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[215,57],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[215,83]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[215,66],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[215,68]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[215,57],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[215,65]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[215,57],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[215,58]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[215,59],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[215,65]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}]},{"annotation":[{"start":[215,69],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[215,83]},[]],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]}]}]},5]}}},{"EDValue":{"edValueName":{"Ident":"liftS"},"edValueType":{"annotation":[{"start":[218,10],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[218,56]},[]],"tag":"ForAll","contents":["r",{"annotation":[{"start":[218,20],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[218,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[218,20],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[218,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[218,34],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[218,36]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[218,21],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[218,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[218,21],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[218,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[218,28],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[218,30]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[218,21],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[218,27]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[{"start":[218,31],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[218,32]},[]],"tag":"TypeVar","contents":"r"}]}]},{"annotation":[{"start":[218,37],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[218,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[218,37],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[218,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[218,52],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[218,54]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[218,37],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[218,51]},[]],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}]},{"annotation":[{"start":[218,55],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[218,56]},[]],"tag":"TypeVar","contents":"r"}]}]},3]}}},{"EDInstance":{"edInstanceClassName":[["Data","Eq"],"Eq"],"edInstanceName":{"Ident":"eqNonEmptyString"},"edInstanceTypes":[{"annotation":[{"start":[18,47],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[18,61]},[]],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","String","NonEmpty","Internal"],{"Ident":"eqNonEmptyString"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Ord"],"Ord"],"edInstanceName":{"Ident":"ordNonEmptyString"},"edInstanceTypes":[{"annotation":[{"start":[19,49],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[19,63]},[]],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","String","NonEmpty","Internal"],{"Ident":"ordNonEmptyString"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Semigroup"],"Semigroup"],"edInstanceName":{"Ident":"semigroupNonEmptyString"},"edInstanceTypes":[{"annotation":[{"start":[20,61],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[20,75]},[]],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","String","NonEmpty","Internal"],{"Ident":"semigroupNonEmptyString"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Show"],"Show"],"edInstanceName":{"Ident":"showNonEmptyString"},"edInstanceTypes":[{"annotation":[{"start":[22,37],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[22,51]},[]],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyString"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","String","NonEmpty","Internal"],{"Ident":"showNonEmptyString"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","String","NonEmpty","Internal"],"MakeNonEmpty"],"edInstanceName":{"Ident":"makeNonEmptyBad"},"edInstanceTypes":[{"annotation":[{"start":[34,118],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[34,120]},[]],"tag":"TypeLevelString","contents":""}],"edInstanceConstraints":[{"constraintAnn":[{"start":[34,29],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[34,101]},[]],"constraintClass":[["Prim","TypeError"],"Fail"],"constraintArgs":[{"annotation":[{"start":[34,38],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[34,100]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[34,38],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[34,45]},[]],"tag":"TypeConstructor","contents":[["Prim","TypeError"],"Text"]},{"annotation":[{"start":[34,46],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[34,100]},[]],"tag":"TypeLevelString","contents":"Cannot create an NonEmptyString from an empty Symbol"}]}],"constraintData":null}],"edInstanceChain":[[["Data","String","NonEmpty","Internal"],{"Ident":"makeNonEmptyBad"}],[["Data","String","NonEmpty","Internal"],{"Ident":"nonEmptyNonEmpty"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","String","NonEmpty","Internal"],"MakeNonEmpty"],"edInstanceName":{"Ident":"nonEmptyNonEmpty"},"edInstanceTypes":[{"annotation":[{"start":[37,62],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[37,63]},[]],"tag":"TypeVar","contents":"s"}],"edInstanceConstraints":[{"constraintAnn":[{"start":[37,35],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[37,45]},[]],"constraintClass":[["Data","Symbol"],"IsSymbol"],"constraintArgs":[{"annotation":[{"start":[37,44],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[37,45]},[]],"tag":"TypeVar","contents":"s"}],"constraintData":null}],"edInstanceChain":[[["Data","String","NonEmpty","Internal"],{"Ident":"makeNonEmptyBad"}],[["Data","String","NonEmpty","Internal"],{"Ident":"nonEmptyNonEmpty"}]],"edInstanceChainIndex":1}},{"EDInstance":{"edInstanceClassName":[["Data","Eq"],"Eq"],"edInstanceName":{"Ident":"eqNonEmptyReplacement"},"edInstanceTypes":[{"annotation":[{"start":[43,53],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[43,72]},[]],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyReplacement"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","String","NonEmpty","Internal"],{"Ident":"eqNonEmptyReplacement"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Ord"],"Ord"],"edInstanceName":{"Ident":"ordNonEmptyReplacement"},"edInstanceTypes":[{"annotation":[{"start":[44,55],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[44,74]},[]],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyReplacement"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","String","NonEmpty","Internal"],{"Ident":"ordNonEmptyReplacement"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Semigroup"],"Semigroup"],"edInstanceName":{"Ident":"semigroupNonEmptyReplacement"},"edInstanceTypes":[{"annotation":[{"start":[45,66],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[45,85]},[]],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyReplacement"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","String","NonEmpty","Internal"],{"Ident":"semigroupNonEmptyReplacement"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Show"],"Show"],"edInstanceName":{"Ident":"showNonEmptyReplacement"},"edInstanceTypes":[{"annotation":[{"start":[47,42],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[47,61]},[]],"tag":"TypeConstructor","contents":[["Data","String","NonEmpty","Internal"],"NonEmptyReplacement"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","String","NonEmpty","Internal"],{"Ident":"showNonEmptyReplacement"}]],"edInstanceChainIndex":0}}],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty/Internal.purs","end":[219,33]}}
diff --git a/tests/purs/publish/basic-example/output/Data.String.NonEmpty/docs.json b/tests/purs/publish/basic-example/output/Data.String.NonEmpty/docs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.String.NonEmpty/docs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"reExports":[],"name":"Data.String.NonEmpty","comments":null,"declarations":[]}
diff --git a/tests/purs/publish/basic-example/output/Data.String.NonEmpty/externs.json b/tests/purs/publish/basic-example/output/Data.String.NonEmpty/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.String.NonEmpty/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Data","String","NonEmpty"],"efExports":[{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty.purs","end":[9,39]},{"exportSourceImportedFrom":["Data","String","NonEmpty","Internal"],"exportSourceDefinedIn":["Data","String","NonEmpty","Internal"]},{"TypeRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty.purs","end":[9,39]},"NonEmptyReplacement",["NonEmptyReplacement"]]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty.purs","end":[9,39]},{"exportSourceImportedFrom":["Data","String","NonEmpty","Internal"],"exportSourceDefinedIn":["Data","String","NonEmpty","Internal"]},{"TypeRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty.purs","end":[9,39]},"NonEmptyString",[]]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty.purs","end":[9,39]},{"exportSourceImportedFrom":["Data","String","Pattern"],"exportSourceDefinedIn":["Data","String","Pattern"]},{"TypeRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty.purs","end":[9,39]},"Pattern",["Pattern"]]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty.purs","end":[9,39]},{"exportSourceImportedFrom":["Data","String","NonEmpty","Internal"],"exportSourceDefinedIn":["Data","String","NonEmpty","Internal"]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty.purs","end":[9,39]},"MakeNonEmpty"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty.purs","end":[9,39]},{"exportSourceImportedFrom":["Data","String","NonEmpty","Internal"],"exportSourceDefinedIn":["Data","String","NonEmpty","Internal"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty.purs","end":[9,39]},{"Ident":"appendString"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty.purs","end":[9,39]},{"exportSourceImportedFrom":["Data","String","NonEmpty","CodePoints"],"exportSourceDefinedIn":["Data","String","NonEmpty","CodePoints"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty.purs","end":[9,39]},{"Ident":"codePointAt"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty.purs","end":[9,39]},{"exportSourceImportedFrom":["Data","String","NonEmpty","CodePoints"],"exportSourceDefinedIn":["Data","String","NonEmpty","CodePoints"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty.purs","end":[9,39]},{"Ident":"cons"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty.purs","end":[9,39]},{"exportSourceImportedFrom":["Data","String","NonEmpty","Internal"],"exportSourceDefinedIn":["Data","String","NonEmpty","Internal"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty.purs","end":[9,39]},{"Ident":"contains"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty.purs","end":[9,39]},{"exportSourceImportedFrom":["Data","String","NonEmpty","CodePoints"],"exportSourceDefinedIn":["Data","String","NonEmpty","CodePoints"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty.purs","end":[9,39]},{"Ident":"countPrefix"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty.purs","end":[9,39]},{"exportSourceImportedFrom":["Data","String","NonEmpty","CodePoints"],"exportSourceDefinedIn":["Data","String","NonEmpty","CodePoints"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty.purs","end":[9,39]},{"Ident":"drop"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty.purs","end":[9,39]},{"exportSourceImportedFrom":["Data","String","NonEmpty","CodePoints"],"exportSourceDefinedIn":["Data","String","NonEmpty","CodePoints"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty.purs","end":[9,39]},{"Ident":"dropWhile"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty.purs","end":[9,39]},{"exportSourceImportedFrom":["Data","String","NonEmpty","CodePoints"],"exportSourceDefinedIn":["Data","String","NonEmpty","CodePoints"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty.purs","end":[9,39]},{"Ident":"fromCodePointArray"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty.purs","end":[9,39]},{"exportSourceImportedFrom":["Data","String","NonEmpty","CodePoints"],"exportSourceDefinedIn":["Data","String","NonEmpty","CodePoints"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty.purs","end":[9,39]},{"Ident":"fromFoldable1"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty.purs","end":[9,39]},{"exportSourceImportedFrom":["Data","String","NonEmpty","CodePoints"],"exportSourceDefinedIn":["Data","String","NonEmpty","CodePoints"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty.purs","end":[9,39]},{"Ident":"fromNonEmptyCodePointArray"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty.purs","end":[9,39]},{"exportSourceImportedFrom":["Data","String","NonEmpty","Internal"],"exportSourceDefinedIn":["Data","String","NonEmpty","Internal"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty.purs","end":[9,39]},{"Ident":"fromString"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty.purs","end":[9,39]},{"exportSourceImportedFrom":["Data","String","NonEmpty","CodePoints"],"exportSourceDefinedIn":["Data","String","NonEmpty","CodePoints"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty.purs","end":[9,39]},{"Ident":"indexOf"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty.purs","end":[9,39]},{"exportSourceImportedFrom":["Data","String","NonEmpty","CodePoints"],"exportSourceDefinedIn":["Data","String","NonEmpty","CodePoints"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty.purs","end":[9,39]},{"Ident":"indexOf'"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty.purs","end":[9,39]},{"exportSourceImportedFrom":["Data","String","NonEmpty","Internal"],"exportSourceDefinedIn":["Data","String","NonEmpty","Internal"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty.purs","end":[9,39]},{"Ident":"join1With"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty.purs","end":[9,39]},{"exportSourceImportedFrom":["Data","String","NonEmpty","Internal"],"exportSourceDefinedIn":["Data","String","NonEmpty","Internal"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty.purs","end":[9,39]},{"Ident":"joinWith"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty.purs","end":[9,39]},{"exportSourceImportedFrom":["Data","String","NonEmpty","Internal"],"exportSourceDefinedIn":["Data","String","NonEmpty","Internal"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty.purs","end":[9,39]},{"Ident":"joinWith1"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty.purs","end":[9,39]},{"exportSourceImportedFrom":["Data","String","NonEmpty","CodePoints"],"exportSourceDefinedIn":["Data","String","NonEmpty","CodePoints"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty.purs","end":[9,39]},{"Ident":"lastIndexOf"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty.purs","end":[9,39]},{"exportSourceImportedFrom":["Data","String","NonEmpty","CodePoints"],"exportSourceDefinedIn":["Data","String","NonEmpty","CodePoints"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty.purs","end":[9,39]},{"Ident":"lastIndexOf'"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty.purs","end":[9,39]},{"exportSourceImportedFrom":["Data","String","NonEmpty","CodePoints"],"exportSourceDefinedIn":["Data","String","NonEmpty","CodePoints"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty.purs","end":[9,39]},{"Ident":"length"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty.purs","end":[9,39]},{"exportSourceImportedFrom":["Data","String","NonEmpty","Internal"],"exportSourceDefinedIn":["Data","String","NonEmpty","Internal"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty.purs","end":[9,39]},{"Ident":"localeCompare"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty.purs","end":[9,39]},{"exportSourceImportedFrom":["Data","String","NonEmpty","Internal"],"exportSourceDefinedIn":["Data","String","NonEmpty","Internal"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty.purs","end":[9,39]},{"Ident":"nes"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty.purs","end":[9,39]},{"exportSourceImportedFrom":["Data","String","NonEmpty","Internal"],"exportSourceDefinedIn":["Data","String","NonEmpty","Internal"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty.purs","end":[9,39]},{"Ident":"prependString"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty.purs","end":[9,39]},{"exportSourceImportedFrom":["Data","String","NonEmpty","Internal"],"exportSourceDefinedIn":["Data","String","NonEmpty","Internal"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty.purs","end":[9,39]},{"Ident":"replace"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty.purs","end":[9,39]},{"exportSourceImportedFrom":["Data","String","NonEmpty","Internal"],"exportSourceDefinedIn":["Data","String","NonEmpty","Internal"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty.purs","end":[9,39]},{"Ident":"replaceAll"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty.purs","end":[9,39]},{"exportSourceImportedFrom":["Data","String","NonEmpty","CodePoints"],"exportSourceDefinedIn":["Data","String","NonEmpty","CodePoints"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty.purs","end":[9,39]},{"Ident":"singleton"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty.purs","end":[9,39]},{"exportSourceImportedFrom":["Data","String","NonEmpty","CodePoints"],"exportSourceDefinedIn":["Data","String","NonEmpty","CodePoints"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty.purs","end":[9,39]},{"Ident":"snoc"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty.purs","end":[9,39]},{"exportSourceImportedFrom":["Data","String","NonEmpty","CodePoints"],"exportSourceDefinedIn":["Data","String","NonEmpty","CodePoints"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty.purs","end":[9,39]},{"Ident":"splitAt"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty.purs","end":[9,39]},{"exportSourceImportedFrom":["Data","String","NonEmpty","Internal"],"exportSourceDefinedIn":["Data","String","NonEmpty","Internal"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty.purs","end":[9,39]},{"Ident":"stripPrefix"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty.purs","end":[9,39]},{"exportSourceImportedFrom":["Data","String","NonEmpty","Internal"],"exportSourceDefinedIn":["Data","String","NonEmpty","Internal"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty.purs","end":[9,39]},{"Ident":"stripSuffix"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty.purs","end":[9,39]},{"exportSourceImportedFrom":["Data","String","NonEmpty","CodePoints"],"exportSourceDefinedIn":["Data","String","NonEmpty","CodePoints"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty.purs","end":[9,39]},{"Ident":"take"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty.purs","end":[9,39]},{"exportSourceImportedFrom":["Data","String","NonEmpty","CodePoints"],"exportSourceDefinedIn":["Data","String","NonEmpty","CodePoints"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty.purs","end":[9,39]},{"Ident":"takeWhile"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty.purs","end":[9,39]},{"exportSourceImportedFrom":["Data","String","NonEmpty","CodePoints"],"exportSourceDefinedIn":["Data","String","NonEmpty","CodePoints"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty.purs","end":[9,39]},{"Ident":"toCodePointArray"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty.purs","end":[9,39]},{"exportSourceImportedFrom":["Data","String","NonEmpty","Internal"],"exportSourceDefinedIn":["Data","String","NonEmpty","Internal"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty.purs","end":[9,39]},{"Ident":"toLower"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty.purs","end":[9,39]},{"exportSourceImportedFrom":["Data","String","NonEmpty","CodePoints"],"exportSourceDefinedIn":["Data","String","NonEmpty","CodePoints"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty.purs","end":[9,39]},{"Ident":"toNonEmptyCodePointArray"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty.purs","end":[9,39]},{"exportSourceImportedFrom":["Data","String","NonEmpty","Internal"],"exportSourceDefinedIn":["Data","String","NonEmpty","Internal"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty.purs","end":[9,39]},{"Ident":"toString"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty.purs","end":[9,39]},{"exportSourceImportedFrom":["Data","String","NonEmpty","Internal"],"exportSourceDefinedIn":["Data","String","NonEmpty","Internal"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty.purs","end":[9,39]},{"Ident":"toUpper"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty.purs","end":[9,39]},{"exportSourceImportedFrom":["Data","String","NonEmpty","Internal"],"exportSourceDefinedIn":["Data","String","NonEmpty","Internal"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty.purs","end":[9,39]},{"Ident":"trim"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty.purs","end":[9,39]},{"exportSourceImportedFrom":["Data","String","NonEmpty","CodePoints"],"exportSourceDefinedIn":["Data","String","NonEmpty","CodePoints"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty.purs","end":[9,39]},{"Ident":"uncons"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty.purs","end":[9,39]},{"exportSourceImportedFrom":["Data","String","NonEmpty","Internal"],"exportSourceDefinedIn":["Data","String","NonEmpty","Internal"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty.purs","end":[9,39]},{"Ident":"unsafeFromString"}]}]},{"ModuleRef":[{"start":[2,5],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty.purs","end":[2,31]},["Data","String","Pattern"]]},{"ModuleRef":[{"start":[3,5],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty.purs","end":[3,41]},["Data","String","NonEmpty","Internal"]]},{"ModuleRef":[{"start":[4,5],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty.purs","end":[4,43]},["Data","String","NonEmpty","CodePoints"]]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Data","String","NonEmpty","Internal"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[7,39],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty.purs","end":[7,53]},"NonEmptyString",[]]},{"TypeClassRef":[{"start":[7,55],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty.purs","end":[7,73]},"MakeNonEmpty"]},{"TypeRef":[{"start":[7,75],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty.purs","end":[7,98]},"NonEmptyReplacement",null]},{"ValueRef":[{"start":[7,100],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty.purs","end":[7,112]},{"Ident":"appendString"}]},{"ValueRef":[{"start":[7,114],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty.purs","end":[7,122]},{"Ident":"contains"}]},{"ValueRef":[{"start":[7,124],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty.purs","end":[7,134]},{"Ident":"fromString"}]},{"ValueRef":[{"start":[7,136],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty.purs","end":[7,145]},{"Ident":"join1With"}]},{"ValueRef":[{"start":[7,147],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty.purs","end":[7,155]},{"Ident":"joinWith"}]},{"ValueRef":[{"start":[7,157],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty.purs","end":[7,166]},{"Ident":"joinWith1"}]},{"ValueRef":[{"start":[7,168],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty.purs","end":[7,181]},{"Ident":"localeCompare"}]},{"ValueRef":[{"start":[7,183],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty.purs","end":[7,186]},{"Ident":"nes"}]},{"ValueRef":[{"start":[7,188],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty.purs","end":[7,201]},{"Ident":"prependString"}]},{"ValueRef":[{"start":[7,203],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty.purs","end":[7,210]},{"Ident":"replace"}]},{"ValueRef":[{"start":[7,212],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty.purs","end":[7,222]},{"Ident":"replaceAll"}]},{"ValueRef":[{"start":[7,224],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty.purs","end":[7,235]},{"Ident":"stripPrefix"}]},{"ValueRef":[{"start":[7,237],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty.purs","end":[7,248]},{"Ident":"stripSuffix"}]},{"ValueRef":[{"start":[7,250],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty.purs","end":[7,257]},{"Ident":"toLower"}]},{"ValueRef":[{"start":[7,259],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty.purs","end":[7,267]},{"Ident":"toString"}]},{"ValueRef":[{"start":[7,269],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty.purs","end":[7,276]},{"Ident":"toUpper"}]},{"ValueRef":[{"start":[7,278],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty.purs","end":[7,282]},{"Ident":"trim"}]},{"ValueRef":[{"start":[7,284],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty.purs","end":[7,300]},{"Ident":"unsafeFromString"}]}]},"eiImportedAs":null},{"eiModule":["Data","String","Pattern"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[8,29],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty.purs","end":[8,40]},"Pattern",null]}]},"eiImportedAs":null},{"eiModule":["Data","String","NonEmpty","CodePoints"],"eiImportType":{"Implicit":[]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/NonEmpty.purs","end":[9,39]}}
diff --git a/tests/purs/publish/basic-example/output/Data.String.Pattern/docs.json b/tests/purs/publish/basic-example/output/Data.String.Pattern/docs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.String.Pattern/docs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"reExports":[],"name":"Data.String.Pattern","comments":null,"declarations":[{"children":[{"comments":null,"title":"Pattern","info":{"arguments":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}],"declType":"dataConstructor"},"sourceSpan":null},{"comments":null,"title":"eqPattern","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Eq"],"Eq"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","Pattern"],"Pattern"]}]}},"sourceSpan":{"start":[18,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Pattern.purs","end":[18,40]}},{"comments":null,"title":"ordPattern","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord"],"Ord"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","Pattern"],"Pattern"]}]}},"sourceSpan":{"start":[19,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Pattern.purs","end":[19,42]}},{"comments":null,"title":"newtypePattern","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Newtype"],"Newtype"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","Pattern"],"Pattern"]}]},{"annotation":[],"tag":"TypeWildcard","contents":null}]}},"sourceSpan":{"start":[20,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Pattern.purs","end":[20,52]}},{"comments":null,"title":"showPattern","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Show"],"Show"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","Pattern"],"Pattern"]}]}},"sourceSpan":{"start":[22,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Pattern.purs","end":[23,50]}}],"comments":"A newtype used in cases where there is a string to be matched.\n\n```purescript\npursPattern = Pattern \".purs\"\n--can be used like this:\ncontains pursPattern \"Test.purs\"\n   == true\n```\n\n","title":"Pattern","info":{"declType":"data","dataDeclType":"newtype","typeArguments":[]},"sourceSpan":{"start":[16,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Pattern.purs","end":[16,33]}},{"children":[{"comments":null,"title":"Replacement","info":{"arguments":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}],"declType":"dataConstructor"},"sourceSpan":null},{"comments":null,"title":"eqReplacement","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Eq"],"Eq"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","Pattern"],"Replacement"]}]}},"sourceSpan":{"start":[28,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Pattern.purs","end":[28,48]}},{"comments":null,"title":"ordReplacement","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord"],"Ord"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","Pattern"],"Replacement"]}]}},"sourceSpan":{"start":[29,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Pattern.purs","end":[29,50]}},{"comments":null,"title":"newtypeReplacement","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Newtype"],"Newtype"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","Pattern"],"Replacement"]}]},{"annotation":[],"tag":"TypeWildcard","contents":null}]}},"sourceSpan":{"start":[30,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Pattern.purs","end":[30,60]}},{"comments":null,"title":"showReplacement","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Show"],"Show"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","Pattern"],"Replacement"]}]}},"sourceSpan":{"start":[32,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Pattern.purs","end":[33,58]}}],"comments":"A newtype used in cases to specify a replacement for a pattern.\n","title":"Replacement","info":{"declType":"data","dataDeclType":"newtype","typeArguments":[]},"sourceSpan":{"start":[26,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Pattern.purs","end":[26,41]}}]}
diff --git a/tests/purs/publish/basic-example/output/Data.String.Pattern/externs.json b/tests/purs/publish/basic-example/output/Data.String.Pattern/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.String.Pattern/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Data","String","Pattern"],"efExports":[{"TypeRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Pattern.purs","end":[33,58]},"Pattern",["Pattern"]]},{"TypeRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Pattern.purs","end":[33,58]},"Replacement",["Replacement"]]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"eqPattern"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"ordPattern"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"newtypePattern"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"showPattern"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"eqReplacement"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"ordReplacement"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"newtypeReplacement"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"showReplacement"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Prelude"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Data","Newtype"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[5,22],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Pattern.purs","end":[5,35]},"Newtype"]}]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDType":{"edTypeName":"Pattern","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},"edTypeDeclarationKind":{"DataType":{"args":[],"ctors":[["Pattern",[{"annotation":[{"start":[16,27],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Pattern.purs","end":[16,33]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]]]}}}},{"EDDataConstructor":{"edDataCtorName":"Pattern","edDataCtorOrigin":"newtype","edDataCtorTypeCtor":"Pattern","edDataCtorType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[16,27],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Pattern.purs","end":[16,33]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","String","Pattern"],"Pattern"]}]},"edDataCtorFields":[{"Ident":"value0"}]}},{"EDType":{"edTypeName":"Replacement","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},"edTypeDeclarationKind":{"DataType":{"args":[],"ctors":[["Replacement",[{"annotation":[{"start":[26,35],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Pattern.purs","end":[26,41]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]]]}}}},{"EDDataConstructor":{"edDataCtorName":"Replacement","edDataCtorOrigin":"newtype","edDataCtorTypeCtor":"Replacement","edDataCtorType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[26,35],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Pattern.purs","end":[26,41]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","String","Pattern"],"Replacement"]}]},"edDataCtorFields":[{"Ident":"value0"}]}},{"EDInstance":{"edInstanceClassName":[["Data","Eq"],"Eq"],"edInstanceName":{"Ident":"eqPattern"},"edInstanceTypes":[{"annotation":[{"start":[18,33],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Pattern.purs","end":[18,40]},[]],"tag":"TypeConstructor","contents":[["Data","String","Pattern"],"Pattern"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","String","Pattern"],{"Ident":"eqPattern"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Ord"],"Ord"],"edInstanceName":{"Ident":"ordPattern"},"edInstanceTypes":[{"annotation":[{"start":[19,35],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Pattern.purs","end":[19,42]},[]],"tag":"TypeConstructor","contents":[["Data","String","Pattern"],"Pattern"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","String","Pattern"],{"Ident":"ordPattern"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Newtype"],"Newtype"],"edInstanceName":{"Ident":"newtypePattern"},"edInstanceTypes":[{"annotation":[{"start":[20,43],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Pattern.purs","end":[20,50]},[]],"tag":"TypeConstructor","contents":[["Data","String","Pattern"],"Pattern"]},{"annotation":[{"start":[16,27],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Pattern.purs","end":[16,33]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","String","Pattern"],{"Ident":"newtypePattern"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Show"],"Show"],"edInstanceName":{"Ident":"showPattern"},"edInstanceTypes":[{"annotation":[{"start":[22,30],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Pattern.purs","end":[22,37]},[]],"tag":"TypeConstructor","contents":[["Data","String","Pattern"],"Pattern"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","String","Pattern"],{"Ident":"showPattern"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Eq"],"Eq"],"edInstanceName":{"Ident":"eqReplacement"},"edInstanceTypes":[{"annotation":[{"start":[28,37],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Pattern.purs","end":[28,48]},[]],"tag":"TypeConstructor","contents":[["Data","String","Pattern"],"Replacement"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","String","Pattern"],{"Ident":"eqReplacement"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Ord"],"Ord"],"edInstanceName":{"Ident":"ordReplacement"},"edInstanceTypes":[{"annotation":[{"start":[29,39],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Pattern.purs","end":[29,50]},[]],"tag":"TypeConstructor","contents":[["Data","String","Pattern"],"Replacement"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","String","Pattern"],{"Ident":"ordReplacement"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Newtype"],"Newtype"],"edInstanceName":{"Ident":"newtypeReplacement"},"edInstanceTypes":[{"annotation":[{"start":[30,47],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Pattern.purs","end":[30,58]},[]],"tag":"TypeConstructor","contents":[["Data","String","Pattern"],"Replacement"]},{"annotation":[{"start":[26,35],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Pattern.purs","end":[26,41]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","String","Pattern"],{"Ident":"newtypeReplacement"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Show"],"Show"],"edInstanceName":{"Ident":"showReplacement"},"edInstanceTypes":[{"annotation":[{"start":[32,34],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Pattern.purs","end":[32,45]},[]],"tag":"TypeConstructor","contents":[["Data","String","Pattern"],"Replacement"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","String","Pattern"],{"Ident":"showReplacement"}]],"edInstanceChainIndex":0}}],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Pattern.purs","end":[33,58]}}
diff --git a/tests/purs/publish/basic-example/output/Data.String.Regex.Flags/docs.json b/tests/purs/publish/basic-example/output/Data.String.Regex.Flags/docs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.String.Regex.Flags/docs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"reExports":[],"name":"Data.String.Regex.Flags","comments":null,"declarations":[{"children":[],"comments":null,"title":"RegexFlagsRec","info":{"arguments":[],"declType":"typeSynonym","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"RCons","contents":["global",{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]},{"annotation":[],"tag":"RCons","contents":["ignoreCase",{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]},{"annotation":[],"tag":"RCons","contents":["multiline",{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]},{"annotation":[],"tag":"RCons","contents":["sticky",{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]},{"annotation":[],"tag":"RCons","contents":["unicode",{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]},{"annotation":[],"tag":"REmpty"}]}]}]}]}]}]}},"sourceSpan":{"start":[8,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex/Flags.purs","end":[14,4]}},{"children":[{"comments":null,"title":"RegexFlags","info":{"arguments":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","Regex","Flags"],"RegexFlagsRec"]}],"declType":"dataConstructor"},"sourceSpan":null},{"comments":null,"title":"semigroupRegexFlags","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup"],"Semigroup"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","Regex","Flags"],"RegexFlags"]}]}},"sourceSpan":{"start":[79,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex/Flags.purs","end":[86,6]}},{"comments":null,"title":"monoidRegexFlags","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid"],"Monoid"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","Regex","Flags"],"RegexFlags"]}]}},"sourceSpan":{"start":[88,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex/Flags.purs","end":[89,19]}},{"comments":null,"title":"eqRegexFlags","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Eq"],"Eq"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","Regex","Flags"],"RegexFlags"]}]}},"sourceSpan":{"start":[91,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex/Flags.purs","end":[97,30]}},{"comments":null,"title":"showRegexFlags","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Show"],"Show"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","Regex","Flags"],"RegexFlags"]}]}},"sourceSpan":{"start":[99,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex/Flags.purs","end":[112,51]}}],"comments":"Flags that control matching.\n","title":"RegexFlags","info":{"declType":"data","dataDeclType":"data","typeArguments":[]},"sourceSpan":{"start":[17,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex/Flags.purs","end":[17,43]}},{"children":[],"comments":"All flags set to false.\n","title":"noFlags","info":{"declType":"value","type":{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","Regex","Flags"],"RegexFlags"]}},"sourceSpan":{"start":[20,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex/Flags.purs","end":[20,22]}},{"children":[],"comments":"Only global flag set to true\n","title":"global","info":{"declType":"value","type":{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","Regex","Flags"],"RegexFlags"]}},"sourceSpan":{"start":[30,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex/Flags.purs","end":[30,21]}},{"children":[],"comments":"Only ignoreCase flag set to true\n","title":"ignoreCase","info":{"declType":"value","type":{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","Regex","Flags"],"RegexFlags"]}},"sourceSpan":{"start":[40,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex/Flags.purs","end":[40,25]}},{"children":[],"comments":"Only multiline flag set to true\n","title":"multiline","info":{"declType":"value","type":{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","Regex","Flags"],"RegexFlags"]}},"sourceSpan":{"start":[50,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex/Flags.purs","end":[50,24]}},{"children":[],"comments":"Only sticky flag set to true\n","title":"sticky","info":{"declType":"value","type":{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","Regex","Flags"],"RegexFlags"]}},"sourceSpan":{"start":[60,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex/Flags.purs","end":[60,21]}},{"children":[],"comments":"Only unicode flag set to true\n","title":"unicode","info":{"declType":"value","type":{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","Regex","Flags"],"RegexFlags"]}},"sourceSpan":{"start":[70,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex/Flags.purs","end":[70,22]}}]}
diff --git a/tests/purs/publish/basic-example/output/Data.String.Regex.Flags/externs.json b/tests/purs/publish/basic-example/output/Data.String.Regex.Flags/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.String.Regex.Flags/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Data","String","Regex","Flags"],"efExports":[{"TypeRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex/Flags.purs","end":[112,51]},"RegexFlagsRec",[]]},{"TypeRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex/Flags.purs","end":[112,51]},"RegexFlags",["RegexFlags"]]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex/Flags.purs","end":[112,51]},{"Ident":"noFlags"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex/Flags.purs","end":[112,51]},{"Ident":"global"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex/Flags.purs","end":[112,51]},{"Ident":"ignoreCase"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex/Flags.purs","end":[112,51]},{"Ident":"multiline"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex/Flags.purs","end":[112,51]},{"Ident":"sticky"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex/Flags.purs","end":[112,51]},{"Ident":"unicode"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"semigroupRegexFlags"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"monoidRegexFlags"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"eqRegexFlags"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"showRegexFlags"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Prelude"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Control","MonadPlus"],"eiImportType":{"Explicit":[{"ValueRef":[{"start":[5,27],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex/Flags.purs","end":[5,32]},{"Ident":"guard"}]}]},"eiImportedAs":null},{"eiModule":["Data","String"],"eiImportType":{"Explicit":[{"ValueRef":[{"start":[6,21],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex/Flags.purs","end":[6,29]},{"Ident":"joinWith"}]}]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDType":{"edTypeName":"RegexFlagsRec","edTypeKind":{"annotation":[{"start":[9,3],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex/Flags.purs","end":[9,4]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"RegexFlagsRec","edTypeSynonymArguments":[],"edTypeSynonymType":{"annotation":[{"start":[9,3],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex/Flags.purs","end":[14,4]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[9,3],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex/Flags.purs","end":[9,4]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[9,5],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex/Flags.purs","end":[9,22]},[]],"tag":"RCons","contents":["global",{"annotation":[{"start":[9,15],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex/Flags.purs","end":[9,22]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]},{"annotation":[{"start":[10,5],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex/Flags.purs","end":[10,26]},[]],"tag":"RCons","contents":["ignoreCase",{"annotation":[{"start":[10,19],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex/Flags.purs","end":[10,26]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]},{"annotation":[{"start":[11,5],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex/Flags.purs","end":[11,25]},[]],"tag":"RCons","contents":["multiline",{"annotation":[{"start":[11,18],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex/Flags.purs","end":[11,25]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]},{"annotation":[{"start":[12,5],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex/Flags.purs","end":[12,22]},[]],"tag":"RCons","contents":["sticky",{"annotation":[{"start":[12,15],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex/Flags.purs","end":[12,22]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]},{"annotation":[{"start":[13,5],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex/Flags.purs","end":[13,23]},[]],"tag":"RCons","contents":["unicode",{"annotation":[{"start":[13,16],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex/Flags.purs","end":[13,23]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]},{"annotation":[{"start":[14,3],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex/Flags.purs","end":[14,4]},[]],"tag":"REmpty"}]}]}]}]}]}]}}},{"EDType":{"edTypeName":"RegexFlags","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},"edTypeDeclarationKind":{"DataType":{"args":[],"ctors":[["RegexFlags",[{"annotation":[{"start":[17,30],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex/Flags.purs","end":[17,43]},[]],"tag":"TypeConstructor","contents":[["Data","String","Regex","Flags"],"RegexFlagsRec"]}]]]}}}},{"EDDataConstructor":{"edDataCtorName":"RegexFlags","edDataCtorOrigin":"data","edDataCtorTypeCtor":"RegexFlags","edDataCtorType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[17,30],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex/Flags.purs","end":[17,43]},[]],"tag":"TypeConstructor","contents":[["Data","String","Regex","Flags"],"RegexFlagsRec"]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","String","Regex","Flags"],"RegexFlags"]}]},"edDataCtorFields":[{"Ident":"value0"}]}},{"EDValue":{"edValueName":{"Ident":"noFlags"},"edValueType":{"annotation":[{"start":[20,12],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex/Flags.purs","end":[20,22]},[]],"tag":"TypeConstructor","contents":[["Data","String","Regex","Flags"],"RegexFlags"]}}},{"EDValue":{"edValueName":{"Ident":"global"},"edValueType":{"annotation":[{"start":[30,11],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex/Flags.purs","end":[30,21]},[]],"tag":"TypeConstructor","contents":[["Data","String","Regex","Flags"],"RegexFlags"]}}},{"EDValue":{"edValueName":{"Ident":"ignoreCase"},"edValueType":{"annotation":[{"start":[40,15],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex/Flags.purs","end":[40,25]},[]],"tag":"TypeConstructor","contents":[["Data","String","Regex","Flags"],"RegexFlags"]}}},{"EDValue":{"edValueName":{"Ident":"multiline"},"edValueType":{"annotation":[{"start":[50,14],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex/Flags.purs","end":[50,24]},[]],"tag":"TypeConstructor","contents":[["Data","String","Regex","Flags"],"RegexFlags"]}}},{"EDValue":{"edValueName":{"Ident":"sticky"},"edValueType":{"annotation":[{"start":[60,11],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex/Flags.purs","end":[60,21]},[]],"tag":"TypeConstructor","contents":[["Data","String","Regex","Flags"],"RegexFlags"]}}},{"EDValue":{"edValueName":{"Ident":"unicode"},"edValueType":{"annotation":[{"start":[70,12],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex/Flags.purs","end":[70,22]},[]],"tag":"TypeConstructor","contents":[["Data","String","Regex","Flags"],"RegexFlags"]}}},{"EDInstance":{"edInstanceClassName":[["Data","Semigroup"],"Semigroup"],"edInstanceName":{"Ident":"semigroupRegexFlags"},"edInstanceTypes":[{"annotation":[{"start":[79,43],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex/Flags.purs","end":[79,53]},[]],"tag":"TypeConstructor","contents":[["Data","String","Regex","Flags"],"RegexFlags"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","String","Regex","Flags"],{"Ident":"semigroupRegexFlags"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Monoid"],"Monoid"],"edInstanceName":{"Ident":"monoidRegexFlags"},"edInstanceTypes":[{"annotation":[{"start":[88,37],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex/Flags.purs","end":[88,47]},[]],"tag":"TypeConstructor","contents":[["Data","String","Regex","Flags"],"RegexFlags"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","String","Regex","Flags"],{"Ident":"monoidRegexFlags"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Eq"],"Eq"],"edInstanceName":{"Ident":"eqRegexFlags"},"edInstanceTypes":[{"annotation":[{"start":[91,29],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex/Flags.purs","end":[91,39]},[]],"tag":"TypeConstructor","contents":[["Data","String","Regex","Flags"],"RegexFlags"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","String","Regex","Flags"],{"Ident":"eqRegexFlags"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Show"],"Show"],"edInstanceName":{"Ident":"showRegexFlags"},"edInstanceTypes":[{"annotation":[{"start":[99,33],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex/Flags.purs","end":[99,43]},[]],"tag":"TypeConstructor","contents":[["Data","String","Regex","Flags"],"RegexFlags"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","String","Regex","Flags"],{"Ident":"showRegexFlags"}]],"edInstanceChainIndex":0}}],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex/Flags.purs","end":[112,51]}}
diff --git a/tests/purs/publish/basic-example/output/Data.String.Regex.Unsafe/docs.json b/tests/purs/publish/basic-example/output/Data.String.Regex.Unsafe/docs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.String.Regex.Unsafe/docs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"reExports":[],"name":"Data.String.Regex.Unsafe","comments":null,"declarations":[{"children":[],"comments":"Constructs a `Regex` from a pattern string and flags. Fails with\nan exception if the pattern contains a syntax error.\n","title":"unsafeRegex","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","Regex","Flags"],"RegexFlags"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","Regex"],"Regex"]}]}]}},"sourceSpan":{"start":[13,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex/Unsafe.purs","end":[13,45]}}]}
diff --git a/tests/purs/publish/basic-example/output/Data.String.Regex.Unsafe/externs.json b/tests/purs/publish/basic-example/output/Data.String.Regex.Unsafe/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.String.Regex.Unsafe/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Data","String","Regex","Unsafe"],"efExports":[{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex/Unsafe.purs","end":[14,54]},{"Ident":"unsafeRegex"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Data","Either"],"eiImportType":{"Explicit":[{"ValueRef":[{"start":[5,21],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex/Unsafe.purs","end":[5,30]},{"Ident":"fromRight"}]}]},"eiImportedAs":null},{"eiModule":["Data","String","Regex"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[6,27],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex/Unsafe.purs","end":[6,32]},"Regex",[]]},{"ValueRef":[{"start":[6,34],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex/Unsafe.purs","end":[6,39]},{"Ident":"regex"}]}]},"eiImportedAs":null},{"eiModule":["Data","String","Regex","Flags"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[7,33],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex/Unsafe.purs","end":[7,43]},"RegexFlags",[]]}]},"eiImportedAs":null},{"eiModule":["Partial","Unsafe"],"eiImportType":{"Explicit":[{"ValueRef":[{"start":[9,24],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex/Unsafe.purs","end":[9,37]},{"Ident":"unsafePartial"}]}]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDValue":{"edValueName":{"Ident":"unsafeRegex"},"edValueType":{"annotation":[{"start":[13,16],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex/Unsafe.purs","end":[13,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[13,16],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex/Unsafe.purs","end":[13,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[13,23],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex/Unsafe.purs","end":[13,25]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[13,16],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex/Unsafe.purs","end":[13,22]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[{"start":[13,26],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex/Unsafe.purs","end":[13,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[13,26],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex/Unsafe.purs","end":[13,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[13,37],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex/Unsafe.purs","end":[13,39]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[13,26],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex/Unsafe.purs","end":[13,36]},[]],"tag":"TypeConstructor","contents":[["Data","String","Regex","Flags"],"RegexFlags"]}]},{"annotation":[{"start":[13,40],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex/Unsafe.purs","end":[13,45]},[]],"tag":"TypeConstructor","contents":[["Data","String","Regex"],"Regex"]}]}]}}}],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex/Unsafe.purs","end":[14,54]}}
diff --git a/tests/purs/publish/basic-example/output/Data.String.Regex/docs.json b/tests/purs/publish/basic-example/output/Data.String.Regex/docs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.String.Regex/docs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"reExports":[],"name":"Data.String.Regex","comments":"Wraps Javascript's `RegExp` object that enables matching strings with\npatternes defined by regular expressions.\nFor details of the underlying implementation, see [RegExp Reference at MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp).\n","declarations":[{"children":[{"comments":null,"title":"showRegex","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Show"],"Show"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","Regex"],"Regex"]}]}},"sourceSpan":{"start":[33,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[34,20]}}],"comments":"Wraps Javascript `RegExp` objects.\n","title":"Regex","info":{"kind":{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]},"declType":"externData"},"sourceSpan":{"start":[29,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[29,34]}},{"children":[],"comments":"Constructs a `Regex` from a pattern string and flags. Fails with\n`Left error` if the pattern contains a syntax error.\n","title":"regex","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","Regex","Flags"],"RegexFlags"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","Regex"],"Regex"]}]}]}]}},"sourceSpan":{"start":[45,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[45,53]}},{"children":[],"comments":"Returns the pattern string used to construct the given `Regex`.\n","title":"source","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","Regex"],"Regex"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}},"sourceSpan":{"start":[49,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[49,41]}},{"children":[],"comments":"Returns the `RegexFlags` used to construct the given `Regex`.\n","title":"flags","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","Regex"],"Regex"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","Regex","Flags"],"RegexFlags"]}]}},"sourceSpan":{"start":[52,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[52,29]}},{"children":[],"comments":"Returns the string representation of the given `RegexFlags`.\n","title":"renderFlags","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","Regex","Flags"],"RegexFlags"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}},"sourceSpan":{"start":[59,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[59,36]}},{"children":[],"comments":"Parses the string representation of `RegexFlags`.\n","title":"parseFlags","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","Regex","Flags"],"RegexFlags"]}]}},"sourceSpan":{"start":[68,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[68,35]}},{"children":[],"comments":"Returns `true` if the `Regex` matches the string. In contrast to\n`RegExp.prototype.test()` in JavaScript, `test` does not affect\nthe `lastIndex` property of the Regex.\n","title":"test","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","Regex"],"Regex"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]}},"sourceSpan":{"start":[80,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[80,50]}},{"children":[],"comments":"Matches the string against the `Regex` and returns an array of matches\nif there were any. Each match has type `Maybe String`, where `Nothing`\nrepresents an unmatched optional capturing group.\nSee [reference](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/match).\n","title":"match","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","Regex"],"Regex"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}}]}}]}]}]}},"sourceSpan":{"start":[93,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[93,65]}},{"children":[],"comments":"Replaces occurences of the `Regex` with the first string. The replacement\nstring can include special replacement patterns escaped with `\"$\"`.\nSee [reference](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replace).\n","title":"replace","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","Regex"],"Regex"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}]}]}},"sourceSpan":{"start":[99,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[99,62]}},{"children":[],"comments":"Transforms occurences of the `Regex` using a function of the matched\nsubstring and a list of submatch strings.\nSee the [reference](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replace#Specifying_a_function_as_a_parameter).\n","title":"replace'","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","Regex"],"Regex"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}]}]}},"sourceSpan":{"start":[104,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[104,91]}},{"children":[],"comments":"Returns `Just` the index of the first match of the `Regex` in the string,\nor `Nothing` if there is no match.\n","title":"search","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","Regex"],"Regex"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]}]}},"sourceSpan":{"start":[115,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[115,39]}},{"children":[],"comments":"Split the string into an array of substrings along occurences of the `Regex`.\n","title":"split","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","String","Regex"],"Regex"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}]}]}},"sourceSpan":{"start":[119,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[119,56]}}]}
diff --git a/tests/purs/publish/basic-example/output/Data.String.Regex/externs.json b/tests/purs/publish/basic-example/output/Data.String.Regex/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.String.Regex/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Data","String","Regex"],"efExports":[{"TypeRef":[{"start":[4,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[119,56]},"Regex",[]]},{"ValueRef":[{"start":[4,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[119,56]},{"Ident":"regex"}]},{"ValueRef":[{"start":[4,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[119,56]},{"Ident":"source"}]},{"ValueRef":[{"start":[4,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[119,56]},{"Ident":"flags"}]},{"ValueRef":[{"start":[4,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[119,56]},{"Ident":"renderFlags"}]},{"ValueRef":[{"start":[4,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[119,56]},{"Ident":"parseFlags"}]},{"ValueRef":[{"start":[4,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[119,56]},{"Ident":"test"}]},{"ValueRef":[{"start":[4,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[119,56]},{"Ident":"match"}]},{"ValueRef":[{"start":[4,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[119,56]},{"Ident":"replace"}]},{"ValueRef":[{"start":[4,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[119,56]},{"Ident":"replace'"}]},{"ValueRef":[{"start":[4,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[119,56]},{"Ident":"search"}]},{"ValueRef":[{"start":[4,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[119,56]},{"Ident":"split"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"showRegex"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Prelude"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Data","Array","NonEmpty"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[21,29],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[21,42]},"NonEmptyArray",[]]}]},"eiImportedAs":null},{"eiModule":["Data","Either"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[22,21],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[22,31]},"Either",null]}]},"eiImportedAs":null},{"eiModule":["Data","Maybe"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[23,20],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[23,29]},"Maybe",null]}]},"eiImportedAs":null},{"eiModule":["Data","String"],"eiImportType":{"Explicit":[{"ValueRef":[{"start":[24,21],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[24,29]},{"Ident":"contains"}]}]},"eiImportedAs":null},{"eiModule":["Data","String","Pattern"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[25,29],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[25,40]},"Pattern",null]}]},"eiImportedAs":null},{"eiModule":["Data","String","Regex","Flags"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[26,33],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[26,47]},"RegexFlags",null]},{"TypeRef":[{"start":[26,49],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[26,62]},"RegexFlagsRec",[]]}]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDType":{"edTypeName":"Regex","edTypeKind":{"annotation":[{"start":[29,30],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[29,34]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},"edTypeDeclarationKind":"ExternData"}},{"EDValue":{"edValueName":{"Ident":"regex"},"edValueType":{"annotation":[{"start":[45,10],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[45,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[45,10],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[45,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[45,17],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[45,19]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[45,10],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[45,16]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[{"start":[45,20],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[45,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[45,20],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[45,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[45,31],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[45,33]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[45,20],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[45,30]},[]],"tag":"TypeConstructor","contents":[["Data","String","Regex","Flags"],"RegexFlags"]}]},{"annotation":[{"start":[45,34],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[45,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[45,34],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[45,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[45,34],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[45,40]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[45,41],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[45,47]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[{"start":[45,48],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[45,53]},[]],"tag":"TypeConstructor","contents":[["Data","String","Regex"],"Regex"]}]}]}]}}},{"EDValue":{"edValueName":{"Ident":"source"},"edValueType":{"annotation":[{"start":[49,26],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[49,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,26],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[49,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,32],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[49,34]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[49,26],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[49,31]},[]],"tag":"TypeConstructor","contents":[["Data","String","Regex"],"Regex"]}]},{"annotation":[{"start":[49,35],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[49,41]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}}},{"EDValue":{"edValueName":{"Ident":"flags"},"edValueType":{"annotation":[{"start":[52,10],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[52,29]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,10],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[52,29]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,16],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[52,18]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[52,10],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[52,15]},[]],"tag":"TypeConstructor","contents":[["Data","String","Regex"],"Regex"]}]},{"annotation":[{"start":[52,19],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[52,29]},[]],"tag":"TypeConstructor","contents":[["Data","String","Regex","Flags"],"RegexFlags"]}]}}},{"EDValue":{"edValueName":{"Ident":"renderFlags"},"edValueType":{"annotation":[{"start":[59,16],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[59,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[59,16],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[59,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[59,27],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[59,29]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[59,16],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[59,26]},[]],"tag":"TypeConstructor","contents":[["Data","String","Regex","Flags"],"RegexFlags"]}]},{"annotation":[{"start":[59,30],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[59,36]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}}},{"EDValue":{"edValueName":{"Ident":"parseFlags"},"edValueType":{"annotation":[{"start":[68,15],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[68,35]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[68,15],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[68,35]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[68,22],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[68,24]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[68,15],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[68,21]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[{"start":[68,25],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[68,35]},[]],"tag":"TypeConstructor","contents":[["Data","String","Regex","Flags"],"RegexFlags"]}]}}},{"EDValue":{"edValueName":{"Ident":"test"},"edValueType":{"annotation":[{"start":[80,24],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[80,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[80,24],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[80,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[80,30],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[80,32]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[80,24],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[80,29]},[]],"tag":"TypeConstructor","contents":[["Data","String","Regex"],"Regex"]}]},{"annotation":[{"start":[80,33],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[80,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[80,33],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[80,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[80,40],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[80,42]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[80,33],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[80,39]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[{"start":[80,43],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[80,50]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]}}},{"EDValue":{"edValueName":{"Ident":"match"},"edValueType":{"annotation":[{"start":[93,10],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[93,65]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[93,10],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[93,65]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[93,16],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[93,18]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[93,10],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[93,15]},[]],"tag":"TypeConstructor","contents":[["Data","String","Regex"],"Regex"]}]},{"annotation":[{"start":[93,19],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[93,65]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[93,19],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[93,65]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[93,26],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[93,28]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[93,19],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[93,25]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[{"start":[93,29],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[93,65]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[93,29],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[93,34]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[93,36],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[93,64]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[93,36],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[93,49]},[]],"tag":"TypeConstructor","contents":[["Data","Array","NonEmpty","Internal"],"NonEmptyArray"]},{"annotation":[{"start":[93,51],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[93,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[93,51],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[93,56]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[93,57],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[93,63]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}]}]}]}]}}},{"EDValue":{"edValueName":{"Ident":"replace"},"edValueType":{"annotation":[{"start":[99,27],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[99,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[99,27],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[99,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[99,33],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[99,35]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[99,27],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[99,32]},[]],"tag":"TypeConstructor","contents":[["Data","String","Regex"],"Regex"]}]},{"annotation":[{"start":[99,36],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[99,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[99,36],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[99,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[99,43],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[99,45]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[99,36],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[99,42]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[{"start":[99,46],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[99,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[99,46],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[99,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[99,53],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[99,55]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[99,46],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[99,52]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[{"start":[99,56],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[99,62]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}]}]}}},{"EDValue":{"edValueName":{"Ident":"replace'"},"edValueType":{"annotation":[{"start":[104,28],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[104,91]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[104,28],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[104,91]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[104,34],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[104,36]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[104,28],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[104,33]},[]],"tag":"TypeConstructor","contents":[["Data","String","Regex"],"Regex"]}]},{"annotation":[{"start":[104,37],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[104,91]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[104,37],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[104,91]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[104,72],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[104,74]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[104,38],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[104,70]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[104,38],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[104,70]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[104,45],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[104,47]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[104,38],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[104,44]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[{"start":[104,48],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[104,70]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[104,48],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[104,70]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[104,61],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[104,63]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[104,48],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[104,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[104,48],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[104,53]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[104,54],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[104,60]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}]},{"annotation":[{"start":[104,64],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[104,70]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}]}]},{"annotation":[{"start":[104,75],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[104,91]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[104,75],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[104,91]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[104,82],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[104,84]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[104,75],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[104,81]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[{"start":[104,85],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[104,91]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}]}]}}},{"EDValue":{"edValueName":{"Ident":"search"},"edValueType":{"annotation":[{"start":[115,11],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[115,39]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[115,11],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[115,39]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[115,17],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[115,19]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[115,11],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[115,16]},[]],"tag":"TypeConstructor","contents":[["Data","String","Regex"],"Regex"]}]},{"annotation":[{"start":[115,20],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[115,39]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[115,20],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[115,39]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[115,27],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[115,29]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[115,20],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[115,26]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[{"start":[115,30],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[115,39]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[115,30],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[115,35]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[115,36],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[115,39]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]}]}}},{"EDValue":{"edValueName":{"Ident":"split"},"edValueType":{"annotation":[{"start":[119,25],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[119,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[119,25],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[119,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[119,31],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[119,33]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[119,25],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[119,30]},[]],"tag":"TypeConstructor","contents":[["Data","String","Regex"],"Regex"]}]},{"annotation":[{"start":[119,34],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[119,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[119,34],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[119,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[119,41],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[119,43]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[119,34],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[119,40]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[{"start":[119,44],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[119,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[119,44],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[119,49]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[119,50],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[119,56]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}]}]}}},{"EDInstance":{"edInstanceClassName":[["Data","Show"],"Show"],"edInstanceName":{"Ident":"showRegex"},"edInstanceTypes":[{"annotation":[{"start":[33,28],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[33,33]},[]],"tag":"TypeConstructor","contents":[["Data","String","Regex"],"Regex"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","String","Regex"],{"Ident":"showRegex"}]],"edInstanceChainIndex":0}}],"efSourceSpan":{"start":[4,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Regex.purs","end":[119,56]}}
diff --git a/tests/purs/publish/basic-example/output/Data.String.Unsafe/docs.json b/tests/purs/publish/basic-example/output/Data.String.Unsafe/docs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.String.Unsafe/docs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"reExports":[],"name":"Data.String.Unsafe","comments":"Unsafe string and character functions.\n","declarations":[{"children":[],"comments":"Converts a string of length `1` to a character.\n\n**Unsafe:** throws runtime exception if length is not `1`.\n","title":"char","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Char"]}]}},"sourceSpan":{"start":[15,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Unsafe.purs","end":[15,38]}},{"children":[],"comments":"Returns the character at the given index.\n\n**Unsafe:** throws runtime exception if the index is out of bounds.\n","title":"charAt","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Char"]}]}]}},"sourceSpan":{"start":[10,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Unsafe.purs","end":[10,47]}}]}
diff --git a/tests/purs/publish/basic-example/output/Data.String.Unsafe/externs.json b/tests/purs/publish/basic-example/output/Data.String.Unsafe/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.String.Unsafe/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Data","String","Unsafe"],"efExports":[{"ValueRef":[{"start":[2,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Unsafe.purs","end":[15,38]},{"Ident":"char"}]},{"ValueRef":[{"start":[2,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Unsafe.purs","end":[15,38]},{"Ident":"charAt"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDValue":{"edValueName":{"Ident":"char"},"edValueType":{"annotation":[{"start":[15,24],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Unsafe.purs","end":[15,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[15,24],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Unsafe.purs","end":[15,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[15,31],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Unsafe.purs","end":[15,33]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[15,24],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Unsafe.purs","end":[15,30]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[{"start":[15,34],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Unsafe.purs","end":[15,38]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Char"]}]}}},{"EDValue":{"edValueName":{"Ident":"charAt"},"edValueType":{"annotation":[{"start":[10,26],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Unsafe.purs","end":[10,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[10,26],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Unsafe.purs","end":[10,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[10,30],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Unsafe.purs","end":[10,32]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[10,26],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Unsafe.purs","end":[10,29]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[10,33],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Unsafe.purs","end":[10,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[10,33],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Unsafe.purs","end":[10,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[10,40],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Unsafe.purs","end":[10,42]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[10,33],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Unsafe.purs","end":[10,39]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[{"start":[10,43],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Unsafe.purs","end":[10,47]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Char"]}]}]}}}],"efSourceSpan":{"start":[2,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String/Unsafe.purs","end":[15,38]}}
diff --git a/tests/purs/publish/basic-example/output/Data.String/docs.json b/tests/purs/publish/basic-example/output/Data.String/docs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.String/docs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"reExports":[],"name":"Data.String","comments":null,"declarations":[]}
diff --git a/tests/purs/publish/basic-example/output/Data.String/externs.json b/tests/purs/publish/basic-example/output/Data.String/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.String/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Data","String"],"efExports":[{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String.purs","end":[10,58]},{"exportSourceImportedFrom":["Data","String","CodePoints"],"exportSourceDefinedIn":["Data","String","CodePoints"]},{"TypeRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String.purs","end":[10,58]},"CodePoint",[]]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String.purs","end":[10,58]},{"exportSourceImportedFrom":["Data","String","Pattern"],"exportSourceDefinedIn":["Data","String","Pattern"]},{"TypeRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String.purs","end":[10,58]},"Pattern",["Pattern"]]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String.purs","end":[10,58]},{"exportSourceImportedFrom":["Data","String","Pattern"],"exportSourceDefinedIn":["Data","String","Pattern"]},{"TypeRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String.purs","end":[10,58]},"Replacement",["Replacement"]]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String.purs","end":[10,58]},{"exportSourceImportedFrom":["Data","String","CodePoints"],"exportSourceDefinedIn":["Data","String","CodePoints"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String.purs","end":[10,58]},{"Ident":"codePointAt"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String.purs","end":[10,58]},{"exportSourceImportedFrom":["Data","String","CodePoints"],"exportSourceDefinedIn":["Data","String","CodePoints"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String.purs","end":[10,58]},{"Ident":"codePointFromChar"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String.purs","end":[10,58]},{"exportSourceImportedFrom":["Data","String","CodePoints"],"exportSourceDefinedIn":["Data","String","CodeUnits"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String.purs","end":[10,58]},{"Ident":"contains"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String.purs","end":[10,58]},{"exportSourceImportedFrom":["Data","String","CodePoints"],"exportSourceDefinedIn":["Data","String","CodePoints"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String.purs","end":[10,58]},{"Ident":"countPrefix"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String.purs","end":[10,58]},{"exportSourceImportedFrom":["Data","String","CodePoints"],"exportSourceDefinedIn":["Data","String","CodePoints"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String.purs","end":[10,58]},{"Ident":"drop"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String.purs","end":[10,58]},{"exportSourceImportedFrom":["Data","String","CodePoints"],"exportSourceDefinedIn":["Data","String","CodePoints"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String.purs","end":[10,58]},{"Ident":"dropWhile"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String.purs","end":[10,58]},{"exportSourceImportedFrom":["Data","String","CodePoints"],"exportSourceDefinedIn":["Data","String","CodePoints"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String.purs","end":[10,58]},{"Ident":"fromCodePointArray"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String.purs","end":[10,58]},{"exportSourceImportedFrom":["Data","String","CodePoints"],"exportSourceDefinedIn":["Data","String","CodePoints"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String.purs","end":[10,58]},{"Ident":"indexOf"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String.purs","end":[10,58]},{"exportSourceImportedFrom":["Data","String","CodePoints"],"exportSourceDefinedIn":["Data","String","CodePoints"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String.purs","end":[10,58]},{"Ident":"indexOf'"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String.purs","end":[10,58]},{"exportSourceImportedFrom":["Data","String","Common"],"exportSourceDefinedIn":["Data","String","Common"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String.purs","end":[10,58]},{"Ident":"joinWith"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String.purs","end":[10,58]},{"exportSourceImportedFrom":["Data","String","CodePoints"],"exportSourceDefinedIn":["Data","String","CodePoints"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String.purs","end":[10,58]},{"Ident":"lastIndexOf"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String.purs","end":[10,58]},{"exportSourceImportedFrom":["Data","String","CodePoints"],"exportSourceDefinedIn":["Data","String","CodePoints"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String.purs","end":[10,58]},{"Ident":"lastIndexOf'"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String.purs","end":[10,58]},{"exportSourceImportedFrom":["Data","String","CodePoints"],"exportSourceDefinedIn":["Data","String","CodePoints"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String.purs","end":[10,58]},{"Ident":"length"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String.purs","end":[10,58]},{"exportSourceImportedFrom":["Data","String","Common"],"exportSourceDefinedIn":["Data","String","Common"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String.purs","end":[10,58]},{"Ident":"localeCompare"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String.purs","end":[10,58]},{"exportSourceImportedFrom":["Data","String","Common"],"exportSourceDefinedIn":["Data","String","Common"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String.purs","end":[10,58]},{"Ident":"null"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String.purs","end":[10,58]},{"exportSourceImportedFrom":["Data","String","Common"],"exportSourceDefinedIn":["Data","String","Common"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String.purs","end":[10,58]},{"Ident":"replace"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String.purs","end":[10,58]},{"exportSourceImportedFrom":["Data","String","Common"],"exportSourceDefinedIn":["Data","String","Common"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String.purs","end":[10,58]},{"Ident":"replaceAll"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String.purs","end":[10,58]},{"exportSourceImportedFrom":["Data","String","CodePoints"],"exportSourceDefinedIn":["Data","String","CodePoints"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String.purs","end":[10,58]},{"Ident":"singleton"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String.purs","end":[10,58]},{"exportSourceImportedFrom":["Data","String","Common"],"exportSourceDefinedIn":["Data","String","Common"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String.purs","end":[10,58]},{"Ident":"split"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String.purs","end":[10,58]},{"exportSourceImportedFrom":["Data","String","CodePoints"],"exportSourceDefinedIn":["Data","String","CodePoints"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String.purs","end":[10,58]},{"Ident":"splitAt"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String.purs","end":[10,58]},{"exportSourceImportedFrom":["Data","String","CodePoints"],"exportSourceDefinedIn":["Data","String","CodeUnits"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String.purs","end":[10,58]},{"Ident":"stripPrefix"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String.purs","end":[10,58]},{"exportSourceImportedFrom":["Data","String","CodePoints"],"exportSourceDefinedIn":["Data","String","CodeUnits"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String.purs","end":[10,58]},{"Ident":"stripSuffix"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String.purs","end":[10,58]},{"exportSourceImportedFrom":["Data","String","CodePoints"],"exportSourceDefinedIn":["Data","String","CodePoints"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String.purs","end":[10,58]},{"Ident":"take"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String.purs","end":[10,58]},{"exportSourceImportedFrom":["Data","String","CodePoints"],"exportSourceDefinedIn":["Data","String","CodePoints"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String.purs","end":[10,58]},{"Ident":"takeWhile"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String.purs","end":[10,58]},{"exportSourceImportedFrom":["Data","String","CodePoints"],"exportSourceDefinedIn":["Data","String","CodePoints"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String.purs","end":[10,58]},{"Ident":"toCodePointArray"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String.purs","end":[10,58]},{"exportSourceImportedFrom":["Data","String","Common"],"exportSourceDefinedIn":["Data","String","Common"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String.purs","end":[10,58]},{"Ident":"toLower"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String.purs","end":[10,58]},{"exportSourceImportedFrom":["Data","String","Common"],"exportSourceDefinedIn":["Data","String","Common"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String.purs","end":[10,58]},{"Ident":"toUpper"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String.purs","end":[10,58]},{"exportSourceImportedFrom":["Data","String","Common"],"exportSourceDefinedIn":["Data","String","Common"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String.purs","end":[10,58]},{"Ident":"trim"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String.purs","end":[10,58]},{"exportSourceImportedFrom":["Data","String","CodePoints"],"exportSourceDefinedIn":["Data","String","CodePoints"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String.purs","end":[10,58]},{"Ident":"uncons"}]}]},{"ModuleRef":[{"start":[2,5],"name":"../../../support/bower_components/purescript-strings/src/Data/String.purs","end":[2,30]},["Data","String","Common"]]},{"ModuleRef":[{"start":[3,5],"name":"../../../support/bower_components/purescript-strings/src/Data/String.purs","end":[3,34]},["Data","String","CodePoints"]]},{"ModuleRef":[{"start":[4,5],"name":"../../../support/bower_components/purescript-strings/src/Data/String.purs","end":[4,31]},["Data","String","Pattern"]]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Data","String","CodePoints"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Data","String","Common"],"eiImportType":{"Explicit":[{"ValueRef":[{"start":[9,28],"name":"../../../support/bower_components/purescript-strings/src/Data/String.purs","end":[9,36]},{"Ident":"joinWith"}]},{"ValueRef":[{"start":[9,38],"name":"../../../support/bower_components/purescript-strings/src/Data/String.purs","end":[9,51]},{"Ident":"localeCompare"}]},{"ValueRef":[{"start":[9,53],"name":"../../../support/bower_components/purescript-strings/src/Data/String.purs","end":[9,57]},{"Ident":"null"}]},{"ValueRef":[{"start":[9,59],"name":"../../../support/bower_components/purescript-strings/src/Data/String.purs","end":[9,66]},{"Ident":"replace"}]},{"ValueRef":[{"start":[9,68],"name":"../../../support/bower_components/purescript-strings/src/Data/String.purs","end":[9,78]},{"Ident":"replaceAll"}]},{"ValueRef":[{"start":[9,80],"name":"../../../support/bower_components/purescript-strings/src/Data/String.purs","end":[9,85]},{"Ident":"split"}]},{"ValueRef":[{"start":[9,87],"name":"../../../support/bower_components/purescript-strings/src/Data/String.purs","end":[9,94]},{"Ident":"toLower"}]},{"ValueRef":[{"start":[9,96],"name":"../../../support/bower_components/purescript-strings/src/Data/String.purs","end":[9,103]},{"Ident":"toUpper"}]},{"ValueRef":[{"start":[9,105],"name":"../../../support/bower_components/purescript-strings/src/Data/String.purs","end":[9,109]},{"Ident":"trim"}]}]},"eiImportedAs":null},{"eiModule":["Data","String","Pattern"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[10,29],"name":"../../../support/bower_components/purescript-strings/src/Data/String.purs","end":[10,40]},"Pattern",null]},{"TypeRef":[{"start":[10,42],"name":"../../../support/bower_components/purescript-strings/src/Data/String.purs","end":[10,57]},"Replacement",null]}]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-strings/src/Data/String.purs","end":[10,58]}}
diff --git a/tests/purs/publish/basic-example/output/Data.Symbol/docs.json b/tests/purs/publish/basic-example/output/Data.Symbol/docs.json
--- a/tests/purs/publish/basic-example/output/Data.Symbol/docs.json
+++ b/tests/purs/publish/basic-example/output/Data.Symbol/docs.json
@@ -1,1 +1,1 @@
-{"reExports":[],"name":"Data.Symbol","comments":null,"declarations":[{"children":[{"comments":null,"title":"reflectSymbol","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Symbol"],"SProxy"]},{"annotation":[],"tag":"TypeVar","contents":"sym"}]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}},"sourceSpan":{"start":[13,3],"name":"../../../support/bower_components/purescript-prelude/src/Data/Symbol.purs","end":[13,40]}}],"comments":"A class for known symbols\n","title":"IsSymbol","info":{"fundeps":[],"arguments":[["sym",{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Symbol"]}]],"declType":"typeClass","superclasses":[]},"sourceSpan":{"start":[12,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Symbol.purs","end":[13,40]}},{"children":[],"comments":null,"title":"reifySymbol","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["r",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"ForAll","contents":["sym",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Symbol"],"IsSymbol"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"sym"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Symbol"],"SProxy"]},{"annotation":[],"tag":"TypeVar","contents":"sym"}]}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}]},null]}}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}]},null]}},"sourceSpan":{"start":[18,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Symbol.purs","end":[18,86]}},{"children":[{"comments":null,"title":"SProxy","info":{"arguments":[],"declType":"dataConstructor"},"sourceSpan":null}],"comments":"A value-level proxy for a type-level symbol.\n","title":"SProxy","info":{"declType":"data","dataDeclType":"data","typeArguments":[["sym",{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Symbol"]}]]},"sourceSpan":{"start":[9,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Symbol.purs","end":[9,37]}}]}
+{"comments":null,"declarations":[{"children":[{"comments":null,"info":{"declType":"typeClassMember","type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Type","Proxy"],"Proxy"],"tag":"TypeConstructor"},{"annotation":[],"contents":"sym","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim"],"String"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[11,39],"name":"../../../support/bower_components/purescript-prelude/src/Data/Symbol.purs","start":[11,3]},"title":"reflectSymbol"}],"comments":"A class for known symbols\n","info":{"arguments":[["sym",{"annotation":[],"contents":[["Prim"],"Symbol"],"tag":"TypeConstructor"}]],"declType":"typeClass","fundeps":[],"superclasses":[]},"kind":{"keyword":"class","kind":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Symbol"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim"],"Constraint"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[11,39],"name":"../../../support/bower_components/purescript-prelude/src/Data/Symbol.purs","start":[10,1]},"title":"IsSymbol"},{"children":[],"comments":null,"info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"r","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"String"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":{"annotation":[],"contents":{"identifier":"sym","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"sym","tag":"TypeVar"}],"constraintClass":[["Data","Symbol"],"IsSymbol"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Type","Proxy"],"Proxy"],"tag":"TypeConstructor"},{"annotation":[],"contents":"sym","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":"r","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"tag":"ParensInType"}],"tag":"TypeApp"},{"annotation":[],"contents":"r","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[16,85],"name":"../../../support/bower_components/purescript-prelude/src/Data/Symbol.purs","start":[16,1]},"title":"reifySymbol"}],"name":"Data.Symbol","reExports":[]}
diff --git a/tests/purs/publish/basic-example/output/Data.Symbol/externs.json b/tests/purs/publish/basic-example/output/Data.Symbol/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.Symbol/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Data","Symbol"],"efExports":[{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Symbol.purs","end":[23,24]},"IsSymbol"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Symbol.purs","end":[23,24]},{"Ident":"reflectSymbol"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Symbol.purs","end":[23,24]},{"Ident":"reifySymbol"}]},{"TypeRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Symbol.purs","end":[23,24]},"SProxy",["SProxy"]]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDType":{"edTypeName":"IsSymbol","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[12,24],"name":"../../../support/bower_components/purescript-prelude/src/Data/Symbol.purs","end":[12,30]},[]],"tag":"NamedKind","contents":[["Prim"],"Symbol"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"IsSymbol","edTypeSynonymArguments":[["sym",{"annotation":[{"start":[12,24],"name":"../../../support/bower_components/purescript-prelude/src/Data/Symbol.purs","end":[12,30]},[]],"tag":"NamedKind","contents":[["Prim"],"Symbol"]}]],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["reflectSymbol",{"annotation":[{"start":[13,20],"name":"../../../support/bower_components/purescript-prelude/src/Data/Symbol.purs","end":[13,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[13,20],"name":"../../../support/bower_components/purescript-prelude/src/Data/Symbol.purs","end":[13,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[13,31],"name":"../../../support/bower_components/purescript-prelude/src/Data/Symbol.purs","end":[13,33]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[13,20],"name":"../../../support/bower_components/purescript-prelude/src/Data/Symbol.purs","end":[13,30]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[13,20],"name":"../../../support/bower_components/purescript-prelude/src/Data/Symbol.purs","end":[13,26]},[]],"tag":"TypeConstructor","contents":[["Data","Symbol"],"SProxy"]},{"annotation":[{"start":[13,27],"name":"../../../support/bower_components/purescript-prelude/src/Data/Symbol.purs","end":[13,30]},[]],"tag":"TypeVar","contents":"sym"}]}]},{"annotation":[{"start":[13,34],"name":"../../../support/bower_components/purescript-prelude/src/Data/Symbol.purs","end":[13,40]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]}}},{"EDClass":{"edClassName":"IsSymbol","edClassTypeArguments":[["sym",{"annotation":[{"start":[12,24],"name":"../../../support/bower_components/purescript-prelude/src/Data/Symbol.purs","end":[12,30]},[]],"tag":"NamedKind","contents":[["Prim"],"Symbol"]}]],"edClassMembers":[[{"Ident":"reflectSymbol"},{"annotation":[{"start":[13,20],"name":"../../../support/bower_components/purescript-prelude/src/Data/Symbol.purs","end":[13,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[13,20],"name":"../../../support/bower_components/purescript-prelude/src/Data/Symbol.purs","end":[13,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[13,31],"name":"../../../support/bower_components/purescript-prelude/src/Data/Symbol.purs","end":[13,33]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[13,20],"name":"../../../support/bower_components/purescript-prelude/src/Data/Symbol.purs","end":[13,30]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[13,20],"name":"../../../support/bower_components/purescript-prelude/src/Data/Symbol.purs","end":[13,26]},[]],"tag":"TypeConstructor","contents":[["Data","Symbol"],"SProxy"]},{"annotation":[{"start":[13,27],"name":"../../../support/bower_components/purescript-prelude/src/Data/Symbol.purs","end":[13,30]},[]],"tag":"TypeVar","contents":"sym"}]}]},{"annotation":[{"start":[13,34],"name":"../../../support/bower_components/purescript-prelude/src/Data/Symbol.purs","end":[13,40]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}]],"edClassConstraints":[],"edFunctionalDependencies":[]}},{"EDValue":{"edValueName":{"Ident":"reflectSymbol"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["sym",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["Data","Symbol"],"IsSymbol"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"sym"}],"constraintData":null},{"annotation":[{"start":[13,20],"name":"../../../support/bower_components/purescript-prelude/src/Data/Symbol.purs","end":[13,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[13,20],"name":"../../../support/bower_components/purescript-prelude/src/Data/Symbol.purs","end":[13,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[13,31],"name":"../../../support/bower_components/purescript-prelude/src/Data/Symbol.purs","end":[13,33]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[13,20],"name":"../../../support/bower_components/purescript-prelude/src/Data/Symbol.purs","end":[13,30]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[13,20],"name":"../../../support/bower_components/purescript-prelude/src/Data/Symbol.purs","end":[13,26]},[]],"tag":"TypeConstructor","contents":[["Data","Symbol"],"SProxy"]},{"annotation":[{"start":[13,27],"name":"../../../support/bower_components/purescript-prelude/src/Data/Symbol.purs","end":[13,30]},[]],"tag":"TypeVar","contents":"sym"}]}]},{"annotation":[{"start":[13,34],"name":"../../../support/bower_components/purescript-prelude/src/Data/Symbol.purs","end":[13,40]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}]},8]}}},{"EDValue":{"edValueName":{"Ident":"reifySymbol"},"edValueType":{"annotation":[{"start":[18,16],"name":"../../../support/bower_components/purescript-prelude/src/Data/Symbol.purs","end":[18,86]},[]],"tag":"ForAll","contents":["r",{"annotation":[{"start":[18,26],"name":"../../../support/bower_components/purescript-prelude/src/Data/Symbol.purs","end":[18,86]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,26],"name":"../../../support/bower_components/purescript-prelude/src/Data/Symbol.purs","end":[18,86]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,33],"name":"../../../support/bower_components/purescript-prelude/src/Data/Symbol.purs","end":[18,35]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[18,26],"name":"../../../support/bower_components/purescript-prelude/src/Data/Symbol.purs","end":[18,32]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[{"start":[18,36],"name":"../../../support/bower_components/purescript-prelude/src/Data/Symbol.purs","end":[18,86]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,36],"name":"../../../support/bower_components/purescript-prelude/src/Data/Symbol.purs","end":[18,86]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,82],"name":"../../../support/bower_components/purescript-prelude/src/Data/Symbol.purs","end":[18,84]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[18,37],"name":"../../../support/bower_components/purescript-prelude/src/Data/Symbol.purs","end":[18,80]},[]],"tag":"ForAll","contents":["sym",{"annotation":[{"start":[18,49],"name":"../../../support/bower_components/purescript-prelude/src/Data/Symbol.purs","end":[18,80]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[18,49],"name":"../../../support/bower_components/purescript-prelude/src/Data/Symbol.purs","end":[18,61]},[]],"constraintClass":[["Data","Symbol"],"IsSymbol"],"constraintArgs":[{"annotation":[{"start":[18,58],"name":"../../../support/bower_components/purescript-prelude/src/Data/Symbol.purs","end":[18,61]},[]],"tag":"TypeVar","contents":"sym"}],"constraintData":null},{"annotation":[{"start":[18,65],"name":"../../../support/bower_components/purescript-prelude/src/Data/Symbol.purs","end":[18,80]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,65],"name":"../../../support/bower_components/purescript-prelude/src/Data/Symbol.purs","end":[18,80]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,76],"name":"../../../support/bower_components/purescript-prelude/src/Data/Symbol.purs","end":[18,78]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[18,65],"name":"../../../support/bower_components/purescript-prelude/src/Data/Symbol.purs","end":[18,75]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,65],"name":"../../../support/bower_components/purescript-prelude/src/Data/Symbol.purs","end":[18,71]},[]],"tag":"TypeConstructor","contents":[["Data","Symbol"],"SProxy"]},{"annotation":[{"start":[18,72],"name":"../../../support/bower_components/purescript-prelude/src/Data/Symbol.purs","end":[18,75]},[]],"tag":"TypeVar","contents":"sym"}]}]},{"annotation":[{"start":[18,79],"name":"../../../support/bower_components/purescript-prelude/src/Data/Symbol.purs","end":[18,80]},[]],"tag":"TypeVar","contents":"r"}]}]},0]}]},{"annotation":[{"start":[18,85],"name":"../../../support/bower_components/purescript-prelude/src/Data/Symbol.purs","end":[18,86]},[]],"tag":"TypeVar","contents":"r"}]}]},1]}}},{"EDType":{"edTypeName":"SProxy","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[9,21],"name":"../../../support/bower_components/purescript-prelude/src/Data/Symbol.purs","end":[9,27]},[]],"tag":"NamedKind","contents":[["Prim"],"Symbol"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},"edTypeDeclarationKind":{"DataType":{"args":[["sym",{"annotation":[{"start":[9,21],"name":"../../../support/bower_components/purescript-prelude/src/Data/Symbol.purs","end":[9,27]},[]],"tag":"NamedKind","contents":[["Prim"],"Symbol"]}]],"ctors":[["SProxy",[]]]}}}},{"EDDataConstructor":{"edDataCtorName":"SProxy","edDataCtorOrigin":"data","edDataCtorTypeCtor":"SProxy","edDataCtorType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["sym",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Symbol"],"SProxy"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"sym"}]},null]},"edDataCtorFields":[]}}],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Symbol.purs","end":[23,24]}}
diff --git a/tests/purs/publish/basic-example/output/Data.Traversable.Accum.Internal/docs.json b/tests/purs/publish/basic-example/output/Data.Traversable.Accum.Internal/docs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.Traversable.Accum.Internal/docs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"reExports":[],"name":"Data.Traversable.Accum.Internal","comments":null,"declarations":[{"children":[{"comments":null,"title":"StateL","info":{"arguments":[{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"s"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Traversable","Accum"],"Accum"]},{"annotation":[],"tag":"TypeVar","contents":"s"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}}],"declType":"dataConstructor"},"sourceSpan":null},{"comments":null,"title":"functorStateL","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Functor"],"Functor"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Traversable","Accum","Internal"],"StateL"]},{"annotation":[],"tag":"TypeVar","contents":"s"}]}]}},"sourceSpan":{"start":[16,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum/Internal.purs","end":[18,57]}},{"comments":null,"title":"applyStateL","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Apply"],"Apply"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Traversable","Accum","Internal"],"StateL"]},{"annotation":[],"tag":"TypeVar","contents":"s"}]}]}},"sourceSpan":{"start":[20,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum/Internal.purs","end":[23,62]}},{"comments":null,"title":"applicativeStateL","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Applicative"],"Applicative"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Traversable","Accum","Internal"],"StateL"]},{"annotation":[],"tag":"TypeVar","contents":"s"}]}]}},"sourceSpan":{"start":[25,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum/Internal.purs","end":[26,47]}}],"comments":null,"title":"StateL","info":{"declType":"data","dataDeclType":"newtype","typeArguments":[["s",null],["a",null]]},"sourceSpan":{"start":[11,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum/Internal.purs","end":[11,45]}},{"children":[],"comments":null,"title":"stateL","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["s",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Traversable","Accum","Internal"],"StateL"]},{"annotation":[],"tag":"TypeVar","contents":"s"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"s"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Traversable","Accum"],"Accum"]},{"annotation":[],"tag":"TypeVar","contents":"s"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]},null]},null]}},"sourceSpan":{"start":[13,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum/Internal.purs","end":[13,51]}},{"children":[{"comments":null,"title":"StateR","info":{"arguments":[{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"s"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Traversable","Accum"],"Accum"]},{"annotation":[],"tag":"TypeVar","contents":"s"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}}],"declType":"dataConstructor"},"sourceSpan":null},{"comments":null,"title":"functorStateR","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Functor"],"Functor"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Traversable","Accum","Internal"],"StateR"]},{"annotation":[],"tag":"TypeVar","contents":"s"}]}]}},"sourceSpan":{"start":[34,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum/Internal.purs","end":[36,57]}},{"comments":null,"title":"applyStateR","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Apply"],"Apply"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Traversable","Accum","Internal"],"StateR"]},{"annotation":[],"tag":"TypeVar","contents":"s"}]}]}},"sourceSpan":{"start":[38,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum/Internal.purs","end":[41,62]}},{"comments":null,"title":"applicativeStateR","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Applicative"],"Applicative"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Traversable","Accum","Internal"],"StateR"]},{"annotation":[],"tag":"TypeVar","contents":"s"}]}]}},"sourceSpan":{"start":[43,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum/Internal.purs","end":[44,47]}}],"comments":null,"title":"StateR","info":{"declType":"data","dataDeclType":"newtype","typeArguments":[["s",null],["a",null]]},"sourceSpan":{"start":[29,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum/Internal.purs","end":[29,45]}},{"children":[],"comments":null,"title":"stateR","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["s",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Traversable","Accum","Internal"],"StateR"]},{"annotation":[],"tag":"TypeVar","contents":"s"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"s"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Traversable","Accum"],"Accum"]},{"annotation":[],"tag":"TypeVar","contents":"s"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]},null]},null]}},"sourceSpan":{"start":[31,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum/Internal.purs","end":[31,51]}}]}
diff --git a/tests/purs/publish/basic-example/output/Data.Traversable.Accum.Internal/externs.json b/tests/purs/publish/basic-example/output/Data.Traversable.Accum.Internal/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.Traversable.Accum.Internal/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Data","Traversable","Accum","Internal"],"efExports":[{"TypeRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum/Internal.purs","end":[44,47]},"StateL",["StateL"]]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum/Internal.purs","end":[44,47]},{"Ident":"stateL"}]},{"TypeRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum/Internal.purs","end":[44,47]},"StateR",["StateR"]]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum/Internal.purs","end":[44,47]},{"Ident":"stateR"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"functorStateL"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"applyStateL"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"applicativeStateL"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"functorStateR"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"applyStateR"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"applicativeStateR"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Prelude"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Data","Traversable","Accum"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[9,32],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum/Internal.purs","end":[9,37]},"Accum",[]]}]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDType":{"edTypeName":"StateL","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[11,32],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum/Internal.purs","end":[11,34]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[11,35],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum/Internal.purs","end":[11,40]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]},"edTypeDeclarationKind":{"DataType":{"args":[["s",{"annotation":[{"start":[11,32],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum/Internal.purs","end":[11,34]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["a",{"annotation":[{"start":[11,35],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum/Internal.purs","end":[11,40]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]],"ctors":[["StateL",[{"annotation":[{"start":[11,30],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum/Internal.purs","end":[11,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[11,30],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum/Internal.purs","end":[11,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[11,32],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum/Internal.purs","end":[11,34]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[11,30],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum/Internal.purs","end":[11,31]},[]],"tag":"TypeVar","contents":"s"}]},{"annotation":[{"start":[11,35],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum/Internal.purs","end":[11,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[11,35],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum/Internal.purs","end":[11,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[11,35],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum/Internal.purs","end":[11,40]},[]],"tag":"TypeConstructor","contents":[["Data","Traversable","Accum"],"Accum"]},{"annotation":[{"start":[11,41],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum/Internal.purs","end":[11,42]},[]],"tag":"TypeVar","contents":"s"}]},{"annotation":[{"start":[11,43],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum/Internal.purs","end":[11,44]},[]],"tag":"TypeVar","contents":"a"}]}]}]]]}}}},{"EDDataConstructor":{"edDataCtorName":"StateL","edDataCtorOrigin":"newtype","edDataCtorTypeCtor":"StateL","edDataCtorType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["s",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[11,30],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum/Internal.purs","end":[11,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[11,30],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum/Internal.purs","end":[11,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[11,32],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum/Internal.purs","end":[11,34]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[11,30],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum/Internal.purs","end":[11,31]},[]],"tag":"TypeVar","contents":"s"}]},{"annotation":[{"start":[11,35],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum/Internal.purs","end":[11,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[11,35],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum/Internal.purs","end":[11,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[11,35],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum/Internal.purs","end":[11,40]},[]],"tag":"TypeConstructor","contents":[["Data","Traversable","Accum"],"Accum"]},{"annotation":[{"start":[11,41],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum/Internal.purs","end":[11,42]},[]],"tag":"TypeVar","contents":"s"}]},{"annotation":[{"start":[11,43],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum/Internal.purs","end":[11,44]},[]],"tag":"TypeVar","contents":"a"}]}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Traversable","Accum","Internal"],"StateL"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"s"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"a"}]}]},null]},null]},"edDataCtorFields":[{"Ident":"value0"}]}},{"EDValue":{"edValueName":{"Ident":"stateL"},"edValueType":{"annotation":[{"start":[13,11],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum/Internal.purs","end":[13,51]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[13,18],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum/Internal.purs","end":[13,51]},[]],"tag":"ForAll","contents":["s",{"annotation":[{"start":[13,23],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum/Internal.purs","end":[13,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[13,23],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum/Internal.purs","end":[13,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[13,34],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum/Internal.purs","end":[13,36]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[13,23],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum/Internal.purs","end":[13,33]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[13,23],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum/Internal.purs","end":[13,31]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[13,23],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum/Internal.purs","end":[13,29]},[]],"tag":"TypeConstructor","contents":[["Data","Traversable","Accum","Internal"],"StateL"]},{"annotation":[{"start":[13,30],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum/Internal.purs","end":[13,31]},[]],"tag":"TypeVar","contents":"s"}]},{"annotation":[{"start":[13,32],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum/Internal.purs","end":[13,33]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[13,37],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum/Internal.purs","end":[13,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[13,37],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum/Internal.purs","end":[13,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[13,39],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum/Internal.purs","end":[13,41]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[13,37],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum/Internal.purs","end":[13,38]},[]],"tag":"TypeVar","contents":"s"}]},{"annotation":[{"start":[5,18],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum.purs","end":[5,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[5,18],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum.purs","end":[5,19]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[5,20],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum.purs","end":[5,30]},[]],"tag":"RCons","contents":["accum",{"annotation":[{"start":[13,48],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum/Internal.purs","end":[13,49]},[]],"tag":"TypeVar","contents":"s"},{"annotation":[{"start":[5,32],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum.purs","end":[5,42]},[]],"tag":"RCons","contents":["value",{"annotation":[{"start":[13,50],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum/Internal.purs","end":[13,51]},[]],"tag":"TypeVar","contents":"a"},{"annotation":[{"start":[5,43],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum.purs","end":[5,44]},[]],"tag":"REmpty"}]}]}]}]}]},4]},5]}}},{"EDType":{"edTypeName":"StateR","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[29,32],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum/Internal.purs","end":[29,34]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[29,35],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum/Internal.purs","end":[29,40]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]},"edTypeDeclarationKind":{"DataType":{"args":[["s",{"annotation":[{"start":[29,32],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum/Internal.purs","end":[29,34]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["a",{"annotation":[{"start":[29,35],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum/Internal.purs","end":[29,40]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]],"ctors":[["StateR",[{"annotation":[{"start":[29,30],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum/Internal.purs","end":[29,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[29,30],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum/Internal.purs","end":[29,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[29,32],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum/Internal.purs","end":[29,34]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[29,30],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum/Internal.purs","end":[29,31]},[]],"tag":"TypeVar","contents":"s"}]},{"annotation":[{"start":[29,35],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum/Internal.purs","end":[29,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[29,35],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum/Internal.purs","end":[29,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[29,35],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum/Internal.purs","end":[29,40]},[]],"tag":"TypeConstructor","contents":[["Data","Traversable","Accum"],"Accum"]},{"annotation":[{"start":[29,41],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum/Internal.purs","end":[29,42]},[]],"tag":"TypeVar","contents":"s"}]},{"annotation":[{"start":[29,43],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum/Internal.purs","end":[29,44]},[]],"tag":"TypeVar","contents":"a"}]}]}]]]}}}},{"EDDataConstructor":{"edDataCtorName":"StateR","edDataCtorOrigin":"newtype","edDataCtorTypeCtor":"StateR","edDataCtorType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["s",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[29,30],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum/Internal.purs","end":[29,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[29,30],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum/Internal.purs","end":[29,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[29,32],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum/Internal.purs","end":[29,34]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[29,30],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum/Internal.purs","end":[29,31]},[]],"tag":"TypeVar","contents":"s"}]},{"annotation":[{"start":[29,35],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum/Internal.purs","end":[29,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[29,35],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum/Internal.purs","end":[29,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[29,35],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum/Internal.purs","end":[29,40]},[]],"tag":"TypeConstructor","contents":[["Data","Traversable","Accum"],"Accum"]},{"annotation":[{"start":[29,41],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum/Internal.purs","end":[29,42]},[]],"tag":"TypeVar","contents":"s"}]},{"annotation":[{"start":[29,43],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum/Internal.purs","end":[29,44]},[]],"tag":"TypeVar","contents":"a"}]}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Traversable","Accum","Internal"],"StateR"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"s"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"a"}]}]},null]},null]},"edDataCtorFields":[{"Ident":"value0"}]}},{"EDValue":{"edValueName":{"Ident":"stateR"},"edValueType":{"annotation":[{"start":[31,11],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum/Internal.purs","end":[31,51]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[31,18],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum/Internal.purs","end":[31,51]},[]],"tag":"ForAll","contents":["s",{"annotation":[{"start":[31,23],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum/Internal.purs","end":[31,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[31,23],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum/Internal.purs","end":[31,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[31,34],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum/Internal.purs","end":[31,36]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[31,23],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum/Internal.purs","end":[31,33]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[31,23],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum/Internal.purs","end":[31,31]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[31,23],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum/Internal.purs","end":[31,29]},[]],"tag":"TypeConstructor","contents":[["Data","Traversable","Accum","Internal"],"StateR"]},{"annotation":[{"start":[31,30],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum/Internal.purs","end":[31,31]},[]],"tag":"TypeVar","contents":"s"}]},{"annotation":[{"start":[31,32],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum/Internal.purs","end":[31,33]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[31,37],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum/Internal.purs","end":[31,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[31,37],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum/Internal.purs","end":[31,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[31,39],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum/Internal.purs","end":[31,41]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[31,37],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum/Internal.purs","end":[31,38]},[]],"tag":"TypeVar","contents":"s"}]},{"annotation":[{"start":[5,18],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum.purs","end":[5,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[5,18],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum.purs","end":[5,19]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[5,20],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum.purs","end":[5,30]},[]],"tag":"RCons","contents":["accum",{"annotation":[{"start":[31,48],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum/Internal.purs","end":[31,49]},[]],"tag":"TypeVar","contents":"s"},{"annotation":[{"start":[5,32],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum.purs","end":[5,42]},[]],"tag":"RCons","contents":["value",{"annotation":[{"start":[31,50],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum/Internal.purs","end":[31,51]},[]],"tag":"TypeVar","contents":"a"},{"annotation":[{"start":[5,43],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum.purs","end":[5,44]},[]],"tag":"REmpty"}]}]}]}]}]},0]},1]}}},{"EDInstance":{"edInstanceClassName":[["Data","Functor"],"Functor"],"edInstanceName":{"Ident":"functorStateL"},"edInstanceTypes":[{"annotation":[{"start":[16,36],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum/Internal.purs","end":[16,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[16,36],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum/Internal.purs","end":[16,42]},[]],"tag":"TypeConstructor","contents":[["Data","Traversable","Accum","Internal"],"StateL"]},{"annotation":[{"start":[16,43],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum/Internal.purs","end":[16,44]},[]],"tag":"TypeVar","contents":"s"}]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Traversable","Accum","Internal"],{"Ident":"functorStateL"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Apply"],"Apply"],"edInstanceName":{"Ident":"applyStateL"},"edInstanceTypes":[{"annotation":[{"start":[20,32],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum/Internal.purs","end":[20,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[20,32],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum/Internal.purs","end":[20,38]},[]],"tag":"TypeConstructor","contents":[["Data","Traversable","Accum","Internal"],"StateL"]},{"annotation":[{"start":[20,39],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum/Internal.purs","end":[20,40]},[]],"tag":"TypeVar","contents":"s"}]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Traversable","Accum","Internal"],{"Ident":"applyStateL"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Applicative"],"Applicative"],"edInstanceName":{"Ident":"applicativeStateL"},"edInstanceTypes":[{"annotation":[{"start":[25,44],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum/Internal.purs","end":[25,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[25,44],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum/Internal.purs","end":[25,50]},[]],"tag":"TypeConstructor","contents":[["Data","Traversable","Accum","Internal"],"StateL"]},{"annotation":[{"start":[25,51],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum/Internal.purs","end":[25,52]},[]],"tag":"TypeVar","contents":"s"}]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Traversable","Accum","Internal"],{"Ident":"applicativeStateL"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Functor"],"Functor"],"edInstanceName":{"Ident":"functorStateR"},"edInstanceTypes":[{"annotation":[{"start":[34,36],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum/Internal.purs","end":[34,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[34,36],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum/Internal.purs","end":[34,42]},[]],"tag":"TypeConstructor","contents":[["Data","Traversable","Accum","Internal"],"StateR"]},{"annotation":[{"start":[34,43],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum/Internal.purs","end":[34,44]},[]],"tag":"TypeVar","contents":"s"}]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Traversable","Accum","Internal"],{"Ident":"functorStateR"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Apply"],"Apply"],"edInstanceName":{"Ident":"applyStateR"},"edInstanceTypes":[{"annotation":[{"start":[38,32],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum/Internal.purs","end":[38,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[38,32],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum/Internal.purs","end":[38,38]},[]],"tag":"TypeConstructor","contents":[["Data","Traversable","Accum","Internal"],"StateR"]},{"annotation":[{"start":[38,39],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum/Internal.purs","end":[38,40]},[]],"tag":"TypeVar","contents":"s"}]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Traversable","Accum","Internal"],{"Ident":"applyStateR"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Applicative"],"Applicative"],"edInstanceName":{"Ident":"applicativeStateR"},"edInstanceTypes":[{"annotation":[{"start":[43,44],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum/Internal.purs","end":[43,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[43,44],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum/Internal.purs","end":[43,50]},[]],"tag":"TypeConstructor","contents":[["Data","Traversable","Accum","Internal"],"StateR"]},{"annotation":[{"start":[43,51],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum/Internal.purs","end":[43,52]},[]],"tag":"TypeVar","contents":"s"}]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Traversable","Accum","Internal"],{"Ident":"applicativeStateR"}]],"edInstanceChainIndex":0}}],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum/Internal.purs","end":[44,47]}}
diff --git a/tests/purs/publish/basic-example/output/Data.Traversable.Accum/docs.json b/tests/purs/publish/basic-example/output/Data.Traversable.Accum/docs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.Traversable.Accum/docs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"reExports":[],"name":"Data.Traversable.Accum","comments":null,"declarations":[{"children":[],"comments":null,"title":"Accum","info":{"arguments":[["s",null],["a",null]],"declType":"typeSynonym","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"RCons","contents":["accum",{"annotation":[],"tag":"TypeVar","contents":"s"},{"annotation":[],"tag":"RCons","contents":["value",{"annotation":[],"tag":"TypeVar","contents":"a"},{"annotation":[],"tag":"REmpty"}]}]}]}},"sourceSpan":{"start":[5,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum.purs","end":[5,44]}}]}
diff --git a/tests/purs/publish/basic-example/output/Data.Traversable.Accum/externs.json b/tests/purs/publish/basic-example/output/Data.Traversable.Accum/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.Traversable.Accum/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Data","Traversable","Accum"],"efExports":[{"TypeRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum.purs","end":[5,44]},"Accum",[]]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDType":{"edTypeName":"Accum","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[5,18],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum.purs","end":[5,19]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[5,18],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum.purs","end":[5,19]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[5,18],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum.purs","end":[5,19]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"Accum","edTypeSynonymArguments":[["s",{"annotation":[{"start":[5,18],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum.purs","end":[5,19]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["a",{"annotation":[{"start":[5,18],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum.purs","end":[5,19]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]],"edTypeSynonymType":{"annotation":[{"start":[5,18],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum.purs","end":[5,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[5,18],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum.purs","end":[5,19]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[5,20],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum.purs","end":[5,30]},[]],"tag":"RCons","contents":["accum",{"annotation":[{"start":[5,29],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum.purs","end":[5,30]},[]],"tag":"TypeVar","contents":"s"},{"annotation":[{"start":[5,32],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum.purs","end":[5,42]},[]],"tag":"RCons","contents":["value",{"annotation":[{"start":[5,41],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum.purs","end":[5,42]},[]],"tag":"TypeVar","contents":"a"},{"annotation":[{"start":[5,43],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum.purs","end":[5,44]},[]],"tag":"REmpty"}]}]}]}}}],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum.purs","end":[5,44]}}
diff --git a/tests/purs/publish/basic-example/output/Data.Traversable/docs.json b/tests/purs/publish/basic-example/output/Data.Traversable/docs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.Traversable/docs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"reExports":[],"name":"Data.Traversable","comments":null,"declarations":[{"children":[{"comments":null,"title":"traverse","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Applicative"],"Applicative"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"t"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"t"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}}]}]}]}]},null]},null]},null]}},"sourceSpan":{"start":[51,3],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[51,74]}},{"comments":null,"title":"sequence","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Applicative"],"Applicative"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"t"},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"t"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]}]}]},null]},null]}},"sourceSpan":{"start":[52,3],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[52,62]}},{"comments":null,"title":"traversableArray","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Traversable"],"Traversable"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]}]}},"sourceSpan":{"start":[73,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[75,29]}},{"comments":null,"title":"traversableMaybe","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Traversable"],"Traversable"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]}]}},"sourceSpan":{"start":[86,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[90,33]}},{"comments":null,"title":"traversableFirst","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Traversable"],"Traversable"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe","First"],"First"]}]}},"sourceSpan":{"start":[92,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[94,44]}},{"comments":null,"title":"traversableLast","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Traversable"],"Traversable"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe","Last"],"Last"]}]}},"sourceSpan":{"start":[96,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[98,42]}},{"comments":null,"title":"traversableAdditive","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Traversable"],"Traversable"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Additive"],"Additive"]}]}},"sourceSpan":{"start":[100,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[102,41]}},{"comments":null,"title":"traversableDual","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Traversable"],"Traversable"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Dual"],"Dual"]}]}},"sourceSpan":{"start":[104,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[106,33]}},{"comments":null,"title":"traversableConj","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Traversable"],"Traversable"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Conj"],"Conj"]}]}},"sourceSpan":{"start":[108,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[110,33]}},{"comments":null,"title":"traversableDisj","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Traversable"],"Traversable"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Disj"],"Disj"]}]}},"sourceSpan":{"start":[112,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[114,33]}},{"comments":null,"title":"traversableMultiplicative","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Traversable"],"Traversable"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Multiplicative"],"Multiplicative"]}]}},"sourceSpan":{"start":[116,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[118,53]}}],"comments":"`Traversable` represents data structures which can be _traversed_,\naccumulating results and effects in some `Applicative` functor.\n\n- `traverse` runs an action for every element in a data structure,\n  and accumulates the results.\n- `sequence` runs the actions _contained_ in a data structure,\n  and accumulates the results.\n\nThe `traverse` and `sequence` functions should be compatible in the\nfollowing sense:\n\n- `traverse f xs = sequence (f <$> xs)`\n- `sequence = traverse identity`\n\n`Traversable` instances should also be compatible with the corresponding\n`Foldable` instances, in the following sense:\n\n- `foldMap f = runConst <<< traverse (Const <<< f)`\n\nDefault implementations are provided by the following functions:\n\n- `traverseDefault`\n- `sequenceDefault`\n","title":"Traversable","info":{"fundeps":[],"arguments":[["t",null]],"declType":"typeClass","superclasses":[{"constraintAnn":[],"constraintClass":[["Data","Functor"],"Functor"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"t"}],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","Foldable"],"Foldable"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"t"}],"constraintData":null}]},"sourceSpan":{"start":[50,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[52,62]}},{"children":[],"comments":"A default implementation of `traverse` using `sequence` and `map`.\n","title":"traverseDefault","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["t",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Traversable"],"Traversable"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"t"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Applicative"],"Applicative"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"t"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"t"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}}]}]}]}]}]},null]},null]},null]},null]}},"sourceSpan":{"start":[55,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[61,13]}},{"children":[],"comments":"A default implementation of `sequence` using `traverse`.\n","title":"sequenceDefault","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["t",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Traversable"],"Traversable"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"t"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Applicative"],"Applicative"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"t"},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"t"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]}]}]}]},null]},null]},null]}},"sourceSpan":{"start":[65,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[70,13]}},{"children":[],"comments":"A version of `traverse` with its arguments flipped.\n\n\nThis can be useful when running an action written using do notation\nfor every element in a data structure:\n\nFor example:\n\n```purescript\nfor [1, 2, 3] \\n -> do\n  print n\n  return (n * n)\n```\n","title":"for","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["t",{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Applicative"],"Applicative"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Traversable"],"Traversable"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"t"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"t"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"t"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}}]}]}]}]}]},null]},null]},null]},null]}},"sourceSpan":{"start":[133,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[139,13]}},{"children":[],"comments":"Fold a data structure from the left, keeping all intermediate results\ninstead of only the final result. Note that the initial value does not\nappear in the result (unlike Haskell's `Prelude.scanl`).\n\n```purescript\nscanl (+) 0  [1,2,3] = [1,3,6]\nscanl (-) 10 [1,2,3] = [9,7,4]\n```\n","title":"scanl","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Traversable"],"Traversable"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}]}]}]},null]},null]},null]}},"sourceSpan":{"start":[150,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[150,73]}},{"children":[],"comments":"Fold a data structure from the right, keeping all intermediate results\ninstead of only the final result. Note that the initial value does not\nappear in the result (unlike Haskell's `Prelude.scanr`).\n\n```purescript\nscanr (+) 0  [1,2,3] = [1,3,6]\nscanr (flip (-)) 10 [1,2,3] = [4,5,7]\n```\n","title":"scanr","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Traversable"],"Traversable"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}]}]}]},null]},null]},null]}},"sourceSpan":{"start":[175,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[175,73]}},{"children":[],"comments":"Fold a data structure from the left, keeping all intermediate results\ninstead of only the final result.\n\nUnlike `scanl`, `mapAccumL` allows the type of accumulator to differ\nfrom the element type of the final data structure.\n","title":"mapAccumL","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["s",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Traversable"],"Traversable"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"s"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Traversable","Accum"],"Accum"]},{"annotation":[],"tag":"TypeVar","contents":"s"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"s"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Traversable","Accum"],"Accum"]},{"annotation":[],"tag":"TypeVar","contents":"s"}]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}}]}]}]}]}]},null]},null]},null]},null]}},"sourceSpan":{"start":[158,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[164,19]}},{"children":[],"comments":"Fold a data structure from the right, keeping all intermediate results\ninstead of only the final result.\n\nUnlike `scanr`, `mapAccumR` allows the type of accumulator to differ\nfrom the element type of the final data structure.\n","title":"mapAccumR","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["s",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Traversable"],"Traversable"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"s"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Traversable","Accum"],"Accum"]},{"annotation":[],"tag":"TypeVar","contents":"s"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"s"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Traversable","Accum"],"Accum"]},{"annotation":[],"tag":"TypeVar","contents":"s"}]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}}]}]}]}]}]},null]},null]},null]},null]}},"sourceSpan":{"start":[183,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[189,19]}}]}
diff --git a/tests/purs/publish/basic-example/output/Data.Traversable/externs.json b/tests/purs/publish/basic-example/output/Data.Traversable/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.Traversable/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Data","Traversable"],"efExports":[{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[190,71]},{"exportSourceImportedFrom":["Data","Traversable","Accum"],"exportSourceDefinedIn":["Data","Traversable","Accum"]},{"TypeRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[190,71]},"Accum",[]]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[190,71]},{"exportSourceImportedFrom":["Data","Foldable"],"exportSourceDefinedIn":["Data","Foldable"]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[190,71]},"Foldable"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[190,71]},{"exportSourceImportedFrom":["Data","Foldable"],"exportSourceDefinedIn":["Data","Foldable"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[190,71]},{"Ident":"all"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[190,71]},{"exportSourceImportedFrom":["Data","Foldable"],"exportSourceDefinedIn":["Data","Foldable"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[190,71]},{"Ident":"and"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[190,71]},{"exportSourceImportedFrom":["Data","Foldable"],"exportSourceDefinedIn":["Data","Foldable"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[190,71]},{"Ident":"any"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[190,71]},{"exportSourceImportedFrom":["Data","Foldable"],"exportSourceDefinedIn":["Data","Foldable"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[190,71]},{"Ident":"elem"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[190,71]},{"exportSourceImportedFrom":["Data","Foldable"],"exportSourceDefinedIn":["Data","Foldable"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[190,71]},{"Ident":"find"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[190,71]},{"exportSourceImportedFrom":["Data","Foldable"],"exportSourceDefinedIn":["Data","Foldable"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[190,71]},{"Ident":"fold"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[190,71]},{"exportSourceImportedFrom":["Data","Foldable"],"exportSourceDefinedIn":["Data","Foldable"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[190,71]},{"Ident":"foldMap"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[190,71]},{"exportSourceImportedFrom":["Data","Foldable"],"exportSourceDefinedIn":["Data","Foldable"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[190,71]},{"Ident":"foldMapDefaultL"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[190,71]},{"exportSourceImportedFrom":["Data","Foldable"],"exportSourceDefinedIn":["Data","Foldable"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[190,71]},{"Ident":"foldMapDefaultR"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[190,71]},{"exportSourceImportedFrom":["Data","Foldable"],"exportSourceDefinedIn":["Data","Foldable"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[190,71]},{"Ident":"foldl"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[190,71]},{"exportSourceImportedFrom":["Data","Foldable"],"exportSourceDefinedIn":["Data","Foldable"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[190,71]},{"Ident":"foldlDefault"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[190,71]},{"exportSourceImportedFrom":["Data","Foldable"],"exportSourceDefinedIn":["Data","Foldable"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[190,71]},{"Ident":"foldr"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[190,71]},{"exportSourceImportedFrom":["Data","Foldable"],"exportSourceDefinedIn":["Data","Foldable"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[190,71]},{"Ident":"foldrDefault"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[190,71]},{"exportSourceImportedFrom":["Data","Foldable"],"exportSourceDefinedIn":["Data","Foldable"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[190,71]},{"Ident":"for_"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[190,71]},{"exportSourceImportedFrom":["Data","Foldable"],"exportSourceDefinedIn":["Data","Foldable"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[190,71]},{"Ident":"intercalate"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[190,71]},{"exportSourceImportedFrom":["Data","Foldable"],"exportSourceDefinedIn":["Data","Foldable"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[190,71]},{"Ident":"maximum"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[190,71]},{"exportSourceImportedFrom":["Data","Foldable"],"exportSourceDefinedIn":["Data","Foldable"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[190,71]},{"Ident":"maximumBy"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[190,71]},{"exportSourceImportedFrom":["Data","Foldable"],"exportSourceDefinedIn":["Data","Foldable"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[190,71]},{"Ident":"minimum"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[190,71]},{"exportSourceImportedFrom":["Data","Foldable"],"exportSourceDefinedIn":["Data","Foldable"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[190,71]},{"Ident":"minimumBy"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[190,71]},{"exportSourceImportedFrom":["Data","Foldable"],"exportSourceDefinedIn":["Data","Foldable"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[190,71]},{"Ident":"notElem"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[190,71]},{"exportSourceImportedFrom":["Data","Foldable"],"exportSourceDefinedIn":["Data","Foldable"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[190,71]},{"Ident":"oneOf"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[190,71]},{"exportSourceImportedFrom":["Data","Foldable"],"exportSourceDefinedIn":["Data","Foldable"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[190,71]},{"Ident":"or"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[190,71]},{"exportSourceImportedFrom":["Data","Foldable"],"exportSourceDefinedIn":["Data","Foldable"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[190,71]},{"Ident":"product"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[190,71]},{"exportSourceImportedFrom":["Data","Foldable"],"exportSourceDefinedIn":["Data","Foldable"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[190,71]},{"Ident":"sequence_"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[190,71]},{"exportSourceImportedFrom":["Data","Foldable"],"exportSourceDefinedIn":["Data","Foldable"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[190,71]},{"Ident":"sum"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[190,71]},{"exportSourceImportedFrom":["Data","Foldable"],"exportSourceDefinedIn":["Data","Foldable"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[190,71]},{"Ident":"traverse_"}]}]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[190,71]},"Traversable"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[190,71]},{"Ident":"traverse"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[190,71]},{"Ident":"sequence"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[190,71]},{"Ident":"traverseDefault"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[190,71]},{"Ident":"sequenceDefault"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[190,71]},{"Ident":"for"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[190,71]},{"Ident":"scanl"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[190,71]},{"Ident":"scanr"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[190,71]},{"Ident":"mapAccumL"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[190,71]},{"Ident":"mapAccumR"}]},{"ModuleRef":[{"start":[9,5],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[9,25]},["Data","Foldable"]]},{"ModuleRef":[{"start":[10,5],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[10,34]},["Data","Traversable","Accum"]]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"traversableArray"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"traversableMaybe"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"traversableFirst"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"traversableLast"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"traversableAdditive"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"traversableDual"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"traversableConj"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"traversableDisj"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"traversableMultiplicative"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Prelude"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Data","Foldable"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[15,23],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[15,37]},"Foldable"]},{"ValueRef":[{"start":[15,39],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[15,42]},{"Ident":"all"}]},{"ValueRef":[{"start":[15,44],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[15,47]},{"Ident":"and"}]},{"ValueRef":[{"start":[15,49],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[15,52]},{"Ident":"any"}]},{"ValueRef":[{"start":[15,54],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[15,58]},{"Ident":"elem"}]},{"ValueRef":[{"start":[15,60],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[15,64]},{"Ident":"find"}]},{"ValueRef":[{"start":[15,66],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[15,70]},{"Ident":"fold"}]},{"ValueRef":[{"start":[15,72],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[15,79]},{"Ident":"foldMap"}]},{"ValueRef":[{"start":[15,81],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[15,96]},{"Ident":"foldMapDefaultL"}]},{"ValueRef":[{"start":[15,98],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[15,113]},{"Ident":"foldMapDefaultR"}]},{"ValueRef":[{"start":[15,115],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[15,120]},{"Ident":"foldl"}]},{"ValueRef":[{"start":[15,122],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[15,134]},{"Ident":"foldlDefault"}]},{"ValueRef":[{"start":[15,136],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[15,141]},{"Ident":"foldr"}]},{"ValueRef":[{"start":[15,143],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[15,155]},{"Ident":"foldrDefault"}]},{"ValueRef":[{"start":[15,157],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[15,161]},{"Ident":"for_"}]},{"ValueRef":[{"start":[15,163],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[15,174]},{"Ident":"intercalate"}]},{"ValueRef":[{"start":[15,176],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[15,183]},{"Ident":"maximum"}]},{"ValueRef":[{"start":[15,185],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[15,194]},{"Ident":"maximumBy"}]},{"ValueRef":[{"start":[15,196],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[15,203]},{"Ident":"minimum"}]},{"ValueRef":[{"start":[15,205],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[15,214]},{"Ident":"minimumBy"}]},{"ValueRef":[{"start":[15,216],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[15,223]},{"Ident":"notElem"}]},{"ValueRef":[{"start":[15,225],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[15,230]},{"Ident":"oneOf"}]},{"ValueRef":[{"start":[15,232],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[15,234]},{"Ident":"or"}]},{"ValueRef":[{"start":[15,236],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[15,243]},{"Ident":"product"}]},{"ValueRef":[{"start":[15,245],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[15,254]},{"Ident":"sequence_"}]},{"ValueRef":[{"start":[15,256],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[15,259]},{"Ident":"sum"}]},{"ValueRef":[{"start":[15,261],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[15,270]},{"Ident":"traverse_"}]}]},"eiImportedAs":null},{"eiModule":["Data","Maybe"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[16,20],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[16,29]},"Maybe",null]}]},"eiImportedAs":null},{"eiModule":["Data","Maybe","First"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[17,26],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[17,35]},"First",null]}]},"eiImportedAs":null},{"eiModule":["Data","Maybe","Last"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[18,25],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[18,33]},"Last",null]}]},"eiImportedAs":null},{"eiModule":["Data","Monoid","Additive"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[19,30],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[19,42]},"Additive",null]}]},"eiImportedAs":null},{"eiModule":["Data","Monoid","Conj"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[20,26],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[20,34]},"Conj",null]}]},"eiImportedAs":null},{"eiModule":["Data","Monoid","Disj"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[21,26],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[21,34]},"Disj",null]}]},"eiImportedAs":null},{"eiModule":["Data","Monoid","Dual"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[22,26],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[22,34]},"Dual",null]}]},"eiImportedAs":null},{"eiModule":["Data","Monoid","Multiplicative"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[23,36],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[23,54]},"Multiplicative",null]}]},"eiImportedAs":null},{"eiModule":["Data","Traversable","Accum"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[24,32],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[24,37]},"Accum",[]]}]},"eiImportedAs":null},{"eiModule":["Data","Traversable","Accum","Internal"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[25,41],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[25,51]},"StateL",null]},{"TypeRef":[{"start":[25,53],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[25,63]},"StateR",null]},{"ValueRef":[{"start":[25,65],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[25,71]},{"Ident":"stateL"}]},{"ValueRef":[{"start":[25,73],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[25,79]},{"Ident":"stateR"}]}]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDType":{"edTypeName":"Traversable","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[51,60],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[51,63]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[51,49],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[51,51]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[51,64],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[51,66]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"Traversable","edTypeSynonymArguments":[["t",null]],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["traverse",{"annotation":[{"start":[51,15],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[51,74]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[51,22],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[51,74]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[51,22],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[51,74]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[51,29],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[51,74]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[51,29],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[51,42]},[]],"constraintClass":[["Control","Applicative"],"Applicative"],"constraintArgs":[{"annotation":[{"start":[51,41],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[51,42]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[51,46],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[51,74]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,46],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[51,74]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,57],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[51,59]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[51,47],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[51,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,47],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[51,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,49],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[51,51]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[51,47],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[51,48]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[51,52],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[51,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,52],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[51,53]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[51,54],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[51,55]},[]],"tag":"TypeVar","contents":"b"}]}]}]},{"annotation":[{"start":[51,60],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[51,74]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,60],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[51,74]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,64],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[51,66]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[51,60],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[51,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,60],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[51,61]},[]],"tag":"TypeVar","contents":"t"},{"annotation":[{"start":[51,62],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[51,63]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[51,67],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[51,74]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,67],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[51,68]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[51,70],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[51,73]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,70],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[51,71]},[]],"tag":"TypeVar","contents":"t"},{"annotation":[{"start":[51,72],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[51,73]},[]],"tag":"TypeVar","contents":"b"}]}]}]}]}]},null]},null]},null]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["sequence",{"annotation":[{"start":[52,15],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[52,62]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[52,22],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[52,62]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[52,27],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[52,62]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[52,27],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[52,40]},[]],"constraintClass":[["Control","Applicative"],"Applicative"],"constraintArgs":[{"annotation":[{"start":[52,39],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[52,40]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[52,44],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[52,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,44],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[52,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,52],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[52,54]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[52,44],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[52,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,44],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[52,45]},[]],"tag":"TypeVar","contents":"t"},{"annotation":[{"start":[52,47],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[52,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,47],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[52,48]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[52,49],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[52,50]},[]],"tag":"TypeVar","contents":"a"}]}]}]},{"annotation":[{"start":[52,55],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[52,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,55],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[52,56]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[52,58],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[52,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,58],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[52,59]},[]],"tag":"TypeVar","contents":"t"},{"annotation":[{"start":[52,60],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[52,61]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]},null]},null]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["Functor0",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Functor"],"Functor"]},{"annotation":[{"start":[50,16],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[50,17]},[]],"tag":"TypeVar","contents":"t"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["Foldable1",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Foldable"],"Foldable"]},{"annotation":[{"start":[50,28],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[50,29]},[]],"tag":"TypeVar","contents":"t"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]}]}]}]}}},{"EDClass":{"edClassName":"Traversable","edClassTypeArguments":[["t",null]],"edClassMembers":[[{"Ident":"traverse"},{"annotation":[{"start":[51,15],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[51,74]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[51,22],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[51,74]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[51,22],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[51,74]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[51,29],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[51,74]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[51,29],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[51,42]},[]],"constraintClass":[["Control","Applicative"],"Applicative"],"constraintArgs":[{"annotation":[{"start":[51,41],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[51,42]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[51,46],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[51,74]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,46],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[51,74]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,57],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[51,59]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[51,47],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[51,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,47],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[51,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,49],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[51,51]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[51,47],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[51,48]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[51,52],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[51,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,52],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[51,53]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[51,54],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[51,55]},[]],"tag":"TypeVar","contents":"b"}]}]}]},{"annotation":[{"start":[51,60],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[51,74]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,60],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[51,74]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,64],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[51,66]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[51,60],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[51,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,60],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[51,61]},[]],"tag":"TypeVar","contents":"t"},{"annotation":[{"start":[51,62],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[51,63]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[51,67],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[51,74]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,67],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[51,68]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[51,70],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[51,73]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,70],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[51,71]},[]],"tag":"TypeVar","contents":"t"},{"annotation":[{"start":[51,72],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[51,73]},[]],"tag":"TypeVar","contents":"b"}]}]}]}]}]},null]},null]},null]}],[{"Ident":"sequence"},{"annotation":[{"start":[52,15],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[52,62]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[52,22],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[52,62]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[52,27],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[52,62]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[52,27],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[52,40]},[]],"constraintClass":[["Control","Applicative"],"Applicative"],"constraintArgs":[{"annotation":[{"start":[52,39],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[52,40]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[52,44],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[52,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,44],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[52,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,52],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[52,54]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[52,44],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[52,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,44],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[52,45]},[]],"tag":"TypeVar","contents":"t"},{"annotation":[{"start":[52,47],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[52,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,47],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[52,48]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[52,49],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[52,50]},[]],"tag":"TypeVar","contents":"a"}]}]}]},{"annotation":[{"start":[52,55],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[52,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,55],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[52,56]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[52,58],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[52,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,58],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[52,59]},[]],"tag":"TypeVar","contents":"t"},{"annotation":[{"start":[52,60],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[52,61]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]},null]},null]}]],"edClassConstraints":[{"constraintAnn":[{"start":[50,8],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[50,17]},[]],"constraintClass":[["Data","Functor"],"Functor"],"constraintArgs":[{"annotation":[{"start":[50,16],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[50,17]},[]],"tag":"TypeVar","contents":"t"}],"constraintData":null},{"constraintAnn":[{"start":[50,19],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[50,29]},[]],"constraintClass":[["Data","Foldable"],"Foldable"],"constraintArgs":[{"annotation":[{"start":[50,28],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[50,29]},[]],"tag":"TypeVar","contents":"t"}],"constraintData":null}],"edFunctionalDependencies":[]}},{"EDValue":{"edValueName":{"Ident":"traverse"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["t",{"annotation":[{"start":[51,15],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[51,74]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[51,22],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[51,74]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[51,22],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[51,74]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["Data","Traversable"],"Traversable"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"t"}],"constraintData":null},{"annotation":[{"start":[51,29],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[51,74]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[51,29],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[51,42]},[]],"constraintClass":[["Control","Applicative"],"Applicative"],"constraintArgs":[{"annotation":[{"start":[51,41],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[51,42]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[51,46],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[51,74]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,46],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[51,74]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,57],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[51,59]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[51,47],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[51,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,47],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[51,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,49],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[51,51]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[51,47],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[51,48]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[51,52],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[51,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,52],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[51,53]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[51,54],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[51,55]},[]],"tag":"TypeVar","contents":"b"}]}]}]},{"annotation":[{"start":[51,60],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[51,74]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,60],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[51,74]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,64],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[51,66]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[51,60],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[51,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,60],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[51,61]},[]],"tag":"TypeVar","contents":"t"},{"annotation":[{"start":[51,62],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[51,63]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[51,67],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[51,74]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,67],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[51,68]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[51,70],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[51,73]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,70],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[51,71]},[]],"tag":"TypeVar","contents":"t"},{"annotation":[{"start":[51,72],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[51,73]},[]],"tag":"TypeVar","contents":"b"}]}]}]}]}]}]},0]},1]},2]},3]}}},{"EDValue":{"edValueName":{"Ident":"sequence"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["t",{"annotation":[{"start":[52,15],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[52,62]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[52,22],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[52,62]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["Data","Traversable"],"Traversable"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"t"}],"constraintData":null},{"annotation":[{"start":[52,27],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[52,62]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[52,27],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[52,40]},[]],"constraintClass":[["Control","Applicative"],"Applicative"],"constraintArgs":[{"annotation":[{"start":[52,39],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[52,40]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[52,44],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[52,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,44],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[52,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,52],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[52,54]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[52,44],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[52,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,44],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[52,45]},[]],"tag":"TypeVar","contents":"t"},{"annotation":[{"start":[52,47],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[52,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,47],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[52,48]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[52,49],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[52,50]},[]],"tag":"TypeVar","contents":"a"}]}]}]},{"annotation":[{"start":[52,55],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[52,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,55],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[52,56]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[52,58],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[52,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,58],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[52,59]},[]],"tag":"TypeVar","contents":"t"},{"annotation":[{"start":[52,60],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[52,61]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]}]},151]},152]},153]}}},{"EDValue":{"edValueName":{"Ident":"traverseDefault"},"edValueType":{"annotation":[{"start":[56,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[61,13]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[56,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[61,13]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[56,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[61,13]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[56,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[61,13]},[]],"tag":"ForAll","contents":["t",{"annotation":[{"start":[57,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[61,13]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[57,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[57,19]},[]],"constraintClass":[["Data","Traversable"],"Traversable"],"constraintArgs":[{"annotation":[{"start":[57,18],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[57,19]},[]],"tag":"TypeVar","contents":"t"}],"constraintData":null},{"annotation":[{"start":[58,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[61,13]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[58,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[58,19]},[]],"constraintClass":[["Control","Applicative"],"Applicative"],"constraintArgs":[{"annotation":[{"start":[58,18],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[58,19]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[59,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[61,13]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[59,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[61,13]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[60,3],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[60,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[59,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[59,15]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[59,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[59,15]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[59,9],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[59,11]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[59,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[59,8]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[59,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[59,15]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[59,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[59,13]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[59,14],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[59,15]},[]],"tag":"TypeVar","contents":"b"}]}]}]},{"annotation":[{"start":[60,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[61,13]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[60,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[61,13]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[61,3],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[61,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[60,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[60,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[60,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[60,7]},[]],"tag":"TypeVar","contents":"t"},{"annotation":[{"start":[60,8],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[60,9]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[61,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[61,13]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[61,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[61,7]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[61,9],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[61,12]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[61,9],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[61,10]},[]],"tag":"TypeVar","contents":"t"},{"annotation":[{"start":[61,11],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[61,12]},[]],"tag":"TypeVar","contents":"b"}]}]}]}]}]}]},194]},195]},196]},197]}}},{"EDValue":{"edValueName":{"Ident":"sequenceDefault"},"edValueType":{"annotation":[{"start":[66,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[70,13]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[66,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[70,13]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[66,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[70,13]},[]],"tag":"ForAll","contents":["t",{"annotation":[{"start":[67,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[70,13]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[67,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[67,19]},[]],"constraintClass":[["Data","Traversable"],"Traversable"],"constraintArgs":[{"annotation":[{"start":[67,18],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[67,19]},[]],"tag":"TypeVar","contents":"t"}],"constraintData":null},{"annotation":[{"start":[68,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[70,13]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[68,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[68,19]},[]],"constraintClass":[["Control","Applicative"],"Applicative"],"constraintArgs":[{"annotation":[{"start":[68,18],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[68,19]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[69,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[70,13]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[69,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[70,13]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[70,3],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[70,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[69,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[69,13]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[69,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[69,7]},[]],"tag":"TypeVar","contents":"t"},{"annotation":[{"start":[69,9],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[69,12]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[69,9],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[69,10]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[69,11],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[69,12]},[]],"tag":"TypeVar","contents":"a"}]}]}]},{"annotation":[{"start":[70,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[70,13]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[70,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[70,7]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[70,9],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[70,12]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[70,9],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[70,10]},[]],"tag":"TypeVar","contents":"t"},{"annotation":[{"start":[70,11],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[70,12]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]}]},124]},125]},126]}}},{"EDValue":{"edValueName":{"Ident":"for"},"edValueType":{"annotation":[{"start":[134,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[139,13]},[]],"tag":"ForAll","contents":["t",{"annotation":[{"start":[134,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[139,13]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[134,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[139,13]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[134,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[139,13]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[135,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[139,13]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[135,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[135,19]},[]],"constraintClass":[["Control","Applicative"],"Applicative"],"constraintArgs":[{"annotation":[{"start":[135,18],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[135,19]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[136,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[139,13]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[136,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[136,19]},[]],"constraintClass":[["Data","Traversable"],"Traversable"],"constraintArgs":[{"annotation":[{"start":[136,18],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[136,19]},[]],"tag":"TypeVar","contents":"t"}],"constraintData":null},{"annotation":[{"start":[137,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[139,13]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[137,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[139,13]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[138,3],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[138,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[137,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[137,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[137,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[137,7]},[]],"tag":"TypeVar","contents":"t"},{"annotation":[{"start":[137,8],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[137,9]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[138,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[139,13]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[138,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[139,13]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[139,3],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[139,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[138,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[138,15]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[138,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[138,15]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[138,9],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[138,11]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[138,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[138,8]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[138,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[138,15]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[138,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[138,13]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[138,14],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[138,15]},[]],"tag":"TypeVar","contents":"b"}]}]}]},{"annotation":[{"start":[139,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[139,13]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[139,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[139,7]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[139,9],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[139,12]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[139,9],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[139,10]},[]],"tag":"TypeVar","contents":"t"},{"annotation":[{"start":[139,11],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[139,12]},[]],"tag":"TypeVar","contents":"b"}]}]}]}]}]}]},230]},231]},232]},233]}}},{"EDValue":{"edValueName":{"Ident":"scanl"},"edValueType":{"annotation":[{"start":[150,10],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[150,73]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[150,17],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[150,73]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[150,17],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[150,73]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[150,24],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[150,73]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[150,24],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[150,37]},[]],"constraintClass":[["Data","Traversable"],"Traversable"],"constraintArgs":[{"annotation":[{"start":[150,36],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[150,37]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[150,41],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[150,73]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[150,41],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[150,73]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[150,55],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[150,57]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[150,42],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[150,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[150,42],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[150,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[150,44],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[150,46]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[150,42],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[150,43]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[150,47],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[150,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[150,47],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[150,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[150,49],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[150,51]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[150,47],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[150,48]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[150,52],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[150,53]},[]],"tag":"TypeVar","contents":"b"}]}]}]},{"annotation":[{"start":[150,58],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[150,73]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[150,58],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[150,73]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[150,60],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[150,62]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[150,58],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[150,59]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[150,63],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[150,73]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[150,63],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[150,73]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[150,67],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[150,69]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[150,63],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[150,66]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[150,63],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[150,64]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[150,65],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[150,66]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[150,70],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[150,73]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[150,70],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[150,71]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[150,72],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[150,73]},[]],"tag":"TypeVar","contents":"b"}]}]}]}]}]},224]},225]},226]}}},{"EDValue":{"edValueName":{"Ident":"scanr"},"edValueType":{"annotation":[{"start":[175,10],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[175,73]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[175,17],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[175,73]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[175,17],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[175,73]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[175,24],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[175,73]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[175,24],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[175,37]},[]],"constraintClass":[["Data","Traversable"],"Traversable"],"constraintArgs":[{"annotation":[{"start":[175,36],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[175,37]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[175,41],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[175,73]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[175,41],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[175,73]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[175,55],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[175,57]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[175,42],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[175,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[175,42],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[175,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[175,44],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[175,46]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[175,42],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[175,43]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[175,47],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[175,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[175,47],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[175,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[175,49],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[175,51]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[175,47],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[175,48]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[175,52],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[175,53]},[]],"tag":"TypeVar","contents":"b"}]}]}]},{"annotation":[{"start":[175,58],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[175,73]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[175,58],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[175,73]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[175,60],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[175,62]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[175,58],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[175,59]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[175,63],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[175,73]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[175,63],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[175,73]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[175,67],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[175,69]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[175,63],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[175,66]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[175,63],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[175,64]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[175,65],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[175,66]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[175,70],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[175,73]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[175,70],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[175,71]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[175,72],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[175,73]},[]],"tag":"TypeVar","contents":"b"}]}]}]}]}]},210]},211]},212]}}},{"EDValue":{"edValueName":{"Ident":"mapAccumL"},"edValueType":{"annotation":[{"start":[159,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[164,19]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[159,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[164,19]},[]],"tag":"ForAll","contents":["s",{"annotation":[{"start":[159,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[164,19]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[159,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[164,19]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[160,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[164,19]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[160,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[160,19]},[]],"constraintClass":[["Data","Traversable"],"Traversable"],"constraintArgs":[{"annotation":[{"start":[160,18],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[160,19]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[161,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[164,19]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[161,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[164,19]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[162,3],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[162,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[161,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[161,26]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[161,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[161,26]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[161,9],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[161,11]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[161,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[161,8]},[]],"tag":"TypeVar","contents":"s"}]},{"annotation":[{"start":[161,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[161,26]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[161,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[161,26]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[161,14],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[161,16]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[161,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[161,13]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[5,18],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum.purs","end":[5,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[5,18],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum.purs","end":[5,19]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[5,20],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum.purs","end":[5,30]},[]],"tag":"RCons","contents":["accum",{"annotation":[{"start":[161,23],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[161,24]},[]],"tag":"TypeVar","contents":"s"},{"annotation":[{"start":[5,32],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum.purs","end":[5,42]},[]],"tag":"RCons","contents":["value",{"annotation":[{"start":[161,25],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[161,26]},[]],"tag":"TypeVar","contents":"b"},{"annotation":[{"start":[5,43],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum.purs","end":[5,44]},[]],"tag":"REmpty"}]}]}]}]}]}]},{"annotation":[{"start":[162,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[164,19]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[162,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[164,19]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[163,3],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[163,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[162,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[162,7]},[]],"tag":"TypeVar","contents":"s"}]},{"annotation":[{"start":[163,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[164,19]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[163,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[164,19]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[164,3],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[164,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[163,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[163,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[163,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[163,7]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[163,8],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[163,9]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[5,18],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum.purs","end":[5,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[5,18],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum.purs","end":[5,19]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[5,20],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum.purs","end":[5,30]},[]],"tag":"RCons","contents":["accum",{"annotation":[{"start":[164,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[164,13]},[]],"tag":"TypeVar","contents":"s"},{"annotation":[{"start":[5,32],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum.purs","end":[5,42]},[]],"tag":"RCons","contents":["value",{"annotation":[{"start":[164,15],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[164,18]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[164,15],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[164,16]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[164,17],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[164,18]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[5,43],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum.purs","end":[5,44]},[]],"tag":"REmpty"}]}]}]}]}]}]}]},216]},217]},218]},219]}}},{"EDValue":{"edValueName":{"Ident":"mapAccumR"},"edValueType":{"annotation":[{"start":[184,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[189,19]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[184,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[189,19]},[]],"tag":"ForAll","contents":["s",{"annotation":[{"start":[184,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[189,19]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[184,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[189,19]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[185,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[189,19]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[185,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[185,19]},[]],"constraintClass":[["Data","Traversable"],"Traversable"],"constraintArgs":[{"annotation":[{"start":[185,18],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[185,19]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[186,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[189,19]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[186,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[189,19]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[187,3],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[187,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[186,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[186,26]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[186,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[186,26]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[186,9],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[186,11]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[186,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[186,8]},[]],"tag":"TypeVar","contents":"s"}]},{"annotation":[{"start":[186,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[186,26]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[186,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[186,26]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[186,14],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[186,16]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[186,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[186,13]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[5,18],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum.purs","end":[5,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[5,18],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum.purs","end":[5,19]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[5,20],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum.purs","end":[5,30]},[]],"tag":"RCons","contents":["accum",{"annotation":[{"start":[186,23],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[186,24]},[]],"tag":"TypeVar","contents":"s"},{"annotation":[{"start":[5,32],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum.purs","end":[5,42]},[]],"tag":"RCons","contents":["value",{"annotation":[{"start":[186,25],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[186,26]},[]],"tag":"TypeVar","contents":"b"},{"annotation":[{"start":[5,43],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum.purs","end":[5,44]},[]],"tag":"REmpty"}]}]}]}]}]}]},{"annotation":[{"start":[187,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[189,19]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[187,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[189,19]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[188,3],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[188,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[187,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[187,7]},[]],"tag":"TypeVar","contents":"s"}]},{"annotation":[{"start":[188,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[189,19]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[188,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[189,19]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[189,3],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[189,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[188,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[188,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[188,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[188,7]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[188,8],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[188,9]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[5,18],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum.purs","end":[5,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[5,18],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum.purs","end":[5,19]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[5,20],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum.purs","end":[5,30]},[]],"tag":"RCons","contents":["accum",{"annotation":[{"start":[189,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[189,13]},[]],"tag":"TypeVar","contents":"s"},{"annotation":[{"start":[5,32],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum.purs","end":[5,42]},[]],"tag":"RCons","contents":["value",{"annotation":[{"start":[189,15],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[189,18]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[189,15],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[189,16]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[189,17],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[189,18]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[5,43],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum.purs","end":[5,44]},[]],"tag":"REmpty"}]}]}]}]}]}]}]},202]},203]},204]},205]}}},{"EDInstance":{"edInstanceClassName":[["Data","Traversable"],"Traversable"],"edInstanceName":{"Ident":"traversableArray"},"edInstanceTypes":[{"annotation":[{"start":[73,42],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[73,47]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Traversable"],{"Ident":"traversableArray"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Traversable"],"Traversable"],"edInstanceName":{"Ident":"traversableMaybe"},"edInstanceTypes":[{"annotation":[{"start":[86,42],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[86,47]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Traversable"],{"Ident":"traversableMaybe"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Traversable"],"Traversable"],"edInstanceName":{"Ident":"traversableFirst"},"edInstanceTypes":[{"annotation":[{"start":[92,42],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[92,47]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe","First"],"First"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Traversable"],{"Ident":"traversableFirst"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Traversable"],"Traversable"],"edInstanceName":{"Ident":"traversableLast"},"edInstanceTypes":[{"annotation":[{"start":[96,41],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[96,45]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe","Last"],"Last"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Traversable"],{"Ident":"traversableLast"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Traversable"],"Traversable"],"edInstanceName":{"Ident":"traversableAdditive"},"edInstanceTypes":[{"annotation":[{"start":[100,45],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[100,53]},[]],"tag":"TypeConstructor","contents":[["Data","Monoid","Additive"],"Additive"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Traversable"],{"Ident":"traversableAdditive"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Traversable"],"Traversable"],"edInstanceName":{"Ident":"traversableDual"},"edInstanceTypes":[{"annotation":[{"start":[104,41],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[104,45]},[]],"tag":"TypeConstructor","contents":[["Data","Monoid","Dual"],"Dual"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Traversable"],{"Ident":"traversableDual"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Traversable"],"Traversable"],"edInstanceName":{"Ident":"traversableConj"},"edInstanceTypes":[{"annotation":[{"start":[108,41],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[108,45]},[]],"tag":"TypeConstructor","contents":[["Data","Monoid","Conj"],"Conj"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Traversable"],{"Ident":"traversableConj"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Traversable"],"Traversable"],"edInstanceName":{"Ident":"traversableDisj"},"edInstanceTypes":[{"annotation":[{"start":[112,41],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[112,45]},[]],"tag":"TypeConstructor","contents":[["Data","Monoid","Disj"],"Disj"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Traversable"],{"Ident":"traversableDisj"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Traversable"],"Traversable"],"edInstanceName":{"Ident":"traversableMultiplicative"},"edInstanceTypes":[{"annotation":[{"start":[116,51],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[116,65]},[]],"tag":"TypeConstructor","contents":[["Data","Monoid","Multiplicative"],"Multiplicative"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Traversable"],{"Ident":"traversableMultiplicative"}]],"edInstanceChainIndex":0}}],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable.purs","end":[190,71]}}
diff --git a/tests/purs/publish/basic-example/output/Data.TraversableWithIndex/docs.json b/tests/purs/publish/basic-example/output/Data.TraversableWithIndex/docs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.TraversableWithIndex/docs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"reExports":[],"name":"Data.TraversableWithIndex","comments":null,"declarations":[{"children":[{"comments":null,"title":"traverseWithIndex","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Applicative"],"Applicative"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"i"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"t"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"t"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}}]}]}]}]},null]},null]},null]}},"sourceSpan":{"start":[47,3],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[47,88]}},{"comments":null,"title":"traversableWithIndexArray","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","TraversableWithIndex"],"TraversableWithIndex"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]}]}},"sourceSpan":{"start":[59,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[60,47]}},{"comments":null,"title":"traversableWithIndexMaybe","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","TraversableWithIndex"],"TraversableWithIndex"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]}]}},"sourceSpan":{"start":[62,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[63,42]}},{"comments":null,"title":"traversableWithIndexFirst","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","TraversableWithIndex"],"TraversableWithIndex"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe","First"],"First"]}]}},"sourceSpan":{"start":[65,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[66,42]}},{"comments":null,"title":"traversableWithIndexLast","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","TraversableWithIndex"],"TraversableWithIndex"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe","Last"],"Last"]}]}},"sourceSpan":{"start":[68,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[69,42]}},{"comments":null,"title":"traversableWithIndexAdditive","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","TraversableWithIndex"],"TraversableWithIndex"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Additive"],"Additive"]}]}},"sourceSpan":{"start":[71,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[72,42]}},{"comments":null,"title":"traversableWithIndexDual","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","TraversableWithIndex"],"TraversableWithIndex"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Dual"],"Dual"]}]}},"sourceSpan":{"start":[74,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[75,42]}},{"comments":null,"title":"traversableWithIndexConj","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","TraversableWithIndex"],"TraversableWithIndex"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Conj"],"Conj"]}]}},"sourceSpan":{"start":[77,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[78,42]}},{"comments":null,"title":"traversableWithIndexDisj","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","TraversableWithIndex"],"TraversableWithIndex"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Disj"],"Disj"]}]}},"sourceSpan":{"start":[80,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[81,42]}},{"comments":null,"title":"traversableWithIndexMultiplicative","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","TraversableWithIndex"],"TraversableWithIndex"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid","Multiplicative"],"Multiplicative"]}]}},"sourceSpan":{"start":[83,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[84,42]}}],"comments":"A `Traversable` with an additional index.  \nA `TraversableWithIndex` instance must be compatible with its\n`Traversable` instance\n```purescript\ntraverse f = traverseWithIndex (const f)\n```\nwith its `FoldableWithIndex` instance\n```\nfoldMapWithIndex f = unwrap <<< traverseWithIndex (\\i -> Const <<< f i)\n```\nand with its `FunctorWithIndex` instance\n```\nmapWithIndex f = unwrap <<< traverseWithIndex (\\i -> Identity <<< f i)\n```\n\nA default implementation is provided by `traverseWithIndexDefault`.\n","title":"TraversableWithIndex","info":{"fundeps":[[["t"],["i"]]],"arguments":[["i",null],["t",null]],"declType":"typeClass","superclasses":[{"constraintAnn":[],"constraintClass":[["Data","FunctorWithIndex"],"FunctorWithIndex"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"i"},{"annotation":[],"tag":"TypeVar","contents":"t"}],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","FoldableWithIndex"],"FoldableWithIndex"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"i"},{"annotation":[],"tag":"TypeVar","contents":"t"}],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","Traversable"],"Traversable"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"t"}],"constraintData":null}]},"sourceSpan":{"start":[46,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[47,88]}},{"children":[],"comments":"A default implementation of `traverseWithIndex` using `sequence` and `mapWithIndex`.\n","title":"traverseWithIndexDefault","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["t",{"annotation":[],"tag":"ForAll","contents":["i",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","TraversableWithIndex"],"TraversableWithIndex"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"i"},{"annotation":[],"tag":"TypeVar","contents":"t"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Applicative"],"Applicative"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"i"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"t"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"t"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}}]}]}]}]}]},null]},null]},null]},null]},null]}},"sourceSpan":{"start":[50,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[56,13]}},{"children":[],"comments":"A version of `traverseWithIndex` with its arguments flipped.\n\n\nThis can be useful when running an action written using do notation\nfor every element in a data structure:\n\nFor example:\n\n```purescript\nfor [1, 2, 3] \\i x -> do\n  logShow i\n  pure (x * x)\n```\n","title":"forWithIndex","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["t",{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["i",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Applicative"],"Applicative"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","TraversableWithIndex"],"TraversableWithIndex"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"i"},{"annotation":[],"tag":"TypeVar","contents":"t"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"t"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"i"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"t"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}}]}]}]}]}]},null]},null]},null]},null]},null]}},"sourceSpan":{"start":[99,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[105,13]}},{"children":[],"comments":"Fold a data structure from the left with access to the indices, keeping\nall intermediate results instead of only the final result. Note that the\ninitial value does not appear in the result (unlike Haskell's\n`Prelude.scanl`).\n\n```purescript\nscanlWithIndex (\\i y x -> i + y + x) 0 [1, 2, 3] = [1, 4, 9]\n```\n","title":"scanlWithIndex","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["i",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","TraversableWithIndex"],"TraversableWithIndex"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"i"},{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"i"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}]}]}]},null]},null]},null]},null]}},"sourceSpan":{"start":[116,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[122,9]}},{"children":[],"comments":"Fold a data structure from the left with access to the indices, keeping\nall intermediate results instead of only the final result.\n\nUnlike `scanlWithIndex`, `mapAccumLWithIndex` allows the type of accumulator to differ\nfrom the element type of the final data structure.\n","title":"mapAccumLWithIndex","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["s",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["i",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","TraversableWithIndex"],"TraversableWithIndex"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"i"},{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"i"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"s"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Traversable","Accum"],"Accum"]},{"annotation":[],"tag":"TypeVar","contents":"s"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"s"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Traversable","Accum"],"Accum"]},{"annotation":[],"tag":"TypeVar","contents":"s"}]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}}]}]}]}]}]},null]},null]},null]},null]},null]}},"sourceSpan":{"start":[131,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[137,19]}},{"children":[],"comments":"Fold a data structure from the right with access to the indices, keeping\nall intermediate results instead of only the final result. Note that the\ninitial value does not appear in the result (unlike Haskell's `Prelude.scanr`).\n\n```purescript\nscanrWithIndex (\\i x y -> i + x + y) 0 [1, 2, 3] = [9, 8, 5]\n```\n","title":"scanrWithIndex","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["i",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","TraversableWithIndex"],"TraversableWithIndex"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"i"},{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"i"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}]}]}]},null]},null]},null]},null]}},"sourceSpan":{"start":[147,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[153,9]}},{"children":[],"comments":"Fold a data structure from the right with access to the indices, keeping\nall intermediate results instead of only the final result.\n\nUnlike `scanrWithIndex`, `imapAccumRWithIndex` allows the type of accumulator to differ\nfrom the element type of the final data structure.\n","title":"mapAccumRWithIndex","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["s",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["i",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","TraversableWithIndex"],"TraversableWithIndex"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"i"},{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"i"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"s"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Traversable","Accum"],"Accum"]},{"annotation":[],"tag":"TypeVar","contents":"s"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"s"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Traversable","Accum"],"Accum"]},{"annotation":[],"tag":"TypeVar","contents":"s"}]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}}]}]}]}]}]},null]},null]},null]},null]},null]}},"sourceSpan":{"start":[162,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[168,19]}},{"children":[],"comments":"A default implementation of `traverse` in terms of `traverseWithIndex`\n","title":"traverseDefault","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["t",{"annotation":[],"tag":"ForAll","contents":["i",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","TraversableWithIndex"],"TraversableWithIndex"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"i"},{"annotation":[],"tag":"TypeVar","contents":"t"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Applicative"],"Applicative"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"t"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"t"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}}]}]}]}]}]},null]},null]},null]},null]},null]}},"sourceSpan":{"start":[172,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[176,34]}}]}
diff --git a/tests/purs/publish/basic-example/output/Data.TraversableWithIndex/externs.json b/tests/purs/publish/basic-example/output/Data.TraversableWithIndex/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.TraversableWithIndex/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Data","TraversableWithIndex"],"efExports":[{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[177,48]},{"exportSourceImportedFrom":["Data","Traversable","Accum"],"exportSourceDefinedIn":["Data","Traversable","Accum"]},{"TypeRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[177,48]},"Accum",[]]}]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[177,48]},"TraversableWithIndex"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[177,48]},{"Ident":"traverseWithIndex"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[177,48]},{"Ident":"traverseWithIndexDefault"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[177,48]},{"Ident":"forWithIndex"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[177,48]},{"Ident":"scanlWithIndex"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[177,48]},{"Ident":"mapAccumLWithIndex"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[177,48]},{"Ident":"scanrWithIndex"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[177,48]},{"Ident":"mapAccumRWithIndex"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[177,48]},{"Ident":"traverseDefault"}]},{"ModuleRef":[{"start":[10,5],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[10,34]},["Data","Traversable","Accum"]]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"traversableWithIndexArray"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"traversableWithIndexMaybe"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"traversableWithIndexFirst"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"traversableWithIndexLast"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"traversableWithIndexAdditive"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"traversableWithIndexDual"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"traversableWithIndexConj"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"traversableWithIndexDisj"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"traversableWithIndexMultiplicative"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Prelude"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Data","FoldableWithIndex"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[15,32],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[15,55]},"FoldableWithIndex"]}]},"eiImportedAs":null},{"eiModule":["Data","FunctorWithIndex"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[16,31],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[16,53]},"FunctorWithIndex"]},{"ValueRef":[{"start":[16,55],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[16,67]},{"Ident":"mapWithIndex"}]}]},"eiImportedAs":null},{"eiModule":["Data","Maybe"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[17,20],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[17,25]},"Maybe",[]]}]},"eiImportedAs":null},{"eiModule":["Data","Maybe","First"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[18,26],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[18,31]},"First",[]]}]},"eiImportedAs":null},{"eiModule":["Data","Maybe","Last"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[19,25],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[19,29]},"Last",[]]}]},"eiImportedAs":null},{"eiModule":["Data","Monoid","Additive"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[20,30],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[20,38]},"Additive",[]]}]},"eiImportedAs":null},{"eiModule":["Data","Monoid","Conj"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[21,26],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[21,30]},"Conj",[]]}]},"eiImportedAs":null},{"eiModule":["Data","Monoid","Disj"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[22,26],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[22,30]},"Disj",[]]}]},"eiImportedAs":null},{"eiModule":["Data","Monoid","Dual"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[23,26],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[23,30]},"Dual",[]]}]},"eiImportedAs":null},{"eiModule":["Data","Monoid","Multiplicative"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[24,36],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[24,50]},"Multiplicative",[]]}]},"eiImportedAs":null},{"eiModule":["Data","Traversable"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[25,26],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[25,43]},"Traversable"]},{"ValueRef":[{"start":[25,45],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[25,53]},{"Ident":"sequence"}]},{"ValueRef":[{"start":[25,55],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[25,63]},{"Ident":"traverse"}]}]},"eiImportedAs":null},{"eiModule":["Data","Traversable","Accum"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[26,32],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[26,37]},"Accum",[]]}]},"eiImportedAs":null},{"eiModule":["Data","Traversable","Accum","Internal"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[27,41],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[27,51]},"StateL",null]},{"TypeRef":[{"start":[27,53],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[27,63]},"StateR",null]},{"ValueRef":[{"start":[27,65],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[27,71]},{"Ident":"stateL"}]},{"ValueRef":[{"start":[27,73],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[27,79]},{"Ident":"stateR"}]}]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDType":{"edTypeName":"TraversableWithIndex","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[47,58],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[47,60]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[47,74],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[47,77]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[47,63],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[47,65]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[47,78],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[47,80]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"TraversableWithIndex","edTypeSynonymArguments":[["i",null],["t",null]],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["traverseWithIndex",{"annotation":[{"start":[47,24],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[47,88]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[47,31],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[47,88]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[47,31],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[47,88]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[47,38],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[47,88]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[47,38],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[47,51]},[]],"constraintClass":[["Control","Applicative"],"Applicative"],"constraintArgs":[{"annotation":[{"start":[47,50],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[47,51]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[47,55],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[47,88]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[47,55],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[47,88]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[47,71],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[47,73]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[47,56],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[47,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[47,56],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[47,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[47,58],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[47,60]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[47,56],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[47,57]},[]],"tag":"TypeVar","contents":"i"}]},{"annotation":[{"start":[47,61],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[47,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[47,61],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[47,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[47,63],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[47,65]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[47,61],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[47,62]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[47,66],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[47,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[47,66],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[47,67]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[47,68],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[47,69]},[]],"tag":"TypeVar","contents":"b"}]}]}]}]},{"annotation":[{"start":[47,74],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[47,88]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[47,74],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[47,88]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[47,78],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[47,80]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[47,74],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[47,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[47,74],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[47,75]},[]],"tag":"TypeVar","contents":"t"},{"annotation":[{"start":[47,76],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[47,77]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[47,81],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[47,88]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[47,81],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[47,82]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[47,84],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[47,87]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[47,84],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[47,85]},[]],"tag":"TypeVar","contents":"t"},{"annotation":[{"start":[47,86],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[47,87]},[]],"tag":"TypeVar","contents":"b"}]}]}]}]}]},null]},null]},null]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["FunctorWithIndex0",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","FunctorWithIndex"],"FunctorWithIndex"]},{"annotation":[{"start":[46,25],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[46,26]},[]],"tag":"TypeVar","contents":"i"}]},{"annotation":[{"start":[46,27],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[46,28]},[]],"tag":"TypeVar","contents":"t"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["FoldableWithIndex1",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","FoldableWithIndex"],"FoldableWithIndex"]},{"annotation":[{"start":[46,48],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[46,49]},[]],"tag":"TypeVar","contents":"i"}]},{"annotation":[{"start":[46,50],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[46,51]},[]],"tag":"TypeVar","contents":"t"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["Traversable2",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Traversable"],"Traversable"]},{"annotation":[{"start":[46,65],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[46,66]},[]],"tag":"TypeVar","contents":"t"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]}]}]}]}}},{"EDClass":{"edClassName":"TraversableWithIndex","edClassTypeArguments":[["i",null],["t",null]],"edClassMembers":[[{"Ident":"traverseWithIndex"},{"annotation":[{"start":[47,24],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[47,88]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[47,31],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[47,88]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[47,31],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[47,88]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[47,38],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[47,88]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[47,38],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[47,51]},[]],"constraintClass":[["Control","Applicative"],"Applicative"],"constraintArgs":[{"annotation":[{"start":[47,50],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[47,51]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[47,55],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[47,88]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[47,55],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[47,88]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[47,71],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[47,73]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[47,56],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[47,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[47,56],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[47,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[47,58],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[47,60]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[47,56],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[47,57]},[]],"tag":"TypeVar","contents":"i"}]},{"annotation":[{"start":[47,61],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[47,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[47,61],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[47,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[47,63],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[47,65]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[47,61],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[47,62]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[47,66],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[47,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[47,66],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[47,67]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[47,68],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[47,69]},[]],"tag":"TypeVar","contents":"b"}]}]}]}]},{"annotation":[{"start":[47,74],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[47,88]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[47,74],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[47,88]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[47,78],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[47,80]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[47,74],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[47,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[47,74],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[47,75]},[]],"tag":"TypeVar","contents":"t"},{"annotation":[{"start":[47,76],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[47,77]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[47,81],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[47,88]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[47,81],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[47,82]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[47,84],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[47,87]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[47,84],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[47,85]},[]],"tag":"TypeVar","contents":"t"},{"annotation":[{"start":[47,86],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[47,87]},[]],"tag":"TypeVar","contents":"b"}]}]}]}]}]},null]},null]},null]}]],"edClassConstraints":[{"constraintAnn":[{"start":[46,8],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[46,28]},[]],"constraintClass":[["Data","FunctorWithIndex"],"FunctorWithIndex"],"constraintArgs":[{"annotation":[{"start":[46,25],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[46,26]},[]],"tag":"TypeVar","contents":"i"},{"annotation":[{"start":[46,27],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[46,28]},[]],"tag":"TypeVar","contents":"t"}],"constraintData":null},{"constraintAnn":[{"start":[46,30],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[46,51]},[]],"constraintClass":[["Data","FoldableWithIndex"],"FoldableWithIndex"],"constraintArgs":[{"annotation":[{"start":[46,48],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[46,49]},[]],"tag":"TypeVar","contents":"i"},{"annotation":[{"start":[46,50],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[46,51]},[]],"tag":"TypeVar","contents":"t"}],"constraintData":null},{"constraintAnn":[{"start":[46,53],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[46,66]},[]],"constraintClass":[["Data","Traversable"],"Traversable"],"constraintArgs":[{"annotation":[{"start":[46,65],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[46,66]},[]],"tag":"TypeVar","contents":"t"}],"constraintData":null}],"edFunctionalDependencies":[{"determiners":[1],"determined":[0]}]}},{"EDValue":{"edValueName":{"Ident":"traverseWithIndex"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["i",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["t",{"annotation":[{"start":[47,24],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[47,88]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[47,31],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[47,88]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[47,31],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[47,88]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["Data","TraversableWithIndex"],"TraversableWithIndex"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"i"},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"t"}],"constraintData":null},{"annotation":[{"start":[47,38],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[47,88]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[47,38],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[47,51]},[]],"constraintClass":[["Control","Applicative"],"Applicative"],"constraintArgs":[{"annotation":[{"start":[47,50],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[47,51]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[47,55],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[47,88]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[47,55],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[47,88]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[47,71],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[47,73]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[47,56],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[47,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[47,56],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[47,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[47,58],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[47,60]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[47,56],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[47,57]},[]],"tag":"TypeVar","contents":"i"}]},{"annotation":[{"start":[47,61],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[47,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[47,61],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[47,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[47,63],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[47,65]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[47,61],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[47,62]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[47,66],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[47,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[47,66],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[47,67]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[47,68],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[47,69]},[]],"tag":"TypeVar","contents":"b"}]}]}]}]},{"annotation":[{"start":[47,74],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[47,88]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[47,74],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[47,88]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[47,78],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[47,80]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[47,74],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[47,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[47,74],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[47,75]},[]],"tag":"TypeVar","contents":"t"},{"annotation":[{"start":[47,76],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[47,77]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[47,81],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[47,88]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[47,81],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[47,82]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[47,84],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[47,87]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[47,84],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[47,85]},[]],"tag":"TypeVar","contents":"t"},{"annotation":[{"start":[47,86],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[47,87]},[]],"tag":"TypeVar","contents":"b"}]}]}]}]}]}]},10]},11]},12]},13]},14]}}},{"EDValue":{"edValueName":{"Ident":"traverseWithIndexDefault"},"edValueType":{"annotation":[{"start":[51,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[56,13]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[51,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[56,13]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[51,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[56,13]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[51,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[56,13]},[]],"tag":"ForAll","contents":["t",{"annotation":[{"start":[51,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[56,13]},[]],"tag":"ForAll","contents":["i",{"annotation":[{"start":[52,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[56,13]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[52,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[52,30]},[]],"constraintClass":[["Data","TraversableWithIndex"],"TraversableWithIndex"],"constraintArgs":[{"annotation":[{"start":[52,27],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[52,28]},[]],"tag":"TypeVar","contents":"i"},{"annotation":[{"start":[52,29],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[52,30]},[]],"tag":"TypeVar","contents":"t"}],"constraintData":null},{"annotation":[{"start":[53,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[56,13]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[53,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[53,19]},[]],"constraintClass":[["Control","Applicative"],"Applicative"],"constraintArgs":[{"annotation":[{"start":[53,18],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[53,19]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[54,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[56,13]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[54,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[56,13]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,3],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[55,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[54,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[54,20]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[54,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[54,20]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[54,9],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[54,11]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[54,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[54,8]},[]],"tag":"TypeVar","contents":"i"}]},{"annotation":[{"start":[54,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[54,20]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[54,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[54,20]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[54,14],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[54,16]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[54,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[54,13]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[54,17],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[54,20]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[54,17],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[54,18]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[54,19],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[54,20]},[]],"tag":"TypeVar","contents":"b"}]}]}]}]},{"annotation":[{"start":[55,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[56,13]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[56,13]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[56,3],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[56,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[55,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[55,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[55,7]},[]],"tag":"TypeVar","contents":"t"},{"annotation":[{"start":[55,8],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[55,9]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[56,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[56,13]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[56,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[56,7]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[56,9],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[56,12]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[56,9],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[56,10]},[]],"tag":"TypeVar","contents":"t"},{"annotation":[{"start":[56,11],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[56,12]},[]],"tag":"TypeVar","contents":"b"}]}]}]}]}]}]},0]},1]},2]},3]},4]}}},{"EDValue":{"edValueName":{"Ident":"forWithIndex"},"edValueType":{"annotation":[{"start":[100,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[105,13]},[]],"tag":"ForAll","contents":["t",{"annotation":[{"start":[100,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[105,13]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[100,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[105,13]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[100,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[105,13]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[100,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[105,13]},[]],"tag":"ForAll","contents":["i",{"annotation":[{"start":[101,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[105,13]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[101,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[101,19]},[]],"constraintClass":[["Control","Applicative"],"Applicative"],"constraintArgs":[{"annotation":[{"start":[101,18],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[101,19]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[102,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[105,13]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[102,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[102,30]},[]],"constraintClass":[["Data","TraversableWithIndex"],"TraversableWithIndex"],"constraintArgs":[{"annotation":[{"start":[102,27],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[102,28]},[]],"tag":"TypeVar","contents":"i"},{"annotation":[{"start":[102,29],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[102,30]},[]],"tag":"TypeVar","contents":"t"}],"constraintData":null},{"annotation":[{"start":[103,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[105,13]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[103,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[105,13]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[104,3],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[104,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[103,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[103,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[103,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[103,7]},[]],"tag":"TypeVar","contents":"t"},{"annotation":[{"start":[103,8],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[103,9]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[104,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[105,13]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[104,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[105,13]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[105,3],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[105,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[104,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[104,20]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[104,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[104,20]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[104,9],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[104,11]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[104,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[104,8]},[]],"tag":"TypeVar","contents":"i"}]},{"annotation":[{"start":[104,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[104,20]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[104,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[104,20]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[104,14],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[104,16]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[104,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[104,13]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[104,17],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[104,20]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[104,17],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[104,18]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[104,19],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[104,20]},[]],"tag":"TypeVar","contents":"b"}]}]}]}]},{"annotation":[{"start":[105,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[105,13]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[105,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[105,7]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[105,9],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[105,12]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[105,9],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[105,10]},[]],"tag":"TypeVar","contents":"t"},{"annotation":[{"start":[105,11],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[105,12]},[]],"tag":"TypeVar","contents":"b"}]}]}]}]}]}]},376]},377]},378]},379]},380]}}},{"EDValue":{"edValueName":{"Ident":"scanlWithIndex"},"edValueType":{"annotation":[{"start":[117,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[122,9]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[117,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[122,9]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[117,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[122,9]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[117,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[122,9]},[]],"tag":"ForAll","contents":["i",{"annotation":[{"start":[118,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[122,9]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[118,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[118,30]},[]],"constraintClass":[["Data","TraversableWithIndex"],"TraversableWithIndex"],"constraintArgs":[{"annotation":[{"start":[118,27],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[118,28]},[]],"tag":"TypeVar","contents":"i"},{"annotation":[{"start":[118,29],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[118,30]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[119,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[122,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[119,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[122,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[120,3],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[120,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[119,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[119,23]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[119,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[119,23]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[119,9],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[119,11]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[119,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[119,8]},[]],"tag":"TypeVar","contents":"i"}]},{"annotation":[{"start":[119,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[119,23]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[119,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[119,23]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[119,14],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[119,16]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[119,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[119,13]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[119,17],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[119,23]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[119,17],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[119,23]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[119,19],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[119,21]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[119,17],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[119,18]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[119,22],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[119,23]},[]],"tag":"TypeVar","contents":"b"}]}]}]}]},{"annotation":[{"start":[120,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[122,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[120,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[122,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[121,3],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[121,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[120,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[120,7]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[121,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[122,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[121,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[122,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[122,3],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[122,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[121,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[121,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[121,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[121,7]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[121,8],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[121,9]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[122,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[122,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[122,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[122,7]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[122,8],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[122,9]},[]],"tag":"TypeVar","contents":"b"}]}]}]}]}]},368]},369]},370]},371]}}},{"EDValue":{"edValueName":{"Ident":"mapAccumLWithIndex"},"edValueType":{"annotation":[{"start":[132,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[137,19]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[132,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[137,19]},[]],"tag":"ForAll","contents":["s",{"annotation":[{"start":[132,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[137,19]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[132,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[137,19]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[132,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[137,19]},[]],"tag":"ForAll","contents":["i",{"annotation":[{"start":[133,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[137,19]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[133,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[133,30]},[]],"constraintClass":[["Data","TraversableWithIndex"],"TraversableWithIndex"],"constraintArgs":[{"annotation":[{"start":[133,27],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[133,28]},[]],"tag":"TypeVar","contents":"i"},{"annotation":[{"start":[133,29],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[133,30]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[134,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[137,19]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[134,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[137,19]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[135,3],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[135,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[134,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[134,31]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[134,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[134,31]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[134,9],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[134,11]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[134,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[134,8]},[]],"tag":"TypeVar","contents":"i"}]},{"annotation":[{"start":[134,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[134,31]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[134,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[134,31]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[134,14],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[134,16]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[134,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[134,13]},[]],"tag":"TypeVar","contents":"s"}]},{"annotation":[{"start":[134,17],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[134,31]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[134,17],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[134,31]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[134,19],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[134,21]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[134,17],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[134,18]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[5,18],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum.purs","end":[5,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[5,18],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum.purs","end":[5,19]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[5,20],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum.purs","end":[5,30]},[]],"tag":"RCons","contents":["accum",{"annotation":[{"start":[134,28],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[134,29]},[]],"tag":"TypeVar","contents":"s"},{"annotation":[{"start":[5,32],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum.purs","end":[5,42]},[]],"tag":"RCons","contents":["value",{"annotation":[{"start":[134,30],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[134,31]},[]],"tag":"TypeVar","contents":"b"},{"annotation":[{"start":[5,43],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum.purs","end":[5,44]},[]],"tag":"REmpty"}]}]}]}]}]}]}]},{"annotation":[{"start":[135,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[137,19]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[135,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[137,19]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[136,3],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[136,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[135,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[135,7]},[]],"tag":"TypeVar","contents":"s"}]},{"annotation":[{"start":[136,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[137,19]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[136,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[137,19]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[137,3],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[137,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[136,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[136,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[136,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[136,7]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[136,8],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[136,9]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[5,18],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum.purs","end":[5,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[5,18],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum.purs","end":[5,19]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[5,20],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum.purs","end":[5,30]},[]],"tag":"RCons","contents":["accum",{"annotation":[{"start":[137,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[137,13]},[]],"tag":"TypeVar","contents":"s"},{"annotation":[{"start":[5,32],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum.purs","end":[5,42]},[]],"tag":"RCons","contents":["value",{"annotation":[{"start":[137,15],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[137,18]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[137,15],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[137,16]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[137,17],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[137,18]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[5,43],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum.purs","end":[5,44]},[]],"tag":"REmpty"}]}]}]}]}]}]}]},358]},359]},360]},361]},362]}}},{"EDValue":{"edValueName":{"Ident":"scanrWithIndex"},"edValueType":{"annotation":[{"start":[148,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[153,9]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[148,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[153,9]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[148,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[153,9]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[148,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[153,9]},[]],"tag":"ForAll","contents":["i",{"annotation":[{"start":[149,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[153,9]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[149,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[149,30]},[]],"constraintClass":[["Data","TraversableWithIndex"],"TraversableWithIndex"],"constraintArgs":[{"annotation":[{"start":[149,27],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[149,28]},[]],"tag":"TypeVar","contents":"i"},{"annotation":[{"start":[149,29],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[149,30]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[150,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[153,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[150,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[153,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[151,3],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[151,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[150,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[150,23]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[150,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[150,23]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[150,9],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[150,11]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[150,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[150,8]},[]],"tag":"TypeVar","contents":"i"}]},{"annotation":[{"start":[150,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[150,23]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[150,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[150,23]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[150,14],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[150,16]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[150,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[150,13]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[150,17],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[150,23]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[150,17],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[150,23]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[150,19],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[150,21]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[150,17],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[150,18]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[150,22],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[150,23]},[]],"tag":"TypeVar","contents":"b"}]}]}]}]},{"annotation":[{"start":[151,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[153,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[151,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[153,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[152,3],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[152,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[151,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[151,7]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[152,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[153,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[152,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[153,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[153,3],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[153,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[152,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[152,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[152,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[152,7]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[152,8],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[152,9]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[153,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[153,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[153,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[153,7]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[153,8],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[153,9]},[]],"tag":"TypeVar","contents":"b"}]}]}]}]}]},350]},351]},352]},353]}}},{"EDValue":{"edValueName":{"Ident":"mapAccumRWithIndex"},"edValueType":{"annotation":[{"start":[163,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[168,19]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[163,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[168,19]},[]],"tag":"ForAll","contents":["s",{"annotation":[{"start":[163,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[168,19]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[163,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[168,19]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[163,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[168,19]},[]],"tag":"ForAll","contents":["i",{"annotation":[{"start":[164,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[168,19]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[164,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[164,30]},[]],"constraintClass":[["Data","TraversableWithIndex"],"TraversableWithIndex"],"constraintArgs":[{"annotation":[{"start":[164,27],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[164,28]},[]],"tag":"TypeVar","contents":"i"},{"annotation":[{"start":[164,29],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[164,30]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[165,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[168,19]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[165,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[168,19]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[166,3],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[166,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[165,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[165,31]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[165,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[165,31]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[165,9],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[165,11]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[165,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[165,8]},[]],"tag":"TypeVar","contents":"i"}]},{"annotation":[{"start":[165,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[165,31]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[165,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[165,31]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[165,14],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[165,16]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[165,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[165,13]},[]],"tag":"TypeVar","contents":"s"}]},{"annotation":[{"start":[165,17],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[165,31]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[165,17],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[165,31]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[165,19],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[165,21]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[165,17],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[165,18]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[5,18],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum.purs","end":[5,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[5,18],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum.purs","end":[5,19]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[5,20],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum.purs","end":[5,30]},[]],"tag":"RCons","contents":["accum",{"annotation":[{"start":[165,28],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[165,29]},[]],"tag":"TypeVar","contents":"s"},{"annotation":[{"start":[5,32],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum.purs","end":[5,42]},[]],"tag":"RCons","contents":["value",{"annotation":[{"start":[165,30],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[165,31]},[]],"tag":"TypeVar","contents":"b"},{"annotation":[{"start":[5,43],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum.purs","end":[5,44]},[]],"tag":"REmpty"}]}]}]}]}]}]}]},{"annotation":[{"start":[166,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[168,19]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[166,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[168,19]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[167,3],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[167,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[166,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[166,7]},[]],"tag":"TypeVar","contents":"s"}]},{"annotation":[{"start":[167,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[168,19]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[167,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[168,19]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[168,3],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[168,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[167,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[167,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[167,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[167,7]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[167,8],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[167,9]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[5,18],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum.purs","end":[5,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[5,18],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum.purs","end":[5,19]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[5,20],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum.purs","end":[5,30]},[]],"tag":"RCons","contents":["accum",{"annotation":[{"start":[168,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[168,13]},[]],"tag":"TypeVar","contents":"s"},{"annotation":[{"start":[5,32],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum.purs","end":[5,42]},[]],"tag":"RCons","contents":["value",{"annotation":[{"start":[168,15],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[168,18]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[168,15],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[168,16]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[168,17],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[168,18]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[5,43],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/Traversable/Accum.purs","end":[5,44]},[]],"tag":"REmpty"}]}]}]}]}]}]}]},340]},341]},342]},343]},344]}}},{"EDValue":{"edValueName":{"Ident":"traverseDefault"},"edValueType":{"annotation":[{"start":[173,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[176,34]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[173,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[176,34]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[173,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[176,34]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[173,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[176,34]},[]],"tag":"ForAll","contents":["t",{"annotation":[{"start":[173,13],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[176,34]},[]],"tag":"ForAll","contents":["i",{"annotation":[{"start":[174,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[176,34]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[174,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[174,30]},[]],"constraintClass":[["Data","TraversableWithIndex"],"TraversableWithIndex"],"constraintArgs":[{"annotation":[{"start":[174,27],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[174,28]},[]],"tag":"TypeVar","contents":"i"},{"annotation":[{"start":[174,29],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[174,30]},[]],"tag":"TypeVar","contents":"t"}],"constraintData":null},{"annotation":[{"start":[175,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[176,34]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[175,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[175,19]},[]],"constraintClass":[["Control","Applicative"],"Applicative"],"constraintArgs":[{"annotation":[{"start":[175,18],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[175,19]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[176,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[176,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[176,6],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[176,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[176,17],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[176,19]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[176,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[176,15]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[176,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[176,15]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[176,9],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[176,11]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[176,7],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[176,8]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[176,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[176,15]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[176,12],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[176,13]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[176,14],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[176,15]},[]],"tag":"TypeVar","contents":"b"}]}]}]},{"annotation":[{"start":[176,20],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[176,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[176,20],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[176,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[176,24],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[176,26]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[176,20],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[176,23]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[176,20],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[176,21]},[]],"tag":"TypeVar","contents":"t"},{"annotation":[{"start":[176,22],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[176,23]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[176,27],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[176,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[176,27],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[176,28]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[176,30],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[176,33]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[176,30],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[176,31]},[]],"tag":"TypeVar","contents":"t"},{"annotation":[{"start":[176,32],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[176,33]},[]],"tag":"TypeVar","contents":"b"}]}]}]}]}]}]},15]},16]},17]},18]},19]}}},{"EDInstance":{"edInstanceClassName":[["Data","TraversableWithIndex"],"TraversableWithIndex"],"edInstanceName":{"Ident":"traversableWithIndexArray"},"edInstanceTypes":[{"annotation":[{"start":[59,60],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[59,63]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]},{"annotation":[{"start":[59,64],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[59,69]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","TraversableWithIndex"],{"Ident":"traversableWithIndexArray"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","TraversableWithIndex"],"TraversableWithIndex"],"edInstanceName":{"Ident":"traversableWithIndexMaybe"},"edInstanceTypes":[{"annotation":[{"start":[62,60],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[62,64]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]},{"annotation":[{"start":[62,65],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[62,70]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","TraversableWithIndex"],{"Ident":"traversableWithIndexMaybe"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","TraversableWithIndex"],"TraversableWithIndex"],"edInstanceName":{"Ident":"traversableWithIndexFirst"},"edInstanceTypes":[{"annotation":[{"start":[65,60],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[65,64]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]},{"annotation":[{"start":[65,65],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[65,70]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe","First"],"First"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","TraversableWithIndex"],{"Ident":"traversableWithIndexFirst"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","TraversableWithIndex"],"TraversableWithIndex"],"edInstanceName":{"Ident":"traversableWithIndexLast"},"edInstanceTypes":[{"annotation":[{"start":[68,59],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[68,63]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]},{"annotation":[{"start":[68,64],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[68,68]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe","Last"],"Last"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","TraversableWithIndex"],{"Ident":"traversableWithIndexLast"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","TraversableWithIndex"],"TraversableWithIndex"],"edInstanceName":{"Ident":"traversableWithIndexAdditive"},"edInstanceTypes":[{"annotation":[{"start":[71,63],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[71,67]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]},{"annotation":[{"start":[71,68],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[71,76]},[]],"tag":"TypeConstructor","contents":[["Data","Monoid","Additive"],"Additive"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","TraversableWithIndex"],{"Ident":"traversableWithIndexAdditive"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","TraversableWithIndex"],"TraversableWithIndex"],"edInstanceName":{"Ident":"traversableWithIndexDual"},"edInstanceTypes":[{"annotation":[{"start":[74,59],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[74,63]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]},{"annotation":[{"start":[74,64],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[74,68]},[]],"tag":"TypeConstructor","contents":[["Data","Monoid","Dual"],"Dual"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","TraversableWithIndex"],{"Ident":"traversableWithIndexDual"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","TraversableWithIndex"],"TraversableWithIndex"],"edInstanceName":{"Ident":"traversableWithIndexConj"},"edInstanceTypes":[{"annotation":[{"start":[77,59],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[77,63]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]},{"annotation":[{"start":[77,64],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[77,68]},[]],"tag":"TypeConstructor","contents":[["Data","Monoid","Conj"],"Conj"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","TraversableWithIndex"],{"Ident":"traversableWithIndexConj"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","TraversableWithIndex"],"TraversableWithIndex"],"edInstanceName":{"Ident":"traversableWithIndexDisj"},"edInstanceTypes":[{"annotation":[{"start":[80,59],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[80,63]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]},{"annotation":[{"start":[80,64],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[80,68]},[]],"tag":"TypeConstructor","contents":[["Data","Monoid","Disj"],"Disj"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","TraversableWithIndex"],{"Ident":"traversableWithIndexDisj"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","TraversableWithIndex"],"TraversableWithIndex"],"edInstanceName":{"Ident":"traversableWithIndexMultiplicative"},"edInstanceTypes":[{"annotation":[{"start":[83,69],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[83,73]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]},{"annotation":[{"start":[83,74],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[83,88]},[]],"tag":"TypeConstructor","contents":[["Data","Monoid","Multiplicative"],"Multiplicative"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","TraversableWithIndex"],{"Ident":"traversableWithIndexMultiplicative"}]],"edInstanceChainIndex":0}}],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-foldable-traversable/src/Data/TraversableWithIndex.purs","end":[177,48]}}
diff --git a/tests/purs/publish/basic-example/output/Data.Tuple.Nested/docs.json b/tests/purs/publish/basic-example/output/Data.Tuple.Nested/docs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.Tuple.Nested/docs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"reExports":[],"name":"Data.Tuple.Nested","comments":"Utilities for n-tuples: sequences longer than two components built from\nnested pairs.\n\nNested tuples arise naturally in product combinators. You shouldn't\nrepresent data using nested tuples, but if combinators you're working with\ncreate them, utilities in this module will allow to to more easily work\nwith them, including translating to and from more traditional product types.\n\n```purescript\ndata Address = Address String City (Maybe Province) Country\n\nexampleAddress1 = makeAddress \"221B Baker Street\" London Nothing UK\nexampleAddress2 = makeAddressT $ \"221B Baker Street\" /\\ London /\\ Nothing /\\ UK\n\nmakeAddressT :: Tuple4 String City (Maybe Province) Country -> Address\nmakeAddressT = uncurry4 Address\n\nmakeAddress :: String -> City -> (Maybe Province) -> Country -> Address\nmakeAddress = curry4 unit makeAddressT\n\ntupleAddress :: Address -> Tuple4 String City (Maybe Province) Country\ntupleAddress (Address a b c d) = tuple4 a b c d\n```\n","declarations":[{"children":[],"comments":"Shorthand for constructing n-tuples as nested pairs.\n`a /\\ b /\\ c /\\ d /\\ unit` becomes `Tuple a (Tuple b (Tuple c (Tuple d unit)))`\n","title":"(/\\)","info":{"declType":"alias","alias":[["Data","Tuple"],{"Right":{"Right":"Tuple"}}],"fixity":{"associativity":"infixr","precedence":6}},"sourceSpan":{"start":[31,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[31,21]}},{"children":[],"comments":"Shorthand for constructing n-tuple types as nested pairs.\n`forall a b c d. a /\\ b /\\ c /\\ d /\\ Unit` becomes\n`forall a b c d. Tuple a (Tuple b (Tuple c (Tuple d Unit)))`\n","title":"type (/\\)","info":{"declType":"alias","alias":[["Data","Tuple"],{"Left":"Tuple"}],"fixity":{"associativity":"infixr","precedence":6}},"sourceSpan":{"start":[36,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[36,26]}},{"children":[],"comments":null,"title":"Tuple1","info":{"arguments":[["a",null]],"declType":"typeSynonym","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple","Nested"],"T2"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}},"sourceSpan":{"start":[38,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[38,26]}},{"children":[],"comments":null,"title":"Tuple2","info":{"arguments":[["a",null],["b",null]],"declType":"typeSynonym","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple","Nested"],"T3"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}},"sourceSpan":{"start":[39,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[39,30]}},{"children":[],"comments":null,"title":"Tuple3","info":{"arguments":[["a",null],["b",null],["c",null]],"declType":"typeSynonym","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple","Nested"],"T4"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}},"sourceSpan":{"start":[40,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[40,34]}},{"children":[],"comments":null,"title":"Tuple4","info":{"arguments":[["a",null],["b",null],["c",null],["d",null]],"declType":"typeSynonym","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple","Nested"],"T5"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}},"sourceSpan":{"start":[41,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[41,38]}},{"children":[],"comments":null,"title":"Tuple5","info":{"arguments":[["a",null],["b",null],["c",null],["d",null],["e",null]],"declType":"typeSynonym","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple","Nested"],"T6"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeVar","contents":"e"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}},"sourceSpan":{"start":[42,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[42,41]}},{"children":[],"comments":null,"title":"Tuple6","info":{"arguments":[["a",null],["b",null],["c",null],["d",null],["e",null],["f",null]],"declType":"typeSynonym","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple","Nested"],"T7"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeVar","contents":"e"}]},{"annotation":[],"tag":"TypeVar","contents":"f"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}},"sourceSpan":{"start":[43,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[43,46]}},{"children":[],"comments":null,"title":"Tuple7","info":{"arguments":[["a",null],["b",null],["c",null],["d",null],["e",null],["f",null],["g",null]],"declType":"typeSynonym","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple","Nested"],"T8"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeVar","contents":"e"}]},{"annotation":[],"tag":"TypeVar","contents":"f"}]},{"annotation":[],"tag":"TypeVar","contents":"g"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}},"sourceSpan":{"start":[44,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[44,50]}},{"children":[],"comments":null,"title":"Tuple8","info":{"arguments":[["a",null],["b",null],["c",null],["d",null],["e",null],["f",null],["g",null],["h",null]],"declType":"typeSynonym","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple","Nested"],"T9"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeVar","contents":"e"}]},{"annotation":[],"tag":"TypeVar","contents":"f"}]},{"annotation":[],"tag":"TypeVar","contents":"g"}]},{"annotation":[],"tag":"TypeVar","contents":"h"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}},"sourceSpan":{"start":[45,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[45,54]}},{"children":[],"comments":null,"title":"Tuple9","info":{"arguments":[["a",null],["b",null],["c",null],["d",null],["e",null],["f",null],["g",null],["h",null],["i",null]],"declType":"typeSynonym","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple","Nested"],"T10"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeVar","contents":"e"}]},{"annotation":[],"tag":"TypeVar","contents":"f"}]},{"annotation":[],"tag":"TypeVar","contents":"g"}]},{"annotation":[],"tag":"TypeVar","contents":"h"}]},{"annotation":[],"tag":"TypeVar","contents":"i"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}},"sourceSpan":{"start":[46,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[46,59]}},{"children":[],"comments":null,"title":"Tuple10","info":{"arguments":[["a",null],["b",null],["c",null],["d",null],["e",null],["f",null],["g",null],["h",null],["i",null],["j",null]],"declType":"typeSynonym","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple","Nested"],"T11"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeVar","contents":"e"}]},{"annotation":[],"tag":"TypeVar","contents":"f"}]},{"annotation":[],"tag":"TypeVar","contents":"g"}]},{"annotation":[],"tag":"TypeVar","contents":"h"}]},{"annotation":[],"tag":"TypeVar","contents":"i"}]},{"annotation":[],"tag":"TypeVar","contents":"j"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}},"sourceSpan":{"start":[47,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[47,64]}},{"children":[],"comments":null,"title":"T2","info":{"arguments":[["a",null],["z",null]],"declType":"typeSynonym","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"z"}]}},"sourceSpan":{"start":[49,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,24]}},{"children":[],"comments":null,"title":"T3","info":{"arguments":[["a",null],["b",null],["z",null]],"declType":"typeSynonym","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple","Nested"],"T2"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"z"}]}}]}},"sourceSpan":{"start":[50,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,33]}},{"children":[],"comments":null,"title":"T4","info":{"arguments":[["a",null],["b",null],["c",null],["z",null]],"declType":"typeSynonym","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple","Nested"],"T3"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"z"}]}}]}},"sourceSpan":{"start":[51,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,37]}},{"children":[],"comments":null,"title":"T5","info":{"arguments":[["a",null],["b",null],["c",null],["d",null],["z",null]],"declType":"typeSynonym","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple","Nested"],"T4"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeVar","contents":"z"}]}}]}},"sourceSpan":{"start":[52,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,41]}},{"children":[],"comments":null,"title":"T6","info":{"arguments":[["a",null],["b",null],["c",null],["d",null],["e",null],["z",null]],"declType":"typeSynonym","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple","Nested"],"T5"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeVar","contents":"e"}]},{"annotation":[],"tag":"TypeVar","contents":"z"}]}}]}},"sourceSpan":{"start":[53,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[53,45]}},{"children":[],"comments":null,"title":"T7","info":{"arguments":[["a",null],["b",null],["c",null],["d",null],["e",null],["f",null],["z",null]],"declType":"typeSynonym","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple","Nested"],"T6"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeVar","contents":"e"}]},{"annotation":[],"tag":"TypeVar","contents":"f"}]},{"annotation":[],"tag":"TypeVar","contents":"z"}]}}]}},"sourceSpan":{"start":[54,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[54,49]}},{"children":[],"comments":null,"title":"T8","info":{"arguments":[["a",null],["b",null],["c",null],["d",null],["e",null],["f",null],["g",null],["z",null]],"declType":"typeSynonym","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple","Nested"],"T7"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeVar","contents":"e"}]},{"annotation":[],"tag":"TypeVar","contents":"f"}]},{"annotation":[],"tag":"TypeVar","contents":"g"}]},{"annotation":[],"tag":"TypeVar","contents":"z"}]}}]}},"sourceSpan":{"start":[55,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[55,53]}},{"children":[],"comments":null,"title":"T9","info":{"arguments":[["a",null],["b",null],["c",null],["d",null],["e",null],["f",null],["g",null],["h",null],["z",null]],"declType":"typeSynonym","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple","Nested"],"T8"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeVar","contents":"e"}]},{"annotation":[],"tag":"TypeVar","contents":"f"}]},{"annotation":[],"tag":"TypeVar","contents":"g"}]},{"annotation":[],"tag":"TypeVar","contents":"h"}]},{"annotation":[],"tag":"TypeVar","contents":"z"}]}}]}},"sourceSpan":{"start":[56,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[56,57]}},{"children":[],"comments":null,"title":"T10","info":{"arguments":[["a",null],["b",null],["c",null],["d",null],["e",null],["f",null],["g",null],["h",null],["i",null],["z",null]],"declType":"typeSynonym","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple","Nested"],"T9"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeVar","contents":"e"}]},{"annotation":[],"tag":"TypeVar","contents":"f"}]},{"annotation":[],"tag":"TypeVar","contents":"g"}]},{"annotation":[],"tag":"TypeVar","contents":"h"}]},{"annotation":[],"tag":"TypeVar","contents":"i"}]},{"annotation":[],"tag":"TypeVar","contents":"z"}]}}]}},"sourceSpan":{"start":[57,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[57,62]}},{"children":[],"comments":null,"title":"T11","info":{"arguments":[["a",null],["b",null],["c",null],["d",null],["e",null],["f",null],["g",null],["h",null],["i",null],["j",null],["z",null]],"declType":"typeSynonym","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple","Nested"],"T10"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeVar","contents":"e"}]},{"annotation":[],"tag":"TypeVar","contents":"f"}]},{"annotation":[],"tag":"TypeVar","contents":"g"}]},{"annotation":[],"tag":"TypeVar","contents":"h"}]},{"annotation":[],"tag":"TypeVar","contents":"i"}]},{"annotation":[],"tag":"TypeVar","contents":"j"}]},{"annotation":[],"tag":"TypeVar","contents":"z"}]}}]}},"sourceSpan":{"start":[58,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[58,67]}},{"children":[],"comments":"Creates a singleton tuple.\n","title":"tuple1","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple","Nested"],"Tuple1"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},null]}},"sourceSpan":{"start":[61,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[61,34]}},{"children":[],"comments":"Given 2 values, creates a 2-tuple.\n","title":"tuple2","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple","Nested"],"Tuple2"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}]},null]},null]}},"sourceSpan":{"start":[65,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[65,43]}},{"children":[],"comments":"Given 3 values, creates a nested 3-tuple.\n","title":"tuple3","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple","Nested"],"Tuple3"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]}]}]}]},null]},null]},null]}},"sourceSpan":{"start":[69,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[69,52]}},{"children":[],"comments":"Given 4 values, creates a nested 4-tuple.\n","title":"tuple4","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["d",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple","Nested"],"Tuple4"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"d"}]}]}]}]}]},null]},null]},null]},null]}},"sourceSpan":{"start":[73,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[73,61]}},{"children":[],"comments":"Given 5 values, creates a nested 5-tuple.\n","title":"tuple5","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["e",{"annotation":[],"tag":"ForAll","contents":["d",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"e"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple","Nested"],"Tuple5"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeVar","contents":"e"}]}]}]}]}]}]},null]},null]},null]},null]},null]}},"sourceSpan":{"start":[77,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[77,70]}},{"children":[],"comments":"Given 6 values, creates a nested 6-tuple.\n","title":"tuple6","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["e",{"annotation":[],"tag":"ForAll","contents":["d",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"e"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"f"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple","Nested"],"Tuple6"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeVar","contents":"e"}]},{"annotation":[],"tag":"TypeVar","contents":"f"}]}]}]}]}]}]}]},null]},null]},null]},null]},null]},null]}},"sourceSpan":{"start":[81,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[81,79]}},{"children":[],"comments":"Given 7 values, creates a nested 7-tuple.\n","title":"tuple7","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["g",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["e",{"annotation":[],"tag":"ForAll","contents":["d",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"e"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"f"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"g"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple","Nested"],"Tuple7"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeVar","contents":"e"}]},{"annotation":[],"tag":"TypeVar","contents":"f"}]},{"annotation":[],"tag":"TypeVar","contents":"g"}]}]}]}]}]}]}]}]},null]},null]},null]},null]},null]},null]},null]}},"sourceSpan":{"start":[85,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[85,88]}},{"children":[],"comments":"Given 8 values, creates a nested 8-tuple.\n","title":"tuple8","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["h",{"annotation":[],"tag":"ForAll","contents":["g",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["e",{"annotation":[],"tag":"ForAll","contents":["d",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"e"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"f"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"g"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"h"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple","Nested"],"Tuple8"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeVar","contents":"e"}]},{"annotation":[],"tag":"TypeVar","contents":"f"}]},{"annotation":[],"tag":"TypeVar","contents":"g"}]},{"annotation":[],"tag":"TypeVar","contents":"h"}]}]}]}]}]}]}]}]}]},null]},null]},null]},null]},null]},null]},null]},null]}},"sourceSpan":{"start":[89,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[89,97]}},{"children":[],"comments":"Given 9 values, creates a nested 9-tuple.\n","title":"tuple9","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["i",{"annotation":[],"tag":"ForAll","contents":["h",{"annotation":[],"tag":"ForAll","contents":["g",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["e",{"annotation":[],"tag":"ForAll","contents":["d",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"e"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"f"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"g"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"h"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"i"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple","Nested"],"Tuple9"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeVar","contents":"e"}]},{"annotation":[],"tag":"TypeVar","contents":"f"}]},{"annotation":[],"tag":"TypeVar","contents":"g"}]},{"annotation":[],"tag":"TypeVar","contents":"h"}]},{"annotation":[],"tag":"TypeVar","contents":"i"}]}]}]}]}]}]}]}]}]}]},null]},null]},null]},null]},null]},null]},null]},null]},null]}},"sourceSpan":{"start":[93,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[93,106]}},{"children":[],"comments":"Given 10 values, creates a nested 10-tuple.\n","title":"tuple10","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["j",{"annotation":[],"tag":"ForAll","contents":["i",{"annotation":[],"tag":"ForAll","contents":["h",{"annotation":[],"tag":"ForAll","contents":["g",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["e",{"annotation":[],"tag":"ForAll","contents":["d",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"e"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"f"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"g"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"h"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"i"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"j"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple","Nested"],"Tuple10"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeVar","contents":"e"}]},{"annotation":[],"tag":"TypeVar","contents":"f"}]},{"annotation":[],"tag":"TypeVar","contents":"g"}]},{"annotation":[],"tag":"TypeVar","contents":"h"}]},{"annotation":[],"tag":"TypeVar","contents":"i"}]},{"annotation":[],"tag":"TypeVar","contents":"j"}]}]}]}]}]}]}]}]}]}]}]},null]},null]},null]},null]},null]},null]},null]},null]},null]},null]}},"sourceSpan":{"start":[97,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[97,117]}},{"children":[],"comments":"Given at least a singleton tuple, gets the first value.\n","title":"get1","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["z",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple","Nested"],"T2"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"z"}]}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},null]},null]}},"sourceSpan":{"start":[101,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[101,32]}},{"children":[],"comments":"Given at least a 2-tuple, gets the second value.\n","title":"get2","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["z",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple","Nested"],"T3"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"z"}]}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},null]},null]},null]}},"sourceSpan":{"start":[105,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[105,36]}},{"children":[],"comments":"Given at least a 3-tuple, gets the third value.\n","title":"get3","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["z",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple","Nested"],"T4"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"z"}]}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},null]},null]},null]},null]}},"sourceSpan":{"start":[109,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[109,40]}},{"children":[],"comments":"Given at least a 4-tuple, gets the fourth value.\n","title":"get4","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["z",{"annotation":[],"tag":"ForAll","contents":["d",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple","Nested"],"T5"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeVar","contents":"z"}]}]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},null]},null]},null]},null]},null]}},"sourceSpan":{"start":[113,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[113,44]}},{"children":[],"comments":"Given at least a 5-tuple, gets the fifth value.\n","title":"get5","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["z",{"annotation":[],"tag":"ForAll","contents":["e",{"annotation":[],"tag":"ForAll","contents":["d",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple","Nested"],"T6"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeVar","contents":"e"}]},{"annotation":[],"tag":"TypeVar","contents":"z"}]}]},{"annotation":[],"tag":"TypeVar","contents":"e"}]},null]},null]},null]},null]},null]},null]}},"sourceSpan":{"start":[117,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[117,48]}},{"children":[],"comments":"Given at least a 6-tuple, gets the sixth value.\n","title":"get6","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["z",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["e",{"annotation":[],"tag":"ForAll","contents":["d",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple","Nested"],"T7"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeVar","contents":"e"}]},{"annotation":[],"tag":"TypeVar","contents":"f"}]},{"annotation":[],"tag":"TypeVar","contents":"z"}]}]},{"annotation":[],"tag":"TypeVar","contents":"f"}]},null]},null]},null]},null]},null]},null]},null]}},"sourceSpan":{"start":[121,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[121,52]}},{"children":[],"comments":"Given at least a 7-tuple, gets the seventh value.\n","title":"get7","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["z",{"annotation":[],"tag":"ForAll","contents":["g",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["e",{"annotation":[],"tag":"ForAll","contents":["d",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple","Nested"],"T8"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeVar","contents":"e"}]},{"annotation":[],"tag":"TypeVar","contents":"f"}]},{"annotation":[],"tag":"TypeVar","contents":"g"}]},{"annotation":[],"tag":"TypeVar","contents":"z"}]}]},{"annotation":[],"tag":"TypeVar","contents":"g"}]},null]},null]},null]},null]},null]},null]},null]},null]}},"sourceSpan":{"start":[125,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[125,56]}},{"children":[],"comments":"Given at least an 8-tuple, gets the eigth value.\n","title":"get8","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["z",{"annotation":[],"tag":"ForAll","contents":["h",{"annotation":[],"tag":"ForAll","contents":["g",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["e",{"annotation":[],"tag":"ForAll","contents":["d",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple","Nested"],"T9"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeVar","contents":"e"}]},{"annotation":[],"tag":"TypeVar","contents":"f"}]},{"annotation":[],"tag":"TypeVar","contents":"g"}]},{"annotation":[],"tag":"TypeVar","contents":"h"}]},{"annotation":[],"tag":"TypeVar","contents":"z"}]}]},{"annotation":[],"tag":"TypeVar","contents":"h"}]},null]},null]},null]},null]},null]},null]},null]},null]},null]}},"sourceSpan":{"start":[129,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[129,60]}},{"children":[],"comments":"Given at least a 9-tuple, gets the ninth value.\n","title":"get9","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["z",{"annotation":[],"tag":"ForAll","contents":["i",{"annotation":[],"tag":"ForAll","contents":["h",{"annotation":[],"tag":"ForAll","contents":["g",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["e",{"annotation":[],"tag":"ForAll","contents":["d",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple","Nested"],"T10"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeVar","contents":"e"}]},{"annotation":[],"tag":"TypeVar","contents":"f"}]},{"annotation":[],"tag":"TypeVar","contents":"g"}]},{"annotation":[],"tag":"TypeVar","contents":"h"}]},{"annotation":[],"tag":"TypeVar","contents":"i"}]},{"annotation":[],"tag":"TypeVar","contents":"z"}]}]},{"annotation":[],"tag":"TypeVar","contents":"i"}]},null]},null]},null]},null]},null]},null]},null]},null]},null]},null]}},"sourceSpan":{"start":[133,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[133,65]}},{"children":[],"comments":"Given at least a 10-tuple, gets the tenth value.\n","title":"get10","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["z",{"annotation":[],"tag":"ForAll","contents":["j",{"annotation":[],"tag":"ForAll","contents":["i",{"annotation":[],"tag":"ForAll","contents":["h",{"annotation":[],"tag":"ForAll","contents":["g",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["e",{"annotation":[],"tag":"ForAll","contents":["d",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple","Nested"],"T11"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeVar","contents":"e"}]},{"annotation":[],"tag":"TypeVar","contents":"f"}]},{"annotation":[],"tag":"TypeVar","contents":"g"}]},{"annotation":[],"tag":"TypeVar","contents":"h"}]},{"annotation":[],"tag":"TypeVar","contents":"i"}]},{"annotation":[],"tag":"TypeVar","contents":"j"}]},{"annotation":[],"tag":"TypeVar","contents":"z"}]}]},{"annotation":[],"tag":"TypeVar","contents":"j"}]},null]},null]},null]},null]},null]},null]},null]},null]},null]},null]},null]}},"sourceSpan":{"start":[137,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[137,70]}},{"children":[],"comments":"Given at least a singleton tuple, modifies the first value.\n","title":"over1","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["z",{"annotation":[],"tag":"ForAll","contents":["r",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple","Nested"],"T2"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"z"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple","Nested"],"T2"]},{"annotation":[],"tag":"TypeVar","contents":"r"}]},{"annotation":[],"tag":"TypeVar","contents":"z"}]}]}]},null]},null]},null]}},"sourceSpan":{"start":[141,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[141,52]}},{"children":[],"comments":"Given at least a 2-tuple, modifies the second value.\n","title":"over2","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["z",{"annotation":[],"tag":"ForAll","contents":["r",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple","Nested"],"T3"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"z"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple","Nested"],"T3"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]},{"annotation":[],"tag":"TypeVar","contents":"z"}]}]}]},null]},null]},null]},null]}},"sourceSpan":{"start":[145,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[145,58]}},{"children":[],"comments":"Given at least a 3-tuple, modifies the third value.\n","title":"over3","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["z",{"annotation":[],"tag":"ForAll","contents":["r",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple","Nested"],"T4"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"z"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple","Nested"],"T4"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]},{"annotation":[],"tag":"TypeVar","contents":"z"}]}]}]},null]},null]},null]},null]},null]}},"sourceSpan":{"start":[149,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[149,64]}},{"children":[],"comments":"Given at least a 4-tuple, modifies the fourth value.\n","title":"over4","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["z",{"annotation":[],"tag":"ForAll","contents":["r",{"annotation":[],"tag":"ForAll","contents":["d",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple","Nested"],"T5"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeVar","contents":"z"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple","Nested"],"T5"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]},{"annotation":[],"tag":"TypeVar","contents":"z"}]}]}]},null]},null]},null]},null]},null]},null]}},"sourceSpan":{"start":[153,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[153,70]}},{"children":[],"comments":"Given at least a 5-tuple, modifies the fifth value.\n","title":"over5","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["z",{"annotation":[],"tag":"ForAll","contents":["r",{"annotation":[],"tag":"ForAll","contents":["e",{"annotation":[],"tag":"ForAll","contents":["d",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"e"}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple","Nested"],"T6"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeVar","contents":"e"}]},{"annotation":[],"tag":"TypeVar","contents":"z"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple","Nested"],"T6"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]},{"annotation":[],"tag":"TypeVar","contents":"z"}]}]}]},null]},null]},null]},null]},null]},null]},null]}},"sourceSpan":{"start":[157,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[157,76]}},{"children":[],"comments":"Given at least a 6-tuple, modifies the sixth value.\n","title":"over6","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["z",{"annotation":[],"tag":"ForAll","contents":["r",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["e",{"annotation":[],"tag":"ForAll","contents":["d",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"f"}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple","Nested"],"T7"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeVar","contents":"e"}]},{"annotation":[],"tag":"TypeVar","contents":"f"}]},{"annotation":[],"tag":"TypeVar","contents":"z"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple","Nested"],"T7"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeVar","contents":"e"}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]},{"annotation":[],"tag":"TypeVar","contents":"z"}]}]}]},null]},null]},null]},null]},null]},null]},null]},null]}},"sourceSpan":{"start":[161,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[161,82]}},{"children":[],"comments":"Given at least a 7-tuple, modifies the seventh value.\n","title":"over7","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["z",{"annotation":[],"tag":"ForAll","contents":["r",{"annotation":[],"tag":"ForAll","contents":["g",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["e",{"annotation":[],"tag":"ForAll","contents":["d",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"g"}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple","Nested"],"T8"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeVar","contents":"e"}]},{"annotation":[],"tag":"TypeVar","contents":"f"}]},{"annotation":[],"tag":"TypeVar","contents":"g"}]},{"annotation":[],"tag":"TypeVar","contents":"z"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple","Nested"],"T8"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeVar","contents":"e"}]},{"annotation":[],"tag":"TypeVar","contents":"f"}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]},{"annotation":[],"tag":"TypeVar","contents":"z"}]}]}]},null]},null]},null]},null]},null]},null]},null]},null]},null]}},"sourceSpan":{"start":[165,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[165,88]}},{"children":[],"comments":"Given at least an 8-tuple, modifies the eighth value.\n","title":"over8","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["z",{"annotation":[],"tag":"ForAll","contents":["r",{"annotation":[],"tag":"ForAll","contents":["h",{"annotation":[],"tag":"ForAll","contents":["g",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["e",{"annotation":[],"tag":"ForAll","contents":["d",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"h"}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple","Nested"],"T9"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeVar","contents":"e"}]},{"annotation":[],"tag":"TypeVar","contents":"f"}]},{"annotation":[],"tag":"TypeVar","contents":"g"}]},{"annotation":[],"tag":"TypeVar","contents":"h"}]},{"annotation":[],"tag":"TypeVar","contents":"z"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple","Nested"],"T9"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeVar","contents":"e"}]},{"annotation":[],"tag":"TypeVar","contents":"f"}]},{"annotation":[],"tag":"TypeVar","contents":"g"}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]},{"annotation":[],"tag":"TypeVar","contents":"z"}]}]}]},null]},null]},null]},null]},null]},null]},null]},null]},null]},null]}},"sourceSpan":{"start":[169,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[169,94]}},{"children":[],"comments":"Given at least a 9-tuple, modifies the ninth value.\n","title":"over9","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["z",{"annotation":[],"tag":"ForAll","contents":["r",{"annotation":[],"tag":"ForAll","contents":["i",{"annotation":[],"tag":"ForAll","contents":["h",{"annotation":[],"tag":"ForAll","contents":["g",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["e",{"annotation":[],"tag":"ForAll","contents":["d",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"i"}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple","Nested"],"T10"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeVar","contents":"e"}]},{"annotation":[],"tag":"TypeVar","contents":"f"}]},{"annotation":[],"tag":"TypeVar","contents":"g"}]},{"annotation":[],"tag":"TypeVar","contents":"h"}]},{"annotation":[],"tag":"TypeVar","contents":"i"}]},{"annotation":[],"tag":"TypeVar","contents":"z"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple","Nested"],"T10"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeVar","contents":"e"}]},{"annotation":[],"tag":"TypeVar","contents":"f"}]},{"annotation":[],"tag":"TypeVar","contents":"g"}]},{"annotation":[],"tag":"TypeVar","contents":"h"}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]},{"annotation":[],"tag":"TypeVar","contents":"z"}]}]}]},null]},null]},null]},null]},null]},null]},null]},null]},null]},null]},null]}},"sourceSpan":{"start":[173,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[173,102]}},{"children":[],"comments":"Given at least a 10-tuple, modifies the tenth value.\n","title":"over10","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["z",{"annotation":[],"tag":"ForAll","contents":["r",{"annotation":[],"tag":"ForAll","contents":["j",{"annotation":[],"tag":"ForAll","contents":["i",{"annotation":[],"tag":"ForAll","contents":["h",{"annotation":[],"tag":"ForAll","contents":["g",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["e",{"annotation":[],"tag":"ForAll","contents":["d",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"j"}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple","Nested"],"T11"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeVar","contents":"e"}]},{"annotation":[],"tag":"TypeVar","contents":"f"}]},{"annotation":[],"tag":"TypeVar","contents":"g"}]},{"annotation":[],"tag":"TypeVar","contents":"h"}]},{"annotation":[],"tag":"TypeVar","contents":"i"}]},{"annotation":[],"tag":"TypeVar","contents":"j"}]},{"annotation":[],"tag":"TypeVar","contents":"z"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple","Nested"],"T11"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeVar","contents":"e"}]},{"annotation":[],"tag":"TypeVar","contents":"f"}]},{"annotation":[],"tag":"TypeVar","contents":"g"}]},{"annotation":[],"tag":"TypeVar","contents":"h"}]},{"annotation":[],"tag":"TypeVar","contents":"i"}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]},{"annotation":[],"tag":"TypeVar","contents":"z"}]}]}]},null]},null]},null]},null]},null]},null]},null]},null]},null]},null]},null]},null]}},"sourceSpan":{"start":[177,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[177,109]}},{"children":[],"comments":"Given a function of 1 argument, returns a function that accepts a singleton tuple.\n","title":"uncurry1","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["z",{"annotation":[],"tag":"ForAll","contents":["r",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple","Nested"],"T2"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"z"}]}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}]},null]},null]},null]}},"sourceSpan":{"start":[181,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[181,50]}},{"children":[],"comments":"Given a function of 2 arguments, returns a function that accepts a 2-tuple.\n","title":"uncurry2","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["z",{"annotation":[],"tag":"ForAll","contents":["r",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple","Nested"],"T3"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"z"}]}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}]},null]},null]},null]},null]}},"sourceSpan":{"start":[185,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[185,59]}},{"children":[],"comments":"Given a function of 3 arguments, returns a function that accepts a 3-tuple.\n","title":"uncurry3","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["z",{"annotation":[],"tag":"ForAll","contents":["r",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple","Nested"],"T4"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"z"}]}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}]},null]},null]},null]},null]},null]}},"sourceSpan":{"start":[189,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[189,68]}},{"children":[],"comments":"Given a function of 4 arguments, returns a function that accepts a 4-tuple.\n","title":"uncurry4","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["z",{"annotation":[],"tag":"ForAll","contents":["r",{"annotation":[],"tag":"ForAll","contents":["d",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}]}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple","Nested"],"T5"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeVar","contents":"z"}]}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}]},null]},null]},null]},null]},null]},null]}},"sourceSpan":{"start":[193,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[193,77]}},{"children":[],"comments":"Given a function of 5 arguments, returns a function that accepts a 5-tuple.\n","title":"uncurry5","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["z",{"annotation":[],"tag":"ForAll","contents":["r",{"annotation":[],"tag":"ForAll","contents":["e",{"annotation":[],"tag":"ForAll","contents":["d",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"e"}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}]}]}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple","Nested"],"T6"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeVar","contents":"e"}]},{"annotation":[],"tag":"TypeVar","contents":"z"}]}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}]},null]},null]},null]},null]},null]},null]},null]}},"sourceSpan":{"start":[197,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[197,86]}},{"children":[],"comments":"Given a function of 6 arguments, returns a function that accepts a 6-tuple.\n","title":"uncurry6","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["z",{"annotation":[],"tag":"ForAll","contents":["r",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["e",{"annotation":[],"tag":"ForAll","contents":["d",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"e"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"f"}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}]}]}]}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple","Nested"],"T7"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeVar","contents":"e"}]},{"annotation":[],"tag":"TypeVar","contents":"f"}]},{"annotation":[],"tag":"TypeVar","contents":"z"}]}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}]},null]},null]},null]},null]},null]},null]},null]},null]}},"sourceSpan":{"start":[201,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[201,95]}},{"children":[],"comments":"Given a function of 7 arguments, returns a function that accepts a 7-tuple.\n","title":"uncurry7","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["z",{"annotation":[],"tag":"ForAll","contents":["r",{"annotation":[],"tag":"ForAll","contents":["g",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["e",{"annotation":[],"tag":"ForAll","contents":["d",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"e"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"f"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"g"}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}]}]}]}]}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple","Nested"],"T8"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeVar","contents":"e"}]},{"annotation":[],"tag":"TypeVar","contents":"f"}]},{"annotation":[],"tag":"TypeVar","contents":"g"}]},{"annotation":[],"tag":"TypeVar","contents":"z"}]}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}]},null]},null]},null]},null]},null]},null]},null]},null]},null]}},"sourceSpan":{"start":[205,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[205,104]}},{"children":[],"comments":"Given a function of 8 arguments, returns a function that accepts an 8-tuple.\n","title":"uncurry8","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["z",{"annotation":[],"tag":"ForAll","contents":["r",{"annotation":[],"tag":"ForAll","contents":["h",{"annotation":[],"tag":"ForAll","contents":["g",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["e",{"annotation":[],"tag":"ForAll","contents":["d",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"e"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"f"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"g"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"h"}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}]}]}]}]}]}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple","Nested"],"T9"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeVar","contents":"e"}]},{"annotation":[],"tag":"TypeVar","contents":"f"}]},{"annotation":[],"tag":"TypeVar","contents":"g"}]},{"annotation":[],"tag":"TypeVar","contents":"h"}]},{"annotation":[],"tag":"TypeVar","contents":"z"}]}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}]},null]},null]},null]},null]},null]},null]},null]},null]},null]},null]}},"sourceSpan":{"start":[209,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[209,113]}},{"children":[],"comments":"Given a function of 9 arguments, returns a function that accepts a 9-tuple.\n","title":"uncurry9","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["z",{"annotation":[],"tag":"ForAll","contents":["r",{"annotation":[],"tag":"ForAll","contents":["i",{"annotation":[],"tag":"ForAll","contents":["h",{"annotation":[],"tag":"ForAll","contents":["g",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["e",{"annotation":[],"tag":"ForAll","contents":["d",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"e"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"f"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"g"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"h"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"i"}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}]}]}]}]}]}]}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple","Nested"],"T10"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeVar","contents":"e"}]},{"annotation":[],"tag":"TypeVar","contents":"f"}]},{"annotation":[],"tag":"TypeVar","contents":"g"}]},{"annotation":[],"tag":"TypeVar","contents":"h"}]},{"annotation":[],"tag":"TypeVar","contents":"i"}]},{"annotation":[],"tag":"TypeVar","contents":"z"}]}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}]},null]},null]},null]},null]},null]},null]},null]},null]},null]},null]},null]}},"sourceSpan":{"start":[213,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[213,123]}},{"children":[],"comments":"Given a function of 10 arguments, returns a function that accepts a 10-tuple.\n","title":"uncurry10","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["z",{"annotation":[],"tag":"ForAll","contents":["r",{"annotation":[],"tag":"ForAll","contents":["j",{"annotation":[],"tag":"ForAll","contents":["i",{"annotation":[],"tag":"ForAll","contents":["h",{"annotation":[],"tag":"ForAll","contents":["g",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["e",{"annotation":[],"tag":"ForAll","contents":["d",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"e"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"f"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"g"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"h"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"i"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"j"}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}]}]}]}]}]}]}]}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple","Nested"],"T11"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeVar","contents":"e"}]},{"annotation":[],"tag":"TypeVar","contents":"f"}]},{"annotation":[],"tag":"TypeVar","contents":"g"}]},{"annotation":[],"tag":"TypeVar","contents":"h"}]},{"annotation":[],"tag":"TypeVar","contents":"i"}]},{"annotation":[],"tag":"TypeVar","contents":"j"}]},{"annotation":[],"tag":"TypeVar","contents":"z"}]}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}]},null]},null]},null]},null]},null]},null]},null]},null]},null]},null]},null]},null]}},"sourceSpan":{"start":[217,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[217,133]}},{"children":[],"comments":"Given a function that accepts at least a singleton tuple, returns a function of 1 argument.\n","title":"curry1","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["z",{"annotation":[],"tag":"ForAll","contents":["r",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"z"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple","Nested"],"T2"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"z"}]}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}]}]},null]},null]},null]}},"sourceSpan":{"start":[221,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[221,53]}},{"children":[],"comments":"Given a function that accepts at least a 2-tuple, returns a function of 2 arguments.\n","title":"curry2","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["z",{"annotation":[],"tag":"ForAll","contents":["r",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"z"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple","Nested"],"T3"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"z"}]}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}]}]}]},null]},null]},null]},null]}},"sourceSpan":{"start":[225,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[225,62]}},{"children":[],"comments":"Given a function that accepts at least a 3-tuple, returns a function of 3 arguments.\n","title":"curry3","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["z",{"annotation":[],"tag":"ForAll","contents":["r",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"z"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple","Nested"],"T4"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"z"}]}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}]}]}]}]},null]},null]},null]},null]},null]}},"sourceSpan":{"start":[229,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[229,71]}},{"children":[],"comments":"Given a function that accepts at least a 4-tuple, returns a function of 4 arguments.\n","title":"curry4","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["z",{"annotation":[],"tag":"ForAll","contents":["r",{"annotation":[],"tag":"ForAll","contents":["d",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"z"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple","Nested"],"T5"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeVar","contents":"z"}]}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}]}]}]}]}]},null]},null]},null]},null]},null]},null]}},"sourceSpan":{"start":[233,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[233,80]}},{"children":[],"comments":"Given a function that accepts at least a 5-tuple, returns a function of 5 arguments.\n","title":"curry5","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["z",{"annotation":[],"tag":"ForAll","contents":["r",{"annotation":[],"tag":"ForAll","contents":["e",{"annotation":[],"tag":"ForAll","contents":["d",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"z"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple","Nested"],"T6"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeVar","contents":"e"}]},{"annotation":[],"tag":"TypeVar","contents":"z"}]}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"e"}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}]}]}]}]}]}]},null]},null]},null]},null]},null]},null]},null]}},"sourceSpan":{"start":[237,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[237,89]}},{"children":[],"comments":"Given a function that accepts at least a 6-tuple, returns a function of 6 arguments.\n","title":"curry6","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["z",{"annotation":[],"tag":"ForAll","contents":["r",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["e",{"annotation":[],"tag":"ForAll","contents":["d",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"z"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple","Nested"],"T7"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeVar","contents":"e"}]},{"annotation":[],"tag":"TypeVar","contents":"f"}]},{"annotation":[],"tag":"TypeVar","contents":"z"}]}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"e"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"f"}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}]}]}]}]}]}]}]},null]},null]},null]},null]},null]},null]},null]},null]}},"sourceSpan":{"start":[241,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[241,98]}},{"children":[],"comments":"Given a function that accepts at least a 7-tuple, returns a function of 7 arguments.\n","title":"curry7","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["z",{"annotation":[],"tag":"ForAll","contents":["r",{"annotation":[],"tag":"ForAll","contents":["g",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["e",{"annotation":[],"tag":"ForAll","contents":["d",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"z"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple","Nested"],"T8"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeVar","contents":"e"}]},{"annotation":[],"tag":"TypeVar","contents":"f"}]},{"annotation":[],"tag":"TypeVar","contents":"g"}]},{"annotation":[],"tag":"TypeVar","contents":"z"}]}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"e"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"f"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"g"}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}]}]}]}]}]}]}]}]},null]},null]},null]},null]},null]},null]},null]},null]},null]}},"sourceSpan":{"start":[245,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[245,107]}},{"children":[],"comments":"Given a function that accepts at least an 8-tuple, returns a function of 8 arguments.\n","title":"curry8","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["z",{"annotation":[],"tag":"ForAll","contents":["r",{"annotation":[],"tag":"ForAll","contents":["h",{"annotation":[],"tag":"ForAll","contents":["g",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["e",{"annotation":[],"tag":"ForAll","contents":["d",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"z"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple","Nested"],"T9"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeVar","contents":"e"}]},{"annotation":[],"tag":"TypeVar","contents":"f"}]},{"annotation":[],"tag":"TypeVar","contents":"g"}]},{"annotation":[],"tag":"TypeVar","contents":"h"}]},{"annotation":[],"tag":"TypeVar","contents":"z"}]}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"e"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"f"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"g"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"h"}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}]}]}]}]}]}]}]}]}]},null]},null]},null]},null]},null]},null]},null]},null]},null]},null]}},"sourceSpan":{"start":[249,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[249,116]}},{"children":[],"comments":"Given a function that accepts at least a 9-tuple, returns a function of 9 arguments.\n","title":"curry9","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["z",{"annotation":[],"tag":"ForAll","contents":["r",{"annotation":[],"tag":"ForAll","contents":["i",{"annotation":[],"tag":"ForAll","contents":["h",{"annotation":[],"tag":"ForAll","contents":["g",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["e",{"annotation":[],"tag":"ForAll","contents":["d",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"z"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple","Nested"],"T10"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeVar","contents":"e"}]},{"annotation":[],"tag":"TypeVar","contents":"f"}]},{"annotation":[],"tag":"TypeVar","contents":"g"}]},{"annotation":[],"tag":"TypeVar","contents":"h"}]},{"annotation":[],"tag":"TypeVar","contents":"i"}]},{"annotation":[],"tag":"TypeVar","contents":"z"}]}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"e"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"f"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"g"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"h"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"i"}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}]}]}]}]}]}]}]}]}]}]},null]},null]},null]},null]},null]},null]},null]},null]},null]},null]},null]}},"sourceSpan":{"start":[253,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[253,126]}},{"children":[],"comments":"Given a function that accepts at least a 10-tuple, returns a function of 10 arguments.\n","title":"curry10","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["z",{"annotation":[],"tag":"ForAll","contents":["r",{"annotation":[],"tag":"ForAll","contents":["j",{"annotation":[],"tag":"ForAll","contents":["i",{"annotation":[],"tag":"ForAll","contents":["h",{"annotation":[],"tag":"ForAll","contents":["g",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["e",{"annotation":[],"tag":"ForAll","contents":["d",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"z"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple","Nested"],"T11"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeVar","contents":"e"}]},{"annotation":[],"tag":"TypeVar","contents":"f"}]},{"annotation":[],"tag":"TypeVar","contents":"g"}]},{"annotation":[],"tag":"TypeVar","contents":"h"}]},{"annotation":[],"tag":"TypeVar","contents":"i"}]},{"annotation":[],"tag":"TypeVar","contents":"j"}]},{"annotation":[],"tag":"TypeVar","contents":"z"}]}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"e"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"f"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"g"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"h"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"i"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"j"}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}]}]}]}]}]}]}]}]}]}]}]},null]},null]},null]},null]},null]},null]},null]},null]},null]},null]},null]},null]}},"sourceSpan":{"start":[257,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[257,136]}}]}
diff --git a/tests/purs/publish/basic-example/output/Data.Tuple.Nested/externs.json b/tests/purs/publish/basic-example/output/Data.Tuple.Nested/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.Tuple.Nested/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Data","Tuple","Nested"],"efExports":[{"ValueOpRef":[{"start":[24,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[258,92]},"/\\"]},{"TypeOpRef":[{"start":[24,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[258,92]},"/\\"]},{"TypeRef":[{"start":[24,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[258,92]},"Tuple1",[]]},{"TypeRef":[{"start":[24,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[258,92]},"Tuple2",[]]},{"TypeRef":[{"start":[24,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[258,92]},"Tuple3",[]]},{"TypeRef":[{"start":[24,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[258,92]},"Tuple4",[]]},{"TypeRef":[{"start":[24,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[258,92]},"Tuple5",[]]},{"TypeRef":[{"start":[24,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[258,92]},"Tuple6",[]]},{"TypeRef":[{"start":[24,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[258,92]},"Tuple7",[]]},{"TypeRef":[{"start":[24,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[258,92]},"Tuple8",[]]},{"TypeRef":[{"start":[24,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[258,92]},"Tuple9",[]]},{"TypeRef":[{"start":[24,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[258,92]},"Tuple10",[]]},{"TypeRef":[{"start":[24,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[258,92]},"T2",[]]},{"TypeRef":[{"start":[24,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[258,92]},"T3",[]]},{"TypeRef":[{"start":[24,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[258,92]},"T4",[]]},{"TypeRef":[{"start":[24,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[258,92]},"T5",[]]},{"TypeRef":[{"start":[24,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[258,92]},"T6",[]]},{"TypeRef":[{"start":[24,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[258,92]},"T7",[]]},{"TypeRef":[{"start":[24,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[258,92]},"T8",[]]},{"TypeRef":[{"start":[24,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[258,92]},"T9",[]]},{"TypeRef":[{"start":[24,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[258,92]},"T10",[]]},{"TypeRef":[{"start":[24,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[258,92]},"T11",[]]},{"ValueRef":[{"start":[24,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[258,92]},{"Ident":"tuple1"}]},{"ValueRef":[{"start":[24,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[258,92]},{"Ident":"tuple2"}]},{"ValueRef":[{"start":[24,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[258,92]},{"Ident":"tuple3"}]},{"ValueRef":[{"start":[24,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[258,92]},{"Ident":"tuple4"}]},{"ValueRef":[{"start":[24,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[258,92]},{"Ident":"tuple5"}]},{"ValueRef":[{"start":[24,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[258,92]},{"Ident":"tuple6"}]},{"ValueRef":[{"start":[24,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[258,92]},{"Ident":"tuple7"}]},{"ValueRef":[{"start":[24,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[258,92]},{"Ident":"tuple8"}]},{"ValueRef":[{"start":[24,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[258,92]},{"Ident":"tuple9"}]},{"ValueRef":[{"start":[24,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[258,92]},{"Ident":"tuple10"}]},{"ValueRef":[{"start":[24,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[258,92]},{"Ident":"get1"}]},{"ValueRef":[{"start":[24,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[258,92]},{"Ident":"get2"}]},{"ValueRef":[{"start":[24,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[258,92]},{"Ident":"get3"}]},{"ValueRef":[{"start":[24,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[258,92]},{"Ident":"get4"}]},{"ValueRef":[{"start":[24,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[258,92]},{"Ident":"get5"}]},{"ValueRef":[{"start":[24,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[258,92]},{"Ident":"get6"}]},{"ValueRef":[{"start":[24,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[258,92]},{"Ident":"get7"}]},{"ValueRef":[{"start":[24,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[258,92]},{"Ident":"get8"}]},{"ValueRef":[{"start":[24,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[258,92]},{"Ident":"get9"}]},{"ValueRef":[{"start":[24,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[258,92]},{"Ident":"get10"}]},{"ValueRef":[{"start":[24,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[258,92]},{"Ident":"over1"}]},{"ValueRef":[{"start":[24,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[258,92]},{"Ident":"over2"}]},{"ValueRef":[{"start":[24,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[258,92]},{"Ident":"over3"}]},{"ValueRef":[{"start":[24,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[258,92]},{"Ident":"over4"}]},{"ValueRef":[{"start":[24,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[258,92]},{"Ident":"over5"}]},{"ValueRef":[{"start":[24,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[258,92]},{"Ident":"over6"}]},{"ValueRef":[{"start":[24,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[258,92]},{"Ident":"over7"}]},{"ValueRef":[{"start":[24,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[258,92]},{"Ident":"over8"}]},{"ValueRef":[{"start":[24,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[258,92]},{"Ident":"over9"}]},{"ValueRef":[{"start":[24,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[258,92]},{"Ident":"over10"}]},{"ValueRef":[{"start":[24,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[258,92]},{"Ident":"uncurry1"}]},{"ValueRef":[{"start":[24,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[258,92]},{"Ident":"uncurry2"}]},{"ValueRef":[{"start":[24,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[258,92]},{"Ident":"uncurry3"}]},{"ValueRef":[{"start":[24,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[258,92]},{"Ident":"uncurry4"}]},{"ValueRef":[{"start":[24,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[258,92]},{"Ident":"uncurry5"}]},{"ValueRef":[{"start":[24,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[258,92]},{"Ident":"uncurry6"}]},{"ValueRef":[{"start":[24,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[258,92]},{"Ident":"uncurry7"}]},{"ValueRef":[{"start":[24,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[258,92]},{"Ident":"uncurry8"}]},{"ValueRef":[{"start":[24,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[258,92]},{"Ident":"uncurry9"}]},{"ValueRef":[{"start":[24,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[258,92]},{"Ident":"uncurry10"}]},{"ValueRef":[{"start":[24,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[258,92]},{"Ident":"curry1"}]},{"ValueRef":[{"start":[24,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[258,92]},{"Ident":"curry2"}]},{"ValueRef":[{"start":[24,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[258,92]},{"Ident":"curry3"}]},{"ValueRef":[{"start":[24,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[258,92]},{"Ident":"curry4"}]},{"ValueRef":[{"start":[24,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[258,92]},{"Ident":"curry5"}]},{"ValueRef":[{"start":[24,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[258,92]},{"Ident":"curry6"}]},{"ValueRef":[{"start":[24,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[258,92]},{"Ident":"curry7"}]},{"ValueRef":[{"start":[24,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[258,92]},{"Ident":"curry8"}]},{"ValueRef":[{"start":[24,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[258,92]},{"Ident":"curry9"}]},{"ValueRef":[{"start":[24,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[258,92]},{"Ident":"curry10"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Prelude"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Data","Tuple"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[27,20],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[27,29]},"Tuple",null]}]},"eiImportedAs":null}],"efFixities":[{"efAssociativity":"infixr","efPrecedence":6,"efOperator":"/\\","efAlias":[["Data","Tuple"],{"Right":"Tuple"}]}],"efTypeFixities":[{"efTypeAssociativity":"infixr","efTypePrecedence":6,"efTypeOperator":"/\\","efTypeAlias":[["Data","Tuple"],"Tuple"]}],"efDeclarations":[{"EDType":{"edTypeName":"Tuple1","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[38,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[38,19]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[38,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[38,19]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"Tuple1","edTypeSynonymArguments":[["a",{"annotation":[{"start":[38,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[38,19]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]],"edTypeSynonymType":{"annotation":[{"start":[38,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[38,26]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[38,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[38,21]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[38,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[38,19]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple","Nested"],"T2"]},{"annotation":[{"start":[38,20],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[38,21]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[38,22],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[38,26]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}}},{"EDType":{"edTypeName":"Tuple2","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[39,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[39,21]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[39,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[39,21]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[39,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[39,21]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"Tuple2","edTypeSynonymArguments":[["a",{"annotation":[{"start":[39,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[39,21]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["b",{"annotation":[{"start":[39,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[39,21]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]],"edTypeSynonymType":{"annotation":[{"start":[39,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[39,30]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[39,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[39,25]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[39,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[39,23]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[39,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[39,21]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple","Nested"],"T3"]},{"annotation":[{"start":[39,22],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[39,23]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[39,24],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[39,25]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[39,26],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[39,30]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}}},{"EDType":{"edTypeName":"Tuple3","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[40,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[40,23]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[40,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[40,23]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[40,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[40,23]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[40,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[40,23]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"Tuple3","edTypeSynonymArguments":[["a",{"annotation":[{"start":[40,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[40,23]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["b",{"annotation":[{"start":[40,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[40,23]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["c",{"annotation":[{"start":[40,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[40,23]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]],"edTypeSynonymType":{"annotation":[{"start":[40,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[40,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[40,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[40,29]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[40,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[40,27]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[40,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[40,25]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[40,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[40,23]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple","Nested"],"T4"]},{"annotation":[{"start":[40,24],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[40,25]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[40,26],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[40,27]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[40,28],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[40,29]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[40,30],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[40,34]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}}},{"EDType":{"edTypeName":"Tuple4","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[41,23],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[41,25]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[41,23],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[41,25]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[41,23],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[41,25]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[41,23],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[41,25]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[41,23],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[41,25]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]}]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"Tuple4","edTypeSynonymArguments":[["a",{"annotation":[{"start":[41,23],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[41,25]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["b",{"annotation":[{"start":[41,23],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[41,25]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["c",{"annotation":[{"start":[41,23],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[41,25]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["d",{"annotation":[{"start":[41,23],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[41,25]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]],"edTypeSynonymType":{"annotation":[{"start":[41,23],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[41,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[41,23],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[41,33]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[41,23],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[41,31]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[41,23],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[41,29]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[41,23],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[41,27]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[41,23],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[41,25]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple","Nested"],"T5"]},{"annotation":[{"start":[41,26],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[41,27]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[41,28],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[41,29]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[41,30],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[41,31]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[41,32],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[41,33]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[41,34],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[41,38]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}}},{"EDType":{"edTypeName":"Tuple5","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[42,24],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[42,26]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[42,24],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[42,26]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[42,24],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[42,26]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[42,24],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[42,26]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[42,24],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[42,26]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[42,24],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[42,26]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]}]}]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"Tuple5","edTypeSynonymArguments":[["a",{"annotation":[{"start":[42,24],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[42,26]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["b",{"annotation":[{"start":[42,24],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[42,26]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["c",{"annotation":[{"start":[42,24],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[42,26]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["d",{"annotation":[{"start":[42,24],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[42,26]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["e",{"annotation":[{"start":[42,24],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[42,26]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]],"edTypeSynonymType":{"annotation":[{"start":[42,24],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[42,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[42,24],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[42,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[42,24],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[42,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[42,24],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[42,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[42,24],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[42,30]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[42,24],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[42,28]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[42,24],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[42,26]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple","Nested"],"T6"]},{"annotation":[{"start":[42,27],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[42,28]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[42,29],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[42,30]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[42,31],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[42,32]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[42,33],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[42,34]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[42,35],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[42,36]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[42,37],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[42,41]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}}},{"EDType":{"edTypeName":"Tuple6","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[43,27],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[43,29]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[43,27],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[43,29]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[43,27],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[43,29]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[43,27],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[43,29]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[43,27],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[43,29]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[43,27],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[43,29]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[43,27],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[43,29]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]}]}]}]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"Tuple6","edTypeSynonymArguments":[["a",{"annotation":[{"start":[43,27],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[43,29]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["b",{"annotation":[{"start":[43,27],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[43,29]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["c",{"annotation":[{"start":[43,27],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[43,29]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["d",{"annotation":[{"start":[43,27],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[43,29]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["e",{"annotation":[{"start":[43,27],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[43,29]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["f",{"annotation":[{"start":[43,27],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[43,29]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]],"edTypeSynonymType":{"annotation":[{"start":[43,27],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[43,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[43,27],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[43,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[43,27],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[43,39]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[43,27],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[43,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[43,27],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[43,35]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[43,27],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[43,33]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[43,27],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[43,31]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[43,27],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[43,29]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple","Nested"],"T7"]},{"annotation":[{"start":[43,30],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[43,31]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[43,32],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[43,33]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[43,34],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[43,35]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[43,36],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[43,37]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[43,38],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[43,39]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[43,40],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[43,41]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[43,42],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[43,46]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}}},{"EDType":{"edTypeName":"Tuple7","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[44,29],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[44,31]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[44,29],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[44,31]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[44,29],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[44,31]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[44,29],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[44,31]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[44,29],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[44,31]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[44,29],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[44,31]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[44,29],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[44,31]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[44,29],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[44,31]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]}]}]}]}]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"Tuple7","edTypeSynonymArguments":[["a",{"annotation":[{"start":[44,29],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[44,31]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["b",{"annotation":[{"start":[44,29],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[44,31]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["c",{"annotation":[{"start":[44,29],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[44,31]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["d",{"annotation":[{"start":[44,29],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[44,31]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["e",{"annotation":[{"start":[44,29],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[44,31]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["f",{"annotation":[{"start":[44,29],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[44,31]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["g",{"annotation":[{"start":[44,29],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[44,31]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]],"edTypeSynonymType":{"annotation":[{"start":[44,29],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[44,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[44,29],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[44,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[44,29],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[44,43]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[44,29],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[44,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[44,29],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[44,39]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[44,29],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[44,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[44,29],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[44,35]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[44,29],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[44,33]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[44,29],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[44,31]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple","Nested"],"T8"]},{"annotation":[{"start":[44,32],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[44,33]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[44,34],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[44,35]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[44,36],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[44,37]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[44,38],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[44,39]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[44,40],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[44,41]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[44,42],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[44,43]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[44,44],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[44,45]},[]],"tag":"TypeVar","contents":"g"}]},{"annotation":[{"start":[44,46],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[44,50]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}}},{"EDType":{"edTypeName":"Tuple8","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[45,31],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[45,33]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[45,31],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[45,33]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[45,31],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[45,33]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[45,31],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[45,33]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[45,31],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[45,33]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[45,31],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[45,33]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[45,31],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[45,33]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[45,31],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[45,33]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[45,31],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[45,33]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]}]}]}]}]}]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"Tuple8","edTypeSynonymArguments":[["a",{"annotation":[{"start":[45,31],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[45,33]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["b",{"annotation":[{"start":[45,31],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[45,33]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["c",{"annotation":[{"start":[45,31],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[45,33]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["d",{"annotation":[{"start":[45,31],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[45,33]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["e",{"annotation":[{"start":[45,31],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[45,33]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["f",{"annotation":[{"start":[45,31],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[45,33]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["g",{"annotation":[{"start":[45,31],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[45,33]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["h",{"annotation":[{"start":[45,31],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[45,33]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]],"edTypeSynonymType":{"annotation":[{"start":[45,31],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[45,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[45,31],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[45,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[45,31],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[45,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[45,31],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[45,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[45,31],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[45,43]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[45,31],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[45,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[45,31],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[45,39]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[45,31],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[45,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[45,31],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[45,35]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[45,31],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[45,33]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple","Nested"],"T9"]},{"annotation":[{"start":[45,34],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[45,35]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[45,36],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[45,37]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[45,38],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[45,39]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[45,40],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[45,41]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[45,42],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[45,43]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[45,44],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[45,45]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[45,46],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[45,47]},[]],"tag":"TypeVar","contents":"g"}]},{"annotation":[{"start":[45,48],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[45,49]},[]],"tag":"TypeVar","contents":"h"}]},{"annotation":[{"start":[45,50],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[45,54]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}}},{"EDType":{"edTypeName":"Tuple9","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[46,33],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[46,36]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[46,33],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[46,36]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[46,33],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[46,36]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[46,33],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[46,36]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[46,33],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[46,36]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[46,33],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[46,36]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[46,33],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[46,36]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[46,33],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[46,36]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[46,33],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[46,36]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[46,33],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[46,36]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]}]}]}]}]}]}]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"Tuple9","edTypeSynonymArguments":[["a",{"annotation":[{"start":[46,33],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[46,36]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["b",{"annotation":[{"start":[46,33],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[46,36]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["c",{"annotation":[{"start":[46,33],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[46,36]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["d",{"annotation":[{"start":[46,33],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[46,36]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["e",{"annotation":[{"start":[46,33],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[46,36]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["f",{"annotation":[{"start":[46,33],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[46,36]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["g",{"annotation":[{"start":[46,33],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[46,36]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["h",{"annotation":[{"start":[46,33],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[46,36]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["i",{"annotation":[{"start":[46,33],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[46,36]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]],"edTypeSynonymType":{"annotation":[{"start":[46,33],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[46,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[46,33],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[46,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[46,33],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[46,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[46,33],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[46,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[46,33],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[46,48]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[46,33],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[46,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[46,33],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[46,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[46,33],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[46,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[46,33],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[46,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[46,33],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[46,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[46,33],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[46,36]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple","Nested"],"T10"]},{"annotation":[{"start":[46,37],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[46,38]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[46,39],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[46,40]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[46,41],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[46,42]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[46,43],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[46,44]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[46,45],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[46,46]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[46,47],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[46,48]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[46,49],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[46,50]},[]],"tag":"TypeVar","contents":"g"}]},{"annotation":[{"start":[46,51],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[46,52]},[]],"tag":"TypeVar","contents":"h"}]},{"annotation":[{"start":[46,53],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[46,54]},[]],"tag":"TypeVar","contents":"i"}]},{"annotation":[{"start":[46,55],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[46,59]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}}},{"EDType":{"edTypeName":"Tuple10","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[47,36],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[47,39]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[47,36],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[47,39]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[47,36],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[47,39]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[47,36],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[47,39]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[47,36],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[47,39]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[47,36],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[47,39]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[47,36],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[47,39]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[47,36],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[47,39]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[47,36],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[47,39]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[47,36],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[47,39]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[47,36],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[47,39]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]}]}]}]}]}]}]}]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"Tuple10","edTypeSynonymArguments":[["a",{"annotation":[{"start":[47,36],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[47,39]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["b",{"annotation":[{"start":[47,36],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[47,39]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["c",{"annotation":[{"start":[47,36],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[47,39]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["d",{"annotation":[{"start":[47,36],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[47,39]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["e",{"annotation":[{"start":[47,36],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[47,39]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["f",{"annotation":[{"start":[47,36],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[47,39]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["g",{"annotation":[{"start":[47,36],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[47,39]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["h",{"annotation":[{"start":[47,36],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[47,39]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["i",{"annotation":[{"start":[47,36],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[47,39]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["j",{"annotation":[{"start":[47,36],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[47,39]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]],"edTypeSynonymType":{"annotation":[{"start":[47,36],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[47,64]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[47,36],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[47,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[47,36],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[47,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[47,36],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[47,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[47,36],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[47,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[47,36],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[47,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[47,36],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[47,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[47,36],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[47,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[47,36],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[47,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[47,36],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[47,43]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[47,36],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[47,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[47,36],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[47,39]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple","Nested"],"T11"]},{"annotation":[{"start":[47,40],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[47,41]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[47,42],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[47,43]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[47,44],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[47,45]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[47,46],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[47,47]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[47,48],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[47,49]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[47,50],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[47,51]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[47,52],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[47,53]},[]],"tag":"TypeVar","contents":"g"}]},{"annotation":[{"start":[47,54],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[47,55]},[]],"tag":"TypeVar","contents":"h"}]},{"annotation":[{"start":[47,56],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[47,57]},[]],"tag":"TypeVar","contents":"i"}]},{"annotation":[{"start":[47,58],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[47,59]},[]],"tag":"TypeVar","contents":"j"}]},{"annotation":[{"start":[47,60],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[47,64]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}}},{"EDType":{"edTypeName":"T2","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,20]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,20]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,20]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"T2","edTypeSynonymArguments":[["a",{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,20]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["z",{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,20]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]],"edTypeSynonymType":{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,20]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[49,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,22]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[49,23],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,24]},[]],"tag":"TypeVar","contents":"z"}]}}},{"EDType":{"edTypeName":"T3","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,22]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[50,26],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,28]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[50,26],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,28]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,22]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"T3","edTypeSynonymArguments":[["a",{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,22]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["b",{"annotation":[{"start":[50,26],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,28]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["z",{"annotation":[{"start":[50,26],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,28]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]],"edTypeSynonymType":{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,33]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,22]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[50,23],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,24]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[50,26],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,26],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,30]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,26],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,28]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple","Nested"],"T2"]},{"annotation":[{"start":[50,29],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,30]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[50,31],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,32]},[]],"tag":"TypeVar","contents":"z"}]}]}}},{"EDType":{"edTypeName":"T4","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,24]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[51,28],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,30]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[51,28],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,30]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[51,28],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,30]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,24]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]}]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"T4","edTypeSynonymArguments":[["a",{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,24]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["b",{"annotation":[{"start":[51,28],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,30]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["c",{"annotation":[{"start":[51,28],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,30]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["z",{"annotation":[{"start":[51,28],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,30]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]],"edTypeSynonymType":{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,26]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,24]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[51,25],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,26]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[51,28],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,28],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,28],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,28],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,30]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple","Nested"],"T3"]},{"annotation":[{"start":[51,31],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,32]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[51,33],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,34]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[51,35],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,36]},[]],"tag":"TypeVar","contents":"z"}]}]}}},{"EDType":{"edTypeName":"T5","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[52,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,26]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[52,30],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,32]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[52,30],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,32]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[52,30],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,32]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[52,30],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,32]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[52,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,26]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]}]}]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"T5","edTypeSynonymArguments":[["a",{"annotation":[{"start":[52,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,26]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["b",{"annotation":[{"start":[52,30],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,32]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["c",{"annotation":[{"start":[52,30],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,32]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["d",{"annotation":[{"start":[52,30],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,32]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["z",{"annotation":[{"start":[52,30],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,32]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]],"edTypeSynonymType":{"annotation":[{"start":[52,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,28]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,26]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[52,27],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,28]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[52,30],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,30],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,30],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,30],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,30],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,32]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple","Nested"],"T4"]},{"annotation":[{"start":[52,33],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,34]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[52,35],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,36]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[52,37],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,38]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[52,39],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,40]},[]],"tag":"TypeVar","contents":"z"}]}]}}},{"EDType":{"edTypeName":"T6","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[53,23],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[53,28]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[53,32],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[53,34]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[53,32],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[53,34]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[53,32],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[53,34]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[53,32],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[53,34]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[53,32],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[53,34]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[53,23],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[53,28]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]}]}]}]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"T6","edTypeSynonymArguments":[["a",{"annotation":[{"start":[53,23],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[53,28]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["b",{"annotation":[{"start":[53,32],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[53,34]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["c",{"annotation":[{"start":[53,32],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[53,34]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["d",{"annotation":[{"start":[53,32],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[53,34]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["e",{"annotation":[{"start":[53,32],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[53,34]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["z",{"annotation":[{"start":[53,32],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[53,34]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]],"edTypeSynonymType":{"annotation":[{"start":[53,23],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[53,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,23],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[53,30]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,23],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[53,28]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[53,29],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[53,30]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[53,32],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[53,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,32],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[53,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,32],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[53,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,32],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[53,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,32],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[53,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,32],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[53,34]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple","Nested"],"T5"]},{"annotation":[{"start":[53,35],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[53,36]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[53,37],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[53,38]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[53,39],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[53,40]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[53,41],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[53,42]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[53,43],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[53,44]},[]],"tag":"TypeVar","contents":"z"}]}]}}},{"EDType":{"edTypeName":"T7","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[54,25],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[54,30]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[54,34],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[54,36]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[54,34],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[54,36]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[54,34],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[54,36]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[54,34],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[54,36]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[54,34],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[54,36]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[54,34],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[54,36]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[54,25],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[54,30]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]}]}]}]}]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"T7","edTypeSynonymArguments":[["a",{"annotation":[{"start":[54,25],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[54,30]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["b",{"annotation":[{"start":[54,34],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[54,36]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["c",{"annotation":[{"start":[54,34],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[54,36]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["d",{"annotation":[{"start":[54,34],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[54,36]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["e",{"annotation":[{"start":[54,34],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[54,36]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["f",{"annotation":[{"start":[54,34],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[54,36]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["z",{"annotation":[{"start":[54,34],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[54,36]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]],"edTypeSynonymType":{"annotation":[{"start":[54,25],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[54,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[54,25],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[54,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[54,25],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[54,30]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[54,31],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[54,32]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[54,34],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[54,48]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[54,34],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[54,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[54,34],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[54,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[54,34],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[54,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[54,34],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[54,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[54,34],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[54,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[54,34],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[54,36]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple","Nested"],"T6"]},{"annotation":[{"start":[54,37],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[54,38]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[54,39],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[54,40]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[54,41],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[54,42]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[54,43],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[54,44]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[54,45],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[54,46]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[54,47],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[54,48]},[]],"tag":"TypeVar","contents":"z"}]}]}}},{"EDType":{"edTypeName":"T8","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[55,27],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[55,32]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[55,36],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[55,38]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[55,36],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[55,38]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[55,36],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[55,38]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[55,36],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[55,38]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[55,36],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[55,38]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[55,36],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[55,38]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[55,36],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[55,38]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[55,27],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[55,32]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]}]}]}]}]}]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"T8","edTypeSynonymArguments":[["a",{"annotation":[{"start":[55,27],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[55,32]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["b",{"annotation":[{"start":[55,36],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[55,38]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["c",{"annotation":[{"start":[55,36],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[55,38]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["d",{"annotation":[{"start":[55,36],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[55,38]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["e",{"annotation":[{"start":[55,36],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[55,38]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["f",{"annotation":[{"start":[55,36],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[55,38]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["g",{"annotation":[{"start":[55,36],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[55,38]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["z",{"annotation":[{"start":[55,36],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[55,38]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]],"edTypeSynonymType":{"annotation":[{"start":[55,27],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[55,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,27],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[55,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,27],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[55,32]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[55,33],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[55,34]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[55,36],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[55,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,36],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[55,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,36],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[55,48]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,36],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[55,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,36],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[55,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,36],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[55,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,36],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[55,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,36],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[55,38]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple","Nested"],"T7"]},{"annotation":[{"start":[55,39],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[55,40]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[55,41],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[55,42]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[55,43],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[55,44]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[55,45],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[55,46]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[55,47],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[55,48]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[55,49],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[55,50]},[]],"tag":"TypeVar","contents":"g"}]},{"annotation":[{"start":[55,51],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[55,52]},[]],"tag":"TypeVar","contents":"z"}]}]}}},{"EDType":{"edTypeName":"T9","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[56,29],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[56,34]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[56,38],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[56,40]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[56,38],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[56,40]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[56,38],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[56,40]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[56,38],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[56,40]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[56,38],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[56,40]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[56,38],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[56,40]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[56,38],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[56,40]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[56,38],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[56,40]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[56,29],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[56,34]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]}]}]}]}]}]}]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"T9","edTypeSynonymArguments":[["a",{"annotation":[{"start":[56,29],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[56,34]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["b",{"annotation":[{"start":[56,38],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[56,40]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["c",{"annotation":[{"start":[56,38],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[56,40]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["d",{"annotation":[{"start":[56,38],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[56,40]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["e",{"annotation":[{"start":[56,38],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[56,40]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["f",{"annotation":[{"start":[56,38],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[56,40]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["g",{"annotation":[{"start":[56,38],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[56,40]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["h",{"annotation":[{"start":[56,38],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[56,40]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["z",{"annotation":[{"start":[56,38],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[56,40]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]],"edTypeSynonymType":{"annotation":[{"start":[56,29],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[56,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[56,29],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[56,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[56,29],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[56,34]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[56,35],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[56,36]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[56,38],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[56,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[56,38],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[56,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[56,38],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[56,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[56,38],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[56,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[56,38],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[56,48]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[56,38],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[56,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[56,38],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[56,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[56,38],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[56,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[56,38],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[56,40]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple","Nested"],"T8"]},{"annotation":[{"start":[56,41],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[56,42]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[56,43],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[56,44]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[56,45],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[56,46]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[56,47],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[56,48]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[56,49],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[56,50]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[56,51],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[56,52]},[]],"tag":"TypeVar","contents":"g"}]},{"annotation":[{"start":[56,53],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[56,54]},[]],"tag":"TypeVar","contents":"h"}]},{"annotation":[{"start":[56,55],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[56,56]},[]],"tag":"TypeVar","contents":"z"}]}]}}},{"EDType":{"edTypeName":"T10","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[57,32],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[57,37]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[57,41],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[57,43]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[57,41],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[57,43]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[57,41],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[57,43]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[57,41],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[57,43]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[57,41],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[57,43]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[57,41],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[57,43]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[57,41],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[57,43]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[57,41],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[57,43]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[57,41],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[57,43]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[57,32],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[57,37]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]}]}]}]}]}]}]}]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"T10","edTypeSynonymArguments":[["a",{"annotation":[{"start":[57,32],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[57,37]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["b",{"annotation":[{"start":[57,41],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[57,43]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["c",{"annotation":[{"start":[57,41],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[57,43]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["d",{"annotation":[{"start":[57,41],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[57,43]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["e",{"annotation":[{"start":[57,41],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[57,43]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["f",{"annotation":[{"start":[57,41],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[57,43]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["g",{"annotation":[{"start":[57,41],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[57,43]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["h",{"annotation":[{"start":[57,41],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[57,43]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["i",{"annotation":[{"start":[57,41],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[57,43]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["z",{"annotation":[{"start":[57,41],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[57,43]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]],"edTypeSynonymType":{"annotation":[{"start":[57,32],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[57,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[57,32],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[57,39]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[57,32],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[57,37]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[57,38],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[57,39]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[57,41],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[57,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[57,41],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[57,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[57,41],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[57,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[57,41],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[57,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[57,41],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[57,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[57,41],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[57,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[57,41],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[57,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[57,41],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[57,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[57,41],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[57,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[57,41],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[57,43]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple","Nested"],"T9"]},{"annotation":[{"start":[57,44],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[57,45]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[57,46],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[57,47]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[57,48],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[57,49]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[57,50],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[57,51]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[57,52],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[57,53]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[57,54],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[57,55]},[]],"tag":"TypeVar","contents":"g"}]},{"annotation":[{"start":[57,56],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[57,57]},[]],"tag":"TypeVar","contents":"h"}]},{"annotation":[{"start":[57,58],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[57,59]},[]],"tag":"TypeVar","contents":"i"}]},{"annotation":[{"start":[57,60],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[57,61]},[]],"tag":"TypeVar","contents":"z"}]}]}}},{"EDType":{"edTypeName":"T11","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[58,34],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[58,39]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[58,43],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[58,46]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[58,43],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[58,46]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[58,43],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[58,46]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[58,43],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[58,46]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[58,43],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[58,46]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[58,43],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[58,46]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[58,43],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[58,46]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[58,43],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[58,46]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[58,43],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[58,46]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[58,43],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[58,46]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[58,34],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[58,39]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]}]}]}]}]}]}]}]}]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"T11","edTypeSynonymArguments":[["a",{"annotation":[{"start":[58,34],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[58,39]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["b",{"annotation":[{"start":[58,43],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[58,46]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["c",{"annotation":[{"start":[58,43],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[58,46]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["d",{"annotation":[{"start":[58,43],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[58,46]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["e",{"annotation":[{"start":[58,43],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[58,46]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["f",{"annotation":[{"start":[58,43],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[58,46]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["g",{"annotation":[{"start":[58,43],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[58,46]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["h",{"annotation":[{"start":[58,43],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[58,46]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["i",{"annotation":[{"start":[58,43],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[58,46]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["j",{"annotation":[{"start":[58,43],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[58,46]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["z",{"annotation":[{"start":[58,43],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[58,46]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]],"edTypeSynonymType":{"annotation":[{"start":[58,34],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[58,67]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[58,34],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[58,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[58,34],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[58,39]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[58,40],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[58,41]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[58,43],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[58,66]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[58,43],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[58,64]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[58,43],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[58,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[58,43],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[58,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[58,43],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[58,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[58,43],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[58,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[58,43],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[58,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[58,43],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[58,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[58,43],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[58,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[58,43],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[58,48]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[58,43],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[58,46]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple","Nested"],"T10"]},{"annotation":[{"start":[58,47],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[58,48]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[58,49],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[58,50]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[58,51],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[58,52]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[58,53],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[58,54]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[58,55],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[58,56]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[58,57],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[58,58]},[]],"tag":"TypeVar","contents":"g"}]},{"annotation":[{"start":[58,59],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[58,60]},[]],"tag":"TypeVar","contents":"h"}]},{"annotation":[{"start":[58,61],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[58,62]},[]],"tag":"TypeVar","contents":"i"}]},{"annotation":[{"start":[58,63],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[58,64]},[]],"tag":"TypeVar","contents":"j"}]},{"annotation":[{"start":[58,65],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[58,66]},[]],"tag":"TypeVar","contents":"z"}]}]}}},{"EDValue":{"edValueName":{"Ident":"tuple1"},"edValueType":{"annotation":[{"start":[61,11],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[61,34]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[61,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[61,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[61,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[61,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[61,23],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[61,25]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[61,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[61,22]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,20]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[61,33],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[61,34]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[38,22],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[38,26]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]},258]}}},{"EDValue":{"edValueName":{"Ident":"tuple2"},"edValueType":{"annotation":[{"start":[65,11],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[65,43]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[65,18],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[65,43]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[65,23],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[65,43]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[65,23],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[65,43]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[65,25],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[65,27]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[65,23],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[65,24]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[65,28],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[65,43]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[65,28],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[65,43]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[65,30],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[65,32]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[65,28],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[65,29]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,33]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,22]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[65,40],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[65,41]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,20]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[65,42],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[65,43]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[39,26],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[39,30]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}]}]},234]},235]}}},{"EDValue":{"edValueName":{"Ident":"tuple3"},"edValueType":{"annotation":[{"start":[69,11],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[69,52]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[69,18],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[69,52]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[69,18],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[69,52]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[69,25],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[69,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[69,25],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[69,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[69,27],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[69,29]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[69,25],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[69,26]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[69,30],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[69,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[69,30],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[69,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[69,32],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[69,34]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[69,30],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[69,31]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[69,35],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[69,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[69,35],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[69,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[69,37],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[69,39]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[69,35],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[69,36]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,26]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,24]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[69,47],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[69,48]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,33]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,22]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[69,49],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[69,50]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,20]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[69,51],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[69,52]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[40,30],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[40,34]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}]}]}]}]},228]},229]},230]}}},{"EDValue":{"edValueName":{"Ident":"tuple4"},"edValueType":{"annotation":[{"start":[73,11],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[73,61]},[]],"tag":"ForAll","contents":["d",{"annotation":[{"start":[73,18],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[73,61]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[73,18],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[73,61]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[73,18],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[73,61]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[73,27],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[73,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[73,27],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[73,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[73,29],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[73,31]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[73,27],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[73,28]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[73,32],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[73,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[73,32],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[73,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[73,34],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[73,36]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[73,32],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[73,33]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[73,37],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[73,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[73,37],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[73,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[73,39],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[73,41]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[73,37],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[73,38]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[73,42],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[73,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[73,42],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[73,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[73,44],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[73,46]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[73,42],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[73,43]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[52,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,28]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,26]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[73,54],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[73,55]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,26]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,24]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[73,56],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[73,57]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,33]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,22]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[73,58],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[73,59]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,20]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[73,60],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[73,61]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[41,34],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[41,38]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}]}]}]}]}]}]},220]},221]},222]},223]}}},{"EDValue":{"edValueName":{"Ident":"tuple5"},"edValueType":{"annotation":[{"start":[77,11],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[77,70]},[]],"tag":"ForAll","contents":["e",{"annotation":[{"start":[77,18],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[77,70]},[]],"tag":"ForAll","contents":["d",{"annotation":[{"start":[77,18],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[77,70]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[77,18],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[77,70]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[77,18],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[77,70]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[77,29],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[77,70]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[77,29],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[77,70]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[77,31],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[77,33]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[77,29],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[77,30]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[77,34],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[77,70]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[77,34],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[77,70]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[77,36],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[77,38]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[77,34],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[77,35]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[77,39],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[77,70]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[77,39],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[77,70]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[77,41],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[77,43]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[77,39],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[77,40]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[77,44],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[77,70]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[77,44],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[77,70]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[77,46],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[77,48]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[77,44],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[77,45]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[77,49],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[77,70]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[77,49],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[77,70]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[77,51],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[77,53]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[77,49],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[77,50]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[53,23],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[53,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,23],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[53,30]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,23],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[53,28]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[77,61],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[77,62]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[52,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,28]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,26]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[77,63],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[77,64]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,26]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,24]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[77,65],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[77,66]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,33]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,22]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[77,67],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[77,68]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,20]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[77,69],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[77,70]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[42,37],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[42,41]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}]}]}]}]}]}]}]}]},210]},211]},212]},213]},214]}}},{"EDValue":{"edValueName":{"Ident":"tuple6"},"edValueType":{"annotation":[{"start":[81,11],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[81,79]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[81,18],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[81,79]},[]],"tag":"ForAll","contents":["e",{"annotation":[{"start":[81,18],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[81,79]},[]],"tag":"ForAll","contents":["d",{"annotation":[{"start":[81,18],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[81,79]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[81,18],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[81,79]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[81,18],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[81,79]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[81,31],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[81,79]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[81,31],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[81,79]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[81,33],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[81,35]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[81,31],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[81,32]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[81,36],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[81,79]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[81,36],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[81,79]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[81,38],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[81,40]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[81,36],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[81,37]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[81,41],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[81,79]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[81,41],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[81,79]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[81,43],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[81,45]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[81,41],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[81,42]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[81,46],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[81,79]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[81,46],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[81,79]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[81,48],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[81,50]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[81,46],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[81,47]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[81,51],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[81,79]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[81,51],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[81,79]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[81,53],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[81,55]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[81,51],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[81,52]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[81,56],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[81,79]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[81,56],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[81,79]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[81,58],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[81,60]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[81,56],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[81,57]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[54,25],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[54,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[54,25],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[54,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[54,25],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[54,30]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[81,68],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[81,69]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[53,23],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[53,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,23],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[53,30]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,23],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[53,28]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[81,70],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[81,71]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[52,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,28]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,26]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[81,72],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[81,73]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,26]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,24]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[81,74],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[81,75]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,33]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,22]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[81,76],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[81,77]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,20]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[81,78],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[81,79]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[43,42],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[43,46]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}]}]}]}]}]}]}]}]}]}]},198]},199]},200]},201]},202]},203]}}},{"EDValue":{"edValueName":{"Ident":"tuple7"},"edValueType":{"annotation":[{"start":[85,11],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[85,88]},[]],"tag":"ForAll","contents":["g",{"annotation":[{"start":[85,18],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[85,88]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[85,18],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[85,88]},[]],"tag":"ForAll","contents":["e",{"annotation":[{"start":[85,18],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[85,88]},[]],"tag":"ForAll","contents":["d",{"annotation":[{"start":[85,18],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[85,88]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[85,18],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[85,88]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[85,18],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[85,88]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[85,33],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[85,88]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[85,33],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[85,88]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[85,35],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[85,37]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[85,33],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[85,34]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[85,38],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[85,88]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[85,38],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[85,88]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[85,40],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[85,42]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[85,38],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[85,39]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[85,43],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[85,88]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[85,43],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[85,88]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[85,45],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[85,47]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[85,43],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[85,44]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[85,48],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[85,88]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[85,48],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[85,88]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[85,50],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[85,52]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[85,48],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[85,49]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[85,53],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[85,88]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[85,53],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[85,88]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[85,55],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[85,57]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[85,53],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[85,54]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[85,58],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[85,88]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[85,58],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[85,88]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[85,60],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[85,62]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[85,58],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[85,59]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[85,63],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[85,88]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[85,63],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[85,88]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[85,65],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[85,67]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[85,63],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[85,64]},[]],"tag":"TypeVar","contents":"g"}]},{"annotation":[{"start":[55,27],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[55,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,27],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[55,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,27],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[55,32]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[85,75],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[85,76]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[54,25],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[54,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[54,25],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[54,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[54,25],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[54,30]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[85,77],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[85,78]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[53,23],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[53,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,23],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[53,30]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,23],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[53,28]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[85,79],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[85,80]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[52,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,28]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,26]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[85,81],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[85,82]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,26]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,24]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[85,83],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[85,84]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,33]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,22]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[85,85],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[85,86]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,20]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[85,87],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[85,88]},[]],"tag":"TypeVar","contents":"g"}]},{"annotation":[{"start":[44,46],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[44,50]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}]}]}]}]}]}]}]}]}]}]}]}]},184]},185]},186]},187]},188]},189]},190]}}},{"EDValue":{"edValueName":{"Ident":"tuple8"},"edValueType":{"annotation":[{"start":[89,11],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[89,97]},[]],"tag":"ForAll","contents":["h",{"annotation":[{"start":[89,18],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[89,97]},[]],"tag":"ForAll","contents":["g",{"annotation":[{"start":[89,18],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[89,97]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[89,18],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[89,97]},[]],"tag":"ForAll","contents":["e",{"annotation":[{"start":[89,18],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[89,97]},[]],"tag":"ForAll","contents":["d",{"annotation":[{"start":[89,18],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[89,97]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[89,18],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[89,97]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[89,18],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[89,97]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[89,35],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[89,97]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[89,35],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[89,97]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[89,37],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[89,39]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[89,35],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[89,36]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[89,40],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[89,97]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[89,40],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[89,97]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[89,42],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[89,44]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[89,40],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[89,41]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[89,45],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[89,97]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[89,45],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[89,97]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[89,47],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[89,49]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[89,45],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[89,46]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[89,50],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[89,97]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[89,50],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[89,97]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[89,52],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[89,54]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[89,50],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[89,51]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[89,55],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[89,97]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[89,55],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[89,97]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[89,57],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[89,59]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[89,55],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[89,56]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[89,60],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[89,97]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[89,60],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[89,97]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[89,62],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[89,64]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[89,60],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[89,61]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[89,65],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[89,97]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[89,65],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[89,97]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[89,67],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[89,69]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[89,65],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[89,66]},[]],"tag":"TypeVar","contents":"g"}]},{"annotation":[{"start":[89,70],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[89,97]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[89,70],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[89,97]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[89,72],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[89,74]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[89,70],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[89,71]},[]],"tag":"TypeVar","contents":"h"}]},{"annotation":[{"start":[56,29],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[56,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[56,29],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[56,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[56,29],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[56,34]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[89,82],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[89,83]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[55,27],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[55,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,27],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[55,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,27],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[55,32]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[89,84],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[89,85]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[54,25],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[54,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[54,25],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[54,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[54,25],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[54,30]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[89,86],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[89,87]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[53,23],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[53,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,23],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[53,30]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,23],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[53,28]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[89,88],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[89,89]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[52,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,28]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,26]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[89,90],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[89,91]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,26]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,24]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[89,92],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[89,93]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,33]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,22]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[89,94],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[89,95]},[]],"tag":"TypeVar","contents":"g"}]},{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,20]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[89,96],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[89,97]},[]],"tag":"TypeVar","contents":"h"}]},{"annotation":[{"start":[45,50],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[45,54]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]},168]},169]},170]},171]},172]},173]},174]},175]}}},{"EDValue":{"edValueName":{"Ident":"tuple9"},"edValueType":{"annotation":[{"start":[93,11],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[93,106]},[]],"tag":"ForAll","contents":["i",{"annotation":[{"start":[93,18],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[93,106]},[]],"tag":"ForAll","contents":["h",{"annotation":[{"start":[93,18],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[93,106]},[]],"tag":"ForAll","contents":["g",{"annotation":[{"start":[93,18],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[93,106]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[93,18],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[93,106]},[]],"tag":"ForAll","contents":["e",{"annotation":[{"start":[93,18],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[93,106]},[]],"tag":"ForAll","contents":["d",{"annotation":[{"start":[93,18],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[93,106]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[93,18],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[93,106]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[93,18],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[93,106]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[93,37],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[93,106]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[93,37],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[93,106]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[93,39],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[93,41]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[93,37],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[93,38]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[93,42],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[93,106]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[93,42],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[93,106]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[93,44],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[93,46]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[93,42],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[93,43]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[93,47],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[93,106]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[93,47],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[93,106]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[93,49],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[93,51]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[93,47],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[93,48]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[93,52],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[93,106]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[93,52],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[93,106]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[93,54],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[93,56]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[93,52],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[93,53]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[93,57],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[93,106]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[93,57],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[93,106]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[93,59],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[93,61]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[93,57],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[93,58]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[93,62],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[93,106]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[93,62],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[93,106]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[93,64],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[93,66]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[93,62],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[93,63]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[93,67],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[93,106]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[93,67],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[93,106]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[93,69],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[93,71]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[93,67],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[93,68]},[]],"tag":"TypeVar","contents":"g"}]},{"annotation":[{"start":[93,72],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[93,106]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[93,72],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[93,106]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[93,74],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[93,76]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[93,72],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[93,73]},[]],"tag":"TypeVar","contents":"h"}]},{"annotation":[{"start":[93,77],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[93,106]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[93,77],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[93,106]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[93,79],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[93,81]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[93,77],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[93,78]},[]],"tag":"TypeVar","contents":"i"}]},{"annotation":[{"start":[57,32],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[57,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[57,32],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[57,39]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[57,32],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[57,37]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[93,89],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[93,90]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[56,29],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[56,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[56,29],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[56,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[56,29],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[56,34]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[93,91],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[93,92]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[55,27],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[55,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,27],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[55,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,27],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[55,32]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[93,93],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[93,94]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[54,25],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[54,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[54,25],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[54,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[54,25],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[54,30]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[93,95],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[93,96]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[53,23],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[53,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,23],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[53,30]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,23],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[53,28]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[93,97],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[93,98]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[52,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,28]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,26]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[93,99],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[93,100]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,26]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,24]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[93,101],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[93,102]},[]],"tag":"TypeVar","contents":"g"}]},{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,33]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,22]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[93,103],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[93,104]},[]],"tag":"TypeVar","contents":"h"}]},{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,20]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[93,105],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[93,106]},[]],"tag":"TypeVar","contents":"i"}]},{"annotation":[{"start":[46,55],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[46,59]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]},150]},151]},152]},153]},154]},155]},156]},157]},158]}}},{"EDValue":{"edValueName":{"Ident":"tuple10"},"edValueType":{"annotation":[{"start":[97,12],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[97,117]},[]],"tag":"ForAll","contents":["j",{"annotation":[{"start":[97,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[97,117]},[]],"tag":"ForAll","contents":["i",{"annotation":[{"start":[97,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[97,117]},[]],"tag":"ForAll","contents":["h",{"annotation":[{"start":[97,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[97,117]},[]],"tag":"ForAll","contents":["g",{"annotation":[{"start":[97,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[97,117]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[97,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[97,117]},[]],"tag":"ForAll","contents":["e",{"annotation":[{"start":[97,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[97,117]},[]],"tag":"ForAll","contents":["d",{"annotation":[{"start":[97,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[97,117]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[97,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[97,117]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[97,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[97,117]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[97,40],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[97,117]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[97,40],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[97,117]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[97,42],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[97,44]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[97,40],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[97,41]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[97,45],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[97,117]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[97,45],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[97,117]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[97,47],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[97,49]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[97,45],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[97,46]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[97,50],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[97,117]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[97,50],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[97,117]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[97,52],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[97,54]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[97,50],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[97,51]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[97,55],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[97,117]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[97,55],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[97,117]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[97,57],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[97,59]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[97,55],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[97,56]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[97,60],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[97,117]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[97,60],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[97,117]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[97,62],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[97,64]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[97,60],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[97,61]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[97,65],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[97,117]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[97,65],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[97,117]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[97,67],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[97,69]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[97,65],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[97,66]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[97,70],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[97,117]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[97,70],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[97,117]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[97,72],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[97,74]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[97,70],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[97,71]},[]],"tag":"TypeVar","contents":"g"}]},{"annotation":[{"start":[97,75],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[97,117]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[97,75],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[97,117]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[97,77],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[97,79]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[97,75],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[97,76]},[]],"tag":"TypeVar","contents":"h"}]},{"annotation":[{"start":[97,80],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[97,117]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[97,80],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[97,117]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[97,82],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[97,84]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[97,80],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[97,81]},[]],"tag":"TypeVar","contents":"i"}]},{"annotation":[{"start":[97,85],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[97,117]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[97,85],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[97,117]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[97,87],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[97,89]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[97,85],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[97,86]},[]],"tag":"TypeVar","contents":"j"}]},{"annotation":[{"start":[58,34],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[58,67]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[58,34],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[58,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[58,34],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[58,39]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[97,98],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[97,99]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[57,32],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[57,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[57,32],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[57,39]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[57,32],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[57,37]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[97,100],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[97,101]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[56,29],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[56,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[56,29],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[56,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[56,29],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[56,34]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[97,102],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[97,103]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[55,27],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[55,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,27],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[55,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,27],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[55,32]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[97,104],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[97,105]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[54,25],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[54,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[54,25],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[54,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[54,25],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[54,30]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[97,106],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[97,107]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[53,23],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[53,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,23],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[53,30]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,23],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[53,28]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[97,108],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[97,109]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[52,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,28]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,26]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[97,110],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[97,111]},[]],"tag":"TypeVar","contents":"g"}]},{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,26]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,24]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[97,112],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[97,113]},[]],"tag":"TypeVar","contents":"h"}]},{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,33]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,22]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[97,114],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[97,115]},[]],"tag":"TypeVar","contents":"i"}]},{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,20]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[97,116],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[97,117]},[]],"tag":"TypeVar","contents":"j"}]},{"annotation":[{"start":[47,60],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[47,64]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]},238]},239]},240]},241]},242]},243]},244]},245]},246]},247]}}},{"EDValue":{"edValueName":{"Ident":"get1"},"edValueType":{"annotation":[{"start":[101,9],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[101,32]},[]],"tag":"ForAll","contents":["z",{"annotation":[{"start":[101,16],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[101,32]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[101,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[101,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[101,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[101,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[101,28],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[101,30]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,20]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[101,24],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[101,25]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[101,26],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[101,27]},[]],"tag":"TypeVar","contents":"z"}]}]},{"annotation":[{"start":[101,31],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[101,32]},[]],"tag":"TypeVar","contents":"a"}]},536]},537]}}},{"EDValue":{"edValueName":{"Ident":"get2"},"edValueType":{"annotation":[{"start":[105,9],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[105,36]},[]],"tag":"ForAll","contents":["z",{"annotation":[{"start":[105,16],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[105,36]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[105,16],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[105,36]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[105,23],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[105,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[105,23],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[105,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[105,32],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[105,34]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,33]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,22]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[105,26],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[105,27]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,20]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[105,28],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[105,29]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[105,30],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[105,31]},[]],"tag":"TypeVar","contents":"z"}]}]}]},{"annotation":[{"start":[105,35],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[105,36]},[]],"tag":"TypeVar","contents":"b"}]},508]},509]},510]}}},{"EDValue":{"edValueName":{"Ident":"get3"},"edValueType":{"annotation":[{"start":[109,9],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[109,40]},[]],"tag":"ForAll","contents":["z",{"annotation":[{"start":[109,16],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[109,40]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[109,16],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[109,40]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[109,16],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[109,40]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[109,25],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[109,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[109,25],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[109,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[109,36],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[109,38]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,26]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,24]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[109,28],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[109,29]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,33]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,22]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[109,30],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[109,31]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,20]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[109,32],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[109,33]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[109,34],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[109,35]},[]],"tag":"TypeVar","contents":"z"}]}]}]}]},{"annotation":[{"start":[109,39],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[109,40]},[]],"tag":"TypeVar","contents":"c"}]},500]},501]},502]},503]}}},{"EDValue":{"edValueName":{"Ident":"get4"},"edValueType":{"annotation":[{"start":[113,9],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[113,44]},[]],"tag":"ForAll","contents":["z",{"annotation":[{"start":[113,16],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[113,44]},[]],"tag":"ForAll","contents":["d",{"annotation":[{"start":[113,16],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[113,44]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[113,16],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[113,44]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[113,16],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[113,44]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[113,27],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[113,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[113,27],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[113,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[113,40],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[113,42]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[52,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,28]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,26]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[113,30],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[113,31]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,26]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,24]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[113,32],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[113,33]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,33]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,22]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[113,34],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[113,35]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,20]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[113,36],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[113,37]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[113,38],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[113,39]},[]],"tag":"TypeVar","contents":"z"}]}]}]}]}]},{"annotation":[{"start":[113,43],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[113,44]},[]],"tag":"TypeVar","contents":"d"}]},490]},491]},492]},493]},494]}}},{"EDValue":{"edValueName":{"Ident":"get5"},"edValueType":{"annotation":[{"start":[117,9],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[117,48]},[]],"tag":"ForAll","contents":["z",{"annotation":[{"start":[117,16],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[117,48]},[]],"tag":"ForAll","contents":["e",{"annotation":[{"start":[117,16],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[117,48]},[]],"tag":"ForAll","contents":["d",{"annotation":[{"start":[117,16],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[117,48]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[117,16],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[117,48]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[117,16],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[117,48]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[117,29],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[117,48]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[117,29],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[117,48]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[117,44],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[117,46]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[53,23],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[53,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,23],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[53,30]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,23],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[53,28]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[117,32],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[117,33]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[52,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,28]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,26]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[117,34],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[117,35]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,26]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,24]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[117,36],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[117,37]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,33]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,22]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[117,38],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[117,39]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,20]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[117,40],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[117,41]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[117,42],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[117,43]},[]],"tag":"TypeVar","contents":"z"}]}]}]}]}]}]},{"annotation":[{"start":[117,47],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[117,48]},[]],"tag":"TypeVar","contents":"e"}]},478]},479]},480]},481]},482]},483]}}},{"EDValue":{"edValueName":{"Ident":"get6"},"edValueType":{"annotation":[{"start":[121,9],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[121,52]},[]],"tag":"ForAll","contents":["z",{"annotation":[{"start":[121,16],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[121,52]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[121,16],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[121,52]},[]],"tag":"ForAll","contents":["e",{"annotation":[{"start":[121,16],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[121,52]},[]],"tag":"ForAll","contents":["d",{"annotation":[{"start":[121,16],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[121,52]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[121,16],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[121,52]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[121,16],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[121,52]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[121,31],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[121,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[121,31],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[121,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[121,48],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[121,50]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[54,25],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[54,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[54,25],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[54,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[54,25],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[54,30]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[121,34],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[121,35]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[53,23],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[53,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,23],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[53,30]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,23],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[53,28]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[121,36],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[121,37]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[52,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,28]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,26]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[121,38],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[121,39]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,26]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,24]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[121,40],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[121,41]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,33]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,22]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[121,42],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[121,43]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,20]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[121,44],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[121,45]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[121,46],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[121,47]},[]],"tag":"TypeVar","contents":"z"}]}]}]}]}]}]}]},{"annotation":[{"start":[121,51],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[121,52]},[]],"tag":"TypeVar","contents":"f"}]},464]},465]},466]},467]},468]},469]},470]}}},{"EDValue":{"edValueName":{"Ident":"get7"},"edValueType":{"annotation":[{"start":[125,9],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[125,56]},[]],"tag":"ForAll","contents":["z",{"annotation":[{"start":[125,16],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[125,56]},[]],"tag":"ForAll","contents":["g",{"annotation":[{"start":[125,16],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[125,56]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[125,16],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[125,56]},[]],"tag":"ForAll","contents":["e",{"annotation":[{"start":[125,16],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[125,56]},[]],"tag":"ForAll","contents":["d",{"annotation":[{"start":[125,16],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[125,56]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[125,16],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[125,56]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[125,16],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[125,56]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[125,33],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[125,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[125,33],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[125,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[125,52],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[125,54]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[55,27],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[55,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,27],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[55,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,27],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[55,32]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[125,36],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[125,37]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[54,25],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[54,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[54,25],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[54,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[54,25],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[54,30]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[125,38],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[125,39]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[53,23],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[53,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,23],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[53,30]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,23],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[53,28]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[125,40],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[125,41]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[52,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,28]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,26]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[125,42],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[125,43]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,26]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,24]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[125,44],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[125,45]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,33]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,22]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[125,46],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[125,47]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,20]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[125,48],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[125,49]},[]],"tag":"TypeVar","contents":"g"}]},{"annotation":[{"start":[125,50],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[125,51]},[]],"tag":"TypeVar","contents":"z"}]}]}]}]}]}]}]}]},{"annotation":[{"start":[125,55],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[125,56]},[]],"tag":"TypeVar","contents":"g"}]},448]},449]},450]},451]},452]},453]},454]},455]}}},{"EDValue":{"edValueName":{"Ident":"get8"},"edValueType":{"annotation":[{"start":[129,9],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[129,60]},[]],"tag":"ForAll","contents":["z",{"annotation":[{"start":[129,16],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[129,60]},[]],"tag":"ForAll","contents":["h",{"annotation":[{"start":[129,16],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[129,60]},[]],"tag":"ForAll","contents":["g",{"annotation":[{"start":[129,16],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[129,60]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[129,16],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[129,60]},[]],"tag":"ForAll","contents":["e",{"annotation":[{"start":[129,16],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[129,60]},[]],"tag":"ForAll","contents":["d",{"annotation":[{"start":[129,16],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[129,60]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[129,16],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[129,60]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[129,16],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[129,60]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[129,35],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[129,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[129,35],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[129,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[129,56],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[129,58]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[56,29],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[56,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[56,29],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[56,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[56,29],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[56,34]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[129,38],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[129,39]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[55,27],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[55,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,27],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[55,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,27],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[55,32]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[129,40],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[129,41]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[54,25],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[54,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[54,25],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[54,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[54,25],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[54,30]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[129,42],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[129,43]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[53,23],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[53,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,23],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[53,30]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,23],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[53,28]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[129,44],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[129,45]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[52,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,28]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,26]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[129,46],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[129,47]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,26]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,24]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[129,48],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[129,49]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,33]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,22]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[129,50],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[129,51]},[]],"tag":"TypeVar","contents":"g"}]},{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,20]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[129,52],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[129,53]},[]],"tag":"TypeVar","contents":"h"}]},{"annotation":[{"start":[129,54],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[129,55]},[]],"tag":"TypeVar","contents":"z"}]}]}]}]}]}]}]}]}]},{"annotation":[{"start":[129,59],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[129,60]},[]],"tag":"TypeVar","contents":"h"}]},430]},431]},432]},433]},434]},435]},436]},437]},438]}}},{"EDValue":{"edValueName":{"Ident":"get9"},"edValueType":{"annotation":[{"start":[133,9],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[133,65]},[]],"tag":"ForAll","contents":["z",{"annotation":[{"start":[133,16],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[133,65]},[]],"tag":"ForAll","contents":["i",{"annotation":[{"start":[133,16],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[133,65]},[]],"tag":"ForAll","contents":["h",{"annotation":[{"start":[133,16],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[133,65]},[]],"tag":"ForAll","contents":["g",{"annotation":[{"start":[133,16],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[133,65]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[133,16],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[133,65]},[]],"tag":"ForAll","contents":["e",{"annotation":[{"start":[133,16],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[133,65]},[]],"tag":"ForAll","contents":["d",{"annotation":[{"start":[133,16],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[133,65]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[133,16],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[133,65]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[133,16],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[133,65]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[133,37],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[133,65]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[133,37],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[133,65]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[133,61],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[133,63]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[57,32],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[57,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[57,32],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[57,39]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[57,32],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[57,37]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[133,41],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[133,42]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[56,29],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[56,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[56,29],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[56,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[56,29],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[56,34]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[133,43],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[133,44]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[55,27],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[55,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,27],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[55,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,27],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[55,32]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[133,45],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[133,46]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[54,25],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[54,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[54,25],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[54,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[54,25],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[54,30]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[133,47],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[133,48]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[53,23],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[53,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,23],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[53,30]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,23],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[53,28]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[133,49],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[133,50]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[52,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,28]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,26]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[133,51],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[133,52]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,26]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,24]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[133,53],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[133,54]},[]],"tag":"TypeVar","contents":"g"}]},{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,33]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,22]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[133,55],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[133,56]},[]],"tag":"TypeVar","contents":"h"}]},{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,20]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[133,57],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[133,58]},[]],"tag":"TypeVar","contents":"i"}]},{"annotation":[{"start":[133,59],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[133,60]},[]],"tag":"TypeVar","contents":"z"}]}]}]}]}]}]}]}]}]}]},{"annotation":[{"start":[133,64],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[133,65]},[]],"tag":"TypeVar","contents":"i"}]},410]},411]},412]},413]},414]},415]},416]},417]},418]},419]}}},{"EDValue":{"edValueName":{"Ident":"get10"},"edValueType":{"annotation":[{"start":[137,10],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[137,70]},[]],"tag":"ForAll","contents":["z",{"annotation":[{"start":[137,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[137,70]},[]],"tag":"ForAll","contents":["j",{"annotation":[{"start":[137,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[137,70]},[]],"tag":"ForAll","contents":["i",{"annotation":[{"start":[137,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[137,70]},[]],"tag":"ForAll","contents":["h",{"annotation":[{"start":[137,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[137,70]},[]],"tag":"ForAll","contents":["g",{"annotation":[{"start":[137,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[137,70]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[137,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[137,70]},[]],"tag":"ForAll","contents":["e",{"annotation":[{"start":[137,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[137,70]},[]],"tag":"ForAll","contents":["d",{"annotation":[{"start":[137,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[137,70]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[137,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[137,70]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[137,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[137,70]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[137,40],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[137,70]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[137,40],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[137,70]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[137,66],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[137,68]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[58,34],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[58,67]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[58,34],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[58,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[58,34],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[58,39]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[137,44],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[137,45]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[57,32],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[57,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[57,32],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[57,39]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[57,32],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[57,37]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[137,46],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[137,47]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[56,29],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[56,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[56,29],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[56,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[56,29],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[56,34]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[137,48],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[137,49]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[55,27],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[55,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,27],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[55,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,27],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[55,32]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[137,50],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[137,51]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[54,25],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[54,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[54,25],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[54,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[54,25],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[54,30]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[137,52],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[137,53]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[53,23],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[53,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,23],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[53,30]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,23],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[53,28]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[137,54],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[137,55]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[52,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,28]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,26]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[137,56],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[137,57]},[]],"tag":"TypeVar","contents":"g"}]},{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,26]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,24]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[137,58],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[137,59]},[]],"tag":"TypeVar","contents":"h"}]},{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,33]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,22]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[137,60],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[137,61]},[]],"tag":"TypeVar","contents":"i"}]},{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,20]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[137,62],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[137,63]},[]],"tag":"TypeVar","contents":"j"}]},{"annotation":[{"start":[137,64],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[137,65]},[]],"tag":"TypeVar","contents":"z"}]}]}]}]}]}]}]}]}]}]}]},{"annotation":[{"start":[137,69],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[137,70]},[]],"tag":"TypeVar","contents":"j"}]},514]},515]},516]},517]},518]},519]},520]},521]},522]},523]},524]}}},{"EDValue":{"edValueName":{"Ident":"over1"},"edValueType":{"annotation":[{"start":[141,10],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[141,52]},[]],"tag":"ForAll","contents":["z",{"annotation":[{"start":[141,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[141,52]},[]],"tag":"ForAll","contents":["r",{"annotation":[{"start":[141,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[141,52]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[141,24],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[141,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[141,24],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[141,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[141,33],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[141,35]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[141,25],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[141,31]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[141,25],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[141,31]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[141,27],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[141,29]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[141,25],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[141,26]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[141,30],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[141,31]},[]],"tag":"TypeVar","contents":"r"}]}]},{"annotation":[{"start":[141,36],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[141,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[141,36],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[141,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[141,43],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[141,45]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,20]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[141,39],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[141,40]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[141,41],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[141,42]},[]],"tag":"TypeVar","contents":"z"}]}]},{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,20]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[141,49],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[141,50]},[]],"tag":"TypeVar","contents":"r"}]},{"annotation":[{"start":[141,51],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[141,52]},[]],"tag":"TypeVar","contents":"z"}]}]}]},404]},405]},406]}}},{"EDValue":{"edValueName":{"Ident":"over2"},"edValueType":{"annotation":[{"start":[145,10],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[145,58]},[]],"tag":"ForAll","contents":["z",{"annotation":[{"start":[145,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[145,58]},[]],"tag":"ForAll","contents":["r",{"annotation":[{"start":[145,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[145,58]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[145,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[145,58]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[145,26],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[145,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[145,26],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[145,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[145,35],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[145,37]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[145,27],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[145,33]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[145,27],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[145,33]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[145,29],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[145,31]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[145,27],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[145,28]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[145,32],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[145,33]},[]],"tag":"TypeVar","contents":"r"}]}]},{"annotation":[{"start":[145,38],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[145,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[145,38],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[145,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[145,47],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[145,49]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,33]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,22]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[145,41],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[145,42]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,20]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[145,43],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[145,44]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[145,45],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[145,46]},[]],"tag":"TypeVar","contents":"z"}]}]}]},{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,33]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,22]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[145,53],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[145,54]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,20]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[145,55],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[145,56]},[]],"tag":"TypeVar","contents":"r"}]},{"annotation":[{"start":[145,57],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[145,58]},[]],"tag":"TypeVar","contents":"z"}]}]}]}]},372]},373]},374]},375]}}},{"EDValue":{"edValueName":{"Ident":"over3"},"edValueType":{"annotation":[{"start":[149,10],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[149,64]},[]],"tag":"ForAll","contents":["z",{"annotation":[{"start":[149,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[149,64]},[]],"tag":"ForAll","contents":["r",{"annotation":[{"start":[149,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[149,64]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[149,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[149,64]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[149,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[149,64]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[149,28],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[149,64]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[149,28],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[149,64]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[149,37],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[149,39]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[149,29],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[149,35]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[149,29],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[149,35]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[149,31],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[149,33]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[149,29],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[149,30]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[149,34],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[149,35]},[]],"tag":"TypeVar","contents":"r"}]}]},{"annotation":[{"start":[149,40],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[149,64]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[149,40],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[149,64]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[149,51],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[149,53]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,26]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,24]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[149,43],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[149,44]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,33]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,22]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[149,45],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[149,46]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,20]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[149,47],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[149,48]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[149,49],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[149,50]},[]],"tag":"TypeVar","contents":"z"}]}]}]}]},{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,26]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,24]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[149,57],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[149,58]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,33]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,22]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[149,59],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[149,60]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,20]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[149,61],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[149,62]},[]],"tag":"TypeVar","contents":"r"}]},{"annotation":[{"start":[149,63],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[149,64]},[]],"tag":"TypeVar","contents":"z"}]}]}]}]}]},362]},363]},364]},365]},366]}}},{"EDValue":{"edValueName":{"Ident":"over4"},"edValueType":{"annotation":[{"start":[153,10],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[153,70]},[]],"tag":"ForAll","contents":["z",{"annotation":[{"start":[153,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[153,70]},[]],"tag":"ForAll","contents":["r",{"annotation":[{"start":[153,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[153,70]},[]],"tag":"ForAll","contents":["d",{"annotation":[{"start":[153,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[153,70]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[153,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[153,70]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[153,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[153,70]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[153,30],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[153,70]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[153,30],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[153,70]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[153,39],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[153,41]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[153,31],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[153,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[153,31],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[153,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[153,33],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[153,35]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[153,31],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[153,32]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[153,36],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[153,37]},[]],"tag":"TypeVar","contents":"r"}]}]},{"annotation":[{"start":[153,42],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[153,70]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[153,42],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[153,70]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[153,55],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[153,57]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[52,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,28]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,26]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[153,45],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[153,46]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,26]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,24]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[153,47],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[153,48]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,33]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,22]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[153,49],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[153,50]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,20]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[153,51],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[153,52]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[153,53],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[153,54]},[]],"tag":"TypeVar","contents":"z"}]}]}]}]}]},{"annotation":[{"start":[52,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,28]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,26]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[153,61],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[153,62]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,26]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,24]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[153,63],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[153,64]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,33]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,22]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[153,65],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[153,66]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,20]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[153,67],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[153,68]},[]],"tag":"TypeVar","contents":"r"}]},{"annotation":[{"start":[153,69],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[153,70]},[]],"tag":"TypeVar","contents":"z"}]}]}]}]}]}]},350]},351]},352]},353]},354]},355]}}},{"EDValue":{"edValueName":{"Ident":"over5"},"edValueType":{"annotation":[{"start":[157,10],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[157,76]},[]],"tag":"ForAll","contents":["z",{"annotation":[{"start":[157,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[157,76]},[]],"tag":"ForAll","contents":["r",{"annotation":[{"start":[157,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[157,76]},[]],"tag":"ForAll","contents":["e",{"annotation":[{"start":[157,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[157,76]},[]],"tag":"ForAll","contents":["d",{"annotation":[{"start":[157,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[157,76]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[157,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[157,76]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[157,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[157,76]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[157,32],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[157,76]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[157,32],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[157,76]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[157,41],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[157,43]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[157,33],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[157,39]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[157,33],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[157,39]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[157,35],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[157,37]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[157,33],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[157,34]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[157,38],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[157,39]},[]],"tag":"TypeVar","contents":"r"}]}]},{"annotation":[{"start":[157,44],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[157,76]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[157,44],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[157,76]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[157,59],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[157,61]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[53,23],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[53,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,23],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[53,30]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,23],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[53,28]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[157,47],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[157,48]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[52,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,28]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,26]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[157,49],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[157,50]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,26]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,24]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[157,51],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[157,52]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,33]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,22]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[157,53],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[157,54]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,20]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[157,55],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[157,56]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[157,57],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[157,58]},[]],"tag":"TypeVar","contents":"z"}]}]}]}]}]}]},{"annotation":[{"start":[53,23],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[53,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,23],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[53,30]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,23],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[53,28]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[157,65],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[157,66]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[52,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,28]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,26]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[157,67],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[157,68]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,26]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,24]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[157,69],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[157,70]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,33]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,22]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[157,71],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[157,72]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,20]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[157,73],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[157,74]},[]],"tag":"TypeVar","contents":"r"}]},{"annotation":[{"start":[157,75],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[157,76]},[]],"tag":"TypeVar","contents":"z"}]}]}]}]}]}]}]},336]},337]},338]},339]},340]},341]},342]}}},{"EDValue":{"edValueName":{"Ident":"over6"},"edValueType":{"annotation":[{"start":[161,10],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[161,82]},[]],"tag":"ForAll","contents":["z",{"annotation":[{"start":[161,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[161,82]},[]],"tag":"ForAll","contents":["r",{"annotation":[{"start":[161,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[161,82]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[161,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[161,82]},[]],"tag":"ForAll","contents":["e",{"annotation":[{"start":[161,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[161,82]},[]],"tag":"ForAll","contents":["d",{"annotation":[{"start":[161,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[161,82]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[161,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[161,82]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[161,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[161,82]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[161,34],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[161,82]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[161,34],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[161,82]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[161,43],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[161,45]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[161,35],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[161,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[161,35],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[161,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[161,37],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[161,39]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[161,35],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[161,36]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[161,40],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[161,41]},[]],"tag":"TypeVar","contents":"r"}]}]},{"annotation":[{"start":[161,46],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[161,82]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[161,46],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[161,82]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[161,63],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[161,65]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[54,25],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[54,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[54,25],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[54,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[54,25],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[54,30]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[161,49],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[161,50]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[53,23],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[53,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,23],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[53,30]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,23],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[53,28]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[161,51],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[161,52]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[52,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,28]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,26]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[161,53],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[161,54]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,26]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,24]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[161,55],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[161,56]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,33]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,22]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[161,57],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[161,58]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,20]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[161,59],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[161,60]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[161,61],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[161,62]},[]],"tag":"TypeVar","contents":"z"}]}]}]}]}]}]}]},{"annotation":[{"start":[54,25],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[54,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[54,25],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[54,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[54,25],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[54,30]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[161,69],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[161,70]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[53,23],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[53,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,23],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[53,30]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,23],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[53,28]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[161,71],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[161,72]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[52,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,28]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,26]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[161,73],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[161,74]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,26]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,24]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[161,75],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[161,76]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,33]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,22]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[161,77],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[161,78]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,20]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[161,79],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[161,80]},[]],"tag":"TypeVar","contents":"r"}]},{"annotation":[{"start":[161,81],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[161,82]},[]],"tag":"TypeVar","contents":"z"}]}]}]}]}]}]}]}]},320]},321]},322]},323]},324]},325]},326]},327]}}},{"EDValue":{"edValueName":{"Ident":"over7"},"edValueType":{"annotation":[{"start":[165,10],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[165,88]},[]],"tag":"ForAll","contents":["z",{"annotation":[{"start":[165,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[165,88]},[]],"tag":"ForAll","contents":["r",{"annotation":[{"start":[165,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[165,88]},[]],"tag":"ForAll","contents":["g",{"annotation":[{"start":[165,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[165,88]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[165,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[165,88]},[]],"tag":"ForAll","contents":["e",{"annotation":[{"start":[165,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[165,88]},[]],"tag":"ForAll","contents":["d",{"annotation":[{"start":[165,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[165,88]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[165,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[165,88]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[165,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[165,88]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[165,36],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[165,88]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[165,36],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[165,88]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[165,45],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[165,47]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[165,37],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[165,43]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[165,37],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[165,43]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[165,39],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[165,41]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[165,37],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[165,38]},[]],"tag":"TypeVar","contents":"g"}]},{"annotation":[{"start":[165,42],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[165,43]},[]],"tag":"TypeVar","contents":"r"}]}]},{"annotation":[{"start":[165,48],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[165,88]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[165,48],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[165,88]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[165,67],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[165,69]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[55,27],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[55,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,27],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[55,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,27],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[55,32]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[165,51],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[165,52]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[54,25],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[54,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[54,25],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[54,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[54,25],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[54,30]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[165,53],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[165,54]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[53,23],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[53,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,23],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[53,30]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,23],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[53,28]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[165,55],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[165,56]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[52,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,28]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,26]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[165,57],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[165,58]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,26]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,24]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[165,59],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[165,60]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,33]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,22]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[165,61],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[165,62]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,20]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[165,63],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[165,64]},[]],"tag":"TypeVar","contents":"g"}]},{"annotation":[{"start":[165,65],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[165,66]},[]],"tag":"TypeVar","contents":"z"}]}]}]}]}]}]}]}]},{"annotation":[{"start":[55,27],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[55,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,27],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[55,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,27],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[55,32]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[165,73],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[165,74]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[54,25],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[54,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[54,25],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[54,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[54,25],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[54,30]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[165,75],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[165,76]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[53,23],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[53,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,23],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[53,30]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,23],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[53,28]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[165,77],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[165,78]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[52,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,28]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,26]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[165,79],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[165,80]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,26]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,24]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[165,81],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[165,82]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,33]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,22]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[165,83],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[165,84]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,20]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[165,85],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[165,86]},[]],"tag":"TypeVar","contents":"r"}]},{"annotation":[{"start":[165,87],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[165,88]},[]],"tag":"TypeVar","contents":"z"}]}]}]}]}]}]}]}]}]},302]},303]},304]},305]},306]},307]},308]},309]},310]}}},{"EDValue":{"edValueName":{"Ident":"over8"},"edValueType":{"annotation":[{"start":[169,10],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[169,94]},[]],"tag":"ForAll","contents":["z",{"annotation":[{"start":[169,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[169,94]},[]],"tag":"ForAll","contents":["r",{"annotation":[{"start":[169,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[169,94]},[]],"tag":"ForAll","contents":["h",{"annotation":[{"start":[169,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[169,94]},[]],"tag":"ForAll","contents":["g",{"annotation":[{"start":[169,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[169,94]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[169,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[169,94]},[]],"tag":"ForAll","contents":["e",{"annotation":[{"start":[169,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[169,94]},[]],"tag":"ForAll","contents":["d",{"annotation":[{"start":[169,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[169,94]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[169,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[169,94]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[169,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[169,94]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[169,38],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[169,94]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[169,38],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[169,94]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[169,47],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[169,49]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[169,39],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[169,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[169,39],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[169,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[169,41],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[169,43]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[169,39],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[169,40]},[]],"tag":"TypeVar","contents":"h"}]},{"annotation":[{"start":[169,44],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[169,45]},[]],"tag":"TypeVar","contents":"r"}]}]},{"annotation":[{"start":[169,50],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[169,94]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[169,50],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[169,94]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[169,71],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[169,73]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[56,29],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[56,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[56,29],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[56,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[56,29],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[56,34]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[169,53],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[169,54]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[55,27],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[55,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,27],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[55,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,27],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[55,32]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[169,55],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[169,56]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[54,25],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[54,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[54,25],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[54,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[54,25],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[54,30]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[169,57],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[169,58]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[53,23],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[53,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,23],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[53,30]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,23],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[53,28]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[169,59],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[169,60]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[52,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,28]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,26]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[169,61],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[169,62]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,26]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,24]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[169,63],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[169,64]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,33]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,22]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[169,65],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[169,66]},[]],"tag":"TypeVar","contents":"g"}]},{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,20]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[169,67],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[169,68]},[]],"tag":"TypeVar","contents":"h"}]},{"annotation":[{"start":[169,69],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[169,70]},[]],"tag":"TypeVar","contents":"z"}]}]}]}]}]}]}]}]}]},{"annotation":[{"start":[56,29],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[56,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[56,29],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[56,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[56,29],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[56,34]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[169,77],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[169,78]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[55,27],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[55,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,27],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[55,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,27],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[55,32]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[169,79],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[169,80]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[54,25],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[54,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[54,25],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[54,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[54,25],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[54,30]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[169,81],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[169,82]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[53,23],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[53,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,23],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[53,30]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,23],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[53,28]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[169,83],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[169,84]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[52,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,28]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,26]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[169,85],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[169,86]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,26]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,24]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[169,87],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[169,88]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,33]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,22]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[169,89],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[169,90]},[]],"tag":"TypeVar","contents":"g"}]},{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,20]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[169,91],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[169,92]},[]],"tag":"TypeVar","contents":"r"}]},{"annotation":[{"start":[169,93],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[169,94]},[]],"tag":"TypeVar","contents":"z"}]}]}]}]}]}]}]}]}]}]},282]},283]},284]},285]},286]},287]},288]},289]},290]},291]}}},{"EDValue":{"edValueName":{"Ident":"over9"},"edValueType":{"annotation":[{"start":[173,10],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[173,102]},[]],"tag":"ForAll","contents":["z",{"annotation":[{"start":[173,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[173,102]},[]],"tag":"ForAll","contents":["r",{"annotation":[{"start":[173,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[173,102]},[]],"tag":"ForAll","contents":["i",{"annotation":[{"start":[173,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[173,102]},[]],"tag":"ForAll","contents":["h",{"annotation":[{"start":[173,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[173,102]},[]],"tag":"ForAll","contents":["g",{"annotation":[{"start":[173,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[173,102]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[173,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[173,102]},[]],"tag":"ForAll","contents":["e",{"annotation":[{"start":[173,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[173,102]},[]],"tag":"ForAll","contents":["d",{"annotation":[{"start":[173,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[173,102]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[173,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[173,102]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[173,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[173,102]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[173,40],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[173,102]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[173,40],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[173,102]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[173,49],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[173,51]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[173,41],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[173,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[173,41],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[173,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[173,43],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[173,45]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[173,41],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[173,42]},[]],"tag":"TypeVar","contents":"i"}]},{"annotation":[{"start":[173,46],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[173,47]},[]],"tag":"TypeVar","contents":"r"}]}]},{"annotation":[{"start":[173,52],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[173,102]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[173,52],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[173,102]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[173,76],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[173,78]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[57,32],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[57,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[57,32],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[57,39]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[57,32],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[57,37]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[173,56],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[173,57]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[56,29],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[56,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[56,29],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[56,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[56,29],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[56,34]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[173,58],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[173,59]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[55,27],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[55,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,27],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[55,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,27],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[55,32]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[173,60],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[173,61]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[54,25],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[54,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[54,25],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[54,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[54,25],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[54,30]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[173,62],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[173,63]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[53,23],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[53,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,23],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[53,30]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,23],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[53,28]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[173,64],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[173,65]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[52,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,28]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,26]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[173,66],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[173,67]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,26]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,24]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[173,68],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[173,69]},[]],"tag":"TypeVar","contents":"g"}]},{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,33]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,22]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[173,70],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[173,71]},[]],"tag":"TypeVar","contents":"h"}]},{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,20]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[173,72],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[173,73]},[]],"tag":"TypeVar","contents":"i"}]},{"annotation":[{"start":[173,74],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[173,75]},[]],"tag":"TypeVar","contents":"z"}]}]}]}]}]}]}]}]}]}]},{"annotation":[{"start":[57,32],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[57,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[57,32],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[57,39]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[57,32],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[57,37]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[173,83],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[173,84]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[56,29],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[56,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[56,29],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[56,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[56,29],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[56,34]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[173,85],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[173,86]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[55,27],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[55,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,27],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[55,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,27],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[55,32]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[173,87],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[173,88]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[54,25],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[54,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[54,25],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[54,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[54,25],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[54,30]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[173,89],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[173,90]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[53,23],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[53,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,23],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[53,30]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,23],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[53,28]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[173,91],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[173,92]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[52,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,28]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,26]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[173,93],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[173,94]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,26]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,24]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[173,95],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[173,96]},[]],"tag":"TypeVar","contents":"g"}]},{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,33]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,22]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[173,97],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[173,98]},[]],"tag":"TypeVar","contents":"h"}]},{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,20]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[173,99],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[173,100]},[]],"tag":"TypeVar","contents":"r"}]},{"annotation":[{"start":[173,101],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[173,102]},[]],"tag":"TypeVar","contents":"z"}]}]}]}]}]}]}]}]}]}]}]},260]},261]},262]},263]},264]},265]},266]},267]},268]},269]},270]}}},{"EDValue":{"edValueName":{"Ident":"over10"},"edValueType":{"annotation":[{"start":[177,11],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[177,109]},[]],"tag":"ForAll","contents":["z",{"annotation":[{"start":[177,18],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[177,109]},[]],"tag":"ForAll","contents":["r",{"annotation":[{"start":[177,18],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[177,109]},[]],"tag":"ForAll","contents":["j",{"annotation":[{"start":[177,18],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[177,109]},[]],"tag":"ForAll","contents":["i",{"annotation":[{"start":[177,18],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[177,109]},[]],"tag":"ForAll","contents":["h",{"annotation":[{"start":[177,18],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[177,109]},[]],"tag":"ForAll","contents":["g",{"annotation":[{"start":[177,18],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[177,109]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[177,18],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[177,109]},[]],"tag":"ForAll","contents":["e",{"annotation":[{"start":[177,18],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[177,109]},[]],"tag":"ForAll","contents":["d",{"annotation":[{"start":[177,18],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[177,109]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[177,18],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[177,109]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[177,18],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[177,109]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[177,43],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[177,109]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[177,43],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[177,109]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[177,52],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[177,54]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[177,44],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[177,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[177,44],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[177,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[177,46],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[177,48]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[177,44],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[177,45]},[]],"tag":"TypeVar","contents":"j"}]},{"annotation":[{"start":[177,49],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[177,50]},[]],"tag":"TypeVar","contents":"r"}]}]},{"annotation":[{"start":[177,55],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[177,109]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[177,55],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[177,109]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[177,81],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[177,83]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[58,34],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[58,67]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[58,34],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[58,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[58,34],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[58,39]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[177,59],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[177,60]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[57,32],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[57,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[57,32],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[57,39]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[57,32],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[57,37]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[177,61],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[177,62]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[56,29],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[56,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[56,29],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[56,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[56,29],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[56,34]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[177,63],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[177,64]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[55,27],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[55,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,27],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[55,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,27],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[55,32]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[177,65],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[177,66]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[54,25],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[54,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[54,25],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[54,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[54,25],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[54,30]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[177,67],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[177,68]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[53,23],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[53,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,23],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[53,30]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,23],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[53,28]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[177,69],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[177,70]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[52,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,28]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,26]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[177,71],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[177,72]},[]],"tag":"TypeVar","contents":"g"}]},{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,26]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,24]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[177,73],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[177,74]},[]],"tag":"TypeVar","contents":"h"}]},{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,33]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,22]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[177,75],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[177,76]},[]],"tag":"TypeVar","contents":"i"}]},{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,20]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[177,77],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[177,78]},[]],"tag":"TypeVar","contents":"j"}]},{"annotation":[{"start":[177,79],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[177,80]},[]],"tag":"TypeVar","contents":"z"}]}]}]}]}]}]}]}]}]}]}]},{"annotation":[{"start":[58,34],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[58,67]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[58,34],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[58,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[58,34],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[58,39]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[177,88],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[177,89]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[57,32],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[57,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[57,32],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[57,39]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[57,32],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[57,37]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[177,90],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[177,91]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[56,29],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[56,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[56,29],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[56,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[56,29],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[56,34]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[177,92],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[177,93]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[55,27],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[55,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,27],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[55,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,27],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[55,32]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[177,94],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[177,95]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[54,25],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[54,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[54,25],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[54,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[54,25],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[54,30]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[177,96],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[177,97]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[53,23],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[53,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,23],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[53,30]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,23],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[53,28]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[177,98],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[177,99]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[52,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,28]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,26]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[177,100],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[177,101]},[]],"tag":"TypeVar","contents":"g"}]},{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,26]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,24]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[177,102],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[177,103]},[]],"tag":"TypeVar","contents":"h"}]},{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,33]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,22]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[177,104],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[177,105]},[]],"tag":"TypeVar","contents":"i"}]},{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,20]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[177,106],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[177,107]},[]],"tag":"TypeVar","contents":"r"}]},{"annotation":[{"start":[177,108],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[177,109]},[]],"tag":"TypeVar","contents":"z"}]}]}]}]}]}]}]}]}]}]}]}]},380]},381]},382]},383]},384]},385]},386]},387]},388]},389]},390]},391]}}},{"EDValue":{"edValueName":{"Ident":"uncurry1"},"edValueType":{"annotation":[{"start":[181,13],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[181,50]},[]],"tag":"ForAll","contents":["z",{"annotation":[{"start":[181,20],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[181,50]},[]],"tag":"ForAll","contents":["r",{"annotation":[{"start":[181,20],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[181,50]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[181,27],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[181,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[181,27],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[181,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[181,36],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[181,38]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[181,28],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[181,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[181,28],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[181,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[181,30],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[181,32]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[181,28],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[181,29]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[181,33],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[181,34]},[]],"tag":"TypeVar","contents":"r"}]}]},{"annotation":[{"start":[181,39],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[181,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[181,39],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[181,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[181,46],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[181,48]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,20]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[181,42],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[181,43]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[181,44],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[181,45]},[]],"tag":"TypeVar","contents":"z"}]}]},{"annotation":[{"start":[181,49],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[181,50]},[]],"tag":"TypeVar","contents":"r"}]}]},144]},145]},146]}}},{"EDValue":{"edValueName":{"Ident":"uncurry2"},"edValueType":{"annotation":[{"start":[185,13],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[185,59]},[]],"tag":"ForAll","contents":["z",{"annotation":[{"start":[185,20],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[185,59]},[]],"tag":"ForAll","contents":["r",{"annotation":[{"start":[185,20],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[185,59]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[185,20],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[185,59]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[185,29],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[185,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[185,29],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[185,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[185,43],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[185,45]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[185,30],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[185,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[185,30],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[185,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[185,32],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[185,34]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[185,30],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[185,31]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[185,35],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[185,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[185,35],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[185,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[185,37],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[185,39]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[185,35],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[185,36]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[185,40],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[185,41]},[]],"tag":"TypeVar","contents":"r"}]}]}]},{"annotation":[{"start":[185,46],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[185,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[185,46],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[185,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[185,55],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[185,57]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,33]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,22]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[185,49],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[185,50]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,20]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[185,51],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[185,52]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[185,53],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[185,54]},[]],"tag":"TypeVar","contents":"z"}]}]}]},{"annotation":[{"start":[185,58],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[185,59]},[]],"tag":"TypeVar","contents":"r"}]}]},112]},113]},114]},115]}}},{"EDValue":{"edValueName":{"Ident":"uncurry3"},"edValueType":{"annotation":[{"start":[189,13],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[189,68]},[]],"tag":"ForAll","contents":["z",{"annotation":[{"start":[189,20],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[189,68]},[]],"tag":"ForAll","contents":["r",{"annotation":[{"start":[189,20],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[189,68]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[189,20],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[189,68]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[189,20],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[189,68]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[189,31],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[189,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[189,31],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[189,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[189,50],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[189,52]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[189,32],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[189,48]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[189,32],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[189,48]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[189,34],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[189,36]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[189,32],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[189,33]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[189,37],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[189,48]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[189,37],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[189,48]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[189,39],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[189,41]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[189,37],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[189,38]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[189,42],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[189,48]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[189,42],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[189,48]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[189,44],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[189,46]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[189,42],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[189,43]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[189,47],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[189,48]},[]],"tag":"TypeVar","contents":"r"}]}]}]}]},{"annotation":[{"start":[189,53],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[189,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[189,53],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[189,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[189,64],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[189,66]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,26]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,24]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[189,56],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[189,57]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,33]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,22]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[189,58],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[189,59]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,20]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[189,60],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[189,61]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[189,62],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[189,63]},[]],"tag":"TypeVar","contents":"z"}]}]}]}]},{"annotation":[{"start":[189,67],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[189,68]},[]],"tag":"TypeVar","contents":"r"}]}]},102]},103]},104]},105]},106]}}},{"EDValue":{"edValueName":{"Ident":"uncurry4"},"edValueType":{"annotation":[{"start":[193,13],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[193,77]},[]],"tag":"ForAll","contents":["z",{"annotation":[{"start":[193,20],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[193,77]},[]],"tag":"ForAll","contents":["r",{"annotation":[{"start":[193,20],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[193,77]},[]],"tag":"ForAll","contents":["d",{"annotation":[{"start":[193,20],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[193,77]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[193,20],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[193,77]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[193,20],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[193,77]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[193,33],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[193,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[193,33],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[193,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[193,57],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[193,59]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[193,34],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[193,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[193,34],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[193,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[193,36],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[193,38]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[193,34],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[193,35]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[193,39],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[193,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[193,39],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[193,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[193,41],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[193,43]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[193,39],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[193,40]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[193,44],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[193,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[193,44],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[193,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[193,46],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[193,48]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[193,44],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[193,45]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[193,49],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[193,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[193,49],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[193,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[193,51],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[193,53]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[193,49],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[193,50]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[193,54],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[193,55]},[]],"tag":"TypeVar","contents":"r"}]}]}]}]}]},{"annotation":[{"start":[193,60],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[193,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[193,60],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[193,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[193,73],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[193,75]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[52,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,28]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,26]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[193,63],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[193,64]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,26]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,24]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[193,65],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[193,66]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,33]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,22]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[193,67],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[193,68]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,20]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[193,69],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[193,70]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[193,71],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[193,72]},[]],"tag":"TypeVar","contents":"z"}]}]}]}]}]},{"annotation":[{"start":[193,76],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[193,77]},[]],"tag":"TypeVar","contents":"r"}]}]},90]},91]},92]},93]},94]},95]}}},{"EDValue":{"edValueName":{"Ident":"uncurry5"},"edValueType":{"annotation":[{"start":[197,13],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[197,86]},[]],"tag":"ForAll","contents":["z",{"annotation":[{"start":[197,20],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[197,86]},[]],"tag":"ForAll","contents":["r",{"annotation":[{"start":[197,20],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[197,86]},[]],"tag":"ForAll","contents":["e",{"annotation":[{"start":[197,20],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[197,86]},[]],"tag":"ForAll","contents":["d",{"annotation":[{"start":[197,20],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[197,86]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[197,20],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[197,86]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[197,20],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[197,86]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[197,35],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[197,86]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[197,35],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[197,86]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[197,64],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[197,66]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[197,36],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[197,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[197,36],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[197,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[197,38],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[197,40]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[197,36],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[197,37]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[197,41],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[197,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[197,41],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[197,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[197,43],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[197,45]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[197,41],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[197,42]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[197,46],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[197,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[197,46],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[197,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[197,48],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[197,50]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[197,46],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[197,47]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[197,51],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[197,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[197,51],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[197,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[197,53],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[197,55]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[197,51],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[197,52]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[197,56],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[197,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[197,56],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[197,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[197,58],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[197,60]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[197,56],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[197,57]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[197,61],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[197,62]},[]],"tag":"TypeVar","contents":"r"}]}]}]}]}]}]},{"annotation":[{"start":[197,67],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[197,86]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[197,67],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[197,86]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[197,82],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[197,84]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[53,23],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[53,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,23],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[53,30]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,23],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[53,28]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[197,70],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[197,71]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[52,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,28]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,26]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[197,72],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[197,73]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,26]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,24]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[197,74],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[197,75]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,33]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,22]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[197,76],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[197,77]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,20]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[197,78],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[197,79]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[197,80],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[197,81]},[]],"tag":"TypeVar","contents":"z"}]}]}]}]}]}]},{"annotation":[{"start":[197,85],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[197,86]},[]],"tag":"TypeVar","contents":"r"}]}]},76]},77]},78]},79]},80]},81]},82]}}},{"EDValue":{"edValueName":{"Ident":"uncurry6"},"edValueType":{"annotation":[{"start":[201,13],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[201,95]},[]],"tag":"ForAll","contents":["z",{"annotation":[{"start":[201,20],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[201,95]},[]],"tag":"ForAll","contents":["r",{"annotation":[{"start":[201,20],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[201,95]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[201,20],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[201,95]},[]],"tag":"ForAll","contents":["e",{"annotation":[{"start":[201,20],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[201,95]},[]],"tag":"ForAll","contents":["d",{"annotation":[{"start":[201,20],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[201,95]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[201,20],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[201,95]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[201,20],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[201,95]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[201,37],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[201,95]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[201,37],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[201,95]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[201,71],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[201,73]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[201,38],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[201,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[201,38],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[201,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[201,40],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[201,42]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[201,38],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[201,39]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[201,43],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[201,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[201,43],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[201,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[201,45],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[201,47]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[201,43],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[201,44]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[201,48],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[201,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[201,48],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[201,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[201,50],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[201,52]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[201,48],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[201,49]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[201,53],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[201,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[201,53],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[201,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[201,55],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[201,57]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[201,53],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[201,54]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[201,58],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[201,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[201,58],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[201,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[201,60],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[201,62]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[201,58],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[201,59]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[201,63],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[201,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[201,63],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[201,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[201,65],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[201,67]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[201,63],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[201,64]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[201,68],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[201,69]},[]],"tag":"TypeVar","contents":"r"}]}]}]}]}]}]}]},{"annotation":[{"start":[201,74],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[201,95]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[201,74],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[201,95]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[201,91],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[201,93]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[54,25],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[54,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[54,25],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[54,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[54,25],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[54,30]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[201,77],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[201,78]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[53,23],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[53,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,23],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[53,30]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,23],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[53,28]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[201,79],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[201,80]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[52,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,28]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,26]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[201,81],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[201,82]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,26]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,24]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[201,83],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[201,84]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,33]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,22]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[201,85],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[201,86]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,20]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[201,87],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[201,88]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[201,89],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[201,90]},[]],"tag":"TypeVar","contents":"z"}]}]}]}]}]}]}]},{"annotation":[{"start":[201,94],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[201,95]},[]],"tag":"TypeVar","contents":"r"}]}]},60]},61]},62]},63]},64]},65]},66]},67]}}},{"EDValue":{"edValueName":{"Ident":"uncurry7"},"edValueType":{"annotation":[{"start":[205,13],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[205,104]},[]],"tag":"ForAll","contents":["z",{"annotation":[{"start":[205,20],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[205,104]},[]],"tag":"ForAll","contents":["r",{"annotation":[{"start":[205,20],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[205,104]},[]],"tag":"ForAll","contents":["g",{"annotation":[{"start":[205,20],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[205,104]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[205,20],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[205,104]},[]],"tag":"ForAll","contents":["e",{"annotation":[{"start":[205,20],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[205,104]},[]],"tag":"ForAll","contents":["d",{"annotation":[{"start":[205,20],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[205,104]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[205,20],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[205,104]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[205,20],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[205,104]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[205,39],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[205,104]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[205,39],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[205,104]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[205,78],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[205,80]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[205,40],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[205,76]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[205,40],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[205,76]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[205,42],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[205,44]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[205,40],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[205,41]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[205,45],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[205,76]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[205,45],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[205,76]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[205,47],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[205,49]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[205,45],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[205,46]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[205,50],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[205,76]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[205,50],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[205,76]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[205,52],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[205,54]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[205,50],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[205,51]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[205,55],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[205,76]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[205,55],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[205,76]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[205,57],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[205,59]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[205,55],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[205,56]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[205,60],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[205,76]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[205,60],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[205,76]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[205,62],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[205,64]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[205,60],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[205,61]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[205,65],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[205,76]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[205,65],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[205,76]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[205,67],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[205,69]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[205,65],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[205,66]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[205,70],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[205,76]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[205,70],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[205,76]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[205,72],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[205,74]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[205,70],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[205,71]},[]],"tag":"TypeVar","contents":"g"}]},{"annotation":[{"start":[205,75],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[205,76]},[]],"tag":"TypeVar","contents":"r"}]}]}]}]}]}]}]}]},{"annotation":[{"start":[205,81],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[205,104]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[205,81],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[205,104]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[205,100],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[205,102]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[55,27],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[55,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,27],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[55,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,27],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[55,32]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[205,84],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[205,85]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[54,25],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[54,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[54,25],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[54,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[54,25],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[54,30]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[205,86],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[205,87]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[53,23],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[53,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,23],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[53,30]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,23],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[53,28]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[205,88],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[205,89]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[52,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,28]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,26]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[205,90],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[205,91]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,26]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,24]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[205,92],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[205,93]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,33]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,22]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[205,94],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[205,95]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,20]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[205,96],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[205,97]},[]],"tag":"TypeVar","contents":"g"}]},{"annotation":[{"start":[205,98],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[205,99]},[]],"tag":"TypeVar","contents":"z"}]}]}]}]}]}]}]}]},{"annotation":[{"start":[205,103],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[205,104]},[]],"tag":"TypeVar","contents":"r"}]}]},42]},43]},44]},45]},46]},47]},48]},49]},50]}}},{"EDValue":{"edValueName":{"Ident":"uncurry8"},"edValueType":{"annotation":[{"start":[209,13],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[209,113]},[]],"tag":"ForAll","contents":["z",{"annotation":[{"start":[209,20],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[209,113]},[]],"tag":"ForAll","contents":["r",{"annotation":[{"start":[209,20],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[209,113]},[]],"tag":"ForAll","contents":["h",{"annotation":[{"start":[209,20],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[209,113]},[]],"tag":"ForAll","contents":["g",{"annotation":[{"start":[209,20],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[209,113]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[209,20],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[209,113]},[]],"tag":"ForAll","contents":["e",{"annotation":[{"start":[209,20],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[209,113]},[]],"tag":"ForAll","contents":["d",{"annotation":[{"start":[209,20],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[209,113]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[209,20],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[209,113]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[209,20],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[209,113]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[209,41],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[209,113]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[209,41],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[209,113]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[209,85],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[209,87]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[209,42],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[209,83]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[209,42],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[209,83]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[209,44],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[209,46]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[209,42],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[209,43]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[209,47],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[209,83]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[209,47],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[209,83]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[209,49],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[209,51]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[209,47],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[209,48]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[209,52],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[209,83]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[209,52],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[209,83]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[209,54],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[209,56]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[209,52],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[209,53]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[209,57],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[209,83]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[209,57],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[209,83]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[209,59],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[209,61]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[209,57],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[209,58]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[209,62],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[209,83]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[209,62],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[209,83]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[209,64],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[209,66]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[209,62],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[209,63]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[209,67],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[209,83]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[209,67],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[209,83]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[209,69],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[209,71]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[209,67],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[209,68]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[209,72],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[209,83]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[209,72],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[209,83]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[209,74],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[209,76]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[209,72],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[209,73]},[]],"tag":"TypeVar","contents":"g"}]},{"annotation":[{"start":[209,77],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[209,83]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[209,77],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[209,83]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[209,79],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[209,81]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[209,77],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[209,78]},[]],"tag":"TypeVar","contents":"h"}]},{"annotation":[{"start":[209,82],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[209,83]},[]],"tag":"TypeVar","contents":"r"}]}]}]}]}]}]}]}]}]},{"annotation":[{"start":[209,88],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[209,113]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[209,88],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[209,113]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[209,109],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[209,111]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[56,29],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[56,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[56,29],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[56,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[56,29],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[56,34]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[209,91],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[209,92]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[55,27],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[55,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,27],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[55,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,27],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[55,32]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[209,93],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[209,94]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[54,25],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[54,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[54,25],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[54,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[54,25],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[54,30]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[209,95],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[209,96]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[53,23],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[53,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,23],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[53,30]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,23],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[53,28]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[209,97],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[209,98]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[52,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,28]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,26]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[209,99],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[209,100]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,26]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,24]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[209,101],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[209,102]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,33]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,22]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[209,103],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[209,104]},[]],"tag":"TypeVar","contents":"g"}]},{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,20]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[209,105],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[209,106]},[]],"tag":"TypeVar","contents":"h"}]},{"annotation":[{"start":[209,107],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[209,108]},[]],"tag":"TypeVar","contents":"z"}]}]}]}]}]}]}]}]}]},{"annotation":[{"start":[209,112],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[209,113]},[]],"tag":"TypeVar","contents":"r"}]}]},22]},23]},24]},25]},26]},27]},28]},29]},30]},31]}}},{"EDValue":{"edValueName":{"Ident":"uncurry9"},"edValueType":{"annotation":[{"start":[213,13],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[213,123]},[]],"tag":"ForAll","contents":["z",{"annotation":[{"start":[213,20],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[213,123]},[]],"tag":"ForAll","contents":["r",{"annotation":[{"start":[213,20],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[213,123]},[]],"tag":"ForAll","contents":["i",{"annotation":[{"start":[213,20],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[213,123]},[]],"tag":"ForAll","contents":["h",{"annotation":[{"start":[213,20],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[213,123]},[]],"tag":"ForAll","contents":["g",{"annotation":[{"start":[213,20],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[213,123]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[213,20],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[213,123]},[]],"tag":"ForAll","contents":["e",{"annotation":[{"start":[213,20],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[213,123]},[]],"tag":"ForAll","contents":["d",{"annotation":[{"start":[213,20],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[213,123]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[213,20],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[213,123]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[213,20],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[213,123]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[213,43],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[213,123]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[213,43],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[213,123]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[213,92],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[213,94]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[213,44],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[213,90]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[213,44],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[213,90]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[213,46],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[213,48]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[213,44],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[213,45]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[213,49],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[213,90]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[213,49],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[213,90]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[213,51],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[213,53]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[213,49],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[213,50]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[213,54],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[213,90]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[213,54],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[213,90]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[213,56],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[213,58]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[213,54],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[213,55]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[213,59],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[213,90]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[213,59],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[213,90]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[213,61],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[213,63]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[213,59],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[213,60]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[213,64],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[213,90]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[213,64],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[213,90]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[213,66],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[213,68]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[213,64],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[213,65]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[213,69],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[213,90]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[213,69],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[213,90]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[213,71],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[213,73]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[213,69],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[213,70]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[213,74],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[213,90]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[213,74],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[213,90]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[213,76],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[213,78]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[213,74],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[213,75]},[]],"tag":"TypeVar","contents":"g"}]},{"annotation":[{"start":[213,79],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[213,90]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[213,79],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[213,90]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[213,81],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[213,83]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[213,79],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[213,80]},[]],"tag":"TypeVar","contents":"h"}]},{"annotation":[{"start":[213,84],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[213,90]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[213,84],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[213,90]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[213,86],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[213,88]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[213,84],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[213,85]},[]],"tag":"TypeVar","contents":"i"}]},{"annotation":[{"start":[213,89],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[213,90]},[]],"tag":"TypeVar","contents":"r"}]}]}]}]}]}]}]}]}]}]},{"annotation":[{"start":[213,95],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[213,123]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[213,95],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[213,123]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[213,119],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[213,121]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[57,32],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[57,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[57,32],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[57,39]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[57,32],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[57,37]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[213,99],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[213,100]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[56,29],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[56,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[56,29],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[56,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[56,29],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[56,34]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[213,101],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[213,102]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[55,27],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[55,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,27],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[55,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,27],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[55,32]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[213,103],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[213,104]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[54,25],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[54,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[54,25],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[54,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[54,25],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[54,30]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[213,105],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[213,106]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[53,23],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[53,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,23],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[53,30]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,23],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[53,28]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[213,107],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[213,108]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[52,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,28]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,26]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[213,109],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[213,110]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,26]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,24]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[213,111],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[213,112]},[]],"tag":"TypeVar","contents":"g"}]},{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,33]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,22]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[213,113],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[213,114]},[]],"tag":"TypeVar","contents":"h"}]},{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,20]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[213,115],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[213,116]},[]],"tag":"TypeVar","contents":"i"}]},{"annotation":[{"start":[213,117],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[213,118]},[]],"tag":"TypeVar","contents":"z"}]}]}]}]}]}]}]}]}]}]},{"annotation":[{"start":[213,122],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[213,123]},[]],"tag":"TypeVar","contents":"r"}]}]},0]},1]},2]},3]},4]},5]},6]},7]},8]},9]},10]}}},{"EDValue":{"edValueName":{"Ident":"uncurry10"},"edValueType":{"annotation":[{"start":[217,14],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[217,133]},[]],"tag":"ForAll","contents":["z",{"annotation":[{"start":[217,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[217,133]},[]],"tag":"ForAll","contents":["r",{"annotation":[{"start":[217,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[217,133]},[]],"tag":"ForAll","contents":["j",{"annotation":[{"start":[217,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[217,133]},[]],"tag":"ForAll","contents":["i",{"annotation":[{"start":[217,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[217,133]},[]],"tag":"ForAll","contents":["h",{"annotation":[{"start":[217,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[217,133]},[]],"tag":"ForAll","contents":["g",{"annotation":[{"start":[217,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[217,133]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[217,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[217,133]},[]],"tag":"ForAll","contents":["e",{"annotation":[{"start":[217,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[217,133]},[]],"tag":"ForAll","contents":["d",{"annotation":[{"start":[217,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[217,133]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[217,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[217,133]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[217,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[217,133]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[217,46],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[217,133]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[217,46],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[217,133]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[217,100],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[217,102]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[217,47],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[217,98]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[217,47],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[217,98]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[217,49],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[217,51]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[217,47],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[217,48]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[217,52],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[217,98]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[217,52],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[217,98]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[217,54],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[217,56]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[217,52],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[217,53]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[217,57],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[217,98]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[217,57],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[217,98]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[217,59],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[217,61]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[217,57],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[217,58]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[217,62],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[217,98]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[217,62],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[217,98]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[217,64],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[217,66]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[217,62],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[217,63]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[217,67],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[217,98]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[217,67],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[217,98]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[217,69],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[217,71]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[217,67],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[217,68]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[217,72],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[217,98]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[217,72],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[217,98]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[217,74],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[217,76]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[217,72],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[217,73]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[217,77],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[217,98]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[217,77],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[217,98]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[217,79],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[217,81]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[217,77],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[217,78]},[]],"tag":"TypeVar","contents":"g"}]},{"annotation":[{"start":[217,82],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[217,98]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[217,82],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[217,98]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[217,84],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[217,86]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[217,82],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[217,83]},[]],"tag":"TypeVar","contents":"h"}]},{"annotation":[{"start":[217,87],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[217,98]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[217,87],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[217,98]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[217,89],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[217,91]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[217,87],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[217,88]},[]],"tag":"TypeVar","contents":"i"}]},{"annotation":[{"start":[217,92],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[217,98]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[217,92],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[217,98]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[217,94],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[217,96]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[217,92],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[217,93]},[]],"tag":"TypeVar","contents":"j"}]},{"annotation":[{"start":[217,97],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[217,98]},[]],"tag":"TypeVar","contents":"r"}]}]}]}]}]}]}]}]}]}]}]},{"annotation":[{"start":[217,103],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[217,133]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[217,103],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[217,133]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[217,129],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[217,131]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[58,34],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[58,67]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[58,34],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[58,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[58,34],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[58,39]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[217,107],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[217,108]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[57,32],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[57,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[57,32],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[57,39]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[57,32],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[57,37]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[217,109],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[217,110]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[56,29],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[56,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[56,29],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[56,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[56,29],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[56,34]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[217,111],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[217,112]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[55,27],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[55,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,27],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[55,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,27],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[55,32]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[217,113],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[217,114]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[54,25],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[54,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[54,25],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[54,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[54,25],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[54,30]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[217,115],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[217,116]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[53,23],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[53,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,23],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[53,30]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,23],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[53,28]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[217,117],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[217,118]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[52,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,28]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,26]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[217,119],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[217,120]},[]],"tag":"TypeVar","contents":"g"}]},{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,26]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,24]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[217,121],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[217,122]},[]],"tag":"TypeVar","contents":"h"}]},{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,33]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,22]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[217,123],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[217,124]},[]],"tag":"TypeVar","contents":"i"}]},{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,20]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[217,125],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[217,126]},[]],"tag":"TypeVar","contents":"j"}]},{"annotation":[{"start":[217,127],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[217,128]},[]],"tag":"TypeVar","contents":"z"}]}]}]}]}]}]}]}]}]}]}]},{"annotation":[{"start":[217,132],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[217,133]},[]],"tag":"TypeVar","contents":"r"}]}]},120]},121]},122]},123]},124]},125]},126]},127]},128]},129]},130]},131]}}},{"EDValue":{"edValueName":{"Ident":"curry1"},"edValueType":{"annotation":[{"start":[221,11],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[221,53]},[]],"tag":"ForAll","contents":["z",{"annotation":[{"start":[221,18],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[221,53]},[]],"tag":"ForAll","contents":["r",{"annotation":[{"start":[221,18],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[221,53]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[221,25],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[221,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[221,25],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[221,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[221,27],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[221,29]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[221,25],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[221,26]},[]],"tag":"TypeVar","contents":"z"}]},{"annotation":[{"start":[221,30],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[221,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[221,30],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[221,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[221,44],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[221,46]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[221,31],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[221,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[221,31],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[221,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[221,38],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[221,40]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,20]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[221,34],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[221,35]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[221,36],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[221,37]},[]],"tag":"TypeVar","contents":"z"}]}]},{"annotation":[{"start":[221,41],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[221,42]},[]],"tag":"TypeVar","contents":"r"}]}]},{"annotation":[{"start":[221,47],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[221,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[221,47],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[221,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[221,49],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[221,51]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[221,47],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[221,48]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[221,52],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[221,53]},[]],"tag":"TypeVar","contents":"r"}]}]}]},684]},685]},686]}}},{"EDValue":{"edValueName":{"Ident":"curry2"},"edValueType":{"annotation":[{"start":[225,11],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[225,62]},[]],"tag":"ForAll","contents":["z",{"annotation":[{"start":[225,18],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[225,62]},[]],"tag":"ForAll","contents":["r",{"annotation":[{"start":[225,18],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[225,62]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[225,18],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[225,62]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[225,27],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[225,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[225,27],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[225,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[225,29],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[225,31]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[225,27],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[225,28]},[]],"tag":"TypeVar","contents":"z"}]},{"annotation":[{"start":[225,32],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[225,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[225,32],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[225,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[225,48],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[225,50]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[225,33],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[225,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[225,33],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[225,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[225,42],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[225,44]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,33]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,22]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[225,36],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[225,37]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,20]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[225,38],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[225,39]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[225,40],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[225,41]},[]],"tag":"TypeVar","contents":"z"}]}]}]},{"annotation":[{"start":[225,45],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[225,46]},[]],"tag":"TypeVar","contents":"r"}]}]},{"annotation":[{"start":[225,51],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[225,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[225,51],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[225,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[225,53],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[225,55]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[225,51],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[225,52]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[225,56],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[225,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[225,56],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[225,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[225,58],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[225,60]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[225,56],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[225,57]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[225,61],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[225,62]},[]],"tag":"TypeVar","contents":"r"}]}]}]}]},652]},653]},654]},655]}}},{"EDValue":{"edValueName":{"Ident":"curry3"},"edValueType":{"annotation":[{"start":[229,11],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[229,71]},[]],"tag":"ForAll","contents":["z",{"annotation":[{"start":[229,18],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[229,71]},[]],"tag":"ForAll","contents":["r",{"annotation":[{"start":[229,18],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[229,71]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[229,18],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[229,71]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[229,18],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[229,71]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[229,29],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[229,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[229,29],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[229,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[229,31],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[229,33]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[229,29],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[229,30]},[]],"tag":"TypeVar","contents":"z"}]},{"annotation":[{"start":[229,34],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[229,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[229,34],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[229,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[229,52],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[229,54]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[229,35],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[229,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[229,35],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[229,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[229,46],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[229,48]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,26]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,24]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[229,38],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[229,39]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,33]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,22]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[229,40],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[229,41]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,20]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[229,42],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[229,43]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[229,44],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[229,45]},[]],"tag":"TypeVar","contents":"z"}]}]}]}]},{"annotation":[{"start":[229,49],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[229,50]},[]],"tag":"TypeVar","contents":"r"}]}]},{"annotation":[{"start":[229,55],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[229,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[229,55],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[229,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[229,57],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[229,59]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[229,55],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[229,56]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[229,60],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[229,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[229,60],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[229,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[229,62],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[229,64]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[229,60],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[229,61]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[229,65],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[229,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[229,65],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[229,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[229,67],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[229,69]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[229,65],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[229,66]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[229,70],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[229,71]},[]],"tag":"TypeVar","contents":"r"}]}]}]}]}]},642]},643]},644]},645]},646]}}},{"EDValue":{"edValueName":{"Ident":"curry4"},"edValueType":{"annotation":[{"start":[233,11],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[233,80]},[]],"tag":"ForAll","contents":["z",{"annotation":[{"start":[233,18],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[233,80]},[]],"tag":"ForAll","contents":["r",{"annotation":[{"start":[233,18],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[233,80]},[]],"tag":"ForAll","contents":["d",{"annotation":[{"start":[233,18],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[233,80]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[233,18],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[233,80]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[233,18],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[233,80]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[233,31],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[233,80]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[233,31],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[233,80]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[233,33],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[233,35]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[233,31],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[233,32]},[]],"tag":"TypeVar","contents":"z"}]},{"annotation":[{"start":[233,36],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[233,80]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[233,36],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[233,80]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[233,56],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[233,58]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[233,37],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[233,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[233,37],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[233,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[233,50],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[233,52]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[52,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,28]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,26]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[233,40],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[233,41]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,26]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,24]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[233,42],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[233,43]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,33]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,22]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[233,44],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[233,45]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,20]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[233,46],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[233,47]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[233,48],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[233,49]},[]],"tag":"TypeVar","contents":"z"}]}]}]}]}]},{"annotation":[{"start":[233,53],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[233,54]},[]],"tag":"TypeVar","contents":"r"}]}]},{"annotation":[{"start":[233,59],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[233,80]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[233,59],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[233,80]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[233,61],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[233,63]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[233,59],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[233,60]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[233,64],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[233,80]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[233,64],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[233,80]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[233,66],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[233,68]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[233,64],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[233,65]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[233,69],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[233,80]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[233,69],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[233,80]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[233,71],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[233,73]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[233,69],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[233,70]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[233,74],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[233,80]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[233,74],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[233,80]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[233,76],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[233,78]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[233,74],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[233,75]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[233,79],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[233,80]},[]],"tag":"TypeVar","contents":"r"}]}]}]}]}]}]},630]},631]},632]},633]},634]},635]}}},{"EDValue":{"edValueName":{"Ident":"curry5"},"edValueType":{"annotation":[{"start":[237,11],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[237,89]},[]],"tag":"ForAll","contents":["z",{"annotation":[{"start":[237,18],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[237,89]},[]],"tag":"ForAll","contents":["r",{"annotation":[{"start":[237,18],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[237,89]},[]],"tag":"ForAll","contents":["e",{"annotation":[{"start":[237,18],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[237,89]},[]],"tag":"ForAll","contents":["d",{"annotation":[{"start":[237,18],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[237,89]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[237,18],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[237,89]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[237,18],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[237,89]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[237,33],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[237,89]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[237,33],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[237,89]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[237,35],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[237,37]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[237,33],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[237,34]},[]],"tag":"TypeVar","contents":"z"}]},{"annotation":[{"start":[237,38],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[237,89]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[237,38],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[237,89]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[237,60],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[237,62]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[237,39],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[237,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[237,39],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[237,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[237,54],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[237,56]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[53,23],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[53,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,23],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[53,30]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,23],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[53,28]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[237,42],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[237,43]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[52,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,28]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,26]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[237,44],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[237,45]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,26]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,24]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[237,46],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[237,47]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,33]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,22]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[237,48],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[237,49]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,20]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[237,50],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[237,51]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[237,52],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[237,53]},[]],"tag":"TypeVar","contents":"z"}]}]}]}]}]}]},{"annotation":[{"start":[237,57],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[237,58]},[]],"tag":"TypeVar","contents":"r"}]}]},{"annotation":[{"start":[237,63],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[237,89]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[237,63],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[237,89]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[237,65],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[237,67]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[237,63],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[237,64]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[237,68],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[237,89]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[237,68],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[237,89]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[237,70],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[237,72]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[237,68],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[237,69]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[237,73],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[237,89]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[237,73],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[237,89]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[237,75],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[237,77]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[237,73],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[237,74]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[237,78],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[237,89]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[237,78],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[237,89]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[237,80],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[237,82]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[237,78],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[237,79]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[237,83],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[237,89]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[237,83],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[237,89]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[237,85],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[237,87]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[237,83],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[237,84]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[237,88],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[237,89]},[]],"tag":"TypeVar","contents":"r"}]}]}]}]}]}]}]},616]},617]},618]},619]},620]},621]},622]}}},{"EDValue":{"edValueName":{"Ident":"curry6"},"edValueType":{"annotation":[{"start":[241,11],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[241,98]},[]],"tag":"ForAll","contents":["z",{"annotation":[{"start":[241,18],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[241,98]},[]],"tag":"ForAll","contents":["r",{"annotation":[{"start":[241,18],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[241,98]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[241,18],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[241,98]},[]],"tag":"ForAll","contents":["e",{"annotation":[{"start":[241,18],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[241,98]},[]],"tag":"ForAll","contents":["d",{"annotation":[{"start":[241,18],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[241,98]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[241,18],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[241,98]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[241,18],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[241,98]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[241,35],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[241,98]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[241,35],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[241,98]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[241,37],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[241,39]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[241,35],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[241,36]},[]],"tag":"TypeVar","contents":"z"}]},{"annotation":[{"start":[241,40],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[241,98]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[241,40],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[241,98]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[241,64],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[241,66]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[241,41],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[241,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[241,41],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[241,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[241,58],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[241,60]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[54,25],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[54,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[54,25],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[54,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[54,25],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[54,30]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[241,44],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[241,45]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[53,23],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[53,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,23],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[53,30]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,23],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[53,28]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[241,46],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[241,47]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[52,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,28]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,26]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[241,48],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[241,49]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,26]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,24]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[241,50],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[241,51]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,33]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,22]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[241,52],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[241,53]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,20]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[241,54],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[241,55]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[241,56],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[241,57]},[]],"tag":"TypeVar","contents":"z"}]}]}]}]}]}]}]},{"annotation":[{"start":[241,61],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[241,62]},[]],"tag":"TypeVar","contents":"r"}]}]},{"annotation":[{"start":[241,67],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[241,98]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[241,67],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[241,98]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[241,69],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[241,71]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[241,67],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[241,68]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[241,72],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[241,98]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[241,72],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[241,98]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[241,74],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[241,76]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[241,72],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[241,73]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[241,77],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[241,98]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[241,77],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[241,98]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[241,79],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[241,81]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[241,77],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[241,78]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[241,82],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[241,98]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[241,82],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[241,98]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[241,84],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[241,86]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[241,82],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[241,83]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[241,87],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[241,98]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[241,87],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[241,98]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[241,89],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[241,91]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[241,87],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[241,88]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[241,92],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[241,98]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[241,92],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[241,98]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[241,94],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[241,96]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[241,92],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[241,93]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[241,97],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[241,98]},[]],"tag":"TypeVar","contents":"r"}]}]}]}]}]}]}]}]},600]},601]},602]},603]},604]},605]},606]},607]}}},{"EDValue":{"edValueName":{"Ident":"curry7"},"edValueType":{"annotation":[{"start":[245,11],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[245,107]},[]],"tag":"ForAll","contents":["z",{"annotation":[{"start":[245,18],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[245,107]},[]],"tag":"ForAll","contents":["r",{"annotation":[{"start":[245,18],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[245,107]},[]],"tag":"ForAll","contents":["g",{"annotation":[{"start":[245,18],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[245,107]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[245,18],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[245,107]},[]],"tag":"ForAll","contents":["e",{"annotation":[{"start":[245,18],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[245,107]},[]],"tag":"ForAll","contents":["d",{"annotation":[{"start":[245,18],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[245,107]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[245,18],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[245,107]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[245,18],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[245,107]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[245,37],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[245,107]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[245,37],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[245,107]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[245,39],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[245,41]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[245,37],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[245,38]},[]],"tag":"TypeVar","contents":"z"}]},{"annotation":[{"start":[245,42],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[245,107]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[245,42],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[245,107]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[245,68],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[245,70]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[245,43],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[245,66]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[245,43],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[245,66]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[245,62],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[245,64]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[55,27],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[55,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,27],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[55,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,27],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[55,32]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[245,46],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[245,47]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[54,25],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[54,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[54,25],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[54,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[54,25],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[54,30]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[245,48],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[245,49]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[53,23],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[53,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,23],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[53,30]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,23],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[53,28]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[245,50],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[245,51]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[52,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,28]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,26]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[245,52],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[245,53]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,26]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,24]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[245,54],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[245,55]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,33]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,22]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[245,56],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[245,57]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,20]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[245,58],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[245,59]},[]],"tag":"TypeVar","contents":"g"}]},{"annotation":[{"start":[245,60],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[245,61]},[]],"tag":"TypeVar","contents":"z"}]}]}]}]}]}]}]}]},{"annotation":[{"start":[245,65],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[245,66]},[]],"tag":"TypeVar","contents":"r"}]}]},{"annotation":[{"start":[245,71],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[245,107]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[245,71],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[245,107]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[245,73],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[245,75]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[245,71],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[245,72]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[245,76],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[245,107]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[245,76],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[245,107]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[245,78],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[245,80]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[245,76],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[245,77]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[245,81],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[245,107]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[245,81],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[245,107]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[245,83],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[245,85]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[245,81],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[245,82]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[245,86],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[245,107]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[245,86],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[245,107]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[245,88],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[245,90]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[245,86],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[245,87]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[245,91],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[245,107]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[245,91],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[245,107]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[245,93],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[245,95]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[245,91],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[245,92]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[245,96],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[245,107]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[245,96],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[245,107]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[245,98],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[245,100]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[245,96],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[245,97]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[245,101],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[245,107]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[245,101],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[245,107]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[245,103],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[245,105]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[245,101],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[245,102]},[]],"tag":"TypeVar","contents":"g"}]},{"annotation":[{"start":[245,106],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[245,107]},[]],"tag":"TypeVar","contents":"r"}]}]}]}]}]}]}]}]}]},582]},583]},584]},585]},586]},587]},588]},589]},590]}}},{"EDValue":{"edValueName":{"Ident":"curry8"},"edValueType":{"annotation":[{"start":[249,11],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[249,116]},[]],"tag":"ForAll","contents":["z",{"annotation":[{"start":[249,18],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[249,116]},[]],"tag":"ForAll","contents":["r",{"annotation":[{"start":[249,18],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[249,116]},[]],"tag":"ForAll","contents":["h",{"annotation":[{"start":[249,18],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[249,116]},[]],"tag":"ForAll","contents":["g",{"annotation":[{"start":[249,18],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[249,116]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[249,18],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[249,116]},[]],"tag":"ForAll","contents":["e",{"annotation":[{"start":[249,18],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[249,116]},[]],"tag":"ForAll","contents":["d",{"annotation":[{"start":[249,18],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[249,116]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[249,18],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[249,116]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[249,18],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[249,116]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[249,39],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[249,116]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[249,39],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[249,116]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[249,41],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[249,43]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[249,39],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[249,40]},[]],"tag":"TypeVar","contents":"z"}]},{"annotation":[{"start":[249,44],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[249,116]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[249,44],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[249,116]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[249,72],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[249,74]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[249,45],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[249,70]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[249,45],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[249,70]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[249,66],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[249,68]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[56,29],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[56,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[56,29],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[56,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[56,29],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[56,34]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[249,48],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[249,49]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[55,27],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[55,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,27],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[55,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,27],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[55,32]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[249,50],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[249,51]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[54,25],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[54,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[54,25],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[54,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[54,25],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[54,30]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[249,52],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[249,53]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[53,23],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[53,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,23],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[53,30]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,23],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[53,28]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[249,54],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[249,55]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[52,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,28]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,26]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[249,56],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[249,57]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,26]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,24]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[249,58],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[249,59]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,33]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,22]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[249,60],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[249,61]},[]],"tag":"TypeVar","contents":"g"}]},{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,20]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[249,62],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[249,63]},[]],"tag":"TypeVar","contents":"h"}]},{"annotation":[{"start":[249,64],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[249,65]},[]],"tag":"TypeVar","contents":"z"}]}]}]}]}]}]}]}]}]},{"annotation":[{"start":[249,69],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[249,70]},[]],"tag":"TypeVar","contents":"r"}]}]},{"annotation":[{"start":[249,75],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[249,116]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[249,75],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[249,116]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[249,77],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[249,79]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[249,75],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[249,76]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[249,80],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[249,116]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[249,80],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[249,116]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[249,82],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[249,84]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[249,80],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[249,81]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[249,85],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[249,116]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[249,85],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[249,116]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[249,87],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[249,89]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[249,85],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[249,86]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[249,90],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[249,116]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[249,90],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[249,116]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[249,92],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[249,94]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[249,90],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[249,91]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[249,95],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[249,116]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[249,95],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[249,116]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[249,97],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[249,99]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[249,95],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[249,96]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[249,100],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[249,116]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[249,100],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[249,116]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[249,102],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[249,104]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[249,100],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[249,101]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[249,105],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[249,116]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[249,105],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[249,116]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[249,107],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[249,109]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[249,105],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[249,106]},[]],"tag":"TypeVar","contents":"g"}]},{"annotation":[{"start":[249,110],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[249,116]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[249,110],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[249,116]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[249,112],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[249,114]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[249,110],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[249,111]},[]],"tag":"TypeVar","contents":"h"}]},{"annotation":[{"start":[249,115],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[249,116]},[]],"tag":"TypeVar","contents":"r"}]}]}]}]}]}]}]}]}]}]},562]},563]},564]},565]},566]},567]},568]},569]},570]},571]}}},{"EDValue":{"edValueName":{"Ident":"curry9"},"edValueType":{"annotation":[{"start":[253,11],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[253,126]},[]],"tag":"ForAll","contents":["z",{"annotation":[{"start":[253,18],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[253,126]},[]],"tag":"ForAll","contents":["r",{"annotation":[{"start":[253,18],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[253,126]},[]],"tag":"ForAll","contents":["i",{"annotation":[{"start":[253,18],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[253,126]},[]],"tag":"ForAll","contents":["h",{"annotation":[{"start":[253,18],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[253,126]},[]],"tag":"ForAll","contents":["g",{"annotation":[{"start":[253,18],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[253,126]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[253,18],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[253,126]},[]],"tag":"ForAll","contents":["e",{"annotation":[{"start":[253,18],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[253,126]},[]],"tag":"ForAll","contents":["d",{"annotation":[{"start":[253,18],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[253,126]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[253,18],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[253,126]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[253,18],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[253,126]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[253,41],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[253,126]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[253,41],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[253,126]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[253,43],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[253,45]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[253,41],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[253,42]},[]],"tag":"TypeVar","contents":"z"}]},{"annotation":[{"start":[253,46],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[253,126]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[253,46],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[253,126]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[253,77],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[253,79]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[253,47],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[253,75]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[253,47],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[253,75]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[253,71],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[253,73]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[57,32],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[57,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[57,32],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[57,39]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[57,32],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[57,37]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[253,51],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[253,52]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[56,29],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[56,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[56,29],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[56,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[56,29],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[56,34]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[253,53],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[253,54]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[55,27],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[55,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,27],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[55,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,27],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[55,32]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[253,55],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[253,56]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[54,25],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[54,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[54,25],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[54,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[54,25],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[54,30]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[253,57],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[253,58]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[53,23],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[53,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,23],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[53,30]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,23],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[53,28]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[253,59],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[253,60]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[52,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,28]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,26]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[253,61],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[253,62]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,26]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,24]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[253,63],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[253,64]},[]],"tag":"TypeVar","contents":"g"}]},{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,33]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,22]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[253,65],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[253,66]},[]],"tag":"TypeVar","contents":"h"}]},{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,20]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[253,67],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[253,68]},[]],"tag":"TypeVar","contents":"i"}]},{"annotation":[{"start":[253,69],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[253,70]},[]],"tag":"TypeVar","contents":"z"}]}]}]}]}]}]}]}]}]}]},{"annotation":[{"start":[253,74],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[253,75]},[]],"tag":"TypeVar","contents":"r"}]}]},{"annotation":[{"start":[253,80],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[253,126]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[253,80],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[253,126]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[253,82],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[253,84]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[253,80],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[253,81]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[253,85],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[253,126]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[253,85],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[253,126]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[253,87],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[253,89]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[253,85],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[253,86]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[253,90],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[253,126]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[253,90],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[253,126]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[253,92],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[253,94]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[253,90],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[253,91]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[253,95],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[253,126]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[253,95],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[253,126]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[253,97],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[253,99]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[253,95],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[253,96]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[253,100],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[253,126]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[253,100],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[253,126]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[253,102],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[253,104]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[253,100],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[253,101]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[253,105],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[253,126]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[253,105],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[253,126]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[253,107],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[253,109]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[253,105],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[253,106]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[253,110],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[253,126]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[253,110],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[253,126]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[253,112],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[253,114]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[253,110],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[253,111]},[]],"tag":"TypeVar","contents":"g"}]},{"annotation":[{"start":[253,115],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[253,126]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[253,115],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[253,126]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[253,117],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[253,119]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[253,115],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[253,116]},[]],"tag":"TypeVar","contents":"h"}]},{"annotation":[{"start":[253,120],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[253,126]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[253,120],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[253,126]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[253,122],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[253,124]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[253,120],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[253,121]},[]],"tag":"TypeVar","contents":"i"}]},{"annotation":[{"start":[253,125],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[253,126]},[]],"tag":"TypeVar","contents":"r"}]}]}]}]}]}]}]}]}]}]}]},540]},541]},542]},543]},544]},545]},546]},547]},548]},549]},550]}}},{"EDValue":{"edValueName":{"Ident":"curry10"},"edValueType":{"annotation":[{"start":[257,12],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[257,136]},[]],"tag":"ForAll","contents":["z",{"annotation":[{"start":[257,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[257,136]},[]],"tag":"ForAll","contents":["r",{"annotation":[{"start":[257,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[257,136]},[]],"tag":"ForAll","contents":["j",{"annotation":[{"start":[257,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[257,136]},[]],"tag":"ForAll","contents":["i",{"annotation":[{"start":[257,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[257,136]},[]],"tag":"ForAll","contents":["h",{"annotation":[{"start":[257,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[257,136]},[]],"tag":"ForAll","contents":["g",{"annotation":[{"start":[257,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[257,136]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[257,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[257,136]},[]],"tag":"ForAll","contents":["e",{"annotation":[{"start":[257,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[257,136]},[]],"tag":"ForAll","contents":["d",{"annotation":[{"start":[257,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[257,136]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[257,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[257,136]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[257,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[257,136]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[257,44],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[257,136]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[257,44],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[257,136]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[257,46],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[257,48]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[257,44],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[257,45]},[]],"tag":"TypeVar","contents":"z"}]},{"annotation":[{"start":[257,49],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[257,136]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[257,49],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[257,136]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[257,82],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[257,84]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[257,50],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[257,80]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[257,50],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[257,80]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[257,76],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[257,78]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[58,34],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[58,67]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[58,34],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[58,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[58,34],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[58,39]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[257,54],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[257,55]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[57,32],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[57,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[57,32],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[57,39]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[57,32],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[57,37]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[257,56],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[257,57]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[56,29],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[56,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[56,29],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[56,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[56,29],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[56,34]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[257,58],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[257,59]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[55,27],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[55,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,27],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[55,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,27],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[55,32]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[257,60],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[257,61]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[54,25],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[54,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[54,25],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[54,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[54,25],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[54,30]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[257,62],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[257,63]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[53,23],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[53,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,23],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[53,30]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,23],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[53,28]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[257,64],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[257,65]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[52,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,28]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[52,26]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[257,66],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[257,67]},[]],"tag":"TypeVar","contents":"g"}]},{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,26]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[51,24]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[257,68],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[257,69]},[]],"tag":"TypeVar","contents":"h"}]},{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,33]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[50,22]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[257,70],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[257,71]},[]],"tag":"TypeVar","contents":"i"}]},{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[49,20]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[257,72],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[257,73]},[]],"tag":"TypeVar","contents":"j"}]},{"annotation":[{"start":[257,74],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[257,75]},[]],"tag":"TypeVar","contents":"z"}]}]}]}]}]}]}]}]}]}]}]},{"annotation":[{"start":[257,79],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[257,80]},[]],"tag":"TypeVar","contents":"r"}]}]},{"annotation":[{"start":[257,85],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[257,136]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[257,85],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[257,136]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[257,87],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[257,89]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[257,85],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[257,86]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[257,90],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[257,136]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[257,90],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[257,136]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[257,92],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[257,94]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[257,90],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[257,91]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[257,95],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[257,136]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[257,95],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[257,136]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[257,97],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[257,99]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[257,95],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[257,96]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[257,100],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[257,136]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[257,100],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[257,136]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[257,102],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[257,104]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[257,100],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[257,101]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[257,105],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[257,136]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[257,105],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[257,136]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[257,107],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[257,109]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[257,105],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[257,106]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[257,110],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[257,136]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[257,110],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[257,136]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[257,112],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[257,114]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[257,110],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[257,111]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[257,115],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[257,136]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[257,115],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[257,136]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[257,117],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[257,119]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[257,115],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[257,116]},[]],"tag":"TypeVar","contents":"g"}]},{"annotation":[{"start":[257,120],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[257,136]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[257,120],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[257,136]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[257,122],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[257,124]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[257,120],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[257,121]},[]],"tag":"TypeVar","contents":"h"}]},{"annotation":[{"start":[257,125],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[257,136]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[257,125],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[257,136]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[257,127],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[257,129]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[257,125],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[257,126]},[]],"tag":"TypeVar","contents":"i"}]},{"annotation":[{"start":[257,130],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[257,136]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[257,130],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[257,136]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[257,132],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[257,134]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[257,130],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[257,131]},[]],"tag":"TypeVar","contents":"j"}]},{"annotation":[{"start":[257,135],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[257,136]},[]],"tag":"TypeVar","contents":"r"}]}]}]}]}]}]}]}]}]}]}]}]},660]},661]},662]},663]},664]},665]},666]},667]},668]},669]},670]},671]}}}],"efSourceSpan":{"start":[24,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple/Nested.purs","end":[258,92]}}
diff --git a/tests/purs/publish/basic-example/output/Data.Tuple/docs.json b/tests/purs/publish/basic-example/output/Data.Tuple/docs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.Tuple/docs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"reExports":[],"name":"Data.Tuple","comments":"A data type and functions for working with ordered pairs.\n","declarations":[{"children":[{"comments":null,"title":"Tuple","info":{"arguments":[{"annotation":[],"tag":"TypeVar","contents":"a"},{"annotation":[],"tag":"TypeVar","contents":"b"}],"declType":"dataConstructor"},"sourceSpan":null},{"comments":"Allows `Tuple`s to be rendered as a string with `show` whenever there are\n`Show` instances for both component types.\n","title":"showTuple","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Show"],"Show"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","Show"],"Show"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"b"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Show"],"Show"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}},"sourceSpan":{"start":[31,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[32,65]}},{"comments":"Allows `Tuple`s to be checked for equality with `==` and `/=` whenever\nthere are `Eq` instances for both component types.\n","title":"eqTuple","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"b"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Eq"],"Eq"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}},"sourceSpan":{"start":[36,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[36,58]}},{"comments":null,"title":"eq1Tuple","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Eq"],"Eq1"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[38,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[38,50]}},{"comments":"Allows `Tuple`s to be compared with `compare`, `>`, `>=`, `<` and `<=`\nwhenever there are `Ord` instances for both component types. To obtain\nthe result, the `fst`s are `compare`d, and if they are `EQ`ual, the\n`snd`s are `compare`d.\n","title":"ordTuple","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"b"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord"],"Ord"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}},"sourceSpan":{"start":[44,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[44,62]}},{"comments":null,"title":"ord1Tuple","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord"],"Ord1"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[46,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[46,53]}},{"comments":null,"title":"boundedTuple","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Bounded"],"Bounded"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","Bounded"],"Bounded"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"b"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Bounded"],"Bounded"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}},"sourceSpan":{"start":[48,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[50,31]}},{"comments":null,"title":"semigroupoidTuple","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Semigroupoid"],"Semigroupoid"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]}]}},"sourceSpan":{"start":[52,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[53,46]}},{"comments":"The `Semigroup` instance enables use of the associative operator `<>` on\n`Tuple`s whenever there are `Semigroup` instances for the component\ntypes. The `<>` operator is applied pairwise, so:\n```purescript\n(Tuple a1 b1) <> (Tuple a2 b2) = Tuple (a1 <> a2) (b1 <> b2)\n```\n","title":"semigroupTuple","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Semigroup"],"Semigroup"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","Semigroup"],"Semigroup"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"b"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup"],"Semigroup"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}},"sourceSpan":{"start":[61,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[62,67]}},{"comments":null,"title":"monoidTuple","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Monoid"],"Monoid"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","Monoid"],"Monoid"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"b"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid"],"Monoid"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}},"sourceSpan":{"start":[64,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[65,31]}},{"comments":null,"title":"semiringTuple","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Semiring"],"Semiring"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","Semiring"],"Semiring"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"b"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semiring"],"Semiring"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}},"sourceSpan":{"start":[67,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[71,25]}},{"comments":null,"title":"ringTuple","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Ring"],"Ring"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","Ring"],"Ring"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"b"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ring"],"Ring"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}},"sourceSpan":{"start":[73,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[74,66]}},{"comments":null,"title":"commutativeRingTuple","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","CommutativeRing"],"CommutativeRing"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","CommutativeRing"],"CommutativeRing"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"b"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","CommutativeRing"],"CommutativeRing"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}},"sourceSpan":{"start":[76,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[76,103]}},{"comments":null,"title":"heytingAlgebraTuple","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","HeytingAlgebra"],"HeytingAlgebra"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","HeytingAlgebra"],"HeytingAlgebra"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"b"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","HeytingAlgebra"],"HeytingAlgebra"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}},"sourceSpan":{"start":[78,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[84,42]}},{"comments":null,"title":"booleanAlgebraTuple","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","BooleanAlgebra"],"BooleanAlgebra"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Data","BooleanAlgebra"],"BooleanAlgebra"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"b"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","BooleanAlgebra"],"BooleanAlgebra"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}},"sourceSpan":{"start":[86,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[86,99]}},{"comments":"The `Functor` instance allows functions to transform the contents of a\n`Tuple` with the `<$>` operator, applying the function to the second\ncomponent, so:\n```purescript\nf <$> (Tuple x y) = Tuple x (f y)\n````\n","title":"functorTuple","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Functor"],"Functor"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[94,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[94,50]}},{"comments":null,"title":"invariantTuple","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Functor","Invariant"],"Invariant"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[96,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[97,15]}},{"comments":null,"title":"bifunctorTuple","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Bifunctor"],"Bifunctor"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]}]}},"sourceSpan":{"start":[99,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[100,44]}},{"comments":"The `Functor` instance allows functions to transform the contents of a\n`Tuple` with the `<*>` operator whenever there is a `Semigroup` instance\nfor the `fst` component, so:\n```purescript\n(Tuple a1 f) <*> (Tuple a2 x) == Tuple (a1 <> a2) (f x)\n```\n","title":"applyTuple","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Semigroup"],"Semigroup"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Apply"],"Apply"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[108,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[109,59]}},{"comments":null,"title":"biapplyTuple","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Biapply"],"Biapply"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]}]}},"sourceSpan":{"start":[111,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[112,54]}},{"comments":null,"title":"applicativeTuple","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Monoid"],"Monoid"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Applicative"],"Applicative"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[114,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[115,22]}},{"comments":null,"title":"biapplicativeTuple","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Biapplicative"],"Biapplicative"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]}]}},"sourceSpan":{"start":[117,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[118,17]}},{"comments":null,"title":"bindTuple","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Semigroup"],"Semigroup"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Bind"],"Bind"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[120,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[122,37]}},{"comments":null,"title":"monadTuple","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Monoid"],"Monoid"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Monad"],"Monad"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[124,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[124,53]}},{"comments":null,"title":"extendTuple","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Extend"],"Extend"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[126,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[127,41]}},{"comments":null,"title":"comonadTuple","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Comonad"],"Comonad"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[129,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[130,16]}},{"comments":null,"title":"lazyTuple","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Control","Lazy"],"Lazy"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Control","Lazy"],"Lazy"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"b"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Lazy"],"Lazy"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}},"sourceSpan":{"start":[132,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[133,76]}},{"comments":null,"title":"foldableTuple","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Foldable"],"Foldable"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[135,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[138,30]}},{"comments":null,"title":"bifoldableTuple","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Bifoldable"],"Bifoldable"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]}]}},"sourceSpan":{"start":[140,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[143,42]}},{"comments":null,"title":"traversableTuple","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Traversable"],"Traversable"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[145,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[147,39]}},{"comments":null,"title":"bitraversableTuple","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Bitraversable"],"Bitraversable"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]}]}},"sourceSpan":{"start":[149,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[151,45]}},{"comments":null,"title":"distributiveTuple","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Type","Equality"],"TypeEquals"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Distributive"],"Distributive"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[153,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[155,45]}}],"comments":"A simple product type for wrapping a pair of component values.\n","title":"Tuple","info":{"declType":"data","dataDeclType":"data","typeArguments":[["a",null],["b",null]]},"sourceSpan":{"start":[27,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[27,27]}},{"children":[],"comments":"Returns the first component of a tuple.\n","title":"fst","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},null]},null]}},"sourceSpan":{"start":[158,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[158,34]}},{"children":[],"comments":"Returns the second component of a tuple.\n","title":"snd","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},null]},null]}},"sourceSpan":{"start":[162,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[162,34]}},{"children":[],"comments":"Turn a function that expects a tuple into a function of two arguments.\n","title":"curry","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]}]}]},null]},null]},null]}},"sourceSpan":{"start":[166,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[166,55]}},{"children":[],"comments":"Turn a function of two arguments into a function that expects a tuple.\n","title":"uncurry","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]}]},null]},null]},null]}},"sourceSpan":{"start":[170,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[170,57]}},{"children":[],"comments":"Exchange the first and second components of a tuple.\n","title":"swap","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},null]},null]}},"sourceSpan":{"start":[174,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[174,43]}},{"children":[],"comments":"Lookup a value in a data structure of `Tuple`s, generalizing association lists.\n","title":"lookup","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Foldable"],"Foldable"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}]}]}]},null]},null]},null]}},"sourceSpan":{"start":[178,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[178,76]}}]}
diff --git a/tests/purs/publish/basic-example/output/Data.Tuple/externs.json b/tests/purs/publish/basic-example/output/Data.Tuple/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.Tuple/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Data","Tuple"],"efExports":[{"TypeRef":[{"start":[2,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[179,91]},"Tuple",["Tuple"]]},{"ValueRef":[{"start":[2,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[179,91]},{"Ident":"fst"}]},{"ValueRef":[{"start":[2,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[179,91]},{"Ident":"snd"}]},{"ValueRef":[{"start":[2,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[179,91]},{"Ident":"curry"}]},{"ValueRef":[{"start":[2,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[179,91]},{"Ident":"uncurry"}]},{"ValueRef":[{"start":[2,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[179,91]},{"Ident":"swap"}]},{"ValueRef":[{"start":[2,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[179,91]},{"Ident":"lookup"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"showTuple"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"eqTuple"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"eq1Tuple"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"ordTuple"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"ord1Tuple"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"boundedTuple"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"semigroupoidTuple"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"semigroupTuple"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"monoidTuple"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"semiringTuple"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"ringTuple"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"commutativeRingTuple"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"heytingAlgebraTuple"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"booleanAlgebraTuple"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"functorTuple"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"invariantTuple"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"bifunctorTuple"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"applyTuple"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"biapplyTuple"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"applicativeTuple"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"biapplicativeTuple"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"bindTuple"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"monadTuple"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"extendTuple"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"comonadTuple"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"lazyTuple"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"foldableTuple"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"bifoldableTuple"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"traversableTuple"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"bitraversableTuple"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"distributiveTuple"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Prelude"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Control","Biapplicative"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[6,31],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[6,50]},"Biapplicative"]}]},"eiImportedAs":null},{"eiModule":["Control","Biapply"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[7,25],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[7,38]},"Biapply"]}]},"eiImportedAs":null},{"eiModule":["Control","Comonad"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[8,25],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[8,38]},"Comonad"]}]},"eiImportedAs":null},{"eiModule":["Control","Extend"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[9,24],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[9,36]},"Extend"]}]},"eiImportedAs":null},{"eiModule":["Control","Lazy"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[10,22],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[10,32]},"Lazy"]},{"ValueRef":[{"start":[10,34],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[10,39]},{"Ident":"defer"}]}]},"eiImportedAs":null},{"eiModule":["Data","Bifoldable"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[11,25],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[11,41]},"Bifoldable"]}]},"eiImportedAs":null},{"eiModule":["Data","Bifunctor"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[12,24],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[12,39]},"Bifunctor"]}]},"eiImportedAs":null},{"eiModule":["Data","Bitraversable"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[13,28],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[13,47]},"Bitraversable"]}]},"eiImportedAs":null},{"eiModule":["Data","Distributive"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[14,27],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[14,45]},"Distributive"]},{"ValueRef":[{"start":[14,47],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[14,61]},{"Ident":"collectDefault"}]}]},"eiImportedAs":null},{"eiModule":["Data","Eq"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[15,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[15,26]},"Eq1"]}]},"eiImportedAs":null},{"eiModule":["Data","Foldable"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[16,23],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[16,37]},"Foldable"]},{"ValueRef":[{"start":[16,39],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[16,46]},{"Ident":"foldMap"}]}]},"eiImportedAs":null},{"eiModule":["Data","Functor","Invariant"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[17,32],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[17,47]},"Invariant"]},{"ValueRef":[{"start":[17,49],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[17,54]},{"Ident":"imapF"}]}]},"eiImportedAs":null},{"eiModule":["Data","HeytingAlgebra"],"eiImportType":{"Explicit":[{"ValueRef":[{"start":[18,29],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[18,36]},{"Ident":"implies"}]},{"ValueRef":[{"start":[18,38],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[18,40]},{"Ident":"ff"}]},{"ValueRef":[{"start":[18,42],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[18,44]},{"Ident":"tt"}]}]},"eiImportedAs":null},{"eiModule":["Data","Maybe"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[19,20],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[19,29]},"Maybe",null]}]},"eiImportedAs":null},{"eiModule":["Data","Maybe","First"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[20,26],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[20,35]},"First",null]}]},"eiImportedAs":null},{"eiModule":["Data","Newtype"],"eiImportType":{"Explicit":[{"ValueRef":[{"start":[21,22],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[21,28]},{"Ident":"unwrap"}]}]},"eiImportedAs":null},{"eiModule":["Data","Ord"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[22,18],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[22,28]},"Ord1"]}]},"eiImportedAs":null},{"eiModule":["Data","Traversable"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[23,26],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[23,43]},"Traversable"]}]},"eiImportedAs":null},{"eiModule":["Type","Equality"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[24,23],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[24,39]},"TypeEquals"]},{"ValueRef":[{"start":[24,41],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[24,45]},{"Ident":"from"}]}]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDType":{"edTypeName":"Tuple","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[27,24],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[27,25]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[27,26],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[27,27]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]},"edTypeDeclarationKind":{"DataType":{"args":[["a",{"annotation":[{"start":[27,24],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[27,25]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["b",{"annotation":[{"start":[27,26],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[27,27]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]],"ctors":[["Tuple",[{"annotation":[{"start":[27,24],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[27,25]},[]],"tag":"TypeVar","contents":"a"},{"annotation":[{"start":[27,26],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[27,27]},[]],"tag":"TypeVar","contents":"b"}]]]}}}},{"EDDataConstructor":{"edDataCtorName":"Tuple","edDataCtorOrigin":"data","edDataCtorTypeCtor":"Tuple","edDataCtorType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[27,24],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[27,25]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[27,26],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[27,27]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"b"}]}]}]},null]},null]},"edDataCtorFields":[{"Ident":"value0"},{"Ident":"value1"}]}},{"EDValue":{"edValueName":{"Ident":"fst"},"edValueType":{"annotation":[{"start":[158,8],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[158,34]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[158,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[158,34]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[158,20],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[158,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[158,20],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[158,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[158,30],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[158,32]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[158,20],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[158,29]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[158,20],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[158,27]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[158,20],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[158,25]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[158,26],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[158,27]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[158,28],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[158,29]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[158,33],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[158,34]},[]],"tag":"TypeVar","contents":"a"}]},105]},106]}}},{"EDValue":{"edValueName":{"Ident":"snd"},"edValueType":{"annotation":[{"start":[162,8],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[162,34]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[162,15],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[162,34]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[162,20],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[162,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[162,20],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[162,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[162,30],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[162,32]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[162,20],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[162,29]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[162,20],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[162,27]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[162,20],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[162,25]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[162,26],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[162,27]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[162,28],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[162,29]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[162,33],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[162,34]},[]],"tag":"TypeVar","contents":"b"}]},30]},31]}}},{"EDValue":{"edValueName":{"Ident":"curry"},"edValueType":{"annotation":[{"start":[166,10],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[166,55]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[166,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[166,55]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[166,17],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[166,55]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[166,24],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[166,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[166,24],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[166,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[166,41],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[166,43]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[166,25],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[166,39]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[166,25],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[166,39]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[166,35],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[166,37]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[166,25],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[166,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[166,25],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[166,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[166,25],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[166,30]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[166,31],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[166,32]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[166,33],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[166,34]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[166,38],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[166,39]},[]],"tag":"TypeVar","contents":"c"}]}]},{"annotation":[{"start":[166,44],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[166,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[166,44],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[166,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[166,46],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[166,48]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[166,44],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[166,45]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[166,49],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[166,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[166,49],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[166,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[166,51],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[166,53]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[166,49],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[166,50]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[166,54],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[166,55]},[]],"tag":"TypeVar","contents":"c"}]}]}]},157]},158]},159]}}},{"EDValue":{"edValueName":{"Ident":"uncurry"},"edValueType":{"annotation":[{"start":[170,12],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[170,57]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[170,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[170,57]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[170,19],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[170,57]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[170,26],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[170,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[170,26],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[170,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[170,40],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[170,42]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[170,27],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[170,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[170,27],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[170,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[170,29],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[170,31]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[170,27],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[170,28]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[170,32],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[170,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[170,32],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[170,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[170,34],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[170,36]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[170,32],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[170,33]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[170,37],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[170,38]},[]],"tag":"TypeVar","contents":"c"}]}]}]},{"annotation":[{"start":[170,43],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[170,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[170,43],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[170,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[170,53],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[170,55]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[170,43],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[170,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[170,43],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[170,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[170,43],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[170,48]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[170,49],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[170,50]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[170,51],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[170,52]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[170,56],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[170,57]},[]],"tag":"TypeVar","contents":"c"}]}]},0]},1]},2]}}},{"EDValue":{"edValueName":{"Ident":"swap"},"edValueType":{"annotation":[{"start":[174,9],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[174,43]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[174,16],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[174,43]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[174,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[174,43]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[174,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[174,43]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[174,31],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[174,33]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[174,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[174,30]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[174,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[174,28]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[174,21],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[174,26]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[174,27],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[174,28]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[174,29],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[174,30]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[174,34],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[174,43]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[174,34],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[174,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[174,34],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[174,39]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[174,40],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[174,41]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[174,42],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[174,43]},[]],"tag":"TypeVar","contents":"a"}]}]},26]},27]}}},{"EDValue":{"edValueName":{"Ident":"lookup"},"edValueType":{"annotation":[{"start":[178,11],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[178,76]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[178,18],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[178,76]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[178,18],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[178,76]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[178,25],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[178,76]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[178,25],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[178,35]},[]],"constraintClass":[["Data","Foldable"],"Foldable"],"constraintArgs":[{"annotation":[{"start":[178,34],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[178,35]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[178,39],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[178,76]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[178,39],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[178,43]},[]],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[{"start":[178,42],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[178,43]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[178,47],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[178,76]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[178,47],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[178,76]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[178,49],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[178,51]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[178,47],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[178,48]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[178,52],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[178,76]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[178,52],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[178,76]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[178,66],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[178,68]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[178,52],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[178,65]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[178,52],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[178,53]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[178,55],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[178,64]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[178,55],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[178,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[178,55],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[178,60]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[178,61],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[178,62]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[178,63],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[178,64]},[]],"tag":"TypeVar","contents":"b"}]}]}]},{"annotation":[{"start":[178,69],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[178,76]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[178,69],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[178,74]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[178,75],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[178,76]},[]],"tag":"TypeVar","contents":"b"}]}]}]}]}]},82]},83]},84]}}},{"EDInstance":{"edInstanceClassName":[["Data","Show"],"Show"],"edInstanceName":{"Ident":"showTuple"},"edInstanceTypes":[{"annotation":[{"start":[31,49],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[31,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[31,49],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[31,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[31,49],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[31,54]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[31,55],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[31,56]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[31,57],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[31,58]},[]],"tag":"TypeVar","contents":"b"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[31,24],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[31,30]},[]],"constraintClass":[["Data","Show"],"Show"],"constraintArgs":[{"annotation":[{"start":[31,29],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[31,30]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"constraintAnn":[{"start":[31,32],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[31,38]},[]],"constraintClass":[["Data","Show"],"Show"],"constraintArgs":[{"annotation":[{"start":[31,37],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[31,38]},[]],"tag":"TypeVar","contents":"b"}],"constraintData":null}],"edInstanceChain":[[["Data","Tuple"],{"Ident":"showTuple"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Eq"],"Eq"],"edInstanceName":{"Ident":"eqTuple"},"edInstanceTypes":[{"annotation":[{"start":[36,48],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[36,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,48],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[36,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,48],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[36,53]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[36,54],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[36,55]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[36,56],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[36,57]},[]],"tag":"TypeVar","contents":"b"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[36,29],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[36,33]},[]],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[{"start":[36,32],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[36,33]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"constraintAnn":[{"start":[36,35],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[36,39]},[]],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[{"start":[36,38],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[36,39]},[]],"tag":"TypeVar","contents":"b"}],"constraintData":null}],"edInstanceChain":[[["Data","Tuple"],{"Ident":"eqTuple"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Eq"],"Eq1"],"edInstanceName":{"Ident":"eq1Tuple"},"edInstanceTypes":[{"annotation":[{"start":[38,42],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[38,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[38,42],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[38,47]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[38,48],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[38,49]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[38,29],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[38,33]},[]],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[{"start":[38,32],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[38,33]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","Tuple"],{"Ident":"eq1Tuple"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Ord"],"Ord"],"edInstanceName":{"Ident":"ordTuple"},"edInstanceTypes":[{"annotation":[{"start":[44,52],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[44,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[44,52],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[44,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[44,52],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[44,57]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[44,58],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[44,59]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[44,60],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[44,61]},[]],"tag":"TypeVar","contents":"b"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[44,30],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[44,35]},[]],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[{"start":[44,34],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[44,35]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"constraintAnn":[{"start":[44,37],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[44,42]},[]],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[{"start":[44,41],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[44,42]},[]],"tag":"TypeVar","contents":"b"}],"constraintData":null}],"edInstanceChain":[[["Data","Tuple"],{"Ident":"ordTuple"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Ord"],"Ord1"],"edInstanceName":{"Ident":"ord1Tuple"},"edInstanceTypes":[{"annotation":[{"start":[46,45],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[46,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[46,45],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[46,50]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[46,51],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[46,52]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[46,30],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[46,35]},[]],"constraintClass":[["Data","Ord"],"Ord"],"constraintArgs":[{"annotation":[{"start":[46,34],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[46,35]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","Tuple"],{"Ident":"ord1Tuple"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Bounded"],"Bounded"],"edInstanceName":{"Ident":"boundedTuple"},"edInstanceTypes":[{"annotation":[{"start":[48,61],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[48,70]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[48,61],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[48,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[48,61],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[48,66]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[48,67],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[48,68]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[48,69],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[48,70]},[]],"tag":"TypeVar","contents":"b"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[48,27],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[48,36]},[]],"constraintClass":[["Data","Bounded"],"Bounded"],"constraintArgs":[{"annotation":[{"start":[48,35],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[48,36]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"constraintAnn":[{"start":[48,38],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[48,47]},[]],"constraintClass":[["Data","Bounded"],"Bounded"],"constraintArgs":[{"annotation":[{"start":[48,46],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[48,47]},[]],"tag":"TypeVar","contents":"b"}],"constraintData":null}],"edInstanceChain":[[["Data","Tuple"],{"Ident":"boundedTuple"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Semigroupoid"],"Semigroupoid"],"edInstanceName":{"Ident":"semigroupoidTuple"},"edInstanceTypes":[{"annotation":[{"start":[52,44],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[52,49]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Tuple"],{"Ident":"semigroupoidTuple"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Semigroup"],"Semigroup"],"edInstanceName":{"Ident":"semigroupTuple"},"edInstanceTypes":[{"annotation":[{"start":[61,69],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[61,78]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[61,69],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[61,76]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[61,69],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[61,74]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[61,75],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[61,76]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[61,77],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[61,78]},[]],"tag":"TypeVar","contents":"b"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[61,29],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[61,40]},[]],"constraintClass":[["Data","Semigroup"],"Semigroup"],"constraintArgs":[{"annotation":[{"start":[61,39],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[61,40]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"constraintAnn":[{"start":[61,42],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[61,53]},[]],"constraintClass":[["Data","Semigroup"],"Semigroup"],"constraintArgs":[{"annotation":[{"start":[61,52],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[61,53]},[]],"tag":"TypeVar","contents":"b"}],"constraintData":null}],"edInstanceChain":[[["Data","Tuple"],{"Ident":"semigroupTuple"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Monoid"],"Monoid"],"edInstanceName":{"Ident":"monoidTuple"},"edInstanceTypes":[{"annotation":[{"start":[64,57],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[64,66]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[64,57],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[64,64]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[64,57],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[64,62]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[64,63],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[64,64]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[64,65],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[64,66]},[]],"tag":"TypeVar","contents":"b"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[64,26],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[64,34]},[]],"constraintClass":[["Data","Monoid"],"Monoid"],"constraintArgs":[{"annotation":[{"start":[64,33],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[64,34]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"constraintAnn":[{"start":[64,36],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[64,44]},[]],"constraintClass":[["Data","Monoid"],"Monoid"],"constraintArgs":[{"annotation":[{"start":[64,43],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[64,44]},[]],"tag":"TypeVar","contents":"b"}],"constraintData":null}],"edInstanceChain":[[["Data","Tuple"],{"Ident":"monoidTuple"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Semiring"],"Semiring"],"edInstanceName":{"Ident":"semiringTuple"},"edInstanceTypes":[{"annotation":[{"start":[67,65],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[67,74]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[67,65],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[67,72]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[67,65],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[67,70]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[67,71],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[67,72]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[67,73],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[67,74]},[]],"tag":"TypeVar","contents":"b"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[67,28],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[67,38]},[]],"constraintClass":[["Data","Semiring"],"Semiring"],"constraintArgs":[{"annotation":[{"start":[67,37],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[67,38]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"constraintAnn":[{"start":[67,40],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[67,50]},[]],"constraintClass":[["Data","Semiring"],"Semiring"],"constraintArgs":[{"annotation":[{"start":[67,49],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[67,50]},[]],"tag":"TypeVar","contents":"b"}],"constraintData":null}],"edInstanceChain":[[["Data","Tuple"],{"Ident":"semiringTuple"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Ring"],"Ring"],"edInstanceName":{"Ident":"ringTuple"},"edInstanceTypes":[{"annotation":[{"start":[73,49],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[73,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[73,49],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[73,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[73,49],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[73,54]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[73,55],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[73,56]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[73,57],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[73,58]},[]],"tag":"TypeVar","contents":"b"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[73,24],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[73,30]},[]],"constraintClass":[["Data","Ring"],"Ring"],"constraintArgs":[{"annotation":[{"start":[73,29],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[73,30]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"constraintAnn":[{"start":[73,32],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[73,38]},[]],"constraintClass":[["Data","Ring"],"Ring"],"constraintArgs":[{"annotation":[{"start":[73,37],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[73,38]},[]],"tag":"TypeVar","contents":"b"}],"constraintData":null}],"edInstanceChain":[[["Data","Tuple"],{"Ident":"ringTuple"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","CommutativeRing"],"CommutativeRing"],"edInstanceName":{"Ident":"commutativeRingTuple"},"edInstanceTypes":[{"annotation":[{"start":[76,93],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[76,102]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[76,93],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[76,100]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[76,93],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[76,98]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[76,99],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[76,100]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[76,101],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[76,102]},[]],"tag":"TypeVar","contents":"b"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[76,35],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[76,52]},[]],"constraintClass":[["Data","CommutativeRing"],"CommutativeRing"],"constraintArgs":[{"annotation":[{"start":[76,51],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[76,52]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"constraintAnn":[{"start":[76,54],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[76,71]},[]],"constraintClass":[["Data","CommutativeRing"],"CommutativeRing"],"constraintArgs":[{"annotation":[{"start":[76,70],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[76,71]},[]],"tag":"TypeVar","contents":"b"}],"constraintData":null}],"edInstanceChain":[[["Data","Tuple"],{"Ident":"commutativeRingTuple"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","HeytingAlgebra"],"HeytingAlgebra"],"edInstanceName":{"Ident":"heytingAlgebraTuple"},"edInstanceTypes":[{"annotation":[{"start":[78,89],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[78,98]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[78,89],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[78,96]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[78,89],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[78,94]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[78,95],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[78,96]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[78,97],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[78,98]},[]],"tag":"TypeVar","contents":"b"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[78,34],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[78,50]},[]],"constraintClass":[["Data","HeytingAlgebra"],"HeytingAlgebra"],"constraintArgs":[{"annotation":[{"start":[78,49],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[78,50]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"constraintAnn":[{"start":[78,52],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[78,68]},[]],"constraintClass":[["Data","HeytingAlgebra"],"HeytingAlgebra"],"constraintArgs":[{"annotation":[{"start":[78,67],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[78,68]},[]],"tag":"TypeVar","contents":"b"}],"constraintData":null}],"edInstanceChain":[[["Data","Tuple"],{"Ident":"heytingAlgebraTuple"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","BooleanAlgebra"],"BooleanAlgebra"],"edInstanceName":{"Ident":"booleanAlgebraTuple"},"edInstanceTypes":[{"annotation":[{"start":[86,89],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[86,98]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[86,89],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[86,96]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[86,89],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[86,94]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[86,95],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[86,96]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[86,97],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[86,98]},[]],"tag":"TypeVar","contents":"b"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[86,34],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[86,50]},[]],"constraintClass":[["Data","BooleanAlgebra"],"BooleanAlgebra"],"constraintArgs":[{"annotation":[{"start":[86,49],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[86,50]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"constraintAnn":[{"start":[86,52],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[86,68]},[]],"constraintClass":[["Data","BooleanAlgebra"],"BooleanAlgebra"],"constraintArgs":[{"annotation":[{"start":[86,67],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[86,68]},[]],"tag":"TypeVar","contents":"b"}],"constraintData":null}],"edInstanceChain":[[["Data","Tuple"],{"Ident":"booleanAlgebraTuple"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Functor"],"Functor"],"edInstanceName":{"Ident":"functorTuple"},"edInstanceTypes":[{"annotation":[{"start":[94,42],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[94,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[94,42],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[94,47]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[94,48],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[94,49]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Tuple"],{"Ident":"functorTuple"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Functor","Invariant"],"Invariant"],"edInstanceName":{"Ident":"invariantTuple"},"edInstanceTypes":[{"annotation":[{"start":[96,39],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[96,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[96,39],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[96,44]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[96,45],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[96,46]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Tuple"],{"Ident":"invariantTuple"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Bifunctor"],"Bifunctor"],"edInstanceName":{"Ident":"bifunctorTuple"},"edInstanceTypes":[{"annotation":[{"start":[99,38],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[99,43]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Tuple"],{"Ident":"bifunctorTuple"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Apply"],"Apply"],"edInstanceName":{"Ident":"applyTuple"},"edInstanceTypes":[{"annotation":[{"start":[108,48],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[108,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[108,48],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[108,53]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[108,54],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[108,55]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[108,25],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[108,36]},[]],"constraintClass":[["Data","Semigroup"],"Semigroup"],"constraintArgs":[{"annotation":[{"start":[108,35],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[108,36]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","Tuple"],{"Ident":"applyTuple"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Biapply"],"Biapply"],"edInstanceName":{"Ident":"biapplyTuple"},"edInstanceTypes":[{"annotation":[{"start":[111,34],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[111,39]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Tuple"],{"Ident":"biapplyTuple"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Applicative"],"Applicative"],"edInstanceName":{"Ident":"applicativeTuple"},"edInstanceTypes":[{"annotation":[{"start":[114,57],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[114,64]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[114,57],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[114,62]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[114,63],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[114,64]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[114,31],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[114,39]},[]],"constraintClass":[["Data","Monoid"],"Monoid"],"constraintArgs":[{"annotation":[{"start":[114,38],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[114,39]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","Tuple"],{"Ident":"applicativeTuple"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Biapplicative"],"Biapplicative"],"edInstanceName":{"Ident":"biapplicativeTuple"},"edInstanceTypes":[{"annotation":[{"start":[117,46],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[117,51]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Tuple"],{"Ident":"biapplicativeTuple"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Bind"],"Bind"],"edInstanceName":{"Ident":"bindTuple"},"edInstanceTypes":[{"annotation":[{"start":[120,46],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[120,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[120,46],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[120,51]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[120,52],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[120,53]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[120,24],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[120,35]},[]],"constraintClass":[["Data","Semigroup"],"Semigroup"],"constraintArgs":[{"annotation":[{"start":[120,34],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[120,35]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","Tuple"],{"Ident":"bindTuple"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Monad"],"Monad"],"edInstanceName":{"Ident":"monadTuple"},"edInstanceTypes":[{"annotation":[{"start":[124,45],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[124,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[124,45],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[124,50]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[124,51],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[124,52]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[124,25],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[124,33]},[]],"constraintClass":[["Data","Monoid"],"Monoid"],"constraintArgs":[{"annotation":[{"start":[124,32],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[124,33]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Data","Tuple"],{"Ident":"monadTuple"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Extend"],"Extend"],"edInstanceName":{"Ident":"extendTuple"},"edInstanceTypes":[{"annotation":[{"start":[126,33],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[126,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[126,33],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[126,38]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[126,39],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[126,40]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Tuple"],{"Ident":"extendTuple"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Comonad"],"Comonad"],"edInstanceName":{"Ident":"comonadTuple"},"edInstanceTypes":[{"annotation":[{"start":[129,35],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[129,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[129,35],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[129,40]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[129,41],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[129,42]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Tuple"],{"Ident":"comonadTuple"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Lazy"],"Lazy"],"edInstanceName":{"Ident":"lazyTuple"},"edInstanceTypes":[{"annotation":[{"start":[132,49],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[132,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[132,49],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[132,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[132,49],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[132,54]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[132,55],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[132,56]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[132,57],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[132,58]},[]],"tag":"TypeVar","contents":"b"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[132,24],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[132,30]},[]],"constraintClass":[["Control","Lazy"],"Lazy"],"constraintArgs":[{"annotation":[{"start":[132,29],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[132,30]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"constraintAnn":[{"start":[132,32],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[132,38]},[]],"constraintClass":[["Control","Lazy"],"Lazy"],"constraintArgs":[{"annotation":[{"start":[132,37],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[132,38]},[]],"tag":"TypeVar","contents":"b"}],"constraintData":null}],"edInstanceChain":[[["Data","Tuple"],{"Ident":"lazyTuple"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Foldable"],"Foldable"],"edInstanceName":{"Ident":"foldableTuple"},"edInstanceTypes":[{"annotation":[{"start":[135,37],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[135,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[135,37],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[135,42]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[135,43],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[135,44]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Tuple"],{"Ident":"foldableTuple"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Bifoldable"],"Bifoldable"],"edInstanceName":{"Ident":"bifoldableTuple"},"edInstanceTypes":[{"annotation":[{"start":[140,40],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[140,45]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Tuple"],{"Ident":"bifoldableTuple"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Traversable"],"Traversable"],"edInstanceName":{"Ident":"traversableTuple"},"edInstanceTypes":[{"annotation":[{"start":[145,43],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[145,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[145,43],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[145,48]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[145,49],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[145,50]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Tuple"],{"Ident":"traversableTuple"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Bitraversable"],"Bitraversable"],"edInstanceName":{"Ident":"bitraversableTuple"},"edInstanceTypes":[{"annotation":[{"start":[149,46],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[149,51]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Tuple"],{"Ident":"bitraversableTuple"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Distributive"],"Distributive"],"edInstanceName":{"Ident":"distributiveTuple"},"edInstanceTypes":[{"annotation":[{"start":[153,66],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[153,73]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[153,66],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[153,71]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[153,72],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[153,73]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[153,31],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[153,48]},[]],"constraintClass":[["Type","Equality"],"TypeEquals"],"constraintArgs":[{"annotation":[{"start":[153,42],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[153,43]},[]],"tag":"TypeVar","contents":"a"},{"annotation":[{"start":[153,44],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[153,48]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}],"constraintData":null}],"edInstanceChain":[[["Data","Tuple"],{"Ident":"distributiveTuple"}]],"edInstanceChainIndex":0}}],"efSourceSpan":{"start":[2,1],"name":"../../../support/bower_components/purescript-tuples/src/Data/Tuple.purs","end":[179,91]}}
diff --git a/tests/purs/publish/basic-example/output/Data.Unfoldable/docs.json b/tests/purs/publish/basic-example/output/Data.Unfoldable/docs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.Unfoldable/docs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"reExports":[],"name":"Data.Unfoldable","comments":"This module provides a type class for _unfoldable functors_, i.e.\nfunctors which support an `unfoldr` operation.\n\nThis allows us to unify various operations on arrays, lists,\nsequences, etc.\n","declarations":[{"children":[{"comments":null,"title":"unfoldr","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"t"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]},null]},null]}},"sourceSpan":{"start":[32,3],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[32,62]}},{"comments":null,"title":"unfoldableArray","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unfoldable"],"Unfoldable"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]}]}},"sourceSpan":{"start":[34,1],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[35,72]}}],"comments":"This class identifies data structures which can be _unfolded_.\n\nThe generating function `f` in `unfoldr f` in understood as follows:\n\n- If `f b` is `Nothing`, then `unfoldr f b` should be empty.\n- If `f b` is `Just (Tuple a b1)`, then `unfoldr f b` should consist of `a`\n  appended to the result of `unfoldr f b1`.\n","title":"Unfoldable","info":{"fundeps":[],"arguments":[["t",null]],"declType":"typeClass","superclasses":[{"constraintAnn":[],"constraintClass":[["Data","Unfoldable1"],"Unfoldable1"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"t"}],"constraintData":null}]},"sourceSpan":{"start":[31,1],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[32,62]}},{"children":[],"comments":"Replicate a value some natural number of times.\nFor example:\n\n``` purescript\nreplicate 2 \"foo\" == [\"foo\", \"foo\"] :: Array String\n```\n","title":"replicate","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Unfoldable"],"Unfoldable"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]}]},null]},null]}},"sourceSpan":{"start":[53,1],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[53,57]}},{"children":[],"comments":"Perform an Applicative action `n` times, and accumulate all the results.\n","title":"replicateA","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Applicative"],"Applicative"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Unfoldable"],"Unfoldable"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Traversable"],"Traversable"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]}]}]}]}]}]},null]},null]},null]}},"sourceSpan":{"start":[62,1],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[69,13]}},{"children":[],"comments":"The container with no elements - unfolded with zero iterations.\nFor example:\n\n``` purescript\nnone == [] :: forall a. Array a\n```\n","title":"none","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Unfoldable"],"Unfoldable"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},null]},null]}},"sourceSpan":{"start":[78,1],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[78,40]}},{"children":[],"comments":"Convert a Maybe to any Unfoldable like lists and arrays.\n","title":"fromMaybe","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Unfoldable"],"Unfoldable"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]},null]},null]}},"sourceSpan":{"start":[82,1],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[82,56]}}]}
diff --git a/tests/purs/publish/basic-example/output/Data.Unfoldable/externs.json b/tests/purs/publish/basic-example/output/Data.Unfoldable/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.Unfoldable/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Data","Unfoldable"],"efExports":[{"ReExportRef":[{"start":[7,1],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[83,53]},{"exportSourceImportedFrom":["Data","Unfoldable1"],"exportSourceDefinedIn":["Data","Unfoldable1"]},{"TypeClassRef":[{"start":[7,1],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[83,53]},"Unfoldable1"]}]},{"ReExportRef":[{"start":[7,1],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[83,53]},{"exportSourceImportedFrom":["Data","Unfoldable1"],"exportSourceDefinedIn":["Data","Unfoldable1"]},{"ValueRef":[{"start":[7,1],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[83,53]},{"Ident":"range"}]}]},{"ReExportRef":[{"start":[7,1],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[83,53]},{"exportSourceImportedFrom":["Data","Unfoldable1"],"exportSourceDefinedIn":["Data","Unfoldable1"]},{"ValueRef":[{"start":[7,1],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[83,53]},{"Ident":"replicate1"}]}]},{"ReExportRef":[{"start":[7,1],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[83,53]},{"exportSourceImportedFrom":["Data","Unfoldable1"],"exportSourceDefinedIn":["Data","Unfoldable1"]},{"ValueRef":[{"start":[7,1],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[83,53]},{"Ident":"replicate1A"}]}]},{"ReExportRef":[{"start":[7,1],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[83,53]},{"exportSourceImportedFrom":["Data","Unfoldable1"],"exportSourceDefinedIn":["Data","Unfoldable1"]},{"ValueRef":[{"start":[7,1],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[83,53]},{"Ident":"singleton"}]}]},{"ReExportRef":[{"start":[7,1],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[83,53]},{"exportSourceImportedFrom":["Data","Unfoldable1"],"exportSourceDefinedIn":["Data","Unfoldable1"]},{"ValueRef":[{"start":[7,1],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[83,53]},{"Ident":"unfoldr1"}]}]},{"TypeClassRef":[{"start":[7,1],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[83,53]},"Unfoldable"]},{"ValueRef":[{"start":[7,1],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[83,53]},{"Ident":"unfoldr"}]},{"ValueRef":[{"start":[7,1],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[83,53]},{"Ident":"replicate"}]},{"ValueRef":[{"start":[7,1],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[83,53]},{"Ident":"replicateA"}]},{"ValueRef":[{"start":[7,1],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[83,53]},{"Ident":"none"}]},{"ValueRef":[{"start":[7,1],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[83,53]},{"Ident":"fromMaybe"}]},{"ModuleRef":[{"start":[13,5],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[13,28]},["Data","Unfoldable1"]]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"unfoldableArray"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Prelude"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Data","Maybe"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[18,20],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[18,29]},"Maybe",null]},{"ValueRef":[{"start":[18,31],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[18,40]},{"Ident":"isNothing"}]},{"ValueRef":[{"start":[18,42],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[18,50]},{"Ident":"fromJust"}]}]},"eiImportedAs":null},{"eiModule":["Data","Traversable"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[19,26],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[19,43]},"Traversable"]},{"ValueRef":[{"start":[19,45],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[19,53]},{"Ident":"sequence"}]}]},"eiImportedAs":null},{"eiModule":["Data","Tuple"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[20,20],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[20,29]},"Tuple",null]},{"ValueRef":[{"start":[20,31],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[20,34]},{"Ident":"fst"}]},{"ValueRef":[{"start":[20,36],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[20,39]},{"Ident":"snd"}]}]},"eiImportedAs":null},{"eiModule":["Data","Unfoldable1"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[21,26],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[21,43]},"Unfoldable1"]},{"ValueRef":[{"start":[21,45],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[21,53]},{"Ident":"unfoldr1"}]},{"ValueRef":[{"start":[21,55],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[21,64]},{"Ident":"singleton"}]},{"ValueRef":[{"start":[21,66],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[21,71]},{"Ident":"range"}]},{"ValueRef":[{"start":[21,73],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[21,83]},{"Ident":"replicate1"}]},{"ValueRef":[{"start":[21,85],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[21,96]},{"Ident":"replicate1A"}]}]},"eiImportedAs":null},{"eiModule":["Partial","Unsafe"],"eiImportType":{"Explicit":[{"ValueRef":[{"start":[22,24],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[22,37]},{"Ident":"unsafePartial"}]}]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDType":{"edTypeName":"Unfoldable","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[32,59],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[32,62]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[32,39],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[32,44]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[32,56],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[32,58]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"Unfoldable","edTypeSynonymArguments":[["t",null]],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["unfoldr",{"annotation":[{"start":[32,14],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[32,62]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[32,21],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[32,62]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[32,26],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[32,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[32,26],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[32,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[32,51],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[32,53]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[32,27],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[32,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[32,27],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[32,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[32,29],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[32,31]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[32,27],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[32,28]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[32,32],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[32,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[32,32],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[32,37]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[32,39],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[32,48]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[32,39],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[32,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[32,39],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[32,44]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[32,45],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[32,46]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[32,47],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[32,48]},[]],"tag":"TypeVar","contents":"b"}]}]}]}]},{"annotation":[{"start":[32,54],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[32,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[32,54],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[32,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[32,56],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[32,58]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[32,54],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[32,55]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[32,59],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[32,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[32,59],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[32,60]},[]],"tag":"TypeVar","contents":"t"},{"annotation":[{"start":[32,61],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[32,62]},[]],"tag":"TypeVar","contents":"a"}]}]}]},null]},null]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["Unfoldable10",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Unfoldable1"],"Unfoldable1"]},{"annotation":[{"start":[31,19],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[31,20]},[]],"tag":"TypeVar","contents":"t"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]}]}}},{"EDClass":{"edClassName":"Unfoldable","edClassTypeArguments":[["t",null]],"edClassMembers":[[{"Ident":"unfoldr"},{"annotation":[{"start":[32,14],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[32,62]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[32,21],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[32,62]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[32,26],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[32,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[32,26],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[32,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[32,51],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[32,53]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[32,27],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[32,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[32,27],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[32,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[32,29],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[32,31]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[32,27],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[32,28]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[32,32],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[32,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[32,32],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[32,37]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[32,39],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[32,48]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[32,39],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[32,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[32,39],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[32,44]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[32,45],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[32,46]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[32,47],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[32,48]},[]],"tag":"TypeVar","contents":"b"}]}]}]}]},{"annotation":[{"start":[32,54],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[32,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[32,54],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[32,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[32,56],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[32,58]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[32,54],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[32,55]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[32,59],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[32,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[32,59],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[32,60]},[]],"tag":"TypeVar","contents":"t"},{"annotation":[{"start":[32,61],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[32,62]},[]],"tag":"TypeVar","contents":"a"}]}]}]},null]},null]}]],"edClassConstraints":[{"constraintAnn":[{"start":[31,7],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[31,20]},[]],"constraintClass":[["Data","Unfoldable1"],"Unfoldable1"],"constraintArgs":[{"annotation":[{"start":[31,19],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[31,20]},[]],"tag":"TypeVar","contents":"t"}],"constraintData":null}],"edFunctionalDependencies":[]}},{"EDValue":{"edValueName":{"Ident":"unfoldr"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["t",{"annotation":[{"start":[32,14],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[32,62]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[32,21],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[32,62]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["Data","Unfoldable"],"Unfoldable"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"t"}],"constraintData":null},{"annotation":[{"start":[32,26],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[32,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[32,26],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[32,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[32,51],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[32,53]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[32,27],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[32,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[32,27],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[32,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[32,29],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[32,31]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[32,27],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[32,28]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[32,32],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[32,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[32,32],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[32,37]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[32,39],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[32,48]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[32,39],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[32,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[32,39],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[32,44]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[32,45],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[32,46]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[32,47],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[32,48]},[]],"tag":"TypeVar","contents":"b"}]}]}]}]},{"annotation":[{"start":[32,54],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[32,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[32,54],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[32,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[32,56],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[32,58]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[32,54],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[32,55]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[32,59],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[32,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[32,59],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[32,60]},[]],"tag":"TypeVar","contents":"t"},{"annotation":[{"start":[32,61],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[32,62]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]},0]},1]},2]}}},{"EDValue":{"edValueName":{"Ident":"replicate"},"edValueType":{"annotation":[{"start":[53,14],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[53,57]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[53,21],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[53,57]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[53,26],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[53,57]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[53,26],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[53,38]},[]],"constraintClass":[["Data","Unfoldable"],"Unfoldable"],"constraintArgs":[{"annotation":[{"start":[53,37],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[53,38]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[53,42],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[53,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,42],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[53,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,46],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[53,48]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[53,42],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[53,45]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[53,49],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[53,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,49],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[53,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,51],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[53,53]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[53,49],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[53,50]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[53,54],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[53,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,54],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[53,55]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[53,56],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[53,57]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]},24]},25]}}},{"EDValue":{"edValueName":{"Ident":"replicateA"},"edValueType":{"annotation":[{"start":[63,6],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[69,13]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[63,13],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[69,13]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[63,13],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[69,13]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[64,6],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[69,13]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[64,6],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[64,19]},[]],"constraintClass":[["Control","Applicative"],"Applicative"],"constraintArgs":[{"annotation":[{"start":[64,18],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[64,19]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[65,6],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[69,13]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[65,6],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[65,18]},[]],"constraintClass":[["Data","Unfoldable"],"Unfoldable"],"constraintArgs":[{"annotation":[{"start":[65,17],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[65,18]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[66,6],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[69,13]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[66,6],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[66,19]},[]],"constraintClass":[["Data","Traversable"],"Traversable"],"constraintArgs":[{"annotation":[{"start":[66,18],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[66,19]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[67,6],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[69,13]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[67,6],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[69,13]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[68,3],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[68,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[67,6],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[67,9]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[68,6],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[69,13]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[68,6],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[69,13]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[69,3],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[69,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[68,6],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[68,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[68,6],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[68,7]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[68,8],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[68,9]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[69,6],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[69,13]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[69,6],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[69,7]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[69,9],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[69,12]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[69,9],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[69,10]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[69,11],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[69,12]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]}]}]}]},29]},30]},31]}}},{"EDValue":{"edValueName":{"Ident":"none"},"edValueType":{"annotation":[{"start":[78,9],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[78,40]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[78,16],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[78,40]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[78,21],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[78,40]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[78,21],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[78,33]},[]],"constraintClass":[["Data","Unfoldable"],"Unfoldable"],"constraintArgs":[{"annotation":[{"start":[78,32],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[78,33]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[78,37],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[78,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[78,37],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[78,38]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[78,39],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[78,40]},[]],"tag":"TypeVar","contents":"a"}]}]},35]},36]}}},{"EDValue":{"edValueName":{"Ident":"fromMaybe"},"edValueType":{"annotation":[{"start":[82,14],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[82,56]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[82,21],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[82,56]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[82,26],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[82,56]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[82,26],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[82,38]},[]],"constraintClass":[["Data","Unfoldable"],"Unfoldable"],"constraintArgs":[{"annotation":[{"start":[82,37],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[82,38]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[82,42],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[82,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[82,42],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[82,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[82,50],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[82,52]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[82,42],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[82,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[82,42],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[82,47]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[82,48],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[82,49]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[82,53],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[82,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[82,53],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[82,54]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[82,55],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[82,56]},[]],"tag":"TypeVar","contents":"a"}]}]}]},39]},40]}}},{"EDInstance":{"edInstanceClassName":[["Data","Unfoldable"],"Unfoldable"],"edInstanceName":{"Ident":"unfoldableArray"},"edInstanceTypes":[{"annotation":[{"start":[34,40],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[34,45]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Unfoldable"],{"Ident":"unfoldableArray"}]],"edInstanceChainIndex":0}}],"efSourceSpan":{"start":[7,1],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable.purs","end":[83,53]}}
diff --git a/tests/purs/publish/basic-example/output/Data.Unfoldable1/docs.json b/tests/purs/publish/basic-example/output/Data.Unfoldable1/docs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.Unfoldable1/docs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"reExports":[],"name":"Data.Unfoldable1","comments":null,"declarations":[{"children":[{"comments":null,"title":"unfoldr1","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"t"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]},null]},null]}},"sourceSpan":{"start":[22,3],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[22,63]}},{"comments":null,"title":"unfoldable1Array","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unfoldable1"],"Unfoldable1"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]}]}},"sourceSpan":{"start":[24,1],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[25,74]}}],"comments":"This class identifies non-empty data structures which can be _unfolded_.\n\nThe generating function `f` corresponds to the `uncons` operation of a\nnon-empty list or array; it always return a value, and then optionally\na value to continue unfolding from.\n","title":"Unfoldable1","info":{"fundeps":[],"arguments":[["t",null]],"declType":"typeClass","superclasses":[]},"sourceSpan":{"start":[21,1],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[22,63]}},{"children":[],"comments":"Replicate a value `n` times. At least one value will be produced, so values\n`n < 1` less than one will be ignored.\n\n``` purescript\nreplicate1 0 \"foo\" == NEL.singleton \"foo\" :: NEL.NonEmptyList String\nreplicate1 2 \"foo\" == NEL.cons \"foo\" (NEL.singleton \"foo\") :: NEL.NonEmptyList String\n```\n","title":"replicate1","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Unfoldable1"],"Unfoldable1"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]}]},null]},null]}},"sourceSpan":{"start":[44,1],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[44,59]}},{"children":[],"comments":"Perform an `Apply` action `n` times (at least once, so values `n < 1`\nless than one will be ignored), and accumulate the results.\n","title":"replicate1A","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Apply"],"Apply"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Unfoldable1"],"Unfoldable1"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Semigroup","Traversable"],"Traversable1"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]}]}]}]}]}]},null]},null]},null]}},"sourceSpan":{"start":[54,1],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[61,13]}},{"children":[],"comments":"Contain a single value. For example:\n\n``` purescript\nsingleton \"foo\" == NEL.singleton \"foo\" :: NEL.NonEmptyList String\n```\n","title":"singleton","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Unfoldable1"],"Unfoldable1"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]},null]},null]}},"sourceSpan":{"start":[69,1],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[69,51]}},{"children":[],"comments":"Create an `Unfoldable1` containing a range of values, including both\nendpoints.\n\n``` purescript\nrange 0 0 \"foo\" == NEL.singleton 0 :: NEL.NonEmptyList Int\nrange 1 2 \"foo\" == NEL.cons 1 (NEL.singleton 2) :: NEL.NonEmptyList Int\nrange 2 0 \"foo\" == NEL.cons 2 (NEL.cons 1 (NEL.singleton 0)) :: NEL.NonEmptyList Int\n```\n","title":"range","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Unfoldable1"],"Unfoldable1"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]}]}]},null]}},"sourceSpan":{"start":[80,1],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[80,56]}}]}
diff --git a/tests/purs/publish/basic-example/output/Data.Unfoldable1/externs.json b/tests/purs/publish/basic-example/output/Data.Unfoldable1/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.Unfoldable1/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Data","Unfoldable1"],"efExports":[{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[86,57]},"Unfoldable1"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[86,57]},{"Ident":"unfoldr1"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[86,57]},{"Ident":"replicate1"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[86,57]},{"Ident":"replicate1A"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[86,57]},{"Ident":"singleton"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[86,57]},{"Ident":"range"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"unfoldable1Array"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Prelude"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Data","Maybe"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[11,20],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[11,29]},"Maybe",null]},{"ValueRef":[{"start":[11,31],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[11,39]},{"Ident":"fromJust"}]},{"ValueRef":[{"start":[11,41],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[11,50]},{"Ident":"isNothing"}]}]},"eiImportedAs":null},{"eiModule":["Data","Semigroup","Traversable"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[12,36],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[12,54]},"Traversable1"]},{"ValueRef":[{"start":[12,56],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[12,65]},{"Ident":"sequence1"}]}]},"eiImportedAs":null},{"eiModule":["Data","Tuple"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[13,20],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[13,29]},"Tuple",null]},{"ValueRef":[{"start":[13,31],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[13,34]},{"Ident":"fst"}]},{"ValueRef":[{"start":[13,36],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[13,39]},{"Ident":"snd"}]}]},"eiImportedAs":null},{"eiModule":["Partial","Unsafe"],"eiImportType":{"Explicit":[{"ValueRef":[{"start":[14,24],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[14,37]},{"Ident":"unsafePartial"}]}]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDType":{"edTypeName":"Unfoldable1","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[22,60],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[22,63]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[22,33],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[22,38]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[22,57],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[22,59]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"Unfoldable1","edTypeSynonymArguments":[["t",null]],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["unfoldr1",{"annotation":[{"start":[22,15],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[22,63]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[22,22],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[22,63]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[22,27],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[22,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[22,27],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[22,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[22,52],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[22,54]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[22,28],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[22,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[22,28],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[22,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[22,30],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[22,32]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[22,28],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[22,29]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[22,33],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[22,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[22,33],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[22,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[22,33],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[22,38]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[22,39],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[22,40]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[22,42],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[22,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[22,42],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[22,47]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[22,48],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[22,49]},[]],"tag":"TypeVar","contents":"b"}]}]}]}]},{"annotation":[{"start":[22,55],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[22,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[22,55],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[22,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[22,57],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[22,59]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[22,55],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[22,56]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[22,60],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[22,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[22,60],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[22,61]},[]],"tag":"TypeVar","contents":"t"},{"annotation":[{"start":[22,62],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[22,63]},[]],"tag":"TypeVar","contents":"a"}]}]}]},null]},null]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]}}},{"EDClass":{"edClassName":"Unfoldable1","edClassTypeArguments":[["t",null]],"edClassMembers":[[{"Ident":"unfoldr1"},{"annotation":[{"start":[22,15],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[22,63]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[22,22],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[22,63]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[22,27],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[22,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[22,27],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[22,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[22,52],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[22,54]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[22,28],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[22,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[22,28],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[22,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[22,30],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[22,32]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[22,28],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[22,29]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[22,33],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[22,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[22,33],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[22,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[22,33],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[22,38]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[22,39],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[22,40]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[22,42],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[22,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[22,42],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[22,47]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[22,48],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[22,49]},[]],"tag":"TypeVar","contents":"b"}]}]}]}]},{"annotation":[{"start":[22,55],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[22,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[22,55],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[22,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[22,57],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[22,59]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[22,55],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[22,56]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[22,60],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[22,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[22,60],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[22,61]},[]],"tag":"TypeVar","contents":"t"},{"annotation":[{"start":[22,62],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[22,63]},[]],"tag":"TypeVar","contents":"a"}]}]}]},null]},null]}]],"edClassConstraints":[],"edFunctionalDependencies":[]}},{"EDValue":{"edValueName":{"Ident":"unfoldr1"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["t",{"annotation":[{"start":[22,15],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[22,63]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[22,22],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[22,63]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["Data","Unfoldable1"],"Unfoldable1"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"t"}],"constraintData":null},{"annotation":[{"start":[22,27],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[22,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[22,27],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[22,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[22,52],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[22,54]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[22,28],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[22,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[22,28],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[22,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[22,30],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[22,32]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[22,28],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[22,29]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[22,33],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[22,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[22,33],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[22,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[22,33],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[22,38]},[]],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[{"start":[22,39],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[22,40]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[22,42],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[22,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[22,42],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[22,47]},[]],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[{"start":[22,48],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[22,49]},[]],"tag":"TypeVar","contents":"b"}]}]}]}]},{"annotation":[{"start":[22,55],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[22,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[22,55],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[22,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[22,57],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[22,59]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[22,55],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[22,56]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[22,60],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[22,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[22,60],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[22,61]},[]],"tag":"TypeVar","contents":"t"},{"annotation":[{"start":[22,62],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[22,63]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]},0]},1]},2]}}},{"EDValue":{"edValueName":{"Ident":"replicate1"},"edValueType":{"annotation":[{"start":[44,15],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[44,59]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[44,22],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[44,59]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[44,27],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[44,59]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[44,27],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[44,40]},[]],"constraintClass":[["Data","Unfoldable1"],"Unfoldable1"],"constraintArgs":[{"annotation":[{"start":[44,39],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[44,40]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[44,44],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[44,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[44,44],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[44,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[44,48],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[44,50]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[44,44],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[44,47]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[44,51],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[44,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[44,51],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[44,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[44,53],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[44,55]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[44,51],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[44,52]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[44,56],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[44,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[44,56],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[44,57]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[44,58],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[44,59]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]},22]},23]}}},{"EDValue":{"edValueName":{"Ident":"replicate1A"},"edValueType":{"annotation":[{"start":[55,6],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[61,13]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[55,13],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[61,13]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[55,13],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[61,13]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[56,6],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[61,13]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[56,6],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[56,13]},[]],"constraintClass":[["Control","Apply"],"Apply"],"constraintArgs":[{"annotation":[{"start":[56,12],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[56,13]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[57,6],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[61,13]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[57,6],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[57,19]},[]],"constraintClass":[["Data","Unfoldable1"],"Unfoldable1"],"constraintArgs":[{"annotation":[{"start":[57,18],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[57,19]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[58,6],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[61,13]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[58,6],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[58,20]},[]],"constraintClass":[["Data","Semigroup","Traversable"],"Traversable1"],"constraintArgs":[{"annotation":[{"start":[58,19],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[58,20]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[59,6],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[61,13]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[59,6],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[61,13]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[60,3],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[60,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[59,6],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[59,9]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[60,6],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[61,13]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[60,6],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[61,13]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[61,3],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[61,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[60,6],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[60,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[60,6],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[60,7]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[60,8],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[60,9]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[61,6],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[61,13]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[61,6],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[61,7]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[61,9],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[61,12]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[61,9],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[61,10]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[61,11],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[61,12]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]}]}]}]},26]},27]},28]}}},{"EDValue":{"edValueName":{"Ident":"singleton"},"edValueType":{"annotation":[{"start":[69,14],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[69,51]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[69,21],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[69,51]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[69,26],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[69,51]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[69,26],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[69,39]},[]],"constraintClass":[["Data","Unfoldable1"],"Unfoldable1"],"constraintArgs":[{"annotation":[{"start":[69,38],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[69,39]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[69,43],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[69,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[69,43],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[69,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[69,45],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[69,47]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[69,43],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[69,44]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[69,48],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[69,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[69,48],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[69,49]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[69,50],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[69,51]},[]],"tag":"TypeVar","contents":"a"}]}]}]},32]},33]}}},{"EDValue":{"edValueName":{"Ident":"range"},"edValueType":{"annotation":[{"start":[80,10],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[80,56]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[80,20],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[80,56]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[80,20],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[80,33]},[]],"constraintClass":[["Data","Unfoldable1"],"Unfoldable1"],"constraintArgs":[{"annotation":[{"start":[80,32],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[80,33]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[80,37],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[80,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[80,37],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[80,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[80,41],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[80,43]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[80,37],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[80,40]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[80,44],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[80,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[80,44],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[80,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[80,48],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[80,50]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[80,44],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[80,47]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[80,51],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[80,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[80,51],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[80,52]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[80,53],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[80,56]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]}]}]},36]}}},{"EDInstance":{"edInstanceClassName":[["Data","Unfoldable1"],"Unfoldable1"],"edInstanceName":{"Ident":"unfoldable1Array"},"edInstanceTypes":[{"annotation":[{"start":[24,42],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[24,47]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Unfoldable1"],{"Ident":"unfoldable1Array"}]],"edInstanceChainIndex":0}}],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-unfoldable/src/Data/Unfoldable1.purs","end":[86,57]}}
diff --git a/tests/purs/publish/basic-example/output/Data.Unit/docs.json b/tests/purs/publish/basic-example/output/Data.Unit/docs.json
--- a/tests/purs/publish/basic-example/output/Data.Unit/docs.json
+++ b/tests/purs/publish/basic-example/output/Data.Unit/docs.json
@@ -1,1 +1,1 @@
-{"reExports":[],"name":"Data.Unit","comments":null,"declarations":[{"children":[{"comments":null,"title":"showUnit","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Show"],"Show"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}},"sourceSpan":{"start":[16,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Unit.purs","end":[17,18]}}],"comments":"The `Unit` type has a single inhabitant, called `unit`. It represents\nvalues with no computational content.\n\n`Unit` is often used, wrapped in a monadic type constructor, as the\nreturn type of a computation where only\nthe _effects_ are important.\n","title":"Unit","info":{"kind":{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]},"declType":"externData"},"sourceSpan":{"start":[11,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Unit.purs","end":[11,33]}},{"children":[],"comments":"`unit` is the sole inhabitant of the `Unit` type.\n","title":"unit","info":{"declType":"value","type":{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}},"sourceSpan":{"start":[14,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Unit.purs","end":[14,28]}}]}
+{"comments":null,"declarations":[{"children":[],"comments":"The `Unit` type has a single inhabitant, called `unit`. It represents\nvalues with no computational content.\n\n`Unit` is often used, wrapped in a monadic type constructor, as the\nreturn type of a computation where only the _effects_ are important.\n\nWhen returning a value of type `Unit` from an FFI function, it is\nrecommended to use `undefined`, or not return a value at all.\n","info":{"dataDeclType":"data","declType":"data","roles":[],"typeArguments":[]},"kind":null,"sourceSpan":{"end":[11,33],"name":"../../../support/bower_components/purescript-prelude/src/Data/Unit.purs","start":[11,1]},"title":"Unit"},{"children":[],"comments":"`unit` is the sole inhabitant of the `Unit` type.\n","info":{"declType":"value","type":{"annotation":[],"contents":[["Data","Unit"],"Unit"],"tag":"TypeConstructor"}},"kind":null,"sourceSpan":{"end":[14,28],"name":"../../../support/bower_components/purescript-prelude/src/Data/Unit.purs","start":[14,1]},"title":"unit"}],"name":"Data.Unit","reExports":[]}
diff --git a/tests/purs/publish/basic-example/output/Data.Unit/externs.json b/tests/purs/publish/basic-example/output/Data.Unit/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.Unit/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Data","Unit"],"efExports":[{"TypeRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Unit.purs","end":[17,18]},"Unit",[]]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Unit.purs","end":[17,18]},{"Ident":"unit"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"showUnit"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Data","Show"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[3,19],"name":"../../../support/bower_components/purescript-prelude/src/Data/Unit.purs","end":[3,29]},"Show"]}]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDType":{"edTypeName":"Unit","edTypeKind":{"annotation":[{"start":[11,29],"name":"../../../support/bower_components/purescript-prelude/src/Data/Unit.purs","end":[11,33]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},"edTypeDeclarationKind":"ExternData"}},{"EDValue":{"edValueName":{"Ident":"unit"},"edValueType":{"annotation":[{"start":[14,24],"name":"../../../support/bower_components/purescript-prelude/src/Data/Unit.purs","end":[14,28]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}}},{"EDInstance":{"edInstanceClassName":[["Data","Show"],"Show"],"edInstanceName":{"Ident":"showUnit"},"edInstanceTypes":[{"annotation":[{"start":[16,27],"name":"../../../support/bower_components/purescript-prelude/src/Data/Unit.purs","end":[16,31]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Unit"],{"Ident":"showUnit"}]],"edInstanceChainIndex":0}}],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Unit.purs","end":[17,18]}}
diff --git a/tests/purs/publish/basic-example/output/Data.Void/docs.json b/tests/purs/publish/basic-example/output/Data.Void/docs.json
--- a/tests/purs/publish/basic-example/output/Data.Void/docs.json
+++ b/tests/purs/publish/basic-example/output/Data.Void/docs.json
@@ -1,1 +1,1 @@
-{"reExports":[],"name":"Data.Void","comments":null,"declarations":[{"children":[{"comments":null,"title":"showVoid","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Show"],"Show"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Void"],"Void"]}]}},"sourceSpan":{"start":[12,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Void.purs","end":[13,16]}}],"comments":"An uninhabited data type.\n\n`Void` is useful to eliminate the possibility of a value being created.\nFor example, a value of type `Either Void Boolean` can never have\na Left value created in PureScript.\n","title":"Void","info":{"declType":"data","dataDeclType":"newtype","typeArguments":[]},"sourceSpan":{"start":[10,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Void.purs","end":[10,25]}},{"children":[],"comments":null,"title":"absurd","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Void"],"Void"]}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},null]}},"sourceSpan":{"start":[15,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Void.purs","end":[15,30]}}]}
+{"comments":null,"declarations":[{"children":[],"comments":"An uninhabited data type. In other words, one can never create\na runtime value of type `Void` because no such value exists.\n\n`Void` is useful to eliminate the possibility of a value being created.\nFor example, a value of type `Either Void Boolean` can never have\na Left value created in PureScript.\n\nThis should not be confused with the keyword `void` that commonly appears in\nC-family languages, such as Java:\n```\npublic class Foo {\n  void doSomething() { System.out.println(\"hello world!\"); }\n}\n```\n\nIn PureScript, one often uses `Unit` to achieve similar effects as\nthe `void` of C-family languages above.\n","info":{"dataDeclType":"newtype","declType":"data","roles":[],"typeArguments":[]},"kind":null,"sourceSpan":{"end":[20,25],"name":"../../../support/bower_components/purescript-prelude/src/Data/Void.purs","start":[20,1]},"title":"Void"},{"children":[],"comments":"Eliminator for the `Void` type.\nUseful for stating that some code branch is impossible because you've\n\"acquired\" a value of type `Void` (which you can't).\n\n```purescript\nrightOnly :: forall t . Either Void t -> t\nrightOnly (Left v) = absurd v\nrightOnly (Right t) = t\n```\n","info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Void"],"Void"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[31,30],"name":"../../../support/bower_components/purescript-prelude/src/Data/Void.purs","start":[31,1]},"title":"absurd"}],"name":"Data.Void","reExports":[]}
diff --git a/tests/purs/publish/basic-example/output/Data.Void/externs.json b/tests/purs/publish/basic-example/output/Data.Void/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Data.Void/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Data","Void"],"efExports":[{"TypeRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Void.purs","end":[18,25]},"Void",[]]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Void.purs","end":[18,25]},{"Ident":"absurd"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"showVoid"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Data","Show"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[3,19],"name":"../../../support/bower_components/purescript-prelude/src/Data/Void.purs","end":[3,29]},"Show"]}]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDType":{"edTypeName":"Void","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},"edTypeDeclarationKind":{"DataType":{"args":[],"ctors":[["Void",[{"annotation":[{"start":[10,21],"name":"../../../support/bower_components/purescript-prelude/src/Data/Void.purs","end":[10,25]},[]],"tag":"TypeConstructor","contents":[["Data","Void"],"Void"]}]]]}}}},{"EDValue":{"edValueName":{"Ident":"absurd"},"edValueType":{"annotation":[{"start":[15,11],"name":"../../../support/bower_components/purescript-prelude/src/Data/Void.purs","end":[15,30]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[15,21],"name":"../../../support/bower_components/purescript-prelude/src/Data/Void.purs","end":[15,30]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[15,21],"name":"../../../support/bower_components/purescript-prelude/src/Data/Void.purs","end":[15,30]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[15,26],"name":"../../../support/bower_components/purescript-prelude/src/Data/Void.purs","end":[15,28]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[15,21],"name":"../../../support/bower_components/purescript-prelude/src/Data/Void.purs","end":[15,25]},[]],"tag":"TypeConstructor","contents":[["Data","Void"],"Void"]}]},{"annotation":[{"start":[15,29],"name":"../../../support/bower_components/purescript-prelude/src/Data/Void.purs","end":[15,30]},[]],"tag":"TypeVar","contents":"a"}]},0]}}},{"EDInstance":{"edInstanceClassName":[["Data","Show"],"Show"],"edInstanceName":{"Ident":"showVoid"},"edInstanceTypes":[{"annotation":[{"start":[12,27],"name":"../../../support/bower_components/purescript-prelude/src/Data/Void.purs","end":[12,31]},[]],"tag":"TypeConstructor","contents":[["Data","Void"],"Void"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Data","Void"],{"Ident":"showVoid"}]],"edInstanceChainIndex":0}}],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Data/Void.purs","end":[18,25]}}
diff --git a/tests/purs/publish/basic-example/output/Effect.Class.Console/docs.json b/tests/purs/publish/basic-example/output/Effect.Class.Console/docs.json
--- a/tests/purs/publish/basic-example/output/Effect.Class.Console/docs.json
+++ b/tests/purs/publish/basic-example/output/Effect.Class.Console/docs.json
@@ -1,1 +1,1 @@
-{"reExports":[],"name":"Effect.Class.Console","comments":null,"declarations":[{"children":[],"comments":null,"title":"log","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Effect","Class"],"MonadEffect"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}]},null]}},"sourceSpan":{"start":[9,1],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","end":[9,51]}},{"children":[],"comments":null,"title":"logShow","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Effect","Class"],"MonadEffect"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Show"],"Show"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}]}]},null]},null]}},"sourceSpan":{"start":[12,1],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","end":[12,62]}},{"children":[],"comments":null,"title":"warn","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Effect","Class"],"MonadEffect"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}]},null]}},"sourceSpan":{"start":[15,1],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","end":[15,52]}},{"children":[],"comments":null,"title":"warnShow","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Effect","Class"],"MonadEffect"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Show"],"Show"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}]}]},null]},null]}},"sourceSpan":{"start":[18,1],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","end":[18,63]}},{"children":[],"comments":null,"title":"error","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Effect","Class"],"MonadEffect"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}]},null]}},"sourceSpan":{"start":[21,1],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","end":[21,53]}},{"children":[],"comments":null,"title":"errorShow","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Effect","Class"],"MonadEffect"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Show"],"Show"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}]}]},null]},null]}},"sourceSpan":{"start":[24,1],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","end":[24,64]}},{"children":[],"comments":null,"title":"info","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Effect","Class"],"MonadEffect"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}]},null]}},"sourceSpan":{"start":[27,1],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","end":[27,52]}},{"children":[],"comments":null,"title":"infoShow","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Effect","Class"],"MonadEffect"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Show"],"Show"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}]}]},null]},null]}},"sourceSpan":{"start":[30,1],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","end":[30,63]}}]}
+{"comments":null,"declarations":[{"children":[],"comments":null,"info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"m","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"m","tag":"TypeVar"}],"constraintClass":[["Effect","Class"],"MonadEffect"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"String"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":"m","tag":"TypeVar"},{"annotation":[],"contents":[["Data","Unit"],"Unit"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[10,51],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","start":[10,1]},"title":"log"},{"children":[],"comments":null,"info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"m","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"m","tag":"TypeVar"}],"constraintClass":[["Effect","Class"],"MonadEffect"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","Show"],"Show"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":"m","tag":"TypeVar"},{"annotation":[],"contents":[["Data","Unit"],"Unit"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"ConstrainedType"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[13,62],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","start":[13,1]},"title":"logShow"},{"children":[],"comments":null,"info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"m","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"m","tag":"TypeVar"}],"constraintClass":[["Effect","Class"],"MonadEffect"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"String"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":"m","tag":"TypeVar"},{"annotation":[],"contents":[["Data","Unit"],"Unit"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[16,52],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","start":[16,1]},"title":"warn"},{"children":[],"comments":null,"info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"m","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"m","tag":"TypeVar"}],"constraintClass":[["Effect","Class"],"MonadEffect"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","Show"],"Show"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":"m","tag":"TypeVar"},{"annotation":[],"contents":[["Data","Unit"],"Unit"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"ConstrainedType"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[19,63],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","start":[19,1]},"title":"warnShow"},{"children":[],"comments":null,"info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"m","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"m","tag":"TypeVar"}],"constraintClass":[["Effect","Class"],"MonadEffect"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"String"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":"m","tag":"TypeVar"},{"annotation":[],"contents":[["Data","Unit"],"Unit"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[22,53],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","start":[22,1]},"title":"error"},{"children":[],"comments":null,"info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"m","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"m","tag":"TypeVar"}],"constraintClass":[["Effect","Class"],"MonadEffect"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","Show"],"Show"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":"m","tag":"TypeVar"},{"annotation":[],"contents":[["Data","Unit"],"Unit"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"ConstrainedType"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[25,64],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","start":[25,1]},"title":"errorShow"},{"children":[],"comments":null,"info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"m","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"m","tag":"TypeVar"}],"constraintClass":[["Effect","Class"],"MonadEffect"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"String"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":"m","tag":"TypeVar"},{"annotation":[],"contents":[["Data","Unit"],"Unit"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[28,52],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","start":[28,1]},"title":"info"},{"children":[],"comments":null,"info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"m","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"m","tag":"TypeVar"}],"constraintClass":[["Effect","Class"],"MonadEffect"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","Show"],"Show"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":"m","tag":"TypeVar"},{"annotation":[],"contents":[["Data","Unit"],"Unit"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"ConstrainedType"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[31,63],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","start":[31,1]},"title":"infoShow"},{"children":[],"comments":null,"info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"m","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"m","tag":"TypeVar"}],"constraintClass":[["Effect","Class"],"MonadEffect"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"String"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":"m","tag":"TypeVar"},{"annotation":[],"contents":[["Data","Unit"],"Unit"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[34,53],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","start":[34,1]},"title":"debug"},{"children":[],"comments":null,"info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"m","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"m","tag":"TypeVar"}],"constraintClass":[["Effect","Class"],"MonadEffect"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","Show"],"Show"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":"m","tag":"TypeVar"},{"annotation":[],"contents":[["Data","Unit"],"Unit"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"ConstrainedType"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[37,64],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","start":[37,1]},"title":"debugShow"},{"children":[],"comments":null,"info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"m","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"m","tag":"TypeVar"}],"constraintClass":[["Effect","Class"],"MonadEffect"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"String"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":"m","tag":"TypeVar"},{"annotation":[],"contents":[["Data","Unit"],"Unit"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[40,52],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","start":[40,1]},"title":"time"},{"children":[],"comments":null,"info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"m","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"m","tag":"TypeVar"}],"constraintClass":[["Effect","Class"],"MonadEffect"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"String"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":"m","tag":"TypeVar"},{"annotation":[],"contents":[["Data","Unit"],"Unit"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[43,55],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","start":[43,1]},"title":"timeLog"},{"children":[],"comments":null,"info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"m","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"m","tag":"TypeVar"}],"constraintClass":[["Effect","Class"],"MonadEffect"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"String"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":"m","tag":"TypeVar"},{"annotation":[],"contents":[["Data","Unit"],"Unit"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[46,55],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","start":[46,1]},"title":"timeEnd"},{"children":[],"comments":null,"info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"m","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"m","tag":"TypeVar"}],"constraintClass":[["Effect","Class"],"MonadEffect"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":"m","tag":"TypeVar"},{"annotation":[],"contents":[["Data","Unit"],"Unit"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[49,43],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","start":[49,1]},"title":"clear"},{"children":[],"comments":null,"info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"m","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"m","tag":"TypeVar"}],"constraintClass":[["Effect","Class"],"MonadEffect"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"String"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":"m","tag":"TypeVar"},{"annotation":[],"contents":[["Data","Unit"],"Unit"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[52,53],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","start":[52,1]},"title":"group"},{"children":[],"comments":null,"info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"m","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"m","tag":"TypeVar"}],"constraintClass":[["Effect","Class"],"MonadEffect"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"String"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":"m","tag":"TypeVar"},{"annotation":[],"contents":[["Data","Unit"],"Unit"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[55,62],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","start":[55,1]},"title":"groupCollapsed"},{"children":[],"comments":null,"info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"m","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"m","tag":"TypeVar"}],"constraintClass":[["Effect","Class"],"MonadEffect"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":"m","tag":"TypeVar"},{"annotation":[],"contents":[["Data","Unit"],"Unit"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[58,46],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","start":[58,1]},"title":"groupEnd"},{"children":[],"comments":null,"info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"m","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"m","tag":"TypeVar"}],"constraintClass":[["Effect","Class"],"MonadEffect"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"String"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":"m","tag":"TypeVar"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":"m","tag":"TypeVar"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[61,61],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","start":[61,1]},"title":"grouped"}],"name":"Effect.Class.Console","reExports":[]}
diff --git a/tests/purs/publish/basic-example/output/Effect.Class.Console/externs.json b/tests/purs/publish/basic-example/output/Effect.Class.Console/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Effect.Class.Console/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Effect","Class","Console"],"efExports":[{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","end":[31,46]},{"Ident":"log"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","end":[31,46]},{"Ident":"logShow"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","end":[31,46]},{"Ident":"warn"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","end":[31,46]},{"Ident":"warnShow"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","end":[31,46]},{"Ident":"error"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","end":[31,46]},{"Ident":"errorShow"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","end":[31,46]},{"Ident":"info"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","end":[31,46]},{"Ident":"infoShow"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Data","Function"],"eiImportType":{"Explicit":[{"ValueOpRef":[{"start":[3,23],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","end":[3,28]},"<<<"]}]},"eiImportedAs":null},{"eiModule":["Data","Show"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[4,19],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","end":[4,29]},"Show"]}]},"eiImportedAs":null},{"eiModule":["Data","Unit"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[5,19],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","end":[5,23]},"Unit",[]]}]},"eiImportedAs":null},{"eiModule":["Effect","Class"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[6,22],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","end":[6,39]},"MonadEffect"]},{"ValueRef":[{"start":[6,41],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","end":[6,51]},{"Ident":"liftEffect"}]}]},"eiImportedAs":null},{"eiModule":["Effect","Console"],"eiImportType":{"Implicit":[]},"eiImportedAs":["EffConsole"]}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDValue":{"edValueName":{"Ident":"log"},"edValueType":{"annotation":[{"start":[9,8],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","end":[9,51]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[9,18],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","end":[9,51]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[9,18],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","end":[9,31]},[]],"constraintClass":[["Effect","Class"],"MonadEffect"],"constraintArgs":[{"annotation":[{"start":[9,30],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","end":[9,31]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[9,35],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","end":[9,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[9,35],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","end":[9,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[9,42],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","end":[9,44]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[9,35],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","end":[9,41]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[{"start":[9,45],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","end":[9,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[9,45],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","end":[9,46]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[9,47],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","end":[9,51]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}]},10]}}},{"EDValue":{"edValueName":{"Ident":"logShow"},"edValueType":{"annotation":[{"start":[12,12],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","end":[12,62]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[12,19],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","end":[12,62]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[12,24],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","end":[12,62]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[12,24],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","end":[12,37]},[]],"constraintClass":[["Effect","Class"],"MonadEffect"],"constraintArgs":[{"annotation":[{"start":[12,36],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","end":[12,37]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[12,41],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","end":[12,62]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[12,41],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","end":[12,47]},[]],"constraintClass":[["Data","Show"],"Show"],"constraintArgs":[{"annotation":[{"start":[12,46],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","end":[12,47]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[12,51],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","end":[12,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[12,51],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","end":[12,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[12,53],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","end":[12,55]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[12,51],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","end":[12,52]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[12,56],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","end":[12,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[12,56],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","end":[12,57]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[12,58],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","end":[12,62]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}]}]},6]},7]}}},{"EDValue":{"edValueName":{"Ident":"warn"},"edValueType":{"annotation":[{"start":[15,9],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","end":[15,52]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[15,19],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","end":[15,52]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[15,19],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","end":[15,32]},[]],"constraintClass":[["Effect","Class"],"MonadEffect"],"constraintArgs":[{"annotation":[{"start":[15,31],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","end":[15,32]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[15,36],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","end":[15,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[15,36],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","end":[15,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[15,43],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","end":[15,45]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[15,36],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","end":[15,42]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[{"start":[15,46],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","end":[15,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[15,46],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","end":[15,47]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[15,48],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","end":[15,52]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}]},4]}}},{"EDValue":{"edValueName":{"Ident":"warnShow"},"edValueType":{"annotation":[{"start":[18,13],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","end":[18,63]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[18,20],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","end":[18,63]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[18,25],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","end":[18,63]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[18,25],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","end":[18,38]},[]],"constraintClass":[["Effect","Class"],"MonadEffect"],"constraintArgs":[{"annotation":[{"start":[18,37],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","end":[18,38]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[18,42],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","end":[18,63]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[18,42],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","end":[18,48]},[]],"constraintClass":[["Data","Show"],"Show"],"constraintArgs":[{"annotation":[{"start":[18,47],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","end":[18,48]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[18,52],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","end":[18,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,52],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","end":[18,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,54],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","end":[18,56]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[18,52],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","end":[18,53]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[18,57],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","end":[18,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,57],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","end":[18,58]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[18,59],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","end":[18,63]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}]}]},0]},1]}}},{"EDValue":{"edValueName":{"Ident":"error"},"edValueType":{"annotation":[{"start":[21,10],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","end":[21,53]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[21,20],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","end":[21,53]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[21,20],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","end":[21,33]},[]],"constraintClass":[["Effect","Class"],"MonadEffect"],"constraintArgs":[{"annotation":[{"start":[21,32],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","end":[21,33]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[21,37],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","end":[21,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[21,37],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","end":[21,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[21,44],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","end":[21,46]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[21,37],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","end":[21,43]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[{"start":[21,47],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","end":[21,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[21,47],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","end":[21,48]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[21,49],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","end":[21,53]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}]},22]}}},{"EDValue":{"edValueName":{"Ident":"errorShow"},"edValueType":{"annotation":[{"start":[24,14],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","end":[24,64]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[24,21],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","end":[24,64]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[24,26],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","end":[24,64]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[24,26],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","end":[24,39]},[]],"constraintClass":[["Effect","Class"],"MonadEffect"],"constraintArgs":[{"annotation":[{"start":[24,38],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","end":[24,39]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[24,43],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","end":[24,64]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[24,43],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","end":[24,49]},[]],"constraintClass":[["Data","Show"],"Show"],"constraintArgs":[{"annotation":[{"start":[24,48],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","end":[24,49]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[24,53],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","end":[24,64]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[24,53],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","end":[24,64]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[24,55],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","end":[24,57]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[24,53],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","end":[24,54]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[24,58],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","end":[24,64]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[24,58],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","end":[24,59]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[24,60],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","end":[24,64]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}]}]},18]},19]}}},{"EDValue":{"edValueName":{"Ident":"info"},"edValueType":{"annotation":[{"start":[27,9],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","end":[27,52]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[27,19],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","end":[27,52]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[27,19],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","end":[27,32]},[]],"constraintClass":[["Effect","Class"],"MonadEffect"],"constraintArgs":[{"annotation":[{"start":[27,31],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","end":[27,32]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[27,36],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","end":[27,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[27,36],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","end":[27,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[27,43],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","end":[27,45]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[27,36],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","end":[27,42]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[{"start":[27,46],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","end":[27,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[27,46],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","end":[27,47]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[27,48],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","end":[27,52]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}]},16]}}},{"EDValue":{"edValueName":{"Ident":"infoShow"},"edValueType":{"annotation":[{"start":[30,13],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","end":[30,63]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[30,20],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","end":[30,63]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[30,25],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","end":[30,63]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[30,25],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","end":[30,38]},[]],"constraintClass":[["Effect","Class"],"MonadEffect"],"constraintArgs":[{"annotation":[{"start":[30,37],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","end":[30,38]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[30,42],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","end":[30,63]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[30,42],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","end":[30,48]},[]],"constraintClass":[["Data","Show"],"Show"],"constraintArgs":[{"annotation":[{"start":[30,47],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","end":[30,48]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[30,52],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","end":[30,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[30,52],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","end":[30,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[30,54],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","end":[30,56]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[30,52],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","end":[30,53]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[30,57],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","end":[30,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[30,57],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","end":[30,58]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[30,59],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","end":[30,63]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}]}]},12]},13]}}}],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","end":[31,46]}}
diff --git a/tests/purs/publish/basic-example/output/Effect.Class/docs.json b/tests/purs/publish/basic-example/output/Effect.Class/docs.json
--- a/tests/purs/publish/basic-example/output/Effect.Class/docs.json
+++ b/tests/purs/publish/basic-example/output/Effect.Class/docs.json
@@ -1,1 +1,1 @@
-{"reExports":[],"name":"Effect.Class","comments":null,"declarations":[{"children":[{"comments":null,"title":"liftEffect","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Effect"],"Effect"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},null]}},"sourceSpan":{"start":[16,3],"name":"../../../support/bower_components/purescript-effect/src/Effect/Class.purs","end":[16,42]}},{"comments":null,"title":"monadEffectEffect","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Effect","Class"],"MonadEffect"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Effect"],"Effect"]}]}},"sourceSpan":{"start":[18,1],"name":"../../../support/bower_components/purescript-effect/src/Effect/Class.purs","end":[19,24]}}],"comments":"The `MonadEffect` class captures those monads which support native effects.\n\nInstances are provided for `Effect` itself, and the standard monad\ntransformers.\n\n`liftEffect` can be used in any appropriate monad transformer stack to lift an\naction of type `Effect a` into the monad.\n\n","title":"MonadEffect","info":{"fundeps":[],"arguments":[["m",null]],"declType":"typeClass","superclasses":[{"constraintAnn":[],"constraintClass":[["Control","Monad"],"Monad"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null}]},"sourceSpan":{"start":[15,1],"name":"../../../support/bower_components/purescript-effect/src/Effect/Class.purs","end":[16,42]}}]}
+{"comments":null,"declarations":[{"children":[{"comments":null,"info":{"declType":"typeClassMember","type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Effect"],"Effect"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":"m","tag":"TypeVar"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"sourceSpan":{"end":[16,42],"name":"../../../support/bower_components/purescript-effect/src/Effect/Class.purs","start":[16,3]},"title":"liftEffect"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Effect","Class"],"MonadEffect"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Effect"],"Effect"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[19,24],"name":"../../../support/bower_components/purescript-effect/src/Effect/Class.purs","start":[18,1]},"title":"monadEffectEffect"}],"comments":"The `MonadEffect` class captures those monads which support native effects.\n\nInstances are provided for `Effect` itself, and the standard monad\ntransformers.\n\n`liftEffect` can be used in any appropriate monad transformer stack to lift an\naction of type `Effect a` into the monad.\n\n","info":{"arguments":[["m",null]],"declType":"typeClass","fundeps":[],"superclasses":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"m","tag":"TypeVar"}],"constraintClass":[["Control","Monad"],"Monad"],"constraintData":null,"constraintKindArgs":[]}]},"kind":{"keyword":"class","kind":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim"],"Constraint"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[16,42],"name":"../../../support/bower_components/purescript-effect/src/Effect/Class.purs","start":[15,1]},"title":"MonadEffect"}],"name":"Effect.Class","reExports":[]}
diff --git a/tests/purs/publish/basic-example/output/Effect.Class/externs.json b/tests/purs/publish/basic-example/output/Effect.Class/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Effect.Class/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Effect","Class"],"efExports":[{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-effect/src/Effect/Class.purs","end":[19,24]},{"Ident":"liftEffect"}]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-effect/src/Effect/Class.purs","end":[19,24]},"MonadEffect"]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"monadEffectEffect"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Control","Category"],"eiImportType":{"Explicit":[{"ValueRef":[{"start":[3,26],"name":"../../../support/bower_components/purescript-effect/src/Effect/Class.purs","end":[3,34]},{"Ident":"identity"}]}]},"eiImportedAs":null},{"eiModule":["Control","Monad"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[4,23],"name":"../../../support/bower_components/purescript-effect/src/Effect/Class.purs","end":[4,34]},"Monad"]}]},"eiImportedAs":null},{"eiModule":["Effect"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[5,16],"name":"../../../support/bower_components/purescript-effect/src/Effect/Class.purs","end":[5,22]},"Effect",[]]}]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDValue":{"edValueName":{"Ident":"liftEffect"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[16,17],"name":"../../../support/bower_components/purescript-effect/src/Effect/Class.purs","end":[16,42]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["Effect","Class"],"MonadEffect"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[16,27],"name":"../../../support/bower_components/purescript-effect/src/Effect/Class.purs","end":[16,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[16,27],"name":"../../../support/bower_components/purescript-effect/src/Effect/Class.purs","end":[16,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[16,36],"name":"../../../support/bower_components/purescript-effect/src/Effect/Class.purs","end":[16,38]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[16,27],"name":"../../../support/bower_components/purescript-effect/src/Effect/Class.purs","end":[16,35]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[16,27],"name":"../../../support/bower_components/purescript-effect/src/Effect/Class.purs","end":[16,33]},[]],"tag":"TypeConstructor","contents":[["Effect"],"Effect"]},{"annotation":[{"start":[16,34],"name":"../../../support/bower_components/purescript-effect/src/Effect/Class.purs","end":[16,35]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[16,39],"name":"../../../support/bower_components/purescript-effect/src/Effect/Class.purs","end":[16,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[16,39],"name":"../../../support/bower_components/purescript-effect/src/Effect/Class.purs","end":[16,40]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[16,41],"name":"../../../support/bower_components/purescript-effect/src/Effect/Class.purs","end":[16,42]},[]],"tag":"TypeVar","contents":"a"}]}]}]},13]},14]}}},{"EDType":{"edTypeName":"MonadEffect","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[16,39],"name":"../../../support/bower_components/purescript-effect/src/Effect/Class.purs","end":[16,42]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[16,27],"name":"../../../support/bower_components/purescript-effect/src/Effect/Class.purs","end":[16,33]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[16,36],"name":"../../../support/bower_components/purescript-effect/src/Effect/Class.purs","end":[16,38]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"MonadEffect","edTypeSynonymArguments":[["m",null]],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["liftEffect",{"annotation":[{"start":[16,17],"name":"../../../support/bower_components/purescript-effect/src/Effect/Class.purs","end":[16,42]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[16,27],"name":"../../../support/bower_components/purescript-effect/src/Effect/Class.purs","end":[16,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[16,27],"name":"../../../support/bower_components/purescript-effect/src/Effect/Class.purs","end":[16,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[16,36],"name":"../../../support/bower_components/purescript-effect/src/Effect/Class.purs","end":[16,38]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[16,27],"name":"../../../support/bower_components/purescript-effect/src/Effect/Class.purs","end":[16,35]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[16,27],"name":"../../../support/bower_components/purescript-effect/src/Effect/Class.purs","end":[16,33]},[]],"tag":"TypeConstructor","contents":[["Effect"],"Effect"]},{"annotation":[{"start":[16,34],"name":"../../../support/bower_components/purescript-effect/src/Effect/Class.purs","end":[16,35]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[16,39],"name":"../../../support/bower_components/purescript-effect/src/Effect/Class.purs","end":[16,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[16,39],"name":"../../../support/bower_components/purescript-effect/src/Effect/Class.purs","end":[16,40]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[16,41],"name":"../../../support/bower_components/purescript-effect/src/Effect/Class.purs","end":[16,42]},[]],"tag":"TypeVar","contents":"a"}]}]},null]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["Monad0",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Control","Monad"],"Monad"]},{"annotation":[{"start":[15,13],"name":"../../../support/bower_components/purescript-effect/src/Effect/Class.purs","end":[15,14]},[]],"tag":"TypeVar","contents":"m"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]}]}}},{"EDClass":{"edClassName":"MonadEffect","edClassTypeArguments":[["m",null]],"edClassMembers":[[{"Ident":"liftEffect"},{"annotation":[{"start":[16,17],"name":"../../../support/bower_components/purescript-effect/src/Effect/Class.purs","end":[16,42]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[16,27],"name":"../../../support/bower_components/purescript-effect/src/Effect/Class.purs","end":[16,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[16,27],"name":"../../../support/bower_components/purescript-effect/src/Effect/Class.purs","end":[16,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[16,36],"name":"../../../support/bower_components/purescript-effect/src/Effect/Class.purs","end":[16,38]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[16,27],"name":"../../../support/bower_components/purescript-effect/src/Effect/Class.purs","end":[16,35]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[16,27],"name":"../../../support/bower_components/purescript-effect/src/Effect/Class.purs","end":[16,33]},[]],"tag":"TypeConstructor","contents":[["Effect"],"Effect"]},{"annotation":[{"start":[16,34],"name":"../../../support/bower_components/purescript-effect/src/Effect/Class.purs","end":[16,35]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[16,39],"name":"../../../support/bower_components/purescript-effect/src/Effect/Class.purs","end":[16,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[16,39],"name":"../../../support/bower_components/purescript-effect/src/Effect/Class.purs","end":[16,40]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[16,41],"name":"../../../support/bower_components/purescript-effect/src/Effect/Class.purs","end":[16,42]},[]],"tag":"TypeVar","contents":"a"}]}]},null]}]],"edClassConstraints":[{"constraintAnn":[{"start":[15,7],"name":"../../../support/bower_components/purescript-effect/src/Effect/Class.purs","end":[15,14]},[]],"constraintClass":[["Control","Monad"],"Monad"],"constraintArgs":[{"annotation":[{"start":[15,13],"name":"../../../support/bower_components/purescript-effect/src/Effect/Class.purs","end":[15,14]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null}],"edFunctionalDependencies":[]}},{"EDInstance":{"edInstanceClassName":[["Effect","Class"],"MonadEffect"],"edInstanceName":{"Ident":"monadEffectEffect"},"edInstanceTypes":[{"annotation":[{"start":[18,43],"name":"../../../support/bower_components/purescript-effect/src/Effect/Class.purs","end":[18,49]},[]],"tag":"TypeConstructor","contents":[["Effect"],"Effect"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Effect","Class"],{"Ident":"monadEffectEffect"}]],"edInstanceChainIndex":0}}],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-effect/src/Effect/Class.purs","end":[19,24]}}
diff --git a/tests/purs/publish/basic-example/output/Effect.Console/docs.json b/tests/purs/publish/basic-example/output/Effect.Console/docs.json
--- a/tests/purs/publish/basic-example/output/Effect.Console/docs.json
+++ b/tests/purs/publish/basic-example/output/Effect.Console/docs.json
@@ -1,1 +1,1 @@
-{"reExports":[],"name":"Effect.Console","comments":null,"declarations":[{"children":[],"comments":"Write a message to the console.\n","title":"log","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Effect"],"Effect"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}},"sourceSpan":{"start":[9,1],"name":"../../../support/bower_components/purescript-console/src/Effect/Console.purs","end":[11,17]}},{"children":[],"comments":"Write a value to the console, using its `Show` instance to produce a\n`String`.\n","title":"logShow","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Show"],"Show"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Effect"],"Effect"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}]},null]}},"sourceSpan":{"start":[15,1],"name":"../../../support/bower_components/purescript-console/src/Effect/Console.purs","end":[15,48]}},{"children":[],"comments":"Write an warning to the console.\n","title":"warn","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Effect"],"Effect"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}},"sourceSpan":{"start":[19,1],"name":"../../../support/bower_components/purescript-console/src/Effect/Console.purs","end":[21,17]}},{"children":[],"comments":"Write an warning value to the console, using its `Show` instance to produce\na `String`.\n","title":"warnShow","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Show"],"Show"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Effect"],"Effect"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}]},null]}},"sourceSpan":{"start":[25,1],"name":"../../../support/bower_components/purescript-console/src/Effect/Console.purs","end":[25,49]}},{"children":[],"comments":"Write an error to the console.\n","title":"error","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Effect"],"Effect"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}},"sourceSpan":{"start":[29,1],"name":"../../../support/bower_components/purescript-console/src/Effect/Console.purs","end":[31,17]}},{"children":[],"comments":"Write an error value to the console, using its `Show` instance to produce a\n`String`.\n","title":"errorShow","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Show"],"Show"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Effect"],"Effect"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}]},null]}},"sourceSpan":{"start":[35,1],"name":"../../../support/bower_components/purescript-console/src/Effect/Console.purs","end":[35,50]}},{"children":[],"comments":"Write an info message to the console.\n","title":"info","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Effect"],"Effect"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}},"sourceSpan":{"start":[39,1],"name":"../../../support/bower_components/purescript-console/src/Effect/Console.purs","end":[41,17]}},{"children":[],"comments":"Write an info value to the console, using its `Show` instance to produce a\n`String`.\n","title":"infoShow","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Show"],"Show"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Effect"],"Effect"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}]},null]}},"sourceSpan":{"start":[45,1],"name":"../../../support/bower_components/purescript-console/src/Effect/Console.purs","end":[45,49]}}]}
+{"comments":null,"declarations":[{"children":[],"comments":"Write a message to the console.\n","info":{"declType":"value","type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"String"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Effect"],"Effect"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Unit"],"Unit"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"kind":null,"sourceSpan":{"end":[12,17],"name":"../../../support/bower_components/purescript-console/src/Effect/Console.purs","start":[10,1]},"title":"log"},{"children":[],"comments":"Write a value to the console, using its `Show` instance to produce a\n`String`.\n","info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","Show"],"Show"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Effect"],"Effect"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Unit"],"Unit"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[16,48],"name":"../../../support/bower_components/purescript-console/src/Effect/Console.purs","start":[16,1]},"title":"logShow"},{"children":[],"comments":"Write an warning to the console.\n","info":{"declType":"value","type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"String"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Effect"],"Effect"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Unit"],"Unit"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"kind":null,"sourceSpan":{"end":[22,17],"name":"../../../support/bower_components/purescript-console/src/Effect/Console.purs","start":[20,1]},"title":"warn"},{"children":[],"comments":"Write an warning value to the console, using its `Show` instance to produce\na `String`.\n","info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","Show"],"Show"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Effect"],"Effect"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Unit"],"Unit"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[26,49],"name":"../../../support/bower_components/purescript-console/src/Effect/Console.purs","start":[26,1]},"title":"warnShow"},{"children":[],"comments":"Write an error to the console.\n","info":{"declType":"value","type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"String"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Effect"],"Effect"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Unit"],"Unit"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"kind":null,"sourceSpan":{"end":[32,17],"name":"../../../support/bower_components/purescript-console/src/Effect/Console.purs","start":[30,1]},"title":"error"},{"children":[],"comments":"Write an error value to the console, using its `Show` instance to produce a\n`String`.\n","info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","Show"],"Show"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Effect"],"Effect"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Unit"],"Unit"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[36,50],"name":"../../../support/bower_components/purescript-console/src/Effect/Console.purs","start":[36,1]},"title":"errorShow"},{"children":[],"comments":"Write an info message to the console.\n","info":{"declType":"value","type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"String"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Effect"],"Effect"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Unit"],"Unit"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"kind":null,"sourceSpan":{"end":[42,17],"name":"../../../support/bower_components/purescript-console/src/Effect/Console.purs","start":[40,1]},"title":"info"},{"children":[],"comments":"Write an info value to the console, using its `Show` instance to produce a\n`String`.\n","info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","Show"],"Show"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Effect"],"Effect"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Unit"],"Unit"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[46,49],"name":"../../../support/bower_components/purescript-console/src/Effect/Console.purs","start":[46,1]},"title":"infoShow"},{"children":[],"comments":"Write an debug message to the console.\n","info":{"declType":"value","type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"String"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Effect"],"Effect"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Unit"],"Unit"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"kind":null,"sourceSpan":{"end":[52,17],"name":"../../../support/bower_components/purescript-console/src/Effect/Console.purs","start":[50,1]},"title":"debug"},{"children":[],"comments":"Write an debug value to the console, using its `Show` instance to produce a\n`String`.\n","info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","Show"],"Show"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Effect"],"Effect"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Unit"],"Unit"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[56,50],"name":"../../../support/bower_components/purescript-console/src/Effect/Console.purs","start":[56,1]},"title":"debugShow"},{"children":[],"comments":"Start a named timer.\n","info":{"declType":"value","type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"String"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Effect"],"Effect"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Unit"],"Unit"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"kind":null,"sourceSpan":{"end":[60,45],"name":"../../../support/bower_components/purescript-console/src/Effect/Console.purs","start":[60,1]},"title":"time"},{"children":[],"comments":"Print the time since a named timer started in milliseconds.\n","info":{"declType":"value","type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"String"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Effect"],"Effect"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Unit"],"Unit"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"kind":null,"sourceSpan":{"end":[63,48],"name":"../../../support/bower_components/purescript-console/src/Effect/Console.purs","start":[63,1]},"title":"timeLog"},{"children":[],"comments":"Stop a named timer and print time since it started in milliseconds.\n","info":{"declType":"value","type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"String"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Effect"],"Effect"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Unit"],"Unit"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"kind":null,"sourceSpan":{"end":[66,48],"name":"../../../support/bower_components/purescript-console/src/Effect/Console.purs","start":[66,1]},"title":"timeEnd"},{"children":[],"comments":"Clears the console\n","info":{"declType":"value","type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Effect"],"Effect"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Unit"],"Unit"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"kind":null,"sourceSpan":{"end":[69,36],"name":"../../../support/bower_components/purescript-console/src/Effect/Console.purs","start":[69,1]},"title":"clear"},{"children":[],"comments":"Creates a new inline group in the console. This indents following console\nmessages by an additional level, until `groupEnd` is called.\n","info":{"declType":"value","type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"String"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Effect"],"Effect"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Unit"],"Unit"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"kind":null,"sourceSpan":{"end":[73,46],"name":"../../../support/bower_components/purescript-console/src/Effect/Console.purs","start":[73,1]},"title":"group"},{"children":[],"comments":"Same as `group`, but groups are collapsed by default.\n","info":{"declType":"value","type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"String"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Effect"],"Effect"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Unit"],"Unit"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"kind":null,"sourceSpan":{"end":[76,55],"name":"../../../support/bower_components/purescript-console/src/Effect/Console.purs","start":[76,1]},"title":"groupCollapsed"},{"children":[],"comments":"Exits the current inline group in the console.\n","info":{"declType":"value","type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Effect"],"Effect"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Unit"],"Unit"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"kind":null,"sourceSpan":{"end":[79,39],"name":"../../../support/bower_components/purescript-console/src/Effect/Console.purs","start":[79,1]},"title":"groupEnd"},{"children":[],"comments":"Perform an effect within the context of an inline group in the console.\nCalls `group` and `groupEnd` before and after the effect, respectively.\n","info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"String"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Effect"],"Effect"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Effect"],"Effect"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[83,52],"name":"../../../support/bower_components/purescript-console/src/Effect/Console.purs","start":[83,1]},"title":"grouped"}],"name":"Effect.Console","reExports":[]}
diff --git a/tests/purs/publish/basic-example/output/Effect.Console/externs.json b/tests/purs/publish/basic-example/output/Effect.Console/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Effect.Console/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Effect","Console"],"efExports":[{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-console/src/Effect/Console.purs","end":[46,27]},{"Ident":"log"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-console/src/Effect/Console.purs","end":[46,27]},{"Ident":"logShow"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-console/src/Effect/Console.purs","end":[46,27]},{"Ident":"warn"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-console/src/Effect/Console.purs","end":[46,27]},{"Ident":"warnShow"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-console/src/Effect/Console.purs","end":[46,27]},{"Ident":"error"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-console/src/Effect/Console.purs","end":[46,27]},{"Ident":"errorShow"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-console/src/Effect/Console.purs","end":[46,27]},{"Ident":"info"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-console/src/Effect/Console.purs","end":[46,27]},{"Ident":"infoShow"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Effect"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[3,16],"name":"../../../support/bower_components/purescript-console/src/Effect/Console.purs","end":[3,22]},"Effect",[]]}]},"eiImportedAs":null},{"eiModule":["Data","Show"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[5,19],"name":"../../../support/bower_components/purescript-console/src/Effect/Console.purs","end":[5,29]},"Show"]},{"ValueRef":[{"start":[5,31],"name":"../../../support/bower_components/purescript-console/src/Effect/Console.purs","end":[5,35]},{"Ident":"show"}]}]},"eiImportedAs":null},{"eiModule":["Data","Unit"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[6,19],"name":"../../../support/bower_components/purescript-console/src/Effect/Console.purs","end":[6,23]},"Unit",[]]}]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDValue":{"edValueName":{"Ident":"log"},"edValueType":{"annotation":[{"start":[10,6],"name":"../../../support/bower_components/purescript-console/src/Effect/Console.purs","end":[11,17]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[10,6],"name":"../../../support/bower_components/purescript-console/src/Effect/Console.purs","end":[11,17]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[11,3],"name":"../../../support/bower_components/purescript-console/src/Effect/Console.purs","end":[11,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[10,6],"name":"../../../support/bower_components/purescript-console/src/Effect/Console.purs","end":[10,12]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[{"start":[11,6],"name":"../../../support/bower_components/purescript-console/src/Effect/Console.purs","end":[11,17]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[11,6],"name":"../../../support/bower_components/purescript-console/src/Effect/Console.purs","end":[11,12]},[]],"tag":"TypeConstructor","contents":[["Effect"],"Effect"]},{"annotation":[{"start":[11,13],"name":"../../../support/bower_components/purescript-console/src/Effect/Console.purs","end":[11,17]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}}},{"EDValue":{"edValueName":{"Ident":"logShow"},"edValueType":{"annotation":[{"start":[15,12],"name":"../../../support/bower_components/purescript-console/src/Effect/Console.purs","end":[15,48]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[15,22],"name":"../../../support/bower_components/purescript-console/src/Effect/Console.purs","end":[15,48]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[15,22],"name":"../../../support/bower_components/purescript-console/src/Effect/Console.purs","end":[15,28]},[]],"constraintClass":[["Data","Show"],"Show"],"constraintArgs":[{"annotation":[{"start":[15,27],"name":"../../../support/bower_components/purescript-console/src/Effect/Console.purs","end":[15,28]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[15,32],"name":"../../../support/bower_components/purescript-console/src/Effect/Console.purs","end":[15,48]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[15,32],"name":"../../../support/bower_components/purescript-console/src/Effect/Console.purs","end":[15,48]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[15,34],"name":"../../../support/bower_components/purescript-console/src/Effect/Console.purs","end":[15,36]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[15,32],"name":"../../../support/bower_components/purescript-console/src/Effect/Console.purs","end":[15,33]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[15,37],"name":"../../../support/bower_components/purescript-console/src/Effect/Console.purs","end":[15,48]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[15,37],"name":"../../../support/bower_components/purescript-console/src/Effect/Console.purs","end":[15,43]},[]],"tag":"TypeConstructor","contents":[["Effect"],"Effect"]},{"annotation":[{"start":[15,44],"name":"../../../support/bower_components/purescript-console/src/Effect/Console.purs","end":[15,48]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}]},2]}}},{"EDValue":{"edValueName":{"Ident":"warn"},"edValueType":{"annotation":[{"start":[20,6],"name":"../../../support/bower_components/purescript-console/src/Effect/Console.purs","end":[21,17]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[20,6],"name":"../../../support/bower_components/purescript-console/src/Effect/Console.purs","end":[21,17]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[21,3],"name":"../../../support/bower_components/purescript-console/src/Effect/Console.purs","end":[21,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[20,6],"name":"../../../support/bower_components/purescript-console/src/Effect/Console.purs","end":[20,12]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[{"start":[21,6],"name":"../../../support/bower_components/purescript-console/src/Effect/Console.purs","end":[21,17]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[21,6],"name":"../../../support/bower_components/purescript-console/src/Effect/Console.purs","end":[21,12]},[]],"tag":"TypeConstructor","contents":[["Effect"],"Effect"]},{"annotation":[{"start":[21,13],"name":"../../../support/bower_components/purescript-console/src/Effect/Console.purs","end":[21,17]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}}},{"EDValue":{"edValueName":{"Ident":"warnShow"},"edValueType":{"annotation":[{"start":[25,13],"name":"../../../support/bower_components/purescript-console/src/Effect/Console.purs","end":[25,49]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[25,23],"name":"../../../support/bower_components/purescript-console/src/Effect/Console.purs","end":[25,49]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[25,23],"name":"../../../support/bower_components/purescript-console/src/Effect/Console.purs","end":[25,29]},[]],"constraintClass":[["Data","Show"],"Show"],"constraintArgs":[{"annotation":[{"start":[25,28],"name":"../../../support/bower_components/purescript-console/src/Effect/Console.purs","end":[25,29]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[25,33],"name":"../../../support/bower_components/purescript-console/src/Effect/Console.purs","end":[25,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[25,33],"name":"../../../support/bower_components/purescript-console/src/Effect/Console.purs","end":[25,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[25,35],"name":"../../../support/bower_components/purescript-console/src/Effect/Console.purs","end":[25,37]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[25,33],"name":"../../../support/bower_components/purescript-console/src/Effect/Console.purs","end":[25,34]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[25,38],"name":"../../../support/bower_components/purescript-console/src/Effect/Console.purs","end":[25,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[25,38],"name":"../../../support/bower_components/purescript-console/src/Effect/Console.purs","end":[25,44]},[]],"tag":"TypeConstructor","contents":[["Effect"],"Effect"]},{"annotation":[{"start":[25,45],"name":"../../../support/bower_components/purescript-console/src/Effect/Console.purs","end":[25,49]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}]},0]}}},{"EDValue":{"edValueName":{"Ident":"error"},"edValueType":{"annotation":[{"start":[30,6],"name":"../../../support/bower_components/purescript-console/src/Effect/Console.purs","end":[31,17]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[30,6],"name":"../../../support/bower_components/purescript-console/src/Effect/Console.purs","end":[31,17]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[31,3],"name":"../../../support/bower_components/purescript-console/src/Effect/Console.purs","end":[31,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[30,6],"name":"../../../support/bower_components/purescript-console/src/Effect/Console.purs","end":[30,12]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[{"start":[31,6],"name":"../../../support/bower_components/purescript-console/src/Effect/Console.purs","end":[31,17]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[31,6],"name":"../../../support/bower_components/purescript-console/src/Effect/Console.purs","end":[31,12]},[]],"tag":"TypeConstructor","contents":[["Effect"],"Effect"]},{"annotation":[{"start":[31,13],"name":"../../../support/bower_components/purescript-console/src/Effect/Console.purs","end":[31,17]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}}},{"EDValue":{"edValueName":{"Ident":"errorShow"},"edValueType":{"annotation":[{"start":[35,14],"name":"../../../support/bower_components/purescript-console/src/Effect/Console.purs","end":[35,50]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[35,24],"name":"../../../support/bower_components/purescript-console/src/Effect/Console.purs","end":[35,50]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[35,24],"name":"../../../support/bower_components/purescript-console/src/Effect/Console.purs","end":[35,30]},[]],"constraintClass":[["Data","Show"],"Show"],"constraintArgs":[{"annotation":[{"start":[35,29],"name":"../../../support/bower_components/purescript-console/src/Effect/Console.purs","end":[35,30]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[35,34],"name":"../../../support/bower_components/purescript-console/src/Effect/Console.purs","end":[35,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[35,34],"name":"../../../support/bower_components/purescript-console/src/Effect/Console.purs","end":[35,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[35,36],"name":"../../../support/bower_components/purescript-console/src/Effect/Console.purs","end":[35,38]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[35,34],"name":"../../../support/bower_components/purescript-console/src/Effect/Console.purs","end":[35,35]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[35,39],"name":"../../../support/bower_components/purescript-console/src/Effect/Console.purs","end":[35,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[35,39],"name":"../../../support/bower_components/purescript-console/src/Effect/Console.purs","end":[35,45]},[]],"tag":"TypeConstructor","contents":[["Effect"],"Effect"]},{"annotation":[{"start":[35,46],"name":"../../../support/bower_components/purescript-console/src/Effect/Console.purs","end":[35,50]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}]},6]}}},{"EDValue":{"edValueName":{"Ident":"info"},"edValueType":{"annotation":[{"start":[40,6],"name":"../../../support/bower_components/purescript-console/src/Effect/Console.purs","end":[41,17]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[40,6],"name":"../../../support/bower_components/purescript-console/src/Effect/Console.purs","end":[41,17]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[41,3],"name":"../../../support/bower_components/purescript-console/src/Effect/Console.purs","end":[41,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[40,6],"name":"../../../support/bower_components/purescript-console/src/Effect/Console.purs","end":[40,12]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[{"start":[41,6],"name":"../../../support/bower_components/purescript-console/src/Effect/Console.purs","end":[41,17]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[41,6],"name":"../../../support/bower_components/purescript-console/src/Effect/Console.purs","end":[41,12]},[]],"tag":"TypeConstructor","contents":[["Effect"],"Effect"]},{"annotation":[{"start":[41,13],"name":"../../../support/bower_components/purescript-console/src/Effect/Console.purs","end":[41,17]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}}},{"EDValue":{"edValueName":{"Ident":"infoShow"},"edValueType":{"annotation":[{"start":[45,13],"name":"../../../support/bower_components/purescript-console/src/Effect/Console.purs","end":[45,49]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[45,23],"name":"../../../support/bower_components/purescript-console/src/Effect/Console.purs","end":[45,49]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[45,23],"name":"../../../support/bower_components/purescript-console/src/Effect/Console.purs","end":[45,29]},[]],"constraintClass":[["Data","Show"],"Show"],"constraintArgs":[{"annotation":[{"start":[45,28],"name":"../../../support/bower_components/purescript-console/src/Effect/Console.purs","end":[45,29]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[45,33],"name":"../../../support/bower_components/purescript-console/src/Effect/Console.purs","end":[45,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[45,33],"name":"../../../support/bower_components/purescript-console/src/Effect/Console.purs","end":[45,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[45,35],"name":"../../../support/bower_components/purescript-console/src/Effect/Console.purs","end":[45,37]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[45,33],"name":"../../../support/bower_components/purescript-console/src/Effect/Console.purs","end":[45,34]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[45,38],"name":"../../../support/bower_components/purescript-console/src/Effect/Console.purs","end":[45,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[45,38],"name":"../../../support/bower_components/purescript-console/src/Effect/Console.purs","end":[45,44]},[]],"tag":"TypeConstructor","contents":[["Effect"],"Effect"]},{"annotation":[{"start":[45,45],"name":"../../../support/bower_components/purescript-console/src/Effect/Console.purs","end":[45,49]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}]},4]}}}],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-console/src/Effect/Console.purs","end":[46,27]}}
diff --git a/tests/purs/publish/basic-example/output/Effect.Ref/docs.json b/tests/purs/publish/basic-example/output/Effect.Ref/docs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Effect.Ref/docs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"reExports":[],"name":"Effect.Ref","comments":"This module defines an effect and actions for working with\nglobal mutable variables.\n\n_Note_: `Control.Monad.ST` provides a _safe_ alternative\nto global mutable variables when mutation is restricted to a\nlocal scope.\n","declarations":[{"children":[],"comments":"A value of type `Ref a` represents a mutable reference\nwhich holds a value of type `a`.\n","title":"Ref","info":{"kind":{"annotation":[],"tag":"FunKind","contents":[{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},"declType":"externData"},"sourceSpan":{"start":[15,1],"name":"../../../support/bower_components/purescript-refs/src/Effect/Ref.purs","end":[15,40]}},{"children":[],"comments":"Create a new mutable reference containing the specified value.\n","title":"new","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["s",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"s"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Effect"],"Effect"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Effect","Ref"],"Ref"]},{"annotation":[],"tag":"TypeVar","contents":"s"}]}}]}]},null]}},"sourceSpan":{"start":[18,1],"name":"../../../support/bower_components/purescript-refs/src/Effect/Ref.purs","end":[18,52]}},{"children":[],"comments":"Read the current value of a mutable reference\n","title":"read","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["s",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Effect","Ref"],"Ref"]},{"annotation":[],"tag":"TypeVar","contents":"s"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Effect"],"Effect"]},{"annotation":[],"tag":"TypeVar","contents":"s"}]}]},null]}},"sourceSpan":{"start":[21,1],"name":"../../../support/bower_components/purescript-refs/src/Effect/Ref.purs","end":[21,51]}},{"children":[],"comments":"Update the value of a mutable reference by applying a function\nto the current value.\n","title":"modify'","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["s",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"s"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"RCons","contents":["state",{"annotation":[],"tag":"TypeVar","contents":"s"},{"annotation":[],"tag":"RCons","contents":["value",{"annotation":[],"tag":"TypeVar","contents":"b"},{"annotation":[],"tag":"REmpty"}]}]}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Effect","Ref"],"Ref"]},{"annotation":[],"tag":"TypeVar","contents":"s"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Effect"],"Effect"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}]},null]},null]}},"sourceSpan":{"start":[25,1],"name":"../../../support/bower_components/purescript-refs/src/Effect/Ref.purs","end":[25,93]}},{"children":[],"comments":"Update the value of a mutable reference by applying a function\nto the current value. The updated value is returned.\n","title":"modify","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["s",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"s"}]},{"annotation":[],"tag":"TypeVar","contents":"s"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Effect","Ref"],"Ref"]},{"annotation":[],"tag":"TypeVar","contents":"s"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Effect"],"Effect"]},{"annotation":[],"tag":"TypeVar","contents":"s"}]}]}]},null]}},"sourceSpan":{"start":[29,1],"name":"../../../support/bower_components/purescript-refs/src/Effect/Ref.purs","end":[29,50]}},{"children":[],"comments":null,"title":"modify_","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["s",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"s"}]},{"annotation":[],"tag":"TypeVar","contents":"s"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Effect","Ref"],"Ref"]},{"annotation":[],"tag":"TypeVar","contents":"s"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Effect"],"Effect"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}]},null]}},"sourceSpan":{"start":[32,1],"name":"../../../support/bower_components/purescript-refs/src/Effect/Ref.purs","end":[32,54]}},{"children":[],"comments":"Update the value of a mutable reference to the specified value.\n","title":"write","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["s",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"s"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Effect","Ref"],"Ref"]},{"annotation":[],"tag":"TypeVar","contents":"s"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Effect"],"Effect"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}]},null]}},"sourceSpan":{"start":[36,1],"name":"../../../support/bower_components/purescript-refs/src/Effect/Ref.purs","end":[36,60]}}]}
diff --git a/tests/purs/publish/basic-example/output/Effect.Ref/externs.json b/tests/purs/publish/basic-example/output/Effect.Ref/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Effect.Ref/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Effect","Ref"],"efExports":[{"TypeRef":[{"start":[7,1],"name":"../../../support/bower_components/purescript-refs/src/Effect/Ref.purs","end":[36,60]},"Ref",[]]},{"ValueRef":[{"start":[7,1],"name":"../../../support/bower_components/purescript-refs/src/Effect/Ref.purs","end":[36,60]},{"Ident":"new"}]},{"ValueRef":[{"start":[7,1],"name":"../../../support/bower_components/purescript-refs/src/Effect/Ref.purs","end":[36,60]},{"Ident":"read"}]},{"ValueRef":[{"start":[7,1],"name":"../../../support/bower_components/purescript-refs/src/Effect/Ref.purs","end":[36,60]},{"Ident":"modify'"}]},{"ValueRef":[{"start":[7,1],"name":"../../../support/bower_components/purescript-refs/src/Effect/Ref.purs","end":[36,60]},{"Ident":"modify"}]},{"ValueRef":[{"start":[7,1],"name":"../../../support/bower_components/purescript-refs/src/Effect/Ref.purs","end":[36,60]},{"Ident":"modify_"}]},{"ValueRef":[{"start":[7,1],"name":"../../../support/bower_components/purescript-refs/src/Effect/Ref.purs","end":[36,60]},{"Ident":"write"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Prelude"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Effect"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[11,16],"name":"../../../support/bower_components/purescript-refs/src/Effect/Ref.purs","end":[11,22]},"Effect",[]]}]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDType":{"edTypeName":"Ref","edTypeKind":{"annotation":[{"start":[15,28],"name":"../../../support/bower_components/purescript-refs/src/Effect/Ref.purs","end":[15,40]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[15,28],"name":"../../../support/bower_components/purescript-refs/src/Effect/Ref.purs","end":[15,32]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[15,36],"name":"../../../support/bower_components/purescript-refs/src/Effect/Ref.purs","end":[15,40]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},"edTypeDeclarationKind":"ExternData"}},{"EDValue":{"edValueName":{"Ident":"new"},"edValueType":{"annotation":[{"start":[18,23],"name":"../../../support/bower_components/purescript-refs/src/Effect/Ref.purs","end":[18,52]},[]],"tag":"ForAll","contents":["s",{"annotation":[{"start":[18,33],"name":"../../../support/bower_components/purescript-refs/src/Effect/Ref.purs","end":[18,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,33],"name":"../../../support/bower_components/purescript-refs/src/Effect/Ref.purs","end":[18,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,35],"name":"../../../support/bower_components/purescript-refs/src/Effect/Ref.purs","end":[18,37]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[18,33],"name":"../../../support/bower_components/purescript-refs/src/Effect/Ref.purs","end":[18,34]},[]],"tag":"TypeVar","contents":"s"}]},{"annotation":[{"start":[18,38],"name":"../../../support/bower_components/purescript-refs/src/Effect/Ref.purs","end":[18,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,38],"name":"../../../support/bower_components/purescript-refs/src/Effect/Ref.purs","end":[18,44]},[]],"tag":"TypeConstructor","contents":[["Effect"],"Effect"]},{"annotation":[{"start":[18,46],"name":"../../../support/bower_components/purescript-refs/src/Effect/Ref.purs","end":[18,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,46],"name":"../../../support/bower_components/purescript-refs/src/Effect/Ref.purs","end":[18,49]},[]],"tag":"TypeConstructor","contents":[["Effect","Ref"],"Ref"]},{"annotation":[{"start":[18,50],"name":"../../../support/bower_components/purescript-refs/src/Effect/Ref.purs","end":[18,51]},[]],"tag":"TypeVar","contents":"s"}]}]}]},null]}}},{"EDValue":{"edValueName":{"Ident":"read"},"edValueType":{"annotation":[{"start":[21,24],"name":"../../../support/bower_components/purescript-refs/src/Effect/Ref.purs","end":[21,51]},[]],"tag":"ForAll","contents":["s",{"annotation":[{"start":[21,34],"name":"../../../support/bower_components/purescript-refs/src/Effect/Ref.purs","end":[21,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[21,34],"name":"../../../support/bower_components/purescript-refs/src/Effect/Ref.purs","end":[21,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[21,40],"name":"../../../support/bower_components/purescript-refs/src/Effect/Ref.purs","end":[21,42]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[21,34],"name":"../../../support/bower_components/purescript-refs/src/Effect/Ref.purs","end":[21,39]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[21,34],"name":"../../../support/bower_components/purescript-refs/src/Effect/Ref.purs","end":[21,37]},[]],"tag":"TypeConstructor","contents":[["Effect","Ref"],"Ref"]},{"annotation":[{"start":[21,38],"name":"../../../support/bower_components/purescript-refs/src/Effect/Ref.purs","end":[21,39]},[]],"tag":"TypeVar","contents":"s"}]}]},{"annotation":[{"start":[21,43],"name":"../../../support/bower_components/purescript-refs/src/Effect/Ref.purs","end":[21,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[21,43],"name":"../../../support/bower_components/purescript-refs/src/Effect/Ref.purs","end":[21,49]},[]],"tag":"TypeConstructor","contents":[["Effect"],"Effect"]},{"annotation":[{"start":[21,50],"name":"../../../support/bower_components/purescript-refs/src/Effect/Ref.purs","end":[21,51]},[]],"tag":"TypeVar","contents":"s"}]}]},null]}}},{"EDValue":{"edValueName":{"Ident":"modify'"},"edValueType":{"annotation":[{"start":[25,27],"name":"../../../support/bower_components/purescript-refs/src/Effect/Ref.purs","end":[25,93]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[25,34],"name":"../../../support/bower_components/purescript-refs/src/Effect/Ref.purs","end":[25,93]},[]],"tag":"ForAll","contents":["s",{"annotation":[{"start":[25,39],"name":"../../../support/bower_components/purescript-refs/src/Effect/Ref.purs","end":[25,93]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[25,39],"name":"../../../support/bower_components/purescript-refs/src/Effect/Ref.purs","end":[25,93]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[25,73],"name":"../../../support/bower_components/purescript-refs/src/Effect/Ref.purs","end":[25,75]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[25,40],"name":"../../../support/bower_components/purescript-refs/src/Effect/Ref.purs","end":[25,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[25,40],"name":"../../../support/bower_components/purescript-refs/src/Effect/Ref.purs","end":[25,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[25,42],"name":"../../../support/bower_components/purescript-refs/src/Effect/Ref.purs","end":[25,44]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[25,40],"name":"../../../support/bower_components/purescript-refs/src/Effect/Ref.purs","end":[25,41]},[]],"tag":"TypeVar","contents":"s"}]},{"annotation":[{"start":[25,45],"name":"../../../support/bower_components/purescript-refs/src/Effect/Ref.purs","end":[25,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[25,45],"name":"../../../support/bower_components/purescript-refs/src/Effect/Ref.purs","end":[25,46]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[25,47],"name":"../../../support/bower_components/purescript-refs/src/Effect/Ref.purs","end":[25,57]},[]],"tag":"RCons","contents":["state",{"annotation":[{"start":[25,56],"name":"../../../support/bower_components/purescript-refs/src/Effect/Ref.purs","end":[25,57]},[]],"tag":"TypeVar","contents":"s"},{"annotation":[{"start":[25,59],"name":"../../../support/bower_components/purescript-refs/src/Effect/Ref.purs","end":[25,69]},[]],"tag":"RCons","contents":["value",{"annotation":[{"start":[25,68],"name":"../../../support/bower_components/purescript-refs/src/Effect/Ref.purs","end":[25,69]},[]],"tag":"TypeVar","contents":"b"},{"annotation":[{"start":[25,70],"name":"../../../support/bower_components/purescript-refs/src/Effect/Ref.purs","end":[25,71]},[]],"tag":"REmpty"}]}]}]}]}]},{"annotation":[{"start":[25,76],"name":"../../../support/bower_components/purescript-refs/src/Effect/Ref.purs","end":[25,93]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[25,76],"name":"../../../support/bower_components/purescript-refs/src/Effect/Ref.purs","end":[25,93]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[25,82],"name":"../../../support/bower_components/purescript-refs/src/Effect/Ref.purs","end":[25,84]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[25,76],"name":"../../../support/bower_components/purescript-refs/src/Effect/Ref.purs","end":[25,81]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[25,76],"name":"../../../support/bower_components/purescript-refs/src/Effect/Ref.purs","end":[25,79]},[]],"tag":"TypeConstructor","contents":[["Effect","Ref"],"Ref"]},{"annotation":[{"start":[25,80],"name":"../../../support/bower_components/purescript-refs/src/Effect/Ref.purs","end":[25,81]},[]],"tag":"TypeVar","contents":"s"}]}]},{"annotation":[{"start":[25,85],"name":"../../../support/bower_components/purescript-refs/src/Effect/Ref.purs","end":[25,93]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[25,85],"name":"../../../support/bower_components/purescript-refs/src/Effect/Ref.purs","end":[25,91]},[]],"tag":"TypeConstructor","contents":[["Effect"],"Effect"]},{"annotation":[{"start":[25,92],"name":"../../../support/bower_components/purescript-refs/src/Effect/Ref.purs","end":[25,93]},[]],"tag":"TypeVar","contents":"b"}]}]}]},null]},null]}}},{"EDValue":{"edValueName":{"Ident":"modify"},"edValueType":{"annotation":[{"start":[29,11],"name":"../../../support/bower_components/purescript-refs/src/Effect/Ref.purs","end":[29,50]},[]],"tag":"ForAll","contents":["s",{"annotation":[{"start":[29,21],"name":"../../../support/bower_components/purescript-refs/src/Effect/Ref.purs","end":[29,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[29,21],"name":"../../../support/bower_components/purescript-refs/src/Effect/Ref.purs","end":[29,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[29,30],"name":"../../../support/bower_components/purescript-refs/src/Effect/Ref.purs","end":[29,32]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[29,22],"name":"../../../support/bower_components/purescript-refs/src/Effect/Ref.purs","end":[29,28]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[29,22],"name":"../../../support/bower_components/purescript-refs/src/Effect/Ref.purs","end":[29,28]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[29,24],"name":"../../../support/bower_components/purescript-refs/src/Effect/Ref.purs","end":[29,26]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[29,22],"name":"../../../support/bower_components/purescript-refs/src/Effect/Ref.purs","end":[29,23]},[]],"tag":"TypeVar","contents":"s"}]},{"annotation":[{"start":[29,27],"name":"../../../support/bower_components/purescript-refs/src/Effect/Ref.purs","end":[29,28]},[]],"tag":"TypeVar","contents":"s"}]}]},{"annotation":[{"start":[29,33],"name":"../../../support/bower_components/purescript-refs/src/Effect/Ref.purs","end":[29,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[29,33],"name":"../../../support/bower_components/purescript-refs/src/Effect/Ref.purs","end":[29,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[29,39],"name":"../../../support/bower_components/purescript-refs/src/Effect/Ref.purs","end":[29,41]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[29,33],"name":"../../../support/bower_components/purescript-refs/src/Effect/Ref.purs","end":[29,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[29,33],"name":"../../../support/bower_components/purescript-refs/src/Effect/Ref.purs","end":[29,36]},[]],"tag":"TypeConstructor","contents":[["Effect","Ref"],"Ref"]},{"annotation":[{"start":[29,37],"name":"../../../support/bower_components/purescript-refs/src/Effect/Ref.purs","end":[29,38]},[]],"tag":"TypeVar","contents":"s"}]}]},{"annotation":[{"start":[29,42],"name":"../../../support/bower_components/purescript-refs/src/Effect/Ref.purs","end":[29,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[29,42],"name":"../../../support/bower_components/purescript-refs/src/Effect/Ref.purs","end":[29,48]},[]],"tag":"TypeConstructor","contents":[["Effect"],"Effect"]},{"annotation":[{"start":[29,49],"name":"../../../support/bower_components/purescript-refs/src/Effect/Ref.purs","end":[29,50]},[]],"tag":"TypeVar","contents":"s"}]}]}]},0]}}},{"EDValue":{"edValueName":{"Ident":"modify_"},"edValueType":{"annotation":[{"start":[32,12],"name":"../../../support/bower_components/purescript-refs/src/Effect/Ref.purs","end":[32,54]},[]],"tag":"ForAll","contents":["s",{"annotation":[{"start":[32,22],"name":"../../../support/bower_components/purescript-refs/src/Effect/Ref.purs","end":[32,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[32,22],"name":"../../../support/bower_components/purescript-refs/src/Effect/Ref.purs","end":[32,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[32,31],"name":"../../../support/bower_components/purescript-refs/src/Effect/Ref.purs","end":[32,33]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[32,23],"name":"../../../support/bower_components/purescript-refs/src/Effect/Ref.purs","end":[32,29]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[32,23],"name":"../../../support/bower_components/purescript-refs/src/Effect/Ref.purs","end":[32,29]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[32,25],"name":"../../../support/bower_components/purescript-refs/src/Effect/Ref.purs","end":[32,27]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[32,23],"name":"../../../support/bower_components/purescript-refs/src/Effect/Ref.purs","end":[32,24]},[]],"tag":"TypeVar","contents":"s"}]},{"annotation":[{"start":[32,28],"name":"../../../support/bower_components/purescript-refs/src/Effect/Ref.purs","end":[32,29]},[]],"tag":"TypeVar","contents":"s"}]}]},{"annotation":[{"start":[32,34],"name":"../../../support/bower_components/purescript-refs/src/Effect/Ref.purs","end":[32,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[32,34],"name":"../../../support/bower_components/purescript-refs/src/Effect/Ref.purs","end":[32,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[32,40],"name":"../../../support/bower_components/purescript-refs/src/Effect/Ref.purs","end":[32,42]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[32,34],"name":"../../../support/bower_components/purescript-refs/src/Effect/Ref.purs","end":[32,39]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[32,34],"name":"../../../support/bower_components/purescript-refs/src/Effect/Ref.purs","end":[32,37]},[]],"tag":"TypeConstructor","contents":[["Effect","Ref"],"Ref"]},{"annotation":[{"start":[32,38],"name":"../../../support/bower_components/purescript-refs/src/Effect/Ref.purs","end":[32,39]},[]],"tag":"TypeVar","contents":"s"}]}]},{"annotation":[{"start":[32,43],"name":"../../../support/bower_components/purescript-refs/src/Effect/Ref.purs","end":[32,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[32,43],"name":"../../../support/bower_components/purescript-refs/src/Effect/Ref.purs","end":[32,49]},[]],"tag":"TypeConstructor","contents":[["Effect"],"Effect"]},{"annotation":[{"start":[32,50],"name":"../../../support/bower_components/purescript-refs/src/Effect/Ref.purs","end":[32,54]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}]},4]}}},{"EDValue":{"edValueName":{"Ident":"write"},"edValueType":{"annotation":[{"start":[36,25],"name":"../../../support/bower_components/purescript-refs/src/Effect/Ref.purs","end":[36,60]},[]],"tag":"ForAll","contents":["s",{"annotation":[{"start":[36,35],"name":"../../../support/bower_components/purescript-refs/src/Effect/Ref.purs","end":[36,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,35],"name":"../../../support/bower_components/purescript-refs/src/Effect/Ref.purs","end":[36,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,37],"name":"../../../support/bower_components/purescript-refs/src/Effect/Ref.purs","end":[36,39]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[36,35],"name":"../../../support/bower_components/purescript-refs/src/Effect/Ref.purs","end":[36,36]},[]],"tag":"TypeVar","contents":"s"}]},{"annotation":[{"start":[36,40],"name":"../../../support/bower_components/purescript-refs/src/Effect/Ref.purs","end":[36,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,40],"name":"../../../support/bower_components/purescript-refs/src/Effect/Ref.purs","end":[36,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,46],"name":"../../../support/bower_components/purescript-refs/src/Effect/Ref.purs","end":[36,48]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[36,40],"name":"../../../support/bower_components/purescript-refs/src/Effect/Ref.purs","end":[36,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,40],"name":"../../../support/bower_components/purescript-refs/src/Effect/Ref.purs","end":[36,43]},[]],"tag":"TypeConstructor","contents":[["Effect","Ref"],"Ref"]},{"annotation":[{"start":[36,44],"name":"../../../support/bower_components/purescript-refs/src/Effect/Ref.purs","end":[36,45]},[]],"tag":"TypeVar","contents":"s"}]}]},{"annotation":[{"start":[36,49],"name":"../../../support/bower_components/purescript-refs/src/Effect/Ref.purs","end":[36,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,49],"name":"../../../support/bower_components/purescript-refs/src/Effect/Ref.purs","end":[36,55]},[]],"tag":"TypeConstructor","contents":[["Effect"],"Effect"]},{"annotation":[{"start":[36,56],"name":"../../../support/bower_components/purescript-refs/src/Effect/Ref.purs","end":[36,60]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}]},null]}}}],"efSourceSpan":{"start":[7,1],"name":"../../../support/bower_components/purescript-refs/src/Effect/Ref.purs","end":[36,60]}}
diff --git a/tests/purs/publish/basic-example/output/Effect.Uncurried/docs.json b/tests/purs/publish/basic-example/output/Effect.Uncurried/docs.json
--- a/tests/purs/publish/basic-example/output/Effect.Uncurried/docs.json
+++ b/tests/purs/publish/basic-example/output/Effect.Uncurried/docs.json
@@ -1,1 +1,1 @@
-{"reExports":[],"name":"Effect.Uncurried","comments":"This module defines types for effectful uncurried functions, as well as\nfunctions for converting back and forth between them.\n\nTraditionally, it has been difficult to give a PureScript type to\nJavaScript functions such as this one:\n\n```javascript\nfunction logMessage(level, message) {\n  console.log(level + \": \" + message);\n}\n```\n\nIn particular, note that `logMessage` performs effects immediately after\nreceiving all of its parameters, so giving it the type `Data.Function.Fn2\nString String Unit`, while convenient, would effectively be a lie.\n\nBecause there has been no way of giving such functions types, we generally\nresort to converting functions into the normal PureScript form (namely,\na curried function returning an Effect action), and performing the\nmarshalling in JavaScript, in the FFI module, like this:\n\n```purescript\n-- In the PureScript file:\nforeign import logMessage :: String -> String -> Effect Unit\n```\n\n```javascript\n// In the FFI file:\nexports.logMessage = function(level) {\n  return function(message) {\n    return function() {\n      logMessage(level, message);\n    };\n  };\n};\n```\n\nThis method, unfortunately, turns out to be both tiresome and error-prone.\nThis module offers an alternative solution. By providing you with:\n\n * the ability to give the real `logMessage` function a PureScript type,\n   and\n * functions for converting between this form and the normal PureScript\n   form,\n\nthe FFI boilerplate is no longer needed. The previous example becomes:\n\n```purescript\n-- In the PureScript file:\nforeign import logMessageImpl :: EffectFn2 String String Unit\n```\n\n```javascript\n// In the FFI file:\nexports.logMessageImpl = logMessage\n```\n\nYou can then use `runEffectFn2` to provide a nicer version:\n\n```purescript\nlogMessage :: String -> String -> Effect Unit\nlogMessage = runEffectFn2 logMessageImpl\n```\n\n(note that this has the same type as the original `logMessage`).\n\nEffectively, we have reduced the risk of errors by moving as much code\ninto PureScript as possible, so that we can leverage the type system.\nHopefully, this is a little less tiresome too.\n\nHere's a slightly more advanced example. Here, because we are using\ncallbacks, we need to use `mkEffectFn{N}` as well.\n\nSuppose our `logMessage` changes so that it sometimes sends details of the\nmessage to some external server, and in those cases, we want the resulting\n`HttpResponse` (for whatever reason).\n\n```javascript\nfunction logMessage(level, message, callback) {\n  console.log(level + \": \" + message);\n  if (level > LogLevel.WARN) {\n    LogAggregatorService.post(\"/logs\", {\n      level: level,\n      message: message\n    }, callback);\n  } else {\n    callback(null);\n  }\n}\n```\n\nThe import then looks like this:\n```purescript\nforeign import logMessageImpl\n EffectFn3\n   String\n   String\n   (EffectFn1 (Nullable HttpResponse) Unit)\n   Unit\n```\n\nAnd, as before, the FFI file is extremely simple:\n\n```javascript\nexports.logMessageImpl = logMessage\n```\n\nFinally, we use `runEffectFn{N}` and `mkEffectFn{N}` for a more comfortable\nPureScript version:\n\n```purescript\nlogMessage ::\n  String ->\n  String ->\n  (Nullable HttpResponse -> Effect Unit) ->\n  Effect Unit\nlogMessage level message callback =\n  runEffectFn3 logMessageImpl level message (mkEffectFn1 callback)\n```\n\nThe general naming scheme for functions and types in this module is as\nfollows:\n\n* `EffectFn{N}` means, a curried function which accepts N arguments and\n  performs some effects. The first type argument is the row of effects,\n  which works exactly the same way as in `Effect`. The last type argument\n  is the return type. All other arguments are the actual function's\n  arguments.\n* `runEffectFn{N}` takes an `EffectFn` of N arguments, and converts it into the\n  normal PureScript form: a curried function which returns an Effect action.\n* `mkEffectFn{N}` is the inverse of `runEffectFn{N}`. It can be useful for\n  callbacks.\n\n","declarations":[{"children":[],"comments":null,"title":"EffectFn1","info":{"kind":{"annotation":[],"tag":"FunKind","contents":[{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[],"tag":"FunKind","contents":[{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]},"declType":"externData"},"sourceSpan":{"start":[139,1],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[139,54]}},{"children":[],"comments":null,"title":"EffectFn2","info":{"kind":{"annotation":[],"tag":"FunKind","contents":[{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[],"tag":"FunKind","contents":[{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[],"tag":"FunKind","contents":[{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]}]},"declType":"externData"},"sourceSpan":{"start":[140,1],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[140,62]}},{"children":[],"comments":null,"title":"EffectFn3","info":{"kind":{"annotation":[],"tag":"FunKind","contents":[{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[],"tag":"FunKind","contents":[{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[],"tag":"FunKind","contents":[{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[],"tag":"FunKind","contents":[{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]}]}]},"declType":"externData"},"sourceSpan":{"start":[141,1],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[141,70]}},{"children":[],"comments":null,"title":"EffectFn4","info":{"kind":{"annotation":[],"tag":"FunKind","contents":[{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[],"tag":"FunKind","contents":[{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[],"tag":"FunKind","contents":[{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[],"tag":"FunKind","contents":[{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[],"tag":"FunKind","contents":[{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]}]}]}]},"declType":"externData"},"sourceSpan":{"start":[142,1],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[142,78]}},{"children":[],"comments":null,"title":"EffectFn5","info":{"kind":{"annotation":[],"tag":"FunKind","contents":[{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[],"tag":"FunKind","contents":[{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[],"tag":"FunKind","contents":[{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[],"tag":"FunKind","contents":[{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[],"tag":"FunKind","contents":[{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[],"tag":"FunKind","contents":[{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]}]}]}]}]},"declType":"externData"},"sourceSpan":{"start":[143,1],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[143,86]}},{"children":[],"comments":null,"title":"EffectFn6","info":{"kind":{"annotation":[],"tag":"FunKind","contents":[{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[],"tag":"FunKind","contents":[{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[],"tag":"FunKind","contents":[{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[],"tag":"FunKind","contents":[{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[],"tag":"FunKind","contents":[{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[],"tag":"FunKind","contents":[{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[],"tag":"FunKind","contents":[{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]}]}]}]}]}]},"declType":"externData"},"sourceSpan":{"start":[144,1],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[144,94]}},{"children":[],"comments":null,"title":"EffectFn7","info":{"kind":{"annotation":[],"tag":"FunKind","contents":[{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[],"tag":"FunKind","contents":[{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[],"tag":"FunKind","contents":[{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[],"tag":"FunKind","contents":[{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[],"tag":"FunKind","contents":[{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[],"tag":"FunKind","contents":[{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[],"tag":"FunKind","contents":[{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[],"tag":"FunKind","contents":[{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]}]}]}]}]}]}]},"declType":"externData"},"sourceSpan":{"start":[145,1],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[145,102]}},{"children":[],"comments":null,"title":"EffectFn8","info":{"kind":{"annotation":[],"tag":"FunKind","contents":[{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[],"tag":"FunKind","contents":[{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[],"tag":"FunKind","contents":[{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[],"tag":"FunKind","contents":[{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[],"tag":"FunKind","contents":[{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[],"tag":"FunKind","contents":[{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[],"tag":"FunKind","contents":[{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[],"tag":"FunKind","contents":[{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[],"tag":"FunKind","contents":[{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]}]}]}]}]}]}]}]},"declType":"externData"},"sourceSpan":{"start":[146,1],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[146,110]}},{"children":[],"comments":null,"title":"EffectFn9","info":{"kind":{"annotation":[],"tag":"FunKind","contents":[{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[],"tag":"FunKind","contents":[{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[],"tag":"FunKind","contents":[{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[],"tag":"FunKind","contents":[{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[],"tag":"FunKind","contents":[{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[],"tag":"FunKind","contents":[{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[],"tag":"FunKind","contents":[{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[],"tag":"FunKind","contents":[{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[],"tag":"FunKind","contents":[{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[],"tag":"FunKind","contents":[{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]}]}]}]}]}]}]}]}]},"declType":"externData"},"sourceSpan":{"start":[147,1],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[147,118]}},{"children":[],"comments":null,"title":"EffectFn10","info":{"kind":{"annotation":[],"tag":"FunKind","contents":[{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[],"tag":"FunKind","contents":[{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[],"tag":"FunKind","contents":[{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[],"tag":"FunKind","contents":[{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[],"tag":"FunKind","contents":[{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[],"tag":"FunKind","contents":[{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[],"tag":"FunKind","contents":[{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[],"tag":"FunKind","contents":[{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[],"tag":"FunKind","contents":[{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[],"tag":"FunKind","contents":[{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[],"tag":"FunKind","contents":[{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]}]}]}]}]}]}]}]}]}]},"declType":"externData"},"sourceSpan":{"start":[148,1],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[148,127]}},{"children":[],"comments":null,"title":"mkEffectFn1","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["r",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Effect"],"Effect"]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Effect","Uncurried"],"EffectFn1"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}]},null]},null]}},"sourceSpan":{"start":[150,1],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[151,35]}},{"children":[],"comments":null,"title":"mkEffectFn2","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["r",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Effect"],"Effect"]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Effect","Uncurried"],"EffectFn2"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}]},null]},null]},null]}},"sourceSpan":{"start":[152,1],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[153,42]}},{"children":[],"comments":null,"title":"mkEffectFn3","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["r",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Effect"],"Effect"]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}]}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Effect","Uncurried"],"EffectFn3"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}]},null]},null]},null]},null]}},"sourceSpan":{"start":[154,1],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[155,49]}},{"children":[],"comments":null,"title":"mkEffectFn4","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["r",{"annotation":[],"tag":"ForAll","contents":["d",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Effect"],"Effect"]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}]}]}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Effect","Uncurried"],"EffectFn4"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}]},null]},null]},null]},null]},null]}},"sourceSpan":{"start":[156,1],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[157,56]}},{"children":[],"comments":null,"title":"mkEffectFn5","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["r",{"annotation":[],"tag":"ForAll","contents":["e",{"annotation":[],"tag":"ForAll","contents":["d",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"e"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Effect"],"Effect"]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}]}]}]}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Effect","Uncurried"],"EffectFn5"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeVar","contents":"e"}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}]},null]},null]},null]},null]},null]},null]}},"sourceSpan":{"start":[158,1],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[159,63]}},{"children":[],"comments":null,"title":"mkEffectFn6","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["r",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["e",{"annotation":[],"tag":"ForAll","contents":["d",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"e"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"f"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Effect"],"Effect"]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}]}]}]}]}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Effect","Uncurried"],"EffectFn6"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeVar","contents":"e"}]},{"annotation":[],"tag":"TypeVar","contents":"f"}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}]},null]},null]},null]},null]},null]},null]},null]}},"sourceSpan":{"start":[160,1],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[161,70]}},{"children":[],"comments":null,"title":"mkEffectFn7","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["r",{"annotation":[],"tag":"ForAll","contents":["g",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["e",{"annotation":[],"tag":"ForAll","contents":["d",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"e"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"f"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"g"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Effect"],"Effect"]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}]}]}]}]}]}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Effect","Uncurried"],"EffectFn7"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeVar","contents":"e"}]},{"annotation":[],"tag":"TypeVar","contents":"f"}]},{"annotation":[],"tag":"TypeVar","contents":"g"}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}]},null]},null]},null]},null]},null]},null]},null]},null]}},"sourceSpan":{"start":[162,1],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[163,77]}},{"children":[],"comments":null,"title":"mkEffectFn8","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["r",{"annotation":[],"tag":"ForAll","contents":["h",{"annotation":[],"tag":"ForAll","contents":["g",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["e",{"annotation":[],"tag":"ForAll","contents":["d",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"e"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"f"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"g"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"h"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Effect"],"Effect"]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}]}]}]}]}]}]}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Effect","Uncurried"],"EffectFn8"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeVar","contents":"e"}]},{"annotation":[],"tag":"TypeVar","contents":"f"}]},{"annotation":[],"tag":"TypeVar","contents":"g"}]},{"annotation":[],"tag":"TypeVar","contents":"h"}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}]},null]},null]},null]},null]},null]},null]},null]},null]},null]}},"sourceSpan":{"start":[164,1],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[165,84]}},{"children":[],"comments":null,"title":"mkEffectFn9","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["r",{"annotation":[],"tag":"ForAll","contents":["i",{"annotation":[],"tag":"ForAll","contents":["h",{"annotation":[],"tag":"ForAll","contents":["g",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["e",{"annotation":[],"tag":"ForAll","contents":["d",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"e"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"f"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"g"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"h"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"i"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Effect"],"Effect"]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}]}]}]}]}]}]}]}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Effect","Uncurried"],"EffectFn9"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeVar","contents":"e"}]},{"annotation":[],"tag":"TypeVar","contents":"f"}]},{"annotation":[],"tag":"TypeVar","contents":"g"}]},{"annotation":[],"tag":"TypeVar","contents":"h"}]},{"annotation":[],"tag":"TypeVar","contents":"i"}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}]},null]},null]},null]},null]},null]},null]},null]},null]},null]},null]}},"sourceSpan":{"start":[166,1],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[167,91]}},{"children":[],"comments":null,"title":"mkEffectFn10","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["r",{"annotation":[],"tag":"ForAll","contents":["j",{"annotation":[],"tag":"ForAll","contents":["i",{"annotation":[],"tag":"ForAll","contents":["h",{"annotation":[],"tag":"ForAll","contents":["g",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["e",{"annotation":[],"tag":"ForAll","contents":["d",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"e"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"f"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"g"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"h"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"i"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"j"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Effect"],"Effect"]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}]}]}]}]}]}]}]}]}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Effect","Uncurried"],"EffectFn10"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeVar","contents":"e"}]},{"annotation":[],"tag":"TypeVar","contents":"f"}]},{"annotation":[],"tag":"TypeVar","contents":"g"}]},{"annotation":[],"tag":"TypeVar","contents":"h"}]},{"annotation":[],"tag":"TypeVar","contents":"i"}]},{"annotation":[],"tag":"TypeVar","contents":"j"}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}]},null]},null]},null]},null]},null]},null]},null]},null]},null]},null]},null]}},"sourceSpan":{"start":[168,1],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[169,99]}},{"children":[],"comments":null,"title":"runEffectFn1","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["r",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Effect","Uncurried"],"EffectFn1"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Effect"],"Effect"]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}]}]},null]},null]}},"sourceSpan":{"start":[171,1],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[172,33]}},{"children":[],"comments":null,"title":"runEffectFn2","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["r",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Effect","Uncurried"],"EffectFn2"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Effect"],"Effect"]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}]}]}]},null]},null]},null]}},"sourceSpan":{"start":[173,1],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[174,40]}},{"children":[],"comments":null,"title":"runEffectFn3","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["r",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Effect","Uncurried"],"EffectFn3"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Effect"],"Effect"]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}]}]}]}]},null]},null]},null]},null]}},"sourceSpan":{"start":[175,1],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[176,47]}},{"children":[],"comments":null,"title":"runEffectFn4","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["r",{"annotation":[],"tag":"ForAll","contents":["d",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Effect","Uncurried"],"EffectFn4"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Effect"],"Effect"]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}]}]}]}]}]},null]},null]},null]},null]},null]}},"sourceSpan":{"start":[177,1],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[178,54]}},{"children":[],"comments":null,"title":"runEffectFn5","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["r",{"annotation":[],"tag":"ForAll","contents":["e",{"annotation":[],"tag":"ForAll","contents":["d",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Effect","Uncurried"],"EffectFn5"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeVar","contents":"e"}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"e"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Effect"],"Effect"]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}]}]}]}]}]}]},null]},null]},null]},null]},null]},null]}},"sourceSpan":{"start":[179,1],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[180,61]}},{"children":[],"comments":null,"title":"runEffectFn6","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["r",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["e",{"annotation":[],"tag":"ForAll","contents":["d",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Effect","Uncurried"],"EffectFn6"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeVar","contents":"e"}]},{"annotation":[],"tag":"TypeVar","contents":"f"}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"e"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"f"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Effect"],"Effect"]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}]}]}]}]}]}]}]},null]},null]},null]},null]},null]},null]},null]}},"sourceSpan":{"start":[181,1],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[182,68]}},{"children":[],"comments":null,"title":"runEffectFn7","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["r",{"annotation":[],"tag":"ForAll","contents":["g",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["e",{"annotation":[],"tag":"ForAll","contents":["d",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Effect","Uncurried"],"EffectFn7"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeVar","contents":"e"}]},{"annotation":[],"tag":"TypeVar","contents":"f"}]},{"annotation":[],"tag":"TypeVar","contents":"g"}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"e"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"f"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"g"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Effect"],"Effect"]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}]}]}]}]}]}]}]}]},null]},null]},null]},null]},null]},null]},null]},null]}},"sourceSpan":{"start":[183,1],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[184,75]}},{"children":[],"comments":null,"title":"runEffectFn8","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["r",{"annotation":[],"tag":"ForAll","contents":["h",{"annotation":[],"tag":"ForAll","contents":["g",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["e",{"annotation":[],"tag":"ForAll","contents":["d",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Effect","Uncurried"],"EffectFn8"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeVar","contents":"e"}]},{"annotation":[],"tag":"TypeVar","contents":"f"}]},{"annotation":[],"tag":"TypeVar","contents":"g"}]},{"annotation":[],"tag":"TypeVar","contents":"h"}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"e"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"f"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"g"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"h"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Effect"],"Effect"]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}]}]}]}]}]}]}]}]}]},null]},null]},null]},null]},null]},null]},null]},null]},null]}},"sourceSpan":{"start":[185,1],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[186,82]}},{"children":[],"comments":null,"title":"runEffectFn9","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["r",{"annotation":[],"tag":"ForAll","contents":["i",{"annotation":[],"tag":"ForAll","contents":["h",{"annotation":[],"tag":"ForAll","contents":["g",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["e",{"annotation":[],"tag":"ForAll","contents":["d",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Effect","Uncurried"],"EffectFn9"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeVar","contents":"e"}]},{"annotation":[],"tag":"TypeVar","contents":"f"}]},{"annotation":[],"tag":"TypeVar","contents":"g"}]},{"annotation":[],"tag":"TypeVar","contents":"h"}]},{"annotation":[],"tag":"TypeVar","contents":"i"}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"e"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"f"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"g"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"h"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"i"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Effect"],"Effect"]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}]}]}]}]}]}]}]}]}]}]},null]},null]},null]},null]},null]},null]},null]},null]},null]},null]}},"sourceSpan":{"start":[187,1],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[188,89]}},{"children":[],"comments":null,"title":"runEffectFn10","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["r",{"annotation":[],"tag":"ForAll","contents":["j",{"annotation":[],"tag":"ForAll","contents":["i",{"annotation":[],"tag":"ForAll","contents":["h",{"annotation":[],"tag":"ForAll","contents":["g",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["e",{"annotation":[],"tag":"ForAll","contents":["d",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Effect","Uncurried"],"EffectFn10"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeVar","contents":"e"}]},{"annotation":[],"tag":"TypeVar","contents":"f"}]},{"annotation":[],"tag":"TypeVar","contents":"g"}]},{"annotation":[],"tag":"TypeVar","contents":"h"}]},{"annotation":[],"tag":"TypeVar","contents":"i"}]},{"annotation":[],"tag":"TypeVar","contents":"j"}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"e"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"f"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"g"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"h"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"i"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"j"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Effect"],"Effect"]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}]}]}]}]}]}]}]}]}]}]}]},null]},null]},null]},null]},null]},null]},null]},null]},null]},null]},null]}},"sourceSpan":{"start":[189,1],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[190,97]}}]}
+{"comments":"This module defines types for effectful uncurried functions, as well as\nfunctions for converting back and forth between them.\n\nThis makes it possible to give a PureScript type to JavaScript functions\nsuch as this one:\n\n```javascript\nfunction logMessage(level, message) {\n  console.log(level + \": \" + message);\n}\n```\n\nIn particular, note that `logMessage` performs effects immediately after\nreceiving all of its parameters, so giving it the type `Data.Function.Fn2\nString String Unit`, while convenient, would effectively be a lie.\n\nOne way to handle this would be to convert the function into the normal\nPureScript form (namely, a curried function returning an Effect action),\nand performing the marshalling in JavaScript, in the FFI module, like this:\n\n```purescript\n-- In the PureScript file:\nforeign import logMessage :: String -> String -> Effect Unit\n```\n\n```javascript\n// In the FFI file:\nexports.logMessage = function(level) {\n  return function(message) {\n    return function() {\n      logMessage(level, message);\n    };\n  };\n};\n```\n\nThis method, unfortunately, turns out to be both tiresome and error-prone.\nThis module offers an alternative solution. By providing you with:\n\n * the ability to give the real `logMessage` function a PureScript type,\n   and\n * functions for converting between this form and the normal PureScript\n   form,\n\nthe FFI boilerplate is no longer needed. The previous example becomes:\n\n```purescript\n-- In the PureScript file:\nforeign import logMessageImpl :: EffectFn2 String String Unit\n```\n\n```javascript\n// In the FFI file:\nexports.logMessageImpl = logMessage\n```\n\nYou can then use `runEffectFn2` to provide a nicer version:\n\n```purescript\nlogMessage :: String -> String -> Effect Unit\nlogMessage = runEffectFn2 logMessageImpl\n```\n\n(note that this has the same type as the original `logMessage`).\n\nEffectively, we have reduced the risk of errors by moving as much code into\nPureScript as possible, so that we can leverage the type system. Hopefully,\nthis is a little less tiresome too.\n\nHere's a slightly more advanced example. Here, because we are using\ncallbacks, we need to use `mkEffectFn{N}` as well.\n\nSuppose our `logMessage` changes so that it sometimes sends details of the\nmessage to some external server, and in those cases, we want the resulting\n`HttpResponse` (for whatever reason).\n\n```javascript\nfunction logMessage(level, message, callback) {\n  console.log(level + \": \" + message);\n  if (level > LogLevel.WARN) {\n    LogAggregatorService.post(\"/logs\", {\n      level: level,\n      message: message\n    }, callback);\n  } else {\n    callback(null);\n  }\n}\n```\n\nThe import then looks like this:\n```purescript\nforeign import logMessageImpl\n EffectFn3\n   String\n   String\n   (EffectFn1 (Nullable HttpResponse) Unit)\n   Unit\n```\n\nAnd, as before, the FFI file is extremely simple:\n\n```javascript\nexports.logMessageImpl = logMessage\n```\n\nFinally, we use `runEffectFn{N}` and `mkEffectFn{N}` for a more comfortable\nPureScript version:\n\n```purescript\nlogMessage ::\n  String ->\n  String ->\n  (Nullable HttpResponse -> Effect Unit) ->\n  Effect Unit\nlogMessage level message callback =\n  runEffectFn3 logMessageImpl level message (mkEffectFn1 callback)\n```\n\nThe general naming scheme for functions and types in this module is as\nfollows:\n\n* `EffectFn{N}` means, an uncurried function which accepts N arguments and\n  performs some effects. The first N arguments are the actual function's\n  argument. The last type argument is the return type.\n* `runEffectFn{N}` takes an `EffectFn` of N arguments, and converts it into\n  the normal PureScript form: a curried function which returns an Effect\n  action.\n* `mkEffectFn{N}` is the inverse of `runEffectFn{N}`. It can be useful for\n  callbacks.\n\n","declarations":[{"children":[{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"r","tag":"TypeVar"}],"constraintClass":[["Data","Semigroup"],"Semigroup"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Semigroup"],"Semigroup"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Effect","Uncurried"],"EffectFn1"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"r","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[229,74],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","start":[228,1]},"title":"semigroupEffectFn1"},{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"r","tag":"TypeVar"}],"constraintClass":[["Data","Monoid"],"Monoid"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Monoid"],"Monoid"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Effect","Uncurried"],"EffectFn1"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"r","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[259,36],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","start":[258,1]},"title":"monoidEffectFn1"}],"comments":null,"info":{"dataDeclType":"data","declType":"data","roles":["Representational","Representational"],"typeArguments":[["t0",null],["t1",null]]},"kind":null,"sourceSpan":{"end":[138,54],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","start":[138,1]},"title":"EffectFn1"},{"children":[{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"r","tag":"TypeVar"}],"constraintClass":[["Data","Semigroup"],"Semigroup"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Semigroup"],"Semigroup"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Effect","Uncurried"],"EffectFn2"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"r","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[232,80],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","start":[231,1]},"title":"semigroupEffectFn2"},{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"r","tag":"TypeVar"}],"constraintClass":[["Data","Monoid"],"Monoid"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Monoid"],"Monoid"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Effect","Uncurried"],"EffectFn2"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"r","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[262,38],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","start":[261,1]},"title":"monoidEffectFn2"}],"comments":null,"info":{"dataDeclType":"data","declType":"data","roles":["Representational","Representational","Representational"],"typeArguments":[["t0",null],["t1",null],["t2",null]]},"kind":null,"sourceSpan":{"end":[142,62],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","start":[142,1]},"title":"EffectFn2"},{"children":[{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"r","tag":"TypeVar"}],"constraintClass":[["Data","Semigroup"],"Semigroup"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Semigroup"],"Semigroup"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Effect","Uncurried"],"EffectFn3"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"c","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"r","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[235,86],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","start":[234,1]},"title":"semigroupEffectFn3"},{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"r","tag":"TypeVar"}],"constraintClass":[["Data","Monoid"],"Monoid"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Monoid"],"Monoid"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Effect","Uncurried"],"EffectFn3"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"c","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"r","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[265,40],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","start":[264,1]},"title":"monoidEffectFn3"}],"comments":null,"info":{"dataDeclType":"data","declType":"data","roles":["Representational","Representational","Representational","Representational"],"typeArguments":[["t0",null],["t1",null],["t2",null],["t3",null]]},"kind":null,"sourceSpan":{"end":[146,70],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","start":[146,1]},"title":"EffectFn3"},{"children":[{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"r","tag":"TypeVar"}],"constraintClass":[["Data","Semigroup"],"Semigroup"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Semigroup"],"Semigroup"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Effect","Uncurried"],"EffectFn4"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"c","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"d","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"r","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[238,92],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","start":[237,1]},"title":"semigroupEffectFn4"},{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"r","tag":"TypeVar"}],"constraintClass":[["Data","Monoid"],"Monoid"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Monoid"],"Monoid"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Effect","Uncurried"],"EffectFn4"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"c","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"d","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"r","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[268,42],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","start":[267,1]},"title":"monoidEffectFn4"}],"comments":null,"info":{"dataDeclType":"data","declType":"data","roles":["Representational","Representational","Representational","Representational","Representational"],"typeArguments":[["t0",null],["t1",null],["t2",null],["t3",null],["t4",null]]},"kind":null,"sourceSpan":{"end":[150,78],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","start":[150,1]},"title":"EffectFn4"},{"children":[{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"r","tag":"TypeVar"}],"constraintClass":[["Data","Semigroup"],"Semigroup"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Semigroup"],"Semigroup"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Effect","Uncurried"],"EffectFn5"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"c","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"d","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"e","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"r","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[241,98],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","start":[240,1]},"title":"semigroupEffectFn5"},{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"r","tag":"TypeVar"}],"constraintClass":[["Data","Monoid"],"Monoid"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Monoid"],"Monoid"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Effect","Uncurried"],"EffectFn5"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"c","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"d","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"e","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"r","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[271,44],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","start":[270,1]},"title":"monoidEffectFn5"}],"comments":null,"info":{"dataDeclType":"data","declType":"data","roles":["Representational","Representational","Representational","Representational","Representational","Representational"],"typeArguments":[["t0",null],["t1",null],["t2",null],["t3",null],["t4",null],["t5",null]]},"kind":null,"sourceSpan":{"end":[154,86],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","start":[154,1]},"title":"EffectFn5"},{"children":[{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"r","tag":"TypeVar"}],"constraintClass":[["Data","Semigroup"],"Semigroup"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Semigroup"],"Semigroup"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Effect","Uncurried"],"EffectFn6"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"c","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"d","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"e","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"f","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"r","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[244,104],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","start":[243,1]},"title":"semigroupEffectFn6"},{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"r","tag":"TypeVar"}],"constraintClass":[["Data","Monoid"],"Monoid"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Monoid"],"Monoid"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Effect","Uncurried"],"EffectFn6"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"c","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"d","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"e","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"f","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"r","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[274,46],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","start":[273,1]},"title":"monoidEffectFn6"}],"comments":null,"info":{"dataDeclType":"data","declType":"data","roles":["Representational","Representational","Representational","Representational","Representational","Representational","Representational"],"typeArguments":[["t0",null],["t1",null],["t2",null],["t3",null],["t4",null],["t5",null],["t6",null]]},"kind":null,"sourceSpan":{"end":[158,94],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","start":[158,1]},"title":"EffectFn6"},{"children":[{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"r","tag":"TypeVar"}],"constraintClass":[["Data","Semigroup"],"Semigroup"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Semigroup"],"Semigroup"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Effect","Uncurried"],"EffectFn7"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"c","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"d","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"e","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"f","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"g","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"r","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[247,110],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","start":[246,1]},"title":"semigroupEffectFn7"},{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"r","tag":"TypeVar"}],"constraintClass":[["Data","Monoid"],"Monoid"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Monoid"],"Monoid"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Effect","Uncurried"],"EffectFn7"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"c","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"d","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"e","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"f","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"g","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"r","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[277,48],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","start":[276,1]},"title":"monoidEffectFn7"}],"comments":null,"info":{"dataDeclType":"data","declType":"data","roles":["Representational","Representational","Representational","Representational","Representational","Representational","Representational","Representational"],"typeArguments":[["t0",null],["t1",null],["t2",null],["t3",null],["t4",null],["t5",null],["t6",null],["t7",null]]},"kind":null,"sourceSpan":{"end":[162,102],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","start":[162,1]},"title":"EffectFn7"},{"children":[{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"r","tag":"TypeVar"}],"constraintClass":[["Data","Semigroup"],"Semigroup"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Semigroup"],"Semigroup"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Effect","Uncurried"],"EffectFn8"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"c","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"d","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"e","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"f","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"g","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"h","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"r","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[250,116],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","start":[249,1]},"title":"semigroupEffectFn8"},{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"r","tag":"TypeVar"}],"constraintClass":[["Data","Monoid"],"Monoid"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Monoid"],"Monoid"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Effect","Uncurried"],"EffectFn8"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"c","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"d","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"e","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"f","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"g","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"h","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"r","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[280,50],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","start":[279,1]},"title":"monoidEffectFn8"}],"comments":null,"info":{"dataDeclType":"data","declType":"data","roles":["Representational","Representational","Representational","Representational","Representational","Representational","Representational","Representational","Representational"],"typeArguments":[["t0",null],["t1",null],["t2",null],["t3",null],["t4",null],["t5",null],["t6",null],["t7",null],["t8",null]]},"kind":null,"sourceSpan":{"end":[166,110],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","start":[166,1]},"title":"EffectFn8"},{"children":[{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"r","tag":"TypeVar"}],"constraintClass":[["Data","Semigroup"],"Semigroup"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Semigroup"],"Semigroup"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Effect","Uncurried"],"EffectFn9"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"c","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"d","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"e","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"f","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"g","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"h","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"i","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"r","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[253,122],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","start":[252,1]},"title":"semigroupEffectFn9"},{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"r","tag":"TypeVar"}],"constraintClass":[["Data","Monoid"],"Monoid"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Monoid"],"Monoid"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Effect","Uncurried"],"EffectFn9"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"c","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"d","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"e","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"f","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"g","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"h","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"i","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"r","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[283,52],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","start":[282,1]},"title":"monoidEffectFn9"}],"comments":null,"info":{"dataDeclType":"data","declType":"data","roles":["Representational","Representational","Representational","Representational","Representational","Representational","Representational","Representational","Representational","Representational"],"typeArguments":[["t0",null],["t1",null],["t2",null],["t3",null],["t4",null],["t5",null],["t6",null],["t7",null],["t8",null],["t9",null]]},"kind":null,"sourceSpan":{"end":[170,118],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","start":[170,1]},"title":"EffectFn9"},{"children":[{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"r","tag":"TypeVar"}],"constraintClass":[["Data","Semigroup"],"Semigroup"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Semigroup"],"Semigroup"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Effect","Uncurried"],"EffectFn10"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"c","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"d","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"e","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"f","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"g","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"h","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"i","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"j","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"r","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[256,131],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","start":[255,1]},"title":"semigroupEffectFn10"},{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"r","tag":"TypeVar"}],"constraintClass":[["Data","Monoid"],"Monoid"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Monoid"],"Monoid"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Effect","Uncurried"],"EffectFn10"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"c","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"d","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"e","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"f","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"g","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"h","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"i","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"j","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"r","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[286,55],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","start":[285,1]},"title":"monoidEffectFn10"}],"comments":null,"info":{"dataDeclType":"data","declType":"data","roles":["Representational","Representational","Representational","Representational","Representational","Representational","Representational","Representational","Representational","Representational","Representational"],"typeArguments":[["t0",null],["t1",null],["t2",null],["t3",null],["t4",null],["t5",null],["t6",null],["t7",null],["t8",null],["t9",null],["t10",null]]},"kind":null,"sourceSpan":{"end":[174,127],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","start":[174,1]},"title":"EffectFn10"},{"children":[],"comments":null,"info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"r","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Effect"],"Effect"],"tag":"TypeConstructor"},{"annotation":[],"contents":"r","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},"tag":"ParensInType"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Effect","Uncurried"],"EffectFn1"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"r","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[179,35],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","start":[178,1]},"title":"mkEffectFn1"},{"children":[],"comments":null,"info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"b","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"r","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Effect"],"Effect"],"tag":"TypeConstructor"},{"annotation":[],"contents":"r","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"},"tag":"ParensInType"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Effect","Uncurried"],"EffectFn2"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"r","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[181,42],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","start":[180,1]},"title":"mkEffectFn2"},{"children":[],"comments":null,"info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"b","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"c","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"r","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"c","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Effect"],"Effect"],"tag":"TypeConstructor"},{"annotation":[],"contents":"r","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"},"tag":"ParensInType"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Effect","Uncurried"],"EffectFn3"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"c","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"r","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[183,49],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","start":[182,1]},"title":"mkEffectFn3"},{"children":[],"comments":null,"info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"b","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"c","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"d","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"r","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"c","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"d","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Effect"],"Effect"],"tag":"TypeConstructor"},{"annotation":[],"contents":"r","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"},"tag":"ParensInType"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Effect","Uncurried"],"EffectFn4"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"c","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"d","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"r","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[185,56],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","start":[184,1]},"title":"mkEffectFn4"},{"children":[],"comments":null,"info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"b","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"c","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"d","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"e","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"r","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"c","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"d","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"e","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Effect"],"Effect"],"tag":"TypeConstructor"},{"annotation":[],"contents":"r","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"},"tag":"ParensInType"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Effect","Uncurried"],"EffectFn5"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"c","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"d","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"e","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"r","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[187,63],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","start":[186,1]},"title":"mkEffectFn5"},{"children":[],"comments":null,"info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"b","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"c","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"d","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"e","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"f","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"r","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"c","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"d","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"e","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"f","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Effect"],"Effect"],"tag":"TypeConstructor"},{"annotation":[],"contents":"r","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"},"tag":"ParensInType"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Effect","Uncurried"],"EffectFn6"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"c","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"d","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"e","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"f","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"r","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[189,70],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","start":[188,1]},"title":"mkEffectFn6"},{"children":[],"comments":null,"info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"b","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"c","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"d","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"e","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"f","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"g","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"r","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"c","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"d","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"e","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"f","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"g","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Effect"],"Effect"],"tag":"TypeConstructor"},{"annotation":[],"contents":"r","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"},"tag":"ParensInType"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Effect","Uncurried"],"EffectFn7"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"c","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"d","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"e","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"f","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"g","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"r","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[191,77],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","start":[190,1]},"title":"mkEffectFn7"},{"children":[],"comments":null,"info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"b","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"c","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"d","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"e","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"f","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"g","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"h","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"r","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"c","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"d","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"e","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"f","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"g","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"h","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Effect"],"Effect"],"tag":"TypeConstructor"},{"annotation":[],"contents":"r","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"},"tag":"ParensInType"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Effect","Uncurried"],"EffectFn8"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"c","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"d","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"e","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"f","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"g","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"h","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"r","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[193,84],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","start":[192,1]},"title":"mkEffectFn8"},{"children":[],"comments":null,"info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"b","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"c","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"d","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"e","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"f","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"g","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"h","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"i","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"r","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"c","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"d","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"e","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"f","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"g","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"h","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"i","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Effect"],"Effect"],"tag":"TypeConstructor"},{"annotation":[],"contents":"r","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"},"tag":"ParensInType"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Effect","Uncurried"],"EffectFn9"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"c","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"d","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"e","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"f","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"g","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"h","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"i","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"r","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[195,91],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","start":[194,1]},"title":"mkEffectFn9"},{"children":[],"comments":null,"info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"b","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"c","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"d","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"e","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"f","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"g","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"h","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"i","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"j","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"r","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"c","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"d","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"e","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"f","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"g","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"h","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"i","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"j","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Effect"],"Effect"],"tag":"TypeConstructor"},{"annotation":[],"contents":"r","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"},"tag":"ParensInType"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Effect","Uncurried"],"EffectFn10"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"c","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"d","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"e","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"f","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"g","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"h","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"i","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"j","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"r","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[197,99],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","start":[196,1]},"title":"mkEffectFn10"},{"children":[],"comments":null,"info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"r","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Effect","Uncurried"],"EffectFn1"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"r","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Effect"],"Effect"],"tag":"TypeConstructor"},{"annotation":[],"contents":"r","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[200,33],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","start":[199,1]},"title":"runEffectFn1"},{"children":[],"comments":null,"info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"b","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"r","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Effect","Uncurried"],"EffectFn2"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"r","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Effect"],"Effect"],"tag":"TypeConstructor"},{"annotation":[],"contents":"r","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[202,40],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","start":[201,1]},"title":"runEffectFn2"},{"children":[],"comments":null,"info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"b","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"c","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"r","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Effect","Uncurried"],"EffectFn3"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"c","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"r","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"c","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Effect"],"Effect"],"tag":"TypeConstructor"},{"annotation":[],"contents":"r","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[204,47],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","start":[203,1]},"title":"runEffectFn3"},{"children":[],"comments":null,"info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"b","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"c","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"d","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"r","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Effect","Uncurried"],"EffectFn4"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"c","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"d","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"r","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"c","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"d","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Effect"],"Effect"],"tag":"TypeConstructor"},{"annotation":[],"contents":"r","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[206,54],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","start":[205,1]},"title":"runEffectFn4"},{"children":[],"comments":null,"info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"b","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"c","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"d","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"e","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"r","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Effect","Uncurried"],"EffectFn5"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"c","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"d","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"e","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"r","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"c","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"d","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"e","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Effect"],"Effect"],"tag":"TypeConstructor"},{"annotation":[],"contents":"r","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[208,61],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","start":[207,1]},"title":"runEffectFn5"},{"children":[],"comments":null,"info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"b","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"c","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"d","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"e","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"f","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"r","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Effect","Uncurried"],"EffectFn6"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"c","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"d","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"e","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"f","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"r","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"c","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"d","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"e","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"f","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Effect"],"Effect"],"tag":"TypeConstructor"},{"annotation":[],"contents":"r","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[210,68],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","start":[209,1]},"title":"runEffectFn6"},{"children":[],"comments":null,"info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"b","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"c","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"d","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"e","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"f","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"g","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"r","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Effect","Uncurried"],"EffectFn7"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"c","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"d","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"e","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"f","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"g","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"r","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"c","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"d","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"e","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"f","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"g","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Effect"],"Effect"],"tag":"TypeConstructor"},{"annotation":[],"contents":"r","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[212,75],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","start":[211,1]},"title":"runEffectFn7"},{"children":[],"comments":null,"info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"b","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"c","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"d","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"e","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"f","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"g","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"h","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"r","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Effect","Uncurried"],"EffectFn8"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"c","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"d","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"e","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"f","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"g","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"h","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"r","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"c","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"d","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"e","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"f","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"g","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"h","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Effect"],"Effect"],"tag":"TypeConstructor"},{"annotation":[],"contents":"r","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[214,82],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","start":[213,1]},"title":"runEffectFn8"},{"children":[],"comments":null,"info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"b","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"c","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"d","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"e","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"f","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"g","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"h","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"i","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"r","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Effect","Uncurried"],"EffectFn9"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"c","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"d","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"e","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"f","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"g","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"h","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"i","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"r","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"c","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"d","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"e","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"f","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"g","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"h","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"i","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Effect"],"Effect"],"tag":"TypeConstructor"},{"annotation":[],"contents":"r","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[216,89],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","start":[215,1]},"title":"runEffectFn9"},{"children":[],"comments":null,"info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"b","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"c","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"d","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"e","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"f","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"g","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"h","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"i","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"j","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"r","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Effect","Uncurried"],"EffectFn10"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"c","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"d","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"e","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"f","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"g","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"h","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"i","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"j","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"r","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"c","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"d","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"e","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"f","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"g","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"h","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"i","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"j","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Effect"],"Effect"],"tag":"TypeConstructor"},{"annotation":[],"contents":"r","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[218,97],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","start":[217,1]},"title":"runEffectFn10"}],"name":"Effect.Uncurried","reExports":[]}
diff --git a/tests/purs/publish/basic-example/output/Effect.Uncurried/externs.json b/tests/purs/publish/basic-example/output/Effect.Uncurried/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Effect.Uncurried/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Effect","Uncurried"],"efExports":[{"TypeRef":[{"start":[135,1],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[190,97]},"EffectFn1",[]]},{"TypeRef":[{"start":[135,1],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[190,97]},"EffectFn2",[]]},{"TypeRef":[{"start":[135,1],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[190,97]},"EffectFn3",[]]},{"TypeRef":[{"start":[135,1],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[190,97]},"EffectFn4",[]]},{"TypeRef":[{"start":[135,1],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[190,97]},"EffectFn5",[]]},{"TypeRef":[{"start":[135,1],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[190,97]},"EffectFn6",[]]},{"TypeRef":[{"start":[135,1],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[190,97]},"EffectFn7",[]]},{"TypeRef":[{"start":[135,1],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[190,97]},"EffectFn8",[]]},{"TypeRef":[{"start":[135,1],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[190,97]},"EffectFn9",[]]},{"TypeRef":[{"start":[135,1],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[190,97]},"EffectFn10",[]]},{"ValueRef":[{"start":[135,1],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[190,97]},{"Ident":"mkEffectFn1"}]},{"ValueRef":[{"start":[135,1],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[190,97]},{"Ident":"mkEffectFn2"}]},{"ValueRef":[{"start":[135,1],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[190,97]},{"Ident":"mkEffectFn3"}]},{"ValueRef":[{"start":[135,1],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[190,97]},{"Ident":"mkEffectFn4"}]},{"ValueRef":[{"start":[135,1],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[190,97]},{"Ident":"mkEffectFn5"}]},{"ValueRef":[{"start":[135,1],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[190,97]},{"Ident":"mkEffectFn6"}]},{"ValueRef":[{"start":[135,1],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[190,97]},{"Ident":"mkEffectFn7"}]},{"ValueRef":[{"start":[135,1],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[190,97]},{"Ident":"mkEffectFn8"}]},{"ValueRef":[{"start":[135,1],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[190,97]},{"Ident":"mkEffectFn9"}]},{"ValueRef":[{"start":[135,1],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[190,97]},{"Ident":"mkEffectFn10"}]},{"ValueRef":[{"start":[135,1],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[190,97]},{"Ident":"runEffectFn1"}]},{"ValueRef":[{"start":[135,1],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[190,97]},{"Ident":"runEffectFn2"}]},{"ValueRef":[{"start":[135,1],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[190,97]},{"Ident":"runEffectFn3"}]},{"ValueRef":[{"start":[135,1],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[190,97]},{"Ident":"runEffectFn4"}]},{"ValueRef":[{"start":[135,1],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[190,97]},{"Ident":"runEffectFn5"}]},{"ValueRef":[{"start":[135,1],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[190,97]},{"Ident":"runEffectFn6"}]},{"ValueRef":[{"start":[135,1],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[190,97]},{"Ident":"runEffectFn7"}]},{"ValueRef":[{"start":[135,1],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[190,97]},{"Ident":"runEffectFn8"}]},{"ValueRef":[{"start":[135,1],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[190,97]},{"Ident":"runEffectFn9"}]},{"ValueRef":[{"start":[135,1],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[190,97]},{"Ident":"runEffectFn10"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Effect"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[137,16],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[137,22]},"Effect",[]]}]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDType":{"edTypeName":"EffectFn1","edTypeKind":{"annotation":[{"start":[139,34],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[139,54]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[139,34],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[139,38]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[139,42],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[139,54]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[139,42],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[139,46]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[139,50],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[139,54]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]},"edTypeDeclarationKind":"ExternData"}},{"EDType":{"edTypeName":"EffectFn2","edTypeKind":{"annotation":[{"start":[140,34],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[140,62]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[140,34],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[140,38]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[140,42],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[140,62]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[140,42],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[140,46]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[140,50],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[140,62]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[140,50],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[140,54]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[140,58],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[140,62]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]}]},"edTypeDeclarationKind":"ExternData"}},{"EDType":{"edTypeName":"EffectFn3","edTypeKind":{"annotation":[{"start":[141,34],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[141,70]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[141,34],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[141,38]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[141,42],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[141,70]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[141,42],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[141,46]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[141,50],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[141,70]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[141,50],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[141,54]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[141,58],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[141,70]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[141,58],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[141,62]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[141,66],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[141,70]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]}]}]},"edTypeDeclarationKind":"ExternData"}},{"EDType":{"edTypeName":"EffectFn4","edTypeKind":{"annotation":[{"start":[142,34],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[142,78]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[142,34],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[142,38]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[142,42],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[142,78]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[142,42],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[142,46]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[142,50],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[142,78]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[142,50],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[142,54]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[142,58],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[142,78]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[142,58],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[142,62]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[142,66],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[142,78]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[142,66],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[142,70]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[142,74],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[142,78]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]}]}]}]},"edTypeDeclarationKind":"ExternData"}},{"EDType":{"edTypeName":"EffectFn5","edTypeKind":{"annotation":[{"start":[143,34],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[143,86]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[143,34],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[143,38]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[143,42],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[143,86]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[143,42],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[143,46]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[143,50],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[143,86]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[143,50],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[143,54]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[143,58],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[143,86]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[143,58],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[143,62]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[143,66],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[143,86]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[143,66],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[143,70]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[143,74],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[143,86]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[143,74],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[143,78]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[143,82],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[143,86]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]}]}]}]}]},"edTypeDeclarationKind":"ExternData"}},{"EDType":{"edTypeName":"EffectFn6","edTypeKind":{"annotation":[{"start":[144,34],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[144,94]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[144,34],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[144,38]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[144,42],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[144,94]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[144,42],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[144,46]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[144,50],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[144,94]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[144,50],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[144,54]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[144,58],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[144,94]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[144,58],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[144,62]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[144,66],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[144,94]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[144,66],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[144,70]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[144,74],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[144,94]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[144,74],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[144,78]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[144,82],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[144,94]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[144,82],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[144,86]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[144,90],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[144,94]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]}]}]}]}]}]},"edTypeDeclarationKind":"ExternData"}},{"EDType":{"edTypeName":"EffectFn7","edTypeKind":{"annotation":[{"start":[145,34],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[145,102]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[145,34],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[145,38]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[145,42],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[145,102]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[145,42],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[145,46]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[145,50],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[145,102]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[145,50],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[145,54]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[145,58],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[145,102]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[145,58],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[145,62]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[145,66],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[145,102]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[145,66],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[145,70]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[145,74],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[145,102]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[145,74],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[145,78]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[145,82],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[145,102]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[145,82],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[145,86]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[145,90],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[145,102]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[145,90],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[145,94]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[145,98],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[145,102]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]}]}]}]}]}]}]},"edTypeDeclarationKind":"ExternData"}},{"EDType":{"edTypeName":"EffectFn8","edTypeKind":{"annotation":[{"start":[146,34],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[146,110]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[146,34],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[146,38]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[146,42],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[146,110]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[146,42],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[146,46]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[146,50],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[146,110]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[146,50],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[146,54]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[146,58],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[146,110]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[146,58],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[146,62]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[146,66],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[146,110]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[146,66],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[146,70]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[146,74],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[146,110]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[146,74],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[146,78]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[146,82],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[146,110]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[146,82],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[146,86]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[146,90],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[146,110]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[146,90],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[146,94]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[146,98],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[146,110]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[146,98],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[146,102]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[146,106],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[146,110]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]}]}]}]}]}]}]}]},"edTypeDeclarationKind":"ExternData"}},{"EDType":{"edTypeName":"EffectFn9","edTypeKind":{"annotation":[{"start":[147,34],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[147,118]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[147,34],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[147,38]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[147,42],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[147,118]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[147,42],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[147,46]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[147,50],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[147,118]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[147,50],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[147,54]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[147,58],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[147,118]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[147,58],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[147,62]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[147,66],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[147,118]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[147,66],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[147,70]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[147,74],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[147,118]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[147,74],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[147,78]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[147,82],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[147,118]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[147,82],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[147,86]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[147,90],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[147,118]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[147,90],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[147,94]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[147,98],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[147,118]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[147,98],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[147,102]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[147,106],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[147,118]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[147,106],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[147,110]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[147,114],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[147,118]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]}]}]}]}]}]}]}]}]},"edTypeDeclarationKind":"ExternData"}},{"EDType":{"edTypeName":"EffectFn10","edTypeKind":{"annotation":[{"start":[148,35],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[148,127]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[148,35],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[148,39]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[148,43],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[148,127]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[148,43],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[148,47]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[148,51],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[148,127]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[148,51],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[148,55]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[148,59],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[148,127]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[148,59],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[148,63]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[148,67],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[148,127]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[148,67],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[148,71]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[148,75],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[148,127]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[148,75],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[148,79]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[148,83],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[148,127]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[148,83],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[148,87]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[148,91],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[148,127]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[148,91],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[148,95]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[148,99],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[148,127]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[148,99],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[148,103]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[148,107],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[148,127]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[148,107],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[148,111]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[148,115],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[148,127]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[148,115],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[148,119]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[148,123],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[148,127]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]}]}]}]}]}]}]}]}]}]},"edTypeDeclarationKind":"ExternData"}},{"EDValue":{"edValueName":{"Ident":"mkEffectFn1"},"edValueType":{"annotation":[{"start":[150,31],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[151,35]},[]],"tag":"ForAll","contents":["r",{"annotation":[{"start":[150,38],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[151,35]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[151,3],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[151,35]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[151,3],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[151,35]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[151,19],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[151,21]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[151,4],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[151,17]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[151,4],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[151,17]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[151,6],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[151,8]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[151,4],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[151,5]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[151,9],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[151,17]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[151,9],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[151,15]},[]],"tag":"TypeConstructor","contents":[["Effect"],"Effect"]},{"annotation":[{"start":[151,16],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[151,17]},[]],"tag":"TypeVar","contents":"r"}]}]}]},{"annotation":[{"start":[151,22],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[151,35]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[151,22],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[151,33]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[151,22],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[151,31]},[]],"tag":"TypeConstructor","contents":[["Effect","Uncurried"],"EffectFn1"]},{"annotation":[{"start":[151,32],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[151,33]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[151,34],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[151,35]},[]],"tag":"TypeVar","contents":"r"}]}]},null]},null]}}},{"EDValue":{"edValueName":{"Ident":"mkEffectFn2"},"edValueType":{"annotation":[{"start":[152,31],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[153,42]},[]],"tag":"ForAll","contents":["r",{"annotation":[{"start":[152,38],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[153,42]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[152,38],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[153,42]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[153,3],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[153,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[153,3],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[153,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[153,24],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[153,26]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[153,4],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[153,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[153,4],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[153,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[153,6],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[153,8]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[153,4],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[153,5]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[153,9],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[153,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[153,9],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[153,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[153,11],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[153,13]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[153,9],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[153,10]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[153,14],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[153,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[153,14],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[153,20]},[]],"tag":"TypeConstructor","contents":[["Effect"],"Effect"]},{"annotation":[{"start":[153,21],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[153,22]},[]],"tag":"TypeVar","contents":"r"}]}]}]}]},{"annotation":[{"start":[153,27],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[153,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[153,27],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[153,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[153,27],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[153,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[153,27],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[153,36]},[]],"tag":"TypeConstructor","contents":[["Effect","Uncurried"],"EffectFn2"]},{"annotation":[{"start":[153,37],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[153,38]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[153,39],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[153,40]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[153,41],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[153,42]},[]],"tag":"TypeVar","contents":"r"}]}]},null]},null]},null]}}},{"EDValue":{"edValueName":{"Ident":"mkEffectFn3"},"edValueType":{"annotation":[{"start":[154,31],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[155,49]},[]],"tag":"ForAll","contents":["r",{"annotation":[{"start":[154,38],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[155,49]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[154,38],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[155,49]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[154,38],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[155,49]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[155,3],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[155,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[155,3],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[155,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[155,29],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[155,31]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[155,4],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[155,27]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[155,4],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[155,27]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[155,6],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[155,8]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[155,4],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[155,5]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[155,9],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[155,27]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[155,9],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[155,27]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[155,11],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[155,13]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[155,9],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[155,10]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[155,14],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[155,27]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[155,14],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[155,27]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[155,16],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[155,18]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[155,14],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[155,15]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[155,19],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[155,27]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[155,19],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[155,25]},[]],"tag":"TypeConstructor","contents":[["Effect"],"Effect"]},{"annotation":[{"start":[155,26],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[155,27]},[]],"tag":"TypeVar","contents":"r"}]}]}]}]}]},{"annotation":[{"start":[155,32],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[155,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[155,32],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[155,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[155,32],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[155,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[155,32],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[155,43]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[155,32],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[155,41]},[]],"tag":"TypeConstructor","contents":[["Effect","Uncurried"],"EffectFn3"]},{"annotation":[{"start":[155,42],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[155,43]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[155,44],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[155,45]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[155,46],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[155,47]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[155,48],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[155,49]},[]],"tag":"TypeVar","contents":"r"}]}]},null]},null]},null]},null]}}},{"EDValue":{"edValueName":{"Ident":"mkEffectFn4"},"edValueType":{"annotation":[{"start":[156,31],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[157,56]},[]],"tag":"ForAll","contents":["r",{"annotation":[{"start":[156,38],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[157,56]},[]],"tag":"ForAll","contents":["d",{"annotation":[{"start":[156,38],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[157,56]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[156,38],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[157,56]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[156,38],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[157,56]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[157,3],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[157,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[157,3],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[157,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[157,34],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[157,36]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[157,4],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[157,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[157,4],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[157,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[157,6],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[157,8]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[157,4],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[157,5]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[157,9],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[157,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[157,9],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[157,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[157,11],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[157,13]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[157,9],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[157,10]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[157,14],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[157,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[157,14],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[157,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[157,16],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[157,18]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[157,14],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[157,15]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[157,19],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[157,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[157,19],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[157,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[157,21],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[157,23]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[157,19],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[157,20]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[157,24],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[157,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[157,24],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[157,30]},[]],"tag":"TypeConstructor","contents":[["Effect"],"Effect"]},{"annotation":[{"start":[157,31],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[157,32]},[]],"tag":"TypeVar","contents":"r"}]}]}]}]}]}]},{"annotation":[{"start":[157,37],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[157,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[157,37],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[157,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[157,37],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[157,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[157,37],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[157,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[157,37],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[157,48]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[157,37],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[157,46]},[]],"tag":"TypeConstructor","contents":[["Effect","Uncurried"],"EffectFn4"]},{"annotation":[{"start":[157,47],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[157,48]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[157,49],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[157,50]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[157,51],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[157,52]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[157,53],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[157,54]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[157,55],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[157,56]},[]],"tag":"TypeVar","contents":"r"}]}]},null]},null]},null]},null]},null]}}},{"EDValue":{"edValueName":{"Ident":"mkEffectFn5"},"edValueType":{"annotation":[{"start":[158,31],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[159,63]},[]],"tag":"ForAll","contents":["r",{"annotation":[{"start":[158,38],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[159,63]},[]],"tag":"ForAll","contents":["e",{"annotation":[{"start":[158,38],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[159,63]},[]],"tag":"ForAll","contents":["d",{"annotation":[{"start":[158,38],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[159,63]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[158,38],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[159,63]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[158,38],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[159,63]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[159,3],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[159,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[159,3],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[159,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[159,39],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[159,41]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[159,4],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[159,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[159,4],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[159,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[159,6],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[159,8]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[159,4],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[159,5]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[159,9],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[159,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[159,9],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[159,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[159,11],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[159,13]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[159,9],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[159,10]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[159,14],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[159,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[159,14],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[159,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[159,16],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[159,18]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[159,14],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[159,15]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[159,19],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[159,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[159,19],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[159,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[159,21],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[159,23]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[159,19],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[159,20]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[159,24],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[159,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[159,24],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[159,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[159,26],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[159,28]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[159,24],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[159,25]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[159,29],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[159,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[159,29],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[159,35]},[]],"tag":"TypeConstructor","contents":[["Effect"],"Effect"]},{"annotation":[{"start":[159,36],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[159,37]},[]],"tag":"TypeVar","contents":"r"}]}]}]}]}]}]}]},{"annotation":[{"start":[159,42],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[159,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[159,42],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[159,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[159,42],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[159,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[159,42],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[159,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[159,42],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[159,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[159,42],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[159,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[159,42],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[159,51]},[]],"tag":"TypeConstructor","contents":[["Effect","Uncurried"],"EffectFn5"]},{"annotation":[{"start":[159,52],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[159,53]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[159,54],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[159,55]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[159,56],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[159,57]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[159,58],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[159,59]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[159,60],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[159,61]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[159,62],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[159,63]},[]],"tag":"TypeVar","contents":"r"}]}]},null]},null]},null]},null]},null]},null]}}},{"EDValue":{"edValueName":{"Ident":"mkEffectFn6"},"edValueType":{"annotation":[{"start":[160,31],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[161,70]},[]],"tag":"ForAll","contents":["r",{"annotation":[{"start":[160,38],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[161,70]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[160,38],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[161,70]},[]],"tag":"ForAll","contents":["e",{"annotation":[{"start":[160,38],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[161,70]},[]],"tag":"ForAll","contents":["d",{"annotation":[{"start":[160,38],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[161,70]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[160,38],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[161,70]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[160,38],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[161,70]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[161,3],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[161,70]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[161,3],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[161,70]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[161,44],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[161,46]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[161,4],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[161,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[161,4],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[161,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[161,6],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[161,8]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[161,4],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[161,5]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[161,9],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[161,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[161,9],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[161,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[161,11],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[161,13]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[161,9],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[161,10]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[161,14],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[161,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[161,14],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[161,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[161,16],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[161,18]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[161,14],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[161,15]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[161,19],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[161,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[161,19],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[161,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[161,21],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[161,23]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[161,19],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[161,20]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[161,24],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[161,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[161,24],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[161,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[161,26],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[161,28]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[161,24],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[161,25]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[161,29],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[161,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[161,29],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[161,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[161,31],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[161,33]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[161,29],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[161,30]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[161,34],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[161,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[161,34],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[161,40]},[]],"tag":"TypeConstructor","contents":[["Effect"],"Effect"]},{"annotation":[{"start":[161,41],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[161,42]},[]],"tag":"TypeVar","contents":"r"}]}]}]}]}]}]}]}]},{"annotation":[{"start":[161,47],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[161,70]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[161,47],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[161,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[161,47],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[161,66]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[161,47],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[161,64]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[161,47],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[161,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[161,47],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[161,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[161,47],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[161,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[161,47],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[161,56]},[]],"tag":"TypeConstructor","contents":[["Effect","Uncurried"],"EffectFn6"]},{"annotation":[{"start":[161,57],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[161,58]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[161,59],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[161,60]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[161,61],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[161,62]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[161,63],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[161,64]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[161,65],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[161,66]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[161,67],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[161,68]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[161,69],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[161,70]},[]],"tag":"TypeVar","contents":"r"}]}]},null]},null]},null]},null]},null]},null]},null]}}},{"EDValue":{"edValueName":{"Ident":"mkEffectFn7"},"edValueType":{"annotation":[{"start":[162,31],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[163,77]},[]],"tag":"ForAll","contents":["r",{"annotation":[{"start":[162,38],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[163,77]},[]],"tag":"ForAll","contents":["g",{"annotation":[{"start":[162,38],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[163,77]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[162,38],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[163,77]},[]],"tag":"ForAll","contents":["e",{"annotation":[{"start":[162,38],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[163,77]},[]],"tag":"ForAll","contents":["d",{"annotation":[{"start":[162,38],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[163,77]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[162,38],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[163,77]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[162,38],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[163,77]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[163,3],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[163,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[163,3],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[163,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[163,49],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[163,51]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[163,4],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[163,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[163,4],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[163,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[163,6],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[163,8]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[163,4],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[163,5]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[163,9],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[163,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[163,9],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[163,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[163,11],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[163,13]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[163,9],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[163,10]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[163,14],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[163,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[163,14],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[163,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[163,16],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[163,18]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[163,14],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[163,15]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[163,19],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[163,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[163,19],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[163,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[163,21],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[163,23]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[163,19],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[163,20]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[163,24],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[163,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[163,24],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[163,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[163,26],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[163,28]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[163,24],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[163,25]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[163,29],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[163,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[163,29],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[163,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[163,31],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[163,33]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[163,29],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[163,30]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[163,34],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[163,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[163,34],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[163,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[163,36],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[163,38]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[163,34],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[163,35]},[]],"tag":"TypeVar","contents":"g"}]},{"annotation":[{"start":[163,39],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[163,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[163,39],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[163,45]},[]],"tag":"TypeConstructor","contents":[["Effect"],"Effect"]},{"annotation":[{"start":[163,46],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[163,47]},[]],"tag":"TypeVar","contents":"r"}]}]}]}]}]}]}]}]}]},{"annotation":[{"start":[163,52],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[163,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[163,52],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[163,75]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[163,52],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[163,73]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[163,52],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[163,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[163,52],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[163,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[163,52],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[163,67]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[163,52],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[163,65]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[163,52],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[163,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[163,52],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[163,61]},[]],"tag":"TypeConstructor","contents":[["Effect","Uncurried"],"EffectFn7"]},{"annotation":[{"start":[163,62],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[163,63]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[163,64],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[163,65]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[163,66],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[163,67]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[163,68],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[163,69]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[163,70],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[163,71]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[163,72],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[163,73]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[163,74],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[163,75]},[]],"tag":"TypeVar","contents":"g"}]},{"annotation":[{"start":[163,76],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[163,77]},[]],"tag":"TypeVar","contents":"r"}]}]},null]},null]},null]},null]},null]},null]},null]},null]}}},{"EDValue":{"edValueName":{"Ident":"mkEffectFn8"},"edValueType":{"annotation":[{"start":[164,31],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[165,84]},[]],"tag":"ForAll","contents":["r",{"annotation":[{"start":[164,38],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[165,84]},[]],"tag":"ForAll","contents":["h",{"annotation":[{"start":[164,38],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[165,84]},[]],"tag":"ForAll","contents":["g",{"annotation":[{"start":[164,38],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[165,84]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[164,38],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[165,84]},[]],"tag":"ForAll","contents":["e",{"annotation":[{"start":[164,38],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[165,84]},[]],"tag":"ForAll","contents":["d",{"annotation":[{"start":[164,38],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[165,84]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[164,38],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[165,84]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[164,38],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[165,84]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[165,3],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[165,84]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[165,3],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[165,84]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[165,54],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[165,56]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[165,4],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[165,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[165,4],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[165,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[165,6],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[165,8]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[165,4],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[165,5]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[165,9],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[165,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[165,9],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[165,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[165,11],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[165,13]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[165,9],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[165,10]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[165,14],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[165,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[165,14],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[165,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[165,16],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[165,18]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[165,14],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[165,15]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[165,19],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[165,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[165,19],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[165,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[165,21],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[165,23]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[165,19],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[165,20]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[165,24],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[165,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[165,24],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[165,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[165,26],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[165,28]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[165,24],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[165,25]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[165,29],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[165,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[165,29],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[165,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[165,31],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[165,33]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[165,29],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[165,30]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[165,34],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[165,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[165,34],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[165,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[165,36],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[165,38]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[165,34],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[165,35]},[]],"tag":"TypeVar","contents":"g"}]},{"annotation":[{"start":[165,39],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[165,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[165,39],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[165,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[165,41],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[165,43]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[165,39],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[165,40]},[]],"tag":"TypeVar","contents":"h"}]},{"annotation":[{"start":[165,44],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[165,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[165,44],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[165,50]},[]],"tag":"TypeConstructor","contents":[["Effect"],"Effect"]},{"annotation":[{"start":[165,51],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[165,52]},[]],"tag":"TypeVar","contents":"r"}]}]}]}]}]}]}]}]}]}]},{"annotation":[{"start":[165,57],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[165,84]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[165,57],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[165,82]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[165,57],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[165,80]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[165,57],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[165,78]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[165,57],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[165,76]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[165,57],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[165,74]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[165,57],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[165,72]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[165,57],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[165,70]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[165,57],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[165,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[165,57],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[165,66]},[]],"tag":"TypeConstructor","contents":[["Effect","Uncurried"],"EffectFn8"]},{"annotation":[{"start":[165,67],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[165,68]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[165,69],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[165,70]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[165,71],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[165,72]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[165,73],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[165,74]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[165,75],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[165,76]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[165,77],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[165,78]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[165,79],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[165,80]},[]],"tag":"TypeVar","contents":"g"}]},{"annotation":[{"start":[165,81],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[165,82]},[]],"tag":"TypeVar","contents":"h"}]},{"annotation":[{"start":[165,83],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[165,84]},[]],"tag":"TypeVar","contents":"r"}]}]},null]},null]},null]},null]},null]},null]},null]},null]},null]}}},{"EDValue":{"edValueName":{"Ident":"mkEffectFn9"},"edValueType":{"annotation":[{"start":[166,31],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[167,91]},[]],"tag":"ForAll","contents":["r",{"annotation":[{"start":[166,38],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[167,91]},[]],"tag":"ForAll","contents":["i",{"annotation":[{"start":[166,38],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[167,91]},[]],"tag":"ForAll","contents":["h",{"annotation":[{"start":[166,38],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[167,91]},[]],"tag":"ForAll","contents":["g",{"annotation":[{"start":[166,38],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[167,91]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[166,38],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[167,91]},[]],"tag":"ForAll","contents":["e",{"annotation":[{"start":[166,38],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[167,91]},[]],"tag":"ForAll","contents":["d",{"annotation":[{"start":[166,38],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[167,91]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[166,38],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[167,91]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[166,38],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[167,91]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[167,3],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[167,91]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[167,3],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[167,91]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[167,59],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[167,61]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[167,4],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[167,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[167,4],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[167,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[167,6],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[167,8]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[167,4],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[167,5]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[167,9],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[167,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[167,9],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[167,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[167,11],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[167,13]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[167,9],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[167,10]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[167,14],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[167,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[167,14],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[167,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[167,16],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[167,18]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[167,14],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[167,15]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[167,19],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[167,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[167,19],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[167,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[167,21],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[167,23]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[167,19],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[167,20]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[167,24],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[167,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[167,24],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[167,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[167,26],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[167,28]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[167,24],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[167,25]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[167,29],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[167,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[167,29],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[167,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[167,31],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[167,33]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[167,29],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[167,30]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[167,34],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[167,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[167,34],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[167,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[167,36],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[167,38]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[167,34],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[167,35]},[]],"tag":"TypeVar","contents":"g"}]},{"annotation":[{"start":[167,39],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[167,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[167,39],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[167,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[167,41],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[167,43]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[167,39],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[167,40]},[]],"tag":"TypeVar","contents":"h"}]},{"annotation":[{"start":[167,44],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[167,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[167,44],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[167,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[167,46],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[167,48]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[167,44],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[167,45]},[]],"tag":"TypeVar","contents":"i"}]},{"annotation":[{"start":[167,49],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[167,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[167,49],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[167,55]},[]],"tag":"TypeConstructor","contents":[["Effect"],"Effect"]},{"annotation":[{"start":[167,56],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[167,57]},[]],"tag":"TypeVar","contents":"r"}]}]}]}]}]}]}]}]}]}]}]},{"annotation":[{"start":[167,62],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[167,91]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[167,62],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[167,89]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[167,62],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[167,87]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[167,62],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[167,85]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[167,62],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[167,83]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[167,62],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[167,81]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[167,62],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[167,79]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[167,62],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[167,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[167,62],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[167,75]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[167,62],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[167,73]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[167,62],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[167,71]},[]],"tag":"TypeConstructor","contents":[["Effect","Uncurried"],"EffectFn9"]},{"annotation":[{"start":[167,72],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[167,73]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[167,74],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[167,75]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[167,76],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[167,77]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[167,78],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[167,79]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[167,80],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[167,81]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[167,82],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[167,83]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[167,84],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[167,85]},[]],"tag":"TypeVar","contents":"g"}]},{"annotation":[{"start":[167,86],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[167,87]},[]],"tag":"TypeVar","contents":"h"}]},{"annotation":[{"start":[167,88],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[167,89]},[]],"tag":"TypeVar","contents":"i"}]},{"annotation":[{"start":[167,90],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[167,91]},[]],"tag":"TypeVar","contents":"r"}]}]},null]},null]},null]},null]},null]},null]},null]},null]},null]},null]}}},{"EDValue":{"edValueName":{"Ident":"mkEffectFn10"},"edValueType":{"annotation":[{"start":[168,32],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[169,99]},[]],"tag":"ForAll","contents":["r",{"annotation":[{"start":[168,39],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[169,99]},[]],"tag":"ForAll","contents":["j",{"annotation":[{"start":[168,39],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[169,99]},[]],"tag":"ForAll","contents":["i",{"annotation":[{"start":[168,39],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[169,99]},[]],"tag":"ForAll","contents":["h",{"annotation":[{"start":[168,39],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[169,99]},[]],"tag":"ForAll","contents":["g",{"annotation":[{"start":[168,39],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[169,99]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[168,39],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[169,99]},[]],"tag":"ForAll","contents":["e",{"annotation":[{"start":[168,39],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[169,99]},[]],"tag":"ForAll","contents":["d",{"annotation":[{"start":[168,39],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[169,99]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[168,39],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[169,99]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[168,39],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[169,99]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[169,3],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[169,99]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[169,3],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[169,99]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[169,64],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[169,66]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[169,4],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[169,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[169,4],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[169,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[169,6],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[169,8]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[169,4],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[169,5]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[169,9],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[169,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[169,9],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[169,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[169,11],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[169,13]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[169,9],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[169,10]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[169,14],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[169,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[169,14],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[169,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[169,16],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[169,18]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[169,14],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[169,15]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[169,19],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[169,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[169,19],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[169,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[169,21],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[169,23]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[169,19],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[169,20]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[169,24],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[169,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[169,24],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[169,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[169,26],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[169,28]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[169,24],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[169,25]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[169,29],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[169,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[169,29],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[169,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[169,31],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[169,33]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[169,29],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[169,30]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[169,34],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[169,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[169,34],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[169,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[169,36],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[169,38]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[169,34],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[169,35]},[]],"tag":"TypeVar","contents":"g"}]},{"annotation":[{"start":[169,39],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[169,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[169,39],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[169,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[169,41],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[169,43]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[169,39],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[169,40]},[]],"tag":"TypeVar","contents":"h"}]},{"annotation":[{"start":[169,44],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[169,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[169,44],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[169,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[169,46],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[169,48]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[169,44],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[169,45]},[]],"tag":"TypeVar","contents":"i"}]},{"annotation":[{"start":[169,49],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[169,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[169,49],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[169,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[169,51],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[169,53]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[169,49],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[169,50]},[]],"tag":"TypeVar","contents":"j"}]},{"annotation":[{"start":[169,54],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[169,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[169,54],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[169,60]},[]],"tag":"TypeConstructor","contents":[["Effect"],"Effect"]},{"annotation":[{"start":[169,61],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[169,62]},[]],"tag":"TypeVar","contents":"r"}]}]}]}]}]}]}]}]}]}]}]}]},{"annotation":[{"start":[169,67],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[169,99]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[169,67],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[169,97]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[169,67],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[169,95]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[169,67],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[169,93]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[169,67],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[169,91]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[169,67],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[169,89]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[169,67],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[169,87]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[169,67],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[169,85]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[169,67],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[169,83]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[169,67],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[169,81]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[169,67],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[169,79]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[169,67],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[169,77]},[]],"tag":"TypeConstructor","contents":[["Effect","Uncurried"],"EffectFn10"]},{"annotation":[{"start":[169,78],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[169,79]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[169,80],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[169,81]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[169,82],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[169,83]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[169,84],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[169,85]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[169,86],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[169,87]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[169,88],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[169,89]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[169,90],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[169,91]},[]],"tag":"TypeVar","contents":"g"}]},{"annotation":[{"start":[169,92],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[169,93]},[]],"tag":"TypeVar","contents":"h"}]},{"annotation":[{"start":[169,94],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[169,95]},[]],"tag":"TypeVar","contents":"i"}]},{"annotation":[{"start":[169,96],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[169,97]},[]],"tag":"TypeVar","contents":"j"}]},{"annotation":[{"start":[169,98],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[169,99]},[]],"tag":"TypeVar","contents":"r"}]}]},null]},null]},null]},null]},null]},null]},null]},null]},null]},null]},null]}}},{"EDValue":{"edValueName":{"Ident":"runEffectFn1"},"edValueType":{"annotation":[{"start":[171,32],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[172,33]},[]],"tag":"ForAll","contents":["r",{"annotation":[{"start":[171,39],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[172,33]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[172,3],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[172,33]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[172,3],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[172,33]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[172,17],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[172,19]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[172,3],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[172,16]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[172,3],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[172,14]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[172,3],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[172,12]},[]],"tag":"TypeConstructor","contents":[["Effect","Uncurried"],"EffectFn1"]},{"annotation":[{"start":[172,13],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[172,14]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[172,15],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[172,16]},[]],"tag":"TypeVar","contents":"r"}]}]},{"annotation":[{"start":[172,20],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[172,33]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[172,20],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[172,33]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[172,22],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[172,24]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[172,20],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[172,21]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[172,25],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[172,33]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[172,25],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[172,31]},[]],"tag":"TypeConstructor","contents":[["Effect"],"Effect"]},{"annotation":[{"start":[172,32],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[172,33]},[]],"tag":"TypeVar","contents":"r"}]}]}]},null]},null]}}},{"EDValue":{"edValueName":{"Ident":"runEffectFn2"},"edValueType":{"annotation":[{"start":[173,32],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[174,40]},[]],"tag":"ForAll","contents":["r",{"annotation":[{"start":[173,39],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[174,40]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[173,39],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[174,40]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[174,3],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[174,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[174,3],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[174,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[174,19],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[174,21]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[174,3],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[174,18]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[174,3],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[174,16]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[174,3],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[174,14]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[174,3],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[174,12]},[]],"tag":"TypeConstructor","contents":[["Effect","Uncurried"],"EffectFn2"]},{"annotation":[{"start":[174,13],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[174,14]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[174,15],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[174,16]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[174,17],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[174,18]},[]],"tag":"TypeVar","contents":"r"}]}]},{"annotation":[{"start":[174,22],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[174,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[174,22],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[174,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[174,24],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[174,26]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[174,22],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[174,23]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[174,27],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[174,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[174,27],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[174,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[174,29],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[174,31]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[174,27],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[174,28]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[174,32],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[174,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[174,32],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[174,38]},[]],"tag":"TypeConstructor","contents":[["Effect"],"Effect"]},{"annotation":[{"start":[174,39],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[174,40]},[]],"tag":"TypeVar","contents":"r"}]}]}]}]},null]},null]},null]}}},{"EDValue":{"edValueName":{"Ident":"runEffectFn3"},"edValueType":{"annotation":[{"start":[175,32],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[176,47]},[]],"tag":"ForAll","contents":["r",{"annotation":[{"start":[175,39],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[176,47]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[175,39],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[176,47]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[175,39],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[176,47]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[176,3],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[176,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[176,3],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[176,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[176,21],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[176,23]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[176,3],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[176,20]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[176,3],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[176,18]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[176,3],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[176,16]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[176,3],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[176,14]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[176,3],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[176,12]},[]],"tag":"TypeConstructor","contents":[["Effect","Uncurried"],"EffectFn3"]},{"annotation":[{"start":[176,13],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[176,14]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[176,15],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[176,16]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[176,17],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[176,18]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[176,19],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[176,20]},[]],"tag":"TypeVar","contents":"r"}]}]},{"annotation":[{"start":[176,24],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[176,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[176,24],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[176,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[176,26],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[176,28]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[176,24],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[176,25]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[176,29],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[176,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[176,29],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[176,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[176,31],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[176,33]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[176,29],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[176,30]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[176,34],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[176,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[176,34],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[176,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[176,36],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[176,38]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[176,34],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[176,35]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[176,39],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[176,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[176,39],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[176,45]},[]],"tag":"TypeConstructor","contents":[["Effect"],"Effect"]},{"annotation":[{"start":[176,46],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[176,47]},[]],"tag":"TypeVar","contents":"r"}]}]}]}]}]},null]},null]},null]},null]}}},{"EDValue":{"edValueName":{"Ident":"runEffectFn4"},"edValueType":{"annotation":[{"start":[177,32],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[178,54]},[]],"tag":"ForAll","contents":["r",{"annotation":[{"start":[177,39],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[178,54]},[]],"tag":"ForAll","contents":["d",{"annotation":[{"start":[177,39],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[178,54]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[177,39],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[178,54]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[177,39],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[178,54]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[178,3],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[178,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[178,3],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[178,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[178,23],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[178,25]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[178,3],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[178,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[178,3],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[178,20]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[178,3],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[178,18]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[178,3],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[178,16]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[178,3],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[178,14]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[178,3],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[178,12]},[]],"tag":"TypeConstructor","contents":[["Effect","Uncurried"],"EffectFn4"]},{"annotation":[{"start":[178,13],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[178,14]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[178,15],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[178,16]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[178,17],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[178,18]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[178,19],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[178,20]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[178,21],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[178,22]},[]],"tag":"TypeVar","contents":"r"}]}]},{"annotation":[{"start":[178,26],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[178,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[178,26],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[178,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[178,28],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[178,30]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[178,26],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[178,27]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[178,31],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[178,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[178,31],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[178,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[178,33],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[178,35]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[178,31],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[178,32]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[178,36],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[178,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[178,36],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[178,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[178,38],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[178,40]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[178,36],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[178,37]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[178,41],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[178,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[178,41],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[178,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[178,43],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[178,45]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[178,41],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[178,42]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[178,46],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[178,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[178,46],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[178,52]},[]],"tag":"TypeConstructor","contents":[["Effect"],"Effect"]},{"annotation":[{"start":[178,53],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[178,54]},[]],"tag":"TypeVar","contents":"r"}]}]}]}]}]}]},null]},null]},null]},null]},null]}}},{"EDValue":{"edValueName":{"Ident":"runEffectFn5"},"edValueType":{"annotation":[{"start":[179,32],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[180,61]},[]],"tag":"ForAll","contents":["r",{"annotation":[{"start":[179,39],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[180,61]},[]],"tag":"ForAll","contents":["e",{"annotation":[{"start":[179,39],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[180,61]},[]],"tag":"ForAll","contents":["d",{"annotation":[{"start":[179,39],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[180,61]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[179,39],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[180,61]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[179,39],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[180,61]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[180,3],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[180,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[180,3],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[180,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[180,25],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[180,27]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[180,3],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[180,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[180,3],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[180,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[180,3],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[180,20]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[180,3],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[180,18]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[180,3],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[180,16]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[180,3],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[180,14]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[180,3],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[180,12]},[]],"tag":"TypeConstructor","contents":[["Effect","Uncurried"],"EffectFn5"]},{"annotation":[{"start":[180,13],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[180,14]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[180,15],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[180,16]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[180,17],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[180,18]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[180,19],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[180,20]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[180,21],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[180,22]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[180,23],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[180,24]},[]],"tag":"TypeVar","contents":"r"}]}]},{"annotation":[{"start":[180,28],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[180,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[180,28],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[180,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[180,30],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[180,32]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[180,28],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[180,29]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[180,33],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[180,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[180,33],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[180,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[180,35],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[180,37]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[180,33],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[180,34]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[180,38],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[180,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[180,38],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[180,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[180,40],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[180,42]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[180,38],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[180,39]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[180,43],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[180,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[180,43],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[180,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[180,45],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[180,47]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[180,43],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[180,44]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[180,48],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[180,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[180,48],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[180,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[180,50],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[180,52]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[180,48],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[180,49]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[180,53],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[180,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[180,53],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[180,59]},[]],"tag":"TypeConstructor","contents":[["Effect"],"Effect"]},{"annotation":[{"start":[180,60],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[180,61]},[]],"tag":"TypeVar","contents":"r"}]}]}]}]}]}]}]},null]},null]},null]},null]},null]},null]}}},{"EDValue":{"edValueName":{"Ident":"runEffectFn6"},"edValueType":{"annotation":[{"start":[181,32],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[182,68]},[]],"tag":"ForAll","contents":["r",{"annotation":[{"start":[181,39],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[182,68]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[181,39],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[182,68]},[]],"tag":"ForAll","contents":["e",{"annotation":[{"start":[181,39],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[182,68]},[]],"tag":"ForAll","contents":["d",{"annotation":[{"start":[181,39],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[182,68]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[181,39],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[182,68]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[181,39],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[182,68]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[182,3],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[182,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[182,3],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[182,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[182,27],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[182,29]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[182,3],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[182,26]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[182,3],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[182,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[182,3],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[182,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[182,3],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[182,20]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[182,3],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[182,18]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[182,3],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[182,16]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[182,3],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[182,14]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[182,3],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[182,12]},[]],"tag":"TypeConstructor","contents":[["Effect","Uncurried"],"EffectFn6"]},{"annotation":[{"start":[182,13],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[182,14]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[182,15],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[182,16]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[182,17],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[182,18]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[182,19],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[182,20]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[182,21],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[182,22]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[182,23],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[182,24]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[182,25],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[182,26]},[]],"tag":"TypeVar","contents":"r"}]}]},{"annotation":[{"start":[182,30],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[182,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[182,30],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[182,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[182,32],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[182,34]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[182,30],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[182,31]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[182,35],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[182,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[182,35],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[182,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[182,37],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[182,39]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[182,35],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[182,36]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[182,40],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[182,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[182,40],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[182,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[182,42],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[182,44]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[182,40],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[182,41]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[182,45],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[182,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[182,45],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[182,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[182,47],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[182,49]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[182,45],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[182,46]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[182,50],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[182,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[182,50],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[182,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[182,52],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[182,54]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[182,50],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[182,51]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[182,55],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[182,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[182,55],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[182,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[182,57],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[182,59]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[182,55],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[182,56]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[182,60],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[182,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[182,60],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[182,66]},[]],"tag":"TypeConstructor","contents":[["Effect"],"Effect"]},{"annotation":[{"start":[182,67],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[182,68]},[]],"tag":"TypeVar","contents":"r"}]}]}]}]}]}]}]}]},null]},null]},null]},null]},null]},null]},null]}}},{"EDValue":{"edValueName":{"Ident":"runEffectFn7"},"edValueType":{"annotation":[{"start":[183,32],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[184,75]},[]],"tag":"ForAll","contents":["r",{"annotation":[{"start":[183,39],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[184,75]},[]],"tag":"ForAll","contents":["g",{"annotation":[{"start":[183,39],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[184,75]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[183,39],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[184,75]},[]],"tag":"ForAll","contents":["e",{"annotation":[{"start":[183,39],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[184,75]},[]],"tag":"ForAll","contents":["d",{"annotation":[{"start":[183,39],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[184,75]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[183,39],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[184,75]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[183,39],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[184,75]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[184,3],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[184,75]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[184,3],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[184,75]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[184,29],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[184,31]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[184,3],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[184,28]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[184,3],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[184,26]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[184,3],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[184,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[184,3],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[184,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[184,3],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[184,20]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[184,3],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[184,18]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[184,3],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[184,16]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[184,3],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[184,14]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[184,3],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[184,12]},[]],"tag":"TypeConstructor","contents":[["Effect","Uncurried"],"EffectFn7"]},{"annotation":[{"start":[184,13],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[184,14]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[184,15],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[184,16]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[184,17],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[184,18]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[184,19],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[184,20]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[184,21],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[184,22]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[184,23],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[184,24]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[184,25],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[184,26]},[]],"tag":"TypeVar","contents":"g"}]},{"annotation":[{"start":[184,27],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[184,28]},[]],"tag":"TypeVar","contents":"r"}]}]},{"annotation":[{"start":[184,32],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[184,75]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[184,32],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[184,75]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[184,34],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[184,36]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[184,32],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[184,33]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[184,37],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[184,75]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[184,37],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[184,75]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[184,39],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[184,41]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[184,37],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[184,38]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[184,42],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[184,75]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[184,42],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[184,75]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[184,44],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[184,46]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[184,42],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[184,43]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[184,47],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[184,75]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[184,47],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[184,75]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[184,49],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[184,51]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[184,47],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[184,48]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[184,52],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[184,75]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[184,52],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[184,75]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[184,54],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[184,56]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[184,52],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[184,53]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[184,57],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[184,75]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[184,57],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[184,75]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[184,59],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[184,61]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[184,57],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[184,58]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[184,62],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[184,75]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[184,62],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[184,75]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[184,64],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[184,66]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[184,62],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[184,63]},[]],"tag":"TypeVar","contents":"g"}]},{"annotation":[{"start":[184,67],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[184,75]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[184,67],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[184,73]},[]],"tag":"TypeConstructor","contents":[["Effect"],"Effect"]},{"annotation":[{"start":[184,74],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[184,75]},[]],"tag":"TypeVar","contents":"r"}]}]}]}]}]}]}]}]}]},null]},null]},null]},null]},null]},null]},null]},null]}}},{"EDValue":{"edValueName":{"Ident":"runEffectFn8"},"edValueType":{"annotation":[{"start":[185,32],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[186,82]},[]],"tag":"ForAll","contents":["r",{"annotation":[{"start":[185,39],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[186,82]},[]],"tag":"ForAll","contents":["h",{"annotation":[{"start":[185,39],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[186,82]},[]],"tag":"ForAll","contents":["g",{"annotation":[{"start":[185,39],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[186,82]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[185,39],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[186,82]},[]],"tag":"ForAll","contents":["e",{"annotation":[{"start":[185,39],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[186,82]},[]],"tag":"ForAll","contents":["d",{"annotation":[{"start":[185,39],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[186,82]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[185,39],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[186,82]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[185,39],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[186,82]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[186,3],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[186,82]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[186,3],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[186,82]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[186,31],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[186,33]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[186,3],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[186,30]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[186,3],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[186,28]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[186,3],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[186,26]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[186,3],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[186,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[186,3],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[186,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[186,3],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[186,20]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[186,3],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[186,18]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[186,3],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[186,16]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[186,3],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[186,14]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[186,3],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[186,12]},[]],"tag":"TypeConstructor","contents":[["Effect","Uncurried"],"EffectFn8"]},{"annotation":[{"start":[186,13],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[186,14]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[186,15],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[186,16]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[186,17],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[186,18]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[186,19],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[186,20]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[186,21],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[186,22]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[186,23],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[186,24]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[186,25],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[186,26]},[]],"tag":"TypeVar","contents":"g"}]},{"annotation":[{"start":[186,27],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[186,28]},[]],"tag":"TypeVar","contents":"h"}]},{"annotation":[{"start":[186,29],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[186,30]},[]],"tag":"TypeVar","contents":"r"}]}]},{"annotation":[{"start":[186,34],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[186,82]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[186,34],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[186,82]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[186,36],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[186,38]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[186,34],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[186,35]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[186,39],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[186,82]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[186,39],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[186,82]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[186,41],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[186,43]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[186,39],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[186,40]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[186,44],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[186,82]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[186,44],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[186,82]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[186,46],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[186,48]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[186,44],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[186,45]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[186,49],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[186,82]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[186,49],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[186,82]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[186,51],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[186,53]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[186,49],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[186,50]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[186,54],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[186,82]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[186,54],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[186,82]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[186,56],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[186,58]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[186,54],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[186,55]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[186,59],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[186,82]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[186,59],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[186,82]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[186,61],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[186,63]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[186,59],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[186,60]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[186,64],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[186,82]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[186,64],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[186,82]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[186,66],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[186,68]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[186,64],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[186,65]},[]],"tag":"TypeVar","contents":"g"}]},{"annotation":[{"start":[186,69],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[186,82]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[186,69],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[186,82]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[186,71],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[186,73]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[186,69],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[186,70]},[]],"tag":"TypeVar","contents":"h"}]},{"annotation":[{"start":[186,74],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[186,82]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[186,74],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[186,80]},[]],"tag":"TypeConstructor","contents":[["Effect"],"Effect"]},{"annotation":[{"start":[186,81],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[186,82]},[]],"tag":"TypeVar","contents":"r"}]}]}]}]}]}]}]}]}]}]},null]},null]},null]},null]},null]},null]},null]},null]},null]}}},{"EDValue":{"edValueName":{"Ident":"runEffectFn9"},"edValueType":{"annotation":[{"start":[187,32],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[188,89]},[]],"tag":"ForAll","contents":["r",{"annotation":[{"start":[187,39],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[188,89]},[]],"tag":"ForAll","contents":["i",{"annotation":[{"start":[187,39],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[188,89]},[]],"tag":"ForAll","contents":["h",{"annotation":[{"start":[187,39],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[188,89]},[]],"tag":"ForAll","contents":["g",{"annotation":[{"start":[187,39],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[188,89]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[187,39],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[188,89]},[]],"tag":"ForAll","contents":["e",{"annotation":[{"start":[187,39],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[188,89]},[]],"tag":"ForAll","contents":["d",{"annotation":[{"start":[187,39],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[188,89]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[187,39],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[188,89]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[187,39],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[188,89]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[188,3],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[188,89]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[188,3],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[188,89]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[188,33],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[188,35]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[188,3],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[188,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[188,3],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[188,30]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[188,3],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[188,28]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[188,3],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[188,26]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[188,3],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[188,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[188,3],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[188,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[188,3],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[188,20]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[188,3],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[188,18]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[188,3],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[188,16]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[188,3],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[188,14]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[188,3],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[188,12]},[]],"tag":"TypeConstructor","contents":[["Effect","Uncurried"],"EffectFn9"]},{"annotation":[{"start":[188,13],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[188,14]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[188,15],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[188,16]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[188,17],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[188,18]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[188,19],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[188,20]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[188,21],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[188,22]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[188,23],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[188,24]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[188,25],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[188,26]},[]],"tag":"TypeVar","contents":"g"}]},{"annotation":[{"start":[188,27],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[188,28]},[]],"tag":"TypeVar","contents":"h"}]},{"annotation":[{"start":[188,29],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[188,30]},[]],"tag":"TypeVar","contents":"i"}]},{"annotation":[{"start":[188,31],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[188,32]},[]],"tag":"TypeVar","contents":"r"}]}]},{"annotation":[{"start":[188,36],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[188,89]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[188,36],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[188,89]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[188,38],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[188,40]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[188,36],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[188,37]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[188,41],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[188,89]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[188,41],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[188,89]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[188,43],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[188,45]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[188,41],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[188,42]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[188,46],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[188,89]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[188,46],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[188,89]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[188,48],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[188,50]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[188,46],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[188,47]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[188,51],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[188,89]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[188,51],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[188,89]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[188,53],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[188,55]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[188,51],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[188,52]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[188,56],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[188,89]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[188,56],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[188,89]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[188,58],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[188,60]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[188,56],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[188,57]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[188,61],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[188,89]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[188,61],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[188,89]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[188,63],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[188,65]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[188,61],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[188,62]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[188,66],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[188,89]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[188,66],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[188,89]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[188,68],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[188,70]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[188,66],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[188,67]},[]],"tag":"TypeVar","contents":"g"}]},{"annotation":[{"start":[188,71],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[188,89]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[188,71],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[188,89]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[188,73],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[188,75]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[188,71],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[188,72]},[]],"tag":"TypeVar","contents":"h"}]},{"annotation":[{"start":[188,76],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[188,89]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[188,76],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[188,89]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[188,78],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[188,80]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[188,76],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[188,77]},[]],"tag":"TypeVar","contents":"i"}]},{"annotation":[{"start":[188,81],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[188,89]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[188,81],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[188,87]},[]],"tag":"TypeConstructor","contents":[["Effect"],"Effect"]},{"annotation":[{"start":[188,88],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[188,89]},[]],"tag":"TypeVar","contents":"r"}]}]}]}]}]}]}]}]}]}]}]},null]},null]},null]},null]},null]},null]},null]},null]},null]},null]}}},{"EDValue":{"edValueName":{"Ident":"runEffectFn10"},"edValueType":{"annotation":[{"start":[189,33],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[190,97]},[]],"tag":"ForAll","contents":["r",{"annotation":[{"start":[189,40],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[190,97]},[]],"tag":"ForAll","contents":["j",{"annotation":[{"start":[189,40],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[190,97]},[]],"tag":"ForAll","contents":["i",{"annotation":[{"start":[189,40],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[190,97]},[]],"tag":"ForAll","contents":["h",{"annotation":[{"start":[189,40],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[190,97]},[]],"tag":"ForAll","contents":["g",{"annotation":[{"start":[189,40],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[190,97]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[189,40],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[190,97]},[]],"tag":"ForAll","contents":["e",{"annotation":[{"start":[189,40],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[190,97]},[]],"tag":"ForAll","contents":["d",{"annotation":[{"start":[189,40],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[190,97]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[189,40],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[190,97]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[189,40],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[190,97]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[190,3],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[190,97]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[190,3],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[190,97]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[190,36],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[190,38]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[190,3],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[190,35]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[190,3],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[190,33]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[190,3],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[190,31]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[190,3],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[190,29]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[190,3],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[190,27]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[190,3],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[190,25]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[190,3],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[190,23]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[190,3],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[190,21]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[190,3],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[190,19]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[190,3],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[190,17]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[190,3],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[190,15]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[190,3],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[190,13]},[]],"tag":"TypeConstructor","contents":[["Effect","Uncurried"],"EffectFn10"]},{"annotation":[{"start":[190,14],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[190,15]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[190,16],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[190,17]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[190,18],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[190,19]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[190,20],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[190,21]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[190,22],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[190,23]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[190,24],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[190,25]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[190,26],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[190,27]},[]],"tag":"TypeVar","contents":"g"}]},{"annotation":[{"start":[190,28],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[190,29]},[]],"tag":"TypeVar","contents":"h"}]},{"annotation":[{"start":[190,30],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[190,31]},[]],"tag":"TypeVar","contents":"i"}]},{"annotation":[{"start":[190,32],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[190,33]},[]],"tag":"TypeVar","contents":"j"}]},{"annotation":[{"start":[190,34],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[190,35]},[]],"tag":"TypeVar","contents":"r"}]}]},{"annotation":[{"start":[190,39],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[190,97]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[190,39],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[190,97]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[190,41],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[190,43]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[190,39],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[190,40]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[190,44],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[190,97]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[190,44],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[190,97]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[190,46],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[190,48]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[190,44],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[190,45]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[190,49],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[190,97]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[190,49],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[190,97]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[190,51],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[190,53]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[190,49],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[190,50]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[190,54],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[190,97]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[190,54],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[190,97]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[190,56],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[190,58]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[190,54],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[190,55]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[190,59],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[190,97]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[190,59],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[190,97]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[190,61],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[190,63]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[190,59],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[190,60]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[190,64],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[190,97]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[190,64],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[190,97]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[190,66],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[190,68]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[190,64],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[190,65]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[190,69],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[190,97]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[190,69],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[190,97]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[190,71],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[190,73]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[190,69],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[190,70]},[]],"tag":"TypeVar","contents":"g"}]},{"annotation":[{"start":[190,74],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[190,97]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[190,74],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[190,97]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[190,76],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[190,78]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[190,74],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[190,75]},[]],"tag":"TypeVar","contents":"h"}]},{"annotation":[{"start":[190,79],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[190,97]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[190,79],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[190,97]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[190,81],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[190,83]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[190,79],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[190,80]},[]],"tag":"TypeVar","contents":"i"}]},{"annotation":[{"start":[190,84],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[190,97]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[190,84],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[190,97]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[190,86],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[190,88]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[190,84],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[190,85]},[]],"tag":"TypeVar","contents":"j"}]},{"annotation":[{"start":[190,89],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[190,97]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[190,89],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[190,95]},[]],"tag":"TypeConstructor","contents":[["Effect"],"Effect"]},{"annotation":[{"start":[190,96],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[190,97]},[]],"tag":"TypeVar","contents":"r"}]}]}]}]}]}]}]}]}]}]}]}]},null]},null]},null]},null]},null]},null]},null]},null]},null]},null]},null]}}}],"efSourceSpan":{"start":[135,1],"name":"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs","end":[190,97]}}
diff --git a/tests/purs/publish/basic-example/output/Effect.Unsafe/docs.json b/tests/purs/publish/basic-example/output/Effect.Unsafe/docs.json
--- a/tests/purs/publish/basic-example/output/Effect.Unsafe/docs.json
+++ b/tests/purs/publish/basic-example/output/Effect.Unsafe/docs.json
@@ -1,1 +1,1 @@
-{"reExports":[],"name":"Effect.Unsafe","comments":null,"declarations":[{"children":[],"comments":"Run an effectful computation.\n\n*Note*: use of this function can result in arbitrary side-effects.\n","title":"unsafePerformEffect","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Effect"],"Effect"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},null]}},"sourceSpan":{"start":[8,1],"name":"../../../support/bower_components/purescript-effect/src/Effect/Unsafe.purs","end":[8,62]}}]}
+{"comments":null,"declarations":[{"children":[],"comments":"Run an effectful computation.\n\n*Note*: use of this function can result in arbitrary side-effects.\n","info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Effect"],"Effect"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[8,62],"name":"../../../support/bower_components/purescript-effect/src/Effect/Unsafe.purs","start":[8,1]},"title":"unsafePerformEffect"}],"name":"Effect.Unsafe","reExports":[]}
diff --git a/tests/purs/publish/basic-example/output/Effect.Unsafe/externs.json b/tests/purs/publish/basic-example/output/Effect.Unsafe/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Effect.Unsafe/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Effect","Unsafe"],"efExports":[{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-effect/src/Effect/Unsafe.purs","end":[8,62]},{"Ident":"unsafePerformEffect"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Effect"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[3,16],"name":"../../../support/bower_components/purescript-effect/src/Effect/Unsafe.purs","end":[3,22]},"Effect",[]]}]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDValue":{"edValueName":{"Ident":"unsafePerformEffect"},"edValueType":{"annotation":[{"start":[8,39],"name":"../../../support/bower_components/purescript-effect/src/Effect/Unsafe.purs","end":[8,62]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[8,49],"name":"../../../support/bower_components/purescript-effect/src/Effect/Unsafe.purs","end":[8,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[8,49],"name":"../../../support/bower_components/purescript-effect/src/Effect/Unsafe.purs","end":[8,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[8,58],"name":"../../../support/bower_components/purescript-effect/src/Effect/Unsafe.purs","end":[8,60]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[8,49],"name":"../../../support/bower_components/purescript-effect/src/Effect/Unsafe.purs","end":[8,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[8,49],"name":"../../../support/bower_components/purescript-effect/src/Effect/Unsafe.purs","end":[8,55]},[]],"tag":"TypeConstructor","contents":[["Effect"],"Effect"]},{"annotation":[{"start":[8,56],"name":"../../../support/bower_components/purescript-effect/src/Effect/Unsafe.purs","end":[8,57]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[8,61],"name":"../../../support/bower_components/purescript-effect/src/Effect/Unsafe.purs","end":[8,62]},[]],"tag":"TypeVar","contents":"a"}]},null]}}}],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-effect/src/Effect/Unsafe.purs","end":[8,62]}}
diff --git a/tests/purs/publish/basic-example/output/Effect/docs.json b/tests/purs/publish/basic-example/output/Effect/docs.json
--- a/tests/purs/publish/basic-example/output/Effect/docs.json
+++ b/tests/purs/publish/basic-example/output/Effect/docs.json
@@ -1,1 +1,1 @@
-{"reExports":[],"name":"Effect","comments":null,"declarations":[{"children":[{"comments":null,"title":"functorEffect","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Functor"],"Functor"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Effect"],"Effect"]}]}},"sourceSpan":{"start":[18,1],"name":"../../../support/bower_components/purescript-effect/src/Effect.purs","end":[19,15]}},{"comments":null,"title":"applyEffect","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Apply"],"Apply"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Effect"],"Effect"]}]}},"sourceSpan":{"start":[21,1],"name":"../../../support/bower_components/purescript-effect/src/Effect.purs","end":[22,13]}},{"comments":null,"title":"applicativeEffect","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Applicative"],"Applicative"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Effect"],"Effect"]}]}},"sourceSpan":{"start":[24,1],"name":"../../../support/bower_components/purescript-effect/src/Effect.purs","end":[25,15]}},{"comments":null,"title":"bindEffect","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Bind"],"Bind"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Effect"],"Effect"]}]}},"sourceSpan":{"start":[29,1],"name":"../../../support/bower_components/purescript-effect/src/Effect.purs","end":[30,15]}},{"comments":null,"title":"monadEffect","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Monad"],"Monad"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Effect"],"Effect"]}]}},"sourceSpan":{"start":[34,1],"name":"../../../support/bower_components/purescript-effect/src/Effect.purs","end":[34,37]}},{"comments":null,"title":"semigroupEffect","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Semigroup"],"Semigroup"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup"],"Semigroup"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Effect"],"Effect"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[36,1],"name":"../../../support/bower_components/purescript-effect/src/Effect.purs","end":[37,24]}},{"comments":null,"title":"monoidEffect","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Monoid"],"Monoid"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Monoid"],"Monoid"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Effect"],"Effect"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[39,1],"name":"../../../support/bower_components/purescript-effect/src/Effect.purs","end":[40,24]}}],"comments":"The `Effect` type constructor is used to represent _native_ effects.\n\nSee [Handling Native Effects with the Effect Monad](http://www.purescript.org/learn/eff/)\nfor more details.\n\nThe type parameter denotes the return type of running the effect.\n","title":"Effect","info":{"kind":{"annotation":[],"tag":"FunKind","contents":[{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},"declType":"externData"},"sourceSpan":{"start":[16,1],"name":"../../../support/bower_components/purescript-effect/src/Effect.purs","end":[16,43]}},{"children":[],"comments":"Loop until a condition becomes `true`.\n\n`untilE b` is an effectful computation which repeatedly runs the effectful\ncomputation `b`, until its return value is `true`.\n","title":"untilE","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Effect"],"Effect"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Effect"],"Effect"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}},"sourceSpan":{"start":[46,1],"name":"../../../support/bower_components/purescript-effect/src/Effect.purs","end":[46,55]}},{"children":[],"comments":"Loop while a condition is `true`.\n\n`whileE b m` is effectful computation which runs the effectful computation\n`b`. If its result is `true`, it runs the effectful computation `m` and\nloops. If not, the computation ends.\n","title":"whileE","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Effect"],"Effect"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Effect"],"Effect"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Effect"],"Effect"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}]},null]}},"sourceSpan":{"start":[53,1],"name":"../../../support/bower_components/purescript-effect/src/Effect.purs","end":[53,77]}},{"children":[],"comments":"Loop over a consecutive collection of numbers.\n\n`forE lo hi f` runs the computation returned by the function `f` for each\nof the inputs between `lo` (inclusive) and `hi` (exclusive).\n","title":"forE","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Effect"],"Effect"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Effect"],"Effect"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}]}]}},"sourceSpan":{"start":[59,1],"name":"../../../support/bower_components/purescript-effect/src/Effect.purs","end":[59,73]}},{"children":[],"comments":"Loop over an array of values.\n\n`foreachE xs f` runs the computation returned by the function `f` for each\nof the inputs `xs`.\n","title":"foreachE","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Effect"],"Effect"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Effect"],"Effect"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}]},null]}},"sourceSpan":{"start":[65,1],"name":"../../../support/bower_components/purescript-effect/src/Effect.purs","end":[65,82]}}]}
+{"comments":"This module provides the `Effect` type, which is used to represent\n_native_ effects. The `Effect` type provides a typed API for effectful\ncomputations, while at the same time generating efficient JavaScript.\n","declarations":[{"children":[{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Functor"],"Functor"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Effect"],"Effect"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[21,15],"name":"../../../support/bower_components/purescript-effect/src/Effect.purs","start":[20,1]},"title":"functorEffect"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Control","Apply"],"Apply"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Effect"],"Effect"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[24,13],"name":"../../../support/bower_components/purescript-effect/src/Effect.purs","start":[23,1]},"title":"applyEffect"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Control","Applicative"],"Applicative"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Effect"],"Effect"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[27,15],"name":"../../../support/bower_components/purescript-effect/src/Effect.purs","start":[26,1]},"title":"applicativeEffect"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Control","Bind"],"Bind"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Effect"],"Effect"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[32,15],"name":"../../../support/bower_components/purescript-effect/src/Effect.purs","start":[31,1]},"title":"bindEffect"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Control","Monad"],"Monad"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Effect"],"Effect"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[36,37],"name":"../../../support/bower_components/purescript-effect/src/Effect.purs","start":[36,1]},"title":"monadEffect"},{"comments":"The `Semigroup` instance for effects allows you to run two effects, one\nafter the other, and then combine their results using the result type's\n`Semigroup` instance.\n","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","Semigroup"],"Semigroup"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Semigroup"],"Semigroup"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Effect"],"Effect"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[42,24],"name":"../../../support/bower_components/purescript-effect/src/Effect.purs","start":[41,1]},"title":"semigroupEffect"},{"comments":"If you have a `Monoid a` instance, then `mempty :: Effect a` is defined as\n`pure mempty`.\n","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","Monoid"],"Monoid"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Monoid"],"Monoid"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Effect"],"Effect"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[47,24],"name":"../../../support/bower_components/purescript-effect/src/Effect.purs","start":[46,1]},"title":"monoidEffect"}],"comments":"A native effect. The type parameter denotes the return type of running the\neffect, that is, an `Effect Int` is a possibly-effectful computation which\neventually produces a value of the type `Int` when it finishes.\n","info":{"dataDeclType":"data","declType":"data","roles":["Representational"],"typeArguments":[["t0",null]]},"kind":null,"sourceSpan":{"end":[16,43],"name":"../../../support/bower_components/purescript-effect/src/Effect.purs","start":[16,1]},"title":"Effect"},{"children":[],"comments":"Loop until a condition becomes `true`.\n\n`untilE b` is an effectful computation which repeatedly runs the effectful\ncomputation `b`, until its return value is `true`.\n","info":{"declType":"value","type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Effect"],"Effect"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Boolean"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Effect"],"Effect"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Unit"],"Unit"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"kind":null,"sourceSpan":{"end":[53,55],"name":"../../../support/bower_components/purescript-effect/src/Effect.purs","start":[53,1]},"title":"untilE"},{"children":[],"comments":"Loop while a condition is `true`.\n\n`whileE b m` is effectful computation which runs the effectful computation\n`b`. If its result is `true`, it runs the effectful computation `m` and\nloops. If not, the computation ends.\n","info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Effect"],"Effect"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Boolean"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Effect"],"Effect"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Effect"],"Effect"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Unit"],"Unit"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[60,77],"name":"../../../support/bower_components/purescript-effect/src/Effect.purs","start":[60,1]},"title":"whileE"},{"children":[],"comments":"Loop over a consecutive collection of numbers.\n\n`forE lo hi f` runs the computation returned by the function `f` for each\nof the inputs between `lo` (inclusive) and `hi` (exclusive).\n","info":{"declType":"value","type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Effect"],"Effect"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Unit"],"Unit"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"},"tag":"ParensInType"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Effect"],"Effect"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Unit"],"Unit"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"kind":null,"sourceSpan":{"end":[66,73],"name":"../../../support/bower_components/purescript-effect/src/Effect.purs","start":[66,1]},"title":"forE"},{"children":[],"comments":"Loop over an array of values.\n\n`foreachE xs f` runs the computation returned by the function `f` for each\nof the inputs `xs`.\n","info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Array"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Effect"],"Effect"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Unit"],"Unit"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"},"tag":"ParensInType"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Effect"],"Effect"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Unit"],"Unit"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[72,82],"name":"../../../support/bower_components/purescript-effect/src/Effect.purs","start":[72,1]},"title":"foreachE"}],"name":"Effect","reExports":[]}
diff --git a/tests/purs/publish/basic-example/output/Effect/externs.json b/tests/purs/publish/basic-example/output/Effect/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Effect/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Effect"],"efExports":[{"TypeRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-effect/src/Effect.purs","end":[65,82]},"Effect",[]]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-effect/src/Effect.purs","end":[65,82]},{"Ident":"untilE"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-effect/src/Effect.purs","end":[65,82]},{"Ident":"whileE"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-effect/src/Effect.purs","end":[65,82]},{"Ident":"forE"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-effect/src/Effect.purs","end":[65,82]},{"Ident":"foreachE"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"functorEffect"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"applyEffect"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"applicativeEffect"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"bindEffect"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"monadEffect"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"semigroupEffect"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"monoidEffect"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Prelude"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Control","Apply"],"eiImportType":{"Explicit":[{"ValueRef":[{"start":[8,23],"name":"../../../support/bower_components/purescript-effect/src/Effect.purs","end":[8,28]},{"Ident":"lift2"}]}]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDType":{"edTypeName":"Effect","edTypeKind":{"annotation":[{"start":[16,31],"name":"../../../support/bower_components/purescript-effect/src/Effect.purs","end":[16,43]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[16,31],"name":"../../../support/bower_components/purescript-effect/src/Effect.purs","end":[16,35]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[16,39],"name":"../../../support/bower_components/purescript-effect/src/Effect.purs","end":[16,43]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},"edTypeDeclarationKind":"ExternData"}},{"EDValue":{"edValueName":{"Ident":"untilE"},"edValueType":{"annotation":[{"start":[46,26],"name":"../../../support/bower_components/purescript-effect/src/Effect.purs","end":[46,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[46,26],"name":"../../../support/bower_components/purescript-effect/src/Effect.purs","end":[46,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[46,41],"name":"../../../support/bower_components/purescript-effect/src/Effect.purs","end":[46,43]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[46,26],"name":"../../../support/bower_components/purescript-effect/src/Effect.purs","end":[46,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[46,26],"name":"../../../support/bower_components/purescript-effect/src/Effect.purs","end":[46,32]},[]],"tag":"TypeConstructor","contents":[["Effect"],"Effect"]},{"annotation":[{"start":[46,33],"name":"../../../support/bower_components/purescript-effect/src/Effect.purs","end":[46,40]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]},{"annotation":[{"start":[46,44],"name":"../../../support/bower_components/purescript-effect/src/Effect.purs","end":[46,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[46,44],"name":"../../../support/bower_components/purescript-effect/src/Effect.purs","end":[46,50]},[]],"tag":"TypeConstructor","contents":[["Effect"],"Effect"]},{"annotation":[{"start":[46,51],"name":"../../../support/bower_components/purescript-effect/src/Effect.purs","end":[46,55]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}}},{"EDValue":{"edValueName":{"Ident":"whileE"},"edValueType":{"annotation":[{"start":[53,26],"name":"../../../support/bower_components/purescript-effect/src/Effect.purs","end":[53,77]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[53,36],"name":"../../../support/bower_components/purescript-effect/src/Effect.purs","end":[53,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,36],"name":"../../../support/bower_components/purescript-effect/src/Effect.purs","end":[53,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,51],"name":"../../../support/bower_components/purescript-effect/src/Effect.purs","end":[53,53]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[53,36],"name":"../../../support/bower_components/purescript-effect/src/Effect.purs","end":[53,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,36],"name":"../../../support/bower_components/purescript-effect/src/Effect.purs","end":[53,42]},[]],"tag":"TypeConstructor","contents":[["Effect"],"Effect"]},{"annotation":[{"start":[53,43],"name":"../../../support/bower_components/purescript-effect/src/Effect.purs","end":[53,50]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]},{"annotation":[{"start":[53,54],"name":"../../../support/bower_components/purescript-effect/src/Effect.purs","end":[53,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,54],"name":"../../../support/bower_components/purescript-effect/src/Effect.purs","end":[53,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,63],"name":"../../../support/bower_components/purescript-effect/src/Effect.purs","end":[53,65]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[53,54],"name":"../../../support/bower_components/purescript-effect/src/Effect.purs","end":[53,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,54],"name":"../../../support/bower_components/purescript-effect/src/Effect.purs","end":[53,60]},[]],"tag":"TypeConstructor","contents":[["Effect"],"Effect"]},{"annotation":[{"start":[53,61],"name":"../../../support/bower_components/purescript-effect/src/Effect.purs","end":[53,62]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[53,66],"name":"../../../support/bower_components/purescript-effect/src/Effect.purs","end":[53,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,66],"name":"../../../support/bower_components/purescript-effect/src/Effect.purs","end":[53,72]},[]],"tag":"TypeConstructor","contents":[["Effect"],"Effect"]},{"annotation":[{"start":[53,73],"name":"../../../support/bower_components/purescript-effect/src/Effect.purs","end":[53,77]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}]},null]}}},{"EDValue":{"edValueName":{"Ident":"forE"},"edValueType":{"annotation":[{"start":[59,24],"name":"../../../support/bower_components/purescript-effect/src/Effect.purs","end":[59,73]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[59,24],"name":"../../../support/bower_components/purescript-effect/src/Effect.purs","end":[59,73]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[59,28],"name":"../../../support/bower_components/purescript-effect/src/Effect.purs","end":[59,30]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[59,24],"name":"../../../support/bower_components/purescript-effect/src/Effect.purs","end":[59,27]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[59,31],"name":"../../../support/bower_components/purescript-effect/src/Effect.purs","end":[59,73]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[59,31],"name":"../../../support/bower_components/purescript-effect/src/Effect.purs","end":[59,73]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[59,35],"name":"../../../support/bower_components/purescript-effect/src/Effect.purs","end":[59,37]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[59,31],"name":"../../../support/bower_components/purescript-effect/src/Effect.purs","end":[59,34]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[59,38],"name":"../../../support/bower_components/purescript-effect/src/Effect.purs","end":[59,73]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[59,38],"name":"../../../support/bower_components/purescript-effect/src/Effect.purs","end":[59,73]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[59,59],"name":"../../../support/bower_components/purescript-effect/src/Effect.purs","end":[59,61]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[59,39],"name":"../../../support/bower_components/purescript-effect/src/Effect.purs","end":[59,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[59,39],"name":"../../../support/bower_components/purescript-effect/src/Effect.purs","end":[59,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[59,43],"name":"../../../support/bower_components/purescript-effect/src/Effect.purs","end":[59,45]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[59,39],"name":"../../../support/bower_components/purescript-effect/src/Effect.purs","end":[59,42]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[59,46],"name":"../../../support/bower_components/purescript-effect/src/Effect.purs","end":[59,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[59,46],"name":"../../../support/bower_components/purescript-effect/src/Effect.purs","end":[59,52]},[]],"tag":"TypeConstructor","contents":[["Effect"],"Effect"]},{"annotation":[{"start":[59,53],"name":"../../../support/bower_components/purescript-effect/src/Effect.purs","end":[59,57]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}]},{"annotation":[{"start":[59,62],"name":"../../../support/bower_components/purescript-effect/src/Effect.purs","end":[59,73]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[59,62],"name":"../../../support/bower_components/purescript-effect/src/Effect.purs","end":[59,68]},[]],"tag":"TypeConstructor","contents":[["Effect"],"Effect"]},{"annotation":[{"start":[59,69],"name":"../../../support/bower_components/purescript-effect/src/Effect.purs","end":[59,73]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}]}]}}},{"EDValue":{"edValueName":{"Ident":"foreachE"},"edValueType":{"annotation":[{"start":[65,28],"name":"../../../support/bower_components/purescript-effect/src/Effect.purs","end":[65,82]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[65,38],"name":"../../../support/bower_components/purescript-effect/src/Effect.purs","end":[65,82]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[65,38],"name":"../../../support/bower_components/purescript-effect/src/Effect.purs","end":[65,82]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[65,46],"name":"../../../support/bower_components/purescript-effect/src/Effect.purs","end":[65,48]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[65,38],"name":"../../../support/bower_components/purescript-effect/src/Effect.purs","end":[65,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[65,38],"name":"../../../support/bower_components/purescript-effect/src/Effect.purs","end":[65,43]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]},{"annotation":[{"start":[65,44],"name":"../../../support/bower_components/purescript-effect/src/Effect.purs","end":[65,45]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[65,49],"name":"../../../support/bower_components/purescript-effect/src/Effect.purs","end":[65,82]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[65,49],"name":"../../../support/bower_components/purescript-effect/src/Effect.purs","end":[65,82]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[65,68],"name":"../../../support/bower_components/purescript-effect/src/Effect.purs","end":[65,70]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[65,50],"name":"../../../support/bower_components/purescript-effect/src/Effect.purs","end":[65,66]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[65,50],"name":"../../../support/bower_components/purescript-effect/src/Effect.purs","end":[65,66]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[65,52],"name":"../../../support/bower_components/purescript-effect/src/Effect.purs","end":[65,54]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[65,50],"name":"../../../support/bower_components/purescript-effect/src/Effect.purs","end":[65,51]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[65,55],"name":"../../../support/bower_components/purescript-effect/src/Effect.purs","end":[65,66]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[65,55],"name":"../../../support/bower_components/purescript-effect/src/Effect.purs","end":[65,61]},[]],"tag":"TypeConstructor","contents":[["Effect"],"Effect"]},{"annotation":[{"start":[65,62],"name":"../../../support/bower_components/purescript-effect/src/Effect.purs","end":[65,66]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}]},{"annotation":[{"start":[65,71],"name":"../../../support/bower_components/purescript-effect/src/Effect.purs","end":[65,82]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[65,71],"name":"../../../support/bower_components/purescript-effect/src/Effect.purs","end":[65,77]},[]],"tag":"TypeConstructor","contents":[["Effect"],"Effect"]},{"annotation":[{"start":[65,78],"name":"../../../support/bower_components/purescript-effect/src/Effect.purs","end":[65,82]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}]},null]}}},{"EDInstance":{"edInstanceClassName":[["Data","Functor"],"Functor"],"edInstanceName":{"Ident":"functorEffect"},"edInstanceTypes":[{"annotation":[{"start":[18,35],"name":"../../../support/bower_components/purescript-effect/src/Effect.purs","end":[18,41]},[]],"tag":"TypeConstructor","contents":[["Effect"],"Effect"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Effect"],{"Ident":"functorEffect"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Apply"],"Apply"],"edInstanceName":{"Ident":"applyEffect"},"edInstanceTypes":[{"annotation":[{"start":[21,31],"name":"../../../support/bower_components/purescript-effect/src/Effect.purs","end":[21,37]},[]],"tag":"TypeConstructor","contents":[["Effect"],"Effect"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Effect"],{"Ident":"applyEffect"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Applicative"],"Applicative"],"edInstanceName":{"Ident":"applicativeEffect"},"edInstanceTypes":[{"annotation":[{"start":[24,43],"name":"../../../support/bower_components/purescript-effect/src/Effect.purs","end":[24,49]},[]],"tag":"TypeConstructor","contents":[["Effect"],"Effect"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Effect"],{"Ident":"applicativeEffect"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Bind"],"Bind"],"edInstanceName":{"Ident":"bindEffect"},"edInstanceTypes":[{"annotation":[{"start":[29,29],"name":"../../../support/bower_components/purescript-effect/src/Effect.purs","end":[29,35]},[]],"tag":"TypeConstructor","contents":[["Effect"],"Effect"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Effect"],{"Ident":"bindEffect"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Monad"],"Monad"],"edInstanceName":{"Ident":"monadEffect"},"edInstanceTypes":[{"annotation":[{"start":[34,31],"name":"../../../support/bower_components/purescript-effect/src/Effect.purs","end":[34,37]},[]],"tag":"TypeConstructor","contents":[["Effect"],"Effect"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Effect"],{"Ident":"monadEffect"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Semigroup"],"Semigroup"],"edInstanceName":{"Ident":"semigroupEffect"},"edInstanceTypes":[{"annotation":[{"start":[36,55],"name":"../../../support/bower_components/purescript-effect/src/Effect.purs","end":[36,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,55],"name":"../../../support/bower_components/purescript-effect/src/Effect.purs","end":[36,61]},[]],"tag":"TypeConstructor","contents":[["Effect"],"Effect"]},{"annotation":[{"start":[36,62],"name":"../../../support/bower_components/purescript-effect/src/Effect.purs","end":[36,63]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[36,29],"name":"../../../support/bower_components/purescript-effect/src/Effect.purs","end":[36,40]},[]],"constraintClass":[["Data","Semigroup"],"Semigroup"],"constraintArgs":[{"annotation":[{"start":[36,39],"name":"../../../support/bower_components/purescript-effect/src/Effect.purs","end":[36,40]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Effect"],{"Ident":"semigroupEffect"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Monoid"],"Monoid"],"edInstanceName":{"Ident":"monoidEffect"},"edInstanceTypes":[{"annotation":[{"start":[39,46],"name":"../../../support/bower_components/purescript-effect/src/Effect.purs","end":[39,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[39,46],"name":"../../../support/bower_components/purescript-effect/src/Effect.purs","end":[39,52]},[]],"tag":"TypeConstructor","contents":[["Effect"],"Effect"]},{"annotation":[{"start":[39,53],"name":"../../../support/bower_components/purescript-effect/src/Effect.purs","end":[39,54]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[39,26],"name":"../../../support/bower_components/purescript-effect/src/Effect.purs","end":[39,34]},[]],"constraintClass":[["Data","Monoid"],"Monoid"],"constraintArgs":[{"annotation":[{"start":[39,33],"name":"../../../support/bower_components/purescript-effect/src/Effect.purs","end":[39,34]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["Effect"],{"Ident":"monoidEffect"}]],"edInstanceChainIndex":0}}],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-effect/src/Effect.purs","end":[65,82]}}
diff --git a/tests/purs/publish/basic-example/output/Global.Unsafe/docs.json b/tests/purs/publish/basic-example/output/Global.Unsafe/docs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Global.Unsafe/docs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"reExports":[],"name":"Global.Unsafe","comments":null,"declarations":[{"children":[],"comments":"Uses the global JSON object to turn anything into a string. Careful! Trying\nto serialize functions returns undefined\n","title":"unsafeStringify","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},null]}},"sourceSpan":{"start":[5,1],"name":"../../../support/bower_components/purescript-globals/src/Global/Unsafe.purs","end":[5,56]}},{"children":[],"comments":"Formats Number as a String with limited number of digits after the dot.\n\nMay throw RangeError if the number of digits is not within the allowed range\n(standard precision range is 0 to 20, but implementations may change it)\n","title":"unsafeToFixed","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}]}},"sourceSpan":{"start":[11,1],"name":"../../../support/bower_components/purescript-globals/src/Global/Unsafe.purs","end":[11,56]}},{"children":[],"comments":"Formats Number as String in exponential notation limiting number of digits\nafter the decimal dot.\n\nMay throw RangeError if the number of digits is not within the allowed range\n(standard precision range is 0 to 20, but implementations may change it)\n","title":"unsafeToExponential","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}]}},"sourceSpan":{"start":[18,1],"name":"../../../support/bower_components/purescript-globals/src/Global/Unsafe.purs","end":[18,62]}},{"children":[],"comments":"Formats Number as String in fixed-point or exponential notation rounded\nto specified number of significant digits.\n\nMay throw RangeError if the number of digits is not within the allowed range\n(standard precision range is 0 to 100, but implementations may change it)\n","title":"unsafeToPrecision","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}]}},"sourceSpan":{"start":[25,1],"name":"../../../support/bower_components/purescript-globals/src/Global/Unsafe.purs","end":[25,60]}},{"children":[],"comments":"URI decoding. May throw a `URIError` if given a value with undecodeable\nescape sequences.\n","title":"unsafeDecodeURI","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}},"sourceSpan":{"start":[29,1],"name":"../../../support/bower_components/purescript-globals/src/Global/Unsafe.purs","end":[29,51]}},{"children":[],"comments":"URI encoding. May throw a `URIError` if given a value with unencodeable\ncharacters.\n","title":"unsafeEncodeURI","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}},"sourceSpan":{"start":[33,1],"name":"../../../support/bower_components/purescript-globals/src/Global/Unsafe.purs","end":[33,51]}},{"children":[],"comments":"URI component decoding. May throw a `URIError` if given a value with\nundecodeable escape sequences.\n","title":"unsafeDecodeURIComponent","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}},"sourceSpan":{"start":[37,1],"name":"../../../support/bower_components/purescript-globals/src/Global/Unsafe.purs","end":[37,60]}},{"children":[],"comments":"URI component encoding. May throw a `URIError` if given a value with\nunencodeable characters.\n","title":"unsafeEncodeURIComponent","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}},"sourceSpan":{"start":[41,1],"name":"../../../support/bower_components/purescript-globals/src/Global/Unsafe.purs","end":[41,60]}}]}
diff --git a/tests/purs/publish/basic-example/output/Global.Unsafe/externs.json b/tests/purs/publish/basic-example/output/Global.Unsafe/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Global.Unsafe/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Global","Unsafe"],"efExports":[{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-globals/src/Global/Unsafe.purs","end":[41,60]},{"Ident":"unsafeStringify"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-globals/src/Global/Unsafe.purs","end":[41,60]},{"Ident":"unsafeToFixed"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-globals/src/Global/Unsafe.purs","end":[41,60]},{"Ident":"unsafeToExponential"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-globals/src/Global/Unsafe.purs","end":[41,60]},{"Ident":"unsafeToPrecision"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-globals/src/Global/Unsafe.purs","end":[41,60]},{"Ident":"unsafeDecodeURI"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-globals/src/Global/Unsafe.purs","end":[41,60]},{"Ident":"unsafeEncodeURI"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-globals/src/Global/Unsafe.purs","end":[41,60]},{"Ident":"unsafeDecodeURIComponent"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-globals/src/Global/Unsafe.purs","end":[41,60]},{"Ident":"unsafeEncodeURIComponent"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDValue":{"edValueName":{"Ident":"unsafeStringify"},"edValueType":{"annotation":[{"start":[5,35],"name":"../../../support/bower_components/purescript-globals/src/Global/Unsafe.purs","end":[5,56]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[5,45],"name":"../../../support/bower_components/purescript-globals/src/Global/Unsafe.purs","end":[5,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[5,45],"name":"../../../support/bower_components/purescript-globals/src/Global/Unsafe.purs","end":[5,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[5,47],"name":"../../../support/bower_components/purescript-globals/src/Global/Unsafe.purs","end":[5,49]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[5,45],"name":"../../../support/bower_components/purescript-globals/src/Global/Unsafe.purs","end":[5,46]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[5,50],"name":"../../../support/bower_components/purescript-globals/src/Global/Unsafe.purs","end":[5,56]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},null]}}},{"EDValue":{"edValueName":{"Ident":"unsafeToFixed"},"edValueType":{"annotation":[{"start":[11,33],"name":"../../../support/bower_components/purescript-globals/src/Global/Unsafe.purs","end":[11,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[11,33],"name":"../../../support/bower_components/purescript-globals/src/Global/Unsafe.purs","end":[11,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[11,37],"name":"../../../support/bower_components/purescript-globals/src/Global/Unsafe.purs","end":[11,39]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[11,33],"name":"../../../support/bower_components/purescript-globals/src/Global/Unsafe.purs","end":[11,36]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[11,40],"name":"../../../support/bower_components/purescript-globals/src/Global/Unsafe.purs","end":[11,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[11,40],"name":"../../../support/bower_components/purescript-globals/src/Global/Unsafe.purs","end":[11,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[11,47],"name":"../../../support/bower_components/purescript-globals/src/Global/Unsafe.purs","end":[11,49]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[11,40],"name":"../../../support/bower_components/purescript-globals/src/Global/Unsafe.purs","end":[11,46]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]},{"annotation":[{"start":[11,50],"name":"../../../support/bower_components/purescript-globals/src/Global/Unsafe.purs","end":[11,56]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}]}}},{"EDValue":{"edValueName":{"Ident":"unsafeToExponential"},"edValueType":{"annotation":[{"start":[18,39],"name":"../../../support/bower_components/purescript-globals/src/Global/Unsafe.purs","end":[18,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,39],"name":"../../../support/bower_components/purescript-globals/src/Global/Unsafe.purs","end":[18,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,43],"name":"../../../support/bower_components/purescript-globals/src/Global/Unsafe.purs","end":[18,45]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[18,39],"name":"../../../support/bower_components/purescript-globals/src/Global/Unsafe.purs","end":[18,42]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[18,46],"name":"../../../support/bower_components/purescript-globals/src/Global/Unsafe.purs","end":[18,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,46],"name":"../../../support/bower_components/purescript-globals/src/Global/Unsafe.purs","end":[18,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,53],"name":"../../../support/bower_components/purescript-globals/src/Global/Unsafe.purs","end":[18,55]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[18,46],"name":"../../../support/bower_components/purescript-globals/src/Global/Unsafe.purs","end":[18,52]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]},{"annotation":[{"start":[18,56],"name":"../../../support/bower_components/purescript-globals/src/Global/Unsafe.purs","end":[18,62]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}]}}},{"EDValue":{"edValueName":{"Ident":"unsafeToPrecision"},"edValueType":{"annotation":[{"start":[25,37],"name":"../../../support/bower_components/purescript-globals/src/Global/Unsafe.purs","end":[25,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[25,37],"name":"../../../support/bower_components/purescript-globals/src/Global/Unsafe.purs","end":[25,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[25,41],"name":"../../../support/bower_components/purescript-globals/src/Global/Unsafe.purs","end":[25,43]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[25,37],"name":"../../../support/bower_components/purescript-globals/src/Global/Unsafe.purs","end":[25,40]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[25,44],"name":"../../../support/bower_components/purescript-globals/src/Global/Unsafe.purs","end":[25,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[25,44],"name":"../../../support/bower_components/purescript-globals/src/Global/Unsafe.purs","end":[25,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[25,51],"name":"../../../support/bower_components/purescript-globals/src/Global/Unsafe.purs","end":[25,53]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[25,44],"name":"../../../support/bower_components/purescript-globals/src/Global/Unsafe.purs","end":[25,50]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]},{"annotation":[{"start":[25,54],"name":"../../../support/bower_components/purescript-globals/src/Global/Unsafe.purs","end":[25,60]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}]}}},{"EDValue":{"edValueName":{"Ident":"unsafeDecodeURI"},"edValueType":{"annotation":[{"start":[29,35],"name":"../../../support/bower_components/purescript-globals/src/Global/Unsafe.purs","end":[29,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[29,35],"name":"../../../support/bower_components/purescript-globals/src/Global/Unsafe.purs","end":[29,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[29,42],"name":"../../../support/bower_components/purescript-globals/src/Global/Unsafe.purs","end":[29,44]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[29,35],"name":"../../../support/bower_components/purescript-globals/src/Global/Unsafe.purs","end":[29,41]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[{"start":[29,45],"name":"../../../support/bower_components/purescript-globals/src/Global/Unsafe.purs","end":[29,51]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}}},{"EDValue":{"edValueName":{"Ident":"unsafeEncodeURI"},"edValueType":{"annotation":[{"start":[33,35],"name":"../../../support/bower_components/purescript-globals/src/Global/Unsafe.purs","end":[33,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[33,35],"name":"../../../support/bower_components/purescript-globals/src/Global/Unsafe.purs","end":[33,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[33,42],"name":"../../../support/bower_components/purescript-globals/src/Global/Unsafe.purs","end":[33,44]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[33,35],"name":"../../../support/bower_components/purescript-globals/src/Global/Unsafe.purs","end":[33,41]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[{"start":[33,45],"name":"../../../support/bower_components/purescript-globals/src/Global/Unsafe.purs","end":[33,51]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}}},{"EDValue":{"edValueName":{"Ident":"unsafeDecodeURIComponent"},"edValueType":{"annotation":[{"start":[37,44],"name":"../../../support/bower_components/purescript-globals/src/Global/Unsafe.purs","end":[37,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[37,44],"name":"../../../support/bower_components/purescript-globals/src/Global/Unsafe.purs","end":[37,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[37,51],"name":"../../../support/bower_components/purescript-globals/src/Global/Unsafe.purs","end":[37,53]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[37,44],"name":"../../../support/bower_components/purescript-globals/src/Global/Unsafe.purs","end":[37,50]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[{"start":[37,54],"name":"../../../support/bower_components/purescript-globals/src/Global/Unsafe.purs","end":[37,60]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}}},{"EDValue":{"edValueName":{"Ident":"unsafeEncodeURIComponent"},"edValueType":{"annotation":[{"start":[41,44],"name":"../../../support/bower_components/purescript-globals/src/Global/Unsafe.purs","end":[41,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[41,44],"name":"../../../support/bower_components/purescript-globals/src/Global/Unsafe.purs","end":[41,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[41,51],"name":"../../../support/bower_components/purescript-globals/src/Global/Unsafe.purs","end":[41,53]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[41,44],"name":"../../../support/bower_components/purescript-globals/src/Global/Unsafe.purs","end":[41,50]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[{"start":[41,54],"name":"../../../support/bower_components/purescript-globals/src/Global/Unsafe.purs","end":[41,60]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}}}],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-globals/src/Global/Unsafe.purs","end":[41,60]}}
diff --git a/tests/purs/publish/basic-example/output/Global/docs.json b/tests/purs/publish/basic-example/output/Global/docs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Global/docs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"reExports":[],"name":"Global","comments":"This module defines types for some global Javascript functions\nand values.\n","declarations":[{"children":[],"comments":"Not a number (NaN)\n","title":"nan","info":{"declType":"value","type":{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}},"sourceSpan":{"start":[6,1],"name":"../../../support/bower_components/purescript-globals/src/Global.purs","end":[6,29]}},{"children":[],"comments":"Test whether a number is NaN\n","title":"isNaN","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}},"sourceSpan":{"start":[9,1],"name":"../../../support/bower_components/purescript-globals/src/Global.purs","end":[9,42]}},{"children":[],"comments":"Positive infinity\n","title":"infinity","info":{"declType":"value","type":{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}},"sourceSpan":{"start":[12,1],"name":"../../../support/bower_components/purescript-globals/src/Global.purs","end":[12,34]}},{"children":[],"comments":"Test whether a number is finite\n","title":"isFinite","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}},"sourceSpan":{"start":[15,1],"name":"../../../support/bower_components/purescript-globals/src/Global.purs","end":[15,45]}},{"children":[],"comments":"Parse an integer from a `String` in the specified base\n","title":"readInt","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]}]}},"sourceSpan":{"start":[18,1],"name":"../../../support/bower_components/purescript-globals/src/Global.purs","end":[18,50]}},{"children":[],"comments":"Parse a floating point value from a `String`\n","title":"readFloat","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]}},"sourceSpan":{"start":[21,1],"name":"../../../support/bower_components/purescript-globals/src/Global.purs","end":[21,45]}}]}
diff --git a/tests/purs/publish/basic-example/output/Global/externs.json b/tests/purs/publish/basic-example/output/Global/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Global/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Global"],"efExports":[{"ValueRef":[{"start":[3,1],"name":"../../../support/bower_components/purescript-globals/src/Global.purs","end":[21,45]},{"Ident":"nan"}]},{"ValueRef":[{"start":[3,1],"name":"../../../support/bower_components/purescript-globals/src/Global.purs","end":[21,45]},{"Ident":"isNaN"}]},{"ValueRef":[{"start":[3,1],"name":"../../../support/bower_components/purescript-globals/src/Global.purs","end":[21,45]},{"Ident":"infinity"}]},{"ValueRef":[{"start":[3,1],"name":"../../../support/bower_components/purescript-globals/src/Global.purs","end":[21,45]},{"Ident":"isFinite"}]},{"ValueRef":[{"start":[3,1],"name":"../../../support/bower_components/purescript-globals/src/Global.purs","end":[21,45]},{"Ident":"readInt"}]},{"ValueRef":[{"start":[3,1],"name":"../../../support/bower_components/purescript-globals/src/Global.purs","end":[21,45]},{"Ident":"readFloat"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDValue":{"edValueName":{"Ident":"nan"},"edValueType":{"annotation":[{"start":[6,23],"name":"../../../support/bower_components/purescript-globals/src/Global.purs","end":[6,29]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}}},{"EDValue":{"edValueName":{"Ident":"isNaN"},"edValueType":{"annotation":[{"start":[9,25],"name":"../../../support/bower_components/purescript-globals/src/Global.purs","end":[9,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[9,25],"name":"../../../support/bower_components/purescript-globals/src/Global.purs","end":[9,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[9,32],"name":"../../../support/bower_components/purescript-globals/src/Global.purs","end":[9,34]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[9,25],"name":"../../../support/bower_components/purescript-globals/src/Global.purs","end":[9,31]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]},{"annotation":[{"start":[9,35],"name":"../../../support/bower_components/purescript-globals/src/Global.purs","end":[9,42]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}}},{"EDValue":{"edValueName":{"Ident":"infinity"},"edValueType":{"annotation":[{"start":[12,28],"name":"../../../support/bower_components/purescript-globals/src/Global.purs","end":[12,34]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}}},{"EDValue":{"edValueName":{"Ident":"isFinite"},"edValueType":{"annotation":[{"start":[15,28],"name":"../../../support/bower_components/purescript-globals/src/Global.purs","end":[15,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[15,28],"name":"../../../support/bower_components/purescript-globals/src/Global.purs","end":[15,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[15,35],"name":"../../../support/bower_components/purescript-globals/src/Global.purs","end":[15,37]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[15,28],"name":"../../../support/bower_components/purescript-globals/src/Global.purs","end":[15,34]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]},{"annotation":[{"start":[15,38],"name":"../../../support/bower_components/purescript-globals/src/Global.purs","end":[15,45]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}}},{"EDValue":{"edValueName":{"Ident":"readInt"},"edValueType":{"annotation":[{"start":[18,27],"name":"../../../support/bower_components/purescript-globals/src/Global.purs","end":[18,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,27],"name":"../../../support/bower_components/purescript-globals/src/Global.purs","end":[18,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,31],"name":"../../../support/bower_components/purescript-globals/src/Global.purs","end":[18,33]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[18,27],"name":"../../../support/bower_components/purescript-globals/src/Global.purs","end":[18,30]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[18,34],"name":"../../../support/bower_components/purescript-globals/src/Global.purs","end":[18,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,34],"name":"../../../support/bower_components/purescript-globals/src/Global.purs","end":[18,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,41],"name":"../../../support/bower_components/purescript-globals/src/Global.purs","end":[18,43]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[18,34],"name":"../../../support/bower_components/purescript-globals/src/Global.purs","end":[18,40]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[{"start":[18,44],"name":"../../../support/bower_components/purescript-globals/src/Global.purs","end":[18,50]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]}]}}},{"EDValue":{"edValueName":{"Ident":"readFloat"},"edValueType":{"annotation":[{"start":[21,29],"name":"../../../support/bower_components/purescript-globals/src/Global.purs","end":[21,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[21,29],"name":"../../../support/bower_components/purescript-globals/src/Global.purs","end":[21,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[21,36],"name":"../../../support/bower_components/purescript-globals/src/Global.purs","end":[21,38]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[21,29],"name":"../../../support/bower_components/purescript-globals/src/Global.purs","end":[21,35]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[{"start":[21,39],"name":"../../../support/bower_components/purescript-globals/src/Global.purs","end":[21,45]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]}}}],"efSourceSpan":{"start":[3,1],"name":"../../../support/bower_components/purescript-globals/src/Global.purs","end":[21,45]}}
diff --git a/tests/purs/publish/basic-example/output/Main/docs.json b/tests/purs/publish/basic-example/output/Main/docs.json
--- a/tests/purs/publish/basic-example/output/Main/docs.json
+++ b/tests/purs/publish/basic-example/output/Main/docs.json
@@ -1,1 +1,1 @@
-{"reExports":[],"name":"Main","comments":null,"declarations":[{"children":[{"comments":null,"title":"Target","info":{"arguments":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}],"declType":"dataConstructor"},"sourceSpan":null},{"comments":null,"title":"newtypeTarget","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Newtype"],"Newtype"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Main"],"Target"]}]},{"annotation":[],"tag":"TypeWildcard","contents":null}]}},"sourceSpan":{"start":[10,1],"name":"src/Main.purs","end":[10,50]}}],"comments":null,"title":"Target","info":{"declType":"data","dataDeclType":"newtype","typeArguments":[]},"sourceSpan":{"start":[8,1],"name":"src/Main.purs","end":[8,31]}},{"children":[],"comments":null,"title":"greetingTarget","info":{"declType":"value","type":{"annotation":[],"tag":"TypeConstructor","contents":[["Main"],"Target"]}},"sourceSpan":{"start":[12,1],"name":"src/Main.purs","end":[12,25]}},{"children":[],"comments":null,"title":"main","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Effect"],"Effect"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}},"sourceSpan":{"start":[15,1],"name":"src/Main.purs","end":[15,20]}}]}
+{"comments":null,"declarations":[{"children":[{"comments":null,"info":{"arguments":[{"annotation":[],"contents":[["Prim"],"String"],"tag":"TypeConstructor"}],"declType":"dataConstructor"},"sourceSpan":{"end":[8,31],"name":"/home/jordan/programming/purescript/tests/purs/publish/basic-example/src/Main.purs","start":[8,16]},"title":"Target"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Newtype"],"Newtype"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Main"],"Target"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":null,"tag":"TypeWildcard"}],"tag":"TypeApp"}},"sourceSpan":{"end":[10,50],"name":"/home/jordan/programming/purescript/tests/purs/publish/basic-example/src/Main.purs","start":[10,1]},"title":"newtypeTarget"}],"comments":null,"info":{"dataDeclType":"newtype","declType":"data","roles":[],"typeArguments":[]},"kind":null,"sourceSpan":{"end":[8,31],"name":"/home/jordan/programming/purescript/tests/purs/publish/basic-example/src/Main.purs","start":[8,1]},"title":"Target"},{"children":[],"comments":null,"info":{"declType":"value","type":{"annotation":[],"contents":[["Main"],"Target"],"tag":"TypeConstructor"}},"kind":null,"sourceSpan":{"end":[12,25],"name":"/home/jordan/programming/purescript/tests/purs/publish/basic-example/src/Main.purs","start":[12,1]},"title":"greetingTarget"},{"children":[],"comments":null,"info":{"declType":"value","type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Effect"],"Effect"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Unit"],"Unit"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"kind":null,"sourceSpan":{"end":[15,20],"name":"/home/jordan/programming/purescript/tests/purs/publish/basic-example/src/Main.purs","start":[15,1]},"title":"main"}],"name":"Main","reExports":[]}
diff --git a/tests/purs/publish/basic-example/output/Main/externs.json b/tests/purs/publish/basic-example/output/Main/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Main/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Main"],"efExports":[{"TypeRef":[{"start":[1,1],"name":"src/Main.purs","end":[16,58]},"Target",["Target"]]},{"ValueRef":[{"start":[1,1],"name":"src/Main.purs","end":[16,58]},{"Ident":"greetingTarget"}]},{"ValueRef":[{"start":[1,1],"name":"src/Main.purs","end":[16,58]},{"Ident":"main"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"newtypeTarget"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Prelude"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Effect"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[4,16],"name":"src/Main.purs","end":[4,22]},"Effect",[]]}]},"eiImportedAs":null},{"eiModule":["Effect","Console"],"eiImportType":{"Explicit":[{"ValueRef":[{"start":[5,24],"name":"src/Main.purs","end":[5,27]},{"Ident":"log"}]}]},"eiImportedAs":null},{"eiModule":["Data","Newtype"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[6,22],"name":"src/Main.purs","end":[6,35]},"Newtype"]},{"ValueRef":[{"start":[6,37],"name":"src/Main.purs","end":[6,39]},{"Ident":"un"}]}]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDType":{"edTypeName":"Target","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},"edTypeDeclarationKind":{"DataType":{"args":[],"ctors":[["Target",[{"annotation":[{"start":[8,25],"name":"src/Main.purs","end":[8,31]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]]]}}}},{"EDDataConstructor":{"edDataCtorName":"Target","edDataCtorOrigin":"newtype","edDataCtorTypeCtor":"Target","edDataCtorType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[8,25],"name":"src/Main.purs","end":[8,31]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Main"],"Target"]}]},"edDataCtorFields":[{"Ident":"value0"}]}},{"EDValue":{"edValueName":{"Ident":"greetingTarget"},"edValueType":{"annotation":[{"start":[12,19],"name":"src/Main.purs","end":[12,25]},[]],"tag":"TypeConstructor","contents":[["Main"],"Target"]}}},{"EDValue":{"edValueName":{"Ident":"main"},"edValueType":{"annotation":[{"start":[15,9],"name":"src/Main.purs","end":[15,20]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[15,9],"name":"src/Main.purs","end":[15,15]},[]],"tag":"TypeConstructor","contents":[["Effect"],"Effect"]},{"annotation":[{"start":[15,16],"name":"src/Main.purs","end":[15,20]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}}},{"EDInstance":{"edInstanceClassName":[["Data","Newtype"],"Newtype"],"edInstanceName":{"Ident":"newtypeTarget"},"edInstanceTypes":[{"annotation":[{"start":[10,42],"name":"src/Main.purs","end":[10,48]},[]],"tag":"TypeConstructor","contents":[["Main"],"Target"]},{"annotation":[{"start":[8,25],"name":"src/Main.purs","end":[8,31]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Main"],{"Ident":"newtypeTarget"}]],"edInstanceChainIndex":0}}],"efSourceSpan":{"start":[1,1],"name":"src/Main.purs","end":[16,58]}}
diff --git a/tests/purs/publish/basic-example/output/Math/docs.json b/tests/purs/publish/basic-example/output/Math/docs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Math/docs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"reExports":[],"name":"Math","comments":"Wraps the math functions and constants from Javascript's built-in `Math` object.\nSee [Math Reference at MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math).\n","declarations":[{"children":[],"comments":"An alias to make types in this module more explicit.\n","title":"Radians","info":{"arguments":[],"declType":"typeSynonym","type":{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}},"sourceSpan":{"start":[6,1],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[6,22]}},{"children":[],"comments":"Returns the absolute value of the argument.\n","title":"abs","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]}},"sourceSpan":{"start":[9,1],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[9,39]}},{"children":[],"comments":"Returns the inverse cosine of the argument.\n","title":"acos","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Math"],"Radians"]}]}},"sourceSpan":{"start":[12,1],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[12,41]}},{"children":[],"comments":"Returns the inverse sine of the argument.\n","title":"asin","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Math"],"Radians"]}]}},"sourceSpan":{"start":[15,1],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[15,41]}},{"children":[],"comments":"Returns the inverse tangent of the argument.\n","title":"atan","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Math"],"Radians"]}]}},"sourceSpan":{"start":[18,1],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[18,41]}},{"children":[],"comments":"Four-quadrant tangent inverse. Given the arguments `y` and `x`, returns\nthe inverse tangent of `y / x`, where the signs of both arguments are used\nto determine the sign of the result.\nIf the first argument is negative, the result will be negative.\nThe result is the angle between the positive x axis and  a point `(x, y)`.\n","title":"atan2","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Math"],"Radians"]}]}]}},"sourceSpan":{"start":[25,1],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[25,52]}},{"children":[],"comments":"Returns the smallest integer not smaller than the argument.\n","title":"ceil","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]}},"sourceSpan":{"start":[28,1],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[28,40]}},{"children":[],"comments":"Returns the cosine of the argument.\n","title":"cos","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Math"],"Radians"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]}},"sourceSpan":{"start":[31,1],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[31,40]}},{"children":[],"comments":"Returns `e` exponentiated to the power of the argument.\n","title":"exp","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]}},"sourceSpan":{"start":[34,1],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[34,39]}},{"children":[],"comments":"Returns the largest integer not larger than the argument.\n","title":"floor","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]}},"sourceSpan":{"start":[37,1],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[37,41]}},{"children":[],"comments":"Returns the natural logarithm of a number.\n","title":"log","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]}},"sourceSpan":{"start":[40,1],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[40,39]}},{"children":[],"comments":"Returns the largest of two numbers.\n","title":"max","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]}]}},"sourceSpan":{"start":[43,1],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[43,49]}},{"children":[],"comments":"Returns the smallest of two numbers.\n","title":"min","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]}]}},"sourceSpan":{"start":[46,1],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[46,49]}},{"children":[],"comments":"Return  the first argument exponentiated to the power of the second argument.\n","title":"pow","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]}]}},"sourceSpan":{"start":[49,1],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[49,49]}},{"children":[],"comments":"Returns the integer closest to the argument.\n","title":"round","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]}},"sourceSpan":{"start":[52,1],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[52,41]}},{"children":[],"comments":"Returns the sine of the argument.\n","title":"sin","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Math"],"Radians"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]}},"sourceSpan":{"start":[55,1],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[55,40]}},{"children":[],"comments":"Returns the square root of the argument.\n","title":"sqrt","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]}},"sourceSpan":{"start":[58,1],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[58,40]}},{"children":[],"comments":"Returns the tangent of the argument.\n","title":"tan","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Math"],"Radians"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]}},"sourceSpan":{"start":[61,1],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[61,40]}},{"children":[],"comments":"Truncates the decimal portion of a number. Equivalent to `floor` if the\nnumber is positive, and `ceil` if the number is negative.\n","title":"trunc","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]}},"sourceSpan":{"start":[65,1],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[65,41]}},{"children":[],"comments":"Computes the remainder after division, wrapping Javascript's `%` operator.\n","title":"remainder","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]}]}},"sourceSpan":{"start":[68,1],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[68,55]}},{"children":[],"comments":null,"title":"(%)","info":{"declType":"alias","alias":[["Math"],{"Right":{"Left":{"Ident":"remainder"}}}],"fixity":{"associativity":"infixl","precedence":7}},"sourceSpan":{"start":[70,1],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[70,24]}},{"children":[],"comments":"The base of natural logarithms, *e*, around 2.71828.\n","title":"e","info":{"declType":"value","type":{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}},"sourceSpan":{"start":[73,1],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[73,27]}},{"children":[],"comments":"The natural logarithm of 2, around 0.6931.\n","title":"ln2","info":{"declType":"value","type":{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}},"sourceSpan":{"start":[76,1],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[76,29]}},{"children":[],"comments":"The natural logarithm of 10, around 2.3025.\n","title":"ln10","info":{"declType":"value","type":{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}},"sourceSpan":{"start":[79,1],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[79,30]}},{"children":[],"comments":"The base 2 logarithm of `e`, around 1.4426.\n","title":"log2e","info":{"declType":"value","type":{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}},"sourceSpan":{"start":[82,1],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[82,31]}},{"children":[],"comments":"Base 10 logarithm of `e`, around 0.43429.\n","title":"log10e","info":{"declType":"value","type":{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}},"sourceSpan":{"start":[85,1],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[85,32]}},{"children":[],"comments":"The ratio of the circumference of a circle to its diameter, around 3.14159.\n","title":"pi","info":{"declType":"value","type":{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}},"sourceSpan":{"start":[88,1],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[88,28]}},{"children":[],"comments":"The ratio of the circumference of a circle to its radius, around 6.283185.\n","title":"tau","info":{"declType":"value","type":{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}},"sourceSpan":{"start":[91,1],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[91,29]}},{"children":[],"comments":"The Square root of one half, around 0.707107.\n","title":"sqrt1_2","info":{"declType":"value","type":{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}},"sourceSpan":{"start":[94,1],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[94,33]}},{"children":[],"comments":"The square root of two, around 1.41421.\n","title":"sqrt2","info":{"declType":"value","type":{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}},"sourceSpan":{"start":[97,1],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[97,31]}}]}
diff --git a/tests/purs/publish/basic-example/output/Math/externs.json b/tests/purs/publish/basic-example/output/Math/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Math/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Math"],"efExports":[{"TypeRef":[{"start":[3,1],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[97,31]},"Radians",[]]},{"ValueRef":[{"start":[3,1],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[97,31]},{"Ident":"abs"}]},{"ValueRef":[{"start":[3,1],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[97,31]},{"Ident":"acos"}]},{"ValueRef":[{"start":[3,1],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[97,31]},{"Ident":"asin"}]},{"ValueRef":[{"start":[3,1],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[97,31]},{"Ident":"atan"}]},{"ValueRef":[{"start":[3,1],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[97,31]},{"Ident":"atan2"}]},{"ValueRef":[{"start":[3,1],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[97,31]},{"Ident":"ceil"}]},{"ValueRef":[{"start":[3,1],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[97,31]},{"Ident":"cos"}]},{"ValueRef":[{"start":[3,1],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[97,31]},{"Ident":"exp"}]},{"ValueRef":[{"start":[3,1],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[97,31]},{"Ident":"floor"}]},{"ValueRef":[{"start":[3,1],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[97,31]},{"Ident":"log"}]},{"ValueRef":[{"start":[3,1],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[97,31]},{"Ident":"max"}]},{"ValueRef":[{"start":[3,1],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[97,31]},{"Ident":"min"}]},{"ValueRef":[{"start":[3,1],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[97,31]},{"Ident":"pow"}]},{"ValueRef":[{"start":[3,1],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[97,31]},{"Ident":"round"}]},{"ValueRef":[{"start":[3,1],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[97,31]},{"Ident":"sin"}]},{"ValueRef":[{"start":[3,1],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[97,31]},{"Ident":"sqrt"}]},{"ValueRef":[{"start":[3,1],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[97,31]},{"Ident":"tan"}]},{"ValueRef":[{"start":[3,1],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[97,31]},{"Ident":"trunc"}]},{"ValueRef":[{"start":[3,1],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[97,31]},{"Ident":"remainder"}]},{"ValueOpRef":[{"start":[3,1],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[97,31]},"%"]},{"ValueRef":[{"start":[3,1],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[97,31]},{"Ident":"e"}]},{"ValueRef":[{"start":[3,1],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[97,31]},{"Ident":"ln2"}]},{"ValueRef":[{"start":[3,1],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[97,31]},{"Ident":"ln10"}]},{"ValueRef":[{"start":[3,1],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[97,31]},{"Ident":"log2e"}]},{"ValueRef":[{"start":[3,1],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[97,31]},{"Ident":"log10e"}]},{"ValueRef":[{"start":[3,1],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[97,31]},{"Ident":"pi"}]},{"ValueRef":[{"start":[3,1],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[97,31]},{"Ident":"tau"}]},{"ValueRef":[{"start":[3,1],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[97,31]},{"Ident":"sqrt1_2"}]},{"ValueRef":[{"start":[3,1],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[97,31]},{"Ident":"sqrt2"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null}],"efFixities":[{"efAssociativity":"infixl","efPrecedence":7,"efOperator":"%","efAlias":[["Math"],{"Left":{"Ident":"remainder"}}]}],"efTypeFixities":[],"efDeclarations":[{"EDType":{"edTypeName":"Radians","edTypeKind":{"annotation":[{"start":[6,16],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[6,22]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"Radians","edTypeSynonymArguments":[],"edTypeSynonymType":{"annotation":[{"start":[6,16],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[6,22]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}}},{"EDValue":{"edValueName":{"Ident":"abs"},"edValueType":{"annotation":[{"start":[9,23],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[9,39]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[9,23],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[9,39]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[9,30],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[9,32]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[9,23],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[9,29]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]},{"annotation":[{"start":[9,33],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[9,39]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]}}},{"EDValue":{"edValueName":{"Ident":"acos"},"edValueType":{"annotation":[{"start":[12,24],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[12,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[12,24],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[12,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[12,31],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[12,33]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[12,24],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[12,30]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]},{"annotation":[{"start":[12,34],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[12,41]},[]],"tag":"TypeConstructor","contents":[["Math"],"Radians"]}]}}},{"EDValue":{"edValueName":{"Ident":"asin"},"edValueType":{"annotation":[{"start":[15,24],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[15,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[15,24],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[15,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[15,31],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[15,33]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[15,24],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[15,30]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]},{"annotation":[{"start":[15,34],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[15,41]},[]],"tag":"TypeConstructor","contents":[["Math"],"Radians"]}]}}},{"EDValue":{"edValueName":{"Ident":"atan"},"edValueType":{"annotation":[{"start":[18,24],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[18,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,24],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[18,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,31],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[18,33]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[18,24],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[18,30]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]},{"annotation":[{"start":[18,34],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[18,41]},[]],"tag":"TypeConstructor","contents":[["Math"],"Radians"]}]}}},{"EDValue":{"edValueName":{"Ident":"atan2"},"edValueType":{"annotation":[{"start":[25,25],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[25,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[25,25],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[25,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[25,32],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[25,34]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[25,25],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[25,31]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]},{"annotation":[{"start":[25,35],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[25,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[25,35],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[25,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[25,42],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[25,44]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[25,35],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[25,41]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]},{"annotation":[{"start":[25,45],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[25,52]},[]],"tag":"TypeConstructor","contents":[["Math"],"Radians"]}]}]}}},{"EDValue":{"edValueName":{"Ident":"ceil"},"edValueType":{"annotation":[{"start":[28,24],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[28,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[28,24],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[28,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[28,31],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[28,33]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[28,24],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[28,30]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]},{"annotation":[{"start":[28,34],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[28,40]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]}}},{"EDValue":{"edValueName":{"Ident":"cos"},"edValueType":{"annotation":[{"start":[31,23],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[31,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[31,23],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[31,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[31,31],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[31,33]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[31,23],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[31,30]},[]],"tag":"TypeConstructor","contents":[["Math"],"Radians"]}]},{"annotation":[{"start":[31,34],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[31,40]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]}}},{"EDValue":{"edValueName":{"Ident":"exp"},"edValueType":{"annotation":[{"start":[34,23],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[34,39]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[34,23],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[34,39]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[34,30],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[34,32]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[34,23],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[34,29]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]},{"annotation":[{"start":[34,33],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[34,39]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]}}},{"EDValue":{"edValueName":{"Ident":"floor"},"edValueType":{"annotation":[{"start":[37,25],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[37,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[37,25],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[37,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[37,32],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[37,34]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[37,25],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[37,31]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]},{"annotation":[{"start":[37,35],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[37,41]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]}}},{"EDValue":{"edValueName":{"Ident":"log"},"edValueType":{"annotation":[{"start":[40,23],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[40,39]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[40,23],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[40,39]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[40,30],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[40,32]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[40,23],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[40,29]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]},{"annotation":[{"start":[40,33],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[40,39]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]}}},{"EDValue":{"edValueName":{"Ident":"max"},"edValueType":{"annotation":[{"start":[43,23],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[43,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[43,23],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[43,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[43,30],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[43,32]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[43,23],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[43,29]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]},{"annotation":[{"start":[43,33],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[43,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[43,33],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[43,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[43,40],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[43,42]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[43,33],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[43,39]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]},{"annotation":[{"start":[43,43],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[43,49]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]}]}}},{"EDValue":{"edValueName":{"Ident":"min"},"edValueType":{"annotation":[{"start":[46,23],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[46,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[46,23],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[46,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[46,30],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[46,32]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[46,23],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[46,29]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]},{"annotation":[{"start":[46,33],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[46,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[46,33],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[46,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[46,40],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[46,42]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[46,33],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[46,39]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]},{"annotation":[{"start":[46,43],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[46,49]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]}]}}},{"EDValue":{"edValueName":{"Ident":"pow"},"edValueType":{"annotation":[{"start":[49,23],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[49,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,23],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[49,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,30],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[49,32]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[49,23],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[49,29]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]},{"annotation":[{"start":[49,33],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[49,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,33],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[49,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,40],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[49,42]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[49,33],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[49,39]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]},{"annotation":[{"start":[49,43],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[49,49]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]}]}}},{"EDValue":{"edValueName":{"Ident":"round"},"edValueType":{"annotation":[{"start":[52,25],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[52,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,25],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[52,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,32],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[52,34]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[52,25],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[52,31]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]},{"annotation":[{"start":[52,35],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[52,41]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]}}},{"EDValue":{"edValueName":{"Ident":"sin"},"edValueType":{"annotation":[{"start":[55,23],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[55,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,23],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[55,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,31],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[55,33]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[55,23],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[55,30]},[]],"tag":"TypeConstructor","contents":[["Math"],"Radians"]}]},{"annotation":[{"start":[55,34],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[55,40]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]}}},{"EDValue":{"edValueName":{"Ident":"sqrt"},"edValueType":{"annotation":[{"start":[58,24],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[58,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[58,24],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[58,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[58,31],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[58,33]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[58,24],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[58,30]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]},{"annotation":[{"start":[58,34],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[58,40]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]}}},{"EDValue":{"edValueName":{"Ident":"tan"},"edValueType":{"annotation":[{"start":[61,23],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[61,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[61,23],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[61,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[61,31],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[61,33]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[61,23],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[61,30]},[]],"tag":"TypeConstructor","contents":[["Math"],"Radians"]}]},{"annotation":[{"start":[61,34],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[61,40]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]}}},{"EDValue":{"edValueName":{"Ident":"trunc"},"edValueType":{"annotation":[{"start":[65,25],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[65,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[65,25],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[65,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[65,32],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[65,34]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[65,25],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[65,31]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]},{"annotation":[{"start":[65,35],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[65,41]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]}}},{"EDValue":{"edValueName":{"Ident":"remainder"},"edValueType":{"annotation":[{"start":[68,29],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[68,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[68,29],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[68,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[68,36],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[68,38]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[68,29],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[68,35]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]},{"annotation":[{"start":[68,39],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[68,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[68,39],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[68,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[68,46],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[68,48]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[68,39],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[68,45]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]},{"annotation":[{"start":[68,49],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[68,55]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]}]}}},{"EDValue":{"edValueName":{"Ident":"e"},"edValueType":{"annotation":[{"start":[73,21],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[73,27]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}}},{"EDValue":{"edValueName":{"Ident":"ln2"},"edValueType":{"annotation":[{"start":[76,23],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[76,29]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}}},{"EDValue":{"edValueName":{"Ident":"ln10"},"edValueType":{"annotation":[{"start":[79,24],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[79,30]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}}},{"EDValue":{"edValueName":{"Ident":"log2e"},"edValueType":{"annotation":[{"start":[82,25],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[82,31]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}}},{"EDValue":{"edValueName":{"Ident":"log10e"},"edValueType":{"annotation":[{"start":[85,26],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[85,32]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}}},{"EDValue":{"edValueName":{"Ident":"pi"},"edValueType":{"annotation":[{"start":[88,22],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[88,28]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}}},{"EDValue":{"edValueName":{"Ident":"tau"},"edValueType":{"annotation":[{"start":[91,23],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[91,29]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}}},{"EDValue":{"edValueName":{"Ident":"sqrt1_2"},"edValueType":{"annotation":[{"start":[94,27],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[94,33]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}}},{"EDValue":{"edValueName":{"Ident":"sqrt2"},"edValueType":{"annotation":[{"start":[97,25],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[97,31]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}}}],"efSourceSpan":{"start":[3,1],"name":"../../../support/bower_components/purescript-math/src/Math.purs","end":[97,31]}}
diff --git a/tests/purs/publish/basic-example/output/PSCI.Support/docs.json b/tests/purs/publish/basic-example/output/PSCI.Support/docs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/PSCI.Support/docs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"reExports":[],"name":"PSCI.Support","comments":"This module provides support for the\nPureScript interactive mode, PSCI.\n","declarations":[{"children":[{"comments":null,"title":"eval","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Effect"],"Effect"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}},"sourceSpan":{"start":[17,3],"name":"../../../support/bower_components/purescript-psci-support/src/PSCI/Support.purs","end":[17,27]}},{"comments":null,"title":"evalEffect","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["PSCI","Support"],"Eval"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["PSCI","Support"],"Eval"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Effect"],"Effect"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[19,1],"name":"../../../support/bower_components/purescript-psci-support/src/PSCI/Support.purs","end":[20,22]}},{"comments":null,"title":"evalShow","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Show"],"Show"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["PSCI","Support"],"Eval"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}},"sourceSpan":{"start":[22,1],"name":"../../../support/bower_components/purescript-psci-support/src/PSCI/Support.purs","end":[23,17]}}],"comments":"The `Eval` class captures those types which can be\nevaluated in the REPL.\n\nThere are instances provided for the `Effect` type\nconstructor and any `Show`able types.\n","title":"Eval","info":{"fundeps":[],"arguments":[["a",null]],"declType":"typeClass","superclasses":[]},"sourceSpan":{"start":[16,1],"name":"../../../support/bower_components/purescript-psci-support/src/PSCI/Support.purs","end":[17,27]}}]}
diff --git a/tests/purs/publish/basic-example/output/PSCI.Support/externs.json b/tests/purs/publish/basic-example/output/PSCI.Support/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/PSCI.Support/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["PSCI","Support"],"efExports":[{"ValueRef":[{"start":[4,1],"name":"../../../support/bower_components/purescript-psci-support/src/PSCI/Support.purs","end":[23,17]},{"Ident":"eval"}]},{"TypeClassRef":[{"start":[4,1],"name":"../../../support/bower_components/purescript-psci-support/src/PSCI/Support.purs","end":[23,17]},"Eval"]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"evalEffect"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"evalShow"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Prelude"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Effect"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[8,16],"name":"../../../support/bower_components/purescript-psci-support/src/PSCI/Support.purs","end":[8,22]},"Effect",[]]}]},"eiImportedAs":null},{"eiModule":["Effect","Console"],"eiImportType":{"Explicit":[{"ValueRef":[{"start":[9,24],"name":"../../../support/bower_components/purescript-psci-support/src/PSCI/Support.purs","end":[9,31]},{"Ident":"logShow"}]}]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDValue":{"edValueName":{"Ident":"eval"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["PSCI","Support"],"Eval"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[17,11],"name":"../../../support/bower_components/purescript-psci-support/src/PSCI/Support.purs","end":[17,27]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[17,11],"name":"../../../support/bower_components/purescript-psci-support/src/PSCI/Support.purs","end":[17,27]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[17,13],"name":"../../../support/bower_components/purescript-psci-support/src/PSCI/Support.purs","end":[17,15]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[17,11],"name":"../../../support/bower_components/purescript-psci-support/src/PSCI/Support.purs","end":[17,12]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[17,16],"name":"../../../support/bower_components/purescript-psci-support/src/PSCI/Support.purs","end":[17,27]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[17,16],"name":"../../../support/bower_components/purescript-psci-support/src/PSCI/Support.purs","end":[17,22]},[]],"tag":"TypeConstructor","contents":[["Effect"],"Effect"]},{"annotation":[{"start":[17,23],"name":"../../../support/bower_components/purescript-psci-support/src/PSCI/Support.purs","end":[17,27]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}]},2]}}},{"EDType":{"edTypeName":"Eval","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[17,13],"name":"../../../support/bower_components/purescript-psci-support/src/PSCI/Support.purs","end":[17,15]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"Eval","edTypeSynonymArguments":[["a",null]],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["eval",{"annotation":[{"start":[17,11],"name":"../../../support/bower_components/purescript-psci-support/src/PSCI/Support.purs","end":[17,27]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[17,11],"name":"../../../support/bower_components/purescript-psci-support/src/PSCI/Support.purs","end":[17,27]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[17,13],"name":"../../../support/bower_components/purescript-psci-support/src/PSCI/Support.purs","end":[17,15]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[17,11],"name":"../../../support/bower_components/purescript-psci-support/src/PSCI/Support.purs","end":[17,12]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[17,16],"name":"../../../support/bower_components/purescript-psci-support/src/PSCI/Support.purs","end":[17,27]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[17,16],"name":"../../../support/bower_components/purescript-psci-support/src/PSCI/Support.purs","end":[17,22]},[]],"tag":"TypeConstructor","contents":[["Effect"],"Effect"]},{"annotation":[{"start":[17,23],"name":"../../../support/bower_components/purescript-psci-support/src/PSCI/Support.purs","end":[17,27]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]}}},{"EDClass":{"edClassName":"Eval","edClassTypeArguments":[["a",null]],"edClassMembers":[[{"Ident":"eval"},{"annotation":[{"start":[17,11],"name":"../../../support/bower_components/purescript-psci-support/src/PSCI/Support.purs","end":[17,27]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[17,11],"name":"../../../support/bower_components/purescript-psci-support/src/PSCI/Support.purs","end":[17,27]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[17,13],"name":"../../../support/bower_components/purescript-psci-support/src/PSCI/Support.purs","end":[17,15]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[17,11],"name":"../../../support/bower_components/purescript-psci-support/src/PSCI/Support.purs","end":[17,12]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[17,16],"name":"../../../support/bower_components/purescript-psci-support/src/PSCI/Support.purs","end":[17,27]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[17,16],"name":"../../../support/bower_components/purescript-psci-support/src/PSCI/Support.purs","end":[17,22]},[]],"tag":"TypeConstructor","contents":[["Effect"],"Effect"]},{"annotation":[{"start":[17,23],"name":"../../../support/bower_components/purescript-psci-support/src/PSCI/Support.purs","end":[17,27]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}]],"edClassConstraints":[],"edFunctionalDependencies":[]}},{"EDInstance":{"edInstanceClassName":[["PSCI","Support"],"Eval"],"edInstanceName":{"Ident":"evalEffect"},"edInstanceTypes":[{"annotation":[{"start":[19,40],"name":"../../../support/bower_components/purescript-psci-support/src/PSCI/Support.purs","end":[19,48]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[19,40],"name":"../../../support/bower_components/purescript-psci-support/src/PSCI/Support.purs","end":[19,46]},[]],"tag":"TypeConstructor","contents":[["Effect"],"Effect"]},{"annotation":[{"start":[19,47],"name":"../../../support/bower_components/purescript-psci-support/src/PSCI/Support.purs","end":[19,48]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[19,24],"name":"../../../support/bower_components/purescript-psci-support/src/PSCI/Support.purs","end":[19,30]},[]],"constraintClass":[["PSCI","Support"],"Eval"],"constraintArgs":[{"annotation":[{"start":[19,29],"name":"../../../support/bower_components/purescript-psci-support/src/PSCI/Support.purs","end":[19,30]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["PSCI","Support"],{"Ident":"evalEffect"}],[["PSCI","Support"],{"Ident":"evalShow"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["PSCI","Support"],"Eval"],"edInstanceName":{"Ident":"evalShow"},"edInstanceTypes":[{"annotation":[{"start":[22,37],"name":"../../../support/bower_components/purescript-psci-support/src/PSCI/Support.purs","end":[22,38]},[]],"tag":"TypeVar","contents":"a"}],"edInstanceConstraints":[{"constraintAnn":[{"start":[22,22],"name":"../../../support/bower_components/purescript-psci-support/src/PSCI/Support.purs","end":[22,28]},[]],"constraintClass":[["Data","Show"],"Show"],"constraintArgs":[{"annotation":[{"start":[22,27],"name":"../../../support/bower_components/purescript-psci-support/src/PSCI/Support.purs","end":[22,28]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["PSCI","Support"],{"Ident":"evalEffect"}],[["PSCI","Support"],{"Ident":"evalShow"}]],"edInstanceChainIndex":1}}],"efSourceSpan":{"start":[4,1],"name":"../../../support/bower_components/purescript-psci-support/src/PSCI/Support.purs","end":[23,17]}}
diff --git a/tests/purs/publish/basic-example/output/Partial.Unsafe/docs.json b/tests/purs/publish/basic-example/output/Partial.Unsafe/docs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Partial.Unsafe/docs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"reExports":[],"name":"Partial.Unsafe","comments":"Utilities for working with partial functions.\n","declarations":[{"children":[],"comments":"Discharge a partiality constraint, unsafely.\n","title":"unsafePartial","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Prim"],"Partial"],"constraintArgs":[],"constraintData":null},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},null]}},"sourceSpan":{"start":[11,1],"name":"../../../support/bower_components/purescript-partial/src/Partial/Unsafe.purs","end":[11,62]}},{"children":[],"comments":"*deprecated:* use `unsafePartial` instead.\n","title":"unsafePartialBecause","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Prim"],"Partial"],"constraintArgs":[],"constraintData":null},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},null]}},"sourceSpan":{"start":[14,1],"name":"../../../support/bower_components/purescript-partial/src/Partial/Unsafe.purs","end":[14,64]}},{"children":[],"comments":"A function which crashes with the specified error message.\n","title":"unsafeCrashWith","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},null]}},"sourceSpan":{"start":[18,1],"name":"../../../support/bower_components/purescript-partial/src/Partial/Unsafe.purs","end":[18,41]}}]}
diff --git a/tests/purs/publish/basic-example/output/Partial.Unsafe/externs.json b/tests/purs/publish/basic-example/output/Partial.Unsafe/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Partial.Unsafe/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Partial","Unsafe"],"efExports":[{"ValueRef":[{"start":[2,1],"name":"../../../support/bower_components/purescript-partial/src/Partial/Unsafe.purs","end":[19,52]},{"Ident":"unsafePartial"}]},{"ValueRef":[{"start":[2,1],"name":"../../../support/bower_components/purescript-partial/src/Partial/Unsafe.purs","end":[19,52]},{"Ident":"unsafePartialBecause"}]},{"ValueRef":[{"start":[2,1],"name":"../../../support/bower_components/purescript-partial/src/Partial/Unsafe.purs","end":[19,52]},{"Ident":"unsafeCrashWith"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Partial"],"eiImportType":{"Explicit":[{"ValueRef":[{"start":[8,17],"name":"../../../support/bower_components/purescript-partial/src/Partial/Unsafe.purs","end":[8,26]},{"Ident":"crashWith"}]}]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDValue":{"edValueName":{"Ident":"unsafePartial"},"edValueType":{"annotation":[{"start":[11,33],"name":"../../../support/bower_components/purescript-partial/src/Partial/Unsafe.purs","end":[11,62]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[11,43],"name":"../../../support/bower_components/purescript-partial/src/Partial/Unsafe.purs","end":[11,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[11,43],"name":"../../../support/bower_components/purescript-partial/src/Partial/Unsafe.purs","end":[11,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[11,58],"name":"../../../support/bower_components/purescript-partial/src/Partial/Unsafe.purs","end":[11,60]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[11,44],"name":"../../../support/bower_components/purescript-partial/src/Partial/Unsafe.purs","end":[11,56]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[11,44],"name":"../../../support/bower_components/purescript-partial/src/Partial/Unsafe.purs","end":[11,51]},[]],"constraintClass":[["Prim"],"Partial"],"constraintArgs":[],"constraintData":null},{"annotation":[{"start":[11,55],"name":"../../../support/bower_components/purescript-partial/src/Partial/Unsafe.purs","end":[11,56]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[11,61],"name":"../../../support/bower_components/purescript-partial/src/Partial/Unsafe.purs","end":[11,62]},[]],"tag":"TypeVar","contents":"a"}]},null]}}},{"EDValue":{"edValueName":{"Ident":"unsafePartialBecause"},"edValueType":{"annotation":[{"start":[14,25],"name":"../../../support/bower_components/purescript-partial/src/Partial/Unsafe.purs","end":[14,64]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[14,35],"name":"../../../support/bower_components/purescript-partial/src/Partial/Unsafe.purs","end":[14,64]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[14,35],"name":"../../../support/bower_components/purescript-partial/src/Partial/Unsafe.purs","end":[14,64]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[14,42],"name":"../../../support/bower_components/purescript-partial/src/Partial/Unsafe.purs","end":[14,44]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[14,35],"name":"../../../support/bower_components/purescript-partial/src/Partial/Unsafe.purs","end":[14,41]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[{"start":[14,45],"name":"../../../support/bower_components/purescript-partial/src/Partial/Unsafe.purs","end":[14,64]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[14,45],"name":"../../../support/bower_components/purescript-partial/src/Partial/Unsafe.purs","end":[14,64]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[14,60],"name":"../../../support/bower_components/purescript-partial/src/Partial/Unsafe.purs","end":[14,62]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[14,46],"name":"../../../support/bower_components/purescript-partial/src/Partial/Unsafe.purs","end":[14,58]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[14,46],"name":"../../../support/bower_components/purescript-partial/src/Partial/Unsafe.purs","end":[14,53]},[]],"constraintClass":[["Prim"],"Partial"],"constraintArgs":[],"constraintData":null},{"annotation":[{"start":[14,57],"name":"../../../support/bower_components/purescript-partial/src/Partial/Unsafe.purs","end":[14,58]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[14,63],"name":"../../../support/bower_components/purescript-partial/src/Partial/Unsafe.purs","end":[14,64]},[]],"tag":"TypeVar","contents":"a"}]}]},0]}}},{"EDValue":{"edValueName":{"Ident":"unsafeCrashWith"},"edValueType":{"annotation":[{"start":[18,20],"name":"../../../support/bower_components/purescript-partial/src/Partial/Unsafe.purs","end":[18,41]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[18,30],"name":"../../../support/bower_components/purescript-partial/src/Partial/Unsafe.purs","end":[18,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,30],"name":"../../../support/bower_components/purescript-partial/src/Partial/Unsafe.purs","end":[18,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,37],"name":"../../../support/bower_components/purescript-partial/src/Partial/Unsafe.purs","end":[18,39]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[18,30],"name":"../../../support/bower_components/purescript-partial/src/Partial/Unsafe.purs","end":[18,36]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[{"start":[18,40],"name":"../../../support/bower_components/purescript-partial/src/Partial/Unsafe.purs","end":[18,41]},[]],"tag":"TypeVar","contents":"a"}]},3]}}}],"efSourceSpan":{"start":[2,1],"name":"../../../support/bower_components/purescript-partial/src/Partial/Unsafe.purs","end":[19,52]}}
diff --git a/tests/purs/publish/basic-example/output/Partial/docs.json b/tests/purs/publish/basic-example/output/Partial/docs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Partial/docs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"reExports":[],"name":"Partial","comments":"Some partial helper functions.\n","declarations":[{"children":[],"comments":"A partial function which crashes on any input with a default message.\n","title":"crash","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Prim"],"Partial"],"constraintArgs":[],"constraintData":null},{"annotation":[],"tag":"TypeVar","contents":"a"}]},null]}},"sourceSpan":{"start":[8,1],"name":"../../../support/bower_components/purescript-partial/src/Partial.purs","end":[8,32]}},{"children":[],"comments":"A partial function which crashes on any input with the specified message.\n","title":"crashWith","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Prim"],"Partial"],"constraintArgs":[],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},null]}},"sourceSpan":{"start":[12,1],"name":"../../../support/bower_components/purescript-partial/src/Partial.purs","end":[12,61]}}]}
diff --git a/tests/purs/publish/basic-example/output/Partial/externs.json b/tests/purs/publish/basic-example/output/Partial/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Partial/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Partial"],"efExports":[{"ValueRef":[{"start":[2,1],"name":"../../../support/bower_components/purescript-partial/src/Partial.purs","end":[12,61]},{"Ident":"crash"}]},{"ValueRef":[{"start":[2,1],"name":"../../../support/bower_components/purescript-partial/src/Partial.purs","end":[12,61]},{"Ident":"crashWith"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDValue":{"edValueName":{"Ident":"crash"},"edValueType":{"annotation":[{"start":[8,10],"name":"../../../support/bower_components/purescript-partial/src/Partial.purs","end":[8,32]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[8,20],"name":"../../../support/bower_components/purescript-partial/src/Partial.purs","end":[8,32]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[8,20],"name":"../../../support/bower_components/purescript-partial/src/Partial.purs","end":[8,27]},[]],"constraintClass":[["Prim"],"Partial"],"constraintArgs":[],"constraintData":null},{"annotation":[{"start":[8,31],"name":"../../../support/bower_components/purescript-partial/src/Partial.purs","end":[8,32]},[]],"tag":"TypeVar","contents":"a"}]},0]}}},{"EDValue":{"edValueName":{"Ident":"crashWith"},"edValueType":{"annotation":[{"start":[12,29],"name":"../../../support/bower_components/purescript-partial/src/Partial.purs","end":[12,61]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[12,39],"name":"../../../support/bower_components/purescript-partial/src/Partial.purs","end":[12,61]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[12,39],"name":"../../../support/bower_components/purescript-partial/src/Partial.purs","end":[12,46]},[]],"constraintClass":[["Prim"],"Partial"],"constraintArgs":[],"constraintData":null},{"annotation":[{"start":[12,50],"name":"../../../support/bower_components/purescript-partial/src/Partial.purs","end":[12,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[12,50],"name":"../../../support/bower_components/purescript-partial/src/Partial.purs","end":[12,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[12,57],"name":"../../../support/bower_components/purescript-partial/src/Partial.purs","end":[12,59]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[12,50],"name":"../../../support/bower_components/purescript-partial/src/Partial.purs","end":[12,56]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[{"start":[12,60],"name":"../../../support/bower_components/purescript-partial/src/Partial.purs","end":[12,61]},[]],"tag":"TypeVar","contents":"a"}]}]},null]}}}],"efSourceSpan":{"start":[2,1],"name":"../../../support/bower_components/purescript-partial/src/Partial.purs","end":[12,61]}}
diff --git a/tests/purs/publish/basic-example/output/Prelude/docs.json b/tests/purs/publish/basic-example/output/Prelude/docs.json
--- a/tests/purs/publish/basic-example/output/Prelude/docs.json
+++ b/tests/purs/publish/basic-example/output/Prelude/docs.json
@@ -1,1 +1,1 @@
-{"reExports":[],"name":"Prelude","comments":null,"declarations":[]}
+{"comments":"`Prelude` is a module that re-exports many other foundational modules from the `purescript-prelude` library\n(e.g. the Monad type class hierarchy, the Monoid type classes, Eq, Ord, etc.).\n\nTypically, this module will be imported in most other libraries and projects as an open import.\n\n```\nmodule MyModule where\n\nimport Prelude -- open import\n\nimport Data.Maybe (Maybe(..)) -- closed import\n```\n","declarations":[],"name":"Prelude","reExports":[]}
diff --git a/tests/purs/publish/basic-example/output/Prelude/externs.json b/tests/purs/publish/basic-example/output/Prelude/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Prelude/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Prelude"],"efExports":[{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"exportSourceImportedFrom":["Data","Ordering"],"exportSourceDefinedIn":["Data","Ordering"]},{"TypeRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},"Ordering",["EQ","GT","LT"]]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"exportSourceImportedFrom":["Data","Unit"],"exportSourceDefinedIn":["Data","Unit"]},{"TypeRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},"Unit",[]]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"exportSourceImportedFrom":["Data","Void"],"exportSourceDefinedIn":["Data","Void"]},{"TypeRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},"Void",[]]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"exportSourceImportedFrom":["Data","NaturalTransformation"],"exportSourceDefinedIn":["Data","NaturalTransformation"]},{"TypeOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},"~>"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"exportSourceImportedFrom":["Control","Applicative"],"exportSourceDefinedIn":["Control","Applicative"]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},"Applicative"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"exportSourceImportedFrom":["Control","Apply"],"exportSourceDefinedIn":["Control","Apply"]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},"Apply"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"exportSourceImportedFrom":["Control","Bind"],"exportSourceDefinedIn":["Control","Bind"]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},"Bind"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"exportSourceImportedFrom":["Data","BooleanAlgebra"],"exportSourceDefinedIn":["Data","BooleanAlgebra"]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},"BooleanAlgebra"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"exportSourceImportedFrom":["Data","Bounded"],"exportSourceDefinedIn":["Data","Bounded"]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},"Bounded"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"exportSourceImportedFrom":["Control","Category"],"exportSourceDefinedIn":["Control","Category"]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},"Category"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"exportSourceImportedFrom":["Data","CommutativeRing"],"exportSourceDefinedIn":["Data","CommutativeRing"]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},"CommutativeRing"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"exportSourceImportedFrom":["Control","Bind"],"exportSourceDefinedIn":["Control","Bind"]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},"Discard"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"exportSourceImportedFrom":["Data","DivisionRing"],"exportSourceDefinedIn":["Data","DivisionRing"]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},"DivisionRing"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"exportSourceImportedFrom":["Data","Eq"],"exportSourceDefinedIn":["Data","Eq"]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},"Eq"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"exportSourceImportedFrom":["Data","EuclideanRing"],"exportSourceDefinedIn":["Data","EuclideanRing"]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},"EuclideanRing"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"exportSourceImportedFrom":["Data","Field"],"exportSourceDefinedIn":["Data","Field"]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},"Field"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"exportSourceImportedFrom":["Data","Functor"],"exportSourceDefinedIn":["Data","Functor"]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},"Functor"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"exportSourceImportedFrom":["Data","HeytingAlgebra"],"exportSourceDefinedIn":["Data","HeytingAlgebra"]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},"HeytingAlgebra"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"exportSourceImportedFrom":["Control","Monad"],"exportSourceDefinedIn":["Control","Monad"]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},"Monad"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"exportSourceImportedFrom":["Data","Monoid"],"exportSourceDefinedIn":["Data","Monoid"]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},"Monoid"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"exportSourceImportedFrom":["Data","Ord"],"exportSourceDefinedIn":["Data","Ord"]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},"Ord"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"exportSourceImportedFrom":["Data","Ring"],"exportSourceDefinedIn":["Data","Ring"]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},"Ring"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"exportSourceImportedFrom":["Data","Semigroup"],"exportSourceDefinedIn":["Data","Semigroup"]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},"Semigroup"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"exportSourceImportedFrom":["Control","Semigroupoid"],"exportSourceDefinedIn":["Control","Semigroupoid"]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},"Semigroupoid"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"exportSourceImportedFrom":["Data","Semiring"],"exportSourceDefinedIn":["Data","Semiring"]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},"Semiring"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"exportSourceImportedFrom":["Data","Show"],"exportSourceDefinedIn":["Data","Show"]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},"Show"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"exportSourceImportedFrom":["Data","Void"],"exportSourceDefinedIn":["Data","Void"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"Ident":"absurd"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"exportSourceImportedFrom":["Data","Semiring"],"exportSourceDefinedIn":["Data","Semiring"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"Ident":"add"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"exportSourceImportedFrom":["Control","Monad"],"exportSourceDefinedIn":["Control","Monad"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"Ident":"ap"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"exportSourceImportedFrom":["Data","Semigroup"],"exportSourceDefinedIn":["Data","Semigroup"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"Ident":"append"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"exportSourceImportedFrom":["Control","Apply"],"exportSourceDefinedIn":["Control","Apply"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"Ident":"apply"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"exportSourceImportedFrom":["Data","Ord"],"exportSourceDefinedIn":["Data","Ord"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"Ident":"between"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"exportSourceImportedFrom":["Control","Bind"],"exportSourceDefinedIn":["Control","Bind"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"Ident":"bind"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"exportSourceImportedFrom":["Data","Bounded"],"exportSourceDefinedIn":["Data","Bounded"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"Ident":"bottom"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"exportSourceImportedFrom":["Data","Ord"],"exportSourceDefinedIn":["Data","Ord"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"Ident":"clamp"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"exportSourceImportedFrom":["Data","Ord"],"exportSourceDefinedIn":["Data","Ord"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"Ident":"compare"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"exportSourceImportedFrom":["Data","Ord"],"exportSourceDefinedIn":["Data","Ord"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"Ident":"comparing"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"exportSourceImportedFrom":["Control","Semigroupoid"],"exportSourceDefinedIn":["Control","Semigroupoid"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"Ident":"compose"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"exportSourceImportedFrom":["Data","HeytingAlgebra"],"exportSourceDefinedIn":["Data","HeytingAlgebra"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"Ident":"conj"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"exportSourceImportedFrom":["Data","Function"],"exportSourceDefinedIn":["Data","Function"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"Ident":"const"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"exportSourceImportedFrom":["Data","EuclideanRing"],"exportSourceDefinedIn":["Data","EuclideanRing"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"Ident":"degree"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"exportSourceImportedFrom":["Control","Bind"],"exportSourceDefinedIn":["Control","Bind"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"Ident":"discard"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"exportSourceImportedFrom":["Data","HeytingAlgebra"],"exportSourceDefinedIn":["Data","HeytingAlgebra"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"Ident":"disj"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"exportSourceImportedFrom":["Data","EuclideanRing"],"exportSourceDefinedIn":["Data","EuclideanRing"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"Ident":"div"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"exportSourceImportedFrom":["Data","Eq"],"exportSourceDefinedIn":["Data","Eq"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"Ident":"eq"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"exportSourceImportedFrom":["Data","Functor"],"exportSourceDefinedIn":["Data","Functor"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"Ident":"flap"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"exportSourceImportedFrom":["Data","Function"],"exportSourceDefinedIn":["Data","Function"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"Ident":"flip"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"exportSourceImportedFrom":["Data","EuclideanRing"],"exportSourceDefinedIn":["Data","EuclideanRing"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"Ident":"gcd"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"exportSourceImportedFrom":["Control","Category"],"exportSourceDefinedIn":["Control","Category"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"Ident":"identity"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"exportSourceImportedFrom":["Control","Bind"],"exportSourceDefinedIn":["Control","Bind"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"Ident":"ifM"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"exportSourceImportedFrom":["Control","Bind"],"exportSourceDefinedIn":["Control","Bind"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"Ident":"join"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"exportSourceImportedFrom":["Data","EuclideanRing"],"exportSourceDefinedIn":["Data","EuclideanRing"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"Ident":"lcm"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"exportSourceImportedFrom":["Control","Applicative"],"exportSourceDefinedIn":["Control","Applicative"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"Ident":"liftA1"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"exportSourceImportedFrom":["Control","Monad"],"exportSourceDefinedIn":["Control","Monad"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"Ident":"liftM1"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"exportSourceImportedFrom":["Data","Functor"],"exportSourceDefinedIn":["Data","Functor"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"Ident":"map"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"exportSourceImportedFrom":["Data","Ord"],"exportSourceDefinedIn":["Data","Ord"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"Ident":"max"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"exportSourceImportedFrom":["Data","Monoid"],"exportSourceDefinedIn":["Data","Monoid"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"Ident":"mempty"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"exportSourceImportedFrom":["Data","Ord"],"exportSourceDefinedIn":["Data","Ord"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"Ident":"min"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"exportSourceImportedFrom":["Data","EuclideanRing"],"exportSourceDefinedIn":["Data","EuclideanRing"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"Ident":"mod"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"exportSourceImportedFrom":["Data","Semiring"],"exportSourceDefinedIn":["Data","Semiring"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"Ident":"mul"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"exportSourceImportedFrom":["Data","Ring"],"exportSourceDefinedIn":["Data","Ring"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"Ident":"negate"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"exportSourceImportedFrom":["Data","HeytingAlgebra"],"exportSourceDefinedIn":["Data","HeytingAlgebra"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"Ident":"not"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"exportSourceImportedFrom":["Data","Eq"],"exportSourceDefinedIn":["Data","Eq"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"Ident":"notEq"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"exportSourceImportedFrom":["Data","Semiring"],"exportSourceDefinedIn":["Data","Semiring"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"Ident":"one"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"exportSourceImportedFrom":["Data","Boolean"],"exportSourceDefinedIn":["Data","Boolean"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"Ident":"otherwise"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"exportSourceImportedFrom":["Control","Applicative"],"exportSourceDefinedIn":["Control","Applicative"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"Ident":"pure"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"exportSourceImportedFrom":["Data","DivisionRing"],"exportSourceDefinedIn":["Data","DivisionRing"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"Ident":"recip"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"exportSourceImportedFrom":["Data","Show"],"exportSourceDefinedIn":["Data","Show"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"Ident":"show"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"exportSourceImportedFrom":["Data","Ring"],"exportSourceDefinedIn":["Data","Ring"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"Ident":"sub"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"exportSourceImportedFrom":["Data","Bounded"],"exportSourceDefinedIn":["Data","Bounded"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"Ident":"top"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"exportSourceImportedFrom":["Data","Unit"],"exportSourceDefinedIn":["Data","Unit"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"Ident":"unit"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"exportSourceImportedFrom":["Control","Applicative"],"exportSourceDefinedIn":["Control","Applicative"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"Ident":"unless"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"exportSourceImportedFrom":["Control","Monad"],"exportSourceDefinedIn":["Control","Monad"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"Ident":"unlessM"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"exportSourceImportedFrom":["Data","Functor"],"exportSourceDefinedIn":["Data","Functor"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"Ident":"void"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"exportSourceImportedFrom":["Control","Applicative"],"exportSourceDefinedIn":["Control","Applicative"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"Ident":"when"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"exportSourceImportedFrom":["Control","Monad"],"exportSourceDefinedIn":["Control","Monad"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"Ident":"whenM"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"exportSourceImportedFrom":["Data","Semiring"],"exportSourceDefinedIn":["Data","Semiring"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"Ident":"zero"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"exportSourceImportedFrom":["Data","Function"],"exportSourceDefinedIn":["Data","Function"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},"#"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"exportSourceImportedFrom":["Data","Function"],"exportSourceDefinedIn":["Data","Function"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},"$"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"exportSourceImportedFrom":["Data","Functor"],"exportSourceDefinedIn":["Data","Functor"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},"$>"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"exportSourceImportedFrom":["Data","HeytingAlgebra"],"exportSourceDefinedIn":["Data","HeytingAlgebra"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},"&&"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"exportSourceImportedFrom":["Data","Semiring"],"exportSourceDefinedIn":["Data","Semiring"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},"*"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"exportSourceImportedFrom":["Control","Apply"],"exportSourceDefinedIn":["Control","Apply"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},"*>"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"exportSourceImportedFrom":["Data","Semiring"],"exportSourceDefinedIn":["Data","Semiring"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},"+"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"exportSourceImportedFrom":["Data","Ring"],"exportSourceDefinedIn":["Data","Ring"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},"-"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"exportSourceImportedFrom":["Data","EuclideanRing"],"exportSourceDefinedIn":["Data","EuclideanRing"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},"/"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"exportSourceImportedFrom":["Data","Eq"],"exportSourceDefinedIn":["Data","Eq"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},"/="]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"exportSourceImportedFrom":["Data","Ord"],"exportSourceDefinedIn":["Data","Ord"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},"<"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"exportSourceImportedFrom":["Data","Functor"],"exportSourceDefinedIn":["Data","Functor"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},"<#>"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"exportSourceImportedFrom":["Data","Functor"],"exportSourceDefinedIn":["Data","Functor"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},"<$"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"exportSourceImportedFrom":["Data","Functor"],"exportSourceDefinedIn":["Data","Functor"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},"<$>"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"exportSourceImportedFrom":["Control","Apply"],"exportSourceDefinedIn":["Control","Apply"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},"<*"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"exportSourceImportedFrom":["Control","Apply"],"exportSourceDefinedIn":["Control","Apply"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},"<*>"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"exportSourceImportedFrom":["Control","Semigroupoid"],"exportSourceDefinedIn":["Control","Semigroupoid"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},"<<<"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"exportSourceImportedFrom":["Data","Ord"],"exportSourceDefinedIn":["Data","Ord"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},"<="]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"exportSourceImportedFrom":["Control","Bind"],"exportSourceDefinedIn":["Control","Bind"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},"<=<"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"exportSourceImportedFrom":["Data","Semigroup"],"exportSourceDefinedIn":["Data","Semigroup"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},"<>"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"exportSourceImportedFrom":["Data","Functor"],"exportSourceDefinedIn":["Data","Functor"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},"<@>"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"exportSourceImportedFrom":["Control","Bind"],"exportSourceDefinedIn":["Control","Bind"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},"=<<"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"exportSourceImportedFrom":["Data","Eq"],"exportSourceDefinedIn":["Data","Eq"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},"=="]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"exportSourceImportedFrom":["Data","Ord"],"exportSourceDefinedIn":["Data","Ord"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},">"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"exportSourceImportedFrom":["Data","Ord"],"exportSourceDefinedIn":["Data","Ord"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},">="]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"exportSourceImportedFrom":["Control","Bind"],"exportSourceDefinedIn":["Control","Bind"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},">=>"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"exportSourceImportedFrom":["Control","Bind"],"exportSourceDefinedIn":["Control","Bind"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},">>="]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"exportSourceImportedFrom":["Control","Semigroupoid"],"exportSourceDefinedIn":["Control","Semigroupoid"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},">>>"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},{"exportSourceImportedFrom":["Data","HeytingAlgebra"],"exportSourceDefinedIn":["Data","HeytingAlgebra"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]},"||"]}]},{"ModuleRef":[{"start":[2,5],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[2,31]},["Control","Applicative"]]},{"ModuleRef":[{"start":[3,5],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[3,25]},["Control","Apply"]]},{"ModuleRef":[{"start":[4,5],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[4,24]},["Control","Bind"]]},{"ModuleRef":[{"start":[5,5],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[5,28]},["Control","Category"]]},{"ModuleRef":[{"start":[6,5],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[6,25]},["Control","Monad"]]},{"ModuleRef":[{"start":[7,5],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[7,32]},["Control","Semigroupoid"]]},{"ModuleRef":[{"start":[8,5],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[8,24]},["Data","Boolean"]]},{"ModuleRef":[{"start":[9,5],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[9,31]},["Data","BooleanAlgebra"]]},{"ModuleRef":[{"start":[10,5],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[10,24]},["Data","Bounded"]]},{"ModuleRef":[{"start":[11,5],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[11,32]},["Data","CommutativeRing"]]},{"ModuleRef":[{"start":[12,5],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[12,29]},["Data","DivisionRing"]]},{"ModuleRef":[{"start":[13,5],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[13,19]},["Data","Eq"]]},{"ModuleRef":[{"start":[14,5],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[14,30]},["Data","EuclideanRing"]]},{"ModuleRef":[{"start":[15,5],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[15,22]},["Data","Field"]]},{"ModuleRef":[{"start":[16,5],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[16,25]},["Data","Function"]]},{"ModuleRef":[{"start":[17,5],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[17,24]},["Data","Functor"]]},{"ModuleRef":[{"start":[18,5],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[18,31]},["Data","HeytingAlgebra"]]},{"ModuleRef":[{"start":[19,5],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[19,23]},["Data","Monoid"]]},{"ModuleRef":[{"start":[20,5],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[20,38]},["Data","NaturalTransformation"]]},{"ModuleRef":[{"start":[21,5],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[21,20]},["Data","Ord"]]},{"ModuleRef":[{"start":[22,5],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[22,25]},["Data","Ordering"]]},{"ModuleRef":[{"start":[23,5],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[23,21]},["Data","Ring"]]},{"ModuleRef":[{"start":[24,5],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[24,26]},["Data","Semigroup"]]},{"ModuleRef":[{"start":[25,5],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[25,25]},["Data","Semiring"]]},{"ModuleRef":[{"start":[26,5],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[26,21]},["Data","Show"]]},{"ModuleRef":[{"start":[27,5],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[27,21]},["Data","Unit"]]},{"ModuleRef":[{"start":[28,5],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[28,21]},["Data","Void"]]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Control","Applicative"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[31,29],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[31,46]},"Applicative"]},{"ValueRef":[{"start":[31,48],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[31,52]},{"Ident":"pure"}]},{"ValueRef":[{"start":[31,54],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[31,60]},{"Ident":"liftA1"}]},{"ValueRef":[{"start":[31,62],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[31,68]},{"Ident":"unless"}]},{"ValueRef":[{"start":[31,70],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[31,74]},{"Ident":"when"}]}]},"eiImportedAs":null},{"eiModule":["Control","Apply"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[32,23],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[32,34]},"Apply"]},{"ValueRef":[{"start":[32,36],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[32,41]},{"Ident":"apply"}]},{"ValueOpRef":[{"start":[32,43],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[32,47]},"*>"]},{"ValueOpRef":[{"start":[32,49],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[32,53]},"<*"]},{"ValueOpRef":[{"start":[32,55],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[32,60]},"<*>"]}]},"eiImportedAs":null},{"eiModule":["Control","Bind"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[33,22],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[33,32]},"Bind"]},{"ValueRef":[{"start":[33,34],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[33,38]},{"Ident":"bind"}]},{"TypeClassRef":[{"start":[33,40],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[33,53]},"Discard"]},{"ValueRef":[{"start":[33,55],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[33,62]},{"Ident":"discard"}]},{"ValueRef":[{"start":[33,64],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[33,67]},{"Ident":"ifM"}]},{"ValueRef":[{"start":[33,69],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[33,73]},{"Ident":"join"}]},{"ValueOpRef":[{"start":[33,75],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[33,80]},"<=<"]},{"ValueOpRef":[{"start":[33,82],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[33,87]},"=<<"]},{"ValueOpRef":[{"start":[33,89],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[33,94]},">=>"]},{"ValueOpRef":[{"start":[33,96],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[33,101]},">>="]}]},"eiImportedAs":null},{"eiModule":["Control","Category"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[34,26],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[34,40]},"Category"]},{"ValueRef":[{"start":[34,42],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[34,50]},{"Ident":"identity"}]}]},"eiImportedAs":null},{"eiModule":["Control","Monad"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[35,23],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[35,34]},"Monad"]},{"ValueRef":[{"start":[35,36],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[35,38]},{"Ident":"ap"}]},{"ValueRef":[{"start":[35,40],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[35,46]},{"Ident":"liftM1"}]},{"ValueRef":[{"start":[35,48],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[35,55]},{"Ident":"unlessM"}]},{"ValueRef":[{"start":[35,57],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[35,62]},{"Ident":"whenM"}]}]},"eiImportedAs":null},{"eiModule":["Control","Semigroupoid"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[36,30],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[36,48]},"Semigroupoid"]},{"ValueRef":[{"start":[36,50],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[36,57]},{"Ident":"compose"}]},{"ValueOpRef":[{"start":[36,59],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[36,64]},"<<<"]},{"ValueOpRef":[{"start":[36,66],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[36,71]},">>>"]}]},"eiImportedAs":null},{"eiModule":["Data","Boolean"],"eiImportType":{"Explicit":[{"ValueRef":[{"start":[38,22],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[38,31]},{"Ident":"otherwise"}]}]},"eiImportedAs":null},{"eiModule":["Data","BooleanAlgebra"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[39,29],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[39,49]},"BooleanAlgebra"]}]},"eiImportedAs":null},{"eiModule":["Data","Bounded"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[40,22],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[40,35]},"Bounded"]},{"ValueRef":[{"start":[40,37],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[40,43]},{"Ident":"bottom"}]},{"ValueRef":[{"start":[40,45],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[40,48]},{"Ident":"top"}]}]},"eiImportedAs":null},{"eiModule":["Data","CommutativeRing"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[41,30],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[41,51]},"CommutativeRing"]}]},"eiImportedAs":null},{"eiModule":["Data","DivisionRing"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[42,27],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[42,45]},"DivisionRing"]},{"ValueRef":[{"start":[42,47],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[42,52]},{"Ident":"recip"}]}]},"eiImportedAs":null},{"eiModule":["Data","Eq"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[43,17],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[43,25]},"Eq"]},{"ValueRef":[{"start":[43,27],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[43,29]},{"Ident":"eq"}]},{"ValueRef":[{"start":[43,31],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[43,36]},{"Ident":"notEq"}]},{"ValueOpRef":[{"start":[43,38],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[43,42]},"/="]},{"ValueOpRef":[{"start":[43,44],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[43,48]},"=="]}]},"eiImportedAs":null},{"eiModule":["Data","EuclideanRing"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[44,28],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[44,47]},"EuclideanRing"]},{"ValueRef":[{"start":[44,49],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[44,55]},{"Ident":"degree"}]},{"ValueRef":[{"start":[44,57],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[44,60]},{"Ident":"div"}]},{"ValueRef":[{"start":[44,62],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[44,65]},{"Ident":"mod"}]},{"ValueOpRef":[{"start":[44,67],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[44,70]},"/"]},{"ValueRef":[{"start":[44,72],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[44,75]},{"Ident":"gcd"}]},{"ValueRef":[{"start":[44,77],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[44,80]},{"Ident":"lcm"}]}]},"eiImportedAs":null},{"eiModule":["Data","Field"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[45,20],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[45,31]},"Field"]}]},"eiImportedAs":null},{"eiModule":["Data","Function"],"eiImportType":{"Explicit":[{"ValueRef":[{"start":[46,23],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[46,28]},{"Ident":"const"}]},{"ValueRef":[{"start":[46,30],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[46,34]},{"Ident":"flip"}]},{"ValueOpRef":[{"start":[46,36],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[46,39]},"$"]},{"ValueOpRef":[{"start":[46,41],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[46,44]},"#"]}]},"eiImportedAs":null},{"eiModule":["Data","Functor"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[47,22],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[47,35]},"Functor"]},{"ValueRef":[{"start":[47,37],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[47,41]},{"Ident":"flap"}]},{"ValueRef":[{"start":[47,43],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[47,46]},{"Ident":"map"}]},{"ValueRef":[{"start":[47,48],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[47,52]},{"Ident":"void"}]},{"ValueOpRef":[{"start":[47,54],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[47,58]},"$>"]},{"ValueOpRef":[{"start":[47,60],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[47,65]},"<#>"]},{"ValueOpRef":[{"start":[47,67],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[47,71]},"<$"]},{"ValueOpRef":[{"start":[47,73],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[47,78]},"<$>"]},{"ValueOpRef":[{"start":[47,80],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[47,85]},"<@>"]}]},"eiImportedAs":null},{"eiModule":["Data","HeytingAlgebra"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[48,29],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[48,49]},"HeytingAlgebra"]},{"ValueRef":[{"start":[48,51],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[48,55]},{"Ident":"conj"}]},{"ValueRef":[{"start":[48,57],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[48,61]},{"Ident":"disj"}]},{"ValueRef":[{"start":[48,63],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[48,66]},{"Ident":"not"}]},{"ValueOpRef":[{"start":[48,68],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[48,72]},"&&"]},{"ValueOpRef":[{"start":[48,74],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[48,78]},"||"]}]},"eiImportedAs":null},{"eiModule":["Data","Monoid"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[49,21],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[49,33]},"Monoid"]},{"ValueRef":[{"start":[49,35],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[49,41]},{"Ident":"mempty"}]}]},"eiImportedAs":null},{"eiModule":["Data","NaturalTransformation"],"eiImportType":{"Explicit":[{"TypeOpRef":[{"start":[50,36],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[50,45]},"~>"]}]},"eiImportedAs":null},{"eiModule":["Data","Ord"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[51,18],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[51,27]},"Ord"]},{"ValueRef":[{"start":[51,29],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[51,36]},{"Ident":"compare"}]},{"ValueOpRef":[{"start":[51,38],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[51,41]},"<"]},{"ValueOpRef":[{"start":[51,43],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[51,47]},"<="]},{"ValueOpRef":[{"start":[51,49],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[51,52]},">"]},{"ValueOpRef":[{"start":[51,54],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[51,58]},">="]},{"ValueRef":[{"start":[51,60],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[51,69]},{"Ident":"comparing"}]},{"ValueRef":[{"start":[51,71],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[51,74]},{"Ident":"min"}]},{"ValueRef":[{"start":[51,76],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[51,79]},{"Ident":"max"}]},{"ValueRef":[{"start":[51,81],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[51,86]},{"Ident":"clamp"}]},{"ValueRef":[{"start":[51,88],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[51,95]},{"Ident":"between"}]}]},"eiImportedAs":null},{"eiModule":["Data","Ordering"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[52,23],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[52,35]},"Ordering",null]}]},"eiImportedAs":null},{"eiModule":["Data","Ring"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[53,19],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[53,29]},"Ring"]},{"ValueRef":[{"start":[53,31],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[53,37]},{"Ident":"negate"}]},{"ValueRef":[{"start":[53,39],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[53,42]},{"Ident":"sub"}]},{"ValueOpRef":[{"start":[53,44],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[53,47]},"-"]}]},"eiImportedAs":null},{"eiModule":["Data","Semigroup"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[54,24],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[54,39]},"Semigroup"]},{"ValueRef":[{"start":[54,41],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[54,47]},{"Ident":"append"}]},{"ValueOpRef":[{"start":[54,49],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[54,53]},"<>"]}]},"eiImportedAs":null},{"eiModule":["Data","Semiring"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[55,23],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[55,37]},"Semiring"]},{"ValueRef":[{"start":[55,39],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[55,42]},{"Ident":"add"}]},{"ValueRef":[{"start":[55,44],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[55,47]},{"Ident":"mul"}]},{"ValueRef":[{"start":[55,49],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[55,52]},{"Ident":"one"}]},{"ValueRef":[{"start":[55,54],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[55,58]},{"Ident":"zero"}]},{"ValueOpRef":[{"start":[55,60],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[55,63]},"*"]},{"ValueOpRef":[{"start":[55,65],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[55,68]},"+"]}]},"eiImportedAs":null},{"eiModule":["Data","Show"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[56,19],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[56,29]},"Show"]},{"ValueRef":[{"start":[56,31],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[56,35]},{"Ident":"show"}]}]},"eiImportedAs":null},{"eiModule":["Data","Unit"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[57,19],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[57,23]},"Unit",[]]},{"ValueRef":[{"start":[57,25],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[57,29]},{"Ident":"unit"}]}]},"eiImportedAs":null},{"eiModule":["Data","Void"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[58,19],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,23]},"Void",[]]},{"ValueRef":[{"start":[58,25],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,31]},{"Ident":"absurd"}]}]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Prelude.purs","end":[58,32]}}
diff --git a/tests/purs/publish/basic-example/output/Prim.Boolean/docs.json b/tests/purs/publish/basic-example/output/Prim.Boolean/docs.json
new file mode 100644
--- /dev/null
+++ b/tests/purs/publish/basic-example/output/Prim.Boolean/docs.json
@@ -0,0 +1,1 @@
+{"comments":"The Prim.Boolean module is embedded in the PureScript compiler. Unlike `Prim`, it is not imported implicitly. It contains a type level `Boolean` data structure.","declarations":[{"children":[],"comments":"The 'True' boolean type.\n","info":{"declType":"externData","kind":{"annotation":[],"contents":[["Prim"],"Boolean"],"tag":"TypeConstructor"},"roles":[]},"kind":null,"sourceSpan":null,"title":"True"},{"children":[],"comments":"The 'False' boolean type.\n","info":{"declType":"externData","kind":{"annotation":[],"contents":[["Prim"],"Boolean"],"tag":"TypeConstructor"},"roles":[]},"kind":null,"sourceSpan":null,"title":"False"}],"name":"Prim.Boolean","reExports":[]}
diff --git a/tests/purs/publish/basic-example/output/Prim.Coerce/docs.json b/tests/purs/publish/basic-example/output/Prim.Coerce/docs.json
new file mode 100644
--- /dev/null
+++ b/tests/purs/publish/basic-example/output/Prim.Coerce/docs.json
@@ -0,0 +1,1 @@
+{"comments":"The Prim.Coerce module is embedded in the PureScript compiler. Unlike `Prim`, it is not imported implicitly. It contains an automatically solved type class for coercing types that have provably-identical runtime representations with [purescript-safe-coerce](https://pursuit.purescript.org/packages/purescript-safe-coerce).","declarations":[{"children":[],"comments":"Coercible is a two-parameter type class that has instances for types `a`\nand `b` if the compiler can infer that they have the same representation.\nCoercible constraints are solved according to the following rules:\n\n* _reflexivity_, any type has the same representation as itself:\n`Coercible a a` holds.\n\n* _symmetry_, if a type `a` can be coerced to some other type `b`, then `b`\ncan also be coerced back to `a`: `Coercible a b` implies `Coercible b a`.\n\n* _transitivity_, if a type `a` can be coerced to some other type `b` which\ncan be coerced to some other type `c`, then `a` can also be coerced to `c`:\n`Coercible a b` and `Coercible b c` imply `Coercible a c`.\n\n* Newtypes can be freely wrapped and unwrapped when their constructor is\nin scope:\n\n      newtype Age = Age Int\n\n`Coercible Int Age` and `Coercible Age Int` hold since `Age` has the same\nruntime representation than `Int`.\n\nNewtype constructors have to be in scope to preserve abstraction. It's\ncommon to declare a newtype to encode some invariants (non emptiness of\narrays with `Data.Array.NonEmpty.NonEmptyArray` for example), hide its\nconstructor and export smart constructors instead. Without this restriction,\nthe guarantees provided by such newtypes would be void.\n\n* If none of the above are applicable, two types of kind `Type` may be\ncoercible, but only if their heads are the same. For example,\n`Coercible (Maybe a) (Either a b)` does not hold because `Maybe` and\n`Either` are different. Those types don't share a common runtime\nrepresentation so coercing between them would be unsafe. In addition their\narguments may need to be identical or coercible, depending on the _roles_\nof the head's type parameters. Roles are documented in [the PureScript\nlanguage reference](https://github.com/purescript/documentation/blob/master/language/Roles.md).\n\nCoercible being polykinded, we can also coerce more than types of kind `Type`:\n\n* Rows are coercible when they have the same labels, when the corresponding\npairs of types are coercible and when their tails are coercible:\n`Coercible ( label :: a | r ) ( label :: b | s )` holds when\n`Coercible a b` and `Coercible r s` do. Closed rows cannot be coerced to\nopen rows.\n\n* Higher kinded types are coercible if they are coercible when fully\nsaturated: `Coercible (f :: _ -> Type) (g :: _ -> Type)` holds when\n`Coercible (f a) (g a)` does.\n\nThis rule may seem puzzling since there is no term of type `_ -> Type` to\napply `coerce` to, but it is necessary when coercing types with higher\nkinded parameters.\n","info":{"arguments":[["a",{"annotation":[],"contents":"k","tag":"TypeVar"}],["b",{"annotation":[],"contents":"k","tag":"TypeVar"}]],"declType":"typeClass","fundeps":[],"superclasses":[]},"kind":null,"sourceSpan":null,"title":"Coercible"}],"name":"Prim.Coerce","reExports":[]}
diff --git a/tests/purs/publish/basic-example/output/Prim.Int/docs.json b/tests/purs/publish/basic-example/output/Prim.Int/docs.json
new file mode 100644
--- /dev/null
+++ b/tests/purs/publish/basic-example/output/Prim.Int/docs.json
@@ -0,0 +1,1 @@
+{"comments":"The Prim.Int module is embedded in the PureScript compiler. Unlike `Prim`, it is not imported implicitly. It contains automatically solved type classes for working with type-level intural numbers.","declarations":[{"children":[],"comments":"Compiler solved type class for adding type-level `Int`s.\n","info":{"arguments":[["left",{"annotation":[],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],["right",{"annotation":[],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],["sum",{"annotation":[],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}]],"declType":"typeClass","fundeps":[[["left","right"],["sum"]],[["left","sum"],["right"]],[["right","sum"],["left"]]],"superclasses":[]},"kind":null,"sourceSpan":null,"title":"Add"},{"children":[],"comments":"Compiler solved type class for comparing two type-level `Int`s.\nProduces an `Ordering`.\n","info":{"arguments":[["left",{"annotation":[],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],["right",{"annotation":[],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],["ordering",{"annotation":[],"contents":[["Prim","Ordering"],"Ordering"],"tag":"TypeConstructor"}]],"declType":"typeClass","fundeps":[[["left","right"],["ordering"]]],"superclasses":[]},"kind":null,"sourceSpan":null,"title":"Compare"},{"children":[],"comments":"Compiler solved type class for multiplying type-level `Int`s.\n","info":{"arguments":[["left",{"annotation":[],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],["right",{"annotation":[],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],["product",{"annotation":[],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}]],"declType":"typeClass","fundeps":[[["left","right"],["product"]]],"superclasses":[]},"kind":null,"sourceSpan":null,"title":"Mul"},{"children":[],"comments":"Compiler solved type class for converting a type-level `Int` into a type-level `String` (i.e. `Symbol`).\n","info":{"arguments":[["int",{"annotation":[],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],["string",{"annotation":[],"contents":[["Prim"],"Symbol"],"tag":"TypeConstructor"}]],"declType":"typeClass","fundeps":[[["int"],["string"]]],"superclasses":[]},"kind":null,"sourceSpan":null,"title":"ToString"}],"name":"Prim.Int","reExports":[]}
diff --git a/tests/purs/publish/basic-example/output/Prim.Ordering/docs.json b/tests/purs/publish/basic-example/output/Prim.Ordering/docs.json
new file mode 100644
--- /dev/null
+++ b/tests/purs/publish/basic-example/output/Prim.Ordering/docs.json
@@ -0,0 +1,1 @@
+{"comments":"The Prim.Ordering module is embedded in the PureScript compiler. Unlike `Prim`, it is not imported implicitly. It contains a type level `Ordering` data structure.","declarations":[{"children":[],"comments":"The `Ordering` kind represents the three possibilities of comparing two\ntypes of the same kind: `LT` (less than), `EQ` (equal to), and\n`GT` (greater than).\n","info":{"declType":"externData","kind":{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"roles":[]},"kind":null,"sourceSpan":null,"title":"Ordering"},{"children":[],"comments":"The 'less than' ordering type.\n","info":{"declType":"externData","kind":{"annotation":[],"contents":[["Prim","Ordering"],"Ordering"],"tag":"TypeConstructor"},"roles":[]},"kind":null,"sourceSpan":null,"title":"LT"},{"children":[],"comments":"The 'equal to' ordering type.\n","info":{"declType":"externData","kind":{"annotation":[],"contents":[["Prim","Ordering"],"Ordering"],"tag":"TypeConstructor"},"roles":[]},"kind":null,"sourceSpan":null,"title":"EQ"},{"children":[],"comments":"The 'greater than' ordering type.\n","info":{"declType":"externData","kind":{"annotation":[],"contents":[["Prim","Ordering"],"Ordering"],"tag":"TypeConstructor"},"roles":[]},"kind":null,"sourceSpan":null,"title":"GT"}],"name":"Prim.Ordering","reExports":[]}
diff --git a/tests/purs/publish/basic-example/output/Prim.Row/docs.json b/tests/purs/publish/basic-example/output/Prim.Row/docs.json
new file mode 100644
--- /dev/null
+++ b/tests/purs/publish/basic-example/output/Prim.Row/docs.json
@@ -0,0 +1,1 @@
+{"comments":"The Prim.Row module is embedded in the PureScript compiler. Unlike `Prim`, it is not imported implicitly. It contains automatically solved type classes for working with row types.","declarations":[{"children":[],"comments":"The Union type class is used to compute the union of two rows of types\n(left-biased, including duplicates).\n\nThe third type argument represents the union of the first two.\n","info":{"arguments":[["left",{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Row"],"tag":"TypeConstructor"},{"annotation":[],"contents":"k","tag":"TypeVar"}],"tag":"TypeApp"}],["right",{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Row"],"tag":"TypeConstructor"},{"annotation":[],"contents":"k","tag":"TypeVar"}],"tag":"TypeApp"}],["union",{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Row"],"tag":"TypeConstructor"},{"annotation":[],"contents":"k","tag":"TypeVar"}],"tag":"TypeApp"}]],"declType":"typeClass","fundeps":[[["left","right"],["union"]],[["right","union"],["left"]],[["union","left"],["right"]]],"superclasses":[]},"kind":null,"sourceSpan":null,"title":"Union"},{"children":[],"comments":"The Nub type class is used to remove duplicate labels from rows.\n","info":{"arguments":[["original",{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Row"],"tag":"TypeConstructor"},{"annotation":[],"contents":"k","tag":"TypeVar"}],"tag":"TypeApp"}],["nubbed",{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Row"],"tag":"TypeConstructor"},{"annotation":[],"contents":"k","tag":"TypeVar"}],"tag":"TypeApp"}]],"declType":"typeClass","fundeps":[[["original"],["nubbed"]]],"superclasses":[]},"kind":null,"sourceSpan":null,"title":"Nub"},{"children":[],"comments":"The Lacks type class asserts that a label does not occur in a given row.\n","info":{"arguments":[["label",{"annotation":[],"contents":[["Prim"],"Symbol"],"tag":"TypeConstructor"}],["row",{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Row"],"tag":"TypeConstructor"},{"annotation":[],"contents":"k","tag":"TypeVar"}],"tag":"TypeApp"}]],"declType":"typeClass","fundeps":[],"superclasses":[]},"kind":null,"sourceSpan":null,"title":"Lacks"},{"children":[],"comments":"The Cons type class is a 4-way relation which asserts that one row of\ntypes can be obtained from another by inserting a new label/type pair on\nthe left.\n","info":{"arguments":[["label",{"annotation":[],"contents":[["Prim"],"Symbol"],"tag":"TypeConstructor"}],["a",{"annotation":[],"contents":"k","tag":"TypeVar"}],["tail",{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Row"],"tag":"TypeConstructor"},{"annotation":[],"contents":"k","tag":"TypeVar"}],"tag":"TypeApp"}],["row",{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Row"],"tag":"TypeConstructor"},{"annotation":[],"contents":"k","tag":"TypeVar"}],"tag":"TypeApp"}]],"declType":"typeClass","fundeps":[[["label","a","tail"],["row"]],[["label","row"],["a","tail"]]],"superclasses":[]},"kind":null,"sourceSpan":null,"title":"Cons"}],"name":"Prim.Row","reExports":[]}
diff --git a/tests/purs/publish/basic-example/output/Prim.RowList/docs.json b/tests/purs/publish/basic-example/output/Prim.RowList/docs.json
new file mode 100644
--- /dev/null
+++ b/tests/purs/publish/basic-example/output/Prim.RowList/docs.json
@@ -0,0 +1,1 @@
+{"comments":"The Prim.RowList module is embedded in the PureScript compiler. Unlike `Prim`, it is not imported implicitly. It contains a type level list (`RowList`) that represents an ordered view of a row of types.","declarations":[{"children":[],"comments":"A type level list representation of a row of types.\n","info":{"declType":"externData","kind":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"},"roles":[]},"kind":null,"sourceSpan":null,"title":"RowList"},{"children":[],"comments":"Constructs a new `RowList` from a label, a type, and an existing tail\n`RowList`.  E.g: `Cons \"x\" Int (Cons \"y\" Int Nil)`.\n","info":{"declType":"externData","kind":{"annotation":[],"contents":{"identifier":"k","kind":{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"skolem":null,"type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Symbol"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"k","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim","RowList"],"RowList"],"tag":"TypeConstructor"},{"annotation":[],"contents":"k","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim","RowList"],"RowList"],"tag":"TypeConstructor"},{"annotation":[],"contents":"k","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"roles":[]},"kind":null,"sourceSpan":null,"title":"Cons"},{"children":[],"comments":"The empty `RowList`.\n","info":{"declType":"externData","kind":{"annotation":[],"contents":{"identifier":"k","kind":{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"skolem":null,"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim","RowList"],"RowList"],"tag":"TypeConstructor"},{"annotation":[],"contents":"k","tag":"TypeVar"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"roles":[]},"kind":null,"sourceSpan":null,"title":"Nil"},{"children":[],"comments":"Compiler solved type class for generating a `RowList` from a closed row\nof types.  Entries are sorted by label and duplicates are preserved in\nthe order they appeared in the row.\n","info":{"arguments":[["row",{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Row"],"tag":"TypeConstructor"},{"annotation":[],"contents":"k","tag":"TypeVar"}],"tag":"TypeApp"}],["list",{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim","RowList"],"RowList"],"tag":"TypeConstructor"},{"annotation":[],"contents":"k","tag":"TypeVar"}],"tag":"TypeApp"}]],"declType":"typeClass","fundeps":[[["row"],["list"]]],"superclasses":[]},"kind":null,"sourceSpan":null,"title":"RowToList"}],"name":"Prim.RowList","reExports":[]}
diff --git a/tests/purs/publish/basic-example/output/Prim.Symbol/docs.json b/tests/purs/publish/basic-example/output/Prim.Symbol/docs.json
new file mode 100644
--- /dev/null
+++ b/tests/purs/publish/basic-example/output/Prim.Symbol/docs.json
@@ -0,0 +1,1 @@
+{"comments":"The Prim.Symbol module is embedded in the PureScript compiler. Unlike `Prim`, it is not imported implicitly. It contains automatically solved type classes for working with `Symbols`.","declarations":[{"children":[],"comments":"Compiler solved type class for appending `Symbol`s together.\n","info":{"arguments":[["left",{"annotation":[],"contents":[["Prim"],"Symbol"],"tag":"TypeConstructor"}],["right",{"annotation":[],"contents":[["Prim"],"Symbol"],"tag":"TypeConstructor"}],["appended",{"annotation":[],"contents":[["Prim"],"Symbol"],"tag":"TypeConstructor"}]],"declType":"typeClass","fundeps":[[["left","right"],["appended"]],[["right","appended"],["left"]],[["appended","left"],["right"]]],"superclasses":[]},"kind":null,"sourceSpan":null,"title":"Append"},{"children":[],"comments":"Compiler solved type class for comparing two `Symbol`s.\nProduces an `Ordering`.\n","info":{"arguments":[["left",{"annotation":[],"contents":[["Prim"],"Symbol"],"tag":"TypeConstructor"}],["right",{"annotation":[],"contents":[["Prim"],"Symbol"],"tag":"TypeConstructor"}],["ordering",{"annotation":[],"contents":[["Prim","Ordering"],"Ordering"],"tag":"TypeConstructor"}]],"declType":"typeClass","fundeps":[[["left","right"],["ordering"]]],"superclasses":[]},"kind":null,"sourceSpan":null,"title":"Compare"},{"children":[],"comments":"Compiler solved type class for either splitting up a symbol into its\nhead and tail or for combining a head and tail into a new symbol.\nRequires the head to be a single character and the combined string\ncannot be empty.\n","info":{"arguments":[["head",{"annotation":[],"contents":[["Prim"],"Symbol"],"tag":"TypeConstructor"}],["tail",{"annotation":[],"contents":[["Prim"],"Symbol"],"tag":"TypeConstructor"}],["symbol",{"annotation":[],"contents":[["Prim"],"Symbol"],"tag":"TypeConstructor"}]],"declType":"typeClass","fundeps":[[["head","tail"],["symbol"]],[["symbol"],["head","tail"]]],"superclasses":[]},"kind":null,"sourceSpan":null,"title":"Cons"}],"name":"Prim.Symbol","reExports":[]}
diff --git a/tests/purs/publish/basic-example/output/Prim.TypeError/docs.json b/tests/purs/publish/basic-example/output/Prim.TypeError/docs.json
new file mode 100644
--- /dev/null
+++ b/tests/purs/publish/basic-example/output/Prim.TypeError/docs.json
@@ -0,0 +1,1 @@
+{"comments":"The Prim.TypeError module is embedded in the PureScript compiler. Unlike `Prim`, it is not imported implicitly. It contains type classes that provide custom type error and warning functionality.","declarations":[{"children":[],"comments":"The Warn type class allows a custom compiler warning to be displayed.\n\nFor more information, see\n[the Custom Type Errors guide](https://github.com/purescript/documentation/blob/master/guides/Custom-Type-Errors.md).\n","info":{"arguments":[["message",{"annotation":[],"contents":[["Prim","TypeError"],"Doc"],"tag":"TypeConstructor"}]],"declType":"typeClass","fundeps":[],"superclasses":[]},"kind":null,"sourceSpan":null,"title":"Warn"},{"children":[],"comments":"The Fail type class is part of the custom type errors feature. To provide\na custom type error when someone tries to use a particular instance,\nwrite that instance out with a Fail constraint.\n\nFor more information, see\n[the Custom Type Errors guide](https://github.com/purescript/documentation/blob/master/guides/Custom-Type-Errors.md).\n","info":{"arguments":[["message",{"annotation":[],"contents":[["Prim","TypeError"],"Doc"],"tag":"TypeConstructor"}]],"declType":"typeClass","fundeps":[],"superclasses":[]},"kind":null,"sourceSpan":null,"title":"Fail"},{"children":[],"comments":"`Doc` is the kind of type-level documents.\n\nThis kind is used with the `Fail` and `Warn` type classes.\nBuild up a `Doc` with `Text`, `Quote`, `QuoteLabel`, `Beside`, and `Above`.\n","info":{"declType":"externData","kind":{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"roles":[]},"kind":null,"sourceSpan":null,"title":"Doc"},{"children":[],"comments":"The Text type constructor makes a Doc from a Symbol\nto be used in a custom type error.\n\nFor more information, see\n[the Custom Type Errors guide](https://github.com/purescript/documentation/blob/master/guides/Custom-Type-Errors.md).\n","info":{"declType":"externData","kind":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Symbol"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim","TypeError"],"Doc"],"tag":"TypeConstructor"}],"tag":"TypeApp"},"roles":[]},"kind":null,"sourceSpan":null,"title":"Text"},{"children":[],"comments":"The Quote type constructor renders any concrete type as a Doc\nto be used in a custom type error.\n\nFor more information, see\n[the Custom Type Errors guide](https://github.com/purescript/documentation/blob/master/guides/Custom-Type-Errors.md).\n","info":{"declType":"externData","kind":{"annotation":[],"contents":{"identifier":"k","kind":{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"skolem":null,"type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"k","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim","TypeError"],"Doc"],"tag":"TypeConstructor"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"roles":[]},"kind":null,"sourceSpan":null,"title":"Quote"},{"children":[],"comments":"The `QuoteLabel` type constructor will produce a `Doc` when given a `Symbol`. When the resulting `Doc` is rendered\nfor a `Warn` or `Fail` constraint, a syntactically valid label will be produced, escaping with quotes as needed.\n\nFor more information, see\n[the Custom Type Errors guide](https://github.com/purescript/documentation/blob/master/guides/Custom-Type-Errors.md).\n","info":{"declType":"externData","kind":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Symbol"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim","TypeError"],"Doc"],"tag":"TypeConstructor"}],"tag":"TypeApp"},"roles":[]},"kind":null,"sourceSpan":null,"title":"QuoteLabel"},{"children":[],"comments":"The Beside type constructor combines two Docs horizontally\nto be used in a custom type error.\n\nFor more information, see\n[the Custom Type Errors guide](https://github.com/purescript/documentation/blob/master/guides/Custom-Type-Errors.md).\n","info":{"declType":"externData","kind":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim","TypeError"],"Doc"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim","TypeError"],"Doc"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim","TypeError"],"Doc"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"},"roles":[]},"kind":null,"sourceSpan":null,"title":"Beside"},{"children":[],"comments":"The Above type constructor combines two Docs vertically\nin a custom type error.\n\nFor more information, see\n[the Custom Type Errors guide](https://github.com/purescript/documentation/blob/master/guides/Custom-Type-Errors.md).\n","info":{"declType":"externData","kind":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim","TypeError"],"Doc"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim","TypeError"],"Doc"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim","TypeError"],"Doc"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"},"roles":[]},"kind":null,"sourceSpan":null,"title":"Above"}],"name":"Prim.TypeError","reExports":[]}
diff --git a/tests/purs/publish/basic-example/output/Prim/docs.json b/tests/purs/publish/basic-example/output/Prim/docs.json
new file mode 100644
--- /dev/null
+++ b/tests/purs/publish/basic-example/output/Prim/docs.json
@@ -0,0 +1,1 @@
+{"comments":"The `Prim` module is embedded in the PureScript compiler in order to provide compiler support for certain types &mdash; for example, value literals, or syntax sugar. It is implicitly imported unqualified in every module except those that list it as a qualified import.\n\n`Prim` does not include additional built-in types and kinds that are defined deeper in the compiler such as Type wildcards (e.g. `f :: _ -> Int`) and Quantified Types. Rather, these are documented in [the PureScript language reference](https://github.com/purescript/documentation/blob/master/language/Types.md).\n","declarations":[{"children":[],"comments":"A function, which takes values of the type specified by the first type\nparameter, and returns values of the type specified by the second.\nIn the JavaScript backend, this is a standard JavaScript Function.\n\nThe type constructor `(->)` is syntactic sugar for this type constructor.\nIt is recommended to use `(->)` rather than `Function`, where possible.\n\nThat is, prefer this:\n\n    f :: Number -> Number\n\nto either of these:\n\n    f :: Function Number Number\n    f :: (->) Number Number\n","info":{"declType":"externData","kind":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"},"roles":[]},"kind":null,"sourceSpan":null,"title":"Function"},{"children":[],"comments":"An Array: a data structure supporting efficient random access. In\nthe JavaScript backend, values of this type are represented as JavaScript\nArrays at runtime.\n\nConstruct values using literals:\n\n    x = [1,2,3,4,5] :: Array Int\n","info":{"declType":"externData","kind":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"},"roles":[]},"kind":null,"sourceSpan":null,"title":"Array"},{"children":[],"comments":"The type of records whose fields are known at compile time. In the\nJavaScript backend, values of this type are represented as JavaScript\nObjects at runtime.\n\nThe type signature here means that the `Record` type constructor takes\na row of concrete types. For example:\n\n    type Person = Record (name :: String, age :: Number)\n\nThe syntactic sugar with curly braces `{ }` is generally preferred, though:\n\n    type Person = { name :: String, age :: Number }\n\nThe row associates a type to each label which appears in the record.\n\n_Technical note_: PureScript allows duplicate labels in rows, and the\nmeaning of `Record r` is based on the _first_ occurrence of each label in\nthe row `r`.\n","info":{"declType":"externData","kind":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Row"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"},"roles":[]},"kind":null,"sourceSpan":null,"title":"Record"},{"children":[],"comments":"A double precision floating point number (IEEE 754).\n\nConstruct values of this type with literals.\nNegative literals must be wrapped in parentheses if the negation sign could be mistaken\nfor an infix operator:\n\n    x = 35.23 :: Number\n    y = -1.224e6 :: Number\n    z = exp (-1.0) :: Number\n","info":{"declType":"externData","kind":{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"roles":[]},"kind":null,"sourceSpan":null,"title":"Number"},{"children":[],"comments":"A 32-bit signed integer. See the `purescript-integers` package for details\nof how this is accomplished when compiling to JavaScript.\n\nConstruct values of this type with literals. Hexadecimal syntax is supported.\nNegative literals must be wrapped in parentheses if the negation sign could be mistaken\nfor an infix operator:\n\n    x = -23 :: Int\n    y = 0x17 :: Int\n    z = complement (-24) :: Int\n\nIntegers used as types are considered to have kind `Int`.\nUnlike value-level `Int`s, which must be representable as a 32-bit signed integer,\ntype-level `Int`s are unbounded. Hexadecimal support is also supported at the type level.\n\n    type One :: Int\n    type One = 1\n    \n    type Beyond32BitSignedInt :: Int\n    type Beyond32BitSignedInt = 2147483648\n    \n    type HexInt :: Int\n    type HexInt = 0x17\n\nNegative integer literals at the type level must be\nwrapped in parentheses if the negation sign could be mistaken for an infix operator.\n\n    type NegativeOne = -1\n    foo :: Proxy (-1) -> ...\n","info":{"declType":"externData","kind":{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"roles":[]},"kind":null,"sourceSpan":null,"title":"Int"},{"children":[],"comments":"A String. As in JavaScript, String values represent sequences of UTF-16\ncode units, which are not required to form a valid encoding of Unicode\ntext (for example, lone surrogates are permitted).\n\nConstruct values of this type with literals, using double quotes `\"`:\n\n    x = \"hello, world\" :: String\n\nMulti-line string literals are also supported with triple quotes (`\"\"\"`):\n\n    x = \"\"\"multi\n       line\"\"\"\n\nAt the type level, string literals represent types with kind `Symbol`.\nThese types will have kind `String` in a future release:\n\n    type Hello :: Symbol\n    type Hello = \"Hello, world\"\n","info":{"declType":"externData","kind":{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"roles":[]},"kind":null,"sourceSpan":null,"title":"String"},{"children":[],"comments":"A single character (UTF-16 code unit). The JavaScript representation is a\nnormal `String`, which is guaranteed to contain one code unit. This means\nthat astral plane characters (i.e. those with code point values greater\nthan `0xFFFF`) cannot be represented as `Char` values.\n\nConstruct values of this type with literals, using single quotes `'`:\n\n    x = 'a' :: Char\n","info":{"declType":"externData","kind":{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"roles":[]},"kind":null,"sourceSpan":null,"title":"Char"},{"children":[],"comments":"A JavaScript Boolean value.\n\nConstruct values of this type with the literals `true` and `false`.\n\nThe `True` and `False` types defined in `Prim.Boolean` have this type as their kind.\n","info":{"declType":"externData","kind":{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"roles":[]},"kind":null,"sourceSpan":null,"title":"Boolean"},{"children":[],"comments":"The Partial type class is used to indicate that a function is *partial,*\nthat is, it is not defined for all inputs. In practice, attempting to use\na partial function with a bad input will usually cause an error to be\nthrown, although it is not safe to assume that this will happen in all\ncases. For more information, see\n[purescript-partial](https://pursuit.purescript.org/packages/purescript-partial/).\n","info":{"arguments":[],"declType":"typeClass","fundeps":[],"superclasses":[]},"kind":null,"sourceSpan":null,"title":"Partial"},{"children":[],"comments":"`Type` is the kind of all proper types: those that classify value-level terms.\nFor example the type `Boolean` has kind `Type`; denoted by `Boolean :: Type`.\n","info":{"declType":"externData","kind":{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"roles":[]},"kind":null,"sourceSpan":null,"title":"Type"},{"children":[],"comments":"`Constraint` is the kind of type class constraints.\nFor example, a type class declaration like this:\n\n    class Semigroup a where\n      append :: a -> a -> a\n\nhas the kind signature:\n\n    class Semigroup :: Type -> Constraint\n","info":{"declType":"externData","kind":{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"roles":[]},"kind":null,"sourceSpan":null,"title":"Constraint"},{"children":[],"comments":"`Symbol` is the kind of type-level strings.\n\nConstruct types of this kind using the same literal syntax as documented\nfor strings.\n\n    type Hello :: Symbol\n    type Hello = \"Hello, world\"\n\n","info":{"declType":"externData","kind":{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"},"roles":[]},"kind":null,"sourceSpan":null,"title":"Symbol"},{"children":[],"comments":"`Row` is the kind constructor of label-indexed types which map type-level strings to other types.\nThe most common use of `Row` is `Row Type`, a row mapping labels to basic (of kind `Type`) types:\n\n    type ExampleRow :: Row Type\n    type ExampleRow = ( name :: String, values :: Array Int )\n\nThis is the kind of `Row` expected by the `Record` type constructor.\nMore advanced row kinds like `Row (Type -> Type)` are used much less frequently.\n","info":{"declType":"externData","kind":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"},"roles":[]},"kind":null,"sourceSpan":null,"title":"Row"}],"name":"Prim","reExports":[]}
diff --git a/tests/purs/publish/basic-example/output/Record.Unsafe/docs.json b/tests/purs/publish/basic-example/output/Record.Unsafe/docs.json
--- a/tests/purs/publish/basic-example/output/Record.Unsafe/docs.json
+++ b/tests/purs/publish/basic-example/output/Record.Unsafe/docs.json
@@ -1,1 +1,1 @@
-{"reExports":[],"name":"Record.Unsafe","comments":"The functions in this module are highly unsafe as they treat records like\nstringly-keyed maps and can coerce the row of labels that a record has.\n\nThese function are intended for situations where there is some other way of\nproving things about the structure of the record - for example, when using\n`RowToList`. **They should never be used for general record manipulation.**\n","declarations":[{"children":[],"comments":"Checks if a record has a key, using a string for the key.\n","title":"unsafeHas","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["r1",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"TypeVar","contents":"r1"}]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]},null]}},"sourceSpan":{"start":[10,1],"name":"../../../support/bower_components/purescript-prelude/src/Record/Unsafe.purs","end":[10,70]}},{"children":[],"comments":"Unsafely gets a value from a record, using a string for the key.\n\nIf the key does not exist this will cause a runtime error elsewhere.\n","title":"unsafeGet","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["r",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},null]},null]}},"sourceSpan":{"start":[15,1],"name":"../../../support/bower_components/purescript-prelude/src/Record/Unsafe.purs","end":[15,64]}},{"children":[],"comments":"Unsafely sets a value on a record, using a string for the key.\n\nThe output record's row is unspecified so can be coerced to any row. If the\noutput type is incorrect it will cause a runtime error elsewhere.\n","title":"unsafeSet","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["r2",{"annotation":[],"tag":"ForAll","contents":["r1",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"TypeVar","contents":"r1"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"TypeVar","contents":"r2"}]}]}]}]},null]},null]},null]}},"sourceSpan":{"start":[21,1],"name":"../../../support/bower_components/purescript-prelude/src/Record/Unsafe.purs","end":[21,82]}},{"children":[],"comments":"Unsafely removes a value on a record, using a string for the key.\n\nThe output record's row is unspecified so can be coerced to any row. If the\noutput type is incorrect it will cause a runtime error elsewhere.\n","title":"unsafeDelete","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["r2",{"annotation":[],"tag":"ForAll","contents":["r1",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"TypeVar","contents":"r1"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"TypeVar","contents":"r2"}]}]}]},null]},null]}},"sourceSpan":{"start":[27,1],"name":"../../../support/bower_components/purescript-prelude/src/Record/Unsafe.purs","end":[27,78]}}]}
+{"comments":"The functions in this module are highly unsafe as they treat records like\nstringly-keyed maps and can coerce the row of labels that a record has.\n\nThese function are intended for situations where there is some other way of\nproving things about the structure of the record - for example, when using\n`RowToList`. **They should never be used for general record manipulation.**\n","declarations":[{"children":[],"comments":"Checks if a record has a key, using a string for the key.\n","info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"r1","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"String"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Record"],"tag":"TypeConstructor"},{"annotation":[],"contents":"r1","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim"],"Boolean"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[10,70],"name":"../../../support/bower_components/purescript-prelude/src/Record/Unsafe.purs","start":[10,1]},"title":"unsafeHas"},{"children":[],"comments":"Unsafely gets a value from a record, using a string for the key.\n\nIf the key does not exist this will cause a runtime error elsewhere.\n","info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"r","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"String"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Record"],"tag":"TypeConstructor"},{"annotation":[],"contents":"r","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[15,64],"name":"../../../support/bower_components/purescript-prelude/src/Record/Unsafe.purs","start":[15,1]},"title":"unsafeGet"},{"children":[],"comments":"Unsafely sets a value on a record, using a string for the key.\n\nThe output record's row is unspecified so can be coerced to any row. If the\noutput type is incorrect it will cause a runtime error elsewhere.\n","info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"r1","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"r2","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"String"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Record"],"tag":"TypeConstructor"},{"annotation":[],"contents":"r1","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Record"],"tag":"TypeConstructor"},{"annotation":[],"contents":"r2","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[21,82],"name":"../../../support/bower_components/purescript-prelude/src/Record/Unsafe.purs","start":[21,1]},"title":"unsafeSet"},{"children":[],"comments":"Unsafely removes a value on a record, using a string for the key.\n\nThe output record's row is unspecified so can be coerced to any row. If the\noutput type is incorrect it will cause a runtime error elsewhere.\n","info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"r1","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"r2","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"String"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Record"],"tag":"TypeConstructor"},{"annotation":[],"contents":"r1","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Record"],"tag":"TypeConstructor"},{"annotation":[],"contents":"r2","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[27,78],"name":"../../../support/bower_components/purescript-prelude/src/Record/Unsafe.purs","start":[27,1]},"title":"unsafeDelete"}],"name":"Record.Unsafe","reExports":[]}
diff --git a/tests/purs/publish/basic-example/output/Record.Unsafe/externs.json b/tests/purs/publish/basic-example/output/Record.Unsafe/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Record.Unsafe/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Record","Unsafe"],"efExports":[{"ValueRef":[{"start":[7,1],"name":"../../../support/bower_components/purescript-prelude/src/Record/Unsafe.purs","end":[27,78]},{"Ident":"unsafeHas"}]},{"ValueRef":[{"start":[7,1],"name":"../../../support/bower_components/purescript-prelude/src/Record/Unsafe.purs","end":[27,78]},{"Ident":"unsafeGet"}]},{"ValueRef":[{"start":[7,1],"name":"../../../support/bower_components/purescript-prelude/src/Record/Unsafe.purs","end":[27,78]},{"Ident":"unsafeSet"}]},{"ValueRef":[{"start":[7,1],"name":"../../../support/bower_components/purescript-prelude/src/Record/Unsafe.purs","end":[27,78]},{"Ident":"unsafeDelete"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDValue":{"edValueName":{"Ident":"unsafeHas"},"edValueType":{"annotation":[{"start":[10,29],"name":"../../../support/bower_components/purescript-prelude/src/Record/Unsafe.purs","end":[10,70]},[]],"tag":"ForAll","contents":["r1",{"annotation":[{"start":[10,40],"name":"../../../support/bower_components/purescript-prelude/src/Record/Unsafe.purs","end":[10,70]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[10,40],"name":"../../../support/bower_components/purescript-prelude/src/Record/Unsafe.purs","end":[10,70]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[10,47],"name":"../../../support/bower_components/purescript-prelude/src/Record/Unsafe.purs","end":[10,49]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[10,40],"name":"../../../support/bower_components/purescript-prelude/src/Record/Unsafe.purs","end":[10,46]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[{"start":[10,50],"name":"../../../support/bower_components/purescript-prelude/src/Record/Unsafe.purs","end":[10,70]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[10,50],"name":"../../../support/bower_components/purescript-prelude/src/Record/Unsafe.purs","end":[10,70]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[10,60],"name":"../../../support/bower_components/purescript-prelude/src/Record/Unsafe.purs","end":[10,62]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[10,50],"name":"../../../support/bower_components/purescript-prelude/src/Record/Unsafe.purs","end":[10,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[10,50],"name":"../../../support/bower_components/purescript-prelude/src/Record/Unsafe.purs","end":[10,56]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[10,57],"name":"../../../support/bower_components/purescript-prelude/src/Record/Unsafe.purs","end":[10,59]},[]],"tag":"TypeVar","contents":"r1"}]}]},{"annotation":[{"start":[10,63],"name":"../../../support/bower_components/purescript-prelude/src/Record/Unsafe.purs","end":[10,70]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]},null]}}},{"EDValue":{"edValueName":{"Ident":"unsafeGet"},"edValueType":{"annotation":[{"start":[15,29],"name":"../../../support/bower_components/purescript-prelude/src/Record/Unsafe.purs","end":[15,64]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[15,36],"name":"../../../support/bower_components/purescript-prelude/src/Record/Unsafe.purs","end":[15,64]},[]],"tag":"ForAll","contents":["r",{"annotation":[{"start":[15,41],"name":"../../../support/bower_components/purescript-prelude/src/Record/Unsafe.purs","end":[15,64]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[15,41],"name":"../../../support/bower_components/purescript-prelude/src/Record/Unsafe.purs","end":[15,64]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[15,48],"name":"../../../support/bower_components/purescript-prelude/src/Record/Unsafe.purs","end":[15,50]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[15,41],"name":"../../../support/bower_components/purescript-prelude/src/Record/Unsafe.purs","end":[15,47]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[{"start":[15,51],"name":"../../../support/bower_components/purescript-prelude/src/Record/Unsafe.purs","end":[15,64]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[15,51],"name":"../../../support/bower_components/purescript-prelude/src/Record/Unsafe.purs","end":[15,64]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[15,60],"name":"../../../support/bower_components/purescript-prelude/src/Record/Unsafe.purs","end":[15,62]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[15,51],"name":"../../../support/bower_components/purescript-prelude/src/Record/Unsafe.purs","end":[15,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[15,51],"name":"../../../support/bower_components/purescript-prelude/src/Record/Unsafe.purs","end":[15,57]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[15,58],"name":"../../../support/bower_components/purescript-prelude/src/Record/Unsafe.purs","end":[15,59]},[]],"tag":"TypeVar","contents":"r"}]}]},{"annotation":[{"start":[15,63],"name":"../../../support/bower_components/purescript-prelude/src/Record/Unsafe.purs","end":[15,64]},[]],"tag":"TypeVar","contents":"a"}]}]},null]},null]}}},{"EDValue":{"edValueName":{"Ident":"unsafeSet"},"edValueType":{"annotation":[{"start":[21,29],"name":"../../../support/bower_components/purescript-prelude/src/Record/Unsafe.purs","end":[21,82]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[21,36],"name":"../../../support/bower_components/purescript-prelude/src/Record/Unsafe.purs","end":[21,82]},[]],"tag":"ForAll","contents":["r2",{"annotation":[{"start":[21,36],"name":"../../../support/bower_components/purescript-prelude/src/Record/Unsafe.purs","end":[21,82]},[]],"tag":"ForAll","contents":["r1",{"annotation":[{"start":[21,45],"name":"../../../support/bower_components/purescript-prelude/src/Record/Unsafe.purs","end":[21,82]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[21,45],"name":"../../../support/bower_components/purescript-prelude/src/Record/Unsafe.purs","end":[21,82]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[21,52],"name":"../../../support/bower_components/purescript-prelude/src/Record/Unsafe.purs","end":[21,54]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[21,45],"name":"../../../support/bower_components/purescript-prelude/src/Record/Unsafe.purs","end":[21,51]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[{"start":[21,55],"name":"../../../support/bower_components/purescript-prelude/src/Record/Unsafe.purs","end":[21,82]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[21,55],"name":"../../../support/bower_components/purescript-prelude/src/Record/Unsafe.purs","end":[21,82]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[21,57],"name":"../../../support/bower_components/purescript-prelude/src/Record/Unsafe.purs","end":[21,59]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[21,55],"name":"../../../support/bower_components/purescript-prelude/src/Record/Unsafe.purs","end":[21,56]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[21,60],"name":"../../../support/bower_components/purescript-prelude/src/Record/Unsafe.purs","end":[21,82]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[21,60],"name":"../../../support/bower_components/purescript-prelude/src/Record/Unsafe.purs","end":[21,82]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[21,70],"name":"../../../support/bower_components/purescript-prelude/src/Record/Unsafe.purs","end":[21,72]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[21,60],"name":"../../../support/bower_components/purescript-prelude/src/Record/Unsafe.purs","end":[21,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[21,60],"name":"../../../support/bower_components/purescript-prelude/src/Record/Unsafe.purs","end":[21,66]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[21,67],"name":"../../../support/bower_components/purescript-prelude/src/Record/Unsafe.purs","end":[21,69]},[]],"tag":"TypeVar","contents":"r1"}]}]},{"annotation":[{"start":[21,73],"name":"../../../support/bower_components/purescript-prelude/src/Record/Unsafe.purs","end":[21,82]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[21,73],"name":"../../../support/bower_components/purescript-prelude/src/Record/Unsafe.purs","end":[21,79]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[21,80],"name":"../../../support/bower_components/purescript-prelude/src/Record/Unsafe.purs","end":[21,82]},[]],"tag":"TypeVar","contents":"r2"}]}]}]}]},null]},null]},null]}}},{"EDValue":{"edValueName":{"Ident":"unsafeDelete"},"edValueType":{"annotation":[{"start":[27,32],"name":"../../../support/bower_components/purescript-prelude/src/Record/Unsafe.purs","end":[27,78]},[]],"tag":"ForAll","contents":["r2",{"annotation":[{"start":[27,39],"name":"../../../support/bower_components/purescript-prelude/src/Record/Unsafe.purs","end":[27,78]},[]],"tag":"ForAll","contents":["r1",{"annotation":[{"start":[27,46],"name":"../../../support/bower_components/purescript-prelude/src/Record/Unsafe.purs","end":[27,78]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[27,46],"name":"../../../support/bower_components/purescript-prelude/src/Record/Unsafe.purs","end":[27,78]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[27,53],"name":"../../../support/bower_components/purescript-prelude/src/Record/Unsafe.purs","end":[27,55]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[27,46],"name":"../../../support/bower_components/purescript-prelude/src/Record/Unsafe.purs","end":[27,52]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[{"start":[27,56],"name":"../../../support/bower_components/purescript-prelude/src/Record/Unsafe.purs","end":[27,78]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[27,56],"name":"../../../support/bower_components/purescript-prelude/src/Record/Unsafe.purs","end":[27,78]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[27,66],"name":"../../../support/bower_components/purescript-prelude/src/Record/Unsafe.purs","end":[27,68]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[27,56],"name":"../../../support/bower_components/purescript-prelude/src/Record/Unsafe.purs","end":[27,65]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[27,56],"name":"../../../support/bower_components/purescript-prelude/src/Record/Unsafe.purs","end":[27,62]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[27,63],"name":"../../../support/bower_components/purescript-prelude/src/Record/Unsafe.purs","end":[27,65]},[]],"tag":"TypeVar","contents":"r1"}]}]},{"annotation":[{"start":[27,69],"name":"../../../support/bower_components/purescript-prelude/src/Record/Unsafe.purs","end":[27,78]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[27,69],"name":"../../../support/bower_components/purescript-prelude/src/Record/Unsafe.purs","end":[27,75]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[27,76],"name":"../../../support/bower_components/purescript-prelude/src/Record/Unsafe.purs","end":[27,78]},[]],"tag":"TypeVar","contents":"r2"}]}]}]},null]},null]}}}],"efSourceSpan":{"start":[7,1],"name":"../../../support/bower_components/purescript-prelude/src/Record/Unsafe.purs","end":[27,78]}}
diff --git a/tests/purs/publish/basic-example/output/Safe.Coerce/docs.json b/tests/purs/publish/basic-example/output/Safe.Coerce/docs.json
new file mode 100644
--- /dev/null
+++ b/tests/purs/publish/basic-example/output/Safe.Coerce/docs.json
@@ -0,0 +1,1 @@
+{"comments":null,"declarations":[{"children":[],"comments":"Coerce a value of one type to a value of some other type, without changing\nits runtime representation. This function behaves identically to\n`unsafeCoerce` at runtime. Unlike `unsafeCoerce`, it is safe, because the\n`Coercible` constraint prevents any use of this function from compiling\nunless the compiler can prove that the two types have the same runtime\nrepresentation.\n\nOne application for this function is to avoid doing work that you know is a\nno-op because of newtypes. For example, if you have an `Array (Conj a)` and you\nwant an `Array (Disj a)`, you could do `Data.Array.map (un Conj >>> Disj)`, but\nthis performs an unnecessary traversal of the array, with O(n) cost.\n`coerce` accomplishes the same with only O(1) cost:\n\n```purescript\nmapConjToDisj :: forall a. Array (Conj a) -> Array (Disj a)\nmapConjToDisj = coerce\n```\n","info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"b","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"constraintClass":[["Prim","Coerce"],"Coercible"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[26,46],"name":"../../../support/bower_components/purescript-safe-coerce/src/Safe/Coerce.purs","start":[26,1]},"title":"coerce"}],"name":"Safe.Coerce","reExports":[]}
diff --git a/tests/purs/publish/basic-example/output/Test.Assert/docs.json b/tests/purs/publish/basic-example/output/Test.Assert/docs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Test.Assert/docs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"reExports":[],"name":"Test.Assert","comments":null,"declarations":[{"children":[],"comments":"Throws a runtime exception with message \"Assertion failed\" when the boolean\nvalue is false.\n","title":"assert","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Effect"],"Effect"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}},"sourceSpan":{"start":[18,1],"name":"../../../support/bower_components/purescript-assert/src/Test/Assert.purs","end":[18,33]}},{"children":[],"comments":"Throws a runtime exception with the specified message when the boolean\nvalue is false.\n","title":"assert'","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Effect"],"Effect"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}]}},"sourceSpan":{"start":[23,1],"name":"../../../support/bower_components/purescript-assert/src/Test/Assert.purs","end":[26,17]}},{"children":[],"comments":"Compares the `expected` and `actual` values for equality and\nthrows a runtime exception when the values are not equal.\n\nThe message indicates the expected value and the actual value.\n","title":"assertEqual","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Show"],"Show"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"RCons","contents":["actual",{"annotation":[],"tag":"TypeVar","contents":"a"},{"annotation":[],"tag":"RCons","contents":["expected",{"annotation":[],"tag":"TypeVar","contents":"a"},{"annotation":[],"tag":"REmpty"}]}]}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Effect"],"Effect"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}]}]},null]}},"sourceSpan":{"start":[62,1],"name":"../../../support/bower_components/purescript-assert/src/Test/Assert.purs","end":[67,17]}},{"children":[],"comments":"Throws a runtime exception when the value is `true`.\n\nThe message indicates the expected value (`false`)\nand the actual value (`true`).\n","title":"assertFalse","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Effect"],"Effect"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}},"sourceSpan":{"start":[88,1],"name":"../../../support/bower_components/purescript-assert/src/Test/Assert.purs","end":[90,17]}},{"children":[],"comments":"Throws a runtime exception with message \"Assertion failed: An error should\nhave been thrown\", unless the argument throws an exception when evaluated.\n\nThis function is specifically for testing unsafe pure code; for example,\nto make sure that an exception is thrown if a precondition is not\nsatisfied. Functions which use `Effect a` can be\ntested with `catchException` instead.\n","title":"assertThrows","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Effect"],"Effect"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]},null]}},"sourceSpan":{"start":[35,1],"name":"../../../support/bower_components/purescript-assert/src/Test/Assert.purs","end":[35,53]}},{"children":[],"comments":"Throws a runtime exception with the specified message, unless the argument\nthrows an exception when evaluated.\n\nThis function is specifically for testing unsafe pure code; for example,\nto make sure that an exception is thrown if a precondition is not\nsatisfied. Functions which use `Effect a` can be\ntested with `catchException` instead.\n","title":"assertThrows'","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Effect"],"Effect"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}]},null]}},"sourceSpan":{"start":[46,1],"name":"../../../support/bower_components/purescript-assert/src/Test/Assert.purs","end":[50,17]}},{"children":[],"comments":"Throws a runtime exception when the value is `false`.\n\nThe message indicates the expected value (`true`)\nand the actual value (`false`).\n","title":"assertTrue","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Effect"],"Effect"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}},"sourceSpan":{"start":[79,1],"name":"../../../support/bower_components/purescript-assert/src/Test/Assert.purs","end":[81,17]}}]}
diff --git a/tests/purs/publish/basic-example/output/Test.Assert/externs.json b/tests/purs/publish/basic-example/output/Test.Assert/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Test.Assert/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Test","Assert"],"efExports":[{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-assert/src/Test/Assert.purs","end":[91,61]},{"Ident":"assert"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-assert/src/Test/Assert.purs","end":[91,61]},{"Ident":"assert'"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-assert/src/Test/Assert.purs","end":[91,61]},{"Ident":"assertEqual"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-assert/src/Test/Assert.purs","end":[91,61]},{"Ident":"assertFalse"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-assert/src/Test/Assert.purs","end":[91,61]},{"Ident":"assertThrows"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-assert/src/Test/Assert.purs","end":[91,61]},{"Ident":"assertThrows'"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-assert/src/Test/Assert.purs","end":[91,61]},{"Ident":"assertTrue"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Prelude"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Effect"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[13,16],"name":"../../../support/bower_components/purescript-assert/src/Test/Assert.purs","end":[13,22]},"Effect",[]]}]},"eiImportedAs":null},{"eiModule":["Effect","Console"],"eiImportType":{"Explicit":[{"ValueRef":[{"start":[14,24],"name":"../../../support/bower_components/purescript-assert/src/Test/Assert.purs","end":[14,29]},{"Ident":"error"}]}]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDValue":{"edValueName":{"Ident":"assert"},"edValueType":{"annotation":[{"start":[18,11],"name":"../../../support/bower_components/purescript-assert/src/Test/Assert.purs","end":[18,33]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,11],"name":"../../../support/bower_components/purescript-assert/src/Test/Assert.purs","end":[18,33]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,19],"name":"../../../support/bower_components/purescript-assert/src/Test/Assert.purs","end":[18,21]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[18,11],"name":"../../../support/bower_components/purescript-assert/src/Test/Assert.purs","end":[18,18]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]},{"annotation":[{"start":[18,22],"name":"../../../support/bower_components/purescript-assert/src/Test/Assert.purs","end":[18,33]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,22],"name":"../../../support/bower_components/purescript-assert/src/Test/Assert.purs","end":[18,28]},[]],"tag":"TypeConstructor","contents":[["Effect"],"Effect"]},{"annotation":[{"start":[18,29],"name":"../../../support/bower_components/purescript-assert/src/Test/Assert.purs","end":[18,33]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}}},{"EDValue":{"edValueName":{"Ident":"assert'"},"edValueType":{"annotation":[{"start":[24,6],"name":"../../../support/bower_components/purescript-assert/src/Test/Assert.purs","end":[26,17]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[24,6],"name":"../../../support/bower_components/purescript-assert/src/Test/Assert.purs","end":[26,17]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[25,3],"name":"../../../support/bower_components/purescript-assert/src/Test/Assert.purs","end":[25,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[24,6],"name":"../../../support/bower_components/purescript-assert/src/Test/Assert.purs","end":[24,12]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[{"start":[25,6],"name":"../../../support/bower_components/purescript-assert/src/Test/Assert.purs","end":[26,17]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[25,6],"name":"../../../support/bower_components/purescript-assert/src/Test/Assert.purs","end":[26,17]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[26,3],"name":"../../../support/bower_components/purescript-assert/src/Test/Assert.purs","end":[26,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[25,6],"name":"../../../support/bower_components/purescript-assert/src/Test/Assert.purs","end":[25,13]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]},{"annotation":[{"start":[26,6],"name":"../../../support/bower_components/purescript-assert/src/Test/Assert.purs","end":[26,17]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[26,6],"name":"../../../support/bower_components/purescript-assert/src/Test/Assert.purs","end":[26,12]},[]],"tag":"TypeConstructor","contents":[["Effect"],"Effect"]},{"annotation":[{"start":[26,13],"name":"../../../support/bower_components/purescript-assert/src/Test/Assert.purs","end":[26,17]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}]}}},{"EDValue":{"edValueName":{"Ident":"assertEqual"},"edValueType":{"annotation":[{"start":[63,6],"name":"../../../support/bower_components/purescript-assert/src/Test/Assert.purs","end":[67,17]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[64,6],"name":"../../../support/bower_components/purescript-assert/src/Test/Assert.purs","end":[67,17]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[64,6],"name":"../../../support/bower_components/purescript-assert/src/Test/Assert.purs","end":[64,10]},[]],"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"annotation":[{"start":[64,9],"name":"../../../support/bower_components/purescript-assert/src/Test/Assert.purs","end":[64,10]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[65,6],"name":"../../../support/bower_components/purescript-assert/src/Test/Assert.purs","end":[67,17]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[65,6],"name":"../../../support/bower_components/purescript-assert/src/Test/Assert.purs","end":[65,12]},[]],"constraintClass":[["Data","Show"],"Show"],"constraintArgs":[{"annotation":[{"start":[65,11],"name":"../../../support/bower_components/purescript-assert/src/Test/Assert.purs","end":[65,12]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[66,6],"name":"../../../support/bower_components/purescript-assert/src/Test/Assert.purs","end":[67,17]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[66,6],"name":"../../../support/bower_components/purescript-assert/src/Test/Assert.purs","end":[67,17]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[67,3],"name":"../../../support/bower_components/purescript-assert/src/Test/Assert.purs","end":[67,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[66,6],"name":"../../../support/bower_components/purescript-assert/src/Test/Assert.purs","end":[66,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[66,6],"name":"../../../support/bower_components/purescript-assert/src/Test/Assert.purs","end":[66,7]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[66,8],"name":"../../../support/bower_components/purescript-assert/src/Test/Assert.purs","end":[66,19]},[]],"tag":"RCons","contents":["actual",{"annotation":[{"start":[66,18],"name":"../../../support/bower_components/purescript-assert/src/Test/Assert.purs","end":[66,19]},[]],"tag":"TypeVar","contents":"a"},{"annotation":[{"start":[66,21],"name":"../../../support/bower_components/purescript-assert/src/Test/Assert.purs","end":[66,34]},[]],"tag":"RCons","contents":["expected",{"annotation":[{"start":[66,33],"name":"../../../support/bower_components/purescript-assert/src/Test/Assert.purs","end":[66,34]},[]],"tag":"TypeVar","contents":"a"},{"annotation":[{"start":[66,35],"name":"../../../support/bower_components/purescript-assert/src/Test/Assert.purs","end":[66,36]},[]],"tag":"REmpty"}]}]}]}]},{"annotation":[{"start":[67,6],"name":"../../../support/bower_components/purescript-assert/src/Test/Assert.purs","end":[67,17]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[67,6],"name":"../../../support/bower_components/purescript-assert/src/Test/Assert.purs","end":[67,12]},[]],"tag":"TypeConstructor","contents":[["Effect"],"Effect"]},{"annotation":[{"start":[67,13],"name":"../../../support/bower_components/purescript-assert/src/Test/Assert.purs","end":[67,17]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}]}]},5]}}},{"EDValue":{"edValueName":{"Ident":"assertFalse"},"edValueType":{"annotation":[{"start":[89,6],"name":"../../../support/bower_components/purescript-assert/src/Test/Assert.purs","end":[90,17]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[89,6],"name":"../../../support/bower_components/purescript-assert/src/Test/Assert.purs","end":[90,17]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[90,3],"name":"../../../support/bower_components/purescript-assert/src/Test/Assert.purs","end":[90,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[89,6],"name":"../../../support/bower_components/purescript-assert/src/Test/Assert.purs","end":[89,13]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]},{"annotation":[{"start":[90,6],"name":"../../../support/bower_components/purescript-assert/src/Test/Assert.purs","end":[90,17]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[90,6],"name":"../../../support/bower_components/purescript-assert/src/Test/Assert.purs","end":[90,12]},[]],"tag":"TypeConstructor","contents":[["Effect"],"Effect"]},{"annotation":[{"start":[90,13],"name":"../../../support/bower_components/purescript-assert/src/Test/Assert.purs","end":[90,17]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}}},{"EDValue":{"edValueName":{"Ident":"assertThrows"},"edValueType":{"annotation":[{"start":[35,17],"name":"../../../support/bower_components/purescript-assert/src/Test/Assert.purs","end":[35,53]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[35,27],"name":"../../../support/bower_components/purescript-assert/src/Test/Assert.purs","end":[35,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[35,27],"name":"../../../support/bower_components/purescript-assert/src/Test/Assert.purs","end":[35,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[35,39],"name":"../../../support/bower_components/purescript-assert/src/Test/Assert.purs","end":[35,41]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[35,28],"name":"../../../support/bower_components/purescript-assert/src/Test/Assert.purs","end":[35,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[35,28],"name":"../../../support/bower_components/purescript-assert/src/Test/Assert.purs","end":[35,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[35,33],"name":"../../../support/bower_components/purescript-assert/src/Test/Assert.purs","end":[35,35]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[35,28],"name":"../../../support/bower_components/purescript-assert/src/Test/Assert.purs","end":[35,32]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]},{"annotation":[{"start":[35,36],"name":"../../../support/bower_components/purescript-assert/src/Test/Assert.purs","end":[35,37]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[35,42],"name":"../../../support/bower_components/purescript-assert/src/Test/Assert.purs","end":[35,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[35,42],"name":"../../../support/bower_components/purescript-assert/src/Test/Assert.purs","end":[35,48]},[]],"tag":"TypeConstructor","contents":[["Effect"],"Effect"]},{"annotation":[{"start":[35,49],"name":"../../../support/bower_components/purescript-assert/src/Test/Assert.purs","end":[35,53]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]},3]}}},{"EDValue":{"edValueName":{"Ident":"assertThrows'"},"edValueType":{"annotation":[{"start":[47,6],"name":"../../../support/bower_components/purescript-assert/src/Test/Assert.purs","end":[50,17]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[48,6],"name":"../../../support/bower_components/purescript-assert/src/Test/Assert.purs","end":[50,17]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[48,6],"name":"../../../support/bower_components/purescript-assert/src/Test/Assert.purs","end":[50,17]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,3],"name":"../../../support/bower_components/purescript-assert/src/Test/Assert.purs","end":[49,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[48,6],"name":"../../../support/bower_components/purescript-assert/src/Test/Assert.purs","end":[48,12]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[{"start":[49,6],"name":"../../../support/bower_components/purescript-assert/src/Test/Assert.purs","end":[50,17]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,6],"name":"../../../support/bower_components/purescript-assert/src/Test/Assert.purs","end":[50,17]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,3],"name":"../../../support/bower_components/purescript-assert/src/Test/Assert.purs","end":[50,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[49,7],"name":"../../../support/bower_components/purescript-assert/src/Test/Assert.purs","end":[49,16]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,7],"name":"../../../support/bower_components/purescript-assert/src/Test/Assert.purs","end":[49,16]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,12],"name":"../../../support/bower_components/purescript-assert/src/Test/Assert.purs","end":[49,14]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[49,7],"name":"../../../support/bower_components/purescript-assert/src/Test/Assert.purs","end":[49,11]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]},{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-assert/src/Test/Assert.purs","end":[49,16]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[50,6],"name":"../../../support/bower_components/purescript-assert/src/Test/Assert.purs","end":[50,17]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,6],"name":"../../../support/bower_components/purescript-assert/src/Test/Assert.purs","end":[50,12]},[]],"tag":"TypeConstructor","contents":[["Effect"],"Effect"]},{"annotation":[{"start":[50,13],"name":"../../../support/bower_components/purescript-assert/src/Test/Assert.purs","end":[50,17]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}]},0]}}},{"EDValue":{"edValueName":{"Ident":"assertTrue"},"edValueType":{"annotation":[{"start":[80,6],"name":"../../../support/bower_components/purescript-assert/src/Test/Assert.purs","end":[81,17]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[80,6],"name":"../../../support/bower_components/purescript-assert/src/Test/Assert.purs","end":[81,17]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[81,3],"name":"../../../support/bower_components/purescript-assert/src/Test/Assert.purs","end":[81,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[80,6],"name":"../../../support/bower_components/purescript-assert/src/Test/Assert.purs","end":[80,13]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]},{"annotation":[{"start":[81,6],"name":"../../../support/bower_components/purescript-assert/src/Test/Assert.purs","end":[81,17]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[81,6],"name":"../../../support/bower_components/purescript-assert/src/Test/Assert.purs","end":[81,12]},[]],"tag":"TypeConstructor","contents":[["Effect"],"Effect"]},{"annotation":[{"start":[81,13],"name":"../../../support/bower_components/purescript-assert/src/Test/Assert.purs","end":[81,17]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}}}],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-assert/src/Test/Assert.purs","end":[91,61]}}
diff --git a/tests/purs/publish/basic-example/output/Type.Data.Boolean/docs.json b/tests/purs/publish/basic-example/output/Type.Data.Boolean/docs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Type.Data.Boolean/docs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"reExports":[],"name":"Type.Data.Boolean","comments":null,"declarations":[{"children":[],"comments":null,"title":"Boolean","info":{"declType":"kind"},"sourceSpan":{"start":[21,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[21,28]}},{"children":[{"comments":null,"title":"isBooleanTrue","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Data","Boolean"],"IsBoolean"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Data","Boolean"],"True"]}]}},"sourceSpan":{"start":[32,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[32,71]}},{"comments":null,"title":"andTrue","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Data","Boolean"],"And"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Data","Boolean"],"True"]}]},{"annotation":[],"tag":"TypeVar","contents":"rhs"}]},{"annotation":[],"tag":"TypeVar","contents":"rhs"}]}},"sourceSpan":{"start":[45,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[45,37]}},{"comments":null,"title":"orTrue","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Data","Boolean"],"Or"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Data","Boolean"],"True"]}]},{"annotation":[],"tag":"TypeVar","contents":"rhs"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Data","Boolean"],"True"]}]}},"sourceSpan":{"start":[56,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[56,36]}},{"comments":null,"title":"notTrue","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Data","Boolean"],"Not"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Data","Boolean"],"True"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Data","Boolean"],"False"]}]}},"sourceSpan":{"start":[66,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[66,35]}},{"comments":null,"title":"notFalse","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Data","Boolean"],"Not"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Data","Boolean"],"False"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Data","Boolean"],"True"]}]}},"sourceSpan":{"start":[67,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[67,36]}},{"comments":null,"title":"ifTrue","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Data","Boolean"],"If"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Data","Boolean"],"True"]}]},{"annotation":[],"tag":"TypeVar","contents":"onTrue"}]},{"annotation":[],"tag":"TypeVar","contents":"onFalse"}]},{"annotation":[],"tag":"TypeVar","contents":"onTrue"}]}},"sourceSpan":{"start":[78,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[78,49]}}],"comments":null,"title":"True","info":{"kind":{"annotation":[],"tag":"NamedKind","contents":[["Type","Data","Boolean"],"Boolean"]},"declType":"externData"},"sourceSpan":{"start":[22,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[22,36]}},{"children":[{"comments":null,"title":"isBooleanFalse","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Data","Boolean"],"IsBoolean"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Data","Boolean"],"False"]}]}},"sourceSpan":{"start":[33,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[33,74]}},{"comments":null,"title":"andFalse","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Data","Boolean"],"And"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Data","Boolean"],"False"]}]},{"annotation":[],"tag":"TypeVar","contents":"rhs"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Data","Boolean"],"False"]}]}},"sourceSpan":{"start":[46,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[46,41]}},{"comments":null,"title":"orFalse","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Data","Boolean"],"Or"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Data","Boolean"],"False"]}]},{"annotation":[],"tag":"TypeVar","contents":"rhs"}]},{"annotation":[],"tag":"TypeVar","contents":"rhs"}]}},"sourceSpan":{"start":[57,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[57,37]}},{"comments":null,"title":"notTrue","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Data","Boolean"],"Not"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Data","Boolean"],"True"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Data","Boolean"],"False"]}]}},"sourceSpan":{"start":[66,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[66,35]}},{"comments":null,"title":"notFalse","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Data","Boolean"],"Not"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Data","Boolean"],"False"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Data","Boolean"],"True"]}]}},"sourceSpan":{"start":[67,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[67,36]}},{"comments":null,"title":"ifFalse","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Data","Boolean"],"If"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Data","Boolean"],"False"]}]},{"annotation":[],"tag":"TypeVar","contents":"onTrue"}]},{"annotation":[],"tag":"TypeVar","contents":"onFalse"}]},{"annotation":[],"tag":"TypeVar","contents":"onFalse"}]}},"sourceSpan":{"start":[79,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[79,52]}}],"comments":null,"title":"False","info":{"kind":{"annotation":[],"tag":"NamedKind","contents":[["Type","Data","Boolean"],"Boolean"]},"declType":"externData"},"sourceSpan":{"start":[23,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[23,37]}},{"children":[{"comments":null,"title":"BProxy","info":{"arguments":[],"declType":"dataConstructor"},"sourceSpan":null}],"comments":"Value proxy for `Boolean` types\n","title":"BProxy","info":{"declType":"data","dataDeclType":"data","typeArguments":[["bool",{"annotation":[],"tag":"NamedKind","contents":[["Type","Data","Boolean"],"Boolean"]}]]},"sourceSpan":{"start":[26,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[26,39]}},{"children":[{"comments":null,"title":"reflectBoolean","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Data","Boolean"],"BProxy"]},{"annotation":[],"tag":"TypeVar","contents":"bool"}]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}},"sourceSpan":{"start":[30,3],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[30,43]}},{"comments":null,"title":"isBooleanTrue","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Data","Boolean"],"IsBoolean"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Data","Boolean"],"True"]}]}},"sourceSpan":{"start":[32,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[32,71]}},{"comments":null,"title":"isBooleanFalse","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Data","Boolean"],"IsBoolean"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Data","Boolean"],"False"]}]}},"sourceSpan":{"start":[33,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[33,74]}}],"comments":"Class for reflecting a type level `Boolean` at the value level\n","title":"IsBoolean","info":{"fundeps":[],"arguments":[["bool",{"annotation":[],"tag":"NamedKind","contents":[["Type","Data","Boolean"],"Boolean"]}]],"declType":"typeClass","superclasses":[]},"sourceSpan":{"start":[29,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[30,43]}},{"children":[],"comments":"Use a value level `Boolean` as a type-level `Boolean`\n","title":"reifyBoolean","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["r",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"ForAll","contents":["o",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Type","Data","Boolean"],"IsBoolean"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"o"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Data","Boolean"],"BProxy"]},{"annotation":[],"tag":"TypeVar","contents":"o"}]}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}]},null]}}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}]},null]}},"sourceSpan":{"start":[36,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[36,83]}},{"children":[{"comments":null,"title":"andTrue","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Data","Boolean"],"And"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Data","Boolean"],"True"]}]},{"annotation":[],"tag":"TypeVar","contents":"rhs"}]},{"annotation":[],"tag":"TypeVar","contents":"rhs"}]}},"sourceSpan":{"start":[45,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[45,37]}},{"comments":null,"title":"andFalse","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Data","Boolean"],"And"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Data","Boolean"],"False"]}]},{"annotation":[],"tag":"TypeVar","contents":"rhs"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Data","Boolean"],"False"]}]}},"sourceSpan":{"start":[46,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[46,41]}}],"comments":"And two `Boolean` types together\n","title":"And","info":{"fundeps":[[["lhs","rhs"],["output"]]],"arguments":[["lhs",{"annotation":[],"tag":"NamedKind","contents":[["Type","Data","Boolean"],"Boolean"]}],["rhs",{"annotation":[],"tag":"NamedKind","contents":[["Type","Data","Boolean"],"Boolean"]}],["output",{"annotation":[],"tag":"NamedKind","contents":[["Type","Data","Boolean"],"Boolean"]}]],"declType":"typeClass","superclasses":[]},"sourceSpan":{"start":[41,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[44,28]}},{"children":[],"comments":null,"title":"and","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["o",{"annotation":[],"tag":"ForAll","contents":["r",{"annotation":[],"tag":"ForAll","contents":["l",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Type","Data","Boolean"],"And"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"l"},{"annotation":[],"tag":"TypeVar","contents":"r"},{"annotation":[],"tag":"TypeVar","contents":"o"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Data","Boolean"],"BProxy"]},{"annotation":[],"tag":"TypeVar","contents":"l"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Data","Boolean"],"BProxy"]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Data","Boolean"],"BProxy"]},{"annotation":[],"tag":"TypeVar","contents":"o"}]}]}]}]},null]},null]},null]}},"sourceSpan":{"start":[48,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[48,67]}},{"children":[{"comments":null,"title":"orTrue","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Data","Boolean"],"Or"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Data","Boolean"],"True"]}]},{"annotation":[],"tag":"TypeVar","contents":"rhs"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Data","Boolean"],"True"]}]}},"sourceSpan":{"start":[56,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[56,36]}},{"comments":null,"title":"orFalse","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Data","Boolean"],"Or"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Data","Boolean"],"False"]}]},{"annotation":[],"tag":"TypeVar","contents":"rhs"}]},{"annotation":[],"tag":"TypeVar","contents":"rhs"}]}},"sourceSpan":{"start":[57,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[57,37]}}],"comments":"Or two `Boolean` types together\n","title":"Or","info":{"fundeps":[[["lhs","rhs"],["output"]]],"arguments":[["lhs",{"annotation":[],"tag":"NamedKind","contents":[["Type","Data","Boolean"],"Boolean"]}],["rhs",{"annotation":[],"tag":"NamedKind","contents":[["Type","Data","Boolean"],"Boolean"]}],["output",{"annotation":[],"tag":"NamedKind","contents":[["Type","Data","Boolean"],"Boolean"]}]],"declType":"typeClass","superclasses":[]},"sourceSpan":{"start":[52,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[55,27]}},{"children":[],"comments":null,"title":"or","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["o",{"annotation":[],"tag":"ForAll","contents":["r",{"annotation":[],"tag":"ForAll","contents":["l",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Type","Data","Boolean"],"Or"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"l"},{"annotation":[],"tag":"TypeVar","contents":"r"},{"annotation":[],"tag":"TypeVar","contents":"o"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Data","Boolean"],"BProxy"]},{"annotation":[],"tag":"TypeVar","contents":"l"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Data","Boolean"],"BProxy"]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Data","Boolean"],"BProxy"]},{"annotation":[],"tag":"TypeVar","contents":"o"}]}]}]}]},null]},null]},null]}},"sourceSpan":{"start":[59,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[59,65]}},{"children":[{"comments":null,"title":"notTrue","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Data","Boolean"],"Not"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Data","Boolean"],"True"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Data","Boolean"],"False"]}]}},"sourceSpan":{"start":[66,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[66,35]}},{"comments":null,"title":"notFalse","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Data","Boolean"],"Not"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Data","Boolean"],"False"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Data","Boolean"],"True"]}]}},"sourceSpan":{"start":[67,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[67,36]}}],"comments":"Not a `Boolean`\n","title":"Not","info":{"fundeps":[[["bool"],["output"]]],"arguments":[["bool",{"annotation":[],"tag":"NamedKind","contents":[["Type","Data","Boolean"],"Boolean"]}],["output",{"annotation":[],"tag":"NamedKind","contents":[["Type","Data","Boolean"],"Boolean"]}]],"declType":"typeClass","superclasses":[]},"sourceSpan":{"start":[63,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[65,25]}},{"children":[],"comments":null,"title":"not","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["o",{"annotation":[],"tag":"ForAll","contents":["i",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Type","Data","Boolean"],"Not"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"i"},{"annotation":[],"tag":"TypeVar","contents":"o"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Data","Boolean"],"BProxy"]},{"annotation":[],"tag":"TypeVar","contents":"i"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Data","Boolean"],"BProxy"]},{"annotation":[],"tag":"TypeVar","contents":"o"}]}]}]},null]},null]}},"sourceSpan":{"start":[69,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[69,51]}},{"children":[{"comments":null,"title":"ifTrue","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Data","Boolean"],"If"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Data","Boolean"],"True"]}]},{"annotation":[],"tag":"TypeVar","contents":"onTrue"}]},{"annotation":[],"tag":"TypeVar","contents":"onFalse"}]},{"annotation":[],"tag":"TypeVar","contents":"onTrue"}]}},"sourceSpan":{"start":[78,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[78,49]}},{"comments":null,"title":"ifFalse","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Data","Boolean"],"If"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Data","Boolean"],"False"]}]},{"annotation":[],"tag":"TypeVar","contents":"onTrue"}]},{"annotation":[],"tag":"TypeVar","contents":"onFalse"}]},{"annotation":[],"tag":"TypeVar","contents":"onFalse"}]}},"sourceSpan":{"start":[79,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[79,52]}}],"comments":"If - dispatch based on a boolean\n","title":"If","info":{"fundeps":[[["bool","onTrue","onFalse"],["output"]]],"arguments":[["bool",{"annotation":[],"tag":"NamedKind","contents":[["Type","Data","Boolean"],"Boolean"]}],["onTrue",{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["onFalse",{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["output",{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]}]],"declType":"typeClass","superclasses":[]},"sourceSpan":{"start":[73,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[77,39]}},{"children":[],"comments":null,"title":"if_","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["o",{"annotation":[],"tag":"ForAll","contents":["e",{"annotation":[],"tag":"ForAll","contents":["t",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Type","Data","Boolean"],"If"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"b"},{"annotation":[],"tag":"TypeVar","contents":"t"},{"annotation":[],"tag":"TypeVar","contents":"e"},{"annotation":[],"tag":"TypeVar","contents":"o"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Data","Boolean"],"BProxy"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy"]},{"annotation":[],"tag":"TypeVar","contents":"t"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy"]},{"annotation":[],"tag":"TypeVar","contents":"e"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy"]},{"annotation":[],"tag":"TypeVar","contents":"o"}]}]}]}]}]},null]},null]},null]},null]}},"sourceSpan":{"start":[81,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[81,79]}}]}
diff --git a/tests/purs/publish/basic-example/output/Type.Data.Boolean/externs.json b/tests/purs/publish/basic-example/output/Type.Data.Boolean/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Type.Data.Boolean/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Type","Data","Boolean"],"efExports":[{"KindRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[82,18]},"Boolean"]},{"TypeRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[82,18]},"True",[]]},{"TypeRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[82,18]},"False",[]]},{"TypeRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[82,18]},"BProxy",["BProxy"]]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[82,18]},"IsBoolean"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[82,18]},{"Ident":"reflectBoolean"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[82,18]},{"Ident":"reifyBoolean"}]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[82,18]},"And"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[82,18]},{"Ident":"and"}]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[82,18]},"Or"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[82,18]},{"Ident":"or"}]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[82,18]},"Not"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[82,18]},{"Ident":"not"}]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[82,18]},"If"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[82,18]},{"Ident":"if_"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"isBooleanTrue"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"isBooleanFalse"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"andTrue"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"andFalse"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"orTrue"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"orFalse"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"notTrue"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"notFalse"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"ifTrue"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"ifFalse"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Type","Proxy"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[19,20],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[19,29]},"Proxy",null]}]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDKind":{"edKindName":"Boolean"}},{"EDType":{"edTypeName":"True","edTypeKind":{"annotation":[{"start":[22,29],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[22,36]},[]],"tag":"NamedKind","contents":[["Type","Data","Boolean"],"Boolean"]},"edTypeDeclarationKind":"ExternData"}},{"EDType":{"edTypeName":"False","edTypeKind":{"annotation":[{"start":[23,30],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[23,37]},[]],"tag":"NamedKind","contents":[["Type","Data","Boolean"],"Boolean"]},"edTypeDeclarationKind":"ExternData"}},{"EDType":{"edTypeName":"BProxy","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[26,22],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[26,29]},[]],"tag":"NamedKind","contents":[["Type","Data","Boolean"],"Boolean"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},"edTypeDeclarationKind":{"DataType":{"args":[["bool",{"annotation":[{"start":[26,22],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[26,29]},[]],"tag":"NamedKind","contents":[["Type","Data","Boolean"],"Boolean"]}]],"ctors":[["BProxy",[]]]}}}},{"EDDataConstructor":{"edDataCtorName":"BProxy","edDataCtorOrigin":"data","edDataCtorTypeCtor":"BProxy","edDataCtorType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["bool",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Type","Data","Boolean"],"BProxy"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"bool"}]},null]},"edDataCtorFields":[]}},{"EDType":{"edTypeName":"IsBoolean","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[29,26],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[29,33]},[]],"tag":"NamedKind","contents":[["Type","Data","Boolean"],"Boolean"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"IsBoolean","edTypeSynonymArguments":[["bool",{"annotation":[{"start":[29,26],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[29,33]},[]],"tag":"NamedKind","contents":[["Type","Data","Boolean"],"Boolean"]}]],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["reflectBoolean",{"annotation":[{"start":[30,21],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[30,43]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[30,21],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[30,43]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[30,33],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[30,35]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[30,21],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[30,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[30,21],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[30,27]},[]],"tag":"TypeConstructor","contents":[["Type","Data","Boolean"],"BProxy"]},{"annotation":[{"start":[30,28],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[30,32]},[]],"tag":"TypeVar","contents":"bool"}]}]},{"annotation":[{"start":[30,36],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[30,43]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]}}},{"EDClass":{"edClassName":"IsBoolean","edClassTypeArguments":[["bool",{"annotation":[{"start":[29,26],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[29,33]},[]],"tag":"NamedKind","contents":[["Type","Data","Boolean"],"Boolean"]}]],"edClassMembers":[[{"Ident":"reflectBoolean"},{"annotation":[{"start":[30,21],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[30,43]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[30,21],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[30,43]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[30,33],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[30,35]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[30,21],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[30,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[30,21],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[30,27]},[]],"tag":"TypeConstructor","contents":[["Type","Data","Boolean"],"BProxy"]},{"annotation":[{"start":[30,28],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[30,32]},[]],"tag":"TypeVar","contents":"bool"}]}]},{"annotation":[{"start":[30,36],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[30,43]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]],"edClassConstraints":[],"edFunctionalDependencies":[]}},{"EDValue":{"edValueName":{"Ident":"reflectBoolean"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["bool",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["Type","Data","Boolean"],"IsBoolean"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"bool"}],"constraintData":null},{"annotation":[{"start":[30,21],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[30,43]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[30,21],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[30,43]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[30,33],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[30,35]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[30,21],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[30,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[30,21],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[30,27]},[]],"tag":"TypeConstructor","contents":[["Type","Data","Boolean"],"BProxy"]},{"annotation":[{"start":[30,28],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[30,32]},[]],"tag":"TypeVar","contents":"bool"}]}]},{"annotation":[{"start":[30,36],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[30,43]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]},5]}}},{"EDValue":{"edValueName":{"Ident":"reifyBoolean"},"edValueType":{"annotation":[{"start":[36,17],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[36,83]},[]],"tag":"ForAll","contents":["r",{"annotation":[{"start":[36,27],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[36,83]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,27],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[36,83]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,35],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[36,37]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[36,27],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[36,34]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]},{"annotation":[{"start":[36,38],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[36,83]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,38],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[36,83]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,79],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[36,81]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[36,39],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[36,77]},[]],"tag":"ForAll","contents":["o",{"annotation":[{"start":[36,49],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[36,77]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[36,49],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[36,60]},[]],"constraintClass":[["Type","Data","Boolean"],"IsBoolean"],"constraintArgs":[{"annotation":[{"start":[36,59],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[36,60]},[]],"tag":"TypeVar","contents":"o"}],"constraintData":null},{"annotation":[{"start":[36,64],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[36,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,64],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[36,77]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,73],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[36,75]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[36,64],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[36,72]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,64],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[36,70]},[]],"tag":"TypeConstructor","contents":[["Type","Data","Boolean"],"BProxy"]},{"annotation":[{"start":[36,71],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[36,72]},[]],"tag":"TypeVar","contents":"o"}]}]},{"annotation":[{"start":[36,76],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[36,77]},[]],"tag":"TypeVar","contents":"r"}]}]},0]}]},{"annotation":[{"start":[36,82],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[36,83]},[]],"tag":"TypeVar","contents":"r"}]}]},1]}}},{"EDType":{"edTypeName":"And","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[41,19],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[41,26]},[]],"tag":"NamedKind","contents":[["Type","Data","Boolean"],"Boolean"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[42,19],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[42,26]},[]],"tag":"NamedKind","contents":[["Type","Data","Boolean"],"Boolean"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[43,22],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[43,29]},[]],"tag":"NamedKind","contents":[["Type","Data","Boolean"],"Boolean"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"And","edTypeSynonymArguments":[["lhs",{"annotation":[{"start":[41,19],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[41,26]},[]],"tag":"NamedKind","contents":[["Type","Data","Boolean"],"Boolean"]}],["rhs",{"annotation":[{"start":[42,19],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[42,26]},[]],"tag":"NamedKind","contents":[["Type","Data","Boolean"],"Boolean"]}],["output",{"annotation":[{"start":[43,22],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[43,29]},[]],"tag":"NamedKind","contents":[["Type","Data","Boolean"],"Boolean"]}]],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}}},{"EDClass":{"edClassName":"And","edClassTypeArguments":[["lhs",{"annotation":[{"start":[41,19],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[41,26]},[]],"tag":"NamedKind","contents":[["Type","Data","Boolean"],"Boolean"]}],["rhs",{"annotation":[{"start":[42,19],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[42,26]},[]],"tag":"NamedKind","contents":[["Type","Data","Boolean"],"Boolean"]}],["output",{"annotation":[{"start":[43,22],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[43,29]},[]],"tag":"NamedKind","contents":[["Type","Data","Boolean"],"Boolean"]}]],"edClassMembers":[],"edClassConstraints":[],"edFunctionalDependencies":[{"determiners":[0,1],"determined":[2]}]}},{"EDValue":{"edValueName":{"Ident":"and"},"edValueType":{"annotation":[{"start":[48,8],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[48,67]},[]],"tag":"ForAll","contents":["o",{"annotation":[{"start":[48,15],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[48,67]},[]],"tag":"ForAll","contents":["r",{"annotation":[{"start":[48,15],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[48,67]},[]],"tag":"ForAll","contents":["l",{"annotation":[{"start":[48,22],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[48,67]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[48,22],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[48,31]},[]],"constraintClass":[["Type","Data","Boolean"],"And"],"constraintArgs":[{"annotation":[{"start":[48,26],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[48,27]},[]],"tag":"TypeVar","contents":"l"},{"annotation":[{"start":[48,28],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[48,29]},[]],"tag":"TypeVar","contents":"r"},{"annotation":[{"start":[48,30],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[48,31]},[]],"tag":"TypeVar","contents":"o"}],"constraintData":null},{"annotation":[{"start":[48,35],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[48,67]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[48,35],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[48,67]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[48,44],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[48,46]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[48,35],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[48,43]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[48,35],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[48,41]},[]],"tag":"TypeConstructor","contents":[["Type","Data","Boolean"],"BProxy"]},{"annotation":[{"start":[48,42],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[48,43]},[]],"tag":"TypeVar","contents":"l"}]}]},{"annotation":[{"start":[48,47],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[48,67]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[48,47],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[48,67]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[48,56],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[48,58]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[48,47],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[48,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[48,47],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[48,53]},[]],"tag":"TypeConstructor","contents":[["Type","Data","Boolean"],"BProxy"]},{"annotation":[{"start":[48,54],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[48,55]},[]],"tag":"TypeVar","contents":"r"}]}]},{"annotation":[{"start":[48,59],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[48,67]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[48,59],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[48,65]},[]],"tag":"TypeConstructor","contents":[["Type","Data","Boolean"],"BProxy"]},{"annotation":[{"start":[48,66],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[48,67]},[]],"tag":"TypeVar","contents":"o"}]}]}]}]},43]},44]},45]}}},{"EDType":{"edTypeName":"Or","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[52,18],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[52,25]},[]],"tag":"NamedKind","contents":[["Type","Data","Boolean"],"Boolean"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[53,18],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[53,25]},[]],"tag":"NamedKind","contents":[["Type","Data","Boolean"],"Boolean"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[54,21],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[54,28]},[]],"tag":"NamedKind","contents":[["Type","Data","Boolean"],"Boolean"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"Or","edTypeSynonymArguments":[["lhs",{"annotation":[{"start":[52,18],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[52,25]},[]],"tag":"NamedKind","contents":[["Type","Data","Boolean"],"Boolean"]}],["rhs",{"annotation":[{"start":[53,18],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[53,25]},[]],"tag":"NamedKind","contents":[["Type","Data","Boolean"],"Boolean"]}],["output",{"annotation":[{"start":[54,21],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[54,28]},[]],"tag":"NamedKind","contents":[["Type","Data","Boolean"],"Boolean"]}]],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}}},{"EDClass":{"edClassName":"Or","edClassTypeArguments":[["lhs",{"annotation":[{"start":[52,18],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[52,25]},[]],"tag":"NamedKind","contents":[["Type","Data","Boolean"],"Boolean"]}],["rhs",{"annotation":[{"start":[53,18],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[53,25]},[]],"tag":"NamedKind","contents":[["Type","Data","Boolean"],"Boolean"]}],["output",{"annotation":[{"start":[54,21],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[54,28]},[]],"tag":"NamedKind","contents":[["Type","Data","Boolean"],"Boolean"]}]],"edClassMembers":[],"edClassConstraints":[],"edFunctionalDependencies":[{"determiners":[0,1],"determined":[2]}]}},{"EDValue":{"edValueName":{"Ident":"or"},"edValueType":{"annotation":[{"start":[59,7],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[59,65]},[]],"tag":"ForAll","contents":["o",{"annotation":[{"start":[59,14],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[59,65]},[]],"tag":"ForAll","contents":["r",{"annotation":[{"start":[59,14],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[59,65]},[]],"tag":"ForAll","contents":["l",{"annotation":[{"start":[59,21],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[59,65]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[59,21],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[59,29]},[]],"constraintClass":[["Type","Data","Boolean"],"Or"],"constraintArgs":[{"annotation":[{"start":[59,24],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[59,25]},[]],"tag":"TypeVar","contents":"l"},{"annotation":[{"start":[59,26],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[59,27]},[]],"tag":"TypeVar","contents":"r"},{"annotation":[{"start":[59,28],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[59,29]},[]],"tag":"TypeVar","contents":"o"}],"constraintData":null},{"annotation":[{"start":[59,33],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[59,65]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[59,33],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[59,65]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[59,42],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[59,44]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[59,33],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[59,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[59,33],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[59,39]},[]],"tag":"TypeConstructor","contents":[["Type","Data","Boolean"],"BProxy"]},{"annotation":[{"start":[59,40],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[59,41]},[]],"tag":"TypeVar","contents":"l"}]}]},{"annotation":[{"start":[59,45],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[59,65]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[59,45],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[59,65]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[59,54],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[59,56]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[59,45],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[59,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[59,45],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[59,51]},[]],"tag":"TypeConstructor","contents":[["Type","Data","Boolean"],"BProxy"]},{"annotation":[{"start":[59,52],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[59,53]},[]],"tag":"TypeVar","contents":"r"}]}]},{"annotation":[{"start":[59,57],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[59,65]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[59,57],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[59,63]},[]],"tag":"TypeConstructor","contents":[["Type","Data","Boolean"],"BProxy"]},{"annotation":[{"start":[59,64],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[59,65]},[]],"tag":"TypeVar","contents":"o"}]}]}]}]},10]},11]},12]}}},{"EDType":{"edTypeName":"Not","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[63,20],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[63,27]},[]],"tag":"NamedKind","contents":[["Type","Data","Boolean"],"Boolean"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[64,22],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[64,29]},[]],"tag":"NamedKind","contents":[["Type","Data","Boolean"],"Boolean"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"Not","edTypeSynonymArguments":[["bool",{"annotation":[{"start":[63,20],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[63,27]},[]],"tag":"NamedKind","contents":[["Type","Data","Boolean"],"Boolean"]}],["output",{"annotation":[{"start":[64,22],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[64,29]},[]],"tag":"NamedKind","contents":[["Type","Data","Boolean"],"Boolean"]}]],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}}},{"EDClass":{"edClassName":"Not","edClassTypeArguments":[["bool",{"annotation":[{"start":[63,20],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[63,27]},[]],"tag":"NamedKind","contents":[["Type","Data","Boolean"],"Boolean"]}],["output",{"annotation":[{"start":[64,22],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[64,29]},[]],"tag":"NamedKind","contents":[["Type","Data","Boolean"],"Boolean"]}]],"edClassMembers":[],"edClassConstraints":[],"edFunctionalDependencies":[{"determiners":[0],"determined":[1]}]}},{"EDValue":{"edValueName":{"Ident":"not"},"edValueType":{"annotation":[{"start":[69,8],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[69,51]},[]],"tag":"ForAll","contents":["o",{"annotation":[{"start":[69,15],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[69,51]},[]],"tag":"ForAll","contents":["i",{"annotation":[{"start":[69,20],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[69,51]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[69,20],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[69,27]},[]],"constraintClass":[["Type","Data","Boolean"],"Not"],"constraintArgs":[{"annotation":[{"start":[69,24],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[69,25]},[]],"tag":"TypeVar","contents":"i"},{"annotation":[{"start":[69,26],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[69,27]},[]],"tag":"TypeVar","contents":"o"}],"constraintData":null},{"annotation":[{"start":[69,31],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[69,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[69,31],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[69,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[69,40],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[69,42]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[69,31],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[69,39]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[69,31],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[69,37]},[]],"tag":"TypeConstructor","contents":[["Type","Data","Boolean"],"BProxy"]},{"annotation":[{"start":[69,38],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[69,39]},[]],"tag":"TypeVar","contents":"i"}]}]},{"annotation":[{"start":[69,43],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[69,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[69,43],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[69,49]},[]],"tag":"TypeConstructor","contents":[["Type","Data","Boolean"],"BProxy"]},{"annotation":[{"start":[69,50],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[69,51]},[]],"tag":"TypeVar","contents":"o"}]}]}]},17]},18]}}},{"EDType":{"edTypeName":"If","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[73,19],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[73,26]},[]],"tag":"NamedKind","contents":[["Type","Data","Boolean"],"Boolean"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[74,21],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[74,25]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[75,22],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[75,26]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[76,21],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[76,25]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]}]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"If","edTypeSynonymArguments":[["bool",{"annotation":[{"start":[73,19],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[73,26]},[]],"tag":"NamedKind","contents":[["Type","Data","Boolean"],"Boolean"]}],["onTrue",{"annotation":[{"start":[74,21],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[74,25]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["onFalse",{"annotation":[{"start":[75,22],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[75,26]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["output",{"annotation":[{"start":[76,21],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[76,25]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}}},{"EDClass":{"edClassName":"If","edClassTypeArguments":[["bool",{"annotation":[{"start":[73,19],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[73,26]},[]],"tag":"NamedKind","contents":[["Type","Data","Boolean"],"Boolean"]}],["onTrue",{"annotation":[{"start":[74,21],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[74,25]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["onFalse",{"annotation":[{"start":[75,22],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[75,26]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["output",{"annotation":[{"start":[76,21],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[76,25]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]],"edClassMembers":[],"edClassConstraints":[],"edFunctionalDependencies":[{"determiners":[0,1,2],"determined":[3]}]}},{"EDValue":{"edValueName":{"Ident":"if_"},"edValueType":{"annotation":[{"start":[81,8],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[81,79]},[]],"tag":"ForAll","contents":["o",{"annotation":[{"start":[81,15],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[81,79]},[]],"tag":"ForAll","contents":["e",{"annotation":[{"start":[81,15],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[81,79]},[]],"tag":"ForAll","contents":["t",{"annotation":[{"start":[81,15],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[81,79]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[81,24],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[81,79]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[81,24],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[81,34]},[]],"constraintClass":[["Type","Data","Boolean"],"If"],"constraintArgs":[{"annotation":[{"start":[81,27],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[81,28]},[]],"tag":"TypeVar","contents":"b"},{"annotation":[{"start":[81,29],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[81,30]},[]],"tag":"TypeVar","contents":"t"},{"annotation":[{"start":[81,31],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[81,32]},[]],"tag":"TypeVar","contents":"e"},{"annotation":[{"start":[81,33],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[81,34]},[]],"tag":"TypeVar","contents":"o"}],"constraintData":null},{"annotation":[{"start":[81,38],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[81,79]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[81,38],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[81,79]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[81,47],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[81,49]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[81,38],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[81,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[81,38],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[81,44]},[]],"tag":"TypeConstructor","contents":[["Type","Data","Boolean"],"BProxy"]},{"annotation":[{"start":[81,45],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[81,46]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[81,50],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[81,79]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[81,50],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[81,79]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[81,58],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[81,60]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[81,50],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[81,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[81,50],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[81,55]},[]],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy"]},{"annotation":[{"start":[81,56],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[81,57]},[]],"tag":"TypeVar","contents":"t"}]}]},{"annotation":[{"start":[81,61],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[81,79]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[81,61],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[81,79]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[81,69],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[81,71]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[81,61],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[81,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[81,61],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[81,66]},[]],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy"]},{"annotation":[{"start":[81,67],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[81,68]},[]],"tag":"TypeVar","contents":"e"}]}]},{"annotation":[{"start":[81,72],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[81,79]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[81,72],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[81,77]},[]],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy"]},{"annotation":[{"start":[81,78],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[81,79]},[]],"tag":"TypeVar","contents":"o"}]}]}]}]}]},22]},23]},24]},25]}}},{"EDInstance":{"edInstanceClassName":[["Type","Data","Boolean"],"IsBoolean"],"edInstanceName":{"Ident":"isBooleanTrue"},"edInstanceTypes":[{"annotation":[{"start":[32,37],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[32,41]},[]],"tag":"TypeConstructor","contents":[["Type","Data","Boolean"],"True"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Type","Data","Boolean"],{"Ident":"isBooleanTrue"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Type","Data","Boolean"],"IsBoolean"],"edInstanceName":{"Ident":"isBooleanFalse"},"edInstanceTypes":[{"annotation":[{"start":[33,38],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[33,43]},[]],"tag":"TypeConstructor","contents":[["Type","Data","Boolean"],"False"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Type","Data","Boolean"],{"Ident":"isBooleanFalse"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Type","Data","Boolean"],"And"],"edInstanceName":{"Ident":"andTrue"},"edInstanceTypes":[{"annotation":[{"start":[45,25],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[45,29]},[]],"tag":"TypeConstructor","contents":[["Type","Data","Boolean"],"True"]},{"annotation":[{"start":[45,30],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[45,33]},[]],"tag":"TypeVar","contents":"rhs"},{"annotation":[{"start":[45,34],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[45,37]},[]],"tag":"TypeVar","contents":"rhs"}],"edInstanceConstraints":[],"edInstanceChain":[[["Type","Data","Boolean"],{"Ident":"andTrue"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Type","Data","Boolean"],"And"],"edInstanceName":{"Ident":"andFalse"},"edInstanceTypes":[{"annotation":[{"start":[46,26],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[46,31]},[]],"tag":"TypeConstructor","contents":[["Type","Data","Boolean"],"False"]},{"annotation":[{"start":[46,32],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[46,35]},[]],"tag":"TypeVar","contents":"rhs"},{"annotation":[{"start":[46,36],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[46,41]},[]],"tag":"TypeConstructor","contents":[["Type","Data","Boolean"],"False"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Type","Data","Boolean"],{"Ident":"andFalse"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Type","Data","Boolean"],"Or"],"edInstanceName":{"Ident":"orTrue"},"edInstanceTypes":[{"annotation":[{"start":[56,23],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[56,27]},[]],"tag":"TypeConstructor","contents":[["Type","Data","Boolean"],"True"]},{"annotation":[{"start":[56,28],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[56,31]},[]],"tag":"TypeVar","contents":"rhs"},{"annotation":[{"start":[56,32],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[56,36]},[]],"tag":"TypeConstructor","contents":[["Type","Data","Boolean"],"True"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Type","Data","Boolean"],{"Ident":"orTrue"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Type","Data","Boolean"],"Or"],"edInstanceName":{"Ident":"orFalse"},"edInstanceTypes":[{"annotation":[{"start":[57,24],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[57,29]},[]],"tag":"TypeConstructor","contents":[["Type","Data","Boolean"],"False"]},{"annotation":[{"start":[57,30],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[57,33]},[]],"tag":"TypeVar","contents":"rhs"},{"annotation":[{"start":[57,34],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[57,37]},[]],"tag":"TypeVar","contents":"rhs"}],"edInstanceConstraints":[],"edInstanceChain":[[["Type","Data","Boolean"],{"Ident":"orFalse"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Type","Data","Boolean"],"Not"],"edInstanceName":{"Ident":"notTrue"},"edInstanceTypes":[{"annotation":[{"start":[66,25],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[66,29]},[]],"tag":"TypeConstructor","contents":[["Type","Data","Boolean"],"True"]},{"annotation":[{"start":[66,30],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[66,35]},[]],"tag":"TypeConstructor","contents":[["Type","Data","Boolean"],"False"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Type","Data","Boolean"],{"Ident":"notTrue"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Type","Data","Boolean"],"Not"],"edInstanceName":{"Ident":"notFalse"},"edInstanceTypes":[{"annotation":[{"start":[67,26],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[67,31]},[]],"tag":"TypeConstructor","contents":[["Type","Data","Boolean"],"False"]},{"annotation":[{"start":[67,32],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[67,36]},[]],"tag":"TypeConstructor","contents":[["Type","Data","Boolean"],"True"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Type","Data","Boolean"],{"Ident":"notFalse"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Type","Data","Boolean"],"If"],"edInstanceName":{"Ident":"ifTrue"},"edInstanceTypes":[{"annotation":[{"start":[78,23],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[78,27]},[]],"tag":"TypeConstructor","contents":[["Type","Data","Boolean"],"True"]},{"annotation":[{"start":[78,28],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[78,34]},[]],"tag":"TypeVar","contents":"onTrue"},{"annotation":[{"start":[78,35],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[78,42]},[]],"tag":"TypeVar","contents":"onFalse"},{"annotation":[{"start":[78,43],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[78,49]},[]],"tag":"TypeVar","contents":"onTrue"}],"edInstanceConstraints":[],"edInstanceChain":[[["Type","Data","Boolean"],{"Ident":"ifTrue"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Type","Data","Boolean"],"If"],"edInstanceName":{"Ident":"ifFalse"},"edInstanceTypes":[{"annotation":[{"start":[79,24],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[79,29]},[]],"tag":"TypeConstructor","contents":[["Type","Data","Boolean"],"False"]},{"annotation":[{"start":[79,30],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[79,36]},[]],"tag":"TypeVar","contents":"onTrue"},{"annotation":[{"start":[79,37],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[79,44]},[]],"tag":"TypeVar","contents":"onFalse"},{"annotation":[{"start":[79,45],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[79,52]},[]],"tag":"TypeVar","contents":"onFalse"}],"edInstanceConstraints":[],"edInstanceChain":[[["Type","Data","Boolean"],{"Ident":"ifFalse"}]],"edInstanceChainIndex":0}}],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Boolean.purs","end":[82,18]}}
diff --git a/tests/purs/publish/basic-example/output/Type.Data.Ordering/docs.json b/tests/purs/publish/basic-example/output/Type.Data.Ordering/docs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Type.Data.Ordering/docs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"reExports":[],"name":"Type.Data.Ordering","comments":null,"declarations":[{"children":[{"comments":null,"title":"OProxy","info":{"arguments":[],"declType":"dataConstructor"},"sourceSpan":null}],"comments":"Value proxy for `Ordering` types\n","title":"OProxy","info":{"declType":"data","dataDeclType":"data","typeArguments":[["ordering",{"annotation":[],"tag":"NamedKind","contents":[["Prim","Ordering"],"Ordering"]}]]},"sourceSpan":{"start":[20,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[20,44]}},{"children":[{"comments":null,"title":"reflectOrdering","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Data","Ordering"],"OProxy"]},{"annotation":[],"tag":"TypeVar","contents":"ordering"}]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ordering"],"Ordering"]}]}},"sourceSpan":{"start":[24,3],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[24,49]}},{"comments":null,"title":"isOrderingLT","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Data","Ordering"],"IsOrdering"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim","Ordering"],"LT"]}]}},"sourceSpan":{"start":[26,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[26,68]}},{"comments":null,"title":"isOrderingEQ","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Data","Ordering"],"IsOrdering"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim","Ordering"],"EQ"]}]}},"sourceSpan":{"start":[27,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[27,68]}},{"comments":null,"title":"isOrderingGT","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Data","Ordering"],"IsOrdering"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim","Ordering"],"GT"]}]}},"sourceSpan":{"start":[28,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[28,68]}}],"comments":"Class for reflecting a type level `Ordering` at the value level\n","title":"IsOrdering","info":{"fundeps":[],"arguments":[["ordering",{"annotation":[],"tag":"NamedKind","contents":[["Prim","Ordering"],"Ordering"]}]],"declType":"typeClass","superclasses":[]},"sourceSpan":{"start":[23,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[24,49]}},{"children":[],"comments":"Use a value level `Ordering` as a type-level `Ordering`\n","title":"reifyOrdering","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["r",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ordering"],"Ordering"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"ForAll","contents":["o",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Type","Data","Ordering"],"IsOrdering"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"o"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Data","Ordering"],"OProxy"]},{"annotation":[],"tag":"TypeVar","contents":"o"}]}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}]},null]}}]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}]},null]}},"sourceSpan":{"start":[31,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[31,86]}},{"children":[{"comments":null,"title":"appendOrderingLT","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Data","Ordering"],"Append"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim","Ordering"],"LT"]}]},{"annotation":[],"tag":"TypeVar","contents":"rhs"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim","Ordering"],"LT"]}]}},"sourceSpan":{"start":[42,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[42,46]}},{"comments":null,"title":"appendOrderingEQ","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Data","Ordering"],"Append"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim","Ordering"],"EQ"]}]},{"annotation":[],"tag":"TypeVar","contents":"rhs"}]},{"annotation":[],"tag":"TypeVar","contents":"rhs"}]}},"sourceSpan":{"start":[43,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[43,47]}},{"comments":null,"title":"appendOrderingGT","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Data","Ordering"],"Append"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim","Ordering"],"GT"]}]},{"annotation":[],"tag":"TypeVar","contents":"rhs"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim","Ordering"],"GT"]}]}},"sourceSpan":{"start":[44,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[44,46]}}],"comments":"Append two `Ordering` types together\nReflective of the semigroup for value level `Ordering`\n","title":"Append","info":{"fundeps":[[["lhs"],["rhs","output"]]],"arguments":[["lhs",{"annotation":[],"tag":"NamedKind","contents":[["Prim","Ordering"],"Ordering"]}],["rhs",{"annotation":[],"tag":"NamedKind","contents":[["Prim","Ordering"],"Ordering"]}],["output",{"annotation":[],"tag":"NamedKind","contents":[["Prim","Ordering"],"Ordering"]}]],"declType":"typeClass","superclasses":[]},"sourceSpan":{"start":[38,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[41,31]}},{"children":[],"comments":null,"title":"append","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["o",{"annotation":[],"tag":"ForAll","contents":["r",{"annotation":[],"tag":"ForAll","contents":["l",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Type","Data","Ordering"],"Append"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"l"},{"annotation":[],"tag":"TypeVar","contents":"r"},{"annotation":[],"tag":"TypeVar","contents":"o"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Data","Ordering"],"OProxy"]},{"annotation":[],"tag":"TypeVar","contents":"l"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Data","Ordering"],"OProxy"]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Data","Ordering"],"OProxy"]},{"annotation":[],"tag":"TypeVar","contents":"o"}]}]}]}]},null]},null]},null]}},"sourceSpan":{"start":[46,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[46,73]}},{"children":[{"comments":null,"title":"invertOrderingLT","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Data","Ordering"],"Invert"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim","Ordering"],"LT"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim","Ordering"],"GT"]}]}},"sourceSpan":{"start":[53,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[53,42]}},{"comments":null,"title":"invertOrderingEQ","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Data","Ordering"],"Invert"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim","Ordering"],"EQ"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim","Ordering"],"EQ"]}]}},"sourceSpan":{"start":[54,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[54,42]}},{"comments":null,"title":"invertOrderingGT","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Data","Ordering"],"Invert"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim","Ordering"],"GT"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim","Ordering"],"LT"]}]}},"sourceSpan":{"start":[55,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[55,42]}}],"comments":"Invert an `Ordering`\n","title":"Invert","info":{"fundeps":[[["ordering"],["result"]]],"arguments":[["ordering",{"annotation":[],"tag":"NamedKind","contents":[["Prim","Ordering"],"Ordering"]}],["result",{"annotation":[],"tag":"NamedKind","contents":[["Prim","Ordering"],"Ordering"]}]],"declType":"typeClass","superclasses":[]},"sourceSpan":{"start":[50,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[52,32]}},{"children":[],"comments":null,"title":"invert","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["o",{"annotation":[],"tag":"ForAll","contents":["i",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Type","Data","Ordering"],"Invert"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"i"},{"annotation":[],"tag":"TypeVar","contents":"o"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Data","Ordering"],"OProxy"]},{"annotation":[],"tag":"TypeVar","contents":"i"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Data","Ordering"],"OProxy"]},{"annotation":[],"tag":"TypeVar","contents":"o"}]}]}]},null]},null]}},"sourceSpan":{"start":[57,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[57,57]}},{"children":[{"comments":null,"title":"equalsEQEQ","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Data","Ordering"],"Equals"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim","Ordering"],"EQ"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim","Ordering"],"EQ"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Data","Boolean"],"True"]}]}},"sourceSpan":{"start":[65,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[65,41]}},{"comments":null,"title":"equalsLTLT","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Data","Ordering"],"Equals"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim","Ordering"],"LT"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim","Ordering"],"LT"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Data","Boolean"],"True"]}]}},"sourceSpan":{"start":[66,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[66,41]}},{"comments":null,"title":"equalsGTGT","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Data","Ordering"],"Equals"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim","Ordering"],"GT"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim","Ordering"],"GT"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Data","Boolean"],"True"]}]}},"sourceSpan":{"start":[67,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[67,41]}},{"comments":null,"title":"equalsEQLT","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Data","Ordering"],"Equals"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim","Ordering"],"EQ"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim","Ordering"],"LT"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Data","Boolean"],"False"]}]}},"sourceSpan":{"start":[68,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[68,42]}},{"comments":null,"title":"equalsEQGT","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Data","Ordering"],"Equals"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim","Ordering"],"EQ"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim","Ordering"],"GT"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Data","Boolean"],"False"]}]}},"sourceSpan":{"start":[69,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[69,42]}},{"comments":null,"title":"equalsLTEQ","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Data","Ordering"],"Equals"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim","Ordering"],"LT"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim","Ordering"],"EQ"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Data","Boolean"],"False"]}]}},"sourceSpan":{"start":[70,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[70,42]}},{"comments":null,"title":"equalsLTGT","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Data","Ordering"],"Equals"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim","Ordering"],"LT"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim","Ordering"],"GT"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Data","Boolean"],"False"]}]}},"sourceSpan":{"start":[71,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[71,42]}},{"comments":null,"title":"equalsGTLT","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Data","Ordering"],"Equals"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim","Ordering"],"GT"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim","Ordering"],"LT"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Data","Boolean"],"False"]}]}},"sourceSpan":{"start":[72,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[72,42]}},{"comments":null,"title":"equalsGTEQ","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Data","Ordering"],"Equals"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim","Ordering"],"GT"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim","Ordering"],"EQ"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Data","Boolean"],"False"]}]}},"sourceSpan":{"start":[73,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[73,42]}}],"comments":null,"title":"Equals","info":{"fundeps":[[["lhs","rhs"],["out"]]],"arguments":[["lhs",{"annotation":[],"tag":"NamedKind","contents":[["Prim","Ordering"],"Ordering"]}],["rhs",{"annotation":[],"tag":"NamedKind","contents":[["Prim","Ordering"],"Ordering"]}],["out",{"annotation":[],"tag":"NamedKind","contents":[["Type","Data","Boolean"],"Boolean"]}]],"declType":"typeClass","superclasses":[]},"sourceSpan":{"start":[60,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[63,28]}},{"children":[],"comments":null,"title":"equals","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["o",{"annotation":[],"tag":"ForAll","contents":["r",{"annotation":[],"tag":"ForAll","contents":["l",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Type","Data","Ordering"],"Equals"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"l"},{"annotation":[],"tag":"TypeVar","contents":"r"},{"annotation":[],"tag":"TypeVar","contents":"o"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Data","Ordering"],"OProxy"]},{"annotation":[],"tag":"TypeVar","contents":"l"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Data","Ordering"],"OProxy"]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Data","Boolean"],"BProxy"]},{"annotation":[],"tag":"TypeVar","contents":"o"}]}]}]}]},null]},null]},null]}},"sourceSpan":{"start":[75,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[75,73]}}]}
diff --git a/tests/purs/publish/basic-example/output/Type.Data.Ordering/externs.json b/tests/purs/publish/basic-example/output/Type.Data.Ordering/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Type.Data.Ordering/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Type","Data","Ordering"],"efExports":[{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[76,20]},{"exportSourceImportedFrom":["Prim","Ordering"],"exportSourceDefinedIn":["Prim","Ordering"]},{"TypeRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[76,20]},"EQ",[]]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[76,20]},{"exportSourceImportedFrom":["Prim","Ordering"],"exportSourceDefinedIn":["Prim","Ordering"]},{"TypeRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[76,20]},"GT",[]]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[76,20]},{"exportSourceImportedFrom":["Prim","Ordering"],"exportSourceDefinedIn":["Prim","Ordering"]},{"TypeRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[76,20]},"LT",[]]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[76,20]},{"exportSourceImportedFrom":["Prim","Ordering"],"exportSourceDefinedIn":["Prim","Ordering"]},{"KindRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[76,20]},"Ordering"]}]},{"ModuleRef":[{"start":[2,5],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[2,25]},["Prim","Ordering"]]},{"TypeRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[76,20]},"OProxy",["OProxy"]]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[76,20]},"IsOrdering"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[76,20]},{"Ident":"reflectOrdering"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[76,20]},{"Ident":"reifyOrdering"}]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[76,20]},"Append"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[76,20]},{"Ident":"append"}]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[76,20]},"Invert"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[76,20]},{"Ident":"invert"}]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[76,20]},"Equals"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[76,20]},{"Ident":"equals"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"isOrderingLT"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"isOrderingEQ"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"isOrderingGT"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"appendOrderingLT"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"appendOrderingEQ"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"appendOrderingGT"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"invertOrderingLT"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"invertOrderingEQ"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"invertOrderingGT"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"equalsEQEQ"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"equalsLTLT"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"equalsGTGT"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"equalsEQLT"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"equalsEQGT"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"equalsLTEQ"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"equalsLTGT"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"equalsGTLT"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"equalsGTEQ"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Prim","Ordering"],"eiImportType":{"Explicit":[{"KindRef":[{"start":[15,23],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[15,36]},"Ordering"]},{"TypeRef":[{"start":[15,38],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[15,40]},"LT",[]]},{"TypeRef":[{"start":[15,42],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[15,44]},"EQ",[]]},{"TypeRef":[{"start":[15,46],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[15,48]},"GT",[]]}]},"eiImportedAs":null},{"eiModule":["Data","Ordering"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[16,23],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[16,35]},"Ordering",null]}]},"eiImportedAs":null},{"eiModule":["Type","Data","Boolean"],"eiImportType":{"Explicit":[{"KindRef":[{"start":[17,27],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[17,39]},"Boolean"]},{"TypeRef":[{"start":[17,41],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[17,45]},"True",[]]},{"TypeRef":[{"start":[17,47],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[17,52]},"False",[]]},{"TypeRef":[{"start":[17,54],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[17,64]},"BProxy",null]}]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDType":{"edTypeName":"OProxy","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[20,26],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[20,34]},[]],"tag":"NamedKind","contents":[["Prim","Ordering"],"Ordering"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},"edTypeDeclarationKind":{"DataType":{"args":[["ordering",{"annotation":[{"start":[20,26],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[20,34]},[]],"tag":"NamedKind","contents":[["Prim","Ordering"],"Ordering"]}]],"ctors":[["OProxy",[]]]}}}},{"EDDataConstructor":{"edDataCtorName":"OProxy","edDataCtorOrigin":"data","edDataCtorTypeCtor":"OProxy","edDataCtorType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["ordering",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Type","Data","Ordering"],"OProxy"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"ordering"}]},null]},"edDataCtorFields":[]}},{"EDType":{"edTypeName":"IsOrdering","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[23,31],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[23,39]},[]],"tag":"NamedKind","contents":[["Prim","Ordering"],"Ordering"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"IsOrdering","edTypeSynonymArguments":[["ordering",{"annotation":[{"start":[23,31],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[23,39]},[]],"tag":"NamedKind","contents":[["Prim","Ordering"],"Ordering"]}]],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["reflectOrdering",{"annotation":[{"start":[24,22],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[24,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[24,22],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[24,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[24,38],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[24,40]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[24,22],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[24,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[24,22],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[24,28]},[]],"tag":"TypeConstructor","contents":[["Type","Data","Ordering"],"OProxy"]},{"annotation":[{"start":[24,29],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[24,37]},[]],"tag":"TypeVar","contents":"ordering"}]}]},{"annotation":[{"start":[24,41],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[24,49]},[]],"tag":"TypeConstructor","contents":[["Data","Ordering"],"Ordering"]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]}}},{"EDClass":{"edClassName":"IsOrdering","edClassTypeArguments":[["ordering",{"annotation":[{"start":[23,31],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[23,39]},[]],"tag":"NamedKind","contents":[["Prim","Ordering"],"Ordering"]}]],"edClassMembers":[[{"Ident":"reflectOrdering"},{"annotation":[{"start":[24,22],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[24,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[24,22],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[24,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[24,38],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[24,40]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[24,22],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[24,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[24,22],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[24,28]},[]],"tag":"TypeConstructor","contents":[["Type","Data","Ordering"],"OProxy"]},{"annotation":[{"start":[24,29],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[24,37]},[]],"tag":"TypeVar","contents":"ordering"}]}]},{"annotation":[{"start":[24,41],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[24,49]},[]],"tag":"TypeConstructor","contents":[["Data","Ordering"],"Ordering"]}]}]],"edClassConstraints":[],"edFunctionalDependencies":[]}},{"EDValue":{"edValueName":{"Ident":"reflectOrdering"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["ordering",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["Type","Data","Ordering"],"IsOrdering"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"ordering"}],"constraintData":null},{"annotation":[{"start":[24,22],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[24,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[24,22],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[24,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[24,38],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[24,40]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[24,22],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[24,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[24,22],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[24,28]},[]],"tag":"TypeConstructor","contents":[["Type","Data","Ordering"],"OProxy"]},{"annotation":[{"start":[24,29],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[24,37]},[]],"tag":"TypeVar","contents":"ordering"}]}]},{"annotation":[{"start":[24,41],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[24,49]},[]],"tag":"TypeConstructor","contents":[["Data","Ordering"],"Ordering"]}]}]},6]}}},{"EDValue":{"edValueName":{"Ident":"reifyOrdering"},"edValueType":{"annotation":[{"start":[31,18],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[31,86]},[]],"tag":"ForAll","contents":["r",{"annotation":[{"start":[31,28],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[31,86]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[31,28],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[31,86]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[31,37],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[31,39]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[31,28],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[31,36]},[]],"tag":"TypeConstructor","contents":[["Data","Ordering"],"Ordering"]}]},{"annotation":[{"start":[31,40],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[31,86]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[31,40],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[31,86]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[31,82],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[31,84]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[31,41],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[31,80]},[]],"tag":"ForAll","contents":["o",{"annotation":[{"start":[31,51],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[31,80]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[31,51],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[31,63]},[]],"constraintClass":[["Type","Data","Ordering"],"IsOrdering"],"constraintArgs":[{"annotation":[{"start":[31,62],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[31,63]},[]],"tag":"TypeVar","contents":"o"}],"constraintData":null},{"annotation":[{"start":[31,67],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[31,80]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[31,67],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[31,80]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[31,76],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[31,78]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[31,67],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[31,75]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[31,67],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[31,73]},[]],"tag":"TypeConstructor","contents":[["Type","Data","Ordering"],"OProxy"]},{"annotation":[{"start":[31,74],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[31,75]},[]],"tag":"TypeVar","contents":"o"}]}]},{"annotation":[{"start":[31,79],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[31,80]},[]],"tag":"TypeVar","contents":"r"}]}]},0]}]},{"annotation":[{"start":[31,85],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[31,86]},[]],"tag":"TypeVar","contents":"r"}]}]},1]}}},{"EDType":{"edTypeName":"Append","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[38,22],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[38,30]},[]],"tag":"NamedKind","contents":[["Prim","Ordering"],"Ordering"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[39,22],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[39,30]},[]],"tag":"NamedKind","contents":[["Prim","Ordering"],"Ordering"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[40,25],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[40,33]},[]],"tag":"NamedKind","contents":[["Prim","Ordering"],"Ordering"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"Append","edTypeSynonymArguments":[["lhs",{"annotation":[{"start":[38,22],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[38,30]},[]],"tag":"NamedKind","contents":[["Prim","Ordering"],"Ordering"]}],["rhs",{"annotation":[{"start":[39,22],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[39,30]},[]],"tag":"NamedKind","contents":[["Prim","Ordering"],"Ordering"]}],["output",{"annotation":[{"start":[40,25],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[40,33]},[]],"tag":"NamedKind","contents":[["Prim","Ordering"],"Ordering"]}]],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}}},{"EDClass":{"edClassName":"Append","edClassTypeArguments":[["lhs",{"annotation":[{"start":[38,22],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[38,30]},[]],"tag":"NamedKind","contents":[["Prim","Ordering"],"Ordering"]}],["rhs",{"annotation":[{"start":[39,22],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[39,30]},[]],"tag":"NamedKind","contents":[["Prim","Ordering"],"Ordering"]}],["output",{"annotation":[{"start":[40,25],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[40,33]},[]],"tag":"NamedKind","contents":[["Prim","Ordering"],"Ordering"]}]],"edClassMembers":[],"edClassConstraints":[],"edFunctionalDependencies":[{"determiners":[0],"determined":[1,2]}]}},{"EDValue":{"edValueName":{"Ident":"append"},"edValueType":{"annotation":[{"start":[46,11],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[46,73]},[]],"tag":"ForAll","contents":["o",{"annotation":[{"start":[46,18],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[46,73]},[]],"tag":"ForAll","contents":["r",{"annotation":[{"start":[46,18],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[46,73]},[]],"tag":"ForAll","contents":["l",{"annotation":[{"start":[46,25],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[46,73]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[46,25],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[46,37]},[]],"constraintClass":[["Type","Data","Ordering"],"Append"],"constraintArgs":[{"annotation":[{"start":[46,32],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[46,33]},[]],"tag":"TypeVar","contents":"l"},{"annotation":[{"start":[46,34],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[46,35]},[]],"tag":"TypeVar","contents":"r"},{"annotation":[{"start":[46,36],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[46,37]},[]],"tag":"TypeVar","contents":"o"}],"constraintData":null},{"annotation":[{"start":[46,41],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[46,73]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[46,41],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[46,73]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[46,50],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[46,52]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[46,41],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[46,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[46,41],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[46,47]},[]],"tag":"TypeConstructor","contents":[["Type","Data","Ordering"],"OProxy"]},{"annotation":[{"start":[46,48],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[46,49]},[]],"tag":"TypeVar","contents":"l"}]}]},{"annotation":[{"start":[46,53],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[46,73]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[46,53],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[46,73]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[46,62],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[46,64]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[46,53],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[46,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[46,53],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[46,59]},[]],"tag":"TypeConstructor","contents":[["Type","Data","Ordering"],"OProxy"]},{"annotation":[{"start":[46,60],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[46,61]},[]],"tag":"TypeVar","contents":"r"}]}]},{"annotation":[{"start":[46,65],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[46,73]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[46,65],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[46,71]},[]],"tag":"TypeConstructor","contents":[["Type","Data","Ordering"],"OProxy"]},{"annotation":[{"start":[46,72],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[46,73]},[]],"tag":"TypeVar","contents":"o"}]}]}]}]},25]},26]},27]}}},{"EDType":{"edTypeName":"Invert","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[50,27],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[50,35]},[]],"tag":"NamedKind","contents":[["Prim","Ordering"],"Ordering"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[51,25],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[51,33]},[]],"tag":"NamedKind","contents":[["Prim","Ordering"],"Ordering"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"Invert","edTypeSynonymArguments":[["ordering",{"annotation":[{"start":[50,27],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[50,35]},[]],"tag":"NamedKind","contents":[["Prim","Ordering"],"Ordering"]}],["result",{"annotation":[{"start":[51,25],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[51,33]},[]],"tag":"NamedKind","contents":[["Prim","Ordering"],"Ordering"]}]],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}}},{"EDClass":{"edClassName":"Invert","edClassTypeArguments":[["ordering",{"annotation":[{"start":[50,27],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[50,35]},[]],"tag":"NamedKind","contents":[["Prim","Ordering"],"Ordering"]}],["result",{"annotation":[{"start":[51,25],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[51,33]},[]],"tag":"NamedKind","contents":[["Prim","Ordering"],"Ordering"]}]],"edClassMembers":[],"edClassConstraints":[],"edFunctionalDependencies":[{"determiners":[0],"determined":[1]}]}},{"EDValue":{"edValueName":{"Ident":"invert"},"edValueType":{"annotation":[{"start":[57,11],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[57,57]},[]],"tag":"ForAll","contents":["o",{"annotation":[{"start":[57,18],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[57,57]},[]],"tag":"ForAll","contents":["i",{"annotation":[{"start":[57,23],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[57,57]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[57,23],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[57,33]},[]],"constraintClass":[["Type","Data","Ordering"],"Invert"],"constraintArgs":[{"annotation":[{"start":[57,30],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[57,31]},[]],"tag":"TypeVar","contents":"i"},{"annotation":[{"start":[57,32],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[57,33]},[]],"tag":"TypeVar","contents":"o"}],"constraintData":null},{"annotation":[{"start":[57,37],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[57,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[57,37],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[57,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[57,46],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[57,48]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[57,37],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[57,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[57,37],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[57,43]},[]],"tag":"TypeConstructor","contents":[["Type","Data","Ordering"],"OProxy"]},{"annotation":[{"start":[57,44],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[57,45]},[]],"tag":"TypeVar","contents":"i"}]}]},{"annotation":[{"start":[57,49],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[57,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[57,49],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[57,55]},[]],"tag":"TypeConstructor","contents":[["Type","Data","Ordering"],"OProxy"]},{"annotation":[{"start":[57,56],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[57,57]},[]],"tag":"TypeVar","contents":"o"}]}]}]},7]},8]}}},{"EDType":{"edTypeName":"Equals","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[60,22],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[60,30]},[]],"tag":"NamedKind","contents":[["Prim","Ordering"],"Ordering"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[61,22],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[61,30]},[]],"tag":"NamedKind","contents":[["Prim","Ordering"],"Ordering"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[62,22],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[62,29]},[]],"tag":"NamedKind","contents":[["Type","Data","Boolean"],"Boolean"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"Equals","edTypeSynonymArguments":[["lhs",{"annotation":[{"start":[60,22],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[60,30]},[]],"tag":"NamedKind","contents":[["Prim","Ordering"],"Ordering"]}],["rhs",{"annotation":[{"start":[61,22],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[61,30]},[]],"tag":"NamedKind","contents":[["Prim","Ordering"],"Ordering"]}],["out",{"annotation":[{"start":[62,22],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[62,29]},[]],"tag":"NamedKind","contents":[["Type","Data","Boolean"],"Boolean"]}]],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}}},{"EDClass":{"edClassName":"Equals","edClassTypeArguments":[["lhs",{"annotation":[{"start":[60,22],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[60,30]},[]],"tag":"NamedKind","contents":[["Prim","Ordering"],"Ordering"]}],["rhs",{"annotation":[{"start":[61,22],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[61,30]},[]],"tag":"NamedKind","contents":[["Prim","Ordering"],"Ordering"]}],["out",{"annotation":[{"start":[62,22],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[62,29]},[]],"tag":"NamedKind","contents":[["Type","Data","Boolean"],"Boolean"]}]],"edClassMembers":[],"edClassConstraints":[],"edFunctionalDependencies":[{"determiners":[0,1],"determined":[2]}]}},{"EDValue":{"edValueName":{"Ident":"equals"},"edValueType":{"annotation":[{"start":[75,11],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[75,73]},[]],"tag":"ForAll","contents":["o",{"annotation":[{"start":[75,18],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[75,73]},[]],"tag":"ForAll","contents":["r",{"annotation":[{"start":[75,18],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[75,73]},[]],"tag":"ForAll","contents":["l",{"annotation":[{"start":[75,25],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[75,73]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[75,25],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[75,37]},[]],"constraintClass":[["Type","Data","Ordering"],"Equals"],"constraintArgs":[{"annotation":[{"start":[75,32],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[75,33]},[]],"tag":"TypeVar","contents":"l"},{"annotation":[{"start":[75,34],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[75,35]},[]],"tag":"TypeVar","contents":"r"},{"annotation":[{"start":[75,36],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[75,37]},[]],"tag":"TypeVar","contents":"o"}],"constraintData":null},{"annotation":[{"start":[75,41],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[75,73]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[75,41],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[75,73]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[75,50],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[75,52]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[75,41],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[75,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[75,41],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[75,47]},[]],"tag":"TypeConstructor","contents":[["Type","Data","Ordering"],"OProxy"]},{"annotation":[{"start":[75,48],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[75,49]},[]],"tag":"TypeVar","contents":"l"}]}]},{"annotation":[{"start":[75,53],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[75,73]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[75,53],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[75,73]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[75,62],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[75,64]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[75,53],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[75,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[75,53],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[75,59]},[]],"tag":"TypeConstructor","contents":[["Type","Data","Ordering"],"OProxy"]},{"annotation":[{"start":[75,60],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[75,61]},[]],"tag":"TypeVar","contents":"r"}]}]},{"annotation":[{"start":[75,65],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[75,73]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[75,65],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[75,71]},[]],"tag":"TypeConstructor","contents":[["Type","Data","Boolean"],"BProxy"]},{"annotation":[{"start":[75,72],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[75,73]},[]],"tag":"TypeVar","contents":"o"}]}]}]}]},12]},13]},14]}}},{"EDInstance":{"edInstanceClassName":[["Type","Data","Ordering"],"IsOrdering"],"edInstanceName":{"Ident":"isOrderingLT"},"edInstanceTypes":[{"annotation":[{"start":[26,37],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[26,39]},[]],"tag":"TypeConstructor","contents":[["Prim","Ordering"],"LT"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Type","Data","Ordering"],{"Ident":"isOrderingLT"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Type","Data","Ordering"],"IsOrdering"],"edInstanceName":{"Ident":"isOrderingEQ"},"edInstanceTypes":[{"annotation":[{"start":[27,37],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[27,39]},[]],"tag":"TypeConstructor","contents":[["Prim","Ordering"],"EQ"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Type","Data","Ordering"],{"Ident":"isOrderingEQ"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Type","Data","Ordering"],"IsOrdering"],"edInstanceName":{"Ident":"isOrderingGT"},"edInstanceTypes":[{"annotation":[{"start":[28,37],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[28,39]},[]],"tag":"TypeConstructor","contents":[["Prim","Ordering"],"GT"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Type","Data","Ordering"],{"Ident":"isOrderingGT"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Type","Data","Ordering"],"Append"],"edInstanceName":{"Ident":"appendOrderingLT"},"edInstanceTypes":[{"annotation":[{"start":[42,37],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[42,39]},[]],"tag":"TypeConstructor","contents":[["Prim","Ordering"],"LT"]},{"annotation":[{"start":[42,40],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[42,43]},[]],"tag":"TypeVar","contents":"rhs"},{"annotation":[{"start":[42,44],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[42,46]},[]],"tag":"TypeConstructor","contents":[["Prim","Ordering"],"LT"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Type","Data","Ordering"],{"Ident":"appendOrderingLT"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Type","Data","Ordering"],"Append"],"edInstanceName":{"Ident":"appendOrderingEQ"},"edInstanceTypes":[{"annotation":[{"start":[43,37],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[43,39]},[]],"tag":"TypeConstructor","contents":[["Prim","Ordering"],"EQ"]},{"annotation":[{"start":[43,40],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[43,43]},[]],"tag":"TypeVar","contents":"rhs"},{"annotation":[{"start":[43,44],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[43,47]},[]],"tag":"TypeVar","contents":"rhs"}],"edInstanceConstraints":[],"edInstanceChain":[[["Type","Data","Ordering"],{"Ident":"appendOrderingEQ"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Type","Data","Ordering"],"Append"],"edInstanceName":{"Ident":"appendOrderingGT"},"edInstanceTypes":[{"annotation":[{"start":[44,37],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[44,39]},[]],"tag":"TypeConstructor","contents":[["Prim","Ordering"],"GT"]},{"annotation":[{"start":[44,40],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[44,43]},[]],"tag":"TypeVar","contents":"rhs"},{"annotation":[{"start":[44,44],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[44,46]},[]],"tag":"TypeConstructor","contents":[["Prim","Ordering"],"GT"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Type","Data","Ordering"],{"Ident":"appendOrderingGT"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Type","Data","Ordering"],"Invert"],"edInstanceName":{"Ident":"invertOrderingLT"},"edInstanceTypes":[{"annotation":[{"start":[53,37],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[53,39]},[]],"tag":"TypeConstructor","contents":[["Prim","Ordering"],"LT"]},{"annotation":[{"start":[53,40],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[53,42]},[]],"tag":"TypeConstructor","contents":[["Prim","Ordering"],"GT"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Type","Data","Ordering"],{"Ident":"invertOrderingLT"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Type","Data","Ordering"],"Invert"],"edInstanceName":{"Ident":"invertOrderingEQ"},"edInstanceTypes":[{"annotation":[{"start":[54,37],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[54,39]},[]],"tag":"TypeConstructor","contents":[["Prim","Ordering"],"EQ"]},{"annotation":[{"start":[54,40],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[54,42]},[]],"tag":"TypeConstructor","contents":[["Prim","Ordering"],"EQ"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Type","Data","Ordering"],{"Ident":"invertOrderingEQ"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Type","Data","Ordering"],"Invert"],"edInstanceName":{"Ident":"invertOrderingGT"},"edInstanceTypes":[{"annotation":[{"start":[55,37],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[55,39]},[]],"tag":"TypeConstructor","contents":[["Prim","Ordering"],"GT"]},{"annotation":[{"start":[55,40],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[55,42]},[]],"tag":"TypeConstructor","contents":[["Prim","Ordering"],"LT"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Type","Data","Ordering"],{"Ident":"invertOrderingGT"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Type","Data","Ordering"],"Equals"],"edInstanceName":{"Ident":"equalsEQEQ"},"edInstanceTypes":[{"annotation":[{"start":[65,31],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[65,33]},[]],"tag":"TypeConstructor","contents":[["Prim","Ordering"],"EQ"]},{"annotation":[{"start":[65,34],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[65,36]},[]],"tag":"TypeConstructor","contents":[["Prim","Ordering"],"EQ"]},{"annotation":[{"start":[65,37],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[65,41]},[]],"tag":"TypeConstructor","contents":[["Type","Data","Boolean"],"True"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Type","Data","Ordering"],{"Ident":"equalsEQEQ"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Type","Data","Ordering"],"Equals"],"edInstanceName":{"Ident":"equalsLTLT"},"edInstanceTypes":[{"annotation":[{"start":[66,31],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[66,33]},[]],"tag":"TypeConstructor","contents":[["Prim","Ordering"],"LT"]},{"annotation":[{"start":[66,34],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[66,36]},[]],"tag":"TypeConstructor","contents":[["Prim","Ordering"],"LT"]},{"annotation":[{"start":[66,37],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[66,41]},[]],"tag":"TypeConstructor","contents":[["Type","Data","Boolean"],"True"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Type","Data","Ordering"],{"Ident":"equalsLTLT"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Type","Data","Ordering"],"Equals"],"edInstanceName":{"Ident":"equalsGTGT"},"edInstanceTypes":[{"annotation":[{"start":[67,31],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[67,33]},[]],"tag":"TypeConstructor","contents":[["Prim","Ordering"],"GT"]},{"annotation":[{"start":[67,34],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[67,36]},[]],"tag":"TypeConstructor","contents":[["Prim","Ordering"],"GT"]},{"annotation":[{"start":[67,37],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[67,41]},[]],"tag":"TypeConstructor","contents":[["Type","Data","Boolean"],"True"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Type","Data","Ordering"],{"Ident":"equalsGTGT"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Type","Data","Ordering"],"Equals"],"edInstanceName":{"Ident":"equalsEQLT"},"edInstanceTypes":[{"annotation":[{"start":[68,31],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[68,33]},[]],"tag":"TypeConstructor","contents":[["Prim","Ordering"],"EQ"]},{"annotation":[{"start":[68,34],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[68,36]},[]],"tag":"TypeConstructor","contents":[["Prim","Ordering"],"LT"]},{"annotation":[{"start":[68,37],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[68,42]},[]],"tag":"TypeConstructor","contents":[["Type","Data","Boolean"],"False"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Type","Data","Ordering"],{"Ident":"equalsEQLT"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Type","Data","Ordering"],"Equals"],"edInstanceName":{"Ident":"equalsEQGT"},"edInstanceTypes":[{"annotation":[{"start":[69,31],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[69,33]},[]],"tag":"TypeConstructor","contents":[["Prim","Ordering"],"EQ"]},{"annotation":[{"start":[69,34],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[69,36]},[]],"tag":"TypeConstructor","contents":[["Prim","Ordering"],"GT"]},{"annotation":[{"start":[69,37],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[69,42]},[]],"tag":"TypeConstructor","contents":[["Type","Data","Boolean"],"False"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Type","Data","Ordering"],{"Ident":"equalsEQGT"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Type","Data","Ordering"],"Equals"],"edInstanceName":{"Ident":"equalsLTEQ"},"edInstanceTypes":[{"annotation":[{"start":[70,31],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[70,33]},[]],"tag":"TypeConstructor","contents":[["Prim","Ordering"],"LT"]},{"annotation":[{"start":[70,34],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[70,36]},[]],"tag":"TypeConstructor","contents":[["Prim","Ordering"],"EQ"]},{"annotation":[{"start":[70,37],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[70,42]},[]],"tag":"TypeConstructor","contents":[["Type","Data","Boolean"],"False"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Type","Data","Ordering"],{"Ident":"equalsLTEQ"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Type","Data","Ordering"],"Equals"],"edInstanceName":{"Ident":"equalsLTGT"},"edInstanceTypes":[{"annotation":[{"start":[71,31],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[71,33]},[]],"tag":"TypeConstructor","contents":[["Prim","Ordering"],"LT"]},{"annotation":[{"start":[71,34],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[71,36]},[]],"tag":"TypeConstructor","contents":[["Prim","Ordering"],"GT"]},{"annotation":[{"start":[71,37],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[71,42]},[]],"tag":"TypeConstructor","contents":[["Type","Data","Boolean"],"False"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Type","Data","Ordering"],{"Ident":"equalsLTGT"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Type","Data","Ordering"],"Equals"],"edInstanceName":{"Ident":"equalsGTLT"},"edInstanceTypes":[{"annotation":[{"start":[72,31],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[72,33]},[]],"tag":"TypeConstructor","contents":[["Prim","Ordering"],"GT"]},{"annotation":[{"start":[72,34],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[72,36]},[]],"tag":"TypeConstructor","contents":[["Prim","Ordering"],"LT"]},{"annotation":[{"start":[72,37],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[72,42]},[]],"tag":"TypeConstructor","contents":[["Type","Data","Boolean"],"False"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Type","Data","Ordering"],{"Ident":"equalsGTLT"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Type","Data","Ordering"],"Equals"],"edInstanceName":{"Ident":"equalsGTEQ"},"edInstanceTypes":[{"annotation":[{"start":[73,31],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[73,33]},[]],"tag":"TypeConstructor","contents":[["Prim","Ordering"],"GT"]},{"annotation":[{"start":[73,34],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[73,36]},[]],"tag":"TypeConstructor","contents":[["Prim","Ordering"],"EQ"]},{"annotation":[{"start":[73,37],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[73,42]},[]],"tag":"TypeConstructor","contents":[["Type","Data","Boolean"],"False"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Type","Data","Ordering"],{"Ident":"equalsGTEQ"}]],"edInstanceChainIndex":0}}],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Ordering.purs","end":[76,20]}}
diff --git a/tests/purs/publish/basic-example/output/Type.Data.Row/docs.json b/tests/purs/publish/basic-example/output/Type.Data.Row/docs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Type.Data.Row/docs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"reExports":[],"name":"Type.Data.Row","comments":null,"declarations":[{"children":[{"comments":null,"title":"RProxy","info":{"arguments":[],"declType":"dataConstructor"},"sourceSpan":null}],"comments":null,"title":"RProxy","info":{"declType":"data","dataDeclType":"data","typeArguments":[["row",{"annotation":[],"tag":"Row","contents":{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]}}]]},"sourceSpan":{"start":[3,1],"name":"../../../support/bower_components/purescript-prelude/src/Type/Data/Row.purs","end":[4,11]}}]}
diff --git a/tests/purs/publish/basic-example/output/Type.Data.Row/externs.json b/tests/purs/publish/basic-example/output/Type.Data.Row/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Type.Data.Row/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Type","Data","Row"],"efExports":[{"TypeRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Type/Data/Row.purs","end":[4,11]},"RProxy",["RProxy"]]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDType":{"edTypeName":"RProxy","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[3,21],"name":"../../../support/bower_components/purescript-prelude/src/Type/Data/Row.purs","end":[3,27]},[]],"tag":"Row","contents":{"annotation":[{"start":[3,23],"name":"../../../support/bower_components/purescript-prelude/src/Type/Data/Row.purs","end":[3,27]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},"edTypeDeclarationKind":{"DataType":{"args":[["row",{"annotation":[{"start":[3,21],"name":"../../../support/bower_components/purescript-prelude/src/Type/Data/Row.purs","end":[3,27]},[]],"tag":"Row","contents":{"annotation":[{"start":[3,23],"name":"../../../support/bower_components/purescript-prelude/src/Type/Data/Row.purs","end":[3,27]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}}]],"ctors":[["RProxy",[]]]}}}},{"EDDataConstructor":{"edDataCtorName":"RProxy","edDataCtorOrigin":"data","edDataCtorTypeCtor":"RProxy","edDataCtorType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["row",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Type","Data","Row"],"RProxy"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"row"}]},null]},"edDataCtorFields":[]}}],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Type/Data/Row.purs","end":[4,11]}}
diff --git a/tests/purs/publish/basic-example/output/Type.Data.RowList/docs.json b/tests/purs/publish/basic-example/output/Type.Data.RowList/docs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Type.Data.RowList/docs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"reExports":[],"name":"Type.Data.RowList","comments":null,"declarations":[{"children":[{"comments":null,"title":"RLProxy","info":{"arguments":[],"declType":"dataConstructor"},"sourceSpan":null}],"comments":"A proxy to carry information about a rowlist.\n","title":"RLProxy","info":{"declType":"data","dataDeclType":"data","typeArguments":[["rowlist",{"annotation":[],"tag":"NamedKind","contents":[["Prim","RowList"],"RowList"]}]]},"sourceSpan":{"start":[6,1],"name":"../../../support/bower_components/purescript-prelude/src/Type/Data/RowList.purs","end":[7,12]}}]}
diff --git a/tests/purs/publish/basic-example/output/Type.Data.RowList/externs.json b/tests/purs/publish/basic-example/output/Type.Data.RowList/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Type.Data.RowList/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Type","Data","RowList"],"efExports":[{"TypeRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Type/Data/RowList.purs","end":[7,12]},"RLProxy",["RLProxy"]]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Prim","RowList"],"eiImportType":{"Explicit":[{"KindRef":[{"start":[3,22],"name":"../../../support/bower_components/purescript-prelude/src/Type/Data/RowList.purs","end":[3,34]},"RowList"]}]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDType":{"edTypeName":"RLProxy","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[6,26],"name":"../../../support/bower_components/purescript-prelude/src/Type/Data/RowList.purs","end":[6,33]},[]],"tag":"NamedKind","contents":[["Prim","RowList"],"RowList"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},"edTypeDeclarationKind":{"DataType":{"args":[["rowlist",{"annotation":[{"start":[6,26],"name":"../../../support/bower_components/purescript-prelude/src/Type/Data/RowList.purs","end":[6,33]},[]],"tag":"NamedKind","contents":[["Prim","RowList"],"RowList"]}]],"ctors":[["RLProxy",[]]]}}}},{"EDDataConstructor":{"edDataCtorName":"RLProxy","edDataCtorOrigin":"data","edDataCtorTypeCtor":"RLProxy","edDataCtorType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["rowlist",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Type","Data","RowList"],"RLProxy"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"rowlist"}]},null]},"edDataCtorFields":[]}}],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Type/Data/RowList.purs","end":[7,12]}}
diff --git a/tests/purs/publish/basic-example/output/Type.Data.Symbol/docs.json b/tests/purs/publish/basic-example/output/Type.Data.Symbol/docs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Type.Data.Symbol/docs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"reExports":[],"name":"Type.Data.Symbol","comments":null,"declarations":[{"children":[],"comments":null,"title":"append","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["o",{"annotation":[],"tag":"ForAll","contents":["r",{"annotation":[],"tag":"ForAll","contents":["l",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Prim","Symbol"],"Append"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"l"},{"annotation":[],"tag":"TypeVar","contents":"r"},{"annotation":[],"tag":"TypeVar","contents":"o"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Symbol"],"SProxy"]},{"annotation":[],"tag":"TypeVar","contents":"l"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Symbol"],"SProxy"]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Symbol"],"SProxy"]},{"annotation":[],"tag":"TypeVar","contents":"o"}]}]}]}]},null]},null]},null]}},"sourceSpan":{"start":[20,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[20,73]}},{"children":[],"comments":null,"title":"compare","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["o",{"annotation":[],"tag":"ForAll","contents":["r",{"annotation":[],"tag":"ForAll","contents":["l",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Prim","Symbol"],"Compare"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"l"},{"annotation":[],"tag":"TypeVar","contents":"r"},{"annotation":[],"tag":"TypeVar","contents":"o"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Symbol"],"SProxy"]},{"annotation":[],"tag":"TypeVar","contents":"l"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Symbol"],"SProxy"]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Data","Ordering"],"OProxy"]},{"annotation":[],"tag":"TypeVar","contents":"o"}]}]}]}]},null]},null]},null]}},"sourceSpan":{"start":[17,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[17,75]}},{"children":[],"comments":null,"title":"uncons","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["s",{"annotation":[],"tag":"ForAll","contents":["t",{"annotation":[],"tag":"ForAll","contents":["h",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Prim","Symbol"],"Cons"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"h"},{"annotation":[],"tag":"TypeVar","contents":"t"},{"annotation":[],"tag":"TypeVar","contents":"s"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Symbol"],"SProxy"]},{"annotation":[],"tag":"TypeVar","contents":"s"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"RCons","contents":["head",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Symbol"],"SProxy"]},{"annotation":[],"tag":"TypeVar","contents":"h"}]},{"annotation":[],"tag":"RCons","contents":["tail",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Symbol"],"SProxy"]},{"annotation":[],"tag":"TypeVar","contents":"t"}]},{"annotation":[],"tag":"REmpty"}]}]}]}]}]},null]},null]},null]}},"sourceSpan":{"start":[23,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[23,87]}},{"children":[{"comments":null,"title":"equalsSymbol","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Prim","Symbol"],"Compare"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"lhs"},{"annotation":[],"tag":"TypeVar","contents":"rhs"},{"annotation":[],"tag":"TypeVar","contents":"ord"}],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Type","Data","Ordering"],"Equals"],"constraintArgs":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim","Ordering"],"EQ"]},{"annotation":[],"tag":"TypeVar","contents":"ord"},{"annotation":[],"tag":"TypeVar","contents":"out"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Data","Symbol"],"Equals"]},{"annotation":[],"tag":"TypeVar","contents":"lhs"}]},{"annotation":[],"tag":"TypeVar","contents":"rhs"}]},{"annotation":[],"tag":"TypeVar","contents":"out"}]}},"sourceSpan":{"start":[31,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[34,24]}}],"comments":null,"title":"Equals","info":{"fundeps":[[["lhs","rhs"],["out"]]],"arguments":[["lhs",{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Symbol"]}],["rhs",{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Symbol"]}],["out",{"annotation":[],"tag":"NamedKind","contents":[["Type","Data","Boolean"],"Boolean"]}]],"declType":"typeClass","superclasses":[]},"sourceSpan":{"start":[26,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[29,28]}},{"children":[],"comments":null,"title":"equals","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["o",{"annotation":[],"tag":"ForAll","contents":["r",{"annotation":[],"tag":"ForAll","contents":["l",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Type","Data","Symbol"],"Equals"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"l"},{"annotation":[],"tag":"TypeVar","contents":"r"},{"annotation":[],"tag":"TypeVar","contents":"o"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Symbol"],"SProxy"]},{"annotation":[],"tag":"TypeVar","contents":"l"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Symbol"],"SProxy"]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Data","Boolean"],"BProxy"]},{"annotation":[],"tag":"TypeVar","contents":"o"}]}]}]}]},null]},null]},null]}},"sourceSpan":{"start":[36,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[36,73]}}]}
diff --git a/tests/purs/publish/basic-example/output/Type.Data.Symbol/externs.json b/tests/purs/publish/basic-example/output/Type.Data.Symbol/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Type.Data.Symbol/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Type","Data","Symbol"],"efExports":[{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[37,20]},{"exportSourceImportedFrom":["Data","Symbol"],"exportSourceDefinedIn":["Data","Symbol"]},{"TypeRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[37,20]},"SProxy",["SProxy"]]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[37,20]},{"exportSourceImportedFrom":["Prim","Symbol"],"exportSourceDefinedIn":["Prim","Symbol"]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[37,20]},"Append"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[37,20]},{"exportSourceImportedFrom":["Prim","Symbol"],"exportSourceDefinedIn":["Prim","Symbol"]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[37,20]},"Compare"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[37,20]},{"exportSourceImportedFrom":["Prim","Symbol"],"exportSourceDefinedIn":["Prim","Symbol"]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[37,20]},"Cons"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[37,20]},{"exportSourceImportedFrom":["Data","Symbol"],"exportSourceDefinedIn":["Data","Symbol"]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[37,20]},"IsSymbol"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[37,20]},{"exportSourceImportedFrom":["Data","Symbol"],"exportSourceDefinedIn":["Data","Symbol"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[37,20]},{"Ident":"reflectSymbol"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[37,20]},{"exportSourceImportedFrom":["Data","Symbol"],"exportSourceDefinedIn":["Data","Symbol"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[37,20]},{"Ident":"reifySymbol"}]}]},{"ModuleRef":[{"start":[2,5],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[2,23]},["Prim","Symbol"]]},{"ModuleRef":[{"start":[3,5],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[3,23]},["Data","Symbol"]]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[37,20]},{"Ident":"append"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[37,20]},{"Ident":"compare"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[37,20]},{"Ident":"uncons"}]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[37,20]},"Equals"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[37,20]},{"Ident":"equals"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"equalsSymbol"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Prim","Symbol"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[11,21],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[11,33]},"Append"]},{"TypeClassRef":[{"start":[11,35],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[11,48]},"Compare"]},{"TypeClassRef":[{"start":[11,50],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[11,60]},"Cons"]}]},"eiImportedAs":null},{"eiModule":["Data","Symbol"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[12,21],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[12,31]},"SProxy",null]},{"TypeClassRef":[{"start":[12,33],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[12,47]},"IsSymbol"]},{"ValueRef":[{"start":[12,49],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[12,62]},{"Ident":"reflectSymbol"}]},{"ValueRef":[{"start":[12,64],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[12,75]},{"Ident":"reifySymbol"}]}]},"eiImportedAs":null},{"eiModule":["Type","Data","Ordering"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[13,28],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[13,38]},"OProxy",null]},{"KindRef":[{"start":[13,40],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[13,53]},"Ordering"]},{"TypeRef":[{"start":[13,55],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[13,57]},"EQ",[]]}]},"eiImportedAs":null},{"eiModule":["Type","Data","Ordering"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[14,28],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[14,40]},"Equals"]}]},"eiImportedAs":["Ordering"]},{"eiModule":["Type","Data","Boolean"],"eiImportType":{"Explicit":[{"KindRef":[{"start":[15,27],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[15,39]},"Boolean"]},{"TypeRef":[{"start":[15,41],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[15,51]},"BProxy",null]}]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDValue":{"edValueName":{"Ident":"append"},"edValueType":{"annotation":[{"start":[20,11],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[20,73]},[]],"tag":"ForAll","contents":["o",{"annotation":[{"start":[20,18],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[20,73]},[]],"tag":"ForAll","contents":["r",{"annotation":[{"start":[20,18],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[20,73]},[]],"tag":"ForAll","contents":["l",{"annotation":[{"start":[20,25],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[20,73]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[20,25],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[20,37]},[]],"constraintClass":[["Prim","Symbol"],"Append"],"constraintArgs":[{"annotation":[{"start":[20,32],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[20,33]},[]],"tag":"TypeVar","contents":"l"},{"annotation":[{"start":[20,34],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[20,35]},[]],"tag":"TypeVar","contents":"r"},{"annotation":[{"start":[20,36],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[20,37]},[]],"tag":"TypeVar","contents":"o"}],"constraintData":null},{"annotation":[{"start":[20,41],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[20,73]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[20,41],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[20,73]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[20,50],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[20,52]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[20,41],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[20,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[20,41],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[20,47]},[]],"tag":"TypeConstructor","contents":[["Data","Symbol"],"SProxy"]},{"annotation":[{"start":[20,48],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[20,49]},[]],"tag":"TypeVar","contents":"l"}]}]},{"annotation":[{"start":[20,53],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[20,73]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[20,53],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[20,73]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[20,62],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[20,64]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[20,53],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[20,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[20,53],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[20,59]},[]],"tag":"TypeConstructor","contents":[["Data","Symbol"],"SProxy"]},{"annotation":[{"start":[20,60],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[20,61]},[]],"tag":"TypeVar","contents":"r"}]}]},{"annotation":[{"start":[20,65],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[20,73]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[20,65],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[20,71]},[]],"tag":"TypeConstructor","contents":[["Data","Symbol"],"SProxy"]},{"annotation":[{"start":[20,72],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[20,73]},[]],"tag":"TypeVar","contents":"o"}]}]}]}]},30]},31]},32]}}},{"EDValue":{"edValueName":{"Ident":"compare"},"edValueType":{"annotation":[{"start":[17,12],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[17,75]},[]],"tag":"ForAll","contents":["o",{"annotation":[{"start":[17,19],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[17,75]},[]],"tag":"ForAll","contents":["r",{"annotation":[{"start":[17,19],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[17,75]},[]],"tag":"ForAll","contents":["l",{"annotation":[{"start":[17,26],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[17,75]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[17,26],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[17,39]},[]],"constraintClass":[["Prim","Symbol"],"Compare"],"constraintArgs":[{"annotation":[{"start":[17,34],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[17,35]},[]],"tag":"TypeVar","contents":"l"},{"annotation":[{"start":[17,36],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[17,37]},[]],"tag":"TypeVar","contents":"r"},{"annotation":[{"start":[17,38],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[17,39]},[]],"tag":"TypeVar","contents":"o"}],"constraintData":null},{"annotation":[{"start":[17,43],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[17,75]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[17,43],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[17,75]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[17,52],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[17,54]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[17,43],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[17,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[17,43],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[17,49]},[]],"tag":"TypeConstructor","contents":[["Data","Symbol"],"SProxy"]},{"annotation":[{"start":[17,50],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[17,51]},[]],"tag":"TypeVar","contents":"l"}]}]},{"annotation":[{"start":[17,55],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[17,75]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[17,55],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[17,75]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[17,64],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[17,66]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[17,55],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[17,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[17,55],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[17,61]},[]],"tag":"TypeConstructor","contents":[["Data","Symbol"],"SProxy"]},{"annotation":[{"start":[17,62],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[17,63]},[]],"tag":"TypeVar","contents":"r"}]}]},{"annotation":[{"start":[17,67],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[17,75]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[17,67],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[17,73]},[]],"tag":"TypeConstructor","contents":[["Type","Data","Ordering"],"OProxy"]},{"annotation":[{"start":[17,74],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[17,75]},[]],"tag":"TypeVar","contents":"o"}]}]}]}]},23]},24]},25]}}},{"EDValue":{"edValueName":{"Ident":"uncons"},"edValueType":{"annotation":[{"start":[23,11],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[23,87]},[]],"tag":"ForAll","contents":["s",{"annotation":[{"start":[23,18],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[23,87]},[]],"tag":"ForAll","contents":["t",{"annotation":[{"start":[23,18],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[23,87]},[]],"tag":"ForAll","contents":["h",{"annotation":[{"start":[23,25],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[23,87]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[23,25],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[23,35]},[]],"constraintClass":[["Prim","Symbol"],"Cons"],"constraintArgs":[{"annotation":[{"start":[23,30],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[23,31]},[]],"tag":"TypeVar","contents":"h"},{"annotation":[{"start":[23,32],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[23,33]},[]],"tag":"TypeVar","contents":"t"},{"annotation":[{"start":[23,34],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[23,35]},[]],"tag":"TypeVar","contents":"s"}],"constraintData":null},{"annotation":[{"start":[23,39],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[23,87]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[23,39],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[23,87]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[23,48],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[23,50]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[23,39],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[23,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[23,39],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[23,45]},[]],"tag":"TypeConstructor","contents":[["Data","Symbol"],"SProxy"]},{"annotation":[{"start":[23,46],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[23,47]},[]],"tag":"TypeVar","contents":"s"}]}]},{"annotation":[{"start":[23,51],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[23,87]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[23,51],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[23,52]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[23,52],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[23,68]},[]],"tag":"RCons","contents":["head",{"annotation":[{"start":[23,60],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[23,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[23,60],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[23,66]},[]],"tag":"TypeConstructor","contents":[["Data","Symbol"],"SProxy"]},{"annotation":[{"start":[23,67],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[23,68]},[]],"tag":"TypeVar","contents":"h"}]},{"annotation":[{"start":[23,70],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[23,86]},[]],"tag":"RCons","contents":["tail",{"annotation":[{"start":[23,78],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[23,86]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[23,78],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[23,84]},[]],"tag":"TypeConstructor","contents":[["Data","Symbol"],"SProxy"]},{"annotation":[{"start":[23,85],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[23,86]},[]],"tag":"TypeVar","contents":"t"}]},{"annotation":[{"start":[23,86],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[23,87]},[]],"tag":"REmpty"}]}]}]}]}]},0]},1]},2]}}},{"EDType":{"edTypeName":"Equals","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[26,22],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[26,28]},[]],"tag":"NamedKind","contents":[["Prim"],"Symbol"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[27,22],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[27,28]},[]],"tag":"NamedKind","contents":[["Prim"],"Symbol"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[28,22],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[28,29]},[]],"tag":"NamedKind","contents":[["Type","Data","Boolean"],"Boolean"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"Equals","edTypeSynonymArguments":[["lhs",{"annotation":[{"start":[26,22],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[26,28]},[]],"tag":"NamedKind","contents":[["Prim"],"Symbol"]}],["rhs",{"annotation":[{"start":[27,22],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[27,28]},[]],"tag":"NamedKind","contents":[["Prim"],"Symbol"]}],["out",{"annotation":[{"start":[28,22],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[28,29]},[]],"tag":"NamedKind","contents":[["Type","Data","Boolean"],"Boolean"]}]],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}}},{"EDClass":{"edClassName":"Equals","edClassTypeArguments":[["lhs",{"annotation":[{"start":[26,22],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[26,28]},[]],"tag":"NamedKind","contents":[["Prim"],"Symbol"]}],["rhs",{"annotation":[{"start":[27,22],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[27,28]},[]],"tag":"NamedKind","contents":[["Prim"],"Symbol"]}],["out",{"annotation":[{"start":[28,22],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[28,29]},[]],"tag":"NamedKind","contents":[["Type","Data","Boolean"],"Boolean"]}]],"edClassMembers":[],"edClassConstraints":[],"edFunctionalDependencies":[{"determiners":[0,1],"determined":[2]}]}},{"EDValue":{"edValueName":{"Ident":"equals"},"edValueType":{"annotation":[{"start":[36,11],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[36,73]},[]],"tag":"ForAll","contents":["o",{"annotation":[{"start":[36,18],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[36,73]},[]],"tag":"ForAll","contents":["r",{"annotation":[{"start":[36,18],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[36,73]},[]],"tag":"ForAll","contents":["l",{"annotation":[{"start":[36,25],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[36,73]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[36,25],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[36,37]},[]],"constraintClass":[["Type","Data","Symbol"],"Equals"],"constraintArgs":[{"annotation":[{"start":[36,32],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[36,33]},[]],"tag":"TypeVar","contents":"l"},{"annotation":[{"start":[36,34],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[36,35]},[]],"tag":"TypeVar","contents":"r"},{"annotation":[{"start":[36,36],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[36,37]},[]],"tag":"TypeVar","contents":"o"}],"constraintData":null},{"annotation":[{"start":[36,41],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[36,73]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,41],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[36,73]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,50],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[36,52]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[36,41],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[36,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,41],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[36,47]},[]],"tag":"TypeConstructor","contents":[["Data","Symbol"],"SProxy"]},{"annotation":[{"start":[36,48],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[36,49]},[]],"tag":"TypeVar","contents":"l"}]}]},{"annotation":[{"start":[36,53],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[36,73]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,53],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[36,73]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,62],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[36,64]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[36,53],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[36,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,53],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[36,59]},[]],"tag":"TypeConstructor","contents":[["Data","Symbol"],"SProxy"]},{"annotation":[{"start":[36,60],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[36,61]},[]],"tag":"TypeVar","contents":"r"}]}]},{"annotation":[{"start":[36,65],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[36,73]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,65],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[36,71]},[]],"tag":"TypeConstructor","contents":[["Type","Data","Boolean"],"BProxy"]},{"annotation":[{"start":[36,72],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[36,73]},[]],"tag":"TypeVar","contents":"o"}]}]}]}]},16]},17]},18]}}},{"EDInstance":{"edInstanceClassName":[["Type","Data","Symbol"],"Equals"],"edInstanceName":{"Ident":"equalsSymbol"},"edInstanceTypes":[{"annotation":[{"start":[34,13],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[34,16]},[]],"tag":"TypeVar","contents":"lhs"},{"annotation":[{"start":[34,17],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[34,20]},[]],"tag":"TypeVar","contents":"rhs"},{"annotation":[{"start":[34,21],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[34,24]},[]],"tag":"TypeVar","contents":"out"}],"edInstanceConstraints":[{"constraintAnn":[{"start":[32,7],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[32,26]},[]],"constraintClass":[["Prim","Symbol"],"Compare"],"constraintArgs":[{"annotation":[{"start":[32,15],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[32,18]},[]],"tag":"TypeVar","contents":"lhs"},{"annotation":[{"start":[32,19],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[32,22]},[]],"tag":"TypeVar","contents":"rhs"},{"annotation":[{"start":[32,23],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[32,26]},[]],"tag":"TypeVar","contents":"ord"}],"constraintData":null},{"constraintAnn":[{"start":[33,7],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[33,33]},[]],"constraintClass":[["Type","Data","Ordering"],"Equals"],"constraintArgs":[{"annotation":[{"start":[33,23],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[33,25]},[]],"tag":"TypeConstructor","contents":[["Prim","Ordering"],"EQ"]},{"annotation":[{"start":[33,26],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[33,29]},[]],"tag":"TypeVar","contents":"ord"},{"annotation":[{"start":[33,30],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[33,33]},[]],"tag":"TypeVar","contents":"out"}],"constraintData":null}],"edInstanceChain":[[["Type","Data","Symbol"],{"Ident":"equalsSymbol"}]],"edInstanceChainIndex":0}}],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Data/Symbol.purs","end":[37,20]}}
diff --git a/tests/purs/publish/basic-example/output/Type.Equality/docs.json b/tests/purs/publish/basic-example/output/Type.Equality/docs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Type.Equality/docs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"reExports":[],"name":"Type.Equality","comments":null,"declarations":[{"children":[{"comments":null,"title":"to","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}},"sourceSpan":{"start":[18,3],"name":"../../../support/bower_components/purescript-type-equality/src/Type/Equality.purs","end":[18,15]}},{"comments":null,"title":"from","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}},"sourceSpan":{"start":[19,3],"name":"../../../support/bower_components/purescript-type-equality/src/Type/Equality.purs","end":[19,17]}},{"comments":null,"title":"refl","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Equality"],"TypeEquals"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}},"sourceSpan":{"start":[21,1],"name":"../../../support/bower_components/purescript-type-equality/src/Type/Equality.purs","end":[23,13]}}],"comments":"This type class asserts that types `a` and `b`\nare equal.\n\nThe functional dependencies and the single\ninstance below will force the two type arguments\nto unify when either one is known.\n\nNote: any instance will necessarily overlap with\n`refl` below, so instances of this class should\nnot be defined in libraries.\n","title":"TypeEquals","info":{"fundeps":[[["a"],["b"]],[["b"],["a"]]],"arguments":[["a",null],["b",null]],"declType":"typeClass","superclasses":[]},"sourceSpan":{"start":[17,1],"name":"../../../support/bower_components/purescript-type-equality/src/Type/Equality.purs","end":[19,17]}}]}
diff --git a/tests/purs/publish/basic-example/output/Type.Equality/externs.json b/tests/purs/publish/basic-example/output/Type.Equality/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Type.Equality/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Type","Equality"],"efExports":[{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-type-equality/src/Type/Equality.purs","end":[23,13]},"TypeEquals"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-type-equality/src/Type/Equality.purs","end":[23,13]},{"Ident":"to"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-type-equality/src/Type/Equality.purs","end":[23,13]},{"Ident":"from"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"refl"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDType":{"edTypeName":"TypeEquals","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[18,11],"name":"../../../support/bower_components/purescript-type-equality/src/Type/Equality.purs","end":[18,13]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[18,11],"name":"../../../support/bower_components/purescript-type-equality/src/Type/Equality.purs","end":[18,13]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"TypeEquals","edTypeSynonymArguments":[["a",null],["b",null]],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["to",{"annotation":[{"start":[18,9],"name":"../../../support/bower_components/purescript-type-equality/src/Type/Equality.purs","end":[18,15]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,9],"name":"../../../support/bower_components/purescript-type-equality/src/Type/Equality.purs","end":[18,15]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,11],"name":"../../../support/bower_components/purescript-type-equality/src/Type/Equality.purs","end":[18,13]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[18,9],"name":"../../../support/bower_components/purescript-type-equality/src/Type/Equality.purs","end":[18,10]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[18,14],"name":"../../../support/bower_components/purescript-type-equality/src/Type/Equality.purs","end":[18,15]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["from",{"annotation":[{"start":[19,11],"name":"../../../support/bower_components/purescript-type-equality/src/Type/Equality.purs","end":[19,17]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[19,11],"name":"../../../support/bower_components/purescript-type-equality/src/Type/Equality.purs","end":[19,17]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[19,13],"name":"../../../support/bower_components/purescript-type-equality/src/Type/Equality.purs","end":[19,15]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[19,11],"name":"../../../support/bower_components/purescript-type-equality/src/Type/Equality.purs","end":[19,12]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[19,16],"name":"../../../support/bower_components/purescript-type-equality/src/Type/Equality.purs","end":[19,17]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]}]}}},{"EDClass":{"edClassName":"TypeEquals","edClassTypeArguments":[["a",null],["b",null]],"edClassMembers":[[{"Ident":"to"},{"annotation":[{"start":[18,9],"name":"../../../support/bower_components/purescript-type-equality/src/Type/Equality.purs","end":[18,15]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,9],"name":"../../../support/bower_components/purescript-type-equality/src/Type/Equality.purs","end":[18,15]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,11],"name":"../../../support/bower_components/purescript-type-equality/src/Type/Equality.purs","end":[18,13]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[18,9],"name":"../../../support/bower_components/purescript-type-equality/src/Type/Equality.purs","end":[18,10]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[18,14],"name":"../../../support/bower_components/purescript-type-equality/src/Type/Equality.purs","end":[18,15]},[]],"tag":"TypeVar","contents":"b"}]}],[{"Ident":"from"},{"annotation":[{"start":[19,11],"name":"../../../support/bower_components/purescript-type-equality/src/Type/Equality.purs","end":[19,17]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[19,11],"name":"../../../support/bower_components/purescript-type-equality/src/Type/Equality.purs","end":[19,17]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[19,13],"name":"../../../support/bower_components/purescript-type-equality/src/Type/Equality.purs","end":[19,15]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[19,11],"name":"../../../support/bower_components/purescript-type-equality/src/Type/Equality.purs","end":[19,12]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[19,16],"name":"../../../support/bower_components/purescript-type-equality/src/Type/Equality.purs","end":[19,17]},[]],"tag":"TypeVar","contents":"a"}]}]],"edClassConstraints":[],"edFunctionalDependencies":[{"determiners":[0],"determined":[1]},{"determiners":[1],"determined":[0]}]}},{"EDValue":{"edValueName":{"Ident":"to"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["Type","Equality"],"TypeEquals"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"a"},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"b"}],"constraintData":null},{"annotation":[{"start":[18,9],"name":"../../../support/bower_components/purescript-type-equality/src/Type/Equality.purs","end":[18,15]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,9],"name":"../../../support/bower_components/purescript-type-equality/src/Type/Equality.purs","end":[18,15]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,11],"name":"../../../support/bower_components/purescript-type-equality/src/Type/Equality.purs","end":[18,13]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[18,9],"name":"../../../support/bower_components/purescript-type-equality/src/Type/Equality.purs","end":[18,10]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[18,14],"name":"../../../support/bower_components/purescript-type-equality/src/Type/Equality.purs","end":[18,15]},[]],"tag":"TypeVar","contents":"b"}]}]},0]},1]}}},{"EDValue":{"edValueName":{"Ident":"from"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["Type","Equality"],"TypeEquals"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"a"},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"b"}],"constraintData":null},{"annotation":[{"start":[19,11],"name":"../../../support/bower_components/purescript-type-equality/src/Type/Equality.purs","end":[19,17]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[19,11],"name":"../../../support/bower_components/purescript-type-equality/src/Type/Equality.purs","end":[19,17]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[19,13],"name":"../../../support/bower_components/purescript-type-equality/src/Type/Equality.purs","end":[19,15]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[19,11],"name":"../../../support/bower_components/purescript-type-equality/src/Type/Equality.purs","end":[19,12]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[19,16],"name":"../../../support/bower_components/purescript-type-equality/src/Type/Equality.purs","end":[19,17]},[]],"tag":"TypeVar","contents":"a"}]}]},4]},5]}}},{"EDInstance":{"edInstanceClassName":[["Type","Equality"],"TypeEquals"],"edInstanceName":{"Ident":"refl"},"edInstanceTypes":[{"annotation":[{"start":[21,29],"name":"../../../support/bower_components/purescript-type-equality/src/Type/Equality.purs","end":[21,30]},[]],"tag":"TypeVar","contents":"a"},{"annotation":[{"start":[21,31],"name":"../../../support/bower_components/purescript-type-equality/src/Type/Equality.purs","end":[21,32]},[]],"tag":"TypeVar","contents":"a"}],"edInstanceConstraints":[],"edInstanceChain":[[["Type","Equality"],{"Ident":"refl"}]],"edInstanceChainIndex":0}}],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-type-equality/src/Type/Equality.purs","end":[23,13]}}
diff --git a/tests/purs/publish/basic-example/output/Type.Prelude/docs.json b/tests/purs/publish/basic-example/output/Type.Prelude/docs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Type.Prelude/docs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"reExports":[],"name":"Type.Prelude","comments":null,"declarations":[]}
diff --git a/tests/purs/publish/basic-example/output/Type.Prelude/externs.json b/tests/purs/publish/basic-example/output/Type.Prelude/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Type.Prelude/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Type","Prelude"],"efExports":[{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Prelude.purs","end":[15,102]},{"exportSourceImportedFrom":["Type","Data","Boolean"],"exportSourceDefinedIn":["Type","Data","Boolean"]},{"TypeRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Prelude.purs","end":[15,102]},"BProxy",["BProxy"]]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Prelude.purs","end":[15,102]},{"exportSourceImportedFrom":["Type","Data","Ordering"],"exportSourceDefinedIn":["Prim","Ordering"]},{"TypeRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Prelude.purs","end":[15,102]},"EQ",[]]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Prelude.purs","end":[15,102]},{"exportSourceImportedFrom":["Type","Data","Boolean"],"exportSourceDefinedIn":["Type","Data","Boolean"]},{"TypeRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Prelude.purs","end":[15,102]},"False",[]]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Prelude.purs","end":[15,102]},{"exportSourceImportedFrom":["Type","Data","Ordering"],"exportSourceDefinedIn":["Prim","Ordering"]},{"TypeRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Prelude.purs","end":[15,102]},"GT",[]]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Prelude.purs","end":[15,102]},{"exportSourceImportedFrom":["Type","Data","Ordering"],"exportSourceDefinedIn":["Prim","Ordering"]},{"TypeRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Prelude.purs","end":[15,102]},"LT",[]]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Prelude.purs","end":[15,102]},{"exportSourceImportedFrom":["Type","Data","Ordering"],"exportSourceDefinedIn":["Type","Data","Ordering"]},{"TypeRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Prelude.purs","end":[15,102]},"OProxy",["OProxy"]]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Prelude.purs","end":[15,102]},{"exportSourceImportedFrom":["Type","Proxy"],"exportSourceDefinedIn":["Type","Proxy"]},{"TypeRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Prelude.purs","end":[15,102]},"Proxy",["Proxy"]]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Prelude.purs","end":[15,102]},{"exportSourceImportedFrom":["Type","Row"],"exportSourceDefinedIn":["Type","Row"]},{"TypeRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Prelude.purs","end":[15,102]},"RLProxy",["RLProxy"]]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Prelude.purs","end":[15,102]},{"exportSourceImportedFrom":["Type","Row"],"exportSourceDefinedIn":["Type","Row"]},{"TypeRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Prelude.purs","end":[15,102]},"RProxy",["RProxy"]]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Prelude.purs","end":[15,102]},{"exportSourceImportedFrom":["Type","Data","Symbol"],"exportSourceDefinedIn":["Data","Symbol"]},{"TypeRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Prelude.purs","end":[15,102]},"SProxy",["SProxy"]]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Prelude.purs","end":[15,102]},{"exportSourceImportedFrom":["Type","Data","Boolean"],"exportSourceDefinedIn":["Type","Data","Boolean"]},{"TypeRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Prelude.purs","end":[15,102]},"True",[]]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Prelude.purs","end":[15,102]},{"exportSourceImportedFrom":["Type","Data","Symbol"],"exportSourceDefinedIn":["Prim","Symbol"]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Prelude.purs","end":[15,102]},"Append"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Prelude.purs","end":[15,102]},{"exportSourceImportedFrom":["Type","Data","Symbol"],"exportSourceDefinedIn":["Prim","Symbol"]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Prelude.purs","end":[15,102]},"Compare"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Prelude.purs","end":[15,102]},{"exportSourceImportedFrom":["Type","Data","Boolean"],"exportSourceDefinedIn":["Type","Data","Boolean"]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Prelude.purs","end":[15,102]},"IsBoolean"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Prelude.purs","end":[15,102]},{"exportSourceImportedFrom":["Type","Data","Ordering"],"exportSourceDefinedIn":["Type","Data","Ordering"]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Prelude.purs","end":[15,102]},"IsOrdering"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Prelude.purs","end":[15,102]},{"exportSourceImportedFrom":["Type","Data","Symbol"],"exportSourceDefinedIn":["Data","Symbol"]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Prelude.purs","end":[15,102]},"IsSymbol"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Prelude.purs","end":[15,102]},{"exportSourceImportedFrom":["Type","Row"],"exportSourceDefinedIn":["Prim","Row"]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Prelude.purs","end":[15,102]},"Lacks"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Prelude.purs","end":[15,102]},{"exportSourceImportedFrom":["Type","Row"],"exportSourceDefinedIn":["Type","Row"]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Prelude.purs","end":[15,102]},"ListToRow"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Prelude.purs","end":[15,102]},{"exportSourceImportedFrom":["Type","Row"],"exportSourceDefinedIn":["Prim","RowList"]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Prelude.purs","end":[15,102]},"RowToList"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Prelude.purs","end":[15,102]},{"exportSourceImportedFrom":["Type","Equality"],"exportSourceDefinedIn":["Type","Equality"]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Prelude.purs","end":[15,102]},"TypeEquals"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Prelude.purs","end":[15,102]},{"exportSourceImportedFrom":["Type","Row"],"exportSourceDefinedIn":["Prim","Row"]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Prelude.purs","end":[15,102]},"Union"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Prelude.purs","end":[15,102]},{"exportSourceImportedFrom":["Type","Data","Symbol"],"exportSourceDefinedIn":["Type","Data","Symbol"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Prelude.purs","end":[15,102]},{"Ident":"append"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Prelude.purs","end":[15,102]},{"exportSourceImportedFrom":["Type","Data","Symbol"],"exportSourceDefinedIn":["Type","Data","Symbol"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Prelude.purs","end":[15,102]},{"Ident":"compare"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Prelude.purs","end":[15,102]},{"exportSourceImportedFrom":["Type","Equality"],"exportSourceDefinedIn":["Type","Equality"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Prelude.purs","end":[15,102]},{"Ident":"from"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Prelude.purs","end":[15,102]},{"exportSourceImportedFrom":["Type","Data","Boolean"],"exportSourceDefinedIn":["Type","Data","Boolean"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Prelude.purs","end":[15,102]},{"Ident":"reflectBoolean"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Prelude.purs","end":[15,102]},{"exportSourceImportedFrom":["Type","Data","Ordering"],"exportSourceDefinedIn":["Type","Data","Ordering"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Prelude.purs","end":[15,102]},{"Ident":"reflectOrdering"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Prelude.purs","end":[15,102]},{"exportSourceImportedFrom":["Type","Data","Symbol"],"exportSourceDefinedIn":["Data","Symbol"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Prelude.purs","end":[15,102]},{"Ident":"reflectSymbol"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Prelude.purs","end":[15,102]},{"exportSourceImportedFrom":["Type","Data","Boolean"],"exportSourceDefinedIn":["Type","Data","Boolean"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Prelude.purs","end":[15,102]},{"Ident":"reifyBoolean"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Prelude.purs","end":[15,102]},{"exportSourceImportedFrom":["Type","Data","Ordering"],"exportSourceDefinedIn":["Type","Data","Ordering"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Prelude.purs","end":[15,102]},{"Ident":"reifyOrdering"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Prelude.purs","end":[15,102]},{"exportSourceImportedFrom":["Type","Data","Symbol"],"exportSourceDefinedIn":["Data","Symbol"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Prelude.purs","end":[15,102]},{"Ident":"reifySymbol"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Prelude.purs","end":[15,102]},{"exportSourceImportedFrom":["Type","Equality"],"exportSourceDefinedIn":["Type","Equality"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Prelude.purs","end":[15,102]},{"Ident":"to"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Prelude.purs","end":[15,102]},{"exportSourceImportedFrom":["Type","Data","Boolean"],"exportSourceDefinedIn":["Type","Data","Boolean"]},{"KindRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Prelude.purs","end":[15,102]},"Boolean"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Prelude.purs","end":[15,102]},{"exportSourceImportedFrom":["Type","Data","Ordering"],"exportSourceDefinedIn":["Prim","Ordering"]},{"KindRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Prelude.purs","end":[15,102]},"Ordering"]}]},{"ModuleRef":[{"start":[2,5],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Prelude.purs","end":[2,29]},["Type","Data","Boolean"]]},{"ModuleRef":[{"start":[3,5],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Prelude.purs","end":[3,30]},["Type","Data","Ordering"]]},{"ModuleRef":[{"start":[4,5],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Prelude.purs","end":[4,28]},["Type","Data","Symbol"]]},{"ModuleRef":[{"start":[5,5],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Prelude.purs","end":[5,25]},["Type","Equality"]]},{"ModuleRef":[{"start":[6,5],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Prelude.purs","end":[6,22]},["Type","Proxy"]]},{"ModuleRef":[{"start":[7,5],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Prelude.purs","end":[7,20]},["Type","Row"]]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Type","Data","Boolean"],"eiImportType":{"Explicit":[{"KindRef":[{"start":[10,27],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Prelude.purs","end":[10,39]},"Boolean"]},{"TypeRef":[{"start":[10,41],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Prelude.purs","end":[10,45]},"True",[]]},{"TypeRef":[{"start":[10,47],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Prelude.purs","end":[10,52]},"False",[]]},{"TypeRef":[{"start":[10,54],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Prelude.purs","end":[10,64]},"BProxy",null]},{"TypeClassRef":[{"start":[10,66],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Prelude.purs","end":[10,81]},"IsBoolean"]},{"ValueRef":[{"start":[10,83],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Prelude.purs","end":[10,97]},{"Ident":"reflectBoolean"}]},{"ValueRef":[{"start":[10,99],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Prelude.purs","end":[10,111]},{"Ident":"reifyBoolean"}]}]},"eiImportedAs":null},{"eiModule":["Type","Data","Ordering"],"eiImportType":{"Explicit":[{"KindRef":[{"start":[11,28],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Prelude.purs","end":[11,41]},"Ordering"]},{"TypeRef":[{"start":[11,43],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Prelude.purs","end":[11,45]},"LT",[]]},{"TypeRef":[{"start":[11,47],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Prelude.purs","end":[11,49]},"EQ",[]]},{"TypeRef":[{"start":[11,51],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Prelude.purs","end":[11,53]},"GT",[]]},{"TypeRef":[{"start":[11,55],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Prelude.purs","end":[11,65]},"OProxy",null]},{"TypeClassRef":[{"start":[11,67],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Prelude.purs","end":[11,83]},"IsOrdering"]},{"ValueRef":[{"start":[11,85],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Prelude.purs","end":[11,100]},{"Ident":"reflectOrdering"}]},{"ValueRef":[{"start":[11,102],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Prelude.purs","end":[11,115]},{"Ident":"reifyOrdering"}]}]},"eiImportedAs":null},{"eiModule":["Type","Proxy"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[12,20],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Prelude.purs","end":[12,29]},"Proxy",null]}]},"eiImportedAs":null},{"eiModule":["Type","Data","Symbol"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[13,26],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Prelude.purs","end":[13,36]},"SProxy",null]},{"TypeClassRef":[{"start":[13,38],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Prelude.purs","end":[13,52]},"IsSymbol"]},{"ValueRef":[{"start":[13,54],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Prelude.purs","end":[13,67]},{"Ident":"reflectSymbol"}]},{"ValueRef":[{"start":[13,69],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Prelude.purs","end":[13,80]},{"Ident":"reifySymbol"}]},{"TypeClassRef":[{"start":[13,82],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Prelude.purs","end":[13,95]},"Compare"]},{"ValueRef":[{"start":[13,97],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Prelude.purs","end":[13,104]},{"Ident":"compare"}]},{"TypeClassRef":[{"start":[13,106],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Prelude.purs","end":[13,118]},"Append"]},{"ValueRef":[{"start":[13,120],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Prelude.purs","end":[13,126]},{"Ident":"append"}]}]},"eiImportedAs":null},{"eiModule":["Type","Equality"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[14,23],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Prelude.purs","end":[14,39]},"TypeEquals"]},{"ValueRef":[{"start":[14,41],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Prelude.purs","end":[14,45]},{"Ident":"from"}]},{"ValueRef":[{"start":[14,47],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Prelude.purs","end":[14,49]},{"Ident":"to"}]}]},"eiImportedAs":null},{"eiModule":["Type","Row"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[15,18],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Prelude.purs","end":[15,29]},"Union"]},{"TypeClassRef":[{"start":[15,31],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Prelude.purs","end":[15,42]},"Lacks"]},{"TypeClassRef":[{"start":[15,44],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Prelude.purs","end":[15,59]},"RowToList"]},{"TypeClassRef":[{"start":[15,61],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Prelude.purs","end":[15,76]},"ListToRow"]},{"TypeRef":[{"start":[15,78],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Prelude.purs","end":[15,88]},"RProxy",null]},{"TypeRef":[{"start":[15,90],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Prelude.purs","end":[15,101]},"RLProxy",null]}]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Prelude.purs","end":[15,102]}}
diff --git a/tests/purs/publish/basic-example/output/Type.Proxy/docs.json b/tests/purs/publish/basic-example/output/Type.Proxy/docs.json
--- a/tests/purs/publish/basic-example/output/Type.Proxy/docs.json
+++ b/tests/purs/publish/basic-example/output/Type.Proxy/docs.json
@@ -1,1 +1,1 @@
-{"reExports":[],"name":"Type.Proxy","comments":"The `Proxy` type and values are for situations where type information is\nrequired for an input to determine the type of an output, but where it is\nnot possible or convenient to provide a _value_ for the input.\n\nA hypothetical example: if you have a class that is used to handle the\nresult of an AJAX request, you may want to use this information to set the\nexpected content type of the request, so you might have a class something\nlike this:\n\n``` purescript\nclass AjaxResponse a where\n  responseType :: a -> ResponseType\n  fromResponse :: Foreign -> a\n```\n\nThe problem here is `responseType` requires a value of type `a`, but we\nwon't have a value of that type until the request has been completed. The\nsolution is to use a `Proxy` type instead:\n\n``` purescript\nclass AjaxResponse a where\n  responseType :: Proxy a -> ResponseType\n  fromResponse :: Foreign -> a\n```\n\nWe can now call `responseType (Proxy :: Proxy SomeContentType)` to produce\na `ResponseType` for `SomeContentType` without having to construct some\nempty version of `SomeContentType` first. In situations like this where\nthe `Proxy` type can be statically determined, it is recommended to pull\nout the definition to the top level and make a declaration like:\n\n``` purescript\n_SomeContentType :: Proxy SomeContentType\n_SomeContentType = Proxy\n```\n\nThat way the proxy value can be used as `responseType _SomeContentType`\nfor improved readability. However, this is not always possible, sometimes\nthe type required will be determined by a type variable. As PureScript has\nscoped type variables, we can do things like this:\n\n``` purescript\nmakeRequest :: URL -> ResponseType -> Aff _ Foreign\nmakeRequest = ...\n\nfetchData :: forall a. (AjaxResponse a) => URL -> Aff _ a\nfetchData url = fromResponse <$> makeRequest url (responseType (Proxy :: Proxy a))\n```\n","declarations":[{"children":[{"comments":null,"title":"Proxy","info":{"arguments":[],"declType":"dataConstructor"},"sourceSpan":null},{"comments":null,"title":"eqProxy","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Eq"],"Eq"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[56,1],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[56,40]}},{"comments":null,"title":"functorProxy","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Functor"],"Functor"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy"]}]}},"sourceSpan":{"start":[58,1],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[58,46]}},{"comments":null,"title":"ordProxy","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord"],"Ord"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[60,1],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[60,42]}},{"comments":null,"title":"applicativeProxy","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Applicative"],"Applicative"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy"]}]}},"sourceSpan":{"start":[62,1],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[63,17]}},{"comments":null,"title":"applyProxy","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Apply"],"Apply"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy"]}]}},"sourceSpan":{"start":[65,1],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[66,20]}},{"comments":null,"title":"bindProxy","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Bind"],"Bind"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy"]}]}},"sourceSpan":{"start":[68,1],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[69,19]}},{"comments":null,"title":"booleanAlgebraProxy","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","BooleanAlgebra"],"BooleanAlgebra"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[71,1],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[71,57]}},{"comments":null,"title":"boundedProxy","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Bounded"],"Bounded"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[73,1],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[75,14]}},{"comments":null,"title":"commutativeRingProxy","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","CommutativeRing"],"CommutativeRing"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[77,1],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[77,59]}},{"comments":null,"title":"discardProxy","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Bind"],"Discard"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[79,1],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[80,17]}},{"comments":null,"title":"heytingAlgebraProxy","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","HeytingAlgebra"],"HeytingAlgebra"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[82,1],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[88,13]}},{"comments":null,"title":"monadProxy","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Monad"],"Monad"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy"]}]}},"sourceSpan":{"start":[90,1],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[90,35]}},{"comments":null,"title":"ringProxy","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ring"],"Ring"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[92,1],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[93,18]}},{"comments":null,"title":"semigroupProxy","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup"],"Semigroup"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[95,1],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[96,21]}},{"comments":null,"title":"semiringProxy","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semiring"],"Semiring"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[98,1],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[102,15]}},{"comments":null,"title":"showProxy","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Show"],"Show"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[104,1],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[105,19]}}],"comments":"Value proxy for kind `Type` types.\n","title":"Proxy","info":{"declType":"data","dataDeclType":"data","typeArguments":[["a",null]]},"sourceSpan":{"start":[54,1],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[54,21]}},{"children":[{"comments":null,"title":"Proxy2","info":{"arguments":[],"declType":"dataConstructor"},"sourceSpan":null},{"comments":null,"title":"eqProxy2","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Eq"],"Eq"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy2"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[110,1],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[110,42]}},{"comments":null,"title":"ordProxy2","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord"],"Ord"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy2"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[112,1],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[112,44]}},{"comments":null,"title":"booleanAlgebraProxy2","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","BooleanAlgebra"],"BooleanAlgebra"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy2"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[114,1],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[114,59]}},{"comments":null,"title":"boundedProxy2","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Bounded"],"Bounded"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy2"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[116,1],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[118,15]}},{"comments":null,"title":"commutativeRingProxy2","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","CommutativeRing"],"CommutativeRing"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy2"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[120,1],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[120,61]}},{"comments":null,"title":"discardProxy2","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Bind"],"Discard"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy2"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[122,1],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[123,17]}},{"comments":null,"title":"heytingAlgebraProxy2","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","HeytingAlgebra"],"HeytingAlgebra"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy2"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[125,1],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[131,14]}},{"comments":null,"title":"ringProxy2","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ring"],"Ring"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy2"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[133,1],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[134,19]}},{"comments":null,"title":"semigroupProxy2","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup"],"Semigroup"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy2"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[136,1],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[137,22]}},{"comments":null,"title":"semiringProxy2","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semiring"],"Semiring"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy2"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[139,1],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[143,16]}},{"comments":null,"title":"showProxy2","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Show"],"Show"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy2"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[145,1],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[146,20]}}],"comments":"Value proxy for kind `Type -> Type` types.\n","title":"Proxy2","info":{"declType":"data","dataDeclType":"data","typeArguments":[["a",{"annotation":[],"tag":"FunKind","contents":[{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]]},"sourceSpan":{"start":[108,1],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[108,41]}},{"children":[{"comments":null,"title":"Proxy3","info":{"arguments":[],"declType":"dataConstructor"},"sourceSpan":null},{"comments":null,"title":"eqProxy3","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Eq"],"Eq"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy3"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[151,1],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[151,42]}},{"comments":null,"title":"ordProxy3","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ord"],"Ord"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy3"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[153,1],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[153,44]}},{"comments":null,"title":"booleanAlgebraProxy3","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","BooleanAlgebra"],"BooleanAlgebra"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy3"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[155,1],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[155,59]}},{"comments":null,"title":"boundedProxy3","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Bounded"],"Bounded"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy3"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[157,1],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[159,15]}},{"comments":null,"title":"commutativeRingProxy3","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","CommutativeRing"],"CommutativeRing"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy3"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[161,1],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[161,61]}},{"comments":null,"title":"discardProxy3","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Bind"],"Discard"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy3"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[163,1],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[164,17]}},{"comments":null,"title":"heytingAlgebraProxy3","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","HeytingAlgebra"],"HeytingAlgebra"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy3"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[166,1],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[172,14]}},{"comments":null,"title":"ringProxy3","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Ring"],"Ring"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy3"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[174,1],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[175,19]}},{"comments":null,"title":"semigroupProxy3","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semigroup"],"Semigroup"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy3"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[177,1],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[178,22]}},{"comments":null,"title":"semiringProxy3","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Semiring"],"Semiring"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy3"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[180,1],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[184,16]}},{"comments":null,"title":"showProxy3","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Show"],"Show"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy3"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}},"sourceSpan":{"start":[186,1],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[187,20]}}],"comments":"Value proxy for kind `Type -> Type -> Type` types.\n","title":"Proxy3","info":{"declType":"data","dataDeclType":"data","typeArguments":[["a",{"annotation":[],"tag":"FunKind","contents":[{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[],"tag":"FunKind","contents":[{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]}]]},"sourceSpan":{"start":[149,1],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[149,49]}}]}
+{"comments":"The `Proxy` type and values are for situations where type information is\nrequired for an input to determine the type of an output, but where it is\nnot possible or convenient to provide a _value_ for the input.\n\nA hypothetical example: if you have a class that is used to handle the\nresult of an AJAX request, you may want to use this information to set the\nexpected content type of the request, so you might have a class something\nlike this:\n\n``` purescript\nclass AjaxResponse a where\n  responseType :: a -> ResponseType\n  fromResponse :: Foreign -> a\n```\n\nThe problem here is `responseType` requires a value of type `a`, but we\nwon't have a value of that type until the request has been completed. The\nsolution is to use a `Proxy` type instead:\n\n``` purescript\nclass AjaxResponse a where\n  responseType :: Proxy a -> ResponseType\n  fromResponse :: Foreign -> a\n```\n\nWe can now call `responseType (Proxy :: Proxy SomeContentType)` to produce\na `ResponseType` for `SomeContentType` without having to construct some\nempty version of `SomeContentType` first. In situations like this where\nthe `Proxy` type can be statically determined, it is recommended to pull\nout the definition to the top level and make a declaration like:\n\n``` purescript\n_SomeContentType :: Proxy SomeContentType\n_SomeContentType = Proxy\n```\n\nThat way the proxy value can be used as `responseType _SomeContentType`\nfor improved readability. However, this is not always possible, sometimes\nthe type required will be determined by a type variable. As PureScript has\nscoped type variables, we can do things like this:\n\n``` purescript\nmakeRequest :: URL -> ResponseType -> Aff _ Foreign\nmakeRequest = ...\n\nfetchData :: forall a. (AjaxResponse a) => URL -> Aff _ a\nfetchData url = fromResponse <$> makeRequest url (responseType (Proxy :: Proxy a))\n```\n","declarations":[{"children":[{"comments":null,"info":{"arguments":[],"declType":"dataConstructor"},"sourceSpan":{"end":[53,21],"name":"../../../support/bower_components/purescript-prelude/src/Type/Proxy.purs","start":[53,14]},"title":"Proxy"}],"comments":"Proxy type for all `kind`s.\n","info":{"dataDeclType":"data","declType":"data","roles":["Phantom"],"typeArguments":[["a",null]]},"kind":{"keyword":"data","kind":{"annotation":[],"contents":{"identifier":"k","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"k","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"sourceSpan":{"end":[53,21],"name":"../../../support/bower_components/purescript-prelude/src/Type/Proxy.purs","start":[53,1]},"title":"Proxy"}],"name":"Type.Proxy","reExports":[]}
diff --git a/tests/purs/publish/basic-example/output/Type.Proxy/externs.json b/tests/purs/publish/basic-example/output/Type.Proxy/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Type.Proxy/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Type","Proxy"],"efExports":[{"TypeRef":[{"start":[49,1],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[187,20]},"Proxy",["Proxy"]]},{"TypeRef":[{"start":[49,1],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[187,20]},"Proxy2",["Proxy2"]]},{"TypeRef":[{"start":[49,1],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[187,20]},"Proxy3",["Proxy3"]]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"eqProxy"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"functorProxy"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"ordProxy"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"applicativeProxy"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"applyProxy"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"bindProxy"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"booleanAlgebraProxy"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"boundedProxy"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"commutativeRingProxy"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"discardProxy"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"heytingAlgebraProxy"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"monadProxy"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"ringProxy"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"semigroupProxy"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"semiringProxy"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"showProxy"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"eqProxy2"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"ordProxy2"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"booleanAlgebraProxy2"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"boundedProxy2"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"commutativeRingProxy2"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"discardProxy2"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"heytingAlgebraProxy2"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"ringProxy2"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"semigroupProxy2"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"semiringProxy2"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"showProxy2"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"eqProxy3"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"ordProxy3"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"booleanAlgebraProxy3"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"boundedProxy3"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"commutativeRingProxy3"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"discardProxy3"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"heytingAlgebraProxy3"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"ringProxy3"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"semigroupProxy3"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"semiringProxy3"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"showProxy3"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Prelude"],"eiImportType":{"Implicit":[]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDType":{"edTypeName":"Proxy","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},"edTypeDeclarationKind":{"DataType":{"args":[["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]],"ctors":[["Proxy",[]]]}}}},{"EDDataConstructor":{"edDataCtorName":"Proxy","edDataCtorOrigin":"data","edDataCtorTypeCtor":"Proxy","edDataCtorType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"a"}]},null]},"edDataCtorFields":[]}},{"EDType":{"edTypeName":"Proxy2","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[108,19],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[108,31]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[108,19],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[108,23]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[108,27],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[108,31]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},"edTypeDeclarationKind":{"DataType":{"args":[["a",{"annotation":[{"start":[108,19],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[108,31]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[108,19],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[108,23]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[108,27],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[108,31]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]],"ctors":[["Proxy2",[]]]}}}},{"EDDataConstructor":{"edDataCtorName":"Proxy2","edDataCtorOrigin":"data","edDataCtorTypeCtor":"Proxy2","edDataCtorType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy2"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"a"}]},null]},"edDataCtorFields":[]}},{"EDType":{"edTypeName":"Proxy3","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[149,19],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[149,39]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[149,19],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[149,23]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[149,27],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[149,39]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[149,27],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[149,31]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[149,35],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[149,39]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},"edTypeDeclarationKind":{"DataType":{"args":[["a",{"annotation":[{"start":[149,19],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[149,39]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[149,19],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[149,23]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[149,27],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[149,39]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[149,27],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[149,31]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[149,35],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[149,39]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]}]],"ctors":[["Proxy3",[]]]}}}},{"EDDataConstructor":{"edDataCtorName":"Proxy3","edDataCtorOrigin":"data","edDataCtorTypeCtor":"Proxy3","edDataCtorType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy3"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"a"}]},null]},"edDataCtorFields":[]}},{"EDInstance":{"edInstanceClassName":[["Data","Eq"],"Eq"],"edInstanceName":{"Ident":"eqProxy"},"edInstanceTypes":[{"annotation":[{"start":[56,32],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[56,39]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[56,32],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[56,37]},[]],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy"]},{"annotation":[{"start":[56,38],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[56,39]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[],"edInstanceChain":[[["Type","Proxy"],{"Ident":"eqProxy"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Functor"],"Functor"],"edInstanceName":{"Ident":"functorProxy"},"edInstanceTypes":[{"annotation":[{"start":[58,41],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[58,46]},[]],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Type","Proxy"],{"Ident":"functorProxy"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Ord"],"Ord"],"edInstanceName":{"Ident":"ordProxy"},"edInstanceTypes":[{"annotation":[{"start":[60,34],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[60,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[60,34],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[60,39]},[]],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy"]},{"annotation":[{"start":[60,40],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[60,41]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[],"edInstanceChain":[[["Type","Proxy"],{"Ident":"ordProxy"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Applicative"],"Applicative"],"edInstanceName":{"Ident":"applicativeProxy"},"edInstanceTypes":[{"annotation":[{"start":[62,42],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[62,47]},[]],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Type","Proxy"],{"Ident":"applicativeProxy"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Apply"],"Apply"],"edInstanceName":{"Ident":"applyProxy"},"edInstanceTypes":[{"annotation":[{"start":[65,30],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[65,35]},[]],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Type","Proxy"],{"Ident":"applyProxy"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Bind"],"Bind"],"edInstanceName":{"Ident":"bindProxy"},"edInstanceTypes":[{"annotation":[{"start":[68,28],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[68,33]},[]],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Type","Proxy"],{"Ident":"bindProxy"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","BooleanAlgebra"],"BooleanAlgebra"],"edInstanceName":{"Ident":"booleanAlgebraProxy"},"edInstanceTypes":[{"annotation":[{"start":[71,49],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[71,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[71,49],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[71,54]},[]],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy"]},{"annotation":[{"start":[71,55],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[71,56]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[],"edInstanceChain":[[["Type","Proxy"],{"Ident":"booleanAlgebraProxy"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Bounded"],"Bounded"],"edInstanceName":{"Ident":"boundedProxy"},"edInstanceTypes":[{"annotation":[{"start":[73,35],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[73,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[73,35],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[73,40]},[]],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy"]},{"annotation":[{"start":[73,41],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[73,42]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[],"edInstanceChain":[[["Type","Proxy"],{"Ident":"boundedProxy"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","CommutativeRing"],"CommutativeRing"],"edInstanceName":{"Ident":"commutativeRingProxy"},"edInstanceTypes":[{"annotation":[{"start":[77,51],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[77,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[77,51],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[77,56]},[]],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy"]},{"annotation":[{"start":[77,57],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[77,58]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[],"edInstanceChain":[[["Type","Proxy"],{"Ident":"commutativeRingProxy"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Bind"],"Discard"],"edInstanceName":{"Ident":"discardProxy"},"edInstanceTypes":[{"annotation":[{"start":[79,35],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[79,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[79,35],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[79,40]},[]],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy"]},{"annotation":[{"start":[79,41],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[79,42]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[],"edInstanceChain":[[["Type","Proxy"],{"Ident":"discardProxy"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","HeytingAlgebra"],"HeytingAlgebra"],"edInstanceName":{"Ident":"heytingAlgebraProxy"},"edInstanceTypes":[{"annotation":[{"start":[82,49],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[82,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[82,49],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[82,54]},[]],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy"]},{"annotation":[{"start":[82,55],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[82,56]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[],"edInstanceChain":[[["Type","Proxy"],{"Ident":"heytingAlgebraProxy"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Monad"],"Monad"],"edInstanceName":{"Ident":"monadProxy"},"edInstanceTypes":[{"annotation":[{"start":[90,30],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[90,35]},[]],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Type","Proxy"],{"Ident":"monadProxy"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Ring"],"Ring"],"edInstanceName":{"Ident":"ringProxy"},"edInstanceTypes":[{"annotation":[{"start":[92,29],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[92,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[92,29],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[92,34]},[]],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy"]},{"annotation":[{"start":[92,35],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[92,36]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[],"edInstanceChain":[[["Type","Proxy"],{"Ident":"ringProxy"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Semigroup"],"Semigroup"],"edInstanceName":{"Ident":"semigroupProxy"},"edInstanceTypes":[{"annotation":[{"start":[95,39],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[95,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[95,39],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[95,44]},[]],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy"]},{"annotation":[{"start":[95,45],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[95,46]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[],"edInstanceChain":[[["Type","Proxy"],{"Ident":"semigroupProxy"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Semiring"],"Semiring"],"edInstanceName":{"Ident":"semiringProxy"},"edInstanceTypes":[{"annotation":[{"start":[98,37],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[98,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[98,37],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[98,42]},[]],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy"]},{"annotation":[{"start":[98,43],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[98,44]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[],"edInstanceChain":[[["Type","Proxy"],{"Ident":"semiringProxy"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Show"],"Show"],"edInstanceName":{"Ident":"showProxy"},"edInstanceTypes":[{"annotation":[{"start":[104,29],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[104,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[104,29],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[104,34]},[]],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy"]},{"annotation":[{"start":[104,35],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[104,36]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[],"edInstanceChain":[[["Type","Proxy"],{"Ident":"showProxy"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Eq"],"Eq"],"edInstanceName":{"Ident":"eqProxy2"},"edInstanceTypes":[{"annotation":[{"start":[110,33],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[110,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[110,33],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[110,39]},[]],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy2"]},{"annotation":[{"start":[110,40],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[110,41]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[],"edInstanceChain":[[["Type","Proxy"],{"Ident":"eqProxy2"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Ord"],"Ord"],"edInstanceName":{"Ident":"ordProxy2"},"edInstanceTypes":[{"annotation":[{"start":[112,35],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[112,43]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[112,35],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[112,41]},[]],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy2"]},{"annotation":[{"start":[112,42],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[112,43]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[],"edInstanceChain":[[["Type","Proxy"],{"Ident":"ordProxy2"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","BooleanAlgebra"],"BooleanAlgebra"],"edInstanceName":{"Ident":"booleanAlgebraProxy2"},"edInstanceTypes":[{"annotation":[{"start":[114,50],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[114,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[114,50],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[114,56]},[]],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy2"]},{"annotation":[{"start":[114,57],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[114,58]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[],"edInstanceChain":[[["Type","Proxy"],{"Ident":"booleanAlgebraProxy2"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Bounded"],"Bounded"],"edInstanceName":{"Ident":"boundedProxy2"},"edInstanceTypes":[{"annotation":[{"start":[116,36],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[116,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[116,36],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[116,42]},[]],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy2"]},{"annotation":[{"start":[116,43],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[116,44]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[],"edInstanceChain":[[["Type","Proxy"],{"Ident":"boundedProxy2"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","CommutativeRing"],"CommutativeRing"],"edInstanceName":{"Ident":"commutativeRingProxy2"},"edInstanceTypes":[{"annotation":[{"start":[120,52],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[120,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[120,52],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[120,58]},[]],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy2"]},{"annotation":[{"start":[120,59],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[120,60]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[],"edInstanceChain":[[["Type","Proxy"],{"Ident":"commutativeRingProxy2"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Bind"],"Discard"],"edInstanceName":{"Ident":"discardProxy2"},"edInstanceTypes":[{"annotation":[{"start":[122,36],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[122,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[122,36],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[122,42]},[]],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy2"]},{"annotation":[{"start":[122,43],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[122,44]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[],"edInstanceChain":[[["Type","Proxy"],{"Ident":"discardProxy2"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","HeytingAlgebra"],"HeytingAlgebra"],"edInstanceName":{"Ident":"heytingAlgebraProxy2"},"edInstanceTypes":[{"annotation":[{"start":[125,50],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[125,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[125,50],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[125,56]},[]],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy2"]},{"annotation":[{"start":[125,57],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[125,58]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[],"edInstanceChain":[[["Type","Proxy"],{"Ident":"heytingAlgebraProxy2"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Ring"],"Ring"],"edInstanceName":{"Ident":"ringProxy2"},"edInstanceTypes":[{"annotation":[{"start":[133,30],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[133,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[133,30],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[133,36]},[]],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy2"]},{"annotation":[{"start":[133,37],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[133,38]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[],"edInstanceChain":[[["Type","Proxy"],{"Ident":"ringProxy2"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Semigroup"],"Semigroup"],"edInstanceName":{"Ident":"semigroupProxy2"},"edInstanceTypes":[{"annotation":[{"start":[136,40],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[136,48]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[136,40],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[136,46]},[]],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy2"]},{"annotation":[{"start":[136,47],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[136,48]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[],"edInstanceChain":[[["Type","Proxy"],{"Ident":"semigroupProxy2"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Semiring"],"Semiring"],"edInstanceName":{"Ident":"semiringProxy2"},"edInstanceTypes":[{"annotation":[{"start":[139,38],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[139,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[139,38],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[139,44]},[]],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy2"]},{"annotation":[{"start":[139,45],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[139,46]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[],"edInstanceChain":[[["Type","Proxy"],{"Ident":"semiringProxy2"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Show"],"Show"],"edInstanceName":{"Ident":"showProxy2"},"edInstanceTypes":[{"annotation":[{"start":[145,30],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[145,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[145,30],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[145,36]},[]],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy2"]},{"annotation":[{"start":[145,37],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[145,38]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[],"edInstanceChain":[[["Type","Proxy"],{"Ident":"showProxy2"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Eq"],"Eq"],"edInstanceName":{"Ident":"eqProxy3"},"edInstanceTypes":[{"annotation":[{"start":[151,33],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[151,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[151,33],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[151,39]},[]],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy3"]},{"annotation":[{"start":[151,40],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[151,41]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[],"edInstanceChain":[[["Type","Proxy"],{"Ident":"eqProxy3"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Ord"],"Ord"],"edInstanceName":{"Ident":"ordProxy3"},"edInstanceTypes":[{"annotation":[{"start":[153,35],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[153,43]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[153,35],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[153,41]},[]],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy3"]},{"annotation":[{"start":[153,42],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[153,43]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[],"edInstanceChain":[[["Type","Proxy"],{"Ident":"ordProxy3"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","BooleanAlgebra"],"BooleanAlgebra"],"edInstanceName":{"Ident":"booleanAlgebraProxy3"},"edInstanceTypes":[{"annotation":[{"start":[155,50],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[155,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[155,50],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[155,56]},[]],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy3"]},{"annotation":[{"start":[155,57],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[155,58]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[],"edInstanceChain":[[["Type","Proxy"],{"Ident":"booleanAlgebraProxy3"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Bounded"],"Bounded"],"edInstanceName":{"Ident":"boundedProxy3"},"edInstanceTypes":[{"annotation":[{"start":[157,36],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[157,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[157,36],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[157,42]},[]],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy3"]},{"annotation":[{"start":[157,43],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[157,44]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[],"edInstanceChain":[[["Type","Proxy"],{"Ident":"boundedProxy3"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","CommutativeRing"],"CommutativeRing"],"edInstanceName":{"Ident":"commutativeRingProxy3"},"edInstanceTypes":[{"annotation":[{"start":[161,52],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[161,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[161,52],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[161,58]},[]],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy3"]},{"annotation":[{"start":[161,59],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[161,60]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[],"edInstanceChain":[[["Type","Proxy"],{"Ident":"commutativeRingProxy3"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Bind"],"Discard"],"edInstanceName":{"Ident":"discardProxy3"},"edInstanceTypes":[{"annotation":[{"start":[163,36],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[163,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[163,36],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[163,42]},[]],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy3"]},{"annotation":[{"start":[163,43],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[163,44]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[],"edInstanceChain":[[["Type","Proxy"],{"Ident":"discardProxy3"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","HeytingAlgebra"],"HeytingAlgebra"],"edInstanceName":{"Ident":"heytingAlgebraProxy3"},"edInstanceTypes":[{"annotation":[{"start":[166,50],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[166,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[166,50],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[166,56]},[]],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy3"]},{"annotation":[{"start":[166,57],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[166,58]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[],"edInstanceChain":[[["Type","Proxy"],{"Ident":"heytingAlgebraProxy3"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Ring"],"Ring"],"edInstanceName":{"Ident":"ringProxy3"},"edInstanceTypes":[{"annotation":[{"start":[174,30],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[174,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[174,30],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[174,36]},[]],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy3"]},{"annotation":[{"start":[174,37],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[174,38]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[],"edInstanceChain":[[["Type","Proxy"],{"Ident":"ringProxy3"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Semigroup"],"Semigroup"],"edInstanceName":{"Ident":"semigroupProxy3"},"edInstanceTypes":[{"annotation":[{"start":[177,40],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[177,48]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[177,40],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[177,46]},[]],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy3"]},{"annotation":[{"start":[177,47],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[177,48]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[],"edInstanceChain":[[["Type","Proxy"],{"Ident":"semigroupProxy3"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Semiring"],"Semiring"],"edInstanceName":{"Ident":"semiringProxy3"},"edInstanceTypes":[{"annotation":[{"start":[180,38],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[180,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[180,38],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[180,44]},[]],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy3"]},{"annotation":[{"start":[180,45],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[180,46]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[],"edInstanceChain":[[["Type","Proxy"],{"Ident":"semiringProxy3"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Data","Show"],"Show"],"edInstanceName":{"Ident":"showProxy3"},"edInstanceTypes":[{"annotation":[{"start":[186,30],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[186,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[186,30],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[186,36]},[]],"tag":"TypeConstructor","contents":[["Type","Proxy"],"Proxy3"]},{"annotation":[{"start":[186,37],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[186,38]},[]],"tag":"TypeVar","contents":"a"}]}],"edInstanceConstraints":[],"edInstanceChain":[[["Type","Proxy"],{"Ident":"showProxy3"}]],"edInstanceChainIndex":0}}],"efSourceSpan":{"start":[49,1],"name":"../../../support/bower_components/purescript-proxy/src/Type/Proxy.purs","end":[187,20]}}
diff --git a/tests/purs/publish/basic-example/output/Type.Row.Homogeneous/docs.json b/tests/purs/publish/basic-example/output/Type.Row.Homogeneous/docs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Type.Row.Homogeneous/docs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"reExports":[],"name":"Type.Row.Homogeneous","comments":null,"declarations":[{"children":[{"comments":null,"title":"homogeneous","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Prim","RowList"],"RowToList"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"row"},{"annotation":[],"tag":"TypeVar","contents":"fields"}],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Type","Row","Homogeneous"],"HomogeneousRowList"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"fields"},{"annotation":[],"tag":"TypeVar","contents":"fieldType"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Row","Homogeneous"],"Homogeneous"]},{"annotation":[],"tag":"TypeVar","contents":"row"}]},{"annotation":[],"tag":"TypeVar","contents":"fieldType"}]}},"sourceSpan":{"start":[11,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row/Homogeneous.purs","end":[14,31]}}],"comments":"Ensure that every field in a row has the same type.\n","title":"Homogeneous","info":{"fundeps":[[["row"],["fieldType"]]],"arguments":[["row",{"annotation":[],"tag":"Row","contents":{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]}}],["fieldType",null]],"declType":"typeClass","superclasses":[]},"sourceSpan":{"start":[10,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row/Homogeneous.purs","end":[10,63]}},{"children":[{"comments":null,"title":"homogeneousRowListCons","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Type","Row","Homogeneous"],"HomogeneousRowList"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"tail"},{"annotation":[],"tag":"TypeVar","contents":"fieldType"}],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Type","Equality"],"TypeEquals"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"fieldType"},{"annotation":[],"tag":"TypeVar","contents":"fieldType2"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Row","Homogeneous"],"HomogeneousRowList"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim","RowList"],"Cons"]},{"annotation":[],"tag":"TypeVar","contents":"symbol"}]},{"annotation":[],"tag":"TypeVar","contents":"fieldType"}]},{"annotation":[],"tag":"TypeVar","contents":"tail"}]}]},{"annotation":[],"tag":"TypeVar","contents":"fieldType2"}]}},"sourceSpan":{"start":[17,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row/Homogeneous.purs","end":[20,64]}},{"comments":null,"title":"homogeneousRowListNil","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Row","Homogeneous"],"HomogeneousRowList"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim","RowList"],"Nil"]}]},{"annotation":[],"tag":"TypeVar","contents":"fieldType"}]}},"sourceSpan":{"start":[21,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row/Homogeneous.purs","end":[21,67]}}],"comments":null,"title":"HomogeneousRowList","info":{"fundeps":[[["rowList"],["fieldType"]]],"arguments":[["rowList",{"annotation":[],"tag":"NamedKind","contents":[["Prim","RowList"],"RowList"]}],["fieldType",null]],"declType":"typeClass","superclasses":[]},"sourceSpan":{"start":[16,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row/Homogeneous.purs","end":[16,79]}}]}
diff --git a/tests/purs/publish/basic-example/output/Type.Row.Homogeneous/externs.json b/tests/purs/publish/basic-example/output/Type.Row.Homogeneous/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Type.Row.Homogeneous/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Type","Row","Homogeneous"],"efExports":[{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row/Homogeneous.purs","end":[21,67]},"Homogeneous"]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row/Homogeneous.purs","end":[21,67]},"HomogeneousRowList"]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"homogeneous"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"homogeneousRowListCons"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"homogeneousRowListNil"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Type","Equality"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[6,23],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row/Homogeneous.purs","end":[6,39]},"TypeEquals"]}]},"eiImportedAs":null},{"eiModule":["Type","Row"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[7,18],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row/Homogeneous.purs","end":[7,33]},"RowToList"]},{"TypeRef":[{"start":[7,35],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row/Homogeneous.purs","end":[7,39]},"Cons",[]]},{"TypeRef":[{"start":[7,41],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row/Homogeneous.purs","end":[7,44]},"Nil",[]]},{"KindRef":[{"start":[7,46],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row/Homogeneous.purs","end":[7,58]},"RowList"]}]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDType":{"edTypeName":"Homogeneous","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[10,27],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row/Homogeneous.purs","end":[10,33]},[]],"tag":"Row","contents":{"annotation":[{"start":[10,29],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row/Homogeneous.purs","end":[10,33]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"Homogeneous","edTypeSynonymArguments":[["row",{"annotation":[{"start":[10,27],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row/Homogeneous.purs","end":[10,33]},[]],"tag":"Row","contents":{"annotation":[{"start":[10,29],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row/Homogeneous.purs","end":[10,33]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}}],["fieldType",null]],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}}},{"EDClass":{"edClassName":"Homogeneous","edClassTypeArguments":[["row",{"annotation":[{"start":[10,27],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row/Homogeneous.purs","end":[10,33]},[]],"tag":"Row","contents":{"annotation":[{"start":[10,29],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row/Homogeneous.purs","end":[10,33]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}}],["fieldType",null]],"edClassMembers":[],"edClassConstraints":[],"edFunctionalDependencies":[{"determiners":[0],"determined":[1]}]}},{"EDType":{"edTypeName":"HomogeneousRowList","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[16,38],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row/Homogeneous.purs","end":[16,45]},[]],"tag":"NamedKind","contents":[["Prim","RowList"],"RowList"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"HomogeneousRowList","edTypeSynonymArguments":[["rowList",{"annotation":[{"start":[16,38],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row/Homogeneous.purs","end":[16,45]},[]],"tag":"NamedKind","contents":[["Prim","RowList"],"RowList"]}],["fieldType",null]],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}}},{"EDClass":{"edClassName":"HomogeneousRowList","edClassTypeArguments":[["rowList",{"annotation":[{"start":[16,38],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row/Homogeneous.purs","end":[16,45]},[]],"tag":"NamedKind","contents":[["Prim","RowList"],"RowList"]}],["fieldType",null]],"edClassMembers":[],"edClassConstraints":[],"edFunctionalDependencies":[{"determiners":[0],"determined":[1]}]}},{"EDInstance":{"edInstanceClassName":[["Type","Row","Homogeneous"],"Homogeneous"],"edInstanceName":{"Ident":"homogeneous"},"edInstanceTypes":[{"annotation":[{"start":[14,18],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row/Homogeneous.purs","end":[14,21]},[]],"tag":"TypeVar","contents":"row"},{"annotation":[{"start":[14,22],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row/Homogeneous.purs","end":[14,31]},[]],"tag":"TypeVar","contents":"fieldType"}],"edInstanceConstraints":[{"constraintAnn":[{"start":[12,8],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row/Homogeneous.purs","end":[12,28]},[]],"constraintClass":[["Prim","RowList"],"RowToList"],"constraintArgs":[{"annotation":[{"start":[12,18],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row/Homogeneous.purs","end":[12,21]},[]],"tag":"TypeVar","contents":"row"},{"annotation":[{"start":[12,22],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row/Homogeneous.purs","end":[12,28]},[]],"tag":"TypeVar","contents":"fields"}],"constraintData":null},{"constraintAnn":[{"start":[13,8],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row/Homogeneous.purs","end":[13,43]},[]],"constraintClass":[["Type","Row","Homogeneous"],"HomogeneousRowList"],"constraintArgs":[{"annotation":[{"start":[13,27],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row/Homogeneous.purs","end":[13,33]},[]],"tag":"TypeVar","contents":"fields"},{"annotation":[{"start":[13,34],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row/Homogeneous.purs","end":[13,43]},[]],"tag":"TypeVar","contents":"fieldType"}],"constraintData":null}],"edInstanceChain":[[["Type","Row","Homogeneous"],{"Ident":"homogeneous"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Type","Row","Homogeneous"],"HomogeneousRowList"],"edInstanceName":{"Ident":"homogeneousRowListCons"},"edInstanceTypes":[{"annotation":[{"start":[20,26],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row/Homogeneous.purs","end":[20,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[20,26],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row/Homogeneous.purs","end":[20,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[20,26],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row/Homogeneous.purs","end":[20,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[20,26],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row/Homogeneous.purs","end":[20,30]},[]],"tag":"TypeConstructor","contents":[["Prim","RowList"],"Cons"]},{"annotation":[{"start":[20,31],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row/Homogeneous.purs","end":[20,37]},[]],"tag":"TypeVar","contents":"symbol"}]},{"annotation":[{"start":[20,38],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row/Homogeneous.purs","end":[20,47]},[]],"tag":"TypeVar","contents":"fieldType"}]},{"annotation":[{"start":[20,48],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row/Homogeneous.purs","end":[20,52]},[]],"tag":"TypeVar","contents":"tail"}]},{"annotation":[{"start":[20,54],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row/Homogeneous.purs","end":[20,64]},[]],"tag":"TypeVar","contents":"fieldType2"}],"edInstanceConstraints":[{"constraintAnn":[{"start":[18,8],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row/Homogeneous.purs","end":[18,41]},[]],"constraintClass":[["Type","Row","Homogeneous"],"HomogeneousRowList"],"constraintArgs":[{"annotation":[{"start":[18,27],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row/Homogeneous.purs","end":[18,31]},[]],"tag":"TypeVar","contents":"tail"},{"annotation":[{"start":[18,32],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row/Homogeneous.purs","end":[18,41]},[]],"tag":"TypeVar","contents":"fieldType"}],"constraintData":null},{"constraintAnn":[{"start":[19,8],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row/Homogeneous.purs","end":[19,39]},[]],"constraintClass":[["Type","Equality"],"TypeEquals"],"constraintArgs":[{"annotation":[{"start":[19,19],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row/Homogeneous.purs","end":[19,28]},[]],"tag":"TypeVar","contents":"fieldType"},{"annotation":[{"start":[19,29],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row/Homogeneous.purs","end":[19,39]},[]],"tag":"TypeVar","contents":"fieldType2"}],"constraintData":null}],"edInstanceChain":[[["Type","Row","Homogeneous"],{"Ident":"homogeneousRowListCons"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Type","Row","Homogeneous"],"HomogeneousRowList"],"edInstanceName":{"Ident":"homogeneousRowListNil"},"edInstanceTypes":[{"annotation":[{"start":[21,54],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row/Homogeneous.purs","end":[21,57]},[]],"tag":"TypeConstructor","contents":[["Prim","RowList"],"Nil"]},{"annotation":[{"start":[21,58],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row/Homogeneous.purs","end":[21,67]},[]],"tag":"TypeVar","contents":"fieldType"}],"edInstanceConstraints":[],"edInstanceChain":[[["Type","Row","Homogeneous"],{"Ident":"homogeneousRowListNil"}]],"edInstanceChainIndex":0}}],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row/Homogeneous.purs","end":[21,67]}}
diff --git a/tests/purs/publish/basic-example/output/Type.Row/docs.json b/tests/purs/publish/basic-example/output/Type.Row/docs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Type.Row/docs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"reExports":[],"name":"Type.Row","comments":null,"declarations":[{"children":[{"comments":null,"title":"RProxy","info":{"arguments":[],"declType":"dataConstructor"},"sourceSpan":null}],"comments":null,"title":"RProxy","info":{"declType":"data","dataDeclType":"data","typeArguments":[["row",{"annotation":[],"tag":"Row","contents":{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]}}]]},"sourceSpan":{"start":[21,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[21,37]}},{"children":[{"comments":null,"title":"RLProxy","info":{"arguments":[],"declType":"dataConstructor"},"sourceSpan":null}],"comments":null,"title":"RLProxy","info":{"declType":"data","dataDeclType":"data","typeArguments":[["rowList",{"annotation":[],"tag":"NamedKind","contents":[["Prim","RowList"],"RowList"]}]]},"sourceSpan":{"start":[23,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[23,44]}},{"children":[{"comments":null,"title":"listToRowNil","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Row"],"ListToRow"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim","RowList"],"Nil"]}]},{"annotation":[],"tag":"REmpty"}]}},"sourceSpan":{"start":[31,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[32,22]}},{"comments":null,"title":"listToCons","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Type","Row"],"ListToRow"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"tail"},{"annotation":[],"tag":"TypeVar","contents":"tailRow"}],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Prim","Row"],"Cons"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"label"},{"annotation":[],"tag":"TypeVar","contents":"ty"},{"annotation":[],"tag":"TypeVar","contents":"tailRow"},{"annotation":[],"tag":"TypeVar","contents":"row"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Row"],"ListToRow"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim","RowList"],"Cons"]},{"annotation":[],"tag":"TypeVar","contents":"label"}]},{"annotation":[],"tag":"TypeVar","contents":"ty"}]},{"annotation":[],"tag":"TypeVar","contents":"tail"}]}]},{"annotation":[],"tag":"TypeVar","contents":"row"}]}},"sourceSpan":{"start":[34,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[37,40]}}],"comments":"Convert a RowList to a row of types.\nThe inverse of this operation is `RowToList`.\n","title":"ListToRow","info":{"fundeps":[[["list"],["row"]]],"arguments":[["list",{"annotation":[],"tag":"NamedKind","contents":[["Prim","RowList"],"RowList"]}],["row",{"annotation":[],"tag":"Row","contents":{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]}}]],"declType":"typeClass","superclasses":[]},"sourceSpan":{"start":[27,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[29,28]}},{"children":[{"comments":null,"title":"rowListRemoveNil","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Row"],"RowListRemove"]},{"annotation":[],"tag":"TypeVar","contents":"label"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim","RowList"],"Nil"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim","RowList"],"Nil"]}]}},"sourceSpan":{"start":[45,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[46,33]}},{"comments":null,"title":"rowListRemoveCons","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Type","Row"],"RowListRemove"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"label"},{"annotation":[],"tag":"TypeVar","contents":"tail"},{"annotation":[],"tag":"TypeVar","contents":"tailOutput"}],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Type","Data","Symbol"],"Equals"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"label"},{"annotation":[],"tag":"TypeVar","contents":"key"},{"annotation":[],"tag":"TypeVar","contents":"eq"}],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Type","Data","Boolean"],"If"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"eq"},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Row"],"RLProxy"]},{"annotation":[],"tag":"TypeVar","contents":"tailOutput"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Row"],"RLProxy"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim","RowList"],"Cons"]},{"annotation":[],"tag":"TypeVar","contents":"key"}]},{"annotation":[],"tag":"TypeVar","contents":"head"}]},{"annotation":[],"tag":"TypeVar","contents":"tailOutput"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Row"],"RLProxy"]},{"annotation":[],"tag":"TypeVar","contents":"output"}]}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Row"],"RowListRemove"]},{"annotation":[],"tag":"TypeVar","contents":"label"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim","RowList"],"Cons"]},{"annotation":[],"tag":"TypeVar","contents":"key"}]},{"annotation":[],"tag":"TypeVar","contents":"head"}]},{"annotation":[],"tag":"TypeVar","contents":"tail"}]}]},{"annotation":[],"tag":"TypeVar","contents":"output"}]}},"sourceSpan":{"start":[48,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[56,53]}}],"comments":"Remove all occurences of a given label from a RowList\n","title":"RowListRemove","info":{"fundeps":[[["label","input"],["output"]]],"arguments":[["label",{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Symbol"]}],["input",{"annotation":[],"tag":"NamedKind","contents":[["Prim","RowList"],"RowList"]}],["output",{"annotation":[],"tag":"NamedKind","contents":[["Prim","RowList"],"RowList"]}]],"declType":"typeClass","superclasses":[]},"sourceSpan":{"start":[40,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[43,44]}},{"children":[{"comments":null,"title":"rowListSetImpl","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Type","Equality"],"TypeEquals"],"constraintArgs":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Symbol"],"SProxy"]},{"annotation":[],"tag":"TypeVar","contents":"label"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Symbol"],"SProxy"]},{"annotation":[],"tag":"TypeVar","contents":"label'"}]}],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Type","Equality"],"TypeEquals"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"typ"},{"annotation":[],"tag":"TypeVar","contents":"typ'"}],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Type","Row"],"RowListRemove"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"label"},{"annotation":[],"tag":"TypeVar","contents":"input"},{"annotation":[],"tag":"TypeVar","contents":"lacking"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Row"],"RowListSet"]},{"annotation":[],"tag":"TypeVar","contents":"label"}]},{"annotation":[],"tag":"TypeVar","contents":"typ"}]},{"annotation":[],"tag":"TypeVar","contents":"input"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim","RowList"],"Cons"]},{"annotation":[],"tag":"TypeVar","contents":"label'"}]},{"annotation":[],"tag":"TypeVar","contents":"typ'"}]},{"annotation":[],"tag":"TypeVar","contents":"lacking"}]}]}},"sourceSpan":{"start":[65,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[69,59]}}],"comments":"Add a label to a RowList after removing other occurences.\n","title":"RowListSet","info":{"fundeps":[[["label","typ","input"],["output"]]],"arguments":[["label",{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Symbol"]}],["typ",{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["input",{"annotation":[],"tag":"NamedKind","contents":[["Prim","RowList"],"RowList"]}],["output",{"annotation":[],"tag":"NamedKind","contents":[["Prim","RowList"],"RowList"]}]],"declType":"typeClass","superclasses":[]},"sourceSpan":{"start":[59,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[63,45]}},{"children":[{"comments":null,"title":"rowListNubNil","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Row"],"RowListNub"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim","RowList"],"Nil"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim","RowList"],"Nil"]}]}},"sourceSpan":{"start":[76,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[77,24]}},{"comments":null,"title":"rowListNubCons","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Type","Equality"],"TypeEquals"],"constraintArgs":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Symbol"],"SProxy"]},{"annotation":[],"tag":"TypeVar","contents":"label"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Symbol"],"SProxy"]},{"annotation":[],"tag":"TypeVar","contents":"label'"}]}],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Type","Equality"],"TypeEquals"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"head"},{"annotation":[],"tag":"TypeVar","contents":"head'"}],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Type","Equality"],"TypeEquals"],"constraintArgs":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Row"],"RLProxy"]},{"annotation":[],"tag":"TypeVar","contents":"nubbed"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Row"],"RLProxy"]},{"annotation":[],"tag":"TypeVar","contents":"nubbed'"}]}],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Type","Row"],"RowListRemove"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"label"},{"annotation":[],"tag":"TypeVar","contents":"tail"},{"annotation":[],"tag":"TypeVar","contents":"removed"}],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Type","Row"],"RowListNub"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"removed"},{"annotation":[],"tag":"TypeVar","contents":"nubbed"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Row"],"RowListNub"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim","RowList"],"Cons"]},{"annotation":[],"tag":"TypeVar","contents":"label"}]},{"annotation":[],"tag":"TypeVar","contents":"head"}]},{"annotation":[],"tag":"TypeVar","contents":"tail"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim","RowList"],"Cons"]},{"annotation":[],"tag":"TypeVar","contents":"label'"}]},{"annotation":[],"tag":"TypeVar","contents":"head'"}]},{"annotation":[],"tag":"TypeVar","contents":"nubbed'"}]}]}},"sourceSpan":{"start":[79,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[85,67]}}],"comments":"Remove label duplicates, keeps earlier occurrences.\n","title":"RowListNub","info":{"fundeps":[[["input"],["output"]]],"arguments":[["input",{"annotation":[],"tag":"NamedKind","contents":[["Prim","RowList"],"RowList"]}],["output",{"annotation":[],"tag":"NamedKind","contents":[["Prim","RowList"],"RowList"]}]],"declType":"typeClass","superclasses":[]},"sourceSpan":{"start":[72,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[74,35]}},{"children":[{"comments":null,"title":"rowListAppendNil","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Type","Equality"],"TypeEquals"],"constraintArgs":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Row"],"RLProxy"]},{"annotation":[],"tag":"TypeVar","contents":"rhs"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Row"],"RLProxy"]},{"annotation":[],"tag":"TypeVar","contents":"out"}]}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Row"],"RowListAppend"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim","RowList"],"Nil"]}]},{"annotation":[],"tag":"TypeVar","contents":"rhs"}]},{"annotation":[],"tag":"TypeVar","contents":"out"}]}},"sourceSpan":{"start":[93,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[95,31]}},{"comments":null,"title":"rowListAppendCons","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Type","Row"],"RowListAppend"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"tail"},{"annotation":[],"tag":"TypeVar","contents":"rhs"},{"annotation":[],"tag":"TypeVar","contents":"out'"}],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Type","Equality"],"TypeEquals"],"constraintArgs":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Row"],"RLProxy"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim","RowList"],"Cons"]},{"annotation":[],"tag":"TypeVar","contents":"label"}]},{"annotation":[],"tag":"TypeVar","contents":"head"}]},{"annotation":[],"tag":"TypeVar","contents":"out'"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Row"],"RLProxy"]},{"annotation":[],"tag":"TypeVar","contents":"out"}]}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Type","Row"],"RowListAppend"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim","RowList"],"Cons"]},{"annotation":[],"tag":"TypeVar","contents":"label"}]},{"annotation":[],"tag":"TypeVar","contents":"head"}]},{"annotation":[],"tag":"TypeVar","contents":"tail"}]}]},{"annotation":[],"tag":"TypeVar","contents":"rhs"}]},{"annotation":[],"tag":"TypeVar","contents":"out"}]}},"sourceSpan":{"start":[97,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[100,50]}}],"comments":null,"title":"RowListAppend","info":{"fundeps":[[["lhs","rhs"],["out"]]],"arguments":[["lhs",{"annotation":[],"tag":"NamedKind","contents":[["Prim","RowList"],"RowList"]}],["rhs",{"annotation":[],"tag":"NamedKind","contents":[["Prim","RowList"],"RowList"]}],["out",{"annotation":[],"tag":"NamedKind","contents":[["Prim","RowList"],"RowList"]}]],"declType":"typeClass","superclasses":[]},"sourceSpan":{"start":[88,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[91,37]}},{"children":[],"comments":"Type application for rows.\n","title":"RowApply","info":{"arguments":[["f",{"annotation":[],"tag":"FunKind","contents":[{"annotation":[],"tag":"Row","contents":{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]}},{"annotation":[],"tag":"Row","contents":{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]}}]}],["a",{"annotation":[],"tag":"Row","contents":{"annotation":[],"tag":"NamedKind","contents":[["Prim"],"Type"]}}]],"declType":"typeSynonym","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}},"sourceSpan":{"start":[103,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[103,58]}},{"children":[],"comments":"Applies a type alias of open rows to a set of rows. The primary use case\nthis operator is as convenient sugar for combining open rows without\nparentheses.\n```purescript\ntype Rows1 r = (a :: Int, b :: String | r)\ntype Rows2 r = (c :: Boolean | r)\ntype Rows3 r = (Rows1 + Rows2 + r)\ntype Rows4 r = (d :: String | Rows1 + Rows2 + r)\n```\n","title":"type (+)","info":{"declType":"alias","alias":[["Type","Row"],{"Left":"RowApply"}],"fixity":{"associativity":"infixr","precedence":0}},"sourceSpan":{"start":[114,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[114,28]}}]}
diff --git a/tests/purs/publish/basic-example/output/Type.Row/externs.json b/tests/purs/publish/basic-example/output/Type.Row/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Type.Row/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Type","Row"],"efExports":[{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[114,28]},{"exportSourceImportedFrom":["Prim","RowList"],"exportSourceDefinedIn":["Prim","RowList"]},{"TypeRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[114,28]},"Cons",[]]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[114,28]},{"exportSourceImportedFrom":["Prim","RowList"],"exportSourceDefinedIn":["Prim","RowList"]},{"TypeRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[114,28]},"Nil",[]]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[114,28]},{"exportSourceImportedFrom":["Prim","Row"],"exportSourceDefinedIn":["Prim","Row"]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[114,28]},"Cons"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[114,28]},{"exportSourceImportedFrom":["Prim","Row"],"exportSourceDefinedIn":["Prim","Row"]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[114,28]},"Lacks"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[114,28]},{"exportSourceImportedFrom":["Prim","Row"],"exportSourceDefinedIn":["Prim","Row"]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[114,28]},"Nub"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[114,28]},{"exportSourceImportedFrom":["Prim","RowList"],"exportSourceDefinedIn":["Prim","RowList"]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[114,28]},"RowToList"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[114,28]},{"exportSourceImportedFrom":["Prim","Row"],"exportSourceDefinedIn":["Prim","Row"]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[114,28]},"Union"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[114,28]},{"exportSourceImportedFrom":["Prim","RowList"],"exportSourceDefinedIn":["Prim","RowList"]},{"KindRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[114,28]},"RowList"]}]},{"TypeRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[114,28]},"RProxy",["RProxy"]]},{"ModuleRef":[{"start":[3,5],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[3,20]},["Prim","Row"]]},{"ModuleRef":[{"start":[4,5],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[4,24]},["Prim","RowList"]]},{"TypeRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[114,28]},"RLProxy",["RLProxy"]]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[114,28]},"ListToRow"]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[114,28]},"RowListRemove"]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[114,28]},"RowListSet"]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[114,28]},"RowListNub"]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[114,28]},"RowListAppend"]},{"TypeRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[114,28]},"RowApply",[]]},{"TypeOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[114,28]},"+"]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"listToRowNil"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"listToCons"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"rowListRemoveNil"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"rowListRemoveCons"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"rowListSetImpl"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"rowListNubNil"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"rowListNubCons"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"rowListAppendNil"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"rowListAppendCons"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Prim","Row"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[15,18],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[15,29]},"Lacks"]},{"TypeClassRef":[{"start":[15,31],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[15,40]},"Nub"]},{"TypeClassRef":[{"start":[15,42],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[15,52]},"Cons"]},{"TypeClassRef":[{"start":[15,54],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[15,65]},"Union"]}]},"eiImportedAs":null},{"eiModule":["Prim","RowList"],"eiImportType":{"Explicit":[{"KindRef":[{"start":[16,22],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[16,34]},"RowList"]},{"TypeRef":[{"start":[16,36],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[16,40]},"Cons",[]]},{"TypeRef":[{"start":[16,42],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[16,45]},"Nil",[]]},{"TypeClassRef":[{"start":[16,47],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[16,62]},"RowToList"]}]},"eiImportedAs":null},{"eiModule":["Type","Equality"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[17,23],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[17,39]},"TypeEquals"]}]},"eiImportedAs":null},{"eiModule":["Type","Data","Symbol"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Symbol"]},{"eiModule":["Type","Data","Boolean"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Boolean"]}],"efFixities":[],"efTypeFixities":[{"efTypeAssociativity":"infixr","efTypePrecedence":0,"efTypeOperator":"+","efTypeAlias":[["Type","Row"],"RowApply"]}],"efDeclarations":[{"EDType":{"edTypeName":"RProxy","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[21,21],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[21,27]},[]],"tag":"Row","contents":{"annotation":[{"start":[21,23],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[21,27]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},"edTypeDeclarationKind":{"DataType":{"args":[["row",{"annotation":[{"start":[21,21],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[21,27]},[]],"tag":"Row","contents":{"annotation":[{"start":[21,23],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[21,27]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}}]],"ctors":[["RProxy",[]]]}}}},{"EDDataConstructor":{"edDataCtorName":"RProxy","edDataCtorOrigin":"data","edDataCtorTypeCtor":"RProxy","edDataCtorType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["row",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Type","Row"],"RProxy"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"row"}]},null]},"edDataCtorFields":[]}},{"EDType":{"edTypeName":"RLProxy","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[23,26],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[23,33]},[]],"tag":"NamedKind","contents":[["Prim","RowList"],"RowList"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},"edTypeDeclarationKind":{"DataType":{"args":[["rowList",{"annotation":[{"start":[23,26],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[23,33]},[]],"tag":"NamedKind","contents":[["Prim","RowList"],"RowList"]}]],"ctors":[["RLProxy",[]]]}}}},{"EDDataConstructor":{"edDataCtorName":"RLProxy","edDataCtorOrigin":"data","edDataCtorTypeCtor":"RLProxy","edDataCtorType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["rowList",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Type","Row"],"RLProxy"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"rowList"}]},null]},"edDataCtorFields":[]}},{"EDType":{"edTypeName":"ListToRow","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[27,26],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[27,33]},[]],"tag":"NamedKind","contents":[["Prim","RowList"],"RowList"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[28,25],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[28,31]},[]],"tag":"Row","contents":{"annotation":[{"start":[28,27],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[28,31]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"ListToRow","edTypeSynonymArguments":[["list",{"annotation":[{"start":[27,26],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[27,33]},[]],"tag":"NamedKind","contents":[["Prim","RowList"],"RowList"]}],["row",{"annotation":[{"start":[28,25],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[28,31]},[]],"tag":"Row","contents":{"annotation":[{"start":[28,27],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[28,31]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}}]],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}}},{"EDClass":{"edClassName":"ListToRow","edClassTypeArguments":[["list",{"annotation":[{"start":[27,26],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[27,33]},[]],"tag":"NamedKind","contents":[["Prim","RowList"],"RowList"]}],["row",{"annotation":[{"start":[28,25],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[28,31]},[]],"tag":"Row","contents":{"annotation":[{"start":[28,27],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[28,31]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}}]],"edClassMembers":[],"edClassConstraints":[],"edFunctionalDependencies":[{"determiners":[0],"determined":[1]}]}},{"EDType":{"edTypeName":"RowListRemove","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[40,31],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[40,37]},[]],"tag":"NamedKind","contents":[["Prim"],"Symbol"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[41,31],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[41,38]},[]],"tag":"NamedKind","contents":[["Prim","RowList"],"RowList"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[42,32],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[42,39]},[]],"tag":"NamedKind","contents":[["Prim","RowList"],"RowList"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"RowListRemove","edTypeSynonymArguments":[["label",{"annotation":[{"start":[40,31],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[40,37]},[]],"tag":"NamedKind","contents":[["Prim"],"Symbol"]}],["input",{"annotation":[{"start":[41,31],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[41,38]},[]],"tag":"NamedKind","contents":[["Prim","RowList"],"RowList"]}],["output",{"annotation":[{"start":[42,32],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[42,39]},[]],"tag":"NamedKind","contents":[["Prim","RowList"],"RowList"]}]],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}}},{"EDClass":{"edClassName":"RowListRemove","edClassTypeArguments":[["label",{"annotation":[{"start":[40,31],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[40,37]},[]],"tag":"NamedKind","contents":[["Prim"],"Symbol"]}],["input",{"annotation":[{"start":[41,31],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[41,38]},[]],"tag":"NamedKind","contents":[["Prim","RowList"],"RowList"]}],["output",{"annotation":[{"start":[42,32],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[42,39]},[]],"tag":"NamedKind","contents":[["Prim","RowList"],"RowList"]}]],"edClassMembers":[],"edClassConstraints":[],"edFunctionalDependencies":[{"determiners":[0,1],"determined":[2]}]}},{"EDType":{"edTypeName":"RowListSet","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[59,28],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[59,34]},[]],"tag":"NamedKind","contents":[["Prim"],"Symbol"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[60,26],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[60,30]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[61,28],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[61,35]},[]],"tag":"NamedKind","contents":[["Prim","RowList"],"RowList"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[62,29],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[62,36]},[]],"tag":"NamedKind","contents":[["Prim","RowList"],"RowList"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]}]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"RowListSet","edTypeSynonymArguments":[["label",{"annotation":[{"start":[59,28],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[59,34]},[]],"tag":"NamedKind","contents":[["Prim"],"Symbol"]}],["typ",{"annotation":[{"start":[60,26],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[60,30]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["input",{"annotation":[{"start":[61,28],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[61,35]},[]],"tag":"NamedKind","contents":[["Prim","RowList"],"RowList"]}],["output",{"annotation":[{"start":[62,29],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[62,36]},[]],"tag":"NamedKind","contents":[["Prim","RowList"],"RowList"]}]],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}}},{"EDClass":{"edClassName":"RowListSet","edClassTypeArguments":[["label",{"annotation":[{"start":[59,28],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[59,34]},[]],"tag":"NamedKind","contents":[["Prim"],"Symbol"]}],["typ",{"annotation":[{"start":[60,26],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[60,30]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["input",{"annotation":[{"start":[61,28],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[61,35]},[]],"tag":"NamedKind","contents":[["Prim","RowList"],"RowList"]}],["output",{"annotation":[{"start":[62,29],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[62,36]},[]],"tag":"NamedKind","contents":[["Prim","RowList"],"RowList"]}]],"edClassMembers":[],"edClassConstraints":[],"edFunctionalDependencies":[{"determiners":[0,1,2],"determined":[3]}]}},{"EDType":{"edTypeName":"RowListNub","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[72,28],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[72,35]},[]],"tag":"NamedKind","contents":[["Prim","RowList"],"RowList"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[73,29],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[73,36]},[]],"tag":"NamedKind","contents":[["Prim","RowList"],"RowList"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"RowListNub","edTypeSynonymArguments":[["input",{"annotation":[{"start":[72,28],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[72,35]},[]],"tag":"NamedKind","contents":[["Prim","RowList"],"RowList"]}],["output",{"annotation":[{"start":[73,29],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[73,36]},[]],"tag":"NamedKind","contents":[["Prim","RowList"],"RowList"]}]],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}}},{"EDClass":{"edClassName":"RowListNub","edClassTypeArguments":[["input",{"annotation":[{"start":[72,28],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[72,35]},[]],"tag":"NamedKind","contents":[["Prim","RowList"],"RowList"]}],["output",{"annotation":[{"start":[73,29],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[73,36]},[]],"tag":"NamedKind","contents":[["Prim","RowList"],"RowList"]}]],"edClassMembers":[],"edClassConstraints":[],"edFunctionalDependencies":[{"determiners":[0],"determined":[1]}]}},{"EDType":{"edTypeName":"RowListAppend","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[88,29],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[88,36]},[]],"tag":"NamedKind","contents":[["Prim","RowList"],"RowList"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[89,29],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[89,36]},[]],"tag":"NamedKind","contents":[["Prim","RowList"],"RowList"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[90,29],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[90,36]},[]],"tag":"NamedKind","contents":[["Prim","RowList"],"RowList"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"RowListAppend","edTypeSynonymArguments":[["lhs",{"annotation":[{"start":[88,29],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[88,36]},[]],"tag":"NamedKind","contents":[["Prim","RowList"],"RowList"]}],["rhs",{"annotation":[{"start":[89,29],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[89,36]},[]],"tag":"NamedKind","contents":[["Prim","RowList"],"RowList"]}],["out",{"annotation":[{"start":[90,29],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[90,36]},[]],"tag":"NamedKind","contents":[["Prim","RowList"],"RowList"]}]],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}}},{"EDClass":{"edClassName":"RowListAppend","edClassTypeArguments":[["lhs",{"annotation":[{"start":[88,29],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[88,36]},[]],"tag":"NamedKind","contents":[["Prim","RowList"],"RowList"]}],["rhs",{"annotation":[{"start":[89,29],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[89,36]},[]],"tag":"NamedKind","contents":[["Prim","RowList"],"RowList"]}],["out",{"annotation":[{"start":[90,29],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[90,36]},[]],"tag":"NamedKind","contents":[["Prim","RowList"],"RowList"]}]],"edClassMembers":[],"edClassConstraints":[],"edFunctionalDependencies":[{"determiners":[0,1],"determined":[2]}]}},{"EDType":{"edTypeName":"RowApply","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[103,21],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[103,37]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[103,21],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[103,27]},[]],"tag":"Row","contents":{"annotation":[{"start":[103,23],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[103,27]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}},{"annotation":[{"start":[103,31],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[103,37]},[]],"tag":"Row","contents":{"annotation":[{"start":[103,33],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[103,37]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[103,45],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[103,51]},[]],"tag":"Row","contents":{"annotation":[{"start":[103,47],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[103,51]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}},{"annotation":[{"start":[103,55],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[103,56]},[]],"tag":"Row","contents":{"annotation":[{"start":[103,55],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[103,56]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}}]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"RowApply","edTypeSynonymArguments":[["f",{"annotation":[{"start":[103,21],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[103,37]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[103,21],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[103,27]},[]],"tag":"Row","contents":{"annotation":[{"start":[103,23],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[103,27]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}},{"annotation":[{"start":[103,31],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[103,37]},[]],"tag":"Row","contents":{"annotation":[{"start":[103,33],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[103,37]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}}]}],["a",{"annotation":[{"start":[103,45],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[103,51]},[]],"tag":"Row","contents":{"annotation":[{"start":[103,47],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[103,51]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}}]],"edTypeSynonymType":{"annotation":[{"start":[103,55],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[103,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[103,55],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[103,56]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[103,57],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[103,58]},[]],"tag":"TypeVar","contents":"a"}]}}},{"EDInstance":{"edInstanceClassName":[["Type","Row"],"ListToRow"],"edInstanceName":{"Ident":"listToRowNil"},"edInstanceTypes":[{"annotation":[{"start":[32,16],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[32,19]},[]],"tag":"TypeConstructor","contents":[["Prim","RowList"],"Nil"]},{"annotation":[{"start":[32,21],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[32,22]},[]],"tag":"REmpty"}],"edInstanceConstraints":[],"edInstanceChain":[[["Type","Row"],{"Ident":"listToRowNil"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Type","Row"],"ListToRow"],"edInstanceName":{"Ident":"listToCons"},"edInstanceTypes":[{"annotation":[{"start":[37,17],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[37,35]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[37,17],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[37,30]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[37,17],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[37,27]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[37,17],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[37,21]},[]],"tag":"TypeConstructor","contents":[["Prim","RowList"],"Cons"]},{"annotation":[{"start":[37,22],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[37,27]},[]],"tag":"TypeVar","contents":"label"}]},{"annotation":[{"start":[37,28],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[37,30]},[]],"tag":"TypeVar","contents":"ty"}]},{"annotation":[{"start":[37,31],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[37,35]},[]],"tag":"TypeVar","contents":"tail"}]},{"annotation":[{"start":[37,37],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[37,40]},[]],"tag":"TypeVar","contents":"row"}],"edInstanceConstraints":[{"constraintAnn":[{"start":[35,8],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[35,30]},[]],"constraintClass":[["Type","Row"],"ListToRow"],"constraintArgs":[{"annotation":[{"start":[35,18],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[35,22]},[]],"tag":"TypeVar","contents":"tail"},{"annotation":[{"start":[35,23],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[35,30]},[]],"tag":"TypeVar","contents":"tailRow"}],"constraintData":null},{"constraintAnn":[{"start":[36,8],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[36,33]},[]],"constraintClass":[["Prim","Row"],"Cons"],"constraintArgs":[{"annotation":[{"start":[36,13],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[36,18]},[]],"tag":"TypeVar","contents":"label"},{"annotation":[{"start":[36,19],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[36,21]},[]],"tag":"TypeVar","contents":"ty"},{"annotation":[{"start":[36,22],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[36,29]},[]],"tag":"TypeVar","contents":"tailRow"},{"annotation":[{"start":[36,30],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[36,33]},[]],"tag":"TypeVar","contents":"row"}],"constraintData":null}],"edInstanceChain":[[["Type","Row"],{"Ident":"listToCons"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Type","Row"],"RowListRemove"],"edInstanceName":{"Ident":"rowListRemoveNil"},"edInstanceTypes":[{"annotation":[{"start":[46,20],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[46,25]},[]],"tag":"TypeVar","contents":"label"},{"annotation":[{"start":[46,26],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[46,29]},[]],"tag":"TypeConstructor","contents":[["Prim","RowList"],"Nil"]},{"annotation":[{"start":[46,30],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[46,33]},[]],"tag":"TypeConstructor","contents":[["Prim","RowList"],"Nil"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Type","Row"],{"Ident":"rowListRemoveNil"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Type","Row"],"RowListRemove"],"edInstanceName":{"Ident":"rowListRemoveCons"},"edInstanceTypes":[{"annotation":[{"start":[56,20],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[56,25]},[]],"tag":"TypeVar","contents":"label"},{"annotation":[{"start":[56,27],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[56,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[56,27],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[56,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[56,27],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[56,35]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[56,27],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[56,31]},[]],"tag":"TypeConstructor","contents":[["Prim","RowList"],"Cons"]},{"annotation":[{"start":[56,32],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[56,35]},[]],"tag":"TypeVar","contents":"key"}]},{"annotation":[{"start":[56,36],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[56,40]},[]],"tag":"TypeVar","contents":"head"}]},{"annotation":[{"start":[56,41],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[56,45]},[]],"tag":"TypeVar","contents":"tail"}]},{"annotation":[{"start":[56,47],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[56,53]},[]],"tag":"TypeVar","contents":"output"}],"edInstanceConstraints":[{"constraintAnn":[{"start":[49,8],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[49,43]},[]],"constraintClass":[["Type","Row"],"RowListRemove"],"constraintArgs":[{"annotation":[{"start":[49,22],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[49,27]},[]],"tag":"TypeVar","contents":"label"},{"annotation":[{"start":[49,28],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[49,32]},[]],"tag":"TypeVar","contents":"tail"},{"annotation":[{"start":[49,33],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[49,43]},[]],"tag":"TypeVar","contents":"tailOutput"}],"constraintData":null},{"constraintAnn":[{"start":[50,8],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[50,34]},[]],"constraintClass":[["Type","Data","Symbol"],"Equals"],"constraintArgs":[{"annotation":[{"start":[50,22],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[50,27]},[]],"tag":"TypeVar","contents":"label"},{"annotation":[{"start":[50,28],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[50,31]},[]],"tag":"TypeVar","contents":"key"},{"annotation":[{"start":[50,32],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[50,34]},[]],"tag":"TypeVar","contents":"eq"}],"constraintData":null},{"constraintAnn":[{"start":[51,8],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[54,26]},[]],"constraintClass":[["Type","Data","Boolean"],"If"],"constraintArgs":[{"annotation":[{"start":[51,19],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[51,21]},[]],"tag":"TypeVar","contents":"eq"},{"annotation":[{"start":[52,11],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[52,29]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,11],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[52,18]},[]],"tag":"TypeConstructor","contents":[["Type","Row"],"RLProxy"]},{"annotation":[{"start":[52,19],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[52,29]},[]],"tag":"TypeVar","contents":"tailOutput"}]},{"annotation":[{"start":[53,11],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[53,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,11],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[53,18]},[]],"tag":"TypeConstructor","contents":[["Type","Row"],"RLProxy"]},{"annotation":[{"start":[53,20],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[53,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,20],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[53,33]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,20],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[53,28]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,20],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[53,24]},[]],"tag":"TypeConstructor","contents":[["Prim","RowList"],"Cons"]},{"annotation":[{"start":[53,25],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[53,28]},[]],"tag":"TypeVar","contents":"key"}]},{"annotation":[{"start":[53,29],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[53,33]},[]],"tag":"TypeVar","contents":"head"}]},{"annotation":[{"start":[53,34],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[53,44]},[]],"tag":"TypeVar","contents":"tailOutput"}]}]},{"annotation":[{"start":[54,11],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[54,25]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[54,11],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[54,18]},[]],"tag":"TypeConstructor","contents":[["Type","Row"],"RLProxy"]},{"annotation":[{"start":[54,19],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[54,25]},[]],"tag":"TypeVar","contents":"output"}]}],"constraintData":null}],"edInstanceChain":[[["Type","Row"],{"Ident":"rowListRemoveCons"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Type","Row"],"RowListSet"],"edInstanceName":{"Ident":"rowListSetImpl"},"edInstanceTypes":[{"annotation":[{"start":[69,17],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[69,22]},[]],"tag":"TypeVar","contents":"label"},{"annotation":[{"start":[69,23],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[69,26]},[]],"tag":"TypeVar","contents":"typ"},{"annotation":[{"start":[69,27],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[69,32]},[]],"tag":"TypeVar","contents":"input"},{"annotation":[{"start":[69,34],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[69,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[69,34],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[69,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[69,34],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[69,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[69,34],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[69,38]},[]],"tag":"TypeConstructor","contents":[["Prim","RowList"],"Cons"]},{"annotation":[{"start":[69,39],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[69,45]},[]],"tag":"TypeVar","contents":"label'"}]},{"annotation":[{"start":[69,46],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[69,50]},[]],"tag":"TypeVar","contents":"typ'"}]},{"annotation":[{"start":[69,51],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[69,58]},[]],"tag":"TypeVar","contents":"lacking"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[66,8],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[66,63]},[]],"constraintClass":[["Type","Equality"],"TypeEquals"],"constraintArgs":[{"annotation":[{"start":[66,20],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[66,39]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[66,20],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[66,33]},[]],"tag":"TypeConstructor","contents":[["Data","Symbol"],"SProxy"]},{"annotation":[{"start":[66,34],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[66,39]},[]],"tag":"TypeVar","contents":"label"}]},{"annotation":[{"start":[66,42],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[66,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[66,42],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[66,55]},[]],"tag":"TypeConstructor","contents":[["Data","Symbol"],"SProxy"]},{"annotation":[{"start":[66,56],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[66,62]},[]],"tag":"TypeVar","contents":"label'"}]}],"constraintData":null},{"constraintAnn":[{"start":[67,8],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[67,27]},[]],"constraintClass":[["Type","Equality"],"TypeEquals"],"constraintArgs":[{"annotation":[{"start":[67,19],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[67,22]},[]],"tag":"TypeVar","contents":"typ"},{"annotation":[{"start":[67,23],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[67,27]},[]],"tag":"TypeVar","contents":"typ'"}],"constraintData":null},{"constraintAnn":[{"start":[68,8],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[68,41]},[]],"constraintClass":[["Type","Row"],"RowListRemove"],"constraintArgs":[{"annotation":[{"start":[68,22],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[68,27]},[]],"tag":"TypeVar","contents":"label"},{"annotation":[{"start":[68,28],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[68,33]},[]],"tag":"TypeVar","contents":"input"},{"annotation":[{"start":[68,34],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[68,41]},[]],"tag":"TypeVar","contents":"lacking"}],"constraintData":null}],"edInstanceChain":[[["Type","Row"],{"Ident":"rowListSetImpl"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Type","Row"],"RowListNub"],"edInstanceName":{"Ident":"rowListNubNil"},"edInstanceTypes":[{"annotation":[{"start":[77,17],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[77,20]},[]],"tag":"TypeConstructor","contents":[["Prim","RowList"],"Nil"]},{"annotation":[{"start":[77,21],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[77,24]},[]],"tag":"TypeConstructor","contents":[["Prim","RowList"],"Nil"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Type","Row"],{"Ident":"rowListNubNil"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Type","Row"],"RowListNub"],"edInstanceName":{"Ident":"rowListNubCons"},"edInstanceTypes":[{"annotation":[{"start":[85,18],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[85,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[85,18],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[85,33]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[85,18],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[85,28]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[85,18],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[85,22]},[]],"tag":"TypeConstructor","contents":[["Prim","RowList"],"Cons"]},{"annotation":[{"start":[85,23],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[85,28]},[]],"tag":"TypeVar","contents":"label"}]},{"annotation":[{"start":[85,29],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[85,33]},[]],"tag":"TypeVar","contents":"head"}]},{"annotation":[{"start":[85,34],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[85,38]},[]],"tag":"TypeVar","contents":"tail"}]},{"annotation":[{"start":[85,41],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[85,66]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[85,41],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[85,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[85,41],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[85,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[85,41],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[85,45]},[]],"tag":"TypeConstructor","contents":[["Prim","RowList"],"Cons"]},{"annotation":[{"start":[85,46],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[85,52]},[]],"tag":"TypeVar","contents":"label'"}]},{"annotation":[{"start":[85,53],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[85,58]},[]],"tag":"TypeVar","contents":"head'"}]},{"annotation":[{"start":[85,59],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[85,66]},[]],"tag":"TypeVar","contents":"nubbed'"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[80,8],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[80,63]},[]],"constraintClass":[["Type","Equality"],"TypeEquals"],"constraintArgs":[{"annotation":[{"start":[80,20],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[80,39]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[80,20],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[80,33]},[]],"tag":"TypeConstructor","contents":[["Data","Symbol"],"SProxy"]},{"annotation":[{"start":[80,34],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[80,39]},[]],"tag":"TypeVar","contents":"label"}]},{"annotation":[{"start":[80,42],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[80,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[80,42],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[80,55]},[]],"tag":"TypeConstructor","contents":[["Data","Symbol"],"SProxy"]},{"annotation":[{"start":[80,56],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[80,62]},[]],"tag":"TypeVar","contents":"label'"}]}],"constraintData":null},{"constraintAnn":[{"start":[81,8],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[81,29]},[]],"constraintClass":[["Type","Equality"],"TypeEquals"],"constraintArgs":[{"annotation":[{"start":[81,19],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[81,23]},[]],"tag":"TypeVar","contents":"head"},{"annotation":[{"start":[81,24],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[81,29]},[]],"tag":"TypeVar","contents":"head'"}],"constraintData":null},{"constraintAnn":[{"start":[82,8],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[82,53]},[]],"constraintClass":[["Type","Equality"],"TypeEquals"],"constraintArgs":[{"annotation":[{"start":[82,20],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[82,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[82,20],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[82,27]},[]],"tag":"TypeConstructor","contents":[["Type","Row"],"RLProxy"]},{"annotation":[{"start":[82,28],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[82,34]},[]],"tag":"TypeVar","contents":"nubbed"}]},{"annotation":[{"start":[82,37],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[82,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[82,37],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[82,44]},[]],"tag":"TypeConstructor","contents":[["Type","Row"],"RLProxy"]},{"annotation":[{"start":[82,45],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[82,52]},[]],"tag":"TypeVar","contents":"nubbed'"}]}],"constraintData":null},{"constraintAnn":[{"start":[83,8],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[83,40]},[]],"constraintClass":[["Type","Row"],"RowListRemove"],"constraintArgs":[{"annotation":[{"start":[83,22],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[83,27]},[]],"tag":"TypeVar","contents":"label"},{"annotation":[{"start":[83,28],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[83,32]},[]],"tag":"TypeVar","contents":"tail"},{"annotation":[{"start":[83,33],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[83,40]},[]],"tag":"TypeVar","contents":"removed"}],"constraintData":null},{"constraintAnn":[{"start":[84,8],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[84,33]},[]],"constraintClass":[["Type","Row"],"RowListNub"],"constraintArgs":[{"annotation":[{"start":[84,19],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[84,26]},[]],"tag":"TypeVar","contents":"removed"},{"annotation":[{"start":[84,27],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[84,33]},[]],"tag":"TypeVar","contents":"nubbed"}],"constraintData":null}],"edInstanceChain":[[["Type","Row"],{"Ident":"rowListNubCons"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Type","Row"],"RowListAppend"],"edInstanceName":{"Ident":"rowListAppendNil"},"edInstanceTypes":[{"annotation":[{"start":[95,20],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[95,23]},[]],"tag":"TypeConstructor","contents":[["Prim","RowList"],"Nil"]},{"annotation":[{"start":[95,24],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[95,27]},[]],"tag":"TypeVar","contents":"rhs"},{"annotation":[{"start":[95,28],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[95,31]},[]],"tag":"TypeVar","contents":"out"}],"edInstanceConstraints":[{"constraintAnn":[{"start":[94,6],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[94,44]},[]],"constraintClass":[["Type","Equality"],"TypeEquals"],"constraintArgs":[{"annotation":[{"start":[94,18],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[94,29]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[94,18],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[94,25]},[]],"tag":"TypeConstructor","contents":[["Type","Row"],"RLProxy"]},{"annotation":[{"start":[94,26],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[94,29]},[]],"tag":"TypeVar","contents":"rhs"}]},{"annotation":[{"start":[94,32],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[94,43]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[94,32],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[94,39]},[]],"tag":"TypeConstructor","contents":[["Type","Row"],"RLProxy"]},{"annotation":[{"start":[94,40],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[94,43]},[]],"tag":"TypeVar","contents":"out"}]}],"constraintData":null}],"edInstanceChain":[[["Type","Row"],{"Ident":"rowListAppendNil"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Type","Row"],"RowListAppend"],"edInstanceName":{"Ident":"rowListAppendCons"},"edInstanceTypes":[{"annotation":[{"start":[100,21],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[100,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[100,21],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[100,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[100,21],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[100,31]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[100,21],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[100,25]},[]],"tag":"TypeConstructor","contents":[["Prim","RowList"],"Cons"]},{"annotation":[{"start":[100,26],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[100,31]},[]],"tag":"TypeVar","contents":"label"}]},{"annotation":[{"start":[100,32],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[100,36]},[]],"tag":"TypeVar","contents":"head"}]},{"annotation":[{"start":[100,37],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[100,41]},[]],"tag":"TypeVar","contents":"tail"}]},{"annotation":[{"start":[100,43],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[100,46]},[]],"tag":"TypeVar","contents":"rhs"},{"annotation":[{"start":[100,47],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[100,50]},[]],"tag":"TypeVar","contents":"out"}],"edInstanceConstraints":[{"constraintAnn":[{"start":[98,8],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[98,35]},[]],"constraintClass":[["Type","Row"],"RowListAppend"],"constraintArgs":[{"annotation":[{"start":[98,22],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[98,26]},[]],"tag":"TypeVar","contents":"tail"},{"annotation":[{"start":[98,27],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[98,30]},[]],"tag":"TypeVar","contents":"rhs"},{"annotation":[{"start":[98,31],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[98,35]},[]],"tag":"TypeVar","contents":"out'"}],"constraintData":null},{"constraintAnn":[{"start":[99,8],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[99,65]},[]],"constraintClass":[["Type","Equality"],"TypeEquals"],"constraintArgs":[{"annotation":[{"start":[99,20],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[99,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[99,20],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[99,27]},[]],"tag":"TypeConstructor","contents":[["Type","Row"],"RLProxy"]},{"annotation":[{"start":[99,29],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[99,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[99,29],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[99,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[99,29],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[99,39]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[99,29],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[99,33]},[]],"tag":"TypeConstructor","contents":[["Prim","RowList"],"Cons"]},{"annotation":[{"start":[99,34],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[99,39]},[]],"tag":"TypeVar","contents":"label"}]},{"annotation":[{"start":[99,40],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[99,44]},[]],"tag":"TypeVar","contents":"head"}]},{"annotation":[{"start":[99,45],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[99,49]},[]],"tag":"TypeVar","contents":"out'"}]}]},{"annotation":[{"start":[99,53],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[99,64]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[99,53],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[99,60]},[]],"tag":"TypeConstructor","contents":[["Type","Row"],"RLProxy"]},{"annotation":[{"start":[99,61],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[99,64]},[]],"tag":"TypeVar","contents":"out"}]}],"constraintData":null}],"edInstanceChain":[[["Type","Row"],{"Ident":"rowListAppendCons"}]],"edInstanceChainIndex":0}}],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-typelevel-prelude/src/Type/Row.purs","end":[114,28]}}
diff --git a/tests/purs/publish/basic-example/output/Unsafe.Coerce/docs.json b/tests/purs/publish/basic-example/output/Unsafe.Coerce/docs.json
--- a/tests/purs/publish/basic-example/output/Unsafe.Coerce/docs.json
+++ b/tests/purs/publish/basic-example/output/Unsafe.Coerce/docs.json
@@ -1,1 +1,1 @@
-{"reExports":[],"name":"Unsafe.Coerce","comments":null,"declarations":[{"children":[],"comments":"A _highly unsafe_ function, which can be used to persuade the type system that\nany type is the same as any other type. When using this function, it is your\n(that is, the caller's) responsibility to ensure that the underlying\nrepresentation for both types is the same.\n\nOne application for this function is to avoid doing work that you know is a\nno-op because of newtypes. For example, if you have an `Array (Conj a)` and you\nwant an `Array (Disj a)`, you could do `Data.Array.map (runConj >>> Disj)`, but\nthis performs an unnecessary traversal. `unsafeCoerce` accomplishes the same\nfor free.\n\nIt is highly recommended to define specializations of this function rather than\nusing it as-is. For example:\n\n```purescript\nmapConjToDisj :: forall a. Array (Conj a) -> Array (Disj a)\nmapConjToDisj = unsafeCoerce\n```\n\nThis way, you won't have any nasty surprises due to the inferred type being\ndifferent to what you expected.\n","title":"unsafeCoerce","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},null]},null]}},"sourceSpan":{"start":[27,1],"name":"../../../support/bower_components/purescript-unsafe-coerce/src/Unsafe/Coerce.purs","end":[27,50]}}]}
+{"comments":null,"declarations":[{"children":[],"comments":"A _highly unsafe_ function, which can be used to persuade the type system that\nany type is the same as any other type. When using this function, it is your\n(that is, the caller's) responsibility to ensure that the underlying\nrepresentation for both types is the same.\n\nBecause this function is extraordinarily flexible, type inference\ncan greatly suffer. It is highly recommended to define specializations of\nthis function rather than using it as-is. For example:\n\n```purescript\nfromBoolean :: Boolean -> Json\nfromBoolean = unsafeCoerce\n```\n\nThis way, you won't have any nasty surprises due to the inferred type being\ndifferent to what you expected.\n\nAfter the v0.14.0 PureScript release, some of what was accomplished via\n`unsafeCoerce` can now be accomplished via `coerce` from\n`purescript-safe-coerce`. See that library's documentation for more\ncontext.\n","info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"b","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[27,50],"name":"../../../support/bower_components/purescript-unsafe-coerce/src/Unsafe/Coerce.purs","start":[27,1]},"title":"unsafeCoerce"}],"name":"Unsafe.Coerce","reExports":[]}
diff --git a/tests/purs/publish/basic-example/output/Unsafe.Coerce/externs.json b/tests/purs/publish/basic-example/output/Unsafe.Coerce/externs.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/output/Unsafe.Coerce/externs.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"efVersion":"0.12.5","efModuleName":["Unsafe","Coerce"],"efExports":[{"ValueRef":[{"start":[2,1],"name":"../../../support/bower_components/purescript-unsafe-coerce/src/Unsafe/Coerce.purs","end":[27,50]},{"Ident":"unsafeCoerce"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDValue":{"edValueName":{"Ident":"unsafeCoerce"},"edValueType":{"annotation":[{"start":[27,32],"name":"../../../support/bower_components/purescript-unsafe-coerce/src/Unsafe/Coerce.purs","end":[27,50]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[27,39],"name":"../../../support/bower_components/purescript-unsafe-coerce/src/Unsafe/Coerce.purs","end":[27,50]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[27,44],"name":"../../../support/bower_components/purescript-unsafe-coerce/src/Unsafe/Coerce.purs","end":[27,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[27,44],"name":"../../../support/bower_components/purescript-unsafe-coerce/src/Unsafe/Coerce.purs","end":[27,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[27,46],"name":"../../../support/bower_components/purescript-unsafe-coerce/src/Unsafe/Coerce.purs","end":[27,48]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[27,44],"name":"../../../support/bower_components/purescript-unsafe-coerce/src/Unsafe/Coerce.purs","end":[27,45]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[27,49],"name":"../../../support/bower_components/purescript-unsafe-coerce/src/Unsafe/Coerce.purs","end":[27,50]},[]],"tag":"TypeVar","contents":"b"}]},null]},null]}}}],"efSourceSpan":{"start":[2,1],"name":"../../../support/bower_components/purescript-unsafe-coerce/src/Unsafe/Coerce.purs","end":[27,50]}}
diff --git a/tests/purs/publish/basic-example/output/cache-db.json b/tests/purs/publish/basic-example/output/cache-db.json
new file mode 100644
--- /dev/null
+++ b/tests/purs/publish/basic-example/output/cache-db.json
@@ -0,0 +1,1 @@
+{"Control.Applicative":{"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs":["2022-08-18T20:04:00Z","5889c8a23c34d2d9c7d1fe41df1512314055fafda79900099b37a76451fb6394dac06633caf5c206c432817a9c07b892b18c3b99d1013a298acc85a579aee2f1"]},"Control.Apply":{"../../../support/bower_components/purescript-prelude/src/Control/Apply.js":["2022-08-18T20:04:00Z","73ee829e5dfad80f1d5f957d0e52b1d069ea798919d608b4733cedda4736681ec26d7e33501428966bf213b8a344c1272f7658867780c7237baf90da4c9d5ad3"],"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs":["2022-08-18T20:04:00Z","524e797c42f16dbc375aa2403a4867a5744116d9302bda790333251ccf88d773e079fb8c3af1f87eccdc0c0bbf682b932a48506ca5f51ef441832177fafd4eb0"]},"Control.Bind":{"../../../support/bower_components/purescript-prelude/src/Control/Bind.js":["2022-08-18T20:04:00Z","abbbecd9697ae2109a9b74f70bfce37c0589e0d99b10e090660e1c76a491744c84fd459c53172256c70cdaffde3f0dc1abe0464fa32b977cf71e789425ca8bfe"],"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs":["2022-08-18T20:04:00Z","27f217ea2d5e4ab2745ad05b6d0aa36ee8809dc9d5c22162f722b2f003cf140bb18747f158daeca469a1083b7b054f9a6a9681d092598b3ea25cada7fe510d75"]},"Control.Category":{"../../../support/bower_components/purescript-prelude/src/Control/Category.purs":["2022-08-18T20:04:00Z","6431719d022f6d4230f338935381a7e116a18cdf80c67bdf76d87a7624518bc9fd1e4adfe45c8a59d77f07caf7c8e9faae741e99fada42455143c4fb924e7988"]},"Control.Monad":{"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs":["2022-08-18T20:04:00Z","5d13918b1f360fb201125c334399566fdef398f1b44af0754cb261b6e514481b26a0d4ad892944d4a52d513c41a20702d9973be000d9e2436c4fb48940cc07ca"]},"Control.Semigroupoid":{"../../../support/bower_components/purescript-prelude/src/Control/Semigroupoid.purs":["2022-08-18T20:04:00Z","f5b1e9fdd81471d37f763b7fff8bd94f2111fd9ad6092bc925e409d5c69261860045230cde5c95ebbb3141acce54372bcf4d01c9b044fd59959822c9576135e8"]},"Data.Boolean":{"../../../support/bower_components/purescript-prelude/src/Data/Boolean.purs":["2022-08-18T20:04:00Z","aa81cf83948d1c45051dcfb835b0caef7a8ed8a39c58d8126f4efde1973880dbcd169d36bbe8c82a62586c386810bf0824f018674a93c606e43bc451fb6c3819"]},"Data.BooleanAlgebra":{"../../../support/bower_components/purescript-prelude/src/Data/BooleanAlgebra.purs":["2022-08-18T20:04:00Z","464f2df7f5bc3fc5e64cb0462c841f93fa2a609545e10f0adce637185e345aa45eed2a7e164ba648bb947168279c999ef8cd9f5dab9fce9af3b9329a8829b971"]},"Data.Bounded":{"../../../support/bower_components/purescript-prelude/src/Data/Bounded.js":["2022-08-18T20:04:00Z","8bfa62b2e886ce6d58793d840513c68cefc1fa0c4a15a5e6a0c0ee5d607fea425f8080365c0f3f421116c4362eba447617cd65a221ee1e4cc0a75610752d3b75"],"../../../support/bower_components/purescript-prelude/src/Data/Bounded.purs":["2022-08-18T20:04:00Z","36762aa05b71843e1d2f23cc64b1a17ea3acf91745de39e8723a04f3cc12f50c83e6a9b8a58c0463eaed0e93dfe3112e1f896130bab0660a5a009391f00ed468"]},"Data.Bounded.Generic":{"../../../support/bower_components/purescript-prelude/src/Data/Bounded/Generic.purs":["2022-08-18T20:04:00Z","15f4f3499dd9c2a1f37345357db2f131cc57e37a4ddfaa8497dabd3d123abd8b9670bdd3910b84b6c44c8b63bf1873af783adb1edc8455985f244b6ecbef733b"]},"Data.CommutativeRing":{"../../../support/bower_components/purescript-prelude/src/Data/CommutativeRing.purs":["2022-08-18T20:04:00Z","c8bf53bf06454a74ba3a605d100b59bb5ba9111dd20e073713422c080075555b653bcaddde078d55130e737de30ba336920a099a6016fd4158af88b1f430b631"]},"Data.DivisionRing":{"../../../support/bower_components/purescript-prelude/src/Data/DivisionRing.purs":["2022-08-18T20:04:00Z","1f3c74ecd87798ace30371f036ef1590f7e4dbc5be05f51162f9b3700d61c0befd6a5b53ace34626103e500043de3b67225de2c442841106f6d8960658355aae"]},"Data.Eq":{"../../../support/bower_components/purescript-prelude/src/Data/Eq.js":["2022-08-18T20:04:00Z","6718a356e77f3fe29c3f353f02fd94583b4edf5a0a0d7bdfdbcb046e7ef3440781aaa466ee88f12be6a72f274eb9c51d4d051673f4893fc408e9053bb8d84368"],"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs":["2022-08-18T20:04:00Z","65598d7093548c9848e1c661bb778ebd402f09b4584570c09082d765997056b335bf0f05397cd788c44bb2f00b3bd2115cba2ed45033ade9ac40d91efd64301d"]},"Data.Eq.Generic":{"../../../support/bower_components/purescript-prelude/src/Data/Eq/Generic.purs":["2022-08-18T20:04:00Z","88d9841c3e55b1063721bc8ff168aa8b53cd3581a8c3ffee6ed71a96ba4d2d20b7b454cb0e7f13b2fa7a6bcaf4ca0dfc609ce624f5ad74eece1e13a93b0a121d"]},"Data.EuclideanRing":{"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.js":["2022-08-18T20:04:00Z","9bf37abbb8d5c826e2152f62c99251e9cfeac8226ead81262527a2c544765336b6a0a8df731664d1b7d7804ad821ddfb0bd2c58d91d61fea6232d6adaeb6fc69"],"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs":["2022-08-18T20:04:00Z","252c8162d273ea69e96619d760b48f7302ad048ed2bdd542695fbf0489948d24369b2bd40addd7fa505e810cf411727fe9fd57546a3011ebe1fa3c534beac414"]},"Data.Field":{"../../../support/bower_components/purescript-prelude/src/Data/Field.purs":["2022-08-18T20:04:00Z","21c8a682ad74b9389e1c538ca1dbc5cc4da34b13945a1bd11812631f8f56e723e65f9452eba5b43ea8209f88c57e8566529667673b6b78ade1a08350a28b04cc"]},"Data.Function":{"../../../support/bower_components/purescript-prelude/src/Data/Function.purs":["2022-08-18T20:04:00Z","42320940aa4cdbab54308acc9ad8eac48cb3facf1f695eeb32c8473bdf31e6d51e9d689bd256c833cedd3cf40882c484153f56e8582bfc1353cc0f3b7867aa0f"]},"Data.Functor":{"../../../support/bower_components/purescript-prelude/src/Data/Functor.js":["2022-08-18T20:04:00Z","889e7781cb01bcb3007c8400d844b250905a7cc893d0391a09c2f907c8993271b0daf081548206d4c5a3948fdc7a51df5a99c6fe38c61a90ccdcb38f22886ae7"],"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs":["2022-08-18T20:04:00Z","077d9d6d3e754807e5200b970988daf12894942995bb7f8698c0e0a2d08b64842dc5257efe088c045d7d0a6de2a10cb6c58b976b26243f66f69d0fa9791f60e7"]},"Data.Generic.Rep":{"../../../support/bower_components/purescript-prelude/src/Data/Generic/Rep.purs":["2022-08-18T20:04:00Z","69c6cac0ae8035b7a0bad28c1fb8c0c0d99bc93087392f5dbebac6a30bca3b5fa352741f93f432b7aa4c617e1f23d59939a69c716775e84375e112b4bb9175d1"]},"Data.HeytingAlgebra":{"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.js":["2022-08-18T20:04:00Z","3603479b96cd22a9b312ef922b95d5b342ecd8d4b1b8984a15fcfa64b92ec66128f14fdc795c2c525c9b6e6912934f2ea542df9f30b3caac3bbb085ba3326265"],"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs":["2022-08-18T20:04:00Z","d8942636d4f1804c94eb7527b48f48f500843d34e2ec0b45515f4d5c836ce4437806feb4a603735f1a799243f244a72c6fda218ffe5d58f7f0cbbcbfadb01bbd"]},"Data.HeytingAlgebra.Generic":{"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra/Generic.purs":["2022-08-18T20:04:00Z","ea49a37bf16af73cb930d0eb573bca8cc8e63de0a796c504f531f05d503976a59f464fa5a039a2ae9b486c9ba70857008bfb06acaaeaad6ee0f9f429355043e2"]},"Data.Monoid":{"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs":["2022-08-18T20:04:00Z","172ecdf1da579ac35b44cb9d87424b7bb45f27b2f49a0e51be34cc1d2863a15929436321b8ed46059601b3ba171053b4129067066be0596da42607d697d8d484"]},"Data.Monoid.Additive":{"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Additive.purs":["2022-08-18T20:04:00Z","514e26851127fb9b52c618a36f17758513d9a7ea6724866b208e2c2447c3c3b3a9a18218b715b765e5e1e00908e2ebc0d9f2e67171ab3e46543a01508b54de67"]},"Data.Monoid.Conj":{"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Conj.purs":["2022-08-18T20:04:00Z","441eb08d322aa39654f68fe39676ba5fe470252adc4da087c590245ff7b0b624885c57ade6e66f24485862873767198678a219afbd7c2fc68f2ca59978d7d9c2"]},"Data.Monoid.Disj":{"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Disj.purs":["2022-08-18T20:04:00Z","f38cea70c5a7216b6b17c796dfbc8b08d9f05bed22d81d3784322f9f06f127435b4c9009a2027c24efc998c781796b9007bc70bc3bd1eee935b1a9695077bc7a"]},"Data.Monoid.Dual":{"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Dual.purs":["2022-08-18T20:04:00Z","54058218c4c5323d42e95d54a1c64b9e2ded8afdaeef2f846ef123bd4fd6772551e2158a6a9802ca327bbc4fb995f4fd5d416fd59c7a6efc8f8fe9bc5e7dc709"]},"Data.Monoid.Endo":{"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Endo.purs":["2022-08-18T20:04:00Z","543f16c8df42353334deddd7e25a58340aaa3f4a902a997d6b08e3128ca0afb82b3ac720e8ca8d4475cfc063906df1439afd3f2e22f7684aeb9ee0bc2992e774"]},"Data.Monoid.Generic":{"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Generic.purs":["2022-08-18T20:04:00Z","9e2ef0cf0469c1e798f8767cb472ee1b0103dfd6b08ed0a777c89d5043358b70cf14c2784ea59f05795f648daf80e11b2150fa89a05bc8c0afa6dafeb2fc09ac"]},"Data.Monoid.Multiplicative":{"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Multiplicative.purs":["2022-08-18T20:04:00Z","f0c40f939ed3a3f00712fc7485926733668101c201e5d57e19d72ce6be84455b7b2d7360d747154a9d071df9b72e4e5ad2ac2a36db093a1b702fed4e6f4de9e3"]},"Data.NaturalTransformation":{"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs":["2022-08-18T20:04:00Z","6b9fc42ec524a517d464dea99867c64345cdbcbada4260a772373a956961ad1c9a4a3a4f8ed4a0c7c7f3e36120068954141841c5d6bdc4e5898ea06435104bb7"]},"Data.Newtype":{"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs":["2022-04-27T15:04:33Z","4289a67b60c9760f41b6fb86b71bb0bb2c576b279ae447be7fe4c3ff408ea4705ca17522647bcd8da582ef646a4abfd53fc3310d4d9d6c68816a8ccd480140be"]},"Data.Ord":{"../../../support/bower_components/purescript-prelude/src/Data/Ord.js":["2022-08-18T20:04:00Z","d3f620d4e07a9ce41745d2df0c43701dc41726e4be601b790bb054089ca52d97380299b90fe88f166e2195d76c4cbe195d941e8619fd2d14242a6a347881b1a9"],"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs":["2022-08-18T20:04:00Z","f0ca6f6131e2699584e55846fb9f4300b778c12f39f0c5a19286081c39c537c1a511c69d01ca6d7216776c73daeeced9ae0b6e1281d4b2e39abb4cc5432e6b75"]},"Data.Ord.Generic":{"../../../support/bower_components/purescript-prelude/src/Data/Ord/Generic.purs":["2022-08-18T20:04:00Z","d566cfa79ec03e335f632d3edc3b913081583188d8496897c1b0904c1895525caeb5b0464b76d40ae5ef79e5c7b516ad061c1d98aa6e1c649f555be4c839087e"]},"Data.Ordering":{"../../../support/bower_components/purescript-prelude/src/Data/Ordering.purs":["2022-08-18T20:04:00Z","321b8de9b25c2616a3dbc6bff2e2def1cf7592ad54e575bd2b62d440d5dd88d7b5332f6c68fc010424e36ac13d61b5bcaadcf619ff940c667360b2c102f6e2af"]},"Data.Reflectable":{"../../../support/bower_components/purescript-prelude/src/Data/Reflectable.js":["2022-08-18T20:04:00Z","1bbaef3b7bb472cbc13eb30d9a75f2d580d5950fe692a3e137322558a651d0352f8a7499538028404a611afecde17f551b7cbc4030bdaf0b50e6828362cf29bd"],"../../../support/bower_components/purescript-prelude/src/Data/Reflectable.purs":["2022-08-18T20:04:00Z","02beca227031091fd31673ff64153c2f84ba22c61f362acc88411643233fe91d8cabf6206319785f7b910d8dff7c81528ca7e05048e284bfc720e71f804f7a6c"]},"Data.Ring":{"../../../support/bower_components/purescript-prelude/src/Data/Ring.js":["2022-08-18T20:04:00Z","bce8767b39bf1d9af8182f80f91e376db07ae8912b991fcea6eaf37900f91c6b6ede6fb874c40ff5b3d40fc6a893468d0f0cb31106f6188ca52514ae0a081da6"],"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs":["2022-08-18T20:04:00Z","4e727f1f786ced8ce8202805713a9a2810c6ef9522694535c219ce22f66e032ca374163c82db137dd7d2ded6ae4dc2786ee8b6efd1df810d5cbda9c7e2c0832e"]},"Data.Ring.Generic":{"../../../support/bower_components/purescript-prelude/src/Data/Ring/Generic.purs":["2022-08-18T20:04:00Z","8c94b1a5765b99950600e690e01e3da65cd7e43fe78f651f8531c45d41775572af47e62f21705857c82ae52251626c34f0f41180ee0563115f749c7bc0459324"]},"Data.Semigroup":{"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.js":["2022-08-18T20:04:00Z","fb416511575b93baf1081317aba42e97da52fdb724c07110a05c360e5254528f54715a47fa22ed4298bbdfb62c8641c8ea5ef92af9a259d51164cf541026fabc"],"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs":["2022-08-18T20:04:00Z","43c3fbd4ab0a7a5346bdc69ce26ad3e6143f1f0e92bf8e7601af43d2ad68cfe4080411029ba3a9f29592f75e139a8fb923e67237b8e1cee3024c54b32ccf0b5d"]},"Data.Semigroup.First":{"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/First.purs":["2022-08-18T20:04:00Z","8ff357056284af9050954e7695babcc76f5f632019b66f635a49502170508a37b2cb20a2e863f022bf077726480d2cc32951fb910c80559806e50830f25e884e"]},"Data.Semigroup.Generic":{"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/Generic.purs":["2022-08-18T20:04:00Z","8c07803971e03a3c3d4a617198eae5a3e825c411fd17af68eee57571717a2301eaf5ec5bd34bfddf14da1f1c40d780ab9538d02f22d1d19117135388c848ca89"]},"Data.Semigroup.Last":{"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/Last.purs":["2022-08-18T20:04:00Z","75b3660341f9c0570031d2304c83eb8592098e2d96577c030ae969b3b958d00b21234c2c836377e7b338e4323fa4aa0c97a4a8abb7ed49e2741907a411eb0b08"]},"Data.Semiring":{"../../../support/bower_components/purescript-prelude/src/Data/Semiring.js":["2022-08-18T20:04:00Z","71c1f69848adaf5667acc7668bb53b42a14dd64f559e72d88ae879f123aa9d5892debb1758067b8c48bfcdbbd7392e2e9ea0e5d18603ab62dbdde5032662cf33"],"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs":["2022-08-18T20:04:00Z","70fe8b0c9eb461a6058b6c89ad182fb99d4e930f158b015a386ee67ece2445b5e7aba5e539dd7377822de1b045b80d1e439f191a2274c6e95c7fb3dba535d8c0"]},"Data.Semiring.Generic":{"../../../support/bower_components/purescript-prelude/src/Data/Semiring/Generic.purs":["2022-08-18T20:04:00Z","e1aeb61208e3b96999f07cc41307d50fa8025c2f688e9dc24d7286933a11cc1ec253375e10e25fb578801bcda7b18b7342bb13275f4ca72478a2aff9ea872799"]},"Data.Show":{"../../../support/bower_components/purescript-prelude/src/Data/Show.js":["2022-08-18T20:04:00Z","588e533a8d2dce9eb3815e58e38fe06ac7758adb50295d4325c47db26031d0ea48cb341d5e3d7caaeae40f4d95a9c3c5381feba3a50653d1a76e3835b0628f0d"],"../../../support/bower_components/purescript-prelude/src/Data/Show.purs":["2022-08-18T20:04:00Z","b52834da5151dffab06693e15efb93608a43ab7866901f86ee47191f085fade2d7ebbad800aff8ad7d7171d349e312bfc01dd4e8cad4eb6c12eacd50d9381764"]},"Data.Show.Generic":{"../../../support/bower_components/purescript-prelude/src/Data/Show/Generic.js":["2022-08-18T20:04:00Z","f8b9a3c651ceb9e8f2ee15ae532ecd371794b4e9f3b14eb0508656c1ae853654d7e3d3c719a9a98f0dcbc81df3b03266c05d3bc01c9b62d6d8ce29d4794e4b1b"],"../../../support/bower_components/purescript-prelude/src/Data/Show/Generic.purs":["2022-08-18T20:04:00Z","37b5a1168cd88f5f6f2d2a584cfe2c69e326b9f3e62291ec607c6e4a12da144450088fe65e95cbd04204d9c616a04696b5b3d0d7e444e8628b4a1eb3597c534d"]},"Data.Symbol":{"../../../support/bower_components/purescript-prelude/src/Data/Symbol.js":["2022-08-18T20:04:00Z","c980adfe8e297bfe8e257903de3ac13f5675c6f52ed95e8c2786fcacc52adde10b5de56c9432859c3c7c8f51d1866f2e8d4a961d60e1bff656def39e3b3cdcf7"],"../../../support/bower_components/purescript-prelude/src/Data/Symbol.purs":["2022-08-18T20:04:00Z","579409ca0036164a1a0534b266cc1c90de7b020ecea470cdedf0a97cc34ae1f25ab441df9789798dc30f6a4c8f6c6368c79dc5523d9de336e57dcc6325127cb2"]},"Data.Unit":{"../../../support/bower_components/purescript-prelude/src/Data/Unit.js":["2022-08-18T20:04:00Z","d7185d75aa1f2fe353e4e200ab4181472e354d6295cb2e6587a56636b1bc733be77b2f5616b20275fe7be0138a6442b2979864b1b234a813f8d9237baa4cd5f3"],"../../../support/bower_components/purescript-prelude/src/Data/Unit.purs":["2022-08-18T20:04:00Z","425d50d748941435bf7f4d6b61769e2b0931973280ba6dd91dcca3f963cc9223b2a7ccd5827611182348041c0813b3be828e2dacc54933ddc152d6e50f7f2f3d"]},"Data.Void":{"../../../support/bower_components/purescript-prelude/src/Data/Void.purs":["2022-08-18T20:04:00Z","28ae6f4ecd4ee9a07dc5c034f189a8740a9e14bef332d6bab73b8e3b2ea51ed2bec88d84862ff4cd989e671be324b019282a2678a6d73e59f05af414705bd47e"]},"Effect":{"../../../support/bower_components/purescript-effect/src/Effect.js":["2022-04-27T14:04:24Z","9683b917c04f50b5b8a41d8294b101d7787cd0a742840e6f05ec143f881bfb51807a2efd29a9296def2676e7c1860352f3d89f78f9205567575c5040f790da32"],"../../../support/bower_components/purescript-effect/src/Effect.purs":["2022-04-27T14:04:24Z","25ea461900466a6aade8a56c20921d46eb037a71efb12c4265dd378e760843e5793efb9f7cb47322511459136d9d4ecd6d09e5a089a432d96ef4af4530ad8e8d"]},"Effect.Class":{"../../../support/bower_components/purescript-effect/src/Effect/Class.purs":["2022-04-27T14:04:24Z","47e0114539e25826ffba341faf99133ed2499027f0955fa606d563d3504c6b41dc9d425dfa619c0c83b5fc2ab8dbb3c1bf2166b5980c5674fb93560c9b80d585"]},"Effect.Class.Console":{"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs":["2023-10-08T17:07:02Z","83dd2086be201a053908c2f6083c342c7ac3dd1eedd16d28eda405f97fe51c4d50363e837c79a95aef78de222d2fcf579c19fed4b5c3ba9f16ea7e537912a996"]},"Effect.Console":{"../../../support/bower_components/purescript-console/src/Effect/Console.js":["2023-10-08T17:07:02Z","b3d1b0aacf58d500207502e4fda74bf6ee203c3650c8ccc061eaafcac512ce76ee1347aa7d44630a1420013fd7ae262d5b7755b216002125d9c58d29ee84ec03"],"../../../support/bower_components/purescript-console/src/Effect/Console.purs":["2023-10-08T17:07:02Z","44ab0ee3661fb4d26d5cbeb22d2dcf111b3a4391c9f20c0ef906a27714d8a90524bd22eb1351c2795388f66241983242089b58377a8ea0723f17b259ace592c0"]},"Effect.Uncurried":{"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.js":["2022-04-27T14:04:24Z","4c6c5db78b72ff3b84623d894b05dd916cc0732dc08d1fd45d8b0768983fdd7377b7299add3c70475459d0e190af99e2176e4c17a8cfbf295c675456bd5ba7d2"],"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs":["2022-04-27T14:04:24Z","a948cb1cab11f5019fe20dd697b5c6e248c3b29c7ab332c2cb9d792cfcb58021a77c0f4f71e1c8d7c0b3b9cb18bd1497a0d2f40680926390f3303ecb1fe25beb"]},"Effect.Unsafe":{"../../../support/bower_components/purescript-effect/src/Effect/Unsafe.js":["2022-04-27T14:04:24Z","e66a1117e55534d61b7cd8e1859b54ef97446e0374116867383d2027bd85b73e510cbd1e4e74067b740fffb66c11e243af8d0976b2dc225d9865d882486cccdd"],"../../../support/bower_components/purescript-effect/src/Effect/Unsafe.purs":["2022-04-27T14:04:24Z","c112c559df0f177472e96655b09165d5535f68caddc2b419b4cdfe796af19b962b0659cb609a2ce501002da7de34e66592b5491ebe6f538824c2db8a1e800ea7"]},"Main":{"src/Main.purs":["2021-10-25T20:49:21Z","55bdd6dd11fb1679cb11793dd2996de21972f7aa53826557273bd649004f5907ff8cf6dff840718a12084c421529c9da7d70f698689d3923ab4ae3d608591c66"]},"Prelude":{"../../../support/bower_components/purescript-prelude/src/Prelude.purs":["2022-08-18T20:04:00Z","c67b6a882790c17476eb477da2cfc71dc4c26f297e7b4581b5ae9b0d08040ea7c7b55ed3afb3e824806e573ea4dd307eaa7cb49cfb2a756973b226ee1023e6fc"]},"Record.Unsafe":{"../../../support/bower_components/purescript-prelude/src/Record/Unsafe.js":["2022-08-18T20:04:00Z","667d613a0e1265a710e98c9f6e64ff791b9e9b7227cdf699c3a25724077c02e42726c807c0387ca4484454fd853d5b41522bf2e048887f22a894413ef80cbb92"],"../../../support/bower_components/purescript-prelude/src/Record/Unsafe.purs":["2022-08-18T20:04:00Z","af8a7c83127f5e61853ad0e572be799c04e321562a375d51ab133706ac6a6777e169b057f01a709ad7aae2d8c7a5ae8daa28eae8793c4fe92e2e8f0cfaecf870"]},"Safe.Coerce":{"../../../support/bower_components/purescript-safe-coerce/src/Safe/Coerce.purs":["2022-04-27T14:56:52Z","595abade13e21ed7893a92b338d9e7c7bf56e9067d51ca25c387d6d93a1c5542925f062e282602e89476a45501645c76dbd57eac31cc4e5c1cf341e2902beb89"]},"Type.Proxy":{"../../../support/bower_components/purescript-prelude/src/Type/Proxy.purs":["2022-08-18T20:04:00Z","333d0ae90b05098eada860ad476ed9e1eacd67d969dc1573c74375610cf8de22e85a358a7783a0a461d7ffa6fe322d8c3e90696be02555a02793ac99aba687f2"]},"Unsafe.Coerce":{"../../../support/bower_components/purescript-unsafe-coerce/src/Unsafe/Coerce.js":["2022-04-27T14:15:44Z","031c3187f7ce65110a359260041309506e1ff39a97b6eb22c9a8f2e5c14b35db87d509bb5929f245c5d80df6ccd6dadf83579ebe4ac46650acdfa34a493cfc0d"],"../../../support/bower_components/purescript-unsafe-coerce/src/Unsafe/Coerce.purs":["2022-04-27T14:15:44Z","04b214d9cbbf0c438bb2af4b25f8db5d04f247059241982f718c6d83322c3180f0eced0eb5c410860dcdb35650e9129a1cffe87f7279308cc4cf6c6570bba74f"]}}
diff --git a/tests/purs/publish/basic-example/output/package.json b/tests/purs/publish/basic-example/output/package.json
new file mode 100644
--- /dev/null
+++ b/tests/purs/publish/basic-example/output/package.json
@@ -0,0 +1,1 @@
+{"type":"module"}
diff --git a/tests/purs/publish/basic-example/purs.json b/tests/purs/publish/basic-example/purs.json
new file mode 100644
--- /dev/null
+++ b/tests/purs/publish/basic-example/purs.json
@@ -0,0 +1,14 @@
+{
+  "name": "basic-example",
+  "version": "1.0.0",
+  "license": "MIT",
+  "location": {
+    "githubOwner": "purescript",
+    "githubRepo": "test"
+  },
+  "dependencies": {
+    "console": ">=1.0.0 <2.0.0",
+    "prelude": ">=1.0.0 <2.0.0",
+    "effect": ">=1.0.0 <2.0.0"
+  }
+}
diff --git a/tests/purs/publish/basic-example/resolutions-legacy.json b/tests/purs/publish/basic-example/resolutions-legacy.json
deleted file mode 100644
--- a/tests/purs/publish/basic-example/resolutions-legacy.json
+++ /dev/null
@@ -1,640 +0,0 @@
-{
-  "endpoint": {
-    "name": "basic-example",
-    "source": ".",
-    "target": "*"
-  },
-  "canonicalDir": ".",
-  "pkgMeta": {
-    "name": "basic-example",
-    "ignore": [
-      "**/.*",
-      "node_modules",
-      "bower_components",
-      "output"
-    ],
-    "dependencies": {
-      "purescript-prelude": "^4.1.0",
-      "purescript-console": "^4.2.0",
-      "purescript-effect": "^2.0.1",
-      "purescript-newtype": "#master"
-    },
-    "devDependencies": {
-      "purescript-psci-support": "^4.0.0"
-    }
-  },
-  "dependencies": {
-    "purescript-console": {
-      "endpoint": {
-        "name": "purescript-console",
-        "source": "purescript-console",
-        "target": "^4.2.0"
-      },
-      "canonicalDir": "../../../support/bower_components/purescript-console",
-      "pkgMeta": {
-        "name": "purescript-console",
-        "homepage": "https://github.com/purescript/purescript-console",
-        "license": "BSD-3-Clause",
-        "repository": {
-          "type": "git",
-          "url": "git://github.com/purescript/purescript-console.git"
-        },
-        "ignore": [
-          "**/.*",
-          "bower_components",
-          "node_modules",
-          "output",
-          "test",
-          "bower.json",
-          "package.json"
-        ],
-        "dependencies": {
-          "purescript-effect": "^2.0.0",
-          "purescript-prelude": "^4.0.0"
-        },
-        "version": "4.2.0",
-        "_release": "4.2.0",
-        "_resolution": {
-          "type": "version",
-          "tag": "v4.2.0",
-          "commit": "add2bdb8a4af2213d993b728805f1f2a5e76deb8"
-        },
-        "_source": "https://github.com/purescript/purescript-console.git",
-        "_target": "^4.2.0",
-        "_originalSource": "purescript-console"
-      },
-      "dependencies": {
-        "purescript-effect": {
-          "endpoint": {
-            "name": "purescript-effect",
-            "source": "purescript-effect",
-            "target": "^2.0.0"
-          },
-          "canonicalDir": "../../../support/bower_components/purescript-effect",
-          "pkgMeta": {
-            "name": "purescript-effect",
-            "homepage": "https://github.com/purescript/purescript-effect",
-            "license": "BSD-3-Clause",
-            "repository": {
-              "type": "git",
-              "url": "git://github.com/purescript/purescript-effect.git"
-            },
-            "ignore": [
-              "**/.*",
-              "bower_components",
-              "node_modules",
-              "output",
-              "test",
-              "bower.json",
-              "package.json"
-            ],
-            "dependencies": {
-              "purescript-prelude": "^4.0.0"
-            },
-            "version": "2.0.1",
-            "_release": "2.0.1",
-            "_resolution": {
-              "type": "version",
-              "tag": "v2.0.1",
-              "commit": "d2a11e69abcda3b81c750e86e8746cda278f47bf"
-            },
-            "_source": "https://github.com/purescript/purescript-effect.git",
-            "_target": "^2.0.1",
-            "_originalSource": "purescript-effect"
-          },
-          "dependencies": {
-            "purescript-prelude": {
-              "endpoint": {
-                "name": "purescript-prelude",
-                "source": "purescript-prelude",
-                "target": "^4.0.0"
-              },
-              "canonicalDir": "../../../support/bower_components/purescript-prelude",
-              "pkgMeta": {
-                "name": "purescript-prelude",
-                "homepage": "https://github.com/purescript/purescript-prelude",
-                "description": "The PureScript Prelude",
-                "license": "BSD-3-Clause",
-                "repository": {
-                  "type": "git",
-                  "url": "git://github.com/purescript/purescript-prelude.git"
-                },
-                "ignore": [
-                  "**/.*",
-                  "bower_components",
-                  "node_modules",
-                  "output",
-                  "test",
-                  "bower.json",
-                  "package.json"
-                ],
-                "version": "4.1.0",
-                "_release": "4.1.0",
-                "_resolution": {
-                  "type": "version",
-                  "tag": "v4.1.0",
-                  "commit": "7a691ce2658bd8eaf28439391e29506dd154fb3d"
-                },
-                "_source": "https://github.com/purescript/purescript-prelude.git",
-                "_target": "^4.1.0",
-                "_originalSource": "purescript-prelude"
-              },
-              "dependencies": {},
-              "nrDependants": 1
-            }
-          },
-          "nrDependants": 1
-        },
-        "purescript-prelude": {
-          "endpoint": {
-            "name": "purescript-prelude",
-            "source": "purescript-prelude",
-            "target": "^4.0.0"
-          },
-          "canonicalDir": "../../../support/bower_components/purescript-prelude",
-          "pkgMeta": {
-            "name": "purescript-prelude",
-            "homepage": "https://github.com/purescript/purescript-prelude",
-            "description": "The PureScript Prelude",
-            "license": "BSD-3-Clause",
-            "repository": {
-              "type": "git",
-              "url": "git://github.com/purescript/purescript-prelude.git"
-            },
-            "ignore": [
-              "**/.*",
-              "bower_components",
-              "node_modules",
-              "output",
-              "test",
-              "bower.json",
-              "package.json"
-            ],
-            "version": "4.1.0",
-            "_release": "4.1.0",
-            "_resolution": {
-              "type": "version",
-              "tag": "v4.1.0",
-              "commit": "7a691ce2658bd8eaf28439391e29506dd154fb3d"
-            },
-            "_source": "https://github.com/purescript/purescript-prelude.git",
-            "_target": "^4.1.0",
-            "_originalSource": "purescript-prelude"
-          },
-          "dependencies": {},
-          "nrDependants": 1
-        }
-      },
-      "nrDependants": 1
-    },
-    "purescript-effect": {
-      "endpoint": {
-        "name": "purescript-effect",
-        "source": "purescript-effect",
-        "target": "^2.0.1"
-      },
-      "canonicalDir": "../../../support/bower_components/purescript-effect",
-      "pkgMeta": {
-        "name": "purescript-effect",
-        "homepage": "https://github.com/purescript/purescript-effect",
-        "license": "BSD-3-Clause",
-        "repository": {
-          "type": "git",
-          "url": "git://github.com/purescript/purescript-effect.git"
-        },
-        "ignore": [
-          "**/.*",
-          "bower_components",
-          "node_modules",
-          "output",
-          "test",
-          "bower.json",
-          "package.json"
-        ],
-        "dependencies": {
-          "purescript-prelude": "^4.0.0"
-        },
-        "version": "2.0.1",
-        "_release": "2.0.1",
-        "_resolution": {
-          "type": "version",
-          "tag": "v2.0.1",
-          "commit": "d2a11e69abcda3b81c750e86e8746cda278f47bf"
-        },
-        "_source": "https://github.com/purescript/purescript-effect.git",
-        "_target": "^2.0.1",
-        "_originalSource": "purescript-effect"
-      },
-      "dependencies": {},
-      "nrDependants": 1
-    },
-    "purescript-newtype": {
-      "endpoint": {
-        "name": "purescript-newtype",
-        "source": "purescript-newtype",
-        "target": "master"
-      },
-      "canonicalDir": "../../../support/bower_components/purescript-newtype",
-      "pkgMeta": {
-        "name": "purescript-newtype",
-        "homepage": "https://github.com/purescript/purescript-newtype",
-        "description": "Type class and functions for working with newtypes",
-        "license": "BSD-3-Clause",
-        "repository": {
-          "type": "git",
-          "url": "git://github.com/purescript/purescript-newtype.git"
-        },
-        "ignore": [
-          "**/.*",
-          "bower_components",
-          "node_modules",
-          "output",
-          "test",
-          "bower.json",
-          "package.json"
-        ],
-        "dependencies": {
-          "purescript-prelude": "^4.0.0"
-        },
-        "_release": "7d85fa6a04",
-        "_resolution": {
-          "type": "branch",
-          "branch": "master",
-          "commit": "7d85fa6a040208c010b05f7c23af6a943ba08763"
-        },
-        "_source": "https://github.com/garyb/purescript-newtype.git",
-        "_target": "master",
-        "_originalSource": "purescript-newtype"
-      },
-      "dependencies": {
-        "purescript-prelude": {
-          "endpoint": {
-            "name": "purescript-prelude",
-            "source": "purescript-prelude",
-            "target": "^4.0.0"
-          },
-          "canonicalDir": "../../../support/bower_components/purescript-prelude",
-          "pkgMeta": {
-            "name": "purescript-prelude",
-            "homepage": "https://github.com/purescript/purescript-prelude",
-            "description": "The PureScript Prelude",
-            "license": "BSD-3-Clause",
-            "repository": {
-              "type": "git",
-              "url": "git://github.com/purescript/purescript-prelude.git"
-            },
-            "ignore": [
-              "**/.*",
-              "bower_components",
-              "node_modules",
-              "output",
-              "test",
-              "bower.json",
-              "package.json"
-            ],
-            "version": "4.1.0",
-            "_release": "4.1.0",
-            "_resolution": {
-              "type": "version",
-              "tag": "v4.1.0",
-              "commit": "7a691ce2658bd8eaf28439391e29506dd154fb3d"
-            },
-            "_source": "https://github.com/purescript/purescript-prelude.git",
-            "_target": "^4.1.0",
-            "_originalSource": "purescript-prelude"
-          },
-          "dependencies": {},
-          "nrDependants": 1
-        }
-      },
-      "nrDependants": 1
-    },
-    "purescript-prelude": {
-      "endpoint": {
-        "name": "purescript-prelude",
-        "source": "purescript-prelude",
-        "target": "^4.1.0"
-      },
-      "canonicalDir": "../../../support/bower_components/purescript-prelude",
-      "pkgMeta": {
-        "name": "purescript-prelude",
-        "homepage": "https://github.com/purescript/purescript-prelude",
-        "description": "The PureScript Prelude",
-        "license": "BSD-3-Clause",
-        "repository": {
-          "type": "git",
-          "url": "git://github.com/purescript/purescript-prelude.git"
-        },
-        "ignore": [
-          "**/.*",
-          "bower_components",
-          "node_modules",
-          "output",
-          "test",
-          "bower.json",
-          "package.json"
-        ],
-        "version": "4.1.0",
-        "_release": "4.1.0",
-        "_resolution": {
-          "type": "version",
-          "tag": "v4.1.0",
-          "commit": "7a691ce2658bd8eaf28439391e29506dd154fb3d"
-        },
-        "_source": "https://github.com/purescript/purescript-prelude.git",
-        "_target": "^4.1.0",
-        "_originalSource": "purescript-prelude"
-      },
-      "dependencies": {},
-      "nrDependants": 1
-    },
-    "purescript-psci-support": {
-      "endpoint": {
-        "name": "purescript-psci-support",
-        "source": "purescript-psci-support",
-        "target": "^4.0.0"
-      },
-      "canonicalDir": "../../../support/bower_components/purescript-psci-support",
-      "pkgMeta": {
-        "name": "purescript-psci-support",
-        "homepage": "https://github.com/purescript/purescript-psci-support",
-        "description": "Support module for the PSCI interactive mode",
-        "license": "BSD-3-Clause",
-        "repository": {
-          "type": "git",
-          "url": "git://github.com/purescript/purescript-psci-support.git"
-        },
-        "ignore": [
-          "**/.*",
-          "bower_components",
-          "node_modules",
-          "output",
-          "bower.json",
-          "package.json"
-        ],
-        "dependencies": {
-          "purescript-console": "^4.0.0",
-          "purescript-effect": "^2.0.0",
-          "purescript-prelude": "^4.0.0"
-        },
-        "version": "4.0.0",
-        "_release": "4.0.0",
-        "_resolution": {
-          "type": "version",
-          "tag": "v4.0.0",
-          "commit": "a66a0fa8661eb8b5fe75cc862f4e2df2835c058d"
-        },
-        "_source": "https://github.com/purescript/purescript-psci-support.git",
-        "_target": "^4.0.0",
-        "_originalSource": "purescript-psci-support"
-      },
-      "dependencies": {
-        "purescript-console": {
-          "endpoint": {
-            "name": "purescript-console",
-            "source": "purescript-console",
-            "target": "^4.0.0"
-          },
-          "canonicalDir": "../../../support/bower_components/purescript-console",
-          "pkgMeta": {
-            "name": "purescript-console",
-            "homepage": "https://github.com/purescript/purescript-console",
-            "license": "BSD-3-Clause",
-            "repository": {
-              "type": "git",
-              "url": "git://github.com/purescript/purescript-console.git"
-            },
-            "ignore": [
-              "**/.*",
-              "bower_components",
-              "node_modules",
-              "output",
-              "test",
-              "bower.json",
-              "package.json"
-            ],
-            "dependencies": {
-              "purescript-effect": "^2.0.0",
-              "purescript-prelude": "^4.0.0"
-            },
-            "version": "4.2.0",
-            "_release": "4.2.0",
-            "_resolution": {
-              "type": "version",
-              "tag": "v4.2.0",
-              "commit": "add2bdb8a4af2213d993b728805f1f2a5e76deb8"
-            },
-            "_source": "https://github.com/purescript/purescript-console.git",
-            "_target": "^4.2.0",
-            "_originalSource": "purescript-console"
-          },
-          "dependencies": {
-            "purescript-effect": {
-              "endpoint": {
-                "name": "purescript-effect",
-                "source": "purescript-effect",
-                "target": "^2.0.0"
-              },
-              "canonicalDir": "../../../support/bower_components/purescript-effect",
-              "pkgMeta": {
-                "name": "purescript-effect",
-                "homepage": "https://github.com/purescript/purescript-effect",
-                "license": "BSD-3-Clause",
-                "repository": {
-                  "type": "git",
-                  "url": "git://github.com/purescript/purescript-effect.git"
-                },
-                "ignore": [
-                  "**/.*",
-                  "bower_components",
-                  "node_modules",
-                  "output",
-                  "test",
-                  "bower.json",
-                  "package.json"
-                ],
-                "dependencies": {
-                  "purescript-prelude": "^4.0.0"
-                },
-                "version": "2.0.1",
-                "_release": "2.0.1",
-                "_resolution": {
-                  "type": "version",
-                  "tag": "v2.0.1",
-                  "commit": "d2a11e69abcda3b81c750e86e8746cda278f47bf"
-                },
-                "_source": "https://github.com/purescript/purescript-effect.git",
-                "_target": "^2.0.1",
-                "_originalSource": "purescript-effect"
-              },
-              "dependencies": {
-                "purescript-prelude": {
-                  "endpoint": {
-                    "name": "purescript-prelude",
-                    "source": "purescript-prelude",
-                    "target": "^4.0.0"
-                  },
-                  "canonicalDir": "../../../support/bower_components/purescript-prelude",
-                  "pkgMeta": {
-                    "name": "purescript-prelude",
-                    "homepage": "https://github.com/purescript/purescript-prelude",
-                    "description": "The PureScript Prelude",
-                    "license": "BSD-3-Clause",
-                    "repository": {
-                      "type": "git",
-                      "url": "git://github.com/purescript/purescript-prelude.git"
-                    },
-                    "ignore": [
-                      "**/.*",
-                      "bower_components",
-                      "node_modules",
-                      "output",
-                      "test",
-                      "bower.json",
-                      "package.json"
-                    ],
-                    "version": "4.1.0",
-                    "_release": "4.1.0",
-                    "_resolution": {
-                      "type": "version",
-                      "tag": "v4.1.0",
-                      "commit": "7a691ce2658bd8eaf28439391e29506dd154fb3d"
-                    },
-                    "_source": "https://github.com/purescript/purescript-prelude.git",
-                    "_target": "^4.1.0",
-                    "_originalSource": "purescript-prelude"
-                  },
-                  "dependencies": {},
-                  "nrDependants": 1
-                }
-              },
-              "nrDependants": 1
-            },
-            "purescript-prelude": {
-              "endpoint": {
-                "name": "purescript-prelude",
-                "source": "purescript-prelude",
-                "target": "^4.0.0"
-              },
-              "canonicalDir": "../../../support/bower_components/purescript-prelude",
-              "pkgMeta": {
-                "name": "purescript-prelude",
-                "homepage": "https://github.com/purescript/purescript-prelude",
-                "description": "The PureScript Prelude",
-                "license": "BSD-3-Clause",
-                "repository": {
-                  "type": "git",
-                  "url": "git://github.com/purescript/purescript-prelude.git"
-                },
-                "ignore": [
-                  "**/.*",
-                  "bower_components",
-                  "node_modules",
-                  "output",
-                  "test",
-                  "bower.json",
-                  "package.json"
-                ],
-                "version": "4.1.0",
-                "_release": "4.1.0",
-                "_resolution": {
-                  "type": "version",
-                  "tag": "v4.1.0",
-                  "commit": "7a691ce2658bd8eaf28439391e29506dd154fb3d"
-                },
-                "_source": "https://github.com/purescript/purescript-prelude.git",
-                "_target": "^4.1.0",
-                "_originalSource": "purescript-prelude"
-              },
-              "dependencies": {},
-              "nrDependants": 1
-            }
-          },
-          "nrDependants": 1
-        },
-        "purescript-effect": {
-          "endpoint": {
-            "name": "purescript-effect",
-            "source": "purescript-effect",
-            "target": "^2.0.0"
-          },
-          "canonicalDir": "../../../support/bower_components/purescript-effect",
-          "pkgMeta": {
-            "name": "purescript-effect",
-            "homepage": "https://github.com/purescript/purescript-effect",
-            "license": "BSD-3-Clause",
-            "repository": {
-              "type": "git",
-              "url": "git://github.com/purescript/purescript-effect.git"
-            },
-            "ignore": [
-              "**/.*",
-              "bower_components",
-              "node_modules",
-              "output",
-              "test",
-              "bower.json",
-              "package.json"
-            ],
-            "dependencies": {
-              "purescript-prelude": "^4.0.0"
-            },
-            "version": "2.0.1",
-            "_release": "2.0.1",
-            "_resolution": {
-              "type": "version",
-              "tag": "v2.0.1",
-              "commit": "d2a11e69abcda3b81c750e86e8746cda278f47bf"
-            },
-            "_source": "https://github.com/purescript/purescript-effect.git",
-            "_target": "^2.0.1",
-            "_originalSource": "purescript-effect"
-          },
-          "dependencies": {},
-          "nrDependants": 1
-        },
-        "purescript-prelude": {
-          "endpoint": {
-            "name": "purescript-prelude",
-            "source": "purescript-prelude",
-            "target": "^4.0.0"
-          },
-          "canonicalDir": "../../../support/bower_components/purescript-prelude",
-          "pkgMeta": {
-            "name": "purescript-prelude",
-            "homepage": "https://github.com/purescript/purescript-prelude",
-            "description": "The PureScript Prelude",
-            "license": "BSD-3-Clause",
-            "repository": {
-              "type": "git",
-              "url": "git://github.com/purescript/purescript-prelude.git"
-            },
-            "ignore": [
-              "**/.*",
-              "bower_components",
-              "node_modules",
-              "output",
-              "test",
-              "bower.json",
-              "package.json"
-            ],
-            "version": "4.1.0",
-            "_release": "4.1.0",
-            "_resolution": {
-              "type": "version",
-              "tag": "v4.1.0",
-              "commit": "7a691ce2658bd8eaf28439391e29506dd154fb3d"
-            },
-            "_source": "https://github.com/purescript/purescript-prelude.git",
-            "_target": "^4.1.0",
-            "_originalSource": "purescript-prelude"
-          },
-          "dependencies": {},
-          "nrDependants": 1
-        }
-      },
-      "nrDependants": 1
-    }
-  },
-  "nrDependants": 0
-}
diff --git a/tests/purs/publish/basic-example/resolutions.json b/tests/purs/publish/basic-example/resolutions.json
--- a/tests/purs/publish/basic-example/resolutions.json
+++ b/tests/purs/publish/basic-example/resolutions.json
@@ -13,5 +13,11 @@
   },
   "purescript-newtype": {
     "path": "../../../support/bower_components/purescript-newtype"
+  },
+  "purescript-safe-coerce": {
+    "path": "../../../support/bower_components/purescript-safe-coerce"
+  },
+  "purescript-unsafe-coerce": {
+    "path": "../../../support/bower_components/purescript-unsafe-coerce"
   }
 }
diff --git a/tests/purs/sourcemaps/Bug4034.js b/tests/purs/sourcemaps/Bug4034.js
new file mode 100644
--- /dev/null
+++ b/tests/purs/sourcemaps/Bug4034.js
@@ -0,0 +1,51 @@
+export const log = function (s) {
+  return function () {
+    console.log(s);
+  };
+};
+
+export const warn = function (s) {
+  return function () {
+    console.warn(s);
+  };
+};
+
+export const error = function (s) {
+  return function () {
+    console.error(s);
+  };
+};
+
+export const info = function (s) {
+  return function () {
+    console.info(s);
+  };
+};
+
+export const debug = function (s) {
+  return function () {
+    console.debug(s);
+  };
+};
+
+export const time = function (s) {
+  return function () {
+    console.time(s);
+  };
+};
+
+export const timeLog = function (s) {
+  return function () {
+    console.timeLog(s);
+  };
+};
+
+export const timeEnd = function (s) {
+  return function () {
+    console.timeEnd(s);
+  };
+};
+
+export const clear = function () {
+  console.clear();
+};
diff --git a/tests/purs/sourcemaps/Bug4034.out.js.map b/tests/purs/sourcemaps/Bug4034.out.js.map
new file mode 100644
--- /dev/null
+++ b/tests/purs/sourcemaps/Bug4034.out.js.map
@@ -0,0 +1,1 @@
+{"file":"index.js","mappings":";;;;;;;;AA2BA,eAAA;;WAAA;kCACwB;;;;;;AAXxB,cAAA;;WAAA;iCACsB;;;;;;AA6BtB,eAAA;;WAAA;kCACwB;;;;;;AAXxB,gBAAA;;WAAA;mCAC0B;;;;;;AAmB1B,gBAAA;;WAAA;mCAC0B","names":[],"sources":["../../tests/purs/sourcemaps/Bug4034.purs"],"version":3}
diff --git a/tests/purs/sourcemaps/Bug4034.purs b/tests/purs/sourcemaps/Bug4034.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/sourcemaps/Bug4034.purs
@@ -0,0 +1,71 @@
+-- | This module is the same as `purescript-effect@v6.0.0`'s `Effect.Console` file
+-- | under a different module name.
+-- | This verifies that null source spans are no longer emitted.
+module SourceMaps.Bug4034 where
+
+import Effect (Effect)
+
+import Data.Show (class Show, show)
+import Data.Unit (Unit)
+
+-- | Write a message to the console.
+foreign import log
+  :: String
+  -> Effect Unit
+
+-- | Write a value to the console, using its `Show` instance to produce a
+-- | `String`.
+logShow :: forall a. Show a => a -> Effect Unit
+logShow a = log (show a)
+
+-- | Write an warning to the console.
+foreign import warn
+  :: String
+  -> Effect Unit
+
+-- | Write an warning value to the console, using its `Show` instance to produce
+-- | a `String`.
+warnShow :: forall a. Show a => a -> Effect Unit
+warnShow a = warn (show a)
+
+-- | Write an error to the console.
+foreign import error
+  :: String
+  -> Effect Unit
+
+-- | Write an error value to the console, using its `Show` instance to produce a
+-- | `String`.
+errorShow :: forall a. Show a => a -> Effect Unit
+errorShow a = error (show a)
+
+-- | Write an info message to the console.
+foreign import info
+  :: String
+  -> Effect Unit
+
+-- | Write an info value to the console, using its `Show` instance to produce a
+-- | `String`.
+infoShow :: forall a. Show a => a -> Effect Unit
+infoShow a = info (show a)
+
+-- | Write an debug message to the console.
+foreign import debug
+  :: String
+  -> Effect Unit
+
+-- | Write an debug value to the console, using its `Show` instance to produce a
+-- | `String`.
+debugShow :: forall a. Show a => a -> Effect Unit
+debugShow a = debug (show a)
+
+-- | Start a named timer.
+foreign import time :: String -> Effect Unit
+
+-- | Print the time since a named timer started in milliseconds.
+foreign import timeLog :: String -> Effect Unit
+
+-- | Stop a named timer and print time since it started in milliseconds.
+foreign import timeEnd :: String -> Effect Unit
+
+-- | Clears the console
+foreign import clear :: Effect Unit
diff --git a/tests/purs/sourcemaps/Recipe.out.js.map b/tests/purs/sourcemaps/Recipe.out.js.map
new file mode 100644
--- /dev/null
+++ b/tests/purs/sourcemaps/Recipe.out.js.map
@@ -0,0 +1,1 @@
+{"file":"index.js","mappings":"","names":[],"sources":[],"version":3}
diff --git a/tests/purs/sourcemaps/Recipe.purs b/tests/purs/sourcemaps/Recipe.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/sourcemaps/Recipe.purs
@@ -0,0 +1,3 @@
+-- | This file demonstrates the naming convention to use for
+-- | source map tests
+module SourceMaps.Recipe where
diff --git a/tests/purs/warning/2140.out b/tests/purs/warning/2140.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/warning/2140.out
@@ -0,0 +1,11 @@
+Warning found:
+in module [33mMain[0m
+at tests/purs/warning/2140.purs:5:3 - 5:36 (line 5, column 3 - line 5, column 36)
+
+  Type variable [33ma[0m was shadowed.
+
+in type declaration for [33mf[0m
+
+See https://github.com/purescript/documentation/blob/master/errors/ShadowedTypeVar.md for more information,
+or to contribute content related to this warning.
+
diff --git a/tests/purs/warning/2383.out b/tests/purs/warning/2383.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/warning/2383.out
diff --git a/tests/purs/warning/2383.purs b/tests/purs/warning/2383.purs
--- a/tests/purs/warning/2383.purs
+++ b/tests/purs/warning/2383.purs
@@ -9,4 +9,5 @@
 main :: Effect Unit
 main = do
   x <- let x = pure unit in x
+  let _ = x -- don't warn x is unused
   pure unit
diff --git a/tests/purs/warning/2411.out b/tests/purs/warning/2411.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/warning/2411.out
@@ -0,0 +1,11 @@
+Warning found:
+in module [33mMain[0m
+at tests/purs/warning/2411.purs:11:7 - 11:15 (line 11, column 7 - line 11, column 15)
+
+  Name [33mx[0m was shadowed.
+
+in value declaration [33mtest[0m
+
+See https://github.com/purescript/documentation/blob/master/errors/ShadowedName.md for more information,
+or to contribute content related to this warning.
+
diff --git a/tests/purs/warning/2411.purs b/tests/purs/warning/2411.purs
--- a/tests/purs/warning/2411.purs
+++ b/tests/purs/warning/2411.purs
@@ -7,6 +7,7 @@
 
 test :: forall m. Monad m => Int -> m Unit
 test x =
+  let _ = x in -- don't mark x unused
   let x = unit
   in pure x
 
diff --git a/tests/purs/warning/2542.out b/tests/purs/warning/2542.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/warning/2542.out
@@ -0,0 +1,16 @@
+Warning found:
+in module [33mMain[0m
+at tests/purs/warning/2542.purs:16:1 - 16:18 (line 16, column 1 - line 16, column 18)
+
+  No type declaration was provided for the top-level declaration of [33mmain[0m.
+  It is good practice to provide type declarations as a form of documentation.
+  The inferred type of [33mmain[0m was:
+  [33m             [0m
+  [33m  Effect Unit[0m
+  [33m             [0m
+
+in value declaration [33mmain[0m
+
+See https://github.com/purescript/documentation/blob/master/errors/MissingTypeDeclaration.md for more information,
+or to contribute content related to this warning.
+
diff --git a/tests/purs/warning/4183.out b/tests/purs/warning/4183.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/warning/4183.out
@@ -0,0 +1,15 @@
+Warning found:
+in module [33mMain[0m
+at tests/purs/warning/4183.purs:4:1 - 4:21 (line 4, column 1 - line 4, column 21)
+
+  The inferred kind for the type declaration [33mT[0m contains polymorphic kinds.
+  Consider adding a top-level kind signature as a form of documentation.
+  [33m                                        [0m
+  [33m  type T :: forall k. (k -> k) -> k -> k[0m
+  [33m                                        [0m
+
+in type synonym [33mT[0m
+
+See https://github.com/purescript/documentation/blob/master/errors/MissingKindDeclaration.md for more information,
+or to contribute content related to this warning.
+
diff --git a/tests/purs/warning/4183.purs b/tests/purs/warning/4183.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/warning/4183.purs
@@ -0,0 +1,4 @@
+-- @shouldWarnWith MissingKindDeclaration
+module Main where
+
+type T f a = f (f a)
diff --git a/tests/purs/warning/4256.out b/tests/purs/warning/4256.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/warning/4256.out
@@ -0,0 +1,34 @@
+Warning 1 of 2:
+
+  in module [33mMain[0m
+  at tests/purs/warning/4256.purs:16:1 - 16:58 (line 16, column 1 - line 16, column 58)
+
+    No type declaration was provided for the top-level declaration of [33mbaz[0m.
+    It is good practice to provide type declarations as a form of documentation.
+    The inferred type of [33mbaz[0m was:
+    [33m                                                         [0m
+    [33m  forall c14 d15 b25 d27. d27 -> c14 -> b25 -> d15 -> d27[0m
+    [33m                                                         [0m
+
+  in value declaration [33mbaz[0m
+
+  See https://github.com/purescript/documentation/blob/master/errors/MissingTypeDeclaration.md for more information,
+  or to contribute content related to this warning.
+
+Warning 2 of 2:
+
+  in module [33mMain[0m
+  at tests/purs/warning/4256.purs:8:1 - 8:37 (line 8, column 1 - line 8, column 37)
+
+    No type declaration was provided for the top-level declaration of [33maddNumberSuffix'[0m.
+    It is good practice to provide type declarations as a form of documentation.
+    The inferred type of [33maddNumberSuffix'[0m was:
+    [33m                                              [0m
+    [33m  forall b34 c35 d36. b34 -> c35 -> d36 -> Int[0m
+    [33m                                              [0m
+
+  in value declaration [33maddNumberSuffix'[0m
+
+  See https://github.com/purescript/documentation/blob/master/errors/MissingTypeDeclaration.md for more information,
+  or to contribute content related to this warning.
+
diff --git a/tests/purs/warning/4256.purs b/tests/purs/warning/4256.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/warning/4256.purs
@@ -0,0 +1,16 @@
+-- @shouldWarnWith MissingTypeDeclaration
+-- @shouldWarnWith MissingTypeDeclaration
+module Main where
+
+addNumberSuffix :: forall a b c d. a -> b -> c -> d -> a
+addNumberSuffix a _ _ _ = a
+
+addNumberSuffix' = addNumberSuffix 0
+
+foo :: forall a b c d. a -> b -> c -> d -> a
+foo a _ _ _ = a
+
+bar :: forall a b c d. a -> b -> c -> d -> a
+bar a _ _ _ = a
+
+baz a x y = bar (foo a 2 3 4) (foo a 2 3 4) (foo x y a a)
diff --git a/tests/purs/warning/4268.out b/tests/purs/warning/4268.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/warning/4268.out
diff --git a/tests/purs/warning/4268.purs b/tests/purs/warning/4268.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/warning/4268.purs
@@ -0,0 +1,4 @@
+module Main where
+
+f :: Partial => Int -> Int
+f 0 = f 1
diff --git a/tests/purs/warning/4308.out b/tests/purs/warning/4308.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/warning/4308.out
@@ -0,0 +1,49 @@
+Warning 1 of 3:
+
+  in module [33mMain[0m
+  at tests/purs/warning/4308.purs:13:6 - 13:7 (line 13, column 6 - line 13, column 7)
+
+    Wildcard type definition has the inferred type
+    [33m     [0m
+    [33m  Int[0m
+    [33m     [0m
+
+  in value declaration [33mg[0m
+
+  See https://github.com/purescript/documentation/blob/master/errors/WildcardInferredType.md for more information,
+  or to contribute content related to this warning.
+
+Warning 2 of 3:
+
+  in module [33mMain[0m
+  at tests/purs/warning/4308.purs:14:13 - 14:14 (line 14, column 13 - line 14, column 14)
+
+    Wildcard type definition has the inferred type
+    [33m     [0m
+    [33m  Int[0m
+    [33m     [0m
+
+  in value declaration [33mg[0m
+
+  See https://github.com/purescript/documentation/blob/master/errors/WildcardInferredType.md for more information,
+  or to contribute content related to this warning.
+
+Warning 3 of 3:
+
+  in module [33mMain[0m
+  at tests/purs/warning/4308.purs:14:25 - 14:26 (line 14, column 25 - line 14, column 26)
+
+    Wildcard type definition has the inferred type
+    [33m     [0m
+    [33m  Int[0m
+    [33m     [0m
+    in the following context:
+
+      y :: [33mInt[0m
+
+
+  in value declaration [33mg[0m
+
+  See https://github.com/purescript/documentation/blob/master/errors/WildcardInferredType.md for more information,
+  or to contribute content related to this warning.
+
diff --git a/tests/purs/warning/4308.purs b/tests/purs/warning/4308.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/warning/4308.purs
@@ -0,0 +1,14 @@
+-- @shouldWarnWith WildcardInferredType
+-- @shouldWarnWith WildcardInferredType
+-- @shouldWarnWith WildcardInferredType
+module Main where
+
+-- No warnings expected here because `f` has full type signature
+f :: Int
+f = (\(y :: _) -> (y :: _)) 42
+
+-- All three warnings expected here because the type signature of `g` has a
+-- wildcard in it. One warning for the top-level signature wildcard, one for the
+-- wildcard in the lambda parameter pattern, and one in the lambda body.
+g :: _
+g = (\(y :: _) -> (y :: _)) 42
diff --git a/tests/purs/warning/4376.out b/tests/purs/warning/4376.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/warning/4376.out
@@ -0,0 +1,16 @@
+Warning found:
+in module [33mMain[0m
+at tests/purs/warning/4376.purs:6:1 - 6:16 (line 6, column 1 - line 6, column 16)
+
+  No type declaration was provided for the top-level declaration of [33mvalue[0m.
+  It is good practice to provide type declarations as a form of documentation.
+  The inferred type of [33mvalue[0m was:
+  [33m                    [0m
+  [33m  forall @a. Maybe a[0m
+  [33m                    [0m
+
+in value declaration [33mvalue[0m
+
+See https://github.com/purescript/documentation/blob/master/errors/MissingTypeDeclaration.md for more information,
+or to contribute content related to this warning.
+
diff --git a/tests/purs/warning/4376.purs b/tests/purs/warning/4376.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/warning/4376.purs
@@ -0,0 +1,6 @@
+-- @shouldWarnWith MissingTypeDeclaration
+module Main where
+
+data Maybe a = Just a | Nothing
+
+value = Nothing
diff --git a/tests/purs/warning/4414.out b/tests/purs/warning/4414.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/warning/4414.out
diff --git a/tests/purs/warning/4414.purs b/tests/purs/warning/4414.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/warning/4414.purs
@@ -0,0 +1,21 @@
+module Main
+  ( something
+  , main
+  )
+  where
+
+import Prelude
+
+import Effect (Effect)
+import Effect.Console (log)
+
+something :: Boolean
+something = 42 .?.?. 1
+
+foo :: forall a. a -> a -> Boolean
+foo _ _ = true
+
+infix 7 foo as .?.?.
+
+main :: Effect Unit
+main = log "Done"
diff --git a/tests/purs/warning/CoercibleUnusedImport.out b/tests/purs/warning/CoercibleUnusedImport.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/warning/CoercibleUnusedImport.out
diff --git a/tests/purs/warning/CoercibleUnusedImport.purs b/tests/purs/warning/CoercibleUnusedImport.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/warning/CoercibleUnusedImport.purs
@@ -0,0 +1,8 @@
+module Main where
+
+import N1
+import N2 (N2(..))
+import Safe.Coerce (coerce)
+
+unwrap :: forall a. N2 a -> a
+unwrap = coerce
diff --git a/tests/purs/warning/CoercibleUnusedImport/N1.purs b/tests/purs/warning/CoercibleUnusedImport/N1.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/warning/CoercibleUnusedImport/N1.purs
@@ -0,0 +1,3 @@
+module N1 where
+
+newtype N1 a = N1 a
diff --git a/tests/purs/warning/CoercibleUnusedImport/N2.purs b/tests/purs/warning/CoercibleUnusedImport/N2.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/warning/CoercibleUnusedImport/N2.purs
@@ -0,0 +1,5 @@
+module N2 where
+
+import N1
+
+newtype N2 a = N2 (N1 a)
diff --git a/tests/purs/warning/CoercibleUnusedNewtypeCtorExplicitImport.out b/tests/purs/warning/CoercibleUnusedNewtypeCtorExplicitImport.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/warning/CoercibleUnusedNewtypeCtorExplicitImport.out
diff --git a/tests/purs/warning/CoercibleUnusedNewtypeCtorExplicitImport.purs b/tests/purs/warning/CoercibleUnusedNewtypeCtorExplicitImport.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/warning/CoercibleUnusedNewtypeCtorExplicitImport.purs
@@ -0,0 +1,7 @@
+module Main where
+
+import N (N(N))
+import Safe.Coerce (coerce)
+
+unwrap :: forall a. N a -> a
+unwrap = coerce
diff --git a/tests/purs/warning/CoercibleUnusedNewtypeCtorExplicitImport/N.purs b/tests/purs/warning/CoercibleUnusedNewtypeCtorExplicitImport/N.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/warning/CoercibleUnusedNewtypeCtorExplicitImport/N.purs
@@ -0,0 +1,3 @@
+module N where
+
+newtype N a = N a
diff --git a/tests/purs/warning/CoercibleUnusedNewtypeCtorImplicitImport.out b/tests/purs/warning/CoercibleUnusedNewtypeCtorImplicitImport.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/warning/CoercibleUnusedNewtypeCtorImplicitImport.out
diff --git a/tests/purs/warning/CoercibleUnusedNewtypeCtorImplicitImport.purs b/tests/purs/warning/CoercibleUnusedNewtypeCtorImplicitImport.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/warning/CoercibleUnusedNewtypeCtorImplicitImport.purs
@@ -0,0 +1,7 @@
+module Main where
+
+import N (N(..))
+import Safe.Coerce (coerce)
+
+unwrap :: forall a. N a -> a
+unwrap = coerce
diff --git a/tests/purs/warning/CoercibleUnusedNewtypeCtorImplicitImport/N.purs b/tests/purs/warning/CoercibleUnusedNewtypeCtorImplicitImport/N.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/warning/CoercibleUnusedNewtypeCtorImplicitImport/N.purs
@@ -0,0 +1,3 @@
+module N where
+
+newtype N a = N a
diff --git a/tests/purs/warning/CustomWarning.out b/tests/purs/warning/CustomWarning.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/warning/CustomWarning.out
@@ -0,0 +1,14 @@
+Warning found:
+in module [33mMain[0m
+at tests/purs/warning/CustomWarning.purs:9:1 - 9:11 (line 9, column 1 - line 9, column 11)
+
+  A custom warning occurred while solving type class constraints:
+
+    Custom warning Int
+
+
+in value declaration [33mbar[0m
+
+See https://github.com/purescript/documentation/blob/master/errors/UserDefinedWarning.md for more information,
+or to contribute content related to this warning.
+
diff --git a/tests/purs/warning/CustomWarning2.out b/tests/purs/warning/CustomWarning2.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/warning/CustomWarning2.out
@@ -0,0 +1,14 @@
+Warning found:
+in module [33mMain[0m
+at tests/purs/warning/CustomWarning2.purs:12:1 - 12:11 (line 12, column 1 - line 12, column 11)
+
+  A custom warning occurred while solving type class constraints:
+
+    foo
+
+
+in value declaration [33mbaz[0m
+
+See https://github.com/purescript/documentation/blob/master/errors/UserDefinedWarning.md for more information,
+or to contribute content related to this warning.
+
diff --git a/tests/purs/warning/CustomWarning3.out b/tests/purs/warning/CustomWarning3.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/warning/CustomWarning3.out
@@ -0,0 +1,30 @@
+Warning 1 of 2:
+
+  in module [33mMain[0m
+  at tests/purs/warning/CustomWarning3.purs:14:1 - 14:11 (line 14, column 1 - line 14, column 11)
+
+    A custom warning occurred while solving type class constraints:
+
+      foo
+
+
+  in value declaration [33mbaz[0m
+
+  See https://github.com/purescript/documentation/blob/master/errors/UserDefinedWarning.md for more information,
+  or to contribute content related to this warning.
+
+Warning 2 of 2:
+
+  in module [33mMain[0m
+  at tests/purs/warning/CustomWarning3.purs:14:1 - 14:11 (line 14, column 1 - line 14, column 11)
+
+    A custom warning occurred while solving type class constraints:
+
+      bar
+
+
+  in value declaration [33mbaz[0m
+
+  See https://github.com/purescript/documentation/blob/master/errors/UserDefinedWarning.md for more information,
+  or to contribute content related to this warning.
+
diff --git a/tests/purs/warning/CustomWarning4.out b/tests/purs/warning/CustomWarning4.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/warning/CustomWarning4.out
@@ -0,0 +1,60 @@
+Warning 1 of 4:
+
+  in module [33mMain[0m
+  at tests/purs/warning/CustomWarning4.purs:21:1 - 21:15 (line 21, column 1 - line 21, column 15)
+
+    A custom warning occurred while solving type class constraints:
+
+      Custom label hello
+
+
+  in value declaration [33mbaz'[0m
+
+  See https://github.com/purescript/documentation/blob/master/errors/UserDefinedWarning.md for more information,
+  or to contribute content related to this warning.
+
+Warning 2 of 4:
+
+  in module [33mMain[0m
+  at tests/purs/warning/CustomWarning4.purs:24:1 - 24:16 (line 24, column 1 - line 24, column 16)
+
+    A custom warning occurred while solving type class constraints:
+
+      Custom label hello
+
+
+  in value declaration [33mbaz''[0m
+
+  See https://github.com/purescript/documentation/blob/master/errors/UserDefinedWarning.md for more information,
+  or to contribute content related to this warning.
+
+Warning 3 of 4:
+
+  in module [33mMain[0m
+  at tests/purs/warning/CustomWarning4.purs:27:1 - 27:17 (line 27, column 1 - line 27, column 17)
+
+    A custom warning occurred while solving type class constraints:
+
+      Custom label "h e l l o"
+
+
+  in value declaration [33mbaz'''[0m
+
+  See https://github.com/purescript/documentation/blob/master/errors/UserDefinedWarning.md for more information,
+  or to contribute content related to this warning.
+
+Warning 4 of 4:
+
+  in module [33mMain[0m
+  at tests/purs/warning/CustomWarning4.purs:30:1 - 30:18 (line 30, column 1 - line 30, column 18)
+
+    A custom warning occurred while solving type class constraints:
+
+      Custom label "hel\"lo"
+
+
+  in value declaration [33mbaz''''[0m
+
+  See https://github.com/purescript/documentation/blob/master/errors/UserDefinedWarning.md for more information,
+  or to contribute content related to this warning.
+
diff --git a/tests/purs/warning/CustomWarning4.purs b/tests/purs/warning/CustomWarning4.purs
--- a/tests/purs/warning/CustomWarning4.purs
+++ b/tests/purs/warning/CustomWarning4.purs
@@ -6,7 +6,7 @@
 
 import Prim.TypeError (class Warn, Beside, QuoteLabel, Text)
 import Prim
-import Type.Row (class RowToList, Cons, Nil)
+import Type.RowList (class RowToList, Cons, Nil)
 
 data Label (l :: Symbol) = Label
 
diff --git a/tests/purs/warning/DeprecatedCaseOfOffsideSyntax1.out b/tests/purs/warning/DeprecatedCaseOfOffsideSyntax1.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/warning/DeprecatedCaseOfOffsideSyntax1.out
@@ -0,0 +1,9 @@
+Warning found:
+at tests/purs/warning/DeprecatedCaseOfOffsideSyntax1.purs:9:3 - 9:4 (line 9, column 3 - line 9, column 4)
+
+  Dedented expressions in case branches are deprecated and will be removed in a future release. Indent the branch's expression past it's binder instead.
+
+
+See https://github.com/purescript/documentation/blob/master/errors/WarningParsingModule.md for more information,
+or to contribute content related to this warning.
+
diff --git a/tests/purs/warning/DeprecatedCaseOfOffsideSyntax1.purs b/tests/purs/warning/DeprecatedCaseOfOffsideSyntax1.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/warning/DeprecatedCaseOfOffsideSyntax1.purs
@@ -0,0 +1,9 @@
+-- @shouldWarnWith WarningParsingModule
+module DeprecatedCaseOfOffsideSyntax1 where
+
+data Foo = Foo Int
+
+test :: Foo -> Int
+test = case _ of
+    Foo i ->
+  i
diff --git a/tests/purs/warning/DeprecatedCaseOfOffsideSyntax2.out b/tests/purs/warning/DeprecatedCaseOfOffsideSyntax2.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/warning/DeprecatedCaseOfOffsideSyntax2.out
@@ -0,0 +1,9 @@
+Warning found:
+at tests/purs/warning/DeprecatedCaseOfOffsideSyntax2.purs:8:3 - 8:4 (line 8, column 3 - line 8, column 4)
+
+  Dedented expressions in case branches are deprecated and will be removed in a future release. Indent the branch's expression past it's binder instead.
+
+
+See https://github.com/purescript/documentation/blob/master/errors/WarningParsingModule.md for more information,
+or to contribute content related to this warning.
+
diff --git a/tests/purs/warning/DeprecatedCaseOfOffsideSyntax2.purs b/tests/purs/warning/DeprecatedCaseOfOffsideSyntax2.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/warning/DeprecatedCaseOfOffsideSyntax2.purs
@@ -0,0 +1,8 @@
+-- @shouldWarnWith WarningParsingModule
+module DeprecatedCaseOfOffsideSyntax2 where
+
+data Foo = Foo Int
+
+test :: Foo -> Int
+test = case _ of Foo i ->
+  i
diff --git a/tests/purs/warning/DuplicateExportRef.out b/tests/purs/warning/DuplicateExportRef.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/warning/DuplicateExportRef.out
@@ -0,0 +1,77 @@
+Warning 1 of 7:
+
+  in module [33mMain[0m
+  at tests/purs/warning/DuplicateExportRef.purs:8:1 - 30:28 (line 8, column 1 - line 30, column 28)
+
+    Export list contains multiple references to type class [33mY[0m
+
+
+  See https://github.com/purescript/documentation/blob/master/errors/DuplicateExportRef.md for more information,
+  or to contribute content related to this warning.
+
+Warning 2 of 7:
+
+  in module [33mMain[0m
+  at tests/purs/warning/DuplicateExportRef.purs:8:1 - 30:28 (line 8, column 1 - line 30, column 28)
+
+    Export list contains multiple references to type operator [33m(~>)[0m
+
+
+  See https://github.com/purescript/documentation/blob/master/errors/DuplicateExportRef.md for more information,
+  or to contribute content related to this warning.
+
+Warning 3 of 7:
+
+  in module [33mMain[0m
+  at tests/purs/warning/DuplicateExportRef.purs:8:1 - 30:28 (line 8, column 1 - line 30, column 28)
+
+    Export list contains multiple references to type [33mX[0m
+
+
+  See https://github.com/purescript/documentation/blob/master/errors/DuplicateExportRef.md for more information,
+  or to contribute content related to this warning.
+
+Warning 4 of 7:
+
+  in module [33mMain[0m
+  at tests/purs/warning/DuplicateExportRef.purs:8:1 - 30:28 (line 8, column 1 - line 30, column 28)
+
+    Export list contains multiple references to value [33mfn[0m
+
+
+  See https://github.com/purescript/documentation/blob/master/errors/DuplicateExportRef.md for more information,
+  or to contribute content related to this warning.
+
+Warning 5 of 7:
+
+  in module [33mMain[0m
+  at tests/purs/warning/DuplicateExportRef.purs:8:1 - 30:28 (line 8, column 1 - line 30, column 28)
+
+    Export list contains multiple references to operator [33m(!)[0m
+
+
+  See https://github.com/purescript/documentation/blob/master/errors/DuplicateExportRef.md for more information,
+  or to contribute content related to this warning.
+
+Warning 6 of 7:
+
+  in module [33mMain[0m
+  at tests/purs/warning/DuplicateExportRef.purs:8:1 - 30:28 (line 8, column 1 - line 30, column 28)
+
+    Export list contains multiple references to module [33mPrelude[0m
+
+
+  See https://github.com/purescript/documentation/blob/master/errors/DuplicateExportRef.md for more information,
+  or to contribute content related to this warning.
+
+Warning 7 of 7:
+
+  in module [33mMain[0m
+  at tests/purs/warning/DuplicateExportRef.purs:8:1 - 30:28 (line 8, column 1 - line 30, column 28)
+
+    Export list contains multiple references to data constructor [33mX[0m
+
+
+  See https://github.com/purescript/documentation/blob/master/errors/DuplicateExportRef.md for more information,
+  or to contribute content related to this warning.
+
diff --git a/tests/purs/warning/DuplicateExportRef.purs b/tests/purs/warning/DuplicateExportRef.purs
--- a/tests/purs/warning/DuplicateExportRef.purs
+++ b/tests/purs/warning/DuplicateExportRef.purs
@@ -23,8 +23,8 @@
 
 infix 2 fn as !
 
-class Y a
+class Y (a :: Type)
 
-type Natural f g = forall a. f a -> g a
+type Natural f g = forall (a :: Type). f a -> g a
 
 infixl 1 type Natural as ~>
diff --git a/tests/purs/warning/DuplicateImport.out b/tests/purs/warning/DuplicateImport.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/warning/DuplicateImport.out
@@ -0,0 +1,10 @@
+Warning found:
+in module [33mMain[0m
+at tests/purs/warning/DuplicateImport.purs:5:1 - 5:34 (line 5, column 1 - line 5, column 34)
+
+  Duplicate import of [33mPrelude (Unit, unit, pure)[0m
+
+
+See https://github.com/purescript/documentation/blob/master/errors/DuplicateImport.md for more information,
+or to contribute content related to this warning.
+
diff --git a/tests/purs/warning/DuplicateImportRef.out b/tests/purs/warning/DuplicateImportRef.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/warning/DuplicateImportRef.out
@@ -0,0 +1,44 @@
+Warning 1 of 4:
+
+  in module [33mMain[0m
+  at tests/purs/warning/DuplicateImportRef.purs:7:1 - 12:4 (line 7, column 1 - line 12, column 4)
+
+    Import list contains multiple references to type class [33mFunctor[0m
+
+
+  See https://github.com/purescript/documentation/blob/master/errors/DuplicateImportRef.md for more information,
+  or to contribute content related to this warning.
+
+Warning 2 of 4:
+
+  in module [33mMain[0m
+  at tests/purs/warning/DuplicateImportRef.purs:7:1 - 12:4 (line 7, column 1 - line 12, column 4)
+
+    Import list contains multiple references to type [33mUnit[0m
+
+
+  See https://github.com/purescript/documentation/blob/master/errors/DuplicateImportRef.md for more information,
+  or to contribute content related to this warning.
+
+Warning 3 of 4:
+
+  in module [33mMain[0m
+  at tests/purs/warning/DuplicateImportRef.purs:7:1 - 12:4 (line 7, column 1 - line 12, column 4)
+
+    Import list contains multiple references to value [33munit[0m
+
+
+  See https://github.com/purescript/documentation/blob/master/errors/DuplicateImportRef.md for more information,
+  or to contribute content related to this warning.
+
+Warning 4 of 4:
+
+  in module [33mMain[0m
+  at tests/purs/warning/DuplicateImportRef.purs:7:1 - 12:4 (line 7, column 1 - line 12, column 4)
+
+    Import list contains multiple references to operator [33m(<>)[0m
+
+
+  See https://github.com/purescript/documentation/blob/master/errors/DuplicateImportRef.md for more information,
+  or to contribute content related to this warning.
+
diff --git a/tests/purs/warning/DuplicateSelectiveImport.out b/tests/purs/warning/DuplicateSelectiveImport.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/warning/DuplicateSelectiveImport.out
@@ -0,0 +1,10 @@
+Warning found:
+in module [33mMain[0m
+at tests/purs/warning/DuplicateSelectiveImport.purs:5:1 - 5:22 (line 5, column 1 - line 5, column 22)
+
+  There is an existing import of [33mPrelude[0m, consider merging the import lists
+
+
+See https://github.com/purescript/documentation/blob/master/errors/DuplicateSelectiveImport.md for more information,
+or to contribute content related to this warning.
+
diff --git a/tests/purs/warning/HiddenConstructorsGeneric.out b/tests/purs/warning/HiddenConstructorsGeneric.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/warning/HiddenConstructorsGeneric.out
@@ -0,0 +1,11 @@
+Warning found:
+in module [33mMain[0m
+at tests/purs/warning/HiddenConstructorsGeneric.purs:2:1 - 8:40 (line 2, column 1 - line 8, column 40)
+
+  An export for [33mD[0m hides data constructors but the type declares an instance of [33mData.Generic.Rep.Generic[0m.
+  Such instance allows to match and construct values of this type, effectively making the constructors public.
+
+
+See https://github.com/purescript/documentation/blob/master/errors/HiddenConstructors.md for more information,
+or to contribute content related to this warning.
+
diff --git a/tests/purs/warning/HiddenConstructorsGeneric.purs b/tests/purs/warning/HiddenConstructorsGeneric.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/warning/HiddenConstructorsGeneric.purs
@@ -0,0 +1,8 @@
+-- @shouldWarnWith HiddenConstructors
+module Main (D) where
+
+import Data.Generic.Rep (class Generic)
+
+data D = D
+
+derive instance genericD :: Generic D _
diff --git a/tests/purs/warning/HiddenConstructorsNewtype.out b/tests/purs/warning/HiddenConstructorsNewtype.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/warning/HiddenConstructorsNewtype.out
@@ -0,0 +1,11 @@
+Warning found:
+in module [33mMain[0m
+at tests/purs/warning/HiddenConstructorsNewtype.purs:2:1 - 8:44 (line 2, column 1 - line 8, column 44)
+
+  An export for [33mN[0m hides data constructors but the type declares an instance of [33mData.Newtype.Newtype[0m.
+  Such instance allows to match and construct values of this type, effectively making the constructors public.
+
+
+See https://github.com/purescript/documentation/blob/master/errors/HiddenConstructors.md for more information,
+or to contribute content related to this warning.
+
diff --git a/tests/purs/warning/HiddenConstructorsNewtype.purs b/tests/purs/warning/HiddenConstructorsNewtype.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/warning/HiddenConstructorsNewtype.purs
@@ -0,0 +1,8 @@
+-- @shouldWarnWith HiddenConstructors
+module Main (N) where
+
+import Data.Newtype (class Newtype)
+
+newtype N a = N a
+
+derive instance newtypeN :: Newtype (N a) _
diff --git a/tests/purs/warning/HidingImport.out b/tests/purs/warning/HidingImport.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/warning/HidingImport.out
@@ -0,0 +1,28 @@
+Warning 1 of 2:
+
+  in module [33mMain[0m
+  at tests/purs/warning/HidingImport.purs:6:1 - 6:30 (line 6, column 1 - line 6, column 30)
+
+    Module [33mEffect[0m has unspecified imports, consider using the inclusive form:
+
+      [33mimport Effect (Effect)[0m
+
+
+
+  See https://github.com/purescript/documentation/blob/master/errors/HidingImport.md for more information,
+  or to contribute content related to this warning.
+
+Warning 2 of 2:
+
+  in module [33mMain[0m
+  at tests/purs/warning/HidingImport.purs:5:1 - 5:28 (line 5, column 1 - line 5, column 28)
+
+    Module [33mPrelude[0m has unspecified imports, consider using the inclusive form:
+
+      [33mimport Prelude (Unit, pure, unit)[0m
+
+
+
+  See https://github.com/purescript/documentation/blob/master/errors/HidingImport.md for more information,
+  or to contribute content related to this warning.
+
diff --git a/tests/purs/warning/ImplicitImport.out b/tests/purs/warning/ImplicitImport.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/warning/ImplicitImport.out
@@ -0,0 +1,28 @@
+Warning 1 of 2:
+
+  in module [33mMain[0m
+  at tests/purs/warning/ImplicitImport.purs:6:1 - 6:14 (line 6, column 1 - line 6, column 14)
+
+    Module [33mEffect[0m has unspecified imports, consider using the explicit form:
+
+      [33mimport Effect (Effect)[0m
+
+
+
+  See https://github.com/purescript/documentation/blob/master/errors/ImplicitImport.md for more information,
+  or to contribute content related to this warning.
+
+Warning 2 of 2:
+
+  in module [33mMain[0m
+  at tests/purs/warning/ImplicitImport.purs:5:1 - 5:15 (line 5, column 1 - line 5, column 15)
+
+    Module [33mPrelude[0m has unspecified imports, consider using the explicit form:
+
+      [33mimport Prelude (Unit, pure, unit)[0m
+
+
+
+  See https://github.com/purescript/documentation/blob/master/errors/ImplicitImport.md for more information,
+  or to contribute content related to this warning.
+
diff --git a/tests/purs/warning/ImplicitQualifiedImport.out b/tests/purs/warning/ImplicitQualifiedImport.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/warning/ImplicitQualifiedImport.out
@@ -0,0 +1,30 @@
+Warning 1 of 2:
+
+  in module [33mMain[0m
+  at tests/purs/warning/ImplicitQualifiedImport.purs:7:1 - 7:19 (line 7, column 1 - line 7, column 19)
+
+    Module [33mEffect[0m was imported as [33mE[0m with unspecified imports.
+    As there are multiple modules being imported as [33mE[0m, consider using the explicit form:
+
+      [33mimport Effect (Effect) as E[0m
+
+
+
+  See https://github.com/purescript/documentation/blob/master/errors/ImplicitQualifiedImport.md for more information,
+  or to contribute content related to this warning.
+
+Warning 2 of 2:
+
+  in module [33mMain[0m
+  at tests/purs/warning/ImplicitQualifiedImport.purs:8:1 - 8:27 (line 8, column 1 - line 8, column 27)
+
+    Module [33mEffect.Console[0m was imported as [33mE[0m with unspecified imports.
+    As there are multiple modules being imported as [33mE[0m, consider using the explicit form:
+
+      [33mimport Effect.Console (log) as E[0m
+
+
+
+  See https://github.com/purescript/documentation/blob/master/errors/ImplicitQualifiedImport.md for more information,
+  or to contribute content related to this warning.
+
diff --git a/tests/purs/warning/ImplicitQualifiedImportReExport.out b/tests/purs/warning/ImplicitQualifiedImportReExport.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/warning/ImplicitQualifiedImportReExport.out
@@ -0,0 +1,30 @@
+Warning 1 of 2:
+
+  in module [33mMain[0m
+  at tests/purs/warning/ImplicitQualifiedImportReExport.purs:9:1 - 9:23 (line 9, column 1 - line 9, column 23)
+
+    Module [33mData.Maybe[0m was imported as [33mX[0m with unspecified imports.
+    As this module is being re-exported, consider using the explicit form:
+
+      [33mimport Data.Maybe (Maybe(..), fromJust, fromMaybe, fromMaybe', isJust, isNothing, maybe, maybe', optional) as X[0m
+
+
+
+  See https://github.com/purescript/documentation/blob/master/errors/ImplicitQualifiedImportReExport.md for more information,
+  or to contribute content related to this warning.
+
+Warning 2 of 2:
+
+  in module [33mMain[0m
+  at tests/purs/warning/ImplicitQualifiedImportReExport.purs:10:1 - 10:24 (line 10, column 1 - line 10, column 24)
+
+    Module [33mData.Either[0m was imported as [33mY[0m with unspecified imports.
+    As this module is being re-exported, consider using the explicit form:
+
+      [33mimport Data.Either (Either(..), blush, choose, either, fromLeft, fromLeft', fromRight, fromRight', hush, isLeft, isRight, note, note') as Y[0m
+
+
+
+  See https://github.com/purescript/documentation/blob/master/errors/ImplicitQualifiedImportReExport.md for more information,
+  or to contribute content related to this warning.
+
diff --git a/tests/purs/warning/Kind-UnusedExplicitImport-1.out b/tests/purs/warning/Kind-UnusedExplicitImport-1.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/warning/Kind-UnusedExplicitImport-1.out
@@ -0,0 +1,17 @@
+Warning found:
+in module [33mMain[0m
+at tests/purs/warning/Kind-UnusedExplicitImport-1.purs:6:1 - 6:47 (line 6, column 1 - line 6, column 47)
+
+  The import of module [33mType.RowList[0m contains the following unused references:
+
+    [33mListToRow[0m
+
+  It could be replaced with:
+
+    [33mimport Type.RowList (RowList)[0m
+
+
+
+See https://github.com/purescript/documentation/blob/master/errors/UnusedExplicitImport.md for more information,
+or to contribute content related to this warning.
+
diff --git a/tests/purs/warning/Kind-UnusedExplicitImport-1.purs b/tests/purs/warning/Kind-UnusedExplicitImport-1.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/warning/Kind-UnusedExplicitImport-1.purs
@@ -0,0 +1,11 @@
+-- @shouldWarnWith UnusedExplicitImport
+module Main where
+
+import Prelude (Unit, unit, pure)
+import Effect (Effect)
+import Type.RowList (class ListToRow, RowList)
+
+class A (a :: RowList Type)
+
+main :: Effect Unit
+main = pure unit
diff --git a/tests/purs/warning/Kind-UnusedExplicitImport-2.out b/tests/purs/warning/Kind-UnusedExplicitImport-2.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/warning/Kind-UnusedExplicitImport-2.out
@@ -0,0 +1,17 @@
+Warning found:
+in module [33mMain[0m
+at tests/purs/warning/Kind-UnusedExplicitImport-2.purs:6:1 - 6:47 (line 6, column 1 - line 6, column 47)
+
+  The import of module [33mType.RowList[0m contains the following unused references:
+
+    [33mRowList[0m
+
+  It could be replaced with:
+
+    [33mimport Type.RowList (class ListToRow)[0m
+
+
+
+See https://github.com/purescript/documentation/blob/master/errors/UnusedExplicitImport.md for more information,
+or to contribute content related to this warning.
+
diff --git a/tests/purs/warning/Kind-UnusedExplicitImport-2.purs b/tests/purs/warning/Kind-UnusedExplicitImport-2.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/warning/Kind-UnusedExplicitImport-2.purs
@@ -0,0 +1,13 @@
+-- @shouldWarnWith UnusedExplicitImport
+module Main where
+
+import Prelude (Unit, unit, pure)
+import Effect (Effect)
+import Type.RowList (class ListToRow, RowList)
+import Type.Proxy (Proxy)
+
+f :: forall l r. ListToRow l r => Proxy l -> Int
+f _ = 0
+
+main :: Effect Unit
+main = pure unit
diff --git a/tests/purs/warning/Kind-UnusedImport.out b/tests/purs/warning/Kind-UnusedImport.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/warning/Kind-UnusedImport.out
@@ -0,0 +1,10 @@
+Warning found:
+in module [33mMain[0m
+at tests/purs/warning/Kind-UnusedImport.purs:6:1 - 6:30 (line 6, column 1 - line 6, column 30)
+
+  The import of [33mType.RowList[0m is redundant
+
+
+See https://github.com/purescript/documentation/blob/master/errors/UnusedImport.md for more information,
+or to contribute content related to this warning.
+
diff --git a/tests/purs/warning/Kind-UnusedImport.purs b/tests/purs/warning/Kind-UnusedImport.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/warning/Kind-UnusedImport.purs
@@ -0,0 +1,9 @@
+-- @shouldWarnWith UnusedImport
+module Main where
+
+import Prelude (Unit, unit, pure)
+import Effect (Effect)
+import Type.RowList (RowList)
+
+main :: Effect Unit
+main = pure unit
diff --git a/tests/purs/warning/KindReExport.out b/tests/purs/warning/KindReExport.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/warning/KindReExport.out
diff --git a/tests/purs/warning/KindReExport.purs b/tests/purs/warning/KindReExport.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/warning/KindReExport.purs
@@ -0,0 +1,11 @@
+-- | This test is to ensure that we do not get an incorrect 'unused kind'
+-- | warning. See #3744
+module Main (main, module X) where
+
+import Prelude
+import Effect (Effect)
+import Effect.Console (log)
+import Prim.Ordering (Ordering) as X
+
+main :: Effect Unit
+main = log "Done"
diff --git a/tests/purs/warning/MissingKindDeclaration.out b/tests/purs/warning/MissingKindDeclaration.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/warning/MissingKindDeclaration.out
@@ -0,0 +1,64 @@
+Warning 1 of 4:
+
+  in module [33mMain[0m
+  at tests/purs/warning/MissingKindDeclaration.purs:7:1 - 7:21 (line 7, column 1 - line 7, column 21)
+
+    The inferred kind for the data declaration [33mProxy[0m contains polymorphic kinds.
+    Consider adding a top-level kind signature as a form of documentation.
+    [33m                                   [0m
+    [33m  data Proxy :: forall k. k -> Type[0m
+    [33m                                   [0m
+
+  in type constructor [33mProxy[0m
+
+  See https://github.com/purescript/documentation/blob/master/errors/MissingKindDeclaration.md for more information,
+  or to contribute content related to this warning.
+
+Warning 2 of 4:
+
+  in module [33mMain[0m
+  at tests/purs/warning/MissingKindDeclaration.purs:11:1 - 11:40 (line 11, column 1 - line 11, column 40)
+
+    The inferred kind for the type declaration [33mNatural[0m contains polymorphic kinds.
+    Consider adding a top-level kind signature as a form of documentation.
+    [33m                                                              [0m
+    [33m  type Natural :: forall k. (k -> Type) -> (k -> Type) -> Type[0m
+    [33m                                                              [0m
+
+  in type synonym [33mNatural[0m
+
+  See https://github.com/purescript/documentation/blob/master/errors/MissingKindDeclaration.md for more information,
+  or to contribute content related to this warning.
+
+Warning 3 of 4:
+
+  in module [33mMain[0m
+  at tests/purs/warning/MissingKindDeclaration.purs:9:1 - 9:20 (line 9, column 1 - line 9, column 20)
+
+    The inferred kind for the newtype declaration [33mF[0m contains polymorphic kinds.
+    Consider adding a top-level kind signature as a form of documentation.
+    [33m                                          [0m
+    [33m  newtype F :: forall k. k -> Type -> Type[0m
+    [33m                                          [0m
+
+  in type constructor [33mF[0m
+
+  See https://github.com/purescript/documentation/blob/master/errors/MissingKindDeclaration.md for more information,
+  or to contribute content related to this warning.
+
+Warning 4 of 4:
+
+  in module [33mMain[0m
+  at tests/purs/warning/MissingKindDeclaration.purs:13:1 - 13:18 (line 13, column 1 - line 13, column 18)
+
+    The inferred kind for the class declaration [33mClazz[0m contains polymorphic kinds.
+    Consider adding a top-level kind signature as a form of documentation.
+    [33m                                                              [0m
+    [33m  class Clazz :: forall k1 k2 k3. k1 -> k2 -> k3 -> Constraint[0m
+    [33m                                                              [0m
+
+  in type class declaration for [33mClazz[0m
+
+  See https://github.com/purescript/documentation/blob/master/errors/MissingKindDeclaration.md for more information,
+  or to contribute content related to this warning.
+
diff --git a/tests/purs/warning/MissingKindDeclaration.purs b/tests/purs/warning/MissingKindDeclaration.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/warning/MissingKindDeclaration.purs
@@ -0,0 +1,13 @@
+-- @shouldWarnWith MissingKindDeclaration
+-- @shouldWarnWith MissingKindDeclaration
+-- @shouldWarnWith MissingKindDeclaration
+-- @shouldWarnWith MissingKindDeclaration
+module Main where
+
+data Proxy a = Proxy
+
+newtype F a b = F b
+
+type Natural f g = forall a. f a -> g a
+
+class Clazz a b c
diff --git a/tests/purs/warning/MissingTypeDeclaration.out b/tests/purs/warning/MissingTypeDeclaration.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/warning/MissingTypeDeclaration.out
@@ -0,0 +1,16 @@
+Warning found:
+in module [33mMain[0m
+at tests/purs/warning/MissingTypeDeclaration.purs:4:1 - 4:6 (line 4, column 1 - line 4, column 6)
+
+  No type declaration was provided for the top-level declaration of [33mx[0m.
+  It is good practice to provide type declarations as a form of documentation.
+  The inferred type of [33mx[0m was:
+  [33m     [0m
+  [33m  Int[0m
+  [33m     [0m
+
+in value declaration [33mx[0m
+
+See https://github.com/purescript/documentation/blob/master/errors/MissingTypeDeclaration.md for more information,
+or to contribute content related to this warning.
+
diff --git a/tests/purs/warning/NewtypeInstance.out b/tests/purs/warning/NewtypeInstance.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/warning/NewtypeInstance.out
@@ -0,0 +1,15 @@
+Warning found:
+in module [33mMain[0m
+at tests/purs/warning/NewtypeInstance.purs:8:1 - 8:38 (line 8, column 1 - line 8, column 38)
+
+  The derived newtype instance for
+  [33m                [0m
+  [33m  Data.Ord.Ord X[0m
+  [33m                [0m
+  does not include a derived superclass instance for [33mData.Eq.Eq[0m.
+
+in value declaration [33mordX[0m
+
+See https://github.com/purescript/documentation/blob/master/errors/MissingNewtypeSuperclassInstance.md for more information,
+or to contribute content related to this warning.
+
diff --git a/tests/purs/warning/NewtypeInstance2.out b/tests/purs/warning/NewtypeInstance2.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/warning/NewtypeInstance2.out
@@ -0,0 +1,19 @@
+Warning found:
+in module [33mMain[0m
+at tests/purs/warning/NewtypeInstance2.purs:15:1 - 15:86 (line 15, column 1 - line 15, column 86)
+
+  The derived newtype instance for
+  [33m                                [0m
+  [33m  Main.MonadWriter w0           [0m
+  [33m                   (MyWriter w0)[0m
+  [33m                                [0m
+  does not include a derived superclass instance for [33mControl.Monad.Monad[0m.
+
+in value declaration [33mmonadWriterMyWriter[0m
+
+where [33mw0[0m is a rigid type variable
+        bound at (line 0, column 0 - line 0, column 0)
+
+See https://github.com/purescript/documentation/blob/master/errors/MissingNewtypeSuperclassInstance.md for more information,
+or to contribute content related to this warning.
+
diff --git a/tests/purs/warning/NewtypeInstance3.out b/tests/purs/warning/NewtypeInstance3.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/warning/NewtypeInstance3.out
@@ -0,0 +1,19 @@
+Warning found:
+in module [33mMain[0m
+at tests/purs/warning/NewtypeInstance3.purs:21:1 - 21:86 (line 21, column 1 - line 21, column 86)
+
+  The derived newtype instance for
+  [33m                                [0m
+  [33m  Main.MonadWriter w0           [0m
+  [33m                   (MyWriter w0)[0m
+  [33m                                [0m
+  does not include a derived superclass instance for [33mMain.MonadTell[0m.
+
+in value declaration [33mmonadWriterMyWriter[0m
+
+where [33mw0[0m is a rigid type variable
+        bound at (line 0, column 0 - line 0, column 0)
+
+See https://github.com/purescript/documentation/blob/master/errors/MissingNewtypeSuperclassInstance.md for more information,
+or to contribute content related to this warning.
+
diff --git a/tests/purs/warning/NewtypeInstance4.out b/tests/purs/warning/NewtypeInstance4.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/warning/NewtypeInstance4.out
@@ -0,0 +1,19 @@
+Warning found:
+in module [33mMain[0m
+at tests/purs/warning/NewtypeInstance4.purs:23:1 - 23:86 (line 23, column 1 - line 23, column 86)
+
+  The derived newtype instance for
+  [33m                                [0m
+  [33m  Main.MonadWriter w0           [0m
+  [33m                   (MyWriter w0)[0m
+  [33m                                [0m
+  implies an superclass instance for [33mMain.MonadTell[0m which could not be verified.
+
+in value declaration [33mmonadWriterMyWriter[0m
+
+where [33mw0[0m is a rigid type variable
+        bound at (line 0, column 0 - line 0, column 0)
+
+See https://github.com/purescript/documentation/blob/master/errors/UnverifiableSuperclassInstance.md for more information,
+or to contribute content related to this warning.
+
diff --git a/tests/purs/warning/OverlappingPattern.out b/tests/purs/warning/OverlappingPattern.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/warning/OverlappingPattern.out
@@ -0,0 +1,28 @@
+Warning 1 of 2:
+
+  in module [33mMain[0m
+  at tests/purs/warning/OverlappingPattern.purs:12:1 - 12:21 (line 12, column 1 - line 12, column 21)
+
+    A case expression contains unreachable cases:
+
+    B
+
+  in value declaration [33mpat2[0m
+
+  See https://github.com/purescript/documentation/blob/master/errors/OverlappingPattern.md for more information,
+  or to contribute content related to this warning.
+
+Warning 2 of 2:
+
+  in module [33mMain[0m
+  at tests/purs/warning/OverlappingPattern.purs:7:1 - 7:21 (line 7, column 1 - line 7, column 21)
+
+    A case expression contains unreachable cases:
+
+    A
+
+  in value declaration [33mpat1[0m
+
+  See https://github.com/purescript/documentation/blob/master/errors/OverlappingPattern.md for more information,
+  or to contribute content related to this warning.
+
diff --git a/tests/purs/warning/ScopeShadowing.out b/tests/purs/warning/ScopeShadowing.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/warning/ScopeShadowing.out
@@ -0,0 +1,14 @@
+Warning found:
+in module [33mMain[0m
+at tests/purs/warning/ScopeShadowing.purs:4:1 - 4:15 (line 4, column 1 - line 4, column 15)
+
+  Shadowed definitions are in scope for type [33mUnit[0m from the following open imports:
+
+    [33mimport Prelude[0m
+
+  These will be ignored and the local declaration will be used.
+
+
+See https://github.com/purescript/documentation/blob/master/errors/ScopeShadowing.md for more information,
+or to contribute content related to this warning.
+
diff --git a/tests/purs/warning/ScopeShadowing.purs b/tests/purs/warning/ScopeShadowing.purs
--- a/tests/purs/warning/ScopeShadowing.purs
+++ b/tests/purs/warning/ScopeShadowing.purs
@@ -7,7 +7,7 @@
 data Unit = Unit
 
 -- This is only a warning as the `Prelude` import is implicit. If `Unit` was
--- named explicitly in an import list, then this refernce to `Unit`
+-- named explicitly in an import list, then this reference to `Unit`
 -- would be a `ScopeConflict` error instead.
 test :: Unit
 test = const Unit unit
diff --git a/tests/purs/warning/ScopeShadowing2.out b/tests/purs/warning/ScopeShadowing2.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/warning/ScopeShadowing2.out
@@ -0,0 +1,14 @@
+Warning found:
+in module [33mMain[0m
+at tests/purs/warning/ScopeShadowing2.purs:7:1 - 7:22 (line 7, column 1 - line 7, column 22)
+
+  Shadowed definitions are in scope for value [33mappend[0m from the following open imports:
+
+    [33mimport Data.Semigroup[0m
+
+  These will be ignored and the local declaration will be used.
+
+
+See https://github.com/purescript/documentation/blob/master/errors/ScopeShadowing.md for more information,
+or to contribute content related to this warning.
+
diff --git a/tests/purs/warning/ShadowedBinderPatternGuard.out b/tests/purs/warning/ShadowedBinderPatternGuard.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/warning/ShadowedBinderPatternGuard.out
@@ -0,0 +1,11 @@
+Warning found:
+in module [33mMain[0m
+at tests/purs/warning/ShadowedBinderPatternGuard.purs:6:7 - 6:8 (line 6, column 7 - line 6, column 8)
+
+  Name [33mi[0m was shadowed.
+
+in value declaration [33mf[0m
+
+See https://github.com/purescript/documentation/blob/master/errors/ShadowedName.md for more information,
+or to contribute content related to this warning.
+
diff --git a/tests/purs/warning/ShadowedBinderPatternGuard.purs b/tests/purs/warning/ShadowedBinderPatternGuard.purs
--- a/tests/purs/warning/ShadowedBinderPatternGuard.purs
+++ b/tests/purs/warning/ShadowedBinderPatternGuard.purs
@@ -2,6 +2,6 @@
 module Main where
 
 f :: Int -> Int
-f n | i <- true -- this i is shadowed
+f _ | i <- true -- this i is shadowed
     , i <- 1234
     = i
diff --git a/tests/purs/warning/ShadowedNameParens.out b/tests/purs/warning/ShadowedNameParens.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/warning/ShadowedNameParens.out
@@ -0,0 +1,11 @@
+Warning found:
+in module [33mMain[0m
+at tests/purs/warning/ShadowedNameParens.purs:7:5 - 7:6 (line 7, column 5 - line 7, column 6)
+
+  Name [33mn[0m was shadowed.
+
+in value declaration [33mf[0m
+
+See https://github.com/purescript/documentation/blob/master/errors/ShadowedName.md for more information,
+or to contribute content related to this warning.
+
diff --git a/tests/purs/warning/ShadowedNameParens.purs b/tests/purs/warning/ShadowedNameParens.purs
--- a/tests/purs/warning/ShadowedNameParens.purs
+++ b/tests/purs/warning/ShadowedNameParens.purs
@@ -2,4 +2,6 @@
 module Main where
 
 f :: Int -> Int -> Int
-f n = \(n) -> 1
+f n = 
+  let _ = n in
+  \(n) -> n
diff --git a/tests/purs/warning/ShadowedTypeVar.out b/tests/purs/warning/ShadowedTypeVar.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/warning/ShadowedTypeVar.out
@@ -0,0 +1,11 @@
+Warning found:
+in module [33mMain[0m
+at tests/purs/warning/ShadowedTypeVar.purs:4:1 - 4:44 (line 4, column 1 - line 4, column 44)
+
+  Type variable [33ma[0m was shadowed.
+
+in type declaration for [33mf[0m
+
+See https://github.com/purescript/documentation/blob/master/errors/ShadowedTypeVar.md for more information,
+or to contribute content related to this warning.
+
diff --git a/tests/purs/warning/TypeClassMethodSynonym.out b/tests/purs/warning/TypeClassMethodSynonym.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/warning/TypeClassMethodSynonym.out
@@ -0,0 +1,11 @@
+Warning found:
+in module [33mMain[0m
+at tests/purs/warning/TypeClassMethodSynonym.purs:8:3 - 8:19 (line 8, column 3 - line 8, column 19)
+
+  Type variable [33ma[0m was shadowed.
+
+in type declaration for [33mc[0m
+
+See https://github.com/purescript/documentation/blob/master/errors/ShadowedTypeVar.md for more information,
+or to contribute content related to this warning.
+
diff --git a/tests/purs/warning/TypeClassMethodSynonym.purs b/tests/purs/warning/TypeClassMethodSynonym.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/warning/TypeClassMethodSynonym.purs
@@ -0,0 +1,8 @@
+-- @shouldWarnWith ShadowedTypeVar
+module Main where
+
+class C :: Type -> Constraint
+class C a where
+  -- The `a` in the type below should refer to the `a`
+  -- introduced by the `forall`, not the class head.
+  c :: forall a. a
diff --git a/tests/purs/warning/UnambiguousQuantifiedKind.out b/tests/purs/warning/UnambiguousQuantifiedKind.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/warning/UnambiguousQuantifiedKind.out
@@ -0,0 +1,16 @@
+Warning found:
+in module [33mMain[0m
+at tests/purs/warning/UnambiguousQuantifiedKind.purs:12:1 - 12:11 (line 12, column 1 - line 12, column 11)
+
+  No type declaration was provided for the top-level declaration of [33mtest2[0m.
+  It is good practice to provide type declarations as a form of documentation.
+  The inferred type of [33mtest2[0m was:
+  [33m     [0m
+  [33m  Int[0m
+  [33m     [0m
+
+in value declaration [33mtest2[0m
+
+See https://github.com/purescript/documentation/blob/master/errors/MissingTypeDeclaration.md for more information,
+or to contribute content related to this warning.
+
diff --git a/tests/purs/warning/UnambiguousQuantifiedKind.purs b/tests/purs/warning/UnambiguousQuantifiedKind.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/warning/UnambiguousQuantifiedKind.purs
@@ -0,0 +1,12 @@
+-- @shouldWarnWith MissingTypeDeclaration
+module Main where
+
+data Proxy :: forall k. k -> Type
+data Proxy a = Proxy
+
+-- Should not trigger a warning
+test1 :: forall k (a :: k). Proxy a
+test1 = Proxy
+
+-- Should trigger a warning
+test2 = 42
diff --git a/tests/purs/warning/UnnecessaryFFIModule.js b/tests/purs/warning/UnnecessaryFFIModule.js
--- a/tests/purs/warning/UnnecessaryFFIModule.js
+++ b/tests/purs/warning/UnnecessaryFFIModule.js
@@ -1,1 +1,1 @@
-exports.out = null;
+export var out = null;
diff --git a/tests/purs/warning/UnnecessaryFFIModule.out b/tests/purs/warning/UnnecessaryFFIModule.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/warning/UnnecessaryFFIModule.out
@@ -0,0 +1,13 @@
+Warning found:
+at tests/purs/warning/UnnecessaryFFIModule.purs:2:1 - 5:9 (line 2, column 1 - line 5, column 9)
+
+  An unnecessary foreign module implementation was provided for module [33mMain[0m:
+
+    tests/purs/warning/UnnecessaryFFIModule.js
+
+  Module [33mMain[0m does not contain any foreign import declarations, so a foreign module is not necessary.
+
+
+See https://github.com/purescript/documentation/blob/master/errors/UnnecessaryFFIModule.md for more information,
+or to contribute content related to this warning.
+
diff --git a/tests/purs/warning/UnusedDctorExplicitImport.out b/tests/purs/warning/UnusedDctorExplicitImport.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/warning/UnusedDctorExplicitImport.out
@@ -0,0 +1,17 @@
+Warning found:
+in module [33mMain[0m
+at tests/purs/warning/UnusedDctorExplicitImport.purs:4:1 - 4:40 (line 4, column 1 - line 4, column 40)
+
+  The import of type [33mOrdering[0m from module [33mData.Ordering[0m includes the following unused data constructors:
+
+    [33mLT[0m
+
+  It could be replaced with:
+
+    [33mimport Data.Ordering (Ordering(EQ))[0m
+
+
+
+See https://github.com/purescript/documentation/blob/master/errors/UnusedDctorExplicitImport.md for more information,
+or to contribute content related to this warning.
+
diff --git a/tests/purs/warning/UnusedDctorImportAll.out b/tests/purs/warning/UnusedDctorImportAll.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/warning/UnusedDctorImportAll.out
@@ -0,0 +1,14 @@
+Warning found:
+in module [33mMain[0m
+at tests/purs/warning/UnusedDctorImportAll.purs:4:1 - 4:36 (line 4, column 1 - line 4, column 36)
+
+  The import of type [33mOrdering[0m from module [33mData.Ordering[0m includes data constructors but only the type is used
+  It could be replaced with:
+
+    [33mimport Data.Ordering (Ordering)[0m
+
+
+
+See https://github.com/purescript/documentation/blob/master/errors/UnusedDctorImport.md for more information,
+or to contribute content related to this warning.
+
diff --git a/tests/purs/warning/UnusedDctorImportExplicit.out b/tests/purs/warning/UnusedDctorImportExplicit.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/warning/UnusedDctorImportExplicit.out
@@ -0,0 +1,14 @@
+Warning found:
+in module [33mMain[0m
+at tests/purs/warning/UnusedDctorImportExplicit.purs:4:1 - 4:36 (line 4, column 1 - line 4, column 36)
+
+  The import of type [33mOrdering[0m from module [33mData.Ordering[0m includes data constructors but only the type is used
+  It could be replaced with:
+
+    [33mimport Data.Ordering (Ordering)[0m
+
+
+
+See https://github.com/purescript/documentation/blob/master/errors/UnusedDctorImport.md for more information,
+or to contribute content related to this warning.
+
diff --git a/tests/purs/warning/UnusedExplicitImport.out b/tests/purs/warning/UnusedExplicitImport.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/warning/UnusedExplicitImport.out
@@ -0,0 +1,17 @@
+Warning found:
+in module [33mMain[0m
+at tests/purs/warning/UnusedExplicitImport.purs:4:1 - 4:40 (line 4, column 1 - line 4, column 40)
+
+  The import of module [33mPrelude[0m contains the following unused references:
+
+    [33mbind[0m
+
+  It could be replaced with:
+
+    [33mimport Prelude (Unit, pure, unit)[0m
+
+
+
+See https://github.com/purescript/documentation/blob/master/errors/UnusedExplicitImport.md for more information,
+or to contribute content related to this warning.
+
diff --git a/tests/purs/warning/UnusedExplicitImportTypeOp.out b/tests/purs/warning/UnusedExplicitImportTypeOp.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/warning/UnusedExplicitImportTypeOp.out
@@ -0,0 +1,17 @@
+Warning found:
+in module [33mMain[0m
+at tests/purs/warning/UnusedExplicitImportTypeOp.purs:6:1 - 6:30 (line 6, column 1 - line 6, column 30)
+
+  The import of module [33mLib[0m contains the following unused references:
+
+    [33m(~>)[0m
+
+  It could be replaced with:
+
+    [33mimport Lib (natId)[0m
+
+
+
+See https://github.com/purescript/documentation/blob/master/errors/UnusedExplicitImport.md for more information,
+or to contribute content related to this warning.
+
diff --git a/tests/purs/warning/UnusedExplicitImportTypeOp/Lib.purs b/tests/purs/warning/UnusedExplicitImportTypeOp/Lib.purs
--- a/tests/purs/warning/UnusedExplicitImportTypeOp/Lib.purs
+++ b/tests/purs/warning/UnusedExplicitImportTypeOp/Lib.purs
@@ -1,5 +1,6 @@
 module Lib where
 
+type Nat ∷ ∀ k. (k → Type) → (k → Type) → Type
 type Nat f g = ∀ x. f x → g x
 
 infixr 4 type Nat as ~>
diff --git a/tests/purs/warning/UnusedExplicitImportValOp.out b/tests/purs/warning/UnusedExplicitImportValOp.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/warning/UnusedExplicitImportValOp.out
@@ -0,0 +1,17 @@
+Warning found:
+in module [33mMain[0m
+at tests/purs/warning/UnusedExplicitImportValOp.purs:4:1 - 4:39 (line 4, column 1 - line 4, column 39)
+
+  The import of module [33mPrelude[0m contains the following unused references:
+
+    [33m(+)[0m
+
+  It could be replaced with:
+
+    [33mimport Prelude (Unit, pure, unit)[0m
+
+
+
+See https://github.com/purescript/documentation/blob/master/errors/UnusedExplicitImport.md for more information,
+or to contribute content related to this warning.
+
diff --git a/tests/purs/warning/UnusedFFIImplementations.js b/tests/purs/warning/UnusedFFIImplementations.js
--- a/tests/purs/warning/UnusedFFIImplementations.js
+++ b/tests/purs/warning/UnusedFFIImplementations.js
@@ -1,2 +1,2 @@
-exports.yes = true;
-exports.no = false;
+export var yes = true;
+export var no = false;
diff --git a/tests/purs/warning/UnusedFFIImplementations.out b/tests/purs/warning/UnusedFFIImplementations.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/warning/UnusedFFIImplementations.out
@@ -0,0 +1,12 @@
+Warning found:
+at tests/purs/warning/UnusedFFIImplementations.purs:2:1 - 4:30 (line 2, column 1 - line 4, column 30)
+
+  The following definitions in the foreign module for module [33mMain[0m are unused:
+
+    no
+
+
+
+See https://github.com/purescript/documentation/blob/master/errors/UnusedFFIImplementations.md for more information,
+or to contribute content related to this warning.
+
diff --git a/tests/purs/warning/UnusedImport.out b/tests/purs/warning/UnusedImport.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/warning/UnusedImport.out
@@ -0,0 +1,22 @@
+Warning 1 of 2:
+
+  in module [33mMain[0m
+  at tests/purs/warning/UnusedImport.purs:8:1 - 8:14 (line 8, column 1 - line 8, column 14)
+
+    The import of [33mEffect[0m is redundant
+
+
+  See https://github.com/purescript/documentation/blob/master/errors/UnusedImport.md for more information,
+  or to contribute content related to this warning.
+
+Warning 2 of 2:
+
+  in module [33mMain[0m
+  at tests/purs/warning/UnusedImport.purs:9:1 - 9:33 (line 9, column 1 - line 9, column 33)
+
+    The qualified import of [33mEffect.Console[0m as [33mConsole[0m is redundant
+
+
+  See https://github.com/purescript/documentation/blob/master/errors/UnusedImport.md for more information,
+  or to contribute content related to this warning.
+
diff --git a/tests/purs/warning/UnusedTypeVar.out b/tests/purs/warning/UnusedTypeVar.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/warning/UnusedTypeVar.out
@@ -0,0 +1,11 @@
+Warning found:
+in module [33mMain[0m
+at tests/purs/warning/UnusedTypeVar.purs:4:1 - 4:24 (line 4, column 1 - line 4, column 24)
+
+  Type variable [33mb[0m is ambiguous, since it is unused in the polymorphic type which introduces it.
+
+in type declaration for [33mf[0m
+
+See https://github.com/purescript/documentation/blob/master/errors/UnusedTypeVar.md for more information,
+or to contribute content related to this warning.
+
diff --git a/tests/purs/warning/UnusedVar.out b/tests/purs/warning/UnusedVar.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/warning/UnusedVar.out
@@ -0,0 +1,108 @@
+Warning 1 of 9:
+
+  in module [33mMain[0m
+  at tests/purs/warning/UnusedVar.purs:16:20 - 16:32 (line 16, column 20 - line 16, column 32)
+
+    Name [33mlambdaUnused[0m was introduced but not used.
+
+  in value declaration [33munusedInLambda[0m
+
+  See https://github.com/purescript/documentation/blob/master/errors/UnusedName.md for more information,
+  or to contribute content related to this warning.
+
+Warning 2 of 9:
+
+  in module [33mMain[0m
+  at tests/purs/warning/UnusedVar.purs:20:7 - 20:20 (line 20, column 7 - line 20, column 20)
+
+    Name [33mletUnused[0m was introduced but not used.
+
+  in value declaration [33munusedLetName[0m
+
+  See https://github.com/purescript/documentation/blob/master/errors/UnusedName.md for more information,
+  or to contribute content related to this warning.
+
+Warning 3 of 9:
+
+  in module [33mMain[0m
+  at tests/purs/warning/UnusedVar.purs:26:9 - 26:24 (line 26, column 9 - line 26, column 24)
+
+    Name [33mwhereUnused[0m was introduced but not used.
+
+  in value declaration [33munusedWhereIsLet[0m
+
+  See https://github.com/purescript/documentation/blob/master/errors/UnusedName.md for more information,
+  or to contribute content related to this warning.
+
+Warning 4 of 9:
+
+  in module [33mMain[0m
+  at tests/purs/warning/UnusedVar.purs:30:11 - 30:23 (line 30, column 11 - line 30, column 23)
+
+    Name [33mletArgUnused[0m was introduced but not used.
+
+  in value declaration [33munusedLetArgument[0m
+
+  See https://github.com/purescript/documentation/blob/master/errors/UnusedName.md for more information,
+  or to contribute content related to this warning.
+
+Warning 5 of 9:
+
+  in module [33mMain[0m
+  at tests/purs/warning/UnusedVar.purs:44:5 - 44:15 (line 44, column 5 - line 44, column 15)
+
+    Name [33mcaseUnused[0m was introduced but not used.
+
+  in value declaration [33munusedCaseBinder[0m
+
+  See https://github.com/purescript/documentation/blob/master/errors/UnusedName.md for more information,
+  or to contribute content related to this warning.
+
+Warning 6 of 9:
+
+  in module [33mMain[0m
+  at tests/purs/warning/UnusedVar.purs:62:34 - 62:35 (line 62, column 34 - line 62, column 35)
+
+    Name [33mx[0m was introduced but not used.
+
+  in value declaration [33munusedShadowedByRecursiveBinding[0m
+
+  See https://github.com/purescript/documentation/blob/master/errors/UnusedName.md for more information,
+  or to contribute content related to this warning.
+
+Warning 7 of 9:
+
+  in module [33mMain[0m
+  at tests/purs/warning/UnusedVar.purs:69:8 - 69:9 (line 69, column 8 - line 69, column 9)
+
+    Name [33mx[0m was introduced but not used.
+
+  in value declaration [33munusedShadowingLet[0m
+
+  See https://github.com/purescript/documentation/blob/master/errors/UnusedName.md for more information,
+  or to contribute content related to this warning.
+
+Warning 8 of 9:
+
+  in module [33mMain[0m
+  at tests/purs/warning/UnusedVar.purs:87:7 - 87:8 (line 87, column 7 - line 87, column 8)
+
+    Name [33mx[0m was introduced but not used.
+
+  in value declaration [33mnotOops[0m
+
+  See https://github.com/purescript/documentation/blob/master/errors/UnusedName.md for more information,
+  or to contribute content related to this warning.
+
+Warning 9 of 9:
+
+  in module [33mMain[0m
+  at tests/purs/warning/UnusedVar.purs:63:7 - 63:16 (line 63, column 7 - line 63, column 16)
+
+    Name [33mx[0m was shadowed.
+
+  in value declaration [33munusedShadowedByRecursiveBinding[0m
+
+  See https://github.com/purescript/documentation/blob/master/errors/ShadowedName.md for more information,
+  or to contribute content related to this warning.
+
diff --git a/tests/purs/warning/UnusedVar.purs b/tests/purs/warning/UnusedVar.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/warning/UnusedVar.purs
@@ -0,0 +1,104 @@
+-- @shouldWarnWith UnusedName
+-- @shouldWarnWith UnusedName
+-- @shouldWarnWith UnusedName
+-- @shouldWarnWith UnusedName
+-- @shouldWarnWith UnusedName
+-- @shouldWarnWith UnusedName
+-- @shouldWarnWith UnusedName
+-- @shouldWarnWith UnusedName
+-- @shouldWarnWith ShadowedName
+module Main where
+
+data X = X
+
+
+unusedInLambda :: X
+unusedInLambda = (\lambdaUnused -> X) X
+
+unusedLetName :: X
+unusedLetName =
+  let letUnused = X in
+  X
+
+unusedWhereIsLet :: X
+unusedWhereIsLet =
+  X
+  where whereUnused = X
+
+unusedLetArgument :: X
+unusedLetArgument = 
+  let f x letArgUnused = x
+  in f X X
+
+notUnusedLet :: X
+notUnusedLet =
+  let f x = f' x
+      f' x = f x
+  in
+  f X
+
+
+unusedCaseBinder :: X
+unusedCaseBinder = 
+  case X of
+    caseUnused -> X
+
+unusedObjUpdate :: { foo :: X }
+unusedObjUpdate = 
+  let x = X
+      obj = { foo: X }
+  in
+  obj { foo = x }
+
+-- The outer x is used in the let-bound expression, the let-binding variable is used in the body
+notUnusedNonRecursiveBinding :: X -> X
+notUnusedNonRecursiveBinding x = 
+  let {x} = {x}
+  in x
+
+-- Almost like above but the outer x is not used, as x is bound recursively (Can also be true if there are no 
+-- arguments to x but in most cases this will error due to being cyclic)
+unusedShadowedByRecursiveBinding :: X -> X
+unusedShadowedByRecursiveBinding x = 
+  let x _ = x X
+  in x X
+
+-- In this case the outer x is used but the new x binding is not
+unusedShadowingLet :: X -> X
+unusedShadowingLet x = 
+  let (x) = x
+  in X
+
+-- 4110
+oops ∷ { inner :: String } → String
+oops box =
+  let
+    { inner } = box
+    val = inner
+  in
+    val
+
+-- like oops but switching order to show we don't 
+notOops ∷ { x :: String } -> String → String
+notOops box x =
+  let
+    val = x
+    _blah = x
+    { x } = box
+  in
+    val
+
+bindingGroupsNotRecognised :: Int
+bindingGroupsNotRecognised =
+  let
+    f n = g n
+    g n = f n
+    
+    -- Second f is unused because this is multiple recursive binding groups, we don't warn because we assume
+    -- it might be one binding group so there is a usage. If it would be 1 binding group there would be an error
+    -- Shadowed variable warnings are similarly not aware of binding groups
+    { x } = { x: 2 }
+    h n = n
+    f x = x
+  in 
+    h x
diff --git a/tests/purs/warning/UnusedVarDecls.out b/tests/purs/warning/UnusedVarDecls.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/warning/UnusedVarDecls.out
@@ -0,0 +1,23 @@
+Warning 1 of 2:
+
+  in module [33mMain[0m
+  at tests/purs/warning/UnusedVarDecls.purs:13:15 - 13:24 (line 13, column 15 - line 13, column 24)
+
+    Name [33munusedArg[0m was introduced but not used.
+
+  in value declaration [33munusedArgDecl[0m
+
+  See https://github.com/purescript/documentation/blob/master/errors/UnusedName.md for more information,
+  or to contribute content related to this warning.
+
+Warning 2 of 2:
+
+  in module [33mMain[0m
+  at tests/purs/warning/UnusedVarDecls.purs:16:1 - 17:4 (line 16, column 1 - line 17, column 4)
+
+    Declaration [33munusedDecl[0m was not used, and is not exported.
+
+
+  See https://github.com/purescript/documentation/blob/master/errors/UnusedDeclaration.md for more information,
+  or to contribute content related to this warning.
+
diff --git a/tests/purs/warning/UnusedVarDecls.purs b/tests/purs/warning/UnusedVarDecls.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/warning/UnusedVarDecls.purs
@@ -0,0 +1,17 @@
+-- @shouldWarnWith UnusedName
+-- @shouldWarnWith UnusedDeclaration
+
+module Main
+  ( unusedArgDecl
+  , X(..)
+  ) where
+
+data X = X
+
+
+unusedArgDecl :: X -> X
+unusedArgDecl unusedArg = X
+
+unusedDecl :: X
+unusedDecl = 
+  X
diff --git a/tests/purs/warning/UnusedVarDo.out b/tests/purs/warning/UnusedVarDo.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/warning/UnusedVarDo.out
@@ -0,0 +1,48 @@
+Warning 1 of 4:
+
+  in module [33mMain[0m
+  at tests/purs/warning/UnusedVarDo.purs:12:3 - 12:15 (line 12, column 3 - line 12, column 15)
+
+    Name [33munusedDoBind[0m was introduced but not used.
+
+  in value declaration [33munusedDoBinding[0m
+
+  See https://github.com/purescript/documentation/blob/master/errors/UnusedName.md for more information,
+  or to contribute content related to this warning.
+
+Warning 2 of 4:
+
+  in module [33mMain[0m
+  at tests/purs/warning/UnusedVarDo.purs:24:7 - 24:23 (line 24, column 7 - line 24, column 23)
+
+    Name [33munusedDoLet[0m was introduced but not used.
+
+  in value declaration [33munusedDoLetBinding[0m
+
+  See https://github.com/purescript/documentation/blob/master/errors/UnusedName.md for more information,
+  or to contribute content related to this warning.
+
+Warning 3 of 4:
+
+  in module [33mMain[0m
+  at tests/purs/warning/UnusedVarDo.purs:29:3 - 29:16 (line 29, column 3 - line 29, column 16)
+
+    Name [33munusedAdoBind[0m was introduced but not used.
+
+  in value declaration [33munusedAdoBinding[0m
+
+  See https://github.com/purescript/documentation/blob/master/errors/UnusedName.md for more information,
+  or to contribute content related to this warning.
+
+Warning 4 of 4:
+
+  in module [33mMain[0m
+  at tests/purs/warning/UnusedVarDo.purs:34:7 - 34:24 (line 34, column 7 - line 34, column 24)
+
+    Name [33munusedAdoLet[0m was introduced but not used.
+
+  in value declaration [33munusedAdoLetBinding[0m
+
+  See https://github.com/purescript/documentation/blob/master/errors/UnusedName.md for more information,
+  or to contribute content related to this warning.
+
diff --git a/tests/purs/warning/UnusedVarDo.purs b/tests/purs/warning/UnusedVarDo.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/warning/UnusedVarDo.purs
@@ -0,0 +1,48 @@
+-- @shouldWarnWith UnusedName
+-- @shouldWarnWith UnusedName
+-- @shouldWarnWith UnusedName
+-- @shouldWarnWith UnusedName
+module Main where
+
+import Prelude
+import Data.Maybe (Maybe)
+
+unusedDoBinding :: Maybe Int
+unusedDoBinding = do
+  unusedDoBind <- pure 42
+  pure 17
+
+usedDoBinding :: Maybe Int
+usedDoBinding = do
+  fine <- pure 42
+  let alsoFine = 1
+  pure $ fine + alsoFine
+
+
+unusedDoLetBinding :: Maybe Int
+unusedDoLetBinding = do
+  let unusedDoLet = 42
+  pure 17
+
+unusedAdoBinding :: Maybe Int
+unusedAdoBinding = ado
+  unusedAdoBind <- pure 42
+  in 17
+
+unusedAdoLetBinding :: Maybe Int
+unusedAdoLetBinding = ado
+  let unusedAdoLet = 42
+  in 17
+
+notUnusedNonRecursiveBinding :: Int -> Maybe Int
+notUnusedNonRecursiveBinding x = do
+  let {x} = {x}
+  pure x
+
+-- 4110 in do syntax
+oops ∷ { inner :: String } → String
+oops box = do
+  let
+    { inner } = box
+    val = inner
+  val
diff --git a/tests/purs/warning/VTAsWildcardInferred.out b/tests/purs/warning/VTAsWildcardInferred.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/warning/VTAsWildcardInferred.out
diff --git a/tests/purs/warning/VTAsWildcardInferred.purs b/tests/purs/warning/VTAsWildcardInferred.purs
new file mode 100644
--- /dev/null
+++ b/tests/purs/warning/VTAsWildcardInferred.purs
@@ -0,0 +1,28 @@
+-- See https://github.com/purescript/purescript/issues/4487
+module Main where
+
+import Prelude
+import Effect (Effect)
+import Effect.Console (log)
+
+f :: forall @a. a -> a
+f = identity
+
+test1 :: { x :: Int }
+test1 = f @{ x :: _ } { x: 42 }
+
+class Foo :: Type -> Type -> Type -> Constraint
+class Foo a b c | a -> b c where
+  fooMember :: a -> b
+
+wrap :: forall @a. Array a -> Array (Array a)
+wrap as = [as]
+
+arrFooMember :: forall c. Array (Foo Int Boolean c => Int -> Boolean)
+arrFooMember = [fooMember]
+
+test2 :: forall c. Array (Array (Foo Int Boolean c => Int -> Boolean))
+test2 = wrap @(Foo Int Boolean _ => _) arrFooMember -- neither wildcard should warn IMO
+
+main :: Effect Unit
+main = log "Done"
diff --git a/tests/purs/warning/WildcardInferredType.out b/tests/purs/warning/WildcardInferredType.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/warning/WildcardInferredType.out
@@ -0,0 +1,30 @@
+Warning 1 of 2:
+
+  in module [33mMain[0m
+  at tests/purs/warning/WildcardInferredType.purs:7:6 - 7:7 (line 7, column 6 - line 7, column 7)
+
+    Wildcard type definition has the inferred type
+    [33m     [0m
+    [33m  Int[0m
+    [33m     [0m
+
+  in value declaration [33my[0m
+
+  See https://github.com/purescript/documentation/blob/master/errors/WildcardInferredType.md for more information,
+  or to contribute content related to this warning.
+
+Warning 2 of 2:
+
+  in module [33mMain[0m
+  at tests/purs/warning/WildcardInferredType.purs:5:10 - 5:11 (line 5, column 10 - line 5, column 11)
+
+    Wildcard type definition has the inferred type
+    [33m     [0m
+    [33m  Int[0m
+    [33m     [0m
+
+  in value declaration [33mx[0m
+
+  See https://github.com/purescript/documentation/blob/master/errors/WildcardInferredType.md for more information,
+  or to contribute content related to this warning.
+
diff --git a/tests/purs/warning/WildcardInferredType2.out b/tests/purs/warning/WildcardInferredType2.out
new file mode 100644
--- /dev/null
+++ b/tests/purs/warning/WildcardInferredType2.out
@@ -0,0 +1,83 @@
+Warning 1 of 5:
+
+  in module [33mMain[0m
+  at tests/purs/warning/WildcardInferredType2.purs:10:6 - 10:7 (line 10, column 6 - line 10, column 7)
+
+    Wildcard type definition has the inferred type
+    [33m     [0m
+    [33m  Int[0m
+    [33m     [0m
+
+  in value declaration [33mx[0m
+
+  See https://github.com/purescript/documentation/blob/master/errors/WildcardInferredType.md for more information,
+  or to contribute content related to this warning.
+
+Warning 2 of 5:
+
+  in module [33mMain[0m
+  at tests/purs/warning/WildcardInferredType2.purs:51:9 - 51:10 (line 51, column 9 - line 51, column 10)
+
+    Wildcard type definition has the inferred type
+    [33m     [0m
+    [33m  Int[0m
+    [33m     [0m
+
+  in binding group foxtrot, echo
+
+  See https://github.com/purescript/documentation/blob/master/errors/WildcardInferredType.md for more information,
+  or to contribute content related to this warning.
+
+Warning 3 of 5:
+
+  in module [33mMain[0m
+  at tests/purs/warning/WildcardInferredType2.purs:54:8 - 54:9 (line 54, column 8 - line 54, column 9)
+
+    Wildcard type definition has the inferred type
+    [33m     [0m
+    [33m  Int[0m
+    [33m     [0m
+    in the following context:
+
+      m :: [33mInt[0m
+
+
+  in binding group foxtrot, echo
+
+  See https://github.com/purescript/documentation/blob/master/errors/WildcardInferredType.md for more information,
+  or to contribute content related to this warning.
+
+Warning 4 of 5:
+
+  in module [33mMain[0m
+  at tests/purs/warning/WildcardInferredType2.purs:47:1 - 49:8 (line 47, column 1 - line 49, column 8)
+
+    No type declaration was provided for the top-level declaration of [33mdelta[0m.
+    It is good practice to provide type declarations as a form of documentation.
+    The inferred type of [33mdelta[0m was:
+    [33m            [0m
+    [33m  Int -> Int[0m
+    [33m            [0m
+
+  in binding group delta, charlie
+
+  See https://github.com/purescript/documentation/blob/master/errors/MissingTypeDeclaration.md for more information,
+  or to contribute content related to this warning.
+
+Warning 5 of 5:
+
+  in module [33mMain[0m
+  at tests/purs/warning/WildcardInferredType2.purs:25:1 - 31:14 (line 25, column 1 - line 31, column 14)
+
+    No type declaration was provided for the top-level declaration of [33malpha[0m.
+    It is good practice to provide type declarations as a form of documentation.
+    The inferred type of [33malpha[0m was:
+    [33m     [0m
+    [33m  Int[0m
+    [33m     [0m
+
+  in value declaration [33malpha[0m
+
+  See https://github.com/purescript/documentation/blob/master/errors/MissingTypeDeclaration.md for more information,
+  or to contribute content related to this warning.
+
diff --git a/tests/purs/warning/WildcardInferredType2.purs b/tests/purs/warning/WildcardInferredType2.purs
--- a/tests/purs/warning/WildcardInferredType2.purs
+++ b/tests/purs/warning/WildcardInferredType2.purs
@@ -1,6 +1,12 @@
 -- @shouldWarnWith WildcardInferredType
+-- @shouldWarnWith MissingTypeDeclaration
+-- @shouldWarnWith WildcardInferredType
+-- @shouldWarnWith WildcardInferredType
+-- @shouldWarnWith MissingTypeDeclaration
 module Main where
 
+import Prelude
+
 x :: _
 x = 42
 
@@ -12,3 +18,43 @@
   where
   n :: _
   n = 42
+
+-- Inner signatures can suppress warnings from more-inner wildcards,
+-- even though a top-level signature is missing (see #4268)
+
+alpha = f 0
+  where
+  f :: Int -> Int
+  f m = n
+    where
+    n :: _
+    n = m + 1  
+
+-- Tests for recursive binding groups (see #4268)
+
+bravo :: Int -> Int
+bravo m = if n > 0 then bravo (n - 1) else n
+  where
+  n :: _
+  n = m
+
+charlie :: Int -> Int
+charlie m = if n > 0 then delta (n - 1) else n
+  where
+  n :: _
+  n = m
+
+delta m = if n > 0 then charlie (n - 1) else n
+  where
+  n = m
+
+echo :: _ -> Int -- Partial signatures don't count!
+echo m = if n > 0 then foxtrot (n - 1) else n
+  where
+  n :: _
+  n = m
+
+foxtrot :: Int -> Int
+foxtrot m = if n > 0 then echo (n - 1) else n
+  where
+  n = m
diff --git a/tests/support/bower.json b/tests/support/bower.json
--- a/tests/support/bower.json
+++ b/tests/support/bower.json
@@ -1,40 +1,39 @@
 {
   "name": "purescript-test-suite-support",
   "dependencies": {
-    "purescript-arrays": "5.0.0",
-    "purescript-assert": "4.0.0",
-    "purescript-bifunctors": "4.0.0",
-    "purescript-console": "4.1.0",
-    "purescript-control": "4.0.0",
-    "purescript-distributive": "4.0.0",
-    "purescript-effect": "2.0.0",
-    "purescript-either": "4.0.0",
-    "purescript-foldable-traversable": "4.0.0",
-    "purescript-functions": "4.0.0",
-    "purescript-gen": "2.0.0",
-    "purescript-generics-rep": "6.0.0",
-    "purescript-globals": "4.0.0",
-    "purescript-identity": "4.0.0",
-    "purescript-integers": "4.0.0",
-    "purescript-invariant": "4.0.0",
-    "purescript-lazy": "4.0.0",
-    "purescript-lists": "5.0.0",
-    "purescript-math": "2.1.1",
-    "purescript-maybe": "4.0.0",
-    "purescript-newtype": "3.0.0",
-    "purescript-nonempty": "5.0.0",
-    "purescript-partial": "2.0.0",
-    "purescript-prelude": "4.1.0",
-    "purescript-proxy": "3.0.0",
-    "purescript-psci-support": "4.0.0",
-    "purescript-refs": "4.1.0",
-    "purescript-st": "4.0.0",
-    "purescript-strings": "4.0.0",
-    "purescript-tailrec": "4.0.0",
-    "purescript-tuples": "5.0.0",
-    "purescript-type-equality": "3.0.0",
-    "purescript-typelevel-prelude": "4.0.1",
-    "purescript-unfoldable": "4.0.0",
-    "purescript-unsafe-coerce": "4.0.0"
+    "purescript-arrays": "^7.0.0",
+    "purescript-assert": "^6.0.0",
+    "purescript-bifunctors": "^6.0.0",
+    "purescript-console": "^6.0.0",
+    "purescript-control": "^6.0.0",
+    "purescript-distributive": "^6.0.0",
+    "purescript-effect": "^4.0.0",
+    "purescript-either": "^6.1.0",
+    "purescript-enums": "^6.0.0",
+    "purescript-foldable-traversable": "^6.0.0",
+    "purescript-functions": "^6.0.0",
+    "purescript-gen": "^4.0.0",
+    "purescript-identity": "^6.0.0",
+    "purescript-integers": "^6.0.0",
+    "purescript-invariant": "^6.0.0",
+    "purescript-lazy": "^6.0.0",
+    "purescript-lists": "^7.0.0",
+    "purescript-maybe": "^6.0.0",
+    "purescript-newtype": "^5.0.0",
+    "purescript-nonempty": "^7.0.0",
+    "purescript-numbers": "^9.0.0",
+    "purescript-partial": "^4.0.0",
+    "purescript-prelude": "^6.0.0",
+    "purescript-psci-support": "^6.0.0",
+    "purescript-refs": "^6.0.0",
+    "purescript-safe-coerce": "^2.0.0",
+    "purescript-st": "^6.1.0",
+    "purescript-strings": "^6.0.0",
+    "purescript-tailrec": "^6.1.0",
+    "purescript-tuples": "^7.0.0",
+    "purescript-type-equality": "^4.0.1",
+    "purescript-typelevel-prelude": "^7.0.0",
+    "purescript-unfoldable": "^6.0.0",
+    "purescript-unsafe-coerce": "^6.0.0"
   }
 }
diff --git a/tests/support/checkSourceMapValidity.js b/tests/support/checkSourceMapValidity.js
new file mode 100644
--- /dev/null
+++ b/tests/support/checkSourceMapValidity.js
@@ -0,0 +1,33 @@
+// Run as `node checkSourceMapValidity.js path/to/index.js.map`
+
+const s = require("source-map");
+const fs = require("fs");
+const process = require("process");
+
+if (process.argv.length < 3) {
+  const errMsg = [
+    "Script did not receive the source map file path as its only argument",
+    "Rerun using `node checkSourceMapValidity.js path/to/index.js.map`"
+  ].join("\n");
+  throw new Error(errMsg);
+}
+
+const sourceMapFilePath = process.argv[2];
+console.log(`Checking validity of source map for ${sourceMapFilePath}`);
+const content = fs.readFileSync(sourceMapFilePath, {encoding: "utf-8"});
+s.SourceMapConsumer.with(
+    JSON.parse(content),
+    null,
+    (consumer) => {
+      // We only use the `eachMapping` function to trigger an error
+      // if a mapping is invalid.
+      consumer.eachMapping(function () {});
+    }
+  )
+  .then(() => console.log(`${sourceMapFilePath} sourcemap is valid`))
+  .catch((e) => {
+    console.error(`  ${e.message}`);
+    // See https://nodejs.org/dist/latest-v16.x/docs/api/process.html#processexitcode
+    // for why we don't call `process.exit(1)`
+    process.exitCode = 1;
+  });
diff --git a/tests/support/package-lock.json b/tests/support/package-lock.json
--- a/tests/support/package-lock.json
+++ b/tests/support/package-lock.json
@@ -1,16 +1,161 @@
 {
+  "name": "support",
+  "lockfileVersion": 2,
   "requires": true,
-  "lockfileVersion": 1,
+  "packages": {
+    "": {
+      "dependencies": {
+        "bower": "^1.8.8",
+        "glob": "^5.0.14",
+        "rimraf": "^2.5.2",
+        "source-map": "^0.7.3"
+      }
+    },
+    "node_modules/balanced-match": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
+      "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
+    },
+    "node_modules/bower": {
+      "version": "1.8.14",
+      "resolved": "https://registry.npmjs.org/bower/-/bower-1.8.14.tgz",
+      "integrity": "sha512-8Rq058FD91q9Nwthyhw0la9fzpBz0iwZTrt51LWl+w+PnJgZk9J+5wp3nibsJcIUPglMYXr4NRBaR+TUj0OkBQ==",
+      "bin": {
+        "bower": "bin/bower"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/brace-expansion": {
+      "version": "1.1.11",
+      "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+      "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+      "dependencies": {
+        "balanced-match": "^1.0.0",
+        "concat-map": "0.0.1"
+      }
+    },
+    "node_modules/concat-map": {
+      "version": "0.0.1",
+      "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+      "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
+    },
+    "node_modules/fs.realpath": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+      "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
+    },
+    "node_modules/glob": {
+      "version": "5.0.15",
+      "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz",
+      "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=",
+      "dependencies": {
+        "inflight": "^1.0.4",
+        "inherits": "2",
+        "minimatch": "2 || 3",
+        "once": "^1.3.0",
+        "path-is-absolute": "^1.0.0"
+      },
+      "engines": {
+        "node": "*"
+      }
+    },
+    "node_modules/inflight": {
+      "version": "1.0.6",
+      "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+      "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
+      "dependencies": {
+        "once": "^1.3.0",
+        "wrappy": "1"
+      }
+    },
+    "node_modules/inherits": {
+      "version": "2.0.4",
+      "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
+      "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
+    },
+    "node_modules/minimatch": {
+      "version": "3.1.2",
+      "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
+      "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+      "dependencies": {
+        "brace-expansion": "^1.1.7"
+      },
+      "engines": {
+        "node": "*"
+      }
+    },
+    "node_modules/once": {
+      "version": "1.4.0",
+      "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+      "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
+      "dependencies": {
+        "wrappy": "1"
+      }
+    },
+    "node_modules/path-is-absolute": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
+      "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/rimraf": {
+      "version": "2.7.1",
+      "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
+      "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
+      "dependencies": {
+        "glob": "^7.1.3"
+      },
+      "bin": {
+        "rimraf": "bin.js"
+      }
+    },
+    "node_modules/rimraf/node_modules/glob": {
+      "version": "7.2.0",
+      "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz",
+      "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==",
+      "dependencies": {
+        "fs.realpath": "^1.0.0",
+        "inflight": "^1.0.4",
+        "inherits": "2",
+        "minimatch": "^3.0.4",
+        "once": "^1.3.0",
+        "path-is-absolute": "^1.0.0"
+      },
+      "engines": {
+        "node": "*"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/isaacs"
+      }
+    },
+    "node_modules/source-map": {
+      "version": "0.7.3",
+      "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz",
+      "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==",
+      "engines": {
+        "node": ">= 8"
+      }
+    },
+    "node_modules/wrappy": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+      "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
+    }
+  },
   "dependencies": {
     "balanced-match": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
-      "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c="
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
+      "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
     },
     "bower": {
-      "version": "1.8.8",
-      "resolved": "https://registry.npmjs.org/bower/-/bower-1.8.8.tgz",
-      "integrity": "sha512-1SrJnXnkP9soITHptSO+ahx3QKp3cVzn8poI6ujqc5SeOkg5iqM1pK9H+DSc2OQ8SnO0jC/NG4Ur/UIwy7574A=="
+      "version": "1.8.14",
+      "resolved": "https://registry.npmjs.org/bower/-/bower-1.8.14.tgz",
+      "integrity": "sha512-8Rq058FD91q9Nwthyhw0la9fzpBz0iwZTrt51LWl+w+PnJgZk9J+5wp3nibsJcIUPglMYXr4NRBaR+TUj0OkBQ=="
     },
     "brace-expansion": {
       "version": "1.1.11",
@@ -53,14 +198,14 @@
       }
     },
     "inherits": {
-      "version": "2.0.3",
-      "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
-      "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
+      "version": "2.0.4",
+      "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
+      "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
     },
     "minimatch": {
-      "version": "3.0.4",
-      "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
-      "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
+      "version": "3.1.2",
+      "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
+      "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
       "requires": {
         "brace-expansion": "^1.1.7"
       }
@@ -79,17 +224,17 @@
       "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18="
     },
     "rimraf": {
-      "version": "2.6.3",
-      "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz",
-      "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==",
+      "version": "2.7.1",
+      "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
+      "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
       "requires": {
         "glob": "^7.1.3"
       },
       "dependencies": {
         "glob": {
-          "version": "7.1.4",
-          "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz",
-          "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==",
+          "version": "7.2.0",
+          "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz",
+          "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==",
           "requires": {
             "fs.realpath": "^1.0.0",
             "inflight": "^1.0.4",
@@ -100,6 +245,11 @@
           }
         }
       }
+    },
+    "source-map": {
+      "version": "0.7.3",
+      "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz",
+      "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ=="
     },
     "wrappy": {
       "version": "1.0.2",
diff --git a/tests/support/package.json b/tests/support/package.json
--- a/tests/support/package.json
+++ b/tests/support/package.json
@@ -3,6 +3,7 @@
   "dependencies": {
     "bower": "^1.8.8",
     "glob": "^5.0.14",
-    "rimraf": "^2.5.2"
+    "rimraf": "^2.5.2",
+    "source-map": "^0.7.3"
   }
 }
diff --git a/tests/support/pscide/src/CompletionSpec.purs b/tests/support/pscide/src/CompletionSpec.purs
new file mode 100644
--- /dev/null
+++ b/tests/support/pscide/src/CompletionSpec.purs
@@ -0,0 +1,18 @@
+module CompletionSpec where
+
+exampleValue :: Int
+exampleValue = 42
+
+exampleFunction :: Int -> Int
+exampleFunction _ = 1
+
+exampleInferredString = ""
+
+infixl 5 exampleFunction as \°/ 
+
+data ExampleTypeConstructor a b = ExampleTypeConstructor a b
+
+infixl 5 type ExampleTypeConstructor as \°/ 
+
+class ExampleClass where
+  exampleMember :: Int
diff --git a/tests/support/pscide/src/CompletionSpecDocs.purs b/tests/support/pscide/src/CompletionSpecDocs.purs
--- a/tests/support/pscide/src/CompletionSpecDocs.purs
+++ b/tests/support/pscide/src/CompletionSpecDocs.purs
@@ -12,3 +12,8 @@
 -- | a multi-line
 -- | comment
 multiline = "multiline"
+
+-- | Doc for class
+class DocClass where
+  -- | doc for member
+  member :: Int
diff --git a/tests/support/pscide/src/RebuildSpecWithForeign.js b/tests/support/pscide/src/RebuildSpecWithForeign.js
--- a/tests/support/pscide/src/RebuildSpecWithForeign.js
+++ b/tests/support/pscide/src/RebuildSpecWithForeign.js
@@ -1,1 +1,1 @@
-exports.f = 5;
+export var f = 5;
diff --git a/tests/support/setup-win.cmd b/tests/support/setup-win.cmd
deleted file mode 100644
--- a/tests/support/setup-win.cmd
+++ /dev/null
@@ -1,3 +0,0 @@
-@echo off
-call npm install
-call node_modules\.bin\bower install --config.interactive=false
